Package: devscripts
Version: 2.18.10
Severity: normal
Prerequisite: have a source package like dbus, with a mixture of
Multi-Arch: 'same', 'foreign' and 'no' binaries, and a merged .changes
file containing source, amd64 and i386 builds (this is exactly what I
have when I'm ready to test dbus). Also suppose you have :amd64 and :i386
flavours of at least one Multi-Arch: same binary package from that source
already installed (in my case libdbus-1-3:i386 is depended on by wine).
There are some closely-related annoyances in debi and debc when dealing
with such packages.
1. debc
Steps to reproduce: debc dbus_*_multi.changes
Expected result: I would expect to see contents and metadata of every .deb
and .udeb, including i386, although possibly that's a wrong expectation
Actual result: I only see the _amd64 and _all packages listed by debc
2. debi
Steps to reproduce: sudo debi dbus_*_multi.changes
Expected results:
- Install "Multi-Arch: same" packages for every supported architecture
(in my case libdbus-1-3, libdbus-1-dev and libdbus-1-3-dbgsym for both
amd64 and i386)
- Install "Multi-Arch: foreign" and "Multi-Arch: no" packages if they
belong to the primary architecture or 'all'
(e.g. dbus:amd64 and dbus-1-doc:all are installed, but dbus:i386 is not)
Actual results:
- No :i386 packages are installed, and in particular not libdbus-1-3:i386
- libdbus-1-3:amd64 cannot be configured because it is out of sync with
its :i386 counterpart
- libdbus-1-dev:amd64 and libdbus-1-3-dbgsym:amd64 cannot be configured
because their dependency libdbus-1-3:amd64 is unconfigured
- The system is left in a broken transitional state and must be recovered
with dpkg -i
3. debi --upgrade
Steps to reproduce: sudo debi --upgrade dbus_*_multi.changes
Expected results:
- Install "Multi-Arch: same" packages for every supported architecture
(in my case libdbus-1-3, libdbus-1-dev and libdbus-1-3-dbgsym for both
amd64 and i386), but only if the corresponding package:arch pair is
already installed
- Install "Multi-Arch: foreign" and "Multi-Arch: no" packages if they
belong to the primary architecture or 'all', but only if they are
already installed for some architecture
(e.g. dbus:amd64 and dbus-1-doc:all are considered, but dbus:i386 is not)
Actual results:
- Same as without --upgrade, except that dpkg skips installation of
packages that weren't already installed
I have a patch that I think does the right thing, which I'll send as a
merge request when I've polished it.
smcv