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

svn path=/main/branches/2.1.6/; revision=12469

bin/repoman
man/repoman.1

index b8eb9d2aea9f999b6eaba36db6111f92bbda15cf..129a4296e9d8227a206914ce7608587df6010bc2 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 64d014f7d45605279bb6ce0cd9394fa596da457b..a5f56b357768948848005e7ad35980017597be54 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