summaryrefslogtreecommitdiff
path: root/python
diff options
context:
space:
mode:
authorjbj <devnull@localhost>2000-03-31 17:16:36 +0000
committerjbj <devnull@localhost>2000-03-31 17:16:36 +0000
commit0833c5686ab2aa82a2afeb295adca3d60af6612e (patch)
tree988a616b3b07b095b7885b6839d02488f46e84dc /python
parent91a44edf36c4bb668ad8d3ce451ed31632eaf54c (diff)
downloadrpm-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.c5
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]],