Age | Commit message (Collapse) | Author | Files | Lines |
|
|
|
|
|
The general rule is that a SUBST_SED that contains _any_ identity
substitution may leave files unmodified, no matter if there are other
substitutions as well.
|
|
Discovered by Juraj in mail/policyd-weight.
https://mail-index.netbsd.org/pkgsrc-changes/2020/06/06/msg215480.html
|
|
|
|
Seen in cross/arm-none-eabi-gdb.
|
|
|
|
|
|
|
|
Before, relative paths had been stored as-is. This affected those
packages that defined PATCHDIR or FILESDIR as relative directory instead
of prefixing it with ${.CURDIR}.
Since there are already several other paths that are interpreted relative
to the package directory (CONFLICTS, DEPENDS), allow PATCHDIR and
FILESDIR to be specified as relative paths, too. This makes the package
Makefiles a bit shorter.
|
|
The previous implementation could not reliably detect outdated configure
options. This was apparent in devel/gettext-tools, where the option
--with-included-libcroco had become unknown between May 2019 and May
2020, but the check was not run.
The behavior is the same in the pkgsrc default configuration. Only if
GNU_CONFIGURE_STRICT=yes, the new check is activated and will make
packages fail that previously succeeded to build. Since that variable is
not widely known, there won't be much sudden breakage, if any.
|
|
|
|
Pointed out by wiz@.
This occured in math/libixion/Makefile.common until 2020-05-19, and still
occurs in math/xyconvert/Makefile. In all other packages, PKGDIR is
prefixed with ${.CURDIR} and is thus an absolute path.
It should not be necessary to always specify PATCHDIR as an absolute
path, and the code in mk/pkgformat/pkg/metadata.mk seems to be the only
place where relative paths are handled wrong.
|
|
The test infrastructure from test.subr already takes care of setting up a
temporary directory.
|
|
|
|
Like directories, they probably come from shell globs.
Seen in misc/byobu.
|
|
|
|
|
|
This makes the SUBST blocks stricter than before, to detect outdated or
unnecessary definitions.
Filename patterns that are not affected by any of the SUBST_SED
expressions make the build fail. It is still ok if only some of the
files from a pattern are affected and some aren't.
The latest bulk build shows that most of the build failures are fixed.
The packages that fail in that build are mostly due to other failures,
like missing C headers, wrong PLIST files, unresolved references at link
time. There may be a few packages that still fail because of this, but
these are near the leaves of the dependency tree.
https://mail-index.netbsd.org/pkgsrc-bulk/2020/05/14/msg018919.html
|
|
Seen in games/bastet. The 1 is not necessary though since it only
repeats the default behavior of sed.
|
|
The test can now be run with bash and ksh as well.
Bash exits if a function call returns failure, the NetBSD /bin/sh
doesn't. After reading POSIX, sections "2.9.1 Simple Commands" and "set
-e", I'm in favor of bash here.
Ksh exits in "set -eu" mode if "$@" is used but no arguments are given.
|
|
There had been unnecessary variations in the code.
|
|
|
|
Strings in single quotes are simpler to understand and also need fewer
pixels on the screen.
|
|
In a basic regular expression, a dollar-sign only means end-of-string if
it appears at the end of the pattern, or (at the choice of the
implementation) at the end of a \(...\) subexpression.
This affects the package converters/help2man that uses a regular
expression containing a dollar in a non-final position. This regular
expression had not been detected as an identity substitution even though
it is one.
|
|
|
|
This isolates the tests from the test infrastructure and allows the test
infrastructure to create arbitrary files for its own purpose without
affecting any of the tests.
|
|
|
|
|
|
This test is for the old compiler wrapper.
Using it with the cwrappers from 2014 makes several test cases fail.
|
|
|
|
|
|
This regression test has been broken for a long time now. It tested the
_TOOLS_OPSYS_INCOMPAT variable, which does not exist anymore.
|
|
|
|
|
|
|
|
This fixes the build of converters/help2man in SUBST_NOOP_OK=no mode.
|
|
Files like Makefile.am and configure.ac are usually not used during a
build, therefore there's no point in checking these for shell portability
issues.
|
|
There are a few portability checks that have been existing for years.
Later additions need an opt-in phase to avoid breaking existing usages.
https://mail-index.netbsd.org/tech-pkg/2020/05/04/msg023084.html
|
|
|
|
A commonly occuring scenario is that a package patches the configure
script, but that the corresponding configure.in contains shell code that
is not portable. In cases like these, configure.in is typically not used
during the build, therefore there is no need to check it for portability.
This also applies to all other combinations where a file is patched and
the corresponding file.in contains unportable shell code.
|
|
The line numbers were added to the output in check-portability.awk r1.12.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Having quotes around the sed commands does not change their meaning.
These quotes must not lead to syntax errors when parsing the shell
command. This happened in mk/subst.mk r1.91 because the double quote was
accidentally escaped.
|