From 5135aabfb967d450c62b2c9d8d231417f237033d Mon Sep 17 00:00:00 2001 From: B Stack Date: Thu, 21 Nov 2019 10:13:10 -0500 Subject: freefilesync 10.18 dpkg rc1 Had to switch to gtk3 because libwxgtk3.0-dev was dropped in Debian --- freefilesync/debian/README.Debian | 11 +++ freefilesync/debian/changelog | 21 +++++ freefilesync/debian/control | 2 +- freefilesync/debian/patches/ffs_devuan.patch | 89 ++++++++++++++-------- .../debian/patches/ffs_no_check_updates.patch | 6 +- freefilesync/debian/patches/ffs_no_wx311.patch | 21 +++-- 6 files changed, 103 insertions(+), 47 deletions(-) diff --git a/freefilesync/debian/README.Debian b/freefilesync/debian/README.Debian index b370841..2dd582d 100644 --- a/freefilesync/debian/README.Debian +++ b/freefilesync/debian/README.Debian @@ -1,8 +1,19 @@ +freefilesync (10.18-1+devuan) + + * Switch to gtk3 so OBS can build it + - Debian dropped libwxgtk3.0-dev in favor of libwxgtk3.0-gtk3-dev, but gtk3 has some perceived performance issues back from FreeFileSync 8.7 days. + - https://dev1galaxy.org/viewtopic.php?pid=18625#p18625 + - https://freefilesync.org/forum/viewtopic.php?t=4918&p=16608&hilit=proxy_pixbuf_destroy#p16608 + + -- B Stack Thu, 21 Oct 2019 08:18:00 -0500 + freefilesync (10.17-1+devuan) * Disable libcurl version check, to match AUR release. * Minor cleanup of Makefile that upstream failed to notice when he refactored + -- B Stack Tue, 22 Oct 2019 10:06:00 -0400 + freefilesync (10.16-1+devuan) * Revert some sftp and libssh2 newer-version functionality. Upstream apparently patches their upstream libs. diff --git a/freefilesync/debian/changelog b/freefilesync/debian/changelog index 524371a..a271815 100644 --- a/freefilesync/debian/changelog +++ b/freefilesync/debian/changelog @@ -1,3 +1,22 @@ +freefilesync (10.18-1+devuan) obs; urgency=low + + * Save/load database files in parallel + * Show item count for each view filter category + * Group config history items via background colors + * Allow grid sort by category and sync action + * Reduced file accesses for faster start up + * Buffer redundant database loads + * Fix ibus initialization hang on Ubuntu 19.10 + * Defer showing progress panel for short-lived tasks + * Calculate stable scrollbar dimensions on GTK2 + * Log mod time errors even when sync is cancelled + * Show progress and errors when updating sync directions + * Detect MLSD support despite invalid FTP FEAT response + * Improved GUI responsiveness during config load + * Added Vietnamese translation + + -- B Stack Thu, 21 Nov 2019 07:53:41 -0500 + freefilesync (10.17-1+devuan) obs; urgency=low * Support PuTTY private key files for SFTP login @@ -11,6 +30,8 @@ freefilesync (10.17-1+devuan) obs; urgency=low * Fixed startup crash caused by corrupted HDD properties * Allow SFTP access via Ed25519 key in PKIX format + -- B Stack Tue, 22 Oct 2019 10:04:13 -0400 + freefilesync (10.16-1+devuan) obs; urgency=low * Redesigned progress indicator graphs diff --git a/freefilesync/debian/control b/freefilesync/debian/control index a60410c..ff05fc3 100644 --- a/freefilesync/debian/control +++ b/freefilesync/debian/control @@ -9,7 +9,7 @@ Build-Depends: debhelper (>=11~), libgtk2.0-dev, libssh2-1-dev, libssl-dev, - libwxgtk3.0-dev, + libwxgtk3.0-gtk3-dev, wx3.0-headers, unzip Standards-Version: 4.1.4 diff --git a/freefilesync/debian/patches/ffs_devuan.patch b/freefilesync/debian/patches/ffs_devuan.patch index fc16f54..705d84d 100644 --- a/freefilesync/debian/patches/ffs_devuan.patch +++ b/freefilesync/debian/patches/ffs_devuan.patch @@ -1,12 +1,12 @@ -Author: Simon Brulhart -Source: AUR -Date: 2019-10-21 -Message: Do not try to compile inexistant file -Files affected: FreeFileSync/Source/Makefile -diff -Naur 10.13-0/FreeFileSync/Source/base/ffs_paths.cpp 10.13-1/FreeFileSync/Source/base/ffs_paths.cpp +Author: B Stack +Source: Original research +Date: 2019-11-21 +Message: Main patch to compile on Devuan. +This reintroduces the gtk-3 usage, because Debian/Devuan stopped packaging libwxgtk3.0-dev (which used gtk2) and only does libwxgtk3.0-gtk3-dev. However, by reintroducing the gtk3, it brings back the old gtk3 instability from my previous packaging effort: https://freefilesync.org/forum/viewtopic.php?t=4918. /mnt/public/packages/old/freefilesync/freefilesync-9.7-1.master.tgz. Upstream never replied, but did note in the source that gtk3 is inherently unstable. +diff -x '*.swp' -x '.git*' -x '*.orig' -x '*.rej' -Naur 10.18-0/FreeFileSync/Source/base/ffs_paths.cpp 10.18-1/FreeFileSync/Source/base/ffs_paths.cpp --- 10.13-0/FreeFileSync/Source/base/ffs_paths.cpp 2019-06-14 20:23:07.615661499 -0400 -+++ 10.13-1/FreeFileSync/Source/base/ffs_paths.cpp 2019-06-14 20:36:28.178274292 -0400 -@@ -55,7 +55,8 @@ ++++ 10.18-1/FreeFileSync/Source/base/ffs_paths.cpp 2019-11-21 09:41:42.287474472 -0500 +@@ -64,7 +64,8 @@ Zstring fff::getResourceDirPf() { @@ -16,9 +16,9 @@ diff -Naur 10.13-0/FreeFileSync/Source/base/ffs_paths.cpp 10.13-1/FreeFileSync/S } -diff -Naur -x '*.orig' -x '*.rej' 10.11-0/FreeFileSync/Source/Makefile 10.11-1/FreeFileSync/Source/Makefile +diff -x '*.swp' -x '.git*' -x '*.orig' -x '*.rej' -Naur 10.18-0/FreeFileSync/Source/Makefile 10.18-1/FreeFileSync/Source/Makefile --- 10.11-0/FreeFileSync/Source/Makefile 2019-04-12 08:05:57.000000000 -0400 -+++ 10.11-1/FreeFileSync/Source/Makefile 2019-04-12 14:00:16.774552362 -0400 ++++ 10.18-1/FreeFileSync/Source/Makefile 2019-11-21 09:42:57.408243242 -0500 @@ -1,10 +1,10 @@ -EXENAME = FreeFileSync_$(shell arch) +EXENAME = FreeFileSync @@ -32,26 +32,23 @@ diff -Naur -x '*.orig' -x '*.rej' 10.11-0/FreeFileSync/Source/Makefile 10.11-1/F CXXFLAGS += `pkg-config --cflags openssl` -@@ -17,6 +17,7 @@ CXXFLAGS += `pkg-config --cflags libssh2` +@@ -16,9 +16,10 @@ + CXXFLAGS += `pkg-config --cflags libssh2` LINKFLAGS += `pkg-config --libs libssh2` - - CXXFLAGS += `pkg-config --cflags gtk+-2.0` -+LINKFLAGS += `pkg-config --libs gtk+-2.0` + +-CXXFLAGS += `pkg-config --cflags gtk+-2.0` ++CXXFLAGS += `pkg-config --cflags gtk+-3.0` ++LINKFLAGS += `pkg-config --libs gtk+-3.0` #treat as system headers so that warnings are hidden: - CXXFLAGS += -isystem/usr/include/gtk-2.0 - -@@ -56,7 +56,6 @@ - CPP_FILES+=afs/init_curl_libssh2.cpp - CPP_FILES+=afs/native.cpp - CPP_FILES+=afs/sftp.cpp --CPP_FILES+=afs/libssh2/init_libssh2.cpp - CPP_FILES+=ui/batch_config.cpp - CPP_FILES+=ui/abstract_folder_picker.cpp - CPP_FILES+=ui/batch_status_handler.cpp -diff -Naur -x '*.orig' -x '*.rej' 10.11-0/FreeFileSync/Source/RealTimeSync/Makefile 10.11-1/FreeFileSync/Source/RealTimeSync/Makefile +-CXXFLAGS += -isystem/usr/include/gtk-2.0 ++CXXFLAGS += -isystem/usr/include/gtk-3.0 + + #support for SELinux (optional) + SELINUX_EXISTING=$(shell pkg-config --exists libselinux && echo YES) +diff -x '*.swp' -x '.git*' -x '*.orig' -x '*.rej' -Naur 10.18-0/FreeFileSync/Source/RealTimeSync/Makefile 10.18-1/FreeFileSync/Source/RealTimeSync/Makefile --- 10.11-0/FreeFileSync/Source/RealTimeSync/Makefile 2019-04-12 08:05:57.000000000 -0400 -+++ 10.15-1/FreeFileSync/Source/RealTimeSync/Makefile 2019-08-15 13:59:53.934551753 -0400 -@@ -1,13 +1,14 @@ ++++ 10.18-1/FreeFileSync/Source/RealTimeSync/Makefile 2019-11-21 09:46:11.378240094 -0500 +@@ -1,15 +1,16 @@ -EXENAME = RealTimeSync_$(shell arch) +EXENAME = RealTimeSync @@ -63,15 +60,19 @@ diff -Naur -x '*.orig' -x '*.rej' 10.11-0/FreeFileSync/Source/RealTimeSync/Makef +LINKFLAGS = -s -no-pie `wx-config --libs std, aui --debug=no` -lz -pthread #Gtk - support "no button border" - CXXFLAGS += `pkg-config --cflags gtk+-2.0` -+LINKFLAGS += `pkg-config --libs gtk+-2.0` +-CXXFLAGS += `pkg-config --cflags gtk+-2.0` ++CXXFLAGS += `pkg-config --cflags gtk+-3.0` ++LINKFLAGS += `pkg-config --libs gtk+-3.0` #treat as system headers so that warnings are hidden: - CXXFLAGS += -isystem/usr/include/gtk-2.0 +-CXXFLAGS += -isystem/usr/include/gtk-2.0 ++CXXFLAGS += -isystem/usr/include/gtk-3.0 -diff -Naur -x '*.orig' -x '*.rej' 10.11-0/FreeFileSync/Source/ui/small_dlgs.cpp 10.11-1/FreeFileSync/Source/ui/small_dlgs.cpp + CPP_FILES= + CPP_FILES+=application.cpp +diff -x '*.swp' -x '.git*' -x '*.orig' -x '*.rej' -Naur 10.18-0/FreeFileSync/Source/ui/small_dlgs.cpp 10.18-1/FreeFileSync/Source/ui/small_dlgs.cpp --- 10.11-0/FreeFileSync/Source/ui/small_dlgs.cpp 2019-04-12 08:05:57.000000000 -0400 +++ 10.11-1/FreeFileSync/Source/ui/small_dlgs.cpp 2019-04-12 13:58:55.050550183 -0400 -@@ -115,6 +115,8 @@ +@@ -117,6 +117,8 @@ L" x64"; #endif @@ -80,3 +81,27 @@ diff -Naur -x '*.orig' -x '*.rej' 10.11-0/FreeFileSync/Source/ui/small_dlgs.cpp GetSizer()->SetSizeHints(this); //~=Fit() + SetMinSize() +diff -x '*.swp' -x '.git*' -x '*.orig' -x '*.rej' -Naur 10.18-0/wx+/dc.h 10.18-1/wx+/dc.h +--- 10.18-0/wx+/dc.h 2019-11-21 08:24:23.967769384 -0500 ++++ 10.18-1/wx+/dc.h 2019-11-21 09:42:12.779786504 -0500 +@@ -54,7 +54,7 @@ + #ifdef wxHAVE_DPI_INDEPENDENT_PIXELS //pulled from wx/window.h: https://github.com/wxWidgets/wxWidgets/blob/master/include/wx/window.h#L2029 + return d; //e.g. macOS, GTK3 + #else //https://github.com/wxWidgets/wxWidgets/blob/master/src/common/wincmn.cpp#L2865 +- static_assert(GTK_MAJOR_VERSION == 2); ++ static_assert(GTK_MAJOR_VERSION == 3); + //GTK2 doesn't properly support high DPI: https://freefilesync.org/forum/viewtopic.php?t=6114 + //=> requires general fix at wxWidgets-level + assert(wxTheApp); //only call after wxWidgets was initalized! +diff -x '*.swp' -x '.git*' -x '*.orig' -x '*.rej' -Naur 10.18-0/FreeFileSync/Source/base/icon_loader.cpp 10.18-1/FreeFileSync/Source/base/icon_loader.cpp +--- 10.18-0/FreeFileSync/Source/base/icon_loader.cpp 2019-11-21 08:24:23.955769262 -0500 ++++ 10.18-1/FreeFileSync/Source/base/icon_loader.cpp 2019-11-21 09:42:15.439813730 -0500 +@@ -18,7 +18,7 @@ + + namespace + { +-static_assert(GTK_MAJOR_VERSION == 2, "FreeFileSync does NOT (currently) support GTK3! The GTK calls below will lead to crashes due to not being thread-safe on GTK3."); ++static_assert(GTK_MAJOR_VERSION == 3, "FreeFileSync does NOT (currently) support GTK3! The GTK calls below will lead to crashes due to not being thread-safe on GTK3."); + //gdk_threads_enter(); + ZEN_ON_SCOPE_EXIT(::gdk_threads_leave); is NOT enough; e.g. GTK3 + openSuse still crashes with: + // Gtk:ERROR:gtkicontheme.c:4026:proxy_pixbuf_destroy: assertion failed: (icon_info->proxy_pixbuf != NULL) + //GTK icon theme internals: https://github.com/GNOME/gtk/blob/master/gtk/gtkicontheme.c diff --git a/freefilesync/debian/patches/ffs_no_check_updates.patch b/freefilesync/debian/patches/ffs_no_check_updates.patch index 4e56d19..eaff5c4 100644 --- a/freefilesync/debian/patches/ffs_no_check_updates.patch +++ b/freefilesync/debian/patches/ffs_no_check_updates.patch @@ -37,7 +37,7 @@ diff --exclude '*.orig' -Naur 10.14-0/FreeFileSync/Source/ui/main_dlg.cpp 10.14- diff --exclude '*.orig' -Naur 10.14-0/FreeFileSync/Source/ui/version_check.cpp 10.14-1/FreeFileSync/Source/ui/version_check.cpp --- 10.9-0/FreeFileSync/Source/ui/version_check.cpp 2019-02-10 22:01:42.126160041 -0500 -+++ 10.14-1/FreeFileSync/Source/ui/version_check.cpp 2019-07-16 11:45:36.113848111 -0400 ++++ 10.18-1/FreeFileSync/Source/ui/version_check.cpp 2019-11-20 09:19:50.936975067 -0500 @@ -69,6 +69,8 @@ bool fff::shouldRunAutomaticUpdateCheck(time_t lastUpdateCheck) @@ -57,8 +57,8 @@ diff --exclude '*.orig' -Naur 10.14-0/FreeFileSync/Source/ui/version_check.cpp 1 updateDetailsMsg = utfTo(buf); } catch (const zen::SysError& e) { throw FileError(_("Failed to retrieve update information."), e.toString()); } -@@ -187,8 +188,7 @@ - //access is thread-safe on Windows (WinInet), but not on Linux/OS X (wxWidgets) +@@ -182,8 +183,7 @@ + std::string getOnlineVersion(const std::vector>& postParams) //throw SysError { - const std::string buffer = sendHttpPost(Zstr("https://api.freefilesync.org/latest_version"), postParams, diff --git a/freefilesync/debian/patches/ffs_no_wx311.patch b/freefilesync/debian/patches/ffs_no_wx311.patch index e6069d4..92b5372 100644 --- a/freefilesync/debian/patches/ffs_no_wx311.patch +++ b/freefilesync/debian/patches/ffs_no_wx311.patch @@ -28,19 +28,18 @@ diff -Naur -x '*.orig' -x '*.rej' 10.3-0/wx+/grid.cpp 10.3-2/wx+/grid.cpp else diff -Naur 10.13-0/FreeFileSync/Source/base/ffs_paths.cpp 10.13-1/FreeFileSync/Source/base/ffs_paths.cpp --- 10.13-0/FreeFileSync/Source/base/ffs_paths.cpp 2019-06-14 20:23:07.615661499 -0400 -+++ 10.13-1/FreeFileSync/Source/base/ffs_paths.cpp 2019-06-14 20:26:56.794422701 -0400 -@@ -75,8 +75,9 @@ - Zstring cfgFolderPath; - //OS standard path (XDG layout): ~/.config/FreeFileSync - //wxBug: wxStandardPaths::GetUserDataDir() does not honor FileLayout_XDG flag -- wxStandardPaths::Get().SetFileLayout(wxStandardPaths::FileLayout_XDG); -- cfgFolderPath = appendSeparator(utfTo(wxStandardPaths::Get().GetUserConfigDir())) + "FreeFileSync"; -+ // Fedora does not have wxGTK 3.1.1 which is the dev branch. -+ //wxStandardPaths::Get().SetFileLayout(wxStandardPaths::FileLayout_XDG); -+ cfgFolderPath = appendSeparator(utfTo(wxStandardPaths::Get().GetUserConfigDir())) + appendSeparator(utfTo(".config")) + "FreeFileSync"; ++++ 10.18-1/FreeFileSync/Source/base/ffs_paths.cpp 2019-11-20 08:55:38.553446634 -0500 +@@ -80,8 +80,8 @@ + //OS standard path (XDG layout): ~/.config/FreeFileSync + //wxBug: wxStandardPaths::GetUserDataDir() does not honor FileLayout_XDG flag +- wxStandardPaths::Get().SetFileLayout(wxStandardPaths::FileLayout_XDG); +- const Zstring cfgFolderPath = appendSeparator(utfTo(wxStandardPaths::Get().GetUserConfigDir())) + "FreeFileSync"; ++ // Many distros do not have wxGTK 3.1.1 which is the dev branch. ++ const Zstring cfgFolderPath = appendSeparator(utfTo(wxStandardPaths::Get().GetUserConfigDir())) + appendSeparator(utfTo(".config")) + "FreeFileSync"; - std::call_once(onceFlagCreateCfgPath, [&] + try //create the config folder if not existing + create "Logs" subfolder while we're at it + { diff --git a/FreeFileSync/Source/ui/command_box.cpp b/FreeFileSync/Source/ui/command_box.cpp index 6e769bb..ce6110b 100644 --- a/FreeFileSync/Source/ui/command_box.cpp -- cgit