Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update php #17143

Merged
merged 1 commit into from
Jul 8, 2024
Merged

Update php #17143

merged 1 commit into from
Jul 8, 2024

Conversation

tianon
Copy link
Member

@tianon tianon commented Jul 8, 2024

Changes:

Changes:

- docker-library/php@69f491fb: Merge pull request docker-library/php#1526 from jnoordsij/add-php8.4-rc
- docker-library/php@6de7c598: Apply review nits
- docker-library/php@a1dce0f8: Add pdo build batch for 8.4.0alpha1
- docker-library/php@a40f4d1a: Add PHP 8.4-rc variant
- docker-library/php@9315df94: Update in preparation for first PHP 8.4 alpha release
- docker-library/php@05941afc: Improve formatting on 8.3 GPG_KEYS
@tianon tianon requested a review from a team as a code owner July 8, 2024 23:08
Copy link

github-actions bot commented Jul 8, 2024

Diff for 1fe6fa8:
diff --git a/_bashbrew-cat b/_bashbrew-cat
index 43edb4d..9bbdaf0 100644
--- a/_bashbrew-cat
+++ b/_bashbrew-cat
@@ -210,3 +210,73 @@ Tags: 8.3.9-zts-bullseye, 8.3-zts-bullseye, 8-zts-bullseye, zts-bullseye
 Architectures: amd64, arm32v5, arm32v7, arm64v8, i386, mips64le, ppc64le, s390x
 GitCommit: 21e6a92a1998c7f3157bc5df291fbd600330e33d
 Directory: 8.3/bullseye/zts
+
+Tags: 8.4.0alpha1-apache-bookworm, 8.4-rc-apache-bookworm, 8.4.0alpha1-apache, 8.4-rc-apache
+Architectures: amd64, arm32v5, arm32v7, arm64v8, i386, mips64le, ppc64le, s390x
+GitCommit: 6de7c598d37fbd5fc7af21ff17d274cf1af6aeb0
+Directory: 8.4-rc/bookworm/apache
+
+Tags: 8.4.0alpha1-apache-bullseye, 8.4-rc-apache-bullseye
+Architectures: amd64, arm32v5, arm32v7, arm64v8, i386, mips64le, ppc64le, s390x
+GitCommit: 6de7c598d37fbd5fc7af21ff17d274cf1af6aeb0
+Directory: 8.4-rc/bullseye/apache
+
+Tags: 8.4.0alpha1-cli-alpine3.19, 8.4-rc-cli-alpine3.19, 8.4.0alpha1-alpine3.19, 8.4-rc-alpine3.19
+Architectures: amd64, arm32v6, arm32v7, arm64v8, i386, ppc64le, s390x
+GitCommit: 6de7c598d37fbd5fc7af21ff17d274cf1af6aeb0
+Directory: 8.4-rc/alpine3.19/cli
+
+Tags: 8.4.0alpha1-cli-alpine3.20, 8.4-rc-cli-alpine3.20, 8.4.0alpha1-alpine3.20, 8.4-rc-alpine3.20, 8.4.0alpha1-cli-alpine, 8.4-rc-cli-alpine, 8.4.0alpha1-alpine, 8.4-rc-alpine
+Architectures: amd64, arm32v6, arm32v7, arm64v8, i386, ppc64le, riscv64, s390x
+GitCommit: 6de7c598d37fbd5fc7af21ff17d274cf1af6aeb0
+Directory: 8.4-rc/alpine3.20/cli
+
+Tags: 8.4.0alpha1-cli-bookworm, 8.4-rc-cli-bookworm, 8.4.0alpha1-bookworm, 8.4-rc-bookworm, 8.4.0alpha1-cli, 8.4-rc-cli, 8.4.0alpha1, 8.4-rc
+Architectures: amd64, arm32v5, arm32v7, arm64v8, i386, mips64le, ppc64le, s390x
+GitCommit: 6de7c598d37fbd5fc7af21ff17d274cf1af6aeb0
+Directory: 8.4-rc/bookworm/cli
+
+Tags: 8.4.0alpha1-cli-bullseye, 8.4-rc-cli-bullseye, 8.4.0alpha1-bullseye, 8.4-rc-bullseye
+Architectures: amd64, arm32v5, arm32v7, arm64v8, i386, mips64le, ppc64le, s390x
+GitCommit: 6de7c598d37fbd5fc7af21ff17d274cf1af6aeb0
+Directory: 8.4-rc/bullseye/cli
+
+Tags: 8.4.0alpha1-fpm-alpine3.19, 8.4-rc-fpm-alpine3.19
+Architectures: amd64, arm32v6, arm32v7, arm64v8, i386, ppc64le, s390x
+GitCommit: 6de7c598d37fbd5fc7af21ff17d274cf1af6aeb0
+Directory: 8.4-rc/alpine3.19/fpm
+
+Tags: 8.4.0alpha1-fpm-alpine3.20, 8.4-rc-fpm-alpine3.20, 8.4.0alpha1-fpm-alpine, 8.4-rc-fpm-alpine
+Architectures: amd64, arm32v6, arm32v7, arm64v8, i386, ppc64le, riscv64, s390x
+GitCommit: 6de7c598d37fbd5fc7af21ff17d274cf1af6aeb0
+Directory: 8.4-rc/alpine3.20/fpm
+
+Tags: 8.4.0alpha1-fpm-bookworm, 8.4-rc-fpm-bookworm, 8.4.0alpha1-fpm, 8.4-rc-fpm
+Architectures: amd64, arm32v5, arm32v7, arm64v8, i386, mips64le, ppc64le, s390x
+GitCommit: 6de7c598d37fbd5fc7af21ff17d274cf1af6aeb0
+Directory: 8.4-rc/bookworm/fpm
+
+Tags: 8.4.0alpha1-fpm-bullseye, 8.4-rc-fpm-bullseye
+Architectures: amd64, arm32v5, arm32v7, arm64v8, i386, mips64le, ppc64le, s390x
+GitCommit: 6de7c598d37fbd5fc7af21ff17d274cf1af6aeb0
+Directory: 8.4-rc/bullseye/fpm
+
+Tags: 8.4.0alpha1-zts-alpine3.19, 8.4-rc-zts-alpine3.19
+Architectures: amd64, arm32v6, arm32v7, arm64v8, i386, ppc64le, s390x
+GitCommit: 6de7c598d37fbd5fc7af21ff17d274cf1af6aeb0
+Directory: 8.4-rc/alpine3.19/zts
+
+Tags: 8.4.0alpha1-zts-alpine3.20, 8.4-rc-zts-alpine3.20, 8.4.0alpha1-zts-alpine, 8.4-rc-zts-alpine
+Architectures: amd64, arm32v6, arm32v7, arm64v8, i386, ppc64le, riscv64, s390x
+GitCommit: 6de7c598d37fbd5fc7af21ff17d274cf1af6aeb0
+Directory: 8.4-rc/alpine3.20/zts
+
+Tags: 8.4.0alpha1-zts-bookworm, 8.4-rc-zts-bookworm, 8.4.0alpha1-zts, 8.4-rc-zts
+Architectures: amd64, arm32v5, arm32v7, arm64v8, i386, mips64le, ppc64le, s390x
+GitCommit: 6de7c598d37fbd5fc7af21ff17d274cf1af6aeb0
+Directory: 8.4-rc/bookworm/zts
+
+Tags: 8.4.0alpha1-zts-bullseye, 8.4-rc-zts-bullseye
+Architectures: amd64, arm32v5, arm32v7, arm64v8, i386, mips64le, ppc64le, s390x
+GitCommit: 6de7c598d37fbd5fc7af21ff17d274cf1af6aeb0
+Directory: 8.4-rc/bullseye/zts
diff --git a/_bashbrew-list b/_bashbrew-list
index 6086595..906e728 100644
--- a/_bashbrew-list
+++ b/_bashbrew-list
@@ -187,6 +187,60 @@ php:8.3.9-zts-alpine3.19
 php:8.3.9-zts-alpine3.20
 php:8.3.9-zts-bookworm
 php:8.3.9-zts-bullseye
+php:8.4-rc
+php:8.4-rc-alpine
+php:8.4-rc-alpine3.19
+php:8.4-rc-alpine3.20
+php:8.4-rc-apache
+php:8.4-rc-apache-bookworm
+php:8.4-rc-apache-bullseye
+php:8.4-rc-bookworm
+php:8.4-rc-bullseye
+php:8.4-rc-cli
+php:8.4-rc-cli-alpine
+php:8.4-rc-cli-alpine3.19
+php:8.4-rc-cli-alpine3.20
+php:8.4-rc-cli-bookworm
+php:8.4-rc-cli-bullseye
+php:8.4-rc-fpm
+php:8.4-rc-fpm-alpine
+php:8.4-rc-fpm-alpine3.19
+php:8.4-rc-fpm-alpine3.20
+php:8.4-rc-fpm-bookworm
+php:8.4-rc-fpm-bullseye
+php:8.4-rc-zts
+php:8.4-rc-zts-alpine
+php:8.4-rc-zts-alpine3.19
+php:8.4-rc-zts-alpine3.20
+php:8.4-rc-zts-bookworm
+php:8.4-rc-zts-bullseye
+php:8.4.0alpha1
+php:8.4.0alpha1-alpine
+php:8.4.0alpha1-alpine3.19
+php:8.4.0alpha1-alpine3.20
+php:8.4.0alpha1-apache
+php:8.4.0alpha1-apache-bookworm
+php:8.4.0alpha1-apache-bullseye
+php:8.4.0alpha1-bookworm
+php:8.4.0alpha1-bullseye
+php:8.4.0alpha1-cli
+php:8.4.0alpha1-cli-alpine
+php:8.4.0alpha1-cli-alpine3.19
+php:8.4.0alpha1-cli-alpine3.20
+php:8.4.0alpha1-cli-bookworm
+php:8.4.0alpha1-cli-bullseye
+php:8.4.0alpha1-fpm
+php:8.4.0alpha1-fpm-alpine
+php:8.4.0alpha1-fpm-alpine3.19
+php:8.4.0alpha1-fpm-alpine3.20
+php:8.4.0alpha1-fpm-bookworm
+php:8.4.0alpha1-fpm-bullseye
+php:8.4.0alpha1-zts
+php:8.4.0alpha1-zts-alpine
+php:8.4.0alpha1-zts-alpine3.19
+php:8.4.0alpha1-zts-alpine3.20
+php:8.4.0alpha1-zts-bookworm
+php:8.4.0alpha1-zts-bullseye
 php:alpine
 php:alpine3.19
 php:alpine3.20
diff --git a/_bashbrew-list-build-order b/_bashbrew-list-build-order
index e367845..746601b 100644
--- a/_bashbrew-list-build-order
+++ b/_bashbrew-list-build-order
@@ -26,6 +26,20 @@ php:8.2-zts
 php:8.2-zts-alpine
 php:8.2-zts-alpine3.19
 php:8.2-zts-bullseye
+php:8.4-rc
+php:8.4-rc-alpine
+php:8.4-rc-alpine3.19
+php:8.4-rc-apache
+php:8.4-rc-apache-bullseye
+php:8.4-rc-bullseye
+php:8.4-rc-fpm
+php:8.4-rc-fpm-alpine
+php:8.4-rc-fpm-alpine3.19
+php:8.4-rc-fpm-bullseye
+php:8.4-rc-zts
+php:8.4-rc-zts-alpine
+php:8.4-rc-zts-alpine3.19
+php:8.4-rc-zts-bullseye
 php:alpine
 php:alpine3.19
 php:apache
