diff options
51 files changed, 1230 insertions, 130 deletions
diff --git a/freefilesync/debian/README.Debian b/freefilesync/debian/README.Debian index b370841..2dd582d 100644 --- a/freefilesync/debian/README.Debian +++ b/freefilesync/debian/README.Debian @@ -1,8 +1,19 @@ +freefilesync (10.18-1+devuan) + + * Switch to gtk3 so OBS can build it + - Debian dropped libwxgtk3.0-dev in favor of libwxgtk3.0-gtk3-dev, but gtk3 has some perceived performance issues back from FreeFileSync 8.7 days. + - https://dev1galaxy.org/viewtopic.php?pid=18625#p18625 + - https://freefilesync.org/forum/viewtopic.php?t=4918&p=16608&hilit=proxy_pixbuf_destroy#p16608 + + -- B Stack <bgstack15@gmail.com> Thu, 21 Oct 2019 08:18:00 -0500 + freefilesync (10.17-1+devuan) * Disable libcurl version check, to match AUR release. * Minor cleanup of Makefile that upstream failed to notice when he refactored + -- B Stack <bgstack15@gmail.com> Tue, 22 Oct 2019 10:06:00 -0400 + freefilesync (10.16-1+devuan) * Revert some sftp and libssh2 newer-version functionality. Upstream apparently patches their upstream libs. diff --git a/freefilesync/debian/changelog b/freefilesync/debian/changelog index 524371a..a271815 100644 --- a/freefilesync/debian/changelog +++ b/freefilesync/debian/changelog @@ -1,3 +1,22 @@ +freefilesync (10.18-1+devuan) obs; urgency=low + + * Save/load database files in parallel + * Show item count for each view filter category + * Group config history items via background colors + * Allow grid sort by category and sync action + * Reduced file accesses for faster start up + * Buffer redundant database loads + * Fix ibus initialization hang on Ubuntu 19.10 + * Defer showing progress panel for short-lived tasks + * Calculate stable scrollbar dimensions on GTK2 + * Log mod time errors even when sync is cancelled + * Show progress and errors when updating sync directions + * Detect MLSD support despite invalid FTP FEAT response + * Improved GUI responsiveness during config load + * Added Vietnamese translation + + -- B Stack <bgstack15@gmail.com> Thu, 21 Nov 2019 07:53:41 -0500 + freefilesync (10.17-1+devuan) obs; urgency=low * Support PuTTY private key files for SFTP login @@ -11,6 +30,8 @@ freefilesync (10.17-1+devuan) obs; urgency=low * Fixed startup crash caused by corrupted HDD properties * Allow SFTP access via Ed25519 key in PKIX format + -- B Stack <bgstack15@gmail.com> Tue, 22 Oct 2019 10:04:13 -0400 + freefilesync (10.16-1+devuan) obs; urgency=low * Redesigned progress indicator graphs diff --git a/freefilesync/debian/control b/freefilesync/debian/control index a60410c..4d8291f 100644 --- a/freefilesync/debian/control +++ b/freefilesync/debian/control @@ -6,10 +6,10 @@ Build-Depends: debhelper (>=11~), autotools-dev, imagemagick, libcurl4-openssl-dev, - libgtk2.0-dev, + libgtk-3-dev, libssh2-1-dev, libssl-dev, - libwxgtk3.0-dev, + libwxgtk3.0-gtk3-dev, wx3.0-headers, unzip Standards-Version: 4.1.4 diff --git a/freefilesync/debian/patches/ffs_devuan.patch b/freefilesync/debian/patches/ffs_devuan.patch index fc16f54..705d84d 100644 --- a/freefilesync/debian/patches/ffs_devuan.patch +++ b/freefilesync/debian/patches/ffs_devuan.patch @@ -1,12 +1,12 @@ -Author: Simon Brulhart -Source: AUR -Date: 2019-10-21 -Message: Do not try to compile inexistant file -Files affected: FreeFileSync/Source/Makefile -diff -Naur 10.13-0/FreeFileSync/Source/base/ffs_paths.cpp 10.13-1/FreeFileSync/Source/base/ffs_paths.cpp +Author: B Stack +Source: Original research +Date: 2019-11-21 +Message: Main patch to compile on Devuan. +This reintroduces the gtk-3 usage, because Debian/Devuan stopped packaging libwxgtk3.0-dev (which used gtk2) and only does libwxgtk3.0-gtk3-dev. However, by reintroducing the gtk3, it brings back the old gtk3 instability from my previous packaging effort: https://freefilesync.org/forum/viewtopic.php?t=4918. /mnt/public/packages/old/freefilesync/freefilesync-9.7-1.master.tgz. Upstream never replied, but did note in the source that gtk3 is inherently unstable. +diff -x '*.swp' -x '.git*' -x '*.orig' -x '*.rej' -Naur 10.18-0/FreeFileSync/Source/base/ffs_paths.cpp 10.18-1/FreeFileSync/Source/base/ffs_paths.cpp --- 10.13-0/FreeFileSync/Source/base/ffs_paths.cpp 2019-06-14 20:23:07.615661499 -0400 -+++ 10.13-1/FreeFileSync/Source/base/ffs_paths.cpp 2019-06-14 20:36:28.178274292 -0400 -@@ -55,7 +55,8 @@ ++++ 10.18-1/FreeFileSync/Source/base/ffs_paths.cpp 2019-11-21 09:41:42.287474472 -0500 +@@ -64,7 +64,8 @@ Zstring fff::getResourceDirPf() { @@ -16,9 +16,9 @@ diff -Naur 10.13-0/FreeFileSync/Source/base/ffs_paths.cpp 10.13-1/FreeFileSync/S } -diff -Naur -x '*.orig' -x '*.rej' 10.11-0/FreeFileSync/Source/Makefile 10.11-1/FreeFileSync/Source/Makefile +diff -x '*.swp' -x '.git*' -x '*.orig' -x '*.rej' -Naur 10.18-0/FreeFileSync/Source/Makefile 10.18-1/FreeFileSync/Source/Makefile --- 10.11-0/FreeFileSync/Source/Makefile 2019-04-12 08:05:57.000000000 -0400 -+++ 10.11-1/FreeFileSync/Source/Makefile 2019-04-12 14:00:16.774552362 -0400 ++++ 10.18-1/FreeFileSync/Source/Makefile 2019-11-21 09:42:57.408243242 -0500 @@ -1,10 +1,10 @@ -EXENAME = FreeFileSync_$(shell arch) +EXENAME = FreeFileSync @@ -32,26 +32,23 @@ diff -Naur -x '*.orig' -x '*.rej' 10.11-0/FreeFileSync/Source/Makefile 10.11-1/F CXXFLAGS += `pkg-config --cflags openssl` -@@ -17,6 +17,7 @@ CXXFLAGS += `pkg-config --cflags libssh2` +@@ -16,9 +16,10 @@ + CXXFLAGS += `pkg-config --cflags libssh2` LINKFLAGS += `pkg-config --libs libssh2` - - CXXFLAGS += `pkg-config --cflags gtk+-2.0` -+LINKFLAGS += `pkg-config --libs gtk+-2.0` + +-CXXFLAGS += `pkg-config --cflags gtk+-2.0` ++CXXFLAGS += `pkg-config --cflags gtk+-3.0` ++LINKFLAGS += `pkg-config --libs gtk+-3.0` #treat as system headers so that warnings are hidden: - CXXFLAGS += -isystem/usr/include/gtk-2.0 - -@@ -56,7 +56,6 @@ - CPP_FILES+=afs/init_curl_libssh2.cpp - CPP_FILES+=afs/native.cpp - CPP_FILES+=afs/sftp.cpp --CPP_FILES+=afs/libssh2/init_libssh2.cpp - CPP_FILES+=ui/batch_config.cpp - CPP_FILES+=ui/abstract_folder_picker.cpp - CPP_FILES+=ui/batch_status_handler.cpp -diff -Naur -x '*.orig' -x '*.rej' 10.11-0/FreeFileSync/Source/RealTimeSync/Makefile 10.11-1/FreeFileSync/Source/RealTimeSync/Makefile +-CXXFLAGS += -isystem/usr/include/gtk-2.0 ++CXXFLAGS += -isystem/usr/include/gtk-3.0 + + #support for SELinux (optional) + SELINUX_EXISTING=$(shell pkg-config --exists libselinux && echo YES) +diff -x '*.swp' -x '.git*' -x '*.orig' -x '*.rej' -Naur 10.18-0/FreeFileSync/Source/RealTimeSync/Makefile 10.18-1/FreeFileSync/Source/RealTimeSync/Makefile --- 10.11-0/FreeFileSync/Source/RealTimeSync/Makefile 2019-04-12 08:05:57.000000000 -0400 -+++ 10.15-1/FreeFileSync/Source/RealTimeSync/Makefile 2019-08-15 13:59:53.934551753 -0400 -@@ -1,13 +1,14 @@ ++++ 10.18-1/FreeFileSync/Source/RealTimeSync/Makefile 2019-11-21 09:46:11.378240094 -0500 +@@ -1,15 +1,16 @@ -EXENAME = RealTimeSync_$(shell arch) +EXENAME = RealTimeSync @@ -63,15 +60,19 @@ diff -Naur -x '*.orig' -x '*.rej' 10.11-0/FreeFileSync/Source/RealTimeSync/Makef +LINKFLAGS = -s -no-pie `wx-config --libs std, aui --debug=no` -lz -pthread #Gtk - support "no button border" - CXXFLAGS += `pkg-config --cflags gtk+-2.0` -+LINKFLAGS += `pkg-config --libs gtk+-2.0` +-CXXFLAGS += `pkg-config --cflags gtk+-2.0` ++CXXFLAGS += `pkg-config --cflags gtk+-3.0` ++LINKFLAGS += `pkg-config --libs gtk+-3.0` #treat as system headers so that warnings are hidden: - CXXFLAGS += -isystem/usr/include/gtk-2.0 +-CXXFLAGS += -isystem/usr/include/gtk-2.0 ++CXXFLAGS += -isystem/usr/include/gtk-3.0 -diff -Naur -x '*.orig' -x '*.rej' 10.11-0/FreeFileSync/Source/ui/small_dlgs.cpp 10.11-1/FreeFileSync/Source/ui/small_dlgs.cpp + CPP_FILES= + CPP_FILES+=application.cpp +diff -x '*.swp' -x '.git*' -x '*.orig' -x '*.rej' -Naur 10.18-0/FreeFileSync/Source/ui/small_dlgs.cpp 10.18-1/FreeFileSync/Source/ui/small_dlgs.cpp --- 10.11-0/FreeFileSync/Source/ui/small_dlgs.cpp 2019-04-12 08:05:57.000000000 -0400 +++ 10.11-1/FreeFileSync/Source/ui/small_dlgs.cpp 2019-04-12 13:58:55.050550183 -0400 -@@ -115,6 +115,8 @@ +@@ -117,6 +117,8 @@ L" x64"; #endif @@ -80,3 +81,27 @@ diff -Naur -x '*.orig' -x '*.rej' 10.11-0/FreeFileSync/Source/ui/small_dlgs.cpp GetSizer()->SetSizeHints(this); //~=Fit() + SetMinSize() +diff -x '*.swp' -x '.git*' -x '*.orig' -x '*.rej' -Naur 10.18-0/wx+/dc.h 10.18-1/wx+/dc.h +--- 10.18-0/wx+/dc.h 2019-11-21 08:24:23.967769384 -0500 ++++ 10.18-1/wx+/dc.h 2019-11-21 09:42:12.779786504 -0500 +@@ -54,7 +54,7 @@ + #ifdef wxHAVE_DPI_INDEPENDENT_PIXELS //pulled from wx/window.h: https://github.com/wxWidgets/wxWidgets/blob/master/include/wx/window.h#L2029 + return d; //e.g. macOS, GTK3 + #else //https://github.com/wxWidgets/wxWidgets/blob/master/src/common/wincmn.cpp#L2865 +- static_assert(GTK_MAJOR_VERSION == 2); ++ static_assert(GTK_MAJOR_VERSION == 3); + //GTK2 doesn't properly support high DPI: https://freefilesync.org/forum/viewtopic.php?t=6114 + //=> requires general fix at wxWidgets-level + assert(wxTheApp); //only call after wxWidgets was initalized! +diff -x '*.swp' -x '.git*' -x '*.orig' -x '*.rej' -Naur 10.18-0/FreeFileSync/Source/base/icon_loader.cpp 10.18-1/FreeFileSync/Source/base/icon_loader.cpp +--- 10.18-0/FreeFileSync/Source/base/icon_loader.cpp 2019-11-21 08:24:23.955769262 -0500 ++++ 10.18-1/FreeFileSync/Source/base/icon_loader.cpp 2019-11-21 09:42:15.439813730 -0500 +@@ -18,7 +18,7 @@ + + namespace + { +-static_assert(GTK_MAJOR_VERSION == 2, "FreeFileSync does NOT (currently) support GTK3! The GTK calls below will lead to crashes due to not being thread-safe on GTK3."); ++static_assert(GTK_MAJOR_VERSION == 3, "FreeFileSync does NOT (currently) support GTK3! The GTK calls below will lead to crashes due to not being thread-safe on GTK3."); + //gdk_threads_enter(); + ZEN_ON_SCOPE_EXIT(::gdk_threads_leave); is NOT enough; e.g. GTK3 + openSuse still crashes with: + // Gtk:ERROR:gtkicontheme.c:4026:proxy_pixbuf_destroy: assertion failed: (icon_info->proxy_pixbuf != NULL) + //GTK icon theme internals: https://github.com/GNOME/gtk/blob/master/gtk/gtkicontheme.c diff --git a/freefilesync/debian/patches/ffs_no_check_updates.patch b/freefilesync/debian/patches/ffs_no_check_updates.patch index 4e56d19..eaff5c4 100644 --- a/freefilesync/debian/patches/ffs_no_check_updates.patch +++ b/freefilesync/debian/patches/ffs_no_check_updates.patch @@ -37,7 +37,7 @@ diff --exclude '*.orig' -Naur 10.14-0/FreeFileSync/Source/ui/main_dlg.cpp 10.14- diff --exclude '*.orig' -Naur 10.14-0/FreeFileSync/Source/ui/version_check.cpp 10.14-1/FreeFileSync/Source/ui/version_check.cpp --- 10.9-0/FreeFileSync/Source/ui/version_check.cpp 2019-02-10 22:01:42.126160041 -0500 -+++ 10.14-1/FreeFileSync/Source/ui/version_check.cpp 2019-07-16 11:45:36.113848111 -0400 ++++ 10.18-1/FreeFileSync/Source/ui/version_check.cpp 2019-11-20 09:19:50.936975067 -0500 @@ -69,6 +69,8 @@ bool fff::shouldRunAutomaticUpdateCheck(time_t lastUpdateCheck) @@ -57,8 +57,8 @@ diff --exclude '*.orig' -Naur 10.14-0/FreeFileSync/Source/ui/version_check.cpp 1 updateDetailsMsg = utfTo<std::wstring>(buf); } catch (const zen::SysError& e) { throw FileError(_("Failed to retrieve update information."), e.toString()); } -@@ -187,8 +188,7 @@ - //access is thread-safe on Windows (WinInet), but not on Linux/OS X (wxWidgets) +@@ -182,8 +183,7 @@ + std::string getOnlineVersion(const std::vector<std::pair<std::string, std::string>>& postParams) //throw SysError { - const std::string buffer = sendHttpPost(Zstr("https://api.freefilesync.org/latest_version"), postParams, diff --git a/freefilesync/debian/patches/ffs_no_wx311.patch b/freefilesync/debian/patches/ffs_no_wx311.patch index e6069d4..92b5372 100644 --- a/freefilesync/debian/patches/ffs_no_wx311.patch +++ b/freefilesync/debian/patches/ffs_no_wx311.patch @@ -28,19 +28,18 @@ diff -Naur -x '*.orig' -x '*.rej' 10.3-0/wx+/grid.cpp 10.3-2/wx+/grid.cpp else diff -Naur 10.13-0/FreeFileSync/Source/base/ffs_paths.cpp 10.13-1/FreeFileSync/Source/base/ffs_paths.cpp --- 10.13-0/FreeFileSync/Source/base/ffs_paths.cpp 2019-06-14 20:23:07.615661499 -0400 -+++ 10.13-1/FreeFileSync/Source/base/ffs_paths.cpp 2019-06-14 20:26:56.794422701 -0400 -@@ -75,8 +75,9 @@ - Zstring cfgFolderPath; - //OS standard path (XDG layout): ~/.config/FreeFileSync - //wxBug: wxStandardPaths::GetUserDataDir() does not honor FileLayout_XDG flag -- wxStandardPaths::Get().SetFileLayout(wxStandardPaths::FileLayout_XDG); -- cfgFolderPath = appendSeparator(utfTo<Zstring>(wxStandardPaths::Get().GetUserConfigDir())) + "FreeFileSync"; -+ // Fedora does not have wxGTK 3.1.1 which is the dev branch. -+ //wxStandardPaths::Get().SetFileLayout(wxStandardPaths::FileLayout_XDG); -+ cfgFolderPath = appendSeparator(utfTo<Zstring>(wxStandardPaths::Get().GetUserConfigDir())) + appendSeparator(utfTo<Zstring>(".config")) + "FreeFileSync"; ++++ 10.18-1/FreeFileSync/Source/base/ffs_paths.cpp 2019-11-20 08:55:38.553446634 -0500 +@@ -80,8 +80,8 @@ + //OS standard path (XDG layout): ~/.config/FreeFileSync + //wxBug: wxStandardPaths::GetUserDataDir() does not honor FileLayout_XDG flag +- wxStandardPaths::Get().SetFileLayout(wxStandardPaths::FileLayout_XDG); +- const Zstring cfgFolderPath = appendSeparator(utfTo<Zstring>(wxStandardPaths::Get().GetUserConfigDir())) + "FreeFileSync"; ++ // Many distros do not have wxGTK 3.1.1 which is the dev branch. ++ const Zstring cfgFolderPath = appendSeparator(utfTo<Zstring>(wxStandardPaths::Get().GetUserConfigDir())) + appendSeparator(utfTo<Zstring>(".config")) + "FreeFileSync"; - std::call_once(onceFlagCreateCfgPath, [&] + try //create the config folder if not existing + create "Logs" subfolder while we're at it + { diff --git a/FreeFileSync/Source/ui/command_box.cpp b/FreeFileSync/Source/ui/command_box.cpp index 6e769bb..ce6110b 100644 --- a/FreeFileSync/Source/ui/command_box.cpp diff --git a/freefilesync/ffs_el.patch b/freefilesync/ffs_el.patch index 3e1e9d3..d3849f3 100644 --- a/freefilesync/ffs_el.patch +++ b/freefilesync/ffs_el.patch @@ -17,12 +17,13 @@ diff -Naur 10.13-0/FreeFileSync/Source/base/ffs_paths.cpp 10.13-1/FreeFileSync/S diff -Naur -x '*.orig' -x '*.rej' -x '*.swp' 10.11-0/FreeFileSync/Source/Makefile 10.11-1/FreeFileSync/Source/Makefile --- 10.11-0/FreeFileSync/Source/Makefile 2019-04-12 07:59:45.042147902 -0400 -+++ 10.15-1/FreeFileSync/Source/Makefile 2019-08-16 08:19:12.101271747 -0400 ++++ 10.18-1/FreeFileSync/Source/Makefile 2019-11-21 20:59:25.548277619 -0500 @@ -1,10 +1,10 @@ -EXENAME = FreeFileSync_$(shell arch) +EXENAME = FreeFileSync - CXXFLAGS = -std=c++2a -pipe -DWXINTL_NO_GETTEXT_MACRO -I../.. -I../../zenXml -include "zen/i18n.h" -include "zen/warn_static.h" \ +-CXXFLAGS = -std=c++2a -pipe -DWXINTL_NO_GETTEXT_MACRO -I../.. -I../../zenXml -include "zen/i18n.h" -include "zen/warn_static.h" \ ++CXXFLAGS = -std=c++17 -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 -Wshadow -Wnon-virtual-dtor \ - -O3 -DNDEBUG `wx-config --cxxflags --debug=no` -pthread + -O3 -DNDEBUG -fPIC `wx-config --version=3.0 --cxxflags --debug=no` -pthread @@ -40,14 +41,6 @@ diff -Naur -x '*.orig' -x '*.rej' -x '*.swp' 10.11-0/FreeFileSync/Source/Makefil #treat as system headers so that warnings are hidden: CXXFLAGS += -isystem/usr/include/gtk-2.0 -@@ -56,7 +56,6 @@ - CPP_FILES+=afs/init_curl_libssh2.cpp - CPP_FILES+=afs/native.cpp - CPP_FILES+=afs/sftp.cpp --CPP_FILES+=afs/libssh2/init_libssh2.cpp - CPP_FILES+=ui/batch_config.cpp - CPP_FILES+=ui/abstract_folder_picker.cpp - CPP_FILES+=ui/batch_status_handler.cpp diff -Naur -x '*.orig' -x '*.rej' -x '*.swp' 10.11-0/FreeFileSync/Source/RealTimeSync/application.h 10.11-1/FreeFileSync/Source/RealTimeSync/application.h --- 10.11-0/FreeFileSync/Source/RealTimeSync/application.h 2019-04-12 07:59:45.035147580 -0400 +++ 10.11-1/FreeFileSync/Source/RealTimeSync/application.h 2019-04-12 10:19:57.227913415 -0400 @@ -62,13 +55,13 @@ diff -Naur -x '*.orig' -x '*.rej' -x '*.swp' 10.11-0/FreeFileSync/Source/RealTim diff -Naur -x '*.orig' -x '*.rej' -x '*.swp' 10.11-0/FreeFileSync/Source/RealTimeSync/Makefile 10.11-1/FreeFileSync/Source/RealTimeSync/Makefile --- 10.11-0/FreeFileSync/Source/RealTimeSync/Makefile 2019-04-12 07:59:45.008146336 -0400 -+++ 10.15-1/FreeFileSync/Source/RealTimeSync/Makefile 2019-08-16 08:19:21.959638104 -0400 ++++ 10.18-1/FreeFileSync/Source/RealTimeSync/Makefile 2019-11-22 10:14:04.326175203 -0500 @@ -1,13 +1,14 @@ -EXENAME = RealTimeSync_$(shell arch) +EXENAME = RealTimeSync -CXXFLAGS = -std=c++2a -pipe -DWXINTL_NO_GETTEXT_MACRO -I../../.. -I../../../zenXml -include "zen/i18n.h" -include "zen/warn_static.h" \ -+CXXFLAGS = -std=c++2a -pipe -DWXINTL_NO_GETTEXT_MACRO -I../../.. -I../../../zenXml -include "zen/i18n.h" -include "zen/warn_static.h" \ ++CXXFLAGS = -std=c++17 -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 -Wshadow -Wnon-virtual-dtor \ - -O3 -DNDEBUG `wx-config --cxxflags --debug=no` -pthread + -O3 -DNDEBUG -fPIC `wx-config --version=3.0 --cxxflags --debug=no` -pthread @@ -128,3 +121,16 @@ diff -Naur -x '*.orig' -x '*.rej' -x '*.swp' 10.11-0/zen/serialize.h 10.11-1/zen #include "string_base.h" //keep header clean from specific stream implementations! (e.g.file_io.h)! used by abstract.h! +Message: For -std=c++17 we do not get to use charconv. It appears it is not actually in use, because the application compiles with this patch. +diff -Naur -x '*.orig' -x '.git*' -x '*.swp' -x '*.rej' 10.18-0/zen/legacy_compiler.cpp 10.18-1/zen/legacy_compiler.cpp +--- 10.18-0/zen/legacy_compiler.cpp 2019-11-21 20:59:02.633016149 -0500 ++++ 10.18-1/zen/legacy_compiler.cpp 2019-11-21 20:59:31.042340308 -0500 +@@ -5,7 +5,7 @@ + // ***************************************************************************** + + #include "legacy_compiler.h" +-#include <charconv> ++//#include <charconv> + //1. including this one in string_tools.h blows up VC++: + // "An internal error has occurred in the compiler. (compiler file 'd:\agent\_work\1\s\src\vctools\Compiler\Utc\src\p2\p2symtab.c', line 2618)" + //2. using inside PCH: "fatal error C1076: compiler limit: internal heap limit reached" diff --git a/freefilesync/ffs_fedora.patch b/freefilesync/ffs_fedora.patch index 5c5e3b7..12346fb 100644 --- a/freefilesync/ffs_fedora.patch +++ b/freefilesync/ffs_fedora.patch @@ -54,14 +54,6 @@ diff -Naur 10.11-0/FreeFileSync/Source/Makefile 10.11-1/FreeFileSync/Source/Make #treat as system headers so that warnings are hidden: CXXFLAGS += -isystem/usr/include/gtk-2.0 -@@ -56,7 +56,6 @@ - CPP_FILES+=afs/init_curl_libssh2.cpp - CPP_FILES+=afs/native.cpp - CPP_FILES+=afs/sftp.cpp --CPP_FILES+=afs/libssh2/init_libssh2.cpp - CPP_FILES+=ui/batch_config.cpp - CPP_FILES+=ui/abstract_folder_picker.cpp - CPP_FILES+=ui/batch_status_handler.cpp diff -Naur 10.11-0/FreeFileSync/Source/RealTimeSync/Makefile 10.11-1/FreeFileSync/Source/RealTimeSync/Makefile --- 10.11-0/FreeFileSync/Source/RealTimeSync/Makefile 2019-04-12 07:59:45.008146336 -0400 +++ 10.15-1/FreeFileSync/Source/RealTimeSync/Makefile 2019-08-15 13:59:53.934551753 -0400 diff --git a/freefilesync/ffs_no_check_updates.patch b/freefilesync/ffs_no_check_updates.patch index 4e56d19..eaff5c4 100644 --- a/freefilesync/ffs_no_check_updates.patch +++ b/freefilesync/ffs_no_check_updates.patch @@ -37,7 +37,7 @@ diff --exclude '*.orig' -Naur 10.14-0/FreeFileSync/Source/ui/main_dlg.cpp 10.14- diff --exclude '*.orig' -Naur 10.14-0/FreeFileSync/Source/ui/version_check.cpp 10.14-1/FreeFileSync/Source/ui/version_check.cpp --- 10.9-0/FreeFileSync/Source/ui/version_check.cpp 2019-02-10 22:01:42.126160041 -0500 -+++ 10.14-1/FreeFileSync/Source/ui/version_check.cpp 2019-07-16 11:45:36.113848111 -0400 ++++ 10.18-1/FreeFileSync/Source/ui/version_check.cpp 2019-11-20 09:19:50.936975067 -0500 @@ -69,6 +69,8 @@ bool fff::shouldRunAutomaticUpdateCheck(time_t lastUpdateCheck) @@ -57,8 +57,8 @@ diff --exclude '*.orig' -Naur 10.14-0/FreeFileSync/Source/ui/version_check.cpp 1 updateDetailsMsg = utfTo<std::wstring>(buf); } catch (const zen::SysError& e) { throw FileError(_("Failed to retrieve update information."), e.toString()); } -@@ -187,8 +188,7 @@ - //access is thread-safe on Windows (WinInet), but not on Linux/OS X (wxWidgets) +@@ -182,8 +183,7 @@ + std::string getOnlineVersion(const std::vector<std::pair<std::string, std::string>>& postParams) //throw SysError { - const std::string buffer = sendHttpPost(Zstr("https://api.freefilesync.org/latest_version"), postParams, diff --git a/freefilesync/ffs_no_eraseif.patch b/freefilesync/ffs_no_eraseif.patch new file mode 100644 index 0000000..eaaab38 --- /dev/null +++ b/freefilesync/ffs_no_eraseif.patch @@ -0,0 +1,407 @@ +diff -x '*.swp' -x .git -x '*.orig' -x '*.rej' -Naur 10.18-1/FreeFileSync/Source/afs/abstract_impl.h 10.18-2/FreeFileSync/Source/afs/abstract_impl.h +--- 10.18-1/FreeFileSync/Source/afs/abstract_impl.h 2019-11-20 16:15:55.823668066 -0500 ++++ 10.18-2/FreeFileSync/Source/afs/abstract_impl.h 2019-11-20 17:57:30.555558350 -0500 +@@ -255,7 +255,7 @@ + pathLocks_.access([&](std::map<NativePath, std::weak_ptr<std::mutex>>& pathLocks) + { + //remove obsolete entries +- std::erase_if(pathLocks, [](const auto& v) { return !v.second.lock(); }); ++ zen::eraseIf(pathLocks, [](const auto& v) { return !v.second.lock(); }); + + //get or create mutex + std::weak_ptr<std::mutex>& weakPtr = pathLocks[nativePath]; +diff -x '*.swp' -x .git -x '*.orig' -x '*.rej' -Naur 10.18-1/FreeFileSync/Source/afs/gdrive.cpp 10.18-2/FreeFileSync/Source/afs/gdrive.cpp +--- 10.18-1/FreeFileSync/Source/afs/gdrive.cpp 2019-11-20 16:15:55.828668123 -0500 ++++ 10.18-2/FreeFileSync/Source/afs/gdrive.cpp 2019-11-20 17:57:30.556558361 -0500 +@@ -1777,7 +1777,7 @@ + if (it != itemDetails_.end()) + { + GoogleItemDetails 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); + } + else //conflict!!! +@@ -1792,7 +1792,7 @@ + GoogleItemDetails detailsNew = it->second; + detailsNew.itemName = utfTo<std::string>(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); +@@ -1902,7 +1902,7 @@ + return; //=> avoid misleading changeLog_ entries after Google Drive sync!!! + + //update change logs (and clean up obsolete entries) +- std::erase_if(changeLog_, [&](std::weak_ptr<ItemIdDelta>& weakPtr) ++ eraseIf(changeLog_, [&](std::weak_ptr<ItemIdDelta>& weakPtr) + { + if (std::shared_ptr<ItemIdDelta> iid = weakPtr.lock()) + { +@@ -1923,8 +1923,8 @@ + + std::vector<std::string> parentIdsNew = details->parentIds; + std::vector<std::string> parentIdsRemoved = it->second.parentIds; +- std::erase_if(parentIdsNew, [&](const std::string& id) { return std::find(it->second.parentIds.begin(), it->second.parentIds.end(), id) != it->second.parentIds.end(); }); +- std::erase_if(parentIdsRemoved, [&](const std::string& id) { return std::find(details->parentIds.begin(), details->parentIds.end(), id) != details->parentIds.end(); }); ++ eraseIf(parentIdsNew, [&](const std::string& id) { return std::find(it->second.parentIds.begin(), it->second.parentIds.end(), id) != it->second.parentIds.end(); }); ++ eraseIf(parentIdsRemoved, [&](const std::string& id) { return std::find(details->parentIds.begin(), details->parentIds.end(), id) != details->parentIds.end(); }); + + for (const std::string& parentId : parentIdsNew) + folderContents_[parentId].childItems.push_back(it); //new insert => no need for duplicate check +@@ -1933,7 +1933,7 @@ + { + auto itP = folderContents_.find(parentId); + if (itP != folderContents_.end()) +- 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! + +@@ -1955,7 +1955,7 @@ + { + auto itP = folderContents_.find(parentId); + if (itP != folderContents_.end()) +- std::erase_if(itP->second.childItems, [&](auto itChild) { return itChild == it; }); ++ eraseIf(itP->second.childItems, [&](auto itChild) { return itChild == it; }); + } + itemDetails_.erase(it); + } +@@ -1964,7 +1964,7 @@ + if (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; }); ++ eraseIf(itChild->second.parentIds, [&](const std::string& id) { return id == itemId; }); + folderContents_.erase(itP); + } + } +diff -x '*.swp' -x .git -x '*.orig' -x '*.rej' -Naur 10.18-1/FreeFileSync/Source/afs/sftp.cpp 10.18-2/FreeFileSync/Source/afs/sftp.cpp +--- 10.18-1/FreeFileSync/Source/afs/sftp.cpp 2019-11-20 17:54:23.078438037 -0500 ++++ 10.18-2/FreeFileSync/Source/afs/sftp.cpp 2019-11-20 17:57:30.557558372 -0500 +@@ -946,7 +946,7 @@ + std::this_thread::yield(); + return; //don't hold lock for too long: delete only one session at a time, then yield... + } +- std::erase_if(sessions.sshSessionsWithThreadAffinity, [](const auto& v) { return !v.second.lock(); }); //clean up dangling weak pointer ++ eraseIf(sessions.sshSessionsWithThreadAffinity, [](const auto& v) { return !v.second.lock(); }); //clean up dangling weak pointer + done = true; + }); + } +diff -x '*.swp' -x .git -x '*.orig' -x '*.rej' -Naur 10.18-1/FreeFileSync/Source/base/algorithm.cpp 10.18-2/FreeFileSync/Source/base/algorithm.cpp +--- 10.18-1/FreeFileSync/Source/base/algorithm.cpp 2019-11-20 16:15:55.832668168 -0500 ++++ 10.18-2/FreeFileSync/Source/base/algorithm.cpp 2019-11-20 17:57:30.558558384 -0500 +@@ -1372,8 +1372,8 @@ + { + std::vector<const FileSystemObject*> itemSelectionLeft (rowsToCopyOnLeft .begin(), rowsToCopyOnLeft .end()); + std::vector<const FileSystemObject*> itemSelectionRight(rowsToCopyOnRight.begin(), rowsToCopyOnRight.end()); +- std::erase_if(itemSelectionLeft, [](const FileSystemObject* fsObj) { return fsObj->isEmpty< LEFT_SIDE>(); }); //needed for correct stats! +- std::erase_if(itemSelectionRight, [](const FileSystemObject* fsObj) { return fsObj->isEmpty<RIGHT_SIDE>(); }); // ++ eraseIf(itemSelectionLeft, [](const FileSystemObject* fsObj) { return fsObj->isEmpty< LEFT_SIDE>(); }); //needed for correct stats! ++ eraseIf(itemSelectionRight, [](const FileSystemObject* fsObj) { return fsObj->isEmpty<RIGHT_SIDE>(); }); // + + const int itemTotal = static_cast<int>(itemSelectionLeft.size() + itemSelectionRight.size()); + int64_t bytesTotal = 0; +@@ -1548,8 +1548,8 @@ + std::vector<FileSystemObject*> deleteLeft = rowsToDeleteOnLeft; + std::vector<FileSystemObject*> deleteRight = rowsToDeleteOnRight; + +- std::erase_if(deleteLeft, [](const FileSystemObject* fsObj) { return fsObj->isEmpty< LEFT_SIDE>(); }); //needed? +- std::erase_if(deleteRight, [](const FileSystemObject* fsObj) { return fsObj->isEmpty<RIGHT_SIDE>(); }); //yes, for correct stats: ++ eraseIf(deleteLeft, [](const FileSystemObject* fsObj) { return fsObj->isEmpty< LEFT_SIDE>(); }); //needed? ++ eraseIf(deleteRight, [](const FileSystemObject* fsObj) { return fsObj->isEmpty<RIGHT_SIDE>(); }); //yes, for correct stats: + + const int itemCount = static_cast<int>(deleteLeft.size() + deleteRight.size()); + callback.initNewPhase(itemCount, 0, ProcessPhase::none); //throw X +diff -x '*.swp' -x .git -x '*.orig' -x '*.rej' -Naur 10.18-1/FreeFileSync/Source/base/db_file.cpp 10.18-2/FreeFileSync/Source/base/db_file.cpp +--- 10.18-1/FreeFileSync/Source/base/db_file.cpp 2019-11-20 16:15:55.836668213 -0500 ++++ 10.18-2/FreeFileSync/Source/base/db_file.cpp 2019-11-20 17:57:30.559558395 -0500 +@@ -591,7 +591,7 @@ + } + + //delete removed items (= "in-sync") from database +- std::erase_if(dbFiles, [&](const InSyncFolder::FileList::value_type& v) ++ eraseIf(dbFiles, [&](const InSyncFolder::FileList::value_type& v) + { + if (contains(toPreserve, v.first)) + return false; +@@ -628,7 +628,7 @@ + } + + //delete removed items (= "in-sync") from database +- std::erase_if(dbSymlinks, [&](const InSyncFolder::SymlinkList::value_type& v) ++ eraseIf(dbSymlinks, [&](const InSyncFolder::SymlinkList::value_type& v) + { + if (contains(toPreserve, v.first)) + return false; +@@ -663,7 +663,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()) + { +@@ -687,10 +687,10 @@ + //delete all entries for removed folder (= "in-sync") from database + void dbSetEmptyState(InSyncFolder& dbFolder, const Zstring& parentRelPathPf) + { +- 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); }); ++ eraseIf(dbFolder.files, [&](const InSyncFolder::FileList ::value_type& v) { return filter_.passFileFilter(parentRelPathPf + v.first); }); ++ eraseIf(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 -x '*.swp' -x .git -x '*.orig' -x '*.rej' -Naur 10.18-1/FreeFileSync/Source/base/dir_lock.cpp 10.18-2/FreeFileSync/Source/base/dir_lock.cpp +--- 10.18-1/FreeFileSync/Source/base/dir_lock.cpp 2019-11-20 16:15:55.836668213 -0500 ++++ 10.18-2/FreeFileSync/Source/base/dir_lock.cpp 2019-11-20 17:57:30.559558395 -0500 +@@ -502,8 +502,8 @@ + + void tidyUp() //remove obsolete entries + { +- std::erase_if(locksByGuid_, [](const auto& v) { return !v.second.lock(); }); +- std::erase_if(guidByPath_, [&](const auto& v) { return !contains(locksByGuid_, v.second); }); ++ eraseIf(locksByGuid_, [](const auto& v) { return !v.second.lock(); }); ++ eraseIf(guidByPath_, [&](const auto& v) { return locksByGuid_.find(v.second) == locksByGuid_.end(); }); + } + + std::map<Zstring, UniqueId> guidByPath_; //lockFilePath |-> GUID; n:1; locks can be referenced by a lockFilePath or alternatively a GUID +diff -x '*.swp' -x .git -x '*.orig' -x '*.rej' -Naur 10.18-1/FreeFileSync/Source/RealTimeSync/config.cpp 10.18-2/FreeFileSync/Source/RealTimeSync/config.cpp +--- 10.18-1/FreeFileSync/Source/RealTimeSync/config.cpp 2019-11-20 16:15:55.820668033 -0500 ++++ 10.18-2/FreeFileSync/Source/RealTimeSync/config.cpp 2019-11-20 17:57:30.559558395 -0500 +@@ -155,7 +155,7 @@ + checkXmlMappingErrors(in, filePath); //throw FileError + //--------------------------------------------------------------------------------------- + +- std::erase_if(uniqueFolders, [](const Zstring& str) { return trimCpy(str).empty(); }); ++ eraseIf(uniqueFolders, [](const Zstring& str) { return trimCpy(str).empty(); }); + cfg.directories.assign(uniqueFolders.begin(), uniqueFolders.end()); + cfg.commandline = Zstr('"') + fff::getFreeFileSyncLauncherPath() + Zstr("\" \"") + filePath + Zstr('"'); + } +diff -x '*.swp' -x .git -x '*.orig' -x '*.rej' -Naur 10.18-1/FreeFileSync/Source/RealTimeSync/monitor.cpp 10.18-2/FreeFileSync/Source/RealTimeSync/monitor.cpp +--- 10.18-1/FreeFileSync/Source/RealTimeSync/monitor.cpp 2019-11-20 16:15:55.822668055 -0500 ++++ 10.18-2/FreeFileSync/Source/RealTimeSync/monitor.cpp 2019-11-20 17:57:30.560558406 -0500 +@@ -163,7 +163,7 @@ + { + std::vector<DirWatcher::Entry> changedItems = watcher->getChanges([&] { requestUiUpdate(false /*readyForSync*/); /*throw X*/ }, + cbInterval); //throw FileError +- std::erase_if(changedItems, [](const DirWatcher::Entry& e) ++ eraseIf(changedItems, [](const DirWatcher::Entry& e) + { + return + endsWith(e.itemPath, Zstr(".ffs_tmp")) || //sync.8ea2.ffs_tmp +diff -x '*.swp' -x .git -x '*.orig' -x '*.rej' -Naur 10.18-1/FreeFileSync/Source/RealTimeSync/tray_menu.cpp 10.18-2/FreeFileSync/Source/RealTimeSync/tray_menu.cpp +--- 10.18-1/FreeFileSync/Source/RealTimeSync/tray_menu.cpp 2019-11-20 16:15:55.822668055 -0500 ++++ 10.18-2/FreeFileSync/Source/RealTimeSync/tray_menu.cpp 2019-11-20 17:57:30.560558406 -0500 +@@ -247,7 +247,7 @@ + rts::AbortReason rts::runFolderMonitor(const XmlRealConfig& config, const wxString& jobname) + { + std::vector<Zstring> dirNamesNonFmt = config.directories; +- std::erase_if(dirNamesNonFmt, [](const Zstring& str) { return trimCpy(str).empty(); }); //remove empty entries WITHOUT formatting paths yet! ++ eraseIf(dirNamesNonFmt, [](const Zstring& str) { return trimCpy(str).empty(); }); //remove empty entries WITHOUT formatting paths yet! + + if (dirNamesNonFmt.empty()) + { +diff -x '*.swp' -x .git -x '*.orig' -x '*.rej' -Naur 10.18-1/FreeFileSync/Source/ui/cfg_grid.cpp 10.18-2/FreeFileSync/Source/ui/cfg_grid.cpp +--- 10.18-1/FreeFileSync/Source/ui/cfg_grid.cpp 2019-11-20 16:15:55.847668337 -0500 ++++ 10.18-2/FreeFileSync/Source/ui/cfg_grid.cpp 2019-11-20 17:57:30.561558418 -0500 +@@ -113,7 +113,7 @@ + { + const std::set<Zstring, LessNativePath> pathsSorted(filePaths.begin(), filePaths.end()); + +- std::erase_if(cfgListView_, [&](auto it) { return pathsSorted.find(it->first) != pathsSorted.end(); }); ++ eraseIf(cfgListView_, [&](auto it) { return pathsSorted.find(it->first) != pathsSorted.end(); }); + + for (const Zstring& filePath : filePaths) + cfgList_.erase(filePath); +diff -x '*.swp' -x .git -x '*.orig' -x '*.rej' -Naur 10.18-1/FreeFileSync/Source/ui/command_box.cpp 10.18-2/FreeFileSync/Source/ui/command_box.cpp +--- 10.18-1/FreeFileSync/Source/ui/command_box.cpp 2019-11-20 17:54:14.861345102 -0500 ++++ 10.18-2/FreeFileSync/Source/ui/command_box.cpp 2019-11-20 17:57:30.561558418 -0500 +@@ -75,7 +75,7 @@ + equalNoCase(newCommand, cmd)) + return; + +- std::erase_if(history_, [&](const Zstring& item) { return equalNoCase(newCommand, item); }); ++ eraseIf(history_, [&](const Zstring& item) { return equalNoCase(newCommand, item); }); + + history_.insert(history_.begin(), newCommand); + +@@ -194,7 +194,7 @@ + //this->SetSelection(wxNOT_FOUND); + + //delete selected row +- std::erase_if(history_, [&](const Zstring& item) { return item == selValue; }); ++ eraseIf(history_, [&](const Zstring& item) { return item == selValue; }); + + 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(); + + //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); }); + } + + +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 +@@ -41,7 +41,7 @@ + const Zstring nameTmp = zen::trimCpy(folderPathPhrase); + + //insert new folder or put it to the front if already existing +- std::erase_if(folderPathPhrases_, [&](const Zstring& item) { return equalNoCase(item, nameTmp); }); ++ zen::eraseIf(folderPathPhrases_, [&](const Zstring& item) { return equalNoCase(item, nameTmp); }); + + folderPathPhrases_.insert(folderPathPhrases_.begin(), nameTmp); + +@@ -49,7 +49,7 @@ + folderPathPhrases_.resize(maxSize_); + } + +- void delItem(const Zstring& folderPathPhrase) { std::erase_if(folderPathPhrases_, [&](const Zstring& item) { return equalNoCase(item, folderPathPhrase); }); } ++ void delItem(const Zstring& folderPathPhrase) { zen::eraseIf(folderPathPhrases_, [&](const Zstring& item) { return equalNoCase(item, folderPathPhrase); }); } + + private: + size_t maxSize_ = 0; +diff -x '*.swp' -x .git -x '*.orig' -x '*.rej' -Naur 10.18-1/FreeFileSync/Source/ui/log_panel.cpp 10.18-2/FreeFileSync/Source/ui/log_panel.cpp +--- 10.18-1/FreeFileSync/Source/ui/log_panel.cpp 2019-11-20 16:15:55.852668394 -0500 ++++ 10.18-2/FreeFileSync/Source/ui/log_panel.cpp 2019-11-20 17:57:30.562558429 -0500 +@@ -545,7 +545,7 @@ + if (auto prov = m_gridMessages->getDataProvider()) + { + std::vector<Grid::ColAttributes> colAttr = m_gridMessages->getColumnConfig(); +- std::erase_if(colAttr, [](const Grid::ColAttributes& ca) { return !ca.visible; }); ++ eraseIf(colAttr, [](const Grid::ColAttributes& ca) { return !ca.visible; }); + if (!colAttr.empty()) + for (size_t row : m_gridMessages->getSelectedRows()) + { +diff -x '*.swp' -x .git -x '*.orig' -x '*.rej' -Naur 10.18-1/FreeFileSync/Source/ui/main_dlg.cpp 10.18-2/FreeFileSync/Source/ui/main_dlg.cpp +--- 10.18-1/FreeFileSync/Source/ui/main_dlg.cpp 2019-11-20 17:54:16.135359512 -0500 ++++ 10.18-2/FreeFileSync/Source/ui/main_dlg.cpp 2019-11-20 17:57:30.564558452 -0500 +@@ -1240,7 +1240,7 @@ + if (auto prov = grid->getDataProvider()) + { + std::vector<Grid::ColAttributes> colAttr = grid->getColumnConfig(); +- std::erase_if(colAttr, [](const Grid::ColAttributes& ca) { return !ca.visible; }); ++ eraseIf(colAttr, [](const Grid::ColAttributes& ca) { return !ca.visible; }); + if (!colAttr.empty()) + for (size_t row : grid->getSelectedRows()) + { +@@ -5372,9 +5372,9 @@ + auto colAttrCenter = m_gridMainC->getColumnConfig(); + auto colAttrRight = m_gridMainR->getColumnConfig(); + +- std::erase_if(colAttrLeft, [](const Grid::ColAttributes& ca) { return !ca.visible; }); +- std::erase_if(colAttrCenter, [](const Grid::ColAttributes& ca) { return !ca.visible || static_cast<ColumnTypeCenter>(ca.type) == ColumnTypeCenter::CHECKBOX; }); +- std::erase_if(colAttrRight, [](const Grid::ColAttributes& ca) { return !ca.visible; }); ++ eraseIf(colAttrLeft, [](const Grid::ColAttributes& ca) { return !ca.visible; }); ++ eraseIf(colAttrCenter, [](const Grid::ColAttributes& ca) { return !ca.visible || static_cast<ColumnTypeCenter>(ca.type) == ColumnTypeCenter::CHECKBOX; }); ++ eraseIf(colAttrRight, [](const Grid::ColAttributes& ca) { return !ca.visible; }); + + if (provLeft && provCenter && provRight) + { +diff -x '*.swp' -x .git -x '*.orig' -x '*.rej' -Naur 10.18-1/FreeFileSync/Source/ui/search_grid.cpp 10.18-2/FreeFileSync/Source/ui/search_grid.cpp +--- 10.18-1/FreeFileSync/Source/ui/search_grid.cpp 2019-11-20 16:15:55.855668428 -0500 ++++ 10.18-2/FreeFileSync/Source/ui/search_grid.cpp 2019-11-20 17:57:30.564558452 -0500 +@@ -69,7 +69,7 @@ + if (auto prov = grid.getDataProvider()) + { + std::vector<Grid::ColAttributes> colAttr = grid.getColumnConfig(); +- std::erase_if(colAttr, [](const Grid::ColAttributes& ca) { return !ca.visible; }); ++ eraseIf(colAttr, [](const Grid::ColAttributes& ca) { return !ca.visible; }); + if (!colAttr.empty()) + { + const MatchFound<respectCase> matchFound(searchString); +diff -x '*.swp' -x .git -x '*.orig' -x '*.rej' -Naur 10.18-1/FreeFileSync/Source/ui/tree_grid.cpp 10.18-2/FreeFileSync/Source/ui/tree_grid.cpp +--- 10.18-1/FreeFileSync/Source/ui/tree_grid.cpp 2019-11-20 16:15:55.858668462 -0500 ++++ 10.18-2/FreeFileSync/Source/ui/tree_grid.cpp 2019-11-20 17:57:30.565558463 -0500 +@@ -601,7 +601,7 @@ + folderCmp_ = newData; + + //remove truly empty folder pairs as early as this: we want to distinguish single/multiple folder pair cases by looking at "folderCmp" +- std::erase_if(folderCmp_, [](const std::shared_ptr<BaseFolderPair>& baseObj) ++ eraseIf(folderCmp_, [](const std::shared_ptr<BaseFolderPair>& baseObj) + { + return AFS::isNullPath(baseObj->getAbstractPath< LEFT_SIDE>()) && + AFS::isNullPath(baseObj->getAbstractPath<RIGHT_SIDE>()); +diff -x '*.swp' -x .git -x '*.orig' -x '*.rej' -Naur 10.18-1/wx+/async_task.h 10.18-2/wx+/async_task.h +--- 10.18-1/wx+/async_task.h 2019-11-20 16:15:55.860668484 -0500 ++++ 10.18-2/wx+/async_task.h 2019-11-20 17:57:30.565558463 -0500 +@@ -85,7 +85,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 -x '*.swp' -x .git -x '*.orig' -x '*.rej' -Naur 10.18-1/zen/stl_tools.h 10.18-2/zen/stl_tools.h +--- 10.18-1/zen/stl_tools.h 2019-11-20 16:15:55.875668653 -0500 ++++ 10.18-2/zen/stl_tools.h 2019-11-20 17:58:20.801126674 -0500 +@@ -20,6 +20,16 @@ + //enhancements for <algorithm> + namespace zen + { ++//erase selected elements from any container: ++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); +@@ -115,6 +125,36 @@ + + + //######################## 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 Alloc, class C> inline + void append(std::vector<T, Alloc>& v, const C& c) { v.insert(v.end(), c.begin(), c.end()); } + diff --git a/freefilesync/ffs_no_wx311.patch b/freefilesync/ffs_no_wx311.patch index e6069d4..92b5372 100644 --- a/freefilesync/ffs_no_wx311.patch +++ b/freefilesync/ffs_no_wx311.patch @@ -28,19 +28,18 @@ diff -Naur -x '*.orig' -x '*.rej' 10.3-0/wx+/grid.cpp 10.3-2/wx+/grid.cpp else diff -Naur 10.13-0/FreeFileSync/Source/base/ffs_paths.cpp 10.13-1/FreeFileSync/Source/base/ffs_paths.cpp --- 10.13-0/FreeFileSync/Source/base/ffs_paths.cpp 2019-06-14 20:23:07.615661499 -0400 -+++ 10.13-1/FreeFileSync/Source/base/ffs_paths.cpp 2019-06-14 20:26:56.794422701 -0400 -@@ -75,8 +75,9 @@ - Zstring cfgFolderPath; - //OS standard path (XDG layout): ~/.config/FreeFileSync - //wxBug: wxStandardPaths::GetUserDataDir() does not honor FileLayout_XDG flag -- wxStandardPaths::Get().SetFileLayout(wxStandardPaths::FileLayout_XDG); -- cfgFolderPath = appendSeparator(utfTo<Zstring>(wxStandardPaths::Get().GetUserConfigDir())) + "FreeFileSync"; -+ // Fedora does not have wxGTK 3.1.1 which is the dev branch. -+ //wxStandardPaths::Get().SetFileLayout(wxStandardPaths::FileLayout_XDG); -+ cfgFolderPath = appendSeparator(utfTo<Zstring>(wxStandardPaths::Get().GetUserConfigDir())) + appendSeparator(utfTo<Zstring>(".config")) + "FreeFileSync"; ++++ 10.18-1/FreeFileSync/Source/base/ffs_paths.cpp 2019-11-20 08:55:38.553446634 -0500 +@@ -80,8 +80,8 @@ + //OS standard path (XDG layout): ~/.config/FreeFileSync + //wxBug: wxStandardPaths::GetUserDataDir() does not honor FileLayout_XDG flag +- wxStandardPaths::Get().SetFileLayout(wxStandardPaths::FileLayout_XDG); +- const Zstring cfgFolderPath = appendSeparator(utfTo<Zstring>(wxStandardPaths::Get().GetUserConfigDir())) + "FreeFileSync"; ++ // Many distros do not have wxGTK 3.1.1 which is the dev branch. ++ const Zstring cfgFolderPath = appendSeparator(utfTo<Zstring>(wxStandardPaths::Get().GetUserConfigDir())) + appendSeparator(utfTo<Zstring>(".config")) + "FreeFileSync"; - std::call_once(onceFlagCreateCfgPath, [&] + try //create the config folder if not existing + create "Logs" subfolder while we're at it + { diff --git a/FreeFileSync/Source/ui/command_box.cpp b/FreeFileSync/Source/ui/command_box.cpp index 6e769bb..ce6110b 100644 --- a/FreeFileSync/Source/ui/command_box.cpp diff --git a/freefilesync/freefilesync.spec b/freefilesync/freefilesync.spec index ce183fa..3ed654a 100644 --- a/freefilesync/freefilesync.spec +++ b/freefilesync/freefilesync.spec @@ -7,8 +7,8 @@ %define scl_env %{nil} %define scl_buildreq coreutils %if 0%{?el6}%{?el7} - %define scl_env devtoolset-8 - %define scl_buildreq devtoolset-8-toolchain + %define scl_env devtoolset-7 + %define scl_buildreq devtoolset-7-toolchain %define min_libcurl >= 7.64.0 %define min_libssh2 >= 1.8.0 %define min_openssl >= 1.1.1c @@ -18,8 +18,8 @@ %define libssh2_name libssh2-%{name} %endif Name: freefilesync -Version: 10.17 -Release: 1%{?dist} +Version: 10.18 +Release: 2%{?dist} Summary: A file synchronization utility Group: Applications/File @@ -40,6 +40,7 @@ Patch5: ffs_el.patch Patch6: ffs_libssh2.patch Patch7: ffs_curl.patch Patch8: ffs_bit.patch +Patch9: ffs_no_eraseif.patch Packager: B Stack <bgstack15@gmail.com> # WARNING: the build will FAIL if you have wxGTK3-devel installed. Only wxGTK2-devel should be on the build system. @@ -97,6 +98,7 @@ find . ! -type d \( -name '*.c' -o -name '*.cpp' -o -name '*.h' \) \ %patch7 -p1 %if 0%{?el6}%{?el7}%{?el8}%{?fc29} %patch8 -p1 +%patch9 -p1 %endif # custom build parameters for packaging application in rpm @@ -200,6 +202,12 @@ update-mime-database -n ${_datadir}/mime 1>/dev/null 2>&1 & : %ghost %config %attr(666, -, -) %{_datadir}/%{name}/GlobalSettings.xml %changelog +* Thu Nov 21 2019 B Stack <bgstack15@gmail.com> - 10.18-2 +- el and fc29 reverted to devtoolset-7, -std=c++17, and some older internal logic + +* Wed Nov 20 2019 B Stack <bgstack15@gmail.com> - 10.18-1 +- version bump + * Wed Oct 23 2019 B Stack <bgstack15@gmail.com> - 10.17-1 - version bump - el7 uses devtoolset-8 for c++2a support diff --git a/irfanview/README.md b/irfanview/README.md index 9e8490e..9bf21ce 100644 --- a/irfanview/README.md +++ b/irfanview/README.md @@ -11,7 +11,7 @@ At least one distro does package Irfanview: # Reverse dependency matrix Distro | Irfanview version --------- | ----------------- -all | 4.53 +all | 4.54 -# Differences from upstream +# Differences from upstream packaging None diff --git a/irfanview/debian/changelog b/irfanview/debian/changelog index 764161e..5c0c4a8 100644 --- a/irfanview/debian/changelog +++ b/irfanview/debian/changelog @@ -1,3 +1,34 @@ +irfanview (4.54-1+devuan) obs; urgency=medium + + - Version 4.54 Release date: 2019-12-12 + * Multiple Undo/Redo steps added (max. 20 steps, Properties->Editing) + * Zoom magnifier added to fullscreen mode + * Option to disable Zoom magnifier (Properties->Viewing) + * Profiles option added to Print dialog + * New option in Properties->Fullscreen: Set horizontal and/or vertical centering + * New option in Print dialog: Set horizontal and/or vertical centering + * Option to set selection border thickness (Properties->Editing) + * Option to enable/disable PlugIns (Help->Installed PlugIns) + * Extended sidecar files option: Copy/Move possible (Properties->File Handling) + * New Canvas dialog option/method: Set aspect ratio + * New option in Watch/Hot Folder dialog: Watch subfolders + * Support for CR3 files (preview only, add CR3 to extensions list in: Properties->Extensions->Load custom types) + * New Lossless JPG Dialog option: Add (or Replace) ICC color profile + * New Thumbnails option: Keep focus in folder tree (after folder change/click) + * Option to show Color Corrections dialog in dark mode + * Fix in Metadata PlugIn (crash with bad EXIF tag in CR2 files; KVE-2019-1184) + * BMP loading bug fixed (thanks to Joshua Faust, CVE-2019-16887) + * JP2 PlugIn loading bug fixed (thanks to Linhlhq) + * ANI PlugIn loading bug fixed (thanks to Linhlhq, CVE-2019-17252) + * RAS PlugIn loading bug fixed (thanks to Linhlhq, CVE-2019-17251) + * EXR PlugIn loading bug fixed (thanks to Linhlhq, CVE-2019-17255) + * DPX PlugIn loading bug fixed (thanks to Linhlhq, CVE-2019-17256) + * WSQ PlugIn loading bug fixed (thanks to Linhlhq, CVE-2019-17250) + * JLS PlugIn loading bug fixed (thanks to Linhlhq, CVE-2019-17253) + * Several PlugIns are changed/updated, please install the newest versions: + + -- B Stack <bgstack15@gmail.com> Thu, 18 Dec 2019 09:20:59 -0500 + irfanview (4.53-2+devuan) manual; urgency=medium * The architecture of the invocation script has been split into common and arch-specific. diff --git a/irfanview/irfanview.spec b/irfanview/irfanview.spec index caf711e..74b44e3 100644 --- a/irfanview/irfanview.spec +++ b/irfanview/irfanview.spec @@ -5,8 +5,8 @@ #global upstream_url http://www.irfanview.info/files Name: irfanview -Version: 4.53 -Release: 2 +Version: 4.54 +Release: 1 Summary: irfanview is a graphics viewer %define version_num %( echo %version | tr -d '\.' ) @@ -204,6 +204,9 @@ update-mime-database -n ${_datadir}/mime 1>/dev/null 2>&1 & : %{_datadir}/%{name}64 %changelog +* Wed Dec 18 2019 B Stack <bgstack15@gmail.com> - 4.54-1 +- version bump + * Sun Jun 16 2019 B Stack <bgstack15@gmail.com> - 4.53-2 - improve app start scripts and mimetypes diff --git a/makemkv-bin/debian/changelog b/makemkv-bin/debian/changelog index 51f03d6..652ed76 100644 --- a/makemkv-bin/debian/changelog +++ b/makemkv-bin/debian/changelog @@ -1,3 +1,15 @@ +makemkv-bin (1.14.7-1+devuan) obs; urgency=low + + * Update + + -- B Stack <bgstack15@gmail.com> Wed, 04 Dec 2019 21:23:05 -0500 + +makemkv-bin (1.14.5-2+devuan) obs; urgency=low + + * Change build deps for OBS + + -- B Stack <bgstack15@gmail.com> Thu, 21 Nov 2019 16:17:41 -0500 + makemkv-bin (1.14.5-1+devuan) manual; urgency=low * Update diff --git a/makemkv-bin/debian/compat b/makemkv-bin/debian/compat index b4de394..48082f7 100644 --- a/makemkv-bin/debian/compat +++ b/makemkv-bin/debian/compat @@ -1 +1 @@ -11 +12 diff --git a/makemkv-bin/debian/control b/makemkv-bin/debian/control index fd4c301..cf01789 100644 --- a/makemkv-bin/debian/control +++ b/makemkv-bin/debian/control @@ -2,10 +2,12 @@ Source: makemkv-bin Section: video Priority: optional Maintainer: B Stack <bgstack15@gmail.com> -Build-Depends: debhelper (>=11~), +Build-Depends: debhelper (>=12~), + libavcodec58, makemkv-oss Standards-Version: 4.1.4 Homepage: https://www.makemkv.com +# libavcodec58 is listed only to prevent the "two choices available" error in obs. makemkv-oss handles the dependencies Package: makemkv-bin Architecture: any diff --git a/makemkv-bin/debian/copyright b/makemkv-bin/debian/copyright index 7fe3d2b..a53fbf4 100644 --- a/makemkv-bin/debian/copyright +++ b/makemkv-bin/debian/copyright @@ -12,7 +12,7 @@ Copyright: __NO_COPYRIGHT_NOR_LICENSE__ License: __NO_COPYRIGHT_NOR_LICENSE__ Files: src/eula_en_linux.txt -Copyright: 2007-2018 GuinpinSoft inc +Copyright: 2007-2019 GuinpinSoft inc License: __HEADER___ IMPORTANT NOTE . diff --git a/makemkv-bin/debian/settings.conf.example b/makemkv-bin/debian/settings.conf.example index c223f5b..018aba6 100644 --- a/makemkv-bin/debian/settings.conf.example +++ b/makemkv-bin/debian/settings.conf.example @@ -1,11 +1,11 @@ # -# MakeMKV settings file, written by MakeMKV v1.14.5 linux(x64-release) -# suitable for version 1.14.5, expires 2019-11-31 +# MakeMKV settings file, written by MakeMKV v1.14.7 linux(x64-release) +# suitable for version 1.14.7, expires 2020-01-31 app_DestinationDir = "" app_InterfaceLanguage = "eng" app_Java = "" -app_Key = "T-2541DIINav5@4EGGUu7241BvCfC4XgLo6D4oPhE2SeyupYYWNYkg_48BAZACI4LfyQ" +app_Key = "T-a37dwZgouzYiNxPOnU4AbpRtCakD0UzdFPuHLnCfX2O2kshXG4KhC37lho7axaXvtZ" app_PreferredLanguage = "eng" app_ccextractor = "" diff --git a/makemkv-oss/debian/changelog b/makemkv-oss/debian/changelog index 3d2c9db..7a323b0 100644 --- a/makemkv-oss/debian/changelog +++ b/makemkv-oss/debian/changelog @@ -1,3 +1,15 @@ +makemkv-oss (1.14.7-1+devuan) obs; urgency=low + + * Update + + -- B Stack <bgstack15@gmail.com> Wed, 04 Dec 2019 21:04:41 -0500 + +makemkv-oss (1.14.5-2+devuan) obs; urgency=low + + * Change build deps for OBS + + -- B Stack <bgstack15@gmail.com> Thu, 21 Nov 2019 13:20:28 -0500 + makemkv-oss (1.14.5-1+devuan) manual; urgency=low * Update diff --git a/makemkv-oss/debian/compat b/makemkv-oss/debian/compat index b4de394..48082f7 100644 --- a/makemkv-oss/debian/compat +++ b/makemkv-oss/debian/compat @@ -1 +1 @@ -11 +12 diff --git a/makemkv-oss/debian/control b/makemkv-oss/debian/control index 4b2e1d9..1a9b93a 100644 --- a/makemkv-oss/debian/control +++ b/makemkv-oss/debian/control @@ -2,8 +2,9 @@ Source: makemkv-oss Section: video Priority: optional Maintainer: B Stack <bgstack15@gmail.com> -Build-Depends: debhelper (>=11~), +Build-Depends: debhelper (>=12~), libavcodec-dev, + libavcodec58, libc6-dev, libexpat1-dev, libgl1-mesa-dev, @@ -13,6 +14,7 @@ Build-Depends: debhelper (>=11~), zlib1g-dev Standards-Version: 4.1.4 Homepage: https://www.makemkv.com +# libavcodec58 is listed only to prevent the "two choices available" error in obs. makemkv-oss handles the dependencies Package: makemkv-oss Architecture: any diff --git a/makemkv-oss/debian/copyright b/makemkv-oss/debian/copyright index 406651e..b684175 100644 --- a/makemkv-oss/debian/copyright +++ b/makemkv-oss/debian/copyright @@ -21,12 +21,10 @@ Files: libabi/inc/lgpl/expatabi.h libabi/src/xpat.c libabi/src/zlib.c libdriveio/inc/driveio/driveio.h + libdriveio/inc/driveio/error.h libdriveio/inc/driveio/scsicmd.h libdriveio/inc/driveio/scsihlp.h libdriveio/inc/lgpl/tcpip.h - libdriveio/src/drives/drive.h - libdriveio/src/drives/pioneer.cpp - libdriveio/src/drives/xboxhddvd.cpp libdriveio/src/infolist.cpp libdriveio/src/scsihlp.cpp libdriveio/src/stdquery.cpp @@ -67,10 +65,10 @@ Files: libabi/inc/lgpl/expatabi.h libmmbd/src/utf8.h makemkvgui/inc/QtExt/NativeFileDialog.h makemkvgui/src/nativefiledialog.cpp -Copyright: 2007-2018 GuinpinSoft inc <libdriveio@makemkv.com> - 2007-2018 GuinpinSoft inc <libmkv@makemkv.com> - 2007-2018 GuinpinSoft inc <libmmbd@makemkv.com> - 2007-2018 GuinpinSoft inc <libqtext@makemkv.com> +Copyright: 2007-2019 GuinpinSoft inc <libdriveio@makemkv.com> + 2007-2019 GuinpinSoft inc <libmkv@makemkv.com> + 2007-2019 GuinpinSoft inc <libmmbd@makemkv.com> + 2007-2019 GuinpinSoft inc <libqtext@makemkv.com> License: LGPL-2.1+ This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public @@ -136,7 +134,7 @@ Files: makemkvgui/src/aboutbox.cpp makemkvgui/src/str/en_utf16.cpp makemkvgui/src/uisync.cpp makemkvgui/src/viteminfo.cpp -Copyright: 2007-2018 GuinpinSoft inc <makemkvgui@makemkv.com> +Copyright: 2007-2019 GuinpinSoft inc <makemkvgui@makemkv.com> License: __UNKNOWN__ You may use this file in accordance with the end user license agreement provided with the Software. For licensing terms and @@ -711,7 +709,7 @@ License: LGPL-2.1+ Version 2.1 can be found in `/usr/share/common-licenses/LGPL-2.1'. Files: libffabi/src/ffabicfg.h.in -Copyright: 2007-2018 GuinpinSoft inc <libmkv@makemkv.com> +Copyright: 2007-2019 GuinpinSoft inc <libmkv@makemkv.com> License: LGPL-2.1+ This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public @@ -923,7 +921,7 @@ License: LGPL-2.1+ Version 2.1 can be found in `/usr/share/common-licenses/LGPL-2.1'. Files: License.txt -Copyright: 2007-2018 GuinpinSoft inc +Copyright: 2007-2019 GuinpinSoft inc License: __HEADER___ IMPORTANT NOTE . @@ -1092,7 +1090,7 @@ License: GPL-3.0+ with autoconf exception #---------------------------------------------------------------------------- # License file: License.txt - Copyright (C) 2007-2018 GuinpinSoft inc + Copyright (C) 2007-2019 GuinpinSoft inc . IMPORTANT NOTE . diff --git a/makemkv/README.md b/makemkv/README.md index 8b1dc8b..58c49db 100644 --- a/makemkv/README.md +++ b/makemkv/README.md @@ -4,11 +4,12 @@ https://www.makemkv.com/forum/viewtopic.php?f=5&t=1053 # Reason for being in stackrpms Fedora does not package makemkv because it is only partially open-source. I do not want to depend on external repos too much. I also include some logic for always being able to run makemkv. +As of makemkv 1.14.7, I am diverging from negativo17's spec file. # Reverse dependency matrix Distro | makemkv version ---------- | --------------- -All | 1.14.5 +All | 1.14.7 # Differences from upstream -See file [stackrpms-makemkv.spec.diff](stackrpms-makemkv.spec.diff) +See file [stackrpms-makemkv.spec.diff](stackrpms-makemkv.spec.diff) which was last applied on version 1.14.5. diff --git a/makemkv/changelog.txt b/makemkv/changelog.txt index 22c0f2a..39aaebb 100644 --- a/makemkv/changelog.txt +++ b/makemkv/changelog.txt @@ -1,5 +1,16 @@ Revision history +MakeMKV v1.14.7 ( 4.12.2019 ) + + Bug fixes: + Better compatibility for decrypted AACS 2.1 FMTS files + Fixed variable expansion bug for default file name template + +MakeMKV v1.14.6 ( 2.12.2019 ) + + Added support for AACS 2.1 + Many small bugfixes and improvements + MakeMKV v1.14.5 ( 9.6.2019 ) Some small miscellaneous improvements diff --git a/makemkv/makemkv-bin-1.14.5.tar.gz b/makemkv/makemkv-bin-1.14.5.tar.gz Binary files differdeleted file mode 100644 index 1461179..0000000 --- a/makemkv/makemkv-bin-1.14.5.tar.gz +++ /dev/null diff --git a/makemkv/makemkv-oss-1.14.5.tar.gz b/makemkv/makemkv-oss-1.14.5.tar.gz Binary files differdeleted file mode 100644 index e4ee323..0000000 --- a/makemkv/makemkv-oss-1.14.5.tar.gz +++ /dev/null diff --git a/makemkv/makemkv.spec b/makemkv/makemkv.spec index db40955..fd83dd6 100644 --- a/makemkv/makemkv.spec +++ b/makemkv/makemkv.spec @@ -13,17 +13,17 @@ Summary: DVD and Blu-ray to MKV converter and network streamer Name: makemkv -Version: 1.14.5 +Version: 1.14.7 Release: 10%{?dist} License: GuinpinSoft inc and Mozilla Public License Version 1.1 and LGPLv2.1+ URL: http://www.%{name}.com/ ExclusiveArch: %{ix86} x86_64 -Source0: http://www.%{name}.com/download/%{name}-oss-%{version}.tar.gz -Source1: http://www.%{name}.com/download/%{name}-bin-%{version}.tar.gz +Source0: https://www.%{name}.com/download/%{name}-oss-%{version}.tar.gz +Source1: https://www.%{name}.com/download/%{name}-bin-%{version}.tar.gz Source2: changelog.txt Source3: %{name}.appdata.xml -Source4: http://www.%{name}.com/developers/usage.txt#/%{name}con.txt +Source4: https://www.%{name}.com/developers/usage.txt#/%{name}con.txt Source5: %{name}-wrapper Source6: settings.conf.example @@ -151,6 +151,9 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_libdir}/libmmbd.so.0 %changelog +* Wed Dec 04 2019 B Stack <bgstack15@gmail.com> - 1.14.7-10 +- Update + * Mon Nov 11 2019 B Stack <bgstack15@gmail.com> - 1.14.5-10 - Add stackrpms customizations diff --git a/makemkv/settings.conf.example b/makemkv/settings.conf.example index c223f5b..018aba6 100644 --- a/makemkv/settings.conf.example +++ b/makemkv/settings.conf.example @@ -1,11 +1,11 @@ # -# MakeMKV settings file, written by MakeMKV v1.14.5 linux(x64-release) -# suitable for version 1.14.5, expires 2019-11-31 +# MakeMKV settings file, written by MakeMKV v1.14.7 linux(x64-release) +# suitable for version 1.14.7, expires 2020-01-31 app_DestinationDir = "" app_InterfaceLanguage = "eng" app_Java = "" -app_Key = "T-2541DIINav5@4EGGUu7241BvCfC4XgLo6D4oPhE2SeyupYYWNYkg_48BAZACI4LfyQ" +app_Key = "T-a37dwZgouzYiNxPOnU4AbpRtCakD0UzdFPuHLnCfX2O2kshXG4KhC37lho7axaXvtZ" app_PreferredLanguage = "eng" app_ccextractor = "" diff --git a/scite-el/README.md b/scite-el/README.md index d19fe20..fe53281 100644 --- a/scite-el/README.md +++ b/scite-el/README.md @@ -7,10 +7,15 @@ Fedora and CentOS do not package scite and I have use of them. CentOS 7 relies o # Reverse dependency matrix Distro | scite version ---------- | --------------- -CentOS 6 | 3.7.5 -CentOS 7 | 3.7.5 -CentOS 8 | 4.1.6 -Fedora 30 | 4.1.6 +CentOS 6 | 3.7.6 +CentOS 7 | 3.7.6 +CentOS 8 | 4.2.3 +Fedora 30 | 4.2.3 -# Differences from upstream +# Differences +## From upstream See file [stackrpms-scite.spec.diff](stackrpms-scite.spec.diff) +## Between scite-fedora and scite-el +Run file [fc-el-scite-diff.sh](fc-el-scite-diff.sh). + + scite-fedora/fc-el-scite-diff.sh | vi - diff --git a/scite-el/scite.spec b/scite-el/scite.spec index ae64d07..ca8c3d6 100644 --- a/scite-el/scite.spec +++ b/scite-el/scite.spec @@ -98,6 +98,9 @@ desktop-file-install --delete-original \ %{_datadir}/applications/* %changelog +* Thu Dec 19 2019 B Stack <bgstack15@gmail.com> - 4.2.3-1/3.7.6-1 +- Update version + * Mon Nov 11 2019 B Stack <bgstack15@gmail.com> - 4.2.2-1/3.7.6-1 - Update version diff --git a/scite-fedora/README.md b/scite-fedora/README.md index d19fe20..fe53281 100644 --- a/scite-fedora/README.md +++ b/scite-fedora/README.md @@ -7,10 +7,15 @@ Fedora and CentOS do not package scite and I have use of them. CentOS 7 relies o # Reverse dependency matrix Distro | scite version ---------- | --------------- -CentOS 6 | 3.7.5 -CentOS 7 | 3.7.5 -CentOS 8 | 4.1.6 -Fedora 30 | 4.1.6 +CentOS 6 | 3.7.6 +CentOS 7 | 3.7.6 +CentOS 8 | 4.2.3 +Fedora 30 | 4.2.3 -# Differences from upstream +# Differences +## From upstream See file [stackrpms-scite.spec.diff](stackrpms-scite.spec.diff) +## Between scite-fedora and scite-el +Run file [fc-el-scite-diff.sh](fc-el-scite-diff.sh). + + scite-fedora/fc-el-scite-diff.sh | vi - diff --git a/scite-fedora/fc-el-scite-diff.sh b/scite-fedora/fc-el-scite-diff.sh new file mode 100755 index 0000000..bae0376 --- /dev/null +++ b/scite-fedora/fc-el-scite-diff.sh @@ -0,0 +1,3 @@ +# use this file to display the differences between fedora and el scite rpm source directories +# usage: scite-fedora/fc-el-scite-diff.sh | vi - +diff -x debian -x stackrpms*.diff -x '*scite*.sh' -x '*z' -x '.*.swp' -Naur scite-fedora scite-el diff --git a/scite-fedora/scite.spec b/scite-fedora/scite.spec index b80a183..a8a6e93 100644 --- a/scite-fedora/scite.spec +++ b/scite-fedora/scite.spec @@ -1,5 +1,5 @@ # el is on 3.x, fc is on 4.x -%global pkgversion 4.2.2 +%global pkgversion 4.2.3 %define tarballversion %( echo %pkgversion | tr -d '.' ) %define scl_env %{nil} @@ -98,6 +98,9 @@ desktop-file-install --delete-original \ %{_datadir}/applications/* %changelog +* Thu Dec 19 2019 B Stack <bgstack15@gmail.com> - 4.2.3-1/3.7.6-1 +- Update version + * Mon Nov 11 2019 B Stack <bgstack15@gmail.com> - 4.2.2-1/3.7.6-1 - Update version diff --git a/simple-mtpfs/README.md b/simple-mtpfs/README.md new file mode 100644 index 0000000..6ffa086 --- /dev/null +++ b/simple-mtpfs/README.md @@ -0,0 +1,14 @@ +# Simple-mtpfs upstream +https://github.com/phatina/simple-mtpfs/ +Upstream has its own debian/ directory but it was only a reference and not a wholesale source for this dpkg. + +# Reason for being in stackrpms +Devuan does not package simple-mtpfs and I want to use it. + +# Reverse dependency matrix +Distro | simple-mtpfs version +-------------- | -------------------- +Devuan Ceres | git master (c9518f3) + +# Differences from upstream packaging info +None diff --git a/simple-mtpfs/debian/README.Debian b/simple-mtpfs/debian/README.Debian new file mode 100644 index 0000000..2dd3b63 --- /dev/null +++ b/simple-mtpfs/debian/README.Debian @@ -0,0 +1,6 @@ +simple-mtpfs for Devuan + + * Generated with a fresh debmake, but still heavily use upstream debian/ directory contents. + * Uses upstream vcs master branch. + + -- B Stack <bgstack15@gmail.com/> Tue, 17 Dec 2019 21:57:30 -0500 diff --git a/simple-mtpfs/debian/changelog b/simple-mtpfs/debian/changelog new file mode 100644 index 0000000..18b0cc2 --- /dev/null +++ b/simple-mtpfs/debian/changelog @@ -0,0 +1,29 @@ +simple-mtpfs (20191217-c9518f3+devuan) OBS; urgency=low + + * Rebuild for devuan from upstream master branch + + -- B Stack <bgstack15@gmail.com/> Tue, 17 Dec 2019 21:57:30 -0500 + +simple-mtpfs (0.3.0-1) unstable; urgency=low + + * Upgrade to 0.3.0 + + -- Peter Hatina <phatina@gmail.com> Sun, 25 Dec 2016 11:39:22 +0100 + +simple-mtpfs (0.2.1-1) unstable; urgency=low + + * Upgrade to v0.2.1 + + -- Peter Hatina <phatina@gmail.com> Sun, 27 Nov 2016 16:05:41 +0100 + +simple-mtpfs (0.2-1) unstable; urgency=low + + * Upgrade to v0.2 + + -- Peter Hatina <phatina@gmail.com> Tue, 03 Dec 2013 21:51:20 +0100 + +simple-mtpfs (0.1-1) precise; urgency=low + + * Initial release + + -- Eugene San (eugenesan) <eugenesan@gmail.com> Wed, 09 Jan 2013 16:13:06 +0200 diff --git a/simple-mtpfs/debian/compat b/simple-mtpfs/debian/compat new file mode 100644 index 0000000..48082f7 --- /dev/null +++ b/simple-mtpfs/debian/compat @@ -0,0 +1 @@ +12 diff --git a/simple-mtpfs/debian/control b/simple-mtpfs/debian/control new file mode 100644 index 0000000..d1ccd89 --- /dev/null +++ b/simple-mtpfs/debian/control @@ -0,0 +1,27 @@ +Source: simple-mtpfs +Section: utils +Priority: optional +Maintainer: B Stack <bgstack15@gmail.com/> +XSBC-Original-Maintainer: Peter Hatina <phatina@gmail.com> +Build-Depends: debhelper (>=12~), + pkg-config, + libmtp-dev, + libfuse-dev (>=2.7.3) +Standards-Version: 4.1.4 +Homepage: https://github.com/phatina/simple-mtpfs +Vcs-Git: git://github.com/phatina/simple-mtpfs.git +Vcs-Browser: https://github.com/phatina/simple-mtpfs + +Package: simple-mtpfs +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends}, fuse +Provides: mtpfs +Conflicts: mtpfs +Description: Simple MTP fuse filesystem driver + SIMPLE-MTPFS (Simple Media Transfer Protocol FileSystem) is a file system for + Linux (and other operating systems with a FUSE implementation, such as Mac OS X + or FreeBSD) capable of operating on files on MTP devices attached via + USB to local machine. On the local computer where the SIMPLE-MTPFS is + mounted, the implementation makes use of the FUSE (Filesystem in Userspace) + kernel module. The practical effect of this is that the end user can seamlessly + interact with MTP device files. diff --git a/simple-mtpfs/debian/copyright b/simple-mtpfs/debian/copyright new file mode 100644 index 0000000..6759b91 --- /dev/null +++ b/simple-mtpfs/debian/copyright @@ -0,0 +1,423 @@ +Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ +Upstream-Name: simple-mtpfs +Source: <url://example.com> +# +# Please double check copyright with the licensecheck(1) command. + +Files: src/simple-mtpfs-fuse.cpp + src/simple-mtpfs-fuse.h + src/simple-mtpfs-libmtp.cpp + src/simple-mtpfs-libmtp.h + src/simple-mtpfs-log.cpp + src/simple-mtpfs-log.h + src/simple-mtpfs-main.cpp + src/simple-mtpfs-mtp-device.cpp + src/simple-mtpfs-mtp-device.h + src/simple-mtpfs-sha1.cpp + src/simple-mtpfs-sha1.h + src/simple-mtpfs-tmp-files-pool.cpp + src/simple-mtpfs-tmp-files-pool.h + src/simple-mtpfs-type-basic.h + src/simple-mtpfs-type-dir.cpp + src/simple-mtpfs-type-dir.h + src/simple-mtpfs-type-file.cpp + src/simple-mtpfs-type-file.h + src/simple-mtpfs-type-tmp-file.cpp + src/simple-mtpfs-type-tmp-file.h + src/simple-mtpfs-util.cpp + src/simple-mtpfs-util.h +Copyright: 2012-2016 Peter Hatina <phatina@gmail.com> +License: GPL-2.0+ + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License as + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + . + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + . + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + ***** END LICENSE BLOCK ***** + . + On Debian systems, the complete text of the GNU General Public License + Version 2 can be found in `/usr/share/common-licenses/GPL-2'. + +Files: AUTHORS + NEWS + README.md + autogen.sh + configure.ac + makefile.am + man/makefile.am + man/simple-mtpfs.1 + simple-mtpfs.spec + src/makefile.am + src/simple-mtpfs-ls.cpp +Copyright: __NO_COPYRIGHT_NOR_LICENSE__ +License: __NO_COPYRIGHT_NOR_LICENSE__ + +Files: INSTALL +Copyright: 1994-2014 Free Software Foundation, Inc. +License: PERMISSIVE + Copying and distribution of this file, with or without modification, + are permitted in any medium without royalty provided the copyright + notice and this notice are preserved. This file is offered as-is, + without warranty of any kind. + . + Basic Installation + +Files: m4/cxx11.m4 +Copyright: 2008 Benjamin Kosnik <bkoz@redhat.com> + 2012 Zack Weinberg <zackw@panix.com> +License: __AUTO_PERMISSIVE__ + Autogenerated files with permissive licenses. + +#---------------------------------------------------------------------------- +# Files marked as NO_LICENSE_TEXT_FOUND may be covered by the following +# license/copyright files. + +#---------------------------------------------------------------------------- +# License file: COPYING + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + . + Copyright (C) 1989, 1991 Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + . + Preamble + . + The licenses for most software are designed to take away your + freedom to share and change it. By contrast, the GNU General Public + License is intended to guarantee your freedom to share and change free + software--to make sure the software is free for all its users. This + General Public License applies to most of the Free Software + Foundation's software and to any other program whose authors commit to + using it. (Some other Free Software Foundation software is covered by + the GNU Lesser General Public License instead.) You can apply it to + your programs, too. + . + When we speak of free software, we are referring to freedom, not + price. Our General Public Licenses are designed to make sure that you + have the freedom to distribute copies of free software (and charge for + this service if you wish), that you receive source code or can get it + if you want it, that you can change the software or use pieces of it + in new free programs; and that you know you can do these things. + . + To protect your rights, we need to make restrictions that forbid + anyone to deny you these rights or to ask you to surrender the rights. + These restrictions translate to certain responsibilities for you if you + distribute copies of the software, or if you modify it. + . + For example, if you distribute copies of such a program, whether + gratis or for a fee, you must give the recipients all the rights that + you have. You must make sure that they, too, receive or can get the + source code. And you must show them these terms so they know their + rights. + . + We protect your rights with two steps: (1) copyright the software, and + (2) offer you this license which gives you legal permission to copy, + distribute and/or modify the software. + . + Also, for each author's protection and ours, we want to make certain + that everyone understands that there is no warranty for this free + software. If the software is modified by someone else and passed on, we + want its recipients to know that what they have is not the original, so + that any problems introduced by others will not reflect on the original + authors' reputations. + . + Finally, any free program is threatened constantly by software + patents. We wish to avoid the danger that redistributors of a free + program will individually obtain patent licenses, in effect making the + program proprietary. To prevent this, we have made it clear that any + patent must be licensed for everyone's free use or not licensed at all. + . + The precise terms and conditions for copying, distribution and + modification follow. + . + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + . + 0. This License applies to any program or other work which contains + a notice placed by the copyright holder saying it may be distributed + under the terms of this General Public License. The "Program", below, + refers to any such program or work, and a "work based on the Program" + means either the Program or any derivative work under copyright law: + that is to say, a work containing the Program or a portion of it, + either verbatim or with modifications and/or translated into another + language. (Hereinafter, translation is included without limitation in + the term "modification".) Each licensee is addressed as "you". + . + Activities other than copying, distribution and modification are not + covered by this License; they are outside its scope. The act of + running the Program is not restricted, and the output from the Program + is covered only if its contents constitute a work based on the + Program (independent of having been made by running the Program). + Whether that is true depends on what the Program does. + . + 1. You may copy and distribute verbatim copies of the Program's + source code as you receive it, in any medium, provided that you + conspicuously and appropriately publish on each copy an appropriate + copyright notice and disclaimer of warranty; keep intact all the + notices that refer to this License and to the absence of any warranty; + and give any other recipients of the Program a copy of this License + along with the Program. + . + You may charge a fee for the physical act of transferring a copy, and + you may at your option offer warranty protection in exchange for a fee. + . + 2. You may modify your copy or copies of the Program or any portion + of it, thus forming a work based on the Program, and copy and + distribute such modifications or work under the terms of Section 1 + above, provided that you also meet all of these conditions: + . + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + . + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + . + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + . + These requirements apply to the modified work as a whole. If + identifiable sections of that work are not derived from the Program, + and can be reasonably considered independent and separate works in + themselves, then this License, and its terms, do not apply to those + sections when you distribute them as separate works. But when you + distribute the same sections as part of a whole which is a work based + on the Program, the distribution of the whole must be on the terms of + this License, whose permissions for other licensees extend to the + entire whole, and thus to each and every part regardless of who wrote it. + . + Thus, it is not the intent of this section to claim rights or contest + your rights to work written entirely by you; rather, the intent is to + exercise the right to control the distribution of derivative or + collective works based on the Program. + . + In addition, mere aggregation of another work not based on the Program + with the Program (or with a work based on the Program) on a volume of + a storage or distribution medium does not bring the other work under + the scope of this License. + . + 3. You may copy and distribute the Program (or a work based on it, + under Section 2) in object code or executable form under the terms of + Sections 1 and 2 above provided that you also do one of the following: + . + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + . + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + . + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + . + The source code for a work means the preferred form of the work for + making modifications to it. For an executable work, complete source + code means all the source code for all modules it contains, plus any + associated interface definition files, plus the scripts used to + control compilation and installation of the executable. However, as a + special exception, the source code distributed need not include + anything that is normally distributed (in either source or binary + form) with the major components (compiler, kernel, and so on) of the + operating system on which the executable runs, unless that component + itself accompanies the executable. + . + If distribution of executable or object code is made by offering + access to copy from a designated place, then offering equivalent + access to copy the source code from the same place counts as + distribution of the source code, even though third parties are not + compelled to copy the source along with the object code. + . + 4. You may not copy, modify, sublicense, or distribute the Program + except as expressly provided under this License. Any attempt + otherwise to copy, modify, sublicense or distribute the Program is + void, and will automatically terminate your rights under this License. + However, parties who have received copies, or rights, from you under + this License will not have their licenses terminated so long as such + parties remain in full compliance. + . + 5. You are not required to accept this License, since you have not + signed it. However, nothing else grants you permission to modify or + distribute the Program or its derivative works. These actions are + prohibited by law if you do not accept this License. Therefore, by + modifying or distributing the Program (or any work based on the + Program), you indicate your acceptance of this License to do so, and + all its terms and conditions for copying, distributing or modifying + the Program or works based on it. + . + 6. Each time you redistribute the Program (or any work based on the + Program), the recipient automatically receives a license from the + original licensor to copy, distribute or modify the Program subject to + these terms and conditions. You may not impose any further + restrictions on the recipients' exercise of the rights granted herein. + You are not responsible for enforcing compliance by third parties to + this License. + . + 7. If, as a consequence of a court judgment or allegation of patent + infringement or for any other reason (not limited to patent issues), + conditions are imposed on you (whether by court order, agreement or + otherwise) that contradict the conditions of this License, they do not + excuse you from the conditions of this License. If you cannot + distribute so as to satisfy simultaneously your obligations under this + License and any other pertinent obligations, then as a consequence you + may not distribute the Program at all. For example, if a patent + license would not permit royalty-free redistribution of the Program by + all those who receive copies directly or indirectly through you, then + the only way you could satisfy both it and this License would be to + refrain entirely from distribution of the Program. + . + If any portion of this section is held invalid or unenforceable under + any particular circumstance, the balance of the section is intended to + apply and the section as a whole is intended to apply in other + circumstances. + . + It is not the purpose of this section to induce you to infringe any + patents or other property right claims or to contest validity of any + such claims; this section has the sole purpose of protecting the + integrity of the free software distribution system, which is + implemented by public license practices. Many people have made + generous contributions to the wide range of software distributed + through that system in reliance on consistent application of that + system; it is up to the author/donor to decide if he or she is willing + to distribute software through any other system and a licensee cannot + impose that choice. + . + This section is intended to make thoroughly clear what is believed to + be a consequence of the rest of this License. + . + 8. If the distribution and/or use of the Program is restricted in + certain countries either by patents or by copyrighted interfaces, the + original copyright holder who places the Program under this License + may add an explicit geographical distribution limitation excluding + those countries, so that distribution is permitted only in or among + countries not thus excluded. In such case, this License incorporates + the limitation as if written in the body of this License. + . + 9. The Free Software Foundation may publish revised and/or new versions + of the General Public License from time to time. Such new versions will + be similar in spirit to the present version, but may differ in detail to + address new problems or concerns. + . + Each version is given a distinguishing version number. If the Program + specifies a version number of this License which applies to it and "any + later version", you have the option of following the terms and conditions + either of that version or of any later version published by the Free + Software Foundation. If the Program does not specify a version number of + this License, you may choose any version ever published by the Free Software + Foundation. + . + 10. If you wish to incorporate parts of the Program into other free + programs whose distribution conditions are different, write to the author + to ask for permission. For software which is copyrighted by the Free + Software Foundation, write to the Free Software Foundation; we sometimes + make exceptions for this. Our decision will be guided by the two goals + of preserving the free status of all derivatives of our free software and + of promoting the sharing and reuse of software generally. + . + NO WARRANTY + . + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY + FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN + OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES + PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED + OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS + TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE + PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, + REPAIR OR CORRECTION. + . + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING + WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR + REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, + INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING + OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED + TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY + YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER + PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE + POSSIBILITY OF SUCH DAMAGES. + . + END OF TERMS AND CONDITIONS + . + How to Apply These Terms to Your New Programs + . + If you develop a new program, and you want it to be of the greatest + possible use to the public, the best way to achieve this is to make it + free software which everyone can redistribute and change under these terms. + . + To do so, attach the following notices to the program. It is safest + to attach them to the start of each source file to most effectively + convey the exclusion of warranty; and each file should have at least + the "copyright" line and a pointer to where the full notice is found. + . + <one line to give the program's name and a brief idea of what it does.> + Copyright (C) <year> <name of author> + . + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + . + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + . + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + . + Also add information on how to contact you by electronic and paper mail. + . + If the program is interactive, make it output a short notice like this + when it starts in an interactive mode: + . + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + . + The hypothetical commands `show w' and `show c' should show the appropriate + parts of the General Public License. Of course, the commands you use may + be called something other than `show w' and `show c'; they could even be + mouse-clicks or menu items--whatever suits your program. + . + You should also get your employer (if you work as a programmer) or your + school, if any, to sign a "copyright disclaimer" for the program, if + necessary. Here is a sample; alter the names: + . + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + . + <signature of Ty Coon>, 1 April 1989 + Ty Coon, President of Vice + . + This General Public License does not permit incorporating your program into + proprietary programs. If your program is a subroutine library, you may + consider it more useful to permit linking proprietary applications with the + library. If this is what you want to do, use the GNU Lesser General + Public License instead of this License. + . diff --git a/simple-mtpfs/debian/patches/series b/simple-mtpfs/debian/patches/series new file mode 100644 index 0000000..4a97dfa --- /dev/null +++ b/simple-mtpfs/debian/patches/series @@ -0,0 +1 @@ +# You must remove unused comment lines for the released package. diff --git a/simple-mtpfs/debian/rules b/simple-mtpfs/debian/rules new file mode 100755 index 0000000..ec34512 --- /dev/null +++ b/simple-mtpfs/debian/rules @@ -0,0 +1,18 @@ +#!/usr/bin/make -f + +# Uncomment this to turn on verbose mode. +#export DH_VERBOSE=1 + +export DEB_BUILD_MAINT_OPTIONS=hardening=+all + +# minimise needless linking +export DEB_LDFLAGS_MAINT_APPEND= -Wl,--as-needed + +%: + dh $@ --parallel --with autoreconf + +# use --as-needed only if supported by dh-autoreconf (to simplify backporting) +DH_AS_NEEDED=$(shell dpkg --compare-versions $$(dpkg --status dh-autoreconf | grep Version | cut -d' ' -f2) ge 6 && echo --as-needed) +override_dh_autoreconf: + [ ! -x "./autogen.sh" ] || ./autogen.sh + dh_autoreconf $(DH_AS_NEEDED) diff --git a/simple-mtpfs/debian/simple-mtpfs.docs b/simple-mtpfs/debian/simple-mtpfs.docs new file mode 100644 index 0000000..8913f46 --- /dev/null +++ b/simple-mtpfs/debian/simple-mtpfs.docs @@ -0,0 +1,2 @@ +NEWS +README.md diff --git a/simple-mtpfs/debian/simple-mtpfs.links b/simple-mtpfs/debian/simple-mtpfs.links new file mode 100644 index 0000000..27cb27c --- /dev/null +++ b/simple-mtpfs/debian/simple-mtpfs.links @@ -0,0 +1,4 @@ +usr/bin/simple-mtpfs usr/bin/mtpfs +usr/bin/simple-mtpfs sbin/mount.mtpfs +usr/share/man/man1/simple-mtpfs.1 usr/share/man/man1/mtpfs.1 +usr/share/man/man1/simple-mtpfs.1 usr/share/man/man1/mount.mtpfs.1 diff --git a/simple-mtpfs/debian/simple-mtpfs.manpages b/simple-mtpfs/debian/simple-mtpfs.manpages new file mode 100644 index 0000000..9b79b47 --- /dev/null +++ b/simple-mtpfs/debian/simple-mtpfs.manpages @@ -0,0 +1 @@ +man/simple-mtpfs.1 diff --git a/simple-mtpfs/debian/source/format b/simple-mtpfs/debian/source/format new file mode 100644 index 0000000..163aaf8 --- /dev/null +++ b/simple-mtpfs/debian/source/format @@ -0,0 +1 @@ +3.0 (quilt) diff --git a/simple-mtpfs/debian/source/local-options b/simple-mtpfs/debian/source/local-options new file mode 100644 index 0000000..00131ee --- /dev/null +++ b/simple-mtpfs/debian/source/local-options @@ -0,0 +1,2 @@ +#abort-on-upstream-changes +#unapply-patches diff --git a/simple-mtpfs/debian/watch b/simple-mtpfs/debian/watch new file mode 100644 index 0000000..3a5c96d --- /dev/null +++ b/simple-mtpfs/debian/watch @@ -0,0 +1,3 @@ +# You must remove unused comment lines for the released package. +version=3 +https://github.com/downloads/phatina/simple-mtpfs/simple-mtpfs-(.+).tar.gz diff --git a/veracrypt/debian/changelog b/veracrypt/debian/changelog index 884430d..13d13d3 100644 --- a/veracrypt/debian/changelog +++ b/veracrypt/debian/changelog @@ -1,3 +1,9 @@ +veracrypt (1.24-2+devuan) obs; urgency=low + + * Attempt a build with gtk3 + + -- B Stack <bgstack15@gmail.com> Thu, 21 Nov 2019 10:58:35 -0500 + veracrypt (1.24-1+devuan) obs; urgency=low * New upstream version diff --git a/veracrypt/debian/control b/veracrypt/debian/control index 02fb1aa..b33eb0e 100644 --- a/veracrypt/debian/control +++ b/veracrypt/debian/control @@ -5,7 +5,7 @@ Maintainer: B Stack <bgstack15@gmail.com> Build-Depends: debhelper (>= 11), libayatana-appindicator-dev | libappindicator-dev, libfuse-dev, - libwxgtk3.0-dev, + libwxgtk3.0-gtk3-dev, pkg-config, yasm [any-i386 any-amd64] Standards-Version: 4.2.1 |