On Tue, 06 Aug 2024 at 21:11:53 +0700, Dima Kogan wrote:
> Thanks for the detailed reply. The current expansion
> 
>   Depends: python3 (<< 3.13), python3 (>= 3.12~), python3:any
> 
> has dependencies both with and without :any. Is THAT right?

Sort of. Let me put it this way: I don't think it's wrong.

A dependency on python3:any is *mostly* redundant with a dependency
on python3 (which is "stronger": if you have python3, implicitly of
the same architecture as the package that has the dependency, then you
certainly have python3:any), so you might expect those dependencies to
be simplified down to

    Depends: python3 (<<...), python3 (>=...),

the same way that if you have

    Depends: foo, foo (>= 1), foo (>= 2)

it gets simplified down to just foo (>= 2).

But python3:any is not *technically* redundant with python3, because
a dependency on python3 could hypothetically be satisfied by a python3
package that was Multi-Arch: no|same|foreign, whereas a dependency on
python3:any can only be satisfied by a python3 package that is
Multi-Arch: allowed.

In fact python3 *is* Multi-Arch: allowed, but there was a time when it
wasn't, and dpkg can't know that it always will be in the future.
So removing python3:any from the Depends would technically change its
meaning, with the result that dpkg doesn't optimize it away.

    smcv

Reply via email to