[arch-commits] Commit in truecrypt/repos (28 files)

Levente Polyak anthraxx at archlinux.org
Fri Jan 20 17:13:06 UTC 2017


    Date: Friday, January 20, 2017 @ 17:13:06
  Author: anthraxx
Revision: 287024

archrelease: copy trunk to extra-i686, extra-x86_64

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

---------------------------------------------+
 /PKGBUILD                                   |  136 ++++++++++++++
 /fix-invalid-characters.patch               |  108 +++++++++++
 /gcc6.patch                                 |  122 ++++++++++++
 /no-exec-stack.patch                        |  120 ++++++++++++
 /truecrypt-arch-detection.patch             |   30 +++
 /truecrypt.desktop                          |   18 +
 extra-i686/PKGBUILD                         |   62 ------
 extra-i686/fix-invalid-characters.patch     |   54 -----
 extra-i686/gcc6.patch                       |   61 ------
 extra-i686/no-exec-stack.patch              |   60 ------
 extra-i686/truecrypt-arch-detection.patch   |   15 -
 extra-i686/truecrypt.desktop                |    9 
 extra-i686/wxwidgets3.patch                 |  249 ++++++++++++++++++++++++++
 extra-i686/xdg-open.patch                   |   81 ++++++++
 extra-x86_64/PKGBUILD                       |   62 ------
 extra-x86_64/fix-invalid-characters.patch   |   54 -----
 extra-x86_64/gcc6.patch                     |   61 ------
 extra-x86_64/no-exec-stack.patch            |   60 ------
 extra-x86_64/truecrypt-arch-detection.patch |   15 -
 extra-x86_64/truecrypt.desktop              |    9 
 extra-x86_64/wxwidgets3.patch               |  249 ++++++++++++++++++++++++++
 extra-x86_64/xdg-open.patch                 |   81 ++++++++
 22 files changed, 1194 insertions(+), 522 deletions(-)

