aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2012-07-02 13:27:57 -0700
committerZac Medico <zmedico@gentoo.org>2012-07-02 13:27:57 -0700
commit47029cd18764795a4c2cff1f985c56c87ca07ed9 (patch)
tree8c070b0926d99e62862b7a1a2cae87979256f6f3 /pym/portage/dep
parentDon't use SIGUSR1 under Jython, bug #424259. (diff)
downloadportage-47029cd18764795a4c2cff1f985c56c87ca07ed9.tar.gz
portage-47029cd18764795a4c2cff1f985c56c87ca07ed9.tar.bz2
portage-47029cd18764795a4c2cff1f985c56c87ca07ed9.zip
Atom: evaluate_conditionals slot-abi, bug #424489
Diffstat (limited to 'pym/portage/dep')
-rw-r--r--pym/portage/dep/__init__.py38
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)