Package: freefilesync / 13.7-2

Metadata

Package Version Patches format
freefilesync 13.7-2 3.0 (quilt)

Patch series

view the series file
Patch File delta Description
pkg config.patch | (download)

FreeFileSync/Source/Makefile | 22 12 + 10 - 0 !
FreeFileSync/Source/RealTimeSync/Makefile | 4 3 + 1 - 0 !
2 files changed, 15 insertions(+), 11 deletions(-)

 put pkg-config command into a variable
 When cross-compiling on debian, the build system dh set the name of the
 pkg-config command name to use into PKG_CONFIG variable.
 For armhf, it is PKG_CONFIG=arm-linux-gnueabihf-pkg-config
 .
 Since the pkg-config that is installed during cross-compiling is the one
 of the build-arch (amd64), and not the one of the host-arch (armhf),
 using `pkg-config` instead of `arm-linux-gnueabihf-pkg-config` would
 prevent detection of the libraries.
 .
 Patch forwared by email to author on 2022-08-11
 .
wx config version.patch | (download)

FreeFileSync/Source/Makefile | 5 3 + 2 - 0 !
FreeFileSync/Source/RealTimeSync/Makefile | 5 3 + 2 - 0 !
2 files changed, 6 insertions(+), 4 deletions(-)

 set wx-config version
 Useful when there are multiple versions of wx-config installed on the system
ffs_devuan.patch | (download)

FreeFileSync/Source/Makefile | 6 3 + 3 - 0 !
FreeFileSync/Source/RealTimeSync/Makefile | 6 3 + 3 - 0 !
FreeFileSync/Source/ffs_paths.cpp | 2 1 + 1 - 0 !
3 files changed, 7 insertions(+), 7 deletions(-)

 main patch to compile on debian & derivatives
 - Set the path to the resource dir on Debian
 . remove the "arch" name from the produced executable name.
 - update compilation flags:
    - CPPFLAGS: required because it is set in debian/rules
    - LDFLAGS: remove -s because stripping this is done in dh_strip. If we
      kept it, the dbgsym packages would be almost empty.
    - LDFLAGS: remove -no-pie because this would conflict with
      DEB_BUILD_MAINT_OPTIONS set in debian/rules. The value hardening=+all
      enables PIE, while -no-pie would conflit with that.
remove_upstream_build_optimization.patch | (download)

FreeFileSync/Source/Makefile | 2 1 + 1 - 0 !
FreeFileSync/Source/RealTimeSync/Makefile | 2 1 + 1 - 0 !
2 files changed, 2 insertions(+), 2 deletions(-)

 remove upstream's `-o3` build optimization
 This permits to build with Debian's default optimization which are set through
 buildflags.mk
 .
 With this, usually it will build with -O2.
 .
 Using this mechanism also permits to honor the DEB_BUILD_OPTIONS=noopt in
 which case, optimization is set to -O0.
 .
 References:
  - https://wiki.debian.org/HardeningWalkthrough
  - https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html
 .
ffs_devuan_gtk3.patch | (download)

FreeFileSync/Source/Makefile | 5 3 + 2 - 0 !
FreeFileSync/Source/RealTimeSync/Makefile | 5 3 + 2 - 0 !
2 files changed, 6 insertions(+), 4 deletions(-)

 build with gtk3 instead of gtk2
 - wxwidgets is built with gtk3, so we have to build with gtk3
 - add the LDFLAGS for gtk+-3.0, otherwise, the build would fail with:
 .
 /usr/bin/ld: /tmp/cc6adrRa.ltrans115.ltrans.o: undefined reference to symbol 'gtk_css_provider_load_from_path'
 /usr/bin/ld: /lib/x86_64-linux-gnu/libgtk-3.so.0: error adding symbols: DSO missing from command line
 .
 "::gtk_css_provider_load_from_path" is called in
   FreeFileSync/Source/application.cpp
   FreeFileSync/Source/RealTimeSync/application.cpp
 .
zlib dep.patch | (download)

FreeFileSync/Source/Makefile | 3 3 + 0 - 0 !
1 file changed, 3 insertions(+)

 add missing ldflags & cxxflags of zlib
 - zlib's deflate() is used in zen/zlib_wrap.*
 .
 - update compilation flags:
    - CXXFLAGS: add flags for zlib
    - LDFLAGS: add flags for zlib
 .
 Since ffs calls the deflate function of zlib in zen/zlib_wrap.*, we have to
 add -lz.
 .
 Otherwise build would fail this way:
  /usr/bin/ld: /tmp/FreeFileSync_Make/ffs/src/../../zen/zlib_wrap.cpp.o: undefined reference to symbol 'deflate'
  /usr/bin/ld: /lib/x86_64-linux-gnu/libz.so.1: error adding symbols: DSO missing from command line
 .
 The RealTimeSunc binary doesn't use zen/zlib_wrap.*, so it is not required in
 that case.
 .
 Required since 10.0
 .
reproducible build.patch | (download)

FreeFileSync/Source/Makefile | 4 4 + 0 - 0 !
FreeFileSync/Source/RealTimeSync/Makefile | 4 4 + 0 - 0 !
zen/time.h | 8 8 + 0 - 0 !
3 files changed, 16 insertions(+)

 permit reproducible builds by use of source_date_epoch
 Currently the code relies on __DATE__ and __TIME__ macros.
 .
 This prevents to have reproducible build because these values changes every
 time we compile.
 .
 To achieve reproducible builds, make use of SOURCE_DATE_EPOCH as proposed
 on https://reproducible-builds.org
 .
 See:
  - https://reproducible-builds.org/docs/
  - https://reproducible-builds.org/docs/source-date-epoch/
ffs_dpkg_vendor_specific_about.patch | (download)

