- Added an explanation for the ${WRKSRC}/.. warning, since it is not
documented anywhere else.
- Improved two diagnostics for buildlink3.mk files.
- Added a check to discover package name mismatches in
BUILDLINK_{ABI,API}_DEPENDS, as well as the version numbers.
variable to show whether the package supports running the check-files
target.
Set CHECK_FILES_SUPPORTED to "no" in pkgtools/pkg_install in the case
where the PREFIX does not match ${LOCALBASE} it's likely the tools are
being installed in some place that's completely outside pkgsrc control,
and check-files fails horribly in that case.
- Handle new way of building BUILD_VERSION, by doing less ourselves
and (ab)using the pkgsrc infrastrafructure. Jump through some
hoops to ensure a package is not reported as different due to
BUILD_VERSION format versions (assuming the package is identical
otherwise). Only -B affected.
list of shell words, or sometimes as a single shell word. Compare: ${LD}
${LDFLAGS} and ./configure -libs ${LDFLAGS:Q}. So in this case, the :Q
operator cannot be checked reliably.
unchecked before (mainly because of limitations in earlier pkglint
versions). Added ACL constants for user-defined, system-defined and
command-line variables.
Changes since 4.63:
- Many diagnostics for the :Q operator have been wrong. They are currently
left out, but will be re-added later. In the mean time, no diagnostics
are better than wrong ones.
- Made defining the permissions for variables easier by providing a way to
define "permission constants".
appear in an assignment of its own", since it had been misunderstood at
least once. Also, since the explanation is usually several lines long,
it does not hurt to add two extra empty lines to separate the
explanation from the actual warning.
Changes since 4.62:
- Improved checking of variable permissions.
- Improved detection of unused variables, for spell checking.
- Added warnings for variables that are used at load time but should not.
- Much code cleanup.
for lists of something, this can lead to unexpected behavior. Currently,
only the variables BUILDLINK_DEPENDS, BUILDLINK_PACKAGES and PKG_OPTIONS
may be looked at during load time.
This warning reveals the bad practice to "patch" CONFIGURE_ARGS at load
time, for example:
> CONFIGURE_ARGS:= ${CONFIGURE_ARGS:S/--disable-esd/--enable-esd/}
WARN: audio/bmp-esound/Makefile:14: CONFIGURE_ARGS should not be
evaluated at load time.
into a single subroutine, checkline_mk_varuse, which replaces the
various ad-hoc checks. Added the class PkgLint::VarUseContext that tries
to model the context in which a make(1) variable can appear. The checks
are much better now than before, but there's still work to do. Added a
new type FileMode for file permissions.
Currently no warnings are printed for untyped variables (that is,
user-defined and not following the common naming schemes). This includes
the iteration variables of .for loops. Since many of the warnings have
been overly strict, this is not a big loss.