summaryrefslogtreecommitdiffstats
path: root/comps.py
diff options
context:
space:
mode:
authorMatt Wilson <msw@redhat.com>2001-06-22 20:38:45 +0000
committerMatt Wilson <msw@redhat.com>2001-06-22 20:38:45 +0000
commitb43b22451556077cf160799598e72b787e02af6c (patch)
tree4c52035f0edddf2d32704674bf4649cabf45ce6a /comps.py
parent64b0587de521d01512eeca0fa42c67aac666f68b (diff)
downloadanaconda-b43b22451556077cf160799598e72b787e02af6c.tar.gz
anaconda-b43b22451556077cf160799598e72b787e02af6c.tar.xz
anaconda-b43b22451556077cf160799598e72b787e02af6c.zip
1) more fixups for upgrades: fix step list to actually run the transaction,
set the upgrade flag in id when we get picked 2) removed self from migrateXinetd 3) moved GUI splash screen to its own file - this should make it pop up even faster. 4) copyright notices in anaconda, splashscreen.py 5) reworked the dep checker to build a new ts every time we make a pass. RPM doesn't seem to like to have a package in the ts as available *and* upgrade/install. 6) fixed fstab reading for 'none' devices 7) removed a debugging print from xf86config.py 8) removed threadding import from progress_gui.py
Diffstat (limited to 'comps.py')
-rw-r--r--comps.py41
1 files changed, 25 insertions, 16 deletions
diff --git a/comps.py b/comps.py
index 3c352d7fb..3e55c8d26 100644
--- a/comps.py
+++ b/comps.py
@@ -590,25 +590,35 @@ class ComponentSet:
return
self.verifiedState = None
-
- if upgrade:
+
+ if upgrade:
db = rpm.opendb (0, instPath)
- ts = rpm.TransactionSet(instPath, db)
- how = 'u'
- else:
+ how = 'u'
+ else:
+ db = None
ts = rpm.TransactionSet()
- db = None
- how = 'i'
-
- for p in self.packages.packages.values ():
- if p.selected:
- ts.add(p.h, (p.h, p.h[rpm.RPMTAG_NAME]), how)
- else:
- ts.add(p.h, (p.h, p.h[rpm.RPMTAG_NAME]), "a")
+ how = 'i'
checkDeps = 1
rc = []
+ extras = {}
while checkDeps:
+ if upgrade:
+ ts = rpm.TransactionSet(instPath, db)
+ how = 'u'
+ else:
+ ts = rpm.TransactionSet()
+ how = 'i'
+
+ for p in self.packages.values():
+ if p.selected:
+ ts.add(p.h, (p.h, p.h[rpm.RPMTAG_NAME]), how)
+ else:
+ if extras.has_key(p.h):
+ ts.add(p.h, (p.h, p.h[rpm.RPMTAG_NAME]), how)
+ else:
+ ts.add(p.h, (p.h, p.h[rpm.RPMTAG_NAME]), "a")
+
deps = ts.depcheck()
checkDeps = 0
@@ -624,8 +634,7 @@ class ComponentSet:
log ("depcheck: package %s needs %s (provided by %s)",
name, formatRequire(reqname, reqversion, flags),
sugname)
-
- ts.add(header, (header, header[rpm.RPMTAG_NAME]), how)
+ extras[header] = None
checkDeps = 1
else:
log ("depcheck: package %s needs %s (not provided)",
@@ -659,7 +668,7 @@ class ComponentSet:
if self.packages.packages.has_key (reqname):
self.packages.packages[reqname].selected = 0
log ("... removed")
-
+
del ts
if db:
del db