diff options
author | jbj <devnull@localhost> | 2000-03-31 17:16:36 +0000 |
---|---|---|
committer | jbj <devnull@localhost> | 2000-03-31 17:16:36 +0000 |
commit | 0833c5686ab2aa82a2afeb295adca3d60af6612e (patch) | |
tree | 988a616b3b07b095b7885b6839d02488f46e84dc /python | |
parent | 91a44edf36c4bb668ad8d3ce451ed31632eaf54c (diff) | |
download | rpm-0833c5686ab2aa82a2afeb295adca3d60af6612e.tar.gz rpm-0833c5686ab2aa82a2afeb295adca3d60af6612e.tar.bz2 rpm-0833c5686ab2aa82a2afeb295adca3d60af6612e.zip |
As erik mentioned, here is a patch. It makes it so packages don't get searched
to find directories which were improperly assigned in broken spec file file
+lists,
causing, for example, KDE to be installed on an upgrade from 6.1 to 6.2 when
KDE was not previously installed...
CVS patchset: 3649
CVS date: 2000/03/31 17:16:36
Diffstat (limited to 'python')
-rw-r--r-- | python/upgrade.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/python/upgrade.c b/python/upgrade.c index 770b23828..4f7a5e365 100644 --- a/python/upgrade.c +++ b/python/upgrade.c @@ -358,6 +358,7 @@ static int findPackagesWithRelocatedFiles(struct pkgSet *psp, int_32 * availDirIndexes; int availFileCount; struct packageInfo **pip; + int_16 * availFileModes; count = psp->numPackages; pip = psp->packages; @@ -373,8 +374,12 @@ static int findPackagesWithRelocatedFiles(struct pkgSet *psp, (void **) &availDirs, NULL); headerGetEntryMinMemory(h, RPMTAG_DIRINDEXES, NULL, (void **) &availDirIndexes, NULL); + headerGetEntryMinMemory(h, RPMTAG_FILEMODES, NULL, + (void **) &availFileModes, NULL); for (i = 0; i < availFileCount; i++) { + if (S_ISDIR(availFileModes[i])) continue; + if (htInTable(ht, availDirs[availDirIndexes[i]], availFiles[i])) { htRemoveFromTable(ht, availDirs[availDirIndexes[i]], |