diff options
author | rillig <rillig> | 2006-02-15 11:41:01 +0000 |
---|---|---|
committer | rillig <rillig> | 2006-02-15 11:41:01 +0000 |
commit | b9c591226b19706371583b75b500feb742908e25 (patch) | |
tree | 7df6e7e319e7721510b4ddabb0f801d0365e66ea | |
parent | 7022f49147be17f6996f5a8c12790d255e940994 (diff) | |
download | pkgsrc-b9c591226b19706371583b75b500feb742908e25.tar.gz |
- Added some more variables and a new data type, LdFlags.
-rw-r--r-- | pkgtools/pkglint/files/makevars.map | 58 | ||||
-rw-r--r-- | pkgtools/pkglint/files/pkglint.pl | 25 |
2 files changed, 77 insertions, 6 deletions
diff --git a/pkgtools/pkglint/files/makevars.map b/pkgtools/pkglint/files/makevars.map index 5b2397927de..151fc3f521e 100644 --- a/pkgtools/pkglint/files/makevars.map +++ b/pkgtools/pkglint/files/makevars.map @@ -1,4 +1,4 @@ -# $NetBSD: makevars.map,v 1.60 2006/02/14 22:57:18 rillig Exp $ +# $NetBSD: makevars.map,v 1.61 2006/02/15 11:41:01 rillig Exp $ # # This file contains the guessed type of some variables, according to @@ -36,8 +36,10 @@ USE_INET6 YesNo ALL_ENV List+ of ShellWord ALTERNATIVES_FILE Filename +ALTERNATIVES_SRC List+ of Pathname APACHE_MODULE Yes AUTOCONF_REQD List+ +AUTOMAKE_OVERRIDE List+ of Pathmask BDB185_DEFAULT Userdefined BDBBASE Readonly BDB_ACCEPTED List of { db1 db2 db3 db4 } @@ -46,13 +48,21 @@ BDB_LIBS Readonly BDB_TYPE Readonly BROKEN_GETTEXT_DETECTION YesNo BROKEN_IN List of { pkgsrc-2005Q4 } +BUILDLINK_CONTENTS_FILTER List of ShellWord +# ^^ ShellCommand +BUILDLINK_CFLAGS List+ of CFlag BUILDLINK_CPPFLAGS List+ of CFlag BUILDLINK_DEPENDS List!+ of Dependency BUILDLINK_DEPMETHOD BuildlinkDepmethod BUILDLINK_DEPTH BuildlinkDepth BUILDLINK_FILES List+ of Pathmask +BUILDLINK_FILES_CMD List of ShellWord +# ^^ ShellCommand BUILDLINK_INCDIRS List of Pathname +BUILDLINK_LDADD List of LdFlag +BUILDLINK_LDFLAGS List+ of LdFlag BUILDLINK_LIBDIRS List of Pathname +BUILDLINK_LIBS List of LdFlag BUILDLINK_PACKAGES BuildlinkPackages BUILDLINK_PASSTHRU_DIRS List+ of Pathname BUILDLINK_PKGSRCDIR RelativePkgDir @@ -71,6 +81,7 @@ BUILTIN_PKG Identifier BUILTIN_FIND_FILES_VAR List of Varname BUILTIN_FIND_FILES List of Pathname BUILTIN_FIND_GREP List +BUILTIN_FIND_LIBS List of Pathname BUILTIN_X11_TYPE Readonly BUILTIN_X11_VERSION Readonly CATEGORIES List of Category @@ -78,6 +89,7 @@ CC_VERSION Readonly CC Readonly CFLAGS List+ of CFlag CHECK_BUILTIN YesNo +CHECK_INTERPRETER_SKIP List+ of Pathmask CHECK_SHLIBS YesNo CHECK_WRKREF_SKIP List+ of Pathmask COMMENT Comment @@ -89,6 +101,7 @@ CONFIGURE_HAS_MANDIR YesNo CONFIGURE_SCRIPT Pathname CONFIG_GUESS_OVERRIDE List+ of Pathmask CONFIG_STATUS_OVERRIDE List+ of Pathmask +CONFIG_SHELL ShellWord CONFIG_SUB_OVERRIDE List+ of Pathmask CONFLICTS List of Dependency CONF_FILES List of ShellWord @@ -101,13 +114,18 @@ CXXFLAGS List+ of CFlag DEINSTALL_FILE Pathname DEINSTALL_EXTRA_TMPL List+ of Pathname DEPENDS List!+ of DependencyWithPath +DESCR_SRC List of Pathname DISTFILES List of Filename DISTINFO_FILE RelativePkgPath DISTNAME Filename DIST_SUBDIR Filename DJB_BUILD_TARGETS List of Identifier +DJB_CONFIG_CMDS List of ShellWord +# ^^ ShellCommand, terminated by a semicolon DJB_RESTRICTED YesNo +DJB_MAKE_TARGETS List of Identifier DL_AUTO_VARS Yes +DL_LIBS List+ of LdFlag EMACS_BIN Readonly EMACS_ETCPREFIX Readonly EMACS_FLAVOR Readonly @@ -117,24 +135,41 @@ EMACS_PKGNAME_PREFIX Readonly EMACS_TYPE Userdefined EMACS_USE_LEIM Yes EMACS_VERSIONS_ACCEPTED List of { emacs21 emacs21nox emacs20 xemacs215 xemacs214 } +EMACS_VERSION_REQD List+ +# ^^ of Version EXTRACT_CMD List of ShellWord EXTRACT_ELEMENTS List of Pathmask EXTRACT_ONLY List of Pathname +EXTRACT_OPTS List of ShellWord +EXTRACT_OPTS_BIN List of ShellWord +EXTRACT_OPTS_LHA List of ShellWord +EXTRACT_OPTS_PAX List of ShellWord +EXTRACT_OPTS_RAR List of ShellWord +EXTRACT_OPTS_TAR List of ShellWord EXTRACT_OPTS_ZIP List of ShellWord +EXTRACT_OPTS_ZOO List of ShellWord EXTRACT_SUFX DistSuffix EXTRACT_USING { gtar nbtar pax } FAMBASE Readonly FAM_ACCEPTED List of { fam gamin } FAM_DEFAULT Userdefined FAM_TYPE Readonly +FETCH_BEFORE_ARGS List of ShellWord FILESDIR RelativePkgPath FILES_SUBST List+ of ShellWord +FONTS_DIRS List+ of Pathname GCC_REQD List+ +GENERATE_PLIST List+ of ShellWord +# ^^ List+ of Shellcommand, terminated with a semicolon +GNU_ARCH { mips } GNU_CONFIGURE Yes +GNU_CONFIGURE_MANDIR Pathname GNU_CONFIGURE_PREFIX Pathname HAS_CONFIGURE Yes HOMEPAGE URL INCOMPAT_CURSES List of PlatformTriple +INFO_DIR Pathname +# ^^ relative to PREFIX INFO_FILES List of Pathmask INSTALLATION_DIRS List of Pathname INSTALL_DIRS List of WrksrcSubdirectory @@ -143,14 +178,14 @@ INSTALL_MAKE_FLAGS List+ of ShellWord INSTALL_SCRIPTS_ENV List+ of ShellWord INSTALL_TARGET List of Identifier INSTALL_UNSTRIPPED YesNo -INTERACTIVE_STAGE { fetch configure build install } +INTERACTIVE_STAGE List of { fetch extract configure build install } IS_BUILTIN YesNoFromCommand KRB5BASE Readonly KRB5_ACCEPTED List of { heimdal mit-krb5 } KRB5_DEFAULT Userdefined KRB5_TYPE Readonly -LDFLAGS List+ -LIBS List+ +LDFLAGS List+ of LdFlag +LIBS List+ of LdFlag LIBTOOL_OVERRIDE List+ of Pathmask LICENSE Identifier LTCONFIG_OVERRIDE List+ of Pathmask @@ -166,6 +201,7 @@ MANCOMPRESSED YesNo MANCOMPRESSED_IF_MANZ Yes MANZ Yes MASTER_SITES List of URL +MASTER_SORT_REGEX List MESSAGE_SRC List of Pathname MESSAGE_SUBST List+ of ShellWord MYSQL_VERSIONS_ACCEPTED List of { 40 41 50 } @@ -177,8 +213,11 @@ NO_BIN_ON_FTP Message NO_BUILD Yes NO_CHECKSUM Yes NO_CONFIGURE Yes +NO_EXPORT_CPP Yes +NO_EXTRACT Yes NO_INSTALL_MANPAGES Yes NO_MTREE Yes +NO_PACKAGE Message NO_PKGTOOLS_REQD_CHECK Yes NO_PKG_REGISTER Yes NO_SRC_ON_CDROM Message @@ -195,6 +234,7 @@ PAM_DEFAULT Userdefined PAM_TYPE Readonly PATCHDIR RelativePkgPath PATCHFILES List of Filename +PATCH_DIST_ARGS List of ShellWord PATCH_DIST_STRIP List of ShellWord PATCH_SITES List of URL PERL5_PACKLIST Perl5Packlist @@ -226,6 +266,7 @@ PKG_JVM Readonly PKG_JVMS_ACCEPTED List of { blackdown-jdk13 jdk jdk14 kaffe sun-jdk13 sun-jdk14 sun-jdk15 } PKG_JVM_DEFAULT Userdefined PKG_LEGACY_OPTIONS List of Option +PKG_LIBTOOL Pathname PKG_OPTIONS Readonly PKG_OPTIONS_DEPRECATED_WARNINGS List of ShellWord PKG_OPTIONS_GROUP List @@ -238,6 +279,7 @@ PKG_OPTIONS_SET List PKG_OPTIONS_VAR PkgOptionsVar PKG_PRESERVE Yes PKG_SHELL Pathname +PKG_SHLIBTOOL Pathname PKG_SKIP_REASON List+ of ShellWord PKG_SUFX Userdefined PKG_SUGGESTED_OPTIONS List of Option @@ -258,6 +300,7 @@ REPLACE_EMACS List+ of Pathmask REPLACE_INTERPRETER List+ of Identifier REPLACE_PERL List+ of Pathmask REQD_DIRS List+ of Pathname +REQD_FILES List+ of Pathname REQD_FILES_MODE { 0644 0640 0600 0400 } RESTRICTED Message SCRIPTS_ENV List+ of ShellWord @@ -276,6 +319,7 @@ TEST_DIRS List of WrksrcSubdirectory TEST_ENV List+ of ShellWord TEST_TARGET List of Identifier TEX_ACCEPTED List of { teTeX1 teTeX2 teTeX3 } +TEX_DEPMETHOD { build run } TEXINFO_REQD List+ TOOLS_ALIASES List+ of Filename TOOLS_BROKEN List+ of Tool @@ -286,13 +330,17 @@ TOOLS_PATH Pathname UNLIMIT_RESOURCES List of { datasize stacksize memorysize } UNWRAP_FILES List+ of Pathmask USE_BUILTIN YesNoFromCommand +USE_CROSSBASE Yes USE_DIRS List of PkgName +USE_GNU_ICONV Yes +USE_GNU_READLINE Yes USE_IMAKE Yes USE_JAVA { run yes } USE_JAVA2 { YES yes 1.4 1.5 } USE_LANGUAGES List of { c c++ fortran java objc } USE_LIBTOOL Yes USE_MAKEINFO Yes +USE_MSGFMT_PLURALS Yes USE_NCURSES Yes USE_OLD_DES_API YesNo USE_PKGINSTALL Yes @@ -301,6 +349,8 @@ USE_PKGSRC_GCC Userdefined USE_TOOLS List+ of Tool USE_X11 Yes USE_X11BASE Yes +WRAPPER_REORDER_CMDS List+ of ShellWord WRKSRC WrkdirSubdirectory X11_PKGSRCDIR Readonly X11_TYPE Userdefined +XAW_TYPE { 3d neXtaw standard xpm } diff --git a/pkgtools/pkglint/files/pkglint.pl b/pkgtools/pkglint/files/pkglint.pl index 95455c1a467..4881e16c332 100644 --- a/pkgtools/pkglint/files/pkglint.pl +++ b/pkgtools/pkglint/files/pkglint.pl @@ -1,5 +1,5 @@ #! @PERL@ -# $NetBSD: pkglint.pl,v 1.516 2006/02/14 22:03:19 rillig Exp $ +# $NetBSD: pkglint.pl,v 1.517 2006/02/15 11:41:01 rillig Exp $ # # pkglint - static analyzer and checker for pkgsrc packages @@ -1931,7 +1931,7 @@ sub determine_used_variables($) { foreach my $line (@{$lines}) { $line->log_debug("."); $rest = $line->text; - while ($rest =~ s/(?:\$\{|defined\(|empty\()([0-9.A-Z_a-z]+)[:})]//) { + while ($rest =~ s/(?:\$\{|defined\(|empty\()([0-9+.A-Z_a-z]+)[:})]//) { my ($varname) = ($1); $varuse->{$varname} = $line; $line->log_debug("Variable ${varname} is used."); @@ -2860,6 +2860,27 @@ sub checkline_mk_vartype_basic($$$$$$) { $line->log_warning("Invalid identifier \"${value}\"."); } + } elsif ($type eq "LdFlag") { + if ($value =~ qr"^-L(.*)") { + my ($dirname) = ($1); + + $opt_debug and $line->log_warning("Unchecked directory ${dirname} in ${varname}."); + + } elsif ($value =~ qr"^-l(.*)") { + my ($libname) = ($1); + + $opt_debug and $line->log_warning("Unchecked library name ${libname} in ${varname}."); + + } elsif ($value =~ qr"^-.*") { + $line->log_warning("Unknown linker flag \"${value}\"."); + + } elsif ($value =~ regex_unresolved) { + $line->log_debug("Unresolved LDFLAG: ${value}\n"); + + } else { + $line->log_warning("Linker flag \"${value}\" does not start with a dash."); + } + } elsif ($type eq "Mail_Address") { if ($value =~ qr"^([-\w\d_.]+)\@([-\w\d.]+)$") { my (undef, $domain) = ($1, $2); |