Your message had a Version: pseudo-header with an invalid package
version:
1.8.2,5.0.1-12+b1
please either use found or fixed to the control server with a correct
version, or reply to this report indicating the correct version so the
maintainer (or someone else) can correct it for you.
Subject: apt-cudf doesn't work with "apt install ./*.deb"
Date: Sun, 4 Aug 2019 14:38:57 +0100
Package: apt,apt-cudf
Version: 1.8.2,5.0.1-12+b1
Severity: normal
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?
Thanks,
smcv
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