Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 3 Jun 2013 15:12:57 GMT
From:      "Ilya A. Arkhipov" <rum1cro@yandex.ru>
To:        freebsd-gnats-submit@FreeBSD.org
Subject:   ports/179262: [patch] ports-mgmt/portlint Adding one more check for optionsng in portlint.
Message-ID:  <201306031512.r53FCvVs048526@oldred.freebsd.org>
Resent-Message-ID: <201306031520.r53FK0iq067677@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         179262
>Category:       ports
>Synopsis:       [patch] ports-mgmt/portlint Adding one more check for optionsng in portlint.
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Mon Jun 03 15:20:00 UTC 2013
>Closed-Date:
>Last-Modified:
>Originator:     Ilya A. Arkhipov
>Release:        FreeBSD 10.0-CURRENT
>Organization:
Rambler Internet Holding LLC
>Environment:
FreeBSD m1cro.park 10.0-CURRENT FreeBSD 10.0-CURRENT #2 r247397: Wed Feb 27 16:06:42 MSK 2013     m1cro@m1cro.park:/home/m1cro/makepro/linuxulator/obj/usr/home/m1cro/makepro/linuxulator/sys/MICROKERNEL  amd64
>Description:
I've added one check for portlint on the case when OPTIONS_RADIO/OPTIONS_SINGLE/OPTIONS_MULTI/OPTIONS_GROUP defined but OPTIONS_{RADIO/SINGLE/MULTI/GROUP}_SOMETHING no.
>How-To-Repeat:
Use it for example:
OPTIONS_SINGLE=         UNICODE
OPTIONS_SINGLE_UCS=     UCS2 UCS4
Should be:
OPTIONS_SINGLE=         UNICODE
OPTIONS_SINGLE_UNICODE=     UCS2 UCS4
>Fix:
You can find patch in attach or on http://m1cro.tk/ports/portlint/portlint_optioncheck.patch

I know it looks ugly but I don't know how should be does without portlint's refactoring.


Patch attached with submission follows:

--- /usr/ports/ports-mgmt/portlint/src/portlint.pl	2013-05-16 20:35:01.541157011 +0400
+++ /home/m1cro/makepro/portlint.pl	2013-06-03 16:03:38.175155134 +0400
@@ -197,7 +197,8 @@
 	PKGDIR COMMENT DESCR PLIST PKGCATEGORY PKGINSTALL PKGDEINSTALL
 	PKGREQ PKGMESSAGE DISTINFO_FILE .CURDIR USE_LDCONFIG USE_AUTOTOOLS
 	USE_GNOME INDEXFILE PKGORIGIN CONFLICTS PKG_VERSION PKGINSTALLVER
-	PLIST_FILES OPTIONS OPTIONS_DEFINE INSTALLS_OMF USE_GETTEXT USE_RC_SUBR
+	PLIST_FILES OPTIONS OPTIONS_DEFINE OPTIONS_RADIO OPTIONS_SINGLE
+	OPTIONS_MULTI OPTIONS_GROUP INSTALLS_OMF USE_GETTEXT USE_RC_SUBR
 	DIST_SUBDIR ALLFILES IGNOREFILES CHECKSUM_ALGORITHMS INSTALLS_ICONS
 	GNU_CONFIGURE CONFIGURE_ARGS MASTER_SITE_SUBDIR LICENSE LICENSE_COMB
 );
@@ -1258,7 +1259,7 @@
 	my($realwrksrc, $wrksrc, $nowrksubdir) = ('', '', '');
 	my(@mman, @pman);
 	my(@mopt, @oopt);
-	my(@nmopt, @noopt);
+	my(@nmopt, @noopt, @aoopt);
 	my($pkg_version, $versiondir, $versionfile) = ('', '', '');
 	my $useindex = 0;
 	my %deprecated = ();
@@ -1521,6 +1522,25 @@
 		&perror("WARN", $file, -1, "Use of OPTIONS is obsolete. Use the ".
 			"new options framework.");
 	}
+
+	foreach my $i ("OPTIONS_RADIO","OPTIONS_SINGLE",
+				   "OPTIONS_MULTI","OPTIONS_GROUP") {
+		@aoopt = split(/\s+/, $makevar{$i});
+		if (scalar(@aoopt)) {
+			foreach my $j (@aoopt) {
+				my $ocmd = "make -V $makeenv ${i}_${j}";
+				my @ocount;
+				for (split(/\n/, qx($ocmd))) {
+					$makevar{"${i}_${j}"} = $_;
+					@ocount = split(/\s+/, $makevar{"${i}_${j}"});
+				}
+				if (!scalar(@ocount)) {
+					&perror("FATAL", $file, -1, "Description for ${i}_${j} not exist");
+				}
+			}
+		}
+	}
+
 	pos($whole) = 0;
 	while ($whole =~ /\(?\s*WITH(?:OUT)?_(\w+)\s*\)?/mg) {
 		push @mopt, $1;


>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201306031512.r53FCvVs048526>