From 6d835df9206902300b4b4a5010b171452ab3bb6e Mon Sep 17 00:00:00 2001 From: Hongxu Jia Date: Tue, 18 Nov 2025 17:28:14 +0800 Subject: [PATCH] php: remove php-phar to support reproducible build According to [1][2], generate phar.php during cross-compile can't be done, but upstream test res of $(TEST_PHP_EXECUTABLE) is not suitable for Yocto. Explicitly set TEST_PHP_EXECUTABLE_RES = "1" to not generate phar.php for target recipe Drop 0005-sapi-cli-config.m4-fix-build-directory.patch which is obsolete for generating phar.php After apply this commit ...log.do_compile... Generating phar.php Skipping phar.php generating during cross compilation Generating phar.phar Skipping phar.phar generating during cross compilation ...log.do_compile... Then php supports reproducible build [1] https://github.com/php/php-src/issues/11099 [2] https://github.com/php/php-src/commit/93fa9613e162d1a0e8479ba83c4b6a399846e209 Signed-off-by: Hongxu Jia Signed-off-by: Khem Raj --- meta-oe/conf/layer.conf | 1 - ...enerate-phar.php-during-cross-compil.patch | 35 +++++++++++++++++++ ...pi-cli-config.m4-fix-build-directory.patch | 35 ------------------- meta-oe/recipes-devtools/php/php_8.4.14.bb | 6 ++-- 4 files changed, 37 insertions(+), 40 deletions(-) create mode 100644 meta-oe/recipes-devtools/php/php/0005-explicitly-not-generate-phar.php-during-cross-compil.patch delete mode 100644 meta-oe/recipes-devtools/php/php/0005-sapi-cli-config.m4-fix-build-directory.patch diff --git a/meta-oe/conf/layer.conf b/meta-oe/conf/layer.conf index 83b790fa18..1f55f5bee1 100644 --- a/meta-oe/conf/layer.conf +++ b/meta-oe/conf/layer.conf @@ -231,7 +231,6 @@ OEQA_REPRODUCIBLE_EXCLUDED_PACKAGES += " \ pcp-src \ perfetto \ perfetto-dbg \ - php-phar \ pidgin \ pidgin-dbg \ pim435-staticdev \ diff --git a/meta-oe/recipes-devtools/php/php/0005-explicitly-not-generate-phar.php-during-cross-compil.patch b/meta-oe/recipes-devtools/php/php/0005-explicitly-not-generate-phar.php-during-cross-compil.patch new file mode 100644 index 0000000000..469d26e06b --- /dev/null +++ b/meta-oe/recipes-devtools/php/php/0005-explicitly-not-generate-phar.php-during-cross-compil.patch @@ -0,0 +1,35 @@ +From 41c8c5821fc74efea8b086927a17aa3bc7aef6bb Mon Sep 17 00:00:00 2001 +From: Hongxu Jia +Date: Tue, 18 Nov 2025 16:25:28 +0800 +Subject: [PATCH] explicitly not generate phar.php during cross-compile + +According to [1][2], Generating phar.php during cross-compile +can't be done, explicitly set TEST_PHP_EXECUTABLE_RES = 1 +for target recipe to not generate phar.php for cross-compile + +[1] https://github.com/php/php-src/issues/11099 +[2] https://github.com/php/php-src/commit/93fa9613e162d1a0e8479ba83c4b6a399846e209 + +Upstream-Status: Inappropriate [OE specific] + +Signed-off-by: Hongxu Jia +--- + ext/phar/Makefile.frag | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/ext/phar/Makefile.frag b/ext/phar/Makefile.frag +index 09d577d7..2f85847c 100644 +--- a/ext/phar/Makefile.frag ++++ b/ext/phar/Makefile.frag +@@ -19,7 +19,7 @@ $(builddir)/phar/phar.inc: $(srcdir)/phar/phar.inc + -@test -f $(builddir)/phar/phar.inc || cp $(srcdir)/phar/phar.inc $(builddir)/phar/phar.inc + + TEST_PHP_EXECUTABLE = $(shell $(PHP_EXECUTABLE) -v 2>&1) +-TEST_PHP_EXECUTABLE_RES = $(shell echo "$(TEST_PHP_EXECUTABLE)" | grep -c 'Exec format error') ++TEST_PHP_EXECUTABLE_RES = "1" + + $(builddir)/phar.php: $(srcdir)/build_precommand.php $(srcdir)/phar/*.inc $(srcdir)/phar/*.php $(SAPI_CLI_PATH) + -@(echo "Generating phar.php"; \ +-- +2.34.1 + diff --git a/meta-oe/recipes-devtools/php/php/0005-sapi-cli-config.m4-fix-build-directory.patch b/meta-oe/recipes-devtools/php/php/0005-sapi-cli-config.m4-fix-build-directory.patch deleted file mode 100644 index e551f19a48..0000000000 --- a/meta-oe/recipes-devtools/php/php/0005-sapi-cli-config.m4-fix-build-directory.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 581751f8b612c381a4a7914a33bfc4130853d305 Mon Sep 17 00:00:00 2001 -From: Claude Bing -Date: Tue, 9 Nov 2021 13:08:06 -0500 -Subject: [PATCH 5/5] sapi/cli/config.m4: fix build directory - -Upstream-Status: Inappropriate - -update patch to version 7.4.4 -Signed-off-by: Changqing Li - -update patch to version 8.0.12 -Signed-off-by: Claude Bing - -update patch for version 8.4.4 -Signed-off-by: Chen Qi ---- - sapi/cli/config.m4 | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/sapi/cli/config.m4 b/sapi/cli/config.m4 -index 76c2d64e8..0c7436fd9 100644 ---- a/sapi/cli/config.m4 -+++ b/sapi/cli/config.m4 -@@ -50,7 +50,7 @@ if test "$PHP_CLI" != "no"; then - ]) - - dnl Set executable for tests. -- PHP_EXECUTABLE="\$(top_builddir)/\$(SAPI_CLI_PATH)" -+ PHP_EXECUTABLE="${PHP_NATIVE_DIR}/php" - - PHP_SUBST([PHP_EXECUTABLE]) - PHP_SUBST([SAPI_CLI_PATH]) --- -2.25.1 - diff --git a/meta-oe/recipes-devtools/php/php_8.4.14.bb b/meta-oe/recipes-devtools/php/php_8.4.14.bb index ecec5ae04d..086e7114fb 100644 --- a/meta-oe/recipes-devtools/php/php_8.4.14.bb +++ b/meta-oe/recipes-devtools/php/php_8.4.14.bb @@ -20,7 +20,7 @@ SRC_URI = "http://php.net/distributions/php-${PV}.tar.bz2 \ SRC_URI:append:class-target = " \ file://0003-iconv-fix-detection.patch \ file://0004-pear-fix-Makefile.frag-for-Yocto.patch \ - file://0005-sapi-cli-config.m4-fix-build-directory.patch \ + file://0005-explicitly-not-generate-phar.php-during-cross-compil.patch \ file://php-fpm.conf \ file://php-fpm-apache.conf \ file://70_mod_php${PHP_MAJOR_VERSION}.conf \ @@ -230,11 +230,10 @@ php_sysroot_preprocess () { MODPHP_PACKAGE = "${@bb.utils.contains('PACKAGECONFIG', 'apache2', '${PN}-modphp', '', d)}" -PACKAGES = "${PN}-dbg ${PN}-cli ${PN}-phpdbg ${PN}-cgi ${PN}-fpm ${PN}-fpm-apache2 ${PN}-pear ${PN}-phar ${MODPHP_PACKAGE} ${PN}-dev ${PN}-staticdev ${PN}-doc ${PN}-opcache ${PN}" +PACKAGES = "${PN}-dbg ${PN}-cli ${PN}-phpdbg ${PN}-cgi ${PN}-fpm ${PN}-fpm-apache2 ${PN}-pear ${MODPHP_PACKAGE} ${PN}-dev ${PN}-staticdev ${PN}-doc ${PN}-opcache ${PN}" RDEPENDS:${PN} += "libgcc" RDEPENDS:${PN}-pear = "${PN}" -RDEPENDS:${PN}-phar = "${PN}-cli" RDEPENDS:${PN}-cli = "${PN}" RDEPENDS:${PN}-modphp = "${PN} apache2" RDEPENDS:${PN}-opcache = "${PN}" @@ -254,7 +253,6 @@ FILES:${PN}-dbg =+ "${bindir}/.debug \ FILES:${PN}-doc += "${PHP_LIBDIR}/php/doc" FILES:${PN}-cli = "${bindir}/php" FILES:${PN}-phpdbg = "${bindir}/phpdbg" -FILES:${PN}-phar = "${bindir}/phar*" FILES:${PN}-cgi = "${bindir}/php-cgi" FILES:${PN}-fpm = "${sbindir}/php-fpm ${sysconfdir}/php-fpm.conf ${datadir}/fpm ${sysconfdir}/init.d/php-fpm ${sysconfdir}/php-fpm.d/www.conf.default" FILES:${PN}-fpm-apache2 = "${sysconfdir}/apache2/conf.d/php-fpm.conf"