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

Bug#1029044: gcc-12-cross-mipsen: source and binary version go out of sync



Control: tags -1 ftbfs
Control: clone -1 -2 -3 -4 -5 -6 -7 -8 -9 -10
Control: reassign -2 src:gcc-10-cross
Control: retitle -2 gcc-10-cross: source and binary version go out of sync
Control: reassign -3 src:gcc-10-cross-ports
Control: retitle -3 gcc-10-cross-ports: source and binary version go out of sync
Control: reassign -4 src:gcc-11-cross
Control: retitle -4 gcc-11-cross: source and binary version go out of sync
Control: reassign -5 src:gcc-11-cross-ports
Control: retitle -5 gcc-11-cross-ports: source and binary version go out of sync
Control: reassign -6 src:gcc-11-cross-mipsen
Control: retitle -6 gcc-11-cross-mipsen: source and binary version go out of sync
Control: block -6 by -4
Control: reassign -7 src:gcc-12-cross
Control: retitle -7 gcc-12-cross: source and binary version go out of sync
Control: block -1 by -7
Control: reassign -8 src:gcc-12-cross-ports
Control: retitle -8 gcc-12-cross-ports: source and binary version go out of sync
Control: reassign -9 src:gcc-13-cross
Control: retitle -9 gcc-13-cross: source and binary version go out of sync
Control: reassign -10 src:gcc-13-cross-ports
Control: retitle -10 gcc-13-cross-ports: source and binary version go out of sync

On Mon, Jan 16, 2023 at 09:21:52PM +0100, Paul Gevers wrote:
> Source: gcc-12-cross-mipsen
> Version: 1+c2
> Severity: serious
> 
> Dear maintainer,
> 
> The current version in unstable is stuck, because the mips64el build
> is kept in Uploaded state. Asking around on #d-buildd, I got the
> following discussion:
> 
> [20:09:34] <elbrus> mips64el 3days in uploaded state feels like an issue, right? https://buildd.debian.org/status/package.php?p=gcc-12-cross-mipsen
> [20:18:32] <adsb> probably means dak rejected it
> [20:18:45] <adsb> Your upload included the binary package cpp-12-mips-linux-gnu, version 12.2.0-13cross1, for mips64el,
> [20:18:48] <adsb> however unstable already has version 12.2.0-14cross2.
> [20:19:09] <adsb> coccia:/srv/ftp-master.debian.org/queue/reject/gcc-12-cross-mipsen_3+c1_mips64el-buildd.changes.reason
> [20:29:57] <adsb> the higher version is
> [20:29:57] <adsb> Source: gcc-12-cross-mipsen (2+c1)
> [20:30:23] <adsb> so the generated version numbers are broken
> [20:32:07] <adsb> not for the first time afair
> [[21:04:30] <elbrus> adsb: thanks for looking; but the source is 3+c1, no? or did the older one generate a newer binary?
> 
> You may want to check your logic.

The packaging is copied from gcc-12-cross,
problems have to be fixed there first,
and also in the other gcc-*-cross* packages.

There are at least 3 problems:

1. The way debian/new_cross_version.sh uses "apt-cache policy" to create 
a version number makes the package not reproducible even if the same 
versions of the build dependencies are installed, and it also causes 
problems like this one here.

Other packages using {binutils,gcc-*,gdb}-source seem to get it right, e.g.:

Package: gcc-xtensa-lx106
Source: gcc-xtensa-lx106 (8)
Version: 10.2.1-6+8+b1
Built-Using: gcc-10 (= 10.2.1-6)

There is no reason why the gcc-*-cross* packages could not use similar 
versioning.


2. binary-any packages built from the same gcc-*-cross* packages 
currently have >= dependencies on binary-all packages built from
the same sources. Since the version number of the gcc-*-cross* packages
packages contains the version of the gcc-*-source package, this does
not only prevent binNMUs (which itself is already an RC bug) but also
similarly causes problems like #1028441 when packages are built later
on an architecture (in this case due to #1026129, which was caused by
#1026245 in src:gcc-12).

The correct solution is to make such binary-all packages binary-any,
which allows = dependencies and removes all such race conditions and
non-binNMUableness.


3. Built-Using in the binary-all packages is something that should IMHO 
become a non-overridable automatic REJECT in dak.

The gcc-*-cross* packages seem to avoid the built-using-field-on-arch-all-package
lintian tag by not declaring the Built-Using in debian/control, but 
adding it during the build.[1]

Example package: lib32gcc-s1-s390x-cross

I've just filed #1029633 asking for a lintian tag for that.


> Paul

cu
Adrian

[1] https://sources.debian.org/src/gcc-12/12.2.0-14/debian/rules.conf/#L1286


Reply to: