summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--freefilesync/.gitignore1
-rw-r--r--freefilesync/FreeFileSync.desktop3
-rw-r--r--freefilesync/README-freefilesync.md25
-rw-r--r--freefilesync/RealTimeSync.desktop1
-rw-r--r--freefilesync/credits.md4
-rw-r--r--freefilesync/debian/changelog25
-rw-r--r--freefilesync/debian/control9
-rw-r--r--freefilesync/debian/files4
-rw-r--r--freefilesync/debian/freefilesync.debhelper.log3
-rw-r--r--freefilesync/debian/freefilesync.substvars2
-rw-r--r--freefilesync/debian/patches/ffs_allow_parallel_ops.patch25
-rw-r--r--freefilesync/debian/patches/ffs_devuan.patch (renamed from freefilesync/debian/patches/devuan.patch)2
-rw-r--r--freefilesync/debian/patches/ffs_makefile.patch32
-rw-r--r--freefilesync/debian/patches/ffs_no_check_updates.patch67
-rw-r--r--freefilesync/debian/patches/ffs_no_wx311.patch (renamed from freefilesync/debian/patches/no_wx311.patch)0
-rw-r--r--freefilesync/debian/patches/ffs_old_libcurl.patch13
-rw-r--r--freefilesync/debian/patches/ffs_sftp.patch17
-rw-r--r--freefilesync/debian/patches/makefile.patch32
-rw-r--r--freefilesync/debian/patches/no_check_updates.patch57
-rw-r--r--freefilesync/debian/patches/series12
-rwxr-xr-xfreefilesync/debian/rules92
-rw-r--r--freefilesync/ffs_allow_parallel_ops.patch25
-rw-r--r--freefilesync/ffs_el.patch107
-rw-r--r--freefilesync/ffs_fedora.patch47
-rw-r--r--freefilesync/ffs_makefile.patch32
-rw-r--r--freefilesync/ffs_no_check_updates.patch56
-rw-r--r--freefilesync/ffs_sftp.patch19
-rw-r--r--freefilesync/freefilesync.spec86
-rw-r--r--palemoon-ublock-origin/debian/.debhelper/generated/palemoon-ublock-origin/installed-by-dh_installdocs0
-rw-r--r--palemoon-ublock-origin/debian/Makefile17
-rw-r--r--palemoon-ublock-origin/debian/README.Debian9
-rw-r--r--palemoon-ublock-origin/debian/changelog5
-rw-r--r--palemoon-ublock-origin/debian/compat1
-rw-r--r--palemoon-ublock-origin/debian/control15
-rw-r--r--palemoon-ublock-origin/debian/copyright8
-rw-r--r--palemoon-ublock-origin/debian/debhelper-build-stamp1
-rw-r--r--palemoon-ublock-origin/debian/files2
-rw-r--r--palemoon-ublock-origin/debian/palemoon-ublock-origin.substvars2
-rw-r--r--palemoon-ublock-origin/debian/patches/series1
-rwxr-xr-xpalemoon-ublock-origin/debian/rules18
-rw-r--r--palemoon-ublock-origin/debian/source/format1
-rw-r--r--palemoon-ublock-origin/debian/source/local-options2
-rw-r--r--palemoon-ublock-origin/debian/watch2
43 files changed, 658 insertions, 224 deletions
diff --git a/freefilesync/.gitignore b/freefilesync/.gitignore
new file mode 100644
index 0000000..10d00b5
--- /dev/null
+++ b/freefilesync/.gitignore
@@ -0,0 +1 @@
+*.gz
diff --git a/freefilesync/FreeFileSync.desktop b/freefilesync/FreeFileSync.desktop
index 534dd79..8e1163e 100644
--- a/freefilesync/FreeFileSync.desktop
+++ b/freefilesync/FreeFileSync.desktop
@@ -5,7 +5,8 @@ GenericName[pt_BR]=Sincronização de arquivos
Comment=Backup software to synchronize files and folders
Comment[pt_BR]=Aplicação de backup para sincronizar arquivos e diretórios
Exec=FreeFileSync
-Icon=freefilesync
+Icon=FreeFileSync
+Path=/usr/share/freefilesync
Terminal=false
Type=Application
StartupNotify=true
diff --git a/freefilesync/README-freefilesync.md b/freefilesync/README-freefilesync.md
new file mode 100644
index 0000000..02d0505
--- /dev/null
+++ b/freefilesync/README-freefilesync.md
@@ -0,0 +1,25 @@
+# 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/RealTimeSync.desktop b/freefilesync/RealTimeSync.desktop
index dc1cfdf..0a94126 100644
--- a/freefilesync/RealTimeSync.desktop
+++ b/freefilesync/RealTimeSync.desktop
@@ -6,6 +6,7 @@ Comment=Real time synchronization
Comment[pt_BR]=Sincronização em tempo real
Exec=RealTimeSync
Icon=RealTimeSync
+Path=/usr/share/freefilesync
Terminal=false
Type=Application
StartupNotify=true
diff --git a/freefilesync/credits.md b/freefilesync/credits.md
deleted file mode 100644
index 8a92965..0000000
--- a/freefilesync/credits.md
+++ /dev/null
@@ -1,4 +0,0 @@
-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/)
diff --git a/freefilesync/debian/changelog b/freefilesync/debian/changelog
index 4c1d7e8..914b53d 100644
--- a/freefilesync/debian/changelog
+++ b/freefilesync/debian/changelog
@@ -1,5 +1,30 @@
+freefilesync (10.9-1devuan) manual; urgency=low
+
+ * Added FTP, SFTP, Google Drive support for Linux
+ * FreeFileSync Donation Edition available for Linux
+ * Compress file stream during Google Drive upload
+ * Navigate beyond access-denied parents in SFTP folder picker
+ * Fixed unexpected stream size error during FTP upload
+ * Support native recursive deletion for Google Drive
+ * Support native recursive deletion for MTP
+ * Deterministically save Google Drive state during exit
+ * Work around missing TMPDIR variable (Linux)
+ * Support SFTP servers returning large package sizes during folder reading
+ * Start with home path when using SFTP folder picker
+ * Aggregate device authentication prompts during comparison
+ * Clean up temp file after unexpected stream size error
+ * Work around FTP servers not supporting HELP command
+ * Support parsing path by volume name when volume is missing
+ * Parse and streamline Google Drive error messages
+ * Load next item after deleting from config history
+ * Avoid redundant Google Drive syncs after file/folder creation
+ * Avoid duplicate MTP item creation by multiple threads
+
+ -- B Stack <bgstack15@gmail.com> Thu, 14 Feb 2019 10:46:09 -0500
+
freefilesync (10.8-1devuan) manual; urgency=low
* Initial release.
-- B Stack <bgstack15@gmail.com> Tue, 29 Jan 2019 09:20:41 -0500
+
diff --git a/freefilesync/debian/control b/freefilesync/debian/control
index 4af779c..1fb280c 100644
--- a/freefilesync/debian/control
+++ b/freefilesync/debian/control
@@ -4,12 +4,15 @@ Priority: optional
Maintainer: B Stack <bgstack15@gmail.com>
Build-Depends: debhelper (>=11~),
autotools-dev,
- libwxgtk3.0-dev,
- wx3.0-headers,
imagemagick,
- libboost-thread-dev (>= 1.46),
libboost-system-dev (>= 1.46),
+ libboost-thread-dev (>= 1.46),
+ libcurl4-openssl-dev,
libgtk2.0-dev,
+ libssh2-1-dev,
+ libssl-dev,
+ libwxgtk3.0-dev,
+ wx3.0-headers,
Standards-Version: 4.1.4
Homepage: https://freefilesync.org/
diff --git a/freefilesync/debian/files b/freefilesync/debian/files
index ad90091..c26d041 100644
--- a/freefilesync/debian/files
+++ b/freefilesync/debian/files
@@ -1,2 +1,2 @@
-freefilesync_10.8-1devuan_amd64.buildinfo utils optional
-freefilesync_10.8-1devuan_amd64.deb utils optional
+freefilesync_10.9-1devuan_amd64.buildinfo utils optional
+freefilesync_10.9-1devuan_amd64.deb utils optional
diff --git a/freefilesync/debian/freefilesync.debhelper.log b/freefilesync/debian/freefilesync.debhelper.log
deleted file mode 100644
index 278d5fc..0000000
--- a/freefilesync/debian/freefilesync.debhelper.log
+++ /dev/null
@@ -1,3 +0,0 @@
-override_dh_auto_install dh_auto_install
-override_dh_auto_install dh_auto_install
-override_dh_auto_install dh_auto_install
diff --git a/freefilesync/debian/freefilesync.substvars b/freefilesync/debian/freefilesync.substvars
index d4fe8de..fad364f 100644
--- a/freefilesync/debian/freefilesync.substvars
+++ b/freefilesync/debian/freefilesync.substvars
@@ -1,3 +1,3 @@
-shlibs:Depends=libatk1.0-0 (>= 1.12.4), libc6 (>= 2.28), libcairo2 (>= 1.2.4), libfontconfig1 (>= 2.12.6), libfreetype6 (>= 2.2.1), libgcc1 (>= 1:3.0), libgdk-pixbuf2.0-0 (>= 2.22.0), libglib2.0-0 (>= 2.16.0), libgtk2.0-0 (>= 2.14.0), libpango-1.0-0 (>= 1.14.0), libpangocairo-1.0-0 (>= 1.14.0), libpangoft2-1.0-0 (>= 1.14.0), libselinux1 (>= 1.32), libstdc++6 (>= 7), libwxbase3.0-0v5 (>= 3.0.4+dfsg), libwxgtk3.0-0v5 (>= 3.0.4+dfsg), zlib1g (>= 1:1.2.0)
+shlibs:Depends=libatk1.0-0 (>= 1.12.4), libc6 (>= 2.28), libcairo2 (>= 1.2.4), libcurl4 (>= 7.16.2), libfontconfig1 (>= 2.12.6), libfreetype6 (>= 2.2.1), libgcc1 (>= 1:3.0), libgdk-pixbuf2.0-0 (>= 2.22.0), libglib2.0-0 (>= 2.16.0), libgtk2.0-0 (>= 2.14.0), libpango-1.0-0 (>= 1.14.0), libpangocairo-1.0-0 (>= 1.14.0), libpangoft2-1.0-0 (>= 1.14.0), libselinux1 (>= 1.32), libssh2-1 (>= 1.7.0), libssl1.1 (>= 1.1.0), libstdc++6 (>= 7), libwxbase3.0-0v5 (>= 3.0.4+dfsg), libwxgtk3.0-0v5 (>= 3.0.4+dfsg), zlib1g (>= 1:1.2.0)
misc:Depends=
misc:Pre-Depends=
diff --git a/freefilesync/debian/patches/ffs_allow_parallel_ops.patch b/freefilesync/debian/patches/ffs_allow_parallel_ops.patch
new file mode 100644
index 0000000..e464662
--- /dev/null
+++ b/freefilesync/debian/patches/ffs_allow_parallel_ops.patch
@@ -0,0 +1,25 @@
+This is still experimental.
+diff -x '*.orig' -x '*.swp' -x '*.rej' -Naur 10.9-0/FreeFileSync/Source/ui/folder_selector.cpp 10.9-1/FreeFileSync/Source/ui/folder_selector.cpp
+--- 10.9-0/FreeFileSync/Source/ui/folder_selector.cpp 2019-02-10 16:42:28.960039117 -0500
++++ 10.9-1/FreeFileSync/Source/ui/folder_selector.cpp 2019-02-10 20:20:11.981339625 -0500
+@@ -231,7 +231,7 @@
+
+ std::optional<std::wstring> parallelOpsDisabledReason;
+
+- parallelOpsDisabledReason = _("Requires FreeFileSync Donation Edition");
++ // parallelOpsDisabledReason = _("Requires FreeFileSync Donation Edition");
+
+ if (showCloudSetupDialog(parent_, folderPathPhrase, parallelOps, get(parallelOpsDisabledReason)) != ReturnSmallDlg::BUTTON_OKAY)
+ return;
+diff -Naur -x '*.orig' -x '*.rej' 10.9-0/FreeFileSync/Source/ui/sync_cfg.cpp 10.9-1/FreeFileSync/Source/ui/sync_cfg.cpp
+--- 10.9-0/FreeFileSync/Source/ui/sync_cfg.cpp 2019-02-10 22:01:42.075159451 -0500
++++ 10.9-1/FreeFileSync/Source/ui/sync_cfg.cpp 2019-02-11 21:25:11.685992654 -0500
+@@ -263,7 +263,7 @@
+ globalPairCfg_(globalPairCfg),
+ localPairCfg_(localPairConfig),
+ showMultipleCfgs_(showMultipleCfgs),
+-perfPanelActive_(false),
++perfPanelActive_(true),
+ commandHistItemsMax_(commandHistItemsMax)
+ {
+ setStandardButtonLayout(*bSizerStdButtons, StdButtons().setAffirmative(m_buttonOkay).setCancel(m_buttonCancel));
diff --git a/freefilesync/debian/patches/devuan.patch b/freefilesync/debian/patches/ffs_devuan.patch
index abe5389..ff840d7 100644
--- a/freefilesync/debian/patches/devuan.patch
+++ b/freefilesync/debian/patches/ffs_devuan.patch
@@ -18,7 +18,7 @@ diff -Naur 10.6-0/FreeFileSync/Source/base/ffs_paths.cpp 10.6-1/FreeFileSync/Sou
//if (isPortableVersion())
- return appendSeparator(getExeFolderParentPath());
-+ return appendSeparator(getExeFolderParentPath()) + appendSeparator("share") + appendSeparator("FreeFileSync");
++ return appendSeparator("/usr") + appendSeparator("share") + appendSeparator("freefilesync");
//else //use OS' standard paths
// return appendSeparator(utfTo<Zstring>(wxStandardPathsBase::Get().GetResourcesDir()));
}
diff --git a/freefilesync/debian/patches/ffs_makefile.patch b/freefilesync/debian/patches/ffs_makefile.patch
new file mode 100644
index 0000000..79a8233
--- /dev/null
+++ b/freefilesync/debian/patches/ffs_makefile.patch
@@ -0,0 +1,32 @@
+diff -Naur -x '*.orig' -x '*.rej' 10.9-0/FreeFileSync/Source/Makefile 10.9-1/FreeFileSync/Source/Makefile
+--- 10.3-0/FreeFileSync/Source/Makefile 2019-02-10 22:01:42.138160180 -0500
++++ 10.9-1/FreeFileSync/Source/Makefile 2019-02-11 21:48:19.729739859 -0500
+@@ -1,10 +1,10 @@
+-EXENAME = FreeFileSync_$(shell arch)
++EXENAME = FreeFileSync
+
+ CXXFLAGS = -std=c++17 -pipe -DWXINTL_NO_GETTEXT_MACRO -DLIBSSH2_OPENSSL -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
+
+-LINKFLAGS = -s -no-pie `wx-config --libs std, aui --debug=no` -pthread
++LINKFLAGS = -s -no-pie `wx-config --libs std, aui --debug=no` -lz -pthread
+
+
+ CXXFLAGS += `pkg-config --cflags openssl`
+diff -Naur -x '*.orig' -x '*.rej' 10.9-0/FreeFileSync/Source/RealTimeSync/Makefile 10.9-1/FreeFileSync/Source/RealTimeSync/Makefile
+--- 10.3-0/FreeFileSync/Source/RealTimeSync/Makefile 2019-02-10 22:01:42.141160214 -0500
++++ 10.9-1/FreeFileSync/Source/RealTimeSync/Makefile 2019-02-11 21:48:22.504771344 -0500
+@@ -1,10 +1,10 @@
+-EXENAME = RealTimeSync_$(shell arch)
++EXENAME = RealTimeSync
+
+ 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
+
+-LINKFLAGS = -s -no-pie `wx-config --libs std, aui --debug=no` -pthread
++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`
diff --git a/freefilesync/debian/patches/ffs_no_check_updates.patch b/freefilesync/debian/patches/ffs_no_check_updates.patch
new file mode 100644
index 0000000..3582b1d
--- /dev/null
+++ b/freefilesync/debian/patches/ffs_no_check_updates.patch
@@ -0,0 +1,67 @@
+diff -x '*.swp' -x '*.orig' -x '*.rej' -Naur 10.9-0/FreeFileSync/Source/ui/main_dlg.cpp 10.9-1/FreeFileSync/Source/ui/main_dlg.cpp
+--- 10.9-0/FreeFileSync/Source/ui/main_dlg.cpp 2019-02-10 22:01:42.029158919 -0500
++++ 10.9-1/FreeFileSync/Source/ui/main_dlg.cpp 2019-02-10 22:01:57.435336536 -0500
+@@ -5023,7 +5023,7 @@
+ globalCfg_.gui.lastUpdateCheck = 0; //reset to GlobalSettings.xml default value!
+
+ m_menuItemCheckVersionAuto->Check(updateCheckActive(globalCfg_.gui.lastUpdateCheck));
+-
++ /*
+ if (shouldRunAutomaticUpdateCheck(globalCfg_.gui.lastUpdateCheck))
+ {
+ flashStatusInformation(_("Searching for program updates..."));
+@@ -5031,6 +5031,7 @@
+ automaticUpdateCheckEval(this, globalCfg_.gui.lastUpdateCheck, globalCfg_.gui.lastOnlineVersion,
+ automaticUpdateCheckRunAsync(automaticUpdateCheckPrepare().get()).get());
+ }
++ */
+ }
+
+
+@@ -5038,7 +5039,7 @@
+ {
+ //execute just once per startup!
+ Disconnect(wxEVT_IDLE, wxIdleEventHandler(MainDialog::OnRegularUpdateCheck), nullptr, this);
+-
++ /*
+ if (shouldRunAutomaticUpdateCheck(globalCfg_.gui.lastUpdateCheck))
+ {
+ flashStatusInformation(_("Searching for program updates..."));
+@@ -5052,6 +5053,7 @@
+ resultAsync.get()); //run on main thread:
+ });
+ }
++ */
+ }
+
+
+diff -x '*.swp' -x '*.orig' -x '*.rej' -Naur 10.9-0/FreeFileSync/Source/ui/version_check.cpp 10.9-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.9-1/FreeFileSync/Source/ui/version_check.cpp 2019-02-10 22:17:56.183369507 -0500
+@@ -69,6 +69,8 @@
+
+ bool fff::shouldRunAutomaticUpdateCheck(time_t lastUpdateCheck)
+ {
++ // short-circuit
++ return false;
+ if (lastUpdateCheck == getVersionCheckInactiveId())
+ return false;
+
+@@ -236,13 +238,13 @@
+ const std::string onlineVersion = getOnlineVersion(geHttpPostParameters()); //throw SysError
+ lastOnlineVersion = onlineVersion;
+
+- if (haveNewerVersionOnline(onlineVersion))
+- showUpdateAvailableDialog(parent, onlineVersion);
+- else
++ //if (haveNewerVersionOnline(onlineVersion))
++ // showUpdateAvailableDialog(parent, onlineVersion);
++ //else
+ showNotificationDialog(parent, DialogInfoType::INFO, PopupDialogCfg().
+ setIcon(getResourceImage(L"update_check")).
+ setTitle(_("Check for Program Updates")).
+- setMainInstructions(_("FreeFileSync is up to date.")));
++ setMainInstructions(_("Use your package manager for any updates to FreeFileSync.")));
+ }
+ catch (const zen::SysError& e)
+ {
diff --git a/freefilesync/debian/patches/no_wx311.patch b/freefilesync/debian/patches/ffs_no_wx311.patch
index 78ac2a5..78ac2a5 100644
--- a/freefilesync/debian/patches/no_wx311.patch
+++ b/freefilesync/debian/patches/ffs_no_wx311.patch
diff --git a/freefilesync/debian/patches/ffs_old_libcurl.patch b/freefilesync/debian/patches/ffs_old_libcurl.patch
new file mode 100644
index 0000000..e13f1bb
--- /dev/null
+++ b/freefilesync/debian/patches/ffs_old_libcurl.patch
@@ -0,0 +1,13 @@
+Upstream uses a libcurl more current than Fedora 29.
+diff -x '*.orig' -x '*.swp' -x '*.rej' -Naur 10.9-0/FreeFileSync/Source/fs/libcurl/curl_wrap.h 10.9-1/FreeFileSync/Source/fs/libcurl/curl_wrap.h
+--- 10.9-0/FreeFileSync/Source/fs/libcurl/curl_wrap.h 2019-02-10 16:42:29.124040824 -0500
++++ 10.9-1/FreeFileSync/Source/fs/libcurl/curl_wrap.h 2019-02-10 20:57:30.758315345 -0500
+@@ -75,7 +75,7 @@
+ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_UNKNOWN_OPTION);
+ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_TELNET_OPTION_SYNTAX);
+ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_OBSOLETE50);
+- ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_OBSOLETE51);
++ //ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_OBSOLETE51);
+ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_PEER_FAILED_VERIFICATION);
+ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_GOT_NOTHING);
+ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_SSL_ENGINE_NOTFOUND);
diff --git a/freefilesync/debian/patches/ffs_sftp.patch b/freefilesync/debian/patches/ffs_sftp.patch
new file mode 100644
index 0000000..34dc9ad
--- /dev/null
+++ b/freefilesync/debian/patches/ffs_sftp.patch
@@ -0,0 +1,17 @@
+diff -x '*.orig' -x '*.swp' -x '*.rej' -Naur 10.9-0/FreeFileSync/Source/fs/sftp.cpp 10.9-1/FreeFileSync/Source/fs/sftp.cpp
+--- 10.9-0/FreeFileSync/Source/fs/sftp.cpp 2019-02-10 16:42:29.139040980 -0500
++++ 10.9-1/FreeFileSync/Source/fs/sftp.cpp 2019-02-10 21:28:00.030732089 -0500
+@@ -56,9 +56,10 @@
+
+ //attention: if operation fails due to time out, e.g. file copy, the cleanup code may hang, too => total delay = 2 x time out interval
+
+-const size_t SFTP_OPTIMAL_BLOCK_SIZE_READ = 4 * MAX_SFTP_READ_SIZE; //https://github.com/libssh2/libssh2/issues/90
+-const size_t SFTP_OPTIMAL_BLOCK_SIZE_WRITE = 4 * MAX_SFTP_OUTGOING_SIZE; //
+-static_assert(MAX_SFTP_READ_SIZE == 30000 && MAX_SFTP_OUTGOING_SIZE == 30000, "reevaluate optimal block sizes if these constants change!");
++// these values are all manually derived from https://github.com/libssh2/libssh2/blob/master/src/sftp.h which for some weak reason are not included in the libssh2-devel headers.
++const size_t SFTP_OPTIMAL_BLOCK_SIZE_READ = 4 * 30000; //https://github.com/libssh2/libssh2/issues/90
++const size_t SFTP_OPTIMAL_BLOCK_SIZE_WRITE = 4 * 30000; //
++//static_assert(MAX_SFTP_READ_SIZE == 30000 && MAX_SFTP_OUTGOING_SIZE == 30000, "reevaluate optimal block sizes if these constants change!");
+ /*
+ Perf Test, Sourceforge frs, SFTP upload, compressed 25 MB test file:
+
diff --git a/freefilesync/debian/patches/makefile.patch b/freefilesync/debian/patches/makefile.patch
deleted file mode 100644
index b3ff7ff..0000000
--- a/freefilesync/debian/patches/makefile.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-diff -Naur -x '*.orig' -x '*.rej' 10.3-0/FreeFileSync/Source/Makefile 10.3-2/FreeFileSync/Source/Makefile
---- 10.3-0/FreeFileSync/Source/Makefile 2018-08-07 05:03:33.000000000 -0400
-+++ 10.3-2/FreeFileSync/Source/Makefile 2018-08-15 22:25:06.694355202 -0400
-@@ -9,7 +9,7 @@
- -Wall -Wfatal-errors -Wmissing-include-dirs -Wswitch-enum -Wcast-align -Wshadow -Wnon-virtual-dtor \
- -O3 -DNDEBUG `wx-config --cxxflags --debug=no` -pthread
-
--LINKFLAGS = -s -no-pie `wx-config --libs std, aui --debug=no` -pthread
-+LINKFLAGS = -s -no-pie `wx-config --libs std, aui --debug=no` -lz -pthread
-
- #Gtk - support recycler/icon loading/no button border/grid scrolling
- CXXFLAGS += `pkg-config --cflags gtk+-2.0`
-@@ -101,6 +101,7 @@
- all: ../Build/Bin/$(APPNAME)
-
- ../Build/Bin/$(APPNAME): $(OBJ_FILES)
-+ mkdir -p ../Build/Bin
- g++ -o $@ $^ $(LINKFLAGS)
-
- ../Obj/FFS_GCC_Make_Release/ffs/src/%.o : %
-diff -Naur -x '*.orig' -x '*.rej' 10.3-0/FreeFileSync/Source/RealTimeSync/Makefile 10.3-2/FreeFileSync/Source/RealTimeSync/Makefile
---- 10.3-0/FreeFileSync/Source/RealTimeSync/Makefile 2018-08-07 05:03:33.000000000 -0400
-+++ 10.3-2/FreeFileSync/Source/RealTimeSync/Makefile 2018-08-15 22:25:15.968461418 -0400
-@@ -6,7 +6,7 @@
- -Wall -Wfatal-errors -Wmissing-include-dirs -Wswitch-enum -Wcast-align -Wshadow -Wnon-virtual-dtor \
- -O3 -DNDEBUG `wx-config --cxxflags --debug=no` -pthread
-
--LINKFLAGS = -s -no-pie `wx-config --libs std, aui --debug=no` -pthread
-+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`
diff --git a/freefilesync/debian/patches/no_check_updates.patch b/freefilesync/debian/patches/no_check_updates.patch
deleted file mode 100644
index 99f0c8f..0000000
--- a/freefilesync/debian/patches/no_check_updates.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-diff -Naur -x '*.orig' -x '*.rej' 10.3-0/FreeFileSync/Source/ui/main_dlg.cpp 10.3-2/FreeFileSync/Source/ui/main_dlg.cpp
---- 10.3-0/FreeFileSync/Source/ui/main_dlg.cpp 2018-08-07 05:03:34.000000000 -0400
-+++ 10.3-2/FreeFileSync/Source/ui/main_dlg.cpp 2018-08-08 18:50:50.455078387 -0400
-@@ -5004,7 +5004,7 @@
- globalCfg_.gui.lastUpdateCheck = 0; //reset to GlobalSettings.xml default value!
-
- m_menuItemCheckVersionAuto->Check(updateCheckActive(globalCfg_.gui.lastUpdateCheck));
--
-+ /*
- if (shouldRunAutomaticUpdateCheck(globalCfg_.gui.lastUpdateCheck))
- {
- flashStatusInformation(_("Searching for program updates..."));
-@@ -5012,6 +5012,7 @@
- automaticUpdateCheckEval(this, globalCfg_.gui.lastUpdateCheck, globalCfg_.gui.lastOnlineVersion,
- automaticUpdateCheckRunAsync(automaticUpdateCheckPrepare().get()).get());
- }
-+ */
- }
-
-
-@@ -5019,7 +5020,7 @@
- {
- //execute just once per startup!
- Disconnect(wxEVT_IDLE, wxIdleEventHandler(MainDialog::OnRegularUpdateCheck), nullptr, this);
--
-+ /*
- if (shouldRunAutomaticUpdateCheck(globalCfg_.gui.lastUpdateCheck))
- {
- flashStatusInformation(_("Searching for program updates..."));
-@@ -5033,6 +5034,7 @@
- resultAsync.get()); //run on main thread:
- });
- }
-+ */
- }
-
-
-diff -Naur -x '*.orig' -x '*.rej' 10.3-0/FreeFileSync/Source/ui/version_check_impl.h 10.3-2/FreeFileSync/Source/ui/version_check_impl.h
---- 10.3-0/FreeFileSync/Source/ui/version_check_impl.h 2018-08-07 05:03:34.000000000 -0400
-+++ 10.3-2/FreeFileSync/Source/ui/version_check_impl.h 2018-08-08 18:50:50.458078415 -0400
-@@ -14,7 +14,7 @@
-
- namespace fff
- {
--inline
-+
- time_t getVersionCheckInactiveId()
- {
- //use current version to calculate a changing number for the inactive state near UTC begin, in order to always check for updates after installing a new version
-@@ -38,7 +38,6 @@
- }
-
-
--inline
- time_t getVersionCheckCurrentTime()
- {
- return std::time(nullptr);
diff --git a/freefilesync/debian/patches/series b/freefilesync/debian/patches/series
index d430762..2dbed63 100644
--- a/freefilesync/debian/patches/series
+++ b/freefilesync/debian/patches/series
@@ -1,5 +1,7 @@
-# You must remove unused comment lines for the released package.
-no_check_updates.patch
-devuan.patch
-no_wx311.patch
-makefile.patch
+ffs_allow_parallel_ops.patch
+ffs_devuan.patch
+ffs_makefile.patch
+ffs_no_check_updates.patch
+ffs_no_wx311.patch
+ffs_old_libcurl.patch
+ffs_sftp.patch
diff --git a/freefilesync/debian/rules b/freefilesync/debian/rules
index cc1a493..612e88e 100755
--- a/freefilesync/debian/rules
+++ b/freefilesync/debian/rules
@@ -9,7 +9,10 @@ export appname=freefilesync
export pkgname=FreeFileSync
export prog2name=RealTimeSync
export debuilddir="debian"
-export debuildappdir="${debuilddir}/${appname}"
+export debuildappdir="${pkgname}"
+export buildroot="${debuilddir}/${appname}"
+export _datadir="/usr/share"
+export _bindir="/usr/bin"
%:
dh $@
@@ -26,18 +29,23 @@ override_dh_auto_build:
dh_auto_build --sourcedirectory=FreeFileSync/Source/RealTimeSync
override_dh_auto_install:
- dh_auto_install
- dh_auto_install --sourcedirectory=FreeFileSync/Source
- dh_auto_install --sourcedirectory=FreeFileSync/Source/RealTimeSync
+ # removed by upstream!
+ #dh_auto_install
+ #dh_auto_install --sourcedirectory=FreeFileSync/Source
+ #dh_auto_install --sourcedirectory=FreeFileSync/Source/RealTimeSync
+ install -d ${buildroot}${_bindir} ${buildroot}${_datadir}/${appname}
+ install -Dm 0755 -t ${buildroot}${_bindir} ${debuildappdir}/Build/Bin/${pkgname} ${debuildappdir}/Build/Bin/${prog2name}
+ cp -pr ${debuildappdir}/Build/Languages ${buildroot}${_datadir}/${appname}
+ install -Dm 0644 ${debuildappdir}/Build/ding.wav ${debuildappdir}/Build/gong.wav ${debuildappdir}/Build/harp.wav ${debuildappdir}/Build/Resources.zip ${debuildappdir}/Build/styles.gtk_rc ${buildroot}${_datadir}/${appname}
# make extra sure the files are not marked with executable
find ${debuildappdir}/share/${pkgname} -type f -exec chmod -x '{}' \; || :
#find %{buildroot}%{_datadir}/%{pkgname} -type f -exec chmod -x '{}' \; || :
# desktop files
- mkdir -p ${debuildappdir}/usr/share/applications
- desktop-file-install --dir ${debuildappdir}/usr/share/applications ${debuilddir}/freefilesync.desktop
- desktop-file-install --dir ${debuildappdir}/usr/share/applications ${debuilddir}/realtimesync.desktop
+ mkdir -p ${buildroot}${_datadir}/applications
+ desktop-file-install --dir ${buildroot}${_datadir}/applications ${debuilddir}/freefilesync.desktop
+ desktop-file-install --dir ${buildroot}${_datadir}/applications ${debuilddir}/realtimesync.desktop
# application start script
# none
@@ -50,39 +58,39 @@ override_dh_auto_install:
# icons
unzip ${pkgname}/Build/Resources.zip ${pkgname}.png ${prog2name}.png file_batch.png
- mkdir -p ${debuildappdir}/usr/share/icons/hicolor/16x16/apps
- mkdir -p ${debuildappdir}/usr/share/icons/hicolor/32x32/apps
- mkdir -p ${debuildappdir}/usr/share/icons/hicolor/48x48/apps
- mkdir -p ${debuildappdir}/usr/share/icons/hicolor/64x64/apps
- mkdir -p ${debuildappdir}/usr/share/icons/hicolor/128x128/apps
- mkdir -p ${debuildappdir}/usr/share/icons/hicolor/16x16/mimetypes
- mkdir -p ${debuildappdir}/usr/share/icons/hicolor/32x32/mimetypes
- mkdir -p ${debuildappdir}/usr/share/icons/hicolor/48x48/mimetypes
- mkdir -p ${debuildappdir}/usr/share/icons/hicolor/64x64/mimetypes
- mkdir -p ${debuildappdir}/usr/share/icons/hicolor/128x128/mimetypes
- convert ${pkgname}.png -filter Lanczos -resize 16x16 ${debuildappdir}/usr/share/icons/hicolor/16x16/apps/${pkgname}.png
- convert ${pkgname}.png -filter Lanczos -resize 32x32 ${debuildappdir}/usr/share/icons/hicolor/32x32/apps/${pkgname}.png
- convert ${pkgname}.png -filter Lanczos -resize 48x48 ${debuildappdir}/usr/share/icons/hicolor/48x48/apps/${pkgname}.png
- convert ${pkgname}.png -filter Lanczos -resize 64x64 ${debuildappdir}/usr/share/icons/hicolor/64x64/apps/${pkgname}.png
- convert ${pkgname}.png -filter Lanczos -resize 128x128 ${debuildappdir}/usr/share/icons/hicolor/128x128/apps/${pkgname}.png
- convert ${pkgname}.png -filter Lanczos -resize 16x16 ${debuildappdir}/usr/share/icons/hicolor/16x16/mimetypes/application-x-freefilesync-ffs.png
- convert ${pkgname}.png -filter Lanczos -resize 32x32 ${debuildappdir}/usr/share/icons/hicolor/32x32/mimetypes/application-x-freefilesync-ffs.png
- convert ${pkgname}.png -filter Lanczos -resize 48x48 ${debuildappdir}/usr/share/icons/hicolor/48x48/mimetypes/application-x-freefilesync-ffs.png
- convert ${pkgname}.png -filter Lanczos -resize 64x64 ${debuildappdir}/usr/share/icons/hicolor/64x64/mimetypes/application-x-freefilesync-ffs.png
- convert ${pkgname}.png -filter Lanczos -resize 128x128 ${debuildappdir}/usr/share/icons/hicolor/128x128/mimetypes/application-x-freefilesync-ffs.png
- convert ${prog2name}.png -filter Lanczos -resize 16x16 ${debuildappdir}/usr/share/icons/hicolor/16x16/apps/${prog2name}.png
- convert ${prog2name}.png -filter Lanczos -resize 32x32 ${debuildappdir}/usr/share/icons/hicolor/32x32/apps/${prog2name}.png
- convert ${prog2name}.png -filter Lanczos -resize 48x48 ${debuildappdir}/usr/share/icons/hicolor/48x48/apps/${prog2name}.png
- convert ${prog2name}.png -filter Lanczos -resize 64x64 ${debuildappdir}/usr/share/icons/hicolor/64x64/apps/${prog2name}.png
- convert ${prog2name}.png -filter Lanczos -resize 128x128 ${debuildappdir}/usr/share/icons/hicolor/128x128/apps/${prog2name}.png
- convert ${prog2name}.png -filter Lanczos -resize 16x16 ${debuildappdir}/usr/share/icons/hicolor/16x16/mimetypes/application-x-freefilesync-real.png
- convert ${prog2name}.png -filter Lanczos -resize 32x32 ${debuildappdir}/usr/share/icons/hicolor/32x32/mimetypes/application-x-freefilesync-real.png
- convert ${prog2name}.png -filter Lanczos -resize 48x48 ${debuildappdir}/usr/share/icons/hicolor/48x48/mimetypes/application-x-freefilesync-real.png
- convert ${prog2name}.png -filter Lanczos -resize 64x64 ${debuildappdir}/usr/share/icons/hicolor/64x64/mimetypes/application-x-freefilesync-real.png
- convert ${prog2name}.png -filter Lanczos -resize 128x128 ${debuildappdir}/usr/share/icons/hicolor/128x128/mimetypes/application-x-freefilesync-real.png
- convert file_batch.png -filter Lanczos -resize 16x16 ${debuildappdir}/usr/share/icons/hicolor/16x16/mimetypes/application-x-freefilesync-batch.png
- convert file_batch.png -filter Lanczos -resize 32x32 ${debuildappdir}/usr/share/icons/hicolor/32x32/mimetypes/application-x-freefilesync-batch.png
- convert file_batch.png -filter Lanczos -resize 48x48 ${debuildappdir}/usr/share/icons/hicolor/48x48/mimetypes/application-x-freefilesync-batch.png
- convert file_batch.png -filter Lanczos -resize 64x64 ${debuildappdir}/usr/share/icons/hicolor/64x64/mimetypes/application-x-freefilesync-batch.png
- convert file_batch.png -filter Lanczos -resize 128x128 ${debuildappdir}/usr/share/icons/hicolor/128x128/mimetypes/application-x-freefilesync-batch.png
+ mkdir -p ${buildroot}${_datadir}/icons/hicolor/16x16/apps
+ mkdir -p ${buildroot}${_datadir}/icons/hicolor/32x32/apps
+ mkdir -p ${buildroot}${_datadir}/icons/hicolor/48x48/apps
+ mkdir -p ${buildroot}${_datadir}/icons/hicolor/64x64/apps
+ mkdir -p ${buildroot}${_datadir}/icons/hicolor/128x128/apps
+ mkdir -p ${buildroot}${_datadir}/icons/hicolor/16x16/mimetypes
+ mkdir -p ${buildroot}${_datadir}/icons/hicolor/32x32/mimetypes
+ mkdir -p ${buildroot}${_datadir}/icons/hicolor/48x48/mimetypes
+ mkdir -p ${buildroot}${_datadir}/icons/hicolor/64x64/mimetypes
+ mkdir -p ${buildroot}${_datadir}/icons/hicolor/128x128/mimetypes
+ convert ${pkgname}.png -filter Lanczos -resize 16x16 ${buildroot}${_datadir}/icons/hicolor/16x16/apps/${pkgname}.png
+ convert ${pkgname}.png -filter Lanczos -resize 32x32 ${buildroot}${_datadir}/icons/hicolor/32x32/apps/${pkgname}.png
+ convert ${pkgname}.png -filter Lanczos -resize 48x48 ${buildroot}${_datadir}/icons/hicolor/48x48/apps/${pkgname}.png
+ convert ${pkgname}.png -filter Lanczos -resize 64x64 ${buildroot}${_datadir}/icons/hicolor/64x64/apps/${pkgname}.png
+ convert ${pkgname}.png -filter Lanczos -resize 128x128 ${buildroot}${_datadir}/icons/hicolor/128x128/apps/${pkgname}.png
+ convert ${pkgname}.png -filter Lanczos -resize 16x16 ${buildroot}${_datadir}/icons/hicolor/16x16/mimetypes/application-x-freefilesync-ffs.png
+ convert ${pkgname}.png -filter Lanczos -resize 32x32 ${buildroot}${_datadir}/icons/hicolor/32x32/mimetypes/application-x-freefilesync-ffs.png
+ convert ${pkgname}.png -filter Lanczos -resize 48x48 ${buildroot}${_datadir}/icons/hicolor/48x48/mimetypes/application-x-freefilesync-ffs.png
+ convert ${pkgname}.png -filter Lanczos -resize 64x64 ${buildroot}${_datadir}/icons/hicolor/64x64/mimetypes/application-x-freefilesync-ffs.png
+ convert ${pkgname}.png -filter Lanczos -resize 128x128 ${buildroot}${_datadir}/icons/hicolor/128x128/mimetypes/application-x-freefilesync-ffs.png
+ convert ${prog2name}.png -filter Lanczos -resize 16x16 ${buildroot}${_datadir}/icons/hicolor/16x16/apps/${prog2name}.png
+ convert ${prog2name}.png -filter Lanczos -resize 32x32 ${buildroot}${_datadir}/icons/hicolor/32x32/apps/${prog2name}.png
+ convert ${prog2name}.png -filter Lanczos -resize 48x48 ${buildroot}${_datadir}/icons/hicolor/48x48/apps/${prog2name}.png
+ convert ${prog2name}.png -filter Lanczos -resize 64x64 ${buildroot}${_datadir}/icons/hicolor/64x64/apps/${prog2name}.png
+ convert ${prog2name}.png -filter Lanczos -resize 128x128 ${buildroot}${_datadir}/icons/hicolor/128x128/apps/${prog2name}.png
+ convert ${prog2name}.png -filter Lanczos -resize 16x16 ${buildroot}${_datadir}/icons/hicolor/16x16/mimetypes/application-x-freefilesync-real.png
+ convert ${prog2name}.png -filter Lanczos -resize 32x32 ${buildroot}${_datadir}/icons/hicolor/32x32/mimetypes/application-x-freefilesync-real.png
+ convert ${prog2name}.png -filter Lanczos -resize 48x48 ${buildroot}${_datadir}/icons/hicolor/48x48/mimetypes/application-x-freefilesync-real.png
+ convert ${prog2name}.png -filter Lanczos -resize 64x64 ${buildroot}${_datadir}/icons/hicolor/64x64/mimetypes/application-x-freefilesync-real.png
+ convert ${prog2name}.png -filter Lanczos -resize 128x128 ${buildroot}${_datadir}/icons/hicolor/128x128/mimetypes/application-x-freefilesync-real.png
+ convert file_batch.png -filter Lanczos -resize 16x16 ${buildroot}${_datadir}/icons/hicolor/16x16/mimetypes/application-x-freefilesync-batch.png
+ convert file_batch.png -filter Lanczos -resize 32x32 ${buildroot}${_datadir}/icons/hicolor/32x32/mimetypes/application-x-freefilesync-batch.png
+ convert file_batch.png -filter Lanczos -resize 48x48 ${buildroot}${_datadir}/icons/hicolor/48x48/mimetypes/application-x-freefilesync-batch.png
+ convert file_batch.png -filter Lanczos -resize 64x64 ${buildroot}${_datadir}/icons/hicolor/64x64/mimetypes/application-x-freefilesync-batch.png
+ convert file_batch.png -filter Lanczos -resize 128x128 ${buildroot}${_datadir}/icons/hicolor/128x128/mimetypes/application-x-freefilesync-batch.png
rm -f ${pkgname}.png ${prog2name}.png file_batch.png
diff --git a/freefilesync/ffs_allow_parallel_ops.patch b/freefilesync/ffs_allow_parallel_ops.patch
new file mode 100644
index 0000000..e464662
--- /dev/null
+++ b/freefilesync/ffs_allow_parallel_ops.patch
@@ -0,0 +1,25 @@
+This is still experimental.
+diff -x '*.orig' -x '*.swp' -x '*.rej' -Naur 10.9-0/FreeFileSync/Source/ui/folder_selector.cpp 10.9-1/FreeFileSync/Source/ui/folder_selector.cpp
+--- 10.9-0/FreeFileSync/Source/ui/folder_selector.cpp 2019-02-10 16:42:28.960039117 -0500
++++ 10.9-1/FreeFileSync/Source/ui/folder_selector.cpp 2019-02-10 20:20:11.981339625 -0500
+@@ -231,7 +231,7 @@
+
+ std::optional<std::wstring> parallelOpsDisabledReason;
+
+- parallelOpsDisabledReason = _("Requires FreeFileSync Donation Edition");
++ // parallelOpsDisabledReason = _("Requires FreeFileSync Donation Edition");
+
+ if (showCloudSetupDialog(parent_, folderPathPhrase, parallelOps, get(parallelOpsDisabledReason)) != ReturnSmallDlg::BUTTON_OKAY)
+ return;
+diff -Naur -x '*.orig' -x '*.rej' 10.9-0/FreeFileSync/Source/ui/sync_cfg.cpp 10.9-1/FreeFileSync/Source/ui/sync_cfg.cpp
+--- 10.9-0/FreeFileSync/Source/ui/sync_cfg.cpp 2019-02-10 22:01:42.075159451 -0500
++++ 10.9-1/FreeFileSync/Source/ui/sync_cfg.cpp 2019-02-11 21:25:11.685992654 -0500
+@@ -263,7 +263,7 @@
+ globalPairCfg_(globalPairCfg),
+ localPairCfg_(localPairConfig),
+ showMultipleCfgs_(showMultipleCfgs),
+-perfPanelActive_(false),
++perfPanelActive_(true),
+ commandHistItemsMax_(commandHistItemsMax)
+ {
+ setStandardButtonLayout(*bSizerStdButtons, StdButtons().setAffirmative(m_buttonOkay).setCancel(m_buttonCancel));
diff --git a/freefilesync/ffs_el.patch b/freefilesync/ffs_el.patch
new file mode 100644
index 0000000..0763296
--- /dev/null
+++ b/freefilesync/ffs_el.patch
@@ -0,0 +1,107 @@
+The cstddef discovery is from https://stackoverflow.com/questions/52567517/freefilesync-c-error-byte-is-not-a-member-of-std
+Some changes just make the application work better in an installed setting (e.g., the hard-coded resouce path).
+Tricking the wxWidgets ABI version comes from https://stackoverflow.com/questions/45123664/wxwidgets-runtime-error-mismatch-version/47822976#47822976
+diff -Naur -x '*.orig' -x '*.rej' -x '*.swp' 10.9-0/FreeFileSync/Source/base/ffs_paths.cpp 10.9-1.el7/FreeFileSync/Source/base/ffs_paths.cpp
+--- 10.9-0/FreeFileSync/Source/base/ffs_paths.cpp 2019-02-13 16:05:15.000000000 -0500
++++ 10.9-1.el7/FreeFileSync/Source/base/ffs_paths.cpp 2019-02-17 10:43:22.286986341 -0500
+@@ -59,7 +59,7 @@
+ ZEN_ON_SCOPE_EXIT(wxTheApp->SetAppName(appName));
+
+ //if (isPortableVersion())
+- return appendSeparator(getExeFolderParentPath());
++ return appendSeparator("/usr") + appendSeparator("share") + appendSeparator("freefilesync");
+ //else //use OS' standard paths
+ // return appendSeparator(utfTo<Zstring>(wxStandardPathsBase::Get().GetResourcesDir()));
+ }
+diff -Naur -x '*.orig' -x '*.rej' -x '*.swp' 10.9-0/FreeFileSync/Source/Makefile 10.9-1.el7/FreeFileSync/Source/Makefile
+--- 10.9-0/FreeFileSync/Source/Makefile 2019-02-13 16:05:15.000000000 -0500
++++ 10.9-1.el7/FreeFileSync/Source/Makefile 2019-02-17 10:50:27.282820639 -0500
+@@ -1,10 +1,10 @@
+-EXENAME = FreeFileSync_$(shell arch)
++EXENAME = FreeFileSync
+
+ CXXFLAGS = -std=c++17 -pipe -DWXINTL_NO_GETTEXT_MACRO -DLIBSSH2_OPENSSL -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
+
+-LINKFLAGS = -s -no-pie `wx-config --libs std, aui --debug=no` -pthread
++LINKFLAGS = -s -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -Wl,-z,relro -no-pie `wx-config --version=3.0 --libs std, aui --debug=no | sed -r -e 's/-[^[:space:]]+web[^[:space:]]+//;'` -lz -pthread
+
+
+ CXXFLAGS += `pkg-config --cflags openssl`
+diff -Naur -x '*.orig' -x '*.rej' -x '*.swp' 10.9-0/FreeFileSync/Source/RealTimeSync/Makefile 10.9-1.el7/FreeFileSync/Source/RealTimeSync/Makefile
+--- 10.9-0/FreeFileSync/Source/RealTimeSync/Makefile 2019-02-13 16:05:15.000000000 -0500
++++ 10.9-1.el7/FreeFileSync/Source/RealTimeSync/Makefile 2019-02-17 10:50:43.699007372 -0500
+@@ -1,10 +1,10 @@
+-EXENAME = RealTimeSync_$(shell arch)
++EXENAME = RealTimeSync
+
+ 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
+
+-LINKFLAGS = -s -no-pie `wx-config --libs std, aui --debug=no` -pthread
++LINKFLAGS = -s -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -no-pie `wx-config --version=3.0 --cxxflags --libs std, aui --debug=no | sed -r -e 's/-[^[:space:]]+web[^[:space:]]+//;'` -lz -pthread
+
+ #Gtk - support "no button border"
+ CXXFLAGS += `pkg-config --cflags gtk+-2.0`
+diff -Naur -x '*.orig' -x '*.rej' -x '*.swp' 10.9-0/FreeFileSync/Source/ui/small_dlgs.cpp 10.9-1.el7/FreeFileSync/Source/ui/small_dlgs.cpp
+--- 10.9-0/FreeFileSync/Source/ui/small_dlgs.cpp 2019-02-13 16:05:15.000000000 -0500
++++ 10.9-1.el7/FreeFileSync/Source/ui/small_dlgs.cpp 2019-02-17 10:42:29.741388638 -0500
+@@ -115,6 +115,8 @@
+ L" x64";
+ #endif
+
++ build +=
++ L" for CentOS 7";
+
+ GetSizer()->SetSizeHints(this); //~=Fit() + SetMinSize()
+
+diff -Naur -x '*.orig' -x '*.rej' -x '*.swp' 10.9-0/zen/ring_buffer.h 10.9-1.el7/zen/ring_buffer.h
+--- 10.9-0/zen/ring_buffer.h 2019-02-13 16:05:15.000000000 -0500
++++ 10.9-1.el7/zen/ring_buffer.h 2019-02-17 09:53:10.907818287 -0500
+@@ -9,6 +9,7 @@
+
+ #include <cassert>
+ #include "scope_guard.h"
++#include <cstddef>
+
+
+ namespace zen
+diff -Naur -x '*.orig' -x '*.rej' -x '*.swp' 10.9-0/zen/serialize.h 10.9-1.el7/zen/serialize.h
+--- 10.9-0/zen/serialize.h 2019-02-13 16:05:15.000000000 -0500
++++ 10.9-1.el7/zen/serialize.h 2019-02-17 09:53:06.701772057 -0500
+@@ -9,6 +9,7 @@
+
+ #include <functional>
+ #include <cstdint>
++#include <cstddef>
+ #include "string_base.h"
+ //keep header clean from specific stream implementations! (e.g.file_io.h)! used by abstract.h!
+
+diff -Naur -x '*.orig' -x '*.rej' -x '*.swp' 10.9-0/wx+/app_main.h 10.9-1/wx+/app_main.h
+--- 10.9-0/wx+/app_main.h 2019-02-13 16:05:15.000000000 -0500
++++ 10.9-1/wx+/app_main.h 2019-02-16 13:51:32.437266070 -0500
+@@ -7,6 +7,8 @@
+ #ifndef APP_MAIN_H_08215601837818347575856
+ #define APP_MAIN_H_08215601837818347575856
+
++#define __GXX_ABI_VERSION 1002
++
+ #include <wx/window.h>
+ #include <wx/app.h>
+
+diff -Naur -x '*.orig' -x '*.rej' -x '*.swp' 10.9-0/FreeFileSync/Source/RealTimeSync/application.h 10.9-1.el7/FreeFileSync/Source/RealTimeSync/application.h
+--- 10.9-0/FreeFileSync/Source/RealTimeSync/application.h 2019-02-13 16:05:15.000000000 -0500
++++ 10.9-1.el7/FreeFileSync/Source/RealTimeSync/application.h 2019-02-18 08:53:14.017850931 -0500
+@@ -7,6 +7,8 @@
+ #ifndef APPLICATION_H_18506781708176342677
+ #define APPLICATION_H_18506781708176342677
+
++#define __GXX_ABI_VERSION 1002
++
+ #include <wx/app.h>
+
+
diff --git a/freefilesync/ffs_fedora.patch b/freefilesync/ffs_fedora.patch
index eda1c16..02caceb 100644
--- a/freefilesync/ffs_fedora.patch
+++ b/freefilesync/ffs_fedora.patch
@@ -1,3 +1,4 @@
+Upstream uses a libcurl more current than Fedora 29.
diff -Naur -x '*.orig' -x '*.rej' 10.3-0/FreeFileSync/Source/ui/small_dlgs.cpp 10.3-2/FreeFileSync/Source/ui/small_dlgs.cpp
--- 10.3-0/FreeFileSync/Source/ui/small_dlgs.cpp 2018-08-07 05:03:34.000000000 -0400
+++ 10.3-2/FreeFileSync/Source/ui/small_dlgs.cpp 2018-08-29 22:13:40.240595334 -0400
@@ -18,7 +19,51 @@ diff -Naur 10.6-0/FreeFileSync/Source/base/ffs_paths.cpp 10.6-1/FreeFileSync/Sou
//if (isPortableVersion())
- return appendSeparator(getExeFolderParentPath());
-+ return appendSeparator(getExeFolderParentPath()) + appendSeparator("share") + appendSeparator("FreeFileSync");
++ return appendSeparator("/usr") + appendSeparator("share") + appendSeparator("freefilesync");
//else //use OS' standard paths
// return appendSeparator(utfTo<Zstring>(wxStandardPathsBase::Get().GetResourcesDir()));
}
+diff -Naur -x '*.orig' -x '*.rej' 10.9-0/FreeFileSync/Source/Makefile 10.9-1/FreeFileSync/Source/Makefile
+--- 10.3-0/FreeFileSync/Source/Makefile 2019-02-10 22:01:42.138160180 -0500
++++ 10.9-1/FreeFileSync/Source/Makefile 2019-02-11 21:48:19.729739859 -0500
+@@ -1,10 +1,10 @@
+-EXENAME = FreeFileSync_$(shell arch)
++EXENAME = FreeFileSync
+
+ CXXFLAGS = -std=c++17 -pipe -DWXINTL_NO_GETTEXT_MACRO -DLIBSSH2_OPENSSL -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
+
+-LINKFLAGS = -s -no-pie `wx-config --libs std, aui --debug=no` -pthread
++LINKFLAGS = -s -no-pie `wx-config --libs std, aui --debug=no` -lz -pthread
+
+
+ CXXFLAGS += `pkg-config --cflags openssl`
+diff -Naur -x '*.orig' -x '*.rej' 10.9-0/FreeFileSync/Source/RealTimeSync/Makefile 10.9-1/FreeFileSync/Source/RealTimeSync/Makefile
+--- 10.3-0/FreeFileSync/Source/RealTimeSync/Makefile 2019-02-10 22:01:42.141160214 -0500
++++ 10.9-1/FreeFileSync/Source/RealTimeSync/Makefile 2019-02-11 21:48:22.504771344 -0500
+@@ -1,10 +1,10 @@
+-EXENAME = RealTimeSync_$(shell arch)
++EXENAME = RealTimeSync
+
+ 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
+
+-LINKFLAGS = -s -no-pie `wx-config --libs std, aui --debug=no` -pthread
++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`
+diff -x '*.orig' -x '*.swp' -x '*.rej' -Naur 10.9-0/FreeFileSync/Source/fs/libcurl/curl_wrap.h 10.9-1/FreeFileSync/Source/fs/libcurl/curl_wrap.h
+--- 10.9-0/FreeFileSync/Source/fs/libcurl/curl_wrap.h 2019-02-10 16:42:29.124040824 -0500
++++ 10.9-1/FreeFileSync/Source/fs/libcurl/curl_wrap.h 2019-02-10 20:57:30.758315345 -0500
+@@ -75,7 +75,7 @@
+ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_UNKNOWN_OPTION);
+ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_TELNET_OPTION_SYNTAX);
+ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_OBSOLETE50);
+- ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_OBSOLETE51);
++ //ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_OBSOLETE51);
+ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_PEER_FAILED_VERIFICATION);
+ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_GOT_NOTHING);
+ ZEN_CHECK_CASE_FOR_CONSTANT(CURLE_SSL_ENGINE_NOTFOUND);
diff --git a/freefilesync/ffs_makefile.patch b/freefilesync/ffs_makefile.patch
deleted file mode 100644
index b3ff7ff..0000000
--- a/freefilesync/ffs_makefile.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-diff -Naur -x '*.orig' -x '*.rej' 10.3-0/FreeFileSync/Source/Makefile 10.3-2/FreeFileSync/Source/Makefile
---- 10.3-0/FreeFileSync/Source/Makefile 2018-08-07 05:03:33.000000000 -0400
-+++ 10.3-2/FreeFileSync/Source/Makefile 2018-08-15 22:25:06.694355202 -0400
-@@ -9,7 +9,7 @@
- -Wall -Wfatal-errors -Wmissing-include-dirs -Wswitch-enum -Wcast-align -Wshadow -Wnon-virtual-dtor \
- -O3 -DNDEBUG `wx-config --cxxflags --debug=no` -pthread
-
--LINKFLAGS = -s -no-pie `wx-config --libs std, aui --debug=no` -pthread
-+LINKFLAGS = -s -no-pie `wx-config --libs std, aui --debug=no` -lz -pthread
-
- #Gtk - support recycler/icon loading/no button border/grid scrolling
- CXXFLAGS += `pkg-config --cflags gtk+-2.0`
-@@ -101,6 +101,7 @@
- all: ../Build/Bin/$(APPNAME)
-
- ../Build/Bin/$(APPNAME): $(OBJ_FILES)
-+ mkdir -p ../Build/Bin
- g++ -o $@ $^ $(LINKFLAGS)
-
- ../Obj/FFS_GCC_Make_Release/ffs/src/%.o : %
-diff -Naur -x '*.orig' -x '*.rej' 10.3-0/FreeFileSync/Source/RealTimeSync/Makefile 10.3-2/FreeFileSync/Source/RealTimeSync/Makefile
---- 10.3-0/FreeFileSync/Source/RealTimeSync/Makefile 2018-08-07 05:03:33.000000000 -0400
-+++ 10.3-2/FreeFileSync/Source/RealTimeSync/Makefile 2018-08-15 22:25:15.968461418 -0400
-@@ -6,7 +6,7 @@
- -Wall -Wfatal-errors -Wmissing-include-dirs -Wswitch-enum -Wcast-align -Wshadow -Wnon-virtual-dtor \
- -O3 -DNDEBUG `wx-config --cxxflags --debug=no` -pthread
-
--LINKFLAGS = -s -no-pie `wx-config --libs std, aui --debug=no` -pthread
-+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`
diff --git a/freefilesync/ffs_no_check_updates.patch b/freefilesync/ffs_no_check_updates.patch
index 99f0c8f..3582b1d 100644
--- a/freefilesync/ffs_no_check_updates.patch
+++ b/freefilesync/ffs_no_check_updates.patch
@@ -1,7 +1,7 @@
-diff -Naur -x '*.orig' -x '*.rej' 10.3-0/FreeFileSync/Source/ui/main_dlg.cpp 10.3-2/FreeFileSync/Source/ui/main_dlg.cpp
---- 10.3-0/FreeFileSync/Source/ui/main_dlg.cpp 2018-08-07 05:03:34.000000000 -0400
-+++ 10.3-2/FreeFileSync/Source/ui/main_dlg.cpp 2018-08-08 18:50:50.455078387 -0400
-@@ -5004,7 +5004,7 @@
+diff -x '*.swp' -x '*.orig' -x '*.rej' -Naur 10.9-0/FreeFileSync/Source/ui/main_dlg.cpp 10.9-1/FreeFileSync/Source/ui/main_dlg.cpp
+--- 10.9-0/FreeFileSync/Source/ui/main_dlg.cpp 2019-02-10 22:01:42.029158919 -0500
++++ 10.9-1/FreeFileSync/Source/ui/main_dlg.cpp 2019-02-10 22:01:57.435336536 -0500
+@@ -5023,7 +5023,7 @@
globalCfg_.gui.lastUpdateCheck = 0; //reset to GlobalSettings.xml default value!
m_menuItemCheckVersionAuto->Check(updateCheckActive(globalCfg_.gui.lastUpdateCheck));
@@ -10,7 +10,7 @@ diff -Naur -x '*.orig' -x '*.rej' 10.3-0/FreeFileSync/Source/ui/main_dlg.cpp 10.
if (shouldRunAutomaticUpdateCheck(globalCfg_.gui.lastUpdateCheck))
{
flashStatusInformation(_("Searching for program updates..."));
-@@ -5012,6 +5012,7 @@
+@@ -5031,6 +5031,7 @@
automaticUpdateCheckEval(this, globalCfg_.gui.lastUpdateCheck, globalCfg_.gui.lastOnlineVersion,
automaticUpdateCheckRunAsync(automaticUpdateCheckPrepare().get()).get());
}
@@ -18,7 +18,7 @@ diff -Naur -x '*.orig' -x '*.rej' 10.3-0/FreeFileSync/Source/ui/main_dlg.cpp 10.
}
-@@ -5019,7 +5020,7 @@
+@@ -5038,7 +5039,7 @@
{
//execute just once per startup!
Disconnect(wxEVT_IDLE, wxIdleEventHandler(MainDialog::OnRegularUpdateCheck), nullptr, this);
@@ -27,7 +27,7 @@ diff -Naur -x '*.orig' -x '*.rej' 10.3-0/FreeFileSync/Source/ui/main_dlg.cpp 10.
if (shouldRunAutomaticUpdateCheck(globalCfg_.gui.lastUpdateCheck))
{
flashStatusInformation(_("Searching for program updates..."));
-@@ -5033,6 +5034,7 @@
+@@ -5052,6 +5053,7 @@
resultAsync.get()); //run on main thread:
});
}
@@ -35,23 +35,33 @@ diff -Naur -x '*.orig' -x '*.rej' 10.3-0/FreeFileSync/Source/ui/main_dlg.cpp 10.
}
-diff -Naur -x '*.orig' -x '*.rej' 10.3-0/FreeFileSync/Source/ui/version_check_impl.h 10.3-2/FreeFileSync/Source/ui/version_check_impl.h
---- 10.3-0/FreeFileSync/Source/ui/version_check_impl.h 2018-08-07 05:03:34.000000000 -0400
-+++ 10.3-2/FreeFileSync/Source/ui/version_check_impl.h 2018-08-08 18:50:50.458078415 -0400
-@@ -14,7 +14,7 @@
+diff -x '*.swp' -x '*.orig' -x '*.rej' -Naur 10.9-0/FreeFileSync/Source/ui/version_check.cpp 10.9-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.9-1/FreeFileSync/Source/ui/version_check.cpp 2019-02-10 22:17:56.183369507 -0500
+@@ -69,6 +69,8 @@
- namespace fff
+ bool fff::shouldRunAutomaticUpdateCheck(time_t lastUpdateCheck)
{
--inline
-+
- time_t getVersionCheckInactiveId()
- {
- //use current version to calculate a changing number for the inactive state near UTC begin, in order to always check for updates after installing a new version
-@@ -38,7 +38,6 @@
- }
++ // short-circuit
++ return false;
+ if (lastUpdateCheck == getVersionCheckInactiveId())
+ return false;
+@@ -236,13 +238,13 @@
+ const std::string onlineVersion = getOnlineVersion(geHttpPostParameters()); //throw SysError
+ lastOnlineVersion = onlineVersion;
--inline
- time_t getVersionCheckCurrentTime()
- {
- return std::time(nullptr);
+- if (haveNewerVersionOnline(onlineVersion))
+- showUpdateAvailableDialog(parent, onlineVersion);
+- else
++ //if (haveNewerVersionOnline(onlineVersion))
++ // showUpdateAvailableDialog(parent, onlineVersion);
++ //else
+ showNotificationDialog(parent, DialogInfoType::INFO, PopupDialogCfg().
+ setIcon(getResourceImage(L"update_check")).
+ setTitle(_("Check for Program Updates")).
+- setMainInstructions(_("FreeFileSync is up to date.")));
++ setMainInstructions(_("Use your package manager for any updates to FreeFileSync.")));
+ }
+ catch (const zen::SysError& e)
+ {
diff --git a/freefilesync/ffs_sftp.patch b/freefilesync/ffs_sftp.patch
new file mode 100644
index 0000000..056cf91
--- /dev/null
+++ b/freefilesync/ffs_sftp.patch
@@ -0,0 +1,19 @@
+The upstream author observed that some of the values he uses are not in the libssh2 public headers. I don't know where he uses them from, but I had to replace them here to get this to compile.
+https://github.com/libssh2/libssh2/issues/90
+diff -x '*.orig' -x '*.swp' -x '*.rej' -Naur 10.9-0/FreeFileSync/Source/fs/sftp.cpp 10.9-1/FreeFileSync/Source/fs/sftp.cpp
+--- 10.9-0/FreeFileSync/Source/fs/sftp.cpp 2019-02-10 16:42:29.139040980 -0500
++++ 10.9-1/FreeFileSync/Source/fs/sftp.cpp 2019-02-10 21:28:00.030732089 -0500
+@@ -56,9 +56,10 @@
+
+ //attention: if operation fails due to time out, e.g. file copy, the cleanup code may hang, too => total delay = 2 x time out interval
+
+-const size_t SFTP_OPTIMAL_BLOCK_SIZE_READ = 4 * MAX_SFTP_READ_SIZE; //https://github.com/libssh2/libssh2/issues/90
+-const size_t SFTP_OPTIMAL_BLOCK_SIZE_WRITE = 4 * MAX_SFTP_OUTGOING_SIZE; //
+-static_assert(MAX_SFTP_READ_SIZE == 30000 && MAX_SFTP_OUTGOING_SIZE == 30000, "reevaluate optimal block sizes if these constants change!");
++// these values are all manually derived from https://github.com/libssh2/libssh2/blob/master/src/sftp.h which for some weak reason are not included in the libssh2-devel headers.
++const size_t SFTP_OPTIMAL_BLOCK_SIZE_READ = 4 * 30000; //https://github.com/libssh2/libssh2/issues/90
++const size_t SFTP_OPTIMAL_BLOCK_SIZE_WRITE = 4 * 30000; //
++//static_assert(MAX_SFTP_READ_SIZE == 30000 && MAX_SFTP_OUTGOING_SIZE == 30000, "reevaluate optimal block sizes if these constants change!");
+ /*
+ Perf Test, Sourceforge frs, SFTP upload, compressed 25 MB test file:
+
diff --git a/freefilesync/freefilesync.spec b/freefilesync/freefilesync.spec
index 3ae7f2d..adb5949 100644
--- a/freefilesync/freefilesync.spec
+++ b/freefilesync/freefilesync.spec
@@ -1,35 +1,62 @@
%global pkgname FreeFileSync
%global prog2name RealTimeSync
%global dummy_package 0
+%define min_libcurl %{nil}
+%define min_libssh2 %{nil}
+%define min_openssl %{nil}
+%define scl_env %{nil}
+%define scl_buildreq coreutils
+%if 0%{?el6}%{?el7}
+ %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.0h
+%endif
Name: freefilesync
-Version: 10.8
-Release: 1%{?dist}
+Version: 10.9
+Release: 2%{?dist}
Summary: A file synchronization utility
Group: Applications/File
License: GPLv3
URL: http://www.freefilesync.org/
# upstream does not provide easy automatic downloads of the source, so use the mirror
-#Source0: http://www.freefilesync.org/download/%{pkgname}_%{version}_Source.zip
+#Source0: http://www.freefilesync.org/download/%%{pkgname}_%%{version}_Source.zip
Source0: https://gitlab.com/opensource-tracking/%{pkgname}/-/archive/%{version}/%{pkgname}-%{version}.tar.gz
Source1: %{pkgname}.desktop
Source2: %{prog2name}.desktop
-Patch0: ffs_makefile.patch
+Patch0: ffs_allow_parallel_ops.patch
Patch1: ffs_no_check_updates.patch
Patch2: ffs_no_wx311.patch
-Patch3: ffs_fedora.patch
+Patch3: ffs_sftp.patch
+Patch4: ffs_fedora.patch
+Patch5: ffs_el.patch
Packager: B Stack <bgstack15@gmail.com>
-BuildRequires: boost-devel
# WARNING: the build will FAIL if you have wxGTK3-devel installed. Only wxGTK2-devel should be on the build system.
+BuildRequires: boost-devel
BuildRequires: compat-wxGTK3-gtk2-devel
-BuildRequires: gcc-c++
BuildRequires: desktop-file-utils
+BuildRequires: gcc-c++
BuildRequires: ImageMagick
BuildRequires: pkgconfig(gtk+-2.0)
BuildRequires: pkgconfig(libselinux)
BuildRequires: pkgconfig(zlib)
+BuildRequires: libcurl-devel %{min_libcurl}
+BuildRequires: libssh2-devel %{min_libssh2}
+%if 0%{?el6}%{?el7}
+BuildRequires: wxGTK-devel
+BuildRequires: %{scl_buildreq}
+BuildRequires: openssl-%{name}-devel %{min_openssl}
+Requires: libcurl %{min_libcurl}
+Requires: libssh2 %{min_libssh2}
+Requires: openssl-%{name}-libs %{min_openssl}
+%else
+BuildRequires: openssl-devel
+%endif
Requires: hicolor-icon-theme
+Requires: xdg-utils
%description
FreeFileSync is a free Open Source software that helps you synchronize
@@ -48,27 +75,48 @@ find . ! -type d \( -name '*.c' -o -name '*.cpp' -o -name '*.h' \) \
%patch1 -p1
%patch2 -p1
%patch3 -p1
+%if 0%{?el6}%{?el7}
+# use the el patch
+%patch5 -p1
+%else
+# use the fedora patch
+%patch4 -p1
+%endif
# custom build parameters for packaging application in rpm
+# fedora provides build_cxxflags, which is really just optflags
%{__sed} \
- -e 's|-O3 -DNDEBUG|-DNDEBUG -D"warn_static(arg)= " -DZEN_LINUX %{build_cxxflags}|g' \
- -e '/LINKFLAGS/s|-s|%{__global_ldflags}|g' \
+ -e 's|-O3 -DNDEBUG|-DNDEBUG -D"warn_static(arg)= " -DZEN_LINUX %{?build_cxxflags:%{build_cxxflags}}%{!?build_cxxflags:%{optflags}}|g' \
+ -e '/LINKFLAGS/s|-s|%{__global_ldflags}|;' \
-i %{pkgname}/Source/Makefile %{pkgname}/Source/%{prog2name}/Makefile
%build
%if !%{dummy_package}
-%make_build -C %{pkgname}/Source
-%make_build -C %{pkgname}/Source/%{prog2name}
+ %if "%{?scl_env}" != ""
+ scl enable %{scl_env} /bin/bash << EOF
+ %endif
+ %make_build -C %{pkgname}/Source
+ %make_build -C %{pkgname}/Source/%{prog2name}
+ %if "%{?scl_env}" != ""
+EOF
+ %endif
%endif
%install
%if !%{dummy_package}
-%make_install -C %{pkgname}/Source
-%make_install -C %{pkgname}/Source/%{prog2name}
+# removed by upstream!
+#%%make_install -C %%{pkgname}/Source
+#%%make_install -C %%{pkgname}/Source/%%{prog2name}
+pushd %{pkgname}/Build
+install -d %{buildroot}%{_bindir} %{buildroot}%{_datadir}/%{name}
+install -Dm 0755 -t %{buildroot}%{_bindir} Bin/%{pkgname} Bin/%{prog2name}
+cp -pr Languages %{buildroot}%{_datadir}/%{name}
+install -Dm 0644 ding.wav gong.wav harp.wav Resources.zip styles.gtk_rc %{buildroot}%{_datadir}/%{name}
+popd
%endif
# make extra sure the files are not marked with executable
-find %{buildroot}%{_datadir}/%{pkgname} -type f -exec chmod -x '{}' \; || :
+find %{buildroot}%{_datadir}/%{name} -type f -exec chmod -x '{}' \; || :
# desktop files
mkdir -p %{buildroot}%{_datadir}/applications
@@ -127,11 +175,15 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
%{_bindir}/%{prog2name}
%{_datadir}/applications/*.desktop
%{_datadir}/icons/hicolor/*x*/apps/*.png
-%{_datadir}/%{pkgname}
-%{_defaultdocdir}/%{pkgname}
-%ghost %config %attr(666, -, -) %{_datadir}/%{pkgname}/GlobalSettings.xml
+%{_datadir}/%{name}
+%ghost %config %attr(666, -, -) %{_datadir}/%{name}/GlobalSettings.xml
%changelog
+* Tue Feb 12 2019 B Stack <bgstack15@gmail.com> - 10.9-1
+- version bump
+- add manual install that is now absent from upstream
+- move datadir to lowercase name instead of camelcase
+
* Thu Jan 17 2019 B Stack <bgstack15@gmail.com> - 10.8-1
- version bump
diff --git a/palemoon-ublock-origin/debian/.debhelper/generated/palemoon-ublock-origin/installed-by-dh_installdocs b/palemoon-ublock-origin/debian/.debhelper/generated/palemoon-ublock-origin/installed-by-dh_installdocs
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/palemoon-ublock-origin/debian/.debhelper/generated/palemoon-ublock-origin/installed-by-dh_installdocs
diff --git a/palemoon-ublock-origin/debian/Makefile b/palemoon-ublock-origin/debian/Makefile
new file mode 100644
index 0000000..3531a3e
--- /dev/null
+++ b/palemoon-ublock-origin/debian/Makefile
@@ -0,0 +1,17 @@
+# Makefile for palemoon-ublock-origin for devuan
+SOURCE0=uBlock0.firefox-legacy.xpi
+MOZ_EXTENSIONS=/usr/lib/palemoon/browser/extensions
+
+# this needs to be overwritten by the debian/rules file.
+DESTDIR=/tmp
+
+install:
+ unzip ${SOURCE0} install.rdf
+ mkdir -p $(DESTDIR)${MOZ_EXTENSIONS}
+ newfilename="$$( grep 'em:id' install.rdf 2>/dev/null | head -n1 | sed -r -e 's/^.*<em:id>//;' -e 's/<\/em:id>.*$$//;' ).xpi" ; \
+ test -z "$${newfilename}" && newfilename="$$( basename $${SOURCE0} )" ; \
+ install -Dp -m0644 ${SOURCE0} $(DESTDIR)${MOZ_EXTENSIONS}/$${newfilename}
+ rm -f install.rdf || :
+
+uninstall:
+ rm -f $(DESTDIR)${MOZ_EXTENSIONS}/uBlock0@raymondhill.net.xpi
diff --git a/palemoon-ublock-origin/debian/README.Debian b/palemoon-ublock-origin/debian/README.Debian
new file mode 100644
index 0000000..3d345f5
--- /dev/null
+++ b/palemoon-ublock-origin/debian/README.Debian
@@ -0,0 +1,9 @@
+palemoon-ublock-origin for Devuan
+
+Initial release of palemoon-ublock-origin for devuan.
+Build orig tarball to resemble:
+$ tar -ztf palemoon-ublock-origin_1.16.4.8.orig.tar.gz
+palemoon-ublock-origin/
+palemoon-ublock-origin/uBlock0.firefox-legacy.xpi
+
+ -- B Stack <bgstack15@gmail.com> Wed, 13 Feb 2019 17:38:58 -0500
diff --git a/palemoon-ublock-origin/debian/changelog b/palemoon-ublock-origin/debian/changelog
new file mode 100644
index 0000000..dc2a54d
--- /dev/null
+++ b/palemoon-ublock-origin/debian/changelog
@@ -0,0 +1,5 @@
+palemoon-ublock-origin (1.16.4.8-1devuan) manual; urgency=low
+
+ * Initial release for devuan
+
+ -- B Stack <bgstack15@gmail.com> Wed, 13 Feb 2019 17:38:58 -0500
diff --git a/palemoon-ublock-origin/debian/compat b/palemoon-ublock-origin/debian/compat
new file mode 100644
index 0000000..b4de394
--- /dev/null
+++ b/palemoon-ublock-origin/debian/compat
@@ -0,0 +1 @@
+11
diff --git a/palemoon-ublock-origin/debian/control b/palemoon-ublock-origin/debian/control
new file mode 100644
index 0000000..a58a276
--- /dev/null
+++ b/palemoon-ublock-origin/debian/control
@@ -0,0 +1,15 @@
+Source: palemoon-ublock-origin
+Section: web
+Priority: optional
+Maintainer: B Stack <bgstack15@gmail.com>
+Build-Depends: debhelper (>=11~),
+ unzip,
+ make
+Standards-Version: 4.1.4
+Homepage: https://github.com/gorhill/uBlock/releases
+
+Package: palemoon-ublock-origin
+Architecture: all
+Multi-Arch: foreign
+Depends: ${misc:Depends}, ${shlibs:Depends}
+Description: An efficient blocker for Chromium and Firefox. Fast and lean.
diff --git a/palemoon-ublock-origin/debian/copyright b/palemoon-ublock-origin/debian/copyright
new file mode 100644
index 0000000..bb755b9
--- /dev/null
+++ b/palemoon-ublock-origin/debian/copyright
@@ -0,0 +1,8 @@
+Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
+Upstream-Name: palemoon-ublock
+Source: https://github.com/gorhill/uBlock/releases/
+uBlock0.firefox-legacy.xpi GPLv3
+
+#----------------------------------------------------------------------------
+# Files marked as NO_LICENSE_TEXT_FOUND may be covered by the following
+# license/copyright files.
diff --git a/palemoon-ublock-origin/debian/debhelper-build-stamp b/palemoon-ublock-origin/debian/debhelper-build-stamp
new file mode 100644
index 0000000..cdc3502
--- /dev/null
+++ b/palemoon-ublock-origin/debian/debhelper-build-stamp
@@ -0,0 +1 @@
+palemoon-ublock-origin
diff --git a/palemoon-ublock-origin/debian/files b/palemoon-ublock-origin/debian/files
new file mode 100644
index 0000000..b0dc4d6
--- /dev/null
+++ b/palemoon-ublock-origin/debian/files
@@ -0,0 +1,2 @@
+palemoon-ublock-origin_1.16.4.8-1devuan_all.deb web optional
+palemoon-ublock-origin_1.16.4.8-1devuan_amd64.buildinfo web optional
diff --git a/palemoon-ublock-origin/debian/palemoon-ublock-origin.substvars b/palemoon-ublock-origin/debian/palemoon-ublock-origin.substvars
new file mode 100644
index 0000000..978fc8b
--- /dev/null
+++ b/palemoon-ublock-origin/debian/palemoon-ublock-origin.substvars
@@ -0,0 +1,2 @@
+misc:Depends=
+misc:Pre-Depends=
diff --git a/palemoon-ublock-origin/debian/patches/series b/palemoon-ublock-origin/debian/patches/series
new file mode 100644
index 0000000..4a97dfa
--- /dev/null
+++ b/palemoon-ublock-origin/debian/patches/series
@@ -0,0 +1 @@
+# You must remove unused comment lines for the released package.
diff --git a/palemoon-ublock-origin/debian/rules b/palemoon-ublock-origin/debian/rules
new file mode 100755
index 0000000..cc4c963
--- /dev/null
+++ b/palemoon-ublock-origin/debian/rules
@@ -0,0 +1,18 @@
+#!/usr/bin/make -f
+# You must remove unused comment lines for the released package.
+#export DH_VERBOSE = 1
+#export DEB_BUILD_MAINT_OPTIONS = hardening=+all
+#export DEB_CFLAGS_MAINT_APPEND = -Wall -pedantic
+#export DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed
+export NAME=palemoon-ublock-origin
+export MOZ_EXTENSIONS=/usr/lib/palemoon/browser/extensions
+export SOURCE0=uBlock0.firefox-legacy.xpi
+
+%:
+ dh $@
+
+override_dh_auto_install:
+ make -e -f debian/Makefile install -- DESTDIR=debian/${NAME}
+
+#override_dh_auto_clean:
+# rm -rf debian/usr
diff --git a/palemoon-ublock-origin/debian/source/format b/palemoon-ublock-origin/debian/source/format
new file mode 100644
index 0000000..163aaf8
--- /dev/null
+++ b/palemoon-ublock-origin/debian/source/format
@@ -0,0 +1 @@
+3.0 (quilt)
diff --git a/palemoon-ublock-origin/debian/source/local-options b/palemoon-ublock-origin/debian/source/local-options
new file mode 100644
index 0000000..00131ee
--- /dev/null
+++ b/palemoon-ublock-origin/debian/source/local-options
@@ -0,0 +1,2 @@
+#abort-on-upstream-changes
+#unapply-patches
diff --git a/palemoon-ublock-origin/debian/watch b/palemoon-ublock-origin/debian/watch
new file mode 100644
index 0000000..76575dc
--- /dev/null
+++ b/palemoon-ublock-origin/debian/watch
@@ -0,0 +1,2 @@
+# You must remove unused comment lines for the released package.
+version=3
bgstack15