On Thu, Sep 24, 2026 at 09:48:57PM +0530, Nilesh Patra wrote:
> On 24/09/26 8:55 pm, Alexandre Detiste wrote:
> > Package: lintian
> > Version: 2.141.0
> > Severity: important
> > 
> > Dear Lintian Maintainers,
> > 
> > To avoind needlessy pulling in python3-pip & python3-setuptools
> > in ever single flit run, the engine "python3-flit" has been spun-out.
> > 
> > Please rework lintian to check for "python3-flit | flit" instead of "flit".
> It currently checks for flit:any. I initially thought I could just add 
> python3-flit:any
> and that would just work but I saw python3-flit is not marked `M-A: foreign`.
> 
> I suspect depends on setuptools is the reason for that? In that case :any 
> should be simply
> skipped, right?

I am somewhat confused here. :any only ever makes sense if the target
package carries "Multi-Arch: allowed". Neither flit nor python3-flit
have that Multi-Arch value. So both python3-flit:any and flit:any would
be universally unsatisfiable.

flit is expressly meant for pure Python modules (those that don't ship C
sources). As such its behavior can largely be assumed
architecture-independent. Beyond this, python3-flit is a pure Python
module with no architecture-dependent dependencies. The flit package
contains the flit CLI and even if it uses architecture-dependent modules
(e.g. python3-charset-normalizer), its CLI interface also likely is
architecture-independent.

As such I think that both packages should be marked Multi-Arch: foreign.
(This is confirming what Alexandre replied, but also asking for the
other annotation.)

>From a multiarch pov, I concur with the package split #1148412. It is
what enables this marking. In the pre-split way, we could not sensibly
mark flit Multi-Arch: foreign, because we could not tell that e.g.
python3-requests was a CLI dependency rather than a library dependency.
After the split, we can tell and mark both.

I recognize that the original motivation for splitting was not
multiarch, but clarity and also concur with that aspect.

Helmut

Reply via email to