diff options
author | Zac Medico <zmedico@gentoo.org> | 2010-09-07 00:59:04 -0700 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2010-09-07 00:59:04 -0700 |
commit | 6d96059e910ceae249dd492a93eab424d4827955 (patch) | |
tree | b84769ab9ed5eeccf0fa6d0c2a58bf39c28bbae8 /pym/portage/_sets/dbapi.py | |
parent | dd0d6deeefe8e649ddd0950063ef036382bc4ea8 (diff) | |
download | portage-6d96059e910ceae249dd492a93eab424d4827955.tar.gz portage-6d96059e910ceae249dd492a93eab424d4827955.tar.bz2 portage-6d96059e910ceae249dd492a93eab424d4827955.zip |
Add a new package set called @unavailable-binaries which matches
packages that are installed for which corresponding binary packages
are not available.
Diffstat (limited to 'pym/portage/_sets/dbapi.py')
-rw-r--r-- | pym/portage/_sets/dbapi.py | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/pym/portage/_sets/dbapi.py b/pym/portage/_sets/dbapi.py index 362cc91c6..ce693c19c 100644 --- a/pym/portage/_sets/dbapi.py +++ b/pym/portage/_sets/dbapi.py @@ -209,6 +209,37 @@ class UnavailableSet(EverythingSet): singleBuilder = classmethod(singleBuilder) +class UnavailableBinaries(EverythingSet): + + _operations = ('merge', 'unmerge',) + + description = "Package set which contains all installed " + \ + "packages for which corresponding binary packages " + \ + "are not available." + + def __init__(self, vardb, metadatadb=None): + super(UnavailableBinaries, self).__init__(vardb) + self._metadatadb = metadatadb + + def _filter(self, atom): + inst_pkg = self._db.match(atom) + if not inst_pkg: + return False + inst_cpv = inst_pkg[0] + return not self._metadatadb.cpv_exists(inst_cpv) + + def singleBuilder(cls, options, settings, trees): + + metadatadb = options.get("metadata-source", "bintree") + if not metadatadb in trees: + raise SetConfigError(_("invalid value '%s' for option " + "metadata-source") % (metadatadb,)) + + return cls(trees["vartree"].dbapi, + metadatadb=trees[metadatadb].dbapi) + + singleBuilder = classmethod(singleBuilder) + class CategorySet(PackageSet): _operations = ["merge", "unmerge"] |