From f365d93a81834c1c770ac280a9d54c4870ef3fd5 Mon Sep 17 00:00:00 2001 From: B Stack Date: Wed, 18 Mar 2020 11:23:50 -0400 Subject: WIP: freefilesync 10.21-2+devuan Unfortunately 10.21 does not compile with gtk3 (or wxwidgets-gtk3) so this will have to be a manual build only. --- freefilesync/debian/README.Debian | 21 ++++++++++++++ freefilesync/debian/changelog | 28 +++++++++++++++++++ freefilesync/debian/control | 12 ++++---- freefilesync/debian/freefilesync.lintian-overrides | 0 .../debian/patches/ffs_allow_parallel_ops.patch | 10 +++---- freefilesync/debian/patches/ffs_curl.patch | 32 ++++++++++------------ freefilesync/debian/patches/ffs_devuan.patch | 12 ++++---- freefilesync/debian/patches/ffs_libssh2.patch | 25 ++++------------- freefilesync/debian/patches/ffs_no_wx311.patch | 6 ++-- freefilesync/debian/patches/series | 2 +- freefilesync/debian/source/lintian-overrides | 2 ++ 11 files changed, 92 insertions(+), 58 deletions(-) create mode 100644 freefilesync/debian/freefilesync.lintian-overrides create mode 100644 freefilesync/debian/source/lintian-overrides diff --git a/freefilesync/debian/README.Debian b/freefilesync/debian/README.Debian index 2235ac6..588db96 100644 --- a/freefilesync/debian/README.Debian +++ b/freefilesync/debian/README.Debian @@ -1,3 +1,24 @@ +freefilesync (10.21-2+devuan) + + * gtk2 build for albion + * gtk3 build is broken: +``` +g++ -std=c++2a -pipe -DWXINTL_NO_GETTEXT_MACRO -I../.. -I../../zenXml -include "zen/i18n.h" -include "zen/warn_static.h" -Wall -Wfatal-errors -Wmissing-include-dirs -Wswitch-enum -Wcast-align -Wshadow -Wnon-virtual-dtor -O3 -DNDEBUG `wx-config --cxxflags --debug=no` -pthread `pkg-config --cflags openssl` `pkg-config --cflags libcurl` `pkg-config --cflags libssh2` `pkg-config --cflags gtk+-3.0` -isystem/usr/include/gtk-3.0 `pkg-config --cflags libselinux` -DHAVE_SELINUX -c ui/command_box.cpp -o /tmp/FreeFileSync_Make/ffs/src/ui/command_box.cpp.o +In file included from ui/command_box.cpp:7: +ui/command_box.h:22:1: error: expected class-name before '{' token + 22 | { + | ^ +compilation terminated due to -Wfatal-errors. +make: *** [Makefile:121: /tmp/FreeFileSync_Make/ffs/src/ui/command_box.cpp.o] Error 1 +``` + This is probably a wxWidgets 3.0-gtk3 or gtk3 issue. Upstream does make it sound like they will move to gtk3 eventually, and will come across this and try to fix it I'm sure. + + * how the gtk2 build fails if libgtk-3-dev is installed: +``` +/usr/include/gtk-3.0/gdk/gdktypes.h:143:39: error: conflicting declaration 'typedef struct _GdkWindow GdkWindow' + 143 | typedef struct _GdkWindow GdkWindow; +``` + freefilesync (10.20-1+devuan) * gtk3 build for obs diff --git a/freefilesync/debian/changelog b/freefilesync/debian/changelog index 5fa26cb..93fc6b7 100644 --- a/freefilesync/debian/changelog +++ b/freefilesync/debian/changelog @@ -1,3 +1,29 @@ +freefilesync (10.21-2+devuan) obs; urgency=medium + + * gtk2 build + + -- Ben Stack Wed, 18 Mar 2020 11:18:01 -0400 + +freefilesync (10.21-1+devuan) obs; urgency=medium + + * BROKEN! This package does not actually exist. See README.debian + * Preselect last-used email address + * Select log file format (HTML or plain text) + * Aggregate email notifications when hitting sending limits + * Show code literals in system error messages + * Limit conflict item count for log file warning message + * Show log icon error indicator even if error occured after sync + * Disable background drag & drop when showing modal dialog + * Hide dummy model, vendor names in log files + * Fixed ANSI encoding used for log file time formatting + * Reduced memory consumption for large number of log messages + * Correctly parse lock files despite corrupted trail data + * Show emoji instead of Unicode icon in email subject + * Fixed IWbemServices::ConnectServer error after sync + * Fixed aggregate email logs incomplete truncation + + -- Ben Stack Wed, 18 Mar 2020 09:18:01 -0400 + freefilesync (10.20-1+devuan) obs; urgency=low * Send email notifications after sync (Donation Edition) @@ -206,6 +232,8 @@ freefilesync (10.10-1devuan) manual; urgency=low * Added context information for cloud connection errors * Updated translation files + -- B Stack Fri, 15 Mar 2019 18:23:43 -0500 + freefilesync (10.9-1devuan) manual; urgency=low * Added FTP, SFTP, Google Drive support for Linux diff --git a/freefilesync/debian/control b/freefilesync/debian/control index 27edf04..748d6fc 100644 --- a/freefilesync/debian/control +++ b/freefilesync/debian/control @@ -4,18 +4,20 @@ Priority: optional Maintainer: B Stack Build-Depends: debhelper (>=12~), imagemagick, - libcurl4-openssl-dev, + libcurl4-openssl-dev (>=7.68.0), libssh2-1-dev, libssl-dev, wx3.0-headers, unzip, # gtk2 version, now possible only with local devuan-archive, and these must be removed for gtk3 build # install with sudo apt-get install libwxbase3.0-0v5=3.0.4+dfsg-14 libwxbase3.0-dev=3.0.4+dfsg-14 libwxgtk3.0-0v5=3.0.4+dfsg-14 libwxgtk3.0-dev=3.0.4+dfsg-14 wx3.0-headers=3.0.4+dfsg-14 libgtk2.0-dev -# libgtk2.0-dev, -# libwxgtk3.0-dev (=3.0.4+dfsg-14), + libgtk2.0-dev, + libwxgtk3.0-dev (=3.0.4+dfsg-14), # gtk3 version, and these must be removed for gtk2 build - libgtk-3-dev, - libwxgtk3.0-gtk3-dev, +# 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 +# which will remove libwxbase3.0-dev=3.0.4+dfsg-14 +# libgtk-3-dev, +# libwxgtk3.0-gtk3-dev, Standards-Version: 4.1.4 Homepage: https://freefilesync.org/ diff --git a/freefilesync/debian/freefilesync.lintian-overrides b/freefilesync/debian/freefilesync.lintian-overrides new file mode 100644 index 0000000..e69de29 diff --git a/freefilesync/debian/patches/ffs_allow_parallel_ops.patch b/freefilesync/debian/patches/ffs_allow_parallel_ops.patch index 3d8197f..15bf3ab 100644 --- a/freefilesync/debian/patches/ffs_allow_parallel_ops.patch +++ b/freefilesync/debian/patches/ffs_allow_parallel_ops.patch @@ -12,14 +12,14 @@ diff -x '*.orig' -x '*.swp' -x '*.rej' -Naur 10.9-0/FreeFileSync/Source/ui/folde if (showCloudSetupDialog(parent_, folderPathPhrase, parallelOps, get(parallelOpsDisabledReason)) != ReturnSmallDlg::BUTTON_OKAY) return; diff -Naur -x '*.orig' -x '*.rej' 10.9-0/FreeFileSync/Source/ui/sync_cfg.cpp 10.9-1/FreeFileSync/Source/ui/sync_cfg.cpp ---- 10.9-0/FreeFileSync/Source/ui/sync_cfg.cpp 2019-02-10 22:01:42.075159451 -0500 -+++ 10.20-1/FreeFileSync/Source/ui/sync_cfg.cpp 2019-02-11 21:25:11.685992654 -0500 -@@ -283,7 +283,7 @@ +--- 10.21-0/FreeFileSync/Source/ui/sync_cfg.cpp 2020-03-18 08:56:08.644066742 -0400 ++++ 10.21-1/FreeFileSync/Source/ui/sync_cfg.cpp 2020-03-18 09:13:30.459409986 -0400 +@@ -290,7 +290,7 @@ commandHistoryOut_(commandHistory), globalPairCfg_(globalPairCfg), localPairCfg_(localPairConfig), --enableExtraFeatures_(false), -+enableExtraFeatures_(true), +- enableExtraFeatures_(false), ++ enableExtraFeatures_(true), showMultipleCfgs_(showMultipleCfgs) { setStandardButtonLayout(*bSizerStdButtons, StdButtons().setAffirmative(m_buttonOkay).setCancel(m_buttonCancel)); diff --git a/freefilesync/debian/patches/ffs_curl.patch b/freefilesync/debian/patches/ffs_curl.patch index 2396648..549d9ac 100644 --- a/freefilesync/debian/patches/ffs_curl.patch +++ b/freefilesync/debian/patches/ffs_curl.patch @@ -6,33 +6,29 @@ remove assertion for libcurl version >1.67 (1.66 should be safe but slower) The upstream release uses the curl git master branch instead of release versions. The AUR guy thinks it's acceptable to use the older version of libcurl, that is actually already released. Version: FreeFileSync 10.17 diff -r -u 10.17-0/FreeFileSync/Source/afs/ftp.cpp 10.17-1/FreeFileSync/Source/afs/ftp.cpp ---- 10.17-0/FreeFileSync/Source/afs/ftp.cpp 2019-10-17 18:37:03.000000000 +0200 -+++ 10.17-1/FreeFileSync/Source/afs/ftp.cpp 2019-10-20 20:18:07.221692533 +0200 -@@ -632,7 +632,7 @@ +--- 10.21-0/FreeFileSync/Source/afs/ftp.cpp 2020-03-18 08:56:08.608066350 -0400 ++++ 10.21-1/FreeFileSync/Source/afs/ftp.cpp 2020-03-18 09:23:46.882110499 -0400 +@@ -635,7 +635,7 @@ curlRelPath += compFmt; } - static_assert(LIBCURL_VERSION_MAJOR > 7 || (LIBCURL_VERSION_MAJOR == 7 && LIBCURL_VERSION_MINOR >= 67)); -+ // static_assert(LIBCURL_VERSION_MAJOR > 7 || (LIBCURL_VERSION_MAJOR == 7 && LIBCURL_VERSION_MINOR >= 67)); ++ static_assert(LIBCURL_VERSION_MAJOR > 7 || (LIBCURL_VERSION_MAJOR == 7 && LIBCURL_VERSION_MINOR >= 68)); /* 1. CURLFTPMETHOD_NOCWD requires absolute paths to unconditionally skip CWDs: https://github.com/curl/curl/pull/4382 2. CURLFTPMETHOD_SINGLECWD requires absolute paths to skip one needless "CWD entry path": https://github.com/curl/curl/pull/4332 => https://curl.haxx.se/docs/faq.html#How_do_I_list_the_root_dir_of_an - -Message: Devuan does not have whichever version of libcurl that provides these error codes, probably 7.68.0. Devuan as of 2020-02-15 has libcurl4-openssl-dev=7.67.0-2 diff -Naur 10.20-0/libcurl/curl_wrap.h 10.20-1/libcurl/curl_wrap.h ---- 10.20-0/libcurl/curl_wrap.h 2020-02-15 14:50:08.356617565 -0500 -+++ 10.20-1/libcurl/curl_wrap.h 2020-02-15 14:51:55.961645573 -0500 -@@ -135,10 +135,10 @@ - ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_HTTP2_STREAM); - ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_RECURSIVE_API_CALL); +--- 10.21-0/libcurl/curl_wrap.h 2020-03-18 08:56:08.488065042 -0400 ++++ 10.21-1/libcurl/curl_wrap.h 2020-03-18 09:25:52.871480165 -0400 +@@ -137,9 +137,9 @@ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_AUTH_ERROR); -- ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_HTTP3); -- ZEN_CHECK_CASE_FOR_CONSTANT(CURL_LAST); -+ //ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_HTTP3); -+ //ZEN_CHECK_CASE_FOR_CONSTANT(CURL_LAST); + ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_HTTP3); + ZEN_CHECK_CASE_FOR_CONSTANT(CURL_LAST); +- ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_QUIC_CONNECT_ERROR); ++ //ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_QUIC_CONNECT_ERROR); } -- static_assert(CURL_LAST == CURLE_HTTP3 + 1); -+ //static_assert(CURL_LAST == CURLE_HTTP3 + 1); +- static_assert(CURL_LAST == CURLE_QUIC_CONNECT_ERROR + 1); ++ //static_assert(CURL_LAST == CURLE_QUIC_CONNECT_ERROR + 1); - return replaceCpy(L"Curl status %x.", L"%x", numberTo(static_cast(sc))); + return replaceCpy(L"Curl status %x", L"%x", numberTo(static_cast(sc))); } diff --git a/freefilesync/debian/patches/ffs_devuan.patch b/freefilesync/debian/patches/ffs_devuan.patch index f2290bd..47491bb 100644 --- a/freefilesync/debian/patches/ffs_devuan.patch +++ b/freefilesync/debian/patches/ffs_devuan.patch @@ -2,9 +2,9 @@ Author: B Stack Source: Original research Last date modified: 2020-02-15 Message: Main patch to compile on Devuan. -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.18-1/FreeFileSync/Source/base/ffs_paths.cpp 2019-11-21 09:41:42.287474472 -0500 +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 ++++ 10.18-1/FreeFileSync/Source/ffs_paths.cpp 2019-11-21 09:41:42.287474472 -0500 @@ -64,7 +64,8 @@ Zstring fff::getResourceDirPf() @@ -33,15 +33,15 @@ diff -x '*.swp' -x '.git*' -x '*.orig' -x '*.rej' -Naur 10.18-0/FreeFileSync/Sou CXXFLAGS += `pkg-config --cflags openssl` diff -x '*.swp' -x '.git*' -x '*.orig' -x '*.rej' -Naur 10.19-0/FreeFileSync/Source/ui/small_dlgs.cpp 10.19-1/FreeFileSync/Source/ui/small_dlgs.cpp --- 10.11-0/FreeFileSync/Source/ui/small_dlgs.cpp 2019-12-27 07:56:06.714625467 -0500 -+++ 10.19-1/FreeFileSync/Source/ui/small_dlgs.cpp 2019-12-27 08:56:49.251467477 -0500 -@@ -95,6 +95,8 @@ ++++ 10.21-1/FreeFileSync/Source/ui/small_dlgs.cpp 2020-03-18 09:03:57.753183052 -0400 +@@ -97,6 +97,8 @@ build += L"64 Bit"; #endif + build += L" for Devuan"; + build += SPACED_BULLET; - build += formatTime(FORMAT_DATE, getCompileTime()); + build += utfTo(formatTime(formatDateTag, getCompileTime())); 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.18-0/FreeFileSync/Source/RealTimeSync/Makefile 2020-02-15 11:45:58.241515736 -0500 diff --git a/freefilesync/debian/patches/ffs_libssh2.patch b/freefilesync/debian/patches/ffs_libssh2.patch index 66c6a88..d5ca14e 100644 --- a/freefilesync/debian/patches/ffs_libssh2.patch +++ b/freefilesync/debian/patches/ffs_libssh2.patch @@ -9,8 +9,8 @@ Source: Author: B Stack Message: libssh2 v1.8.0 does not yet implement these two error messages. I do not know why distros are not serving libssh2 v1.9.0 which wa released June 20, 2019. Date: 2019-09-17T13:41:23Z ---- 10.17-0/FreeFileSync/Source/afs/libssh2/libssh2_wrap.h 2019-10-17 15:59:11.681641905 -0400 -+++ 10.17-1/FreeFileSync/Source/afs/libssh2/libssh2_wrap.h 2019-10-21 08:32:59.666149954 -0400 +--- 10.21-0/libssh2/libssh2_wrap.h 2020-03-18 08:56:08.500065173 -0400 ++++ 10.21-1/libssh2/libssh2_wrap.h 2020-03-18 09:11:49.398311857 -0400 @@ -172,8 +172,8 @@ ZEN_CHECK_CASE_FOR_CONSTANT(LIBSSH2_ERROR_ENCRYPT); ZEN_CHECK_CASE_FOR_CONSTANT(LIBSSH2_ERROR_BAD_SOCKET); @@ -19,21 +19,6 @@ Date: 2019-09-17T13:41:23Z - ZEN_CHECK_CASE_FOR_CONSTANT(LIBSSH2_ERROR_KEYFILE_AUTH_FAILED); + //ZEN_CHECK_CASE_FOR_CONSTANT(LIBSSH2_ERROR_CHANNEL_WINDOW_FULL); + //ZEN_CHECK_CASE_FOR_CONSTANT(LIBSSH2_ERROR_KEYFILE_AUTH_FAILED); - } - return replaceCpy(L"SSH status %x.", L"%x", numberTo(sc)); - } -Message: It appears upstream moved libssh2_wrap, but the above file patches correctly, so we will leave it while adding this new, identical patch. -diff -Naur /usr/src/freefilesync/10.20-0/libssh2/libssh2_wrap.h /usr/src/freefilesync/10.20-1/libssh2/libssh2_wrap.h ---- 10.20-0/libssh2/libssh2_wrap.h 2020-02-15 14:50:08.356617565 -0500 -+++ 10.20-1/libssh2/libssh2_wrap.h 2020-02-15 15:11:25.992842154 -0500 -@@ -172,8 +172,8 @@ - ZEN_CHECK_CASE_FOR_CONSTANT(LIBSSH2_ERROR_ENCRYPT); - ZEN_CHECK_CASE_FOR_CONSTANT(LIBSSH2_ERROR_BAD_SOCKET); - ZEN_CHECK_CASE_FOR_CONSTANT(LIBSSH2_ERROR_KNOWN_HOSTS); -- ZEN_CHECK_CASE_FOR_CONSTANT(LIBSSH2_ERROR_CHANNEL_WINDOW_FULL); -- ZEN_CHECK_CASE_FOR_CONSTANT(LIBSSH2_ERROR_KEYFILE_AUTH_FAILED); -+ //ZEN_CHECK_CASE_FOR_CONSTANT(LIBSSH2_ERROR_CHANNEL_WINDOW_FULL); -+ //ZEN_CHECK_CASE_FOR_CONSTANT(LIBSSH2_ERROR_KEYFILE_AUTH_FAILED); - } - return replaceCpy(L"SSH status %x.", L"%x", numberTo(sc)); - } + + default: + return replaceCpy(L"SSH status %x", L"%x", numberTo(sc)); diff --git a/freefilesync/debian/patches/ffs_no_wx311.patch b/freefilesync/debian/patches/ffs_no_wx311.patch index 204740d..f3afae0 100644 --- a/freefilesync/debian/patches/ffs_no_wx311.patch +++ b/freefilesync/debian/patches/ffs_no_wx311.patch @@ -25,9 +25,9 @@ diff -Naur -x '*.orig' -x '*.rej' 10.3-0/wx+/grid.cpp 10.3-2/wx+/grid.cpp toScroll += scrollSpeed * deltaSecs; } 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.18-1/FreeFileSync/Source/base/ffs_paths.cpp 2019-11-20 08:55:38.553446634 -0500 +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 ++++ 10.18-1/FreeFileSync/Source/ffs_paths.cpp 2019-11-20 08:55:38.553446634 -0500 @@ -80,8 +80,8 @@ //OS standard path (XDG layout): ~/.config/FreeFileSync diff --git a/freefilesync/debian/patches/series b/freefilesync/debian/patches/series index da9adb8..2d91735 100644 --- a/freefilesync/debian/patches/series +++ b/freefilesync/debian/patches/series @@ -1,7 +1,7 @@ ffs_allow_parallel_ops.patch ffs_devuan.patch # gtk3 for obs, gtk2 for albion -ffs_devuan_gtk3.patch +ffs_devuan_gtk2.patch ffs_no_check_updates.patch ffs_no_wx311.patch ffs_sftp.patch diff --git a/freefilesync/debian/source/lintian-overrides b/freefilesync/debian/source/lintian-overrides new file mode 100644 index 0000000..b9aa80e --- /dev/null +++ b/freefilesync/debian/source/lintian-overrides @@ -0,0 +1,2 @@ +patch-file-present-but-not-mentioned-in-series ffs_devuan_gtk*.patch +source-nmu-has-incorrect-version-number -- cgit