Deleted: extra-i686/PKGBUILD
===================================================================
--- extra-i686/PKGBUILD	2017-01-20 17:12:50 UTC (rev 287023)
+++ extra-i686/PKGBUILD	2017-01-20 17:13:06 UTC (rev 287024)
@@ -1,62 +0,0 @@
-# Maintainer: Levente Polyak <anthraxx[at]archlinux[dot]org>
-# Maintainer: Rémy Oudompheng <remy at archlinux.org>
-# Contributor: Paul Mattal <paul.archlinux.org>
-
-pkgname=truecrypt
-pkgver=7.1a
-pkgrel=4
-epoch=1
-pkgdesc='Free open-source cross-platform disk encryption software'
-url='http://www.truecrypt.org/'
-arch=('i686' 'x86_64')
-license=('custom:TrueCrypt')
-depends=('fuse>=2.8.0' 'wxgtk2.8>=2.8.9' '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)
-sha512sums=('b5e766023168015cb91bfd85c9e2621055dd98408215e02704775861b5070c5a0234a00c64c1bf7faa34e6d0b51ac71cd36169dd7a6f84d7a34ad0cfa304796a'
-            'SKIP'
-            'd69d90040da5bc93f91041ed9404f1614a3b1bdc8eddc2bbbd19367f12d2416a6f3af8b0071d77e1273d627148c63ebe7ebe332878fbe9adb8ae33dcc723f473'
-            '1ac13f1888319d6d2f10e03a61e22d68e5fe4a61bbdf8ad364a0fe6f6712cc53dbc1a98fff3fda2ecd57dbe67fcc24fb358c0805ab47eaa12cf14d48f1067e51'
-            'fac6963c65720f0b13486ff22bdcc2e31e78c39ede2b9561b2c4037ef2c0375f04c4d51dc6067c37aaeb664c3ed70e5747488389737c41807680750c26a8f084'
-            '84175a3677f20b2b03ab29b017b9deecb517a58a640cf667b503cc9375c104b9c0a5d5ea4b3537ba7f12530054a456b466df0afdd935714cd43034b8e6cb2b7c'
-            'd52826572178a471bb608fd4991766f4f9fa7c5cbf3659922372feb9fdfcbab596d5f1360e30f66613681619672d0be6c5457f5617f5fb1f84061de779831f96'
-            'c64f9255303a521b4e531ebea574befe80a9f193c9aa42fd9cb552e56d087815ca161b50b593e7c3ede10a65c67dc36d0447dbffb0f4d4614f181a95759c2f79')
-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"
-}
-
-build() {
-  cd ${pkgname}-${pkgver}-source
-  make PKCS11_INC="${srcdir}/pkcs-2.20" \
-    WX_CONFIG=/usr/bin/wx-config-2.8 \
-    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/extra-i686/PKGBUILD (from rev 287023, truecrypt/trunk/PKGBUILD)
===================================================================
--- extra-i686/PKGBUILD	                        (rev 0)
+++ extra-i686/PKGBUILD	2017-01-20 17:13:06 UTC (rev 287024)
@@ -0,0 +1,68 @@
+# Maintainer: Levente Polyak <anthraxx[at]archlinux[dot]org>
+# Maintainer: Rémy Oudompheng <remy at archlinux.org>
+# Contributor: Paul Mattal <paul.archlinux.org>
+
+pkgname=truecrypt
+pkgver=7.1a
+pkgrel=5
+epoch=1
+pkgdesc='Free open-source cross-platform disk encryption software'
+url='http://www.truecrypt.org/'
+arch=('i686' '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
+        xdg-open.patch)
+sha512sums=('b5e766023168015cb91bfd85c9e2621055dd98408215e02704775861b5070c5a0234a00c64c1bf7faa34e6d0b51ac71cd36169dd7a6f84d7a34ad0cfa304796a'
+            'SKIP'
+            'd69d90040da5bc93f91041ed9404f1614a3b1bdc8eddc2bbbd19367f12d2416a6f3af8b0071d77e1273d627148c63ebe7ebe332878fbe9adb8ae33dcc723f473'
+            '1ac13f1888319d6d2f10e03a61e22d68e5fe4a61bbdf8ad364a0fe6f6712cc53dbc1a98fff3fda2ecd57dbe67fcc24fb358c0805ab47eaa12cf14d48f1067e51'
+            'fac6963c65720f0b13486ff22bdcc2e31e78c39ede2b9561b2c4037ef2c0375f04c4d51dc6067c37aaeb664c3ed70e5747488389737c41807680750c26a8f084'
+            '84175a3677f20b2b03ab29b017b9deecb517a58a640cf667b503cc9375c104b9c0a5d5ea4b3537ba7f12530054a456b466df0afdd935714cd43034b8e6cb2b7c'
+            'd52826572178a471bb608fd4991766f4f9fa7c5cbf3659922372feb9fdfcbab596d5f1360e30f66613681619672d0be6c5457f5617f5fb1f84061de779831f96'
+            'c64f9255303a521b4e531ebea574befe80a9f193c9aa42fd9cb552e56d087815ca161b50b593e7c3ede10a65c67dc36d0447dbffb0f4d4614f181a95759c2f79'
+            'f5dcbcd046489b52657fd99ec1d4d926883414b450af5bbd90890b210988f75055346c9276526486e9db00bffd50926e01c4f17da18144ad903fb40d81043769'
+            '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}/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:

Deleted: extra-i686/fix-invalid-characters.patch
===================================================================
--- extra-i686/fix-invalid-characters.patch	2017-01-20 17:12:50 UTC (rev 287023)
+++ extra-i686/fix-invalid-characters.patch	2017-01-20 17:13:06 UTC (rev 287024)
@@ -1,54 +0,0 @@
-From 646679da4d79bf7f8af22c44c7ae8498086a88a6 Mon Sep 17 00:00:00 2001
-From: Mounir IDRASSI <mounir.idrassi at 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/extra-i686/fix-invalid-characters.patch (from rev 287023, truecrypt/trunk/fix-invalid-characters.patch)
===================================================================
--- extra-i686/fix-invalid-characters.patch	                        (rev 0)
+++ extra-i686/fix-invalid-characters.patch	2017-01-20 17:13:06 UTC (rev 287024)
@@ -0,0 +1,54 @@
+From 646679da4d79bf7f8af22c44c7ae8498086a88a6 Mon Sep 17 00:00:00 2001
+From: Mounir IDRASSI <mounir.idrassi at 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)

Deleted: extra-i686/gcc6.patch
===================================================================
--- extra-i686/gcc6.patch	2017-01-20 17:12:50 UTC (rev 287023)
+++ extra-i686/gcc6.patch	2017-01-20 17:13:06 UTC (rev 287024)
@@ -1,61 +0,0 @@
---- 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/extra-i686/gcc6.patch (from rev 287023, truecrypt/trunk/gcc6.patch)
===================================================================
--- extra-i686/gcc6.patch	                        (rev 0)
+++ extra-i686/gcc6.patch	2017-01-20 17:13:06 UTC (rev 287024)
@@ -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);
+ 

