diff mbox series

[meta-oe,1/2] php: remove php-phar to support reproducible build

Message ID 20251118092815.1068882-1-hongxu.jia@windriver.com
State New
Headers show
Series [meta-oe,1/2] php: remove php-phar to support reproducible build | expand

Commit Message

Hongxu Jia Nov. 18, 2025, 9:28 a.m. UTC
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 <hongxu.jia@windriver.com>
---
 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 mbox series

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 <hongxu.jia@windriver.com>
+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 <hongxu.jia@windriver.com>
+---
+ 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 <cbing@cybernetics.com>
-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 <changqing.li@windriver.com>
-
-update patch to version 8.0.12
-Signed-off-by: Claude Bing <cbing@cybernetics.com>
-
-update patch for version 8.4.4
-Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
----
- 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"