Skip to content

Commit 3e2b610

Browse files
authored
Fix installing gd and vips at the same time (#955)
1 parent cfa74c5 commit 3e2b610

File tree

2 files changed

+65
-28
lines changed

2 files changed

+65
-28
lines changed

install-php-extensions

Lines changed: 44 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -662,9 +662,11 @@ expandASpellDictionaries() {
662662
# PACKAGES_PERSISTENT_PRE the list of packages required at runtume that are already installed
663663
# PACKAGES_VOLATILE the list of packages required at compile time that must be installed
664664
# PACKAGES_PREVIOUS the list of packages (with their version) that are installed right now (calculated only on Debian and only if PACKAGES_PERSISTENT_NEW or PACKAGES_VOLATILE are not empty)
665+
# COMPILE_LIBS
665666
buildRequiredPackageLists() {
666667
buildRequiredPackageLists_persistent=''
667668
buildRequiredPackageLists_volatile=''
669+
COMPILE_LIBS=''
668670
case "$DISTRO" in
669671
alpine)
670672
apk update
@@ -844,6 +846,18 @@ buildRequiredPackageLists() {
844846
case "${IPE_GD_WITHOUTAVIF:-}" in
845847
1 | y* | Y*) ;;
846848
*)
849+
if ! isLibaomInstalled; then
850+
COMPILE_LIBS="$COMPILE_LIBS libaom"
851+
fi
852+
if ! isLibdav1dInstalled; then
853+
COMPILE_LIBS="$COMPILE_LIBS libdav1d"
854+
fi
855+
if ! isLibyuvInstalled; then
856+
COMPILE_LIBS="$COMPILE_LIBS libyuv"
857+
fi
858+
if ! isLibavifInstalled; then
859+
COMPILE_LIBS="$COMPILE_LIBS libavif"
860+
fi
847861
buildRequiredPackageLists_persistent="$buildRequiredPackageLists_persistent libstdc++"
848862
buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cmake nasm meson"
849863
;;
@@ -869,6 +883,18 @@ buildRequiredPackageLists() {
869883
case "${IPE_GD_WITHOUTAVIF:-}" in
870884
1 | y* | Y*) ;;
871885
*)
886+
if ! isLibaomInstalled; then
887+
COMPILE_LIBS="$COMPILE_LIBS libaom"
888+
fi
889+
if ! isLibdav1dInstalled; then
890+
COMPILE_LIBS="$COMPILE_LIBS libdav1d"
891+
fi
892+
if ! isLibyuvInstalled; then
893+
COMPILE_LIBS="$COMPILE_LIBS libyuv"
894+
fi
895+
if ! isLibavifInstalled; then
896+
COMPILE_LIBS="$COMPILE_LIBS libavif"
897+
fi
872898
buildRequiredPackageLists_volatile="$buildRequiredPackageLists_volatile cmake nasm meson"
873899
;;
874900
esac
@@ -2472,6 +2498,22 @@ You may need to:
24722498
EOT
24732499
}
24742500

2501+
# Compile the libraries specified in the COMPILE_LIBS variable
2502+
compileLibs() {
2503+
if stringInList libaom "$COMPILE_LIBS"; then
2504+
installLibaom
2505+
fi
2506+
if stringInList libdav1d "$COMPILE_LIBS"; then
2507+
installLibdav1d
2508+
fi
2509+
if stringInList libyuv "$COMPILE_LIBS"; then
2510+
installLibyuv
2511+
fi
2512+
if stringInList libavif "$COMPILE_LIBS"; then
2513+
installLibavif
2514+
fi
2515+
}
2516+
24752517
# Install a bundled PHP module given its handle
24762518
#
24772519
# Arguments:
@@ -2568,23 +2610,6 @@ EOF
25682610
;;
25692611
esac
25702612
if test $installBundledModule_tmp -eq 0; then
2571-
case "${IPE_GD_WITHOUTAVIF:-}" in
2572-
1 | y* | Y*) ;;
2573-
*)
2574-
if ! isLibaomInstalled; then
2575-
installLibaom
2576-
fi
2577-
if ! isLibdav1dInstalled; then
2578-
installLibdav1d
2579-
fi
2580-
if ! isLibyuvInstalled; then
2581-
installLibyuv
2582-
fi
2583-
if ! isLibavifInstalled; then
2584-
installLibavif
2585-
fi
2586-
;;
2587-
esac
25882613
if isLibaomInstalled && isLibdav1dInstalled && isLibyuvInstalled && isLibavifInstalled; then
25892614
installBundledModule_tmp=1
25902615
fi
@@ -4829,6 +4854,8 @@ if test $USE_PICKLE -gt 1; then
48294854
buildPickle
48304855
fi
48314856

