Changes since 22.2.1:
Require the current checksum algorithms for pkgsrc-wip packages as well.
SHA1 and RMD160 are no longer allowed for distfiles.
Do not warn about 'Package should not' when checking .mk files in the
pkgsrc infrastructure.
Changes since 22.2.0:
Suggest simpler condition when matching a variable against a pattern
(occurs 220 times in pkgsrc).
Improve explanation for documenting patches.
Changes since 22.1.0:
In ALTERNATIVES files, the wrapper path must be either in bin,
@PKGMANDIR@ or sbin. This catches typos like "in" instead of "bin", as
well as hard-coded "man".
Collection of tools written in C to improve the performance of certain
sections of the pkgsrc mk infrastructure where shell is too slow.
For now this just includes mk-buildlink-symlinks which is used to generate
the buildlink3 symlinks as part of the "wrapper" phase.
When parse-guessing a package Makefile, lintpkgsrc tries to evaluate
variable expressions such as ${VAR:S,from,to,} by passing them through
Perl's eval function.
In a variable expression of the form ${VAR:S,@exec@,${exec},}, this
produced Perl warnings due to the unescaped '@':
Possible unintended interpolation of @exec in string at
(eval 63841) line 1.
As a quick fix, skip ':S' modifiers that contain the character '@' for
now. A proper fix will follow.
- New option `sysroot=<dir>':
. Wrapper will add `--sysroot=<dir>' as first argument.
. For every rpath argument, e.g. -Wl,-R<path> to cc, wrapper will
pass `-rpath-link <dir><path>' to the linker.
This matches the old mk/wrapper/cmd-sink-cross-* logic.
- Create wrappers for the ${MACHINE_GNU_PLATFORM}-cc style of command,
as in ${CC}, ${CXX}, ${LD} for cross-builds.
- Bump version.
- Use TOOL_DEPENDS, not BUILD_DEPENDS, for cwrappers.
Changes since 21.4.4:
Python packages that declare 2.7 as an incompatible Python version no
longer need to provide a rationale for this since it is common knowledge
that Python 2.7 is old and therefore unsupported by many modern
packages.
Changes since 21.4.2:
In simple Makefiles, do not allow the GitHub variables like
GITHUB_RELEASE to occur above DISTNAME anymore. Previously, these
variables had 2 possible places in the "canonical" order.
gcc 11 with -O2 optimizes away the store of the bit length into the
last 8 bytes of the context buffer due to an aliasing violation
(stored through uint64_t, retrieved through uint32_t).
To fix this, import the NetBSD patch from christos[0] which makes
it use memcpy instead.
[0] http://cvsweb.netbsd.org/bsdweb.cgi/src/common/lib/libc/hash/sha2/sha2.c.diff?r1=1.12&r2=1.13
Previously, it was necessary to create the package directory, change
into it and then run url2pkg from there. Since the name of the package
directory usually corresponds to DISTNAME without the version number,
all necessary data is readily available, so automate this.
Update version to 21.4.2.
In a few commits, this will allow url2pkg to be run from a category
directory, thereby omitting the need to create the package directory
manually.
No functional change.
Changes since 21.4.1:
When checking a package, check for naming collision with other packages
from the same category, on case-insensitive file systems. For packages
from pkgsrc-wip, additionally perform the same check for the main
category of the package, to prepare for importing the package.
In the first phase, url2pkg generates a minimal package Makefile, barely
enough for downloading the distfile from the given URL. That part runs
fully automated in almost all cases, so there is no need to invoke the
editor at this point.
After adjusting the package Makefile based on the downloaded and
extracted distfile, url2pkg has done its job, so there is no reason to
run the editor there as well.
Bump version.
The warning was:
Bogus: -${DISTNAME:tl:S/-1$//1}
(from /.../devel/lua-moses/Makefile)
Previously, lintpkgsrc searched for the package name and version by
looking for '-' followed by a digit. This was too naive, as in the
above expression, the '-1' does not mark the beginning of the version
number. Fix this by resorting to 'make show-vars' in all cases in which
the PKGNAME still contains a '$'.
When running 'lintpkgsrc -Dp devel/lua-moses' with a relative directory
as argument, lintpkgsrc tried 'cd /lua-moses' and ignored the failure,
running 'make show-vars' in the current directory instead, which in my
case was the top-level pkgsrc directory.
Bump version.