From e5432efea618b884e41f766813655db52c086522 Mon Sep 17 00:00:00 2001 From: B Stack Date: Sat, 15 Jun 2019 10:03:09 -0400 Subject: freefilesync 10.13 rpm rc1 Fixes #8 .desktop file is missing mimetypes: Added the hooks for dealing with mimetypes, and the icons, and the desktop file mimetype info --- freefilesync/FreeFileSync.desktop | 12 ++++++---- freefilesync/RealTimeSync.desktop | 11 +++++---- freefilesync/debian/FreeFileSync.desktop | 15 ++++++++++++ freefilesync/debian/RealTimeSync.desktop | 14 +++++++++++ freefilesync/ffs_el.patch | 23 +++++++++--------- freefilesync/ffs_fedora.patch | 21 ++++++++-------- freefilesync/ffs_no_wx311.patch | 28 ++++++++++------------ freefilesync/freefilesync.spec | 41 +++++++++++++++++++------------- 8 files changed, 102 insertions(+), 63 deletions(-) create mode 100644 freefilesync/debian/FreeFileSync.desktop create mode 100644 freefilesync/debian/RealTimeSync.desktop diff --git a/freefilesync/FreeFileSync.desktop b/freefilesync/FreeFileSync.desktop index 8e1163e..d7b508d 100644 --- a/freefilesync/FreeFileSync.desktop +++ b/freefilesync/FreeFileSync.desktop @@ -1,13 +1,15 @@ [Desktop Entry] -Name=FreeFileSync -GenericName=File synchronization -GenericName[pt_BR]=Sincronização de arquivos +Categories=GTK;Utility;FileTools; Comment=Backup software to synchronize files and folders Comment[pt_BR]=Aplicação de backup para sincronizar arquivos e diretórios Exec=FreeFileSync +GenericName=File synchronization +GenericName[pt_BR]=Sincronização de arquivos Icon=FreeFileSync +MimeType=application/x-freefilesync-ffs;application/x-freefilesync-batch +Name=FreeFileSync Path=/usr/share/freefilesync +StartupNotify=true +StartupWMClass=FreeFileSync Terminal=false Type=Application -StartupNotify=true -Categories=GTK;Utility; diff --git a/freefilesync/RealTimeSync.desktop b/freefilesync/RealTimeSync.desktop index 0a94126..fa2b1d4 100644 --- a/freefilesync/RealTimeSync.desktop +++ b/freefilesync/RealTimeSync.desktop @@ -1,13 +1,14 @@ [Desktop Entry] -Name=RealTimeSync -GenericName=Automated Synchronization -GenericName[pt_BR]=Sincronização Automatizada +Categories=GTK;Utility;FileTools; Comment=Real time synchronization Comment[pt_BR]=Sincronização em tempo real Exec=RealTimeSync +GenericName=Automated Synchronization +GenericName[pt_BR]=Sincronização Automatizada Icon=RealTimeSync +MimeType=application/x-freefilesync-real +Name=RealTimeSync Path=/usr/share/freefilesync +StartupNotify=true Terminal=false Type=Application -StartupNotify=true -Categories=GTK;Utility; diff --git a/freefilesync/debian/FreeFileSync.desktop b/freefilesync/debian/FreeFileSync.desktop new file mode 100644 index 0000000..d7b508d --- /dev/null +++ b/freefilesync/debian/FreeFileSync.desktop @@ -0,0 +1,15 @@ +[Desktop Entry] +Categories=GTK;Utility;FileTools; +Comment=Backup software to synchronize files and folders +Comment[pt_BR]=Aplicação de backup para sincronizar arquivos e diretórios +Exec=FreeFileSync +GenericName=File synchronization +GenericName[pt_BR]=Sincronização de arquivos +Icon=FreeFileSync +MimeType=application/x-freefilesync-ffs;application/x-freefilesync-batch +Name=FreeFileSync +Path=/usr/share/freefilesync +StartupNotify=true +StartupWMClass=FreeFileSync +Terminal=false +Type=Application diff --git a/freefilesync/debian/RealTimeSync.desktop b/freefilesync/debian/RealTimeSync.desktop new file mode 100644 index 0000000..fa2b1d4 --- /dev/null +++ b/freefilesync/debian/RealTimeSync.desktop @@ -0,0 +1,14 @@ +[Desktop Entry] +Categories=GTK;Utility;FileTools; +Comment=Real time synchronization +Comment[pt_BR]=Sincronização em tempo real +Exec=RealTimeSync +GenericName=Automated Synchronization +GenericName[pt_BR]=Sincronização Automatizada +Icon=RealTimeSync +MimeType=application/x-freefilesync-real +Name=RealTimeSync +Path=/usr/share/freefilesync +StartupNotify=true +Terminal=false +Type=Application diff --git a/freefilesync/ffs_el.patch b/freefilesync/ffs_el.patch index a64c21f..644dfcb 100644 --- a/freefilesync/ffs_el.patch +++ b/freefilesync/ffs_el.patch @@ -2,18 +2,19 @@ The cstddef discovery is from https://stackoverflow.com/questions/52567517/freef 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 FreeFileSync 10.11 updated the default compile flags to -std=c++2a, but this fails on gcc 4.8.5 on el7. Reverting to -std=c++17 allows the application to compile. -diff -Naur -x '*.orig' -x '*.rej' -x '*.swp' 10.11-0/FreeFileSync/Source/base/ffs_paths.cpp 10.11-1/FreeFileSync/Source/base/ffs_paths.cpp ---- 10.11-0/FreeFileSync/Source/base/ffs_paths.cpp 2019-04-12 07:59:45.368162920 -0400 -+++ 10.11-1/FreeFileSync/Source/base/ffs_paths.cpp 2019-04-12 10:19:57.226913391 -0400 -@@ -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(wxStandardPathsBase::Get().GetResourcesDir())); +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:36:28.178274292 -0400 +@@ -55,7 +55,8 @@ + + Zstring fff::getResourceDirPf() + { +- return getProcessParentFolderPath() + FILE_NAME_SEPARATOR + Zstr("Resources") + FILE_NAME_SEPARATOR; ++ // For Fedora/EL, install to /usr/share/freefilesync specificly ++ return Zstr("/usr/share/freefilesync/"); } + + 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.11-1/FreeFileSync/Source/Makefile 2019-04-12 10:21:04.341525635 -0400 diff --git a/freefilesync/ffs_fedora.patch b/freefilesync/ffs_fedora.patch index debe6a6..dc91530 100644 --- a/freefilesync/ffs_fedora.patch +++ b/freefilesync/ffs_fedora.patch @@ -1,16 +1,17 @@ Upstream uses a libcurl more current than Fedora 29. -diff -Naur 10.11-0/FreeFileSync/Source/base/ffs_paths.cpp 10.11-1/FreeFileSync/Source/base/ffs_paths.cpp ---- 10.11-0/FreeFileSync/Source/base/ffs_paths.cpp 2019-04-12 07:59:45.368162920 -0400 -+++ 10.11-1/FreeFileSync/Source/base/ffs_paths.cpp 2019-04-12 08:27:24.421735762 -0400 -@@ -59,7 +59,7 @@ - ZEN_ON_SCOPE_EXIT(wxTheApp->SetAppName(appName)); +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:36:28.178274292 -0400 +@@ -55,7 +55,8 @@ - //if (isPortableVersion()) -- return appendSeparator(getExeFolderParentPath()); -+ return appendSeparator("/usr") + appendSeparator("share") + appendSeparator("freefilesync"); - //else //use OS' standard paths - // return appendSeparator(utfTo(wxStandardPathsBase::Get().GetResourcesDir())); + Zstring fff::getResourceDirPf() + { +- return getProcessParentFolderPath() + FILE_NAME_SEPARATOR + Zstr("Resources") + FILE_NAME_SEPARATOR; ++ // For Fedora/EL, install to /usr/share/freefilesync specificly ++ return Zstr("/usr/share/freefilesync/"); } + + diff -Naur 10.11-0/FreeFileSync/Source/afs/libcurl/curl_wrap.h 10.11-1/FreeFileSync/Source/afs/libcurl/curl_wrap.h --- 10.11-0/FreeFileSync/Source/afs/libcurl/curl_wrap.h 2019-04-12 07:59:45.130151956 -0400 +++ 10.11-1/FreeFileSync/Source/afs/libcurl/curl_wrap.h 2019-04-12 08:27:24.423735854 -0400 diff --git a/freefilesync/ffs_no_wx311.patch b/freefilesync/ffs_no_wx311.patch index 871e083..a1ff0e4 100644 --- a/freefilesync/ffs_no_wx311.patch +++ b/freefilesync/ffs_no_wx311.patch @@ -25,20 +25,18 @@ diff -Naur -x '*.orig' -x '*.rej' 10.3-0/wx+/grid.cpp 10.3-2/wx+/grid.cpp toScroll += scrollSpeed * deltaSecs; } else -diff -Naur 10.6-0/FreeFileSync/Source/base/ffs_paths.cpp 10.6-1/FreeFileSync/Source/base/ffs_paths.cpp ---- 10.6-0/FreeFileSync/Source/base/ffs_paths.cpp 2018-11-13 06:58:40.771249592 -0500 -+++ 10.6-1/FreeFileSync/Source/base/ffs_paths.cpp 2018-11-14 21:39:14.715702415 -0500 -@@ -85,8 +85,11 @@ - else //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(wxStandardPaths::Get().GetUserConfigDir())) + "FreeFileSync"; -+ -+ // Fedora 28 does not have wxGTK 3.1.1 yet. -+ // So subsitute a hard-coded name instead of requesting file layout of XDG -+ //wxStandardPaths::Get().SetFileLayout(wxStandardPaths::FileLayout_XDG); -+ cfgFolderPath = appendSeparator(utfTo(wxStandardPaths::Get().GetUserConfigDir())) + appendSeparator(utfTo(".config")) + "FreeFileSync"; - } +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(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(wxStandardPaths::Get().GetUserConfigDir())) + appendSeparator(utfTo(".config")) + "FreeFileSync"; + std::call_once(onceFlagCreateCfgPath, [&] diff --git a/freefilesync/freefilesync.spec b/freefilesync/freefilesync.spec index fb7c4a3..0b3c344 100644 --- a/freefilesync/freefilesync.spec +++ b/freefilesync/freefilesync.spec @@ -14,7 +14,7 @@ %define min_openssl >= 1.1.0h %endif Name: freefilesync -Version: 10.12 +Version: 10.13 Release: 1%{?dist} Summary: A file synchronization utility @@ -100,12 +100,12 @@ find . ! -type d \( -name '*.c' -o -name '*.cpp' -o -name '*.h' \) \ %build %if !%{dummy_package} %if "%{?scl_env}" != "" - scl enable %{scl_env} /bin/bash << EOF + scl enable %{scl_env} /bin/bash << 'EOFSCL' %endif %make_build -C %{pkgname}/Source %make_build -C %{pkgname}/Source/%{prog2name} %if "%{?scl_env}" != "" -EOF +EOFSCL %endif %endif @@ -117,7 +117,7 @@ EOF pushd %{pkgname}/Build install -d %{buildroot}%{_bindir} %{buildroot}%{_datadir}/%{name} install -Dm 0755 -t %{buildroot}%{_bindir} Bin/%{pkgname} Bin/%{prog2name} -cp -pr Languages Misc %{buildroot}%{_datadir}/%{name} +cd Resources ; cp -pr * %{buildroot}%{_datadir}/%{name} popd %endif @@ -140,16 +140,20 @@ install -d %{buildroot}%{_datadir}/mime/packages install -Dm 0644 -t %{buildroot}%{_datadir}/mime/packages %{SOURCE3} # icons -unzip %{pkgname}/Build/Misc/Icons.zip file_batch.png +unzip %{pkgname}/Build/Resources/Icons.zip file_batch.png file_sync.png +ff=" -filter Lanczos" 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} ${dir}/../mimetypes - for icon in %{pkgname} %{prog2name} ;do - convert %{pkgname}/Build/Misc/${icon}.png -filter Lanczos -resize ${res}x${res} \ - ${dir}/${icon}.png - done - convert file_batch.png -filter Lanczos -resize ${res}x${res} ${dir}/../mimetypes/application-x-freefilesync-batch.png + dir=%{buildroot}%{_datadir}/icons/hicolor/${res}x${res} + rr=" -resize ${res}x${res}" + mkdir -p ${dir}/apps ${dir}/mimetypes + # apps + convert %{pkgname}/Build/Resources/%{pkgname}.png ${ff} ${rr} ${dir}/apps/%{pkgname}.png + convert %{pkgname}/Build/Resources/%{prog2name}.png ${ff} ${rr} ${dir}/apps/%{prog2name}.png + # mimetypes + convert file_batch.png ${ff} ${rr} ${dir}/mimetypes/application-x-freefilesync-batch.png + convert file_sync.png ${ff} ${rr} ${dir}/mimetypes/application-x-freefilesync-ffs.png + convert %{pkgname}/Build/Resources/%{prog2name}.png ${ff} ${rr} ${dir}/mimetypes/application-x-freefilesync-real.png done %clean @@ -157,7 +161,6 @@ done %post touch --no-create %{_datadir}/icons/hicolor &>/dev/null || : -update-desktop-database &> /dev/null || : %preun # is it a final removal? @@ -166,16 +169,15 @@ update-desktop-database &> /dev/null || : #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 || : -update-mime-database -n ${_datadir}/mime 1>/dev/null 2>&1 || : +update-desktop-database 1>/dev/null 2>&1 & : +gtk-update-icon-cache %{_datadir}/icons/hicolor 1>/dev/null 2>&1 & : +update-mime-database -n ${_datadir}/mime 1>/dev/null 2>&1 & : %files %license %attr(444, -, -) License.txt @@ -189,6 +191,11 @@ update-mime-database -n ${_datadir}/mime 1>/dev/null 2>&1 || : %ghost %config %attr(666, -, -) %{_datadir}/%{name}/GlobalSettings.xml %changelog +* Sat Jun 15 2019 B Stack - 10.13-1 +- version bump +- improve mimetype icon deployment + +- add mimetypes, to match dpkg * Sun May 12 2019 B Stack - 10.12-1 - version bump - improve icons used from upstream, to match dpkg -- cgit