FreeFileSync/Source/ui/small_dlgs.cpp | 2 2 + 0 - 0 !
1 file changed, 2 insertions(+)

 patch to add vendor name in about screen
ffs_no_check_updates.patch | (download)

FreeFileSync/Source/Makefile | 1 0 + 1 - 0 !
FreeFileSync/Source/ui/gui_generated.cpp | 6 0 + 6 - 0 !
FreeFileSync/Source/ui/gui_generated.h | 2 0 + 2 - 0 !
FreeFileSync/Source/ui/main_dlg.cpp | 55 0 + 55 - 0 !
FreeFileSync/Source/ui/main_dlg.h | 1 0 + 1 - 0 !
FreeFileSync/Source/ui/small_dlgs.cpp | 1 0 + 1 - 0 !
FreeFileSync/Source/ui/version_check.cpp | 66 3 + 63 - 0 !
FreeFileSync/Source/ui/version_check.h | 4 0 + 4 - 0 !
8 files changed, 3 insertions(+), 133 deletions(-)

 disable check for new versions
ffs_sftp.patch | (download)

FreeFileSync/Source/afs/sftp.cpp | 7 4 + 3 - 0 !
1 file changed, 4 insertions(+), 3 deletions(-)

 add values from missing constants taken from libssh2
 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
 .
 Required since 10.9
Source: <none>
ffs_icon_loader.patch | (download)

FreeFileSync/Source/base/icon_loader.cpp | 4 4 + 0 - 0 !
1 file changed, 4 insertions(+)

 solve syntax issue when using libglib2 >= 2.67
  Preprocessor output for `::g_object_ref(gicon); ` is:
      ::((typename std::remove_reference<decltype (gicon)>::type) (g_object_ref) (gicon));
  Since commit https://gitlab.gnome.org/GNOME/glib/-/commit/5b2bee3f539056b42c802608f9f00cc9ddd64b79
  that is shipped starting from 2.67.0, the macro g_object_ref changed and is
  also defined when __cplusplus is defined in some circumstances.
 .
  Removing the scope resolution operator `::` permits the code to build.
  There remains to check whether this is the correct fix.
 .
 See also: https://freefilesync.org/forum/viewtopic.php?t=8780
 .
 Required since 11.21
 .
skip missing Animal.dat.patch | (download)

FreeFileSync/Source/ui/gui_generated.cpp | 8 4 + 4 - 0 !
FreeFileSync/Source/ui/small_dlgs.cpp | 14 7 + 7 - 0 !
2 files changed, 11 insertions(+), 11 deletions(-)

 don't process the missing animal.dat image
 Upstream doesn't ship the Animal.dat file in the sources. It is a picture
 that is displayed in the "About" window.
 .
 Remove the display of that picture and resize the widgets so as to occupy
 all the space freed by it.
 .
libssh2_relax_dep.patch | (download)

libssh2/libssh2_wrap.h | 6 6 + 0 - 0 !
1 file changed, 6 insertions(+)

 allow one to build with older version of libssh2
 Don't fail on missing constants when building with older versions of libssh2
Disable_wxWidgets_uncaught_exception_handling.patch | (download)

FreeFileSync/Source/RealTimeSync/application.cpp | 3 0 + 3 - 0 !
FreeFileSync/Source/application.cpp | 3 0 + 3 - 0 !
2 files changed, 6 deletions(-)

 disable wxwidgets uncaught exception handling
 wxWidgets' exception handling gets in the way of debugging by
 handling uncaught exceptions, thous hiding their point of origin.
 This causes the build to fail:
 application.cpp:249:2: error: #error why is wxWidgets uncaught exception handling enabled!?
  249 | #error why is wxWidgets uncaught exception handling enabled!?
      |  ^~~~~
 compilation terminated due to -Wfatal-errors.
deactivate_google_drive_button.patch | (download)

FreeFileSync/Source/ui/gui_generated.cpp | 2 2 + 0 - 0 !
FreeFileSync/Source/ui/small_dlgs.cpp | 2 1 + 1 - 0 !
2 files changed, 3 insertions(+), 1 deletion(-)

 deactivate google drive
 Upstream doesn't ship the client_id & client_secret that are required to
 interact with Google's servers.
 .
 This results in failures like the one described here:
 .
    https://freefilesync.org/forum/viewtopic.php?t=11054
 .
 This patch:
  - disables the Google Drive button in the UI
  - displays the UI elements for sftp when opening the 'Cloud' dialog (instead
  of those for Google Drive).
 .
 Required since 10.9
 .
 Applied since 13.3-2
 .
libcurl_improve_supported_error_codes.patch | (download)

libcurl/curl_wrap.cpp | 50 50 + 0 - 0 !
1 file changed, 50 insertions(+)

 extend the versions of libcurl that can be used to build ffs
 .
 Minimal version supported by this patch is libcurl >= 7.66
 .
 FreeFileSync makes an 'assert' that it supports all error codes of the curl
 version that it links to. Since FreeFileSync code is shipped to build
 with a specific version of curl, there is a hard coded assertion.
 .
 To avoid a build failure when curl is not in line with the one used upstream
 we make conditional checks on the curl version to determine which assertion
 should be made.
 .
 While this works fine to build with any old version of curl > 7.66, there
 will be a build fairure as soon as a new error code appears in a newer version
 of curl. In that case it is required to add it here.
 .
 Error codes can be found in the 'enum' named 'CURLcode' at
 https://github.com/curl/curl/blob/master/include/curl/curl.h
 .
libcurl 8.16 ftpmethod type.patch | (download)

FreeFileSync/Source/afs/ftp.cpp | 9 7 + 2 - 0 !
1 file changed, 7 insertions(+), 2 deletions(-)

 support curl's newftp methods type (since 8.16)

Last-Modified: 2025-09-06