diff options
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | freefilesync/README-freefilesync.md | 25 | ||||
-rw-r--r-- | freefilesync/README.md | 30 | ||||
-rw-r--r-- | freefilesync/debian/changelog | 8 | ||||
-rw-r--r-- | freefilesync/debian/freefilesync+devuan.dsc | 2 | ||||
-rw-r--r-- | freefilesync/debian/patches/ffs_traditional_view.patch | 144 | ||||
-rw-r--r-- | freefilesync/ffs_traditional_view.patch | 144 | ||||
-rw-r--r-- | freefilesync/freefilesync.spec | 5 | ||||
-rwxr-xr-x | ublock-origin-combined/build-orig-tarball.sh | 94 | ||||
-rw-r--r-- | ublock-origin-combined/debian/changelog | 6 | ||||
-rwxr-xr-x | ublock-origin-combined/deploy-to-obs.sh | 34 | ||||
-rw-r--r-- | ublock-origin-combined/ublock-origin-combined.spec | 5 |
12 files changed, 437 insertions, 61 deletions
@@ -6,3 +6,4 @@ /*.t?z /*.sig /*.asc +*.tar.?z diff --git a/freefilesync/README-freefilesync.md b/freefilesync/README-freefilesync.md deleted file mode 100644 index 02d0505..0000000 --- a/freefilesync/README-freefilesync.md +++ /dev/null @@ -1,25 +0,0 @@ -# Summary for CentOS 7 compilation of freefilesync - -### Dependencies to build FreeFileSync on CentOS 7 -All of the packages in the next section, and also -* devtoolset-7 [Software Collections (SCL)][3] -* custom patches provided in this repo. - -### Sources of the bgstack15/FreeFileSync copr packages -Custom packages: -* openssl: [bgstack15][1] -* libssh2: [city-fan][2] -* curl: city-fan -* libmetalink: city-fan -* libpsl: city-fan - -# Credits -This package, freefilesync, is made possible by the concerted efforts of many people and groups -* Zenju, author of the upstream project [FreeFileSync](http://freefilesync.org) -* [PhantomX](https://github.com/PhantomX/)/chinforpms [freefilesync spec](https://github.com/PhantomX/chinforpms/tree/master/freefilesync) -* My [original freefilesync spec](https://gitlab.com/bgstack15/freefilesync-rpm/) - -# References -[1][https://bgstack15.wordpress.com] -[2][http://www.city-fan.org/ftp/contrib/yum-repo/] -[3][https://www.softwarecollections.org/en/scls/rhscl/devtoolset-7/] diff --git a/freefilesync/README.md b/freefilesync/README.md index 1e0b276..4075b91 100644 --- a/freefilesync/README.md +++ b/freefilesync/README.md @@ -10,7 +10,7 @@ Fedora, CentOS, and Devuan do not package FreeFileSync. I maintained a separate ## Alternatives * rsync traditional cli sync utility -* grsync gtk frotend for rsync +* grsync gtk frontend for rsync * duplicati sync with cloud storage offerings * rclone another cloud storage sync utility @@ -26,6 +26,34 @@ Devuan Ceres | 11.3 | 3 ## Additional info Upstream officially still [uses gtk2](https://freefilesync.org/forum/viewtopic.php?t=7660&p=26079#p26063) but the code supports gtk3 starting around version 10.25. With version 10.25, only stdc++=20 is supported, so el7 cannot go any higher: I was unable to find g++-10 for el7. +On the rpm platforms, where gtk2 is still supported as a primary environment, I compile FreeFileSync against gtk2. On Devuan where gtk2 has been obsoleted, I compile against gtk3. + + +## CentOS compilation of freefilesync + +### Dependencies to build FreeFileSync on CentOS 7 +All of the packages in the next section, and also +* devtoolset-7 [Software Collections (SCL)][3] +* custom patches provided in this repo. + +### Sources of the bgstack15/FreeFileSync copr packages +Custom packages: +* openssl: [bgstack15][1] +* libssh2: [city-fan][2] +* curl: city-fan +* libmetalink: city-fan +* libpsl: city-fan + +### Credits +This package, freefilesync, is made possible by the concerted efforts of many people and groups +* Zenju, author of the upstream project [FreeFileSync](http://freefilesync.org) +* [PhantomX](https://github.com/PhantomX/)/chinforpms [freefilesync spec](https://github.com/PhantomX/chinforpms/tree/master/freefilesync) +* My [original freefilesync spec](https://gitlab.com/bgstack15/freefilesync-rpm/) + +### References +[1][https://bgstack15.wordpress.com] +[2][http://www.city-fan.org/ftp/contrib/yum-repo/] +[3][https://www.softwarecollections.org/en/scls/rhscl/devtoolset-7/] ## Differences from upstream None diff --git a/freefilesync/debian/changelog b/freefilesync/debian/changelog index 2e40831..dfbe0e2 100644 --- a/freefilesync/debian/changelog +++ b/freefilesync/debian/changelog @@ -1,3 +1,11 @@ +freefilesync (11.3-2+devuan) obs; urgency=medium + + * [bgstack15] completely fix traditional view patch + - remove all small gridlines + - fix Trad. Rel view with valid relative path names + + -- Ben Stack <bgstack15@gmail.com> Thu, 05 Nov 2020 13:09:27 -0500 + freefilesync (11.3-1+devuan) obs; urgency=low * Upstream updates diff --git a/freefilesync/debian/freefilesync+devuan.dsc b/freefilesync/debian/freefilesync+devuan.dsc index 347d8d8..ede807f 100644 --- a/freefilesync/debian/freefilesync+devuan.dsc +++ b/freefilesync/debian/freefilesync+devuan.dsc @@ -2,7 +2,7 @@ Format: 3.0 (quilt) Source: freefilesync Binary: freefilesync Architecture: any -Version: 11.3-1+devuan +Version: 11.3-2+devuan Maintainer: B Stack <bgstack15@gmail.com> Homepage: https://freefilesync.org/ Standards-Version: 4.1.4 diff --git a/freefilesync/debian/patches/ffs_traditional_view.patch b/freefilesync/debian/patches/ffs_traditional_view.patch index ff78325..f627a0a 100644 --- a/freefilesync/debian/patches/ffs_traditional_view.patch +++ b/freefilesync/debian/patches/ffs_traditional_view.patch @@ -1,10 +1,11 @@ Version: 11.3 -Date: 2020-11-01 +Date: 2020-11-05 Author: bgstack15@gmail.com Message: restore a traditional view to FreeFileSync +The Nov 5 patch removes the lines between groups, and also fixes the relative paths in "Trad. Rel" view. diff -x '*.orig' -x '*.rej' -aur 11.3-0/FreeFileSync/Source/ui/file_grid.cpp 11.3-1/FreeFileSync/Source/ui/file_grid.cpp ---- 11.3-0/FreeFileSync/Source/ui/file_grid.cpp 2020-11-01 17:14:27.531500950 -0500 -+++ 11.3-1/FreeFileSync/Source/ui/file_grid.cpp 2020-11-01 22:52:14.590746142 -0500 +--- 11.3-1/FreeFileSync/Source/ui/file_grid.cpp 2020-11-02 11:38:14.806496077 -0500 ++++ 11.3-2/FreeFileSync/Source/ui/file_grid.cpp 2020-11-05 11:11:46.146360956 -0500 @@ -493,8 +493,10 @@ case ItemPathFormat::name: return utfTo<std::wstring>(fsObj->getItemName<side>()); @@ -16,7 +17,22 @@ diff -x '*.orig' -x '*.rej' -aur 11.3-0/FreeFileSync/Source/ui/file_grid.cpp 11. return AFS::getDisplayPath(fsObj->getAbstractPath<side>()); } assert(false); -@@ -654,6 +656,27 @@ +@@ -547,8 +549,13 @@ + else + GridData::renderRowBackgound(dc, rect, row, true /*enabled*/, true /*selected*/, rowHover); + ++ // trad patch section for removing lines around items in grid ++ int lineWidth { fastFromDIP(1) } ; ++ if (itemPathFormat_ == ItemPathFormat::traditional || itemPathFormat_ == ItemPathFormat::tradrel) ++ lineWidth = 0; ++ + //---------------------------------------------------------------------------------- +- const wxRect rectLine(rect.x, rect.y + rect.height - fastFromDIP(1), rect.width, fastFromDIP(1)); ++ const wxRect rectLine(rect.x, rect.y + rect.height - lineWidth, rect.width, lineWidth); + clearArea(dc, rectLine, row == pdi.groupLastRow - 1 /*last group item*/ ? + getColorGridLine() : getDefaultBackgroundColorAlternating(pdi.groupIdx % 2 != 0)); + } +@@ -654,6 +661,26 @@ else //=> BaseFolderPair groupParentFolder = AFS::getDisplayPath(pdi.fsObj->base().getAbstractPath<side>()); break; @@ -35,16 +51,27 @@ diff -x '*.orig' -x '*.rej' -aur 11.3-0/FreeFileSync/Source/ui/file_grid.cpp 11. + case ItemPathFormat::tradrel: + if (pdi.folderGroupObj) + { -+ groupName = utfTo<std::wstring>(pdi.folderGroupObj ->template getItemName <side>()); -+ groupParentFolder = utfTo<std::wstring>(pdi.folderGroupObj->parent().template getRelativePath<side>()) + \ -+ utfTo<std::wstring>(pdi.folderGroupObj ->template getItemName<side>()); ++ groupName = utfTo<std::wstring>(pdi.folderGroupObj->template getItemName <side>()); ++ groupParentFolder = utfTo<std::wstring>(pdi.folderGroupObj->template getRelativePath<side>()); + } + break; + } //path components should follow the app layout direction and are NOT a single piece of text! -@@ -684,6 +707,31 @@ +@@ -679,11 +706,42 @@ + int groupNameWidth = groupName.empty() ? 0 : (gapSize_ + iconSize + gapSize_ + getTextExtentBuffered(dc, groupName).x); + const int groupNameMinWidth = groupName.empty() ? 0 : (gapSize_ + iconSize + gapSize_ + ellipsisWidth); + +- const int groupSepWidth = (groupParentFolder.empty() && groupName.empty()) ? 0 : (2 * gapSize_ + fastFromDIP(1)); ++ // trad patch section for removing lines around items in grid ++ // code duplication because this is a different scope! ++ int lineWidth { fastFromDIP(1) } ; ++ if (itemPathFormat_ == ItemPathFormat::traditional || itemPathFormat_ == ItemPathFormat::tradrel) ++ lineWidth = 0; ++ ++ const int groupSepWidth = (groupParentFolder.empty() && groupName.empty()) ? 0 : (2 * gapSize_ + lineWidth); + int groupItemsWidth = groupSepWidth + (drawFileIcons ? gapSize_ + iconSize : 0) + gapSize_ + groupItemNamesWidth; const int groupItemsMinWidth = groupSepWidth + (drawFileIcons ? gapSize_ + iconSize : 0) + gapSize_ + ellipsisWidth; @@ -76,7 +103,7 @@ diff -x '*.orig' -x '*.rej' -aur 11.3-0/FreeFileSync/Source/ui/file_grid.cpp 11. //not enough space? => collapse if (int excessWidth = groupParentWidth + groupNameWidth + groupItemsWidth - maxWidth; excessWidth > 0) -@@ -693,10 +741,6 @@ +@@ -693,10 +751,6 @@ //1. render group components on two rows stackedGroupRender = true; @@ -87,7 +114,7 @@ diff -x '*.orig' -x '*.rej' -aur 11.3-0/FreeFileSync/Source/ui/file_grid.cpp 11. if (!endsWith(groupParentFolder, L'/' ) && //e.g. ftp://server/ !endsWith(groupParentFolder, L'\\')) /*e.g. C:\ */ groupParentFolder += groupParentSep; -@@ -755,6 +799,11 @@ +@@ -755,6 +809,11 @@ } } } @@ -99,7 +126,7 @@ diff -x '*.orig' -x '*.rej' -aur 11.3-0/FreeFileSync/Source/ui/file_grid.cpp 11. return { -@@ -873,6 +922,9 @@ +@@ -873,6 +932,9 @@ rectGroup = rectGroupParent = rectGroupName = rectTmp; rectGroupParent.width = groupParentWidth; @@ -109,15 +136,40 @@ diff -x '*.orig' -x '*.rej' -aur 11.3-0/FreeFileSync/Source/ui/file_grid.cpp 11. rectGroupName .width = groupNameWidth; if (stackedGroupRender) -@@ -922,6 +974,7 @@ +@@ -896,6 +958,11 @@ + rectGroupItems.width = 0; + } + ++ // trad patch section for removing lines around items in grid ++ int lineWidth { fastFromDIP(1) } ; ++ if (itemPathFormat_ == ItemPathFormat::traditional || itemPathFormat_ == ItemPathFormat::tradrel) ++ lineWidth = 0; ++ + //------------------------------------------------------------------------- + { + //clear background below parent path => harmonize with renderRowBackgound() +@@ -906,8 +973,8 @@ + wxRect rectGroupBack = rectGroup; + rectGroupBack.width += 2 * gapSize_; //include gap before vline + +- if (row == pdi.groupLastRow - 1 /*last group item*/) //preserve the group separation line! +- rectGroupBack.height -= fastFromDIP(1); ++ if (row == pdi.groupLastRow - 1 /*last group item*/) //preserve the group separation line! ++ rectGroupBack.height -= lineWidth; + + clearArea(dc, rectGroupBack, getDefaultBackgroundColorAlternating(pdi.groupIdx % 2 == 0)); + //clearArea() is surprisingly expensive => call just once! +@@ -922,7 +989,8 @@ rectNav.width = fastFromDIP(20); if (row == pdi.groupLastRow - 1 /*last group item*/) //preserve the group separation line! +- rectNav.height -= fastFromDIP(1); + if (itemPathFormat_ != ItemPathFormat::traditional && itemPathFormat_ != ItemPathFormat::tradrel) - rectNav.height -= fastFromDIP(1); ++ rectNav.height -= lineWidth; wxColor backCol = *wxWHITE; -@@ -930,7 +983,7 @@ + dc.GetPixel(rectNav.GetTopRight(), &backCol); //e.g. selected row! +@@ -930,11 +998,11 @@ dc.GradientFillLinear(rectNav, getColorSelectionGradientFrom(), backCol, wxEAST); } @@ -126,7 +178,12 @@ diff -x '*.orig' -x '*.rej' -aur 11.3-0/FreeFileSync/Source/ui/file_grid.cpp 11. { wxRect rectGroupNameBack = rectGroupName; rectGroupNameBack.width += 2 * gapSize_; //include gap left of vline -@@ -972,10 +1025,10 @@ +- rectGroupNameBack.height -= fastFromDIP(1); //harmonize with item separation lines ++ rectGroupNameBack.height -= lineWidth; //harmonize with item separation lines + + //mouse highlight: group name + wxDCTextColourChanger textColorGroupName(dc); +@@ -972,10 +1040,10 @@ drawCellText(dc, rectGroupName, groupName, wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL, &getTextExtentBuffered(dc, groupName)); } @@ -139,7 +196,42 @@ diff -x '*.orig' -x '*.rej' -aur 11.3-0/FreeFileSync/Source/ui/file_grid.cpp 11. { wxRect rectGroupParentText = rectGroupParent; rectGroupParentText.x += gapSize_; -@@ -1166,6 +1219,10 @@ +@@ -994,16 +1062,16 @@ + rectGroupItems.x += 2 * gapSize_; + rectGroupItems.width -= 2 * gapSize_; + +- wxDCPenChanger dummy(dc, wxPen(getColorGridLine(), fastFromDIP(1))); ++ wxDCPenChanger dummy(dc, wxPen(getColorGridLine(), lineWidth)); + dc.DrawLine(rectGroupItems.GetTopLeft(), rectGroupItems.GetBottomLeft() + wxPoint(0, 1)); //draws half-open range! + +- rectGroupItems.x += fastFromDIP(1); +- rectGroupItems.width -= fastFromDIP(1); ++ rectGroupItems.x += lineWidth; ++ rectGroupItems.width -= lineWidth; + } + //------------------------------------------------------------------------- + + wxRect rectItemsBack = rectGroupItems; +- rectItemsBack.height -= fastFromDIP(1); //preserve item separation lines! ++ rectItemsBack.height -= lineWidth; //preserve item separation lines! + + //mouse highlight: item name + wxDCTextColourChanger textColorGroupItems(dc); +@@ -1134,7 +1202,12 @@ + groupNameWidth] = getGroupRenderLayout(dc, row, pdi, insanelyHugeWidth); + assert(!stackedGroupRender); + +- const int groupSepWidth = (groupParentFolder.empty() && groupName.empty()) ? 0 : (2 * gapSize_ + fastFromDIP(1)); ++ // trad patch section for removing lines around items in grid ++ int lineWidth { fastFromDIP(1) } ; ++ if (itemPathFormat_ == ItemPathFormat::traditional || itemPathFormat_ == ItemPathFormat::tradrel) ++ lineWidth = 0; ++ ++ const int groupSepWidth = (groupParentFolder.empty() && groupName.empty()) ? 0 : (2 * gapSize_ + lineWidth); + const int fileIconWidth = getIconManager().getIconBuffer() ? gapSize_ + getIconManager().getIconSize() : 0; + const int ellipsisWidth = getTextExtentBuffered(dc, ELLIPSIS).x; + const int itemWidth = itemName.empty() ? 0 : +@@ -1166,6 +1239,10 @@ return _("Relative path"); case ItemPathFormat::full: return _("Full path"); @@ -150,6 +242,26 @@ diff -x '*.orig' -x '*.rej' -aur 11.3-0/FreeFileSync/Source/ui/file_grid.cpp 11. } assert(false); break; +@@ -1423,7 +1500,8 @@ + GridData::renderRowBackgound(dc, rect, row, true /*enabled*/, true /*selected*/, rowHover); + + //---------------------------------------------------------------------------------- +- const wxRect rectLine(rect.x, rect.y + rect.height - fastFromDIP(1), rect.width, fastFromDIP(1)); ++ // just hardcoding this in this trad patch, because itempathFormat_ is not available in this scope. ++ const wxRect rectLine(rect.x, rect.y + rect.height - 0, rect.width, 0); + clearArea(dc, rectLine, row == pdi.groupLastRow - 1 /*last group item*/ ? + getColorGridLine() : getDefaultBackgroundColorAlternating(pdi.groupIdx % 2 != 0)); + } +@@ -1447,7 +1525,8 @@ + { + wxRect rectBack = rect; + if (row == pdi.groupLastRow - 1 /*last group item*/) //preserve the group separation line! +- rectBack.height -= fastFromDIP(1); ++ // just hardcoding this in this trad patch, because itempathFormat_ is not available in this scope. ++ rectBack.height -= 0; + + clearArea(dc, rectBack, col); + } diff -x '.git*' -x '*.orig' -x '*.rej' -aur 11.2-1/FreeFileSync/Source/ui/file_grid_attr.h 11.2-1-trad3/FreeFileSync/Source/ui/file_grid_attr.h --- 11.2-1/FreeFileSync/Source/ui/file_grid_attr.h 2020-10-02 14:39:05.313463564 -0400 +++ 11.2-1-trad3/FreeFileSync/Source/ui/file_grid_attr.h 2020-10-02 20:21:48.863111642 -0400 diff --git a/freefilesync/ffs_traditional_view.patch b/freefilesync/ffs_traditional_view.patch index ff78325..f627a0a 100644 --- a/freefilesync/ffs_traditional_view.patch +++ b/freefilesync/ffs_traditional_view.patch @@ -1,10 +1,11 @@ Version: 11.3 -Date: 2020-11-01 +Date: 2020-11-05 Author: bgstack15@gmail.com Message: restore a traditional view to FreeFileSync +The Nov 5 patch removes the lines between groups, and also fixes the relative paths in "Trad. Rel" view. diff -x '*.orig' -x '*.rej' -aur 11.3-0/FreeFileSync/Source/ui/file_grid.cpp 11.3-1/FreeFileSync/Source/ui/file_grid.cpp ---- 11.3-0/FreeFileSync/Source/ui/file_grid.cpp 2020-11-01 17:14:27.531500950 -0500 -+++ 11.3-1/FreeFileSync/Source/ui/file_grid.cpp 2020-11-01 22:52:14.590746142 -0500 +--- 11.3-1/FreeFileSync/Source/ui/file_grid.cpp 2020-11-02 11:38:14.806496077 -0500 ++++ 11.3-2/FreeFileSync/Source/ui/file_grid.cpp 2020-11-05 11:11:46.146360956 -0500 @@ -493,8 +493,10 @@ case ItemPathFormat::name: return utfTo<std::wstring>(fsObj->getItemName<side>()); @@ -16,7 +17,22 @@ diff -x '*.orig' -x '*.rej' -aur 11.3-0/FreeFileSync/Source/ui/file_grid.cpp 11. return AFS::getDisplayPath(fsObj->getAbstractPath<side>()); } assert(false); -@@ -654,6 +656,27 @@ +@@ -547,8 +549,13 @@ + else + GridData::renderRowBackgound(dc, rect, row, true /*enabled*/, true /*selected*/, rowHover); + ++ // trad patch section for removing lines around items in grid ++ int lineWidth { fastFromDIP(1) } ; ++ if (itemPathFormat_ == ItemPathFormat::traditional || itemPathFormat_ == ItemPathFormat::tradrel) ++ lineWidth = 0; ++ + //---------------------------------------------------------------------------------- +- const wxRect rectLine(rect.x, rect.y + rect.height - fastFromDIP(1), rect.width, fastFromDIP(1)); ++ const wxRect rectLine(rect.x, rect.y + rect.height - lineWidth, rect.width, lineWidth); + clearArea(dc, rectLine, row == pdi.groupLastRow - 1 /*last group item*/ ? + getColorGridLine() : getDefaultBackgroundColorAlternating(pdi.groupIdx % 2 != 0)); + } +@@ -654,6 +661,26 @@ else //=> BaseFolderPair groupParentFolder = AFS::getDisplayPath(pdi.fsObj->base().getAbstractPath<side>()); break; @@ -35,16 +51,27 @@ diff -x '*.orig' -x '*.rej' -aur 11.3-0/FreeFileSync/Source/ui/file_grid.cpp 11. + case ItemPathFormat::tradrel: + if (pdi.folderGroupObj) + { -+ groupName = utfTo<std::wstring>(pdi.folderGroupObj ->template getItemName <side>()); -+ groupParentFolder = utfTo<std::wstring>(pdi.folderGroupObj->parent().template getRelativePath<side>()) + \ -+ utfTo<std::wstring>(pdi.folderGroupObj ->template getItemName<side>()); ++ groupName = utfTo<std::wstring>(pdi.folderGroupObj->template getItemName <side>()); ++ groupParentFolder = utfTo<std::wstring>(pdi.folderGroupObj->template getRelativePath<side>()); + } + break; + } //path components should follow the app layout direction and are NOT a single piece of text! -@@ -684,6 +707,31 @@ +@@ -679,11 +706,42 @@ + int groupNameWidth = groupName.empty() ? 0 : (gapSize_ + iconSize + gapSize_ + getTextExtentBuffered(dc, groupName).x); + const int groupNameMinWidth = groupName.empty() ? 0 : (gapSize_ + iconSize + gapSize_ + ellipsisWidth); + +- const int groupSepWidth = (groupParentFolder.empty() && groupName.empty()) ? 0 : (2 * gapSize_ + fastFromDIP(1)); ++ // trad patch section for removing lines around items in grid ++ // code duplication because this is a different scope! ++ int lineWidth { fastFromDIP(1) } ; ++ if (itemPathFormat_ == ItemPathFormat::traditional || itemPathFormat_ == ItemPathFormat::tradrel) ++ lineWidth = 0; ++ ++ const int groupSepWidth = (groupParentFolder.empty() && groupName.empty()) ? 0 : (2 * gapSize_ + lineWidth); + int groupItemsWidth = groupSepWidth + (drawFileIcons ? gapSize_ + iconSize : 0) + gapSize_ + groupItemNamesWidth; const int groupItemsMinWidth = groupSepWidth + (drawFileIcons ? gapSize_ + iconSize : 0) + gapSize_ + ellipsisWidth; @@ -76,7 +103,7 @@ diff -x '*.orig' -x '*.rej' -aur 11.3-0/FreeFileSync/Source/ui/file_grid.cpp 11. //not enough space? => collapse if (int excessWidth = groupParentWidth + groupNameWidth + groupItemsWidth - maxWidth; excessWidth > 0) -@@ -693,10 +741,6 @@ +@@ -693,10 +751,6 @@ //1. render group components on two rows stackedGroupRender = true; @@ -87,7 +114,7 @@ diff -x '*.orig' -x '*.rej' -aur 11.3-0/FreeFileSync/Source/ui/file_grid.cpp 11. if (!endsWith(groupParentFolder, L'/' ) && //e.g. ftp://server/ !endsWith(groupParentFolder, L'\\')) /*e.g. C:\ */ groupParentFolder += groupParentSep; -@@ -755,6 +799,11 @@ +@@ -755,6 +809,11 @@ } } } @@ -99,7 +126,7 @@ diff -x '*.orig' -x '*.rej' -aur 11.3-0/FreeFileSync/Source/ui/file_grid.cpp 11. return { -@@ -873,6 +922,9 @@ +@@ -873,6 +932,9 @@ rectGroup = rectGroupParent = rectGroupName = rectTmp; rectGroupParent.width = groupParentWidth; @@ -109,15 +136,40 @@ diff -x '*.orig' -x '*.rej' -aur 11.3-0/FreeFileSync/Source/ui/file_grid.cpp 11. rectGroupName .width = groupNameWidth; if (stackedGroupRender) -@@ -922,6 +974,7 @@ +@@ -896,6 +958,11 @@ + rectGroupItems.width = 0; + } + ++ // trad patch section for removing lines around items in grid ++ int lineWidth { fastFromDIP(1) } ; ++ if (itemPathFormat_ == ItemPathFormat::traditional || itemPathFormat_ == ItemPathFormat::tradrel) ++ lineWidth = 0; ++ + //------------------------------------------------------------------------- + { + //clear background below parent path => harmonize with renderRowBackgound() +@@ -906,8 +973,8 @@ + wxRect rectGroupBack = rectGroup; + rectGroupBack.width += 2 * gapSize_; //include gap before vline + +- if (row == pdi.groupLastRow - 1 /*last group item*/) //preserve the group separation line! +- rectGroupBack.height -= fastFromDIP(1); ++ if (row == pdi.groupLastRow - 1 /*last group item*/) //preserve the group separation line! ++ rectGroupBack.height -= lineWidth; + + clearArea(dc, rectGroupBack, getDefaultBackgroundColorAlternating(pdi.groupIdx % 2 == 0)); + //clearArea() is surprisingly expensive => call just once! +@@ -922,7 +989,8 @@ rectNav.width = fastFromDIP(20); if (row == pdi.groupLastRow - 1 /*last group item*/) //preserve the group separation line! +- rectNav.height -= fastFromDIP(1); + if (itemPathFormat_ != ItemPathFormat::traditional && itemPathFormat_ != ItemPathFormat::tradrel) - rectNav.height -= fastFromDIP(1); ++ rectNav.height -= lineWidth; wxColor backCol = *wxWHITE; -@@ -930,7 +983,7 @@ + dc.GetPixel(rectNav.GetTopRight(), &backCol); //e.g. selected row! +@@ -930,11 +998,11 @@ dc.GradientFillLinear(rectNav, getColorSelectionGradientFrom(), backCol, wxEAST); } @@ -126,7 +178,12 @@ diff -x '*.orig' -x '*.rej' -aur 11.3-0/FreeFileSync/Source/ui/file_grid.cpp 11. { wxRect rectGroupNameBack = rectGroupName; rectGroupNameBack.width += 2 * gapSize_; //include gap left of vline -@@ -972,10 +1025,10 @@ +- rectGroupNameBack.height -= fastFromDIP(1); //harmonize with item separation lines ++ rectGroupNameBack.height -= lineWidth; //harmonize with item separation lines + + //mouse highlight: group name + wxDCTextColourChanger textColorGroupName(dc); +@@ -972,10 +1040,10 @@ drawCellText(dc, rectGroupName, groupName, wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL, &getTextExtentBuffered(dc, groupName)); } @@ -139,7 +196,42 @@ diff -x '*.orig' -x '*.rej' -aur 11.3-0/FreeFileSync/Source/ui/file_grid.cpp 11. { wxRect rectGroupParentText = rectGroupParent; rectGroupParentText.x += gapSize_; -@@ -1166,6 +1219,10 @@ +@@ -994,16 +1062,16 @@ + rectGroupItems.x += 2 * gapSize_; + rectGroupItems.width -= 2 * gapSize_; + +- wxDCPenChanger dummy(dc, wxPen(getColorGridLine(), fastFromDIP(1))); ++ wxDCPenChanger dummy(dc, wxPen(getColorGridLine(), lineWidth)); + dc.DrawLine(rectGroupItems.GetTopLeft(), rectGroupItems.GetBottomLeft() + wxPoint(0, 1)); //draws half-open range! + +- rectGroupItems.x += fastFromDIP(1); +- rectGroupItems.width -= fastFromDIP(1); ++ rectGroupItems.x += lineWidth; ++ rectGroupItems.width -= lineWidth; + } + //------------------------------------------------------------------------- + + wxRect rectItemsBack = rectGroupItems; +- rectItemsBack.height -= fastFromDIP(1); //preserve item separation lines! ++ rectItemsBack.height -= lineWidth; //preserve item separation lines! + + //mouse highlight: item name + wxDCTextColourChanger textColorGroupItems(dc); +@@ -1134,7 +1202,12 @@ + groupNameWidth] = getGroupRenderLayout(dc, row, pdi, insanelyHugeWidth); + assert(!stackedGroupRender); + +- const int groupSepWidth = (groupParentFolder.empty() && groupName.empty()) ? 0 : (2 * gapSize_ + fastFromDIP(1)); ++ // trad patch section for removing lines around items in grid ++ int lineWidth { fastFromDIP(1) } ; ++ if (itemPathFormat_ == ItemPathFormat::traditional || itemPathFormat_ == ItemPathFormat::tradrel) ++ lineWidth = 0; ++ ++ const int groupSepWidth = (groupParentFolder.empty() && groupName.empty()) ? 0 : (2 * gapSize_ + lineWidth); + const int fileIconWidth = getIconManager().getIconBuffer() ? gapSize_ + getIconManager().getIconSize() : 0; + const int ellipsisWidth = getTextExtentBuffered(dc, ELLIPSIS).x; + const int itemWidth = itemName.empty() ? 0 : +@@ -1166,6 +1239,10 @@ return _("Relative path"); case ItemPathFormat::full: return _("Full path"); @@ -150,6 +242,26 @@ diff -x '*.orig' -x '*.rej' -aur 11.3-0/FreeFileSync/Source/ui/file_grid.cpp 11. } assert(false); break; +@@ -1423,7 +1500,8 @@ + GridData::renderRowBackgound(dc, rect, row, true /*enabled*/, true /*selected*/, rowHover); + + //---------------------------------------------------------------------------------- +- const wxRect rectLine(rect.x, rect.y + rect.height - fastFromDIP(1), rect.width, fastFromDIP(1)); ++ // just hardcoding this in this trad patch, because itempathFormat_ is not available in this scope. ++ const wxRect rectLine(rect.x, rect.y + rect.height - 0, rect.width, 0); + clearArea(dc, rectLine, row == pdi.groupLastRow - 1 /*last group item*/ ? + getColorGridLine() : getDefaultBackgroundColorAlternating(pdi.groupIdx % 2 != 0)); + } +@@ -1447,7 +1525,8 @@ + { + wxRect rectBack = rect; + if (row == pdi.groupLastRow - 1 /*last group item*/) //preserve the group separation line! +- rectBack.height -= fastFromDIP(1); ++ // just hardcoding this in this trad patch, because itempathFormat_ is not available in this scope. ++ rectBack.height -= 0; + + clearArea(dc, rectBack, col); + } diff -x '.git*' -x '*.orig' -x '*.rej' -aur 11.2-1/FreeFileSync/Source/ui/file_grid_attr.h 11.2-1-trad3/FreeFileSync/Source/ui/file_grid_attr.h --- 11.2-1/FreeFileSync/Source/ui/file_grid_attr.h 2020-10-02 14:39:05.313463564 -0400 +++ 11.2-1-trad3/FreeFileSync/Source/ui/file_grid_attr.h 2020-10-02 20:21:48.863111642 -0400 diff --git a/freefilesync/freefilesync.spec b/freefilesync/freefilesync.spec index c5bc731..b7e58b1 100644 --- a/freefilesync/freefilesync.spec +++ b/freefilesync/freefilesync.spec @@ -20,7 +20,7 @@ %endif Name: freefilesync Version: 11.3 -Release: 1%{?dist} +Release: 2%{?dist} Summary: A file synchronization utility Group: Applications/File @@ -207,6 +207,9 @@ update-mime-database -n ${_datadir}/mime 1>/dev/null 2>&1 & : %ghost %config %attr(666, -, -) %{_datadir}/%{name}/GlobalSettings.xml %changelog +* Thu Nov 05 2020 B Stack <bgstack15@gmail.com> - 11.3-2 +- fully fix the trad patch + * Mon Nov 02 2020 B Stack <bgstack15@gmail.com> - 11.3-1 - version bump diff --git a/ublock-origin-combined/build-orig-tarball.sh b/ublock-origin-combined/build-orig-tarball.sh new file mode 100755 index 0000000..e804468 --- /dev/null +++ b/ublock-origin-combined/build-orig-tarball.sh @@ -0,0 +1,94 @@ +#!/bin/sh +# Package: libreoffice-tango-iconset +# Startdate: 2020-11-04 14:05 +# References: +# libreoffice-tango-iconset/build-orig-tarball.sh +# Dependencies: +# sudo apt-get install wget curl sed awk + +currdir="${PWD}" +tmpfile1="$( mktemp )" +#frontpageurl="https://extensions.libreoffice.org/en/extensions/show/tango-icon-theme-for-libreoffice" +#domain="$( echo "${frontpageurl}" | awk -F'/' 'BEGIN{OFS="/"} {print $1,$2,$3}' )" +package_name="ublock-origin-combined" + +# FUNCTIONS +ferror() { + printf "%s\n" "$@" 1>&2 +} + +get() { + # get "https://example.com/example.zip" + # get "https://example.com/example.zip" "outputname.zip" + ___get_url="${1}" + ___get_outfile="${2}" + ___wget_options="" + test -n "${___get_outfile}" && ___wget_options="-O ${___get_outfile}" + + test -n "${DEBUG}" && ferror "wget --quiet --content-disposition \"${___get_url}\" ${___wget_options}" + test -z "${DRYRUN}" && wget --quiet --content-disposition "${___get_url}" ${___wget_options} +} + +to_filename() { + # call: to_filename "https://example.com/filename.ext" + # returns: "filename.ext" + printf "${1##*/}" +} + +show_latest_tarball_for_github_repo() { + # call: show_latest_tarball_for_github_repo "https://github.com/gorhill/uBlock-for-firefox-legacy" + # returns: "https://github.com/gorhill/uBlock-for-firefox-legacy/archive/firefox-legacy-1.16.4.26.tar.gz" + # Improve: accept archive type, such as .tar.gz or .zip, to return + # And yes, I know this parses html with awk. Get over it. + # Works, but unused as of 2020-11-04 + ___repo="${1}" + _page="$( curl -s "${___repo}/tags" )" + # tail grabs the highest number, so most recent available tarball from the page + echo "${_page}" | grep -oE "href=[\"'][^\"']+archive[^\"']+tar\.gz\"" | sed -r -e 's/^href=.//;' -e 's/"$//;' | sort -n | uniq | tail -n1 | sed -r -e "s/^/https:\/\/github.com/;" +} + +show_xpi_for_latest_tag() { + # call: fetch_xpi_for_latest_tag "https://github.com/gorhill/uBlock-for-firefox-legacy" + # returns: "https://github.com/gorhill/uBlock-for-firefox-legacy/releases/download/firefox-legacy-1.16.4.26/uBlock0_1.16.4.26.firefox-legacy.xpi" + # How it works: + # 1. visit list of tags + # 2. visit highest sorted tag (can only see page one of github results) + # 3. visit that tag page, and find assets section and then find .xpi file. So this is hard-coded for exactly one xpi file. + ___repo="${1}" + _page1="$( curl -s "${___repo}/tags" )" + _url2="https://github.com$( echo "${_page1}" | grep -oE 'href=[^>]+\/tag\/[^>]+' | sort -n | tail -n1 | sed -r -e "s/^href=[\"']?//;" -e 's/"$//;' )" + _page2="$( curl -s "${_url2}" )" + #echo "${_page2}" + _asset="https://github.com$( echo "${_page2}" | sed -n '/Assets/,$p' ~/foo2 | grep -oE "href=.*\.xpi" | sed -r -e "s/^href=[\"']?//;" )" + echo "${_asset}" +} + +### Flow + +# check dependencies +#which jq 1>/dev/null 2>&1 || { echo "Please install jq! Aborted." ; exit 1; } + +## 1. learn latest version file +#url_contents="$( curl -s "${frontpageurl}" )" +#latest_file="$( echo "${url_contents}" | awk -F'[=>]' '/class="btn".*>Download</{print $4}' | sed -r -e 's/^"//g;' -e 's/"$//g;' | head -n1 )" +latest_file="$( show_xpi_for_latest_tag "https://github.com/gorhill/uBlock-origin-for-firefox-legacy" )" +latest_version="$( basename "${latest_file}" | grep -oE '_[0-9\.]+' | sed -r -e 's/^_//;' -e 's/\.$//;' )" + +## 2. dl it +get "${latest_file}" "uBlock0.firefox-legacy.xpi" + +## 5. assemble orig tarball +test -n "${DEBUG}" && ferror "mkdir -p \"${package_name}-${latest_version}\"" +test -z "${DRYRUN}" && { mkdir -p "${package_name}-${latest_version}" ; cd "${package_name}-${latest_version}" ; } + +test -n "${DEBUG}" && ferror "mv ../\"uBlock0.firefox-legacy.xpi\" ." +test -z "${DRYRUN}" && mv ../"uBlock0.firefox-legacy.xpi" . + +test -n "${DEBUG}" && ferror "cd .." +test -z "${DRYRUN}" && cd .. + +test -n "${DEBUG}" && ferror "tar -zcf \"${package_name}_${latest_version}.orig.tar.gz\" \"${package_name}-${latest_version}\"" +test -z "${DRYRUN}" && tar -zcf "${package_name}_${latest_version}.orig.tar.gz" "${package_name}-${latest_version}" + +# CLEAN UP +rm -rf "${package_name}-${latest_version}/" "${tmpfile1}" diff --git a/ublock-origin-combined/debian/changelog b/ublock-origin-combined/debian/changelog index 483fcf9..9067709 100644 --- a/ublock-origin-combined/debian/changelog +++ b/ublock-origin-combined/debian/changelog @@ -1,3 +1,9 @@ +ublock-origin-combined (1.16.4.26-1+devuan) obs; urgency=medium + + * Update + + -- B Stack <bgstack15@gmail.com> Wed, 04 Nov 2020 13:34:43 -0500 + ublock-origin-combined (1.16.4.25-1+devuan) obs; urgency=medium * Combined package for all Mozilla-based browsers. diff --git a/ublock-origin-combined/deploy-to-obs.sh b/ublock-origin-combined/deploy-to-obs.sh new file mode 100755 index 0000000..a2913b0 --- /dev/null +++ b/ublock-origin-combined/deploy-to-obs.sh @@ -0,0 +1,34 @@ +#!/bin/sh +# Startdate: 2020-11-04 15:06 +# Purpose: make it a oneliner to get into the OBS +# Dependencies: +# osc + +devdir=~/dev +gitdir="${devdir}/stackrpms/ublock-origin-combined" +obsdir="${devdir}/osc/home:bgstack15/ublock-origin-combined" + +# Flow +cd "${devdir}" +"${gitdir}/build-orig-tarball.sh" +echo "DONE WITH build-orig-tarball" +tf="$( find . -maxdepth 1 -name 'ublock*orig*z' -printf '%T@ %f\n' | sort -n -k1 | awk '{print $NF}' | tail -n1 )" +tar -zxf "${tf}" +cd "$( tar -zvtf "${tf}" | awk '/^d/{print $NF}' | head -n1 )" +cp -pr "${gitdir}/debian" . +debuild -us -uc # depends on dpkg-dev=1.19.7 and not 1.20.5 which is still broken in Ceres as of 2020-11-04 +test $? -eq 0 || { "debuild failed. Cannot continue. Aborted." ; exit 1 ; } +cd "${devdir}" +dsc_file="$( find . -maxdepth 1 -name 'ublock*dsc' -printf '%T@ %f\n' | sort -n -k1 | awk '{print $NF}' | tail -n1 | cut -d' ' -f2 )" +debian_tar_file="$( find . -maxdepth 1 -name 'ublock*debian*z' -printf '%T@ %f\n' | sort -n -k1 | awk '{print $NF}' | tail -n1 | cut -d' ' -f2 )" + +# prep obs +cd "${obsdir}" +osc up +osc rm * +cd "${devdir}" +cp -p "${dsc_file}" "${debian_tar_file}" "${tf}" "${obsdir}/" +cd "${obsdir}" +#find . -mindepth 1 -maxdepth 1 ! -name "${dsc_file}" ! -name "${debian_tar_file}" ! -name "${tf}" -delete +osc add * +osc commit # will prompt for commit name diff --git a/ublock-origin-combined/ublock-origin-combined.spec b/ublock-origin-combined/ublock-origin-combined.spec index 5b8eca6..8367d80 100644 --- a/ublock-origin-combined/ublock-origin-combined.spec +++ b/ublock-origin-combined/ublock-origin-combined.spec @@ -7,7 +7,7 @@ %global app_id \{ec8030f7-c20a-464f-9b0e-13a3a9e97384\} Name: ublock-origin-combined -Version: 1.16.4.25 +Version: 1.16.4.26 Release: 1 Summary: uBlock Origin installed to the system Mozilla-based extensions directories @@ -68,6 +68,9 @@ rm -rf %{buildroot} # something gets weird because of the curly braces in the expanded variable, but using the ../* syntax changes the evaluated string so it does not have to try to use curly braces in the owned filepath. %changelog +* Wed Nov 04 2020 B Stack <bgstack15@gmail.com> - 1.16.4.26-1 +- Update + * Tue Oct 20 2020 B Stack <bgstack15@gmail.com> - 1.16.4.25-1 - Forked from palemoon-ublock-origin |