diff options
-rw-r--r-- | freefilesync/debian/README.Debian | 7 | ||||
-rw-r--r-- | freefilesync/debian/changelog | 23 | ||||
-rw-r--r-- | freefilesync/debian/patches/ffs_libssh2.patch | 18 | ||||
-rw-r--r-- | freefilesync/debian/patches/ffs_sftp.patch | 67 | ||||
-rw-r--r-- | freefilesync/ffs_sftp.patch | 67 | ||||
-rw-r--r-- | freefilesync/freefilesync.spec | 5 |
6 files changed, 184 insertions, 3 deletions
diff --git a/freefilesync/debian/README.Debian b/freefilesync/debian/README.Debian index a4595af..879aeeb 100644 --- a/freefilesync/debian/README.Debian +++ b/freefilesync/debian/README.Debian @@ -1,3 +1,10 @@ +freefilesync (10.16-1+devuan) + + * Revert some sftp and libssh2 newer-version functionality. Upstream apparently patches their upstream libs. + This might break sftp usage, so please report such breakage to the package maintainer. + + -- B Stack <bgstack15@gmail.com> Tue, 16 Sep 2019 10:06:00 -0400 + freefilesync (10.15-1+devuan) * Revert the removal of gtk+-2.0 in LINKFLAGS. How does upstream link this application, exactly? diff --git a/freefilesync/debian/changelog b/freefilesync/debian/changelog index 0d7d367..7759619 100644 --- a/freefilesync/debian/changelog +++ b/freefilesync/debian/changelog @@ -1,3 +1,26 @@ +freefilesync (10.16-1+devuan) obs; urgency=low + + * Redesigned progress indicator graphs + * Avoid needless HTTP delay prior to Google Drive upload + * Skip redundant CWDs during FTP metadata updates + * Fixed MLSD 501 syntax error on Serv-U FTP server + * Check FTP server status using FEAT/HELP instead of root folder + * Avoid redundant TYPE changes during FTP directory listing + * Access FTP files by full path and avoid CWDs + * Support FTP home paths with non-ASCII chars + * Work around libcurl bug failing to buffer FTP TLS authentication + * Skip redundant FTP SIZE check before downloading file + * Use ISO 8601 week of the year definition for %week% macro + * Show login prompt for disconnected NAS share + * Force icon resolution to 96 DPI in GTK2 build (Linux) + * Detect missing full disk access permission (macOS) + * Fixed accessibility issue with progress graph colors + * Use short naming convention when deleting abandoned folder lock + * Detect endless folder lock recursion on buggy file systems + * Fixed Google Drive parsing error for invalid file time + + -- B Stack <bgstack15@gmail.com> Tue, 16 Sep 2019 10:04:13 -0400 + freefilesync (10.15-1+devuan) obs; urgency=low * Redesigned progress indicator stats diff --git a/freefilesync/debian/patches/ffs_libssh2.patch b/freefilesync/debian/patches/ffs_libssh2.patch index 4fc1497..d901cf5 100644 --- a/freefilesync/debian/patches/ffs_libssh2.patch +++ b/freefilesync/debian/patches/ffs_libssh2.patch @@ -5,6 +5,24 @@ Method: sed -e 's/LIBSSH2_SFTP_DEFAULT_MODE/LIBSSH2_SFTP_S_IRWXU | LIBSSH2_SFTP_S_IRWXG | LIBSSH2_SFTP_S_IRWXO/g' -i 'FreeFileSync/Source/afs/sftp.cpp' +Source: <none> +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 @@ + 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<std::wstring>(L"SSH status %x.", L"%x", numberTo<std::wstring>(sc)); + } 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 diff --git a/freefilesync/debian/patches/ffs_sftp.patch b/freefilesync/debian/patches/ffs_sftp.patch index c526a22..afc8f07 100644 --- a/freefilesync/debian/patches/ffs_sftp.patch +++ b/freefilesync/debian/patches/ffs_sftp.patch @@ -1,5 +1,70 @@ -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. +Source: <none> +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: <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: 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/ffs_sftp.patch b/freefilesync/ffs_sftp.patch index c526a22..afc8f07 100644 --- a/freefilesync/ffs_sftp.patch +++ b/freefilesync/ffs_sftp.patch @@ -1,5 +1,70 @@ -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. +Source: <none> +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: <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: 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/freefilesync.spec b/freefilesync/freefilesync.spec index 7bcd683..7ccfb22 100644 --- a/freefilesync/freefilesync.spec +++ b/freefilesync/freefilesync.spec @@ -14,7 +14,7 @@ %define min_openssl >= 1.1.1c %endif Name: freefilesync -Version: 10.15 +Version: 10.16 Release: 1%{?dist} Summary: A file synchronization utility @@ -190,6 +190,9 @@ update-mime-database -n ${_datadir}/mime 1>/dev/null 2>&1 & : %ghost %config %attr(666, -, -) %{_datadir}/%{name}/GlobalSettings.xml %changelog +* Tue Sep 17 2019 B Stack <bgstack15@gmail.com> - 10.16-1 +- version bump + * Thu Aug 15 2019 B Stack <bgstack15@gmail.com> - 10.15-1 - version bump |