Add a new 'metadata.warning' category and a check which detects local USE
authorZac Medico <zmedico@gentoo.org>
Sat, 10 Jan 2009 10:14:17 +0000 (10:14 -0000)
committerZac Medico <zmedico@gentoo.org>
Sat, 10 Jan 2009 10:14:17 +0000 (10:14 -0000)
descriptions that are not used in any ebuilds. Thanks to Markus Meier
<maekke@g.o> for the initial patch.

svn path=/main/trunk/; revision=12413

bin/repoman
man/repoman.1

index 0fdef5181887ecc3a117d2c2a189429427ad178c..7269392932e6b781b28770d52a04c6e46f52dac2 100755 (executable)
@@ -315,6 +315,7 @@ qahelp={
        "ebuild.badheader":"This ebuild has a malformed header",
        "metadata.missing":"Missing metadata.xml files",
        "metadata.bad":"Bad metadata.xml files",
+       "metadata.warning":"Warnings in metadata.xml files",
        "virtual.versioned":"PROVIDE contains virtuals with versions",
        "virtual.exists":"PROVIDE contains existing package names",
        "virtual.unavailable":"PROVIDE contains a virtual which contains no profile default",
@@ -351,6 +352,7 @@ qawarnings = set((
 "file.size",
 "inherit.autotools",
 "java.eclassesnotused",
+"metadata.warning",
 "virtual.versioned",
 "virtual.exists",
 "virtual.unavailable",
@@ -1063,11 +1065,14 @@ for x in scanlist:
                                fails["metadata.bad"].append(x+"/metadata.xml")
 
                del metadata_bad
+       muselist = frozenset(muselist)
 
        changelog_path = os.path.join(checkdir_relative, "ChangeLog")
        changelog_modified = changelog_path in modified_changelogs
 
        allmasked = True
+       # detect unused local USE-descriptions
+       used_useflags = set()
 
        for y in ebuildlist:
                relative_path = os.path.join(x, y + ".ebuild")
@@ -1368,6 +1373,7 @@ for x in scanlist:
                                default_use.append(myflag)
                        if flag_name not in uselist:
                                myuse.append(flag_name)
+               used_useflags.update(myuse)
 
                # uselist checks - metadata
                for mypos in range(len(myuse)-1,-1,-1):
@@ -1576,6 +1582,12 @@ for x in scanlist:
                stats["ebuild.allmasked"]+=1
                fails["ebuild.allmasked"].append(x)
 
+       # check if there are unused local USE-descriptions in metadata.xml
+       for myflag in muselist.difference(used_useflags):
+               stats["metadata.warning"] += 1
+               fails["metadata.warning"].append(
+                       "unused local USE-description: '%s'" % myflag)
+
 if options.mode == "manifest":
        sys.exit(dofail)
 
index 0380adfd6964dc69b60e9f72f587ba1563908337..754214049fd2710e1d1e198510677e4bde3410c1 100644 (file)
@@ -263,6 +263,9 @@ Bad metadata.xml files
 .B metadata.missing
 Missing metadata.xml files
 .TP
+.B metadata.warning
+Warnings in metadata.xml files
+.TP
 .B upstream.workaround
 The ebuild works around an upstream bug, an upstream bug should be filed and
 tracked in bugs.gentoo.org