Date: Monday, March 25, 2019 @ 19:26:17
  Author: anthraxx
Revision: 349184

archrelease: copy trunk to staging-x86_64

Added:
  truecrypt/repos/staging-x86_64/
  truecrypt/repos/staging-x86_64/PKGBUILD
    (from rev 349183, truecrypt/trunk/PKGBUILD)
  truecrypt/repos/staging-x86_64/fix-invalid-characters.patch
    (from rev 349183, truecrypt/trunk/fix-invalid-characters.patch)
  truecrypt/repos/staging-x86_64/gcc6.patch
    (from rev 349183, truecrypt/trunk/gcc6.patch)
  truecrypt/repos/staging-x86_64/no-exec-stack.patch
    (from rev 349183, truecrypt/trunk/no-exec-stack.patch)
  truecrypt/repos/staging-x86_64/truecrypt-arch-detection.patch
    (from rev 349183, truecrypt/trunk/truecrypt-arch-detection.patch)
  truecrypt/repos/staging-x86_64/truecrypt.desktop
    (from rev 349183, truecrypt/trunk/truecrypt.desktop)
  truecrypt/repos/staging-x86_64/wxwidgets3.patch
    (from rev 349183, truecrypt/trunk/wxwidgets3.patch)
  truecrypt/repos/staging-x86_64/wxwidgets31.patch
    (from rev 349183, truecrypt/trunk/wxwidgets31.patch)
  truecrypt/repos/staging-x86_64/xdg-open.patch
    (from rev 349183, truecrypt/trunk/xdg-open.patch)

--------------------------------+
 PKGBUILD                       |   71 +++++++++++
 fix-invalid-characters.patch   |   54 ++++++++
 gcc6.patch                     |   61 +++++++++
 no-exec-stack.patch            |   60 +++++++++
 truecrypt-arch-detection.patch |   15 ++
 truecrypt.desktop              |    9 +
 wxwidgets3.patch               |  249 +++++++++++++++++++++++++++++++++++++++
 wxwidgets31.patch              |   37 +++++
 xdg-open.patch                 |   81 ++++++++++++
 9 files changed, 637 insertions(+)

Copied: truecrypt/repos/staging-x86_64/PKGBUILD (from rev 349183, 
truecrypt/trunk/PKGBUILD)
===================================================================
--- staging-x86_64/PKGBUILD                             (rev 0)
+++ staging-x86_64/PKGBUILD     2019-03-25 19:26:17 UTC (rev 349184)
@@ -0,0 +1,71 @@
+# Maintainer: Levente Polyak <anthraxx[at]archlinux[dot]org>
+# Maintainer: Rémy Oudompheng <r...@archlinux.org>
+# Contributor: Paul Mattal <paul.archlinux.org>
+
+pkgname=truecrypt
+pkgver=7.1a
+pkgrel=7
+epoch=1
+pkgdesc='Free open-source cross-platform disk encryption software'
+url='http://www.truecrypt.org/'
+arch=('x86_64')
+license=('custom:TrueCrypt')
+depends=('fuse2>=2.8.0' 'wxgtk' 'libsm' 'device-mapper')
+optdepends=('sudo: mounting encrypted volumes as nonroot users')
+makedepends=('nasm')
+conflicts=('truecrypt-utils')
+replaces=('truecrypt-utils')
+# N.B. Truecrypt's web-based source download is incompatible with
+# makepkg. Source has been placed on ftp.archlinux.org instead
+source=(https://sources.archlinux.org/other/tc/truecrypt-${pkgver}.tar.gz{,.sig}
+        https://sources.archlinux.org/other/tc/pkcs-2.20.tar.gz
+        truecrypt.desktop
+        truecrypt-arch-detection.patch
+        gcc6.patch
+        fix-invalid-characters.patch
+        no-exec-stack.patch
+        wxwidgets3.patch
+        wxwidgets31.patch
+        xdg-open.patch)
+sha512sums=('b5e766023168015cb91bfd85c9e2621055dd98408215e02704775861b5070c5a0234a00c64c1bf7faa34e6d0b51ac71cd36169dd7a6f84d7a34ad0cfa304796a'
+            'SKIP'
+            
'd69d90040da5bc93f91041ed9404f1614a3b1bdc8eddc2bbbd19367f12d2416a6f3af8b0071d77e1273d627148c63ebe7ebe332878fbe9adb8ae33dcc723f473'
+            
'1ac13f1888319d6d2f10e03a61e22d68e5fe4a61bbdf8ad364a0fe6f6712cc53dbc1a98fff3fda2ecd57dbe67fcc24fb358c0805ab47eaa12cf14d48f1067e51'
+            
'fac6963c65720f0b13486ff22bdcc2e31e78c39ede2b9561b2c4037ef2c0375f04c4d51dc6067c37aaeb664c3ed70e5747488389737c41807680750c26a8f084'
+            
'84175a3677f20b2b03ab29b017b9deecb517a58a640cf667b503cc9375c104b9c0a5d5ea4b3537ba7f12530054a456b466df0afdd935714cd43034b8e6cb2b7c'
+            
'd52826572178a471bb608fd4991766f4f9fa7c5cbf3659922372feb9fdfcbab596d5f1360e30f66613681619672d0be6c5457f5617f5fb1f84061de779831f96'
+            
'c64f9255303a521b4e531ebea574befe80a9f193c9aa42fd9cb552e56d087815ca161b50b593e7c3ede10a65c67dc36d0447dbffb0f4d4614f181a95759c2f79'
+            
'f5dcbcd046489b52657fd99ec1d4d926883414b450af5bbd90890b210988f75055346c9276526486e9db00bffd50926e01c4f17da18144ad903fb40d81043769'
+            
'461f27cb72a9230591de9131e1f4d32df0531316265164429dfb89b0787d0da25bf6f18231a77d596f2bf0fee4340bec6f3bae8cc1ca8a96cc7e2d2bab04dcee'
+            
'e60f780bbd2d72ff86ce14df6bda929e696c825f20ccc54bee74c6fc85a98cbf73ccfdb311f6e33c92ef3f7e9095907ab98d62cfe067ab6254513731e9d69ab7')
+validpgpkeys=('C5F4BAC4A7B22DB8B8F85538E3BA73CAF0D6B1E0') # TrueCrypt 
Foundation
+
+prepare() {
+  cd ${pkgname}-${pkgver}-source
+  patch -p1 < "${srcdir}/truecrypt-arch-detection.patch"
+  patch -p0 < "${srcdir}/gcc6.patch"
+  patch -p2 < "${srcdir}/fix-invalid-characters.patch"
+  patch -p0 < "${srcdir}/no-exec-stack.patch"
+  patch -p2 < "${srcdir}/wxwidgets3.patch"
+  patch -p2 < "${srcdir}/wxwidgets31.patch"
+  patch -p2 < "${srcdir}/xdg-open.patch"
+}
+
+build() {
+  cd ${pkgname}-${pkgver}-source
+  make PKCS11_INC="${srcdir}/pkcs-2.20" \
+    WX_CONFIG=/usr/bin/wx-config \
+    TC_EXTRA_LFLAGS+="-ldl ${LDFLAGS}" \
+    TC_EXTRA_CXXFLAGS="${CXXFLAGS}" \
+    TC_EXTRA_CFLAGS="${CFLAGS}"
+}
+
+package() {
+  cd ${pkgname}-${pkgver}-source
+  install -Dm 755 Main/${pkgname} "${pkgdir}/usr/bin/${pkgname}"
+  install -Dm 644 "${srcdir}/truecrypt.desktop" -t 
"${pkgdir}/usr/share/applications"
+  install -Dm 644 Resources/Icons/TrueCrypt-48x48.xpm 
"${pkgdir}/usr/share/pixmaps/truecrypt.xpm"
+  install -Dm 644 License.txt -t "${pkgdir}/usr/share/licenses/${pkgname}"
+}
+
+# vim: ts=2 sw=2 et:

