From d5ea7b5aa14250c9af85f4d3339a6f27293f0e93 Mon Sep 17 00:00:00 2001 From: "B. Stack" Date: Mon, 18 Apr 2022 13:40:45 -0400 Subject: ffs 11.20 dpkg rc1 --- freefilesync/debian/README.Debian | 3 ++ freefilesync/debian/changelog | 28 +++++++++++++ freefilesync/debian/control | 2 +- freefilesync/debian/freefilesync+devuan.dsc | 2 +- freefilesync/debian/patches/ffs_devuan.patch | 20 ++++----- freefilesync/debian/patches/ffs_gcc.patch | 12 ++++-- .../debian/patches/ffs_no_check_updates.patch | 16 ++++---- freefilesync/debian/patches/ffs_no_wx311.patch | 12 +++--- .../revert_zenju_aggressive_upstreamisms.patch | 48 ++++++++++++++++++---- 9 files changed, 107 insertions(+), 36 deletions(-) diff --git a/freefilesync/debian/README.Debian b/freefilesync/debian/README.Debian index a5a1f01..ac19a18 100644 --- a/freefilesync/debian/README.Debian +++ b/freefilesync/debian/README.Debian @@ -1,3 +1,6 @@ +freefilesync (11.20-1+devuan) +Now requires g++-11 due to `-std=c++2b`. Upstream moved to wx 3.1.6 or newer, which of course still doesn't work in Ceres (only version 3.0.5). To get around this issue, this package loses some of the wx 3.1.6-dependent hiDPI support. + freefilesync (10.25-1+devuan) Now requires g++-10. Previously, the maintainer was reverting the logic only available to gcc-10, but this is becoming unmaintainable. diff --git a/freefilesync/debian/changelog b/freefilesync/debian/changelog index 793683d..9037cac 100644 --- a/freefilesync/debian/changelog +++ b/freefilesync/debian/changelog @@ -1,3 +1,31 @@ +freefilesync (11.20-1+devuan) obs; urgency=medium + + * Upstream updates + * Fixed broken icon scaling on high-DPI displays + * Improved performance for huge exclusion filter lists: linear to + constant(!) time + * Support sync with Google Drive starred folders + * Access "My Computers" (as created by Google Backup and Sync) if + starred + * Western Digital Mycloud NAS: fixed ERROR_ALREADY_EXISTS when changing + case + * Added per-file progress for "copy to" function + * Have filter wildcard ? not match path separator + * Work around WBEM_E_INVALID_NAMESPACE error during installation + * Fixed login user incorrectly displayed as root (macOS) + * Save Google Drive buffer before system shutdown + * Dpkg updates + * Use g++-11 now for -std=c++2b + * Principal changes to revert_zenju_aggressive_upstreamisms.patch + + -- B. Stack Mon, 18 Apr 2022 09:52:50 -0400 + +freefilesync (11.19-1+devuan) UNRELEASED; urgency=medium + + * Upstream released this the same day as version 11.20. + + -- B. Stack Mon, 18 Apr 2022 09:51:50 -0400 + freefilesync (11.18-1+devuan) obs; urgency=medium * Upstream updates diff --git a/freefilesync/debian/control b/freefilesync/debian/control index f9ccd02..9301bd0 100644 --- a/freefilesync/debian/control +++ b/freefilesync/debian/control @@ -4,7 +4,7 @@ Priority: optional Maintainer: B. Stack Build-Depends: debhelper (>=12~), imagemagick, - g++-10, + g++-11, libbrotli-dev, libcurl4-openssl-dev (>=7.82.0), libglibmm-2.4-dev, diff --git a/freefilesync/debian/freefilesync+devuan.dsc b/freefilesync/debian/freefilesync+devuan.dsc index 3566056..2397367 100644 --- a/freefilesync/debian/freefilesync+devuan.dsc +++ b/freefilesync/debian/freefilesync+devuan.dsc @@ -2,7 +2,7 @@ Format: 3.0 (quilt) Source: freefilesync Binary: freefilesync Architecture: any -Version: 11.18-1+devuan +Version: 11.20-1+devuan Maintainer: B. Stack Homepage: https://freefilesync.org/ Standards-Version: 4.1.4 diff --git a/freefilesync/debian/patches/ffs_devuan.patch b/freefilesync/debian/patches/ffs_devuan.patch index ace8fde..da59209 100644 --- a/freefilesync/debian/patches/ffs_devuan.patch +++ b/freefilesync/debian/patches/ffs_devuan.patch @@ -1,6 +1,6 @@ -Author: B Stack +Author: bgstack15 Source: Original research -Last date modified: 2020-10-02 +Last modified: 2022-04-18 Message: Main patch to compile on Devuan. diff -x '*.swp' -x '.git*' -x '*.orig' -x '*.rej' -Naur 10.18-0/FreeFileSync/Source/ffs_paths.cpp 10.18-1/FreeFileSync/Source/ffs_paths.cpp --- 10.13-0/FreeFileSync/Source/ffs_paths.cpp 2019-06-14 20:23:07.615661499 -0400 @@ -16,14 +16,14 @@ diff -x '*.swp' -x '.git*' -x '*.orig' -x '*.rej' -Naur 10.18-0/FreeFileSync/Sou diff -Naur -x '*.orig' -x '*.rej' -x .git 11.4-0/FreeFileSync/Source/Makefile 11.4-1/FreeFileSync/Source/Makefile ---- 11.4-0/FreeFileSync/Source/Makefile 2020-12-08 08:15:29.424156422 -0500 -+++ 11.4-1/FreeFileSync/Source/Makefile 2020-12-08 18:25:59.487867270 -0500 +--- 11.20-0/FreeFileSync/Source/Makefile 2022-04-18 09:49:31.901386387 -0400 ++++ 11.20-1/FreeFileSync/Source/Makefile 2022-04-18 10:00:41.504569833 -0400 @@ -1,10 +1,10 @@ -exeName = FreeFileSync_$(shell arch) +exeName = FreeFileSync --cxxFlags = -std=c++2a -pipe -DWXINTL_NO_GETTEXT_MACRO -I../.. -I../../zenXml -include "zen/i18n.h" -include "zen/warn_static.h" \ -+cxxFlags += -std=c++2a -pipe -DWXINTL_NO_GETTEXT_MACRO -I../.. -I../../zenXml -include "zen/i18n.h" -include "zen/warn_static.h" \ +-cxxFlags = -std=c++2b -pipe -DWXINTL_NO_GETTEXT_MACRO -I../.. -I../../zenXml -include "zen/i18n.h" -include "zen/warn_static.h" \ ++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 @@ -45,14 +45,14 @@ diff -x '*.swp' -x '.git*' -x '*.orig' -x '*.rej' -Naur 10.19-0/FreeFileSync/Sou build += utfTo(formatTime(formatDateTag, getCompileTime())); diff -Naur -x '*.orig' -x '*.rej' -x .git 11.4-0/FreeFileSync/Source/RealTimeSync/Makefile 11.4-1/FreeFileSync/Source/RealTimeSync/Makefile ---- 11.4-0/FreeFileSync/Source/RealTimeSync/Makefile 2020-12-08 08:15:29.424156422 -0500 -+++ 11.4-1/FreeFileSync/Source/RealTimeSync/Makefile 2020-12-08 18:26:11.823997849 -0500 +--- 11.20-0/FreeFileSync/Source/RealTimeSync/Makefile 2022-04-18 09:49:31.901386387 -0400 ++++ 11.20-1/FreeFileSync/Source/RealTimeSync/Makefile 2022-04-18 10:00:35.168501749 -0400 @@ -1,10 +1,10 @@ -exeName = RealTimeSync_$(shell arch) +exeName = RealTimeSync --cxxFlags = -std=c++2a -pipe -DWXINTL_NO_GETTEXT_MACRO -I../../.. -I../../../zenXml -include "zen/i18n.h" -include "zen/warn_static.h" \ -+cxxFlags += -std=c++2a -pipe -DWXINTL_NO_GETTEXT_MACRO -I../../.. -I../../../zenXml -include "zen/i18n.h" -include "zen/warn_static.h" \ +-cxxFlags = -std=c++2b -pipe -DWXINTL_NO_GETTEXT_MACRO -I../../.. -I../../../zenXml -include "zen/i18n.h" -include "zen/warn_static.h" \ ++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 diff --git a/freefilesync/debian/patches/ffs_gcc.patch b/freefilesync/debian/patches/ffs_gcc.patch index 1f34404..dd9e628 100644 --- a/freefilesync/debian/patches/ffs_gcc.patch +++ b/freefilesync/debian/patches/ffs_gcc.patch @@ -1,11 +1,15 @@ +Date: 2022-04-18 +Version: 11.20 +Message: Parameterize the C++ compiler invocation +Author: bgstack15 diff -aur 11.2-1/FreeFileSync/Source/Makefile 11.2-2/FreeFileSync/Source/Makefile --- 11.2-1/FreeFileSync/Source/Makefile 2020-10-02 14:59:35.816639878 -0400 +++ 11.2-2/FreeFileSync/Source/Makefile 2020-10-02 14:59:54.220866929 -0400 @@ -1,4 +1,5 @@ exeName = FreeFileSync -+CXX=g++-10 ++CXX=g++-11 - cxxFlags += -std=c++2a -pipe -DWXINTL_NO_GETTEXT_MACRO -I../.. -I../../zenXml -include "zen/i18n.h" -include "zen/warn_static.h" \ + 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 \ @@ -115,11 +116,11 @@ @@ -26,9 +30,9 @@ diff -aur 11.2-1/FreeFileSync/Source/RealTimeSync/Makefile 11.2-2/FreeFileSync/S +++ 11.2-2/FreeFileSync/Source/RealTimeSync/Makefile 2020-10-02 14:59:54.220866929 -0400 @@ -1,4 +1,5 @@ exeName = RealTimeSync -+CXX=g++-10 ++CXX=g++-11 - cxxFlags += -std=c++2a -pipe -DWXINTL_NO_GETTEXT_MACRO -I../../.. -I../../../zenXml -include "zen/i18n.h" -include "zen/warn_static.h" \ + 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 \ @@ -54,11 +55,11 @@ diff --git a/freefilesync/debian/patches/ffs_no_check_updates.patch b/freefilesync/debian/patches/ffs_no_check_updates.patch index 9cfc123..bdc2ebd 100644 --- a/freefilesync/debian/patches/ffs_no_check_updates.patch +++ b/freefilesync/debian/patches/ffs_no_check_updates.patch @@ -1,5 +1,5 @@ -Version: 11.18 -Date: 2022-03-08 +Version: 11.20 +Date: 2022-04-18 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. diff -aur 11.18-0/FreeFileSync/Source/ui/gui_generated.cpp 11.18-1/FreeFileSync/Source/ui/gui_generated.cpp @@ -54,14 +54,14 @@ diff -aur 11.18-0/FreeFileSync/Source/ui/gui_generated.h 11.18-1/FreeFileSync/So diff -aur 11.10-1/FreeFileSync/Source/ui/main_dlg.cpp 11.10-2/FreeFileSync/Source/ui/main_dlg.cpp --- 11.16-0/FreeFileSync/Source/ui/main_dlg.cpp 2022-01-04 08:52:19.811432573 -0500 +++ 11.16-1/FreeFileSync/Source/ui/main_dlg.cpp 2022-01-04 08:57:14.506728896 -0500 -@@ -735,7 +735,6 @@ +@@ -744,7 +744,6 @@ - m_menuItemHelp ->SetBitmap(loadImage("help_sicon")); - m_menuItemAbout->SetBitmap(loadImage("about_sicon")); -- m_menuItemCheckVersionNow->SetBitmap(loadImage("update_check_sicon")); + setImage(*m_menuItemHelp, loadImage("help_sicon")); + setImage(*m_menuItemAbout, loadImage("about_sicon")); +- setImage(*m_menuItemCheckVersionNow, loadImage("update_check_sicon")); - auto fixMenuIcons = [](wxMenu& menu) //GTK: image must be set *before* adding wxMenuItem to menu or it won't show - { + fixMenuIcons(*m_menuFile); + fixMenuIcons(*m_menuActions); @@ -854,9 +853,6 @@ //mainly to update row label sizes... updateGui(); diff --git a/freefilesync/debian/patches/ffs_no_wx311.patch b/freefilesync/debian/patches/ffs_no_wx311.patch index 8e17036..1671e4c 100644 --- a/freefilesync/debian/patches/ffs_no_wx311.patch +++ b/freefilesync/debian/patches/ffs_no_wx311.patch @@ -1,4 +1,7 @@ -2019-08-15 just compile. +Last modified: 2022-04-18 +Version: 11.20 +Author: bgstack15 +Message: Just compile by stepping around wxWidgets 3.1.1 calls diff -Naur -x '*.orig' -x '*.rej' -x .git 11.4-0/FreeFileSync/Source/ui/small_dlgs.cpp 11.4-1/FreeFileSync/Source/ui/small_dlgs.cpp --- 11.4-0/FreeFileSync/Source/ui/small_dlgs.cpp 2020-12-08 08:15:29.432156507 -0500 +++ 11.4-1/FreeFileSync/Source/ui/small_dlgs.cpp 2020-12-08 18:22:19.929543356 -0500 @@ -12,16 +15,15 @@ diff -Naur -x '*.orig' -x '*.rej' -x .git 11.4-0/FreeFileSync/Source/ui/small_dl //set default values for Google Drive: use first item of m_listBoxGdriveUsers if (!gdriveAccounts.empty() && !acceptsItemPathPhraseGdrive(folderPathPhrase)) -@@ -1681,7 +1682,7 @@ +@@ -1689,7 +1690,6 @@ //setMainInstructionFont(*m_staticTextMain); - m_bitmapActivation->SetBitmap(loadImage("internet")); + setImage(*m_bitmapActivation, loadImage("internet")); - m_textCtrlOfflineActivationKey->ForceUpper(); -+ //m_textCtrlOfflineActivationKey->ForceUpper(); setTextWithUrls(*m_richTextLastError, lastErrorMsg); setTextWithUrls(*m_richTextManualActivationUrl, manualActivationUrl); -iff -Naur -x '*.orig' -x '*.rej' 10.3-0/wx+/grid.cpp 10.3-2/wx+/grid.cpp +diff -Naur -x '*.orig' -x '*.rej' 10.3-0/wx+/grid.cpp 10.3-2/wx+/grid.cpp --- 10.3-0/wx+/grid.cpp 2018-08-07 05:03:34.000000000 -0400 +++ 10.3-2/wx+/grid.cpp 2018-08-08 19:24:56.849445102 -0400 @@ -1176,7 +1176,9 @@ diff --git a/freefilesync/debian/patches/revert_zenju_aggressive_upstreamisms.patch b/freefilesync/debian/patches/revert_zenju_aggressive_upstreamisms.patch index de8d5e9..570b244 100644 --- a/freefilesync/debian/patches/revert_zenju_aggressive_upstreamisms.patch +++ b/freefilesync/debian/patches/revert_zenju_aggressive_upstreamisms.patch @@ -1,6 +1,7 @@ Message: Some of these can be traced back to version 10.23 which was the last to not use -Date: 2021-05-10 -Version: 11.10 +Date: 2022-04-18 +Version: 11.20 +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 @@ -154,17 +155,40 @@ diff -x '*.orig' -x '*.rej' -aur 11.1-1/wx+/bitmap_button.h 11.1-2/wx+/bitmap_bu { SetLabel(label); diff -aur -x '*.git*' -x '.*.swp' -x '*.orig' -x '*.rej' 11.6-0/wx+/dc.h 11.6-1/wx+/dc.h ---- 11.9-0/wx+/dc.h 2021-04-05 10:57:36.518697734 -0400 -+++ 11.9-1/wx+/dc.h 2021-04-05 11:11:21.809650868 -0400 -@@ -69,9 +69,6 @@ +--- 11.20-0/wx+/dc.h 2022-04-18 09:49:31.921386600 -0400 ++++ 11.20-1/wx+/dc.h 2022-04-18 10:12:04.667907393 -0400 +@@ -12,7 +12,7 @@ + #include + #include //for macro: wxALWAYS_NATIVE_DOUBLE_BUFFER + #include +-#include ++//#include + #include + + +@@ -92,9 +92,6 @@ inline int getDPI() { --#ifndef wxHAVE_DPI_INDEPENDENT_PIXELS --#error why is wxHAVE_DPI_INDEPENDENT_PIXELS not defined? +-#ifndef wxHAS_DPI_INDEPENDENT_PIXELS +-#error why is wxHAS_DPI_INDEPENDENT_PIXELS not defined? -#endif //GTK2 doesn't properly support high DPI: https://freefilesync.org/forum/viewtopic.php?t=6114 //=> requires general fix at wxWidgets-level + +@@ -119,11 +116,11 @@ + + + inline +-wxBitmapBundle toBitmapBundle(const wxImage& img /*expected to be DPI-scaled!*/) ++wxBitmap toBitmapBundle(const wxImage& img /*expected to be DPI-scaled!*/) + { + //return wxBitmap(img, -1 /*depth*/, static_cast(getDPI()) / defaultDpi); not (yet) implemented + wxBitmap bmpScaled(img); +- bmpScaled.SetScaleFactor(static_cast(getDPI()) / defaultDpi); ++ //bmpScaled.SetScaleFactor(static_cast(getDPI()) / defaultDpi); + return bmpScaled; + } 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 @@ -358,3 +382,13 @@ diff -aur 11.10-0/zen/legacy_compiler.cpp 11.10-1/zen/legacy_compiler.cpp + first + charsWritten : first; } +--- 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 +@@ -882,7 +885,6 @@ + wxMemoryDC dc(bmpSquare); + drawInsetRectangle(dc, wxRect(bmpSquare.GetSize()), fastFromDIP(1), borderCol, fillCol); + } +- bmpSquare.SetScaleFactor(static_cast(getDPI()) / defaultDpi); + return bmpSquare; + }; + pnl_.m_bitmapGraphKeyBytes->SetBitmap(generateSquareBitmap(getColorBytes(), getColorBytesRim())); -- cgit From 87c96dcd6591a733c53d571f3784c36b79f851d0 Mon Sep 17 00:00:00 2001 From: "B. Stack" Date: Mon, 18 Apr 2022 14:03:21 -0400 Subject: remove some r_z_a_u patches now that we use g++-11 --- freefilesync/debian/freefilesync+devuan.dsc | 2 +- .../revert_zenju_aggressive_upstreamisms.patch | 55 ---------------------- 2 files changed, 1 insertion(+), 56 deletions(-) diff --git a/freefilesync/debian/freefilesync+devuan.dsc b/freefilesync/debian/freefilesync+devuan.dsc index 2397367..e2ca5a6 100644 --- a/freefilesync/debian/freefilesync+devuan.dsc +++ b/freefilesync/debian/freefilesync+devuan.dsc @@ -6,7 +6,7 @@ Version: 11.20-1+devuan Maintainer: B. Stack Homepage: https://freefilesync.org/ Standards-Version: 4.1.4 -Build-Depends: debhelper (>= 12~), g++-10, imagemagick, libbrotli-dev, libcurl4-openssl-dev (>= 7.82.0), libglibmm-2.4-dev, libssh2-1-dev, libssl-dev, wx3.0-headers, unzip, libgtk-3-dev, libwxgtk3.0-gtk3-dev, libfontconfig-dev +Build-Depends: debhelper (>= 12~), g++-11, imagemagick, libbrotli-dev, libcurl4-openssl-dev (>= 7.82.0), libglibmm-2.4-dev, libssh2-1-dev, libssl-dev, wx3.0-headers, unzip, libgtk-3-dev, libwxgtk3.0-gtk3-dev, libfontconfig-dev Package-List: freefilesync deb utils optional arch=any Files: diff --git a/freefilesync/debian/patches/revert_zenju_aggressive_upstreamisms.patch b/freefilesync/debian/patches/revert_zenju_aggressive_upstreamisms.patch index 570b244..fda8cc2 100644 --- a/freefilesync/debian/patches/revert_zenju_aggressive_upstreamisms.patch +++ b/freefilesync/debian/patches/revert_zenju_aggressive_upstreamisms.patch @@ -327,61 +327,6 @@ 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}); -Message: Revert __cpp_lib_atomic_wait which is not yet implemented in g++-10 or clang++-11 on Debian -How does Zenju compile this?! -Date: 2021-05-10 ---- 11.9-0/zen/globals.h 2021-05-10 08:10:14.755776667 -0400 -+++ 11.9-1/zen/globals.h 2021-05-10 09:17:25.122241641 -0400 -@@ -223,7 +223,11 @@ - void PodSpinMutex::lock() - { - while (!tryLock()) -+#ifdef __cpp_lib_atomic_wait - flag_.wait(true, std::memory_order_relaxed); -+#else -+ ; -+#endif - } - - -@@ -231,7 +235,9 @@ - void PodSpinMutex::unlock() - { - flag_.clear(std::memory_order_release); -+#ifdef __cpp_lib_atomic_wait - flag_.notify_one(); -+#endif - } - - -Message: This one should work; it's a c++17 specification, but it doesn't work. -Date: 2021-05-10 -diff -aur 11.10-0/zen/legacy_compiler.cpp 11.10-1/zen/legacy_compiler.cpp ---- 11.10-0/zen/legacy_compiler.cpp 2021-05-10 08:10:14.755776667 -0400 -+++ 11.10-1/zen/legacy_compiler.cpp 2021-05-10 10:06:01.998079701 -0400 -@@ -14,15 +14,17 @@ - - double zen::fromChars(const char* first, const char* last) - { -- double num = 0; -- [[maybe_unused]] const std::from_chars_result rv = std::from_chars(first, last, num); -- return num; -+ return std::strtod(std::string(first, last).c_str(), nullptr); - } - - - const char* zen::toChars(char* first, char* last, double num) - { -- const std::to_chars_result rv = std::to_chars(first, last, num); -- return rv.ec == std::errc{} ? rv.ptr : first; -+ const size_t bufSize = last - first; -+ const int charsWritten = std::snprintf(first, bufSize, "%g", num); -+ //C99: returns number of chars written if successful, < 0 or >= bufferSize on failure -+ -+ return 0 <= charsWritten && charsWritten < static_cast(bufSize) ? -+ first + charsWritten : first; - } - --- 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 @@ -882,7 +885,6 @@ -- cgit From 550214eab0b16ca006808ec3154bbba7f694343d Mon Sep 17 00:00:00 2001 From: "B. Stack" Date: Mon, 18 Apr 2022 15:32:10 -0400 Subject: ffs 11.20 rc1 for fedora --- freefilesync/README.md | 9 +- freefilesync/ffs_fedora.patch | 10 +- freefilesync/ffs_no_check_updates.patch | 16 ++-- freefilesync/ffs_no_wx311.patch | 12 ++- freefilesync/freefilesync.spec | 6 +- .../revert_zenju_aggressive_upstreamisms.patch | 103 ++++++++------------- 6 files changed, 71 insertions(+), 85 deletions(-) diff --git a/freefilesync/README.md b/freefilesync/README.md index f70dac3..bfa5384 100644 --- a/freefilesync/README.md +++ b/freefilesync/README.md @@ -22,14 +22,15 @@ Distro | FreeFileSync version | gtk version -------------- | -------------------- | ---------------- CentOS 7 | 10.24 | 2 CentOS 8 | 10.24 | 2 -Fedora 32 | 11.4 | 2 -Fedora 33 | 11.4 | 2 -Fedora Rawhide | 11.4 | 2 -Devuan Ceres | 11.4 | 3 +Fedora 35 | 11.20 | 2 +Fedora 36 | 11.20 | 2 +Fedora Rawhide | 11.20 | 2 +Devuan Ceres | 11.20 | 3 ## Additional info Upstream officially still [uses gtk2](https://freefilesync.org/forum/viewtopic.php?t=7660&p=26079#p26063) but the code supports gtk3 starting around version 10.25. With version 10.25, only stdc++=20 is supported, so el7 cannot go any higher: I was unable to find g++-10 for el7. On the rpm platforms, where gtk2 is still supported as a primary environment, I compile FreeFileSync against gtk2. On Devuan where gtk2 has been obsoleted, I compile against gtk3. +As of version 11.20 (2022-04), you need g++-11 for `-std=c++2b`. ## CentOS compilation of freefilesync diff --git a/freefilesync/ffs_fedora.patch b/freefilesync/ffs_fedora.patch index 83beb4a..7f5c4d1 100644 --- a/freefilesync/ffs_fedora.patch +++ b/freefilesync/ffs_fedora.patch @@ -1,4 +1,4 @@ -Last modified date: 2020-12-08 +Last modified date: 2022-04-18 History: ffs_fedora 2020-07-22 now uses gtk3 diff -Naur 10.13-0/FreeFileSync/Source/ffs_paths.cpp 10.13-1/FreeFileSync/Source/ffs_paths.cpp --- 10.13-0/FreeFileSync/Source/ffs_paths.cpp 2019-06-14 20:23:07.615661499 -0400 @@ -20,8 +20,8 @@ diff -Naur -x '*.rej' -x '*.orig' -x '*.git*' 11.4-0/FreeFileSync/Source/Makefil -exeName = FreeFileSync_$(shell arch) +exeName = FreeFileSync --cxxFlags = -std=c++2a -pipe -DWXINTL_NO_GETTEXT_MACRO -I../.. -I../../zenXml -include "zen/i18n.h" -include "zen/warn_static.h" \ -+cxxFlags += -std=c++2a -pipe -DWXINTL_NO_GETTEXT_MACRO -I../.. -I../../zenXml -include "zen/i18n.h" -include "zen/warn_static.h" \ +-cxxFlags = -std=c++2b -pipe -DWXINTL_NO_GETTEXT_MACRO -I../.. -I../../zenXml -include "zen/i18n.h" -include "zen/warn_static.h" \ ++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 @@ -50,8 +50,8 @@ diff -Naur -x '*.rej' -x '*.orig' -x '*.git*' 11.4-0/FreeFileSync/Source/RealTim -exeName = RealTimeSync_$(shell arch) +exeName = RealTimeSync --cxxFlags = -std=c++2a -pipe -DWXINTL_NO_GETTEXT_MACRO -I../../.. -I../../../zenXml -include "zen/i18n.h" -include "zen/warn_static.h" \ -+cxxFlags += -std=c++2a -pipe -DWXINTL_NO_GETTEXT_MACRO -I../../.. -I../../../zenXml -include "zen/i18n.h" -include "zen/warn_static.h" \ +-cxxFlags = -std=c++2b -pipe -DWXINTL_NO_GETTEXT_MACRO -I../../.. -I../../../zenXml -include "zen/i18n.h" -include "zen/warn_static.h" \ ++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 diff --git a/freefilesync/ffs_no_check_updates.patch b/freefilesync/ffs_no_check_updates.patch index 9cfc123..bdc2ebd 100644 --- a/freefilesync/ffs_no_check_updates.patch +++ b/freefilesync/ffs_no_check_updates.patch @@ -1,5 +1,5 @@ -Version: 11.18 -Date: 2022-03-08 +Version: 11.20 +Date: 2022-04-18 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. diff -aur 11.18-0/FreeFileSync/Source/ui/gui_generated.cpp 11.18-1/FreeFileSync/Source/ui/gui_generated.cpp @@ -54,14 +54,14 @@ diff -aur 11.18-0/FreeFileSync/Source/ui/gui_generated.h 11.18-1/FreeFileSync/So diff -aur 11.10-1/FreeFileSync/Source/ui/main_dlg.cpp 11.10-2/FreeFileSync/Source/ui/main_dlg.cpp --- 11.16-0/FreeFileSync/Source/ui/main_dlg.cpp 2022-01-04 08:52:19.811432573 -0500 +++ 11.16-1/FreeFileSync/Source/ui/main_dlg.cpp 2022-01-04 08:57:14.506728896 -0500 -@@ -735,7 +735,6 @@ +@@ -744,7 +744,6 @@ - m_menuItemHelp ->SetBitmap(loadImage("help_sicon")); - m_menuItemAbout->SetBitmap(loadImage("about_sicon")); -- m_menuItemCheckVersionNow->SetBitmap(loadImage("update_check_sicon")); + setImage(*m_menuItemHelp, loadImage("help_sicon")); + setImage(*m_menuItemAbout, loadImage("about_sicon")); +- setImage(*m_menuItemCheckVersionNow, loadImage("update_check_sicon")); - auto fixMenuIcons = [](wxMenu& menu) //GTK: image must be set *before* adding wxMenuItem to menu or it won't show - { + fixMenuIcons(*m_menuFile); + fixMenuIcons(*m_menuActions); @@ -854,9 +853,6 @@ //mainly to update row label sizes... updateGui(); diff --git a/freefilesync/ffs_no_wx311.patch b/freefilesync/ffs_no_wx311.patch index 8e17036..1671e4c 100644 --- a/freefilesync/ffs_no_wx311.patch +++ b/freefilesync/ffs_no_wx311.patch @@ -1,4 +1,7 @@ -2019-08-15 just compile. +Last modified: 2022-04-18 +Version: 11.20 +Author: bgstack15 +Message: Just compile by stepping around wxWidgets 3.1.1 calls diff -Naur -x '*.orig' -x '*.rej' -x .git 11.4-0/FreeFileSync/Source/ui/small_dlgs.cpp 11.4-1/FreeFileSync/Source/ui/small_dlgs.cpp --- 11.4-0/FreeFileSync/Source/ui/small_dlgs.cpp 2020-12-08 08:15:29.432156507 -0500 +++ 11.4-1/FreeFileSync/Source/ui/small_dlgs.cpp 2020-12-08 18:22:19.929543356 -0500 @@ -12,16 +15,15 @@ diff -Naur -x '*.orig' -x '*.rej' -x .git 11.4-0/FreeFileSync/Source/ui/small_dl //set default values for Google Drive: use first item of m_listBoxGdriveUsers if (!gdriveAccounts.empty() && !acceptsItemPathPhraseGdrive(folderPathPhrase)) -@@ -1681,7 +1682,7 @@ +@@ -1689,7 +1690,6 @@ //setMainInstructionFont(*m_staticTextMain); - m_bitmapActivation->SetBitmap(loadImage("internet")); + setImage(*m_bitmapActivation, loadImage("internet")); - m_textCtrlOfflineActivationKey->ForceUpper(); -+ //m_textCtrlOfflineActivationKey->ForceUpper(); setTextWithUrls(*m_richTextLastError, lastErrorMsg); setTextWithUrls(*m_richTextManualActivationUrl, manualActivationUrl); -iff -Naur -x '*.orig' -x '*.rej' 10.3-0/wx+/grid.cpp 10.3-2/wx+/grid.cpp +diff -Naur -x '*.orig' -x '*.rej' 10.3-0/wx+/grid.cpp 10.3-2/wx+/grid.cpp --- 10.3-0/wx+/grid.cpp 2018-08-07 05:03:34.000000000 -0400 +++ 10.3-2/wx+/grid.cpp 2018-08-08 19:24:56.849445102 -0400 @@ -1176,7 +1176,9 @@ diff --git a/freefilesync/freefilesync.spec b/freefilesync/freefilesync.spec index 63cd2e6..3636de0 100644 --- a/freefilesync/freefilesync.spec +++ b/freefilesync/freefilesync.spec @@ -19,7 +19,7 @@ %define libssh2_name libssh2-%{name} %endif Name: freefilesync -Version: 11.18 +Version: 11.20 Release: 1%{?dist} Summary: A file synchronization utility @@ -217,6 +217,10 @@ update-mime-database -n ${_datadir}/mime 1>/dev/null 2>&1 & : %ghost %config %attr(666, -, -) %{_datadir}/%{name}/GlobalSettings.xml %changelog +* Mon Apr 18 2022 B. Stack - 11.20-1 +- version bump +- remove a few patches from r_z_a_u for when gcc < 11 + * Wed Mar 09 2022 B. Stack - 11.18-1 - version bump diff --git a/freefilesync/revert_zenju_aggressive_upstreamisms.patch b/freefilesync/revert_zenju_aggressive_upstreamisms.patch index de8d5e9..fda8cc2 100644 --- a/freefilesync/revert_zenju_aggressive_upstreamisms.patch +++ b/freefilesync/revert_zenju_aggressive_upstreamisms.patch @@ -1,6 +1,7 @@ Message: Some of these can be traced back to version 10.23 which was the last to not use -Date: 2021-05-10 -Version: 11.10 +Date: 2022-04-18 +Version: 11.20 +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 @@ -154,17 +155,40 @@ diff -x '*.orig' -x '*.rej' -aur 11.1-1/wx+/bitmap_button.h 11.1-2/wx+/bitmap_bu { SetLabel(label); diff -aur -x '*.git*' -x '.*.swp' -x '*.orig' -x '*.rej' 11.6-0/wx+/dc.h 11.6-1/wx+/dc.h ---- 11.9-0/wx+/dc.h 2021-04-05 10:57:36.518697734 -0400 -+++ 11.9-1/wx+/dc.h 2021-04-05 11:11:21.809650868 -0400 -@@ -69,9 +69,6 @@ +--- 11.20-0/wx+/dc.h 2022-04-18 09:49:31.921386600 -0400 ++++ 11.20-1/wx+/dc.h 2022-04-18 10:12:04.667907393 -0400 +@@ -12,7 +12,7 @@ + #include + #include //for macro: wxALWAYS_NATIVE_DOUBLE_BUFFER + #include +-#include ++//#include + #include + + +@@ -92,9 +92,6 @@ inline int getDPI() { --#ifndef wxHAVE_DPI_INDEPENDENT_PIXELS --#error why is wxHAVE_DPI_INDEPENDENT_PIXELS not defined? +-#ifndef wxHAS_DPI_INDEPENDENT_PIXELS +-#error why is wxHAS_DPI_INDEPENDENT_PIXELS not defined? -#endif //GTK2 doesn't properly support high DPI: https://freefilesync.org/forum/viewtopic.php?t=6114 //=> requires general fix at wxWidgets-level + +@@ -119,11 +116,11 @@ + + + inline +-wxBitmapBundle toBitmapBundle(const wxImage& img /*expected to be DPI-scaled!*/) ++wxBitmap toBitmapBundle(const wxImage& img /*expected to be DPI-scaled!*/) + { + //return wxBitmap(img, -1 /*depth*/, static_cast(getDPI()) / defaultDpi); not (yet) implemented + wxBitmap bmpScaled(img); +- bmpScaled.SetScaleFactor(static_cast(getDPI()) / defaultDpi); ++ //bmpScaled.SetScaleFactor(static_cast(getDPI()) / defaultDpi); + return bmpScaled; + } 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 @@ -303,58 +327,13 @@ 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}); -Message: Revert __cpp_lib_atomic_wait which is not yet implemented in g++-10 or clang++-11 on Debian -How does Zenju compile this?! -Date: 2021-05-10 ---- 11.9-0/zen/globals.h 2021-05-10 08:10:14.755776667 -0400 -+++ 11.9-1/zen/globals.h 2021-05-10 09:17:25.122241641 -0400 -@@ -223,7 +223,11 @@ - void PodSpinMutex::lock() - { - while (!tryLock()) -+#ifdef __cpp_lib_atomic_wait - flag_.wait(true, std::memory_order_relaxed); -+#else -+ ; -+#endif - } - - -@@ -231,7 +235,9 @@ - void PodSpinMutex::unlock() - { - flag_.clear(std::memory_order_release); -+#ifdef __cpp_lib_atomic_wait - flag_.notify_one(); -+#endif - } - - -Message: This one should work; it's a c++17 specification, but it doesn't work. -Date: 2021-05-10 -diff -aur 11.10-0/zen/legacy_compiler.cpp 11.10-1/zen/legacy_compiler.cpp ---- 11.10-0/zen/legacy_compiler.cpp 2021-05-10 08:10:14.755776667 -0400 -+++ 11.10-1/zen/legacy_compiler.cpp 2021-05-10 10:06:01.998079701 -0400 -@@ -14,15 +14,17 @@ - - double zen::fromChars(const char* first, const char* last) - { -- double num = 0; -- [[maybe_unused]] const std::from_chars_result rv = std::from_chars(first, last, num); -- return num; -+ return std::strtod(std::string(first, last).c_str(), nullptr); - } - - - const char* zen::toChars(char* first, char* last, double num) - { -- const std::to_chars_result rv = std::to_chars(first, last, num); -- return rv.ec == std::errc{} ? rv.ptr : first; -+ const size_t bufSize = last - first; -+ const int charsWritten = std::snprintf(first, bufSize, "%g", num); -+ //C99: returns number of chars written if successful, < 0 or >= bufferSize on failure -+ -+ return 0 <= charsWritten && charsWritten < static_cast(bufSize) ? -+ first + charsWritten : first; - } - +--- 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 +@@ -882,7 +885,6 @@ + wxMemoryDC dc(bmpSquare); + drawInsetRectangle(dc, wxRect(bmpSquare.GetSize()), fastFromDIP(1), borderCol, fillCol); + } +- bmpSquare.SetScaleFactor(static_cast(getDPI()) / defaultDpi); + return bmpSquare; + }; + pnl_.m_bitmapGraphKeyBytes->SetBitmap(generateSquareBitmap(getColorBytes(), getColorBytesRim())); -- cgit