Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package FreeFileSync for openSUSE:Factory checked in at 2022-06-12 17:41:36 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/FreeFileSync (Old) and /work/SRC/openSUSE:Factory/.FreeFileSync.new.1548 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "FreeFileSync" Sun Jun 12 17:41:36 2022 rev:10 rq:982157 version:11.19 Changes: -------- --- /work/SRC/openSUSE:Factory/FreeFileSync/FreeFileSync.changes 2022-01-24 23:11:10.942270643 +0100 +++ /work/SRC/openSUSE:Factory/.FreeFileSync.new.1548/FreeFileSync.changes 2022-06-12 17:43:20.878502664 +0200 @@ -1,0 +2,32 @@ +Sat Jun 11 15:06:02 UTC 2022 - Jannik Seiler <[email protected]> + +- Update to 11.19 + - 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 +- Changes from 11.18 + - Add comparison time to sync log when using GUI + - Added user-configurable timeout for Google Drive + - Consider port when comparing (S)FTP paths for equality + - Fixed SFTP key file login error on OpenSSH_8.8p1 + - Add error details for NSFileReadUnknownError (macOS) + - Disable new config button when already at default + - Use user language instead of region locale during installation +- Changes from 11.17 + - Show per-file progress in percent when copying large files + - Log app initialization errors + - Fixed uncaught exception after installation + - Defer testing for third-party buggy DLLs until after crashing + - Consider ReFS 128-bit file ID failure states (Windows) + - Refer to volume by name: support names including brackets + - Support local installation with non-standard home (Linux) +- Add FreeFileSync-build-with-gcc12.patch to fix build with gcc12 +- Add FreeFileSync-build-with-wx3.1.5.patch to fix build with wxWidgets 3.1.5 +- Update FreeFileSync-build.patch for version 11.19 +------------------------------------------------------------------- Old: ---- FreeFileSync_11.16_Source.zip New: ---- FreeFileSync-build-with-gcc12.patch FreeFileSync-build-with-wx3.1.5.patch FreeFileSync_11.19_Source.zip ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ FreeFileSync.spec ++++++ --- /var/tmp/diff_new_pack.MOIDZr/_old 2022-06-12 17:43:21.322503301 +0200 +++ /var/tmp/diff_new_pack.MOIDZr/_new 2022-06-12 17:43:21.326503307 +0200 @@ -17,7 +17,7 @@ Name: FreeFileSync -Version: 11.16 +Version: 11.19 Release: 0 Summary: Backup software to synchronize files and folders License: GPL-3.0-or-later @@ -33,6 +33,10 @@ Patch2: FreeFileSync-icon-loader.patch Patch3: FreeFileSync-disable-in-app-updates.patch Patch4: FreeFileSync-openssl-1.1.1.patch +# can be droped once wx 3.1.6 is available +Patch5: FreeFileSync-build-with-wx3.1.5.patch +# can be droped with 11.21 +Patch6: FreeFileSync-build-with-gcc12.patch BuildRequires: boost-devel >= 1.54 BuildRequires: gcc-c++ BuildRequires: libcurl-devel @@ -70,11 +74,8 @@ export CC="gcc" export CXX="g++" -/usr/bin/make -O -j1 V=1 VERBOSE=1 -C FreeFileSync/Source exeName=FreeFileSync -/usr/bin/make -O -j1 V=1 VERBOSE=1 -C FreeFileSync/Source/RealTimeSync exeName=RealTimeSync - -#%%make_build -C %%{name}/Source exeName=FreeFileSync -#%%make_build -C %%{name}/Source/RealTimeSync exeName=RealTimeSync +%make_build -C %{name}/Source exeName=FreeFileSync +%make_build -C %{name}/Source/RealTimeSync exeName=RealTimeSync %install # FreeFileSync ++++++ FreeFileSync-build-with-gcc12.patch ++++++ diff -Naur FreeFileSync_11.19_Source_orig/FreeFileSync/Source/base/db_file.cpp FreeFileSync_11.19_Source/FreeFileSync/Source/base/db_file.cpp --- FreeFileSync_11.19_Source_orig/FreeFileSync/Source/base/db_file.cpp 2022-04-16 20:03:18.000000000 +0200 +++ FreeFileSync_11.19_Source/FreeFileSync/Source/base/db_file.cpp 2022-06-11 16:25:56.614662155 +0200 @@ -665,7 +665,7 @@ } //delete removed items (= "in-sync") from database - std::erase_if(dbFolders, [&](InSyncFolder::FolderList::value_type& v) + eraseIf(dbFolders, [&](InSyncFolder::FolderList::value_type& v) { if (auto it = toPreserve.find(v.first); it != toPreserve.end()) { @@ -692,7 +692,7 @@ std::erase_if(dbFolder.files, [&](const InSyncFolder::FileList ::value_type& v) { return filter_.passFileFilter(parentRelPathPf + v.first); }); std::erase_if(dbFolder.symlinks, [&](const InSyncFolder::SymlinkList::value_type& v) { return filter_.passFileFilter(parentRelPathPf + v.first); }); - std::erase_if(dbFolder.folders, [&](InSyncFolder::FolderList::value_type& v) + eraseIf(dbFolder.folders, [&](InSyncFolder::FolderList::value_type& v) { const Zstring& itemRelPath = parentRelPathPf + v.first; diff -Naur FreeFileSync_11.19_Source_orig/wx+/async_task.h FreeFileSync_11.19_Source/wx+/async_task.h --- FreeFileSync_11.19_Source_orig/wx+/async_task.h 2022-04-16 20:03:18.000000000 +0200 +++ FreeFileSync_11.19_Source/wx+/async_task.h 2022-06-11 16:32:01.862210363 +0200 @@ -84,7 +84,7 @@ std::vector<std::unique_ptr<Task>> readyTasks; //Reentrancy; access to AsyncTasks::add is not protected! => evaluate outside eraseIf - std::erase_if(tasks_, [&](std::unique_ptr<Task>& task) + eraseIf(tasks_, [&](std::unique_ptr<Task>& task) { if (task->resultReady()) { diff -Naur FreeFileSync_11.19_Source_orig/zen/stl_tools.h FreeFileSync_11.19_Source/zen/stl_tools.h --- FreeFileSync_11.19_Source_orig/zen/stl_tools.h 2022-04-16 20:03:18.000000000 +0200 +++ FreeFileSync_11.19_Source/zen/stl_tools.h 2022-06-11 16:50:12.672858637 +0200 @@ -10,6 +10,8 @@ #include <set> #include <map> #include <vector> +#include <unordered_set> +#include <unordered_map> #include <memory> #include <cassert> #include <algorithm> @@ -20,6 +22,16 @@ //enhancements for <algorithm> namespace zen { +//unfortunately std::erase_if is useless garbage on GCC 12 (requires non-modifying predicate) +template <class T, class Alloc, class Predicate> +void eraseIf(std::vector<T, Alloc>& v, Predicate p); + +template <class T, class LessType, class Alloc, class Predicate> +void eraseIf(std::set<T, LessType, Alloc>& s, Predicate p); + +template <class KeyType, class ValueType, class LessType, class Alloc, class Predicate> +void eraseIf(std::map<KeyType, ValueType, LessType, Alloc>& m, Predicate p); + //append STL containers template <class T, class Alloc, class C> void append(std::vector<T, Alloc>& v, const C& c); @@ -104,6 +116,44 @@ //######################## implementation ######################## + +template <class T, class Alloc, class Predicate> inline +void eraseIf(std::vector<T, Alloc>& v, Predicate p) +{ + v.erase(std::remove_if(v.begin(), v.end(), p), v.end()); +} + + +namespace impl +{ +template <class S, class Predicate> inline +void setOrMapEraseIf(S& s, Predicate p) +{ + for (auto it = s.begin(); it != s.end();) + if (p(*it)) + s.erase(it++); + else + ++it; +} +} + + +template <class T, class LessType, class Alloc, class Predicate> inline +void eraseIf(std::set<T, LessType, Alloc>& s, Predicate p) { impl::setOrMapEraseIf(s, p); } //don't make this any more generic! e.g. must not compile for std::vector!!! + + +template <class KeyType, class ValueType, class LessType, class Alloc, class Predicate> inline +void eraseIf(std::map<KeyType, ValueType, LessType, Alloc>& m, Predicate p) { impl::setOrMapEraseIf(m, p); } + + +template <class T, class Hash, class Keyeq, class Alloc, class Predicate> inline +void eraseIf(std::unordered_set<T, Hash, Keyeq, Alloc>& s, Predicate p) { impl::setOrMapEraseIf(s, p); } + + +template <class KeyType, class ValueType, class Hash, class Keyeq, class Alloc, class Predicate> inline +void eraseIf(std::unordered_map<KeyType, ValueType, Hash, Keyeq, Alloc>& m, Predicate p) { impl::setOrMapEraseIf(m, p); } + + template <class T, class Alloc, class C> inline void append(std::vector<T, Alloc>& v, const C& c) { v.insert(v.end(), c.begin(), c.end()); } ++++++ FreeFileSync-build-with-wx3.1.5.patch ++++++ diff -Naur FreeFileSync_11.19_Source_orig/wx+/dc.h FreeFileSync_11.19_Source/wx+/dc.h --- FreeFileSync_11.19_Source_orig/wx+/dc.h 2022-04-16 20:03:18.000000000 +0200 +++ FreeFileSync_11.19_Source/wx+/dc.h 2022-06-11 16:08:23.827967980 +0200 @@ -91,8 +91,8 @@ inline int getDPI() { -#ifndef wxHAS_DPI_INDEPENDENT_PIXELS -#error why is wxHAS_DPI_INDEPENDENT_PIXELS not defined? +#ifndef wxHAVE_DPI_INDEPENDENT_PIXELS +#error why is wxHAVE_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 ++++++ FreeFileSync-build.patch ++++++ --- /var/tmp/diff_new_pack.MOIDZr/_old 2022-06-12 17:43:21.370503370 +0200 +++ /var/tmp/diff_new_pack.MOIDZr/_new 2022-06-12 17:43:21.370503370 +0200 @@ -1,9 +1,9 @@ -diff -Naur FreeFileSync_11.4_Source_orig/FreeFileSync/Source/Makefile FreeFileSync_11.4_Source/FreeFileSync/Source/Makefile ---- FreeFileSync_11.4_Source_orig/FreeFileSync/Source/Makefile 2020-12-05 14:38:38.000000000 +0100 -+++ FreeFileSync_11.4_Source/FreeFileSync/Source/Makefile 2020-12-11 09:24:39.418116342 +0100 +diff -Naur FreeFileSync_11.21_Source_orig/FreeFileSync/Source/Makefile FreeFileSync_11.21_Source/FreeFileSync/Source/Makefile +--- FreeFileSync_11.21_Source_orig/FreeFileSync/Source/Makefile 2022-05-17 10:02:16.000000000 +0200 ++++ FreeFileSync_11.21_Source/FreeFileSync/Source/Makefile 2022-06-10 17:50:49.936634424 +0200 @@ -2,9 +2,9 @@ - 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 \ - -O3 -DNDEBUG `wx-config --cxxflags --debug=no` -pthread + -O3 -DNDEBUG `wx-config --cxxflags --debug=no` -pthread -fpie @@ -26,12 +26,12 @@ #support for SELinux (optional) SELINUX_EXISTING=$(shell pkg-config --exists libselinux && echo YES) -diff -Naur FreeFileSync_11.4_Source_orig/FreeFileSync/Source/RealTimeSync/Makefile FreeFileSync_11.4_Source/FreeFileSync/Source/RealTimeSync/Makefile ---- FreeFileSync_11.4_Source_orig/FreeFileSync/Source/RealTimeSync/Makefile 2020-12-05 14:38:38.000000000 +0100 -+++ FreeFileSync_11.4_Source/FreeFileSync/Source/RealTimeSync/Makefile 2020-12-11 09:19:38.287288344 +0100 +diff -Naur FreeFileSync_11.21_Source_orig/FreeFileSync/Source/RealTimeSync/Makefile FreeFileSync_11.21_Source/FreeFileSync/Source/RealTimeSync/Makefile +--- FreeFileSync_11.21_Source_orig/FreeFileSync/Source/RealTimeSync/Makefile 2022-05-17 10:02:16.000000000 +0200 ++++ FreeFileSync_11.21_Source/FreeFileSync/Source/RealTimeSync/Makefile 2022-06-10 17:51:33.900512197 +0200 @@ -2,14 +2,15 @@ - 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 \ - -O3 -DNDEBUG `wx-config --cxxflags --debug=no` -pthread + -O3 -DNDEBUG `wx-config --cxxflags --debug=no` -pthread -fpie @@ -49,9 +49,9 @@ cppFiles= cppFiles+=application.cpp -diff -Naur FreeFileSync_11.4_Source_orig/libssh2/libssh2_wrap.h FreeFileSync_11.4_Source/libssh2/libssh2_wrap.h ---- FreeFileSync_11.4_Source_orig/libssh2/libssh2_wrap.h 2020-12-05 14:38:38.000000000 +0100 -+++ FreeFileSync_11.4_Source/libssh2/libssh2_wrap.h 2020-12-11 09:17:38.447774909 +0100 +diff -Naur FreeFileSync_11.21_Source_orig/libssh2/libssh2_wrap.h FreeFileSync_11.21_Source/libssh2/libssh2_wrap.h +--- FreeFileSync_11.21_Source_orig/libssh2/libssh2_wrap.h 2022-05-17 10:02:16.000000000 +0200 ++++ FreeFileSync_11.21_Source/libssh2/libssh2_wrap.h 2022-06-10 17:53:11.880246224 +0200 @@ -20,6 +20,22 @@ #error libssh2_sftp.h header guard changed #endif @@ -75,9 +75,9 @@ //fix libssh2 64-bit warning mess: https://github.com/libssh2/libssh2/pull/96 #undef libssh2_userauth_password inline int libssh2_userauth_password(LIBSSH2_SESSION* session, const std::string& username, const std::string& password) -diff -Naur FreeFileSync_11.4_Source_orig/zen/ring_buffer.h FreeFileSync_11.4_Source/zen/ring_buffer.h ---- FreeFileSync_11.4_Source_orig/zen/ring_buffer.h 2020-12-05 14:38:38.000000000 +0100 -+++ FreeFileSync_11.4_Source/zen/ring_buffer.h 2020-12-11 09:16:43.519997924 +0100 +diff -Naur FreeFileSync_11.21_Source_orig/zen/ring_buffer.h FreeFileSync_11.21_Source/zen/ring_buffer.h +--- FreeFileSync_11.21_Source_orig/zen/ring_buffer.h 2022-05-17 10:02:18.000000000 +0200 ++++ FreeFileSync_11.21_Source/zen/ring_buffer.h 2022-06-10 17:54:25.040065784 +0200 @@ -8,6 +8,7 @@ #define RING_BUFFER_H_01238467085684139453534
