[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: