SHA256
1
0
forked from pool/FreeFileSync

Accepting request 824675 from home:seil0:branches:network

- Update to 11.0
  - Revised file layout on main grid
  - Skip download/upload when copying Google Drive files inside account
  - Support moving Google Drive files between shared drives and My Drive
  - Support copying Google Drive shortcuts between accounts
  - Support copying Google Docs, Sheets, Slides, etc. within account
  - Fixed parsing uninitialized Google Drive modification time
  - Fixed Google Drive file already existing check running too late
  - Ignore slash/backslash differences during manual search
  - Avoid creating orphan database entry if one DB file fails to load
  - Limit modification time error count for log file warning message
  - Support copying WSL symlinks
  - Avoid duplicate MTP/Google Drive item creation from multiple threads
  - Fixed TMPDIR not found during startup (macOS)
  - Added sync variant icons
  - Avoid redundant icon format conversions
  - Buffer high-DPI image scaling results
  - Improved MTP thumbnail scaling performance
  - Avoid race condition during parallel file icon rendering (Linux)
  - Allow creating folder name with leading/trailing spaces
  - Start supporting GTK3 (Linux)

OBS-URL: https://build.opensuse.org/request/show/824675
OBS-URL: https://build.opensuse.org/package/show/network/FreeFileSync?expand=0&rev=34
This commit is contained in:
Eric Schirra 2020-08-06 11:13:05 +00:00 committed by Git OBS Bridge
parent 8056a9eeea
commit acf7cca251
7 changed files with 169 additions and 133 deletions

79
FreeFileSync-Build.patch Normal file
View File

@ -0,0 +1,79 @@
diff -ruN FreeFileSync_11.0_Source_orig/FreeFileSync/Source/Makefile FreeFileSync_11.0_Source/FreeFileSync/Source/Makefile
--- FreeFileSync_11.0_Source_orig/FreeFileSync/Source/Makefile 2020-07-22 13:22:18.000000000 +0200
+++ FreeFileSync_11.0_Source/FreeFileSync/Source/Makefile 2020-08-05 12:22:18.001794429 +0200
@@ -2,9 +2,9 @@
cxxFlags = -std=c++2a -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 `wx-config --cxxflags --debug=no` -pthread -fpie
-linkFlags = -s -no-pie `wx-config --libs std, aui --debug=no` -pthread
+linkFlags = -s `wx-config --libs std, aui --debug=no` -pthread -lz -pie
cxxFlags += `pkg-config --cflags openssl`
@@ -17,6 +17,7 @@
linkFlags += `pkg-config --libs libssh2`
cxxFlags += `pkg-config --cflags gtk+-2.0`
+linkFlags += `pkg-config --libs gtk+-2.0`
#treat as system headers so that warnings are hidden:
cxxFlags += -isystem/usr/include/gtk-2.0
diff -ruN FreeFileSync_11.0_Source_orig/FreeFileSync/Source/RealTimeSync/Makefile FreeFileSync_11.0_Source/FreeFileSync/Source/RealTimeSync/Makefile
--- FreeFileSync_11.0_Source_orig/FreeFileSync/Source/RealTimeSync/Makefile 2020-07-22 13:22:18.000000000 +0200
+++ FreeFileSync_11.0_Source/FreeFileSync/Source/RealTimeSync/Makefile 2020-08-05 12:22:00.473864076 +0200
@@ -2,12 +2,13 @@
cxxFlags = -std=c++2a -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 `wx-config --cxxflags --debug=no` -pthread -fpie
-linkFlags = -s -no-pie `wx-config --libs std, aui --debug=no` -pthread
+linkFlags = -s `wx-config --libs std, aui --debug=no` -pthread -lz -pie
#Gtk - support "no button border"
cxxFlags += `pkg-config --cflags gtk+-2.0`
+linkFlags += `pkg-config --libs gtk+-2.0`
#treat as system headers so that warnings are hidden:
cxxFlags += -isystem/usr/include/gtk-2.0
diff -ruN FreeFileSync_11.0_Source_orig/libssh2/libssh2_wrap.h FreeFileSync_11.0_Source/libssh2/libssh2_wrap.h
--- FreeFileSync_11.0_Source_orig/libssh2/libssh2_wrap.h 2020-07-22 13:22:20.000000000 +0200
+++ FreeFileSync_11.0_Source/libssh2/libssh2_wrap.h 2020-08-04 11:35:17.919354168 +0200
@@ -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)
diff -ruN FreeFileSync_11.0_Source_orig/zen/ring_buffer.h FreeFileSync_11.0_Source/zen/ring_buffer.h
--- FreeFileSync_11.0_Source_orig/zen/ring_buffer.h 2020-07-22 13:22:20.000000000 +0200
+++ FreeFileSync_11.0_Source/zen/ring_buffer.h 2020-08-04 11:35:36.075289535 +0200
@@ -8,6 +8,7 @@
#define RING_BUFFER_H_01238467085684139453534
#include <cassert>
+#include <cstddef>
#include "scope_guard.h"

