diff options
author | B. Stack <bgstack15@gmail.com> | 2022-11-01 18:05:27 +0000 |
---|---|---|
committer | B. Stack <bgstack15@gmail.com> | 2022-11-01 18:05:27 +0000 |
commit | 33bd3d9138de7e847e29646ff3bceefa521dc809 (patch) | |
tree | c1dcaffb441e4dcd4a34047cc34f3065ffb3573c | |
parent | Merge branch 'makemkv-bump' into 'master' (diff) | |
parent | ffs 11.27 dpkg rc1 (diff) | |
download | stackrpms-33bd3d9138de7e847e29646ff3bceefa521dc809.tar.gz stackrpms-33bd3d9138de7e847e29646ff3bceefa521dc809.tar.bz2 stackrpms-33bd3d9138de7e847e29646ff3bceefa521dc809.zip |
Merge branch 'freefilesync-bump' into 'master'
ffs 11.27, dpkg only
See merge request bgstack15/stackrpms!326
-rw-r--r-- | freefilesync/01_no_check_updates.patch | 10 | ||||
-rw-r--r-- | freefilesync/03_sftp.patch | 24 | ||||
-rw-r--r-- | freefilesync/04_revert_zenju_aggressive_upstreamisms.patch | 191 | ||||
-rw-r--r-- | freefilesync/06_icon_loader.patch | 30 | ||||
-rw-r--r-- | freefilesync/debian/_service | 2 | ||||
-rw-r--r-- | freefilesync/debian/changelog | 34 | ||||
-rw-r--r-- | freefilesync/debian/control | 7 | ||||
-rw-r--r-- | freefilesync/debian/freefilesync+devuan.dsc | 4 | ||||
-rw-r--r-- | freefilesync/debian/patches/ffs_devuan.patch | 24 | ||||
-rw-r--r-- | freefilesync/debian/patches/ffs_devuan_gtk3.patch | 6 | ||||
-rw-r--r-- | freefilesync/debian/patches/ffs_icon_loader.patch | 30 | ||||
-rw-r--r-- | freefilesync/debian/patches/ffs_no_check_updates.patch | 88 | ||||
-rw-r--r-- | freefilesync/debian/patches/ffs_sftp.patch | 24 | ||||
-rw-r--r-- | freefilesync/debian/patches/revert_zenju_aggressive_upstreamisms.patch | 191 | ||||
-rw-r--r-- | freefilesync/debian/patches/series | 4 |
15 files changed, 371 insertions, 298 deletions
diff --git a/freefilesync/01_no_check_updates.patch b/freefilesync/01_no_check_updates.patch index 956b476..d37005d 100644 --- a/freefilesync/01_no_check_updates.patch +++ b/freefilesync/01_no_check_updates.patch @@ -181,22 +181,22 @@ Message: This is a major rewrite of the ffs_no_check_updates patch from before 1 if (lastUpdateCheck == getVersionCheckInactiveId()) return false; -@@ -168,8 +170,7 @@ +@@ -175,8 +174,7 @@ std::wstring updateDetailsMsg; try { - updateDetailsMsg = utfTo<std::wstring>(sendHttpGet(utfTo<Zstring>("https://api.freefilesync.org/latest_changes?" + xWwwFormUrlEncode({{"since", ffsVersion}})), -- ffsUpdateCheckUserAgent, Zstring() /*caCertFilePath*/, nullptr /*notifyUnbufferedIO*/).readAll()); //throw SysError +- ffsUpdateCheckUserAgent, Zstring() /*caCertFilePath*/).readAll(nullptr /*notifyUnbufferedIO*/)); //throw SysError + updateDetailsMsg = utfTo<std::wstring>(""); } catch (const SysError& e) { updateDetailsMsg = _("Failed to retrieve update information.") + + L"\n\n" + e.toString(); } -@@ -191,8 +192,8 @@ +@@ -198,8 +196,8 @@ std::string getOnlineVersion(const std::vector<std::pair<std::string, std::string>>& postParams) //throw SysError { -- const std::string response = sendHttpPost(Zstr("https://api.freefilesync.org/latest_version"), postParams, -- ffsUpdateCheckUserAgent, Zstring() /*caCertFilePath*/, nullptr /*notifyUnbufferedIO*/).readAll(); //throw SysError +- const std::string response = sendHttpPost(Zstr("https://api.freefilesync.org/latest_version"), postParams, nullptr /*notifyUnbufferedIO*/, +- ffsUpdateCheckUserAgent, Zstring() /*caCertFilePath*/).readAll(nullptr /*notifyUnbufferedIO*/); //throw SysError + const std::string response = ""; + return trimCpy(response); diff --git a/freefilesync/03_sftp.patch b/freefilesync/03_sftp.patch index a51acc8..969042d 100644 --- a/freefilesync/03_sftp.patch +++ b/freefilesync/03_sftp.patch @@ -1,25 +1,21 @@ Source: <none> Author: B Stack Message: The upstream author observed that some of the values he uses are not in the libssh2 public headers. I don't know where he uses them from, but I had to replace them here to get this to compile. -Date: 2021-02-02T18:08:53Z -Version: 11.6 +Date: 2022-10-11T15:34Z +Version: 11.26 https://github.com/libssh2/libssh2/issues/90 diff -aur -x '*.git*' -x '.*.swp' -x '*.orig' -x '*.rej' 11.6-0/FreeFileSync/Source/afs/sftp.cpp 11.6-1/FreeFileSync/Source/afs/sftp.cpp ---- 11.6-0/FreeFileSync/Source/afs/sftp.cpp 2021-02-02 11:37:38.589717171 -0500 -+++ 11.6-1/FreeFileSync/Source/afs/sftp.cpp 2021-02-02 13:06:45.782113785 -0500 -@@ -66,10 +66,10 @@ - LIBSSH2_SFTP_S_IRWXO; +--- 11.26-0/FreeFileSync/Source/afs/sftp.cpp 2021-02-02 11:37:38.589717171 -0500 ++++ 11.26-1/FreeFileSync/Source/afs/sftp.cpp 2021-02-02 13:06:45.782113785 -0500 +@@ -65,9 +65,8 @@ //attention: if operation fails due to time out, e.g. file copy, the cleanup code may hang, too => total delay = 2 x time out interval -- --const size_t SFTP_OPTIMAL_BLOCK_SIZE_READ = 8 * MAX_SFTP_READ_SIZE; //https://github.com/libssh2/libssh2/issues/90 --const size_t SFTP_OPTIMAL_BLOCK_SIZE_WRITE = 8 * MAX_SFTP_OUTGOING_SIZE; // + +-const size_t SFTP_OPTIMAL_BLOCK_SIZE_READ = 16 * MAX_SFTP_READ_SIZE; //https://github.com/libssh2/libssh2/issues/90 +-const size_t SFTP_OPTIMAL_BLOCK_SIZE_WRITE = 16 * MAX_SFTP_OUTGOING_SIZE; //need large buffer to mitigate libssh2 stupidly waiting on "acks": https://www.libssh2.org/libssh2_sftp_write.html -static_assert(MAX_SFTP_READ_SIZE == 30000 && MAX_SFTP_OUTGOING_SIZE == 30000, "reevaluate optimal block sizes if these constants change!"); -+// these values are all manually derived from https://github.com/libssh2/libssh2/blob/master/src/sftp.h which for some weak reason are not included in the libssh2-devel headers. -+const size_t SFTP_OPTIMAL_BLOCK_SIZE_READ = 8 * 30000; //https://github.com/libssh2/libssh2/issues/90 -+const size_t SFTP_OPTIMAL_BLOCK_SIZE_WRITE = 8 * 30000; // -+//static_assert(MAX_SFTP_READ_SIZE == 30000 && MAX_SFTP_OUTGOING_SIZE == 30000, "reevaluate optimal block sizes if these constants change!"); ++const size_t SFTP_OPTIMAL_BLOCK_SIZE_READ = 16 * 30000; //https://github.com/libssh2/libssh2/issues/90 ++const size_t SFTP_OPTIMAL_BLOCK_SIZE_WRITE = 16 * 30000; //need large buffer to mitigate libssh2 stupidly waiting on "acks": https://www.libssh2.org/libssh2_sftp_write.html /* Perf Test, Sourceforge frs, SFTP upload, compressed 25 MB test file: - diff --git a/freefilesync/04_revert_zenju_aggressive_upstreamisms.patch b/freefilesync/04_revert_zenju_aggressive_upstreamisms.patch index afa3b72..20ccedb 100644 --- a/freefilesync/04_revert_zenju_aggressive_upstreamisms.patch +++ b/freefilesync/04_revert_zenju_aggressive_upstreamisms.patch @@ -1,10 +1,14 @@ -Message: Some of these can be traced back to version 10.23 which was the last to not use <unordered_map> +Description: Some of these can be traced back to version 10.23 which was the last to not use <unordered_map> + Had to revert gui_status_handler.cpp and .h entirely to version 11.0 to avoid the wx 3.1.4-isms here. + . + Now have to revert wxWidgets 3.1.4 upstreamisms + cd 11.1-0 ; git diff HEAD~1 -- $( grep -l -rIE 'wxASCII_STR' ) > ~/foo1 ; ( cd ../11.1-2 ; vi ~/foo1 $( grep -l -rIE 'wxASCII_STR' ) ; ) + cd 11.1-0 ; git diff HEAD~1 -- $( grep -l -rIE 'wxDD_SHOW_HIDDEN' ) > ~/foo1 ; ( cd ../11.1-2 ; vi ~/foo1 $( grep -l -rIE 'wxDD_SHOW_HIDDEN' ) ; ) Date: 2022-09-07 -Version: 11.25 +Version: 11.26 Author: bgstack15 -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 +--- a/wx+/choice_enum.h ++++ b/wx+/choice_enum.h @@ -7,7 +7,6 @@ #ifndef CHOICE_ENUM_H_132413545345687 #define CHOICE_ENUM_H_132413545345687 @@ -13,7 +17,7 @@ diff -x '*.rej' -x '*.orig' -x '*.git*' -Naur 10.24-0/wx+/choice_enum.h 10.24-1/ #include <vector> #include <wx/choice.h> -@@ -47,8 +46,6 @@ +@@ -47,8 +46,6 @@ struct EnumDescrList using DescrList = std::vector<std::pair<Enum, std::pair<wxString, wxString>>>; DescrList descrList; @@ -22,7 +26,7 @@ diff -x '*.rej' -x '*.orig' -x '*.git*' -Naur 10.24-0/wx+/choice_enum.h 10.24-1/ }; template <class Enum> void setEnumVal(const EnumDescrList<Enum>& mapping, wxChoice& ctrl, Enum value); template <class Enum> Enum getEnumVal(const EnumDescrList<Enum>& mapping, const wxChoice& ctrl); -@@ -71,32 +68,24 @@ +@@ -71,32 +68,24 @@ template <class Enum> void updateTooltip template <class Enum> void setEnumVal(EnumDescrList<Enum>& mapping, wxChoice& ctrl, Enum value) { @@ -69,7 +73,7 @@ diff -x '*.rej' -x '*.orig' -x '*.git*' -Naur 10.24-0/wx+/choice_enum.h 10.24-1/ } template <class Enum> -@@ -115,17 +103,11 @@ +@@ -115,17 +104,11 @@ Enum getEnumVal(const EnumDescrList<Enum template <class Enum> void updateTooltipEnumVal(const EnumDescrList<Enum>& mapping, wxChoice& ctrl) { @@ -91,13 +95,9 @@ diff -x '*.rej' -x '*.orig' -x '*.git*' -Naur 10.24-0/wx+/choice_enum.h 10.24-1/ } } -Message: Now have to revert wxWidgets 3.1.4 upstreamisms -cd 11.1-0 ; git diff HEAD~1 -- $( grep -l -rIE 'wxASCII_STR' ) > ~/foo1 ; ( cd ../11.1-2 ; vi ~/foo1 $( grep -l -rIE 'wxASCII_STR' ) ; ) -cd 11.1-0 ; git diff HEAD~1 -- $( grep -l -rIE 'wxDD_SHOW_HIDDEN' ) > ~/foo1 ; ( cd ../11.1-2 ; vi ~/foo1 $( grep -l -rIE 'wxDD_SHOW_HIDDEN' ) ; ) -diff -x '*.orig' -x '*.rej' -aur 11.2-0/FreeFileSync/Source/RealTimeSync/folder_selector2.cpp 11.2-1/FreeFileSync/Source/RealTimeSync/folder_selector2.cpp ---- 11.2-0/FreeFileSync/Source/RealTimeSync/folder_selector2.cpp 2020-10-02 14:39:05.273463072 -0400 -+++ 11.2-1/FreeFileSync/Source/RealTimeSync/folder_selector2.cpp 2020-10-02 15:06:56.670070620 -0400 -@@ -158,7 +158,7 @@ +--- a/FreeFileSync/Source/RealTimeSync/folder_selector2.cpp ++++ b/FreeFileSync/Source/RealTimeSync/folder_selector2.cpp +@@ -165,7 +165,7 @@ void FolderSelector2::onSelectDir(wxComm } Zstring newFolderPath; @@ -106,10 +106,9 @@ diff -x '*.orig' -x '*.rej' -aur 11.2-0/FreeFileSync/Source/RealTimeSync/folder_ if (folderSelector.ShowModal() != wxID_OK) return; newFolderPath = utfTo<Zstring>(folderSelector.GetPath()); -diff -x '*.orig' -x '*.rej' -aur 11.1-1/FreeFileSync/Source/ui/command_box.h 11.1-2/FreeFileSync/Source/ui/command_box.h ---- 11.1-1/FreeFileSync/Source/ui/command_box.h 2020-09-01 19:07:43.719122215 -0400 -+++ 11.1-2/FreeFileSync/Source/ui/command_box.h 2020-09-01 20:09:56.840929352 -0400 -@@ -30,7 +30,7 @@ +--- a/FreeFileSync/Source/ui/command_box.h ++++ b/FreeFileSync/Source/ui/command_box.h +@@ -28,7 +28,7 @@ public: const wxString choices[] = nullptr, long style = 0, const wxValidator& validator = wxDefaultValidator, @@ -118,10 +117,9 @@ diff -x '*.orig' -x '*.rej' -aur 11.1-1/FreeFileSync/Source/ui/command_box.h 11. void setHistory(const std::vector<Zstring>& history, size_t historyMax) { history_ = history; historyMax_ = historyMax; } std::vector<Zstring> getHistory() const { return history_; } -diff -x '*.orig' -x '*.rej' -aur 11.1-1/FreeFileSync/Source/ui/folder_history_box.h 11.1-2/FreeFileSync/Source/ui/folder_history_box.h ---- 11.1-1/FreeFileSync/Source/ui/folder_history_box.h 2020-09-01 19:07:43.719122215 -0400 -+++ 11.1-2/FreeFileSync/Source/ui/folder_history_box.h 2020-09-01 20:09:50.624849989 -0400 -@@ -68,7 +68,7 @@ +--- a/FreeFileSync/Source/ui/folder_history_box.h ++++ b/FreeFileSync/Source/ui/folder_history_box.h +@@ -68,7 +68,7 @@ public: const wxString choices[] = nullptr, long style = 0, const wxValidator& validator = wxDefaultValidator, @@ -130,10 +128,9 @@ diff -x '*.orig' -x '*.rej' -aur 11.1-1/FreeFileSync/Source/ui/folder_history_bo void setHistory(std::shared_ptr<HistoryList> sharedHistory) { sharedHistory_ = std::move(sharedHistory); } std::shared_ptr<HistoryList> getHistory() { return sharedHistory_; } -diff -x '*.orig' -x '*.rej' -aur 11.2-0/FreeFileSync/Source/ui/folder_selector.cpp 11.2-1/FreeFileSync/Source/ui/folder_selector.cpp ---- 11.2-0/FreeFileSync/Source/ui/folder_selector.cpp 2020-10-02 14:39:05.297463367 -0400 -+++ 11.2-1/FreeFileSync/Source/ui/folder_selector.cpp 2020-10-02 15:08:07.066935749 -0400 -@@ -232,7 +232,7 @@ +--- a/FreeFileSync/Source/ui/folder_selector.cpp ++++ b/FreeFileSync/Source/ui/folder_selector.cpp +@@ -239,7 +239,7 @@ void FolderSelector::onSelectFolder(wxCo Zstring shellItemPath; //default size? Windows: not implemented, Linux(GTK2): not implemented, macOS: not implemented => wxWidgets, what is this shit!? @@ -142,10 +139,9 @@ diff -x '*.orig' -x '*.rej' -aur 11.2-0/FreeFileSync/Source/ui/folder_selector.c //GTK2: "Show hidden" is also available as a context menu option in the folder picker! //It looks like wxDD_SHOW_HIDDEN only sets the default when opening for the first time!? if (folderSelector.ShowModal() != wxID_OK) -diff -x '*.orig' -x '*.rej' -aur 11.1-1/wx+/bitmap_button.h 11.1-2/wx+/bitmap_button.h ---- 11.22-0/wx+/bitmap_button.h 2022-06-26 12:01:15.638291465 -0400 -+++ 11.22-1/wx+/bitmap_button.h 2022-06-26 12:51:34.527830821 -0400 -@@ -28,7 +28,7 @@ +--- a/wx+/bitmap_button.h ++++ b/wx+/bitmap_button.h +@@ -28,7 +28,7 @@ public: const wxSize& size = wxDefaultSize, long style = 0, const wxValidator& validator = wxDefaultValidator, @@ -154,7 +150,7 @@ diff -x '*.orig' -x '*.rej' -aur 11.1-1/wx+/bitmap_button.h 11.1-2/wx+/bitmap_bu wxBitmapButton(parent, id, wxNullBitmap, pos, size, style, validator, name) { SetLabel(label); -@@ -104,7 +104,6 @@ +@@ -104,7 +104,6 @@ inline wxBitmap renderSelectedButton(const wxSize& sz) { wxBitmap bmp(sz); //seems we don't need to pass 24-bit depth here even for high-contrast color schemes @@ -162,7 +158,7 @@ diff -x '*.orig' -x '*.rej' -aur 11.1-1/wx+/bitmap_button.h 11.1-2/wx+/bitmap_bu { wxMemoryDC dc(bmp); -@@ -120,7 +119,6 @@ +@@ -120,7 +119,6 @@ inline wxBitmap renderPressedButton(const wxSize& sz) { wxBitmap bmp(sz); //seems we don't need to pass 24-bit depth here even for high-contrast color schemes @@ -170,9 +166,8 @@ diff -x '*.orig' -x '*.rej' -aur 11.1-1/wx+/bitmap_button.h 11.1-2/wx+/bitmap_bu { //draw rectangle border with gradient const wxColor colFrom = wxSystemSettings::GetColour(wxSYS_COLOUR_BTNFACE); -diff -aur -x '*.git*' -x '.*.swp' -x '*.orig' -x '*.rej' 11.6-0/wx+/dc.h 11.6-1/wx+/dc.h ---- 11.23-0/wx+/dc.h 2022-08-03 08:55:32.140102989 -0400 -+++ 11.23-1/wx+/dc.h 2022-08-03 09:27:55.367666939 -0400 +--- a/wx+/dc.h ++++ b/wx+/dc.h @@ -12,7 +12,7 @@ #include <zen/basic_math.h> #include <wx/dcbuffer.h> //for macro: wxALWAYS_NATIVE_DOUBLE_BUFFER @@ -182,7 +177,7 @@ diff -aur -x '*.git*' -x '.*.swp' -x '*.orig' -x '*.rej' 11.6-0/wx+/dc.h 11.6-1/ #include <gtk/gtk.h> -@@ -92,9 +92,6 @@ +@@ -92,9 +92,6 @@ constexpr int defaultDpi = 96; //on Wind inline int getDPI() { @@ -192,7 +187,7 @@ diff -aur -x '*.git*' -x '.*.swp' -x '*.orig' -x '*.rej' 11.6-0/wx+/dc.h 11.6-1/ //GTK2 doesn't properly support high DPI: https://freefilesync.org/forum/viewtopic.php?t=6114 //=> requires general fix at wxWidgets-level -@@ -130,7 +127,6 @@ +@@ -130,7 +127,6 @@ wxBitmap toScaledBitmap(const wxImage& i { //wxBitmap(const wxImage& image, int depth = -1, double WXUNUSED(scale) = 1.0) => wxWidgets just ignores scale parameter! WTF! wxBitmap bmpScaled(img); @@ -200,10 +195,9 @@ diff -aur -x '*.git*' -x '.*.swp' -x '*.orig' -x '*.rej' 11.6-0/wx+/dc.h 11.6-1/ return bmpScaled; //when testing use 175% scaling: wxWidgets' scaling logic doesn't kick in for 150% only } -diff -x '*.orig' -x '*.rej' -aur 11.1-1/wx+/graph.h 11.1-2/wx+/graph.h ---- 11.1-1/wx+/graph.h 2020-09-01 19:07:43.731122359 -0400 -+++ 11.1-2/wx+/graph.h 2020-09-01 20:10:36.541429649 -0400 -@@ -153,7 +153,7 @@ +--- a/wx+/graph.h ++++ b/wx+/graph.h +@@ -192,7 +192,7 @@ public: const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxTAB_TRAVERSAL | wxNO_BORDER, @@ -212,10 +206,9 @@ diff -x '*.orig' -x '*.rej' -aur 11.1-1/wx+/graph.h 11.1-2/wx+/graph.h class CurveAttributes { -diff -x '*.orig' -x '*.rej' -aur 11.1-1/wx+/grid.cpp 11.1-2/wx+/grid.cpp ---- 11.1-1/wx+/grid.cpp 2020-09-01 20:07:24.418981662 -0400 -+++ 11.1-2/wx+/grid.cpp 2020-09-01 20:10:23.745268393 -0400 -@@ -268,7 +268,7 @@ +--- a/wx+/grid.cpp ++++ b/wx+/grid.cpp +@@ -263,7 +263,7 @@ class Grid::SubWindow : public wxWindow { public: SubWindow(Grid& parent) : @@ -224,10 +217,9 @@ diff -x '*.orig' -x '*.rej' -aur 11.1-1/wx+/grid.cpp 11.1-2/wx+/grid.cpp parent_(parent) { Bind(wxEVT_PAINT, [this](wxPaintEvent& event) { onPaintEvent(event); }); -diff -x '*.orig' -x '*.rej' -aur 11.1-1/wx+/grid.h 11.1-2/wx+/grid.h ---- 11.1-1/wx+/grid.h 2020-09-01 19:07:43.731122359 -0400 -+++ 11.1-2/wx+/grid.h 2020-09-01 20:10:48.817584344 -0400 -@@ -149,7 +149,7 @@ +--- a/wx+/grid.h ++++ b/wx+/grid.h +@@ -149,7 +149,7 @@ public: const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxTAB_TRAVERSAL | wxNO_BORDER, @@ -236,10 +228,9 @@ diff -x '*.orig' -x '*.rej' -aur 11.1-1/wx+/grid.h 11.1-2/wx+/grid.h size_t getRowCount() const; -diff -x '*.orig' -x '*.rej' -aur 11.1-1/wx+/toggle_button.h 11.1-2/wx+/toggle_button.h ---- 11.1-1/wx+/toggle_button.h 2020-09-01 19:07:43.731122359 -0400 -+++ 11.1-2/wx+/toggle_button.h 2020-09-01 20:10:44.629531569 -0400 -@@ -24,7 +24,7 @@ +--- a/wx+/toggle_button.h ++++ b/wx+/toggle_button.h +@@ -24,7 +24,7 @@ public: const wxSize& size = wxDefaultSize, long style = 0, const wxValidator& validator = wxDefaultValidator, @@ -248,7 +239,7 @@ diff -x '*.orig' -x '*.rej' -aur 11.1-1/wx+/toggle_button.h 11.1-2/wx+/toggle_bu wxBitmapButton(parent, id, bitmap, pos, size, style, validator, name) {} //wxButton constructor -@@ -35,7 +35,7 @@ +@@ -35,7 +35,7 @@ public: const wxSize& size = wxDefaultSize, long style = 0, const wxValidator& validator = wxDefaultValidator, @@ -257,12 +248,9 @@ diff -x '*.orig' -x '*.rej' -aur 11.1-1/wx+/toggle_button.h 11.1-2/wx+/toggle_bu wxBitmapButton(parent, id, wxNullBitmap, pos, size, style, validator, name) { SetLabel(label); -Version: 11.1 -Message: Had to revert gui_status_handler.cpp and .h entirely to version 11.0 to avoid the wx 3.1.4-isms here. -diff --git a/FreeFileSync/Source/ui/gui_status_handler.cpp b/FreeFileSync/Source/ui/gui_status_handler.cpp ---- 11.25-0/FreeFileSync/Source/ui/gui_status_handler.cpp 2022-09-07 14:54:31.552630085 -0400 -+++ 11.25-1/FreeFileSync/Source/ui/gui_status_handler.cpp 2022-09-07 16:32:17.114749584 -0400 -@@ -44,8 +44,8 @@ +--- a/FreeFileSync/Source/ui/gui_status_handler.cpp ++++ b/FreeFileSync/Source/ui/gui_status_handler.cpp +@@ -44,8 +44,8 @@ StatusHandlerTemporaryPanel::StatusHandl mainDlg_.Update(); //don't wait until idle event! //register keys @@ -273,7 +261,7 @@ diff --git a/FreeFileSync/Source/ui/gui_status_handler.cpp b/FreeFileSync/Source } -@@ -129,9 +129,8 @@ +@@ -129,9 +129,8 @@ StatusHandlerTemporaryPanel::~StatusHand mainDlg_.auiMgr_.Update(); //unregister keys @@ -285,7 +273,7 @@ diff --git a/FreeFileSync/Source/ui/gui_status_handler.cpp b/FreeFileSync/Source mainDlg_.compareStatus_->teardown(); -@@ -324,7 +323,7 @@ +@@ -336,7 +335,7 @@ void StatusHandlerTemporaryPanel::forceU } @@ -294,7 +282,7 @@ diff --git a/FreeFileSync/Source/ui/gui_status_handler.cpp b/FreeFileSync/Source { const int keyCode = event.GetKeyCode(); if (keyCode == WXK_ESCAPE) -@@ -334,7 +333,7 @@ +@@ -346,7 +345,7 @@ void StatusHandlerTemporaryPanel::onLoca } @@ -303,11 +291,9 @@ diff --git a/FreeFileSync/Source/ui/gui_status_handler.cpp b/FreeFileSync/Source { userRequestAbort(); } -diff --git a/FreeFileSync/Source/ui/gui_status_handler.h b/FreeFileSync/Source/ui/gui_status_handler.h -index e8ed01e4..2a9e00d2 100644 --- a/FreeFileSync/Source/ui/gui_status_handler.h +++ b/FreeFileSync/Source/ui/gui_status_handler.h -@@ -41,8 +41,8 @@ public: +@@ -46,8 +46,8 @@ public: Result reportResults(); //noexcept!! private: @@ -318,10 +304,9 @@ index e8ed01e4..2a9e00d2 100644 void showStatsPanel(); MainDialog& mainDlg_; -diff -Naur -x '*.orig' -x '*.rej' -x '*.git*' 11.4-1/wx+/no_flicker.h 11.4-2/wx+/no_flicker.h ---- 11.4-1/wx+/no_flicker.h 2020-12-08 08:15:29.436156549 -0500 -+++ 11.4-2/wx+/no_flicker.h 2020-12-08 20:11:25.066820270 -0500 -@@ -70,7 +70,7 @@ +--- a/wx+/no_flicker.h ++++ b/wx+/no_flicker.h +@@ -72,7 +72,7 @@ void setTextWithUrls(wxRichTextCtrl& ric ZEN_ON_SCOPE_EXIT(richCtrl.EndSuppressUndo()); //fix mouse scroll speed: why the FUCK is this even necessary! @@ -330,9 +315,9 @@ diff -Naur -x '*.orig' -x '*.rej' -x '*.git*' 11.4-1/wx+/no_flicker.h 11.4-2/wx+ //get rid of margins and space between text blocks/"paragraphs" richCtrl.SetMargins({0, 0}); ---- 11.20-0/FreeFileSync/Source/ui/progress_indicator.cpp 2022-04-18 09:49:31.917386558 -0400 -+++ 11.20-1/FreeFileSync/Source/ui/progress_indicator.cpp 2022-04-18 11:02:10.988781908 -0400 -@@ -878,12 +881,10 @@ +--- a/FreeFileSync/Source/ui/progress_indicator.cpp ++++ b/FreeFileSync/Source/ui/progress_indicator.cpp +@@ -878,12 +878,10 @@ dlgSizeBuf_(dlgSize) auto generateSquareBitmap = [&](const wxColor& fillCol, const wxColor& borderCol) { wxBitmap bmpSquare(this->GetCharHeight(), this->GetCharHeight()); //seems we don't need to pass 24-bit depth here even for high-contrast color schemes @@ -345,9 +330,9 @@ diff -Naur -x '*.orig' -x '*.rej' -x '*.git*' 11.4-1/wx+/no_flicker.h 11.4-2/wx+ return bmpSquare; }; pnl_.m_bitmapGraphKeyBytes->SetBitmap(generateSquareBitmap(getColorBytes(), getColorBytesRim())); ---- 11.25-0/wx+/rtl.h 2022-09-07 14:54:31.712631887 -0400 -+++ 11.25-1/wx+/rtl.h 2022-09-07 15:57:01.638891035 -0400 -@@ -70,8 +70,6 @@ +--- a/wx+/rtl.h ++++ b/wx+/rtl.h +@@ -70,8 +70,6 @@ void drawBitmapRtlMirror(wxDC& dc, const if (!buffer || buffer->GetSize() != rect.GetSize()) //[!] since we do a mirror, width needs to match exactly! buffer.emplace(rect.GetSize()); @@ -356,19 +341,55 @@ diff -Naur -x '*.orig' -x '*.rej' -x '*.git*' 11.4-1/wx+/no_flicker.h 11.4-2/wx+ wxMemoryDC memDc(*buffer); //copies scale factor from wxBitmap memDc.Blit(wxPoint(0, 0), rect.GetSize(), &dc, rect.GetTopLeft()); //blit in: background is mirrored due to memDc, dc having different layout direction! ---- 11.22-0/FreeFileSync/Source/ui/main_dlg.cpp 2022-06-26 12:01:15.634291415 -0400 -+++ 11.22-1/FreeFileSync/Source/ui/main_dlg.cpp 2022-06-26 14:44:38.556188935 -0400 -@@ -3595,7 +3590,6 @@ - }; - +--- a/FreeFileSync/Source/ui/main_dlg.cpp ++++ b/FreeFileSync/Source/ui/main_dlg.cpp +@@ -3586,7 +3586,6 @@ void MainDialog::onCfgGridContext(GridCo + auto addColorOption = [&](const wxColor& col, const wxString& name) + { wxBitmap bmpSquare(this->GetCharHeight(), this->GetCharHeight()); //seems we don't need to pass 24-bit depth here even for high-contrast color schemes - bmpSquare.SetScaleFactor(getDisplayScaleFactor()); { wxMemoryDC dc(bmpSquare); const wxColor borderCol(0xdd, 0xdd, 0xdd); //light grey ---- 11.22-0/wx+/image_tools.cpp 2022-06-26 16:29:25.668035003 -0400 -+++ 11.22-1/wx+/image_tools.cpp 2022-06-27 09:06:04.999244263 -0400 -@@ -188,7 +188,6 @@ +@@ -3619,7 +3618,6 @@ void MainDialog::onCfgGridContext(GridCo + + //show color picker + wxBitmap bmpColorPicker(this->GetCharHeight(), this->GetCharHeight()); //seems we don't need to pass 24-bit depth here even for high-contrast color schemes +- bmpColorPicker.SetScaleFactor(getDisplayScaleFactor()); + { + wxMemoryDC dc(bmpColorPicker); + const wxColor borderCol(0xdd, 0xdd, 0xdd); //light grey +@@ -3633,7 +3631,6 @@ void MainDialog::onCfgGridContext(GridCo + { + wxColourData colCfg; + colCfg.SetChooseFull(true); +- colCfg.SetChooseAlpha(false); + colCfg.SetColour(defaultColors[1].first); //tentative + + if (const ConfigView::Details* cfg = cfggrid::getDataView(*m_gridCfgHistory).getItem(selectedRows[0])) +@@ -3650,19 +3647,6 @@ void MainDialog::onCfgGridContext(GridCo + assert(col.Alpha() == 255); + return col; + }; +- wxColourDialog dlg(this, &colCfg); +- dlg.Center(); +- +- dlg.Bind(wxEVT_COLOUR_CHANGED, [&](wxColourDialogEvent& event2) +- { +- //show preview during color selection (Windows-only atm) +- cfggrid::getDataView(*m_gridCfgHistory).setBackColor(cfgFilePaths, fixColorPickerColor(event2.GetColour()), true /*previewOnly*/); +- m_gridCfgHistory->Refresh(); +- }); +- +- if (dlg.ShowModal() == wxID_OK) +- applyBackColor(fixColorPickerColor(dlg.GetColourData().GetColour())); +- else //shut off color preview + { + cfggrid::getDataView(*m_gridCfgHistory).setBackColor(cfgFilePaths, wxNullColour, true /*previewOnly*/); + m_gridCfgHistory->Refresh(); +--- a/wx+/image_tools.cpp ++++ b/wx+/image_tools.cpp +@@ -188,7 +188,6 @@ wxImage zen::createImageFromText(const w return wxNullImage; wxBitmap newBitmap(maxWidth, lineHeight * lineInfo.size()); //seems we don't need to pass 24-bit depth here even for high-contrast color schemes diff --git a/freefilesync/06_icon_loader.patch b/freefilesync/06_icon_loader.patch index 14035d5..60814de 100644 --- a/freefilesync/06_icon_loader.patch +++ b/freefilesync/06_icon_loader.patch @@ -1,21 +1,25 @@ Summary: Solve libglib2.0 problem in sketchy manner -Date: 2022-05-24 -Version: 11.21 -Author: bgstack15 -Message: -Warning! I have absolutely no idea what I am doing. Check https://freefilesync.org/forum/viewtopic.php?t=8780 for future developments. -In Devuan Ceres, starting in 2021-08 with libglib2.0-0=2.68.3-2 the file icon_loader.cpp fails to compile. By removing the static_cast, this file can compile. The built application throws all sorts of GLib-GObject-CRITICIAL messages but the application operates. -Downgrade to "deb [check-valid-until=no] https://snapshot.debian.org/archive/debian/20210801T144205Z/ unstable main non-free contrib" in /etc/apt/sources.list and install the exact libglib version necessary to compile without this patch. -$ sudo apt-get -V install libglib2.0-0=2.66.8-1 libglib2.0-bin=2.66.8-1 libglib2.0-data=2.66.8-1 libglib2.0-dev=2.66.8-1 libglib2.0-dev-bin=2.66.8-1 libglib2.0-0:i386=2.66.8-1 -Zenju tried addressing this for me, but it still does not compile, even with g++-12. So I still have to omit this macro call. ---- 11.21-0/FreeFileSync/Source/base/icon_loader.cpp 2022-05-22 17:09:32.234809499 -0400 -+++ 11.21-1/FreeFileSync/Source/base/icon_loader.cpp 2022-05-24 08:59:15.433965993 -0400 -@@ -216,7 +216,7 @@ +Date: 2022-10-11 +Version: 11.26 +Author: Fab Stz +Source: https://freefilesync.org/forum/viewtopic.php?t=8780 +Description: + Solution provided by daviank on FFS forum or bastif or Fab Stz at Debian salsa + In Devuan Ceres, starting in 2021-08 with libglib2.0-0=2.68.3-2 the file icon_loader.cpp fails to compile. By removing the static_cast, this file can compile. The built application throws all sorts of GLib-GObject-CRITICIAL messages but the application operates. + Downgrade to "deb [check-valid-until=no] https://snapshot.debian.org/archive/debian/20210801T144205Z/ unstable main non-free contrib" in /etc/apt/sources.list and install the exact libglib version necessary to compile without this patch. + $ sudo apt-get -V install libglib2.0-0=2.66.8-1 libglib2.0-bin=2.66.8-1 libglib2.0-data=2.66.8-1 libglib2.0-dev=2.66.8-1 libglib2.0-dev-bin=2.66.8-1 libglib2.0-0:i386=2.66.8-1 +--- a/FreeFileSync/Source/base/icon_loader.cpp ++++ b/FreeFileSync/Source/base/icon_loader.cpp +@@ -227,7 +227,11 @@ FileIconHolder fff::getFileIcon(const Zs //the remaining icon types won't block! assert(GDK_IS_PIXBUF(gicon) || G_IS_THEMED_ICON(gicon) || G_IS_EMBLEMED_ICON(gicon)); - ::g_object_ref(gicon); //pass ownership -+ //::g_object_ref(gicon); //pass ownership ++#if (GLIB_CHECK_VERSION (2, 67, 0)) ++ g_object_ref(gicon); //pass ownership ++#else ++ ::g_object_ref(gicon); //pass ownership ++#endif return FileIconHolder(gicon, maxSize); // } diff --git a/freefilesync/debian/_service b/freefilesync/debian/_service index baf2e98..7730365 100644 --- a/freefilesync/debian/_service +++ b/freefilesync/debian/_service @@ -14,7 +14,7 @@ <service name="tar_scm"> <param name="scm">git</param> <param name="url">https://gitlab.com/opensource-tracking/FreeFileSync.git</param> - <param name="revision">11.25</param> + <param name="revision">11.27</param> <param name="version">_none_</param> </service> <service name="recompress"> diff --git a/freefilesync/debian/changelog b/freefilesync/debian/changelog index 95f9be8..5caffbd 100644 --- a/freefilesync/debian/changelog +++ b/freefilesync/debian/changelog @@ -1,3 +1,37 @@ +freefilesync (11.27-1+devuan) obs; urgency=low + + * Upstream updates + * Fixed "Some files will be synchronized as part of multiple base + folders" false-negative + * Fixed "Unexpected size of data stream" for Google Drive + * Fixed crash when downloading empty file from Google Drive + * RealTimeSync: fixed ffs_batch not accepted as valid configuration + * Fixed top buttons vertical GUI layout + * Fixed progress dialog font on Ubuntu MATE + * Support cut/copy/paste for filter settings + * Fixed free disk space calculation if target folder not yet created + + -- B. Stack <bgstack15@gmail.com> Wed, 19 Oct 2022 10:56:17 -0400 + +freefilesync (11.26-1+devuan) obs; urgency=low + + * Upstream updates + * Faster file copy for SSD-based hard drives (Linux, macOS) + * Don't fill the OS file cache during file copy (macOS) + * Removed redundant memory buffering during file copy + * Fixed ERROR_FILE_EXISTS on Samba share when copying files with NTFS + extended attributes + * Show warning when recycle bin is not available (macOS, Linux) + * Customize config item background colors + * Fixed macOS menu bar not showing after app start + * Fixed normalizing strings with broken UTF encoding + * Fixed sound playback not working (Linux) + * Don't allow creating file names ending with dot character (Windows) + * Dpkg updates + * Use wx3.2 now! This has been a huge pain point for a long time. + + -- B. Stack <bgstack15@gmail.com> Tue, 11 Oct 2022 11:06:58 -0400 + freefilesync (11.25-1+devuan) obs; urgency=medium * Upstream updates diff --git a/freefilesync/debian/control b/freefilesync/debian/control index 9baed3d..627cfb2 100644 --- a/freefilesync/debian/control +++ b/freefilesync/debian/control @@ -10,13 +10,10 @@ Build-Depends: debhelper (>=12~), libglibmm-2.4-dev, libssh2-1-dev (>=1.10.0-3+b1), libssl-dev (>=3.0.3-5), - wx3.0-headers, + wx3.2-headers, unzip, -# gtk3 version, and these must be removed for gtk2 build -# install with sudo apt-get install libwxbase3.0-dev=3.0.4+dfsg-15 libwxbase3.0-0v5=3.0.4+dfsg-15 wx3.0-headers=3.0.4+dfsg-15 libgtk-3-dev libwxgtk3.0-gtk3-dev -# which will remove libwxbase3.0-dev=3.0.4+dfsg-14 libgtk-3-dev, - libwxgtk3.0-gtk3-dev, + libwxgtk3.2-dev, Standards-Version: 4.1.4 Homepage: https://freefilesync.org/ diff --git a/freefilesync/debian/freefilesync+devuan.dsc b/freefilesync/debian/freefilesync+devuan.dsc index aa2ca30..9035fc6 100644 --- a/freefilesync/debian/freefilesync+devuan.dsc +++ b/freefilesync/debian/freefilesync+devuan.dsc @@ -2,11 +2,11 @@ Format: 3.0 (quilt) Source: freefilesync Binary: freefilesync Architecture: any -Version: 11.25-1+devuan +Version: 11.27-1+devuan Maintainer: B. Stack <bgstack15@gmail.com> Homepage: https://freefilesync.org/ Standards-Version: 4.1.4 -Build-Depends: debhelper (>= 12~), g++-12, imagemagick, libbrotli-dev, libcurl4-openssl-dev (>= 7.83.1-1+b1), libglibmm-2.4-dev, libssh2-1-dev (>= 1.10.0-3+b1), libssl-dev (>= 3.0.3-5), wx3.0-headers, unzip, libgtk-3-dev, libwxgtk3.0-gtk3-dev, libfontconfig-dev +Build-Depends: debhelper (>= 12~), g++-12, imagemagick, libbrotli-dev, libcurl4-openssl-dev (>= 7.83.1-1+b1), libglibmm-2.4-dev, libssh2-1-dev (>= 1.10.0-3+b1), libssl-dev (>= 3.0.3-5), wx3.2-headers, unzip, libgtk-3-dev, libwxgtk3.2-dev, libfontconfig-dev Package-List: freefilesync deb utils optional arch=any Files: diff --git a/freefilesync/debian/patches/ffs_devuan.patch b/freefilesync/debian/patches/ffs_devuan.patch index fce3138..6db7b9d 100644 --- a/freefilesync/debian/patches/ffs_devuan.patch +++ b/freefilesync/debian/patches/ffs_devuan.patch @@ -14,8 +14,8 @@ Message: Main patch to compile on Devuan. } ---- 11.25-0/FreeFileSync/Source/Makefile 2022-09-07 14:54:31.444628869 -0400 -+++ 11.25-1/FreeFileSync/Source/Makefile 2022-09-07 15:15:48.735015001 -0400 +--- a/FreeFileSync/Source/Makefile ++++ b/FreeFileSync/Source/Makefile @@ -1,11 +1,11 @@ CXX ?= g++ -exeName = FreeFileSync_$(shell arch) @@ -23,16 +23,17 @@ Message: Main patch to compile on Devuan. CXXFLAGS += -std=c++2b -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 -Wnon-virtual-dtor -Wno-unused-function -Wshadow -Wno-maybe-uninitialized \ - -O3 -DNDEBUG `wx-config --cxxflags --debug=no` -pthread +- -O3 -DNDEBUG `wx-config --cxxflags --debug=no` -pthread ++ -O3 -DNDEBUG `wx-config --version=3.2 --cxxflags --debug=no` -pthread -LDFLAGS += -s -no-pie `wx-config --libs std, aui, richtext --debug=no` -pthread -+LDFLAGS += -s -no-pie `wx-config --libs std, aui, richtext --debug=no` -pthread -lz ++LDFLAGS += -s -no-pie `wx-config --version=3.2 --libs std, aui, richtext --debug=no` -pthread -lz CXXFLAGS += `pkg-config --cflags openssl` --- a/FreeFileSync/Source/ui/small_dlgs.cpp +++ b/FreeFileSync/Source/ui/small_dlgs.cpp -@@ -89,6 +89,8 @@ AboutDlg::AboutDlg(wxWindow* parent) : A +@@ -87,6 +87,8 @@ AboutDlg::AboutDlg(wxWindow* parent) : A build += LTR_MARK; //fix Arabic build += utfTo<wxString>(cpuArchName); @@ -41,7 +42,7 @@ Message: Main patch to compile on Devuan. build += SPACED_BULLET; build += utfTo<wxString>(formatTime(formatDateTag, getCompileTime())); -@@ -139,9 +141,9 @@ AboutDlg::AboutDlg(wxWindow* parent) : A +@@ -137,9 +139,9 @@ AboutDlg::AboutDlg(wxWindow* parent) : A wxImage::AddHandler(new wxJPEGHandler /*ownership passed*/); //activate support for .jpg files @@ -54,17 +55,17 @@ Message: Main patch to compile on Devuan. //-------------------------------------------------------------------------- //have animal + text match *final* dialog width -@@ -151,7 +153,7 @@ AboutDlg::AboutDlg(wxWindow* parent) : A - const int imageWidth = (m_panelDonate->GetSize().GetWidth() - 5 - 5 /* grey border*/) / 2; - const int textWidth = m_panelDonate->GetSize().GetWidth() - 5 - 5 - imageWidth; +@@ -149,7 +151,7 @@ AboutDlg::AboutDlg(wxWindow* parent) : A + const int imageWidth = (m_panelDonate->GetSize().GetWidth() - 5 - 5 - 5 /* grey border*/) / 2; + const int textWidth = m_panelDonate->GetSize().GetWidth() - 5 - 5 - 5 - imageWidth; - setImage(*m_bitmapAnimalSmall, shrinkImage(animalImg, imageWidth, -1 /*maxHeight*/)); + //setImage(*m_bitmapAnimalSmall, shrinkImage(animalImg, imageWidth, -1 /*maxHeight*/)); m_staticTextDonate->Show(); m_staticTextDonate->Wrap(textWidth - 10 /*left gap*/); //wrap *after* changing font size ---- 11.25-0/FreeFileSync/Source/RealTimeSync/Makefile 2022-09-07 14:54:31.524629769 -0400 -+++ 11.25-1/FreeFileSync/Source/RealTimeSync/Makefile 2022-09-07 15:16:18.479350210 -0400 +--- a/FreeFileSync/Source/RealTimeSync/Makefile ++++ b/FreeFileSync/Source/RealTimeSync/Makefile @@ -1,11 +1,11 @@ CXX ?= g++ -exeName = RealTimeSync_$(shell arch) @@ -79,4 +80,3 @@ Message: Main patch to compile on Devuan. #Gtk - support "no button border" CXXFLAGS += `pkg-config --cflags gtk+-2.0` - diff --git a/freefilesync/debian/patches/ffs_devuan_gtk3.patch b/freefilesync/debian/patches/ffs_devuan_gtk3.patch index 9020da4..c78eb28 100644 --- a/freefilesync/debian/patches/ffs_devuan_gtk3.patch +++ b/freefilesync/debian/patches/ffs_devuan_gtk3.patch @@ -1,7 +1,7 @@ -Author: B Stack +Author: bgstack15 Source: Original research -Version: 11.25 -Date: 2020-09-07 +Version: 11.26 +Date: 2022-10-11 Message: Main patch to compile on Devuan using GTK3. --- a/FreeFileSync/Source/Makefile +++ b/FreeFileSync/Source/Makefile diff --git a/freefilesync/debian/patches/ffs_icon_loader.patch b/freefilesync/debian/patches/ffs_icon_loader.patch index 14035d5..60814de 100644 --- a/freefilesync/debian/patches/ffs_icon_loader.patch +++ b/freefilesync/debian/patches/ffs_icon_loader.patch @@ -1,21 +1,25 @@ Summary: Solve libglib2.0 problem in sketchy manner -Date: 2022-05-24 -Version: 11.21 -Author: bgstack15 -Message: -Warning! I have absolutely no idea what I am doing. Check https://freefilesync.org/forum/viewtopic.php?t=8780 for future developments. -In Devuan Ceres, starting in 2021-08 with libglib2.0-0=2.68.3-2 the file icon_loader.cpp fails to compile. By removing the static_cast, this file can compile. The built application throws all sorts of GLib-GObject-CRITICIAL messages but the application operates. -Downgrade to "deb [check-valid-until=no] https://snapshot.debian.org/archive/debian/20210801T144205Z/ unstable main non-free contrib" in /etc/apt/sources.list and install the exact libglib version necessary to compile without this patch. -$ sudo apt-get -V install libglib2.0-0=2.66.8-1 libglib2.0-bin=2.66.8-1 libglib2.0-data=2.66.8-1 libglib2.0-dev=2.66.8-1 libglib2.0-dev-bin=2.66.8-1 libglib2.0-0:i386=2.66.8-1 -Zenju tried addressing this for me, but it still does not compile, even with g++-12. So I still have to omit this macro call. ---- 11.21-0/FreeFileSync/Source/base/icon_loader.cpp 2022-05-22 17:09:32.234809499 -0400 -+++ 11.21-1/FreeFileSync/Source/base/icon_loader.cpp 2022-05-24 08:59:15.433965993 -0400 -@@ -216,7 +216,7 @@ +Date: 2022-10-11 +Version: 11.26 +Author: Fab Stz +Source: https://freefilesync.org/forum/viewtopic.php?t=8780 +Description: + Solution provided by daviank on FFS forum or bastif or Fab Stz at Debian salsa + In Devuan Ceres, starting in 2021-08 with libglib2.0-0=2.68.3-2 the file icon_loader.cpp fails to compile. By removing the static_cast, this file can compile. The built application throws all sorts of GLib-GObject-CRITICIAL messages but the application operates. + Downgrade to "deb [check-valid-until=no] https://snapshot.debian.org/archive/debian/20210801T144205Z/ unstable main non-free contrib" in /etc/apt/sources.list and install the exact libglib version necessary to compile without this patch. + $ sudo apt-get -V install libglib2.0-0=2.66.8-1 libglib2.0-bin=2.66.8-1 libglib2.0-data=2.66.8-1 libglib2.0-dev=2.66.8-1 libglib2.0-dev-bin=2.66.8-1 libglib2.0-0:i386=2.66.8-1 +--- a/FreeFileSync/Source/base/icon_loader.cpp ++++ b/FreeFileSync/Source/base/icon_loader.cpp +@@ -227,7 +227,11 @@ FileIconHolder fff::getFileIcon(const Zs //the remaining icon types won't block! assert(GDK_IS_PIXBUF(gicon) || G_IS_THEMED_ICON(gicon) || G_IS_EMBLEMED_ICON(gicon)); - ::g_object_ref(gicon); //pass ownership -+ //::g_object_ref(gicon); //pass ownership ++#if (GLIB_CHECK_VERSION (2, 67, 0)) ++ g_object_ref(gicon); //pass ownership ++#else ++ ::g_object_ref(gicon); //pass ownership ++#endif return FileIconHolder(gicon, maxSize); // } diff --git a/freefilesync/debian/patches/ffs_no_check_updates.patch b/freefilesync/debian/patches/ffs_no_check_updates.patch index 956b476..c540560 100644 --- a/freefilesync/debian/patches/ffs_no_check_updates.patch +++ b/freefilesync/debian/patches/ffs_no_check_updates.patch @@ -1,54 +1,54 @@ -Version: 11.25 -Date: 2022-09-07 +Version: 11.27 +Date: 2022-10-19 Author: bgstack15 Message: This is a major rewrite of the ffs_no_check_updates patch from before 11.10 which disabled only a few technical www interactions. This current version completely deletes all logic associated with checking the version of the program. --- a/FreeFileSync/Source/ui/gui_generated.cpp +++ b/FreeFileSync/Source/ui/gui_generated.cpp -@@ -110,15 +110,6 @@ MainDialogGenerated::MainDialogGenerated +@@ -110,15 +110,6 @@ - m_menuHelp->AppendSeparator(); + m_menuHelp->AppendSeparator(); -- m_menuItemCheckVersionNow = new wxMenuItem( m_menuHelp, wxID_ANY, wxString( _("&Check for updates now") ), wxEmptyString, wxITEM_NORMAL ); -- m_menuHelp->Append( m_menuItemCheckVersionNow ); +- m_menuItemCheckVersionNow = new wxMenuItem( m_menuHelp, wxID_ANY, wxString( _("&Check for updates now") ) , wxEmptyString, wxITEM_NORMAL ); +- m_menuHelp->Append( m_menuItemCheckVersionNow ); - -- m_menuItemCheckVersionAuto = new wxMenuItem( m_menuHelp, wxID_ANY, wxString( _("Check &automatically once a week") ), wxEmptyString, wxITEM_CHECK ); -- m_menuHelp->Append( m_menuItemCheckVersionAuto ); -- m_menuItemCheckVersionAuto->Check( true ); +- m_menuItemCheckVersionAuto = new wxMenuItem( m_menuHelp, wxID_ANY, wxString( _("Check &automatically once a week") ) , wxEmptyString, wxITEM_CHECK ); +- m_menuHelp->Append( m_menuItemCheckVersionAuto ); +- m_menuItemCheckVersionAuto->Check( true ); - -- m_menuHelp->AppendSeparator(); +- m_menuHelp->AppendSeparator(); - - m_menuItemAbout = new wxMenuItem( m_menuHelp, wxID_ABOUT, wxString( _("&About") ) + wxT('\t') + wxT("Shift+F1"), wxEmptyString, wxITEM_NORMAL ); - m_menuHelp->Append( m_menuItemAbout ); + m_menuItemAbout = new wxMenuItem( m_menuHelp, wxID_ABOUT, wxString( _("&About") ) + wxT('\t') + wxT("Shift+F1"), wxEmptyString, wxITEM_NORMAL ); + m_menuHelp->Append( m_menuItemAbout ); -@@ -1132,8 +1123,6 @@ - m_menuTools->Bind(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::onMenuExportFileList ), this, m_menuItemExportList->GetId()); - m_menuTools->Bind(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::onMenuResetLayout ), this, m_menuItemResetLayout->GetId()); - m_menuHelp->Bind(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::onShowHelp ), this, m_menuItemHelp->GetId()); -- m_menuHelp->Bind(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::onMenuCheckVersion ), this, m_menuItemCheckVersionNow->GetId()); -- m_menuHelp->Bind(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::onMenuCheckVersionAutomatically ), this, m_menuItemCheckVersionAuto->GetId()); - m_menuHelp->Bind(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::onMenuAbout ), this, m_menuItemAbout->GetId()); - m_buttonCompare->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::onCompare ), NULL, this ); - m_buttonCompare->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( MainDialogGenerated::onCompSettingsContextMouse ), NULL, this ); +@@ -1129,8 +1120,6 @@ + m_menuTools->Bind(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::onMenuExportFileList ), this, m_menuItemExportList->GetId()); + m_menuTools->Bind(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::onMenuResetLayout ), this, m_menuItemResetLayout->GetId()); + m_menuHelp->Bind(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::onShowHelp ), this, m_menuItemHelp->GetId()); +- m_menuHelp->Bind(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::onMenuCheckVersion ), this, m_menuItemCheckVersionNow->GetId()); +- m_menuHelp->Bind(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::onMenuCheckVersionAutomatically ), this, m_menuItemCheckVersionAuto->GetId()); + m_menuHelp->Bind(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainDialogGenerated::onMenuAbout ), this, m_menuItemAbout->GetId()); + m_buttonCompare->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::onCompare ), NULL, this ); + m_bpButtonCmpConfig->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogGenerated::onCmpSettings ), NULL, this ); --- a/FreeFileSync/Source/ui/gui_generated.h +++ b/FreeFileSync/Source/ui/gui_generated.h -@@ -96,8 +96,6 @@ protected: - wxMenuItem* m_menuItemShowOverview; - wxMenu* m_menuHelp; - wxMenuItem* m_menuItemHelp; -- wxMenuItem* m_menuItemCheckVersionNow; -- wxMenuItem* m_menuItemCheckVersionAuto; - wxMenuItem* m_menuItemAbout; - wxBoxSizer* bSizerPanelHolder; - wxPanel* m_panelTopButtons; -@@ -232,8 +230,6 @@ protected: - virtual void onMenuExportFileList( wxCommandEvent& event ) { event.Skip(); } - virtual void onMenuResetLayout( wxCommandEvent& event ) { event.Skip(); } - virtual void onShowHelp( wxCommandEvent& event ) { event.Skip(); } -- virtual void onMenuCheckVersion( wxCommandEvent& event ) { event.Skip(); } -- virtual void onMenuCheckVersionAutomatically( wxCommandEvent& event ) { event.Skip(); } - virtual void onMenuAbout( wxCommandEvent& event ) { event.Skip(); } - virtual void onCompSettingsContextMouse( wxMouseEvent& event ) { event.Skip(); } - virtual void onCompSettingsContext( wxCommandEvent& event ) { event.Skip(); } +@@ -96,8 +96,6 @@ + wxMenuItem* m_menuItemShowOverview; + wxMenu* m_menuHelp; + wxMenuItem* m_menuItemHelp; +- wxMenuItem* m_menuItemCheckVersionNow; +- wxMenuItem* m_menuItemCheckVersionAuto; + wxMenuItem* m_menuItemAbout; + wxBoxSizer* bSizerPanelHolder; + wxPanel* m_panelTopButtons; +@@ -234,8 +232,6 @@ + virtual void onMenuExportFileList( wxCommandEvent& event ) { event.Skip(); } + virtual void onMenuResetLayout( wxCommandEvent& event ) { event.Skip(); } + virtual void onShowHelp( wxCommandEvent& event ) { event.Skip(); } +- virtual void onMenuCheckVersion( wxCommandEvent& event ) { event.Skip(); } +- virtual void onMenuCheckVersionAutomatically( wxCommandEvent& event ) { event.Skip(); } + virtual void onMenuAbout( wxCommandEvent& event ) { event.Skip(); } + virtual void onCompSettingsContextMouse( wxMouseEvent& event ) { event.Skip(); } + virtual void onCompSettingsContext( wxCommandEvent& event ) { event.Skip(); } --- a/FreeFileSync/Source/ui/main_dlg.cpp +++ b/FreeFileSync/Source/ui/main_dlg.cpp @@ -30,7 +30,6 @@ @@ -181,22 +181,22 @@ Message: This is a major rewrite of the ffs_no_check_updates patch from before 1 if (lastUpdateCheck == getVersionCheckInactiveId()) return false; -@@ -168,8 +170,7 @@ +@@ -175,8 +174,7 @@ std::wstring updateDetailsMsg; try { - updateDetailsMsg = utfTo<std::wstring>(sendHttpGet(utfTo<Zstring>("https://api.freefilesync.org/latest_changes?" + xWwwFormUrlEncode({{"since", ffsVersion}})), -- ffsUpdateCheckUserAgent, Zstring() /*caCertFilePath*/, nullptr /*notifyUnbufferedIO*/).readAll()); //throw SysError +- ffsUpdateCheckUserAgent, Zstring() /*caCertFilePath*/).readAll(nullptr /*notifyUnbufferedIO*/)); //throw SysError + updateDetailsMsg = utfTo<std::wstring>(""); } catch (const SysError& e) { updateDetailsMsg = _("Failed to retrieve update information.") + + L"\n\n" + e.toString(); } -@@ -191,8 +192,8 @@ +@@ -198,8 +196,8 @@ std::string getOnlineVersion(const std::vector<std::pair<std::string, std::string>>& postParams) //throw SysError { -- const std::string response = sendHttpPost(Zstr("https://api.freefilesync.org/latest_version"), postParams, -- ffsUpdateCheckUserAgent, Zstring() /*caCertFilePath*/, nullptr /*notifyUnbufferedIO*/).readAll(); //throw SysError +- const std::string response = sendHttpPost(Zstr("https://api.freefilesync.org/latest_version"), postParams, nullptr /*notifyUnbufferedIO*/, +- ffsUpdateCheckUserAgent, Zstring() /*caCertFilePath*/).readAll(nullptr /*notifyUnbufferedIO*/); //throw SysError + const std::string response = ""; + return trimCpy(response); diff --git a/freefilesync/debian/patches/ffs_sftp.patch b/freefilesync/debian/patches/ffs_sftp.patch index a51acc8..969042d 100644 --- a/freefilesync/debian/patches/ffs_sftp.patch +++ b/freefilesync/debian/patches/ffs_sftp.patch @@ -1,25 +1,21 @@ Source: <none> Author: B Stack Message: The upstream author observed that some of the values he uses are not in the libssh2 public headers. I don't know where he uses them from, but I had to replace them here to get this to compile. -Date: 2021-02-02T18:08:53Z -Version: 11.6 +Date: 2022-10-11T15:34Z +Version: 11.26 https://github.com/libssh2/libssh2/issues/90 diff -aur -x '*.git*' -x '.*.swp' -x '*.orig' -x '*.rej' 11.6-0/FreeFileSync/Source/afs/sftp.cpp 11.6-1/FreeFileSync/Source/afs/sftp.cpp ---- 11.6-0/FreeFileSync/Source/afs/sftp.cpp 2021-02-02 11:37:38.589717171 -0500 -+++ 11.6-1/FreeFileSync/Source/afs/sftp.cpp 2021-02-02 13:06:45.782113785 -0500 -@@ -66,10 +66,10 @@ - LIBSSH2_SFTP_S_IRWXO; +--- 11.26-0/FreeFileSync/Source/afs/sftp.cpp 2021-02-02 11:37:38.589717171 -0500 ++++ 11.26-1/FreeFileSync/Source/afs/sftp.cpp 2021-02-02 13:06:45.782113785 -0500 +@@ -65,9 +65,8 @@ //attention: if operation fails due to time out, e.g. file copy, the cleanup code may hang, too => total delay = 2 x time out interval -- --const size_t SFTP_OPTIMAL_BLOCK_SIZE_READ = 8 * MAX_SFTP_READ_SIZE; //https://github.com/libssh2/libssh2/issues/90 --const size_t SFTP_OPTIMAL_BLOCK_SIZE_WRITE = 8 * MAX_SFTP_OUTGOING_SIZE; // + +-const size_t SFTP_OPTIMAL_BLOCK_SIZE_READ = 16 * MAX_SFTP_READ_SIZE; //https://github.com/libssh2/libssh2/issues/90 +-const size_t SFTP_OPTIMAL_BLOCK_SIZE_WRITE = 16 * MAX_SFTP_OUTGOING_SIZE; //need large buffer to mitigate libssh2 stupidly waiting on "acks": https://www.libssh2.org/libssh2_sftp_write.html -static_assert(MAX_SFTP_READ_SIZE == 30000 && MAX_SFTP_OUTGOING_SIZE == 30000, "reevaluate optimal block sizes if these constants change!"); -+// these values are all manually derived from https://github.com/libssh2/libssh2/blob/master/src/sftp.h which for some weak reason are not included in the libssh2-devel headers. -+const size_t SFTP_OPTIMAL_BLOCK_SIZE_READ = 8 * 30000; //https://github.com/libssh2/libssh2/issues/90 -+const size_t SFTP_OPTIMAL_BLOCK_SIZE_WRITE = 8 * 30000; // -+//static_assert(MAX_SFTP_READ_SIZE == 30000 && MAX_SFTP_OUTGOING_SIZE == 30000, "reevaluate optimal block sizes if these constants change!"); ++const size_t SFTP_OPTIMAL_BLOCK_SIZE_READ = 16 * 30000; //https://github.com/libssh2/libssh2/issues/90 ++const size_t SFTP_OPTIMAL_BLOCK_SIZE_WRITE = 16 * 30000; //need large buffer to mitigate libssh2 stupidly waiting on "acks": https://www.libssh2.org/libssh2_sftp_write.html /* Perf Test, Sourceforge frs, SFTP upload, compressed 25 MB test file: - diff --git a/freefilesync/debian/patches/revert_zenju_aggressive_upstreamisms.patch b/freefilesync/debian/patches/revert_zenju_aggressive_upstreamisms.patch index afa3b72..20ccedb 100644 --- a/freefilesync/debian/patches/revert_zenju_aggressive_upstreamisms.patch +++ b/freefilesync/debian/patches/revert_zenju_aggressive_upstreamisms.patch @@ -1,10 +1,14 @@ -Message: Some of these can be traced back to version 10.23 which was the last to not use <unordered_map> +Description: Some of these can be traced back to version 10.23 which was the last to not use <unordered_map> + Had to revert gui_status_handler.cpp and .h entirely to version 11.0 to avoid the wx 3.1.4-isms here. + . + Now have to revert wxWidgets 3.1.4 upstreamisms + cd 11.1-0 ; git diff HEAD~1 -- $( grep -l -rIE 'wxASCII_STR' ) > ~/foo1 ; ( cd ../11.1-2 ; vi ~/foo1 $( grep -l -rIE 'wxASCII_STR' ) ; ) + cd 11.1-0 ; git diff HEAD~1 -- $( grep -l -rIE 'wxDD_SHOW_HIDDEN' ) > ~/foo1 ; ( cd ../11.1-2 ; vi ~/foo1 $( grep -l -rIE 'wxDD_SHOW_HIDDEN' ) ; ) Date: 2022-09-07 -Version: 11.25 +Version: 11.26 Author: bgstack15 -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 +--- a/wx+/choice_enum.h ++++ b/wx+/choice_enum.h @@ -7,7 +7,6 @@ #ifndef CHOICE_ENUM_H_132413545345687 #define CHOICE_ENUM_H_132413545345687 @@ -13,7 +17,7 @@ diff -x '*.rej' -x '*.orig' -x '*.git*' -Naur 10.24-0/wx+/choice_enum.h 10.24-1/ #include <vector> #include <wx/choice.h> -@@ -47,8 +46,6 @@ +@@ -47,8 +46,6 @@ struct EnumDescrList using DescrList = std::vector<std::pair<Enum, std::pair<wxString, wxString>>>; DescrList descrList; @@ -22,7 +26,7 @@ diff -x '*.rej' -x '*.orig' -x '*.git*' -Naur 10.24-0/wx+/choice_enum.h 10.24-1/ }; template <class Enum> void setEnumVal(const EnumDescrList<Enum>& mapping, wxChoice& ctrl, Enum value); template <class Enum> Enum getEnumVal(const EnumDescrList<Enum>& mapping, const wxChoice& ctrl); -@@ -71,32 +68,24 @@ +@@ -71,32 +68,24 @@ template <class Enum> void updateTooltip template <class Enum> void setEnumVal(EnumDescrList<Enum>& mapping, wxChoice& ctrl, Enum value) { @@ -69,7 +73,7 @@ diff -x '*.rej' -x '*.orig' -x '*.git*' -Naur 10.24-0/wx+/choice_enum.h 10.24-1/ } template <class Enum> -@@ -115,17 +103,11 @@ +@@ -115,17 +104,11 @@ Enum getEnumVal(const EnumDescrList<Enum template <class Enum> void updateTooltipEnumVal(const EnumDescrList<Enum>& mapping, wxChoice& ctrl) { @@ -91,13 +95,9 @@ diff -x '*.rej' -x '*.orig' -x '*.git*' -Naur 10.24-0/wx+/choice_enum.h 10.24-1/ } } -Message: Now have to revert wxWidgets 3.1.4 upstreamisms -cd 11.1-0 ; git diff HEAD~1 -- $( grep -l -rIE 'wxASCII_STR' ) > ~/foo1 ; ( cd ../11.1-2 ; vi ~/foo1 $( grep -l -rIE 'wxASCII_STR' ) ; ) -cd 11.1-0 ; git diff HEAD~1 -- $( grep -l -rIE 'wxDD_SHOW_HIDDEN' ) > ~/foo1 ; ( cd ../11.1-2 ; vi ~/foo1 $( grep -l -rIE 'wxDD_SHOW_HIDDEN' ) ; ) -diff -x '*.orig' -x '*.rej' -aur 11.2-0/FreeFileSync/Source/RealTimeSync/folder_selector2.cpp 11.2-1/FreeFileSync/Source/RealTimeSync/folder_selector2.cpp ---- 11.2-0/FreeFileSync/Source/RealTimeSync/folder_selector2.cpp 2020-10-02 14:39:05.273463072 -0400 -+++ 11.2-1/FreeFileSync/Source/RealTimeSync/folder_selector2.cpp 2020-10-02 15:06:56.670070620 -0400 -@@ -158,7 +158,7 @@ +--- a/FreeFileSync/Source/RealTimeSync/folder_selector2.cpp ++++ b/FreeFileSync/Source/RealTimeSync/folder_selector2.cpp +@@ -165,7 +165,7 @@ void FolderSelector2::onSelectDir(wxComm } Zstring newFolderPath; @@ -106,10 +106,9 @@ diff -x '*.orig' -x '*.rej' -aur 11.2-0/FreeFileSync/Source/RealTimeSync/folder_ if (folderSelector.ShowModal() != wxID_OK) return; newFolderPath = utfTo<Zstring>(folderSelector.GetPath()); -diff -x '*.orig' -x '*.rej' -aur 11.1-1/FreeFileSync/Source/ui/command_box.h 11.1-2/FreeFileSync/Source/ui/command_box.h ---- 11.1-1/FreeFileSync/Source/ui/command_box.h 2020-09-01 19:07:43.719122215 -0400 -+++ 11.1-2/FreeFileSync/Source/ui/command_box.h 2020-09-01 20:09:56.840929352 -0400 -@@ -30,7 +30,7 @@ +--- a/FreeFileSync/Source/ui/command_box.h ++++ b/FreeFileSync/Source/ui/command_box.h +@@ -28,7 +28,7 @@ public: const wxString choices[] = nullptr, long style = 0, const wxValidator& validator = wxDefaultValidator, @@ -118,10 +117,9 @@ diff -x '*.orig' -x '*.rej' -aur 11.1-1/FreeFileSync/Source/ui/command_box.h 11. void setHistory(const std::vector<Zstring>& history, size_t historyMax) { history_ = history; historyMax_ = historyMax; } std::vector<Zstring> getHistory() const { return history_; } -diff -x '*.orig' -x '*.rej' -aur 11.1-1/FreeFileSync/Source/ui/folder_history_box.h 11.1-2/FreeFileSync/Source/ui/folder_history_box.h ---- 11.1-1/FreeFileSync/Source/ui/folder_history_box.h 2020-09-01 19:07:43.719122215 -0400 -+++ 11.1-2/FreeFileSync/Source/ui/folder_history_box.h 2020-09-01 20:09:50.624849989 -0400 -@@ -68,7 +68,7 @@ +--- a/FreeFileSync/Source/ui/folder_history_box.h ++++ b/FreeFileSync/Source/ui/folder_history_box.h +@@ -68,7 +68,7 @@ public: const wxString choices[] = nullptr, long style = 0, const wxValidator& validator = wxDefaultValidator, @@ -130,10 +128,9 @@ diff -x '*.orig' -x '*.rej' -aur 11.1-1/FreeFileSync/Source/ui/folder_history_bo void setHistory(std::shared_ptr<HistoryList> sharedHistory) { sharedHistory_ = std::move(sharedHistory); } std::shared_ptr<HistoryList> getHistory() { return sharedHistory_; } -diff -x '*.orig' -x '*.rej' -aur 11.2-0/FreeFileSync/Source/ui/folder_selector.cpp 11.2-1/FreeFileSync/Source/ui/folder_selector.cpp ---- 11.2-0/FreeFileSync/Source/ui/folder_selector.cpp 2020-10-02 14:39:05.297463367 -0400 -+++ 11.2-1/FreeFileSync/Source/ui/folder_selector.cpp 2020-10-02 15:08:07.066935749 -0400 -@@ -232,7 +232,7 @@ +--- a/FreeFileSync/Source/ui/folder_selector.cpp ++++ b/FreeFileSync/Source/ui/folder_selector.cpp +@@ -239,7 +239,7 @@ void FolderSelector::onSelectFolder(wxCo Zstring shellItemPath; //default size? Windows: not implemented, Linux(GTK2): not implemented, macOS: not implemented => wxWidgets, what is this shit!? @@ -142,10 +139,9 @@ diff -x '*.orig' -x '*.rej' -aur 11.2-0/FreeFileSync/Source/ui/folder_selector.c //GTK2: "Show hidden" is also available as a context menu option in the folder picker! //It looks like wxDD_SHOW_HIDDEN only sets the default when opening for the first time!? if (folderSelector.ShowModal() != wxID_OK) -diff -x '*.orig' -x '*.rej' -aur 11.1-1/wx+/bitmap_button.h 11.1-2/wx+/bitmap_button.h ---- 11.22-0/wx+/bitmap_button.h 2022-06-26 12:01:15.638291465 -0400 -+++ 11.22-1/wx+/bitmap_button.h 2022-06-26 12:51:34.527830821 -0400 -@@ -28,7 +28,7 @@ +--- a/wx+/bitmap_button.h ++++ b/wx+/bitmap_button.h +@@ -28,7 +28,7 @@ public: const wxSize& size = wxDefaultSize, long style = 0, const wxValidator& validator = wxDefaultValidator, @@ -154,7 +150,7 @@ diff -x '*.orig' -x '*.rej' -aur 11.1-1/wx+/bitmap_button.h 11.1-2/wx+/bitmap_bu wxBitmapButton(parent, id, wxNullBitmap, pos, size, style, validator, name) { SetLabel(label); -@@ -104,7 +104,6 @@ +@@ -104,7 +104,6 @@ inline wxBitmap renderSelectedButton(const wxSize& sz) { wxBitmap bmp(sz); //seems we don't need to pass 24-bit depth here even for high-contrast color schemes @@ -162,7 +158,7 @@ diff -x '*.orig' -x '*.rej' -aur 11.1-1/wx+/bitmap_button.h 11.1-2/wx+/bitmap_bu { wxMemoryDC dc(bmp); -@@ -120,7 +119,6 @@ +@@ -120,7 +119,6 @@ inline wxBitmap renderPressedButton(const wxSize& sz) { wxBitmap bmp(sz); //seems we don't need to pass 24-bit depth here even for high-contrast color schemes @@ -170,9 +166,8 @@ diff -x '*.orig' -x '*.rej' -aur 11.1-1/wx+/bitmap_button.h 11.1-2/wx+/bitmap_bu { //draw rectangle border with gradient const wxColor colFrom = wxSystemSettings::GetColour(wxSYS_COLOUR_BTNFACE); -diff -aur -x '*.git*' -x '.*.swp' -x '*.orig' -x '*.rej' 11.6-0/wx+/dc.h 11.6-1/wx+/dc.h ---- 11.23-0/wx+/dc.h 2022-08-03 08:55:32.140102989 -0400 -+++ 11.23-1/wx+/dc.h 2022-08-03 09:27:55.367666939 -0400 +--- a/wx+/dc.h ++++ b/wx+/dc.h @@ -12,7 +12,7 @@ #include <zen/basic_math.h> #include <wx/dcbuffer.h> //for macro: wxALWAYS_NATIVE_DOUBLE_BUFFER @@ -182,7 +177,7 @@ diff -aur -x '*.git*' -x '.*.swp' -x '*.orig' -x '*.rej' 11.6-0/wx+/dc.h 11.6-1/ #include <gtk/gtk.h> -@@ -92,9 +92,6 @@ +@@ -92,9 +92,6 @@ constexpr int defaultDpi = 96; //on Wind inline int getDPI() { @@ -192,7 +187,7 @@ diff -aur -x '*.git*' -x '.*.swp' -x '*.orig' -x '*.rej' 11.6-0/wx+/dc.h 11.6-1/ //GTK2 doesn't properly support high DPI: https://freefilesync.org/forum/viewtopic.php?t=6114 //=> requires general fix at wxWidgets-level -@@ -130,7 +127,6 @@ +@@ -130,7 +127,6 @@ wxBitmap toScaledBitmap(const wxImage& i { //wxBitmap(const wxImage& image, int depth = -1, double WXUNUSED(scale) = 1.0) => wxWidgets just ignores scale parameter! WTF! wxBitmap bmpScaled(img); @@ -200,10 +195,9 @@ diff -aur -x '*.git*' -x '.*.swp' -x '*.orig' -x '*.rej' 11.6-0/wx+/dc.h 11.6-1/ return bmpScaled; //when testing use 175% scaling: wxWidgets' scaling logic doesn't kick in for 150% only } -diff -x '*.orig' -x '*.rej' -aur 11.1-1/wx+/graph.h 11.1-2/wx+/graph.h ---- 11.1-1/wx+/graph.h 2020-09-01 19:07:43.731122359 -0400 -+++ 11.1-2/wx+/graph.h 2020-09-01 20:10:36.541429649 -0400 -@@ -153,7 +153,7 @@ +--- a/wx+/graph.h ++++ b/wx+/graph.h +@@ -192,7 +192,7 @@ public: const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxTAB_TRAVERSAL | wxNO_BORDER, @@ -212,10 +206,9 @@ diff -x '*.orig' -x '*.rej' -aur 11.1-1/wx+/graph.h 11.1-2/wx+/graph.h class CurveAttributes { -diff -x '*.orig' -x '*.rej' -aur 11.1-1/wx+/grid.cpp 11.1-2/wx+/grid.cpp ---- 11.1-1/wx+/grid.cpp 2020-09-01 20:07:24.418981662 -0400 -+++ 11.1-2/wx+/grid.cpp 2020-09-01 20:10:23.745268393 -0400 -@@ -268,7 +268,7 @@ +--- a/wx+/grid.cpp ++++ b/wx+/grid.cpp +@@ -263,7 +263,7 @@ class Grid::SubWindow : public wxWindow { public: SubWindow(Grid& parent) : @@ -224,10 +217,9 @@ diff -x '*.orig' -x '*.rej' -aur 11.1-1/wx+/grid.cpp 11.1-2/wx+/grid.cpp parent_(parent) { Bind(wxEVT_PAINT, [this](wxPaintEvent& event) { onPaintEvent(event); }); -diff -x '*.orig' -x '*.rej' -aur 11.1-1/wx+/grid.h 11.1-2/wx+/grid.h ---- 11.1-1/wx+/grid.h 2020-09-01 19:07:43.731122359 -0400 -+++ 11.1-2/wx+/grid.h 2020-09-01 20:10:48.817584344 -0400 -@@ -149,7 +149,7 @@ +--- a/wx+/grid.h ++++ b/wx+/grid.h +@@ -149,7 +149,7 @@ public: const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxTAB_TRAVERSAL | wxNO_BORDER, @@ -236,10 +228,9 @@ diff -x '*.orig' -x '*.rej' -aur 11.1-1/wx+/grid.h 11.1-2/wx+/grid.h size_t getRowCount() const; -diff -x '*.orig' -x '*.rej' -aur 11.1-1/wx+/toggle_button.h 11.1-2/wx+/toggle_button.h ---- 11.1-1/wx+/toggle_button.h 2020-09-01 19:07:43.731122359 -0400 -+++ 11.1-2/wx+/toggle_button.h 2020-09-01 20:10:44.629531569 -0400 -@@ -24,7 +24,7 @@ +--- a/wx+/toggle_button.h ++++ b/wx+/toggle_button.h +@@ -24,7 +24,7 @@ public: const wxSize& size = wxDefaultSize, long style = 0, const wxValidator& validator = wxDefaultValidator, @@ -248,7 +239,7 @@ diff -x '*.orig' -x '*.rej' -aur 11.1-1/wx+/toggle_button.h 11.1-2/wx+/toggle_bu wxBitmapButton(parent, id, bitmap, pos, size, style, validator, name) {} //wxButton constructor -@@ -35,7 +35,7 @@ +@@ -35,7 +35,7 @@ public: const wxSize& size = wxDefaultSize, long style = 0, const wxValidator& validator = wxDefaultValidator, @@ -257,12 +248,9 @@ diff -x '*.orig' -x '*.rej' -aur 11.1-1/wx+/toggle_button.h 11.1-2/wx+/toggle_bu wxBitmapButton(parent, id, wxNullBitmap, pos, size, style, validator, name) { SetLabel(label); -Version: 11.1 -Message: Had to revert gui_status_handler.cpp and .h entirely to version 11.0 to avoid the wx 3.1.4-isms here. -diff --git a/FreeFileSync/Source/ui/gui_status_handler.cpp b/FreeFileSync/Source/ui/gui_status_handler.cpp ---- 11.25-0/FreeFileSync/Source/ui/gui_status_handler.cpp 2022-09-07 14:54:31.552630085 -0400 -+++ 11.25-1/FreeFileSync/Source/ui/gui_status_handler.cpp 2022-09-07 16:32:17.114749584 -0400 -@@ -44,8 +44,8 @@ +--- a/FreeFileSync/Source/ui/gui_status_handler.cpp ++++ b/FreeFileSync/Source/ui/gui_status_handler.cpp +@@ -44,8 +44,8 @@ StatusHandlerTemporaryPanel::StatusHandl mainDlg_.Update(); //don't wait until idle event! //register keys @@ -273,7 +261,7 @@ diff --git a/FreeFileSync/Source/ui/gui_status_handler.cpp b/FreeFileSync/Source } -@@ -129,9 +129,8 @@ +@@ -129,9 +129,8 @@ StatusHandlerTemporaryPanel::~StatusHand mainDlg_.auiMgr_.Update(); //unregister keys @@ -285,7 +273,7 @@ diff --git a/FreeFileSync/Source/ui/gui_status_handler.cpp b/FreeFileSync/Source mainDlg_.compareStatus_->teardown(); -@@ -324,7 +323,7 @@ +@@ -336,7 +335,7 @@ void StatusHandlerTemporaryPanel::forceU } @@ -294,7 +282,7 @@ diff --git a/FreeFileSync/Source/ui/gui_status_handler.cpp b/FreeFileSync/Source { const int keyCode = event.GetKeyCode(); if (keyCode == WXK_ESCAPE) -@@ -334,7 +333,7 @@ +@@ -346,7 +345,7 @@ void StatusHandlerTemporaryPanel::onLoca } @@ -303,11 +291,9 @@ diff --git a/FreeFileSync/Source/ui/gui_status_handler.cpp b/FreeFileSync/Source { userRequestAbort(); } -diff --git a/FreeFileSync/Source/ui/gui_status_handler.h b/FreeFileSync/Source/ui/gui_status_handler.h -index e8ed01e4..2a9e00d2 100644 --- a/FreeFileSync/Source/ui/gui_status_handler.h +++ b/FreeFileSync/Source/ui/gui_status_handler.h -@@ -41,8 +41,8 @@ public: +@@ -46,8 +46,8 @@ public: Result reportResults(); //noexcept!! private: @@ -318,10 +304,9 @@ index e8ed01e4..2a9e00d2 100644 void showStatsPanel(); MainDialog& mainDlg_; -diff -Naur -x '*.orig' -x '*.rej' -x '*.git*' 11.4-1/wx+/no_flicker.h 11.4-2/wx+/no_flicker.h ---- 11.4-1/wx+/no_flicker.h 2020-12-08 08:15:29.436156549 -0500 -+++ 11.4-2/wx+/no_flicker.h 2020-12-08 20:11:25.066820270 -0500 -@@ -70,7 +70,7 @@ +--- a/wx+/no_flicker.h ++++ b/wx+/no_flicker.h +@@ -72,7 +72,7 @@ void setTextWithUrls(wxRichTextCtrl& ric ZEN_ON_SCOPE_EXIT(richCtrl.EndSuppressUndo()); //fix mouse scroll speed: why the FUCK is this even necessary! @@ -330,9 +315,9 @@ diff -Naur -x '*.orig' -x '*.rej' -x '*.git*' 11.4-1/wx+/no_flicker.h 11.4-2/wx+ //get rid of margins and space between text blocks/"paragraphs" richCtrl.SetMargins({0, 0}); ---- 11.20-0/FreeFileSync/Source/ui/progress_indicator.cpp 2022-04-18 09:49:31.917386558 -0400 -+++ 11.20-1/FreeFileSync/Source/ui/progress_indicator.cpp 2022-04-18 11:02:10.988781908 -0400 -@@ -878,12 +881,10 @@ +--- a/FreeFileSync/Source/ui/progress_indicator.cpp ++++ b/FreeFileSync/Source/ui/progress_indicator.cpp +@@ -878,12 +878,10 @@ dlgSizeBuf_(dlgSize) auto generateSquareBitmap = [&](const wxColor& fillCol, const wxColor& borderCol) { wxBitmap bmpSquare(this->GetCharHeight(), this->GetCharHeight()); //seems we don't need to pass 24-bit depth here even for high-contrast color schemes @@ -345,9 +330,9 @@ diff -Naur -x '*.orig' -x '*.rej' -x '*.git*' 11.4-1/wx+/no_flicker.h 11.4-2/wx+ return bmpSquare; }; pnl_.m_bitmapGraphKeyBytes->SetBitmap(generateSquareBitmap(getColorBytes(), getColorBytesRim())); ---- 11.25-0/wx+/rtl.h 2022-09-07 14:54:31.712631887 -0400 -+++ 11.25-1/wx+/rtl.h 2022-09-07 15:57:01.638891035 -0400 -@@ -70,8 +70,6 @@ +--- a/wx+/rtl.h ++++ b/wx+/rtl.h +@@ -70,8 +70,6 @@ void drawBitmapRtlMirror(wxDC& dc, const if (!buffer || buffer->GetSize() != rect.GetSize()) //[!] since we do a mirror, width needs to match exactly! buffer.emplace(rect.GetSize()); @@ -356,19 +341,55 @@ diff -Naur -x '*.orig' -x '*.rej' -x '*.git*' 11.4-1/wx+/no_flicker.h 11.4-2/wx+ wxMemoryDC memDc(*buffer); //copies scale factor from wxBitmap memDc.Blit(wxPoint(0, 0), rect.GetSize(), &dc, rect.GetTopLeft()); //blit in: background is mirrored due to memDc, dc having different layout direction! ---- 11.22-0/FreeFileSync/Source/ui/main_dlg.cpp 2022-06-26 12:01:15.634291415 -0400 -+++ 11.22-1/FreeFileSync/Source/ui/main_dlg.cpp 2022-06-26 14:44:38.556188935 -0400 -@@ -3595,7 +3590,6 @@ - }; - +--- a/FreeFileSync/Source/ui/main_dlg.cpp ++++ b/FreeFileSync/Source/ui/main_dlg.cpp +@@ -3586,7 +3586,6 @@ void MainDialog::onCfgGridContext(GridCo + auto addColorOption = [&](const wxColor& col, const wxString& name) + { wxBitmap bmpSquare(this->GetCharHeight(), this->GetCharHeight()); //seems we don't need to pass 24-bit depth here even for high-contrast color schemes - bmpSquare.SetScaleFactor(getDisplayScaleFactor()); { wxMemoryDC dc(bmpSquare); const wxColor borderCol(0xdd, 0xdd, 0xdd); //light grey ---- 11.22-0/wx+/image_tools.cpp 2022-06-26 16:29:25.668035003 -0400 -+++ 11.22-1/wx+/image_tools.cpp 2022-06-27 09:06:04.999244263 -0400 -@@ -188,7 +188,6 @@ +@@ -3619,7 +3618,6 @@ void MainDialog::onCfgGridContext(GridCo + + //show color picker + wxBitmap bmpColorPicker(this->GetCharHeight(), this->GetCharHeight()); //seems we don't need to pass 24-bit depth here even for high-contrast color schemes +- bmpColorPicker.SetScaleFactor(getDisplayScaleFactor()); + { + wxMemoryDC dc(bmpColorPicker); + const wxColor borderCol(0xdd, 0xdd, 0xdd); //light grey +@@ -3633,7 +3631,6 @@ void MainDialog::onCfgGridContext(GridCo + { + wxColourData colCfg; + colCfg.SetChooseFull(true); +- colCfg.SetChooseAlpha(false); + colCfg.SetColour(defaultColors[1].first); //tentative + + if (const ConfigView::Details* cfg = cfggrid::getDataView(*m_gridCfgHistory).getItem(selectedRows[0])) +@@ -3650,19 +3647,6 @@ void MainDialog::onCfgGridContext(GridCo + assert(col.Alpha() == 255); + return col; + }; +- wxColourDialog dlg(this, &colCfg); +- dlg.Center(); +- +- dlg.Bind(wxEVT_COLOUR_CHANGED, [&](wxColourDialogEvent& event2) +- { +- //show preview during color selection (Windows-only atm) +- cfggrid::getDataView(*m_gridCfgHistory).setBackColor(cfgFilePaths, fixColorPickerColor(event2.GetColour()), true /*previewOnly*/); +- m_gridCfgHistory->Refresh(); +- }); +- +- if (dlg.ShowModal() == wxID_OK) +- applyBackColor(fixColorPickerColor(dlg.GetColourData().GetColour())); +- else //shut off color preview + { + cfggrid::getDataView(*m_gridCfgHistory).setBackColor(cfgFilePaths, wxNullColour, true /*previewOnly*/); + m_gridCfgHistory->Refresh(); +--- a/wx+/image_tools.cpp ++++ b/wx+/image_tools.cpp +@@ -188,7 +188,6 @@ wxImage zen::createImageFromText(const w return wxNullImage; wxBitmap newBitmap(maxWidth, lineHeight * lineInfo.size()); //seems we don't need to pass 24-bit depth here even for high-contrast color schemes diff --git a/freefilesync/debian/patches/series b/freefilesync/debian/patches/series index 206af1e..500443c 100644 --- a/freefilesync/debian/patches/series +++ b/freefilesync/debian/patches/series @@ -2,11 +2,11 @@ ffs_allow_parallel_ops.patch ffs_devuan.patch ffs_devuan_gtk3.patch ffs_no_check_updates.patch -ffs_no_wx311.patch +#ffs_no_wx311.patch ffs_sftp.patch ffs_libssh2.patch #ffs_curl.patch -revert_zenju_aggressive_upstreamisms.patch +#revert_zenju_aggressive_upstreamisms.patch ffs_gcc.patch ffs_traditional_view.patch ffs_desktop_notifications.patch |