diff options
-rw-r--r-- | freefilesync/FreeFileSync.desktop | 12 | ||||
-rw-r--r-- | freefilesync/RealTimeSync.desktop | 12 | ||||
-rw-r--r-- | freefilesync/credits.md | 4 | ||||
-rw-r--r-- | freefilesync/ffs_fedora.patch | 12 | ||||
-rw-r--r-- | freefilesync/ffs_include_lz.patch | 24 | ||||
-rw-r--r-- | freefilesync/ffs_no_check_updates.patch | 57 | ||||
-rw-r--r-- | freefilesync/ffs_no_wx311.patch | 27 | ||||
-rw-r--r-- | freefilesync/freefilesync.spec | 136 |
8 files changed, 284 insertions, 0 deletions
diff --git a/freefilesync/FreeFileSync.desktop b/freefilesync/FreeFileSync.desktop new file mode 100644 index 0000000..534dd79 --- /dev/null +++ b/freefilesync/FreeFileSync.desktop @@ -0,0 +1,12 @@ +[Desktop Entry] +Name=FreeFileSync +GenericName=File synchronization +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 +Terminal=false +Type=Application +StartupNotify=true +Categories=GTK;Utility; diff --git a/freefilesync/RealTimeSync.desktop b/freefilesync/RealTimeSync.desktop new file mode 100644 index 0000000..dc1cfdf --- /dev/null +++ b/freefilesync/RealTimeSync.desktop @@ -0,0 +1,12 @@ +[Desktop Entry] +Name=RealTimeSync +GenericName=Automated Synchronization +GenericName[pt_BR]=Sincronização Automatizada +Comment=Real time synchronization +Comment[pt_BR]=Sincronização em tempo real +Exec=RealTimeSync +Icon=RealTimeSync +Terminal=false +Type=Application +StartupNotify=true +Categories=GTK;Utility; diff --git a/freefilesync/credits.md b/freefilesync/credits.md new file mode 100644 index 0000000..8a92965 --- /dev/null +++ b/freefilesync/credits.md @@ -0,0 +1,4 @@ +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/ffs_fedora.patch b/freefilesync/ffs_fedora.patch new file mode 100644 index 0000000..9a62974 --- /dev/null +++ b/freefilesync/ffs_fedora.patch @@ -0,0 +1,12 @@ +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 +@@ -106,6 +106,8 @@ + L" x64"; + #endif + ++ build += ++ L" for Fedora"; + + GetSizer()->SetSizeHints(this); //~=Fit() + SetMinSize() + diff --git a/freefilesync/ffs_include_lz.patch b/freefilesync/ffs_include_lz.patch new file mode 100644 index 0000000..d647fd7 --- /dev/null +++ b/freefilesync/ffs_include_lz.patch @@ -0,0 +1,24 @@ +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` +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 new file mode 100644 index 0000000..99f0c8f --- /dev/null +++ b/freefilesync/ffs_no_check_updates.patch @@ -0,0 +1,57 @@ +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/ffs_no_wx311.patch b/freefilesync/ffs_no_wx311.patch new file mode 100644 index 0000000..04df827 --- /dev/null +++ b/freefilesync/ffs_no_wx311.patch @@ -0,0 +1,27 @@ +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-08 19:16:54.026727623 -0400 +@@ -984,7 +984,8 @@ + //setMainInstructionFont(*m_staticTextMain); + + m_bitmapActivation->SetBitmap(getResourceImage(L"website")); +- m_textCtrlOfflineActivationKey->ForceUpper(); ++ // Fedora 27 does not have wxWidgets 3.1.1 yet. https://github.com/wxWidgets/wxWidgets/commit/69b66e9e2e2b8e49e3816acdde079686ce9b0da1 ++ //m_textCtrlOfflineActivationKey->ForceUpper(); + + m_textCtrlLastError ->ChangeValue(lastErrorMsg); + m_textCtrlManualActivationUrl ->ChangeValue(manualActivationUrl); +diff -Naur -x '*.orig' -x '*.rej' 10.3-0/wx+/grid.cpp 10.3-2/wx+/grid.cpp +--- 10.3-0/wx+/grid.cpp 2018-08-07 05:03:34.000000000 -0400 ++++ 10.3-2/wx+/grid.cpp 2018-08-08 19:24:56.849445102 -0400 +@@ -1176,7 +1176,9 @@ + { + if (overlapPix != 0) + { +- const double scrollSpeed = wnd_.ToDIP(overlapPix) * mouseDragSpeedIncScrollU; //unit: [scroll units / sec] ++ // Fedora 28 does not have wxGTK 3.1.1 yet. This probably breaks HiDPI usage ++ //const double scrollSpeed = wnd_.ToDIP(overlapPix) * mouseDragSpeedIncScrollU; //unit: [scroll units / sec] ++ const double scrollSpeed = overlapPix * mouseDragSpeedIncScrollU; //unit: [scroll units / sec] + toScroll += scrollSpeed * deltaSecs; + } + else diff --git a/freefilesync/freefilesync.spec b/freefilesync/freefilesync.spec new file mode 100644 index 0000000..dad3c74 --- /dev/null +++ b/freefilesync/freefilesync.spec @@ -0,0 +1,136 @@ +%global pkgname FreeFileSync +%global prog2name RealTimeSync +%global dummy_package 0 +Name: freefilesync +Version: 10.3 +Release: 3%{?dist} +Summary: A file synchronization utility + +Group: Applications/File +License: GPLv3 +URL: http://www.freefilesync.org/ +Source0: http://www.freefilesync.org/download/%{pkgname}_%{version}_Source.zip +Source1: %{pkgname}.desktop +Source2: %{prog2name}.desktop +Patch0: ffs_include_lz.patch +Patch1: ffs_no_check_updates.patch +Patch2: ffs_no_wx311.patch +Patch3: ffs_fedora.patch + +Packager: B Stack <bgstack15@gmail.com> +BuildRequires: boost-devel +BuildRequires: compat-wxGTK3-gtk2-devel +BuildRequires: gcc-c++ +BuildRequires: desktop-file-utils +BuildRequires: ImageMagick +BuildRequires: pkgconfig(gtk+-2.0) +BuildRequires: pkgconfig(libselinux) +BuildRequires: pkgconfig(zlib) +Requires: hicolor-icon-theme + +%description +FreeFileSync is a free Open Source software that helps you synchronize +files and synchronize folders for Windows, Linux and macOS. It is +designed to save your time setting up and running backup jobs while +having nice visual feedback along the way. + +%prep +%setup -c -n %{pkgname}-%{version} + +# fix text file line endings and permissions to unix +find . ! -type d \( -name '*.c' -o -name '*.cpp' -o -name '*.h' \) \ + -exec %{__sed} -i -r -e 's/\r$//' {} + + +%patch0 -p1 +%patch1 -p1 +%patch2 -p1 +%patch3 -p1 + +# custom build parameters for packaging application in rpm +%{__sed} \ + -e 's|-O3 -DNDEBUG|-DNDEBUG -D"warn_static(arg)= " -DZEN_LINUX %{build_cxxflags}|g' \ + -e '/LINKFLAGS/s|-s|%{__global_ldflags}|g' \ + -i %{pkgname}/Source/Makefile %{pkgname}/Source/%{prog2name}/Makefile + +%build +%if !%{dummy_package} +%make_build -C %{pkgname}/Source +%make_build -C %{pkgname}/Source/%{prog2name} +%endif + +%install +%if !%{dummy_package} +%make_install -C %{pkgname}/Source +%make_install -C %{pkgname}/Source/%{prog2name} +%endif + +# WORKHERE not sure why this is needed especially if we did it in the %prep +find %{buildroot}%{_datadir}/%{pkgname} -type f -exec chmod -x '{}' \; || : + +# desktop files +mkdir -p %{buildroot}%{_datadir}/applications +desktop-file-install --dir %{buildroot}%{_datadir}/applications %{SOURCE1} +desktop-file-install --dir %{buildroot}%{_datadir}/applications %{SOURCE2} + +# application start script +# none + +# man pages +# none + +# mimetypes +# none + +# icons +unzip %{pkgname}/Build/Resources.zip %{pkgname}.png %{prog2name}.png + +for res in 16 22 24 32 48 64 96 128 256 ;do + dir=%{buildroot}%{_datadir}/icons/hicolor/${res}x${res}/apps + mkdir -p ${dir} + for icon in %{pkgname} %{prog2name} ;do + convert ${icon}.png -filter Lanczos -resize ${res}x${res} \ + ${dir}/${icon}.png + done +done + +%clean +%{__rm} -rf %{buildroot} || : + +%post +touch --no-create %{_datadir}/icons/hicolor &>/dev/null || : +update-desktop-database &> /dev/null || : + +%preun +# is it a final removal? +#if test "$1" = "0" ; +#then +#fi + +%postun +update-desktop-database &> /dev/null || : +if test "$1" = "0" ; +then + touch --no-create %{_datadir}/icons/hicolor &>/dev/null + gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : +fi + +%posttrans +gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : + +%files +%license %attr(444, -, -) License.txt +%doc %attr(444, -, -) Changelog.txt +%{_bindir}/%{pkgname} +%{_bindir}/%{prog2name} +%{_datadir}/applications/*.desktop +%{_datadir}/icons/hicolor/*x*/apps/*.png +%{_datadir}/%{pkgname} +%{_defaultdocdir}/%{pkgname} +%ghost %config %attr(666, -, -) %{_datadir}/%{pkgname}/GlobalSettings.xml + +%changelog +* Wed Aug 29 2018 B Stack <bgstack15@gmail.com> - 10.3-3 +- forked from phantomx release + +* Fri Aug 17 2018 Phantom X <megaphantomx at bol dot com dot br> - 10.3-1 +- 10.3 |