diff --git a/CHANGELOG.md b/CHANGELOG.md index 3004b109e..84b1c2a7c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,17 @@ # heroku-buildpack-php CHANGELOG -## v189 (2021-02-??) +## v189 (2021-02-05) + +### ADD + +- ext-rdkafka/5.0.0 [David Zuelke] +- PHP/7.3.27 [David Zuelke] +- PHP/7.4.15 [David Zuelke] +- PHP/8.0.2 [David Zuelke] +- ext-ev/1.1.1 [David Zuelke] +- ext-redis/5.3.3 [David Zuelke] +- ext-blackfire/1.49.1 [David Zuelke] +- ext-newrelic/9.16.0.295 [David Zuelke] ### CHG @@ -8,6 +19,9 @@ - Drop support for HHVM [David Zuelke] - Drop support for PHP 5.5 [David Zuelke] - Use PHP 7.4 for bootstrapping [David Zuelke] +- librdkafka/1.6.0 [David Zuelke] +- Composer/1.10.20 [David Zuelke] +- Composer/2.0.9 [David Zuelke] ## v188 (2021-01-08) diff --git a/bin/compile b/bin/compile index 446fad8d2..3361409c9 100755 --- a/bin/compile +++ b/bin/compile @@ -218,7 +218,7 @@ fi mkdir -p $build_dir/.heroku/php-min ln -s $build_dir/.heroku/php-min /app/.heroku/php-min -curl_retry_on_18 --fail --silent --location -o $build_dir/.heroku/php-min.tar.gz "${s3_url}php-min-7.4.14.tar.gz" || { +curl_retry_on_18 --fail --silent --location -o $build_dir/.heroku/php-min.tar.gz "${s3_url}php-min-7.4.15.tar.gz" || { mcount "failures.bootstrap.download.php-min" error <<-EOF Failed to download minimal PHP for bootstrapping! @@ -231,7 +231,7 @@ curl_retry_on_18 --fail --silent --location -o $build_dir/.heroku/php-min.tar.gz tar xzf $build_dir/.heroku/php-min.tar.gz -C $build_dir/.heroku/php-min rm $build_dir/.heroku/php-min.tar.gz -curl_retry_on_18 --fail --silent --location -o $build_dir/.heroku/composer.tar.gz "${s3_url}composer-1.10.19.tar.gz" || { +curl_retry_on_18 --fail --silent --location -o $build_dir/.heroku/composer.tar.gz "${s3_url}composer-1.10.20.tar.gz" || { mcount "failures.bootstrap.download.composer" error <<-EOF Failed to download Composer for bootstrapping! diff --git a/bin/util/platform.php b/bin/util/platform.php index 845a2417a..23f7b16bd 100755 --- a/bin/util/platform.php +++ b/bin/util/platform.php @@ -168,7 +168,7 @@ function mkmetas($package, array &$metapaks, &$have_runtime_req = false) { $require["heroku-sys/nginx"] = "^1.8.0"; preg_match("#^([^-]+)(?:-([0-9]+))?\$#", $STACK, $stack); -$provide = ["heroku-sys/".$stack[1] => (isset($stack[2])?$stack[2]:"1").gmdate(".Y.m.d")]; # cedar: 14.2016.02.16 etc +$provide = ["heroku-sys/".$stack[1] => (isset($stack[2])?$stack[2]:"1").gmdate(".Y.m.d")]; # heroku: 20.2021.02.04 etc $json = [ "config" => ["cache-files-ttl" => 0, "discard-changes" => true], "minimum-stability" => isset($lock["minimum-stability"]) ? $lock["minimum-stability"] : "stable", diff --git a/support/build/_util/mkrepo.sh b/support/build/_util/mkrepo.sh index 852423ba4..36871487d 100755 --- a/support/build/_util/mkrepo.sh +++ b/support/build/_util/mkrepo.sh @@ -85,8 +85,8 @@ if $upload || [[ -t 1 ]]; then exec 3>&1 1>packages.json fi -# sort so that packages with the same name and version (e.g. ext-memcached 2.2.0) show up with their php requirement in descending order - otherwise a Composer limitation means that a simple "ext-memcached: * + php: ^7.0.0" request would install 7.0.latest and not 7.4.latest, as it finds the 7.0.* requirement extension first and sticks to that instead of 7.4. For packages with identical names and versions (but different e.g. requirements), Composer basically treats them as equal and picks as a winner whatever it finds first. The requirements have to be written like "x.y.*" for this to work of course. -python -c 'import sys, json; from distutils import version; json.dump({"packages": [ sorted([json.load(open(item)) for item in sys.argv[1:] if json.load(open(item)).get("type", "") != "heroku-sys-package"], key=lambda package: version.LooseVersion(package.get("require", {}).get("heroku-sys/php", "0.0.0")), reverse=True) ] }, sys.stdout, sort_keys=True)' $manifests +# sort so that packages with the same name and version (e.g. ext-memcached 2.2.0) show up with their php requirement in descending order - otherwise a Composer limitation means that a simple "ext-memcached: * + php: ^7.0.0" request would install 7.0.latest and not 7.4.latest, as it finds the 7.0.* requirement extension first and sticks to that instead of 7.4. For packages with identical names and versions (but different e.g. requirements), Composer basically treats them as equal and picks as a winner whatever it finds first. The requirements have to be written like "x.y.*" for this to work of course (we replace "*", "<=" and so forth with "0", as that's fine for the purpose of just sorting - otherwise, a comparison of e.g. "^7.0.0" and "7.0.*" would cause "TypeError: '<' not supported between instances of 'str' and 'int'") +python -c 'import sys, re, json; from distutils import version; json.dump({"packages": [ sorted([json.load(open(item)) for item in sys.argv[1:] if json.load(open(item)).get("type", "") != "heroku-sys-package"], key=lambda package: version.LooseVersion(re.sub("[<>=*~^]", "0", package.get("require", {}).get("heroku-sys/php", "0.0.0"))), reverse=True) ] }, sys.stdout, sort_keys=True)' $manifests # restore stdout # note that 'exec >$(tty)' does not work as FD 1 may have been a pipe originally and not a tty diff --git a/support/build/composer b/support/build/composer index 6dd546496..6e3a791cd 100755 --- a/support/build/composer +++ b/support/build/composer @@ -77,7 +77,21 @@ export PATH="$HOME/.heroku/php/bin:$PATH" export PATH="$PATH:$(realpath "$(PHP_INI_SCAN_DIR= composer config --no-plugins bin-dir)")" EOF -MANIFEST_REQUIRE="${MANIFEST_REQUIRE:-"{\"heroku-sys/php\":\"*\"}"}" +# the || true (needs to be there, not before the <<-'HEREDOC') prevents 'set -e' induced termination from the 'read' encountering EOF +read -r -d '' require <<-'EOF' || true +{ + "heroku-sys/php": ">=5.3.2", + "heroku-sys/ext-filter": "*", + "heroku-sys/ext-hash": "*", + "heroku-sys/ext-iconv": "*", + "heroku-sys/ext-json": "*", + "heroku-sys/ext-phar": "*", + "heroku-sys/ext-openssl": "*", + "heroku-sys/ext-zlib": "*" +} +EOF + +MANIFEST_REQUIRE="${MANIFEST_REQUIRE:-"$require"}" MANIFEST_CONFLICT="${MANIFEST_CONFLICT:-"{}"}" MANIFEST_REPLACE="${MANIFEST_REPLACE:-"{}"}" MANIFEST_PROVIDE="${MANIFEST_PROVIDE:-"{\"heroku-sys/composer-plugin-api\":\"${plugin_api_version}\"}"}" diff --git a/support/build/composer-1.10.19 b/support/build/composer-1.10.20 similarity index 100% rename from support/build/composer-1.10.19 rename to support/build/composer-1.10.20 diff --git a/support/build/composer-2.0.8 b/support/build/composer-2.0.9 similarity index 100% rename from support/build/composer-2.0.8 rename to support/build/composer-2.0.9 diff --git a/support/build/extensions/no-debug-non-zts-20131226/blackfire-1.48.1 b/support/build/extensions/no-debug-non-zts-20131226/blackfire-1.49.1 similarity index 100% rename from support/build/extensions/no-debug-non-zts-20131226/blackfire-1.48.1 rename to support/build/extensions/no-debug-non-zts-20131226/blackfire-1.49.1 diff --git a/support/build/extensions/no-debug-non-zts-20131226/ev-1.0.9 b/support/build/extensions/no-debug-non-zts-20131226/ev-1.1.1 similarity index 100% rename from support/build/extensions/no-debug-non-zts-20131226/ev-1.0.9 rename to support/build/extensions/no-debug-non-zts-20131226/ev-1.1.1 diff --git a/support/build/extensions/no-debug-non-zts-20131226/newrelic-9.15.0.293 b/support/build/extensions/no-debug-non-zts-20131226/newrelic-9.16.0.295 similarity index 100% rename from support/build/extensions/no-debug-non-zts-20131226/newrelic-9.15.0.293 rename to support/build/extensions/no-debug-non-zts-20131226/newrelic-9.16.0.295 diff --git a/support/build/extensions/no-debug-non-zts-20151012/blackfire-1.48.1 b/support/build/extensions/no-debug-non-zts-20151012/blackfire-1.49.1 similarity index 100% rename from support/build/extensions/no-debug-non-zts-20151012/blackfire-1.48.1 rename to support/build/extensions/no-debug-non-zts-20151012/blackfire-1.49.1 diff --git a/support/build/extensions/no-debug-non-zts-20151012/ev-1.0.9 b/support/build/extensions/no-debug-non-zts-20151012/ev-1.1.1 similarity index 100% rename from support/build/extensions/no-debug-non-zts-20151012/ev-1.0.9 rename to support/build/extensions/no-debug-non-zts-20151012/ev-1.1.1 diff --git a/support/build/extensions/no-debug-non-zts-20151012/newrelic-9.15.0.293 b/support/build/extensions/no-debug-non-zts-20151012/newrelic-9.16.0.295 similarity index 100% rename from support/build/extensions/no-debug-non-zts-20151012/newrelic-9.15.0.293 rename to support/build/extensions/no-debug-non-zts-20151012/newrelic-9.16.0.295 diff --git a/support/build/extensions/no-debug-non-zts-20151012/rdkafka-5.0.0 b/support/build/extensions/no-debug-non-zts-20151012/rdkafka-5.0.0 new file mode 100755 index 000000000..b31f25650 --- /dev/null +++ b/support/build/extensions/no-debug-non-zts-20151012/rdkafka-5.0.0 @@ -0,0 +1,5 @@ +#!/usr/bin/env bash +# Build Path: /app/.heroku/php +# Build Deps: php-7.0.*, libraries/librdkafka-1.* + +source $(dirname $0)/../no-debug-non-zts-20131226/rdkafka diff --git a/support/build/extensions/no-debug-non-zts-20151012/redis-5.3.2 b/support/build/extensions/no-debug-non-zts-20151012/redis-5.3.3 similarity index 100% rename from support/build/extensions/no-debug-non-zts-20151012/redis-5.3.2 rename to support/build/extensions/no-debug-non-zts-20151012/redis-5.3.3 diff --git a/support/build/extensions/no-debug-non-zts-20160303/blackfire-1.48.1 b/support/build/extensions/no-debug-non-zts-20160303/blackfire-1.49.1 similarity index 100% rename from support/build/extensions/no-debug-non-zts-20160303/blackfire-1.48.1 rename to support/build/extensions/no-debug-non-zts-20160303/blackfire-1.49.1 diff --git a/support/build/extensions/no-debug-non-zts-20160303/ev-1.0.9 b/support/build/extensions/no-debug-non-zts-20160303/ev-1.1.1 similarity index 100% rename from support/build/extensions/no-debug-non-zts-20160303/ev-1.0.9 rename to support/build/extensions/no-debug-non-zts-20160303/ev-1.1.1 diff --git a/support/build/extensions/no-debug-non-zts-20160303/newrelic-9.15.0.293 b/support/build/extensions/no-debug-non-zts-20160303/newrelic-9.16.0.295 similarity index 100% rename from support/build/extensions/no-debug-non-zts-20160303/newrelic-9.15.0.293 rename to support/build/extensions/no-debug-non-zts-20160303/newrelic-9.16.0.295 diff --git a/support/build/extensions/no-debug-non-zts-20160303/rdkafka-5.0.0 b/support/build/extensions/no-debug-non-zts-20160303/rdkafka-5.0.0 new file mode 100755 index 000000000..312f1930d --- /dev/null +++ b/support/build/extensions/no-debug-non-zts-20160303/rdkafka-5.0.0 @@ -0,0 +1,5 @@ +#!/usr/bin/env bash +# Build Path: /app/.heroku/php +# Build Deps: php-7.1.*, libraries/librdkafka-1.* + +source $(dirname $0)/../no-debug-non-zts-20131226/rdkafka diff --git a/support/build/extensions/no-debug-non-zts-20160303/redis-5.3.2 b/support/build/extensions/no-debug-non-zts-20160303/redis-5.3.3 similarity index 100% rename from support/build/extensions/no-debug-non-zts-20160303/redis-5.3.2 rename to support/build/extensions/no-debug-non-zts-20160303/redis-5.3.3 diff --git a/support/build/extensions/no-debug-non-zts-20170718/blackfire-1.48.1 b/support/build/extensions/no-debug-non-zts-20170718/blackfire-1.49.1 similarity index 100% rename from support/build/extensions/no-debug-non-zts-20170718/blackfire-1.48.1 rename to support/build/extensions/no-debug-non-zts-20170718/blackfire-1.49.1 diff --git a/support/build/extensions/no-debug-non-zts-20170718/ev-1.0.9 b/support/build/extensions/no-debug-non-zts-20170718/ev-1.1.1 similarity index 100% rename from support/build/extensions/no-debug-non-zts-20170718/ev-1.0.9 rename to support/build/extensions/no-debug-non-zts-20170718/ev-1.1.1 diff --git a/support/build/extensions/no-debug-non-zts-20170718/newrelic-9.15.0.293 b/support/build/extensions/no-debug-non-zts-20170718/newrelic-9.16.0.295 similarity index 100% rename from support/build/extensions/no-debug-non-zts-20170718/newrelic-9.15.0.293 rename to support/build/extensions/no-debug-non-zts-20170718/newrelic-9.16.0.295 diff --git a/support/build/extensions/no-debug-non-zts-20170718/rdkafka-5.0.0 b/support/build/extensions/no-debug-non-zts-20170718/rdkafka-5.0.0 new file mode 100755 index 000000000..130ee828c --- /dev/null +++ b/support/build/extensions/no-debug-non-zts-20170718/rdkafka-5.0.0 @@ -0,0 +1,5 @@ +#!/usr/bin/env bash +# Build Path: /app/.heroku/php +# Build Deps: php-7.2.*, libraries/librdkafka-1.* + +source $(dirname $0)/../no-debug-non-zts-20131226/rdkafka diff --git a/support/build/extensions/no-debug-non-zts-20170718/redis-5.3.2 b/support/build/extensions/no-debug-non-zts-20170718/redis-5.3.3 similarity index 100% rename from support/build/extensions/no-debug-non-zts-20170718/redis-5.3.2 rename to support/build/extensions/no-debug-non-zts-20170718/redis-5.3.3 diff --git a/support/build/extensions/no-debug-non-zts-20180731/blackfire-1.48.1 b/support/build/extensions/no-debug-non-zts-20180731/blackfire-1.49.1 similarity index 100% rename from support/build/extensions/no-debug-non-zts-20180731/blackfire-1.48.1 rename to support/build/extensions/no-debug-non-zts-20180731/blackfire-1.49.1 diff --git a/support/build/extensions/no-debug-non-zts-20180731/ev-1.0.9 b/support/build/extensions/no-debug-non-zts-20180731/ev-1.1.1 similarity index 100% rename from support/build/extensions/no-debug-non-zts-20180731/ev-1.0.9 rename to support/build/extensions/no-debug-non-zts-20180731/ev-1.1.1 diff --git a/support/build/extensions/no-debug-non-zts-20180731/newrelic-9.15.0.293 b/support/build/extensions/no-debug-non-zts-20180731/newrelic-9.16.0.295 similarity index 100% rename from support/build/extensions/no-debug-non-zts-20180731/newrelic-9.15.0.293 rename to support/build/extensions/no-debug-non-zts-20180731/newrelic-9.16.0.295 diff --git a/support/build/extensions/no-debug-non-zts-20180731/rdkafka-5.0.0 b/support/build/extensions/no-debug-non-zts-20180731/rdkafka-5.0.0 new file mode 100755 index 000000000..441afcc30 --- /dev/null +++ b/support/build/extensions/no-debug-non-zts-20180731/rdkafka-5.0.0 @@ -0,0 +1,5 @@ +#!/usr/bin/env bash +# Build Path: /app/.heroku/php +# Build Deps: php-7.3.*, libraries/librdkafka-1.* + +source $(dirname $0)/../no-debug-non-zts-20131226/rdkafka diff --git a/support/build/extensions/no-debug-non-zts-20180731/redis-5.3.2 b/support/build/extensions/no-debug-non-zts-20180731/redis-5.3.3 similarity index 100% rename from support/build/extensions/no-debug-non-zts-20180731/redis-5.3.2 rename to support/build/extensions/no-debug-non-zts-20180731/redis-5.3.3 diff --git a/support/build/extensions/no-debug-non-zts-20190902/blackfire-1.48.1 b/support/build/extensions/no-debug-non-zts-20190902/blackfire-1.49.1 similarity index 100% rename from support/build/extensions/no-debug-non-zts-20190902/blackfire-1.48.1 rename to support/build/extensions/no-debug-non-zts-20190902/blackfire-1.49.1 diff --git a/support/build/extensions/no-debug-non-zts-20190902/ev-1.0.9 b/support/build/extensions/no-debug-non-zts-20190902/ev-1.1.1 similarity index 100% rename from support/build/extensions/no-debug-non-zts-20190902/ev-1.0.9 rename to support/build/extensions/no-debug-non-zts-20190902/ev-1.1.1 diff --git a/support/build/extensions/no-debug-non-zts-20190902/newrelic-9.15.0.293 b/support/build/extensions/no-debug-non-zts-20190902/newrelic-9.16.0.295 similarity index 100% rename from support/build/extensions/no-debug-non-zts-20190902/newrelic-9.15.0.293 rename to support/build/extensions/no-debug-non-zts-20190902/newrelic-9.16.0.295 diff --git a/support/build/extensions/no-debug-non-zts-20190902/rdkafka-5.0.0 b/support/build/extensions/no-debug-non-zts-20190902/rdkafka-5.0.0 new file mode 100755 index 000000000..efa37faf4 --- /dev/null +++ b/support/build/extensions/no-debug-non-zts-20190902/rdkafka-5.0.0 @@ -0,0 +1,5 @@ +#!/usr/bin/env bash +# Build Path: /app/.heroku/php +# Build Deps: php-7.4.*, libraries/librdkafka-1.* + +source $(dirname $0)/../no-debug-non-zts-20131226/rdkafka diff --git a/support/build/extensions/no-debug-non-zts-20190902/redis-5.3.2 b/support/build/extensions/no-debug-non-zts-20190902/redis-5.3.3 similarity index 100% rename from support/build/extensions/no-debug-non-zts-20190902/redis-5.3.2 rename to support/build/extensions/no-debug-non-zts-20190902/redis-5.3.3 diff --git a/support/build/extensions/no-debug-non-zts-20200930/blackfire-1.48.1 b/support/build/extensions/no-debug-non-zts-20200930/blackfire-1.49.1 similarity index 100% rename from support/build/extensions/no-debug-non-zts-20200930/blackfire-1.48.1 rename to support/build/extensions/no-debug-non-zts-20200930/blackfire-1.49.1 diff --git a/support/build/extensions/no-debug-non-zts-20200930/ev-1.1.1 b/support/build/extensions/no-debug-non-zts-20200930/ev-1.1.1 new file mode 100755 index 000000000..b0f393b53 --- /dev/null +++ b/support/build/extensions/no-debug-non-zts-20200930/ev-1.1.1 @@ -0,0 +1,5 @@ +#!/usr/bin/env bash +# Build Path: /app/.heroku/php +# Build Deps: php-8.0.* + +source $(dirname $0)/../no-debug-non-zts-20131226/ev diff --git a/support/build/extensions/no-debug-non-zts-20200930/rdkafka-5.0.0 b/support/build/extensions/no-debug-non-zts-20200930/rdkafka-5.0.0 new file mode 100755 index 000000000..8827037e1 --- /dev/null +++ b/support/build/extensions/no-debug-non-zts-20200930/rdkafka-5.0.0 @@ -0,0 +1,5 @@ +#!/usr/bin/env bash +# Build Path: /app/.heroku/php +# Build Deps: php-8.0.*, libraries/librdkafka-1.* + +source $(dirname $0)/../no-debug-non-zts-20131226/rdkafka diff --git a/support/build/extensions/no-debug-non-zts-20200930/redis-5.3.2 b/support/build/extensions/no-debug-non-zts-20200930/redis-5.3.3 similarity index 100% rename from support/build/extensions/no-debug-non-zts-20200930/redis-5.3.2 rename to support/build/extensions/no-debug-non-zts-20200930/redis-5.3.3 diff --git a/support/build/libraries/librdkafka-1.5.3 b/support/build/libraries/librdkafka-1.6.0 similarity index 100% rename from support/build/libraries/librdkafka-1.5.3 rename to support/build/libraries/librdkafka-1.6.0 diff --git a/support/build/php-7.3.26 b/support/build/php-7.3.27 similarity index 100% rename from support/build/php-7.3.26 rename to support/build/php-7.3.27 diff --git a/support/build/php-7.4.14 b/support/build/php-7.4.15 similarity index 100% rename from support/build/php-7.4.14 rename to support/build/php-7.4.15 diff --git a/support/build/php-8.0.1 b/support/build/php-8.0.2 similarity index 100% rename from support/build/php-8.0.1 rename to support/build/php-8.0.2 diff --git a/support/build/php-min-7.4.14 b/support/build/php-min-7.4.15 similarity index 100% rename from support/build/php-min-7.4.14 rename to support/build/php-min-7.4.15