Deleted: extra-i686/no-exec-stack.patch
===================================================================
--- extra-i686/no-exec-stack.patch	2017-01-20 17:12:50 UTC (rev 287023)
+++ extra-i686/no-exec-stack.patch	2017-01-20 17:13:06 UTC (rev 287024)
@@ -1,60 +0,0 @@
---- 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/extra-i686/no-exec-stack.patch (from rev 287023, truecrypt/trunk/no-exec-stack.patch)
===================================================================
--- extra-i686/no-exec-stack.patch	                        (rev 0)
+++ extra-i686/no-exec-stack.patch	2017-01-20 17:13:06 UTC (rev 287024)
@@ -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

Deleted: extra-i686/truecrypt-arch-detection.patch
===================================================================
--- extra-i686/truecrypt-arch-detection.patch	2017-01-20 17:12:50 UTC (rev 287023)
+++ extra-i686/truecrypt-arch-detection.patch	2017-01-20 17:13:06 UTC (rev 287024)
@@ -1,15 +0,0 @@
-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/extra-i686/truecrypt-arch-detection.patch (from rev 287023, truecrypt/trunk/truecrypt-arch-detection.patch)
===================================================================
--- extra-i686/truecrypt-arch-detection.patch	                        (rev 0)
+++ extra-i686/truecrypt-arch-detection.patch	2017-01-20 17:13:06 UTC (rev 287024)
@@ -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

Deleted: extra-i686/truecrypt.desktop
===================================================================
--- extra-i686/truecrypt.desktop	2017-01-20 17:12:50 UTC (rev 287023)
+++ extra-i686/truecrypt.desktop	2017-01-20 17:13:06 UTC (rev 287024)
@@ -1,9 +0,0 @@
-[Desktop Entry]
-Type=Application
-Exec=truecrypt
-Icon=truecrypt
-Comment=On-the-fly encryption
-Terminal=false
-Name=TrueCrypt
-StartupNotify=true
-Categories=System;

