Skip to content
  • amdmi3's avatar
    Improve shebangfix framework · 6a98fceb
    amdmi3 authored
    - 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
    6a98fceb