From 39d4fd9cfb9ed7ecbe950b895ddc2311d12eaa2c Mon Sep 17 00:00:00 2001 From: B Stack Date: Sun, 21 Jun 2020 16:14:36 -0400 Subject: WIP: ffs rpm It appears I cannot easily revert to std=c++17 behavior, so all releases with gcc < 10 will fail. --- freefilesync/ffs_no_eraseif.patch | 52 +++++++++++----------- freefilesync/ffs_no_wx311.patch | 18 ++++++-- freefilesync/freefilesync.spec | 2 +- .../revert_zenju_aggressive_upstreamisms.patch | 30 ++++++------- 4 files changed, 55 insertions(+), 47 deletions(-) (limited to 'freefilesync') diff --git a/freefilesync/ffs_no_eraseif.patch b/freefilesync/ffs_no_eraseif.patch index f4a7b46..71239e4 100644 --- a/freefilesync/ffs_no_eraseif.patch +++ b/freefilesync/ffs_no_eraseif.patch @@ -11,28 +11,28 @@ diff -x '*.swp' -x .git -x '*.orig' -x '*.rej' -Naur 10.18-1/FreeFileSync/Source //get or create mutex std::weak_ptr& weakPtr = pathLocks[nativePath]; -diff -x '*.swp' -x '*.git*' -x '*.orig' -x '*.rej' -Naur 10.24-0/FreeFileSync/Source/afs/gdrive.cpp 10.24-1/FreeFileSync/Source/afs/gdrive.cpp ---- 10.18-0/FreeFileSync/Source/afs/gdrive.cpp 2019-11-20 16:15:55.828668123 -0500 -+++ 10.24-1/FreeFileSync/Source/afs/gdrive.cpp 2020-05-18 10:30:32.420537123 -0400 -@@ -1578,7 +1578,7 @@ +diff -Naur 10.25-0/FreeFileSync/Source/afs/gdrive.cpp 10.25-1/FreeFileSync/Source/afs/gdrive.cpp +--- 10.25-0/FreeFileSync/Source/afs/gdrive.cpp 2020-06-19 16:17:15.000000000 -0400 ++++ 10.25-1/FreeFileSync/Source/afs/gdrive.cpp 2020-06-20 20:54:52.438669026 -0400 +@@ -1930,7 +1930,7 @@ if (auto it = itemDetails_.find(itemId); it != itemDetails_.end()) { - GoogleItemDetails detailsNew = it->second; + GdriveItemDetails detailsNew = it->second; - std::erase_if(detailsNew.parentIds, [&](const std::string& id) { return id == parentIdOld; }); + eraseIf(detailsNew.parentIds, [&](const std::string& id) { return id == parentIdOld; }); - notifyItemUpdate(stateDelta, itemId, detailsNew); + notifyItemUpdated(stateDelta, itemId, &detailsNew); } else //conflict!!! -@@ -1592,7 +1592,7 @@ - GoogleItemDetails detailsNew = it->second; - detailsNew.itemName = utfTo(newName); +@@ -1944,7 +1944,7 @@ + GdriveItemDetails detailsNew = it->second; + detailsNew.itemName = newName; - std::erase_if(detailsNew.parentIds, [&](const std::string& id) { return id == parentIdFrom || id == parentIdTo; }); // + eraseIf(detailsNew.parentIds, [&](const std::string& id) { return id == parentIdFrom || id == parentIdTo; }); // detailsNew.parentIds.push_back(parentIdTo); //not a duplicate - notifyItemUpdate(stateDelta, itemId, detailsNew); -@@ -1701,7 +1701,7 @@ + notifyItemUpdated(stateDelta, itemId, &detailsNew); +@@ -2095,7 +2095,7 @@ return; //=> avoid misleading changeLog_ entries after Google Drive sync!!! //update change logs (and clean up obsolete entries) @@ -41,7 +41,7 @@ diff -x '*.swp' -x '*.git*' -x '*.orig' -x '*.rej' -Naur 10.24-0/FreeFileSync/So { if (std::shared_ptr iid = weakPtr.lock()) { -@@ -1722,15 +1722,15 @@ +@@ -2116,15 +2116,15 @@ std::vector parentIdsNew = details->parentIds; std::vector parentIdsRemoved = it->second.parentIds; @@ -58,9 +58,9 @@ diff -x '*.swp' -x '*.git*' -x '*.orig' -x '*.rej' -Naur 10.24-0/FreeFileSync/So - std::erase_if(itP->second.childItems, [&](auto itChild) { return itChild == it; }); + eraseIf(itP->second.childItems, [&](auto itChild) { return itChild == it; }); //if all parents are removed, Google Drive will (recursively) delete the item => don't prematurely do this now: wait for change notifications! + //OR: item without parents located in "Shared with me", but referenced via Shortcut => don't remove!!! - it->second = *details; -@@ -1749,7 +1749,7 @@ +@@ -2144,7 +2144,7 @@ { for (const std::string& parentId : it->second.parentIds) //1. delete from parent folders if (auto itP = folderContents_.find(parentId); itP != folderContents_.end()) @@ -69,8 +69,8 @@ diff -x '*.swp' -x '*.git*' -x '*.orig' -x '*.rej' -Naur 10.24-0/FreeFileSync/So itemDetails_.erase(it); } -@@ -1757,7 +1757,7 @@ - if (auto itP = folderContents_.find(itemId); itP != folderContents_.end()) +@@ -2153,7 +2153,7 @@ + itP != folderContents_.end()) { for (auto itChild : itP->second.childItems) //2. delete as parent from child items (don't wait for change notifications of children) - std::erase_if(itChild->second.parentIds, [&](const std::string& id) { return id == itemId; }); @@ -242,18 +242,18 @@ diff -x '*.swp' -x .git -x '*.orig' -x '*.rej' -Naur 10.18-1/FreeFileSync/Source SetString(pos, wxString()); //in contrast to Delete(), this one does not kill the drop-down list and gives a nice visual feedback! //Delete(pos); -diff -x '*.swp' -x .git -x '*.orig' -x '*.rej' -Naur 10.18-1/FreeFileSync/Source/ui/file_view.cpp 10.18-2/FreeFileSync/Source/ui/file_view.cpp ---- 10.18-1/FreeFileSync/Source/ui/file_view.cpp 2019-11-20 16:15:55.849668360 -0500 -+++ 10.18-2/FreeFileSync/Source/ui/file_view.cpp 2019-11-20 17:57:30.562558429 -0500 -@@ -253,7 +253,7 @@ - rowPositionsFirstChild_.clear(); - +diff -Naur 10.25-0/FreeFileSync/Source/ui/file_view.cpp 10.25-1/FreeFileSync/Source/ui/file_view.cpp +--- 10.25-0/FreeFileSync/Source/ui/file_view.cpp 2020-06-19 16:17:15.000000000 -0400 ++++ 10.25-1/FreeFileSync/Source/ui/file_view.cpp 2020-06-20 20:55:25.978009894 -0400 +@@ -321,7 +321,7 @@ + void FileView::removeInvalidRows() + { //remove rows that have been deleted meanwhile -- std::erase_if(sortedRef_, [&](const RefIndex& refIdx) { return !FileSystemObject::retrieve(refIdx.objId); }); -+ eraseIf(sortedRef_, [&](const RefIndex& refIdx) { return !FileSystemObject::retrieve(refIdx.objId); }); - } - +- std::erase_if(sortedRef_, [&](const FileSystemObject::ObjectId& objId) { return !FileSystemObject::retrieve(objId); }); ++ eraseIf(sortedRef_, [&](const FileSystemObject::ObjectId& objId) { return !FileSystemObject::retrieve(objId); }); + viewRef_ .clear(); + rowPositions_ .clear(); diff -x '*.swp' -x .git -x '*.orig' -x '*.rej' -Naur 10.18-1/FreeFileSync/Source/ui/folder_history_box.h 10.18-2/FreeFileSync/Source/ui/folder_history_box.h --- 10.18-1/FreeFileSync/Source/ui/folder_history_box.h 2019-11-20 16:15:55.849668360 -0500 +++ 10.18-2/FreeFileSync/Source/ui/folder_history_box.h 2019-11-20 17:57:30.562558429 -0500 diff --git a/freefilesync/ffs_no_wx311.patch b/freefilesync/ffs_no_wx311.patch index f617122..926f7b8 100644 --- a/freefilesync/ffs_no_wx311.patch +++ b/freefilesync/ffs_no_wx311.patch @@ -1,8 +1,18 @@ 2019-08-15 just compile. -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.3-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:41:43.498308243 -0500 -@@ -1546,7 +1546,7 @@ +diff -Naur 10.25-0/FreeFileSync/Source/ui/small_dlgs.cpp 10.25-1/FreeFileSync/Source/ui/small_dlgs.cpp +--- 10.25-0/FreeFileSync/Source/ui/small_dlgs.cpp 2020-06-19 16:17:15.000000000 -0400 ++++ 10.25-1/FreeFileSync/Source/ui/small_dlgs.cpp 2020-06-20 14:23:47.488836409 -0400 +@@ -293,7 +293,8 @@ + { + showNotificationDialog(this, DialogInfoType::error, PopupDialogCfg().setDetailInstructions(e.toString())); + } +- m_listBoxGdriveUsers->Append(gdriveAccounts); ++ for (const wxString& item : gdriveAccounts) // reverted to pre-wx 3.1.1 logic ++ m_listBoxGdriveUsers->Append(item); + + //set default values for Google Drive: use first item of m_listBoxGdriveUsers + if (!gdriveAccounts.empty() && !acceptsItemPathPhraseGdrive(folderPathPhrase)) +@@ -1663,7 +1664,7 @@ //setMainInstructionFont(*m_staticTextMain); m_bitmapActivation->SetBitmap(getResourceImage("internet")); diff --git a/freefilesync/freefilesync.spec b/freefilesync/freefilesync.spec index 914c333..afc6c5f 100644 --- a/freefilesync/freefilesync.spec +++ b/freefilesync/freefilesync.spec @@ -19,7 +19,7 @@ %define libssh2_name libssh2-%{name} %endif Name: freefilesync -Version: 10.24 +Version: 10.25 Release: 1%{?dist} Summary: A file synchronization utility diff --git a/freefilesync/revert_zenju_aggressive_upstreamisms.patch b/freefilesync/revert_zenju_aggressive_upstreamisms.patch index 0da4e06..355f5f0 100644 --- a/freefilesync/revert_zenju_aggressive_upstreamisms.patch +++ b/freefilesync/revert_zenju_aggressive_upstreamisms.patch @@ -16,20 +16,18 @@ libwxgtk3.0-dev_3.0.4+dfsg-14_i386.deb wx3.0-headers_3.0.4+dfsg-14_all.deb wx-common_3.0.4+dfsg-14_amd64.deb wx-common_3.0.4+dfsg-14_i386.deb -diff -x '*.rej' -x '*.orig' -x '*.git*' -Naur 10.24-0/zen/legacy_compiler.h 10.24-1/zen/legacy_compiler.h ---- 10.24-0/zen/legacy_compiler.h 2020-05-17 13:44:27.542140458 -0400 -+++ 10.24-1/zen/legacy_compiler.h 2020-05-17 14:07:49.115166339 -0400 -@@ -7,9 +7,6 @@ +diff -x '*.rej' -x '*.orig' -Naur 10.25-0/zen/legacy_compiler.h 10.25-1/zen/legacy_compiler.h +--- 10.25-0/zen/legacy_compiler.h 2020-06-19 16:17:16.000000000 -0400 ++++ 10.25-1/zen/legacy_compiler.h 2020-06-20 21:05:15.159166242 -0400 +@@ -7,7 +7,6 @@ #ifndef LEGACY_COMPILER_H_839567308565656789 #define LEGACY_COMPILER_H_839567308565656789 - #include //C++20 -- -- #include //requires C++20 -@@ -21,8 +18,53 @@ +@@ -20,6 +19,53 @@ //--------------------------------------------------------------------------------- @@ -55,10 +53,10 @@ diff -x '*.rej' -x '*.orig' -x '*.git*' -Naur 10.24-0/zen/legacy_compiler.h 10.2 + + const_iterator begin() const { return data_; } + const_iterator end () const { return data_ + size_; } - ++ + const_iterator cbegin() const { return begin(); } + const_iterator cend () const { return end (); } - ++ + T* data() const { return data_; } + size_t size() const { return size_; } + bool empty() const { return size_ == 0; } @@ -80,22 +78,22 @@ diff -x '*.rej' -x '*.orig' -x '*.git*' -Naur 10.24-0/zen/legacy_compiler.h 10.2 +const double sqrt2 = 1.41421356237309504880; +const double ln2 = 0.693147180559945309417; +} - } -diff -x '*.rej' -x '*.orig' -x '*.git*' -Naur 10.24-0/zen/string_base.h 10.24-1/zen/string_base.h ---- 10.24-0/zen/string_base.h 2020-05-17 13:44:27.554140569 -0400 -+++ 10.24-1/zen/string_base.h 2020-05-17 14:09:44.164244361 -0400 -@@ -12,7 +12,9 @@ + } +diff -x '*.rej' -x '*.orig' -Naur 10.25-0/zen/string_base.h 10.25-1/zen/string_base.h +--- 10.25-0/zen/string_base.h 2020-06-19 16:17:16.000000000 -0400 ++++ 10.25-1/zen/string_base.h 2020-06-20 21:06:05.705698462 -0400 +@@ -11,7 +11,9 @@ + #include #include #include - #include "string_tools.h" +#if __cpp_impl_three_way_comparison && __cpp_lib_three_way_comparison #include +#endif + #include "string_tools.h" - //Zbase - a policy based string class optimizing performance and flexibility @@ -293,15 +295,29 @@ }; -- cgit