View File

@ -0,0 +1,12 @@
--- FreeFileSync_11.0_Source_orig/FreeFileSync/Source/ffs_paths.cpp 2020-07-22 13:22:20.000000000 +0200
+++ FreeFileSync_11.0_Source/FreeFileSync/Source/ffs_paths.cpp 2020-08-04 15:21:24.667813874 +0200
@@ -64,7 +64,8 @@
Zstring fff::getResourceDirPf()
{
- return getProcessParentFolderPath() + FILE_NAME_SEPARATOR + Zstr("Resources") + FILE_NAME_SEPARATOR;
+ // for opensuse install to /usr/share/FreeFileSync specificly
+ return Zstr("/usr/share/FreeFileSync/");
}

View File

@ -1,3 +1,28 @@
-------------------------------------------------------------------
Wed Aug 5 10:00:02 UTC 2020 - Jannik Seiler <seil0@mosad.xyz>
- Update to 11.0
- Revised file layout on main grid
- Skip download/upload when copying Google Drive files inside account
- Support moving Google Drive files between shared drives and My Drive
- Support copying Google Drive shortcuts between accounts
- Support copying Google Docs, Sheets, Slides, etc. within account
- Fixed parsing uninitialized Google Drive modification time
- Fixed Google Drive file already existing check running too late
- Ignore slash/backslash differences during manual search
- Avoid creating orphan database entry if one DB file fails to load
- Limit modification time error count for log file warning message
- Support copying WSL symlinks
- Avoid duplicate MTP/Google Drive item creation from multiple threads
- Fixed TMPDIR not found during startup (macOS)
- Added sync variant icons
- Avoid redundant icon format conversions
- Buffer high-DPI image scaling results
- Improved MTP thumbnail scaling performance
- Avoid race condition during parallel file icon rendering (Linux)
- Allow creating folder name with leading/trailing spaces
- Start supporting GTK3 (Linux)
-------------------------------------------------------------------
Mon Dec 31 14:15:04 UTC 2018 - thomasglatt@gmx.de

View File

