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 ||

Reply via email to