From 4687d95b1a51b746b19dc8b47e1241bedae0b226 Mon Sep 17 00:00:00 2001 From: B Stack Date: Mon, 21 Oct 2019 09:46:34 -0400 Subject: freefilesync 10.17 dpkg rc1 --- freefilesync/debian/README.Debian | 5 +++ freefilesync/debian/changelog | 13 ++++++ freefilesync/debian/patches/ffs_curl.patch | 20 +++++++++ freefilesync/debian/patches/ffs_devuan.patch | 15 ++++++- freefilesync/debian/patches/ffs_libssh2.patch | 23 +++++----- freefilesync/debian/patches/ffs_sftp.patch | 62 --------------------------- freefilesync/debian/patches/series | 1 + 7 files changed, 63 insertions(+), 76 deletions(-) create mode 100644 freefilesync/debian/patches/ffs_curl.patch diff --git a/freefilesync/debian/README.Debian b/freefilesync/debian/README.Debian index 879aeeb..b370841 100644 --- a/freefilesync/debian/README.Debian +++ b/freefilesync/debian/README.Debian @@ -1,3 +1,8 @@ +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 + 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 7759619..524371a 100644 --- a/freefilesync/debian/changelog +++ b/freefilesync/debian/changelog @@ -1,3 +1,16 @@ +freefilesync (10.17-1+devuan) obs; urgency=low + + * Support PuTTY private key files for SFTP login + * Enable zlib compression for SFTP servers if supported + * Update last sync time despite differences if nothing to do + * Reduce graph total time update interval + * Remember folder history not just for first folder pair + * Allow unprivileged symlink creation in Windows Developer Mode + * Integrate latest libcurl FTP bug fixes + * Detect common invalid SFTP key file formats + * Fixed startup crash caused by corrupted HDD properties + * Allow SFTP access via Ed25519 key in PKIX format + freefilesync (10.16-1+devuan) obs; urgency=low * Redesigned progress indicator graphs diff --git a/freefilesync/debian/patches/ffs_curl.patch b/freefilesync/debian/patches/ffs_curl.patch new file mode 100644 index 0000000..2844a54 --- /dev/null +++ b/freefilesync/debian/patches/ffs_curl.patch @@ -0,0 +1,20 @@ +Source: AUR +Author: Simon Brulhart +Date: 2019-10-20 21:33:47 +0200 +Message: +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 @@ + 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)); + /* 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 + diff --git a/freefilesync/debian/patches/ffs_devuan.patch b/freefilesync/debian/patches/ffs_devuan.patch index a71649d..fc16f54 100644 --- a/freefilesync/debian/patches/ffs_devuan.patch +++ b/freefilesync/debian/patches/ffs_devuan.patch @@ -1,3 +1,8 @@ +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 --- 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 @@ -18,7 +23,7 @@ diff -Naur -x '*.orig' -x '*.rej' 10.11-0/FreeFileSync/Source/Makefile 10.11-1/F -EXENAME = FreeFileSync_$(shell arch) +EXENAME = FreeFileSync - CXXFLAGS = -std=c++2a -pipe -DWXINTL_NO_GETTEXT_MACRO -DLIBSSH2_OPENSSL -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" \ -Wall -Wfatal-errors -Wmissing-include-dirs -Wswitch-enum -Wcast-align -Wshadow -Wnon-virtual-dtor \ -O3 -DNDEBUG `wx-config --cxxflags --debug=no` -pthread @@ -35,6 +40,14 @@ diff -Naur -x '*.orig' -x '*.rej' 10.11-0/FreeFileSync/Source/Makefile 10.11-1/F #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 --- 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 diff --git a/freefilesync/debian/patches/ffs_libssh2.patch b/freefilesync/debian/patches/ffs_libssh2.patch index d901cf5..0abd660 100644 --- a/freefilesync/debian/patches/ffs_libssh2.patch +++ b/freefilesync/debian/patches/ffs_libssh2.patch @@ -9,10 +9,9 @@ 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 -diff -x '*.orig' -x '*.swp' -x '.git*' -Naur 10.16-0/FreeFileSync/Source/afs/sftp.cpp 10.16-1/FreeFileSync/Source/afs/sftp.cpp ---- 10.16-0/FreeFileSync/Source/afs/sftp.cpp 2019-09-17 07:56:37.359051676 -0400 -+++ 10.16-1/FreeFileSync/Source/afs/sftp.cpp 2019-09-17 09:30:59.293824626 -0400 -@@ -218,8 +218,8 @@ +--- 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 +@@ -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); @@ -25,15 +24,13 @@ diff -x '*.orig' -x '*.swp' -x '.git*' -Naur 10.16-0/FreeFileSync/Source/afs/sft } diff -x '*.swp' -x .git -Naur 10.10-0/FreeFileSync/Source/afs/sftp.cpp 10.10-1/FreeFileSync/Source/afs/sftp.cpp --- 10.10-0/FreeFileSync/Source/afs/sftp.cpp 2019-03-12 08:09:58.465098982 -0400 -+++ 10.10-1/FreeFileSync/Source/afs/sftp.cpp 2019-03-12 08:27:05.718963710 -0400 -@@ -1657,8 +1657,8 @@ ++++ 10.17-1/FreeFileSync/Source/afs/sftp.cpp 2019-10-21 08:46:07.562161269 -0400 +@@ -1588,7 +1588,7 @@ runSftpCommand(login_, L"libssh2_sftp_mkdir", //throw SysError [&](const SshSession::Details& sd) //noexcept! { --#if 1 //let's see how LIBSSH2_SFTP_DEFAULT_MODE works out: -- return ::libssh2_sftp_mkdir(sd.sftpChannel, getLibssh2Path(afsPath).c_str(), LIBSSH2_SFTP_DEFAULT_MODE); -+#if 1 //let's see how LIBSSH2_SFTP_S_IRWXU | LIBSSH2_SFTP_S_IRWXG | LIBSSH2_SFTP_S_IRWXO works out: -+ return ::libssh2_sftp_mkdir(sd.sftpChannel, getLibssh2Path(afsPath).c_str(), LIBSSH2_SFTP_S_IRWXU | LIBSSH2_SFTP_S_IRWXG | LIBSSH2_SFTP_S_IRWXO); - #else //default for newly created directories: 0777 - return ::libssh2_sftp_mkdir(sd.sftpChannel, getLibssh2Path(afsPath).c_str(), LIBSSH2_SFTP_S_IRWXU | LIBSSH2_SFTP_S_IRWXG | LIBSSH2_SFTP_S_IRWXO); - #endif +- return ::libssh2_sftp_mkdir(sd.sftpChannel, getLibssh2Path(afsPath), LIBSSH2_SFTP_DEFAULT_MODE); ++ return ::libssh2_sftp_mkdir(sd.sftpChannel, getLibssh2Path(afsPath), LIBSSH2_SFTP_S_IRWXU | LIBSSH2_SFTP_S_IRWXG | LIBSSH2_SFTP_S_IRWXO); + //default for newly created directories: 0777 (LIBSSH2_SFTP_S_IRWXU | LIBSSH2_SFTP_S_IRWXG | LIBSSH2_SFTP_S_IRWXO) + }); + } diff --git a/freefilesync/debian/patches/ffs_sftp.patch b/freefilesync/debian/patches/ffs_sftp.patch index afc8f07..c30b09c 100644 --- a/freefilesync/debian/patches/ffs_sftp.patch +++ b/freefilesync/debian/patches/ffs_sftp.patch @@ -1,70 +1,8 @@ -Source: -Author: B Stack -Message: In FreeFileSync 10.16, upstream uses a higher version of libcurl than what is available for most distros. This change will probably break ftp usage and any such breakage should be reported to this patch author so that he can actually go package the latest version of libcurl for the affected distro instead of being lazy and basically breaking stuff just to compile. -Date: 2019-09-17T13:46:28Z - Source: 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: 2019-02-11T12:15:59Z https://github.com/libssh2/libssh2/issues/90 -diff -x '*.swp' -x '.git*' -Naur 10.16-0/FreeFileSync/Source/afs/ftp.cpp 10.16-1/FreeFileSync/Source/afs/ftp.cpp ---- 10.16-0/FreeFileSync/Source/afs/ftp.cpp 2019-09-17 07:56:37.351051558 -0400 -+++ 10.16-1/FreeFileSync/Source/afs/ftp.cpp 2019-09-17 09:07:42.581456870 -0400 -@@ -543,7 +543,7 @@ - ZEN_ON_SCOPE_EXIT(::curl_slist_free_all(quote)); - quote = ::curl_slist_append(quote, ftpCmd.c_str()); - -- return perform(AfsPath(), true /*isDir*/, CURLFTPMETHOD_FULLPATH, //really avoid needless CWDs unlike buggy(!) CURLFTPMETHOD_NOCWD -+ return perform(AfsPath(), true /*isDir*/, CURLFTPMETHOD_LAST, //really avoid needless CWDs unlike buggy(!) CURLFTPMETHOD_NOCWD - { - { CURLOPT_NOBODY, 1L }, - { CURLOPT_QUOTE, quote }, -@@ -665,7 +665,7 @@ - } - - /* 1. FFS CURLFTPMETHOD_NOCWD is buggy (see comment FtpSession::perform()) => must use absolute, not home-relative paths! -- 2. Support CURLFTPMETHOD_FULLPATH => must use absolute, not home-relative paths! -+ 2. Support CURLFTPMETHOD_LAST => must use absolute, not home-relative paths! - 3. Some FTP servers distinguish between user-home- and root-relative paths! e.g. FreeNAS: https://freefilesync.org/forum/viewtopic.php?t=6129 - => use root-relative paths (= same as expected by CURLOPT_QUOTE) https://curl.haxx.se/docs/faq.html#How_do_I_list_the_root_dir_of_an - => use // because /%2f had bugs (but they should be fixed: https://github.com/curl/curl/pull/4348) -@@ -1021,7 +1021,7 @@ - }(); - - if (!pathHasWildcards) -- pathMethod = CURLFTPMETHOD_FULLPATH; //16% faster traversal compared to CURLFTPMETHOD_SINGLECWD (35% faster than CURLFTPMETHOD_MULTICWD) -+ pathMethod = CURLFTPMETHOD_LAST; //16% faster traversal compared to CURLFTPMETHOD_SINGLECWD (35% faster than CURLFTPMETHOD_MULTICWD) - } - //else: use "LIST" + CURLFTPMETHOD_SINGLECWD - //caveat: let's better not use LIST parameters: https://cr.yp.to/ftp/list.html -@@ -1591,7 +1591,7 @@ - { - accessFtpSession(login, [&](FtpSession& session) //throw SysError - { -- session.perform(afsFilePath, false /*isDir*/, CURLFTPMETHOD_FULLPATH, //are there any servers that require CURLFTPMETHOD_SINGLECWD? let's find out -+ session.perform(afsFilePath, false /*isDir*/, CURLFTPMETHOD_LAST, //are there any servers that require CURLFTPMETHOD_SINGLECWD? let's find out - { - { CURLOPT_WRITEDATA, &onBytesReceived }, - { CURLOPT_WRITEFUNCTION, onBytesReceivedWrapper }, -@@ -1657,7 +1657,7 @@ - - //optimize fail-safe copy with RNFR/RNTO as CURLOPT_POSTQUOTE? -> even slightly *slower* than RNFR/RNTO as additional curl_easy_perform() - */ -- session.perform(afsFilePath, false /*isDir*/, CURLFTPMETHOD_FULLPATH, //are there any servers that require CURLFTPMETHOD_SINGLECWD? let's find out -+ session.perform(afsFilePath, false /*isDir*/, CURLFTPMETHOD_LAST, //are there any servers that require CURLFTPMETHOD_SINGLECWD? let's find out - { - { CURLOPT_UPLOAD, 1L }, - { CURLOPT_READDATA, &getBytesToSend }, -@@ -2126,7 +2126,7 @@ - quote = ::curl_slist_append(quote, ("RNFR " + session.getServerRelPathInternal(pathFrom, login_.timeoutSec)).c_str()); //throw SysError - quote = ::curl_slist_append(quote, ("RNTO " + session.getServerRelPathInternal(pathTo.afsPath, login_.timeoutSec)).c_str()); // - -- session.perform(AfsPath(), true /*isDir*/, CURLFTPMETHOD_FULLPATH, //really avoid needless CWDs unlike buggy(!) CURLFTPMETHOD_NOCWD -+ session.perform(AfsPath(), true /*isDir*/, CURLFTPMETHOD_LAST, //really avoid needless CWDs unlike buggy(!) CURLFTPMETHOD_NOCWD - { - { CURLOPT_NOBODY, 1L }, - { CURLOPT_QUOTE, quote }, diff -x '*.orig' -x '*.swp' -x '*.rej' -Naur 10.9-0/FreeFileSync/Source/afs/sftp.cpp 10.9-1/FreeFileSync/Source/afs/sftp.cpp --- 10.9-0/FreeFileSync/Source/afs/sftp.cpp 2019-02-10 16:42:29.139040980 -0500 +++ 10.9-1/FreeFileSync/Source/afs/sftp.cpp 2019-02-10 21:28:00.030732089 -0500 diff --git a/freefilesync/debian/patches/series b/freefilesync/debian/patches/series index 54052a9..51b0191 100644 --- a/freefilesync/debian/patches/series +++ b/freefilesync/debian/patches/series @@ -4,3 +4,4 @@ ffs_no_check_updates.patch ffs_no_wx311.patch ffs_sftp.patch ffs_libssh2.patch +ffs_curl.patch -- cgit