pkgsrc/pkgtools/pkglint/TODO

56 lines
2.5 KiB
Text
Raw Normal View History

2008-11-25 20:11:39 +01:00
$NetBSD: TODO,v 1.69 2008/11/25 19:11:39 rillig Exp $
Please add your own entries at the bottom of this file. If possible,
include the name of an example package where a warning should occur.
2005-04-30 13:50:42 +02:00
* fix false positive warnings
* warn about the use of ${WRKDIR:=...}, as this construct should only
be used with lists.
* record with each substring its source location to be able to make
even more precise diagnostics
* Many of the checking routines need some context to provide better
warnings. For example, checkline_foo() may need to know what has
happened in the file before that line.
* Add checks for binary packages. See Debian/lintian for ideas.
2006-06-03 02:12:38 +02:00
* Of the user-defined variables, some may be used at load-time and some
don't. Find out how pkglint can distinguish them.
Updated pkglint to 4.66. This change includes all the things I thought of during the freeze of 2006Q2. Some variables have disappeared from pkgsrc without notice. Marked them deprecated to help the package authors at least a bit. Renamed some ACL abbreviations in makevars.map and adjusted the variable definitions. Added the command line options -Dtrace, -Dunchecked and -Dunused. Some variables may contain unexpected white-space and therefore should not be used in .for loops. The -Dmisc option replaces the --verbose option (and the log_info subroutine), which does not exist any longer. This eliminates all instances of "OK:" from the output, which I didn't like from the beginning. The -Dmisc option also takes over many warnings that have been issued by --debug before. Improved the check for absolute pathnames. Especially, everything that follows ${DESTDIR} or $(DESTDIR) in a Makefile is considered an absolute pathname. This reveals many wrong uses of DESTDIR (as defined by the GNU coding standards), for example $(DESTDIR)/$(prefix), which should be $(DESTDIR)$(prefix) instead. Almost every use of a make(1) variable is checked for spelling mistakes. Before, only the definitions of variables have been checked. Restricted the use of variables to specific files, which are defined in makevars.map. This catches especially buildlink3.mk files with unexpected side effects. In shell commands, neither "echo" nor "echo -n" or "${ECHO} -n" should be used. Since the INSTALL_*_DIR commands can only handle one directory at a time, suggest to use INSTALLATION_DIRS instead. Greatly improved the checks for dependency specifications, especially to find foo-*, which should rather be foo-[0-9]*. Fixed the incorrect handling of LICENSE_FILE (now using $line->text instead of $line). Improved the wording of the "plural names" warnings, so that for known variables it is "The += operator should only be used with lists." now. In buildlink3.mk files the uppercase and lowercase names of the package should correspond with the package name. This catches many copy-and-paste mistakes. Fixed many null pointer exceptions as well. In addition, every buildlink3.mk file needs a definition of BUILDLINK_API_DEPENDS. In patch files, absolute pathnames and unportable macro names are checked not only in added lines, but also in the context lines. In the pkgsrc root directory and the category directories, the Makefiles are checked like every other Makefile, too. Fixed the place where the global variables for the package context are defined and later undefined. Variables that are mentioned in EVAL_PREFIX may be used in the current file and are not flagged as "used but not defined". When parsing shell words in Makefiles, recognize $<, $@, $^ and $/. (The latter is used extensively by openoffice to represent a directory separator.) Fixed some minor bugs: * $makevar had been defined unintentionally by using the -> operator.
2006-07-02 11:47:17 +02:00
* Make sure that no variable is modified at load-time after it has been
used once. This should at least flag BUILD_DEFS in bsd.pkg.mk.
* Implement unescape_shellword, which is required for the type check for
SedCommand.
* Invent an annotation scheme for files that intentionally define
variables for use in other files.
* ${MACHINE_ARCH}-${LOWER_OPSYS}elf in PLISTs etc. is a NetBSD config.guess
problem ==> use of ${APPEND_ELF}
* Packages including lang/python/extension.mk must follow the Python version
scheme. Enforcing PYPKGPREFIX for those is most likely a good idea.
* Check for parallel files/dirs whose names differ only in case.
* Check for license files that are completely unused.
2008-02-05 03:10:38 +01:00
* If a dependency depends on an option (in options.mk), it should also
depend on the same option in the buildlink3.mk file.
2008-02-08 23:43:27 +01:00
* Complain about ${PKGSRC_COMPILER} == "sunpro", which should be
!empty(PKGSRC_COMPILER:Msunpro).
2008-03-05 22:14:05 +01:00
* If USE_TOOLS has autoconf213, and the package does stuff like
cd ${WRKSRC} && autoconf, then an incorrect warning is issued.
2008-04-07 19:34:51 +02:00
* LOCALBASE should not be used in normal Makefiles
2008-03-06 10:34:41 +01:00
%
mail/mail-notification failed for Thomas, apparently because of an
unexpressed dependency on hicolor-icon-theme. I don't know if it's
possible to add a way to notice that the PLIST contains hicolor files
but that there's no dependency, or perhaps a list of mappings of sets of
PLIST regexes to sets of required packages, or something.
%
* don't complain about "procedure calls", like for pkg-build-options in
the various buildlink3.mk files.
2008-03-10 23:01:04 +01:00
* To push DESTDIR support forward, it would be useful it pkglint warned
like this if PKG_DESTDIR_SUPPORT is not defined:
"WARN: Please consider adding DESTDIR support to the package."
2008-11-25 20:11:39 +01:00
%
if package A conflicts with B, then B should also conflict with A.