@ -1,7 +1,7 @@
#
# spec file for package FreeFileSync
#
# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany.
# Copyright (c) 2020 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@ -12,33 +12,33 @@
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
Name: FreeFileSync
Version: 11.0
Release: 0
Summary: Free backup software to synchronize files and folders
Version: 10.7
Release: 1
License: GPL-3.0+
License: GPL-3.0-or-later
Group: Productivity/Networking/System
Url: http://www.freefilesync.org/
Source0: http://sourceforge.net/projects/freefilesync/files/%{name}/%{version}/%{name}_%{version}_Source.zip
URL: https://www.freefilesync.org/
Source0: https://freefilesync.org/download/%{name}_%{version}_Source.zip
Source1: %{name}.desktop
Source2: %{name}.png
Source3: RealTimeSync.desktop
Source4: RealTimeSync.png
Patch: freefilesync-build.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: unzip
Patch0: FreeFileSync-Build.patch
Patch1: FreeFileSync-Resources.patch
BuildRequires: boost-devel >= 1.54
BuildRequires: wxWidgets-3_2-devel
BuildRequires: update-desktop-files
#%if 0%{?suse_version} <= 1500
# FreeFileSync requires C++17 support.
#BuildRequires: gcc8-c++
#%else
BuildRequires: gcc-c++
#%endif
BuildRequires: libstdc++6 >= 10.0.0
BuildRequires: libcurl-devel
BuildRequires: libopenssl-devel
BuildRequires: libssh2-devel
BuildRequires: unzip
BuildRequires: update-desktop-files
BuildRequires: wxWidgets-3_2-devel
%description
FreeFileSync is a free Open Source software that helps you synchronize files
@ -48,7 +48,7 @@ your time setting up and running backup jobs while having nice visual feedback a
%package -n RealtimeSync
Summary: Free backup software to synchronize files and folders
Group: Productivity/Networking/System
Requires: %{name} = %{version}-%{release}
Requires: %{name} = %{version}-%{release}
%description -n RealtimeSync
The primary purpose of RealtimeSync is to execute a command line each time it detects changes
@ -56,71 +56,45 @@ in one of the monitored directories or when a directory becomes available (e. g.
Usually this command line will trigger a FreeFileSync batch job.
%prep
%setup -c %{name}-%{version}
%setup -q -c %{name}-%{version}
sed -i 's/\r$//' License.txt
chmod -x License.txt
# Fix for false Makefile
# mv Changelog.txt FreeFileSync/Build/
#chmod -x License.txt
mkdir FreeFileSync/Build/Bin
%patch -p1
%patch0 -p1
%patch1 -p1
%build
#
#%if 0%{?suse_version} <= 1500
#export CC="gcc-8"
#export CXX="g++-8"
# Default ABI through G++4.9, thus the one wxWidgets uses.
export TMPDIR=/tmp # necessary since 11.0
export CXXFLAGS="%{optflags} -fabi-version=2 -fabi-compat-version=2"
#%else
export CC="gcc"
export CXX="g++"
#%endif
#
pushd %{name}/Source
# Add -lz to LINKFLAGS for proper compilation
#sed -i -e 's:CPP_FILES=:LINKFLAGS += -lz\n\n CPP_FILES=:g' Makefile
#%if 0%{?suse_version} <= 1500
#sed -i -e 's:g++:g++-8:g' Makefile
#sed -i -e 's:CXXFLAGS =:CXXFLAGS +=:g' Makefile
#%else
#sed -i -e 's:g++:g++:g' Makefile
#%endif
make %{?_smp_mflags} BUILD=FreeFileSync
popd
pushd %{name}/Source/RealTimeSync
#%if 0%{?suse_version} <= 1500
#sed -i -e 's:g++:g++-8:g' Makefile
#sed -i -e 's:CXXFLAGS =:CXXFLAGS +=:g' Makefile
#%else
#sed -i -e 's:g++:g++:g' Makefile
#%endif
make %{?_smp_mflags} BUILD=RealTimeSync
popd
%make_build -C %{name}/Source exeName=FreeFileSync
%make_build -C %{name}/Source/RealTimeSync exeName=RealTimeSync
%install
pushd %{name}/Source
%make_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}
find "%{buildroot}%{_datadir}/%{name}" -type f -print0 | xargs -0 chmod 644
#%%make_install
# RealTimeSync
mkdir -p %{buildroot}%{_bindir}
install -t %{buildroot}%{_bindir} Bin/RealTimeSync
#%%make_install
popd
pushd %{name}/Source/RealTimeSync
%make_install
popd
# del unneeded changelog.gz
rm -r ${RPM_BUILD_ROOT}%{_datadir}/doc/%{name}
chmod -x ${RPM_BUILD_ROOT}%{_datadir}/%{name}/Languages/*.lng
sed -i 's/\r$//' ${RPM_BUILD_ROOT}%{_datadir}/%{name}/Languages/*.lng
#chmod -x ${RPM_BUILD_ROOT}%{_datadir}/%{name}/Help/html/*.html
#chmod -x ${RPM_BUILD_ROOT}%{_datadir}/%{name}/Help/html/*.css
#chmod -x ${RPM_BUILD_ROOT}%{_datadir}/%{name}/Help/FreeFileSync.hh*
chmod -x ${RPM_BUILD_ROOT}%{_datadir}/%{name}/Resources.zip
# desktop
mkdir -p ${RPM_BUILD_ROOT}%{_datadir}/pixmaps
install -p %{SOURCE2} ${RPM_BUILD_ROOT}%{_datadir}/pixmaps/
install -p %{SOURCE4} ${RPM_BUILD_ROOT}%{_datadir}/pixmaps/
%suse_update_desktop_file -i %name
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
%post
@ -129,20 +103,18 @@ install -p %{SOURCE4} ${RPM_BUILD_ROOT}%{_datadir}/pixmaps/
%postun
%desktop_database_postun
%clean
rm -rf %{buildroot}
%files
%defattr(-,root,root,-)
%doc License.txt
%license %attr(444, -, -) License.txt
%doc %attr(444, -, -) Changelog.txt
%{_bindir}/%{name}
%{_datadir}/%{name}
%{_datadir}/applications/%{name}.desktop
%{_datadir}/pixmaps/%{name}.png
%{_datadir}/%{name}/*
%dir %{_datadir}/%{name}
%files -n RealtimeSync
%defattr(-,root,root,-)
%doc License.txt
%license %attr(444, -, -) License.txt
%doc %attr(444, -, -) Changelog.txt
%{_bindir}/RealTimeSync
%{_datadir}/applications/RealTimeSync.desktop
%{_datadir}/pixmaps/RealTimeSync.png

View File

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

View File

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

View File

@ -1,52 +0,0 @@
diff -Naur FreeFileSync_10.7_Source_orig/FreeFileSync/Source/base/ffs_paths.cpp FreeFileSync_10.7_Source/FreeFileSync/Source/base/ffs_paths.cpp
--- FreeFileSync_10.7_Source_orig/FreeFileSync/Source/base/ffs_paths.cpp 2018-12-12 15:02:09.000000000 +0100
+++ FreeFileSync_10.7_Source/FreeFileSync/Source/base/ffs_paths.cpp 2018-12-20 12:13:14.605211463 +0100
@@ -65,10 +65,10 @@
wxTheApp->SetAppName(L"FreeFileSync");
ZEN_ON_SCOPE_EXIT(wxTheApp->SetAppName(appName));
- //if (isPortableVersion())
- return appendSeparator(getExeFolderParentPath());
- //else //use OS' standard paths
- // return appendSeparator(utfTo<Zstring>(wxStandardPathsBase::Get().GetResourcesDir()));
+ if (isPortableVersion())
+ return appendSeparator(getExeFolderParentPath());
+ else //use OS' standard paths
+ return appendSeparator(utfTo<Zstring>(wxStandardPathsBase::Get().GetResourcesDir()));
}
diff -Naur FreeFileSync_10.7_Source_orig/FreeFileSync/Source/Makefile FreeFileSync_10.7_Source/FreeFileSync/Source/Makefile
--- FreeFileSync_10.7_Source_orig/FreeFileSync/Source/Makefile 2018-12-12 15:02:08.000000000 +0100
+++ FreeFileSync_10.7_Source/FreeFileSync/Source/Makefile 2018-12-20 12:10:16.308972137 +0100
@@ -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` -pthread -lz
#Gtk - support recycler/icon loading/no button border/grid scrolling
CXXFLAGS += `pkg-config --cflags gtk+-2.0`
diff -Naur FreeFileSync_10.7_Source_orig/zen/ring_buffer.h FreeFileSync_10.7_Source/zen/ring_buffer.h
--- FreeFileSync_10.7_Source_orig/zen/ring_buffer.h 2018-12-12 15:02:08.000000000 +0100
+++ FreeFileSync_10.7_Source/zen/ring_buffer.h 2018-12-20 12:08:37.499068156 +0100
@@ -8,6 +8,7 @@
#define RING_BUFFER_H_01238467085684139453534
#include <cassert>
+#include <cstddef>
#include "scope_guard.h"
diff -Naur FreeFileSync_10.7_Source_orig/zen/serialize.h FreeFileSync_10.7_Source/zen/serialize.h
--- FreeFileSync_10.7_Source_orig/zen/serialize.h 2018-12-12 15:02:08.000000000 +0100
+++ FreeFileSync_10.7_Source/zen/serialize.h 2018-12-20 12:08:48.938825488 +0100
@@ -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!