diff -Nru truecrypt-7.1a/debian/changelog truecrypt-7.1a/debian/changelog --- truecrypt-7.1a/debian/changelog 2016-05-18 11:55:26.000000000 +0000 +++ truecrypt-7.1a/debian/changelog 2017-02-19 12:54:35.000000000 +0000 @@ -1,8 +1,26 @@ -truecrypt (7.1a-3ppa1~xenial1) xenial; urgency=medium +truecrypt (7.1a-6ppa1~xenial1) xenial; urgency=medium * Automated backport upload; no source changes. - -- Alexander Pozdnyakov Wed, 18 May 2016 14:55:26 +0300 + -- Alexander Pozdnyakov Sun, 19 Feb 2017 15:54:35 +0300 + +truecrypt (7.1a-6) unstable; urgency=medium + + * small fix + + -- Alexander Pozdnyakov Sun, 19 Feb 2017 13:48:37 +0300 + +truecrypt (7.1a-5) unstable; urgency=medium + + * Recompile + + -- Alexander Pozdnyakov Sat, 18 Feb 2017 10:59:27 +0300 + +truecrypt (7.1a-4) unstable; urgency=medium + + * build - Ubuntu 16.10 + + -- Alexander Pozdnyakov Sun, 30 Oct 2016 21:18:37 +0300 truecrypt (7.1a-3) unstable; urgency=medium diff -Nru truecrypt-7.1a/debian/control truecrypt-7.1a/debian/control --- truecrypt-7.1a/debian/control 2016-05-17 14:28:44.000000000 +0000 +++ truecrypt-7.1a/debian/control 2017-02-18 07:32:30.000000000 +0000 @@ -9,9 +9,7 @@ libsm6, nasm, pkg-config, - libsm-dev, - gcc-4.9 | gcc-4.8 | gcc-4.7, - g++-4.9 | g++-4.8 | g++-4.7 + libsm-dev Standards-Version: 3.9.8 Homepage: http://www.truecrypt.org/ diff -Nru truecrypt-7.1a/debian/copyright truecrypt-7.1a/debian/copyright --- truecrypt-7.1a/debian/copyright 2016-05-15 21:40:55.000000000 +0000 +++ truecrypt-7.1a/debian/copyright 2017-02-18 07:59:07.000000000 +0000 @@ -526,7 +526,8 @@ distribution. Files: debian/* -Copyright: 2010-2012, Alexander Pozdnyakov +Copyright: 2010-2017, Alexander Pozdnyakov + 2013-2017, Stefan Sundin License: GPL-3+ This package is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff -Nru truecrypt-7.1a/debian/patches/EXTRA_LIBS.diff truecrypt-7.1a/debian/patches/EXTRA_LIBS.diff --- truecrypt-7.1a/debian/patches/EXTRA_LIBS.diff 2016-05-16 18:00:54.000000000 +0000 +++ truecrypt-7.1a/debian/patches/EXTRA_LIBS.diff 1970-01-01 00:00:00.000000000 +0000 @@ -1,11 +0,0 @@ ---- truecrypt-7.1a.orig/Main/Main.make -+++ truecrypt-7.1a/Main/Main.make -@@ -105,7 +105,7 @@ TC_VERSION = $(shell grep VERSION_STRING - - $(APPNAME): $(LIBS) $(OBJS) - @echo Linking $@ -- $(CXX) -o $(APPNAME) $(LFLAGS) $(OBJS) $(LIBS) $(FUSE_LIBS) $(WX_LIBS) -+ $(CXX) -o $(APPNAME) $(LFLAGS) $(OBJS) $(LIBS) $(FUSE_LIBS) $(WX_LIBS) $(EXTRA_LIBS) - - ifeq "$(TC_BUILD_CONFIG)" "Release" - ifndef NOSTRIP diff -Nru truecrypt-7.1a/debian/patches/fix-configure-for-multiarch truecrypt-7.1a/debian/patches/fix-configure-for-multiarch --- truecrypt-7.1a/debian/patches/fix-configure-for-multiarch 1970-01-01 00:00:00.000000000 +0000 +++ truecrypt-7.1a/debian/patches/fix-configure-for-multiarch 2016-05-15 22:23:11.000000000 +0000 @@ -0,0 +1,16 @@ +Crude debian-specific fix by just patching generated configure script. + +There's a patch for this issue in upstream's trac but it's against 2.9.x and +doesn't apply to 2.8.x. + +--- a/wx/configure ++++ b/wx/configure +@@ -25060,6 +25060,8 @@ echo "$as_me:$LINENO: result: $wx_cv_std_libpath" >&5 + echo "${ECHO_T}$wx_cv_std_libpath" >&6 + + SEARCH_LIB="`echo "$SEARCH_INCLUDE" | sed s@include@$wx_cv_std_libpath@g` /usr/$wx_cv_std_libpath" ++debian_multiarch_triplet=`dpkg-architecture -qDEB_HOST_MULTIARCH` ++SEARCH_LIB="/lib/$debian_multiarch_triplet /usr/lib/$debian_multiarch_triplet $SEARCH_LIB" + + if test "$build" != "$host" -a "$GCC" = yes; then + if cross_root=`$CC -print-prog-name=ld 2>/dev/null`; then diff -Nru truecrypt-7.1a/debian/patches/series truecrypt-7.1a/debian/patches/series --- truecrypt-7.1a/debian/patches/series 2016-05-16 18:02:08.000000000 +0000 +++ truecrypt-7.1a/debian/patches/series 2017-02-19 10:48:16.000000000 +0000 @@ -1 +1,13 @@ -EXTRA_LIBS.diff +truecrypt-7.1a-build-fixes.patch +truecrypt-7.1a-gui-fixes.patch +truecrypt-7.1a-helpfix.patch +truecrypt-7.1a-xdg-open.patch +truecrypt-7.1a-open-doc.patch +#truecrypt-7.1a-update-urls.patch + +#fix-configure-for-multiarch +#wxGTK-2.8.11-unicode-odbc.patch +##wxGTK-2.8.11-collision.patch +#wxGTK-2.8.7-mmedia.patch +#wxGTK-2.8.10.1-odbc-defines.patch +#wxGTK-2.8.12.1-fix-c++14.patch diff -Nru truecrypt-7.1a/debian/patches/truecrypt-7.1a-build-fixes.patch truecrypt-7.1a/debian/patches/truecrypt-7.1a-build-fixes.patch --- truecrypt-7.1a/debian/patches/truecrypt-7.1a-build-fixes.patch 1970-01-01 00:00:00.000000000 +0000 +++ truecrypt-7.1a/debian/patches/truecrypt-7.1a-build-fixes.patch 2017-02-14 07:02:56.000000000 +0000 @@ -0,0 +1,121 @@ +diff --git a/Build/Include/Makefile.inc b/Build/Include/Makefile.inc +index 39395e9..3bd6efb 100644 +--- a/Build/Include/Makefile.inc ++++ b/Build/Include/Makefile.inc +@@ -10,7 +10,7 @@ $(NAME): $(NAME).a + + clean: + @echo Cleaning $(NAME) +- rm -f $(APPNAME) $(NAME).a $(OBJS) $(OBJS:.o=.d) *.gch ++ rm -f $(APPNAME) $(NAME).a $(OBJS) $(OBJS:.o=.d) *.gch $(RESOURCES) SystemPrecompiled.d + + %.o: %.c + @echo Compiling $( (processName.c_str()); ++ { ++ argsCopy[argIndex++] = processName; ++ } + + foreach (const string &arg, arguments) + { +- args[argIndex++] = const_cast (arg.c_str()); ++ argsCopy[argIndex++] = arg; ++ } ++ ++ for (int i = 0; i < argIndex; i++) ++ { ++ args[i] = const_cast (argsCopy[i].c_str()); + } ++ + args[argIndex] = nullptr; + + if (inputData) diff -Nru truecrypt-7.1a/debian/patches/truecrypt-7.1a-gcc6.patch truecrypt-7.1a/debian/patches/truecrypt-7.1a-gcc6.patch --- truecrypt-7.1a/debian/patches/truecrypt-7.1a-gcc6.patch 1970-01-01 00:00:00.000000000 +0000 +++ truecrypt-7.1a/debian/patches/truecrypt-7.1a-gcc6.patch 2017-02-14 07:02:56.000000000 +0000 @@ -0,0 +1,67 @@ +diff --git a/Main/Forms/PreferencesDialog.cpp b/Main/Forms/PreferencesDialog.cpp +index b10a5cd..1808589 100644 +--- a/Main/Forms/PreferencesDialog.cpp ++++ b/Main/Forms/PreferencesDialog.cpp +@@ -414,11 +414,11 @@ namespace TrueCrypt + 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", wstring(LangString["DLL_FILES"]))); + #endif + if (!libExtension.empty()) + { +- extensions.push_back (make_pair (libExtension.Mid (libExtension.find (L'.') + 1), LangString["DLL_FILES"])); ++ extensions.push_back (make_pair (wstring(libExtension.Mid (libExtension.find (L'.') + 1)), wstring(LangString["DLL_FILES"]))); + extensions.push_back (make_pair (L"*", L"")); + } + +diff --git a/Main/GraphicUserInterface.cpp b/Main/GraphicUserInterface.cpp +index 3a9932d..a6fc96d 100644 +--- a/Main/GraphicUserInterface.cpp ++++ b/Main/GraphicUserInterface.cpp +@@ -1442,7 +1442,7 @@ namespace TrueCrypt + FilePath GraphicUserInterface::SelectVolumeFile (wxWindow *parent, bool saveMode, const DirectoryPath &directory) const + { + list < pair > extensions; +- extensions.push_back (make_pair (L"tc", LangString["TC_VOLUMES"])); ++ extensions.push_back (make_pair (L"tc", wstring(LangString["TC_VOLUMES"]))); + + FilePathList selFiles = Gui->SelectFiles (parent, LangString[saveMode ? "OPEN_NEW_VOLUME" : "OPEN_VOL_TITLE"], saveMode, false, extensions, directory); + +diff --git a/Main/Resources.cpp b/Main/Resources.cpp +index 2891134..d2bf31f 100644 +--- a/Main/Resources.cpp ++++ b/Main/Resources.cpp +@@ -45,13 +45,13 @@ namespace TrueCrypt + strBuf.CopyFrom (res); + return string (reinterpret_cast (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 @@ namespace TrueCrypt + strBuf.CopyFrom (res); + return string (reinterpret_cast (strBuf.Ptr())); + #else +- static const char License[] = ++ static byte License[] = + { + # include "License.txt.h" + , 0 + }; + +- return string (License); ++ return string ((const char*) License); + #endif + } + diff -Nru truecrypt-7.1a/debian/patches/truecrypt-7.1a-gui-fixes.patch truecrypt-7.1a/debian/patches/truecrypt-7.1a-gui-fixes.patch --- truecrypt-7.1a/debian/patches/truecrypt-7.1a-gui-fixes.patch 1970-01-01 00:00:00.000000000 +0000 +++ truecrypt-7.1a/debian/patches/truecrypt-7.1a-gui-fixes.patch 2017-02-14 07:02:56.000000000 +0000 @@ -0,0 +1,62 @@ +diff --git a/Main/Forms/Forms.cpp b/Main/Forms/Forms.cpp +index 5825381..4b58857 100644 +--- a/Main/Forms/Forms.cpp ++++ b/Main/Forms/Forms.cpp +@@ -785,7 +785,7 @@ BenchmarkDialogBase::~BenchmarkDialogBase() + BenchmarkButton->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( BenchmarkDialogBase::OnBenchmarkButtonClick ), NULL, this ); + } + +-ChangePasswordDialogBase::ChangePasswordDialogBase( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style ) ++ChangePasswordDialogBase::ChangePasswordDialogBase( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style & (~wxCLOSE_BOX) ) + { + this->SetSizeHints( wxDefaultSize, wxDefaultSize ); + this->SetExtraStyle( wxWS_EX_VALIDATE_RECURSIVELY ); +@@ -845,7 +845,7 @@ ChangePasswordDialogBase::~ChangePasswordDialogBase() + OKButton->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ChangePasswordDialogBase::OnOKButtonClick ), NULL, this ); + } + +-DeviceSelectionDialogBase::DeviceSelectionDialogBase( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style ) ++DeviceSelectionDialogBase::DeviceSelectionDialogBase( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style & (~wxCLOSE_BOX) ) + { + this->SetSizeHints( wxSize( -1,-1 ), wxDefaultSize ); + this->SetExtraStyle( wxWS_EX_VALIDATE_RECURSIVELY ); +@@ -1126,7 +1126,7 @@ FavoriteVolumesDialogBase::~FavoriteVolumesDialogBase() + OKButton->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( FavoriteVolumesDialogBase::OnOKButtonClick ), NULL, this ); + } + +-KeyfilesDialogBase::KeyfilesDialogBase( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style ) ++KeyfilesDialogBase::KeyfilesDialogBase( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style & (~wxCLOSE_BOX) ) + { + this->SetSizeHints( wxDefaultSize, wxDefaultSize ); + this->SetExtraStyle( wxWS_EX_VALIDATE_RECURSIVELY ); +@@ -1345,7 +1345,7 @@ LegalNoticesDialogBase::~LegalNoticesDialogBase() + { + } + +-MountOptionsDialogBase::MountOptionsDialogBase( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style ) ++MountOptionsDialogBase::MountOptionsDialogBase( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style & (~wxCLOSE_BOX) ) + { + this->SetSizeHints( wxDefaultSize, wxDefaultSize ); + this->SetExtraStyle( wxWS_EX_VALIDATE_RECURSIVELY ); +@@ -1582,7 +1582,7 @@ NewSecurityTokenKeyfileDialogBase::~NewSecurityTokenKeyfileDialogBase() + KeyfileNameTextCtrl->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( NewSecurityTokenKeyfileDialogBase::OnKeyfileNameChanged ), NULL, this ); + } + +-PreferencesDialogBase::PreferencesDialogBase( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style ) ++PreferencesDialogBase::PreferencesDialogBase( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style & (~wxCLOSE_BOX) ) + { + this->SetSizeHints( wxDefaultSize, wxDefaultSize ); + this->SetExtraStyle( wxWS_EX_VALIDATE_RECURSIVELY ); +diff --git a/Main/Forms/MainFrame.cpp b/Main/Forms/MainFrame.cpp +index cf313a8..3fd548c 100644 +--- a/Main/Forms/MainFrame.cpp ++++ b/Main/Forms/MainFrame.cpp +@@ -263,7 +263,7 @@ namespace TrueCrypt + colPermilles.push_back (75); + #else + SlotListCtrl->InsertColumn (ColumnSlot, _("Slot"), wxLIST_FORMAT_LEFT, 1); +- colPermilles.push_back (82); ++ colPermilles.push_back (87); + #endif + + SlotListCtrl->InsertColumn (ColumnPath, LangString["VOLUME"], wxLIST_FORMAT_LEFT, 1); diff -Nru truecrypt-7.1a/debian/patches/truecrypt-7.1a-helpfix.patch truecrypt-7.1a/debian/patches/truecrypt-7.1a-helpfix.patch --- truecrypt-7.1a/debian/patches/truecrypt-7.1a-helpfix.patch 1970-01-01 00:00:00.000000000 +0000 +++ truecrypt-7.1a/debian/patches/truecrypt-7.1a-helpfix.patch 2017-02-14 07:02:56.000000000 +0000 @@ -0,0 +1,70 @@ +diff --git a/Main/UserInterface.cpp b/Main/UserInterface.cpp +index 9e8179f..8f9cc0d 100644 +--- a/Main/UserInterface.cpp ++++ b/Main/UserInterface.cpp +@@ -1027,11 +1027,11 @@ namespace TrueCrypt + "--auto-mount=devices|favorites\n" + " Auto mount device-hosted or favorite volumes.\n" + "\n" +- "--backup-headers[=VOLUME_PATH]\n" ++ "--backup-headers [VOLUME_PATH]\n" + " Backup volume headers to a file. All required options are requested from the\n" + " user.\n" + "\n" +- "-c, --create[=VOLUME_PATH]\n" ++ "-c, --create [VOLUME_PATH]\n" + " Create a new volume. Most options are requested from the user if not specified\n" + " on command line. See also options --encryption, -k, --filesystem, --hash, -p,\n" + " --random-source, --quick, --size, --volume-type. Note that passing some of the\n" +@@ -1048,16 +1048,16 @@ namespace TrueCrypt + " 6) Dismount the outer volume.\n" + " If at any step the hidden volume protection is triggered, start again from 1).\n" + "\n" +- "--create-keyfile[=FILE_PATH]\n" ++ "--create-keyfile [FILE_PATH]\n" + " Create a new keyfile containing pseudo-random data.\n" + "\n" +- "-C, --change[=VOLUME_PATH]\n" ++ "-C, --change [VOLUME_PATH]\n" + " Change a password and/or keyfile(s) of a volume. Most options are requested\n" + " from the user if not specified on command line. PKCS-5 PRF HMAC hash\n" + " algorithm can be changed with option --hash. See also options -k,\n" + " --new-keyfiles, --new-password, -p, --random-source.\n" + "\n" +- "-d, --dismount[=MOUNTED_VOLUME]\n" ++ "-d, --dismount [MOUNTED_VOLUME]\n" + " Dismount a mounted volume. If MOUNTED_VOLUME is not specified, all\n" + " volumes are dismounted. See below for description of MOUNTED_VOLUME.\n" + "\n" +@@ -1070,7 +1070,7 @@ namespace TrueCrypt + "--import-token-keyfiles\n" + " Import keyfiles to a security token. See also option --token-lib.\n" + "\n" +- "-l, --list[=MOUNTED_VOLUME]\n" ++ "-l, --list [MOUNTED_VOLUME]\n" + " Display a list of mounted volumes. If MOUNTED_VOLUME is not specified, all\n" + " volumes are listed. By default, the list contains only volume path, virtual\n" + " device, and mount point. A more detailed list can be enabled by verbose\n" +@@ -1080,11 +1080,11 @@ namespace TrueCrypt + " Display a list of all available security token keyfiles. See also command\n" + " --import-token-keyfiles.\n" + "\n" +- "--mount[=VOLUME_PATH]\n" ++ "--mount [VOLUME_PATH]\n" + " Mount a volume. Volume path and other options are requested from the user\n" + " if not specified on command line.\n" + "\n" +- "--restore-headers[=VOLUME_PATH]\n" ++ "--restore-headers [VOLUME_PATH]\n" + " Restore volume headers from the embedded or an external backup. All required\n" + " options are requested from the user.\n" + "\n" +@@ -1097,7 +1097,7 @@ namespace TrueCrypt + "--version\n" + " Display program version.\n" + "\n" +- "--volume-properties[=MOUNTED_VOLUME]\n" ++ "--volume-properties [MOUNTED_VOLUME]\n" + " Display properties of a mounted volume. See below for description of\n" + " MOUNTED_VOLUME.\n" + "\n" diff -Nru truecrypt-7.1a/debian/patches/truecrypt-7.1a-indicator.patch truecrypt-7.1a/debian/patches/truecrypt-7.1a-indicator.patch --- truecrypt-7.1a/debian/patches/truecrypt-7.1a-indicator.patch 1970-01-01 00:00:00.000000000 +0000 +++ truecrypt-7.1a/debian/patches/truecrypt-7.1a-indicator.patch 2017-02-14 07:02:56.000000000 +0000 @@ -0,0 +1,414 @@ +diff --git a/Main/Forms/Forms.cpp b/Main/Forms/Forms.cpp +index 5825381..5b05125 100644 +--- a/Main/Forms/Forms.cpp ++++ b/Main/Forms/Forms.cpp +@@ -1738,23 +1738,6 @@ PreferencesDialogBase::PreferencesDialogBase( wxWindow* parent, wxWindowID id, c + + sbSizer18->Add( CloseBackgroundTaskOnNoVolumesCheckBox, 0, wxALL, 5 ); + +- wxStaticBoxSizer* sbSizer26; +- sbSizer26 = new wxStaticBoxSizer( new wxStaticBox( BackgroundTaskPanel, wxID_ANY, _("Task Icon Menu Items") ), wxVERTICAL ); +- +- BackgroundTaskMenuMountItemsEnabledCheckBox = new wxCheckBox( BackgroundTaskPanel, wxID_ANY, _("Mount Favorite Volumes"), wxDefaultPosition, wxDefaultSize, 0 ); +- +- sbSizer26->Add( BackgroundTaskMenuMountItemsEnabledCheckBox, 0, wxALL, 5 ); +- +- BackgroundTaskMenuOpenItemsEnabledCheckBox = new wxCheckBox( BackgroundTaskPanel, wxID_ANY, _("Open Mounted Volumes"), wxDefaultPosition, wxDefaultSize, 0 ); +- +- sbSizer26->Add( BackgroundTaskMenuOpenItemsEnabledCheckBox, 0, wxALL, 5 ); +- +- BackgroundTaskMenuDismountItemsEnabledCheckBox = new wxCheckBox( BackgroundTaskPanel, wxID_ANY, _("Dismount Mounted Volumes"), wxDefaultPosition, wxDefaultSize, 0 ); +- +- sbSizer26->Add( BackgroundTaskMenuDismountItemsEnabledCheckBox, 0, wxALL, 5 ); +- +- sbSizer18->Add( sbSizer26, 1, wxEXPAND|wxALL, 5 ); +- + bSizer62->Add( sbSizer18, 0, wxEXPAND|wxALL, 5 ); + + bSizer61->Add( bSizer62, 1, wxEXPAND|wxALL, 5 ); +@@ -1772,6 +1755,9 @@ PreferencesDialogBase::PreferencesDialogBase( wxWindow* parent, wxWindowID id, c + + LogOnSizer = new wxStaticBoxSizer( new wxStaticBox( SystemIntegrationPage, wxID_ANY, _("Actions to Perform when User Logs On") ), wxVERTICAL ); + ++ ConfigureAutostartButton = new wxButton( SystemIntegrationPage, wxID_ANY, _("Configure &Autostart..."), wxDefaultPosition, wxDefaultSize, 0 ); ++ LogOnSizer->Add( ConfigureAutostartButton, 0, wxALL, 5 ); ++ + StartOnLogonCheckBox = new wxCheckBox( SystemIntegrationPage, wxID_ANY, _("Start TrueCrypt Background Task"), wxDefaultPosition, wxDefaultSize, 0 ); + + LogOnSizer->Add( StartOnLogonCheckBox, 0, wxALL, 5 ); +@@ -2024,6 +2010,7 @@ PreferencesDialogBase::PreferencesDialogBase( wxWindow* parent, wxWindowID id, c + PreserveTimestampsCheckBox->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( PreferencesDialogBase::OnPreserveTimestampsCheckBoxClick ), NULL, this ); + BackgroundTaskEnabledCheckBox->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( PreferencesDialogBase::OnBackgroundTaskEnabledCheckBoxClick ), NULL, this ); + NoKernelCryptoCheckBox->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( PreferencesDialogBase::OnNoKernelCryptoCheckBoxClick ), NULL, this ); ++ ConfigureAutostartButton->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PreferencesDialogBase::OnConfigureAutostartButtonClick ), NULL, this ); + NoHardwareCryptoCheckBox->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( PreferencesDialogBase::OnNoHardwareCryptoCheckBoxClick ), NULL, this ); + SelectPkcs11ModuleButton->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PreferencesDialogBase::OnSelectPkcs11ModuleButtonClick ), NULL, this ); + HotkeyListCtrl->Connect( wxEVT_COMMAND_LIST_ITEM_DESELECTED, wxListEventHandler( PreferencesDialogBase::OnHotkeyListItemDeselected ), NULL, this ); +diff --git a/Main/Forms/Forms.h b/Main/Forms/Forms.h +index cbc6f6e..6539328 100644 +--- a/Main/Forms/Forms.h ++++ b/Main/Forms/Forms.h +@@ -551,11 +551,10 @@ namespace TrueCrypt + wxPanel* BackgroundTaskPanel; + wxCheckBox* BackgroundTaskEnabledCheckBox; + wxCheckBox* CloseBackgroundTaskOnNoVolumesCheckBox; +- wxCheckBox* BackgroundTaskMenuMountItemsEnabledCheckBox; +- wxCheckBox* BackgroundTaskMenuOpenItemsEnabledCheckBox; +- wxCheckBox* BackgroundTaskMenuDismountItemsEnabledCheckBox; + wxPanel* SystemIntegrationPage; + wxStaticBoxSizer* LogOnSizer; ++ wxButton* ConfigureAutostartButton; ++ wxCheckBox* BackgroundTaskMenuDismountItemsEnabledCheckBox; + wxCheckBox* StartOnLogonCheckBox; + wxCheckBox* MountFavoritesOnLogonCheckBox; + wxCheckBox* MountDevicesOnLogonCheckBox; +@@ -595,6 +594,7 @@ namespace TrueCrypt + virtual void OnForceAutoDismountCheckBoxClick( wxCommandEvent& event ){ event.Skip(); } + virtual void OnPreserveTimestampsCheckBoxClick( wxCommandEvent& event ){ event.Skip(); } + virtual void OnBackgroundTaskEnabledCheckBoxClick( wxCommandEvent& event ){ event.Skip(); } ++ virtual void OnConfigureAutostartButtonClick( wxCommandEvent& event ){ event.Skip(); } + virtual void OnNoKernelCryptoCheckBoxClick( wxCommandEvent& event ){ event.Skip(); } + virtual void OnNoHardwareCryptoCheckBoxClick( wxCommandEvent& event ){ event.Skip(); } + virtual void OnSelectPkcs11ModuleButtonClick( wxCommandEvent& event ){ event.Skip(); } +diff --git a/Main/Forms/MainFrame.cpp b/Main/Forms/MainFrame.cpp +index cf313a8..273e35d 100644 +--- a/Main/Forms/MainFrame.cpp ++++ b/Main/Forms/MainFrame.cpp +@@ -37,6 +37,7 @@ + namespace TrueCrypt + { + MainFrame::MainFrame (wxWindow* parent) : MainFrameBase (parent), ++ indicator (NULL), + ListItemRightClickEventPending (false), + SelectedItemIndex (-1), + SelectedSlotNumber (0), +@@ -491,57 +492,6 @@ namespace TrueCrypt + Gui->AppendToMenu (*popup, _("Mount All Favorite Volumes"), this, wxCommandEventHandler (TaskBarIcon::OnMountAllFavoritesMenuItemSelected))->Enable (!Busy); + Gui->AppendToMenu (*popup, _("Dismount All Mounted Volumes"), this, wxCommandEventHandler (TaskBarIcon::OnDismountAllMenuItemSelected))->Enable (!Busy); + +- // Favorite volumes +- if (Gui->GetPreferences().BackgroundTaskMenuMountItemsEnabled && !Frame->FavoriteVolumesMenuMap.empty()) +- { +- popup->AppendSeparator(); +- typedef pair FavMapPair; +- foreach (FavMapPair fp, Frame->FavoriteVolumesMenuMap) +- { +- Gui->AppendToMenu (*popup, LangString["MOUNT"] + L" " + wstring (fp.second.Path) + (fp.second.MountPoint.IsEmpty() ? L"" : L" " + wstring (fp.second.MountPoint)), +- this, wxCommandEventHandler (TaskBarIcon::OnFavoriteVolumeMenuItemSelected), fp.first)->Enable (!Busy); +- } +- } +- +- // Mounted volumes +- VolumeInfoList mountedVolumes = Core->GetMountedVolumes(); +- if (!mountedVolumes.empty()) +- { +- if (Gui->GetPreferences().BackgroundTaskMenuOpenItemsEnabled) +- { +- popup->AppendSeparator(); +- OpenMap.clear(); +- foreach (shared_ptr volume, mountedVolumes) +- { +- if (!volume->MountPoint.IsEmpty()) +- { +- wxString label = LangString["OPEN"] + L" " + wstring (volume->MountPoint) + L" (" + wstring (volume->Path) + L")"; +- wxMenuItem *item = Gui->AppendToMenu (*popup, label, this, wxCommandEventHandler (TaskBarIcon::OnOpenMenuItemSelected)); +- OpenMap[item->GetId()] = volume; +- } +- } +- } +- +- if (Gui->GetPreferences().BackgroundTaskMenuDismountItemsEnabled) +- { +- popup->AppendSeparator(); +- DismountMap.clear(); +- foreach (shared_ptr volume, mountedVolumes) +- { +- wxString label = LangString["DISMOUNT"] + L" "; +- +- if (!volume->MountPoint.IsEmpty()) +- label += wstring (volume->MountPoint) + L" (" + wstring (volume->Path) + L")"; +- else +- label += wstring (volume->Path); +- +- wxMenuItem *item = Gui->AppendToMenu (*popup, label, this, wxCommandEventHandler (TaskBarIcon::OnDismountMenuItemSelected)); +- item->Enable (!Busy); +- DismountMap[item->GetId()] = volume; +- } +- } +- } +- + popup->AppendSeparator(); + Gui->AppendToMenu (*popup, _("Preferences..."), this, wxCommandEventHandler (TaskBarIcon::OnPreferencesMenuItemSelected))->Enable (!Busy); + #ifndef TC_MACOSX +@@ -1411,6 +1361,30 @@ namespace TrueCrypt + } + } + ++ void MainFrame::SetBusy (bool busy) ++ { ++ gtk_widget_set_sensitive(indicator_item_mountfavorites, !busy); ++ gtk_widget_set_sensitive(indicator_item_dismountall, !busy); ++ gtk_widget_set_sensitive(indicator_item_prefs, !busy); ++ gtk_widget_set_sensitive(indicator_item_exit, !busy /*&& CanExit()*/); ++ } ++ ++ static void IndicatorOnShowHideMenuItemSelected (GtkWidget *widget, MainFrame *self) { Gui->SetBackgroundMode (!Gui->IsInBackgroundMode()); } ++ static void IndicatorOnMountAllFavoritesMenuItemSelected (GtkWidget *widget, MainFrame *self) { self->SetBusy(true); self->MountAllFavorites (); self->SetBusy(false); } ++ static void IndicatorOnDismountAllMenuItemSelected (GtkWidget *widget, MainFrame *self) { self->SetBusy(true); Gui->DismountAllVolumes(); self->SetBusy(false); } ++ static void IndicatorOnPreferencesMenuItemSelected (GtkWidget *widget, MainFrame *self) { ++ self->SetBusy(true); ++ PreferencesDialog dialog (self); ++ dialog.ShowModal(); ++ self->SetBusy(false); ++ } ++ static void IndicatorOnExitMenuItemSelected (GtkWidget *widget, MainFrame *self) { ++ self->SetBusy(true); ++ if (Core->GetMountedVolumes().empty() || Gui->AskYesNo (LangString ["CONFIRM_EXIT"], false, true)) ++ self->Close (true); ++ self->SetBusy(false); ++ } ++ + void MainFrame::ShowTaskBarIcon (bool show) + { + if (!show && mTaskBarIcon->IsIconInstalled()) +@@ -1419,9 +1393,41 @@ namespace TrueCrypt + } + else if (show && !mTaskBarIcon->IsIconInstalled()) + { +-#ifndef TC_MACOSX +- mTaskBarIcon->SetIcon (Resources::GetTrueCryptIcon(), L"TrueCrypt"); +-#endif ++ if (indicator == NULL) { ++ indicator = app_indicator_new ("truecrypt", "truecrypt-indicator", APP_INDICATOR_CATEGORY_APPLICATION_STATUS); ++ app_indicator_set_status (indicator, APP_INDICATOR_STATUS_ACTIVE); ++ ++ GtkWidget *menu = gtk_menu_new(); ++ ++ indicator_item_showhide = gtk_menu_item_new_with_label (LangString[Gui->IsInBackgroundMode() ? "SHOW_TC" : "HIDE_TC"].mb_str()); ++ gtk_menu_shell_append (GTK_MENU_SHELL (menu), indicator_item_showhide); ++ g_signal_connect (indicator_item_showhide, "activate", G_CALLBACK (IndicatorOnShowHideMenuItemSelected), this); ++ ++ gtk_menu_shell_append (GTK_MENU_SHELL (menu), gtk_separator_menu_item_new()); ++ ++ indicator_item_mountfavorites = gtk_menu_item_new_with_label ("Mount Favorite Volumes"); ++ gtk_menu_shell_append (GTK_MENU_SHELL (menu), indicator_item_mountfavorites); ++ g_signal_connect (indicator_item_mountfavorites, "activate", G_CALLBACK (IndicatorOnMountAllFavoritesMenuItemSelected), this); ++ ++ indicator_item_dismountall = gtk_menu_item_new_with_label ("Dismount All"); ++ gtk_menu_shell_append (GTK_MENU_SHELL (menu), indicator_item_dismountall); ++ g_signal_connect (indicator_item_dismountall, "activate", G_CALLBACK (IndicatorOnDismountAllMenuItemSelected), this); ++ ++ gtk_menu_shell_append (GTK_MENU_SHELL (menu), gtk_separator_menu_item_new()); ++ ++ indicator_item_prefs = gtk_menu_item_new_with_label ("Preferences..."); ++ gtk_menu_shell_append (GTK_MENU_SHELL (menu), indicator_item_prefs); ++ g_signal_connect (indicator_item_prefs, "activate", G_CALLBACK (IndicatorOnPreferencesMenuItemSelected), this); ++ ++ gtk_menu_shell_append (GTK_MENU_SHELL (menu), gtk_separator_menu_item_new()); ++ ++ indicator_item_exit = gtk_menu_item_new_with_label ("Exit"); ++ gtk_menu_shell_append (GTK_MENU_SHELL (menu), indicator_item_exit); ++ g_signal_connect (indicator_item_exit, "activate", G_CALLBACK (IndicatorOnExitMenuItemSelected), this); ++ ++ gtk_widget_show_all (menu); ++ app_indicator_set_menu (indicator, GTK_MENU (menu)); ++ } + } + } + +diff --git a/Main/Forms/MainFrame.h b/Main/Forms/MainFrame.h +index 5b775ab..cd43e4e 100644 +--- a/Main/Forms/MainFrame.h ++++ b/Main/Forms/MainFrame.h +@@ -9,6 +9,10 @@ + #ifndef TC_HEADER_Main_Forms_MainFrame + #define TC_HEADER_Main_Forms_MainFrame + ++#define GSocket GlibGSocket ++#include ++#undef GSocket ++ + #include "Forms.h" + #include "ChangePasswordDialog.h" + +@@ -27,6 +31,16 @@ namespace TrueCrypt + static FilePath GetShowRequestFifoPath () { return Application::GetConfigFilePath (L".show-request-queue", true); } + #endif + ++ void MountAllFavorites (); ++ ++ AppIndicator *indicator; ++ GtkWidget *indicator_item_showhide; ++ GtkWidget *indicator_item_mountfavorites; ++ GtkWidget *indicator_item_dismountall; ++ GtkWidget *indicator_item_prefs; ++ GtkWidget *indicator_item_exit; ++ void SetBusy (bool busy); ++ + protected: + enum + { +@@ -60,7 +74,6 @@ namespace TrueCrypt + void LoadFavoriteVolumes (); + void LoadPreferences (); + void MountAllDevices (); +- void MountAllFavorites (); + void MountVolume (); + void OnAboutMenuItemSelected (wxCommandEvent& event); + void OnActivate (wxActivateEvent& event); +diff --git a/Main/Forms/PreferencesDialog.cpp b/Main/Forms/PreferencesDialog.cpp +index b10a5cd..af7490a 100644 +--- a/Main/Forms/PreferencesDialog.cpp ++++ b/Main/Forms/PreferencesDialog.cpp +@@ -11,6 +11,7 @@ + #ifdef TC_WINDOWS + #include + #endif ++#include "Platform/Unix/Process.h" + #include "Common/SecurityToken.h" + #include "Main/Main.h" + #include "Main/Application.h" +@@ -59,9 +60,6 @@ namespace TrueCrypt + TC_CHECK_BOX_VALIDATOR (BackgroundTaskEnabled); + TC_CHECK_BOX_VALIDATOR (CloseBackgroundTaskOnNoVolumes); + CloseBackgroundTaskOnNoVolumesCheckBox->Show (!Core->IsInPortableMode()); +- TC_CHECK_BOX_VALIDATOR (BackgroundTaskMenuDismountItemsEnabled); +- TC_CHECK_BOX_VALIDATOR (BackgroundTaskMenuMountItemsEnabled); +- TC_CHECK_BOX_VALIDATOR (BackgroundTaskMenuOpenItemsEnabled); + + // Encryption + AesHwCpuSupportedStaticText->SetLabel ( +@@ -103,7 +101,10 @@ namespace TrueCrypt + #endif + + #ifndef TC_WINDOWS +- LogOnSizer->Show (false); ++ // LogOnSizer->Show (false); ++ StartOnLogonCheckBox->Show (false); ++ MountFavoritesOnLogonCheckBox->Show (false); ++ MountDevicesOnLogonCheckBox->Show (false); + MountRemovableCheckBox->Show (false); + CloseExplorerWindowsOnDismountCheckBox->Show (false); + #endif +@@ -272,6 +273,18 @@ namespace TrueCrypt + BackgroundTaskEnabledCheckBox->SetValue (!Gui->AskYesNo (LangString["CONFIRM_BACKGROUND_TASK_DISABLED"], false, true)); + } + ++ void PreferencesDialog::OnConfigureAutostartButtonClick (wxCommandEvent& event) ++ { ++ // Launch "Startup Applications" ++ try ++ { ++ list args; ++ Process::Execute ("gnome-session-properties", args); ++ } ++ // catch (TimeOut&) { } ++ catch (exception &e) { Gui->ShowError (e); } ++ } ++ + void PreferencesDialog::OnNoHardwareCryptoCheckBoxClick (wxCommandEvent& event) + { + if (event.IsChecked()) +diff --git a/Main/Forms/PreferencesDialog.h b/Main/Forms/PreferencesDialog.h +index 412d7c4..fa67ac4 100644 +--- a/Main/Forms/PreferencesDialog.h ++++ b/Main/Forms/PreferencesDialog.h +@@ -26,6 +26,7 @@ namespace TrueCrypt + protected: + void OnAssignHotkeyButtonClick (wxCommandEvent& event); + void OnBackgroundTaskEnabledCheckBoxClick (wxCommandEvent& event); ++ void OnConfigureAutostartButtonClick (wxCommandEvent& event); + void OnCancelButtonClick (wxCommandEvent& event) { Close(); } + void OnClose (wxCloseEvent& event); + void OnDismountOnPowerSavingCheckBoxClick (wxCommandEvent& event); +diff --git a/Main/GraphicUserInterface.cpp b/Main/GraphicUserInterface.cpp +index 3a9932d..414e623 100644 +--- a/Main/GraphicUserInterface.cpp ++++ b/Main/GraphicUserInterface.cpp +@@ -1469,6 +1469,8 @@ namespace TrueCrypt + } + + BackgroundMode = state; ++ ++ gtk_menu_item_set_label ((GtkMenuItem*) ((MainFrame*) mMainFrame)->indicator_item_showhide, LangString[Gui->IsInBackgroundMode() ? "SHOW_TC" : "HIDE_TC"].mb_str()); + } + + void GraphicUserInterface::SetListCtrlColumnWidths (wxListCtrl *listCtrl, list columnWidthPermilles, bool hasVerticalScrollbar) const +diff --git a/Main/Main.make b/Main/Main.make +index 2a00269..2a5c260 100644 +--- a/Main/Main.make ++++ b/Main/Main.make +@@ -72,6 +72,9 @@ endif + + CXXFLAGS += -I$(BASE_DIR)/Main + ++ifndef TC_NO_GUI ++LIBS += $(shell pkg-config --libs appindicator-0.1) ++endif + + #------ wxWidgets configuration ------ + +diff --git a/Main/UserPreferences.cpp b/Main/UserPreferences.cpp +index e0e8233..ec7abaa 100644 +--- a/Main/UserPreferences.cpp ++++ b/Main/UserPreferences.cpp +@@ -67,9 +67,6 @@ namespace TrueCrypt + #define TC_CONFIG_SET(NAME) SetValue (configMap[L###NAME], NAME) + + TC_CONFIG_SET (BackgroundTaskEnabled); +- TC_CONFIG_SET (BackgroundTaskMenuDismountItemsEnabled); +- TC_CONFIG_SET (BackgroundTaskMenuMountItemsEnabled); +- TC_CONFIG_SET (BackgroundTaskMenuOpenItemsEnabled); + TC_CONFIG_SET (BeepAfterHotkeyMountDismount); + SetValue (configMap[L"CachePasswords"], DefaultMountOptions.CachePassword); + TC_CONFIG_SET (CloseBackgroundTaskOnNoVolumes); +@@ -167,9 +164,6 @@ namespace TrueCrypt + #define TC_CONFIG_ADD(NAME) formatter.AddEntry (L###NAME, NAME) + + TC_CONFIG_ADD (BackgroundTaskEnabled); +- TC_CONFIG_ADD (BackgroundTaskMenuDismountItemsEnabled); +- TC_CONFIG_ADD (BackgroundTaskMenuMountItemsEnabled); +- TC_CONFIG_ADD (BackgroundTaskMenuOpenItemsEnabled); + TC_CONFIG_ADD (BeepAfterHotkeyMountDismount); + formatter.AddEntry (L"CachePasswords", DefaultMountOptions.CachePassword); + TC_CONFIG_ADD (CloseBackgroundTaskOnNoVolumes); +diff --git a/Main/UserPreferences.h b/Main/UserPreferences.h +index 0f862ce..36f1fb4 100644 +--- a/Main/UserPreferences.h ++++ b/Main/UserPreferences.h +@@ -20,11 +20,8 @@ namespace TrueCrypt + UserPreferences () + : + BackgroundTaskEnabled (true), +- BackgroundTaskMenuDismountItemsEnabled (true), +- BackgroundTaskMenuMountItemsEnabled (true), +- BackgroundTaskMenuOpenItemsEnabled (true), + BeepAfterHotkeyMountDismount (false), +- CloseBackgroundTaskOnNoVolumes (true), ++ CloseBackgroundTaskOnNoVolumes (false), + CloseExplorerWindowsOnDismount (true), + CloseSecurityTokenSessionsAfterMount (false), + DisableKernelEncryptionModeWarning (false), +@@ -60,9 +57,6 @@ namespace TrueCrypt + MountOptions DefaultMountOptions; + + bool BackgroundTaskEnabled; +- bool BackgroundTaskMenuDismountItemsEnabled; +- bool BackgroundTaskMenuMountItemsEnabled; +- bool BackgroundTaskMenuOpenItemsEnabled; + bool BeepAfterHotkeyMountDismount; + bool CloseBackgroundTaskOnNoVolumes; + bool CloseExplorerWindowsOnDismount; +diff --git a/Makefile b/Makefile +index cdfaad8..ae4d6c7 100644 +--- a/Makefile ++++ b/Makefile +@@ -66,6 +66,8 @@ ifeq "$(origin NOGUI)" "command line" + export TC_NO_GUI := 1 + C_CXX_FLAGS += -DTC_NO_GUI + WX_CONFIGURE_FLAGS += --disable-gui ++else ++ C_CXX_FLAGS += $(shell pkg-config --cflags appindicator-0.1) + endif + + ifdef PKCS11_INC diff -Nru truecrypt-7.1a/debian/patches/truecrypt-7.1a-open-doc.patch truecrypt-7.1a/debian/patches/truecrypt-7.1a-open-doc.patch --- truecrypt-7.1a/debian/patches/truecrypt-7.1a-open-doc.patch 1970-01-01 00:00:00.000000000 +0000 +++ truecrypt-7.1a/debian/patches/truecrypt-7.1a-open-doc.patch 2017-02-14 07:02:56.000000000 +0000 @@ -0,0 +1,43 @@ +diff --git a/Main/GraphicUserInterface.cpp b/Main/GraphicUserInterface.cpp +index 04426bd..eb5fa03 100644 +--- a/Main/GraphicUserInterface.cpp ++++ b/Main/GraphicUserInterface.cpp +@@ -991,22 +991,15 @@ namespace TrueCrypt + return; + + #else +- wxMimeTypesManager mimeMgr; +- wxFileType *fileType = mimeMgr.GetFileTypeFromExtension (document.GetExt()); +- if (fileType) ++ ++ try + { +- try +- { +-#ifdef TC_MACOSX +- if (wxExecute (fileType->GetOpenCommand (document.GetFullPath())) != 0) +- return; +-#else +- if (wxExecute (fileType->GetOpenCommand (L"\"" + document.GetFullPath() + L"\"")) != 0) +- return; +-#endif +- } +- catch (TimeOut&) { } ++ list args; ++ args.push_back (string (document.GetFullPath().mb_str())); ++ Process::Execute ("xdg-open", args, 2000); + } ++ catch (TimeOut&) { } ++ catch (exception &e) { ShowError (e); } + #endif + } + +@@ -1085,7 +1078,7 @@ namespace TrueCrypt + #elif defined (TC_MACOSX) + docPath += L"/../Resources/TrueCrypt User Guide.pdf"; + #elif defined (TC_UNIX) +- docPath = L"/usr/share/truecrypt/doc/TrueCrypt User Guide.pdf"; ++ docPath = L"/usr/share/doc/truecrypt/TrueCrypt User Guide.pdf.gz"; + #else + # error TC_RESOURCE_DIR undefined + #endif diff -Nru truecrypt-7.1a/debian/patches/truecrypt-7.1a-update-urls.patch truecrypt-7.1a/debian/patches/truecrypt-7.1a-update-urls.patch --- truecrypt-7.1a/debian/patches/truecrypt-7.1a-update-urls.patch 1970-01-01 00:00:00.000000000 +0000 +++ truecrypt-7.1a/debian/patches/truecrypt-7.1a-update-urls.patch 2017-02-14 07:02:56.000000000 +0000 @@ -0,0 +1,121 @@ +diff --git a/Main/Forms/AboutDialog.cpp b/Main/Forms/AboutDialog.cpp +index 736a669..29b6003 100644 +--- a/Main/Forms/AboutDialog.cpp ++++ b/Main/Forms/AboutDialog.cpp +@@ -25,7 +25,7 @@ namespace TrueCrypt + + VersionStaticText->SetLabel (Application::GetName() + L" " + StringConverter::ToWide (Version::String())); + CopyrightStaticText->SetLabel (StringConverter::ToWide (TC_STR_RELEASED_BY)); +- WebsiteHyperlink->SetLabel (L"www.truecrypt.org"); ++ WebsiteHyperlink->SetLabel (L"website"); + + CreditsTextCtrl->SetMinSize (wxSize ( + Gui->GetCharWidth (CreditsTextCtrl) * 70, +diff --git a/Main/Forms/Forms.cpp b/Main/Forms/Forms.cpp +index 5825381..40cfddf 100644 +--- a/Main/Forms/Forms.cpp ++++ b/Main/Forms/Forms.cpp +@@ -168,27 +168,19 @@ MainFrameBase::MainFrameBase( wxWindow* parent, wxWindowID id, const wxString& t + HelpMenu->AppendSeparator(); + + wxMenuItem* WebsiteMenuItem; +- WebsiteMenuItem = new wxMenuItem( HelpMenu, wxID_ANY, wxString( _("TrueCrypt Website") ) , wxEmptyString, wxITEM_NORMAL ); ++ WebsiteMenuItem = new wxMenuItem( HelpMenu, wxID_ANY, wxString( _("Website") ) , wxEmptyString, wxITEM_NORMAL ); + HelpMenu->Append( WebsiteMenuItem ); + + wxMenuItem* DownloadsMenuItem; + DownloadsMenuItem = new wxMenuItem( HelpMenu, wxID_ANY, wxString( _("Downloads") ) , wxEmptyString, wxITEM_NORMAL ); + HelpMenu->Append( DownloadsMenuItem ); + +- wxMenuItem* NewsMenuItem; +- NewsMenuItem = new wxMenuItem( HelpMenu, wxID_ANY, wxString( _("News") ) , wxEmptyString, wxITEM_NORMAL ); +- HelpMenu->Append( NewsMenuItem ); +- + wxMenuItem* VersionHistoryMenuItem; + VersionHistoryMenuItem = new wxMenuItem( HelpMenu, wxID_ANY, wxString( _("Version History") ) , wxEmptyString, wxITEM_NORMAL ); + HelpMenu->Append( VersionHistoryMenuItem ); + + HelpMenu->AppendSeparator(); + +- wxMenuItem* ContactMenuItem; +- ContactMenuItem = new wxMenuItem( HelpMenu, wxID_ANY, wxString( _("Contact") ) , wxEmptyString, wxITEM_NORMAL ); +- HelpMenu->Append( ContactMenuItem ); +- + wxMenuItem* LegalNoticesMenuItem; + LegalNoticesMenuItem = new wxMenuItem( HelpMenu, wxID_ANY, wxString( _("Legal Notices") ) , wxEmptyString, wxITEM_NORMAL ); + HelpMenu->Append( LegalNoticesMenuItem ); +@@ -411,9 +403,7 @@ MainFrameBase::MainFrameBase( wxWindow* parent, wxWindowID id, const wxString& t + this->Connect( FaqMenuItem->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainFrameBase::OnFaqMenuItemSelected ) ); + this->Connect( WebsiteMenuItem->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainFrameBase::OnWebsiteMenuItemSelected ) ); + this->Connect( DownloadsMenuItem->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainFrameBase::OnDownloadsMenuItemSelected ) ); +- this->Connect( NewsMenuItem->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainFrameBase::OnNewsMenuItemSelected ) ); + this->Connect( VersionHistoryMenuItem->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainFrameBase::OnVersionHistoryMenuItemSelected ) ); +- this->Connect( ContactMenuItem->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainFrameBase::OnContactMenuItemSelected ) ); + this->Connect( LegalNoticesMenuItem->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainFrameBase::OnLegalNoticesMenuItemSelected ) ); + this->Connect( AboutMenuItem->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainFrameBase::OnAboutMenuItemSelected ) ); + SlotListCtrl->Connect( wxEVT_COMMAND_LIST_ITEM_ACTIVATED, wxListEventHandler( MainFrameBase::OnListItemActivated ), NULL, this ); +diff --git a/Main/GraphicUserInterface.cpp b/Main/GraphicUserInterface.cpp +index 04426bd..41ce402 100644 +--- a/Main/GraphicUserInterface.cpp ++++ b/Main/GraphicUserInterface.cpp +@@ -1012,49 +1012,17 @@ namespace TrueCrypt + + wxString GraphicUserInterface::GetHomepageLinkURL (const wxString &linkId, bool secure, const wxString &extraVars) const + { +- wxString url = wxString (StringConverter::ToWide (secure ? TC_APPLINK_SECURE : TC_APPLINK)) + L"&dest=" + linkId; +- wxString os, osVersion, architecture; +- +-#ifdef TC_WINDOWS +- +- os = L"Windows"; +- +-#elif defined (TC_UNIX) +- struct utsname unameData; +- if (uname (&unameData) != -1) +- { +- os = StringConverter::ToWide (unameData.sysname); +- osVersion = StringConverter::ToWide (unameData.release); +- architecture = StringConverter::ToWide (unameData.machine); +- +- if (os == L"Darwin") +- os = L"MacOSX"; +- } +- else +- os = L"Unknown"; +-#else +- os = L"Unknown"; +-#endif +- +- os.Replace (L" ", L"-"); +- url += L"&os="; +- url += os; +- +- osVersion.Replace (L" ", L"-"); +- url += L"&osver="; +- url += osVersion; +- +- architecture.Replace (L" ", L"-"); +- url += L"&arch="; +- url += architecture; +- +- if (!extraVars.empty()) +- { +- url += L"&"; +- url += extraVars; +- } +- +- return url; ++ if (linkId.Cmp(L"help") == 0) ++ return wxString(L"https://www.truecrypt71a.com/documentation/"); ++ else if (linkId.Cmp(L"tutorial") == 0) ++ return wxString(L"https://www.truecrypt71a.com/documentation/beginners-tutorial/"); ++ else if (linkId.Cmp(L"faq") == 0) ++ return wxString(L"https://www.truecrypt71a.com/faq/"); ++ else if (linkId.Cmp(L"downloads") == 0) ++ return wxString(L"https://launchpad.net/~stefansundin/+archive/ubuntu/truecrypt"); ++ else if (linkId.Cmp(L"history") == 0) ++ return wxString(L"https://github.com/stefansundin/truecrypt.deb/releases"); ++ return wxString(L"https://github.com/stefansundin/truecrypt.deb"); + } + + void GraphicUserInterface::OpenHomepageLink (wxWindow *parent, const wxString &linkId, const wxString &extraVars) diff -Nru truecrypt-7.1a/debian/patches/truecrypt-7.1a-xdg-open.patch truecrypt-7.1a/debian/patches/truecrypt-7.1a-xdg-open.patch --- truecrypt-7.1a/debian/patches/truecrypt-7.1a-xdg-open.patch 1970-01-01 00:00:00.000000000 +0000 +++ truecrypt-7.1a/debian/patches/truecrypt-7.1a-xdg-open.patch 2017-02-14 07:02:56.000000000 +0000 @@ -0,0 +1,30 @@ +diff --git a/Main/UserInterface.cpp b/Main/UserInterface.cpp +index 9e8179f..420d1d3 100644 +--- a/Main/UserInterface.cpp ++++ b/Main/UserInterface.cpp +@@ -828,7 +828,7 @@ namespace TrueCrypt + // 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"); +@@ -861,6 +861,16 @@ namespace TrueCrypt + catch (exception &e) { ShowError (e); } + } + } ++ else ++ { ++ args.push_back (string (path)); ++ try ++ { ++ Process::Execute ("xdg-open", args, 2000); ++ } ++ catch (TimeOut&) { } ++ catch (exception &e) { ShowError (e); } ++ } + #endif + } + diff -Nru truecrypt-7.1a/debian/patches/wxGTK-2.8.10.1-odbc-defines.patch truecrypt-7.1a/debian/patches/wxGTK-2.8.10.1-odbc-defines.patch --- truecrypt-7.1a/debian/patches/wxGTK-2.8.10.1-odbc-defines.patch 1970-01-01 00:00:00.000000000 +0000 +++ truecrypt-7.1a/debian/patches/wxGTK-2.8.10.1-odbc-defines.patch 2016-10-19 17:23:06.000000000 +0000 @@ -0,0 +1,39 @@ +unixODBC 2.2.14 defines SQLLEN and SQLULEN using the compiler typedef +declaration instead of preprocessor #define macro definition. This breaks +the preprocessor checks in this include file.cpp, causing the source to fall +back to older types instead, leading to compile time errors like this: + +db.cpp:1636: error: cannot convert ‘SQLINTEGER*’ to ‘SQLLEN*’ for argument ‘6’ to +‘SQLRETURN SQLGetData(void*, SQLUSMALLINT, SQLSMALLINT, void*, SQLLEN, SQLLEN*)’ +... +dbtable.cpp:592: error: cannot convert ‘SQLUINTEGER*’ to ‘SQLULEN*’ for argument ‘4’ to +‘SQLRETURN SQLExtendedFetch(void*, SQLUSMALLINT, SQLLEN, SQLULEN*, SQLUSMALLINT*)’ +... + +This change hard-wires the new names, breaking compatibility with ancient +(pre 2001) unixODBC versions. This change may break other ODBC implementations +but in Gentoo only unixODBC is supported. + +References: +http://bugs.gentoo.org/310923 + +2010-03-23 Martin von Gagern + +--- wxPython-src-2.6.4.0.orig/wx/include/wx/db.h ++++ wxPython-src-2.6.4.0/wx/include/wx/db.h +@@ -134,15 +134,6 @@ enum enumDummy {enumDum1}; + #endif + #endif + +-#ifndef _WIN64 +-#ifndef SQLLEN +-#define SQLLEN SQLINTEGER +-#endif +-#ifndef SQLULEN +-#define SQLULEN SQLUINTEGER +-#endif +-#endif +- + const int wxDB_PATH_MAX = 254; + + extern WXDLLIMPEXP_DATA_ODBC(wxChar const *) SQL_LOG_FILENAME; diff -Nru truecrypt-7.1a/debian/patches/wxGTK-2.8.11-collision.patch truecrypt-7.1a/debian/patches/wxGTK-2.8.11-collision.patch --- truecrypt-7.1a/debian/patches/wxGTK-2.8.11-collision.patch 1970-01-01 00:00:00.000000000 +0000 +++ truecrypt-7.1a/debian/patches/wxGTK-2.8.11-collision.patch 2016-10-19 17:23:06.000000000 +0000 @@ -0,0 +1,74 @@ +Prevent file collisions between multiple installed SLOTs. + + - Don't install wxwin.m4. It is installed with app-eselect/eselect-wxwidgets. + - Version the bakefile preset filenames. Unversioned symlinks to these files + are handled by eselect. + - Version wx-config and wxrc. Unversioned wrapper scripts are installed with + eselect-wxwidgets. + - Version wxstd.mo and modify AddCatalog to find it. (this might need more + work but no one has complained yet) + +--- a/wx/Makefile.in ++++ b/wx/Makefile.in +@@ -11695,10 +11695,9 @@ COND_wxUSE_REGEX_builtin___LIB_REGEX_p = \ + all: $(__wxregex___depname) $(__wxzlib___depname) $(__wxpng___depname) $(__wxjpeg___depname) $(__wxtiff___depname) $(__wxodbc___depname) $(__wxexpat___depname) $(__monodll___depname) $(__monolib___depname) $(__basedll___depname) $(__baselib___depname) $(__netdll___depname) $(__netlib___depname) $(__coredll___depname) $(__corelib___depname) $(__advdll___depname) $(__advlib___depname) $(__mediadll___depname) $(__medialib___depname) $(__odbcdll___depname) $(__odbclib___depname) $(__dbgriddll___depname) $(__dbgridlib___depname) $(__htmldll___depname) $(__htmllib___depname) $(__qadll___depname) $(__qalib___depname) $(__xmldll___depname) $(__xmllib___depname) $(__xrcdll___depname) $(__xrclib___depname) $(__auidll___depname) $(__auilib___depname) $(__richtextdll___depname) $(__richtextlib___depname) $(__gldll___depname) $(__gllib___depname) $(__sound_sdl___depname) $(__wxrc___depname) $(__cocoa_res___depname) + + install: $(__install_wxregex___depname) $(__install_wxzlib___depname) $(__install_wxpng___depname) $(__install_wxjpeg___depname) $(__install_wxtiff___depname) $(__install_wxodbc___depname) $(__install_wxexpat___depname) $(__install_monodll___depname) $(__install_monolib___depname) $(__install_basedll___depname) $(__install_baselib___depname) $(__install_netdll___depname) $(__install_netlib___depname) $(__install_coredll___depname) $(__install_corelib___depname) $(__install_advdll___depname) $(__install_advlib___depname) $(__install_mediadll___depname) $(__install_medialib___depname) $(__install_odbcdll___depname) $(__install_odbclib___depname) $(__install_dbgriddll___depname) $(__install_dbgridlib___depname) $(__install_htmldll___depname) $(__install_htmllib___depname) $(__install_qadll___depname) $(__install_qalib___depname) $(__install_xmldll___depname) $(__install_xmllib___depname) $(__install_xrcdll___depname) $(__install_xrclib___depname) $(__install_auidll___depname) $(__install_auilib___depname) $(__install_richtextdll___depname) $(__install_richtextlib___depname) $(__install_gldll___depname) $(__install_gllib___depname) $(__install_sound_sdl___depname) $(__install_wxrc___depname) install-wxconfig locale_install locale_msw_install $(__cocoa_res_install___depname) +- $(INSTALL_DIR) $(DESTDIR)$(datadir)/aclocal +- (cd $(srcdir) ; $(INSTALL_DATA) wxwin.m4 $(DESTDIR)$(datadir)/aclocal) + $(INSTALL_DIR) $(DESTDIR)$(datadir)/bakefile/presets +- (cd $(srcdir)/build/bakefiles/wxpresets/presets ; $(INSTALL_DATA) wx.bkl wx_unix.bkl wx_win32.bkl $(DESTDIR)$(datadir)/bakefile/presets) ++ (cd $(srcdir)/build/bakefiles/wxpresets/presets/ ; for i in wx.bkl wx_unix.bkl wx_win32.bkl; do \ ++ $(INSTALL_DATA) $$i $(DESTDIR)$(datadir)/bakefile/presets/wx$(WX_RELEASE_NODOT)$${i##wx} ; done) + $(INSTALL_DIR) $(DESTDIR)$(libdir)/wx/include/$(TOOLCHAIN_FULLNAME)/wx + for f in setup.h $(RCDEFS_H); do \ + if test ! -d $(DESTDIR)$(libdir)/wx/include/$(TOOLCHAIN_FULLNAME)/wx/`dirname $$f` ; then \ +@@ -12455,7 +12454,8 @@ install-wxconfig: + $(INSTALL_DIR) $(DESTDIR)$(bindir) + $(INSTALL_DIR) $(DESTDIR)$(libdir)/wx/config + $(INSTALL_PROGRAM) lib/wx/config/$(TOOLCHAIN_FULLNAME) $(DESTDIR)$(libdir)/wx/config +- (cd $(DESTDIR)$(bindir) && rm -f wx-config && $(LN_S) $(libdir)/wx/config/$(TOOLCHAIN_FULLNAME) wx-config) ++ (cd $(DESTDIR)$(bindir) && rm -f wx-config-$(WX_RELEASE) \ ++ && $(LN_S) $(libdir)/wx/config/$(TOOLCHAIN_FULLNAME) wx-config-$(WX_RELEASE)) + + locale_install: + $(INSTALL_DIR) $(DESTDIR)$(datadir)/locale +@@ -12463,7 +12463,7 @@ locale_install: + $(INSTALL_DIR) $(DESTDIR)$(datadir)/locale/$$l ; \ + $(INSTALL_DIR) $(DESTDIR)$(datadir)/locale/$$l/LC_MESSAGES ; \ + if test -f $(srcdir)/locale/$$l.mo ; then \ +- $(INSTALL_DATA) $(srcdir)/locale/$$l.mo $(DESTDIR)$(datadir)/locale/$$l/LC_MESSAGES/wxstd.mo ; \ ++ $(INSTALL_DATA) $(srcdir)/locale/$$l.mo $(DESTDIR)$(datadir)/locale/$$l/LC_MESSAGES/wxstd$(WX_RELEASE_NODOT).mo ; \ + fi ; \ + done + +--- a/wx/src/common/intl.cpp ++++ b/wx/src/common/intl.cpp +@@ -1529,6 +1529,8 @@ void wxLocale::DoCommonInit() + m_initialized = false; + } + ++#define wxSTRINGIZE2(x) wxSTRINGIZE(x) ++ + // NB: this function has (desired) side effect of changing current locale + bool wxLocale::Init(const wxChar *szName, + const wxChar *szShort, +@@ -1597,7 +1599,7 @@ bool wxLocale::Init(const wxChar *szName, + bool bOk = true; + if ( bLoadDefault ) + { +- bOk = AddCatalog(wxT("wxstd")); ++ bOk = AddCatalog(wxT("wxstd" wxSTRINGIZE2(wxMAJOR_VERSION) wxSTRINGIZE2(wxMINOR_VERSION))); + + // there may be a catalog with toolkit specific overrides, it is not + // an error if this does not exist +--- a/wx/utils/wxrc/Makefile.in ++++ b/wx/utils/wxrc/Makefile.in +@@ -120,7 +120,6 @@ distclean: clean + @COND_USE_XRC_1@ rm -f $(DESTDIR)$(bindir)/wxrc$(EXEEXT) $(DESTDIR)$(bindir)/wxrc-$(WX_RELEASE) + @COND_USE_XRC_1@ $(INSTALL_PROGRAM) wxrc$(EXEEXT) $(DESTDIR)$(bindir) + @COND_USE_XRC_1@ mv -f $(DESTDIR)$(bindir)/wxrc$(EXEEXT) $(DESTDIR)$(bindir)/wxrc-$(WX_RELEASE) +-@COND_USE_XRC_1@ (cd $(DESTDIR)$(bindir) && $(LN_S) wxrc-$(WX_RELEASE) wxrc$(EXEEXT)) + + @COND_USE_XRC_1@uninstall_wxrc: + @COND_USE_XRC_1@ rm -f $(DESTDIR)$(bindir)/wxrc$(EXEEXT) diff -Nru truecrypt-7.1a/debian/patches/wxGTK-2.8.11-unicode-odbc.patch truecrypt-7.1a/debian/patches/wxGTK-2.8.11-unicode-odbc.patch --- truecrypt-7.1a/debian/patches/wxGTK-2.8.11-unicode-odbc.patch 1970-01-01 00:00:00.000000000 +0000 +++ truecrypt-7.1a/debian/patches/wxGTK-2.8.11-unicode-odbc.patch 2016-10-19 17:23:06.000000000 +0000 @@ -0,0 +1,13 @@ +Allow odbc to be used with unicode builds. + +--- a/wx/Makefile.in ++++ b/wx/Makefile.in +@@ -1217,7 +1217,7 @@ ODBCDLL_CXXFLAGS = $(__odbcdll_PCH_INC) -D__WX$(TOOLKIT)__ \ + $(__WXUNIV_DEFINE_p) $(__EXCEPTIONS_DEFINE_p) $(__RTTI_DEFINE_p) \ + $(__THREAD_DEFINE_p) -DWXBUILDING $(__INC_TIFF_p) $(__INC_JPEG_p) \ + $(__INC_PNG_p) $(__INC_ZLIB_p) $(__INC_ODBC_p) $(__INC_REGEX_p) \ +- $(__INC_EXPAT_p) -DwxUSE_GUI=0 -DWXUSINGDLL -DWXMAKINGDLL_ODBC $(PIC_FLAG) \ ++ $(__INC_EXPAT_p) -DwxUSE_GUI=0 -DWXUSINGDLL -DWXMAKINGDLL_ODBC -DSQL_WCHART_CONVERT $(PIC_FLAG) \ + $(CPPFLAGS) $(CXXFLAGS) + ODBCDLL_OBJECTS = \ + $(__odbcdll___win32rc) \ diff -Nru truecrypt-7.1a/debian/patches/wxGTK-2.8.12.1-fix-c++14.patch truecrypt-7.1a/debian/patches/wxGTK-2.8.12.1-fix-c++14.patch --- truecrypt-7.1a/debian/patches/wxGTK-2.8.12.1-fix-c++14.patch 1970-01-01 00:00:00.000000000 +0000 +++ truecrypt-7.1a/debian/patches/wxGTK-2.8.12.1-fix-c++14.patch 2016-10-19 17:23:06.000000000 +0000 @@ -0,0 +1,77 @@ +Fix building with C++14, which errors out due to narrowing conversions. +See also: https://bugs.gentoo.org/show_bug.cgi?id=592442 + +Patch by Francesco Turco + +--- a/wx/src/gtk/bdiag.xbm ++++ b/wx/src/gtk/bdiag.xbm +@@ -1,6 +1,6 @@ + #define bdiag_width 16 + #define bdiag_height 16 + static char bdiag_bits[] = { +- 0x80, 0x80, 0x40, 0x40, 0x20, 0x20, 0x10, 0x10, 0x08, 0x08, 0x04, 0x04, +- 0x02, 0x02, 0x01, 0x01, 0x80, 0x80, 0x40, 0x40, 0x20, 0x20, 0x10, 0x10, +- 0x08, 0x08, 0x04, 0x04, 0x02, 0x02, 0x01, 0x01}; ++ (char)0x80, (char)0x80, (char)0x40, (char)0x40, (char)0x20, (char)0x20, (char)0x10, (char)0x10, (char)0x08, (char)0x08, (char)0x04, (char)0x04, ++ (char)0x02, (char)0x02, (char)0x01, (char)0x01, (char)0x80, (char)0x80, (char)0x40, (char)0x40, (char)0x20, (char)0x20, (char)0x10, (char)0x10, ++ (char)0x08, (char)0x08, (char)0x04, (char)0x04, (char)0x02, (char)0x02, (char)0x01, (char)0x01}; +--- a/wx/src/gtk/cdiag.xbm ++++ b/wx/src/gtk/cdiag.xbm +@@ -1,6 +1,6 @@ + #define cdiag_width 16 + #define cdiag_height 16 + static char cdiag_bits[] = { +- 0x81, 0x81, 0x42, 0x42, 0x24, 0x24, 0x18, 0x18, 0x18, 0x18, 0x24, 0x24, +- 0x42, 0x42, 0x81, 0x81, 0x81, 0x81, 0x42, 0x42, 0x24, 0x24, 0x18, 0x18, +- 0x18, 0x18, 0x24, 0x24, 0x42, 0x42, 0x81, 0x81}; ++ (char)0x81, (char)0x81, (char)0x42, (char)0x42, (char)0x24, (char)0x24, (char)0x18, (char)0x18, (char)0x18, (char)0x18, (char)0x24, (char)0x24, ++ (char)0x42, (char)0x42, (char)0x81, (char)0x81, (char)0x81, (char)0x81, (char)0x42, (char)0x42, (char)0x24, (char)0x24, (char)0x18, (char)0x18, ++ (char)0x18, (char)0x18, (char)0x24, (char)0x24, (char)0x42, (char)0x42, (char)0x81, (char)0x81}; +--- a/wx/src/gtk/cross.xbm ++++ b/wx/src/gtk/cross.xbm +@@ -1,6 +1,6 @@ + #define cross_width 15 + #define cross_height 15 + static char cross_bits[] = { +- 0x84, 0x10, 0x84, 0x10, 0xff, 0x7f, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, +- 0x84, 0x10, 0xff, 0x7f, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, +- 0xff, 0x7f, 0x84, 0x10, 0x84, 0x10}; ++ (char)0x84, (char)0x10, (char)0x84, (char)0x10, (char)0xff, (char)0x7f, (char)0x84, (char)0x10, (char)0x84, (char)0x10, (char)0x84, (char)0x10, ++ (char)0x84, (char)0x10, (char)0xff, (char)0x7f, (char)0x84, (char)0x10, (char)0x84, (char)0x10, (char)0x84, (char)0x10, (char)0x84, (char)0x10, ++ (char)0xff, (char)0x7f, (char)0x84, (char)0x10, (char)0x84, (char)0x10}; +--- a/wx/src/gtk/fdiag.xbm ++++ b/wx/src/gtk/fdiag.xbm +@@ -1,6 +1,6 @@ + #define fdiag_width 16 + #define fdiag_height 16 + static char fdiag_bits[] = { +- 0x01, 0x01, 0x02, 0x02, 0x04, 0x04, 0x08, 0x08, 0x10, 0x10, 0x20, 0x20, +- 0x40, 0x40, 0x80, 0x80, 0x01, 0x01, 0x02, 0x02, 0x04, 0x04, 0x08, 0x08, +- 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x80, 0x80}; ++ (char)0x01, (char)0x01, (char)0x02, (char)0x02, (char)0x04, (char)0x04, (char)0x08, (char)0x08, (char)0x10, (char)0x10, (char)0x20, (char)0x20, ++ (char)0x40, (char)0x40, (char)0x80, (char)0x80, (char)0x01, (char)0x01, (char)0x02, (char)0x02, (char)0x04, (char)0x04, (char)0x08, (char)0x08, ++ (char)0x10, (char)0x10, (char)0x20, (char)0x20, (char)0x40, (char)0x40, (char)0x80, (char)0x80}; +--- a/wx/src/gtk/horiz.xbm ++++ b/wx/src/gtk/horiz.xbm +@@ -1,6 +1,6 @@ + #define horiz_width 15 + #define horiz_height 15 + static char horiz_bits[] = { +- 0x00, 0x00, 0x00, 0x00, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +- 0x00, 0x00, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +- 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00}; ++ (char)0x00, (char)0x00, (char)0x00, (char)0x00, (char)0xff, (char)0x7f, (char)0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, ++ (char)0x00, (char)0x00, (char)0xff, (char)0x7f, (char)0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, ++ (char)0xff, (char)0x7f, (char)0x00, (char)0x00, (char)0x00, (char)0x00}; +--- a/wx/src/gtk/verti.xbm ++++ b/wx/src/gtk/verti.xbm +@@ -1,6 +1,6 @@ + #define verti_width 15 + #define verti_height 15 + static char verti_bits[] = { +- 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, +- 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, +- 0x84, 0x10, 0x84, 0x10, 0x84, 0x10}; ++ (char)0x84, (char)0x10, (char)0x84, (char)0x10, (char)0x84, (char)0x10, (char)0x84, (char)0x10, (char)0x84, (char)0x10, (char)0x84, (char)0x10, ++ (char)0x84, (char)0x10, (char)0x84, (char)0x10, (char)0x84, (char)0x10, (char)0x84, (char)0x10, (char)0x84, (char)0x10, (char)0x84, (char)0x10, ++ (char)0x84, (char)0x10, (char)0x84, (char)0x10, (char)0x84, (char)0x10}; diff -Nru truecrypt-7.1a/debian/patches/wxGTK-2.8.7-mmedia.patch truecrypt-7.1a/debian/patches/wxGTK-2.8.7-mmedia.patch --- truecrypt-7.1a/debian/patches/wxGTK-2.8.7-mmedia.patch 1970-01-01 00:00:00.000000000 +0000 +++ truecrypt-7.1a/debian/patches/wxGTK-2.8.7-mmedia.patch 2016-10-19 17:23:06.000000000 +0000 @@ -0,0 +1,11 @@ +diff -Naur wxPython-src-2.8.7.1-orig/contrib/src/Makefile.in wxPython-src-2.8.7.1/contrib/src/Makefile.in +--- wxPython-src-2.8.7.1-orig/wx/contrib/src/Makefile.in 2007-07-27 17:57:27.000000000 -0600 ++++ wxPython-src-2.8.7.1/wx/contrib/src/Makefile.in 2007-12-28 17:34:28.000000000 -0600 +@@ -1,6 +1,6 @@ + # $Id: Makefile.in 42385 2006-10-25 06:51:10Z RD $ + +-CONTRIB_SUBDIRS=fl gizmos mmedia ogl plot stc svg #deprecated #applet ++CONTRIB_SUBDIRS=fl gizmos ogl plot stc svg #deprecated #applet mmedia + + all: + @for d in $(CONTRIB_SUBDIRS); do (cd $$d && $(MAKE)); done diff -Nru truecrypt-7.1a/debian/rules truecrypt-7.1a/debian/rules --- truecrypt-7.1a/debian/rules 2016-05-17 09:28:22.000000000 +0000 +++ truecrypt-7.1a/debian/rules 2017-02-19 06:06:39.000000000 +0000 @@ -4,24 +4,27 @@ export PKCS11_INC=$(shell pwd)/pkcs11 export WX_ROOT=$(shell pwd)/wx -NCPUS=2 -export EXTRA_LIBS=-lX11 -ldl +NCPUS=8 +export TC_EXTRA_LIBS=-lX11 -ldl DEBIAN_CODENAME = $(shell echo $$DIST) ifeq "$(DEBIAN_CODENAME)" "" DEBIAN_CODENAME = $(shell dpkg-parsechangelog | awk '/^Distribution: / {print $$2}') endif -ifneq (,$(filter $(DEBIAN_CODENAME),stretch sid vivid wily xenial)) - export CC=gcc-4.9 - export CXX=g++-4.9 -else - export CC=gcc - export CXX=g++ -endif %: dh $@ --parallel override_dh_auto_build: +ifneq (,$(filter $(DEBIAN_CODENAME),stretch sid xenial yakkety zesty)) +ifneq (,$(filter $(DEBIAN_CODENAME),stretch sid yakkety zesty)) + patch -p1 < debian/patches/truecrypt-7.1a-gcc5.patch + patch -p1 < debian/patches/truecrypt-7.1a-gcc6.patch +else + patch -p1 < debian/patches/truecrypt-7.1a-gcc5.patch +endif +else + echo "no patch" +endif $(MAKE) -j$(NCPUS) wxbuild $(MAKE) -j$(NCPUS) WXSTATIC=1 diff -Nru truecrypt-7.1a/debian/truecrypt.bash-completion truecrypt-7.1a/debian/truecrypt.bash-completion --- truecrypt-7.1a/debian/truecrypt.bash-completion 1970-01-01 00:00:00.000000000 +0000 +++ truecrypt-7.1a/debian/truecrypt.bash-completion 2017-02-14 07:02:56.000000000 +0000 @@ -0,0 +1,75 @@ +# https://launchpad.net/~stefansundin/+archive/ubuntu/truecrypt + +# Notes: +# This script does not support having an equal sign in COMP_WORDBREAKS. +# We only help complete the first value on comma separated lists (e.g. --fs-options). +# Arguments with equal signs need their value without a space. We don't automatically add spaces to these arguments. + +# Bugs in TrueCrypt's documentation: +# All the options that take VOLUME_PATH or FILE_PATH actually takes it as the next argument, NOT after an equal sign! +# --auto-mount can take a comma separated list, i.e. mount both devices and favorites at the same time. + +_truecrypt_complete() { + COMPREPLY=( $( compgen -W "$1" -- "$cur" )) +} + +_truecrypt_opt() { + COMPREPLY=( $( compgen -W "$1" -P "$opt=" -- "$val" )) +} + +_truecrypt() { + COMPREPLY=() + local COMP_FILEDIR_FALLBACK=1 + local cur prev opt val + _get_comp_words_by_ref cur prev + + if [[ $cur == --?*=* ]]; then + opt="${cur%%?(\\)=*}" + val="${cur#*=}" + fi + + if [[ $prev == --create-filedir ]]; then + # --create-keyfile argument does not need to be a .tc file + _filedir + elif [[ $opt =~ ^--(new-|protection-)?keyfiles|--random-source$ ]]; then + # We have to do some hacks here for _filedir to work after an equal sign. + cur="${cur/#--*=/}" + compopt -o nospace + _filedir + COMPREPLY=("${COMPREPLY[@]/#/$opt=}") + elif [[ $opt == --auto-mount ]]; then + _truecrypt_opt "devices favorites" + elif [[ $opt == --encryption ]]; then + _truecrypt_opt "aes serpent twofish aes-twofish aes-twofish-serpent serpent-aes serpent-twofish-aes twofish-serpent" + elif [[ $opt == --filesystem ]]; then + _truecrypt_opt "none fat ext2 ext3 ext4" + elif [[ $opt == --fs-options ]]; then + # These are just some common mount options, not an exhaustive list. + _truecrypt_opt "async auto defaults exec loop noauto noexec nouser remount ro rw user" + elif [[ $opt == --hash ]]; then + _truecrypt_opt "ripemd-160 sha-512 whirlpool" + elif [[ $opt == --mount-options ]]; then + _truecrypt_opt "headerbak nokernelcrypto readonly system timestamp" + elif [[ $opt == --protect-hidden ]]; then + _truecrypt_opt "yes no" + elif [[ $opt == --slot ]]; then + _truecrypt_opt "1 64" + elif [[ $opt == --volume-type ]]; then + _truecrypt_opt "normal hidden" + elif [[ $opt == --token-lib ]]; then + _truecrypt_opt "/usr/lib/i386-linux-gnu/opensc-pkcs11.so /usr/lib/x86_64-linux-gnu/opensc-pkcs11.so" + elif [[ $cur =~ ^- ]]; then + _truecrypt_complete "--background-task -c --create -C -d --delete-token-keyfiles --explore --export-token-keyfile -f --force -h --help --import-token-keyfiles -l --list --list-token-keyfiles --load-preferences --mount --save-preferences --test --version --display-password -k -m --non-interactive -p --quick -t --text -v --verbose --backup-headers --create-keyfile --change --dismount --restore-headers --volume-properties --auto-mount= --encryption= --filesystem= --fs-options= --hash= --keyfiles= --mount-options= --new-keyfiles= --new-password= --password= --protect-hidden= --protection-keyfiles= --protection-password= --random-source= --slot= --size= --token-lib= --volume-type=" + else + _filedir tc + fi + + # Don't put a space after an argument that needs value after equal sign. + if [[ ${#COMPREPLY[@]} == 1 && "${COMPREPLY[@]}" == *= ]]; then + compopt -o nospace + fi + + return 0 +} + +complete -F _truecrypt truecrypt