piuparts: doesn't install dependencies from experimental or -backports
If the package under test is built for experimental and has dependencies that cannot be satisfied in unstable, or if it is build for $foo-backports and has dependencies that cannot be satisfied in $foo (where $foo is buster, stretch etc.), then piuparts fails. This is because experimental and -backports are pinned to a lower priority than their base suites, and apt does not consider installing a lower-priority package if the candidate (highest priority) version is not enough.
aptitude does consider installing lower-priority packages, which is why it's used for the build-dependencies in the build
stage (and for official -backports buildds), but piuparts doesn't have an option to use aptitude for package installation.
Similarly, apt-cudf with the aspcud solver (as used for official experimental buildds) would consider lower-priority packages, but piuparts still fails when that's configured, because piuparts uses apt install foo_1.0_amd64.deb
and that confuses apt-cudf/aspcud (I'm not sure whose bug that is).
Solving this will probably require enhancements in apt and/or piuparts.
A workaround is to skip the piuparts stage whenever one of these overlay suites is targeted:
piuparts:
# https://salsa.debian.org/salsa-ci-team/pipeline/issues/58
except:
variables:
- $RELEASE == "experimental"
- $RELEASE =~ /-backports$/
Original report:
I've configured xdg-desktop-portal-gtk with RELEASE: experimental
because it has (build-)dependencies that aren't in unstable yet. piuparts fails:
https://salsa.debian.org/debian/xdg-desktop-portal-gtk/-/jobs/202383
0m0.0s INFO: piuparts version 1.0.1 starting up.
0m0.0s INFO: Command line arguments: /usr/sbin/piuparts --scriptsdir /etc/piuparts/scripts --allow-database --warn-on-leftovers-after-purge --hard-link -e /tmp/debian-chroot /builds/debian/xdg-desktop-portal-gtk/debian/output/xdg-desktop-portal-gtk-dbgsym_1.4.0-2_amd64.deb
...
Get:1 http://cdn-fastly.deb.debian.org/debian sid InRelease [210 kB]
Hit:2 http://cdn-fastly.deb.debian.org/debian experimental InRelease
Get:3 http://cdn-fastly.deb.debian.org/debian sid/main amd64 Packages [8307 kB]
...
Get:1 file:/var/lib/local-apt-repository ./ InRelease
Ign:1 file:/var/lib/local-apt-repository ./ InRelease
Get:2 file:/var/lib/local-apt-repository ./ Release [1279 B]
Get:2 file:/var/lib/local-apt-repository ./ Release [1279 B]
Get:3 file:/var/lib/local-apt-repository ./ Release.gpg
Ign:3 file:/var/lib/local-apt-repository ./ Release.gpg
Get:4 file:/var/lib/local-apt-repository ./ Packages [2115 B]
Hit:5 http://cdn-fastly.deb.debian.org/debian sid InRelease
Hit:6 http://cdn-fastly.deb.debian.org/debian experimental InRelease
...
The following packages have unmet dependencies:
xdg-desktop-portal-gtk-dbgsym : Depends: xdg-desktop-portal-gtk (= 1.4.0-2) but it is not going to be installed
I suspect this may be because experimental is marked as NotAutomatic: yes
and not ButAutomaticUpgrades: yes
, resulting in default apt pin priority 1 (see apt_preferences(5)), so apt will not normally install packages from experimental unless explicitly told to do so.
Pinning experimental to priority 100 (like stretch-backports) in /tmp/debian-chroot
via something like
Package: *
Pin: release a=experimental
Pin-Priority: 100
might help?