summaryrefslogtreecommitdiff
path: root/bin
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2008-06-08 02:19:46 +0000
committerZac Medico <zmedico@gentoo.org>2008-06-08 02:19:46 +0000
commitcdef6f181b66a4fd426cc620bb06bb9c8d0bf411 (patch)
tree9e19f2756363d09e1fd7b7bcc305526c9dd71638 /bin
parentInside, create_trees(), pass target_root="/" into the config constructor (diff)
downloadportage-multirepo-cdef6f181b66a4fd426cc620bb06bb9c8d0bf411.tar.gz
portage-multirepo-cdef6f181b66a4fd426cc620bb06bb9c8d0bf411.tar.bz2
portage-multirepo-cdef6f181b66a4fd426cc620bb06bb9c8d0bf411.zip
Make repoman pass Package instances into run_checks(), so that the checks
can use the Package.mtime and inherited attributes. svn path=/main/trunk/; revision=10600
Diffstat (limited to 'bin')
-rwxr-xr-xbin/repoman24
1 files changed, 16 insertions, 8 deletions
diff --git a/bin/repoman b/bin/repoman
index b9710be0..9727d5a5 100755
--- a/bin/repoman
+++ b/bin/repoman
@@ -56,6 +56,9 @@ except ImportError:
from repoman.checks import run_checks
from repoman import utilities
+from _emerge import Package, RootConfig
+from portage.sets import load_default_config
+
import portage.checksum
import portage.const
import portage.dep
@@ -350,7 +353,9 @@ qawarnings=[
]
missingvars=["KEYWORDS","LICENSE","DESCRIPTION","HOMEPAGE","SLOT"]
-allvars=portage.auxdbkeys
+allvars = set(portage.auxdbkeys)
+allvars.update(Package.metadata_keys)
+allvars = sorted(allvars)
commitmessage=None
for x in missingvars:
x += ".missing"
@@ -512,6 +517,8 @@ trees = portage.create_trees()
trees["/"]["porttree"].settings = repoman_settings
portdb = trees["/"]["porttree"].dbapi
portdb.mysettings = repoman_settings
+setconfig = load_default_config(repoman_settings, trees["/"])
+root_config = RootConfig(repoman_settings, trees, setconfig)
# We really only need to cache the metadata that's necessary for visibility
# filtering. Anything else can be discarded to reduce memory consumption.
for k in ("DEPEND", "LICENCE", "PDEPEND",
@@ -780,7 +787,7 @@ for x in scanlist:
checkdirlist=os.listdir(checkdir)
ebuildlist=[]
- ebuild_metadata = {}
+ pkgs = {}
for y in checkdirlist:
if y in no_exec and \
stat.S_IMODE(os.stat(os.path.join(checkdir, y)).st_mode) & 0111:
@@ -804,7 +811,8 @@ for x in scanlist:
stats["EAPI.unsupported"] += 1
fails["EAPI.unsupported"].append(os.path.join(x, y))
continue
- ebuild_metadata[pf] = myaux
+ pkgs[pf] = Package(cpv=cpv, metadata=myaux,
+ root_config=root_config)
# Sort ebuilds in ascending order for the KEYWORDS.dropped check.
pkgsplits = {}
@@ -819,7 +827,7 @@ for x in scanlist:
slot_keywords = {}
- if len(ebuild_metadata) != len(ebuildlist):
+ if len(pkgs) != len(ebuildlist):
# If we can't access all the metadata then it's totally unsafe to
# commit since there's no way to generate a correct Manifest.
# Do not try to do any more QA checks on this package since missing
@@ -1075,9 +1083,10 @@ for x in scanlist:
fails["ebuild.namenomatch"].append(x+"/"+y+".ebuild")
continue
- myaux = ebuild_metadata[y]
+ pkg = pkgs[y]
+ myaux = pkg.metadata
eapi = myaux["EAPI"]
- inherited = frozenset(myaux["INHERITED"].split())
+ inherited = pkg.inherited
# Test for negative logic and bad words in the RESTRICT var.
#for x in myaux[allvars.index("RESTRICT")].split():
@@ -1385,8 +1394,7 @@ for x in scanlist:
full_path = os.path.join(repodir, relative_path)
f = open(full_path, 'rb')
try:
- for check_name, e in run_checks(f, os.stat(full_path).st_mtime,
- inherited=inherited):
+ for check_name, e in run_checks(f, pkg):
stats[check_name] += 1
fails[check_name].append(relative_path + ': %s' % e)
finally: