summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2006-10-14 04:07:49 +0000
committerZac Medico <zmedico@gentoo.org>2006-10-14 04:07:49 +0000
commite7ac068da63fc6764fe097714aeea480992bb168 (patch)
treeda6165a2dd422c0a7d2e2f759bf60569cf516406 /bin/repoman
parentFor bug #151082, don't allow installed packages to inappropriately satisfy pa... (diff)
downloadportage-multirepo-e7ac068da63fc6764fe097714aeea480992bb168.tar.gz
portage-multirepo-e7ac068da63fc6764fe097714aeea480992bb168.tar.bz2
portage-multirepo-e7ac068da63fc6764fe097714aeea480992bb168.zip
Implement per-package default USE flags at the ebuild and profile levels for bug #61732.
svn path=/main/trunk/; revision=4679
Diffstat (limited to 'bin/repoman')
-rwxr-xr-xbin/repoman17
1 files changed, 15 insertions, 2 deletions
diff --git a/bin/repoman b/bin/repoman
index b8ab7312..7b0a0fe6 100755
--- a/bin/repoman
+++ b/bin/repoman
@@ -1059,7 +1059,12 @@ for x in scanlist:
badlicsyntax = False
badprovsyntax = False
catpkg = catdir+"/"+y
- myiuse = myaux["IUSE"].split() + repoman_settings.archlist()
+ myiuse = set(repoman_settings.archlist())
+ for myflag in myaux["IUSE"].split():
+ if myflag.startswith("+"):
+ myflag = myflag[1:]
+ myiuse.add(myflag)
+
type_list, badsyntax = [], []
for mytype in ("DEPEND", "RDEPEND", "PDEPEND", "LICENSE", "PROVIDE"):
mydepstr = myaux[mytype]
@@ -1214,7 +1219,13 @@ for x in scanlist:
stats["ebuild.nesteddie"]=stats["ebuild.nesteddie"]+1
fails["ebuild.nesteddie"].append(x+"/"+y+".ebuild")
# uselist checks - global
- myuse = myaux["IUSE"].split()
+ myuse = []
+ default_use = []
+ for myflag in myaux["IUSE"].split():
+ if myflag.startswith("+"):
+ default_use.append(myflag)
+ myflag = myflag[1:]
+ myuse.append(myflag)
for mypos in range(len(myuse)-1,-1,-1):
if myuse[mypos] and (myuse[mypos] in uselist):
del myuse[mypos]
@@ -1224,6 +1235,8 @@ for x in scanlist:
for mypos in range(len(myuse)-1,-1,-1):
if myuse[mypos] and (myuse[mypos] in luselist[mykey]):
del myuse[mypos]
+ if default_use and myaux["EAPI"] == "0":
+ myuse += default_use
for mypos in range(len(myuse)):
stats["IUSE.invalid"]=stats["IUSE.invalid"]+1
fails["IUSE.invalid"].append(x+"/"+y+".ebuild: %s" % myuse[mypos])