summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorabs <abs@pkgsrc.org>2005-03-07 22:21:15 +0000
committerabs <abs@pkgsrc.org>2005-03-07 22:21:15 +0000
commitf0b56b8383535702298d13adc0856101aaf631a8 (patch)
treec501bdf68aa5272e30ef268a3e59f1bd1abde4f2
parentbf04656d7b85db295d49ea1fb3425f71eea2c103 (diff)
downloadpkgsrc-f0b56b8383535702298d13adc0856101aaf631a8.tar.gz
update pkglint to 4.09:
Handle ! in .if conditionals, plus move slightly closer to the real 'make's behaviour when using defined() and empty(). Should fix pkg/28346
-rw-r--r--doc/CHANGES4
-rw-r--r--pkgtools/pkglint/Makefile4
-rwxr-xr-xpkgtools/pkglint/files/lintpkgsrc.pl12
3 files changed, 13 insertions, 7 deletions
diff --git a/doc/CHANGES b/doc/CHANGES
index 9a333fe730f..72e505ed852 100644
--- a/doc/CHANGES
+++ b/doc/CHANGES
@@ -1,4 +1,4 @@
-$NetBSD: CHANGES,v 1.9465 2005/03/07 21:01:22 xtraeme Exp $
+$NetBSD: CHANGES,v 1.9466 2005/03/07 22:21:55 abs Exp $
Changes to the packages collection and infrastructure in 2005:
@@ -1338,3 +1338,5 @@ Changes to the packages collection and infrastructure in 2005:
Added e16menuedit2-0.0.1 [agc 2005-03-07]
bsd.pkg.mk: started freeze for pkgsrc-2005Q1 branch [agc 2005-03-07]
Updated dspam to 3.2.8 [xtraeme 2005-03-07]
+ Updated pkglint to 4.09: [abs 2005-03-07]
+
diff --git a/pkgtools/pkglint/Makefile b/pkgtools/pkglint/Makefile
index d65524f3d07..9565338fda0 100644
--- a/pkgtools/pkglint/Makefile
+++ b/pkgtools/pkglint/Makefile
@@ -1,7 +1,7 @@
-# $NetBSD: Makefile,v 1.224 2005/02/24 22:50:55 rillig Exp $
+# $NetBSD: Makefile,v 1.225 2005/03/07 22:21:15 abs Exp $
#
-DISTNAME= pkglint-4.08
+DISTNAME= pkglint-4.09
CATEGORIES= pkgtools devel
MASTER_SITES= # empty
DISTFILES= # empty
diff --git a/pkgtools/pkglint/files/lintpkgsrc.pl b/pkgtools/pkglint/files/lintpkgsrc.pl
index 752cb2b10b2..8c99e1874ad 100755
--- a/pkgtools/pkglint/files/lintpkgsrc.pl
+++ b/pkgtools/pkglint/files/lintpkgsrc.pl
@@ -1,6 +1,6 @@
#!@PERL@
-# $NetBSD: lintpkgsrc.pl,v 1.96 2005/02/05 15:39:44 wiz Exp $
+# $NetBSD: lintpkgsrc.pl,v 1.97 2005/03/07 22:21:15 abs Exp $
# Written by David Brownlee <abs@netbsd.org>.
#
@@ -1101,15 +1101,19 @@ sub parse_eval_make_false
# XXX Could do something with target
while ( $test =~ /(target|empty|make|defined|exists)\s*\(([^()]+)\)/ )
{
+ my $var = $${vars}{$2};
+ if (defined $var && $var eq $magic_undefined)
+ { $var = undef; }
if ($1 eq 'exists')
{ $_ = (-e $2) ?1 :0; }
elsif( $1 eq 'defined')
- { $_ = (defined($${vars}{$2}) ?1 :0); }
+ { $_ = defined($var) ?1 :0; }
elsif( $1 eq 'empty')
- { $_ = ((not defined($${vars}{$2}) or (length($${vars}{$2}) == 0)) ?1 :0); }
+ { $_ = ((not defined($var) or (length($var) == 0)) ?1 :0); }
else
{ $_ = 0; }
$test =~ s/$1\s*\([^()]+\)/$_/;
+ debug("conditional: update to $test\n");
}
while ( $test =~ /([^\s()\|\&]+)\s+(!=|==)\s+([^\s()]+)/ )
{
@@ -1119,7 +1123,7 @@ sub parse_eval_make_false
{ $_ = ($1 ne $3) ?1 :0; }
$test =~ s/[^\s()\|\&]+\s+(!=|==)\s+[^\s()]+/$_/;
}
- if ($test !~ /[^<>\d()\s&|.]/ )
+ if ($test !~ /[^<>\d()\s&|.!]/ )
{
$false = eval "($test)?0:1";
if (!defined $false)