[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Architecture: all binNMUs (was: deduplicating jquery/)



Le 01/12/2020 à 12:19, Jonas Smedegaard a écrit :
> Quoting Simon McVittie (2020-12-01 11:56:28)
>> On Tue, 01 Dec 2020 at 11:05:54 +0100, Jonas Smedegaard wrote:
>>> Can someone remind me: Why is it that we cannot do arch-independent 
>>> auto-building?
>>
>> We can and do autobuild arch-independent packages (since 2015: on the 
>> timescale of multi-release transitions, this is relatively recent).
> 
> Yes - thanks for catching and tightening my far too sloppy framing of 
> the issue at hand.
> 
> 
>> However, we cannot currently do arch-independent *binNMUs*, because a
>> large number of packages have patterns like this:
>>
>>     Source: foo
>>
>>     Package: foo-bin
>>     Architecture: any
>>     Depends: foo-data (= ${source:Version})
>>
>>     Package: foo-data
>>     Architecture: all
>>
>> which is based on the assumption that foo-data cannot be binNMU'd.
>>
>> For example, consider foo_1.2-3, and suppose it has been binNMU'd 5
>> times on amd64, so we have foo-bin_1.2-3+b5_amd64.deb and
>> foo-data_1.2-3_all.deb. foo-bin Depends: foo-data (= 1.2-3) and the
>> dependency is satisfied.
>>
>> Now suppose we also binNMU foo-data. We get foo-data_1.2-3+b1_all.deb,
>> which no longer satisfies foo-data (= 1.2-3), so foo-bin is uninstallable.
>>
>> https://lintian.debian.org/tags/maybe-not-arch-all-binnmuable.html lists
>> 622 affected packages. I don't know whether there are other problematic
>> patterns that Lintian does not detect.
> 
> Thanks for the excellent explanation.
> 
> (and sorry for my failing memory: I am sure someone explained it to me 
> at least once before, related to debian-installer image building)
> 
> 
>> Possible solutions:
>>
>> - Change at least 622 packages so they have something more like
>>   Depends: foo-data (>= ${source:Version}), foo-data (<< ${source:Version}+c)
>>   (also hope that all of their maintainers can get those runes right, taking
>>   into account what the binNMU suffix is, and hope that it won't break
>>   derivatives like Ubuntu that use a source-upload suffix like ubuntu1 that
>>   compares less than +b1)
>>
>> - Change at least 622 packages so that when foo-data is binNMU'd, it
>>   automatically gets Provides: foo-data (= 1.2-3)
>>
>> - Change some more central component so that the dependencies are edited
>>   or the Provides is added globally
>>
>> - Something clever that I haven't thought of
> 
>   - Introduce a control field "Build-Dependencies-Require-Rebuild: no"
>     (similar to "Rules-Requires-Root: no")

+1 !

Thanks!


Reply to: