summaryrefslogtreecommitdiff
path: root/pym
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2008-05-26 09:21:29 +0000
committerZac Medico <zmedico@gentoo.org>2008-05-26 09:21:29 +0000
commit68788c229e76692b42bf2235a880ec1b430dab28 (patch)
treec1a05f0a499fc8d2f7c4d8ca651dc4154b4590bc /pym
parentFix a broken reference to the Package.cpv_slot attribute. (trunk r10425) (diff)
downloadportage-multirepo-68788c229e76692b42bf2235a880ec1b430dab28.tar.gz
portage-multirepo-68788c229e76692b42bf2235a880ec1b430dab28.tar.bz2
portage-multirepo-68788c229e76692b42bf2235a880ec1b430dab28.zip
* Enable config.setcpv() to use a Package instance in place of a cpv.
* Make depgraph._select_package() pass Package instances into setcpv() calls. * Enable the Package constructor to use an iterable for metadata items. (trunk r10427) svn path=/main/branches/2.1.2/; revision=10428
Diffstat (limited to 'pym')
-rw-r--r--pym/portage.py12
1 files changed, 11 insertions, 1 deletions
diff --git a/pym/portage.py b/pym/portage.py
index 68c2bb64..414fffd7 100644
--- a/pym/portage.py
+++ b/pym/portage.py
@@ -1970,6 +1970,13 @@ class config:
"""
self.modifying()
+
+ pkg = None
+ if not isinstance(mycpv, basestring):
+ pkg = mycpv
+ mycpv = pkg.cpv
+ mydb = pkg.metadata
+
if self.mycpv == mycpv:
return
ebuild_phase = self.get("EBUILD_PHASE")
@@ -1985,7 +1992,10 @@ class config:
iuse = mydb["IUSE"]
else:
slot, iuse = mydb.aux_get(self.mycpv, ["SLOT", "IUSE"])
- cpv_slot = "%s:%s" % (self.mycpv, slot)
+ if pkg is None:
+ cpv_slot = "%s:%s" % (self.mycpv, slot)
+ else:
+ cpv_slot = pkg
pkginternaluse = []
for x in iuse.split():
if x.startswith("+"):