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 | |
| parent | 33d4eca6244d22aa02b8ce95e6c600f6747476d7 (diff) | |
| download | python-apt-b7c39558155861ae5807e35cc3b6ba932a207c36.tar.gz | |
* DistUpgrade/DistUpgrade.cfg:
- new KeepInstalledPkgs keyword
* DistUpgrade/DistUpgradeCache.py:
- implemented keepInstaledRule()
Diffstat (limited to 'DistUpgrade')
| -rw-r--r-- | DistUpgrade/Changelog | 1 | ||||
| -rw-r--r-- | DistUpgrade/DistUpgrade.cfg | 5 | ||||
| -rw-r--r-- | DistUpgrade/DistUpgradeCache.py | 25 | ||||
| -rw-r--r-- | DistUpgrade/README | 6 |
4 files changed, 36 insertions, 1 deletions
diff --git a/DistUpgrade/Changelog b/DistUpgrade/Changelog index 757fd3f6..a7e39c88 100644 --- a/DistUpgrade/Changelog +++ b/DistUpgrade/Changelog @@ -3,6 +3,7 @@ not use Breaks for the dapper->edgy upgrade yet (see #54234 for the rationale) - updated demotions.cfg for dapper->edgy + - special case the packages affected by the Breaks changes - bugfixes 2006-09-23: - support fetching backports of selected packages first and diff --git a/DistUpgrade/DistUpgrade.cfg b/DistUpgrade/DistUpgrade.cfg index 60c3ca9f..b25def9a 100644 --- a/DistUpgrade/DistUpgrade.cfg +++ b/DistUpgrade/DistUpgrade.cfg @@ -11,6 +11,10 @@ PostUpgradePurge=xorg-common, libgl1-mesa Demotions=demoted.cfg RemoveEssentialOk=sysvinit RemovalBlacklistFile=removal_blacklist.cfg +# if those packages were installed, make sure to keep them installed +# we use this right now to emulate Breaks +KeepInstalledPkgs=gnumeric, gnumeric-gtk, hpijs +KeepInstalledSection=translations # information about the individual meta-pkgs [ubuntu-desktop] @@ -29,7 +33,6 @@ KeyDependencies=edubuntu-artwork, tuxpaint [xubuntu-desktop] KeyDependencies=xubuntu-artwork-usplash, xubuntu-default-settings, xfce4 - [Files] BackupExt=distUpgrade 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() diff --git a/DistUpgrade/README b/DistUpgrade/README index c38a422f..b9d6c5d2 100644 --- a/DistUpgrade/README +++ b/DistUpgrade/README @@ -32,6 +32,12 @@ ForcedObsoletes: happens *after* the cache.commit()) RemoveEssentialOk: Those packages are ok to remove even though they are essential +KeepInstalledPkgs: + If the package was installed before, it should still be installed + after the upgrade +KeepInstalledSection: + Packages from this section that were installed should always be + installed afterwards as well (useful for eg translations) [$meta-pkg] KeyDependencies: |
