For bug #175344, validate LICENSE and PROVIDE inside doebuild(). (trunk r6422:6423)
authorZac Medico <zmedico@gentoo.org>
Fri, 20 Apr 2007 22:18:42 +0000 (22:18 -0000)
committerZac Medico <zmedico@gentoo.org>
Fri, 20 Apr 2007 22:18:42 +0000 (22:18 -0000)
svn path=/main/branches/2.1.2/; revision=6424

pym/portage.py

index 1fe608a2867b9e2ed6cdb9d5bb92c891831a7664..8268910464ac978d28e07f8d6326a9826dc5b399 100644 (file)
@@ -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"]):