summaryrefslogtreecommitdiffstats
path: root/pym
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2007-04-20 22:18:42 +0000
committerZac Medico <zmedico@gentoo.org>2007-04-20 22:18:42 +0000
commitb5bf948b9b4112fa3fa4906d7572af3092848ea5 (patch)
tree5e92d5fe5b7ea262635d4712154397b630c0d10b /pym
parent605060d301bad5b5564953824519bfe75f5f1dc8 (diff)
downloadportage-b5bf948b9b4112fa3fa4906d7572af3092848ea5.tar.gz
portage-b5bf948b9b4112fa3fa4906d7572af3092848ea5.tar.bz2
portage-b5bf948b9b4112fa3fa4906d7572af3092848ea5.zip
For bug #175344, validate LICENSE and PROVIDE inside doebuild(). (trunk r6422:6423)
svn path=/main/branches/2.1.2/; revision=6424
Diffstat (limited to 'pym')
-rw-r--r--pym/portage.py17
1 files changed, 15 insertions, 2 deletions
diff --git a/pym/portage.py b/pym/portage.py
index 1fe608a28..826891046 100644
--- a/pym/portage.py
+++ b/pym/portage.py
@@ -3462,7 +3462,9 @@ def doebuild(myebuild, mydo, myroot, mysettings, debug=0, listonly=0,
set(["clean", "cleanrm", "help", "prerm", "postrm"])
mycpv = mysettings["CATEGORY"] + "/" + mysettings["PF"]
dep_keys = ["DEPEND", "RDEPEND", "PDEPEND"]
- metadata = dict(izip(dep_keys, mydbapi.aux_get(mycpv, dep_keys)))
+ misc_keys = ["LICENSE", "PROVIDE"]
+ all_keys = dep_keys + misc_keys
+ metadata = dict(izip(all_keys, mydbapi.aux_get(mycpv, all_keys)))
class FakeTree(object):
def __init__(self, mydb):
self.dbapi = mydb
@@ -3478,7 +3480,18 @@ def doebuild(myebuild, mydo, myroot, mysettings, debug=0, listonly=0,
if mydo not in invalid_dep_exempt_phases:
return 1
del dep_type, mycheck
- del mycpv, dep_keys, metadata, FakeTree, dep_check_trees
+ for k in misc_keys:
+ try:
+ portage_dep.use_reduce(
+ portage_dep.paren_reduce(metadata[k]), matchall=True)
+ except portage_exception.InvalidDependString, e:
+ writemsg("%s: %s\n%s\n" % (
+ k, metadata[k], str(e)), noiselevel=-1)
+ del e
+ if mydo not in invalid_dep_exempt_phases:
+ return 1
+ del k
+ del mycpv, dep_keys, metadata, misc_keys, FakeTree, dep_check_trees
if "PORTAGE_TMPDIR" not in mysettings or \
not os.path.isdir(mysettings["PORTAGE_TMPDIR"]):