From fb30e03c2e428e28ba2562c4b50f53d34bda6a2f91ef2c1976483539276b3df9 Mon Sep 17 00:00:00 2001 From: Jannik Seiler Date: Fri, 26 Aug 2022 15:22:53 +0000 Subject: [PATCH 1/2] Accepting request 999422 from home:seil0:branches:network - Update to 11.23 - Format local file times with no limits on time span - Deferred child item failure when traversing MTP folder - Fixed occasional wrong thumbnail orientation for MTP - Support additional image formats for MTP preview (e.g. CR2) - Fixed folder pair window being squashed after text size increase - Fixed wrong folder pair order when loading config (Linux) - Fixed some images being stretched on high-DPI monitors - Fixed config panel tab text being mirrored in RTL layout - Fixed parsing file times one second before Unix epoch (Gdrive, FTP) - Changes from 11.22 - Allow to change default log folder in global settings - Fixed sort order when items existing on one side only - Consider HOME environment variable for home path (Linux) - Fixed config selection using shift and arrow keys - Start comparison, then sync by only pressing Enter after startup - Fall back to default path when failing to save log file - Improved relative config path handling in portable mode - Changes from 11.21 - Support volume GUID as path: \\?\Volume{01234567-89ab-cdef-0123-456789abcdef} (Windows) - Avoid Two-Way conflict when changing folder name upper/lower-case - List hidden warning messages in options dialog - Fixed buffer overflow while receiving SFTP server banner - Create crash dumps even if FFS-internal crash handling doesn't kick in - Log time when error occured, not when it is reported - Swap sides: Require confirmation only after comparison - Updated translation files - Changes from 11.20 - Fixed broken icon scaling on high-DPI displays - Fixed user language set to English after update - Drop obsolete FreeFileSync-build-with-gcc12.patch - Drop obsolete FreeFileSync-build-with-wx3.1.5.patch - Update FreeFileSync-disable-in-app-updates.patch for version 11.23 - Update FreeFileSync-icon-loader.patch for version 11.23 - Update FreeFileSync-resources.patch for version 11.23 OBS-URL: https://build.opensuse.org/request/show/999422 OBS-URL: https://build.opensuse.org/package/show/network/FreeFileSync?expand=0&rev=56 --- FreeFileSync-build-with-gcc12.patch | 107 ---------------------- FreeFileSync-build-with-wx3.1.5.patch | 14 --- FreeFileSync-disable-in-app-updates.patch | 46 +++++----- FreeFileSync-icon-loader.patch | 13 +-- FreeFileSync-resources.patch | 11 ++- FreeFileSync.changes | 38 ++++++++ FreeFileSync.spec | 6 +- FreeFileSync_11.19_Source.zip | 3 - FreeFileSync_11.23_Source.zip | 3 + 9 files changed, 80 insertions(+), 161 deletions(-) delete mode 100644 FreeFileSync-build-with-gcc12.patch delete mode 100644 FreeFileSync-build-with-wx3.1.5.patch delete mode 100644 FreeFileSync_11.19_Source.zip create mode 100644 FreeFileSync_11.23_Source.zip diff --git a/FreeFileSync-build-with-gcc12.patch b/FreeFileSync-build-with-gcc12.patch deleted file mode 100644 index ef4fdec..0000000 --- a/FreeFileSync-build-with-gcc12.patch +++ /dev/null @@ -1,107 +0,0 @@ -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> readyTasks; //Reentrancy; access to AsyncTasks::add is not protected! => evaluate outside eraseIf - -- std::erase_if(tasks_, [&](std::unique_ptr& task) -+ eraseIf(tasks_, [&](std::unique_ptr& 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 - #include - #include -+#include -+#include - #include - #include - #include -@@ -20,6 +22,16 @@ - //enhancements for - namespace zen - { -+//unfortunately std::erase_if is useless garbage on GCC 12 (requires non-modifying predicate) -+template -+void eraseIf(std::vector& v, Predicate p); -+ -+template -+void eraseIf(std::set& s, Predicate p); -+ -+template -+void eraseIf(std::map& m, Predicate p); -+ - //append STL containers - template - void append(std::vector& v, const C& c); -@@ -104,6 +116,44 @@ - - - //######################## implementation ######################## -+ -+template inline -+void eraseIf(std::vector& v, Predicate p) -+{ -+ v.erase(std::remove_if(v.begin(), v.end(), p), v.end()); -+} -+ -+ -+namespace impl -+{ -+template inline -+void setOrMapEraseIf(S& s, Predicate p) -+{ -+ for (auto it = s.begin(); it != s.end();) -+ if (p(*it)) -+ s.erase(it++); -+ else -+ ++it; -+} -+} -+ -+ -+template inline -+void eraseIf(std::set& s, Predicate p) { impl::setOrMapEraseIf(s, p); } //don't make this any more generic! e.g. must not compile for std::vector!!! -+ -+ -+template inline -+void eraseIf(std::map& m, Predicate p) { impl::setOrMapEraseIf(m, p); } -+ -+ -+template inline -+void eraseIf(std::unordered_set& s, Predicate p) { impl::setOrMapEraseIf(s, p); } -+ -+ -+template inline -+void eraseIf(std::unordered_map& m, Predicate p) { impl::setOrMapEraseIf(m, p); } -+ -+ - template inline - void append(std::vector& v, const C& c) { v.insert(v.end(), c.begin(), c.end()); } - diff --git a/FreeFileSync-build-with-wx3.1.5.patch b/FreeFileSync-build-with-wx3.1.5.patch deleted file mode 100644 index 51d17be..0000000 --- a/FreeFileSync-build-with-wx3.1.5.patch +++ /dev/null @@ -1,14 +0,0 @@ -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 diff --git a/FreeFileSync-disable-in-app-updates.patch b/FreeFileSync-disable-in-app-updates.patch index 19bc34b..16b9125 100644 --- a/FreeFileSync-disable-in-app-updates.patch +++ b/FreeFileSync-disable-in-app-updates.patch @@ -1,28 +1,28 @@ -diff -Naur FreeFileSync_11.16_Source_orig/FreeFileSync/Source/ui/gui_generated.cpp FreeFileSync_11.16_Source/FreeFileSync/Source/ui/gui_generated.cpp ---- FreeFileSync_11.16_Source_orig/FreeFileSync/Source/ui/gui_generated.cpp 2022-01-02 18:32:20.000000000 +0100 -+++ FreeFileSync_11.16_Source/FreeFileSync/Source/ui/gui_generated.cpp 2022-01-16 18:08:11.272184873 +0100 +diff -Naur FreeFileSync_11.23_Source_orig/FreeFileSync/Source/ui/gui_generated.cpp FreeFileSync_11.23_Source/FreeFileSync/Source/ui/gui_generated.cpp +--- FreeFileSync_11.23_Source_orig/FreeFileSync/Source/ui/gui_generated.cpp 2022-07-23 15:18:28.000000000 +0200 ++++ FreeFileSync_11.23_Source/FreeFileSync/Source/ui/gui_generated.cpp 2022-08-26 15:47:40.998770347 +0200 @@ -108,13 +108,14 @@ - m_menuItemHelp = new wxMenuItem( m_menuHelp, wxID_HELP, wxString( _("&View help") ) + wxT('\t') + wxT("F1"), wxEmptyString, wxITEM_NORMAL ); - m_menuHelp->Append( m_menuItemHelp ); + m_menuItemHelp = new wxMenuItem( m_menuHelp, wxID_HELP, wxString( _("&View help") ) + wxT('\t') + wxT("F1"), wxEmptyString, wxITEM_NORMAL ); + m_menuHelp->Append( m_menuItemHelp ); -- m_menuHelp->AppendSeparator(); +- m_menuHelp->AppendSeparator(); + // disable update/auto update actions for packaged version (they are only hidden, to not break any code and keep the patch small) -+ //m_menuHelp->AppendSeparator(); ++ //m_menuHelp->AppendSeparator(); - m_menuItemCheckVersionNow = new wxMenuItem( m_menuHelp, wxID_ANY, wxString( _("&Check for updates now") ) , wxEmptyString, wxITEM_NORMAL ); -- m_menuHelp->Append( m_menuItemCheckVersionNow ); -+ //m_menuHelp->Append( m_menuItemCheckVersionNow ); + m_menuItemCheckVersionNow = new wxMenuItem( m_menuHelp, wxID_ANY, wxString( _("&Check for updates now") ), wxEmptyString, wxITEM_NORMAL ); +- m_menuHelp->Append( m_menuItemCheckVersionNow ); ++ //m_menuHelp->Append( m_menuItemCheckVersionNow ); - m_menuItemCheckVersionAuto = new wxMenuItem( m_menuHelp, wxID_ANY, wxString( _("Check &automatically once a week") ) , wxEmptyString, wxITEM_CHECK ); -- m_menuHelp->Append( m_menuItemCheckVersionAuto ); -+ //m_menuHelp->Append( m_menuItemCheckVersionAuto ); - m_menuItemCheckVersionAuto->Check( true ); + m_menuItemCheckVersionAuto = new wxMenuItem( m_menuHelp, wxID_ANY, wxString( _("Check &automatically once a week") ), wxEmptyString, wxITEM_CHECK ); +- m_menuHelp->Append( m_menuItemCheckVersionAuto ); ++ //m_menuHelp->Append( m_menuItemCheckVersionAuto ); + m_menuItemCheckVersionAuto->Check( true ); - m_menuHelp->AppendSeparator(); -diff -Naur FreeFileSync_11.13_Source_orig/FreeFileSync/Source/ui/main_dlg.cpp FreeFileSync_11.13_Source/FreeFileSync/Source/ui/main_dlg.cpp ---- FreeFileSync_11.13_Source_orig/FreeFileSync/Source/ui/main_dlg.cpp 2021-08-17 09:48:08.000000000 +0200 -+++ FreeFileSync_11.13_Source/FreeFileSync/Source/ui/main_dlg.cpp 2022-01-16 17:27:16.593500053 +0100 -@@ -845,7 +845,7 @@ + m_menuHelp->AppendSeparator(); +diff -Naur FreeFileSync_11.23_Source_orig/FreeFileSync/Source/ui/main_dlg.cpp FreeFileSync_11.23_Source/FreeFileSync/Source/ui/main_dlg.cpp +--- FreeFileSync_11.23_Source_orig/FreeFileSync/Source/ui/main_dlg.cpp 2022-07-23 15:18:28.000000000 +0200 ++++ FreeFileSync_11.23_Source/FreeFileSync/Source/ui/main_dlg.cpp 2022-08-26 15:48:40.582681036 +0200 +@@ -928,7 +928,7 @@ updateGui(); //register regular check for update on next idle event @@ -31,16 +31,16 @@ diff -Naur FreeFileSync_11.13_Source_orig/FreeFileSync/Source/ui/main_dlg.cpp Fr //asynchronous call to wxWindow::Layout(): fix superfluous frame on right and bottom when FFS is started in fullscreen mode Bind(wxEVT_IDLE, &MainDialog::onLayoutWindowAsync, this); -diff -Naur FreeFileSync_11.13_Source_orig/FreeFileSync/Source/ui/version_check.cpp FreeFileSync_11.13_Source/FreeFileSync/Source/ui/version_check.cpp ---- FreeFileSync_11.13_Source_orig/FreeFileSync/Source/ui/version_check.cpp 2022-01-16 17:31:51.876901517 +0100 -+++ FreeFileSync_11.13_Source/FreeFileSync/Source/ui/version_check.cpp 2022-01-16 17:32:03.004877442 +0100 +diff -Naur FreeFileSync_11.23_Source_orig/FreeFileSync/Source/ui/version_check.cpp FreeFileSync_11.23_Source/FreeFileSync/Source/ui/version_check.cpp +--- FreeFileSync_11.23_Source_orig/FreeFileSync/Source/ui/version_check.cpp 2022-07-23 15:18:28.000000000 +0200 ++++ FreeFileSync_11.23_Source/FreeFileSync/Source/ui/version_check.cpp 2022-08-26 15:49:30.950625085 +0200 @@ -77,7 +77,9 @@ return false; const time_t now = std::time(nullptr); - return std::abs(now - lastUpdateCheck) >= 7 * 24 * 3600; //check weekly + //return std::abs(now - lastUpdateCheck) >= 7 * 24 * 3600; //check weekly -+ ++ + return false; } diff --git a/FreeFileSync-icon-loader.patch b/FreeFileSync-icon-loader.patch index e56e130..b8feb52 100644 --- a/FreeFileSync-icon-loader.patch +++ b/FreeFileSync-icon-loader.patch @@ -1,11 +1,12 @@ ---- FreeFileSync_11.9_Source_orig/FreeFileSync/Source/base/icon_loader.cpp 2021-04-01 20:49:34.000000000 +0200 -+++ FreeFileSync_11.9_Source/FreeFileSync/Source/base/icon_loader.cpp 2021-05-14 16:26:33.212337647 +0200 -@@ -216,7 +216,7 @@ +diff -Naur FreeFileSync_11.23_Source_orig/FreeFileSync/Source/base/icon_loader.cpp FreeFileSync_11.23_Source/FreeFileSync/Source/base/icon_loader.cpp +--- FreeFileSync_11.23_Source_orig/FreeFileSync/Source/base/icon_loader.cpp 2022-07-23 15:18:28.000000000 +0200 ++++ FreeFileSync_11.23_Source/FreeFileSync/Source/base/icon_loader.cpp 2022-08-26 15:59:38.453852879 +0200 +@@ -227,7 +227,7 @@ //the remaining icon types won't block! assert(GDK_IS_PIXBUF(gicon) || G_IS_THEMED_ICON(gicon) || G_IS_EMBLEMED_ICON(gicon)); -- return FileIconHolder(static_cast(::g_object_ref(gicon)) /*pass ownership*/, maxSize); -+ return FileIconHolder(gicon /*pass ownership*/, maxSize); +- ::g_object_ref(gicon); //pass ownership ++ //::g_object_ref(gicon); //pass ownership + return FileIconHolder(gicon, maxSize); // } - diff --git a/FreeFileSync-resources.patch b/FreeFileSync-resources.patch index 0af23aa..60d9ee5 100644 --- a/FreeFileSync-resources.patch +++ b/FreeFileSync-resources.patch @@ -1,10 +1,11 @@ ---- FreeFileSync_11.0_Source_orig/FreeFileSync/Source/ffs_paths.cpp 2020-07-22 13:22:20.000000000 +0200 -+++ FreeFileSync_11.0_Source/FreeFileSync/Source/ffs_paths.cpp 2020-08-04 15:21:24.667813874 +0200 -@@ -64,7 +64,8 @@ +diff -Naur FreeFileSync_11.23_Source_orig/FreeFileSync/Source/ffs_paths.cpp FreeFileSync_11.23_Source/FreeFileSync/Source/ffs_paths.cpp +--- FreeFileSync_11.23_Source_orig/FreeFileSync/Source/ffs_paths.cpp 2022-07-23 15:18:28.000000000 +0200 ++++ FreeFileSync_11.23_Source/FreeFileSync/Source/ffs_paths.cpp 2022-08-26 15:41:30.007973691 +0200 +@@ -49,7 +49,8 @@ - Zstring fff::getResourceDirPf() + Zstring fff::getResourceDirPath() { -- return getProcessParentFolderPath() + FILE_NAME_SEPARATOR + Zstr("Resources") + FILE_NAME_SEPARATOR; +- return appendPath(getProcessParentFolderPath(), Zstr("Resources")); + // for opensuse install to /usr/share/FreeFileSync specificly + return Zstr("/usr/share/FreeFileSync/"); } diff --git a/FreeFileSync.changes b/FreeFileSync.changes index dd076e7..12c7615 100644 --- a/FreeFileSync.changes +++ b/FreeFileSync.changes @@ -1,4 +1,42 @@ ------------------------------------------------------------------- +Sat Aug 26 15:03:02 UTC 2022 - Jannik Seiler + +- Update to 11.23 + - Format local file times with no limits on time span + - Deferred child item failure when traversing MTP folder + - Fixed occasional wrong thumbnail orientation for MTP + - Support additional image formats for MTP preview (e.g. CR2) + - Fixed folder pair window being squashed after text size increase + - Fixed wrong folder pair order when loading config (Linux) + - Fixed some images being stretched on high-DPI monitors + - Fixed config panel tab text being mirrored in RTL layout + - Fixed parsing file times one second before Unix epoch (Gdrive, FTP) +- Changes from 11.22 + - Allow to change default log folder in global settings + - Fixed sort order when items existing on one side only + - Consider HOME environment variable for home path (Linux) + - Fixed config selection using shift and arrow keys + - Start comparison, then sync by only pressing Enter after startup + - Fall back to default path when failing to save log file + - Improved relative config path handling in portable mode +- Changes from 11.21 + - Support volume GUID as path: \\?\Volume{01234567-89ab-cdef-0123-456789abcdef} (Windows) + - Avoid Two-Way conflict when changing folder name upper/lower-case + - List hidden warning messages in options dialog + - Fixed buffer overflow while receiving SFTP server banner + - Create crash dumps even if FFS-internal crash handling doesn't kick in + - Log time when error occured, not when it is reported + - Swap sides: Require confirmation only after comparison + - Updated translation files +- Changes from 11.20 + - Fixed broken icon scaling on high-DPI displays + - Fixed user language set to English after update +- Drop obsolete FreeFileSync-build-with-gcc12.patch +- Drop obsolete FreeFileSync-build-with-wx3.1.5.patch +- Update FreeFileSync-disable-in-app-updates.patch for version 11.23 +- Update FreeFileSync-icon-loader.patch for version 11.23 +- Update FreeFileSync-resources.patch for version 11.23 +------------------------------------------------------------------- Sat Jun 11 15:06:02 UTC 2022 - Jannik Seiler - Update to 11.19 diff --git a/FreeFileSync.spec b/FreeFileSync.spec index dc88c0a..181ccb5 100644 --- a/FreeFileSync.spec +++ b/FreeFileSync.spec @@ -17,7 +17,7 @@ Name: FreeFileSync -Version: 11.19 +Version: 11.23 Release: 0 Summary: Backup software to synchronize files and folders License: GPL-3.0-or-later @@ -34,9 +34,9 @@ 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 +#Patch5: FreeFileSync-build-with-wx3.1.5.patch # can be droped with 11.21 -Patch6: FreeFileSync-build-with-gcc12.patch +#Patch6: FreeFileSync-build-with-gcc12.patch BuildRequires: boost-devel >= 1.54 BuildRequires: gcc-c++ BuildRequires: libcurl-devel diff --git a/FreeFileSync_11.19_Source.zip b/FreeFileSync_11.19_Source.zip deleted file mode 100644 index 8e77ce1..0000000 --- a/FreeFileSync_11.19_Source.zip +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ae4b61fb8108977da9c215403c3f8e958900376874e28f3c1b25f877b98015f2 -size 2664327 diff --git a/FreeFileSync_11.23_Source.zip b/FreeFileSync_11.23_Source.zip new file mode 100644 index 0000000..2cc3f67 --- /dev/null +++ b/FreeFileSync_11.23_Source.zip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3e2602eea1224caf2dd9fb0d73f9e15248eeb749c7666231464c9f6bfa0ccb66 +size 2651480 From 7c42275081102d4772d61233972210c871fa2374b9c4f4e817e8430303f3f856 Mon Sep 17 00:00:00 2001 From: Jannik Seiler Date: Wed, 31 Aug 2022 07:43:08 +0000 Subject: [PATCH 2/2] remove obsolete comment OBS-URL: https://build.opensuse.org/package/show/network/FreeFileSync?expand=0&rev=57 --- FreeFileSync.spec | 4 ---- 1 file changed, 4 deletions(-) diff --git a/FreeFileSync.spec b/FreeFileSync.spec index 181ccb5..8b9ea49 100644 --- a/FreeFileSync.spec +++ b/FreeFileSync.spec @@ -33,10 +33,6 @@ Patch1: FreeFileSync-resources.patch 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