Sat Jun 13 06:30:25 2009 UTC ()
Introduced the emulation framework to pkglint.


(rillig)
diff -r1.194 -r1.195 pkgsrc/pkgtools/pkglint/files/makevars.map
diff -r1.812 -r1.813 pkgsrc/pkgtools/pkglint/files/pkglint.pl

cvs diff -r1.194 -r1.195 pkgsrc/pkgtools/pkglint/files/Attic/makevars.map (expand / switch to unified diff)

--- pkgsrc/pkgtools/pkglint/files/Attic/makevars.map 2009/04/09 00:55:12 1.194
+++ pkgsrc/pkgtools/pkglint/files/Attic/makevars.map 2009/06/13 06:30:25 1.195
@@ -1,14 +1,14 @@ @@ -1,14 +1,14 @@
1# $NetBSD: makevars.map,v 1.194 2009/04/09 00:55:12 joerg Exp $ 1# $NetBSD: makevars.map,v 1.195 2009/06/13 06:30:25 rillig Exp $
2# 2#
3 3
4# This file contains the guessed type of some variables, according to 4# This file contains the guessed type of some variables, according to
5# their current use in pkgsrc. 5# their current use in pkgsrc.
6# 6#
7# The type YesNo is used for variables that are checked using 7# The type YesNo is used for variables that are checked using
8# .if defined(VAR) && !empty(VAR:M[Yy][Ee][Ss]) 8# .if defined(VAR) && !empty(VAR:M[Yy][Ee][Ss])
9# 9#
10# The type Yes is used for variables that are checked using 10# The type Yes is used for variables that are checked using
11# .if defined(VAR) 11# .if defined(VAR)
12# 12#
13# Type type List is used for lists of things. There are two types of lists, 13# Type type List is used for lists of things. There are two types of lists,
14# InternalList and List, which are described in the pkgsrc guide, chapter 14# InternalList and List, which are described in the pkgsrc guide, chapter
@@ -296,26 +296,41 @@ EMACS_BIN Pathname [$system] @@ -296,26 +296,41 @@ EMACS_BIN Pathname [$system]
296EMACS_ETCPREFIX Pathname [$system] 296EMACS_ETCPREFIX Pathname [$system]
297EMACS_FLAVOR { emacs xemacs } [$system] 297EMACS_FLAVOR { emacs xemacs } [$system]
298EMACS_INFOPREFIX Pathname [$system] 298EMACS_INFOPREFIX Pathname [$system]
299EMACS_LISPPREFIX Pathname [$system] 299EMACS_LISPPREFIX Pathname [$system]
300EMACS_MODULES List of Identifier [m:as,c:as] 300EMACS_MODULES List of Identifier [m:as,c:as]
301EMACS_PKGNAME_PREFIX Identifier [$system] 301EMACS_PKGNAME_PREFIX Identifier [$system]
302# ^^ or the empty string. 302# ^^ or the empty string.
303EMACS_TYPE { emacs xemacs } [$system] 303EMACS_TYPE { emacs xemacs } [$system]
304EMACS_USE_LEIM Yes 304EMACS_USE_LEIM Yes
305EMACS_VERSIONS_ACCEPTED List of { emacs22 emacs22nox emacs21 emacs21nox emacs20 xemacs215 xemacs214 } [m:s] 305EMACS_VERSIONS_ACCEPTED List of { emacs22 emacs22nox emacs21 emacs21nox emacs20 xemacs215 xemacs214 } [m:s]
306EMACS_VERSION_MAJOR Integer [$system] 306EMACS_VERSION_MAJOR Integer [$system]
307EMACS_VERSION_MINOR Integer [$system] 307EMACS_VERSION_MINOR Integer [$system]
308EMACS_VERSION_REQD List of { emacs22 emacs22nox emacs21 emacs21nox emacs20 xemacs215 xemacs214 } [m:as] 308EMACS_VERSION_REQD List of { emacs22 emacs22nox emacs21 emacs21nox emacs20 xemacs215 xemacs214 } [m:as]
 309EMULDIR Pathname [$system]
 310EMULSUBDIR Pathname [$system]
 311OPSYS_EMULDIR Pathname [$system]
 312EMULSUBDIRSLASH Pathname [$system]
 313EMUL_ARCH { i386 none } [$system]
 314EMUL_DISTRO Identifier [$system]
 315EMUL_IS_NATIVE Yes [$system]
 316EMUL_MODULES.* List of Identifier [$package]
 317EMUL_OPSYS { linux } [$system]
 318EMUL_PKG_FMT { plain rpm } [$package]
 319EMUL_PLATFORM EmulPlatform [$user]
 320EMUL_PLATFORMS List of EmulPlatform [$package]
 321EMUL_PREFER List of EmulPlatform [$user]
 322EMUL_REQD InternalList of Dependency [$package]
 323EMUL_TYPE.* { native builtin suse suse-9.1 suse-9.x suse-10.0 suse-10.x } [$user]
