From 58f33d2e90271a2f72e9954370ecff481161bfc0 Mon Sep 17 00:00:00 2001 From: Michele Locati Date: Mon, 23 Dec 2019 08:55:33 +0100 Subject: [PATCH 1/2] Abort if expandPackagesToBeInstalled fails Test: gd --- install-php-extensions | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/install-php-extensions b/install-php-extensions index 3a34029..6350e9e 100755 --- a/install-php-extensions +++ b/install-php-extensions @@ -560,10 +560,19 @@ buildRequiredPackageLists() { esac if test -n "$buildRequiredPackageLists_persistent"; then PACKAGES_PERSISTENT="$(expandPackagesToBeInstalled $buildRequiredPackageLists_persistent)" + if test -s "$IPE_ERRFILE"; then + cat "$IPE_ERRFILE" >&2 + exit 1 + fi fi if test -n "$buildRequiredPackageLists_volatile"; then + buildRequiredPackageLists_packages="$(expandPackagesToBeInstalled $buildRequiredPackageLists_volatile)" + if test -s "$IPE_ERRFILE"; then + cat "$IPE_ERRFILE" >&2 + exit 1 + fi resetIFS - for buildRequiredPackageLists_package in $(expandPackagesToBeInstalled $buildRequiredPackageLists_volatile); do + for buildRequiredPackageLists_package in $buildRequiredPackageLists_packages; do if ! stringInList "$buildRequiredPackageLists_package" "$PACKAGES_PERSISTENT"; then PACKAGES_VOLATILE="$PACKAGES_VOLATILE $buildRequiredPackageLists_package" fi @@ -585,9 +594,9 @@ expandPackagesToBeInstalled() { alpine) expandPackagesToBeInstalled_log="$(apk add --simulate $@ 2>&1 || printf '\nERROR: apk failed\n')" if test -n "$(printf '%s' "$expandPackagesToBeInstalled_log" | grep -E '^ERROR:')"; then - printf 'FAILED TO LIST THE WHOLE PACKAGE LIST FOR\n' >&2 - printf '%s ' "$@" >&2 - printf '\n\nCOMMAND OUTPUT:\n%s\n' "$expandPackagesToBeInstalled_log" >&2 + printf 'FAILED TO LIST THE WHOLE PACKAGE LIST FOR\n' >"$IPE_ERRFILE" + printf '%s ' "$@" >>"$IPE_ERRFILE" + printf '\n\nCOMMAND OUTPUT:\n%s\n' "$expandPackagesToBeInstalled_log" >>"$IPE_ERRFILE" exit 1 fi IFS=' @@ -602,9 +611,9 @@ expandPackagesToBeInstalled() { debian) expandPackagesToBeInstalled_log="$(DEBIAN_FRONTEND=noninteractive apt-get install -sy $@ 2>&1 || printf '\nE: apt-get failed\n')" if test -n "$(printf '%s' "$expandPackagesToBeInstalled_log" | grep -E '^E:')"; then - printf 'FAILED TO LIST THE WHOLE PACKAGE LIST FOR\n' >&2 - printf '%s ' "$@" >&2 - printf '\n\nCOMMAND OUTPUT:\n%s\n' "$expandPackagesToBeInstalled_log" >&2 + printf 'FAILED TO LIST THE WHOLE PACKAGE LIST FOR\n' >"$IPE_ERRFILE" + printf '%s ' "$@" >"$IPE_ERRFILE" + printf '\n\nCOMMAND OUTPUT:\n%s\n' "$expandPackagesToBeInstalled_log" >"$IPE_ERRFILE" exit 1 fi expandPackagesToBeInstalled_inNewPackages=0 @@ -1120,6 +1129,8 @@ cleanup() { } resetIFS +mkdir -p /tmp/src +IPE_ERRFILE="$(mktemp -p /tmp/src)" PHP_MAJMIN_VERSION=$(getPHPMajorMinor) case "$PHP_MAJMIN_VERSION" in 506 | 700 | 701 | 702 | 703 | 704) ;; From fcab189dd2d8b1c2c00996a3d99e7ceda460fb22 Mon Sep 17 00:00:00 2001 From: Michele Locati Date: Mon, 23 Dec 2019 09:12:15 +0100 Subject: [PATCH 2/2] Fix GD dependencies on Debian Jessie --- install-php-extensions | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/install-php-extensions b/install-php-extensions index 6350e9e..a5eb3ed 100755 --- a/install-php-extensions +++ b/install-php-extensions @@ -249,13 +249,13 @@ buildRequiredPackageLists() { fi ;; gd@debian) - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libfreetype6 libjpeg62-turbo libpng16-16 libxpm4" + buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libfreetype6 libjpeg62-turbo libpng[0-9]+-[0-9]+$ libxpm4" buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libfreetype6-dev libjpeg62-turbo-dev libpng-dev libxpm-dev" if test $buildRequiredPackageLists_phpv -le 506; then - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libvpx?" + buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libvpx[0-9]+$" buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libvpx-dev" else - buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libwebp6" + buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libwebp[0-9]+$" buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile libwebp-dev" fi ;;