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: