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

Reply via email to