Bug#1041162: bogus test triggers with unused compilers
Hi, On 17-07-2023 09:26, Paul Gevers wrote: apt-cache showsrc gcc-12 | awk '/^Package-List:/ { show=1; next } (/^ / && show==1) { print $1; next } { show=0 }' |sort -u | tr '\n' ' ' This comes from lib/adt_testbed.py (around line 1305). I had a tiny discussion with julian on IRC, he suggests something else, which I agree sounds a lot better. Documenting here so it doesn't get lost. Paul juliank: I'm quickly looking at #1041162; if I want to ingnore Extra-Source-Only entries, is there anything I can do when calling apt-cache or do I need to do all processing myself? need to process that yoursef ack you recommend me to replace the call to apt-cache with a perl script or process the output of apt-cache? I recall apt and "Debian" has perl code that I could leverage in apt >= 2.0 you could just use src: pins directly but I think there's places that still need 1.x support Certainly you'd want to process the output of apt-cache, accessing the files directly via apt-helper cat-file makes less sense apt's src: pinning queries the Source field of the binaries rather than going the other way around makes no sense to query Sources files imo that can always be wrong elbrus: so might as well use apt-cache dumpavail | awk -v needle=apt '/^Package:/ {src=pkg=$2; next} /^Source:/ {src=$2; next} /^$/ { if (src==needle) print pkg; pkg=src=""; next}' This implements the Source based lookup with fallback to binary name (as by default, no Source field means binary package has same name as Source) elbrus: This one searches for src:apt fwiw elbrus: The needle variable controls the source package we care about elbrus: This also means you don't need deb-src entries to use src: pinning OpenPGP_signature Description: OpenPGP digital signature
Bug#1041162: bogus test triggers with unused compilers
Control: reassign -1 autopkgtest Control: affects -1 src:dkms Hi, On Sun, 16 Jul 2023 01:15:04 +0200 Andreas Beckmann wrote: That's an autopkgtest pinning problem: autopkgtest uses this command to build the list of binary packages to pin for these flags: --add-apt-release=unstable --pin-packages=unstable=src:gcc-12 apt-cache showsrc gcc-12 | awk '/^Package-List:/ { show=1; next } (/^ / && show==1) { print $1; next } { show=0 }' |sort -u | tr '\n' ' ' Unfortunately that includes obsolete information from Extra-Source-Only packges, e.g. [...] So it pins libasan8 to sid because it believes that is built from src:gcc-12, but that is now built from src:gcc-13 and all binary packages built by src:gcc-13 that were never built by src:gcc-12 are pinned to testing ... and that makes some packages uninstallable ... Nice debugging. Let's reassign to autopkgtest. Paul OpenPGP_signature Description: OpenPGP digital signature
Bug#1041162: bogus test triggers with unused compilers
On 15/07/2023 12.11, Matthias Klose wrote: Package: src:dkms Version: 3.0.11-3 seen with https://ci.debian.net/data/autopkgtest/testing/amd64/d/dkms/35776414/log.gz That's an autopkgtest pinning problem: autopkgtest uses this command to build the list of binary packages to pin for these flags: --add-apt-release=unstable --pin-packages=unstable=src:gcc-12 apt-cache showsrc gcc-12 | awk '/^Package-List:/ { show=1; next } (/^ / && show==1) { print $1; next } { show=0 }' |sort -u | tr '\n' ' ' Unfortunately that includes obsolete information from Extra-Source-Only packges, e.g. Package: gcc-12 Binary: gcc-12-base, libgcc-s1, libgcc-s2, libgcc-s4, libgcc-12-dev, lib64gcc-s1, lib64gcc-12-dev, lib32gcc-s1, lib32gcc-12-dev, libn32gcc-s1, libn32gcc-12-dev, libx32gcc-s1, libx32gcc-12-dev, gcc-12, gcc-12-multilib, gcc-12-test-results, gcc-12-plugin-dev,, libx32objc4, gfortran-12, gfortran-12-multilib, libgfortran-12-dev, lib64gfortran-12-dev, lib32gfortran-12-dev, libn32gfortran-12-dev, libx32gfortran-12-dev, libgfortran5, lib64gfortran5, lib32gfortran5, libn32gfortran5, libx32gfortran5, gccgo-12, gccgo-12, gm2-12-doc, gcc-12-offload-nvptx, libgomp-plugin-nvptx1, gcc-12-offload-amdgcn, libgomp-plugin-amdgcn1, gcc-12-source Version: 12.2.0-14 ... Homepage: http://gcc.gnu.org/ Package-List: ... libasan8 deb libs optional arch=any ... Extra-Source-Only: yes So it pins libasan8 to sid because it believes that is built from src:gcc-12, but that is now built from src:gcc-13 and all binary packages built by src:gcc-13 that were never built by src:gcc-12 are pinned to testing ... and that makes some packages uninstallable ... Andreas
Bug#1041162: bogus test triggers with unused compilers
Package: src:dkms Version: 3.0.11-3 Severity: serious Tags: sid trixie seen with https://ci.debian.net/data/autopkgtest/testing/amd64/d/dkms/35776414/log.gz triggered by gcc-11, gcc-12, gcc-9 dkms's dependencies are a bit bogus, make | build-essential can be reduced to just make, because build-essential depends on it. gcc | c-compiler probably leads to the excessive testing, please consider dropping the alternative, or if you want to really test with a specific compiler, use the package that triggered the test. But having these tests fail on a regular basis is just a burden. [...] 343s autoinstall for dkms modules has been disabled. 343s I: Checking for missing dkms dependency by trying to deinstall dkms 343s dpkg: dependency problems prevent removal of dkms: 343s dkms-test-dkms depends on dkms (>= 2.1.0.0). 343s 343s dpkg: error processing package dkms (--remove): 343s dependency problems - not removing 343s Errors were encountered while processing: 343s dkms 344s I: No Linux header packages are installed. 344s I: Installing all available ones from src:linux 6.3.7-1: 344s I: install linux-headers-6.3.0-1-amd64 344s I: install linux-headers-6.3.0-1-cloud-amd64 344s I: install linux-headers-6.3.0-1-rt-amd64 344s I: skiplinux-headers-amd64 344s I: skiplinux-headers-cloud-amd64 345s I: skiplinux-headers-rt-amd64 345s I: skiplinux-headers-6.3.0-2-amd64 345s I: skiplinux-headers-6.3.0-2-cloud-amd64 345s I: skiplinux-headers-6.3.0-2-rt-amd64 345s Reading package lists... 345s Building dependency tree... 345s Reading state information... 345s Some packages could not be installed. This may mean that you have 345s requested an impossible situation or if you are using the unstable 345s distribution that some required packages have not yet been created 345s or been moved out of Incoming. 345s The following information may help to resolve the situation: 345s 345s The following packages have unmet dependencies: 345s libatomic1 : Depends: gcc-13-base (= 13.1.0-8) but 13.1.0-6 is to be installed 345s libcc1-0 : Depends: gcc-13-base (= 13.1.0-8) but 13.1.0-6 is to be installed 345s libgomp1 : Depends: gcc-13-base (= 13.1.0-8) but 13.1.0-6 is to be installed 345s libitm1 : Depends: gcc-13-base (= 13.1.0-8) but 13.1.0-6 is to be installed 345s liblsan0 : Depends: gcc-13-base (= 13.1.0-8) but 13.1.0-6 is to be installed 345s libquadmath0 : Depends: gcc-13-base (= 13.1.0-8) but 13.1.0-6 is to be installed 345s libubsan1 : Depends: gcc-13-base (= 13.1.0-8) but 13.1.0-6 is to be installed 345s E: Unable to correct problems, you have held broken packages. 345s E: Linux headers failed to install.