diff options
author | Jeremy Katz <katzj@redhat.com> | 2005-05-23 20:27:35 +0000 |
---|---|---|
committer | Jeremy Katz <katzj@redhat.com> | 2005-05-23 20:27:35 +0000 |
commit | 6541b52699b6f95da920183f1edf01247c3b2640 (patch) | |
tree | f262956de6d3351e166f17c03965e9ba1b4026f1 /upgrade.py | |
parent | 5f9a07f3e28bad1d770958e97cac45f8568a070a (diff) | |
download | anaconda-6541b52699b6f95da920183f1edf01247c3b2640.tar.gz anaconda-6541b52699b6f95da920183f1edf01247c3b2640.tar.xz anaconda-6541b52699b6f95da920183f1edf01247c3b2640.zip |
2005-05-23 Jeremy Katz <katzj@redhat.com>
* hdrlist.py (DependencyChecker.callback): Make the comments a
little clearer
* upgrade.py (upgradeFindPackages): Ensure we don't leave deps
stranded that we could have solved (#157754)
Diffstat (limited to 'upgrade.py')
-rw-r--r-- | upgrade.py | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/upgrade.py b/upgrade.py index f9f0a0299..511e98c17 100644 --- a/upgrade.py +++ b/upgrade.py @@ -761,8 +761,25 @@ def upgradeFindPackages(intf, method, id, instPath, dir): for p in id.grpset.hdrlist.pkgs.values(): if p.isSelected(): ts.addInstall(p.hdr, p.hdr, "u") - deps = ts.check(depcheck.callback) - for pkgnevra in deps: + + # now we need to do a depcheck. but adding a package could require + # rerunning the dep check due to things getting replaced (cf, #157754) + # we want to make sure we don't loop forever, though, so let's just + # put an arbitrary limit + runs = 5 + while runs > 0: + rerun = 0 + deps = ts.check(depcheck.callback) + for ((name, version, release), + (reqname, reqversion), + flg, suggest, sense) in deps: + if depcheck.callback(ts, sense, reqname, reqversion, flg) == -1: + rerun = 1 + runs -= 1 + if rerun == 0: + break + + for pkgnevra in depcheck.added: text = ("Upgrade Dependency: Needs %s, " "automatically added." % (pkgnevra,)) # log(text) |