summaryrefslogtreecommitdiff
path: root/pkgtools
diff options
context:
space:
mode:
authorrillig <rillig>2005-10-23 19:20:33 +0000
committerrillig <rillig>2005-10-23 19:20:33 +0000
commitd9e76a8441555f101e7f7af8ffb84e50851fa0e3 (patch)
tree156bce8a9cb6107638319c4aba6caf7314e34455 /pkgtools
parent25b591d5ee7f37bbf3f81ea6beb5f4d497a5d339 (diff)
downloadpkgsrc-d9e76a8441555f101e7f7af8ffb84e50851fa0e3.tar.gz
Updated pkglint to 4.29.
Fixed the detection of list variables that are modified with operators other than "+=". Added *_SKIP to the list of plural variable names. Removed some unused variables from main(). (This change include white-space changes.)
Diffstat (limited to 'pkgtools')
-rw-r--r--pkgtools/pkglint/Makefile4
-rw-r--r--pkgtools/pkglint/files/pkglint.pl98
2 files changed, 49 insertions, 53 deletions
diff --git a/pkgtools/pkglint/Makefile b/pkgtools/pkglint/Makefile
index ff5421cd235..a9220fa54f6 100644
--- a/pkgtools/pkglint/Makefile
+++ b/pkgtools/pkglint/Makefile
@@ -1,7 +1,7 @@
-# $NetBSD: Makefile,v 1.266 2005/10/21 07:20:24 rillig Exp $
+# $NetBSD: Makefile,v 1.267 2005/10/23 19:20:33 rillig Exp $
#
-DISTNAME= pkglint-4.28.2
+DISTNAME= pkglint-4.29
CATEGORIES= pkgtools devel
MASTER_SITES= # empty
DISTFILES= # empty
diff --git a/pkgtools/pkglint/files/pkglint.pl b/pkgtools/pkglint/files/pkglint.pl
index dbc6236867a..8bea7acf043 100644
--- a/pkgtools/pkglint/files/pkglint.pl
+++ b/pkgtools/pkglint/files/pkglint.pl
@@ -11,7 +11,7 @@
# Freely redistributable. Absolutely no warranty.
#
# From Id: portlint.pl,v 1.64 1998/02/28 02:34:05 itojun Exp
-# $NetBSD: pkglint.pl,v 1.300 2005/10/21 07:20:24 rillig Exp $
+# $NetBSD: pkglint.pl,v 1.301 2005/10/23 19:20:33 rillig Exp $
#
# This version contains lots of changes necessary for NetBSD packages
# done by:
@@ -1207,6 +1207,7 @@ sub get_regex_plurals() {
.*_ENV
.*_REQD
.*_SED
+ .*_SKIP
BUILDLINK_LDADD
BUILDLINK_RECOMMENDED
COMMENT
@@ -1266,9 +1267,12 @@ sub checkline_Makefile_vartype($$) {
my ($line, $vartypes) = @_;
if ($line->text =~ $regex_varassign) {
my ($varname, $op, $value) = ($1, $2, $3);
+ my $varbase = ($varname =~ qr"(.+?)\..*") ? $1 : $varname;
+ my $type = exists($vartypes->{$varname}) ? $vartypes->{$varname}
+ : exists($vartypes->{$varbase}) ? $vartypes->{$varbase}
+ : undef;
if ($op eq "+=") {
- my $varbase = ($varname =~ qr"(.+?)\..*") ? $1 : $varname;
my $regex_plurals = get_regex_plurals();
if ($varbase !~ $regex_plurals) {
@@ -1276,71 +1280,64 @@ sub checkline_Makefile_vartype($$) {
}
}
- if (exists($vartypes->{$varname})) {
- my ($type) = ($vartypes->{$varname});
-
- if ($type eq "Readonly") {
- $line->log_error("\"${varname}\" must not be modified by the package or the user.");
+ if (!defined($type)) {
+ $line->log_info("[checkline_Makefile_vartype] Unchecked variable ${varname}");
- } elsif ($value =~ $regex_unresolved) {
- # ignore values that contain other variables
+ } elsif ($type eq "Readonly") {
+ $line->log_error("\"${varname}\" must not be modified by the package or the user.");
- } elsif ($type eq "Boolean") {
- if ($value !~ $regex_yesno) {
- $line->log_warning("$varname should be set to YES, yes, NO, or no.");
- }
-
- } elsif ($type eq "Yes_Or_Undefined") {
- if ($value !~ $regex_yes) {
- $line->log_warning("$varname should be set to YES or yes.");
- }
+ } elsif ($type eq "Boolean") {
+ if ($value !~ $regex_yesno) {
+ $line->log_warning("$varname should be set to YES, yes, NO, or no.");
+ }
- } elsif ($type eq "Mail_Address") {
- if ($value !~ $regex_mail_address) {
- $line->log_warning("\"$value\" is not a valid mail address.");
- }
+ } elsif ($type eq "Yes_Or_Undefined") {
+ if ($value !~ $regex_yes) {
+ $line->log_warning("$varname should be set to YES or yes.");
+ }
- } elsif ($type eq "URL") {
- if ($value !~ $regex_url) {
- $line->log_warning("\"$value\" is not a valid URL.");
- }
+ } elsif ($type eq "Mail_Address") {
+ if ($value !~ $regex_mail_address) {
+ $line->log_warning("\"$value\" is not a valid mail address.");
+ }
- } elsif ($type eq "Integer") {
- if ($value !~ qr"^\d+$") {
- $line->log_warning("\"$value\" is not a valid Integer.");
- }
+ } elsif ($type eq "URL") {
+ if ($value !~ $regex_unresolved && $value !~ $regex_url) {
+ $line->log_warning("\"$value\" is not a valid URL.");
+ }
- } elsif ($type =~ qr"^List(?: of (.*))?$") {
- my ($element_type) = ($1);
+ } elsif ($type eq "Integer") {
+ if ($value !~ qr"^\d+$") {
+ $line->log_warning("\"$value\" is not a valid Integer.");
+ }
- if ($op ne "+=" && $value !~ qr"^#") {
- $line->log_warning("${varname} should be modified using \"+=\".");
- }
+ } elsif ($type =~ qr"^List(?: of (.*))?$") {
+ my ($element_type) = ($1);
- if (!defined($element_type)) {
- # no further checks possible.
+ if ($op ne "+=" && $value !~ qr"^#") {
+ $line->log_warning("${varname} should be modified using \"+=\".");
+ }
- } elsif ($element_type eq "Dependency") {
- if ($value =~ $regex_unresolved) {
- # don't even try to check anything
- } elsif ($value =~ qr":\.\./\.\./") {
- # great.
- } elsif ($value =~ qr":\.\./") {
- $line->log_warning("Dependencies should have the form \"../../category/package\".");
- } else {
- $line->log_warning("Unknown dependency format.");
- }
+ if (!defined($element_type)) {
+ # no further checks possible.
+ } elsif ($element_type eq "Dependency") {
+ if ($value =~ $regex_unresolved) {
+ # don't even try to check anything
+ } elsif ($value =~ qr":\.\./\.\./") {
+ # great.
+ } elsif ($value =~ qr":\.\./") {
+ $line->log_warning("Dependencies should have the form \"../../category/package\".");
} else {
- $line->log_error("[internal] Element-type ${element_type} unknown.");
+ $line->log_warning("Unknown dependency format.");
}
} else {
- $line->log_error("[internal] Type $type unknown.");
+ $line->log_error("[internal] Element-type ${element_type} unknown.");
}
} else {
- $line->log_info("[checkline_Makefile_vartype] Unchecked variable ${varname}");
+ $line->log_error("[internal] Type $type unknown.");
}
}
}
@@ -2665,7 +2662,6 @@ sub checkdir($) {
#
sub main() {
- my ($startsec, $startusec, $endsec, $endusec);
parse_command_line();