diff --git a/php_8.1-alpine/Dockerfile b/php_8.4-rc-alpine/Dockerfile
similarity index 84%
copy from php_8.1-alpine/Dockerfile
copy to php_8.4-rc-alpine/Dockerfile
index 3956e8d..7153118 100644
--- a/php_8.1-alpine/Dockerfile
+++ b/php_8.4-rc-alpine/Dockerfile
@@ -54,15 +54,17 @@ ENV PHP_CFLAGS="-fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_
 ENV PHP_CPPFLAGS="$PHP_CFLAGS"
 ENV PHP_LDFLAGS="-Wl,-O1 -pie"
 
-ENV GPG_KEYS 528995BFEDFBA7191D46839EF9BA0ADA31CBD89E 39B641343D8C104B2B146DC3F9C39DC0B9698544 F1F692238FBC1666E5A5CCD4199F9DFEF6FFBAFD
+ENV GPG_KEYS AFD8691FDAEDF03BDF6E460563F15A9B715376CA 9D7F99A0CB8F05C8A6958D6256A97AF7600A39A6 0616E93D95AF471243E26761770426E17EBBB3DD
 
-ENV PHP_VERSION 8.1.29
-ENV PHP_URL="https://www.php.net/distributions/php-8.1.29.tar.xz" PHP_ASC_URL="https://www.php.net/distributions/php-8.1.29.tar.xz.asc"
-ENV PHP_SHA256="288884af60581d4284baba2ace9ca6d646f72facbd3e3c2dd2acc7fe6f903536"
+ENV PHP_VERSION 8.4.0alpha1
+ENV PHP_URL="https://downloads.php.net/~saki/php-8.4.0alpha1.tar.xz" PHP_ASC_URL="https://downloads.php.net/~saki/php-8.4.0alpha1.tar.xz.asc"
+ENV PHP_SHA256="65903a7add51350540b567f8cd2d964ac11366bf33e1b287489765feac45278e"
 
 RUN set -eux; \
 	\
 	apk add --no-cache --virtual .fetch-deps gnupg; \
+	# Add patchutils; see https://github.com/docker-library/php/pull/1526
+	apk add --no-cache --virtual .patch-deps patchutils; \
 	\
 	mkdir -p /usr/src; \
 	cd /usr/src; \
@@ -84,6 +86,13 @@ RUN set -eux; \
 		rm -rf "$GNUPGHOME"; \
 	fi; \
 	\
+	# Add patch; see https://github.com/docker-library/php/pull/1526
+	curl -fsSL -o php-pdo.patch 'https://github.com/php/php-src/pull/14797.patch?full_index=1'; \
+	echo '3a95762048a56ec0f59cb9ee18df49751ffb0bdd0e91e021b57f69ac7af62996 *php-pdo.patch' | sha256sum -c -; \
+	filterdiff -p1 -x 'NEWS' < php-pdo.patch > php-pdo.patch.filtered; \
+	mv php-pdo.patch.filtered php-pdo.patch; \
+	\
+	apk del --no-network .patch-deps; \
 	apk del --no-network .fetch-deps
 
 COPY docker-php-source /usr/local/bin/
@@ -100,6 +109,7 @@ RUN set -eux; \
 		linux-headers \
 		oniguruma-dev \
 		openssl-dev \
+		patch \
 		readline-dev \
 		sqlite-dev \
 	; \
@@ -117,6 +127,9 @@ RUN set -eux; \
 	; \
 	docker-php-source extract; \
 	cd /usr/src/php; \
+# Apply patch; see https://github.com/docker-library/php/pull/1526
+	patch -p1 < ../php-pdo.patch; \
+	./buildconf -f; \
 	gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)"; \
 	./configure \
 		--build="$gnuArch" \
@@ -132,8 +145,6 @@ RUN set -eux; \
 # https://github.com/docker-library/php/issues/822
 		--with-pic \
 		\
-# --enable-ftp is included here for compatibility with existing versions. ftp_ssl_connect() needed ftp to be compiled statically before PHP 7.0 (see https://github.com/docker-library/php/issues/236).
-		--enable-ftp \
 # --enable-mbstring is included here because otherwise there's no way to get pecl to use it properly (see https://github.com/docker-library/php/issues/195)
 		--enable-mbstring \
 # --enable-mysqlnd is included here because it's harder to compile after the fact than extensions are (since it's a plugin for several extensions, not an extension in itself)
@@ -159,10 +170,6 @@ RUN set -eux; \
 # in PHP 7.4+, the pecl/pear installers are officially deprecated (requiring an explicit "--with-pear")
 		--with-pear \
 		\
-# bundled pcre does not support JIT on riscv64 until 10.41 (php 8.3+)
-# https://github.com/PCRE2Project/pcre2/commits/pcre2-10.41/src/sljit/sljitNativeRISCV_64.c
-# https://github.com/php/php-src/tree/php-8.3.0/ext/pcre/pcre2lib
-		$(test "$gnuArch" = 'riscv64-linux-musl' && echo '--without-pcre-jit') \
 	; \
 	make -j "$(nproc)"; \
 	find -type f -name '*.a' -delete; \
diff --git a/php_8.1-alpine/docker-php-entrypoint b/php_8.4-rc-alpine/docker-php-entrypoint
similarity index 100%
copy from php_8.1-alpine/docker-php-entrypoint
copy to php_8.4-rc-alpine/docker-php-entrypoint
diff --git a/php_8.1-alpine/docker-php-ext-configure b/php_8.4-rc-alpine/docker-php-ext-configure
similarity index 100%
copy from php_8.1-alpine/docker-php-ext-configure
copy to php_8.4-rc-alpine/docker-php-ext-configure
diff --git a/php_8.1-alpine/docker-php-ext-enable b/php_8.4-rc-alpine/docker-php-ext-enable
similarity index 100%
copy from php_8.1-alpine/docker-php-ext-enable
copy to php_8.4-rc-alpine/docker-php-ext-enable
diff --git a/php_8.1-alpine/docker-php-ext-install b/php_8.4-rc-alpine/docker-php-ext-install
similarity index 100%
copy from php_8.1-alpine/docker-php-ext-install
copy to php_8.4-rc-alpine/docker-php-ext-install
diff --git a/php_8.1-alpine/docker-php-source b/php_8.4-rc-alpine/docker-php-source
similarity index 100%
copy from php_8.1-alpine/docker-php-source
copy to php_8.4-rc-alpine/docker-php-source
diff --git a/php_8.2-zts-alpine3.19/Dockerfile b/php_8.4-rc-alpine3.19/Dockerfile
similarity index 84%
copy from php_8.2-zts-alpine3.19/Dockerfile
copy to php_8.4-rc-alpine3.19/Dockerfile
index 6da864e..918b020 100644
--- a/php_8.2-zts-alpine3.19/Dockerfile
+++ b/php_8.4-rc-alpine3.19/Dockerfile
@@ -54,15 +54,17 @@ ENV PHP_CFLAGS="-fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_
 ENV PHP_CPPFLAGS="$PHP_CFLAGS"
 ENV PHP_LDFLAGS="-Wl,-O1 -pie"
 
-ENV GPG_KEYS 39B641343D8C104B2B146DC3F9C39DC0B9698544 E60913E4DF209907D8E30D96659A97C9CF2A795A 1198C0117593497A5EC5C199286AF1F9897469DC
+ENV GPG_KEYS AFD8691FDAEDF03BDF6E460563F15A9B715376CA 9D7F99A0CB8F05C8A6958D6256A97AF7600A39A6 0616E93D95AF471243E26761770426E17EBBB3DD
 
-ENV PHP_VERSION 8.2.21
-ENV PHP_URL="https://www.php.net/distributions/php-8.2.21.tar.xz" PHP_ASC_URL="https://www.php.net/distributions/php-8.2.21.tar.xz.asc"
-ENV PHP_SHA256="8cc44d51bb2506399ec176f70fe110f0c9e1f7d852a5303a2cd1403402199707"
+ENV PHP_VERSION 8.4.0alpha1
+ENV PHP_URL="https://downloads.php.net/~saki/php-8.4.0alpha1.tar.xz" PHP_ASC_URL="https://downloads.php.net/~saki/php-8.4.0alpha1.tar.xz.asc"
+ENV PHP_SHA256="65903a7add51350540b567f8cd2d964ac11366bf33e1b287489765feac45278e"
 
 RUN set -eux; \
 	\
 	apk add --no-cache --virtual .fetch-deps gnupg; \
+	# Add patchutils; see https://github.com/docker-library/php/pull/1526
+	apk add --no-cache --virtual .patch-deps patchutils; \
 	\
 	mkdir -p /usr/src; \
 	cd /usr/src; \
@@ -84,6 +86,13 @@ RUN set -eux; \
 		rm -rf "$GNUPGHOME"; \
 	fi; \
 	\
+	# Add patch; see https://github.com/docker-library/php/pull/1526
+	curl -fsSL -o php-pdo.patch 'https://github.com/php/php-src/pull/14797.patch?full_index=1'; \
+	echo '3a95762048a56ec0f59cb9ee18df49751ffb0bdd0e91e021b57f69ac7af62996 *php-pdo.patch' | sha256sum -c -; \
+	filterdiff -p1 -x 'NEWS' < php-pdo.patch > php-pdo.patch.filtered; \
+	mv php-pdo.patch.filtered php-pdo.patch; \
+	\
+	apk del --no-network .patch-deps; \
 	apk del --no-network .fetch-deps
 
 COPY docker-php-source /usr/local/bin/
@@ -100,6 +109,7 @@ RUN set -eux; \
 		linux-headers \
 		oniguruma-dev \
 		openssl-dev \
+		patch \
 		readline-dev \
 		sqlite-dev \
 	; \
@@ -117,6 +127,9 @@ RUN set -eux; \
 	; \
 	docker-php-source extract; \
 	cd /usr/src/php; \
+# Apply patch; see https://github.com/docker-library/php/pull/1526
+	patch -p1 < ../php-pdo.patch; \
+	./buildconf -f; \
 	gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)"; \
 	./configure \
 		--build="$gnuArch" \
@@ -157,18 +170,6 @@ RUN set -eux; \
 # in PHP 7.4+, the pecl/pear installers are officially deprecated (requiring an explicit "--with-pear")
 		--with-pear \
 		\
-# bundled pcre does not support JIT on riscv64 until 10.41 (php 8.3+)
-# https://github.com/PCRE2Project/pcre2/commits/pcre2-10.41/src/sljit/sljitNativeRISCV_64.c
-# https://github.com/php/php-src/tree/php-8.3.0/ext/pcre/pcre2lib
-		$(test "$gnuArch" = 'riscv64-linux-musl' && echo '--without-pcre-jit') \
-		\
-# https://github.com/docker-library/php/pull/939#issuecomment-730501748
-		--enable-embed \
-		\
-		--enable-zts \
-# https://externals.io/message/118859
-		--disable-zend-signals \
-		--enable-zend-max-execution-timers \
 	; \
 	make -j "$(nproc)"; \
 	find -type f -name '*.a' -delete; \
