ac62ef6aaf
Since SUBST_FILTER_CMD is a shell command, it may contain arbitrary characters. The condition in mk/subst.mk that tested whether SUBST_FILTER_CMD was the default filter command was evaluated at run time. In such an evaluation, the variables (lhs and rhs) are fully expanded before parsing the condition. This means that these variables must not contain quotes or unquoted condition operators. Exactly this situation came up in one of the regression tests. The quoted "0-9" was copied verbatimly into the condition, including the quotes. The resulting condition was: "tr -d "0-9"" == "LC_ALL=C /usr/bin/sed " This produced a syntax error because of the left-hand side. Adding a :Q modifier would have helped for the left-hand side, but this would have been necessary for the right-hand side as well. Since an empty SUBST_SED is defined not to "contain only identity substitutions", the first condition can simply be removed. The whole condition in the shell program had not worked anyway since it expanded to either "[ true ]" or to "[ false ]", and both of these commands exited successfully. |
||
---|---|---|
.. | ||
barrier | ||
bootstrap-install-sh | ||
buildlink-libtool | ||
buildlink-transform | ||
buildlink-unwrap | ||
check-perms | ||
check-portability | ||
compiler | ||
conf-files-spaces | ||
env-vars | ||
gnu-configure-strict | ||
ignore-tools | ||
infra-unittests | ||
make-env-phases | ||
make-quoting | ||
path | ||
pkg-options | ||
pkgfail | ||
plus_build_version | ||
print-plist | ||
print-plist-python | ||
show-all | ||
tools | ||
README |
See the chapter "Regression tests" in the pkgsrc guide (doc/pkgsrc.txt) for more information about these tests.