build-support/php: fix variable substitution in bash

The build environment sets the bash option NOUNSET which fails the
script for any substitution of uninitialized variables.  The ${VAR-}
construct circumvents this.

This was tested by building the following derivations:

- phpPackages.box{,.composerVendor}
- phpPackages.cyclonedx-php-composer
- phpPackages.phing{,.composerVendor}
- phpPackages.php-parallel-lint{,.composerVendor}
- phpPackages.castor{,.composerVendor}
- phpPackages.phive{,.composerVendor}
- phpPackages.php-cs-fixer{,.composerVendor}
- phpPackages.phpspy
- phpPackages.composer
- phpPackages.grumphp{,.composerVendor}
- phpPackages.phpinsights{,.composerVendor}
- phpPackages.phpstan{,.composerVendor}
- phpPackages.composer-local-repo-plugin
- phpPackages.phan
- phpPackages.php-codesniffer{,.composerVendor}
- phpPackages.phpmd{,.composerVendor}
- phpPackages.psalm{,.composerVendor}
- psysh{,.composerVendor}
- deployer{,.composerVendor}
This commit is contained in:
Lucas Hoffmann 2025-11-03 17:05:00 +01:00
parent 06bf41da75
commit 48c9505ba1

View file

@ -10,9 +10,9 @@ declare -g composerNoPlugins
declare -g composerNoScripts
declare -ga composerFlags=()
[[ -n "$composerNoDev" ]] && composerFlags+=(--no-dev)
[[ -n "$composerNoPlugins" ]] && composerFlags+=(--no-plugins)
[[ -n "$composerNoScripts" ]] && composerFlags+=(--no-scripts)
[[ -n "${composerNoDev-}" ]] && composerFlags+=(--no-dev)
[[ -n "${composerNoPlugins-}" ]] && composerFlags+=(--no-plugins)
[[ -n "${composerNoScripts-}" ]] && composerFlags+=(--no-scripts)
preConfigureHooks+=(composerVendorConfigureHook)
preBuildHooks+=(composerVendorBuildHook)