309ERROR_CAT ShellCommand [$system] 324ERROR_CAT ShellCommand [$system]
310ERROR_MSG ShellCommand [$system] 325ERROR_MSG ShellCommand [$system]
311EVAL_PREFIX InternalList of ShellWord [m:a,c:a] 326EVAL_PREFIX InternalList of ShellWord [m:a,c:a]
312# ^^ FIXME: Looks like a type mismatch. 327# ^^ FIXME: Looks like a type mismatch.
313EXPORT_SYMBOLS_LDFLAGS List of LdFlag [$system] 328EXPORT_SYMBOLS_LDFLAGS List of LdFlag [$system]
314EXTRACT_CMD ShellCommand [$system] 329EXTRACT_CMD ShellCommand [$system]
315EXTRACT_ELEMENTS List of Pathmask [$package_list] 330EXTRACT_ELEMENTS List of Pathmask [$package_list]
316EXTRACT_ONLY List of Pathname [$package_list] 331EXTRACT_ONLY List of Pathname [$package_list]
317EXTRACT_OPTS List of ShellWord [m:as,c:as] 332EXTRACT_OPTS List of ShellWord [m:as,c:as]
318EXTRACT_OPTS_BIN List of ShellWord [m:as,c:as] 333EXTRACT_OPTS_BIN List of ShellWord [m:as,c:as]
319EXTRACT_OPTS_LHA List of ShellWord [m:as,c:as] 334EXTRACT_OPTS_LHA List of ShellWord [m:as,c:as]
320EXTRACT_OPTS_PAX List of ShellWord [m:as,c:as] 335EXTRACT_OPTS_PAX List of ShellWord [m:as,c:as]
321EXTRACT_OPTS_RAR List of ShellWord [m:as,c:as] 336EXTRACT_OPTS_RAR List of ShellWord [m:as,c:as]

cvs diff -r1.812 -r1.813 pkgsrc/pkgtools/pkglint/files/Attic/pkglint.pl (expand / switch to unified diff)