Copied: truecrypt/repos/extra-i686/truecrypt.desktop (from rev 287023, truecrypt/trunk/truecrypt.desktop)
===================================================================
--- extra-i686/truecrypt.desktop	                        (rev 0)
+++ extra-i686/truecrypt.desktop	2017-01-20 17:13:06 UTC (rev 287024)
@@ -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/extra-i686/wxwidgets3.patch (from rev 287023, truecrypt/trunk/wxwidgets3.patch)
===================================================================
--- extra-i686/wxwidgets3.patch	                        (rev 0)
+++ extra-i686/wxwidgets3.patch	2017-01-20 17:13:06 UTC (rev 287024)
@@ -0,0 +1,249 @@
+From 084a8ee85c24fbc7077d6c789c97aacdb31b4e39 Mon Sep 17 00:00:00 2001
+From: Mounir IDRASSI <mounir.idrassi at 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/extra-i686/xdg-open.patch (from rev 287023, truecrypt/trunk/xdg-open.patch)
===================================================================
--- extra-i686/xdg-open.patch	                        (rev 0)
+++ extra-i686/xdg-open.patch	2017-01-20 17:13:06 UTC (rev 287024)
@@ -0,0 +1,81 @@
+From ad4af09d884e1727750571f7679e8679b8027a1c Mon Sep 17 00:00:00 2001
+From: Mounir IDRASSI <mounir.idrassi at 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.idrassi at 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

