The following commit has been merged in the master branch:
commit 8467206b518be8d0ac13af2a75e1e42ca6f3da8c
Author: Colin Watson <[email protected]>
Date:   Wed Apr 14 11:58:23 2010 +0200

    dpkg: fix deferred rename/fsync processing
    
    It was scanning the old list of files so it would never install
    new files.

diff --git a/src/archives.c b/src/archives.c
index 0608137..92f9cd3 100644
--- a/src/archives.c
+++ b/src/archives.c
@@ -802,13 +802,13 @@ int tarobject(struct TarInfo *ti) {
 }
 
 void
-tar_deferred_extract(struct pkginfo *pkg)
+tar_deferred_extract(struct fileinlist *files, struct pkginfo *pkg)
 {
   struct fileinlist *cfile;
   struct filenamenode *usenode;
   const char *usename;
 
-  for (cfile = pkg->clientdata->files; cfile; cfile = cfile->next) {
+  for (cfile = files; cfile; cfile = cfile->next) {
     debug(dbg_eachfile, "deferred extract of '%.255s'", cfile->namenode->name);
 
     if (!(cfile->namenode->flags & fnnf_deferred_rename))
diff --git a/src/archives.h b/src/archives.h
index 2390bb8..8370e80 100644
--- a/src/archives.h
+++ b/src/archives.h
@@ -66,7 +66,7 @@ int unlinkorrmdir(const char *filename);
 
 int tarobject(struct TarInfo *ti);
 int tarfileread(void *ud, char *buf, int len);
-void tar_deferred_extract(struct pkginfo *pkg);
+void tar_deferred_extract(struct fileinlist *files, struct pkginfo *pkg);
 
 bool filesavespackage(struct fileinlist *, struct pkginfo *,
                       struct pkginfo *pkgbeinginstalled);
diff --git a/src/processarc.c b/src/processarc.c
index f3dbb90..dbb9e71 100644
--- a/src/processarc.c
+++ b/src/processarc.c
@@ -646,7 +646,7 @@ void process_archive(const char *filename) {
   p1[0] = -1;
   subproc_wait_check(c1, BACKEND " --fsys-tarfile", PROCPIPE);
 
-  tar_deferred_extract(pkg);
+  tar_deferred_extract(newfileslist, pkg);
 
   if (oldversionstatus == stat_halfinstalled || oldversionstatus == 
stat_unpacked) {
     /* Packages that were in `installed' and `postinstfailed' have been reduced

-- 
dpkg's main repository


-- 
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]

Reply via email to