Bug#1016875: RFS: freefilesync/11.23-1 [ITP] -- cross-platform file sync utility, gpl release
Control: tags -1 -moreinfo
Dear Boyuan,
Thank you for your interest and asking the questions:
Le jeudi 11 août 2022, 21:27:14 CEST Boyuan Yang a écrit :
> I am curious on the current arrangement of your deb packaging. Specifically:
>
> * Why there are many separate ffs_* patches in debian/patches/? Where did
> they originate from? If they originates from upstream (FreeFileSync), why
> aren't they incorporated into upstream source code?
Originally I found packaging for Devuan but also for Ubuntu on non official
repos [1] & [2]. FreeFileSync has been packaged for years at least for Ubuntu
but was never on Debian.
So I took a lot of inspiration of these 2 packages to make this one. This also
explains the list of authors in the d/copyright file. I also didn't known what
to do with the history. Both packages share the same patches, but their d/
changelog doesn't cross each-other.
Concerning the patches, I took them from bgstack15's repo [1]. BTW Most
patches have his name/nickname in the patch headers. He also describes them
with the rationale in the header. I did too for the ones I added by following
DEP-3 Patch Tagging guidelines.
Some patches are here because upstream works with the very latest versions of
the dependencies or an older version, which are not always available on debian
& derivatives. That's the case for wxwidgets-3.2 or gtk-2:
- revert_zenju_aggressive_upstreamisms.patch
- ffs_no_wx311.patch
- ffs_devuan_gtk3.patch
Some patches add, enable, remove or disable a feature (notification, check for
updates...)
- ffs_allow_parallel_ops.patch
- ffs_traditional_view.patch
- ffs_no_check_updates.patch
- ffs_desktop_notifications.patch
Some patches are to make it compatible with debian filesystem or build system
- ffs_gcc.patch
- ffs_devuan.patch
- reproducible-build.patch
- pkg-config.patch
This one is probably to distinguish between the free version for which the
code is published, and the binary builds that the author ships to donators.
- ffs_dpkg_vendor_specific_about.patch
Some patches fix upstream's code which is not buildable otherwise (either we
don't have the same dependency version as the one used by upstream which leads
to compilation errors, or he uses unavailable macro's that have to be patched)
- ffs_sftp.patch
- ffs_icon_loader.patch
I sent mine upstream (pgk-config & reproducible) by email. Hopefully they will
be merged. But on github, upstream says: "Please do not send pull requests"
[3].
> * You are providing .desktop files under debian/desktop/. Does that mean
> that upstream author is not providing any .desktop files so that you have to
> write them yourself?
Indeed. They are not available in the original sources shipped by the upstream
author. However he/she provides some in his linux installer binary that I took
manually from there. I also adapted them based also on the additions/changes
found in the desktop files shipped in the Ubuntu & Devuan sources.
> * Please do not hardcode g++-12:native in the Build-Depends field. A sane
> environment should already have provided the proper g++. It could be g++ 12
> or other versions.
That's fixed. Thanks.
https://salsa.debian.org/bastif/freefilesync/-/commit/
a57b5655814b46559d875548526bfecc6690b269
> * You wrote Maintainer: B. Stack <bgstack15@gmail.com> in debian/control
> file, which looks falty to me. The maintainer should be package maintainer,
> not upstream software author, unless the upstream author (B. Stack) will be
> maintaining Debian package as well.
That was originally in the d/control I took from him. I left it this way not
really knowing what would be best. I talked to him, he would be happy to see
this in Debian and said that he might take the package over once in Debian. I
don't know exactly what he meant. What do you suggest in the meantime?
> * You indicated "Multi-Arch: foreign" in debian/control file. However
> according to https://wiki.debian.org/MultiArch/Hints#ma-foreign , M-A:
> foreign only applies to Architecture: all packages. Your package is not of
> Architecture: all.
That's not what I understood from that paragraph. The rest of the paragraph
suggests that foreign can also be for Architecture: any. Many packages have
such a setup.
Just an example: https://sources.debian.org/src/zip/3.0-12/debian/control/
Manpage of deb-control states
foreign
This package is not co-installable with itself, but
should be allowed to satisfy a non-arch-qualified
dependency of a package of a different arch from
itself (if a dependency has an explicit arch-
qualifier then the value foreign is ignored).
I'm not sure to totally understand what is written here, but I understant that
with "foreign" we can't install freefilesync:amd64 & freefilesync:i386 at the
same time. But we can have a setup where we could have freefilesync:i386
installed on an amd64 system (with an additional arch of i386) - if it were a
dependency of a i386 package (??) -.
Is this correct?
[1] https://gitlab.com/bgstack15/stackrpms/-/tree/master/freefilesync
[2] https://launchpad.net/~xtradeb/+archive/ubuntu/apps/+packages?
field.name_filter=sync&field.status_filter=published&field.series_filter=
[3] https://github.com/hkneptune/FreeFileSync
Rgds
Fab
Reply to: