[pkg-uWSGI-devel] Please give back some uwsgi-plugin-* packages
Philipp Kern
pkern at debian.org
Tue Feb 4 10:43:09 GMT 2025
On 2025-02-04 08:22, Emilio Pozuelo Monfort wrote:
> On 04/02/2025 01:53, Adrian Bunk wrote:
>> On Mon, Feb 03, 2025 at 11:11:44PM +0100, Philipp Kern wrote:
>>> On 2/3/25 3:03 PM, Alexandre Rossi wrote:
>>> ...
>>>> For similar changes in which the binary packages names were also
>>>> changed,
>>>> there is no problem, they were correctly built
>>>> (uwsgi-plugin-{java,ruby}
>>>> and uwsgi-plugin-pypy is completely new).
>>>
>>> Yup, and this can never work. You need to build binary packages with
>>> a
>>> version higher than what's in the archive. The archive would
>>> otherwise
>>> reject it if it were to be built.
>>>
>>>> $ rmadison -s unstable uwsgi-plugin-gccgo
>>>> uwsgi-plugin-gccgo | 0.0.2 | unstable | source
>>>> uwsgi-plugin-gccgo | 2.0.28-1+b2 | unstable | armel, armhf,
>>>> i386, riscv64, s390x
>>>> uwsgi-plugin-gccgo | 2.0.28+8+0.0.2 | unstable | amd64, arm64,
>>>> mips64el, ppc64el
>>>
>>> So you need to either produce a binary version that's higher than
>>> 2.0.28[...],
>>> ...
>>
>> That's what the package already does, and it is working.
>>
>> The root problem is that it is fundamentally impossible to reliably
>> guess the versions of the binary packages built by a source package,
>> since these can be set to any value during the build and many packages
>> in the archive include the versions of build dependencies into the
>> versions of their binary packages.
>>
>> wanna-build might not have a better option here than assuming
>> binary version = source version, but that's not 100% reliable.
>
> Why doesn't it just build the package? If it later then gets rejected,
> then so be it. It wouldn't be much different than wanna-build
> "rejecting" it (except for saving a few build cycles, but then a
> situation like this has already wasted a lot of developer cycles). I'm
> sure there's a good reason for the check, I suppose I'm just missing
> it...
Because wanna-build has no state. It diffs to see if the source package
has been built. Does dpkg write out a "Source: package (=
${Source-Version})" if the version is different? I faintly recall such a
thing. In that case we'd technically have enough information to at least
associate the built binary back to the source package version to mark it
as "Installed". But in general it just looks what's missing in a suite
instead of creating a build task when it first sees a source package
version. A lot of this is due to the fact that the archive and
autobuilding are distinct systems. Otherwise an upload would just cause
a build entry and we'd be done with it.
Also as I remember it it's not guaranteed that there is only one source
package in a suite for a given name. So we'd need to always insert the
highest into the DB and check if any of the binary packages it builds is
already there.
Kind regards
Philipp Kern
More information about the pkg-uWSGI-devel
mailing list