summaryrefslogtreecommitdiffstats
path: root/pym
diff options
context:
space:
mode:
authorArfrever Frehtes Taifersar Arahesis <Arfrever@Gentoo.Org>2012-01-16 00:53:04 +0100
committerArfrever Frehtes Taifersar Arahesis <Arfrever@Gentoo.Org>2012-01-16 00:53:04 +0100
commitcaf67ac8df3528382ff960b2de4cf853a14a0141 (patch)
tree0bcb1478d19107ea3984289368af092d0385e66a /pym
parent99e5562e09a481a9d484302ad84c380bcf291efc (diff)
downloadportage-caf67ac8df3528382ff960b2de4cf853a14a0141.tar.gz
portage-caf67ac8df3528382ff960b2de4cf853a14a0141.tar.bz2
portage-caf67ac8df3528382ff960b2de4cf853a14a0141.zip
Support repository dependencies in EAPI="4-python".
Diffstat (limited to 'pym')
-rw-r--r--pym/portage/dep/__init__.py8
-rw-r--r--pym/portage/eapi.py3
-rw-r--r--pym/portage/package/ebuild/_ipc/QueryCommand.py9
3 files changed, 15 insertions, 5 deletions
diff --git a/pym/portage/dep/__init__.py b/pym/portage/dep/__init__.py
index 72411b7c7..389916f8e 100644
--- a/pym/portage/dep/__init__.py
+++ b/pym/portage/dep/__init__.py
@@ -1,5 +1,5 @@
# deps.py -- Portage dependency resolution functions
-# Copyright 2003-2011 Gentoo Foundation
+# Copyright 2003-2012 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
__all__ = [
@@ -38,7 +38,8 @@ portage.proxy.lazyimport.lazyimport(globals(),
from portage import _unicode_decode
from portage.eapi import eapi_has_slot_deps, eapi_has_src_uri_arrows, \
- eapi_has_use_deps, eapi_has_strong_blocks, eapi_has_use_dep_defaults
+ eapi_has_use_deps, eapi_has_strong_blocks, eapi_has_use_dep_defaults, \
+ eapi_has_repo_deps
from portage.exception import InvalidAtom, InvalidData, InvalidDependString
from portage.localization import _
from portage.versions import catpkgsplit, catsplit, \
@@ -1074,6 +1075,9 @@ class Atom(_atom_base):
_atom_base.__init__(s)
+ if eapi_has_repo_deps(eapi):
+ allow_repo = True
+
if "!" == s[:1]:
blocker = self._blocker(forbid_overlap=("!" == s[1:2]))
if blocker.overlap.forbid:
diff --git a/pym/portage/eapi.py b/pym/portage/eapi.py
index 65c99c7e5..c3c4f2d22 100644
--- a/pym/portage/eapi.py
+++ b/pym/portage/eapi.py
@@ -51,3 +51,6 @@ def eapi_has_required_use(eapi):
def eapi_has_use_dep_defaults(eapi):
return eapi not in ("0", "1", "2", "3")
+
+def eapi_has_repo_deps(eapi):
+ return eapi in ("4-python",)
diff --git a/pym/portage/package/ebuild/_ipc/QueryCommand.py b/pym/portage/package/ebuild/_ipc/QueryCommand.py
index fb6e61e06..949a14801 100644
--- a/pym/portage/package/ebuild/_ipc/QueryCommand.py
+++ b/pym/portage/package/ebuild/_ipc/QueryCommand.py
@@ -1,4 +1,4 @@
-# Copyright 2010-2011 Gentoo Foundation
+# Copyright 2010-2012 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
import io
@@ -7,6 +7,7 @@ import portage
from portage import os
from portage import _unicode_decode
from portage.dep import Atom
+from portage.eapi import eapi_has_repo_deps
from portage.elog import messages as elog_messages
from portage.exception import InvalidAtom
from portage.package.ebuild._ipc.IpcCommand import IpcCommand
@@ -31,14 +32,16 @@ class QueryCommand(IpcCommand):
cmd, root, atom_str = argv
+ eapi = self.settings.get('EAPI')
+ allow_repo = eapi_has_repo_deps(eapi)
try:
- atom = Atom(atom_str)
+ atom = Atom(atom_str, allow_repo=allow_repo)
except InvalidAtom:
return ('', 'invalid atom: %s\n' % atom_str, 2)
warnings = []
try:
- atom = Atom(atom_str, eapi=self.settings.get('EAPI'))
+ atom = Atom(atom_str, allow_repo=allow_repo, eapi=eapi)
except InvalidAtom as e:
warnings.append(_unicode_decode("QA Notice: %s: %s") % (cmd, e))