* [PR PATCH] php: Add cross compilation support
@ 2020-04-13 13:45 repk
2020-04-13 18:07 ` [PR PATCH] [Updated] " repk
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: repk @ 2020-04-13 13:45 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 532 bytes --]
There is a new pull request by repk against master on the void-packages repository
https://github.com/repk/void-packages php-cross
https://github.com/void-linux/void-packages/pull/20952
php: Add cross compilation support
Support cross compilation by providing builddir path in configure and patching phar and pear makefiles to use host's php binary to install themselves. Therefore it also makes php a hostmakedepends when crosscompiling.
A patch file from https://github.com/void-linux/void-packages/pull/20952.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-php-cross-20952.patch --]
[-- Type: text/x-diff, Size: 10368 bytes --]
From c955179a49fc080d74e6da70acfca1652a805dd4 Mon Sep 17 00:00:00 2001
From: Remi Pommarel <repk@triplefau.lt>
Date: Mon, 13 Apr 2020 12:59:03 +0200
Subject: [PATCH] php: Add cross compilation support
---
srcpkgs/php/patches/php-cross-config.patch | 41 ++++++++++++
srcpkgs/php/patches/php-pear-cross.patch | 23 +++++++
srcpkgs/php/patches/php-phar-cross.patch | 29 +++++++++
srcpkgs/php/template | 72 +++++++++++++---------
4 files changed, 136 insertions(+), 29 deletions(-)
create mode 100644 srcpkgs/php/patches/php-cross-config.patch
create mode 100644 srcpkgs/php/patches/php-pear-cross.patch
create mode 100644 srcpkgs/php/patches/php-phar-cross.patch
diff --git a/srcpkgs/php/patches/php-cross-config.patch b/srcpkgs/php/patches/php-cross-config.patch
new file mode 100644
index 00000000000..5ce95cda930
--- /dev/null
+++ b/srcpkgs/php/patches/php-cross-config.patch
@@ -0,0 +1,41 @@
+--- configure 2020-03-17 11:40:20.000000000 +0100
++++ configure 2020-04-12 19:51:57.216350534 +0200
+@@ -6374,10 +6374,12 @@ IFS="- /.
+ as_fn_error $? "Please note that Apache version >= 2.0.44 is required" "$LINENO" 5
+ fi
+
++ APXS_PREFIX='$(INSTALL_ROOT)'/usr
+ APXS_LIBEXECDIR='$(INSTALL_ROOT)'`$APXS -q LIBEXECDIR`
+ if test -z `$APXS -q SYSCONFDIR`; then
+ INSTALL_IT="\$(mkinstalldirs) '$APXS_LIBEXECDIR' && \
+ $APXS -S LIBEXECDIR='$APXS_LIBEXECDIR' \
++ -S PREFIX='$APXS_PREFIX' \
+ -i -n php7"
+ else
+ APXS_SYSCONFDIR='$(INSTALL_ROOT)'`$APXS -q SYSCONFDIR`
+@@ -6385,6 +6387,7 @@ IFS="- /.
+ \$(mkinstalldirs) '$APXS_SYSCONFDIR' && \
+ $APXS -S LIBEXECDIR='$APXS_LIBEXECDIR' \
+ -S SYSCONFDIR='$APXS_SYSCONFDIR' \
++ -S PREFIX='$APXS_PREFIX' \
+ -i -a -n php7"
+ fi
+
+@@ -57170,7 +57173,7 @@ $as_echo_n "checking for pg_config... "
+ fi
+ done
+
+- if test -n "$PG_CONFIG"; then
++ if test -n "$PG_CONFIG" && test "x$cross_compiling" != "xyes"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PG_CONFIG" >&5
+ $as_echo "$PG_CONFIG" >&6; }
+ PGSQL_INCLUDE=`$PG_CONFIG --includedir`
+@@ -58821,7 +58824,7 @@ $as_echo_n "checking for pg_config... "
+ fi
+ done
+
+- if test -n "$PG_CONFIG"; then
++ if test -n "$PG_CONFIG" && test "x$cross_compiling" != "xyes"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PG_CONFIG" >&5
+ $as_echo "$PG_CONFIG" >&6; }
+ PGSQL_INCLUDE=`$PG_CONFIG --includedir`
diff --git a/srcpkgs/php/patches/php-pear-cross.patch b/srcpkgs/php/patches/php-pear-cross.patch
new file mode 100644
index 00000000000..944a91dda9a
--- /dev/null
+++ b/srcpkgs/php/patches/php-pear-cross.patch
@@ -0,0 +1,23 @@
+--- pear/Makefile.frag 2020-03-17 11:40:21.000000000 +0100
++++ pear/Makefile.frag 2020-04-12 22:29:31.846943414 +0200
+@@ -8,9 +8,10 @@ FETCH = `which fetch 2>/dev/null`
+ PEAR_PREFIX = -dp a${program_prefix}
+ PEAR_SUFFIX = -ds a$(program_suffix)
+ PEAR_INSTALLER_URL = https://pear.php.net/install-pear-nozlib.phar
++PEAR_PHP ?= $(top_builddir)/sapi/cli/php
+
+ install-pear-installer: $(SAPI_CLI_PATH)
+- @$(top_builddir)/sapi/cli/php $(PEAR_INSTALL_FLAGS) pear/install-pear-nozlib.phar -d "$(peardir)" -b "$(bindir)" ${PEAR_PREFIX} ${PEAR_SUFFIX}
++ @$(PEAR_PHP) $(PEAR_INSTALL_FLAGS) pear/install-pear-nozlib.phar -d "$(peardir)" -b "$(bindir)" ${PEAR_PREFIX} ${PEAR_SUFFIX}
+
+ install-pear:
+ @echo "Installing PEAR environment: $(INSTALL_ROOT)$(peardir)/"
+@@ -23,7 +24,7 @@ install-pear:
+ elif test ! -z "$(FETCH)" && test -x "$(FETCH)"; then \
+ "$(FETCH)" -o $(builddir)/ "${PEAR_INSTALLER_URL}"; \
+ else \
+- $(top_builddir)/sapi/cli/php -n $(srcdir)/fetch.php "${PEAR_INSTALLER_URL}" $(builddir)/install-pear-nozlib.phar; \
++ $(PEAR_PHP) -n $(srcdir)/fetch.php "${PEAR_INSTALLER_URL}" $(builddir)/install-pear-nozlib.phar; \
+ fi \
+ fi \
+ fi
diff --git a/srcpkgs/php/patches/php-phar-cross.patch b/srcpkgs/php/patches/php-phar-cross.patch
new file mode 100644
index 00000000000..955ab80b0a1
--- /dev/null
+++ b/srcpkgs/php/patches/php-phar-cross.patch
@@ -0,0 +1,29 @@
+--- ext/phar/Makefile.frag 2020-04-13 12:18:23.998801926 +0200
++++ ext/phar/Makefile.frag 2020-04-13 12:20:58.031795293 +0200
+@@ -8,12 +8,14 @@ $(srcdir)/phar_path_check.c: $(srcdir)/p
+
+ pharcmd: $(builddir)/phar.php $(builddir)/phar.phar
+
++PHAR_PHP ?= $(top_builddir)/$(SAPI_CLI_PATH)
++PHAR_PHP_MODULES ?= $(top_builddir)/modules
+ PHP_PHARCMD_SETTINGS = -n -d 'open_basedir=' -d 'output_buffering=0' -d 'memory_limit=-1' -d phar.readonly=0
+ PHP_PHARCMD_EXECUTABLE = ` \
+- if test -x "$(top_builddir)/$(SAPI_CLI_PATH)"; then \
+- $(top_srcdir)/build/shtool echo -n -- "$(top_builddir)/$(SAPI_CLI_PATH) -n"; \
++ if test -x "$(PHAR_PHP)"; then \
++ $(top_srcdir)/build/shtool echo -n -- "$(PHAR_PHP) -n"; \
+ if test "x$(PHP_MODULES)" != "x"; then \
+- $(top_srcdir)/build/shtool echo -n -- " -d extension_dir=$(top_builddir)/modules"; \
++ $(top_srcdir)/build/shtool echo -n -- " -d extension_dir=$(PHAR_PHP_MODULES)"; \
+ for i in bz2 zlib phar; do \
+ if test -f "$(top_builddir)/modules/$$i.la"; then \
+ . $(top_builddir)/modules/$$i.la; $(top_srcdir)/build/shtool echo -n -- " -d extension=$$dlname"; \
+@@ -21,7 +23,7 @@ PHP_PHARCMD_EXECUTABLE = ` \
+ done; \
+ fi; \
+ else \
+- $(top_srcdir)/build/shtool echo -n -- "$(PHP_EXECUTABLE)"; \
++ $(top_srcdir)/build/shtool echo -n -- "$(PHAR_PHP)"; \
+ fi;`
+ PHP_PHARCMD_BANG = `$(top_srcdir)/build/shtool echo -n -- "$(INSTALL_ROOT)$(bindir)/$(program_prefix)php$(program_suffix)$(EXEEXT)";`
+
diff --git a/srcpkgs/php/template b/srcpkgs/php/template
index 96d231b034d..700a1b98386 100644
--- a/srcpkgs/php/template
+++ b/srcpkgs/php/template
@@ -2,7 +2,7 @@
pkgname=php
version=7.4.4
revision=2
-hostmakedepends="bison pkg-config"
+hostmakedepends="bison pkg-config apache-devel"
makedepends="apache-devel enchant-devel freetds-devel freetype-devel gdbm-devel
gmp-devel libcurl-devel libjpeg-turbo-devel libmysqlclient-devel
libsodium-devel libtidy5-devel libxslt-devel libzip-devel net-snmp-devel
@@ -17,12 +17,14 @@ checksum=1873c4cefdd3df9a78dcffb2198bba5c2f0464f55c9c960720c84df483fca74c
conf_files="/etc/php/php.ini"
-# Needs (probably a lot of) work to make it cross compile
-nocross=https://build.voidlinux.org/builders/armv7l-musl_builder/builds/16307/steps/shell_3/logs/stdio
-
lib32disabled=yes
replaces="php-mcrypt<7.2.0"
+if [ -n "$CROSS_BUILD" ]; then
+ # php-pear needs php to build
+ hostmakedepends+=" php"
+fi
+
do_build() {
local _phpconfig="--srcdir=.. \
--config-cache \
@@ -59,18 +61,18 @@ do_build() {
--with-external-gd \
--with-zip=shared \
--with-ffi=shared \
- --with-bz2=shared \
+ --with-bz2=shared,$XBPS_CROSS_BASE/usr/ \
--with-curl=shared \
- --with-db4=/usr \
- --with-enchant=shared,/usr \
- --with-freetype-dir=/usr \
- --with-gdbm \
+ --with-db4=$XBPS_CROSS_BASE/usr \
+ --with-enchant=shared,$XBPS_CROSS_BASE/usr \
+ --with-freetype-dir=$XBPS_CROSS_BASE/usr \
+ --with-gdbm=$XBPS_CROSS_BASE/usr \
--with-gettext=shared \
--with-gmp=shared \
--with-iconv=shared \
- --with-icu-dir=/usr \
- --with-jpeg-dir=/usr \
- --with-ldap=shared \
+ --with-icu-dir=$XBPS_CROSS_BASE/usr \
+ --with-jpeg-dir=$XBPS_CROSS_BASE/usr \
+ --with-ldap=shared,$XBPS_CROSS_BASE/usr \
--with-ldap-sasl \
--with-libzip \
--with-sodium=shared \
@@ -78,23 +80,25 @@ do_build() {
--with-mysql-sock=/run/mysqld/mysqld.sock \
--with-mysqli=shared,mysqlnd \
--with-openssl=shared \
- --with-pcre-regex=/usr \
+ --with-pcre-regex=$XBPS_CROSS_BASE/usr \
--with-pdo-mysql=shared,mysqlnd \
- --with-pdo-odbc=shared,unixODBC,/usr \
- --with-pdo-pgsql=shared \
- --with-pdo-sqlite=shared,/usr \
- --with-pgsql=shared \
- --with-png-dir=/usr \
- --with-readline \
- --with-snmp=shared \
- --with-sqlite3=shared,/usr \
- --with-unixODBC=shared,/usr \
- --with-xmlrpc=shared \
- --with-xsl=shared \
- --with-tidy=shared \
+ --with-pdo-odbc=shared,unixODBC,$XBPS_CROSS_BASE/usr \
+ --with-pdo-pgsql=shared,$XBPS_CROSS_BASE/usr \
+ --with-pdo-sqlite=shared,$XBPS_CROSS_BASE/usr \
+ --with-pgsql=shared,$XBPS_CROSS_BASE/usr \
+ --with-png-dir=$XBPS_CROSS_BASE/usr \
+ --with-readline=$XBPS_CROSS_BASE/usr \
+ --with-snmp=shared,$XBPS_CROSS_BASE/usr \
+ --with-sqlite3=shared,$XBPS_CROSS_BASE/usr \
+ --with-unixODBC=shared,$XBPS_CROSS_BASE/usr \
+ --with-xsl=shared,$XBPS_CROSS_BASE/usr \
+ --with-tidy=shared,$XBPS_CROSS_BASE/usr \
--with-zlib \
${configure_args} \
"
+ if [ -n "$CROSS_BUILD" ]; then
+ local _make_env="PHAR_PHP=/usr/bin/php PHAR_PHP_MODULES=/usr/lib/php/modules"
+ fi
EXTENSION_DIR=/usr/lib/php/modules
export EXTENSION_DIR
@@ -106,27 +110,33 @@ do_build() {
cd build
ln -s ${wrksrc}/configure
./configure ${_phpconfig} \
+ --host=${XBPS_CROSS_TRIPLET} \
--enable-cgi \
--enable-fpm \
--with-fpm-user=http \
--with-fpm-group=http \
--enable-embed=shared \
${_phpextensions}
- make ${makejobs}
+ make ${makejobs} ${_make_env}
# apache
# reuse the previous run; this will save us a lot of time
cp -a ${wrksrc}/build ${wrksrc}/build-apache
cd ${wrksrc}/build-apache
./configure ${_phpconfig} \
+ --host=${XBPS_CROSS_TRIPLET} \
--with-apxs2 \
${_phpextensions}
- make ${makejobs}
+ make ${makejobs} ${_make_env}
}
do_install() {
cd ${wrksrc}/build
- make INSTALL_ROOT=${DESTDIR} install-{modules,cli,build,headers,programs,pharcmd}
+ local _env="INSTALL_ROOT=${DESTDIR}"
+ if [ -n "$CROSS_BUILD" ]; then
+ _env+=" PHAR_PHP=/usr/bin/php"
+ fi
+ make ${_env} install-{modules,cli,build,headers,programs,pharcmd}
# install php.ini
vinstall ${wrksrc}/php.ini-production 644 etc/php php.ini
@@ -202,7 +212,11 @@ php-pear_package() {
conf_files="/etc/php/pear.conf"
pkg_install() {
cd ${wrksrc}/build
- make install-pear INSTALL_ROOT=${PKGDESTDIR}
+ local _env="INSTALL_ROOT=${PKGDESTDIR}"
+ if [ -n "$CROSS_BUILD" ]; then
+ _env+=" PEAR_PHP=/usr/bin/php"
+ fi
+ make install-pear ${_env}
rm -rf ${PKGDESTDIR}/.{channels,depdb,depdblock,filemap,lock,registry}
rm -rf ${PKGDESTDIR}/usr/share/pear/.{channels,depdb,depdblock,filemap,lock,registry}
}
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PR PATCH] [Updated] php: Add cross compilation support
2020-04-13 13:45 [PR PATCH] php: Add cross compilation support repk
@ 2020-04-13 18:07 ` repk
2020-04-15 11:48 ` repk
2020-04-17 10:23 ` [PR PATCH] [Merged]: " Piraty
2 siblings, 0 replies; 4+ messages in thread
From: repk @ 2020-04-13 18:07 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 537 bytes --]
There is an updated pull request by repk against master on the void-packages repository
https://github.com/repk/void-packages php-cross
https://github.com/void-linux/void-packages/pull/20952
php: Add cross compilation support
Support cross compilation by providing builddir path in configure and patching phar and pear makefiles to use host's php binary to install themselves. Therefore it also makes php a hostmakedepends when crosscompiling.
A patch file from https://github.com/void-linux/void-packages/pull/20952.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-php-cross-20952.patch --]
[-- Type: text/x-diff, Size: 10478 bytes --]
From a8baf1dc0365034487e23e9495af89fe0777b290 Mon Sep 17 00:00:00 2001
From: Remi Pommarel <repk@triplefau.lt>
Date: Mon, 13 Apr 2020 12:59:03 +0200
Subject: [PATCH] php: Add cross compilation support
---
srcpkgs/php/patches/php-cross-config.patch | 41 ++++++++++++
srcpkgs/php/patches/php-pear-cross.patch | 23 +++++++
srcpkgs/php/patches/php-phar-cross.patch | 29 +++++++++
srcpkgs/php/template | 74 +++++++++++++---------
4 files changed, 138 insertions(+), 29 deletions(-)
create mode 100644 srcpkgs/php/patches/php-cross-config.patch
create mode 100644 srcpkgs/php/patches/php-pear-cross.patch
create mode 100644 srcpkgs/php/patches/php-phar-cross.patch
diff --git a/srcpkgs/php/patches/php-cross-config.patch b/srcpkgs/php/patches/php-cross-config.patch
new file mode 100644
index 00000000000..5ce95cda930
--- /dev/null
+++ b/srcpkgs/php/patches/php-cross-config.patch
@@ -0,0 +1,41 @@
+--- configure 2020-03-17 11:40:20.000000000 +0100
++++ configure 2020-04-12 19:51:57.216350534 +0200
+@@ -6374,10 +6374,12 @@ IFS="- /.
+ as_fn_error $? "Please note that Apache version >= 2.0.44 is required" "$LINENO" 5
+ fi
+
++ APXS_PREFIX='$(INSTALL_ROOT)'/usr
+ APXS_LIBEXECDIR='$(INSTALL_ROOT)'`$APXS -q LIBEXECDIR`
+ if test -z `$APXS -q SYSCONFDIR`; then
+ INSTALL_IT="\$(mkinstalldirs) '$APXS_LIBEXECDIR' && \
+ $APXS -S LIBEXECDIR='$APXS_LIBEXECDIR' \
++ -S PREFIX='$APXS_PREFIX' \
+ -i -n php7"
+ else
+ APXS_SYSCONFDIR='$(INSTALL_ROOT)'`$APXS -q SYSCONFDIR`
+@@ -6385,6 +6387,7 @@ IFS="- /.
+ \$(mkinstalldirs) '$APXS_SYSCONFDIR' && \
+ $APXS -S LIBEXECDIR='$APXS_LIBEXECDIR' \
+ -S SYSCONFDIR='$APXS_SYSCONFDIR' \
++ -S PREFIX='$APXS_PREFIX' \
+ -i -a -n php7"
+ fi
+
+@@ -57170,7 +57173,7 @@ $as_echo_n "checking for pg_config... "
+ fi
+ done
+
+- if test -n "$PG_CONFIG"; then
++ if test -n "$PG_CONFIG" && test "x$cross_compiling" != "xyes"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PG_CONFIG" >&5
+ $as_echo "$PG_CONFIG" >&6; }
+ PGSQL_INCLUDE=`$PG_CONFIG --includedir`
+@@ -58821,7 +58824,7 @@ $as_echo_n "checking for pg_config... "
+ fi
+ done
+
+- if test -n "$PG_CONFIG"; then
++ if test -n "$PG_CONFIG" && test "x$cross_compiling" != "xyes"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PG_CONFIG" >&5
+ $as_echo "$PG_CONFIG" >&6; }
+ PGSQL_INCLUDE=`$PG_CONFIG --includedir`
diff --git a/srcpkgs/php/patches/php-pear-cross.patch b/srcpkgs/php/patches/php-pear-cross.patch
new file mode 100644
index 00000000000..944a91dda9a
--- /dev/null
+++ b/srcpkgs/php/patches/php-pear-cross.patch
@@ -0,0 +1,23 @@
+--- pear/Makefile.frag 2020-03-17 11:40:21.000000000 +0100
++++ pear/Makefile.frag 2020-04-12 22:29:31.846943414 +0200
+@@ -8,9 +8,10 @@ FETCH = `which fetch 2>/dev/null`
+ PEAR_PREFIX = -dp a${program_prefix}
+ PEAR_SUFFIX = -ds a$(program_suffix)
+ PEAR_INSTALLER_URL = https://pear.php.net/install-pear-nozlib.phar
++PEAR_PHP ?= $(top_builddir)/sapi/cli/php
+
+ install-pear-installer: $(SAPI_CLI_PATH)
+- @$(top_builddir)/sapi/cli/php $(PEAR_INSTALL_FLAGS) pear/install-pear-nozlib.phar -d "$(peardir)" -b "$(bindir)" ${PEAR_PREFIX} ${PEAR_SUFFIX}
++ @$(PEAR_PHP) $(PEAR_INSTALL_FLAGS) pear/install-pear-nozlib.phar -d "$(peardir)" -b "$(bindir)" ${PEAR_PREFIX} ${PEAR_SUFFIX}
+
+ install-pear:
+ @echo "Installing PEAR environment: $(INSTALL_ROOT)$(peardir)/"
+@@ -23,7 +24,7 @@ install-pear:
+ elif test ! -z "$(FETCH)" && test -x "$(FETCH)"; then \
+ "$(FETCH)" -o $(builddir)/ "${PEAR_INSTALLER_URL}"; \
+ else \
+- $(top_builddir)/sapi/cli/php -n $(srcdir)/fetch.php "${PEAR_INSTALLER_URL}" $(builddir)/install-pear-nozlib.phar; \
++ $(PEAR_PHP) -n $(srcdir)/fetch.php "${PEAR_INSTALLER_URL}" $(builddir)/install-pear-nozlib.phar; \
+ fi \
+ fi \
+ fi
diff --git a/srcpkgs/php/patches/php-phar-cross.patch b/srcpkgs/php/patches/php-phar-cross.patch
new file mode 100644
index 00000000000..955ab80b0a1
--- /dev/null
+++ b/srcpkgs/php/patches/php-phar-cross.patch
@@ -0,0 +1,29 @@
+--- ext/phar/Makefile.frag 2020-04-13 12:18:23.998801926 +0200
++++ ext/phar/Makefile.frag 2020-04-13 12:20:58.031795293 +0200
+@@ -8,12 +8,14 @@ $(srcdir)/phar_path_check.c: $(srcdir)/p
+
+ pharcmd: $(builddir)/phar.php $(builddir)/phar.phar
+
++PHAR_PHP ?= $(top_builddir)/$(SAPI_CLI_PATH)
++PHAR_PHP_MODULES ?= $(top_builddir)/modules
+ PHP_PHARCMD_SETTINGS = -n -d 'open_basedir=' -d 'output_buffering=0' -d 'memory_limit=-1' -d phar.readonly=0
+ PHP_PHARCMD_EXECUTABLE = ` \
+- if test -x "$(top_builddir)/$(SAPI_CLI_PATH)"; then \
+- $(top_srcdir)/build/shtool echo -n -- "$(top_builddir)/$(SAPI_CLI_PATH) -n"; \
++ if test -x "$(PHAR_PHP)"; then \
++ $(top_srcdir)/build/shtool echo -n -- "$(PHAR_PHP) -n"; \
+ if test "x$(PHP_MODULES)" != "x"; then \
+- $(top_srcdir)/build/shtool echo -n -- " -d extension_dir=$(top_builddir)/modules"; \
++ $(top_srcdir)/build/shtool echo -n -- " -d extension_dir=$(PHAR_PHP_MODULES)"; \
+ for i in bz2 zlib phar; do \
+ if test -f "$(top_builddir)/modules/$$i.la"; then \
+ . $(top_builddir)/modules/$$i.la; $(top_srcdir)/build/shtool echo -n -- " -d extension=$$dlname"; \
+@@ -21,7 +23,7 @@ PHP_PHARCMD_EXECUTABLE = ` \
+ done; \
+ fi; \
+ else \
+- $(top_srcdir)/build/shtool echo -n -- "$(PHP_EXECUTABLE)"; \
++ $(top_srcdir)/build/shtool echo -n -- "$(PHAR_PHP)"; \
+ fi;`
+ PHP_PHARCMD_BANG = `$(top_srcdir)/build/shtool echo -n -- "$(INSTALL_ROOT)$(bindir)/$(program_prefix)php$(program_suffix)$(EXEEXT)";`
+
diff --git a/srcpkgs/php/template b/srcpkgs/php/template
index 96d231b034d..d50acd38326 100644
--- a/srcpkgs/php/template
+++ b/srcpkgs/php/template
@@ -2,7 +2,7 @@
pkgname=php
version=7.4.4
revision=2
-hostmakedepends="bison pkg-config"
+hostmakedepends="bison pkg-config apache-devel"
makedepends="apache-devel enchant-devel freetds-devel freetype-devel gdbm-devel
gmp-devel libcurl-devel libjpeg-turbo-devel libmysqlclient-devel
libsodium-devel libtidy5-devel libxslt-devel libzip-devel net-snmp-devel
@@ -17,12 +17,14 @@ checksum=1873c4cefdd3df9a78dcffb2198bba5c2f0464f55c9c960720c84df483fca74c
conf_files="/etc/php/php.ini"
-# Needs (probably a lot of) work to make it cross compile
-nocross=https://build.voidlinux.org/builders/armv7l-musl_builder/builds/16307/steps/shell_3/logs/stdio
-
lib32disabled=yes
replaces="php-mcrypt<7.2.0"
+if [ -n "$CROSS_BUILD" ]; then
+ # php-pear needs php to build
+ hostmakedepends+=" php"
+fi
+
do_build() {
local _phpconfig="--srcdir=.. \
--config-cache \
@@ -59,18 +61,18 @@ do_build() {
--with-external-gd \
--with-zip=shared \
--with-ffi=shared \
- --with-bz2=shared \
+ --with-bz2=shared,$XBPS_CROSS_BASE/usr/ \
--with-curl=shared \
- --with-db4=/usr \
- --with-enchant=shared,/usr \
- --with-freetype-dir=/usr \
- --with-gdbm \
+ --with-db4=$XBPS_CROSS_BASE/usr \
+ --with-enchant=shared,$XBPS_CROSS_BASE/usr \
+ --with-freetype-dir=$XBPS_CROSS_BASE/usr \
+ --with-gdbm=$XBPS_CROSS_BASE/usr \
--with-gettext=shared \
--with-gmp=shared \
--with-iconv=shared \
- --with-icu-dir=/usr \
- --with-jpeg-dir=/usr \
- --with-ldap=shared \
+ --with-icu-dir=$XBPS_CROSS_BASE/usr \
+ --with-jpeg-dir=$XBPS_CROSS_BASE/usr \
+ --with-ldap=shared,$XBPS_CROSS_BASE/usr \
--with-ldap-sasl \
--with-libzip \
--with-sodium=shared \
@@ -78,55 +80,65 @@ do_build() {
--with-mysql-sock=/run/mysqld/mysqld.sock \
--with-mysqli=shared,mysqlnd \
--with-openssl=shared \
- --with-pcre-regex=/usr \
+ --with-pcre-regex=$XBPS_CROSS_BASE/usr \
--with-pdo-mysql=shared,mysqlnd \
- --with-pdo-odbc=shared,unixODBC,/usr \
- --with-pdo-pgsql=shared \
- --with-pdo-sqlite=shared,/usr \
- --with-pgsql=shared \
- --with-png-dir=/usr \
- --with-readline \
- --with-snmp=shared \
- --with-sqlite3=shared,/usr \
- --with-unixODBC=shared,/usr \
- --with-xmlrpc=shared \
- --with-xsl=shared \
- --with-tidy=shared \
+ --with-pdo-odbc=shared,unixODBC,$XBPS_CROSS_BASE/usr \
+ --with-pdo-pgsql=shared,$XBPS_CROSS_BASE/usr \
+ --with-pdo-sqlite=shared,$XBPS_CROSS_BASE/usr \
+ --with-pgsql=shared,$XBPS_CROSS_BASE/usr \
+ --with-png-dir=$XBPS_CROSS_BASE/usr \
+ --with-readline=$XBPS_CROSS_BASE/usr \
+ --with-snmp=shared,$XBPS_CROSS_BASE/usr \
+ --with-sqlite3=shared,$XBPS_CROSS_BASE/usr \
+ --with-unixODBC=shared,$XBPS_CROSS_BASE/usr \
+ --with-xsl=shared,$XBPS_CROSS_BASE/usr \
+ --with-tidy=shared,$XBPS_CROSS_BASE/usr \
--with-zlib \
${configure_args} \
"
+ if [ -n "$CROSS_BUILD" ]; then
+ local _make_env="PHAR_PHP=/usr/bin/php PHAR_PHP_MODULES=/usr/lib/php/modules"
+ fi
EXTENSION_DIR=/usr/lib/php/modules
export EXTENSION_DIR
PEAR_INSTALLDIR=/usr/share/pear
export PEAR_INSTALLDIR
+ EXTRA_LIBS="-ldl"
+ export EXTRA_LIBS
# cgi,cli,embed,fcgi,fpm
mkdir -p build
cd build
ln -s ${wrksrc}/configure
./configure ${_phpconfig} \
+ --host=${XBPS_CROSS_TRIPLET} \
--enable-cgi \
--enable-fpm \
--with-fpm-user=http \
--with-fpm-group=http \
--enable-embed=shared \
${_phpextensions}
- make ${makejobs}
+ make ${makejobs} ${_make_env}
# apache
# reuse the previous run; this will save us a lot of time
cp -a ${wrksrc}/build ${wrksrc}/build-apache
cd ${wrksrc}/build-apache
./configure ${_phpconfig} \
+ --host=${XBPS_CROSS_TRIPLET} \
--with-apxs2 \
${_phpextensions}
- make ${makejobs}
+ make ${makejobs} ${_make_env}
}
do_install() {
cd ${wrksrc}/build
- make INSTALL_ROOT=${DESTDIR} install-{modules,cli,build,headers,programs,pharcmd}
+ local _env="INSTALL_ROOT=${DESTDIR}"
+ if [ -n "$CROSS_BUILD" ]; then
+ _env+=" PHAR_PHP=/usr/bin/php"
+ fi
+ make ${_env} install-{modules,cli,build,headers,programs,pharcmd}
# install php.ini
vinstall ${wrksrc}/php.ini-production 644 etc/php php.ini
@@ -202,7 +214,11 @@ php-pear_package() {
conf_files="/etc/php/pear.conf"
pkg_install() {
cd ${wrksrc}/build
- make install-pear INSTALL_ROOT=${PKGDESTDIR}
+ local _env="INSTALL_ROOT=${PKGDESTDIR}"
+ if [ -n "$CROSS_BUILD" ]; then
+ _env+=" PEAR_PHP=/usr/bin/php"
+ fi
+ make install-pear ${_env}
rm -rf ${PKGDESTDIR}/.{channels,depdb,depdblock,filemap,lock,registry}
rm -rf ${PKGDESTDIR}/usr/share/pear/.{channels,depdb,depdblock,filemap,lock,registry}
}
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PR PATCH] [Updated] php: Add cross compilation support
2020-04-13 13:45 [PR PATCH] php: Add cross compilation support repk
2020-04-13 18:07 ` [PR PATCH] [Updated] " repk
@ 2020-04-15 11:48 ` repk
2020-04-17 10:23 ` [PR PATCH] [Merged]: " Piraty
2 siblings, 0 replies; 4+ messages in thread
From: repk @ 2020-04-15 11:48 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 537 bytes --]
There is an updated pull request by repk against master on the void-packages repository
https://github.com/repk/void-packages php-cross
https://github.com/void-linux/void-packages/pull/20952
php: Add cross compilation support
Support cross compilation by providing builddir path in configure and patching phar and pear makefiles to use host's php binary to install themselves. Therefore it also makes php a hostmakedepends when crosscompiling.
A patch file from https://github.com/void-linux/void-packages/pull/20952.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-php-cross-20952.patch --]
[-- Type: text/x-diff, Size: 12540 bytes --]
From 18266e8dcede271fb5e2c97e002329435acf8985 Mon Sep 17 00:00:00 2001
From: Remi Pommarel <repk@triplefau.lt>
Date: Mon, 13 Apr 2020 12:59:03 +0200
Subject: [PATCH 1/2] php: Add cross compilation support
---
srcpkgs/php/patches/php-cross-config.patch | 41 ++++++++++++
srcpkgs/php/patches/php-pear-cross.patch | 23 +++++++
srcpkgs/php/patches/php-phar-cross.patch | 29 +++++++++
srcpkgs/php/template | 74 +++++++++++++---------
4 files changed, 138 insertions(+), 29 deletions(-)
create mode 100644 srcpkgs/php/patches/php-cross-config.patch
create mode 100644 srcpkgs/php/patches/php-pear-cross.patch
create mode 100644 srcpkgs/php/patches/php-phar-cross.patch
diff --git a/srcpkgs/php/patches/php-cross-config.patch b/srcpkgs/php/patches/php-cross-config.patch
new file mode 100644
index 00000000000..5ce95cda930
--- /dev/null
+++ b/srcpkgs/php/patches/php-cross-config.patch
@@ -0,0 +1,41 @@
+--- configure 2020-03-17 11:40:20.000000000 +0100
++++ configure 2020-04-12 19:51:57.216350534 +0200
+@@ -6374,10 +6374,12 @@ IFS="- /.
+ as_fn_error $? "Please note that Apache version >= 2.0.44 is required" "$LINENO" 5
+ fi
+
++ APXS_PREFIX='$(INSTALL_ROOT)'/usr
+ APXS_LIBEXECDIR='$(INSTALL_ROOT)'`$APXS -q LIBEXECDIR`
+ if test -z `$APXS -q SYSCONFDIR`; then
+ INSTALL_IT="\$(mkinstalldirs) '$APXS_LIBEXECDIR' && \
+ $APXS -S LIBEXECDIR='$APXS_LIBEXECDIR' \
++ -S PREFIX='$APXS_PREFIX' \
+ -i -n php7"
+ else
+ APXS_SYSCONFDIR='$(INSTALL_ROOT)'`$APXS -q SYSCONFDIR`
+@@ -6385,6 +6387,7 @@ IFS="- /.
+ \$(mkinstalldirs) '$APXS_SYSCONFDIR' && \
+ $APXS -S LIBEXECDIR='$APXS_LIBEXECDIR' \
+ -S SYSCONFDIR='$APXS_SYSCONFDIR' \
++ -S PREFIX='$APXS_PREFIX' \
+ -i -a -n php7"
+ fi
+
+@@ -57170,7 +57173,7 @@ $as_echo_n "checking for pg_config... "
+ fi
+ done
+
+- if test -n "$PG_CONFIG"; then
++ if test -n "$PG_CONFIG" && test "x$cross_compiling" != "xyes"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PG_CONFIG" >&5
+ $as_echo "$PG_CONFIG" >&6; }
+ PGSQL_INCLUDE=`$PG_CONFIG --includedir`
+@@ -58821,7 +58824,7 @@ $as_echo_n "checking for pg_config... "
+ fi
+ done
+
+- if test -n "$PG_CONFIG"; then
++ if test -n "$PG_CONFIG" && test "x$cross_compiling" != "xyes"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PG_CONFIG" >&5
+ $as_echo "$PG_CONFIG" >&6; }
+ PGSQL_INCLUDE=`$PG_CONFIG --includedir`
diff --git a/srcpkgs/php/patches/php-pear-cross.patch b/srcpkgs/php/patches/php-pear-cross.patch
new file mode 100644
index 00000000000..944a91dda9a
--- /dev/null
+++ b/srcpkgs/php/patches/php-pear-cross.patch
@@ -0,0 +1,23 @@
+--- pear/Makefile.frag 2020-03-17 11:40:21.000000000 +0100
++++ pear/Makefile.frag 2020-04-12 22:29:31.846943414 +0200
+@@ -8,9 +8,10 @@ FETCH = `which fetch 2>/dev/null`
+ PEAR_PREFIX = -dp a${program_prefix}
+ PEAR_SUFFIX = -ds a$(program_suffix)
+ PEAR_INSTALLER_URL = https://pear.php.net/install-pear-nozlib.phar
++PEAR_PHP ?= $(top_builddir)/sapi/cli/php
+
+ install-pear-installer: $(SAPI_CLI_PATH)
+- @$(top_builddir)/sapi/cli/php $(PEAR_INSTALL_FLAGS) pear/install-pear-nozlib.phar -d "$(peardir)" -b "$(bindir)" ${PEAR_PREFIX} ${PEAR_SUFFIX}
++ @$(PEAR_PHP) $(PEAR_INSTALL_FLAGS) pear/install-pear-nozlib.phar -d "$(peardir)" -b "$(bindir)" ${PEAR_PREFIX} ${PEAR_SUFFIX}
+
+ install-pear:
+ @echo "Installing PEAR environment: $(INSTALL_ROOT)$(peardir)/"
+@@ -23,7 +24,7 @@ install-pear:
+ elif test ! -z "$(FETCH)" && test -x "$(FETCH)"; then \
+ "$(FETCH)" -o $(builddir)/ "${PEAR_INSTALLER_URL}"; \
+ else \
+- $(top_builddir)/sapi/cli/php -n $(srcdir)/fetch.php "${PEAR_INSTALLER_URL}" $(builddir)/install-pear-nozlib.phar; \
++ $(PEAR_PHP) -n $(srcdir)/fetch.php "${PEAR_INSTALLER_URL}" $(builddir)/install-pear-nozlib.phar; \
+ fi \
+ fi \
+ fi
diff --git a/srcpkgs/php/patches/php-phar-cross.patch b/srcpkgs/php/patches/php-phar-cross.patch
new file mode 100644
index 00000000000..955ab80b0a1
--- /dev/null
+++ b/srcpkgs/php/patches/php-phar-cross.patch
@@ -0,0 +1,29 @@
+--- ext/phar/Makefile.frag 2020-04-13 12:18:23.998801926 +0200
++++ ext/phar/Makefile.frag 2020-04-13 12:20:58.031795293 +0200
+@@ -8,12 +8,14 @@ $(srcdir)/phar_path_check.c: $(srcdir)/p
+
+ pharcmd: $(builddir)/phar.php $(builddir)/phar.phar
+
++PHAR_PHP ?= $(top_builddir)/$(SAPI_CLI_PATH)
++PHAR_PHP_MODULES ?= $(top_builddir)/modules
+ PHP_PHARCMD_SETTINGS = -n -d 'open_basedir=' -d 'output_buffering=0' -d 'memory_limit=-1' -d phar.readonly=0
+ PHP_PHARCMD_EXECUTABLE = ` \
+- if test -x "$(top_builddir)/$(SAPI_CLI_PATH)"; then \
+- $(top_srcdir)/build/shtool echo -n -- "$(top_builddir)/$(SAPI_CLI_PATH) -n"; \
++ if test -x "$(PHAR_PHP)"; then \
++ $(top_srcdir)/build/shtool echo -n -- "$(PHAR_PHP) -n"; \
+ if test "x$(PHP_MODULES)" != "x"; then \
+- $(top_srcdir)/build/shtool echo -n -- " -d extension_dir=$(top_builddir)/modules"; \
++ $(top_srcdir)/build/shtool echo -n -- " -d extension_dir=$(PHAR_PHP_MODULES)"; \
+ for i in bz2 zlib phar; do \
+ if test -f "$(top_builddir)/modules/$$i.la"; then \
+ . $(top_builddir)/modules/$$i.la; $(top_srcdir)/build/shtool echo -n -- " -d extension=$$dlname"; \
+@@ -21,7 +23,7 @@ PHP_PHARCMD_EXECUTABLE = ` \
+ done; \
+ fi; \
+ else \
+- $(top_srcdir)/build/shtool echo -n -- "$(PHP_EXECUTABLE)"; \
++ $(top_srcdir)/build/shtool echo -n -- "$(PHAR_PHP)"; \
+ fi;`
+ PHP_PHARCMD_BANG = `$(top_srcdir)/build/shtool echo -n -- "$(INSTALL_ROOT)$(bindir)/$(program_prefix)php$(program_suffix)$(EXEEXT)";`
+
diff --git a/srcpkgs/php/template b/srcpkgs/php/template
index 96d231b034d..d50acd38326 100644
--- a/srcpkgs/php/template
+++ b/srcpkgs/php/template
@@ -2,7 +2,7 @@
pkgname=php
version=7.4.4
revision=2
-hostmakedepends="bison pkg-config"
+hostmakedepends="bison pkg-config apache-devel"
makedepends="apache-devel enchant-devel freetds-devel freetype-devel gdbm-devel
gmp-devel libcurl-devel libjpeg-turbo-devel libmysqlclient-devel
libsodium-devel libtidy5-devel libxslt-devel libzip-devel net-snmp-devel
@@ -17,12 +17,14 @@ checksum=1873c4cefdd3df9a78dcffb2198bba5c2f0464f55c9c960720c84df483fca74c
conf_files="/etc/php/php.ini"
-# Needs (probably a lot of) work to make it cross compile
-nocross=https://build.voidlinux.org/builders/armv7l-musl_builder/builds/16307/steps/shell_3/logs/stdio
-
lib32disabled=yes
replaces="php-mcrypt<7.2.0"
+if [ -n "$CROSS_BUILD" ]; then
+ # php-pear needs php to build
+ hostmakedepends+=" php"
+fi
+
do_build() {
local _phpconfig="--srcdir=.. \
--config-cache \
@@ -59,18 +61,18 @@ do_build() {
--with-external-gd \
--with-zip=shared \
--with-ffi=shared \
- --with-bz2=shared \
+ --with-bz2=shared,$XBPS_CROSS_BASE/usr/ \
--with-curl=shared \
- --with-db4=/usr \
- --with-enchant=shared,/usr \
- --with-freetype-dir=/usr \
- --with-gdbm \
+ --with-db4=$XBPS_CROSS_BASE/usr \
+ --with-enchant=shared,$XBPS_CROSS_BASE/usr \
+ --with-freetype-dir=$XBPS_CROSS_BASE/usr \
+ --with-gdbm=$XBPS_CROSS_BASE/usr \
--with-gettext=shared \
--with-gmp=shared \
--with-iconv=shared \
- --with-icu-dir=/usr \
- --with-jpeg-dir=/usr \
- --with-ldap=shared \
+ --with-icu-dir=$XBPS_CROSS_BASE/usr \
+ --with-jpeg-dir=$XBPS_CROSS_BASE/usr \
+ --with-ldap=shared,$XBPS_CROSS_BASE/usr \
--with-ldap-sasl \
--with-libzip \
--with-sodium=shared \
@@ -78,55 +80,65 @@ do_build() {
--with-mysql-sock=/run/mysqld/mysqld.sock \
--with-mysqli=shared,mysqlnd \
--with-openssl=shared \
- --with-pcre-regex=/usr \
+ --with-pcre-regex=$XBPS_CROSS_BASE/usr \
--with-pdo-mysql=shared,mysqlnd \
- --with-pdo-odbc=shared,unixODBC,/usr \
- --with-pdo-pgsql=shared \
- --with-pdo-sqlite=shared,/usr \
- --with-pgsql=shared \
- --with-png-dir=/usr \
- --with-readline \
- --with-snmp=shared \
- --with-sqlite3=shared,/usr \
- --with-unixODBC=shared,/usr \
- --with-xmlrpc=shared \
- --with-xsl=shared \
- --with-tidy=shared \
+ --with-pdo-odbc=shared,unixODBC,$XBPS_CROSS_BASE/usr \
+ --with-pdo-pgsql=shared,$XBPS_CROSS_BASE/usr \
+ --with-pdo-sqlite=shared,$XBPS_CROSS_BASE/usr \
+ --with-pgsql=shared,$XBPS_CROSS_BASE/usr \
+ --with-png-dir=$XBPS_CROSS_BASE/usr \
+ --with-readline=$XBPS_CROSS_BASE/usr \
+ --with-snmp=shared,$XBPS_CROSS_BASE/usr \
+ --with-sqlite3=shared,$XBPS_CROSS_BASE/usr \
+ --with-unixODBC=shared,$XBPS_CROSS_BASE/usr \
+ --with-xsl=shared,$XBPS_CROSS_BASE/usr \
+ --with-tidy=shared,$XBPS_CROSS_BASE/usr \
--with-zlib \
${configure_args} \
"
+ if [ -n "$CROSS_BUILD" ]; then
+ local _make_env="PHAR_PHP=/usr/bin/php PHAR_PHP_MODULES=/usr/lib/php/modules"
+ fi
EXTENSION_DIR=/usr/lib/php/modules
export EXTENSION_DIR
PEAR_INSTALLDIR=/usr/share/pear
export PEAR_INSTALLDIR
+ EXTRA_LIBS="-ldl"
+ export EXTRA_LIBS
# cgi,cli,embed,fcgi,fpm
mkdir -p build
cd build
ln -s ${wrksrc}/configure
./configure ${_phpconfig} \
+ --host=${XBPS_CROSS_TRIPLET} \
--enable-cgi \
--enable-fpm \
--with-fpm-user=http \
--with-fpm-group=http \
--enable-embed=shared \
${_phpextensions}
- make ${makejobs}
+ make ${makejobs} ${_make_env}
# apache
# reuse the previous run; this will save us a lot of time
cp -a ${wrksrc}/build ${wrksrc}/build-apache
cd ${wrksrc}/build-apache
./configure ${_phpconfig} \
+ --host=${XBPS_CROSS_TRIPLET} \
--with-apxs2 \
${_phpextensions}
- make ${makejobs}
+ make ${makejobs} ${_make_env}
}
do_install() {
cd ${wrksrc}/build
- make INSTALL_ROOT=${DESTDIR} install-{modules,cli,build,headers,programs,pharcmd}
+ local _env="INSTALL_ROOT=${DESTDIR}"
+ if [ -n "$CROSS_BUILD" ]; then
+ _env+=" PHAR_PHP=/usr/bin/php"
+ fi
+ make ${_env} install-{modules,cli,build,headers,programs,pharcmd}
# install php.ini
vinstall ${wrksrc}/php.ini-production 644 etc/php php.ini
@@ -202,7 +214,11 @@ php-pear_package() {
conf_files="/etc/php/pear.conf"
pkg_install() {
cd ${wrksrc}/build
- make install-pear INSTALL_ROOT=${PKGDESTDIR}
+ local _env="INSTALL_ROOT=${PKGDESTDIR}"
+ if [ -n "$CROSS_BUILD" ]; then
+ _env+=" PEAR_PHP=/usr/bin/php"
+ fi
+ make install-pear ${_env}
rm -rf ${PKGDESTDIR}/.{channels,depdb,depdblock,filemap,lock,registry}
rm -rf ${PKGDESTDIR}/usr/share/pear/.{channels,depdb,depdblock,filemap,lock,registry}
}
From 74e18f3a02fbb0d1a30a931f39c2858d216702ad Mon Sep 17 00:00:00 2001
From: Remi Pommarel <repk@triplefau.lt>
Date: Wed, 15 Apr 2020 12:57:46 +0200
Subject: [PATCH 2/2] php: Modify phpize.m4 to create configure with sysroot
support
---
.../patches/php-phpize-sysroot-support.patch | 28 +++++++++++++++++++
srcpkgs/php/template | 2 +-
2 files changed, 29 insertions(+), 1 deletion(-)
create mode 100644 srcpkgs/php/patches/php-phpize-sysroot-support.patch
diff --git a/srcpkgs/php/patches/php-phpize-sysroot-support.patch b/srcpkgs/php/patches/php-phpize-sysroot-support.patch
new file mode 100644
index 00000000000..d91caf2791d
--- /dev/null
+++ b/srcpkgs/php/patches/php-phpize-sysroot-support.patch
@@ -0,0 +1,28 @@
+--- scripts/phpize.m4 2020-03-17 11:40:21.000000000 +0100
++++ scripts/phpize.m4 2020-04-15 12:27:36.400466387 +0200
+@@ -44,6 +44,12 @@ PHP_ARG_WITH([libdir],
+ [lib],
+ [no])
+
++PHP_ARG_WITH([sysroot],,
++ [AS_HELP_STRING([--with-sysroot=NAME],
++ [System sysroot])],
++ [no],
++ [no])
++
+ PHP_RUNPATH_SWITCH
+ PHP_SHLIB_SUFFIX_NAMES
+
+@@ -58,7 +64,11 @@ dnl For BC.
+ PHP_CONFIG=$PHP_PHP_CONFIG
+ prefix=`$PHP_CONFIG --prefix 2>/dev/null`
+ phpincludedir=`$PHP_CONFIG --include-dir 2>/dev/null`
+-INCLUDES=`$PHP_CONFIG --includes 2>/dev/null`
++if test "x$PHP_SYSROOT" = xno; then :
++ INCLUDES=`$PHP_CONFIG --includes 2>/dev/null`
++else
++ INCLUDES=`$PHP_CONFIG --includes 2>/dev/null | sed "s#-I#-I$PHP_SYSROOT#g"`
++fi
+ EXTENSION_DIR=`$PHP_CONFIG --extension-dir 2>/dev/null`
+ PHP_EXECUTABLE=`$PHP_CONFIG --php-binary 2>/dev/null`
+
diff --git a/srcpkgs/php/template b/srcpkgs/php/template
index d50acd38326..a3cfb9e773a 100644
--- a/srcpkgs/php/template
+++ b/srcpkgs/php/template
@@ -1,7 +1,7 @@
# Template file for 'php'
pkgname=php
version=7.4.4
-revision=2
+revision=3
hostmakedepends="bison pkg-config apache-devel"
makedepends="apache-devel enchant-devel freetds-devel freetype-devel gdbm-devel
gmp-devel libcurl-devel libjpeg-turbo-devel libmysqlclient-devel
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PR PATCH] [Merged]: php: Add cross compilation support
2020-04-13 13:45 [PR PATCH] php: Add cross compilation support repk
2020-04-13 18:07 ` [PR PATCH] [Updated] " repk
2020-04-15 11:48 ` repk
@ 2020-04-17 10:23 ` Piraty
2 siblings, 0 replies; 4+ messages in thread
From: Piraty @ 2020-04-17 10:23 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 385 bytes --]
There's a merged pull request on the void-packages repository
php: Add cross compilation support
https://github.com/void-linux/void-packages/pull/20952
Description:
Support cross compilation by providing builddir path in configure and patching phar and pear makefiles to use host's php binary to install themselves. Therefore it also makes php a hostmakedepends when crosscompiling.
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2020-04-17 10:23 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-04-13 13:45 [PR PATCH] php: Add cross compilation support repk
2020-04-13 18:07 ` [PR PATCH] [Updated] " repk
2020-04-15 11:48 ` repk
2020-04-17 10:23 ` [PR PATCH] [Merged]: " Piraty
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).