Copied: truecrypt/repos/staging-x86_64/fix-invalid-characters.patch (from rev 
349183, truecrypt/trunk/fix-invalid-characters.patch)
===================================================================
--- staging-x86_64/fix-invalid-characters.patch                         (rev 0)
+++ staging-x86_64/fix-invalid-characters.patch 2019-03-25 19:26:17 UTC (rev 
349184)
@@ -0,0 +1,54 @@
+From 646679da4d79bf7f8af22c44c7ae8498086a88a6 Mon Sep 17 00:00:00 2001
+From: Mounir IDRASSI <mounir.idra...@idrix.fr>
+Date: Fri, 18 Mar 2016 16:25:48 +0100
+Subject: [PATCH] Linux: Completely fix gcc-5 "Invalid characters encountered"
+ issue on mount. It was caused by an issue of gcc-5 STL implementation that is
+ causing char* pointers retrieved from std::string using c_str method to
+ become invalid in the child of a child process (after two fork calls). The
+ workaround is to first copy the std:string values in the child before calling
+ the second fork.
+
+---
+ src/Platform/Unix/Process.cpp | 24 ++++++++++++++++++++++--
+ 1 file changed, 22 insertions(+), 2 deletions(-)
+
+diff --git a/src/Platform/Unix/Process.cpp b/src/Platform/Unix/Process.cpp
+index 388bda6..0770364 100644
+--- a/src/Platform/Unix/Process.cpp
++++ b/src/Platform/Unix/Process.cpp
+@@ -53,13 +53,33 @@ namespace VeraCrypt
+                               try
+                               {
+                                       int argIndex = 0;
++                                      /* Workaround for gcc 5.X issue related 
to the use of STL (string and list) with muliple fork calls. 
++                                       * 
++                                       * The char* pointers retrieved from 
the elements of parameter "arguments" are no longer valid after
++                                       * a second fork is called. "arguments" 
was created in the parent of the current child process.
++                                       * 
++                                       * The only solution is to copy the 
elements of "arguments" parameter in a local string array on this 
++                                       * child process and then use char* 
pointers retrieved from this local copies before calling fork. 
++                                       * 
++                                       * gcc 4.x doesn't suffer from this 
issue.
++                                       * 
++                                       */
++                                      string argsCopy[array_capacity (args)];
+                                       if (!execFunctor)
+-                                              args[argIndex++] = const_cast 
<char*> (processName.c_str());
++                                      {
++                                              argsCopy[argIndex++] = 
processName;
++                                      }
+ 
+                                       foreach (const string &arg, arguments)
+                                       {
+-                                              args[argIndex++] = const_cast 
<char*> (arg.c_str());
++                                              argsCopy[argIndex++] = arg;
+                                       }
++                                      
++                                      for (int i = 0; i < argIndex; i++)
++                                      {
++                                              args[i] = const_cast <char*> 
(argsCopy[i].c_str());
++                                      }
++
+                                       args[argIndex] = nullptr;
+ 
+                                       if (inputData)

Copied: truecrypt/repos/staging-x86_64/gcc6.patch (from rev 349183, 
truecrypt/trunk/gcc6.patch)
===================================================================
--- staging-x86_64/gcc6.patch                           (rev 0)
+++ staging-x86_64/gcc6.patch   2019-03-25 19:26:17 UTC (rev 349184)
@@ -0,0 +1,61 @@
+--- Main/Resources.cpp 2016-05-16 16:47:35.846462041 +0200
++++ Main/Resources.cpp 2016-05-16 17:12:21.838202520 +0200
+@@ -45,13 +45,13 @@
+               strBuf.CopyFrom (res);
+               return string (reinterpret_cast <char *> (strBuf.Ptr()));
+ #else
+-              static const char LanguageXml[] =
++              static byte LanguageXml[] =
+               {
+ #                     include "Common/Language.xml.h"
+                       , 0
+               };
+ 
+-              return string (LanguageXml);
++              return string ((const char*) LanguageXml);
+ #endif
+       }
+ 
+@@ -64,13 +64,13 @@
+               strBuf.CopyFrom (res);
+               return string (reinterpret_cast <char *> (strBuf.Ptr()));
+ #else
+-              static const char License[] =
++              static byte License[] =
+               {
+ #                     include "License.txt.h"
+                       , 0
+               };
+ 
+-              return string (License);
++              return string ((const char*) License);
+ #endif
+       }
+ 
+--- Main/Forms/PreferencesDialog.cpp   2016-05-16 17:14:47.704707908 +0200
++++ Main/Forms/PreferencesDialog.cpp   2016-05-16 17:15:56.927964437 +0200
+@@ -414,11 +414,11 @@
+               libExtension = wxDynamicLibrary::CanonicalizeName (L"x");
+ 
+ #ifdef TC_MACOSX
+-              extensions.push_back (make_pair (L"dylib", 
LangString["DLL_FILES"]));
++              extensions.push_back (make_pair (L"dylib", static_cast<const 
wchar_t*>(LangString["DLL_FILES"].wc_str())));
+ #endif
+               if (!libExtension.empty())
+               {
+-                      extensions.push_back (make_pair (libExtension.Mid 
(libExtension.find (L'.') + 1), LangString["DLL_FILES"]));
++                      extensions.push_back (make_pair (static_cast<const 
wchar_t*>(libExtension.Mid (libExtension.find (L'.') + 1).wc_str()), 
static_cast<const wchar_t*>(LangString["DLL_FILES"].wc_str())));
+                       extensions.push_back (make_pair (L"*", L""));
+               }
+ 
+--- Main/GraphicUserInterface.cpp      2016-05-16 17:16:38.724591342 +0200
++++ Main/GraphicUserInterface.cpp      2016-05-16 17:17:09.854562653 +0200
+@@ -1445,7 +1445,7 @@
+       FilePath GraphicUserInterface::SelectVolumeFile (wxWindow *parent, bool 
saveMode, const DirectoryPath &directory) const
+       {
+               list < pair <wstring, wstring> > extensions;
+-              extensions.push_back (make_pair (L"tc", 
LangString["TC_VOLUMES"]));
++              extensions.push_back (make_pair (L"tc", static_cast<const 
wchar_t*>(LangString["TC_VOLUMES"].wc_str())));
+ 
+               FilePathList selFiles = Gui->SelectFiles (parent, 
LangString[saveMode ? "OPEN_NEW_VOLUME" : "OPEN_VOL_TITLE"], saveMode, false, 
extensions, directory);
+ 

Copied: truecrypt/repos/staging-x86_64/no-exec-stack.patch (from rev 349183, 
truecrypt/trunk/no-exec-stack.patch)
===================================================================
--- staging-x86_64/no-exec-stack.patch                          (rev 0)
+++ staging-x86_64/no-exec-stack.patch  2019-03-25 19:26:17 UTC (rev 349184)
@@ -0,0 +1,60 @@
+--- Crypto/Aes_hw_cpu.asm.old  2011-06-01 17:12:53.078000001 -0400
++++ Crypto/Aes_hw_cpu.asm      2011-06-01 17:12:53.080000002 -0400
+@@ -328,3 +328,12 @@
+ 
+ 
+ %endif        ; __BITS__ != 16
++      %ifidn __OUTPUT_FORMAT__,elf
++      section .note.GNU-stack noalloc noexec nowrite progbits
++      %endif
++      %ifidn __OUTPUT_FORMAT__,elf32
++      section .note.GNU-stack noalloc noexec nowrite progbits
++      %endif
++      %ifidn __OUTPUT_FORMAT__,elf64
++      section .note.GNU-stack noalloc noexec nowrite progbits
++      %endif
+--- Crypto/AesSmall_x86.asm.old        2011-06-01 17:12:53.084000002 -0400
++++ Crypto/AesSmall_x86.asm    2011-06-01 17:12:53.086000002 -0400
+@@ -1442,3 +1442,12 @@
+     db  
v8(0xe1),v8(0x69),v8(0x14),v8(0x63),v8(0x55),v8(0x21),v8(0x0c),v8(0x7d)
+ 
+ %endif
++      %ifidn __OUTPUT_FORMAT__,elf
++      section .note.GNU-stack noalloc noexec nowrite progbits
++      %endif
++      %ifidn __OUTPUT_FORMAT__,elf32
++      section .note.GNU-stack noalloc noexec nowrite progbits
++      %endif
++      %ifidn __OUTPUT_FORMAT__,elf64
++      section .note.GNU-stack noalloc noexec nowrite progbits
++      %endif
+--- Crypto/Aes_x64.asm.old     2011-06-01 17:12:53.090000002 -0400
++++ Crypto/Aes_x64.asm 2011-06-01 17:12:53.092000002 -0400
+@@ -905,3 +905,12 @@
+ %endif
+ 
+ %endif
++      %ifidn __OUTPUT_FORMAT__,elf
++      section .note.GNU-stack noalloc noexec nowrite progbits
++      %endif
++      %ifidn __OUTPUT_FORMAT__,elf32
++      section .note.GNU-stack noalloc noexec nowrite progbits
++      %endif
++      %ifidn __OUTPUT_FORMAT__,elf64
++      section .note.GNU-stack noalloc noexec nowrite progbits
++      %endif
+--- Crypto/Aes_x86.asm.old     2011-06-01 17:12:53.096000002 -0400
++++ Crypto/Aes_x86.asm 2011-06-01 17:12:53.097000002 -0400
+@@ -644,3 +644,12 @@
+     do_exit
+ 
+ %endif
++      %ifidn __OUTPUT_FORMAT__,elf
++      section .note.GNU-stack noalloc noexec nowrite progbits
++      %endif
++      %ifidn __OUTPUT_FORMAT__,elf32
++      section .note.GNU-stack noalloc noexec nowrite progbits
++      %endif
++      %ifidn __OUTPUT_FORMAT__,elf64
++      section .note.GNU-stack noalloc noexec nowrite progbits
++      %endif

Copied: truecrypt/repos/staging-x86_64/truecrypt-arch-detection.patch (from rev 
349183, truecrypt/trunk/truecrypt-arch-detection.patch)
===================================================================
--- staging-x86_64/truecrypt-arch-detection.patch                               
(rev 0)
+++ staging-x86_64/truecrypt-arch-detection.patch       2019-03-25 19:26:17 UTC 
(rev 349184)
@@ -0,0 +1,15 @@
+diff -urN truecrypt-7.0a-source/Makefile truecrypt-7.0a-source.fixed/Makefile
+--- truecrypt-7.0a-source/Makefile     2010-09-05 10:32:10.000000000 -0400
++++ truecrypt-7.0a-source.fixed/Makefile       2011-07-05 21:41:50.296437879 
-0400
+@@ -120,10 +120,7 @@
+ 
+ export CPU_ARCH ?= unknown
+ 
+-ARCH = $(shell uname -p)
+-ifeq "$(ARCH)" "unknown"
+-      ARCH = $(shell uname -m)
+-endif
++ARCH = $(shell uname -m)
+ 
+ ifneq (,$(filter i386 i486 i586 i686 x86,$(ARCH)))
+       CPU_ARCH = x86

Copied: truecrypt/repos/staging-x86_64/truecrypt.desktop (from rev 349183, 
truecrypt/trunk/truecrypt.desktop)
===================================================================
--- staging-x86_64/truecrypt.desktop                            (rev 0)
+++ staging-x86_64/truecrypt.desktop    2019-03-25 19:26:17 UTC (rev 349184)
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Type=Application
+Exec=truecrypt
+Icon=truecrypt
+Comment=On-the-fly encryption
+Terminal=false
+Name=TrueCrypt
+StartupNotify=true
+Categories=System;

Copied: truecrypt/repos/staging-x86_64/wxwidgets3.patch (from rev 349183, 
truecrypt/trunk/wxwidgets3.patch)
===================================================================
--- staging-x86_64/wxwidgets3.patch                             (rev 0)
+++ staging-x86_64/wxwidgets3.patch     2019-03-25 19:26:17 UTC (rev 349184)
@@ -0,0 +1,249 @@
+From 084a8ee85c24fbc7077d6c789c97aacdb31b4e39 Mon Sep 17 00:00:00 2001
+From: Mounir IDRASSI <mounir.idra...@idrix.fr>
+Date: Sun, 8 Jun 2014 00:45:49 +0200
+Subject: [PATCH] wxWidgets 3.0 compatibility modifications
+
+---
+ src/Main/Application.cpp                     |  6 +++---
+ src/Main/CommandLineInterface.cpp            | 12 ++++++------
+ src/Main/Forms/MainFrame.cpp                 |  2 +-
+ src/Main/Forms/SelectDirectoryWizardPage.cpp |  2 +-
+ src/Main/Forms/SelectDirectoryWizardPage.h   |  2 +-
+ src/Main/GraphicUserInterface.cpp            |  6 +++---
+ src/Main/TextUserInterface.cpp               |  2 +-
+ src/Main/UserPreferences.cpp                 |  2 +-
+ 8 files changed, 17 insertions(+), 17 deletions(-)
+
+diff --git a/src/Main/Application.cpp b/src/Main/Application.cpp
+index 8c6dea1..2d49169 100644
+--- a/src/Main/Application.cpp
++++ b/src/Main/Application.cpp
+@@ -36,7 +36,7 @@ namespace TrueCrypt
+ 
+       FilePath Application::GetConfigFilePath (const wxString 
&configFileName, bool createConfigDir)
+       {
+-              wxStandardPaths stdPaths;
++              wxStandardPaths& stdPaths = wxStandardPaths::Get();
+               DirectoryPath configDir;
+               
+               if (!Core->IsInPortableMode())
+@@ -61,12 +61,12 @@ namespace TrueCrypt
+ 
+       DirectoryPath Application::GetExecutableDirectory ()
+       {
+-              return wstring (wxFileName 
(wxStandardPaths().GetExecutablePath()).GetPath());
++              return wstring (wxFileName 
(wxStandardPaths::Get().GetExecutablePath()).GetPath());
+       }
+ 
+       FilePath Application::GetExecutablePath ()
+       {
+-              return wstring (wxStandardPaths().GetExecutablePath());
++              return wstring (wxStandardPaths::Get().GetExecutablePath());
+       }
+ 
+       void Application::Initialize (UserInterfaceType::Enum type)
+diff --git a/src/Main/CommandLineInterface.cpp 
b/src/Main/CommandLineInterface.cpp
+index ccb0317..61cbd31 100644
+--- a/src/Main/CommandLineInterface.cpp
++++ b/src/Main/CommandLineInterface.cpp
+@@ -380,7 +380,7 @@ namespace TrueCrypt
+               ArgQuick = parser.Found (L"quick");
+ 
+               if (parser.Found (L"random-source", &str))
+-                      ArgRandomSourcePath = FilesystemPath (str);
++                      ArgRandomSourcePath = FilesystemPath (str.wc_str());
+ 
+               if (parser.Found (L"restore-headers"))
+               {
+@@ -471,7 +471,7 @@ namespace TrueCrypt
+ 
+                       if (param1IsFile)
+                       {
+-                              ArgFilePath.reset (new FilePath 
(parser.GetParam (0)));
++                              ArgFilePath.reset (new FilePath 
(parser.GetParam (0).wc_str()));
+                       }
+               }
+ 
+@@ -524,7 +524,7 @@ namespace TrueCrypt
+                                       arr.Add (L"");
+                                       continue;
+                               }
+-                              arr.Last() += token.empty() ? L',' : token;
++                              arr.Last() += token.empty() ? L"," : 
token.wc_str();
+                       }
+                       else
+                               arr.Add (token);
+@@ -562,12 +562,12 @@ namespace TrueCrypt
+                       {
+                               filteredVolumes.push_back (volume);
+                       }
+-                      else if (wxString (volume->Path) == 
pathFilter.GetFullPath())
++                      else if (wxString (wstring(volume->Path)) == 
pathFilter.GetFullPath())
+                       {
+                               filteredVolumes.push_back (volume);
+                       }
+-                      else if (wxString (volume->MountPoint) == 
pathFilter.GetFullPath()
+-                              || (wxString (volume->MountPoint) + 
wxFileName::GetPathSeparator()) == pathFilter.GetFullPath())
++                      else if (wxString (wstring(volume->MountPoint)) == 
pathFilter.GetFullPath()
++                              || (wxString (wstring(volume->MountPoint)) + 
wxFileName::GetPathSeparator()) == pathFilter.GetFullPath())
+                       {
+                               filteredVolumes.push_back (volume);
+                       }
+diff --git a/src/Main/Forms/MainFrame.cpp b/src/Main/Forms/MainFrame.cpp
+index 6100a7a..3443ea3 100644
+--- a/src/Main/Forms/MainFrame.cpp
++++ b/src/Main/Forms/MainFrame.cpp
+@@ -828,7 +828,7 @@ namespace TrueCrypt
+                       // File-hosted volumes
+                       if (!volume->Path.IsDevice() && !mountPoint.IsEmpty())
+                       {
+-                              if (wxString (volume->Path).Upper().StartsWith 
(wstring (mountPoint).c_str()))
++                              if (wxString 
(wstring(volume->Path)).Upper().StartsWith (wstring (mountPoint).c_str()))
+                               {
+                                       removedVolumes.push_back (volume);
+                                       continue;
+diff --git a/src/Main/Forms/SelectDirectoryWizardPage.cpp 
b/src/Main/Forms/SelectDirectoryWizardPage.cpp
+index a6a3ab0..1299e22 100644
+--- a/src/Main/Forms/SelectDirectoryWizardPage.cpp
++++ b/src/Main/Forms/SelectDirectoryWizardPage.cpp
+@@ -16,7 +16,7 @@ namespace TrueCrypt
+       {
+               if (!DirectoryTextCtrl->IsEmpty())
+               {
+-                      return FilesystemPath 
(DirectoryTextCtrl->GetValue()).IsDirectory();
++                      return FilesystemPath 
(DirectoryTextCtrl->GetValue().wc_str()).IsDirectory();
+               }
+ 
+               return false;
+diff --git a/src/Main/Forms/SelectDirectoryWizardPage.h 
b/src/Main/Forms/SelectDirectoryWizardPage.h
+index 52335fc..2ea8b0d 100644
+--- a/src/Main/Forms/SelectDirectoryWizardPage.h
++++ b/src/Main/Forms/SelectDirectoryWizardPage.h
+@@ -18,7 +18,7 @@ namespace TrueCrypt
+       public:
+               SelectDirectoryWizardPage (wxPanel* parent) : 
SelectDirectoryWizardPageBase (parent) { }
+ 
+-              DirectoryPath GetDirectory () const { return DirectoryPath 
(DirectoryTextCtrl->GetValue()); }
++              DirectoryPath GetDirectory () const { return DirectoryPath 
(DirectoryTextCtrl->GetValue().wc_str()); }
+               bool IsValid ();
+               void SetDirectory (const DirectoryPath &path) { 
DirectoryTextCtrl->SetValue (wstring (path)); }
+               void SetMaxStaticTextWidth (int width) { InfoStaticText->Wrap 
(width); }
+diff --git a/src/Main/GraphicUserInterface.cpp 
b/src/Main/GraphicUserInterface.cpp
+index 41eb780..64e9e4b 100644
+--- a/src/Main/GraphicUserInterface.cpp
++++ b/src/Main/GraphicUserInterface.cpp
+@@ -1384,7 +1384,7 @@ namespace TrueCrypt
+ #else
+                       L"",
+ #endif
+-                      L"", wxDD_DEFAULT_STYLE | (existingOnly ? 
wxDD_DIR_MUST_EXIST : 0), wxDefaultPosition, parent));
++                      L"", wxDD_DEFAULT_STYLE | (existingOnly ? 
wxDD_DIR_MUST_EXIST : 0), wxDefaultPosition, parent).wc_str());
+       }
+ 
+       FilePathList GraphicUserInterface::SelectFiles (wxWindow *parent, const 
wxString &caption, bool saveMode, bool allowMultiple, const list < pair 
<wstring, wstring> > &fileExtensions, const DirectoryPath &directory) const
+@@ -1428,14 +1428,14 @@ namespace TrueCrypt
+               if (dialog.ShowModal() == wxID_OK)
+               {
+                       if (!allowMultiple)
+-                              files.push_back (make_shared <FilePath> 
(dialog.GetPath()));
++                              files.push_back (make_shared <FilePath> 
(dialog.GetPath().wc_str()));
+                       else
+                       {
+                               wxArrayString paths;
+                               dialog.GetPaths (paths);
+ 
+                               foreach (const wxString &path, paths)
+-                                      files.push_back (make_shared <FilePath> 
(path));
++                                      files.push_back (make_shared <FilePath> 
(path.wc_str()));
+                       }
+               }
+ 
+diff --git a/src/Main/TextUserInterface.cpp b/src/Main/TextUserInterface.cpp
+index d9e93e6..c7af099 100644
+--- a/src/Main/TextUserInterface.cpp
++++ b/src/Main/TextUserInterface.cpp
+@@ -116,7 +116,7 @@ namespace TrueCrypt
+                       for (size_t i = 0; i < length && i < 
VolumePassword::MaxSize; ++i)
+                       {
+                               passwordBuf[i] = (wchar_t) passwordStr[i];
+-                              const_cast <wchar_t *> (passwordStr.c_str())[i] 
= L'X';
++                              const_cast <wchar_t *> 
(passwordStr.wc_str())[i] = L'X';
+                       }
+ 
+                       if (verify && verPhase)
+diff --git a/src/Main/UserPreferences.cpp b/src/Main/UserPreferences.cpp
+index e0e8233..6608f79 100644
+--- a/src/Main/UserPreferences.cpp
++++ b/src/Main/UserPreferences.cpp
+@@ -219,7 +219,7 @@ namespace TrueCrypt
+ 
+                       foreach_ref (const Keyfile &keyfile, DefaultKeyfiles)
+                       {
+-                              keyfilesXml.InnerNodes.push_back (XmlNode 
(L"keyfile", wxString (FilesystemPath (keyfile))));
++                              keyfilesXml.InnerNodes.push_back (XmlNode 
(L"keyfile", wxString (wstring(FilesystemPath (keyfile)))));
+                       }
+ 
+                       XmlWriter keyfileWriter (keyfilesCfgPath);
+--- a/src/Main/Forms/Forms.cpp
++++ b/src/Main/Forms/Forms.cpp
+@@ -263,8 +263,6 @@
+       VolumeStaticBoxSizer = new wxStaticBoxSizer( new wxStaticBox( 
MainPanel, wxID_ANY, _("Volume") ), wxVERTICAL );
+       
+       VolumeGridBagSizer = new wxGridBagSizer( 0, 0 );
+-      VolumeGridBagSizer->AddGrowableCol( 1 );
+-      VolumeGridBagSizer->AddGrowableRow( 0 );
+       VolumeGridBagSizer->SetFlexibleDirection( wxBOTH );
+       VolumeGridBagSizer->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
+       
+@@ -307,6 +305,8 @@
+       
+       VolumeGridBagSizer->Add( bSizer21, wxGBPosition( 1, 3 ), wxGBSpan( 1, 1 
), wxEXPAND, 5 );
+       
++      VolumeGridBagSizer->AddGrowableCol( 1 );
++      VolumeGridBagSizer->AddGrowableRow( 0 );
+       VolumeStaticBoxSizer->Add( VolumeGridBagSizer, 1, wxEXPAND|wxALL, 4 );
+       
+       LowStaticBoxSizer->Add( VolumeStaticBoxSizer, 1, wxEXPAND, 5 );
+@@ -1442,7 +1442,6 @@
+       bSizer54->Add( bSizer55, 1, wxEXPAND, 5 );
+       
+       FilesystemOptionsSizer = new wxGridBagSizer( 0, 0 );
+-      FilesystemOptionsSizer->AddGrowableCol( 1 );
+       FilesystemOptionsSizer->SetFlexibleDirection( wxBOTH );
+       FilesystemOptionsSizer->SetNonFlexibleGrowMode( 
wxFLEX_GROWMODE_SPECIFIED );
+       FilesystemOptionsSizer->SetEmptyCellSize( wxSize( 0,0 ) );
+@@ -1468,6 +1467,7 @@
+       FilesystemOptionsTextCtrl = new wxTextCtrl( m_panel8, wxID_ANY, 
wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
+       FilesystemOptionsSizer->Add( FilesystemOptionsTextCtrl, wxGBPosition( 
2, 1 ), wxGBSpan( 1, 2 ), 
wxALIGN_CENTER_VERTICAL|wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 );
+       
++      FilesystemOptionsSizer->AddGrowableCol( 1 );
+       bSizer54->Add( FilesystemOptionsSizer, 0, wxEXPAND, 5 );
+       
+       sbSizer28->Add( bSizer54, 0, wxEXPAND|wxBOTTOM, 5 );
+@@ -2892,7 +2892,6 @@
+       bSizer7 = new wxBoxSizer( wxVERTICAL );
+       
+       GridBagSizer = new wxGridBagSizer( 0, 0 );
+-      GridBagSizer->AddGrowableCol( 1 );
+       GridBagSizer->SetFlexibleDirection( wxBOTH );
+       GridBagSizer->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
+       GridBagSizer->SetEmptyCellSize( wxSize( 0,0 ) );
+@@ -2950,6 +2949,7 @@
+       
+       GridBagSizer->Add( PasswordPlaceholderSizer, wxGBPosition( 8, 1 ), 
wxGBSpan( 1, 2 ), wxTOP|wxEXPAND, 5 );
+       
++      GridBagSizer->AddGrowableCol( 1 );
+       bSizer7->Add( GridBagSizer, 1, wxALL|wxEXPAND, 5 );
+       
+       this->SetSizer( bSizer7 );
+--- a/src/Main/Forms/PreferencesDialog.h
++++ b/src/Main/Forms/PreferencesDialog.h
+@@ -26,7 +26,7 @@ namespace VeraCrypt
+       protected:
+               void OnAssignHotkeyButtonClick (wxCommandEvent& event);
+               void OnBackgroundTaskEnabledCheckBoxClick (wxCommandEvent& 
event);
+-              void OnCancelButtonClick (wxCommandEvent& event) { Close(); }
++              void OnCancelButtonClick (wxCommandEvent& event) { EndModal 
(wxID_CANCEL); }
+               void OnClose (wxCloseEvent& event);
+               void OnDismountOnPowerSavingCheckBoxClick (wxCommandEvent& 
event);
+               void OnDismountOnScreenSaverCheckBoxClick (wxCommandEvent& 
event);

Copied: truecrypt/repos/staging-x86_64/wxwidgets31.patch (from rev 349183, 
truecrypt/trunk/wxwidgets31.patch)
===================================================================
--- staging-x86_64/wxwidgets31.patch                            (rev 0)
+++ staging-x86_64/wxwidgets31.patch    2019-03-25 19:26:17 UTC (rev 349184)
@@ -0,0 +1,37 @@
+From 2c6e9fc15c6467d559cc5e212bd63b02f82640bb Mon Sep 17 00:00:00 2001
+From: Mounir IDRASSI <mounir.idra...@idrix.fr>
+Date: Sun, 26 Oct 2014 17:28:59 +0100
+Subject: [PATCH] Replace deprecated wxTextValidator::SetBellOnError whose
+ logic whose inverted by the new wxTextValidator::SuppressBellOnError. Since
+ its used in constructor only for TC_WINDOWS, we do the same in the
+ destructor.
+
+---
+ src/Main/Forms/PreferencesDialog.cpp | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/src/Main/Forms/PreferencesDialog.cpp 
b/src/Main/Forms/PreferencesDialog.cpp
+index 50c9c300c..e22e304b6 100644
+--- a/src/Main/Forms/PreferencesDialog.cpp
++++ b/src/Main/Forms/PreferencesDialog.cpp
+@@ -154,7 +154,7 @@ namespace VeraCrypt
+               Gui->SetListCtrlColumnWidths (HotkeyListCtrl, colPermilles);
+ 
+               RestoreValidatorBell = !wxTextValidator::IsSilent();
+-              wxTextValidator::SetBellOnError (true);
++              wxTextValidator::SuppressBellOnError (true);
+               HotkeyTextCtrl->SetValidator (wxTextValidator 
(wxFILTER_INCLUDE_CHAR_LIST));
+ 
+               UpdateHotkeyButtons();
+@@ -203,8 +203,10 @@ namespace VeraCrypt
+ 
+       PreferencesDialog::~PreferencesDialog ()
+       {
++#ifdef TC_WINDOWS
+               if (RestoreValidatorBell)
+-                      wxTextValidator::SetBellOnError (false);
++                      wxTextValidator::SuppressBellOnError (false);
++#endif
+       }
+ 
+       void PreferencesDialog::SelectPage (wxPanel *page)

Copied: truecrypt/repos/staging-x86_64/xdg-open.patch (from rev 349183, 
truecrypt/trunk/xdg-open.patch)
===================================================================
--- staging-x86_64/xdg-open.patch                               (rev 0)
+++ staging-x86_64/xdg-open.patch       2019-03-25 19:26:17 UTC (rev 349184)
@@ -0,0 +1,81 @@
+From ad4af09d884e1727750571f7679e8679b8027a1c Mon Sep 17 00:00:00 2001
+From: Mounir IDRASSI <mounir.idra...@idrix.fr>
+Date: Sun, 8 Feb 2015 13:45:15 +0100
+Subject: [PATCH] Linux: When not under Gnome/KDE, use xdg-open to open the
+ mounted volume if it is available.
+
+---
+ src/Main/UserInterface.cpp | 18 +++++++++++++++++-
+ 1 file changed, 17 insertions(+), 1 deletion(-)
+
+diff --git a/src/Main/UserInterface.cpp b/src/Main/UserInterface.cpp
+index 177a4e9..39c4274 100644
+--- a/src/Main/UserInterface.cpp
++++ b/src/Main/UserInterface.cpp
+@@ -832,7 +832,7 @@ namespace VeraCrypt
+               // MIME handler for directory seems to be unavailable through 
wxWidgets
+               wxString desktop = GetTraits()->GetDesktopEnvironment();
+ 
+-              if (desktop == L"GNOME" || desktop.empty())
++              if (desktop == L"GNOME")
+               {
+                       args.push_back ("--no-default-window");
+                       args.push_back ("--no-desktop");
+@@ -865,6 +865,22 @@ namespace VeraCrypt
+                               catch (exception &e) { ShowError (e); }
+                       }
+               }
++              else if (wxFileName::IsFileExecutable 
(wxT("/usr/bin/xdg-open")))
++              {
++                      // Fallback on the standard xdg-open command 
++                      // which is not always available by default
++                      args.push_back (string (path));
++                      try
++                      {
++                              Process::Execute ("xdg-open", args, 2000);
++                      }
++                      catch (TimeOut&) { }
++                      catch (exception &e) { ShowError (e); }
++              }
++              else
++              {
++                      ShowWarning (wxT("Unable to find a file manager to open 
the mounted volume"));
++              }
+ #endif
+       }
+ 
+From 3a9db8d98c1301726bdf26af9698e7cc61a46f71 Mon Sep 17 00:00:00 2001
+From: Mounir IDRASSI <mounir.idra...@idrix.fr>
+Date: Wed, 2 Dec 2015 11:10:30 +0100
+Subject: [PATCH] Linux: fix Nautilus not detected as file manager on some
+ Gnome based destributions.
+
+---
+ src/Main/UserInterface.cpp | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/src/Main/UserInterface.cpp b/src/Main/UserInterface.cpp
+index 73c9914..2be5bc7 100644
+--- a/src/Main/UserInterface.cpp
++++ b/src/Main/UserInterface.cpp
+@@ -834,8 +834,10 @@ namespace VeraCrypt
+ #else
+               // MIME handler for directory seems to be unavailable through 
wxWidgets
+               wxString desktop = GetTraits()->GetDesktopEnvironment();
++              bool xdgOpenPresent = wxFileName::IsFileExecutable 
(wxT("/usr/bin/xdg-open"));
++              bool nautilusPresent = wxFileName::IsFileExecutable 
(wxT("/usr/bin/nautilus"));
+ 
+-              if (desktop == L"GNOME")
++              if (desktop == L"GNOME" || (desktop.empty() && !xdgOpenPresent 
&& nautilusPresent))
+               {
+                       args.push_back ("--no-default-window");
+                       args.push_back ("--no-desktop");
+@@ -868,7 +870,7 @@ namespace VeraCrypt
+                               catch (exception &e) { ShowError (e); }
+                       }
+               }
+-              else if (wxFileName::IsFileExecutable 
(wxT("/usr/bin/xdg-open")))
++              else if (xdgOpenPresent)
+               {
+                       // Fallback on the standard xdg-open command 
+                       // which is not always available by default

Reply via email to