summaryrefslogtreecommitdiff
path: root/freefilesync/debian/patches
diff options
context:
space:
mode:
Diffstat (limited to 'freefilesync/debian/patches')
-rw-r--r--freefilesync/debian/patches/ffs_devuan_gtk2.patch31
-rw-r--r--freefilesync/debian/patches/ffs_devuan_gtk3.patch12
-rw-r--r--freefilesync/debian/patches/ffs_gcc.patch46
-rw-r--r--freefilesync/debian/patches/ffs_no_check_updates.patch31
-rw-r--r--freefilesync/debian/patches/ffs_no_wx311.patch20
-rw-r--r--freefilesync/debian/patches/revert_zenju_aggressive_upstreamisms.patch181
-rw-r--r--freefilesync/debian/patches/series4
7 files changed, 79 insertions, 246 deletions
diff --git a/freefilesync/debian/patches/ffs_devuan_gtk2.patch b/freefilesync/debian/patches/ffs_devuan_gtk2.patch
deleted file mode 100644
index 49a7c24..0000000
--- a/freefilesync/debian/patches/ffs_devuan_gtk2.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-Author: B Stack
-Source: Original research
-Date: 2019-11-21
-Message: Patches to use gtk2. Depends on ffs_devuan.patch
-diff -x '*.swp' -x '.git*' -x '*.orig' -x '*.rej' -Naur 10.18-0/FreeFileSync/Source/Makefile 10.18-1/FreeFileSync/Source/Makefile
---- 10.11-0/FreeFileSync/Source/Makefile 2019-04-12 08:05:57.000000000 -0400
-+++ 10.18-2/FreeFileSync/Source/Makefile 2019-11-21 09:42:57.408243242 -0500
-@@ -16,9 +16,10 @@
- cxxFlags += `pkg-config --cflags libssh2`
- linkFlags += `pkg-config --libs libssh2`
-
--cxxFlags += `pkg-config --cflags gtk+-2.0`
-+cxxFlags += `pkg-config --cflags gtk+-2.0`
-+linkFlags += `pkg-config --libs gtk+-2.0`
- #treat as system headers so that warnings are hidden:
--cxxFlags += -isystem/usr/include/gtk-2.0
-+cxxFlags += -isystem/usr/include/gtk-2.0
-
- #support for SELinux (optional)
- SELINUX_EXISTING=$(shell pkg-config --exists libselinux && echo YES)
-diff -x '*.swp' -x '.git*' -x '*.orig' -x '*.rej' -Naur 10.18-0/FreeFileSync/Source/RealTimeSync/Makefile 10.18-1/FreeFileSync/Source/RealTimeSync/Makefile
---- 10.20-0/FreeFileSync/Source/RealTimeSync/Makefile 2020-02-15 11:45:58.241515736 -0500
-+++ 10.20-1/FreeFileSync/Source/RealTimeSync/Makefile 2020-02-15 15:43:32.852203730 -0500
-@@ -8,6 +8,7 @@
-
- #Gtk - support "no button border"
- cxxFlags += `pkg-config --cflags gtk+-2.0`
-+linkFlags += `pkg-config --libs gtk+-2.0`
- #treat as system headers so that warnings are hidden:
- cxxFlags += -isystem/usr/include/gtk-2.0
-
diff --git a/freefilesync/debian/patches/ffs_devuan_gtk3.patch b/freefilesync/debian/patches/ffs_devuan_gtk3.patch
index 3559261..16268d1 100644
--- a/freefilesync/debian/patches/ffs_devuan_gtk3.patch
+++ b/freefilesync/debian/patches/ffs_devuan_gtk3.patch
@@ -47,15 +47,3 @@ diff -x '*.swp' -x '.git*' -x '*.orig' -x '*.rej' -Naur 10.18-0/wx+/dc.h 10.18-1
//GTK2 doesn't properly support high DPI: https://freefilesync.org/forum/viewtopic.php?t=6114
//=> requires general fix at wxWidgets-level
assert(wxTheApp); //only call after wxWidgets was initalized!
-diff -x '*.swp' -x '.git*' -x '*.orig' -x '*.rej' -Naur 10.18-0/FreeFileSync/Source/base/icon_loader.cpp 10.18-1/FreeFileSync/Source/base/icon_loader.cpp
---- 10.18-0/FreeFileSync/Source/base/icon_loader.cpp 2019-11-21 08:24:23.955769262 -0500
-+++ 10.18-1/FreeFileSync/Source/base/icon_loader.cpp 2019-11-21 09:42:15.439813730 -0500
-@@ -18,7 +18,7 @@
-
- namespace
- {
--static_assert(GTK_MAJOR_VERSION == 2, "FreeFileSync does NOT (currently) support GTK3! The GTK calls below will lead to crashes due to not being thread-safe on GTK3.");
-+static_assert(GTK_MAJOR_VERSION == 3, "FreeFileSync does NOT (currently) support GTK3! The GTK calls below will lead to crashes due to not being thread-safe on GTK3.");
- //gdk_threads_enter(); + ZEN_ON_SCOPE_EXIT(::gdk_threads_leave); is NOT enough; e.g. GTK3 + openSuse still crashes with:
- // Gtk:ERROR:gtkicontheme.c:4026:proxy_pixbuf_destroy: assertion failed: (icon_info->proxy_pixbuf != NULL)
- //GTK icon theme internals: https://github.com/GNOME/gtk/blob/master/gtk/gtkicontheme.c
diff --git a/freefilesync/debian/patches/ffs_gcc.patch b/freefilesync/debian/patches/ffs_gcc.patch
new file mode 100644
index 0000000..ed007b5
--- /dev/null
+++ b/freefilesync/debian/patches/ffs_gcc.patch
@@ -0,0 +1,46 @@
+diff -Naur 10.25-1/FreeFileSync/Source/Makefile 10.25-2/FreeFileSync/Source/Makefile
+--- 10.25-1/FreeFileSync/Source/Makefile 2020-06-20 13:36:08.495867672 -0400
++++ 10.25-2/FreeFileSync/Source/Makefile 2020-06-20 13:31:36.180419862 -0400
+@@ -1,4 +1,5 @@
+ exeName = FreeFileSync
++CXX=g++-10
+
+ cxxFlags += -std=c++2a -pipe -DWXINTL_NO_GETTEXT_MACRO -I../.. -I../../zenXml -include "zen/i18n.h" -include "zen/warn_static.h" \
+ -Wall -Wfatal-errors -Wmissing-include-dirs -Wswitch-enum -Wcast-align -Wshadow -Wnon-virtual-dtor \
+@@ -114,11 +115,11 @@
+
+ ../Build/Bin/$(exeName): $(objFiles)
+ mkdir -p $(dir $@)
+- g++ -o $@ $^ $(linkFlags)
++ $(CXX) -o $@ $^ $(linkFlags)
+
+ $(tmpPath)/ffs/src/%.o : %
+ mkdir -p $(dir $@)
+- g++ $(cxxFlags) -c $< -o $@
++ $(CXX) $(cxxFlags) -c $< -o $@
+
+ clean:
+ rm -rf $(tmpPath)
+diff -Naur 10.25-1/FreeFileSync/Source/RealTimeSync/Makefile 10.25-2/FreeFileSync/Source/RealTimeSync/Makefile
+--- 10.25-1/FreeFileSync/Source/RealTimeSync/Makefile 2020-06-20 13:36:08.499867723 -0400
++++ 10.25-2/FreeFileSync/Source/RealTimeSync/Makefile 2020-06-20 13:31:48.844580205 -0400
+@@ -1,4 +1,5 @@
+ exeName = RealTimeSync
++CXX=g++-10
+
+ cxxFlags += -std=c++2a -pipe -DWXINTL_NO_GETTEXT_MACRO -I../../.. -I../../../zenXml -include "zen/i18n.h" -include "zen/warn_static.h" \
+ -Wall -Wfatal-errors -Wmissing-include-dirs -Wswitch-enum -Wcast-align -Wshadow -Wnon-virtual-dtor \
+@@ -52,11 +53,11 @@
+
+ ../../Build/Bin/$(exeName): $(objFiles)
+ mkdir -p $(dir $@)
+- g++ -o $@ $^ $(linkFlags)
++ $(CXX) -o $@ $^ $(linkFlags)
+
+ $(tmpPath)/ffs/src/rts/%.o : %
+ mkdir -p $(dir $@)
+- g++ $(cxxFlags) -c $< -o $@
++ $(CXX) $(cxxFlags) -c $< -o $@
+
+ clean:
+ rm -rf $(tmpPath)
diff --git a/freefilesync/debian/patches/ffs_no_check_updates.patch b/freefilesync/debian/patches/ffs_no_check_updates.patch
index 1ef4148..62f4e7e 100644
--- a/freefilesync/debian/patches/ffs_no_check_updates.patch
+++ b/freefilesync/debian/patches/ffs_no_check_updates.patch
@@ -1,7 +1,7 @@
diff --exclude '*.orig' -Naur 10.14-0/FreeFileSync/Source/ui/main_dlg.cpp 10.14-1/FreeFileSync/Source/ui/main_dlg.cpp
--- 10.9-0/FreeFileSync/Source/ui/main_dlg.cpp 2019-02-10 22:01:42.029158919 -0500
-+++ 10.14-1/FreeFileSync/Source/ui/main_dlg.cpp 2019-07-16 10:56:40.213575535 -0400
-@@ -5298,7 +5298,7 @@
++++ 11.0-1/FreeFileSync/Source/ui/main_dlg.cpp 2020-07-22 11:49:13.747407290 -0400
+@@ -5538,7 +5538,7 @@
globalCfg_.gui.lastUpdateCheck = 0; //reset to GlobalSettings.xml default value!
m_menuItemCheckVersionAuto->Check(updateCheckActive(globalCfg_.gui.lastUpdateCheck));
@@ -10,15 +10,15 @@ diff --exclude '*.orig' -Naur 10.14-0/FreeFileSync/Source/ui/main_dlg.cpp 10.14-
if (shouldRunAutomaticUpdateCheck(globalCfg_.gui.lastUpdateCheck))
{
flashStatusInformation(_("Searching for program updates..."));
-@@ -5306,6 +5306,7 @@
+@@ -5546,6 +5546,7 @@
automaticUpdateCheckEval(this, globalCfg_.gui.lastUpdateCheck, globalCfg_.gui.lastOnlineVersion,
- automaticUpdateCheckRunAsync(automaticUpdateCheckPrepare().get()).get());
+ automaticUpdateCheckRunAsync(automaticUpdateCheckPrepare(*this).get()).get());
}
+ */
}
-@@ -5313,7 +5314,7 @@
+@@ -5553,7 +5554,7 @@
{
//execute just once per startup!
Disconnect(wxEVT_IDLE, wxIdleEventHandler(MainDialog::OnRegularUpdateCheck), nullptr, this);
@@ -27,7 +27,7 @@ diff --exclude '*.orig' -Naur 10.14-0/FreeFileSync/Source/ui/main_dlg.cpp 10.14-
if (shouldRunAutomaticUpdateCheck(globalCfg_.gui.lastUpdateCheck))
{
flashStatusInformation(_("Searching for program updates..."));
-@@ -5327,6 +5328,7 @@
+@@ -5567,6 +5568,7 @@
resultAsync.get()); //run on main thread:
});
}
@@ -37,7 +37,7 @@ diff --exclude '*.orig' -Naur 10.14-0/FreeFileSync/Source/ui/main_dlg.cpp 10.14-
diff --exclude '*.orig' -Naur 10.14-0/FreeFileSync/Source/ui/version_check.cpp 10.14-1/FreeFileSync/Source/ui/version_check.cpp
--- 10.9-0/FreeFileSync/Source/ui/version_check.cpp 2019-02-10 22:01:42.126160041 -0500
-+++ 10.18-1/FreeFileSync/Source/ui/version_check.cpp 2019-11-20 09:19:50.936975067 -0500
++++ 11.0-1/FreeFileSync/Source/ui/version_check.cpp 2020-07-22 11:43:36.895201090 -0400
@@ -69,6 +69,8 @@
bool fff::shouldRunAutomaticUpdateCheck(time_t lastUpdateCheck)
@@ -47,7 +47,7 @@ diff --exclude '*.orig' -Naur 10.14-0/FreeFileSync/Source/ui/version_check.cpp 1
if (lastUpdateCheck == getVersionCheckInactiveId())
return false;
-@@ -156,8 +158,7 @@
+@@ -159,8 +161,7 @@
{
try
{
@@ -57,7 +57,7 @@ diff --exclude '*.orig' -Naur 10.14-0/FreeFileSync/Source/ui/version_check.cpp 1
updateDetailsMsg = utfTo<std::wstring>(buf);
}
catch (const zen::SysError& e) { throw FileError(_("Failed to retrieve update information."), e.toString()); }
-@@ -182,8 +183,7 @@
+@@ -189,8 +190,7 @@
std::string getOnlineVersion(const std::vector<std::pair<std::string, std::string>>& postParams) //throw SysError
{
@@ -67,21 +67,22 @@ diff --exclude '*.orig' -Naur 10.14-0/FreeFileSync/Source/ui/version_check.cpp 1
return trimCpy(response);
}
-@@ -235,13 +235,13 @@
- const std::string onlineVersion = getOnlineVersion(geHttpPostParameters()); //throw SysError
+@@ -237,13 +237,13 @@
+ const std::string onlineVersion = getOnlineVersion(geHttpPostParameters(parent)); //throw SysError
lastOnlineVersion = onlineVersion;
- if (haveNewerVersionOnline(onlineVersion))
-- showUpdateAvailableDialog(parent, onlineVersion);
+- showUpdateAvailableDialog(&parent, onlineVersion);
- else
+ //if (haveNewerVersionOnline(onlineVersion))
-+ // showUpdateAvailableDialog(parent, onlineVersion);
++ // showUpdateAvailableDialog(&parent, onlineVersion);
+ //else
- showNotificationDialog(parent, DialogInfoType::info, PopupDialogCfg().
- setIcon(getResourceImage("update_check")).
+ showNotificationDialog(&parent, DialogInfoType::info, PopupDialogCfg().
+ setIcon(loadImage("update_check")).
setTitle(_("Check for Program Updates")).
- setMainInstructions(_("FreeFileSync is up to date.")));
+ setMainInstructions(_("Use your package manager for any updates to FreeFileSync.")));
}
catch (const zen::SysError& e)
{
+
diff --git a/freefilesync/debian/patches/ffs_no_wx311.patch b/freefilesync/debian/patches/ffs_no_wx311.patch
index 932800d..22d8260 100644
--- a/freefilesync/debian/patches/ffs_no_wx311.patch
+++ b/freefilesync/debian/patches/ffs_no_wx311.patch
@@ -1,11 +1,21 @@
2019-08-15 just compile.
-diff -x '*.rej' -x '*.orig' -x '*.git*' -Naur 10.24-0/FreeFileSync/Source/ui/small_dlgs.cpp 10.24-1/FreeFileSync/Source/ui/small_dlgs.cpp
---- 10.3-0/FreeFileSync/Source/ui/small_dlgs.cpp 2019-12-27 07:56:06.714625467 -0500
-+++ 10.19-1/FreeFileSync/Source/ui/small_dlgs.cpp 2019-12-27 08:41:43.498308243 -0500
-@@ -1594,7 +1594,7 @@
+diff -Naur 10.25-0/FreeFileSync/Source/ui/small_dlgs.cpp 10.25-1/FreeFileSync/Source/ui/small_dlgs.cpp
+--- 10.25-0/FreeFileSync/Source/ui/small_dlgs.cpp 2020-06-19 16:17:15.000000000 -0400
++++ 11.0-1/FreeFileSync/Source/ui/small_dlgs.cpp 2020-07-22 11:39:25.820068366 -0400
+@@ -293,7 +293,8 @@
+ {
+ showNotificationDialog(this, DialogInfoType::error, PopupDialogCfg().setDetailInstructions(e.toString()));
+ }
+- m_listBoxGdriveUsers->Append(gdriveAccounts);
++ for (const wxString& item : gdriveAccounts) // reverted to pre-wx 3.1.1 logic
++ m_listBoxGdriveUsers->Append(item);
+
+ //set default values for Google Drive: use first item of m_listBoxGdriveUsers
+ if (!gdriveAccounts.empty() && !acceptsItemPathPhraseGdrive(folderPathPhrase))
+@@ -1682,7 +1683,7 @@
//setMainInstructionFont(*m_staticTextMain);
- m_bitmapActivation->SetBitmap(getResourceImage("internet"));
+ m_bitmapActivation->SetBitmap(loadImage("internet"));
- m_textCtrlOfflineActivationKey->ForceUpper();
+ //m_textCtrlOfflineActivationKey->ForceUpper();
diff --git a/freefilesync/debian/patches/revert_zenju_aggressive_upstreamisms.patch b/freefilesync/debian/patches/revert_zenju_aggressive_upstreamisms.patch
index 0da4e06..8ca60c2 100644
--- a/freefilesync/debian/patches/revert_zenju_aggressive_upstreamisms.patch
+++ b/freefilesync/debian/patches/revert_zenju_aggressive_upstreamisms.patch
@@ -1,184 +1,3 @@
-Author: Ben Stack <bgstack15@gmail.com>
-Date: 2020-05-17 14:11 -0400
-Message: Use the following command to get this old contents. Zenju must be using some newer definition of -std=c++2a than what Devuan Ceres provides as of 2020-05-17, and probably wxwidgets. This is the 10.23 code for these files.
-
- git checkout b4ecf755 zen/legacy_compiler.h zen/string_base.h wx+/choice_enum.h
-
-Unfortunately with the removal of the wxWidgets-gtk2 code from Debian, we are stuck using all available at approximately November 1, 2019 snapshot of Debian: https://snapshot.debian.org/archive/debian/20191101T211023Z/pool/main/w/wxwidgets3.0/
-libwxbase3.0-0v5_3.0.4+dfsg-14_amd64.deb
-libwxbase3.0-0v5_3.0.4+dfsg-14_i386.deb
-libwxbase3.0-dev_3.0.4+dfsg-14_amd64.deb
-libwxbase3.0-dev_3.0.4+dfsg-14_i386.deb
-libwxgtk3.0-0v5_3.0.4+dfsg-14_amd64.deb
-libwxgtk3.0-0v5_3.0.4+dfsg-14_i386.deb
-libwxgtk3.0-dev_3.0.4+dfsg-14_amd64.deb
-libwxgtk3.0-dev_3.0.4+dfsg-14_i386.deb
-wx3.0-headers_3.0.4+dfsg-14_all.deb
-wx-common_3.0.4+dfsg-14_amd64.deb
-wx-common_3.0.4+dfsg-14_i386.deb
-diff -x '*.rej' -x '*.orig' -x '*.git*' -Naur 10.24-0/zen/legacy_compiler.h 10.24-1/zen/legacy_compiler.h
---- 10.24-0/zen/legacy_compiler.h 2020-05-17 13:44:27.542140458 -0400
-+++ 10.24-1/zen/legacy_compiler.h 2020-05-17 14:07:49.115166339 -0400
-@@ -7,9 +7,6 @@
- #ifndef LEGACY_COMPILER_H_839567308565656789
- #define LEGACY_COMPILER_H_839567308565656789
-
-- #include <numbers> //C++20
--
-- #include <span> //requires C++20
-
-
-
-@@ -21,8 +18,53 @@
-
- //---------------------------------------------------------------------------------
-
-+#if __cpp_lib_span
-+ #error get rid of workaround:
-+#endif
-+
-+template <class T>
-+class span
-+{
-+public:
-+ template <class Iterator>
-+ span(Iterator first, Iterator last) : size_(last - first), data_(first != last ? &*first : nullptr) {}
-+
-+ template <class Container>
-+ span(Container& cont) : span(cont.begin(), cont.end()) {}
-+
-+ using iterator = T*;
-+ using const_iterator = const T*;
-+
-+ iterator begin() { return data_; }
-+ iterator end () { return data_ + size_; }
-+
-+ const_iterator begin() const { return data_; }
-+ const_iterator end () const { return data_ + size_; }
-
-+ const_iterator cbegin() const { return begin(); }
-+ const_iterator cend () const { return end (); }
-
-+ T* data() const { return data_; }
-+ size_t size() const { return size_; }
-+ bool empty() const { return size_ == 0; }
-+
-+private:
-+ const size_t size_;
-+ T* const data_;
-+};
-+
-+
-+#if __cpp_lib_math_constants
-+ #error get rid of workaround:
-+#endif
-+
-+namespace numbers
-+{
-+const double pi = 3.14159265358979323846;
-+const double e = 2.71828182845904523536;
-+const double sqrt2 = 1.41421356237309504880;
-+const double ln2 = 0.693147180559945309417;
-+}
- }
-
-
-diff -x '*.rej' -x '*.orig' -x '*.git*' -Naur 10.24-0/zen/string_base.h 10.24-1/zen/string_base.h
---- 10.24-0/zen/string_base.h 2020-05-17 13:44:27.554140569 -0400
-+++ 10.24-1/zen/string_base.h 2020-05-17 14:09:44.164244361 -0400
-@@ -12,7 +12,9 @@
- #include <cstdint>
- #include <atomic>
- #include "string_tools.h"
-+#if __cpp_impl_three_way_comparison && __cpp_lib_three_way_comparison
- #include <compare>
-+#endif
-
-
- //Zbase - a policy based string class optimizing performance and flexibility
-@@ -293,15 +295,29 @@
- };
-
-
-+#if __cpp_impl_three_way_comparison && __cpp_lib_three_way_comparison
-+ #error implement!
-+#endif
-+
-
- template <class Char, template <class> class SP> bool operator==(const Zbase<Char, SP>& lhs, const Zbase<Char, SP>& rhs);
- template <class Char, template <class> class SP> bool operator==(const Zbase<Char, SP>& lhs, const Char* rhs);
- template <class Char, template <class> class SP> inline bool operator==(const Char* lhs, const Zbase<Char, SP>& rhs) { return operator==(rhs, lhs); }
-
-+#if __cpp_impl_three_way_comparison && __cpp_lib_three_way_comparison
- template <class Char, template <class> class SP> std::strong_ordering operator<=>(const Zbase<Char, SP>& lhs, const Zbase<Char, SP>& rhs);
- template <class Char, template <class> class SP> std::strong_ordering operator<=>(const Zbase<Char, SP>& lhs, const Char* rhs);
- template <class Char, template <class> class SP> std::strong_ordering operator<=>(const Char* lhs, const Zbase<Char, SP>& rhs);
-
-+#else
-+template <class Char, template <class> class SP> inline bool operator!=(const Zbase<Char, SP>& lhs, const Zbase<Char, SP>& rhs) { return !operator==(lhs, rhs); }
-+template <class Char, template <class> class SP> inline bool operator!=(const Zbase<Char, SP>& lhs, const Char* rhs) { return !operator==(lhs, rhs); }
-+template <class Char, template <class> class SP> inline bool operator!=(const Char* lhs, const Zbase<Char, SP>& rhs) { return !operator==(lhs, rhs); }
-+
-+template <class Char, template <class> class SP> bool operator<(const Zbase<Char, SP>& lhs, const Zbase<Char, SP>& rhs);
-+template <class Char, template <class> class SP> bool operator<(const Zbase<Char, SP>& lhs, const Char* rhs);
-+template <class Char, template <class> class SP> bool operator<(const Char* lhs, const Zbase<Char, SP>& rhs);
-+#endif
-
- template <class Char, template <class> class SP> inline Zbase<Char, SP> operator+(const Zbase<Char, SP>& lhs, const Zbase<Char, SP>& rhs) { return Zbase<Char, SP>(lhs) += rhs; }
- template <class Char, template <class> class SP> inline Zbase<Char, SP> operator+(const Zbase<Char, SP>& lhs, const Char* rhs) { return Zbase<Char, SP>(lhs) += rhs; }
-@@ -482,11 +498,12 @@
- }
-
-
-+#if __cpp_impl_three_way_comparison && __cpp_lib_three_way_comparison
- template <class Char, template <class> class SP> inline
- std::strong_ordering operator<=>(const Zbase<Char, SP>& lhs, const Zbase<Char, SP>& rhs)
- {
-- return std::lexicographical_compare_three_way(lhs.begin(), lhs.end(), //respect embedded 0
-- rhs.begin(), rhs.end()); //
-+ return std::lexicographical_compare_three_way(lhs.begin(), lhs.end(), //respect embedded 0
-+ rhs.begin(), rhs.end());
- }
-
-
-@@ -501,11 +518,35 @@
- template <class Char, template <class> class SP> inline
- std::strong_ordering operator<=>(const Char* lhs, const Zbase<Char, SP>& rhs)
- {
-- return std::lexicographical_compare_three_way(lhs, lhs + strLength(lhs),
-- rhs.begin(), rhs.end()); //respect embedded 0
-+ return std::lexicographical_compare_three_way(lhs, lhs + strLength(lhs), //respect embedded 0
-+ rhs.begin(), rhs.end());
-+}
-+
-+#else
-+template <class Char, template <class> class SP> inline
-+bool operator<(const Zbase<Char, SP>& lhs, const Zbase<Char, SP>& rhs)
-+{
-+ return std::lexicographical_compare(lhs.begin(), lhs.end(), //respect embedded 0
-+ rhs.begin(), rhs.end());
- }
-
-
-+template <class Char, template <class> class SP> inline
-+bool operator<(const Zbase<Char, SP>& lhs, const Char* rhs)
-+{
-+ return std::lexicographical_compare(lhs.begin(), lhs.end(), //respect embedded 0
-+ rhs, rhs + strLength(rhs));
-+}
-+
-+
-+template <class Char, template <class> class SP> inline
-+bool operator<(const Char* lhs, const Zbase<Char, SP>& rhs)
-+{
-+ return std::lexicographical_compare(lhs, lhs + strLength(lhs), //respect embedded 0
-+ rhs.begin(), rhs.end());
-+}
-+#endif
-+
-
- template <class Char, template <class> class SP> inline
- size_t Zbase<Char, SP>::length() const
diff -x '*.rej' -x '*.orig' -x '*.git*' -Naur 10.24-0/wx+/choice_enum.h 10.24-1/wx+/choice_enum.h
--- 10.24-0/wx+/choice_enum.h 2020-05-17 18:30:59.441499418 -0400
+++ 10.24-1/wx+/choice_enum.h 2020-05-17 18:53:59.893685507 -0400
diff --git a/freefilesync/debian/patches/series b/freefilesync/debian/patches/series
index bd039a4..7ce7a97 100644
--- a/freefilesync/debian/patches/series
+++ b/freefilesync/debian/patches/series
@@ -1,10 +1,10 @@
ffs_allow_parallel_ops.patch
ffs_devuan.patch
-# gtk3 for obs, gtk2 for albion
-ffs_devuan_gtk2.patch
+ffs_devuan_gtk3.patch
ffs_no_check_updates.patch
ffs_no_wx311.patch
ffs_sftp.patch
ffs_libssh2.patch
ffs_curl.patch
revert_zenju_aggressive_upstreamisms.patch
+ffs_gcc.patch
bgstack15