diff options
Diffstat (limited to 'testing/php81/APKBUILD')
-rw-r--r-- | testing/php81/APKBUILD | 175 |
1 files changed, 103 insertions, 72 deletions
diff --git a/testing/php81/APKBUILD b/testing/php81/APKBUILD index 71cb0a42c69..3077df1550b 100644 --- a/testing/php81/APKBUILD +++ b/testing/php81/APKBUILD @@ -11,6 +11,7 @@ # fileinfo | BSD-2-Clause | ext/fileinfo/libmagic | used # gd | BSD | ext/gd/libgd | used # hash | CC0-1.0 | ext/hash/sha3 | used +# xxHash | BSD-2-Clause | ext/hash/xxhash | used # libmbfl | LGPL-2.1-only | ext/mbstring/libmbfl | used # pcre | BSD-3-Clause | ext/pcre/pcrelib | not used # sqlite3 | Public | ext/sqlite3/libsqlite | not used @@ -25,12 +26,15 @@ pkgname=php81 _pkgreal=php -pkgver=8.1.0 +pkgver=8.1.28 pkgrel=0 _apiver=20210902 _suffix=${pkgname#php} # Is this package the default (latest) PHP version? _default_php="no" +provides="$pkgname-cli php-cli php" # for backward compatibility +# priority of community/php82 is 100 +provider_priority=50 pkgdesc="The PHP$_suffix language runtime engine" url="https://www.php.net/" arch="all" @@ -46,11 +50,13 @@ _depends_phar="$pkgname" _depends_mysqli="$pkgname-mysqlnd $pkgname-openssl" makedepends=" $depends_dev + acl-dev apache2-dev argon2-dev aspell-dev bison bzip2-dev + clang curl-dev enchant2-dev freetds-dev @@ -77,30 +83,42 @@ makedepends=" libzip-dev net-snmp-dev openldap-dev + openssl-dev>3 + patchelf sqlite-dev tidyhtml-dev unixodbc-dev zlib-dev " -provides="$pkgname-cli php-cli php" # for backward compatibility -# priority of community/php7 is 100 -provider_priority=1 -subpackages="$pkgname-dbg $pkgname-dev $pkgname-doc +checkdepends="icu-data-full" +subpackages="$pkgname-dev $pkgname-doc $pkgname-phpdbg $pkgname-apache2 $pkgname-embed $pkgname-cgi $pkgname-fpm $pkgname-pear::noarch " -source="https://php.net/distributions/$_pkgreal-$pkgver.tar.xz +# sources for RC available at +# - https://downloads.php.net/~patrickallaert/php-${pkgver}RC1.tar.xz +# - https://downloads.php.net/~ramsey/php-${pkgver}RC1.tar.xz +source="$_pkgreal-$pkgver.tar.xz::https://php.net/distributions/$_pkgreal-$pkgver.tar.xz $pkgname-fpm.initd $pkgname-fpm.logrotate $pkgname-module.conf disabled-tests.list + disabled-tests.ppc64le.list + disabled-tests.riscv64.list + disabled-tests.s390x.list + disabled-tests.x86.list install-pear.patch includedir.patch sharedir.patch $pkgname-fpm-version-suffix.patch fix-tests-devserver.patch - xfail-openssl-1.1-test.patch + fix-lfs64.patch + fix-s390x-test.patch + fix-icu74.patch + fix-curl.patch + fix-libxml-1.patch + fix-libxml-2.patch " builddir="$srcdir/$_pkgreal-$pkgver" @@ -171,19 +189,28 @@ for _ext in $_extensions; do esac done subpackages="$subpackages $pkgname-common::noarch" - -case "$CARCH" in - riscv64) - makedepends="$makedepends libucontext-dev" - export LDFLAGS="$LDFLAGS -lucontext" - ;; - *) - # see https://gitlab.alpinelinux.org/alpine/aports/-/issues/12775 - subpackages="$subpackages $pkgname-litespeed" - ;; -esac +subpackages="$subpackages $pkgname-litespeed" # secfixes: +# 8.1.28-r0: +# - CVE-2024-1874 +# - CVE-2024-2756 +# - CVE-2024-3096 +# 8.1.16-r0: +# - CVE-2023-0567 +# - CVE-2023-0568 +# - CVE-2023-0662 +# 8.1.14-r0: +# - CVE-2022-31631 +# 8.1.12-r0: +# - CVE-2022-31630 +# - CVE-2022-37454 +# 8.1.11-r0: +# - CVE-2022-31628 +# - CVE-2022-31629 +# 8.1.6-r2: +# - CVE-2022-31625 +# - CVE-2022-31626 # 8.1.0-r0: # - CVE-2021-21707 # 8.1.0_rc5-r0: @@ -213,9 +240,12 @@ prepare() { # Fix some bogus permissions. find . -name '*.[ch]' -exec chmod 644 {} \; - # XXX: Delete failing tests. - sed -n '/^[^#]/p' "$srcdir"/disabled-tests.list | while read -r item; do - rm -r $item # do it in this way to apply globbing... + # Remove failing tests includng arch specific ones. + local tests="disabled-tests.list disabled-tests.$CARCH.list" + local file; for file in $tests; do [ -f "$srcdir"/$file ] && \ + sed -n '/^[^#]/p' "$srcdir"/$file | while read -r item; do + rm -r $item # do it in this way to apply globbing... + done done autoconf @@ -227,12 +257,22 @@ prepare() { # * -D_LARGEFILE_SOURCE and -D_FILE_OFFSET_BITS=64 (https://www.php.net/manual/en/intro.filesystem.php andypost) # * -O2 optimize for apps usage (andypost) _build() { - export CFLAGS="${CFLAGS/-Os/-O2} -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64" - export CXXFLAGS="${CXXFLAGS/-Os/-O2} -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64" + local _extra='-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64' + export CFLAGS="${CFLAGS/-Os/-O2} $_extra" + export CXXFLAGS="${CXXFLAGS/-Os/-O2} $_extra" local without_pcre_jit [ "$CARCH" = "s390x" ] && without_pcre_jit="--without-pcre-jit" + case "$CARCH" in + arm*|aarch64|riscv64) + export CFLAGS="${CFLAGS/-fstack-clash-protection}" + export CXXFLAGS="${CXXFLAGS/-fstack-clash-protection}" + ;; + esac + + export CC=clang + export CXX=clang++ EXTENSION_DIR=$_extension_dir ./configure \ --build=$CBUILD \ --host=$CHOST \ @@ -246,6 +286,7 @@ _build() { --with-pic \ --with-config-file-path=/etc/$pkgname \ --with-config-file-scan-dir=$_extension_confd \ + --disable-rpath \ --disable-short-tags \ \ --enable-bcmath=shared \ @@ -323,6 +364,7 @@ _build() { --with-xsl=shared \ --with-zip=shared \ --with-zlib \ + --enable-zend-test=shared \ "$@" rm -f modules/* # clean-up possible previous build make @@ -343,6 +385,7 @@ build() { _build --enable-phpdbg \ --with-pear=/usr/share/$pkgname \ --enable-fpm \ + --with-fpm-acl \ $enable_litespeed \ --enable-embed } @@ -362,13 +405,13 @@ check() { # Ignore it for now and continue build even on test failures. local allow_fail='no' case "$CARCH" in - ppc64le | x86 | s390x | mips*) allow_fail='yes' + no ) allow_fail='yes' esac TESTS="${TESTS:- --show-diff }" NO_INTERACTION=1 REPORT_EXIT_STATUS=1 \ SKIP_SLOW_TESTS=1 SKIP_ONLINE_TESTS=1 TEST_TIMEOUT=10 \ SKIP_PERF_SENSITIVE=1 \ - TZ='' LANG='' LC_ALL='' \ + TZ='' LANG='' LC_ALL='' TEST_FPM_EXTENSION_DIR=modules \ TRAVIS=true SKIP_IO_CAPTURE_TESTS=1 \ make test || [ "$allow_fail" = yes ] @@ -377,6 +420,7 @@ check() { package() { make -j1 INSTALL_ROOT="$pkgdir" install + rm "$pkgdir"/usr/lib/php$_suffix/modules/zend_test.so install -Dm644 php.ini-production "$pkgdir"/etc/$pkgname/php.ini @@ -397,15 +441,11 @@ package() { dev() { default_dev replaces="php-dev" - depends="$depends" - cd "$pkgdir" - - _mv usr/bin/php-config$_suffix \ + amove \ + usr/bin/php-config$_suffix \ usr/bin/phpize$_suffix \ - "$subpkgdir"/usr/bin/ - - _mv ./$_libdir/build "$subpkgdir"/$_libdir/ + $_libdir/build if [ "$_default_php" = yes ]; then ln -s phpize$_suffix "$subpkgdir"/usr/bin/phpize @@ -451,15 +491,17 @@ embed() { pkgdesc="PHP$_suffix Embedded Library" provides="php-embed" - _mv "$pkgdir"/usr/lib/libphp*.so "$subpkgdir"/usr/lib/ + mkdir -p "$subpkgdir"/usr/lib + mv "$pkgdir"/usr/lib/libphp.so "$subpkgdir"/usr/lib/libphp$_suffix.so + # we do this so it matches the name, otherwise SONAME libphp.so conflicts + patchelf --set-soname libphp$_suffix.so "$subpkgdir"/usr/lib/libphp$_suffix.so } litespeed() { pkgdesc="PHP$_suffix LiteSpeed SAPI" provides="php-lightspeed" - mkdir -p "$subpkgdir"/usr/bin - mv "$pkgdir"/usr/bin/lsphp$_suffix "$subpkgdir"/usr/bin + amove usr/bin/lsphp$_suffix if [ "$_default_php" = yes ]; then ln -s lsphp$_suffix "$subpkgdir"/usr/bin/lsphp @@ -470,7 +512,7 @@ cgi() { pkgdesc="PHP$_suffix Common Gateway Interface" provides="php-cgi" - _mv "$pkgdir"/usr/bin/php-cgi$_suffix "$subpkgdir"/usr/bin/ + amove usr/bin/php-cgi$_suffix if [ "$_default_php" = yes ]; then ln -s php-cgi$_suffix "$subpkgdir"/usr/bin/php-cgi @@ -481,12 +523,8 @@ fpm() { pkgdesc="PHP$_suffix FastCGI Process Manager" provides="php-fpm" - cd "$pkgdir" - - _mv var "$subpkgdir"/ - _mv usr/share/$pkgname/fpm "$subpkgdir"/var/lib/$pkgname/ - _mv usr/sbin "$subpkgdir"/usr/ - _mv etc/$pkgname/php-fpm* "$subpkgdir"/etc/$pkgname/ + amove etc/$pkgname/php-fpm* usr/sbin var + amove usr/share/$pkgname/fpm local file; for file in php-fpm.conf php-fpm.d/www.conf; do mv "$subpkgdir"/etc/$pkgname/$file.default \ @@ -507,18 +545,15 @@ pear() { depends="$pkgname $pkgname-xml" provides="php-pear" - cd "$pkgdir" - mkdir -p "$subpkgdir"/usr/bin local file; for file in pecl pear peardev; do - mv usr/bin/$file "$subpkgdir"/usr/bin/$file$_suffix + mv "$pkgdir"/usr/bin/$file "$subpkgdir"/usr/bin/$file$_suffix if [ "$_default_php" = yes ]; then ln -s $file$_suffix "$subpkgdir"/usr/bin/$file fi done - _mv etc/$pkgname/pear.conf "$subpkgdir"/etc/$pkgname/ - _mv usr/share "$subpkgdir"/usr/ + amove etc/$pkgname/pear.conf usr/share } common() { @@ -526,22 +561,17 @@ common() { provides="php-common $pkgname-zlib php-zlib $pkgname-json php-json" # for backward compatibility depends="" - cd "$pkgdir" - - _mv usr/lib "$subpkgdir"/usr/ - _mv etc "$subpkgdir"/ - mkdir -p "$subpkgdir"/$_extension_confd + amove etc + mkdir -p "$subpkgdir"/$_extension_confd "$subpkgdir"/$_extension_dir } phar() { _extension - cd "$pkgdir" - mkdir -p "$subpkgdir"/usr/bin - mv usr/bin/phar$_suffix.phar "$subpkgdir"/usr/bin/phar.phar$_suffix + mv "$pkgdir"/usr/bin/phar$_suffix.phar "$subpkgdir"/usr/bin/phar.phar$_suffix - rm usr/bin/phar$_suffix + rm "$pkgdir"/usr/bin/phar$_suffix ln -s phar.phar$_suffix "$subpkgdir"/usr/bin/phar$_suffix if [ "$_default_php" = yes ]; then @@ -551,13 +581,13 @@ phar() { } _extension() { - local extname="${subpkgname#$pkgname-}" + local extname="${subpkgname#"$pkgname"-}" local extdepends="$(eval "echo \$_depends_$extname")" local extdesc="$(head -n1 "$builddir"/ext/$extname/CREDITS 2>/dev/null ||:)" pkgdesc="PHP$_suffix extension: ${extdesc:-$extname}" provides="php-$extname" - : ${extdepends:=$(_resolve_extension_deps "$extname")} + : "${extdepends:=$(_resolve_extension_deps "$extname")}" depends="$depends $extdepends" local load_order=$(_extension_load_order "$extname") @@ -566,8 +596,7 @@ _extension() { local prefix= [ "$extname" != "opcache" ] || prefix="zend_" - _mv "$pkgdir"/$_extension_dir/$extname.so \ - "$subpkgdir"/$_extension_dir/ + amove $_extension_dir/$extname.so mkdir -p "$subpkgdir"/$_extension_confd echo "${prefix}extension=$extname" \ @@ -583,8 +612,7 @@ _resolve_extension_deps() { local config="$builddir/ext/$name/config.w32" [ -f "$config" ] || return 0 - cat "$config" \ - | sed -En "s/.*ADD_EXTENSION_DEP\('$name', ([^)]+)\).*/\1/p" \ + sed -En "s/.*ADD_EXTENSION_DEP\('$name', ([^)]+)\).*/\1/p" "$config" \ | tr -d "'," | tr ' ' '\n' \ | sort -u \ | while read -r dep; do @@ -619,22 +647,25 @@ _extensions_by_load_order() { printf '%s\n' $list | sort -t ';' -k 1 | sed -E 's/\d+;//' } -_mv() { - local dest; for dest; do true; done # get last argument - mkdir -p "$dest" - mv "$@" -} - sha512sums=" -0f8667ec888dff2f1b7354ff3bd3def4130b1b7145258deb65e4529982383a90c1a7412f298d566f889b4f2c19a72d145ad150501881f8483a07fc9610c9ae49 php-8.1.0.tar.xz -0280c390bf4b67ebb0ed9006489ea0c6426d27844824b81e946e583c83743d0f846d6a3858c96c3cce9305966d4879be7533f7626add006c8bb13021848c7a0f php81-fpm.initd +d56ecac164e00e9514cd3c6c8c453598b323118dc7d7ae7cc14ba0847d50a2e455b2391f52e0d81af325b02d8f73a7d2ed66bf66d068dac4a496d777c83a398f php-8.1.28.tar.xz +7dc9f55b12998355a6a6b5cf277285058e66928215f8d0109448d06fb696a74c674f83d18a81bf03f4f0bee06e77979e9a4ee5c81c7fdebff91447f8e697cc69 php81-fpm.initd 98bb27864f1ece80fef18cb286885c8c18de8f9d1076507b6a24df07e33aa400623b90401375e7ebe55d9ff802069d281642ec7d3a58ef8727121aabe7643241 php81-fpm.logrotate 2e3b22b4adbc81c6120757095c89e56642f3e8bf7724af2926f2667759ef082cdcff416334aad87f704a61fcb5b2c11830f17759ac771a3dd4e47d9bc5c7cf72 php81-module.conf -301184194877661831ef429bbc23004303adb150c7ecc3f72fdc366c94d6bc7ee7ca95ab1679910a22861bcb98c4744bff59e4a77963fbdb9f697c41adb2245c disabled-tests.list +35dd9eb6b913c7a6e236200fdee74fb168cd08cac5448090964176a70b0ee188b60a85b401bc16832821b08a765b139e3e5281aab710d5ba2bf8aa3384ee6f73 disabled-tests.list +65676dea36ff8823dd1e8d7165e48c2719133ca8cf5287d6051f35f70e4bc57f1c93fe9b0196c9307c072187deb08409731f1eef281387ae4367655472f882d3 disabled-tests.ppc64le.list +378db19d08cec29c4e56f2c82ee0a99b31e5ec3eaac56c40597de442da36a4d7efcc7551577e37a6ca22649d612d42714c93e16e3f7579aeb85a44090bde80fc disabled-tests.riscv64.list +54930246f22034e6a73020aa95915d14b2a2fcfe121df57eb17fdc663aceeb94c5c4b1800347149a8fb4eaa0edda4224a11133bdb7e0cd34a2065a2de121db0d disabled-tests.s390x.list +6d3bc15982e13ec4c065b6445e07818d589f2cc677147a57929d1739b3e6b119cc9be6a07d3a99bb5e989e47a62fa6047f967c3c962253845d4bab224b378db3 disabled-tests.x86.list ec206639d076ddac6c2d1db697a5428ed3be979157db39417af7fbe6ab837e8dc00315ae0e55aea4f92f45ca5827c88cc4933099fad9c962f029ca81bef779d7 install-pear.patch e88ad17895742b74019912ad45c90af74817d75d7e1f71bd3d4a180b5f710a25d3c73c7410394f415eee0f428a8c5a0ea3702009ef9d2bffdebdd5da748f8b9b includedir.patch 8db38c523a8e0ed64298661d328372ea33ba0a56d23c023299ad94ee43a6db8c49393efcb679e74bbb936383dcacebdfb440bbacdf74068d78d071dd3f795101 sharedir.patch f43ab399c3b4a2b9a3a329acd32d9cbc690cad697dd0a0e87f3d654028b88af7dd1cd80cbf970c6fe95a44d9b24646640bb4cc9eba15f36afc171504f1060066 php81-fpm-version-suffix.patch 1b64a7cef9e81387f955cb60ffa4e3d2277b4f6072e9328d779c0d447c202c8ee9dff0d8d8c34abc82c150311f51c4e9316a3b72a383ca6c9a6e683bc5b349a0 fix-tests-devserver.patch -d90e839cfae1cbb42c1dfb0fb73defa55154dbef69bc9a8206e561c2d0ceb43ca778e35dcfa3224570deabe7d59d35dac3f21d0c4bd82ac92cebd5477a30a89d xfail-openssl-1.1-test.patch +73ad23e675c336b7607ff99fc3a3ffdb381779411c5503ef5a353ad43607070d889e441800abc54080d6be42032e94c3884d05d3bfbc46e5dda93b5e10fc40f7 fix-lfs64.patch +10c8da2e2ff24903c012b4df4f1fd7ed739429d0630260c398ed255cb45589ee170c29af09f5f57202a5fe37d4e82669196c813a5b916b7f2be2d46e9bfd1d85 fix-s390x-test.patch +16d283ac2373442f2fbbca4968df92e0114454c7645a797f1f04af27e546293f3312d45aef049357057facd4fb62339ebfe7f59e65d4278910c4195d873955d1 fix-icu74.patch +9154ea68ec28b83aaa25d2be9012fde5802872b0d97b6141fcddbf93ee86fddd2d1f0e14fe64942c2a5bc51089041659e8b09cce94c634cb1898f25cdf86ed61 fix-curl.patch +6413bcd3542248974b737ecd0f01e28609b35cbc2fdb6b94b702035cb840b27d062a387c99e50abec66196beb908cacd1aa2b97feb0224266436a50dd0905d61 fix-libxml-1.patch +d1722ee0429f9218886351f08fe728be3e2e0e65b9b886dd7bee2d7f0e08ffba97e0ba3d14f851c1c839d726916c45316681731891577f781129da0d05c75eea fix-libxml-2.patch " |