--- pkgsrc/pkgtools/pkglint/files/Attic/pkglint.pl 2009/05/26 21:40:42 1.812
+++ pkgsrc/pkgtools/pkglint/files/Attic/pkglint.pl 2009/06/13 06:30:25 1.813
@@ -1,15 +1,15 @@ @@ -1,15 +1,15 @@
1#! @PERL@ 1#! @PERL@
2# $NetBSD: pkglint.pl,v 1.812 2009/05/26 21:40:42 rillig Exp $ 2# $NetBSD: pkglint.pl,v 1.813 2009/06/13 06:30:25 rillig Exp $
3# 3#
4 4
5# pkglint - static analyzer and checker for pkgsrc packages 5# pkglint - static analyzer and checker for pkgsrc packages
6# 6#
7# Written by: 7# Written by:
8# Roland Illig <rillig@NetBSD.org> 8# Roland Illig <rillig@NetBSD.org>
9# 9#
10# Based on work by: 10# Based on work by:
11# Hubert Feyrer <hubertf@NetBSD.org> 11# Hubert Feyrer <hubertf@NetBSD.org>
12# Thorsten Frueauf <frueauf@NetBSD.org> 12# Thorsten Frueauf <frueauf@NetBSD.org>
13# Thomas Klausner <wiz@NetBSD.org> 13# Thomas Klausner <wiz@NetBSD.org>
14# and others. 14# and others.
15# 15#
@@ -4969,26 +4969,50 @@ sub checkline_mk_vartype_basic($$$$$$$$) @@ -4969,26 +4969,50 @@ sub checkline_mk_vartype_basic($$$$$$$$)
4969 $line->log_warning("Unknown dependency format."); 4969 $line->log_warning("Unknown dependency format.");
4970 $line->explain_warning( 4970 $line->explain_warning(
4971"Examples for valid dependencies are:", 4971"Examples for valid dependencies are:",
4972" package-[0-9]*:../../category/package", 4972" package-[0-9]*:../../category/package",
4973" package>=3.41:../../category/package", 4973" package>=3.41:../../category/package",
4974" package-2.718:../../category/package"); 4974" package-2.718:../../category/package");
4975 } 4975 }
4976 4976
4977 } elsif ($type eq "DistSuffix") { 4977 } elsif ($type eq "DistSuffix") {
4978 if ($value eq ".tar.gz") { 4978 if ($value eq ".tar.gz") {
4979 $line->log_note("${varname} is \".tar.gz\" by default, so this definition may be redundant."); 4979 $line->log_note("${varname} is \".tar.gz\" by default, so this definition may be redundant.");
4980 } 4980 }
4981 4981
 4982 } elsif ($type eq "EmulPlatform") {
 4983 if ($value =~ m"^(\w+)-(\w+)$") {
 4984 my ($opsys, $arch) = ($1, $2);
 4985
 4986 if ($opsys !~ m"^(?:bsdos|darwin|dragonfly|freebsd|hpux|interix|irix|linux|netbsd|openbsd|osf1|sunos)$") {
 4987 $line->log_warning("Unknown operating system: ${opsys}");
 4988 }
 4989 # no check for $os_version
 4990 if ($arch !~ m"^(?:i386|alpha|amd64|arc|arm|arm32|cobalt|convex|dreamcast|hpcmips|hpcsh|hppa|ia64|m68k|m88k|mips|mips64|mipsel|mipseb|mipsn32|ns32k|pc532|pmax|powerpc|rs6000|s390|sparc|sparc64|vax|x86_64)$") {
 4991 $line->log_warning("Unknown hardware architecture: ${arch}");
 4992 }
 4993
 4994 } else {
 4995 $line->log_warning("\"${value}\" is not a valid emulation platform.");
 4996 $line->explain_warning(
 4997"An emulation platform has the form <OPSYS>-<MACHINE_ARCH>.",
 4998"OPSYS is the lower-case name of the operating system, and MACHINE_ARCH",
 4999"is the hardware architecture.",
 5000"",
 5001"Examples: linux-i386, irix-mipsel.");
 5002 }
 5003
 5004
 5005
4982 } elsif ($type eq "Filename") { 5006 } elsif ($type eq "Filename") {
4983 if ($value_novar =~ m"/") { 5007 if ($value_novar =~ m"/") {
4984 $line->log_warning("A filename should not contain a slash."); 5008 $line->log_warning("A filename should not contain a slash.");
4985 5009
4986 } elsif ($value_novar !~ m"^[-0-9\@A-Za-z.,_~+%]*$") { 5010 } elsif ($value_novar !~ m"^[-0-9\@A-Za-z.,_~+%]*$") {
4987 $line->log_warning("\"${value}\" is not a valid filename."); 5011 $line->log_warning("\"${value}\" is not a valid filename.");
4988 } 5012 }
4989 5013
4990 } elsif ($type eq "Filemask") { 5014 } elsif ($type eq "Filemask") {
4991 if ($value_novar !~ m"^[-0-9A-Za-z._~+%*?]*$") { 5015 if ($value_novar !~ m"^[-0-9A-Za-z._~+%*?]*$") {
4992 $line->log_warning("\"${value}\" is not a valid filename mask."); 5016 $line->log_warning("\"${value}\" is not a valid filename mask.");
4993 } 5017 }
4994 5018