Knowledge Base

Preserving for the future: Shell scripts, AoC, and more

My FreeFileSync package is rebased on the Debian one

Overview

I have been maintaining a package of FreeFileSync for a long time, first as an rpm and currently only a dpkg (source on cgit and possibly gitlab).

I was even asked to participate in maintaing FreeFileSync in Debian by the maintainer! He uses my work, although less and less as he has started writing better patches than I maintain.

I have now rebased my dpkg on his work. He obviously understand debianized build and package processes better than I do, and also he's better at solving the C++ problems that show up.

Notes on patches

So in the whole list of patches (whew, Debian tends to have a lot, doesn't it?), I reviewed what Bastif has and what I wanted too. He implements them in a different order than I do.

  1. pkg-config.patch: I implement in makefile-improvements.patch
  2. wx-config-version.patch: also in makefile-improvements.patch
  3. ffs_devuan.patch is a smaller, lesser version of my main patch that allows me to compile on Devuan. It did show me to add CPPFLAGS and clean up the LDFLAGS.
  4. remove_upstream_build_optimization.patch is very small and I implement in my ffs_devuan.patch.
  5. ffs_devuan_gtk3.patch really should just get folded into the ffs_devuan.patch. It just switches gtk2 to 3, like mine
  6. zlib-dep.patch: also in makefile-improvements.patch.
  7. reproducible-build.patch: I skip this one. I'm sure that's important for Debian, but I'm lazy and don't care. It just fixes a timestamp to be some consistent (static?) value. This sort of thing is why I wasn't willing to sign up for all this work. This seems like a good idea, but takes mental overhead and repo space and .3 seconds for quilt to apply/unapply every time so I just don't care. I'm glad people like Bastif do this for the rest of us though!
  8. ffs_dpkg_vendor_specific_about.patch: This turns into a variable my previously hard-coded "for Devuan" string I would put in the app. I implement this now too, in my ffs_devuan.patch, and stick my vendor name in the Makefile and not just a debian/rules file. I test compiling with make directly, and not just debuild, so I don't want to depend only on the debuild.
  9. ffs_no_check_updates.patch: I didn't actually even read this one. I'm the upstream for ffs_no_check_updates.patch anyways.
  10. ffs_sftp.patch: same as mine, or close enough.
  11. ffs_traditional_view.patch: same as mine. I'm the upstream author of this one too.
  12. ffs_icon_loader.patch: Woops, he wrote this one better than mine. I should replace mine.
  13. skip-missing-Animal.dat.patch: I implement the bare minimum amount of this in ffs_devuan.patch. His is more thorough but mine is minimal and is good enough for me.
  14. fix-gtk3-kde-hang-and-dialog-size.patch: I think I implement this in revert_buggy_gtk3_change_in_12.1.patch, but I also don't use KDE so cannot test.
  15. libssh2_relax_dep.patch: This one is so far superior to mine; he handles it based on different version numbers of the library. I threw mine away and use his now.
  16. Disable_wxWidgets_uncaught_exception_handling.patch: I implement something similar enough in disable_wxuse_Exceptions.patch. I'm willing to guess Bastif's patch is better, but mine works too.
  17. deactivate_google_drive_button.patch: I don't implement this. That means that I don't deactivate the button, but I don't have a google key and secret to plug in, so technically my package doesn't work with Google Drive either. I probably should use this patch, but again, I'm lazy.
  18. libcurl_improve_supported_error_codes.patch: This was so far superior to my old version that I threw mine away and just use this now.

And leave it to Debian to have 18 patches for a program like this!

Comments