Bug#1016875: RFS: freefilesync/11.23-1 [ITP] -- cross-platform file sync utility, gpl release

2022-08-14 Thread David Kalnischkies
On Thu, Aug 11, 2022 at 11:18:36PM +0200, Fab Stz wrote:
> I was also wondering if M-A:foreign was actually needed in that case.
> 
> So the only alternative I have is either to remove the line, or set it to no. 
> Is there any best/prefered practice?

Just remove the line, I would say.

It is equivalent to setting M-A:no explicitly from a technical
standpoint, but the later implies for other contributors that there is
a hard/complicated reason that this package can not be marked with
another M-A value currently.


Best regards

David Kalnischkies


signature.asc
Description: PGP signature


Bug#1016875: RFS: freefilesync/11.23-1 [ITP] -- cross-platform file sync utility, gpl release

2022-08-11 Thread David Kalnischkies
Hi,

On Thu, Aug 11, 2022 at 03:27:14PM -0400, Boyuan Yang wrote:
> * 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.

To clarify, the mentioned wiki explains how the Multi-Arch hinter comes
up with its suggestions. In this specific section how a package which
ticks all the boxes can surely be marked M-A:foreign. Packages who do
not tick (all) the boxes could be valid candidates for M-A:foreign as
well, its just that an automated process like the hinter can't decide
that in the general case.¹

I suppose this package could be marked M-A:foreign as it likely has no
architecture-specific interfaces but that needs to be checked to be
sure. I also suppose that it is not very useful to mark it as such in
any case as it looks like a GUI and those tend to be leaf packages, but
M-A only comes into play if other packages (build-)depend on your
package.

So I would recommend to refrain from setting M-A:foreign for this
package until you are either REALLY SURE its the correct thing to do
OR some other Debian contributor tells you they need you to set it.


Best regards

David Kalnischkies


¹ sed for example is M-A:foreign even though it is arch:any as the
output it produces does not change regardless of you running it on amd64
or armhf. A compiler like gcc on the other hand produces output
(= machine code) specific to the architecture it runs on and hence can
not be marked M-A:foreign (And than an interpreter like python3 comes
along and it becomes complicated. Also, this is a gross simplification).


signature.asc
Description: PGP signature


Bug#1016875: RFS: freefilesync/11.23-1 [ITP] -- cross-platform file sync utility, gpl release

2022-08-11 Thread Fab Stz
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  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 

Bug#1016875: RFS: freefilesync/11.23-1 [ITP] -- cross-platform file sync utility, gpl release

2022-08-11 Thread Boyuan Yang
X-Debbugs-CC: fabstz...@yahoo.fr
Control: tags -1 +moreinfo

Hi,

On Mon, 08 Aug 2022 19:30:32 +0200 Fab Stz  wrote:
> Package: sponsorship-requests
> Severity: wishlist
> 
> Dear mentors,
> 
> I am looking for a sponsor for my package "freefilesync":
> 
>  * Package name    : freefilesync
>    Version : 11.23-1
>    Upstream Author : Zenju 
>  * URL : https://freefilesync.org/
>  * License : GPL-3.0
>  * Vcs : https://salsa.debian.org/bastif/freefilesync
>    Section : utils
> 
> The source builds the following binary packages:
> 
>   freefilesync - cross-platform file sync utility, gpl release
> 
> To access further information about this package, please visit the
following 
> URL:
> 
>   https://mentors.debian.net/package/freefilesync/
> 
> Alternatively, you can download the package with 'dget' using this
command:
> 
>   dget -x https://mentors.debian.net/debian/pool/main/f/freefilesync/
> freefilesync_11.23-1.dsc

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?

* 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?

* 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.

* You wrote Maintainer: B. Stack  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.

* 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.

Thanks,
Boyuan Yang


signature.asc
Description: This is a digitally signed message part