The following commit has been merged in the master branch:
commit 0958a9f9b28fb818863092346bbecb584655d8aa
Author: Guillem Jover <guil...@debian.org>
Date:   Wed Apr 21 02:36:58 2010 +0200

    Fix installation of disappearing replaced packages in reverse order
    
    This happens when the we install first the replacing then the replaced
    package, for which the replaced package is supposed to get disappeared.
    And fixes it to disappear the correct package and not lose track of the
    ownership of the replaced files, by marking the replaced file as not
    being part of the unpacked archive.

diff --git a/debian/changelog b/debian/changelog
index 0ccfc8a..d505d1b 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -61,6 +61,10 @@ dpkg (1.15.6.2) UNRELEASED; urgency=low
   * Do not output the Package-Type field on udeb.
   * Fix versioned Replaces to not produce file overwrite errors on downgrades.
     Closes: #568566
+  * Fix installation of replaced and replacing packages in reverse order
+    (first the replacing then the replaced) for which the replaced package
+    is supposed to get disappeared, to disappear the correct package and not
+    lose track of the ownership of the replaced files.
 
   [ Updated dpkg translations ]
   * German (Sven Joachim).
diff --git a/src/archives.c b/src/archives.c
index 7ec708e..17fdf12 100644
--- a/src/archives.c
+++ b/src/archives.c
@@ -582,6 +582,7 @@ int tarobject(struct TarInfo *ti) {
          printf(_("Replaced by files in installed package %s ...\n"),
                 otherpkg->name);
           otherpkg->clientdata->replacingfilesandsaid= 2;
+          nifd->namenode->flags &= ~fnnf_new_inarchive;
          keepexisting = 1;
         } else {
           if (!statr && S_ISDIR(stab.st_mode)) {

-- 
dpkg's main repository


-- 
To UNSUBSCRIBE, email to debian-dpkg-cvs-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to