pkgsrc-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[pkgsrc/trunk]: pkgsrc Updated pkglint to 4.36.
details: https://anonhg.NetBSD.org/pkgsrc/rev/be163bab1343
branches: trunk
changeset: 502405:be163bab1343
user: rillig <rillig%pkgsrc.org@localhost>
date: Fri Nov 04 13:57:35 2005 +0000
description:
Updated pkglint to 4.36.
Implemented checking for enumeration types. Added new types Filemask,
Filename, Language, Option, Pathmask, Pathname, Stage, Varname and
WrksrcSubdirectory. Made the check for URLs stricter. Added some
variables to the makevars.map file.
diffstat:
doc/CHANGES | 3 +-
doc/guide/Makefile | 4 +-
pkgtools/pkglint/Makefile | 4 +-
pkgtools/pkglint/files/makevars.map | 33 +++++++----
pkgtools/pkglint/files/pkglint.pl | 100 +++++++++++++++++++++++++++++------
5 files changed, 110 insertions(+), 34 deletions(-)
diffs (truncated from 326 to 300 lines):
diff -r 9d3e2a382c48 -r be163bab1343 doc/CHANGES
--- a/doc/CHANGES Fri Nov 04 13:44:37 2005 +0000
+++ b/doc/CHANGES Fri Nov 04 13:57:35 2005 +0000
@@ -1,4 +1,4 @@
-$NetBSD: CHANGES,v 1.11823 2005/11/04 09:32:34 rillig Exp $
+$NetBSD: CHANGES,v 1.11824 2005/11/04 13:58:16 rillig Exp $
Changes to the packages collection and infrastructure in 2005:
@@ -5074,3 +5074,4 @@
Updated pkgtools/pkglint to 4.34 [rillig 2005-11-04]
Added chat/iip version 1.1.0 [rillig 2005-11-04]
Updated pkgtools/pkglint to 4.35 [rillig 2005-11-04]
+ Updated pkgtools/pkglint to 4.36 [rillig 2005-11-04]
diff -r 9d3e2a382c48 -r be163bab1343 doc/guide/Makefile
--- a/doc/guide/Makefile Fri Nov 04 13:44:37 2005 +0000
+++ b/doc/guide/Makefile Fri Nov 04 13:57:35 2005 +0000
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.16 2005/11/03 01:57:15 tv Exp $
+# $NetBSD: Makefile,v 1.17 2005/11/04 13:58:17 rillig Exp $
#
DISTNAME= htdocs-share-20050727
@@ -45,7 +45,7 @@
pre-extract:
${MKDIR} ${WRKSRC}
- @cd ${FILESDIR} && ${PAX} -rw . ${WRKSRC}
+ @${LN} -s ${FILESDIR}/* ${WRKSRC}
do-build:
.for _output_ in ${OUTPUTS}
diff -r 9d3e2a382c48 -r be163bab1343 pkgtools/pkglint/Makefile
--- a/pkgtools/pkglint/Makefile Fri Nov 04 13:44:37 2005 +0000
+++ b/pkgtools/pkglint/Makefile Fri Nov 04 13:57:35 2005 +0000
@@ -1,7 +1,7 @@
-# $NetBSD: Makefile,v 1.280 2005/11/04 10:09:13 rillig Exp $
+# $NetBSD: Makefile,v 1.281 2005/11/04 13:57:35 rillig Exp $
#
-DISTNAME= pkglint-4.35
+DISTNAME= pkglint-4.36
CATEGORIES= pkgtools devel
MASTER_SITES= # empty
DISTFILES= # empty
diff -r 9d3e2a382c48 -r be163bab1343 pkgtools/pkglint/files/makevars.map
--- a/pkgtools/pkglint/files/makevars.map Fri Nov 04 13:44:37 2005 +0000
+++ b/pkgtools/pkglint/files/makevars.map Fri Nov 04 13:57:35 2005 +0000
@@ -1,4 +1,4 @@
-# $NetBSD: makevars.map,v 1.23 2005/11/03 18:49:33 rillig Exp $
+# $NetBSD: makevars.map,v 1.24 2005/11/04 13:57:35 rillig Exp $
#
# This file contains the guessed type of some variables, according to
@@ -12,16 +12,13 @@
#
# Type type List is used for variables that should only be initialized
# to the empty list or have some values appended using the "+=" operator.
-#
-# The type One_Of(...) is just used for explanation. It cannot yet be
-# checked by pkglint.
# some variables from mk/defaults/mk.conf, 1.27
MANZ Yes
MKCRYPTO YesNo
USETBL Yes
-#ABI One_Of(32 64)
+ABI { 32 64 }
IGNORE_RECOMMENDED YesNo
PKG_REGISTER_SHELLS YesNo
USE_XPKGWEDGE YesNo
@@ -29,32 +26,39 @@
EXTRACT_USING_PAX Yes
SETGIDGAME YesNo
-#USE_CRYPTO One_Of(YES NO)
+USE_CRYPTO { YES NO }
USE_CUPS Yes
USE_I586 YesNo
USE_INET6 YesNo
USE_INN Yes
-#USE_OPENLDAP One_Of(YES NO)
+USE_OPENLDAP { YES NO }
USE_OSS Yes
-#USE_SASL One_Of(YES NO)
-#USE_SASL2 One_Of(YES NO)
-#USE_SJ3 One_Of(YES NO)
-#USE_SOCKS One_Of(4 5)
-#USE_WNN4 One_Of(YES NO)
+USE_SASL { YES NO }
+USE_SASL2 { YES NO }
+USE_SJ3 { YES NO }
+USE_SOCKS { 4 5 }
+USE_WNN4 { YES NO }
USE_XFACE YesNo
# some other variables, sorted alphabetically
+BUILD_DEFS List of Varname
BUILD_DEPENDS List of Dependency
+BUILD_DIRS List* of WrksrcSubdirectory
BUILD_USES_MSGFMT Yes
CATEGORIES List* of Category
CFLAGS List
CONFIGURE_ARGS List
+CONFIGURE_DIRS List* of WrksrcSubdirectory
CONFIGURE_ENV List
CPPFLAGS List
DEPENDS List of Dependency
+DISTNAME Filename
+DISTFILES List* of Filename
GNU_CONFIGURE Yes
HOMEPAGE URL
+INSTALL_DIRS List* of WrksrcSubdirectory
+LANGUAGES List* of Language
LDFLAGS List
LIBS List
MAINTAINER Mail_Address
@@ -72,9 +76,14 @@
PKGREVISION PkgRevision
PKGVERSION Readonly
PKG_PRESERVE Yes
+PKG_SUGGESTED_OPTIONS List* of Option
+PKG_SUPPORTED_OPTIONS List* of Option
PLIST_SUBST List
+PTHREAD_OPTS List of { require native }
SUBST_CLASSES List
+SUBST_FILES List* of Pathmask
SUBST_SED List*
+SUBST_STAGE Stage
USE_LIBTOOL Yes
USE_PKGLOCALEDIR YesNo
USE_TOOLS List of Tool
diff -r 9d3e2a382c48 -r be163bab1343 pkgtools/pkglint/files/pkglint.pl
--- a/pkgtools/pkglint/files/pkglint.pl Fri Nov 04 13:44:37 2005 +0000
+++ b/pkgtools/pkglint/files/pkglint.pl Fri Nov 04 13:57:35 2005 +0000
@@ -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.326 2005/11/04 09:32:03 rillig Exp $
+# $NetBSD: pkglint.pl,v 1.327 2005/11/04 13:57:35 rillig Exp $
#
# This version contains lots of changes necessary for NetBSD packages
# done by:
@@ -679,6 +679,7 @@
if (exists($optdefs->{$opt})) {
${$optdefs->{$opt}->[0]} = $value;
} else {
+ printf STDERR ("Invalid option: ${opt}\n");
help(*STDERR, 1, 0);
}
}
@@ -711,7 +712,7 @@
if ($line->text =~ qr"^(?:#.*|\s*)$") {
# ignore empty and comment lines
- } elsif ($line->text =~ qr"^([\w\d_.]+)\s+([\w_* ]+)$") {
+ } elsif ($line->text =~ qr"^([\w\d_.]+)\s+([\w_* {}]+)$") {
$vartypes->{$1} = $2;
} else {
@@ -1447,7 +1448,12 @@
sub checktext_basic_vartype($$$$$) {
my ($line, $varname, $type, $value, $comment) = @_;
-
+ my ($value_novar);
+
+ $value_novar = $value;
+ while ($value_novar =~ s/\$\{[^{}]*\}//g) {
+ }
+
if ($type eq "Category") {
my $allowed_categories = join("|", qw(
archivers audio
@@ -1511,11 +1517,41 @@
$line->log_warning("Unknown dependency format.");
}
+ } elsif ($type eq "Filename") {
+ if ($value_novar !~ qr"^[-0-9A-Za-z._~+%]*$") {
+ $line->log_warning("\"${value}\" is not a valid filename.");
+ }
+
+ } elsif ($type eq "Filemask") {
+ if ($value_novar !~ qr"^[-0-9A-Za-z._~+%*?]*$") {
+ $line->log_warning("\"${value}\" is not a valid filename mask.");
+ }
+
+ } elsif ($type eq "Language") {
+ if ($value !~ qr"^(?:c|c\+\+|fortran)$") {
+ $line->log_warning("\"${value}\" is not a valid language.");
+ }
+
} elsif ($type eq "Mail_Address") {
if ($value !~ qr"^[-\w\d_.]+\@[-\w\d.]+$") {
$line->log_warning("\"${value}\" is not a valid mail address.");
}
+ } elsif ($type eq "Option") {
+ if ($value !~ qr"^-?[a-z][-0-9a-z]*$") {
+ $line->log_warning("\"${value}\" is not a valid option name.");
+ }
+
+ } elsif ($type eq "Pathname") {
+ if ($value_novar !~ qr"^[-0-9A-Za-z._~+%/]*$") {
+ $line->log_warning("\"${value}\" is not a valid pathname.");
+ }
+
+ } elsif ($type eq "Pathmask") {
+ if ($value_novar !~ qr"^[-0-9A-Za-z._~+%*?/]*$") {
+ $line->log_warning("\"${value}\" is not a valid pathname mask.");
+ }
+
} elsif ($type eq "PkgRevision") {
if ($value !~ qr"^\d+$") {
$line->log_warning("\"${value}\" is not a valid Integer.");
@@ -1524,6 +1560,14 @@
$line->log_error("${varname} must not be set outside the package Makefile.");
}
+ } elsif ($type eq "Readonly") {
+ $line->log_error("\"${varname}\" is a read-only variable and therefore must not be modified.");
+
+ } elsif ($type eq "Stage") {
+ if ($value !~ qr"^(?:pre|do|post)-(?:patch|configure|build|install)$") {
+ $line->log_warning("Invalid stage name. Use one of {pre,do,post}-{patch,configure,build,install}");
+ }
+
} elsif ($type eq "Tool") {
if ($value =~ qr"^(.*)(?::(.*))$") {
my ($toolname, $tooldep) = ($1, $2);
@@ -1535,9 +1579,6 @@
}
}
- } elsif ($type eq "Readonly") {
- $line->log_error("\"${varname}\" must not be modified by the package or the user.");
-
} elsif ($type eq "URL") {
if ($value =~ qr"\$\{(MASTER_SITE_.*):=(.*)\}$") {
my ($name, $subdir) = ($1, $2);
@@ -1552,7 +1593,7 @@
} elsif ($value =~ regex_unresolved) {
# No further checks
- } elsif ($value =~ qr"^(?:http://|ftp://)[-0-9A-Za-z.]+(?::\d+)?/") {
+ } elsif ($value =~ qr"^(?:http://|ftp://)[-0-9A-Za-z.]+(?::\d+)?/~?([-%&+,./0-9:=?\@A-Z_a-z]|\\#)*?$") {
my $sites = get_dist_sites();
foreach my $site (keys(%{$sites})) {
@@ -1570,6 +1611,27 @@
$line->log_warning("\"${value}\" is not a valid URL.");
}
+ } elsif ($type eq "Varname") {
+ if ($value ne "" && $value_novar eq "") {
+ # The value of another variable
+
+ } elsif ($value_novar !~ qr"^[A-Z][0-9A-Z_]*(?:[.].*)?$") {
+ $line->log_warning("\"${value}\" is not a valid variable name.");
+ }
+
+ } elsif ($type eq "WrksrcSubdirectory") {
+ if ($value =~ qr"^(\$\{WRKSRC\}(?:/|$))") {
+ my ($prefix) = ($1);
+ # TODO: uncomment after 2005Q4
+ #$line->log_note("The \"${prefix}\" prefix is not needed here.");
+
+ } elsif ($value ne "" && $value_novar eq "") {
+ # The value of another variable
+
+ } elsif ($value_novar !~ qr"^(?:\.|[0-9A-Za-z][-0-9A-Za-z._/+]*)$") {
+ $line->log_warning("\"${value}\" is not a valid subdirectory.");
+ }
+
} elsif ($type eq "Yes") {
if ($value !~ qr"^(?:YES|yes)(?:\s+#.*)?$") {
$line->log_warning("${varname} should be set to YES or yes.");
@@ -1580,6 +1642,20 @@
$line->log_warning("${varname} should be set to YES, yes, NO, or no.");
}
+ } elsif ($type =~ qr"^\{\s*(.*?)\s*\}$") {
+ my ($values) = ($1);
+ my @enum = split(qr"\s+", $values);
+ my $found = false;
+
+ foreach my $v (@enum) {
+ if ($v eq $value) {
+ $found = true;
+ }
+ }
+ if (!$found) {
+ $line->log_warning(sprintf("%s should be set to one of %s.", $varname, join(", ", @enum)));
+ }
+
} else {
Home |
Main Index |
Thread Index |
Old Index