diff options
author | Zac Medico <zmedico@gentoo.org> | 2012-07-02 13:27:57 -0700 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2012-07-02 13:27:57 -0700 |
commit | 47029cd18764795a4c2cff1f985c56c87ca07ed9 (patch) | |
tree | 8c070b0926d99e62862b7a1a2cae87979256f6f3 | |
parent | 7d6a0bc558bdfe5c3ca2b6e1638d1d4f31d2d8e1 (diff) | |
download | portage-47029cd18764795a4c2cff1f985c56c87ca07ed9.tar.gz portage-47029cd18764795a4c2cff1f985c56c87ca07ed9.tar.bz2 portage-47029cd18764795a4c2cff1f985c56c87ca07ed9.zip |
Atom: evaluate_conditionals slot-abi, bug #424489
-rw-r--r-- | pym/portage/dep/__init__.py | 38 |
1 files changed, 31 insertions, 7 deletions
diff --git a/pym/portage/dep/__init__.py b/pym/portage/dep/__init__.py index 557c92b42..c722e4802 100644 --- a/pym/portage/dep/__init__.py +++ b/pym/portage/dep/__init__.py @@ -1428,8 +1428,14 @@ class Atom(_unicode): def with_repo(self, repo): atom = remove_slot(self) + if self.slot is not None or self.slot_abi_op is not None: + atom += _slot_separator if self.slot is not None: - atom += _slot_separator + self.slot + atom += self.slot + if self.slot_abi is not None: + atom += "/%s" % self.slot_abi + if self.slot_abi_op is not None: + atom += self.slot_abi_op atom += _repo_separator + repo if self.use is not None: atom += _unicode(self.use) @@ -1489,8 +1495,14 @@ class Atom(_unicode): if not (self.use and self.use.conditional): return self atom = remove_slot(self) - if self.slot: - atom += ":%s" % self.slot + if self.slot is not None or self.slot_abi_op is not None: + atom += _slot_separator + if self.slot is not None: + atom += self.slot + if self.slot_abi is not None: + atom += "/%s" % self.slot_abi + if self.slot_abi_op is not None: + atom += self.slot_abi_op use_dep = self.use.evaluate_conditionals(use) atom += _unicode(use_dep) return Atom(atom, unevaluated_atom=self, allow_repo=(self.repo is not None), _use=use_dep) @@ -1511,8 +1523,14 @@ class Atom(_unicode): if not self.use: return self atom = remove_slot(self) - if self.slot: - atom += ":%s" % self.slot + if self.slot is not None or self.slot_abi_op is not None: + atom += _slot_separator + if self.slot is not None: + atom += self.slot + if self.slot_abi is not None: + atom += "/%s" % self.slot_abi + if self.slot_abi_op is not None: + atom += self.slot_abi_op use_dep = self.use.violated_conditionals(other_use, is_valid_flag, parent_use) atom += _unicode(use_dep) return Atom(atom, unevaluated_atom=self, allow_repo=(self.repo is not None), _use=use_dep) @@ -1521,8 +1539,14 @@ class Atom(_unicode): if not (self.use and self.use.conditional): return self atom = remove_slot(self) - if self.slot: - atom += ":%s" % self.slot + if self.slot is not None or self.slot_abi_op is not None: + atom += _slot_separator + if self.slot is not None: + atom += self.slot + if self.slot_abi is not None: + atom += "/%s" % self.slot_abi + if self.slot_abi_op is not None: + atom += self.slot_abi_op use_dep = self.use._eval_qa_conditionals(use_mask, use_force) atom += _unicode(use_dep) return Atom(atom, unevaluated_atom=self, allow_repo=(self.repo is not None), _use=use_dep) |