On Mon, 31 Jan 2011, Guillem Jover wrote:
> The following commit has been merged in the master branch:
> commit 58e7276b69be105735eccb3c18c2b28d3a2ec2e5
[...]
> + * Always warn when parsing any package control data which does not have
> + an Architecture field.
This looks like wrong. There are several cases where we have status
information without the Architecture field.
After a run of dpkg --set-selections we can have many:
┏rivendell:~/deb/core/dpkg (master)
┗(720)$ echo "foo install" | sudo dpkg --set-selections
┏rivendell:~/deb/core/dpkg (master)
┗(722)$ LANG=C sudo dpkg -s foo
dpkg-query: warning: parsing file '/var/lib/dpkg/status' near line 5070 package 'foo':
missing architecture
Package: foo
Status: install ok not-installed
> - if (pkg->available.arch && *pkg->available.arch &&
> - strcmp(pkg->available.arch, "all") &&
> + if (strcmp(pkg->available.arch, "all") &&
> strcmp(pkg->available.arch, native_arch))
> forcibleerr(fc_architecture,
> _("package architecture (%s) does not match system (%s)"),
There is a regression here that was not documented in the commit log, hence I
assumed it was unintended and fixed it in a subsequent commit. Package without
an architecture field used to install fine, with this change they don't. I added
a test case as well.
Cheers,
--
Raphaël Hertzog ◈ Debian Developer
Follow my Debian News ▶ http://RaphaelHertzog.com (English)
▶ http://RaphaelHertzog.fr (Français)