summaryrefslogtreecommitdiff
path: root/pkgtools/pkglint/TODO
blob: 74f0e5e192a4abae34bb9b28c4c57da59e21bd68 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
$NetBSD: TODO,v 1.78 2013/10/12 18:09:59 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.

* When you understand some behavior of the code, document it by
  adding automated tests to pkglint.t!
* warn about the use of ${WRKDIR:=...}, as this construct should only
  be used with lists.
* Add checks for binary packages. See Debian/lintian for ideas.
* Of the user-defined variables, some may be used at load-time and some
  don't. Find out how pkglint can distinguish them.
* 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.
* If a dependency depends on an option (in options.mk), it should also
  depend on the same option in the buildlink3.mk file.
* Complain about ${PKGSRC_COMPILER} == "sunpro", which should be
  !empty(PKGSRC_COMPILER:Msunpro).
* If USE_TOOLS has autoconf213, and the package does stuff like
  cd ${WRKSRC} && autoconf, then an incorrect warning is issued.
* LOCALBASE should not be used in normal Makefiles
* complain if LICENSE definition is missing
* don't complain about "procedure calls", like for pkg-build-options in
  the various buildlink3.mk files.

%

if package A conflicts with B, then B should also conflict with A.

%

* When pkglint runs on a case-insensitive filesystem, it should still
  point out problems that only occur on case-sensitive filesystems. For
  example, devel/p5-Net-LDAP and devel/p5-Net-ldap should be considered
  different paths.

%

* Warn about using REPLACE_PYTHON without including application.mk.