From ca3a34f30fe5e8600fc8965343356e7b79a541d8 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Manuel=20R=C3=BCger?= Date: Sun, 4 Aug 2013 15:08:16 +0200 Subject: [PATCH] Add repoman check for deprecated ruby targets, fixes bug #469616 --- bin/repoman | 16 ++++++++++++++++ man/repoman.1 | 3 +++ 2 files changed, 19 insertions(+) diff --git a/bin/repoman b/bin/repoman index 452ca4881..4ffe10dff 100755 --- a/bin/repoman +++ b/bin/repoman @@ -324,6 +324,7 @@ qahelp = { "LIVEVCS.unmasked": "This ebuild is a live checkout from a VCS but has keywords and is not masked in the global package.mask.", "IUSE.invalid": "This ebuild has a variable in IUSE that is not in the use.desc or its metadata.xml file", "IUSE.missing": "This ebuild has a USE conditional which references a flag that is not listed in IUSE", + "IUSE.rubydeprecated": "The ebuild has set a ruby interpreter in USE_RUBY, that is not available as a ruby target anymore", "LICENSE.invalid": "This ebuild is listing a license that doesnt exist in portages license/ dir.", "LICENSE.deprecated": "This ebuild is listing a deprecated license.", "KEYWORDS.invalid": "This ebuild contains KEYWORDS that are not listed in profiles/arch.list or for which no valid profile was found", @@ -392,6 +393,7 @@ qawarnings = set(( "upstream.workaround", "LIVEVCS.stable", "LIVEVCS.unmasked", +"IUSE.rubydeprecated", )) if portage.const._ENABLE_INHERIT_CHECK: @@ -476,6 +478,11 @@ suspect_virtual = { "dev-libs/libusb-compat":"virtual/libusb", } +ruby_deprecated = { + "ruby_targets_rbx", + "ruby_targets_ree18", +} + metadata_xml_encoding = 'UTF-8' metadata_xml_declaration = '' % \ (metadata_xml_encoding,) @@ -2105,6 +2112,15 @@ for x in effective_scanlist: for mypos in range(len(myuse)): stats["IUSE.invalid"] += 1 fails["IUSE.invalid"].append(x + "/" + y + ".ebuild: %s" % myuse[mypos]) + + # Check for outdated RUBY targets + if "ruby-ng" in inherited or "ruby-fakegem" in inherited or "ruby" in inherited: + ruby_intersection = pkg.iuse.all.intersection(ruby_deprecated) + if ruby_intersection: + for myruby in ruby_intersection: + stats["IUSE.rubydeprecated"] += 1 + fails["IUSE.rubydeprecated"].append( + (relative_path + ": Deprecated ruby target: %s") % myruby) # license checks if not badlicsyntax: diff --git a/man/repoman.1 b/man/repoman.1 index a025350db..d4ced1dfb 100644 --- a/man/repoman.1 +++ b/man/repoman.1 @@ -347,6 +347,9 @@ metadata/layout.conf settings. The ebuild uses an EAPI which is deprecated by the repository's metadata/layout.conf settings. .TP +.B IUSE.rubydeprecated +The ebuild has set a ruby interpreter in USE_RUBY, that is not available as a ruby target anymore +.TP .B portage.internal The ebuild uses an internal Portage function or variable .TP -- 2.26.2