diff --git a/php_8.1-alpine/docker-php-entrypoint b/php_8.4-rc-alpine3.19/docker-php-entrypoint
similarity index 100%
copy from php_8.1-alpine/docker-php-entrypoint
copy to php_8.4-rc-alpine3.19/docker-php-entrypoint
diff --git a/php_8.1-alpine/docker-php-ext-configure b/php_8.4-rc-alpine3.19/docker-php-ext-configure
similarity index 100%
copy from php_8.1-alpine/docker-php-ext-configure
copy to php_8.4-rc-alpine3.19/docker-php-ext-configure
diff --git a/php_8.1-alpine/docker-php-ext-enable b/php_8.4-rc-alpine3.19/docker-php-ext-enable
similarity index 100%
copy from php_8.1-alpine/docker-php-ext-enable
copy to php_8.4-rc-alpine3.19/docker-php-ext-enable
diff --git a/php_8.1-alpine/docker-php-ext-install b/php_8.4-rc-alpine3.19/docker-php-ext-install
similarity index 100%
copy from php_8.1-alpine/docker-php-ext-install
copy to php_8.4-rc-alpine3.19/docker-php-ext-install
diff --git a/php_8.1-alpine/docker-php-source b/php_8.4-rc-alpine3.19/docker-php-source
similarity index 100%
copy from php_8.1-alpine/docker-php-source
copy to php_8.4-rc-alpine3.19/docker-php-source
diff --git a/php_8.2-apache-bullseye/Dockerfile b/php_8.4-rc-apache-bullseye/Dockerfile
similarity index 89%
copy from php_8.2-apache-bullseye/Dockerfile
copy to php_8.4-rc-apache-bullseye/Dockerfile
index 725bcc0..21ad1a3 100644
--- a/php_8.2-apache-bullseye/Dockerfile
+++ b/php_8.4-rc-apache-bullseye/Dockerfile
@@ -116,17 +116,19 @@ ENV PHP_CFLAGS="-fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_
 ENV PHP_CPPFLAGS="$PHP_CFLAGS"
 ENV PHP_LDFLAGS="-Wl,-O1 -pie"
 
-ENV GPG_KEYS 39B641343D8C104B2B146DC3F9C39DC0B9698544 E60913E4DF209907D8E30D96659A97C9CF2A795A 1198C0117593497A5EC5C199286AF1F9897469DC
+ENV GPG_KEYS AFD8691FDAEDF03BDF6E460563F15A9B715376CA 9D7F99A0CB8F05C8A6958D6256A97AF7600A39A6 0616E93D95AF471243E26761770426E17EBBB3DD
 
-ENV PHP_VERSION 8.2.21
-ENV PHP_URL="https://www.php.net/distributions/php-8.2.21.tar.xz" PHP_ASC_URL="https://www.php.net/distributions/php-8.2.21.tar.xz.asc"
-ENV PHP_SHA256="8cc44d51bb2506399ec176f70fe110f0c9e1f7d852a5303a2cd1403402199707"
+ENV PHP_VERSION 8.4.0alpha1
+ENV PHP_URL="https://downloads.php.net/~saki/php-8.4.0alpha1.tar.xz" PHP_ASC_URL="https://downloads.php.net/~saki/php-8.4.0alpha1.tar.xz.asc"
+ENV PHP_SHA256="65903a7add51350540b567f8cd2d964ac11366bf33e1b287489765feac45278e"
 
 RUN set -eux; \
 	\
 	savedAptMark="$(apt-mark showmanual)"; \
 	apt-get update; \
 	apt-get install -y --no-install-recommends gnupg; \
