From owner-freebsd-ports-bugs@FreeBSD.ORG Mon Jun 3 15:20:00 2013 Return-Path: Delivered-To: freebsd-ports-bugs@smarthost.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id D1422133 for ; Mon, 3 Jun 2013 15:20:00 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:1900:2254:206c::16:87]) by mx1.freebsd.org (Postfix) with ESMTP id B7749131F for ; Mon, 3 Jun 2013 15:20:00 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.7/8.14.7) with ESMTP id r53FK0vC067678 for ; Mon, 3 Jun 2013 15:20:00 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.7/8.14.7/Submit) id r53FK0iq067677; Mon, 3 Jun 2013 15:20:00 GMT (envelope-from gnats) Resent-Date: Mon, 3 Jun 2013 15:20:00 GMT Resent-Message-Id: <201306031520.r53FK0iq067677@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-ports-bugs@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, "Ilya A. Arkhipov" Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id 47A12C75 for ; Mon, 3 Jun 2013 15:12:58 +0000 (UTC) (envelope-from nobody@FreeBSD.org) Received: from oldred.freebsd.org (oldred.freebsd.org [8.8.178.121]) by mx1.freebsd.org (Postfix) with ESMTP id 1EE701293 for ; Mon, 3 Jun 2013 15:12:58 +0000 (UTC) Received: from oldred.freebsd.org ([127.0.1.6]) by oldred.freebsd.org (8.14.5/8.14.7) with ESMTP id r53FCvb1048531 for ; Mon, 3 Jun 2013 15:12:57 GMT (envelope-from nobody@oldred.freebsd.org) Received: (from nobody@localhost) by oldred.freebsd.org (8.14.5/8.14.5/Submit) id r53FCvVs048526; Mon, 3 Jun 2013 15:12:57 GMT (envelope-from nobody) Message-Id: <201306031512.r53FCvVs048526@oldred.freebsd.org> Date: Mon, 3 Jun 2013 15:12:57 GMT From: "Ilya A. Arkhipov" To: freebsd-gnats-submit@FreeBSD.org X-Send-Pr-Version: www-3.1 Subject: ports/179262: [patch] ports-mgmt/portlint Adding one more check for optionsng in portlint. X-BeenThere: freebsd-ports-bugs@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Ports bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 03 Jun 2013 15:20:01 -0000 >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: