tags 652063 + patch thanks On Wed, 14 Dec 2011, Martin Pitt wrote: > But I'm filing it here because > http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=632555#20 referred to > it and to have an early warning before that dpkg branch lands in > Debian. If you consider that inappropriate, then please just close the > bug and sorry for the unnecessary noise then. > > If you install the i386 and amd64 variant of a Multi-Arch: same > package which just has identical files on both architectures, dpkg > considers one architecture as completely replacing the other, marking > the package as uninstalled:
Yeah, that's not correct. The attached patch should fix this. It's untested though and it would be great if you could confirm that it works as expected. Guillem, feel free to close this bug as soon as you merged the fix in your pu/multiarch/master. I have pushed it in my pu/multiarch/full for now. Cheers, -- Raphaël Hertzog ◈ Debian Developer Pre-order a copy of the Debian Administrator's Handbook and help liberate it: http://debian-handbook.info/liberation/
commit 4f20e5b272ab91c5933ca651b2ab3fe4648b42b8 Author: Raphaël Hertzog <[email protected]> Date: Thu Dec 15 10:28:30 2011 +0100 dpkg: do not try to disappear other packages from the same set Packages within a set can rightfully share files and should not be disappeared in the case where they share all the files! Closes: #652063 Reported-by: Martin Pitt <[email protected]> diff --git a/src/processarc.c b/src/processarc.c index f783670..f9b99ca 100644 --- a/src/processarc.c +++ b/src/processarc.c @@ -1248,7 +1248,7 @@ void process_archive(const char *filename) { it = pkg_db_iter_new(); while ((otherpkg = pkg_db_iter_next_pkg(it)) != NULL) { ensure_package_clientdata(otherpkg); - if (otherpkg == pkg || + if (otherpkg->set == pkg->set || otherpkg->status == stat_notinstalled || otherpkg->status == stat_configfiles || otherpkg->clientdata->istobe == itb_remove ||

