SHA256
1
0
forked from pool/FreeFileSync

Accepting request 1185076 from home:krop:branches:network

Update to 13.7

OBS-URL: https://build.opensuse.org/request/show/1185076
OBS-URL: https://build.opensuse.org/package/show/network/FreeFileSync?expand=0&rev=88
This commit is contained in:
Paolo Stivanin 2024-07-03 09:05:23 +00:00 committed by Git OBS Bridge
commit c897224edc
15 changed files with 1677 additions and 0 deletions

25
.gitattributes vendored Normal file
View File

@ -0,0 +1,25 @@
## Default LFS
*.7z filter=lfs diff=lfs merge=lfs -text
*.bsp filter=lfs diff=lfs merge=lfs -text
*.bz2 filter=lfs diff=lfs merge=lfs -text
*.gem filter=lfs diff=lfs merge=lfs -text
*.gz filter=lfs diff=lfs merge=lfs -text
*.jar filter=lfs diff=lfs merge=lfs -text
*.lz filter=lfs diff=lfs merge=lfs -text
*.lzma filter=lfs diff=lfs merge=lfs -text
*.obscpio filter=lfs diff=lfs merge=lfs -text
*.oxt filter=lfs diff=lfs merge=lfs -text
*.pdf filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.rpm filter=lfs diff=lfs merge=lfs -text
*.tbz filter=lfs diff=lfs merge=lfs -text
*.tbz2 filter=lfs diff=lfs merge=lfs -text
*.tgz filter=lfs diff=lfs merge=lfs -text
*.ttf filter=lfs diff=lfs merge=lfs -text
*.txz filter=lfs diff=lfs merge=lfs -text
*.whl filter=lfs diff=lfs merge=lfs -text
*.xz filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.zst filter=lfs diff=lfs merge=lfs -text
## Specific LFS patterns
Animal.dat filter=lfs diff=lfs merge=lfs -text

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
.osc

3
Animal.dat Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:0495439697cadbc2005407ecd6ae261d749f6f43711a8769b6f8725a64f773c9
size 112431

92
FreeFileSync-build.patch Normal file
View File

@ -0,0 +1,92 @@
Index: FreeFileSync-12.5/FreeFileSync/Source/Makefile
===================================================================
--- FreeFileSync-12.5.orig/FreeFileSync/Source/Makefile
+++ FreeFileSync-12.5/FreeFileSync/Source/Makefile
@@ -3,9 +3,9 @@ exeName = FreeFileSync_$(shell arch)
CXXFLAGS += -std=c++23 -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 -Wnon-virtual-dtor -Wno-unused-function -Wshadow -Wno-maybe-uninitialized \
- -O3 -DNDEBUG `wx-config --cxxflags --debug=no` -pthread
+ -O3 -DNDEBUG `wx-config --cxxflags --debug=no` -pthread -fpie
-LDFLAGS += -s -no-pie `wx-config --libs std, aui, richtext --debug=no` -pthread
+LDFLAGS += -s `wx-config --libs std, aui, richtext --debug=no` -pthread -lz -pie
CXXFLAGS += `pkg-config --cflags openssl`
@@ -17,9 +17,10 @@ LDFLAGS += `pkg-config --libs libcurl`
CXXFLAGS += `pkg-config --cflags libssh2`
LDFLAGS += `pkg-config --libs libssh2`
-CXXFLAGS += `pkg-config --cflags gtk+-2.0`
+CXXFLAGS += `pkg-config --cflags gtk+-3.0`
+LDFLAGS += `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-3.0
#support for SELinux (optional)
SELINUX_EXISTING=$(shell pkg-config --exists libselinux && echo YES)
Index: FreeFileSync-12.5/FreeFileSync/Source/RealTimeSync/Makefile
===================================================================
--- FreeFileSync-12.5.orig/FreeFileSync/Source/RealTimeSync/Makefile
+++ FreeFileSync-12.5/FreeFileSync/Source/RealTimeSync/Makefile
@@ -3,14 +3,15 @@ exeName = RealTimeSync_$(shell arch)
CXXFLAGS += -std=c++23 -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 -Wnon-virtual-dtor -Wno-unused-function -Wshadow -Wno-maybe-uninitialized \
- -O3 -DNDEBUG `wx-config --cxxflags --debug=no` -pthread
+ -O3 -DNDEBUG `wx-config --cxxflags --debug=no` -pthread -fpie
-LDFLAGS += -s -no-pie `wx-config --libs std, aui, richtext --debug=no` -pthread
+LDFLAGS += -s `wx-config --libs std, aui, richtext --debug=no` -pthread -lz -pie
#Gtk - support "no button border"
-CXXFLAGS += `pkg-config --cflags gtk+-2.0`
+CXXFLAGS += `pkg-config --cflags gtk+-3.0`
+LDFLAGS += `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-3.0
cppFiles=
cppFiles+=application.cpp
Index: FreeFileSync-12.5/libssh2/libssh2_wrap.h
===================================================================
--- FreeFileSync-12.5.orig/libssh2/libssh2_wrap.h
+++ FreeFileSync-12.5/libssh2/libssh2_wrap.h
@@ -20,6 +20,22 @@
#error libssh2_sftp.h header guard changed
#endif
+// fix some build errors
+/* MAX_SFTP_READ_SIZE is how much data is asked for at max in each FXP_READ
+ * packets.
+ */
+#ifndef MAX_SFTP_READ_SIZE
+ #define MAX_SFTP_READ_SIZE 30000
+#endif
+
+/*
+ * MAX_SFTP_OUTGOING_SIZE MUST not be larger than 32500 or so. This is the
+ * amount of data sent in each FXP_WRITE packet
+ */
+#ifndef MAX_SFTP_OUTGOING_SIZE
+ #define MAX_SFTP_OUTGOING_SIZE 30000
+#endif
+
//fix libssh2 64-bit warning mess: https://github.com/libssh2/libssh2/pull/96
#undef libssh2_userauth_password
inline int libssh2_userauth_password(LIBSSH2_SESSION* session, const std::string& username, const std::string& password)
Index: FreeFileSync-12.5/zen/ring_buffer.h
===================================================================
--- FreeFileSync-12.5.orig/zen/ring_buffer.h
+++ FreeFileSync-12.5/zen/ring_buffer.h
@@ -8,6 +8,7 @@
#define RING_BUFFER_H_01238467085684139453534
#include <cassert>
+#include <cstddef>
#include "scope_guard.h"