4857+
compileLibs
4858+
48324859
for PHP_MODULE_TO_INSTALL in $PHP_MODULES_TO_INSTALL; do
48334860
case "$PHP_MODULE_TO_INSTALL" in
48344861
@fix_letsencrypt)

scripts/ci-test-extensions

Lines changed: 21 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -127,13 +127,20 @@ filterUnsupportedExensionsForDistro() {
127127
;;
128128
esac
129129

130-
for filterUnsupportedExensionsForDistro_extension in $EXTENSIONS_TO_BE_TESTED; do
131-
if stringInList "!$IPETEST_DOCKER_DISTRO" "$(cat "$filterUnsupportedExensionsForDistro_reqs" | grep -E "^$filterUnsupportedExensionsForDistro_extension[ \t]")"; then
132-
printf 'Note: extension "%s" is not supported for distro "%s"\n' "$filterUnsupportedExensionsForDistro_extension" "$IPETEST_DOCKER_DISTRO"
133-
elif stringInList "!$filterUnsupportedExensionsForDistro_baseDistro" "$(cat "$filterUnsupportedExensionsForDistro_reqs" | grep -E "^$filterUnsupportedExensionsForDistro_extension[ \t]")"; then
134-
printf 'Note: extension "%s" is not supported for distro "%s"\n' "$filterUnsupportedExensionsForDistro_extension" "$filterUnsupportedExensionsForDistro_baseDistro"
135-
else
136-
filterUnsupportedExensionsForDistro_filtered="$filterUnsupportedExensionsForDistro_filtered $filterUnsupportedExensionsForDistro_extension"
130+
for filterUnsupportedExensionsForDistro_extensions in $EXTENSIONS_TO_BE_TESTED; do
131+
filterUnsupportedExensionsForDistro_ok=1
132+
IFS='+'
133+
for filterUnsupportedExensionsForDistro_extension in $filterUnsupportedExensionsForDistro_extensions; do
134+
if stringInList "!$IPETEST_DOCKER_DISTRO" "$(cat "$filterUnsupportedExensionsForDistro_reqs" | grep -E "^$filterUnsupportedExensionsForDistro_extension[ \t]")"; then
135+
printf 'Note: extension "%s" is not supported for distro "%s"\n' "$filterUnsupportedExensionsForDistro_extension" "$IPETEST_DOCKER_DISTRO"
136+
filterUnsupportedExensionsForDistro_ok=0
137+
elif stringInList "!$filterUnsupportedExensionsForDistro_baseDistro" "$(cat "$filterUnsupportedExensionsForDistro_reqs" | grep -E "^$filterUnsupportedExensionsForDistro_extension[ \t]")"; then
138+
printf 'Note: extension "%s" is not supported for distro "%s"\n' "$filterUnsupportedExensionsForDistro_extension" "$filterUnsupportedExensionsForDistro_baseDistro"
139+
filterUnsupportedExensionsForDistro_ok=0
140+
fi
141+
done
142+
if test $filterUnsupportedExensionsForDistro_ok -eq 1; then
143+
filterUnsupportedExensionsForDistro_filtered="$filterUnsupportedExensionsForDistro_filtered $filterUnsupportedExensionsForDistro_extensions"
137144
fi
138145
done
139146
resetIFS
@@ -164,10 +171,13 @@ getDockerImageName() {
164171
getDockerImageName_reqs="$CI_BUILD_DIR/data/special-requirements"
165172
if test -f "$getDockerImageName_reqs"; then
166173
IFS=' '
167-
for getDockerImageName_testExtension in $1; do
168-
if test -n "$(cat "$getDockerImageName_reqs" | grep -E "^$getDockerImageName_testExtension[ \t]+zts[ \t]*$")"; then
169-
getDockerImageName_suffix='zts'
170-
fi
174+
for getDockerImageName_testExtensions in $1; do
175+
IFS='+'
176+
for getDockerImageName_testExtension in $getDockerImageName_testExtensions; do
177+
if test -n "$(cat "$getDockerImageName_reqs" | grep -E "^$getDockerImageName_testExtension[ \t]+zts[ \t]*$")"; then
178+
getDockerImageName_suffix='zts'
179+
fi
180+
done
171181
done
172182
fi
173183
getDockerImageName_imageName="$(printf 'php:%s-%s-%s' "$getDockerImageName_version" "$getDockerImageName_suffix" "$IPETEST_DOCKER_DISTRO")"

0 commit comments

Comments
 (0)