diff options
| author | Michael Vogt <michael.vogt@ubuntu.com> | 2006-09-26 21:50:03 +0200 |
|---|---|---|
| committer | Michael Vogt <michael.vogt@ubuntu.com> | 2006-09-26 21:50:03 +0200 |
| commit | b7c39558155861ae5807e35cc3b6ba932a207c36 (patch) | |
| tree | f352a20d5fa29d137de1599686e386a80bc0af34 /DistUpgrade/DistUpgradeCache.py | |
| parent | 33d4eca6244d22aa02b8ce95e6c600f6747476d7 (diff) | |
| download | python-apt-b7c39558155861ae5807e35cc3b6ba932a207c36.tar.gz | |
* DistUpgrade/DistUpgrade.cfg:
- new KeepInstalledPkgs keyword
* DistUpgrade/DistUpgradeCache.py:
- implemented keepInstaledRule()
Diffstat (limited to 'DistUpgrade/DistUpgradeCache.py')
| -rw-r--r-- | DistUpgrade/DistUpgradeCache.py | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/DistUpgrade/DistUpgradeCache.py b/DistUpgrade/DistUpgradeCache.py index 8427bb3d..190a17b9 100644 --- a/DistUpgrade/DistUpgradeCache.py +++ b/DistUpgrade/DistUpgradeCache.py @@ -111,6 +111,28 @@ class MyCache(apt.Cache): if self.has_key(pkg): self._depcache.MarkDelete(self[pkg]._pkg,True) + def keepInstalledRule(self): + """ run after the dist-upgrade to ensure that certain + packages are kept installed """ + def keepInstalled(self, pkgname): + if (self.has_key(pkgname) + and self[pkgname].isInstalled + and self[pkgname].markedDelete): + self[pkgname].markInstall() + # first the global list + for pkgname in self.config.getlist("Distro","KeepInstalledPkgs"): + keepInstalled(self, pkgname) + # the the per-metapkg rules + for key in self.metapkgs: + if self.has_key(key) and (self[key].isInstalled or + self[key].markedInstall): + for pkgname in self.config.getlist(key,"KeepInstalledPkgs"): + keepInstalled(self, pkgname) + + + + + def postUpgradeRule(self): " run after the upgrade was done in the cache " for (rule, action) in [("Install", self.markInstall), @@ -149,6 +171,9 @@ class MyCache(apt.Cache): if not self._installMetaPkgs(view): raise SystemError, _("Can't upgrade required meta-packages") + # see if our KeepInstalled rules are honored + self.keepInstalledRule() + # and if we have some special rules self.postUpgradeRule() |
