Date: Friday, January 20, 2017 @ 17:12:50
  Author: anthraxx
Revision: 287023

upgpkg: truecrypt 1:7.1a-5 (wxgtk>=3 compatibility)

backport "open directory" patch for FS#38477

Added:
  truecrypt/trunk/wxwidgets3.patch
  truecrypt/trunk/xdg-open.patch
Modified:
  truecrypt/trunk/PKGBUILD

------------------+
 PKGBUILD         |   16 ++-
 wxwidgets3.patch |  249 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 xdg-open.patch   |   81 +++++++++++++++++
 3 files changed, 341 insertions(+), 5 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD    2017-01-20 15:46:57 UTC (rev 287022)
+++ PKGBUILD    2017-01-20 17:12:50 UTC (rev 287023)
@@ -4,13 +4,13 @@
 
 pkgname=truecrypt
 pkgver=7.1a
-pkgrel=4
+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' 'wxgtk2.8>=2.8.9' 'libsm' 'device-mapper')
+depends=('fuse2>=2.8.0' 'wxgtk' 'libsm' 'device-mapper')
 optdepends=('sudo: mounting encrypted volumes as nonroot users')
 makedepends=('nasm')
 conflicts=('truecrypt-utils')
@@ -23,7 +23,9 @@
         truecrypt-arch-detection.patch
         gcc6.patch
         fix-invalid-characters.patch
-        no-exec-stack.patch)
+        no-exec-stack.patch
+        wxwidgets3.patch
+        xdg-open.patch)
 
sha512sums=('b5e766023168015cb91bfd85c9e2621055dd98408215e02704775861b5070c5a0234a00c64c1bf7faa34e6d0b51ac71cd36169dd7a6f84d7a34ad0cfa304796a'
             'SKIP'
             
'd69d90040da5bc93f91041ed9404f1614a3b1bdc8eddc2bbbd19367f12d2416a6f3af8b0071d77e1273d627148c63ebe7ebe332878fbe9adb8ae33dcc723f473'
@@ -31,7 +33,9 @@
             
'fac6963c65720f0b13486ff22bdcc2e31e78c39ede2b9561b2c4037ef2c0375f04c4d51dc6067c37aaeb664c3ed70e5747488389737c41807680750c26a8f084'
             
'84175a3677f20b2b03ab29b017b9deecb517a58a640cf667b503cc9375c104b9c0a5d5ea4b3537ba7f12530054a456b466df0afdd935714cd43034b8e6cb2b7c'
             
'd52826572178a471bb608fd4991766f4f9fa7c5cbf3659922372feb9fdfcbab596d5f1360e30f66613681619672d0be6c5457f5617f5fb1f84061de779831f96'
-            
'c64f9255303a521b4e531ebea574befe80a9f193c9aa42fd9cb552e56d087815ca161b50b593e7c3ede10a65c67dc36d0447dbffb0f4d4614f181a95759c2f79')
+            
'c64f9255303a521b4e531ebea574befe80a9f193c9aa42fd9cb552e56d087815ca161b50b593e7c3ede10a65c67dc36d0447dbffb0f4d4614f181a95759c2f79'
+            
'f5dcbcd046489b52657fd99ec1d4d926883414b450af5bbd90890b210988f75055346c9276526486e9db00bffd50926e01c4f17da18144ad903fb40d81043769'
+            
'e60f780bbd2d72ff86ce14df6bda929e696c825f20ccc54bee74c6fc85a98cbf73ccfdb311f6e33c92ef3f7e9095907ab98d62cfe067ab6254513731e9d69ab7')
 validpgpkeys=('C5F4BAC4A7B22DB8B8F85538E3BA73CAF0D6B1E0') # TrueCrypt 
Foundation
 
 prepare() {
@@ -40,12 +44,14 @@
   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-2.8 \
+    WX_CONFIG=/usr/bin/wx-config \
     TC_EXTRA_LFLAGS+="-ldl ${LDFLAGS}" \
     TC_EXTRA_CXXFLAGS="${CXXFLAGS}" \
     TC_EXTRA_CFLAGS="${CFLAGS}"

Added: wxwidgets3.patch
===================================================================
--- wxwidgets3.patch                            (rev 0)
+++ wxwidgets3.patch    2017-01-20 17:12:50 UTC (rev 287023)
@@ -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);

Added: xdg-open.patch
===================================================================
--- xdg-open.patch                              (rev 0)
+++ xdg-open.patch      2017-01-20 17:12:50 UTC (rev 287023)
@@ -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