Bug#1041162: bogus test triggers with unused compilers

2023-07-17 Thread Paul Gevers

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

2023-07-17 Thread Paul Gevers

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

2023-07-15 Thread Andreas Beckmann

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

2023-07-15 Thread Matthias Klose

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.