HomeFreeBSD

Improve shebangfix framework

Description

Improve shebangfix framework

  • Support multiple values in *_OLD_CMD, i.e. we can now fix both "/usr/bin/python" and "/usr/bin/env python" at the same time
  • Default *_OLD_CMD values are now always appended, so you don't need to specify them in individual ports
  • Add lua support (depends on USES=lua)
  • Add more default values, such as "/usr/bin/env foo" for python, perl, bash, ruby and lua
  • Shebangfix now matches whole words, e.g. we will no longer (erroneously) replace "/usr/bin/perl5.005" with "${perl_CMD}5.005" (but "/usr/bin/perl -tt" is still (correctly) replaced with "${perl_CMD} -tt")

Note that *_OLD_CMD items containing spaces must now be quoted (e.g. perl_OLD_CMD=/bin/perl /usr/bin/perl "/usr/bin/env perl")

Update shebangfix usage according to new rules in many ports:

  • Remove *_OLD_CMD for patterns now replaced by default
  • Quote custom *_OLD_CMD which contain spaces

Fix shebangfix usage in many ports (irrelevant to infrastructure change):

  • Remove redundant SHEBANG_LANG (no need to duplicate default langs)
  • Remove redundant *_CMD (such as python_CMD=${LOCALBASE}/bin/python${PYTHON_VER} when USES=python is present)
  • Never use *_OLD_CMD in REINPLACE_CMD matchers, these should always look for exact string

Approved by: portmgr (bapt)
Differential Revision: D3756

Details

Provenance
AMDmi3Authored on
Differential Revision
D3756: Support multiple values in *_OLD_CMD for shebangfix.mk
Parents
rP399683: MFH: r399540
Branches
Unknown
Tags
Unknown