View File

@ -0,0 +1,44 @@
Index: FreeFileSync-13.6/FreeFileSync/Source/ui/gui_generated.cpp
===================================================================
--- FreeFileSync-13.6.orig/FreeFileSync/Source/ui/gui_generated.cpp
+++ FreeFileSync-13.6/FreeFileSync/Source/ui/gui_generated.cpp
@@ -108,10 +108,10 @@ MainDialogGenerated::MainDialogGenerated
m_menuItemHelp = new wxMenuItem( m_menuHelp, wxID_HELP, wxString( _("&View help") ) + wxT('\t') + wxT("F1"), wxEmptyString, wxITEM_NORMAL );
m_menuHelp->Append( m_menuItemHelp );
- m_menuHelp->AppendSeparator();
+ //m_menuHelp->AppendSeparator();
m_menuItemCheckVersionNow = new wxMenuItem( m_menuHelp, wxID_ANY, wxString( _("&Check for updates now") ), wxEmptyString, wxITEM_NORMAL );
- m_menuHelp->Append( m_menuItemCheckVersionNow );
+ //m_menuHelp->Append( m_menuItemCheckVersionNow );
m_menuHelp->AppendSeparator();
Index: FreeFileSync-13.6/FreeFileSync/Source/ui/main_dlg.cpp
===================================================================
--- FreeFileSync-13.6.orig/FreeFileSync/Source/ui/main_dlg.cpp
+++ FreeFileSync-13.6/FreeFileSync/Source/ui/main_dlg.cpp
@@ -1118,7 +1118,7 @@ imgFileManagerSmall_([]
updateGui();
//register regular check for update on next idle event
- Bind(wxEVT_IDLE, &MainDialog::onStartupUpdateCheck, this);
+ //Bind(wxEVT_IDLE, &MainDialog::onStartupUpdateCheck, this);
//asynchronous call to wxWindow::Dimensions(): fix superfluous frame on right and bottom when FFS is started in fullscreen mode
Bind(wxEVT_IDLE, &MainDialog::onLayoutWindowAsync, this);
Index: FreeFileSync-13.6/FreeFileSync/Source/ui/version_check.cpp
===================================================================
--- FreeFileSync-13.6.orig/FreeFileSync/Source/ui/version_check.cpp
+++ FreeFileSync-13.6/FreeFileSync/Source/ui/version_check.cpp
@@ -48,7 +48,8 @@ void openBrowserForDownload(wxWindow* pa
bool fff::automaticUpdateCheckDue(time_t lastUpdateCheck)
{
const time_t now = std::time(nullptr);
- return numeric::dist(now, lastUpdateCheck) >= 7 * 24 * 3600; //check weekly
+ //return numeric::dist(now, lastUpdateCheck) >= 7 * 24 * 3600; //check weekly
+ return false;
}

View File

@ -0,0 +1,13 @@
Index: FreeFileSync-13.2/FreeFileSync/Source/base/icon_loader.cpp
===================================================================
--- FreeFileSync-13.2.orig/FreeFileSync/Source/base/icon_loader.cpp
+++ FreeFileSync-13.2/FreeFileSync/Source/base/icon_loader.cpp
@@ -227,7 +227,7 @@ FileIconHolder fff::getFileIcon(const Zs
//the remaining icon types won't block!
assert(GDK_IS_PIXBUF(gicon) || G_IS_THEMED_ICON(gicon) || G_IS_EMBLEMED_ICON(gicon));
- ::g_object_ref(gicon); //pass ownership
+ //::g_object_ref(gicon); //pass ownership
return FileIconHolder(gicon, maxSize); //
}

View File

@ -0,0 +1,30 @@
Index: FreeFileSync-13.3/FreeFileSync/Source/application.cpp
===================================================================
--- FreeFileSync-13.3.orig/FreeFileSync/Source/application.cpp
+++ FreeFileSync-13.3/FreeFileSync/Source/application.cpp
@@ -243,10 +243,6 @@ wxLayoutDirection Application::GetLayout
int Application::OnRun()
{
-#if wxUSE_EXCEPTIONS
-#error why is wxWidgets uncaught exception handling enabled!?
-#endif
-
//exception => Windows: let it crash and create mini dump!!! Linux/macOS: std::exception::what() logged to console
[[maybe_unused]] const int rc = wxApp::OnRun();
return static_cast<int>(exitCode_);
Index: FreeFileSync-13.3/FreeFileSync/Source/RealTimeSync/application.cpp
===================================================================
--- FreeFileSync-13.3.orig/FreeFileSync/Source/RealTimeSync/application.cpp
+++ FreeFileSync-13.3/FreeFileSync/Source/RealTimeSync/application.cpp
@@ -209,10 +209,6 @@ wxLayoutDirection Application::GetLayout
int Application::OnRun()
{
-#if wxUSE_EXCEPTIONS
-#error why is wxWidgets uncaught exception handling enabled!?
-#endif
-
//exception => Windows: let it crash and create mini dump!!! Linux/macOS: std::exception::what() logged to console
[[maybe_unused]] const int rc = wxApp::OnRun();
return static_cast<int>(FfsExitCode::success); //process exit code

View File

@ -0,0 +1,14 @@
Index: FreeFileSync-13.1/FreeFileSync/Source/ffs_paths.cpp
===================================================================
--- FreeFileSync-13.1.orig/FreeFileSync/Source/ffs_paths.cpp
+++ FreeFileSync-13.1/FreeFileSync/Source/ffs_paths.cpp
@@ -54,7 +54,8 @@ Zstring fff::getInstallDirPath()
Zstring fff::getResourceDirPath()
{
- return appendPath(getProcessParentFolderPath(), Zstr("Resources"));
+ // for opensuse install to /usr/share/FreeFileSync specificly
+ return Zstr("/usr/share/FreeFileSync/");
}

1296
FreeFileSync.changes Normal file

File diff suppressed because it is too large Load Diff

11
FreeFileSync.desktop Normal file
View File

@ -0,0 +1,11 @@
[Desktop Entry]
Name=FreeFileSync
GenericName=Folder Synchronization Tool
Comment=Visual folder comparison and synchronization
Exec=FreeFileSync
Terminal=false
Icon=FreeFileSync
Type=Application
Categories=Utility;Archiving;
Version=1.0

3
FreeFileSync.png Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:31df3fa1f1310de14bbd379f891d4f8ed2df5b0d68913eb52c88b3be682933fb
size 12078

128
FreeFileSync.spec Normal file
View File

@ -0,0 +1,128 @@
#
# spec file for package FreeFileSync
#
# Copyright (c) 2024 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
%if 0%{?suse_version} && 0%{?suse_version} < 1590
%global force_gcc_version 12
%endif
Name: FreeFileSync
Version: 13.7
Release: 0
Summary: Backup software to synchronize files and folders
License: GPL-3.0-or-later
Group: Productivity/Networking/System
URL: https://www.freefilesync.org/
Source0: https://freefilesync.org/download/FreeFileSync_%{version}_Source.zip
Source1: %{name}.desktop
Source2: %{name}.png
Source3: RealTimeSync.desktop
Source4: RealTimeSync.png
Source5: Animal.dat
Patch0: FreeFileSync-build.patch
Patch1: FreeFileSync-resources.patch
Patch2: FreeFileSync-icon-loader.patch
Patch3: FreeFileSync-disable-in-app-updates.patch
Patch4: FreeFileSync-remove_ifdef_exceptions.patch
BuildRequires: boost-devel >= 1.54
BuildRequires: gcc%{?force_gcc_version}-c++ >= 12
BuildRequires: libcurl-devel
BuildRequires: libopenssl-devel
BuildRequires: libssh2-devel
BuildRequires: libstdc++6 >= 10.0.0
BuildRequires: libstdc++6 >= 12
BuildRequires: unzip
BuildRequires: update-desktop-files
BuildRequires: wxGTK3-3_2-devel >= 3.1.6
BuildRequires: zlib-devel
%description
FreeFileSync is a software that helps synchronizing files
and folders. It runs backup jobs while having visual
feedback along the way.
%package -n RealtimeSync
Summary: Backup software to synchronize files and folders
Group: Productivity/Networking/System
Requires: %{name} = %{version}-%{release}
%description -n RealtimeSync
RealtimeSync executes a command each time it detects changes
in one of the monitored directories, or when a directory becomes
available (e.g. insertion of a USB drive).
This command will usually trigger a FreeFileSync batch job.
%prep
%autosetup -p1 -c %{name}-%{version}
sed -i 's/\r$//' License.txt
mkdir FreeFileSync/Build/Bin
%build
export TMPDIR=/tmp # necessary since 11.0
%if 0%{?force_gcc_version}
export CXX="g++-%{?force_gcc_version}"
%endif
%make_build -C %{name}/Source exeName=FreeFileSync
%make_build -C %{name}/Source/RealTimeSync exeName=RealTimeSync
%install
# FreeFileSync
pushd %{name}/Build
mkdir -p %{buildroot}%{_bindir}
install -t %{buildroot}%{_bindir} Bin/%{name}
mkdir -p %{buildroot}%{_datadir}/%{name}
cp -rT Resources %{buildroot}%{_datadir}/%{name}
install -Dm 0644 %SOURCE5 %{buildroot}%{_datadir}/%{name}
find "%{buildroot}%{_datadir}/%{name}" -type f -print0 | xargs -0 chmod 644
# RealTimeSync
mkdir -p %{buildroot}%{_bindir}
install -t %{buildroot}%{_bindir} Bin/RealTimeSync
popd
# desktop
mkdir -p %{buildroot}%{_datadir}/pixmaps
install -p %{SOURCE2} %{buildroot}%{_datadir}/pixmaps/
install -p %{SOURCE4} %{buildroot}%{_datadir}/pixmaps/
%suse_update_desktop_file -i %{name}
%suse_update_desktop_file -i RealTimeSync
%filetriggerin -- %{_datadir}/applications
%{_bindir}/update-desktop-database --quiet %{_datadir}/applications || true
%filetriggerpostun -- %{_datadir}/applications
%{_bindir}/update-desktop-database --quiet %{_datadir}/applications || true
%files
%license License.txt
%doc Changelog.txt
%{_bindir}/%{name}
%{_datadir}/applications/%{name}.desktop
%{_datadir}/pixmaps/%{name}.png
%{_datadir}/%{name}/*
%dir %{_datadir}/%{name}
%files -n RealtimeSync
%license License.txt
%doc Changelog.txt
%{_bindir}/RealTimeSync
%{_datadir}/applications/RealTimeSync.desktop
%{_datadir}/pixmaps/RealTimeSync.png
%changelog

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:6d2dc9d2e7afb591ffca3a0eb6a48c6151d168d7a05ba34c399bfb72d5b9a117
size 2763636

11
RealTimeSync.desktop Normal file
View File

@ -0,0 +1,11 @@
[Desktop Entry]
Name=RealTimeSync
GenericName=Realtime Synchronization Tool
Comment=Realtime folder synchronization
Exec=RealTimeSync
Terminal=false
Icon=RealTimeSync
Type=Application
Categories=Utility;Archiving;
Version=1.0

3
RealTimeSync.png Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:f28042587dbe99cf5d6bef2c1be4b026488e418e4ba8332b3016d246b7053a4e
size 11335