Package: dpkg Version: 1.18.9 Severity: wishlist Hi,
dpkg currently supports crossgrades if a package is installed in one instance via simply unpacking the package (of the other arch) just like a regular upgrade. What currently doesn't work is if the package is installed in multiple instances (aka: a Multi-Arch: same package) and a (non-M-A-same) new version of said package is unpacked, even if the instances are selected for deinstallation. A constructed example follows, but in the real world that would e.g. be a package which has architecture-dependent contents in v1 and is hence arch:any and M-A:same, but gets architecture-independent in v2 and becomes arch:all (and probably M-A:foreign) as a result. Package: crosser Architecture: any Version: 1 Multi-Arch: same Package: crosser Architecture: all Version: 2 If I install just crosser:amd64=1 and upgrade to crosser:all=2 the 'crossgrade' works as expected. But if I install crosser:amd64=1 and crosser:i386=1: $ dpkg -i incoming/crosser_1_*.deb $ echo 'crosser:i386 deinstall crosser:amd64 deinstall' | dpkg --set-selections $ dpkg -B -i incoming/crosser_2_all.deb dpkg: error processing archive incoming/crosser_2_all.deb (--install): crosser:all 2 (Multi-Arch: no) is not co-installable with crosser which has multiple installed instances Errors were encountered while processing: incoming/crosser_2_all.deb I would have expected dpkg to figure out on its own that it should remove instances until just one remains and crossgrade that one. Or did I miss something? Not sure about severity as I predict this to be a relatively esoteric thing; the error message is pretty clear & a workaround by hand is easy enough and with apt/current you can't hit it (and for apt/future I have a simple enough detection to not worry for the moment), so I aim low and treat it as a feature request rather than a bug. Not sure how non-apt-based frontends like dselect behave through, so for them that might be one⦠Best regards David Kalnischkies
signature.asc
Description: PGP signature

