Hi, Quoting Simon McVittie (2019-08-04 15:38:57) > I tried to solve <https://salsa.debian.org/salsa-ci-team/pipeline/issues/58> > by configuring piuparts to be willing to take the versioned dependencies > of the package under test from experimental, by configuring apt in the > piuparts chroot to use apt-cudf and aspcud, but I was not successful. > > Steps to reproduce outside piuparts (I used a sid VM): > > * Have sid and experimental apt sources > * sudo apt install apt-cudf aspcud > * Have a .deb whose dependencies cannot be satisfied in sid, for example > gnome-shell 3.32.2-2 as of today: > apt-get -t experimental download gnome-shell > * Configure aspcud resolver with the same setup as official Debian > experimental buildds: > (<https://salsa.debian.org/dsa-team/mirror/dsa-puppet/blob/master/modules/buildd/files/sbuild.conf>) > > sudo tee /etc/apt/apt.conf.d/aspcud <<EOF > APT::Solver "aspcud"; > APT::Solver::Strict-Pinning "no"; > APT::Solver::aspcud::Preferences "-removed,-changed,-new,-count(solution,APT-Release:=/experimental/)"; > EOF > > * sudo apt install ./gnome-shell_3.32.2-2_amd64.deb > > Expected result: > > apt-cudf selects gnome-shell's dependency libmutter-4-0 (and probably > others) from experimental > > Actual result: > > > Fatal error: exception Common.Format822.ParseError(_, "Provides", "Field Provides has a wrong value (character 0-1: character 0-1: Unexpected token : '.'.. (vpkglist)): './gnome-shell_3.32.2-2_amd64.deb (= 3.32.2-2), polkit-1-auth-agent, notification-daemon'") > > I'm not sure whether this is an apt bug (giving wrong data to apt-cudf) > or an apt-cudf bug (not accepting valid data from apt). Any ideas? here are some further observations. It is not necessary to pick a package whose dependencies cannot be satisfied in sid. This problem also happens with packages that apt can resolve just fine. To see what the problem is, just switch the solver from "aspcud" to "dump" like so: APT_EDSP_DUMP_FILENAME=/tmp/out.edsp apt-get --simulate install --solver dump -o APT::Solver::Strict-Pinning=false ./gnome-shell_3.32.2-2_amd64.deb Using apt's -o options it is also not necessary to write to /etc/apt/apt.conf.d/aspcud. Using the "dump" solver is helpful because it allows us to look into the data that apt-cudf receives from apt. In /tmp/out.edsp we then see this: Package: gnome-shell Architecture: amd64 Version: 3.32.2-2 APT-ID: 781 Source: gnome-shell Source-Version: 3.32.2-2 Priority: optional Section: gnome APT-Release: a=local-deb o=Debian,a=experimental,n=experimental,l=Debian,c=main,b=amd64 APT-Pin: 500 APT-Candidate: yes Depends: [...] [...dependencies snipped for brevity...] Provides: ./gnome-shell_3.32.2-2_amd64.deb (= 3.32.2-2), polkit-1-auth-agent, notification-daemon Have a look at the last line. This is where apt-cudf chokes. Because what apt chose as a package name is not a legal package name according to Debian policy so apt-cudf throws the fatal error you see above. I suggest that apt fixes their EDSP output. Then this will work again. Thanks! cheers, josch
Attachment:
signature.asc
Description: signature