Package: dpkg
Version: 1.17.6
Severity: normal
User: helm...@debian.org
Usertags: rebootstrap

Dear maintainer,

Please imagine the following obscure scenario. (Yes, I actually managed
to reproduce it in a real world example.)

Package b:amd64 depends on a:amd64 M-A:same. Both are installed, all is
fine. Now for some reason we obtain a:i386 of the same version as a but
being M-A:none. This is a bug in package a of course. However, dpkg does
not fail loudly enough in my opinion. It just replaces a:amd64 with
a:i386 and pretends that everything is fine. Worse, dpkg --audit will
not complain.

Please find a script for reproducing the issue (in e.g. pbuilder) and a
log attached.

Helmut

Attachment: dpkg_bug.sh
Description: Bourne shell script

W: /root/.pbuilderrc does not exist
I: Building the build Environment
I: extracting base tarball [/var/cache/pbuilder/base.tgz]
I: creating local configuration
I: copying local configuration
I: mounting /proc filesystem
I: mounting /run/shm filesystem
I: mounting /dev/pts filesystem
I: Mounting /var/cache/pbuilder/bindmount
I: policy-rc.d already exists
W: no hooks of type F found -- ignoring
arch1=`dpkg --print-architecture`
arch2=i386

dpkg --add-architecture $arch2

mkdir -p /tmp/buildd
cd /tmp/buildd

mkdir -p a1/DEBIAN
cat >a1/DEBIAN/control <<EOF
Package: a
Version: 1
Architecture: $arch1
Multi-Arch: same
Maintainer: <root@localhost>
Description: a for $arch1 M-A:same
EOF
dpkg-deb -b a1
dpkg-deb: building package `a' in `a1.deb'.
mkdir -p a2/DEBIAN
cat >a2/DEBIAN/control <<EOF
Package: a
Version: 1
Architecture: $arch2
Maintainer: <root@localhost>
Description: a for $arch2 M-A:none
EOF
dpkg-deb -b a2
dpkg-deb: building package `a' in `a2.deb'.
mkdir -p b/DEBIAN
cat >b/DEBIAN/control <<EOF
Package: b
Version: 1
Depends: a
Architecture: $arch1
Maintainer: <root@localhost>
Description: b for $arch1 depending on a
EOF
dpkg-deb -b b
dpkg-deb: building package `b' in `b.deb'.

dpkg -i a1.deb b.deb
Selecting previously unselected package a:amd64.
(Reading database ... 11340 files and directories currently installed.)
Preparing to unpack a1.deb ...
Unpacking a:amd64 (1) ...
Selecting previously unselected package b.
Preparing to unpack b.deb ...
Unpacking b (1) ...
Setting up a:amd64 (1) ...
Setting up b (1) ...

dpkg -i a2.deb
(Reading database ... 11340 files and directories currently installed.)
Preparing to unpack a2.deb ...
Unpacking a (1) over (1) ...
Setting up a (1) ...

dpkg --audit

# install the very same b again
dpkg -i b.deb
(Reading database ... 11340 files and directories currently installed.)
Preparing to unpack b.deb ...
Unpacking b (1) over (1) ...
dpkg: dependency problems prevent configuration of b:
 b depends on a.

dpkg: error processing package b (--install):
 dependency problems - leaving unconfigured
Errors were encountered while processing:
 b
I: unmounting /var/cache/pbuilder/bindmount filesystem
I: unmounting dev/pts filesystem
I: unmounting run/shm filesystem
I: unmounting proc filesystem
I: cleaning the build env 
I: removing directory /var/cache/pbuilder/build//32477 and its subdirectories

Reply via email to