Deleted: extra-x86_64/PKGBUILD
===================================================================
--- extra-x86_64/PKGBUILD	2017-01-20 17:12:50 UTC (rev 287023)
+++ extra-x86_64/PKGBUILD	2017-01-20 17:13:06 UTC (rev 287024)
@@ -1,62 +0,0 @@
-# Maintainer: Levente Polyak <anthraxx[at]archlinux[dot]org>
-# Maintainer: Rémy Oudompheng <remy at archlinux.org>
-# Contributor: Paul Mattal <paul.archlinux.org>
-
-pkgname=truecrypt
-pkgver=7.1a
-pkgrel=4
-epoch=1
-pkgdesc='Free open-source cross-platform disk encryption software'
-url='http://www.truecrypt.org/'
-arch=('i686' 'x86_64')
-license=('custom:TrueCrypt')
-depends=('fuse>=2.8.0' 'wxgtk2.8>=2.8.9' '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)
-sha512sums=('b5e766023168015cb91bfd85c9e2621055dd98408215e02704775861b5070c5a0234a00c64c1bf7faa34e6d0b51ac71cd36169dd7a6f84d7a34ad0cfa304796a'
-            'SKIP'
-            'd69d90040da5bc93f91041ed9404f1614a3b1bdc8eddc2bbbd19367f12d2416a6f3af8b0071d77e1273d627148c63ebe7ebe332878fbe9adb8ae33dcc723f473'
-            '1ac13f1888319d6d2f10e03a61e22d68e5fe4a61bbdf8ad364a0fe6f6712cc53dbc1a98fff3fda2ecd57dbe67fcc24fb358c0805ab47eaa12cf14d48f1067e51'
-            'fac6963c65720f0b13486ff22bdcc2e31e78c39ede2b9561b2c4037ef2c0375f04c4d51dc6067c37aaeb664c3ed70e5747488389737c41807680750c26a8f084'
-            '84175a3677f20b2b03ab29b017b9deecb517a58a640cf667b503cc9375c104b9c0a5d5ea4b3537ba7f12530054a456b466df0afdd935714cd43034b8e6cb2b7c'
-            'd52826572178a471bb608fd4991766f4f9fa7c5cbf3659922372feb9fdfcbab596d5f1360e30f66613681619672d0be6c5457f5617f5fb1f84061de779831f96'
-            'c64f9255303a521b4e531ebea574befe80a9f193c9aa42fd9cb552e56d087815ca161b50b593e7c3ede10a65c67dc36d0447dbffb0f4d4614f181a95759c2f79')
-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"
-}
-
-build() {
-  cd ${pkgname}-${pkgver}-source
-  make PKCS11_INC="${srcdir}/pkcs-2.20" \
-    WX_CONFIG=/usr/bin/wx-config-2.8 \
-    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/extra-x86_64/PKGBUILD (from rev 287023, truecrypt/trunk/PKGBUILD)
===================================================================
--- extra-x86_64/PKGBUILD	                        (rev 0)
+++ extra-x86_64/PKGBUILD	2017-01-20 17:13:06 UTC (rev 287024)
@@ -0,0 +1,68 @@
+# Maintainer: Levente Polyak <anthraxx[at]archlinux[dot]org>
+# Maintainer: Rémy Oudompheng <remy at archlinux.org>
+# Contributor: Paul Mattal <paul.archlinux.org>
+
+pkgname=truecrypt
+pkgver=7.1a
+pkgrel=5
+epoch=1
+pkgdesc='Free open-source cross-platform disk encryption software'
+url='http://www.truecrypt.org/'
+arch=('i686' '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
+        xdg-open.patch)
+sha512sums=('b5e766023168015cb91bfd85c9e2621055dd98408215e02704775861b5070c5a0234a00c64c1bf7faa34e6d0b51ac71cd36169dd7a6f84d7a34ad0cfa304796a'
+            'SKIP'
+            'd69d90040da5bc93f91041ed9404f1614a3b1bdc8eddc2bbbd19367f12d2416a6f3af8b0071d77e1273d627148c63ebe7ebe332878fbe9adb8ae33dcc723f473'
+            '1ac13f1888319d6d2f10e03a61e22d68e5fe4a61bbdf8ad364a0fe6f6712cc53dbc1a98fff3fda2ecd57dbe67fcc24fb358c0805ab47eaa12cf14d48f1067e51'
+            'fac6963c65720f0b13486ff22bdcc2e31e78c39ede2b9561b2c4037ef2c0375f04c4d51dc6067c37aaeb664c3ed70e5747488389737c41807680750c26a8f084'
+            '84175a3677f20b2b03ab29b017b9deecb517a58a640cf667b503cc9375c104b9c0a5d5ea4b3537ba7f12530054a456b466df0afdd935714cd43034b8e6cb2b7c'
+            'd52826572178a471bb608fd4991766f4f9fa7c5cbf3659922372feb9fdfcbab596d5f1360e30f66613681619672d0be6c5457f5617f5fb1f84061de779831f96'
+            'c64f9255303a521b4e531ebea574befe80a9f193c9aa42fd9cb552e56d087815ca161b50b593e7c3ede10a65c67dc36d0447dbffb0f4d4614f181a95759c2f79'
+            'f5dcbcd046489b52657fd99ec1d4d926883414b450af5bbd90890b210988f75055346c9276526486e9db00bffd50926e01c4f17da18144ad903fb40d81043769'
+            '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}/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:

Deleted: extra-x86_64/fix-invalid-characters.patch
===================================================================
--- extra-x86_64/fix-invalid-characters.patch	2017-01-20 17:12:50 UTC (rev 287023)
+++ extra-x86_64/fix-invalid-characters.patch	2017-01-20 17:13:06 UTC (rev 287024)
@@ -1,54 +0,0 @@
-From 646679da4d79bf7f8af22c44c7ae8498086a88a6 Mon Sep 17 00:00:00 2001
-From: Mounir IDRASSI <mounir.idrassi at 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/extra-x86_64/fix-invalid-characters.patch (from rev 287023, truecrypt/trunk/fix-invalid-characters.patch)
===================================================================
--- extra-x86_64/fix-invalid-characters.patch	                        (rev 0)
+++ extra-x86_64/fix-invalid-characters.patch	2017-01-20 17:13:06 UTC (rev 287024)
@@ -0,0 +1,54 @@
+From 646679da4d79bf7f8af22c44c7ae8498086a88a6 Mon Sep 17 00:00:00 2001
+From: Mounir IDRASSI <mounir.idrassi at 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)

Deleted: extra-x86_64/gcc6.patch
===================================================================
--- extra-x86_64/gcc6.patch	2017-01-20 17:12:50 UTC (rev 287023)
+++ extra-x86_64/gcc6.patch	2017-01-20 17:13:06 UTC (rev 287024)
@@ -1,61 +0,0 @@
---- 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/extra-x86_64/gcc6.patch (from rev 287023, truecrypt/trunk/gcc6.patch)
===================================================================
--- extra-x86_64/gcc6.patch	                        (rev 0)
+++ extra-x86_64/gcc6.patch	2017-01-20 17:13:06 UTC (rev 287024)
@@ -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);
+ 