+	# Add patchutils; see https://github.com/docker-library/php/pull/1526
+	apt-get install -y --no-install-recommends patchutils; \
 	rm -rf /var/lib/apt/lists/*; \
 	\
 	mkdir -p /usr/src; \
@@ -149,6 +151,12 @@ RUN set -eux; \
 		rm -rf "$GNUPGHOME"; \
 	fi; \
 	\
+	# Add patch; see https://github.com/docker-library/php/pull/1526
+	curl -fsSL -o php-pdo.patch 'https://github.com/php/php-src/pull/14797.patch?full_index=1'; \
+	echo '3a95762048a56ec0f59cb9ee18df49751ffb0bdd0e91e021b57f69ac7af62996 *php-pdo.patch' | sha256sum -c -; \
+	filterdiff -p1 -x 'NEWS' < php-pdo.patch > php-pdo.patch.filtered; \
+	mv php-pdo.patch.filtered php-pdo.patch; \
+	\
 	apt-mark auto '.*' > /dev/null; \
 	apt-mark manual $savedAptMark > /dev/null; \
 	apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false
@@ -182,6 +190,9 @@ RUN set -eux; \
 	; \
 	docker-php-source extract; \
 	cd /usr/src/php; \
+# Apply patch; see https://github.com/docker-library/php/pull/1526
+	patch -p1 < ../php-pdo.patch; \
+	./buildconf -f; \
 	gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)"; \
 	debMultiarch="$(dpkg-architecture --query DEB_BUILD_MULTIARCH)"; \
 # https://bugs.php.net/bug.php?id=74125
@@ -226,10 +237,6 @@ RUN set -eux; \
 # in PHP 7.4+, the pecl/pear installers are officially deprecated (requiring an explicit "--with-pear")
 		--with-pear \
 		\
-# bundled pcre does not support JIT on riscv64 until 10.41 (php 8.3+)
-# https://github.com/PCRE2Project/pcre2/commits/pcre2-10.41/src/sljit/sljitNativeRISCV_64.c
-# https://github.com/php/php-src/tree/php-8.3.0/ext/pcre/pcre2lib
-		$(test "$gnuArch" = 'riscv64-linux-gnu' && echo '--without-pcre-jit') \
 		--with-libdir="lib/$debMultiarch" \
 		\
 		--disable-cgi \
diff --git a/php_8.1-apache-bullseye/apache2-foreground b/php_8.4-rc-apache-bullseye/apache2-foreground
similarity index 100%
copy from php_8.1-apache-bullseye/apache2-foreground
copy to php_8.4-rc-apache-bullseye/apache2-foreground
diff --git a/php_8.1-apache-bullseye/docker-php-entrypoint b/php_8.4-rc-apache-bullseye/docker-php-entrypoint
similarity index 100%
copy from php_8.1-apache-bullseye/docker-php-entrypoint
copy to php_8.4-rc-apache-bullseye/docker-php-entrypoint
diff --git a/php_8.1-alpine/docker-php-ext-configure b/php_8.4-rc-apache-bullseye/docker-php-ext-configure
similarity index 100%
copy from php_8.1-alpine/docker-php-ext-configure
copy to php_8.4-rc-apache-bullseye/docker-php-ext-configure
diff --git a/php_8.1-alpine/docker-php-ext-enable b/php_8.4-rc-apache-bullseye/docker-php-ext-enable
similarity index 100%
copy from php_8.1-alpine/docker-php-ext-enable
copy to php_8.4-rc-apache-bullseye/docker-php-ext-enable
diff --git a/php_8.1-alpine/docker-php-ext-install b/php_8.4-rc-apache-bullseye/docker-php-ext-install
similarity index 100%
copy from php_8.1-alpine/docker-php-ext-install
copy to php_8.4-rc-apache-bullseye/docker-php-ext-install
diff --git a/php_8.1-alpine/docker-php-source b/php_8.4-rc-apache-bullseye/docker-php-source
similarity index 100%
copy from php_8.1-alpine/docker-php-source
copy to php_8.4-rc-apache-bullseye/docker-php-source
diff --git a/php_8.2-apache/Dockerfile b/php_8.4-rc-apache/Dockerfile
similarity index 89%
copy from php_8.2-apache/Dockerfile
copy to php_8.4-rc-apache/Dockerfile
index 4df386f..f4a6b44 100644
--- a/php_8.2-apache/Dockerfile
+++ b/php_8.4-rc-apache/Dockerfile
@@ -118,17 +118,19 @@ ENV PHP_CFLAGS="-fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_
 ENV PHP_CPPFLAGS="$PHP_CFLAGS"
 ENV PHP_LDFLAGS="-Wl,-O1 -pie"
 
-ENV GPG_KEYS 39B641343D8C104B2B146DC3F9C39DC0B9698544 E60913E4DF209907D8E30D96659A97C9CF2A795A 1198C0117593497A5EC5C199286AF1F9897469DC
+ENV GPG_KEYS AFD8691FDAEDF03BDF6E460563F15A9B715376CA 9D7F99A0CB8F05C8A6958D6256A97AF7600A39A6 0616E93D95AF471243E26761770426E17EBBB3DD
 
-ENV PHP_VERSION 8.2.21
-ENV PHP_URL="https://www.php.net/distributions/php-8.2.21.tar.xz" PHP_ASC_URL="https://www.php.net/distributions/php-8.2.21.tar.xz.asc"
-ENV PHP_SHA256="8cc44d51bb2506399ec176f70fe110f0c9e1f7d852a5303a2cd1403402199707"
+ENV PHP_VERSION 8.4.0alpha1
+ENV PHP_URL="https://downloads.php.net/~saki/php-8.4.0alpha1.tar.xz" PHP_ASC_URL="https://downloads.php.net/~saki/php-8.4.0alpha1.tar.xz.asc"
+ENV PHP_SHA256="65903a7add51350540b567f8cd2d964ac11366bf33e1b287489765feac45278e"
 
 RUN set -eux; \
 	\
 	savedAptMark="$(apt-mark showmanual)"; \
 	apt-get update; \
 	apt-get install -y --no-install-recommends gnupg; \
+	# Add patchutils; see https://github.com/docker-library/php/pull/1526
+	apt-get install -y --no-install-recommends patchutils; \
 	rm -rf /var/lib/apt/lists/*; \
 	\
 	mkdir -p /usr/src; \
@@ -151,6 +153,12 @@ RUN set -eux; \
 		rm -rf "$GNUPGHOME"; \
 	fi; \
 	\
+	# Add patch; see https://github.com/docker-library/php/pull/1526
+	curl -fsSL -o php-pdo.patch 'https://github.com/php/php-src/pull/14797.patch?full_index=1'; \
+	echo '3a95762048a56ec0f59cb9ee18df49751ffb0bdd0e91e021b57f69ac7af62996 *php-pdo.patch' | sha256sum -c -; \
+	filterdiff -p1 -x 'NEWS' < php-pdo.patch > php-pdo.patch.filtered; \
+	mv php-pdo.patch.filtered php-pdo.patch; \
+	\
 	apt-mark auto '.*' > /dev/null; \
 	apt-mark manual $savedAptMark > /dev/null; \
 	apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false
@@ -184,6 +192,9 @@ RUN set -eux; \
 	; \
 	docker-php-source extract; \
 	cd /usr/src/php; \
+# Apply patch; see https://github.com/docker-library/php/pull/1526
+	patch -p1 < ../php-pdo.patch; \
+	./buildconf -f; \
 	gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)"; \
 	debMultiarch="$(dpkg-architecture --query DEB_BUILD_MULTIARCH)"; \
 # https://bugs.php.net/bug.php?id=74125
@@ -228,10 +239,6 @@ RUN set -eux; \
 # in PHP 7.4+, the pecl/pear installers are officially deprecated (requiring an explicit "--with-pear")
 		--with-pear \
 		\
-# bundled pcre does not support JIT on riscv64 until 10.41 (php 8.3+)
-# https://github.com/PCRE2Project/pcre2/commits/pcre2-10.41/src/sljit/sljitNativeRISCV_64.c
-# https://github.com/php/php-src/tree/php-8.3.0/ext/pcre/pcre2lib
-		$(test "$gnuArch" = 'riscv64-linux-gnu' && echo '--without-pcre-jit') \
 		--with-libdir="lib/$debMultiarch" \
 		\
 		--disable-cgi \
diff --git a/php_8.1-apache-bullseye/apache2-foreground b/php_8.4-rc-apache/apache2-foreground
similarity index 100%
copy from php_8.1-apache-bullseye/apache2-foreground
copy to php_8.4-rc-apache/apache2-foreground
diff --git a/php_8.1-apache-bullseye/docker-php-entrypoint b/php_8.4-rc-apache/docker-php-entrypoint
similarity index 100%
copy from php_8.1-apache-bullseye/docker-php-entrypoint
copy to php_8.4-rc-apache/docker-php-entrypoint
diff --git a/php_8.1-alpine/docker-php-ext-configure b/php_8.4-rc-apache/docker-php-ext-configure
similarity index 100%
copy from php_8.1-alpine/docker-php-ext-configure
copy to php_8.4-rc-apache/docker-php-ext-configure
diff --git a/php_8.1-alpine/docker-php-ext-enable b/php_8.4-rc-apache/docker-php-ext-enable
similarity index 100%
copy from php_8.1-alpine/docker-php-ext-enable
copy to php_8.4-rc-apache/docker-php-ext-enable
diff --git a/php_8.1-alpine/docker-php-ext-install b/php_8.4-rc-apache/docker-php-ext-install
similarity index 100%
copy from php_8.1-alpine/docker-php-ext-install
copy to php_8.4-rc-apache/docker-php-ext-install
diff --git a/php_8.1-alpine/docker-php-source b/php_8.4-rc-apache/docker-php-source
similarity index 100%
copy from php_8.1-alpine/docker-php-source
copy to php_8.4-rc-apache/docker-php-source
diff --git a/php_8.1-bullseye/Dockerfile b/php_8.4-rc-bullseye/Dockerfile
similarity index 86%
copy from php_8.1-bullseye/Dockerfile
copy to php_8.4-rc-bullseye/Dockerfile
index ceb5912..ea4b01d 100644
--- a/php_8.1-bullseye/Dockerfile
+++ b/php_8.4-rc-bullseye/Dockerfile
@@ -58,17 +58,19 @@ ENV PHP_CFLAGS="-fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_
 ENV PHP_CPPFLAGS="$PHP_CFLAGS"
 ENV PHP_LDFLAGS="-Wl,-O1 -pie"
 
-ENV GPG_KEYS 528995BFEDFBA7191D46839EF9BA0ADA31CBD89E 39B641343D8C104B2B146DC3F9C39DC0B9698544 F1F692238FBC1666E5A5CCD4199F9DFEF6FFBAFD
+ENV GPG_KEYS AFD8691FDAEDF03BDF6E460563F15A9B715376CA 9D7F99A0CB8F05C8A6958D6256A97AF7600A39A6 0616E93D95AF471243E26761770426E17EBBB3DD
 
-ENV PHP_VERSION 8.1.29
-ENV PHP_URL="https://www.php.net/distributions/php-8.1.29.tar.xz" PHP_ASC_URL="https://www.php.net/distributions/php-8.1.29.tar.xz.asc"
-ENV PHP_SHA256="288884af60581d4284baba2ace9ca6d646f72facbd3e3c2dd2acc7fe6f903536"
+ENV PHP_VERSION 8.4.0alpha1
+ENV PHP_URL="https://downloads.php.net/~saki/php-8.4.0alpha1.tar.xz" PHP_ASC_URL="https://downloads.php.net/~saki/php-8.4.0alpha1.tar.xz.asc"
+ENV PHP_SHA256="65903a7add51350540b567f8cd2d964ac11366bf33e1b287489765feac45278e"
 
 RUN set -eux; \
 	\
 	savedAptMark="$(apt-mark showmanual)"; \
 	apt-get update; \
 	apt-get install -y --no-install-recommends gnupg; \
+	# Add patchutils; see https://github.com/docker-library/php/pull/1526
+	apt-get install -y --no-install-recommends patchutils; \
 	rm -rf /var/lib/apt/lists/*; \
 	\
 	mkdir -p /usr/src; \
@@ -91,6 +93,12 @@ RUN set -eux; \
 		rm -rf "$GNUPGHOME"; \
 	fi; \
 	\
+	# Add patch; see https://github.com/docker-library/php/pull/1526
+	curl -fsSL -o php-pdo.patch 'https://github.com/php/php-src/pull/14797.patch?full_index=1'; \
+	echo '3a95762048a56ec0f59cb9ee18df49751ffb0bdd0e91e021b57f69ac7af62996 *php-pdo.patch' | sha256sum -c -; \
+	filterdiff -p1 -x 'NEWS' < php-pdo.patch > php-pdo.patch.filtered; \
+	mv php-pdo.patch.filtered php-pdo.patch; \
+	\
 	apt-mark auto '.*' > /dev/null; \
 	apt-mark manual $savedAptMark > /dev/null; \
 	apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false
@@ -123,6 +131,9 @@ RUN set -eux; \
 	; \
 	docker-php-source extract; \
 	cd /usr/src/php; \
+# Apply patch; see https://github.com/docker-library/php/pull/1526
+	patch -p1 < ../php-pdo.patch; \
+	./buildconf -f; \
 	gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)"; \
 	debMultiarch="$(dpkg-architecture --query DEB_BUILD_MULTIARCH)"; \
 # https://bugs.php.net/bug.php?id=74125
@@ -143,8 +154,6 @@ RUN set -eux; \
 # https://github.com/docker-library/php/issues/822
 		--with-pic \
 		\
-# --enable-ftp is included here for compatibility with existing versions. ftp_ssl_connect() needed ftp to be compiled statically before PHP 7.0 (see https://github.com/docker-library/php/issues/236).
-		--enable-ftp \
 # --enable-mbstring is included here because otherwise there's no way to get pecl to use it properly (see https://github.com/docker-library/php/issues/195)
 		--enable-mbstring \
 # --enable-mysqlnd is included here because it's harder to compile after the fact than extensions are (since it's a plugin for several extensions, not an extension in itself)
@@ -170,10 +179,6 @@ RUN set -eux; \
 # in PHP 7.4+, the pecl/pear installers are officially deprecated (requiring an explicit "--with-pear")
 		--with-pear \
 		\
-# bundled pcre does not support JIT on riscv64 until 10.41 (php 8.3+)
-# https://github.com/PCRE2Project/pcre2/commits/pcre2-10.41/src/sljit/sljitNativeRISCV_64.c
-# https://github.com/php/php-src/tree/php-8.3.0/ext/pcre/pcre2lib
-		$(test "$gnuArch" = 'riscv64-linux-gnu' && echo '--without-pcre-jit') \
 		--with-libdir="lib/$debMultiarch" \
 		\
 # https://github.com/docker-library/php/pull/939#issuecomment-730501748
diff --git a/php_8.1-alpine/docker-php-entrypoint b/php_8.4-rc-bullseye/docker-php-entrypoint
similarity index 100%
copy from php_8.1-alpine/docker-php-entrypoint
copy to php_8.4-rc-bullseye/docker-php-entrypoint
diff --git a/php_8.1-alpine/docker-php-ext-configure b/php_8.4-rc-bullseye/docker-php-ext-configure
similarity index 100%
copy from php_8.1-alpine/docker-php-ext-configure
copy to php_8.4-rc-bullseye/docker-php-ext-configure
diff --git a/php_8.1-alpine/docker-php-ext-enable b/php_8.4-rc-bullseye/docker-php-ext-enable
similarity index 100%
copy from php_8.1-alpine/docker-php-ext-enable
copy to php_8.4-rc-bullseye/docker-php-ext-enable
diff --git a/php_8.1-alpine/docker-php-ext-install b/php_8.4-rc-bullseye/docker-php-ext-install
similarity index 100%
copy from php_8.1-alpine/docker-php-ext-install
copy to php_8.4-rc-bullseye/docker-php-ext-install
diff --git a/php_8.1-alpine/docker-php-source b/php_8.4-rc-bullseye/docker-php-source
similarity index 100%
copy from php_8.1-alpine/docker-php-source
copy to php_8.4-rc-bullseye/docker-php-source
diff --git a/php_8.2-fpm-alpine/Dockerfile b/php_8.4-rc-fpm-alpine/Dockerfile
similarity index 88%
copy from php_8.2-fpm-alpine/Dockerfile
copy to php_8.4-rc-fpm-alpine/Dockerfile
index bcb96ed..f55cdbc 100644
--- a/php_8.2-fpm-alpine/Dockerfile
+++ b/php_8.4-rc-fpm-alpine/Dockerfile
@@ -54,15 +54,17 @@ ENV PHP_CFLAGS="-fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_
 ENV PHP_CPPFLAGS="$PHP_CFLAGS"
 ENV PHP_LDFLAGS="-Wl,-O1 -pie"
 
-ENV GPG_KEYS 39B641343D8C104B2B146DC3F9C39DC0B9698544 E60913E4DF209907D8E30D96659A97C9CF2A795A 1198C0117593497A5EC5C199286AF1F9897469DC
+ENV GPG_KEYS AFD8691FDAEDF03BDF6E460563F15A9B715376CA 9D7F99A0CB8F05C8A6958D6256A97AF7600A39A6 0616E93D95AF471243E26761770426E17EBBB3DD
 
-ENV PHP_VERSION 8.2.21
-ENV PHP_URL="https://www.php.net/distributions/php-8.2.21.tar.xz" PHP_ASC_URL="https://www.php.net/distributions/php-8.2.21.tar.xz.asc"
-ENV PHP_SHA256="8cc44d51bb2506399ec176f70fe110f0c9e1f7d852a5303a2cd1403402199707"
+ENV PHP_VERSION 8.4.0alpha1
+ENV PHP_URL="https://downloads.php.net/~saki/php-8.4.0alpha1.tar.xz" PHP_ASC_URL="https://downloads.php.net/~saki/php-8.4.0alpha1.tar.xz.asc"
+ENV PHP_SHA256="65903a7add51350540b567f8cd2d964ac11366bf33e1b287489765feac45278e"
 
 RUN set -eux; \
 	\
 	apk add --no-cache --virtual .fetch-deps gnupg; \
+	# Add patchutils; see https://github.com/docker-library/php/pull/1526
+	apk add --no-cache --virtual .patch-deps patchutils; \
 	\
 	mkdir -p /usr/src; \
 	cd /usr/src; \
@@ -84,6 +86,13 @@ RUN set -eux; \
 		rm -rf "$GNUPGHOME"; \
 	fi; \
 	\
+	# Add patch; see https://github.com/docker-library/php/pull/1526
+	curl -fsSL -o php-pdo.patch 'https://github.com/php/php-src/pull/14797.patch?full_index=1'; \
+	echo '3a95762048a56ec0f59cb9ee18df49751ffb0bdd0e91e021b57f69ac7af62996 *php-pdo.patch' | sha256sum -c -; \
+	filterdiff -p1 -x 'NEWS' < php-pdo.patch > php-pdo.patch.filtered; \
+	mv php-pdo.patch.filtered php-pdo.patch; \
+	\
+	apk del --no-network .patch-deps; \
 	apk del --no-network .fetch-deps
 
 COPY docker-php-source /usr/local/bin/
@@ -100,6 +109,7 @@ RUN set -eux; \
 		linux-headers \
 		oniguruma-dev \
 		openssl-dev \
+		patch \
 		readline-dev \
 		sqlite-dev \
 	; \
@@ -117,6 +127,9 @@ RUN set -eux; \
 	; \
 	docker-php-source extract; \
 	cd /usr/src/php; \
+# Apply patch; see https://github.com/docker-library/php/pull/1526
+	patch -p1 < ../php-pdo.patch; \
+	./buildconf -f; \
 	gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)"; \
 	./configure \
 		--build="$gnuArch" \
@@ -156,10 +169,6 @@ RUN set -eux; \
 # in PHP 7.4+, the pecl/pear installers are officially deprecated (requiring an explicit "--with-pear")
 		--with-pear \
 		\
-# bundled pcre does not support JIT on riscv64 until 10.41 (php 8.3+)
-# https://github.com/PCRE2Project/pcre2/commits/pcre2-10.41/src/sljit/sljitNativeRISCV_64.c
-# https://github.com/php/php-src/tree/php-8.3.0/ext/pcre/pcre2lib
-		$(test "$gnuArch" = 'riscv64-linux-musl' && echo '--without-pcre-jit') \
 		\
 		--disable-cgi \
 		\
diff --git a/php_8.1-fpm-alpine/docker-php-entrypoint b/php_8.4-rc-fpm-alpine/docker-php-entrypoint
similarity index 100%
copy from php_8.1-fpm-alpine/docker-php-entrypoint
copy to php_8.4-rc-fpm-alpine/docker-php-entrypoint
diff --git a/php_8.1-alpine/docker-php-ext-configure b/php_8.4-rc-fpm-alpine/docker-php-ext-configure
similarity index 100%
copy from php_8.1-alpine/docker-php-ext-configure
copy to php_8.4-rc-fpm-alpine/docker-php-ext-configure
diff --git a/php_8.1-alpine/docker-php-ext-enable b/php_8.4-rc-fpm-alpine/docker-php-ext-enable
similarity index 100%
copy from php_8.1-alpine/docker-php-ext-enable
copy to php_8.4-rc-fpm-alpine/docker-php-ext-enable
diff --git a/php_8.1-alpine/docker-php-ext-install b/php_8.4-rc-fpm-alpine/docker-php-ext-install
similarity index 100%
copy from php_8.1-alpine/docker-php-ext-install
copy to php_8.4-rc-fpm-alpine/docker-php-ext-install
diff --git a/php_8.1-alpine/docker-php-source b/php_8.4-rc-fpm-alpine/docker-php-source
similarity index 100%
copy from php_8.1-alpine/docker-php-source
copy to php_8.4-rc-fpm-alpine/docker-php-source
diff --git a/php_fpm-alpine3.19/Dockerfile b/php_8.4-rc-fpm-alpine3.19/Dockerfile
similarity index 88%
copy from php_fpm-alpine3.19/Dockerfile
copy to php_8.4-rc-fpm-alpine3.19/Dockerfile
index 3998b9f..f690daf 100644
--- a/php_fpm-alpine3.19/Dockerfile
+++ b/php_8.4-rc-fpm-alpine3.19/Dockerfile
@@ -54,15 +54,17 @@ ENV PHP_CFLAGS="-fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_
 ENV PHP_CPPFLAGS="$PHP_CFLAGS"
 ENV PHP_LDFLAGS="-Wl,-O1 -pie"
 
-ENV GPG_KEYS 1198C0117593497A5EC5C199286AF1F9897469DC C28D937575603EB4ABB725861C0779DC5C0A9DE4 AFD8691FDAEDF03BDF6E460563F15A9B715376CA
+ENV GPG_KEYS AFD8691FDAEDF03BDF6E460563F15A9B715376CA 9D7F99A0CB8F05C8A6958D6256A97AF7600A39A6 0616E93D95AF471243E26761770426E17EBBB3DD
 
-ENV PHP_VERSION 8.3.9
-ENV PHP_URL="https://www.php.net/distributions/php-8.3.9.tar.xz" PHP_ASC_URL="https://www.php.net/distributions/php-8.3.9.tar.xz.asc"
-ENV PHP_SHA256="bf4d7b8ea60a356064f88485278bd6f941a230ec16f0fc401574ce1445ad6c77"
+ENV PHP_VERSION 8.4.0alpha1
+ENV PHP_URL="https://downloads.php.net/~saki/php-8.4.0alpha1.tar.xz" PHP_ASC_URL="https://downloads.php.net/~saki/php-8.4.0alpha1.tar.xz.asc"
+ENV PHP_SHA256="65903a7add51350540b567f8cd2d964ac11366bf33e1b287489765feac45278e"
 
 RUN set -eux; \
 	\
 	apk add --no-cache --virtual .fetch-deps gnupg; \
+	# Add patchutils; see https://github.com/docker-library/php/pull/1526
+	apk add --no-cache --virtual .patch-deps patchutils; \
 	\
 	mkdir -p /usr/src; \
 	cd /usr/src; \
@@ -84,6 +86,13 @@ RUN set -eux; \
 		rm -rf "$GNUPGHOME"; \
 	fi; \
 	\
+	# Add patch; see https://github.com/docker-library/php/pull/1526
+	curl -fsSL -o php-pdo.patch 'https://github.com/php/php-src/pull/14797.patch?full_index=1'; \
+	echo '3a95762048a56ec0f59cb9ee18df49751ffb0bdd0e91e021b57f69ac7af62996 *php-pdo.patch' | sha256sum -c -; \
+	filterdiff -p1 -x 'NEWS' < php-pdo.patch > php-pdo.patch.filtered; \
+	mv php-pdo.patch.filtered php-pdo.patch; \
+	\
+	apk del --no-network .patch-deps; \
 	apk del --no-network .fetch-deps
 
 COPY docker-php-source /usr/local/bin/
@@ -100,6 +109,7 @@ RUN set -eux; \
 		linux-headers \
 		oniguruma-dev \
 		openssl-dev \
+		patch \
 		readline-dev \
 		sqlite-dev \
 	; \
@@ -117,6 +127,9 @@ RUN set -eux; \
 	; \
 	docker-php-source extract; \
 	cd /usr/src/php; \
+# Apply patch; see https://github.com/docker-library/php/pull/1526
+	patch -p1 < ../php-pdo.patch; \
+	./buildconf -f; \
 	gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)"; \
 	./configure \
 		--build="$gnuArch" \
diff --git a/php_8.1-fpm-alpine/docker-php-entrypoint b/php_8.4-rc-fpm-alpine3.19/docker-php-entrypoint
similarity index 100%
copy from php_8.1-fpm-alpine/docker-php-entrypoint
copy to php_8.4-rc-fpm-alpine3.19/docker-php-entrypoint
diff --git a/php_8.1-alpine/docker-php-ext-configure b/php_8.4-rc-fpm-alpine3.19/docker-php-ext-configure
similarity index 100%
copy from php_8.1-alpine/docker-php-ext-configure
copy to php_8.4-rc-fpm-alpine3.19/docker-php-ext-configure
diff --git a/php_8.1-alpine/docker-php-ext-enable b/php_8.4-rc-fpm-alpine3.19/docker-php-ext-enable
similarity index 100%
copy from php_8.1-alpine/docker-php-ext-enable
copy to php_8.4-rc-fpm-alpine3.19/docker-php-ext-enable
diff --git a/php_8.1-alpine/docker-php-ext-install b/php_8.4-rc-fpm-alpine3.19/docker-php-ext-install
similarity index 100%
copy from php_8.1-alpine/docker-php-ext-install
copy to php_8.4-rc-fpm-alpine3.19/docker-php-ext-install
diff --git a/php_8.1-alpine/docker-php-source b/php_8.4-rc-fpm-alpine3.19/docker-php-source
similarity index 100%
copy from php_8.1-alpine/docker-php-source
copy to php_8.4-rc-fpm-alpine3.19/docker-php-source
diff --git a/php_fpm-bullseye/Dockerfile b/php_8.4-rc-fpm-bullseye/Dockerfile
similarity index 89%
copy from php_fpm-bullseye/Dockerfile
copy to php_8.4-rc-fpm-bullseye/Dockerfile
index f08eb64..7921b02 100644
--- a/php_fpm-bullseye/Dockerfile
+++ b/php_8.4-rc-fpm-bullseye/Dockerfile
@@ -58,17 +58,19 @@ ENV PHP_CFLAGS="-fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_
 ENV PHP_CPPFLAGS="$PHP_CFLAGS"
 ENV PHP_LDFLAGS="-Wl,-O1 -pie"
 
-ENV GPG_KEYS 1198C0117593497A5EC5C199286AF1F9897469DC C28D937575603EB4ABB725861C0779DC5C0A9DE4 AFD8691FDAEDF03BDF6E460563F15A9B715376CA
+ENV GPG_KEYS AFD8691FDAEDF03BDF6E460563F15A9B715376CA 9D7F99A0CB8F05C8A6958D6256A97AF7600A39A6 0616E93D95AF471243E26761770426E17EBBB3DD
 
-ENV PHP_VERSION 8.3.9
-ENV PHP_URL="https://www.php.net/distributions/php-8.3.9.tar.xz" PHP_ASC_URL="https://www.php.net/distributions/php-8.3.9.tar.xz.asc"
-ENV PHP_SHA256="bf4d7b8ea60a356064f88485278bd6f941a230ec16f0fc401574ce1445ad6c77"
+ENV PHP_VERSION 8.4.0alpha1
+ENV PHP_URL="https://downloads.php.net/~saki/php-8.4.0alpha1.tar.xz" PHP_ASC_URL="https://downloads.php.net/~saki/php-8.4.0alpha1.tar.xz.asc"
+ENV PHP_SHA256="65903a7add51350540b567f8cd2d964ac11366bf33e1b287489765feac45278e"
 
 RUN set -eux; \
 	\
 	savedAptMark="$(apt-mark showmanual)"; \
 	apt-get update; \
 	apt-get install -y --no-install-recommends gnupg; \
+	# Add patchutils; see https://github.com/docker-library/php/pull/1526
+	apt-get install -y --no-install-recommends patchutils; \
 	rm -rf /var/lib/apt/lists/*; \
 	\
 	mkdir -p /usr/src; \
@@ -91,6 +93,12 @@ RUN set -eux; \
 		rm -rf "$GNUPGHOME"; \
 	fi; \
 	\
+	# Add patch; see https://github.com/docker-library/php/pull/1526
+	curl -fsSL -o php-pdo.patch 'https://github.com/php/php-src/pull/14797.patch?full_index=1'; \
+	echo '3a95762048a56ec0f59cb9ee18df49751ffb0bdd0e91e021b57f69ac7af62996 *php-pdo.patch' | sha256sum -c -; \
+	filterdiff -p1 -x 'NEWS' < php-pdo.patch > php-pdo.patch.filtered; \
+	mv php-pdo.patch.filtered php-pdo.patch; \
+	\
 	apt-mark auto '.*' > /dev/null; \
 	apt-mark manual $savedAptMark > /dev/null; \
 	apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false
@@ -123,6 +131,9 @@ RUN set -eux; \
 	; \
 	docker-php-source extract; \
 	cd /usr/src/php; \
+# Apply patch; see https://github.com/docker-library/php/pull/1526
+	patch -p1 < ../php-pdo.patch; \
+	./buildconf -f; \
 	gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)"; \
 	debMultiarch="$(dpkg-architecture --query DEB_BUILD_MULTIARCH)"; \
 # https://bugs.php.net/bug.php?id=74125
diff --git a/php_8.1-fpm-alpine/docker-php-entrypoint b/php_8.4-rc-fpm-bullseye/docker-php-entrypoint
similarity index 100%
copy from php_8.1-fpm-alpine/docker-php-entrypoint
copy to php_8.4-rc-fpm-bullseye/docker-php-entrypoint
diff --git a/php_8.1-alpine/docker-php-ext-configure b/php_8.4-rc-fpm-bullseye/docker-php-ext-configure
similarity index 100%
copy from php_8.1-alpine/docker-php-ext-configure
copy to php_8.4-rc-fpm-bullseye/docker-php-ext-configure
diff --git a/php_8.1-alpine/docker-php-ext-enable b/php_8.4-rc-fpm-bullseye/docker-php-ext-enable
similarity index 100%
copy from php_8.1-alpine/docker-php-ext-enable
copy to php_8.4-rc-fpm-bullseye/docker-php-ext-enable
diff --git a/php_8.1-alpine/docker-php-ext-install b/php_8.4-rc-fpm-bullseye/docker-php-ext-install
similarity index 100%
copy from php_8.1-alpine/docker-php-ext-install
copy to php_8.4-rc-fpm-bullseye/docker-php-ext-install
diff --git a/php_8.1-alpine/docker-php-source b/php_8.4-rc-fpm-bullseye/docker-php-source
similarity index 100%
copy from php_8.1-alpine/docker-php-source
copy to php_8.4-rc-fpm-bullseye/docker-php-source
diff --git a/php_fpm/Dockerfile b/php_8.4-rc-fpm/Dockerfile
similarity index 89%
copy from php_fpm/Dockerfile
copy to php_8.4-rc-fpm/Dockerfile
index ad3be4a..d3163a5 100644
--- a/php_fpm/Dockerfile
+++ b/php_8.4-rc-fpm/Dockerfile
@@ -58,17 +58,19 @@ ENV PHP_CFLAGS="-fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_
 ENV PHP_CPPFLAGS="$PHP_CFLAGS"
 ENV PHP_LDFLAGS="-Wl,-O1 -pie"
 
-ENV GPG_KEYS 1198C0117593497A5EC5C199286AF1F9897469DC C28D937575603EB4ABB725861C0779DC5C0A9DE4 AFD8691FDAEDF03BDF6E460563F15A9B715376CA
+ENV GPG_KEYS AFD8691FDAEDF03BDF6E460563F15A9B715376CA 9D7F99A0CB8F05C8A6958D6256A97AF7600A39A6 0616E93D95AF471243E26761770426E17EBBB3DD
 
-ENV PHP_VERSION 8.3.9
-ENV PHP_URL="https://www.php.net/distributions/php-8.3.9.tar.xz" PHP_ASC_URL="https://www.php.net/distributions/php-8.3.9.tar.xz.asc"
-ENV PHP_SHA256="bf4d7b8ea60a356064f88485278bd6f941a230ec16f0fc401574ce1445ad6c77"
+ENV PHP_VERSION 8.4.0alpha1
+ENV PHP_URL="https://downloads.php.net/~saki/php-8.4.0alpha1.tar.xz" PHP_ASC_URL="https://downloads.php.net/~saki/php-8.4.0alpha1.tar.xz.asc"
+ENV PHP_SHA256="65903a7add51350540b567f8cd2d964ac11366bf33e1b287489765feac45278e"
 
 RUN set -eux; \
 	\
 	savedAptMark="$(apt-mark showmanual)"; \
 	apt-get update; \
 	apt-get install -y --no-install-recommends gnupg; \
+	# Add patchutils; see https://github.com/docker-library/php/pull/1526
+	apt-get install -y --no-install-recommends patchutils; \
 	rm -rf /var/lib/apt/lists/*; \
 	\
 	mkdir -p /usr/src; \
@@ -91,6 +93,12 @@ RUN set -eux; \
 		rm -rf "$GNUPGHOME"; \
 	fi; \
 	\
+	# Add patch; see https://github.com/docker-library/php/pull/1526
+	curl -fsSL -o php-pdo.patch 'https://github.com/php/php-src/pull/14797.patch?full_index=1'; \
+	echo '3a95762048a56ec0f59cb9ee18df49751ffb0bdd0e91e021b57f69ac7af62996 *php-pdo.patch' | sha256sum -c -; \
+	filterdiff -p1 -x 'NEWS' < php-pdo.patch > php-pdo.patch.filtered; \
+	mv php-pdo.patch.filtered php-pdo.patch; \
+	\
 	apt-mark auto '.*' > /dev/null; \
 	apt-mark manual $savedAptMark > /dev/null; \
 	apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false
@@ -123,6 +131,9 @@ RUN set -eux; \
 	; \
 	docker-php-source extract; \
 	cd /usr/src/php; \
+# Apply patch; see https://github.com/docker-library/php/pull/1526
+	patch -p1 < ../php-pdo.patch; \
+	./buildconf -f; \
 	gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)"; \
 	debMultiarch="$(dpkg-architecture --query DEB_BUILD_MULTIARCH)"; \
 # https://bugs.php.net/bug.php?id=74125
diff --git a/php_8.1-fpm-alpine/docker-php-entrypoint b/php_8.4-rc-fpm/docker-php-entrypoint
similarity index 100%
copy from php_8.1-fpm-alpine/docker-php-entrypoint
copy to php_8.4-rc-fpm/docker-php-entrypoint
diff --git a/php_8.1-alpine/docker-php-ext-configure b/php_8.4-rc-fpm/docker-php-ext-configure
similarity index 100%
copy from php_8.1-alpine/docker-php-ext-configure
copy to php_8.4-rc-fpm/docker-php-ext-configure
diff --git a/php_8.1-alpine/docker-php-ext-enable b/php_8.4-rc-fpm/docker-php-ext-enable
similarity index 100%
copy from php_8.1-alpine/docker-php-ext-enable
copy to php_8.4-rc-fpm/docker-php-ext-enable
diff --git a/php_8.1-alpine/docker-php-ext-install b/php_8.4-rc-fpm/docker-php-ext-install
similarity index 100%
copy from php_8.1-alpine/docker-php-ext-install
copy to php_8.4-rc-fpm/docker-php-ext-install
diff --git a/php_8.1-alpine/docker-php-source b/php_8.4-rc-fpm/docker-php-source
similarity index 100%
copy from php_8.1-alpine/docker-php-source
copy to php_8.4-rc-fpm/docker-php-source
diff --git a/php_8.2-zts-alpine/Dockerfile b/php_8.4-rc-zts-alpine/Dockerfile
similarity index 85%
copy from php_8.2-zts-alpine/Dockerfile
copy to php_8.4-rc-zts-alpine/Dockerfile
index 1ac66f2..f26cc56 100644
--- a/php_8.2-zts-alpine/Dockerfile
+++ b/php_8.4-rc-zts-alpine/Dockerfile
@@ -54,15 +54,17 @@ ENV PHP_CFLAGS="-fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_
 ENV PHP_CPPFLAGS="$PHP_CFLAGS"
 ENV PHP_LDFLAGS="-Wl,-O1 -pie"
 
-ENV GPG_KEYS 39B641343D8C104B2B146DC3F9C39DC0B9698544 E60913E4DF209907D8E30D96659A97C9CF2A795A 1198C0117593497A5EC5C199286AF1F9897469DC
+ENV GPG_KEYS AFD8691FDAEDF03BDF6E460563F15A9B715376CA 9D7F99A0CB8F05C8A6958D6256A97AF7600A39A6 0616E93D95AF471243E26761770426E17EBBB3DD
 
-ENV PHP_VERSION 8.2.21
-ENV PHP_URL="https://www.php.net/distributions/php-8.2.21.tar.xz" PHP_ASC_URL="https://www.php.net/distributions/php-8.2.21.tar.xz.asc"
-ENV PHP_SHA256="8cc44d51bb2506399ec176f70fe110f0c9e1f7d852a5303a2cd1403402199707"
+ENV PHP_VERSION 8.4.0alpha1
+ENV PHP_URL="https://downloads.php.net/~saki/php-8.4.0alpha1.tar.xz" PHP_ASC_URL="https://downloads.php.net/~saki/php-8.4.0alpha1.tar.xz.asc"
+ENV PHP_SHA256="65903a7add51350540b567f8cd2d964ac11366bf33e1b287489765feac45278e"
 
 RUN set -eux; \
 	\
 	apk add --no-cache --virtual .fetch-deps gnupg; \
+	# Add patchutils; see https://github.com/docker-library/php/pull/1526
+	apk add --no-cache --virtual .patch-deps patchutils; \
 	\
 	mkdir -p /usr/src; \
 	cd /usr/src; \
@@ -84,6 +86,13 @@ RUN set -eux; \
 		rm -rf "$GNUPGHOME"; \
 	fi; \
 	\
+	# Add patch; see https://github.com/docker-library/php/pull/1526
+	curl -fsSL -o php-pdo.patch 'https://github.com/php/php-src/pull/14797.patch?full_index=1'; \
+	echo '3a95762048a56ec0f59cb9ee18df49751ffb0bdd0e91e021b57f69ac7af62996 *php-pdo.patch' | sha256sum -c -; \
+	filterdiff -p1 -x 'NEWS' < php-pdo.patch > php-pdo.patch.filtered; \
+	mv php-pdo.patch.filtered php-pdo.patch; \
+	\
+	apk del --no-network .patch-deps; \
 	apk del --no-network .fetch-deps
 
 COPY docker-php-source /usr/local/bin/
@@ -100,6 +109,7 @@ RUN set -eux; \
 		linux-headers \
 		oniguruma-dev \
 		openssl-dev \
+		patch \
 		readline-dev \
 		sqlite-dev \
 	; \
@@ -117,6 +127,9 @@ RUN set -eux; \
 	; \
 	docker-php-source extract; \
 	cd /usr/src/php; \
+# Apply patch; see https://github.com/docker-library/php/pull/1526
+	patch -p1 < ../php-pdo.patch; \
+	./buildconf -f; \
 	gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)"; \
 	./configure \
 		--build="$gnuArch" \
@@ -157,10 +170,6 @@ RUN set -eux; \
 # in PHP 7.4+, the pecl/pear installers are officially deprecated (requiring an explicit "--with-pear")
 		--with-pear \
 		\
-# bundled pcre does not support JIT on riscv64 until 10.41 (php 8.3+)
-# https://github.com/PCRE2Project/pcre2/commits/pcre2-10.41/src/sljit/sljitNativeRISCV_64.c
-# https://github.com/php/php-src/tree/php-8.3.0/ext/pcre/pcre2lib
-		$(test "$gnuArch" = 'riscv64-linux-musl' && echo '--without-pcre-jit') \
 		\
 # https://github.com/docker-library/php/pull/939#issuecomment-730501748
 		--enable-embed \
@@ -168,7 +177,6 @@ RUN set -eux; \
 		--enable-zts \
 # https://externals.io/message/118859
 		--disable-zend-signals \
-		--enable-zend-max-execution-timers \
 	; \
 	make -j "$(nproc)"; \
 	find -type f -name '*.a' -delete; \
diff --git a/php_8.1-alpine/docker-php-entrypoint b/php_8.4-rc-zts-alpine/docker-php-entrypoint
similarity index 100%
copy from php_8.1-alpine/docker-php-entrypoint
copy to php_8.4-rc-zts-alpine/docker-php-entrypoint
diff --git a/php_8.1-alpine/docker-php-ext-configure b/php_8.4-rc-zts-alpine/docker-php-ext-configure
similarity index 100%
copy from php_8.1-alpine/docker-php-ext-configure
copy to php_8.4-rc-zts-alpine/docker-php-ext-configure
diff --git a/php_8.1-alpine/docker-php-ext-enable b/php_8.4-rc-zts-alpine/docker-php-ext-enable
similarity index 100%
copy from php_8.1-alpine/docker-php-ext-enable
copy to php_8.4-rc-zts-alpine/docker-php-ext-enable
diff --git a/php_8.1-alpine/docker-php-ext-install b/php_8.4-rc-zts-alpine/docker-php-ext-install
similarity index 100%
copy from php_8.1-alpine/docker-php-ext-install
copy to php_8.4-rc-zts-alpine/docker-php-ext-install
diff --git a/php_8.1-alpine/docker-php-source b/php_8.4-rc-zts-alpine/docker-php-source
similarity index 100%
copy from php_8.1-alpine/docker-php-source
copy to php_8.4-rc-zts-alpine/docker-php-source
diff --git a/php_zts-alpine3.19/Dockerfile b/php_8.4-rc-zts-alpine3.19/Dockerfile
similarity index 85%
copy from php_zts-alpine3.19/Dockerfile
copy to php_8.4-rc-zts-alpine3.19/Dockerfile
index 6f1bbb2..a05e967 100644
--- a/php_zts-alpine3.19/Dockerfile
+++ b/php_8.4-rc-zts-alpine3.19/Dockerfile
@@ -54,15 +54,17 @@ ENV PHP_CFLAGS="-fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_
 ENV PHP_CPPFLAGS="$PHP_CFLAGS"
 ENV PHP_LDFLAGS="-Wl,-O1 -pie"
 
-ENV GPG_KEYS 1198C0117593497A5EC5C199286AF1F9897469DC C28D937575603EB4ABB725861C0779DC5C0A9DE4 AFD8691FDAEDF03BDF6E460563F15A9B715376CA
+ENV GPG_KEYS AFD8691FDAEDF03BDF6E460563F15A9B715376CA 9D7F99A0CB8F05C8A6958D6256A97AF7600A39A6 0616E93D95AF471243E26761770426E17EBBB3DD
 
-ENV PHP_VERSION 8.3.9
-ENV PHP_URL="https://www.php.net/distributions/php-8.3.9.tar.xz" PHP_ASC_URL="https://www.php.net/distributions/php-8.3.9.tar.xz.asc"
-ENV PHP_SHA256="bf4d7b8ea60a356064f88485278bd6f941a230ec16f0fc401574ce1445ad6c77"
+ENV PHP_VERSION 8.4.0alpha1
+ENV PHP_URL="https://downloads.php.net/~saki/php-8.4.0alpha1.tar.xz" PHP_ASC_URL="https://downloads.php.net/~saki/php-8.4.0alpha1.tar.xz.asc"
+ENV PHP_SHA256="65903a7add51350540b567f8cd2d964ac11366bf33e1b287489765feac45278e"
 
 RUN set -eux; \
 	\
 	apk add --no-cache --virtual .fetch-deps gnupg; \
+	# Add patchutils; see https://github.com/docker-library/php/pull/1526
+	apk add --no-cache --virtual .patch-deps patchutils; \
 	\
 	mkdir -p /usr/src; \
 	cd /usr/src; \
@@ -84,6 +86,13 @@ RUN set -eux; \
 		rm -rf "$GNUPGHOME"; \
 	fi; \
 	\
+	# Add patch; see https://github.com/docker-library/php/pull/1526
+	curl -fsSL -o php-pdo.patch 'https://github.com/php/php-src/pull/14797.patch?full_index=1'; \
+	echo '3a95762048a56ec0f59cb9ee18df49751ffb0bdd0e91e021b57f69ac7af62996 *php-pdo.patch' | sha256sum -c -; \
+	filterdiff -p1 -x 'NEWS' < php-pdo.patch > php-pdo.patch.filtered; \
+	mv php-pdo.patch.filtered php-pdo.patch; \
+	\
+	apk del --no-network .patch-deps; \
 	apk del --no-network .fetch-deps
 
 COPY docker-php-source /usr/local/bin/
@@ -100,6 +109,7 @@ RUN set -eux; \
 		linux-headers \
 		oniguruma-dev \
 		openssl-dev \
+		patch \
 		readline-dev \
 		sqlite-dev \
 	; \
@@ -117,6 +127,9 @@ RUN set -eux; \
 	; \
 	docker-php-source extract; \
 	cd /usr/src/php; \
+# Apply patch; see https://github.com/docker-library/php/pull/1526
+	patch -p1 < ../php-pdo.patch; \
+	./buildconf -f; \
 	gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)"; \
 	./configure \
 		--build="$gnuArch" \
diff --git a/php_8.1-alpine/docker-php-entrypoint b/php_8.4-rc-zts-alpine3.19/docker-php-entrypoint
similarity index 100%
copy from php_8.1-alpine/docker-php-entrypoint
copy to php_8.4-rc-zts-alpine3.19/docker-php-entrypoint
diff --git a/php_8.1-alpine/docker-php-ext-configure b/php_8.4-rc-zts-alpine3.19/docker-php-ext-configure
similarity index 100%
copy from php_8.1-alpine/docker-php-ext-configure
copy to php_8.4-rc-zts-alpine3.19/docker-php-ext-configure
diff --git a/php_8.1-alpine/docker-php-ext-enable b/php_8.4-rc-zts-alpine3.19/docker-php-ext-enable
similarity index 100%
copy from php_8.1-alpine/docker-php-ext-enable
copy to php_8.4-rc-zts-alpine3.19/docker-php-ext-enable
diff --git a/php_8.1-alpine/docker-php-ext-install b/php_8.4-rc-zts-alpine3.19/docker-php-ext-install
similarity index 100%
copy from php_8.1-alpine/docker-php-ext-install
copy to php_8.4-rc-zts-alpine3.19/docker-php-ext-install
diff --git a/php_8.1-alpine/docker-php-source b/php_8.4-rc-zts-alpine3.19/docker-php-source
similarity index 100%
copy from php_8.1-alpine/docker-php-source
copy to php_8.4-rc-zts-alpine3.19/docker-php-source
diff --git a/php_8.2-zts-bullseye/Dockerfile b/php_8.4-rc-zts-bullseye/Dockerfile
similarity index 86%
copy from php_8.2-zts-bullseye/Dockerfile
copy to php_8.4-rc-zts-bullseye/Dockerfile
index 89e2cbf..f0ddad1 100644
--- a/php_8.2-zts-bullseye/Dockerfile
+++ b/php_8.4-rc-zts-bullseye/Dockerfile
@@ -58,17 +58,19 @@ ENV PHP_CFLAGS="-fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_
 ENV PHP_CPPFLAGS="$PHP_CFLAGS"
 ENV PHP_LDFLAGS="-Wl,-O1 -pie"
 
-ENV GPG_KEYS 39B641343D8C104B2B146DC3F9C39DC0B9698544 E60913E4DF209907D8E30D96659A97C9CF2A795A 1198C0117593497A5EC5C199286AF1F9897469DC
+ENV GPG_KEYS AFD8691FDAEDF03BDF6E460563F15A9B715376CA 9D7F99A0CB8F05C8A6958D6256A97AF7600A39A6 0616E93D95AF471243E26761770426E17EBBB3DD
 
-ENV PHP_VERSION 8.2.21
-ENV PHP_URL="https://www.php.net/distributions/php-8.2.21.tar.xz" PHP_ASC_URL="https://www.php.net/distributions/php-8.2.21.tar.xz.asc"
-ENV PHP_SHA256="8cc44d51bb2506399ec176f70fe110f0c9e1f7d852a5303a2cd1403402199707"
+ENV PHP_VERSION 8.4.0alpha1
+ENV PHP_URL="https://downloads.php.net/~saki/php-8.4.0alpha1.tar.xz" PHP_ASC_URL="https://downloads.php.net/~saki/php-8.4.0alpha1.tar.xz.asc"
+ENV PHP_SHA256="65903a7add51350540b567f8cd2d964ac11366bf33e1b287489765feac45278e"
 
 RUN set -eux; \
 	\
 	savedAptMark="$(apt-mark showmanual)"; \
 	apt-get update; \
 	apt-get install -y --no-install-recommends gnupg; \
+	# Add patchutils; see https://github.com/docker-library/php/pull/1526
+	apt-get install -y --no-install-recommends patchutils; \
 	rm -rf /var/lib/apt/lists/*; \
 	\
 	mkdir -p /usr/src; \
@@ -91,6 +93,12 @@ RUN set -eux; \
 		rm -rf "$GNUPGHOME"; \
 	fi; \
 	\
+	# Add patch; see https://github.com/docker-library/php/pull/1526
+	curl -fsSL -o php-pdo.patch 'https://github.com/php/php-src/pull/14797.patch?full_index=1'; \
+	echo '3a95762048a56ec0f59cb9ee18df49751ffb0bdd0e91e021b57f69ac7af62996 *php-pdo.patch' | sha256sum -c -; \
+	filterdiff -p1 -x 'NEWS' < php-pdo.patch > php-pdo.patch.filtered; \
+	mv php-pdo.patch.filtered php-pdo.patch; \
+	\
 	apt-mark auto '.*' > /dev/null; \
 	apt-mark manual $savedAptMark > /dev/null; \
 	apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false
@@ -123,6 +131,9 @@ RUN set -eux; \
 	; \
 	docker-php-source extract; \
 	cd /usr/src/php; \
+# Apply patch; see https://github.com/docker-library/php/pull/1526
+	patch -p1 < ../php-pdo.patch; \
+	./buildconf -f; \
 	gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)"; \
 	debMultiarch="$(dpkg-architecture --query DEB_BUILD_MULTIARCH)"; \
 # https://bugs.php.net/bug.php?id=74125
@@ -168,10 +179,6 @@ RUN set -eux; \
 # in PHP 7.4+, the pecl/pear installers are officially deprecated (requiring an explicit "--with-pear")
 		--with-pear \
 		\
-# bundled pcre does not support JIT on riscv64 until 10.41 (php 8.3+)
-# https://github.com/PCRE2Project/pcre2/commits/pcre2-10.41/src/sljit/sljitNativeRISCV_64.c
-# https://github.com/php/php-src/tree/php-8.3.0/ext/pcre/pcre2lib
-		$(test "$gnuArch" = 'riscv64-linux-gnu' && echo '--without-pcre-jit') \
 		--with-libdir="lib/$debMultiarch" \
 		\
 # https://github.com/docker-library/php/pull/939#issuecomment-730501748
@@ -180,7 +187,6 @@ RUN set -eux; \
 		--enable-zts \
 # https://externals.io/message/118859
 		--disable-zend-signals \
-		--enable-zend-max-execution-timers \
 	; \
 	make -j "$(nproc)"; \
 	find -type f -name '*.a' -delete; \
diff --git a/php_8.1-alpine/docker-php-entrypoint b/php_8.4-rc-zts-bullseye/docker-php-entrypoint
similarity index 100%
copy from php_8.1-alpine/docker-php-entrypoint
copy to php_8.4-rc-zts-bullseye/docker-php-entrypoint
diff --git a/php_8.1-alpine/docker-php-ext-configure b/php_8.4-rc-zts-bullseye/docker-php-ext-configure
similarity index 100%
copy from php_8.1-alpine/docker-php-ext-configure
copy to php_8.4-rc-zts-bullseye/docker-php-ext-configure
diff --git a/php_8.1-alpine/docker-php-ext-enable b/php_8.4-rc-zts-bullseye/docker-php-ext-enable
similarity index 100%
copy from php_8.1-alpine/docker-php-ext-enable
copy to php_8.4-rc-zts-bullseye/docker-php-ext-enable
diff --git a/php_8.1-alpine/docker-php-ext-install b/php_8.4-rc-zts-bullseye/docker-php-ext-install
similarity index 100%
copy from php_8.1-alpine/docker-php-ext-install
copy to php_8.4-rc-zts-bullseye/docker-php-ext-install
diff --git a/php_8.1-alpine/docker-php-source b/php_8.4-rc-zts-bullseye/docker-php-source
similarity index 100%
copy from php_8.1-alpine/docker-php-source
copy to php_8.4-rc-zts-bullseye/docker-php-source
diff --git a/php_zts/Dockerfile b/php_8.4-rc-zts/Dockerfile
similarity index 86%
copy from php_zts/Dockerfile
copy to php_8.4-rc-zts/Dockerfile
index 2bae30b..e6b66c5 100644
--- a/php_zts/Dockerfile
+++ b/php_8.4-rc-zts/Dockerfile
@@ -58,17 +58,19 @@ ENV PHP_CFLAGS="-fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_
 ENV PHP_CPPFLAGS="$PHP_CFLAGS"
 ENV PHP_LDFLAGS="-Wl,-O1 -pie"
 
-ENV GPG_KEYS 1198C0117593497A5EC5C199286AF1F9897469DC C28D937575603EB4ABB725861C0779DC5C0A9DE4 AFD8691FDAEDF03BDF6E460563F15A9B715376CA
+ENV GPG_KEYS AFD8691FDAEDF03BDF6E460563F15A9B715376CA 9D7F99A0CB8F05C8A6958D6256A97AF7600A39A6 0616E93D95AF471243E26761770426E17EBBB3DD
 
-ENV PHP_VERSION 8.3.9
-ENV PHP_URL="https://www.php.net/distributions/php-8.3.9.tar.xz" PHP_ASC_URL="https://www.php.net/distributions/php-8.3.9.tar.xz.asc"
-ENV PHP_SHA256="bf4d7b8ea60a356064f88485278bd6f941a230ec16f0fc401574ce1445ad6c77"
+ENV PHP_VERSION 8.4.0alpha1
+ENV PHP_URL="https://downloads.php.net/~saki/php-8.4.0alpha1.tar.xz" PHP_ASC_URL="https://downloads.php.net/~saki/php-8.4.0alpha1.tar.xz.asc"
+ENV PHP_SHA256="65903a7add51350540b567f8cd2d964ac11366bf33e1b287489765feac45278e"
 
 RUN set -eux; \
 	\
 	savedAptMark="$(apt-mark showmanual)"; \
 	apt-get update; \
 	apt-get install -y --no-install-recommends gnupg; \
+	# Add patchutils; see https://github.com/docker-library/php/pull/1526
+	apt-get install -y --no-install-recommends patchutils; \
 	rm -rf /var/lib/apt/lists/*; \
 	\
 	mkdir -p /usr/src; \
@@ -91,6 +93,12 @@ RUN set -eux; \
 		rm -rf "$GNUPGHOME"; \
 	fi; \
 	\
+	# Add patch; see https://github.com/docker-library/php/pull/1526
+	curl -fsSL -o php-pdo.patch 'https://github.com/php/php-src/pull/14797.patch?full_index=1'; \
+	echo '3a95762048a56ec0f59cb9ee18df49751ffb0bdd0e91e021b57f69ac7af62996 *php-pdo.patch' | sha256sum -c -; \
+	filterdiff -p1 -x 'NEWS' < php-pdo.patch > php-pdo.patch.filtered; \
+	mv php-pdo.patch.filtered php-pdo.patch; \
+	\
 	apt-mark auto '.*' > /dev/null; \
 	apt-mark manual $savedAptMark > /dev/null; \
 	apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false
@@ -123,6 +131,9 @@ RUN set -eux; \
 	; \
 	docker-php-source extract; \
 	cd /usr/src/php; \
+# Apply patch; see https://github.com/docker-library/php/pull/1526
+	patch -p1 < ../php-pdo.patch; \
+	./buildconf -f; \
 	gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)"; \
 	debMultiarch="$(dpkg-architecture --query DEB_BUILD_MULTIARCH)"; \
 # https://bugs.php.net/bug.php?id=74125
diff --git a/php_8.1-alpine/docker-php-entrypoint b/php_8.4-rc-zts/docker-php-entrypoint
similarity index 100%
copy from php_8.1-alpine/docker-php-entrypoint
copy to php_8.4-rc-zts/docker-php-entrypoint
diff --git a/php_8.1-alpine/docker-php-ext-configure b/php_8.4-rc-zts/docker-php-ext-configure
similarity index 100%
copy from php_8.1-alpine/docker-php-ext-configure
copy to php_8.4-rc-zts/docker-php-ext-configure
diff --git a/php_8.1-alpine/docker-php-ext-enable b/php_8.4-rc-zts/docker-php-ext-enable
similarity index 100%
copy from php_8.1-alpine/docker-php-ext-enable
copy to php_8.4-rc-zts/docker-php-ext-enable
diff --git a/php_8.1-alpine/docker-php-ext-install b/php_8.4-rc-zts/docker-php-ext-install
similarity index 100%
copy from php_8.1-alpine/docker-php-ext-install
copy to php_8.4-rc-zts/docker-php-ext-install
diff --git a/php_8.1-alpine/docker-php-source b/php_8.4-rc-zts/docker-php-source
similarity index 100%
copy from php_8.1-alpine/docker-php-source
copy to php_8.4-rc-zts/docker-php-source
diff --git a/php_8.2-zts/Dockerfile b/php_8.4-rc/Dockerfile
similarity index 86%
copy from php_8.2-zts/Dockerfile
copy to php_8.4-rc/Dockerfile
index c8ec97f..c6698c6 100644
--- a/php_8.2-zts/Dockerfile
+++ b/php_8.4-rc/Dockerfile
@@ -58,17 +58,19 @@ ENV PHP_CFLAGS="-fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_
 ENV PHP_CPPFLAGS="$PHP_CFLAGS"
 ENV PHP_LDFLAGS="-Wl,-O1 -pie"
 
-ENV GPG_KEYS 39B641343D8C104B2B146DC3F9C39DC0B9698544 E60913E4DF209907D8E30D96659A97C9CF2A795A 1198C0117593497A5EC5C199286AF1F9897469DC
+ENV GPG_KEYS AFD8691FDAEDF03BDF6E460563F15A9B715376CA 9D7F99A0CB8F05C8A6958D6256A97AF7600A39A6 0616E93D95AF471243E26761770426E17EBBB3DD
 
-ENV PHP_VERSION 8.2.21
-ENV PHP_URL="https://www.php.net/distributions/php-8.2.21.tar.xz" PHP_ASC_URL="https://www.php.net/distributions/php-8.2.21.tar.xz.asc"
-ENV PHP_SHA256="8cc44d51bb2506399ec176f70fe110f0c9e1f7d852a5303a2cd1403402199707"
+ENV PHP_VERSION 8.4.0alpha1
+ENV PHP_URL="https://downloads.php.net/~saki/php-8.4.0alpha1.tar.xz" PHP_ASC_URL="https://downloads.php.net/~saki/php-8.4.0alpha1.tar.xz.asc"
+ENV PHP_SHA256="65903a7add51350540b567f8cd2d964ac11366bf33e1b287489765feac45278e"
 
 RUN set -eux; \
 	\
 	savedAptMark="$(apt-mark showmanual)"; \
 	apt-get update; \
 	apt-get install -y --no-install-recommends gnupg; \
+	# Add patchutils; see https://github.com/docker-library/php/pull/1526
+	apt-get install -y --no-install-recommends patchutils; \
 	rm -rf /var/lib/apt/lists/*; \
 	\
 	mkdir -p /usr/src; \
@@ -91,6 +93,12 @@ RUN set -eux; \
 		rm -rf "$GNUPGHOME"; \
 	fi; \
 	\
+	# Add patch; see https://github.com/docker-library/php/pull/1526
+	curl -fsSL -o php-pdo.patch 'https://github.com/php/php-src/pull/14797.patch?full_index=1'; \
+	echo '3a95762048a56ec0f59cb9ee18df49751ffb0bdd0e91e021b57f69ac7af62996 *php-pdo.patch' | sha256sum -c -; \
+	filterdiff -p1 -x 'NEWS' < php-pdo.patch > php-pdo.patch.filtered; \
+	mv php-pdo.patch.filtered php-pdo.patch; \
+	\
 	apt-mark auto '.*' > /dev/null; \
 	apt-mark manual $savedAptMark > /dev/null; \
 	apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false
@@ -123,6 +131,9 @@ RUN set -eux; \
 	; \
 	docker-php-source extract; \
 	cd /usr/src/php; \
+# Apply patch; see https://github.com/docker-library/php/pull/1526
+	patch -p1 < ../php-pdo.patch; \
+	./buildconf -f; \
 	gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)"; \
 	debMultiarch="$(dpkg-architecture --query DEB_BUILD_MULTIARCH)"; \
 # https://bugs.php.net/bug.php?id=74125
@@ -168,19 +179,10 @@ RUN set -eux; \
 # in PHP 7.4+, the pecl/pear installers are officially deprecated (requiring an explicit "--with-pear")
 		--with-pear \
 		\
-# bundled pcre does not support JIT on riscv64 until 10.41 (php 8.3+)
-# https://github.com/PCRE2Project/pcre2/commits/pcre2-10.41/src/sljit/sljitNativeRISCV_64.c
-# https://github.com/php/php-src/tree/php-8.3.0/ext/pcre/pcre2lib
-		$(test "$gnuArch" = 'riscv64-linux-gnu' && echo '--without-pcre-jit') \
 		--with-libdir="lib/$debMultiarch" \
 		\
 # https://github.com/docker-library/php/pull/939#issuecomment-730501748
 		--enable-embed \
-		\
-		--enable-zts \
-# https://externals.io/message/118859
-		--disable-zend-signals \
-		--enable-zend-max-execution-timers \
 	; \
 	make -j "$(nproc)"; \
 	find -type f -name '*.a' -delete; \
diff --git a/php_8.1-alpine/docker-php-entrypoint b/php_8.4-rc/docker-php-entrypoint
similarity index 100%
copy from php_8.1-alpine/docker-php-entrypoint
copy to php_8.4-rc/docker-php-entrypoint
diff --git a/php_8.1-alpine/docker-php-ext-configure b/php_8.4-rc/docker-php-ext-configure
similarity index 100%
copy from php_8.1-alpine/docker-php-ext-configure
copy to php_8.4-rc/docker-php-ext-configure
diff --git a/php_8.1-alpine/docker-php-ext-enable b/php_8.4-rc/docker-php-ext-enable
similarity index 100%
copy from php_8.1-alpine/docker-php-ext-enable
copy to php_8.4-rc/docker-php-ext-enable
diff --git a/php_8.1-alpine/docker-php-ext-install b/php_8.4-rc/docker-php-ext-install
similarity index 100%
copy from php_8.1-alpine/docker-php-ext-install
copy to php_8.4-rc/docker-php-ext-install
diff --git a/php_8.1-alpine/docker-php-source b/php_8.4-rc/docker-php-source
similarity index 100%
copy from php_8.1-alpine/docker-php-source
copy to php_8.4-rc/docker-php-source

Relevant Maintainers:

@yosifkit yosifkit merged commit 28f8870 into docker-library:master Jul 8, 2024
61 checks passed
@yosifkit yosifkit deleted the php branch July 8, 2024 23:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants