[Pkg-rust-maintainers] Getting rid of the NEW step for binaries ?

Sylvestre Ledru sylvestre at debian.org
Wed Oct 23 09:45:44 BST 2019


Le 22/10/2019 à 21:22, Ansgar a écrit :
> Ximin Luo writes:
>> Ansgar:
>>> On Thu, 2019-10-17 at 18:57 +0200, Sylvestre Ledru wrote:
>>>> Le 17/10/2019 à 18:52, Ansgar a écrit :
>>>>> Sylvestre Ledru writes:
>>>>>> Moreover, the creation (or deletion) of new packages is automatically
>>>>>> managed by debcargo (our tooling).
>>>>> Why do you need to automatically create/remove binary packages?
>>>>
>>>> Because it is the way it is managed in Rust packages. This is done to
>>>> express what the package provides. For now, it has been working very well.
>>>
>>> That doesn't answer the question why this is the case.
>>>
>>
>> In Debian, the unit of dependency resolution is a binary package. What
>> I mean by this is that you can't say "package A sometimes depends on
>> B1 and sometimes depends on B2". OTOH in rust's cargo package manager,
>> this is possible via "crate features". Because this is possible and
>> frictionless, crate authors do this frequently. To make this work in
>> Debian in a large-scale way, our automated packaging tool converts
>> crate features into separate binary packages (and has some basic
>> heuristics on recombining these into a single binary package, when the
>> dependency sets are identical.)
>>
>> Note that it's not feasible (in a large-scale automated way) to bundle
>> all the dependencies into a single Debian binary package
>> "A-all-features depends on B1 and B2" because B1 and B2 may conflict
>> either on the Debian side or on the rust side.
> 
> Debian's repository format has costs for each package as we require
> *all* users to process the entire Packages file which is already quite
> large (42+ MB).  As long as we do so, we cannot add too much information
> to this index.
dkg opened this bug:
https://bugs.debian.org/942898
to discuss about it.

To give some numbers, we have only 30 packages with more than 1000 chars in the Provides field (25 are rust packages),
representing 172k (17k compressed).
It represents 0.3% of the current Packages size.

The Lintian check landed: triggers a warning when any field is above 5k.
https://salsa.debian.org/lintian/lintian/commit/dab49016e0caa5a28faa3d4ffa7d0b7862095586

Cheers,
Sylvestre



More information about the Pkg-rust-maintainers mailing list