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]