Deleted: extra-x86_64/no-exec-stack.patch
===================================================================
--- extra-x86_64/no-exec-stack.patch	2017-01-20 17:12:50 UTC (rev 287023)
+++ extra-x86_64/no-exec-stack.patch	2017-01-20 17:13:06 UTC (rev 287024)
@@ -1,60 +0,0 @@
---- 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/extra-x86_64/no-exec-stack.patch (from rev 287023, truecrypt/trunk/no-exec-stack.patch)
===================================================================
--- extra-x86_64/no-exec-stack.patch	                        (rev 0)
+++ extra-x86_64/no-exec-stack.patch	2017-01-20 17:13:06 UTC (rev 287024)
@@ -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

Deleted: extra-x86_64/truecrypt-arch-detection.patch
===================================================================
--- extra-x86_64/truecrypt-arch-detection.patch	2017-01-20 17:12:50 UTC (rev 287023)
+++ extra-x86_64/truecrypt-arch-detection.patch	2017-01-20 17:13:06 UTC (rev 287024)
@@ -1,15 +0,0 @@
-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/extra-x86_64/truecrypt-arch-detection.patch (from rev 287023, truecrypt/trunk/truecrypt-arch-detection.patch)
===================================================================
--- extra-x86_64/truecrypt-arch-detection.patch	                        (rev 0)
+++ extra-x86_64/truecrypt-arch-detection.patch	2017-01-20 17:13:06 UTC (rev 287024)
@@ -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

Deleted: extra-x86_64/truecrypt.desktop
===================================================================
--- extra-x86_64/truecrypt.desktop	2017-01-20 17:12:50 UTC (rev 287023)
+++ extra-x86_64/truecrypt.desktop	2017-01-20 17:13:06 UTC (rev 287024)
@@ -1,9 +0,0 @@
-[Desktop Entry]
-Type=Application
-Exec=truecrypt
-Icon=truecrypt
-Comment=On-the-fly encryption
-Terminal=false
-Name=TrueCrypt
-StartupNotify=true
-Categories=System;

Copied: truecrypt/repos/extra-x86_64/truecrypt.desktop (from rev 287023, truecrypt/trunk/truecrypt.desktop)
===================================================================
--- extra-x86_64/truecrypt.desktop	                        (rev 0)
+++ extra-x86_64/truecrypt.desktop	2017-01-20 17:13:06 UTC (rev 287024)
@@ -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/extra-x86_64/wxwidgets3.patch (from rev 287023, truecrypt/trunk/wxwidgets3.patch)
===================================================================
--- extra-x86_64/wxwidgets3.patch	                        (rev 0)
+++ extra-x86_64/wxwidgets3.patch	2017-01-20 17:13:06 UTC (rev 287024)
@@ -0,0 +1,249 @@
+From 084a8ee85c24fbc7077d6c789c97aacdb31b4e39 Mon Sep 17 00:00:00 2001
+From: Mounir IDRASSI <mounir.idrassi at 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/extra-x86_64/xdg-open.patch (from rev 287023, truecrypt/trunk/xdg-open.patch)
===================================================================
--- extra-x86_64/xdg-open.patch	                        (rev 0)
+++ extra-x86_64/xdg-open.patch	2017-01-20 17:13:06 UTC (rev 287024)
@@ -0,0 +1,81 @@
+From ad4af09d884e1727750571f7679e8679b8027a1c Mon Sep 17 00:00:00 2001
+From: Mounir IDRASSI <mounir.idrassi at 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.idrassi at 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



More information about the arch-commits mailing list