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