nixpkgs-suyu/pkgs/development/tools/misc/ccls/wrapper
Chuck a45b3ad89f
makeWrapper: Remove unused extraFlagsArray feature
There is a bug in this feature: It allows extra arguments to leak in
from the environment. For example:

  $ export extraFlagsArray=date
  $ man ls

Note that you get the man page for date rather than for ls. This happens
because 'man' happens to use a wrapper (to add groff to its PATH).

An attempt to fix this was made in 5ae18574fc in PR #19328 for
issue #2537, but 1. That change didn't actually fix the problem because
it addressed makeWrapper's environment during the build process, not the
constructed wrapper script's environment after installation, and 2. That
change was apparently accidentally lost when merged with 7ff6eec5fd.

Rather than trying to fix the bug again, we remove the extraFlagsArray
feature, since it has never been used in the public repo in the ten
years it has been available.

wrapAclocal continues to use its own, separate flavor of extraFlagsArray
in a more limited context. The analogous bug there was fixed in
4d7d10da6b in 2011.
2019-09-25 09:23:09 -07:00

12 lines
319 B
Text

#! @shell@ -e
initString="--init={\"clang\":{\"extraArgs\": [@standard_library_includes@"
if [ "${NIX_CFLAGS_COMPILE}" != "" ]; then
read -a cflags_array <<< ${NIX_CFLAGS_COMPILE}
initString+=$(printf ', \"%s\"' "${cflags_array[@]}")
fi
initString+="]}}"
exec -a "$0" "@out@/bin/@wrapped@" "${initString}" "$@"