PHP's phpize is based on a very old libtool to generate build files for its extensions. This libtool does not support .la files with '=' to support sysroot. In order to support more PHP extension cross compilation this modifies ltmain.sh to support such path. This is a bit hackish has it only get sysroot from the used toolchain; the proper way to fix that is to have PHP developpers to update the autotools file used to build there extensions.
350 lines
8.4 KiB
Bash
350 lines
8.4 KiB
Bash
# Template file for 'php'
|
|
pkgname=php
|
|
version=7.4.14
|
|
revision=6
|
|
hostmakedepends="bison pkg-config apache-devel"
|
|
makedepends="apache-devel enchant-devel freetds-devel freetype-devel gdbm-devel
|
|
gmp-devel libcurl-devel libjpeg-turbo-devel libmariadbclient-devel
|
|
libsodium-devel libtidy5-devel libxslt-devel libzip-devel net-snmp-devel
|
|
postgresql-libs-devel readline-devel sqlite-devel unixodbc-devel pcre2-devel
|
|
libffi-devel oniguruma-devel gd-devel"
|
|
short_desc="HTML-embedded scripting language"
|
|
maintainer="Steve Prybylski <sa.prybylx@gmail.com>"
|
|
license="PHP-3.01"
|
|
homepage="https://www.php.net"
|
|
distfiles="http://www.php.net/distributions/php-${version}.tar.xz"
|
|
checksum=f9f3c37969fcd9006c1dbb1dd76ab53f28c698a1646fa2dde8547c3f45e02886
|
|
|
|
conf_files="/etc/php/php.ini"
|
|
|
|
lib32disabled=yes
|
|
replaces="php-mcrypt<7.2.0"
|
|
|
|
if [ -n "$CROSS_BUILD" ]; then
|
|
# php-pear needs php to build
|
|
hostmakedepends+=" php"
|
|
CFLAGS+=" -DHAVE_LIBDL
|
|
-DHAVE_DLOPEN
|
|
-DHAVE_DLSYM
|
|
-DHAVE_SHM_IPC
|
|
-DHAVE_SHM_MMAP_ANON
|
|
-DHAVE_SHM_MMAP_ZERO
|
|
-DHAVE_SHM_MMAP_POSIX
|
|
-DHAVE_SHM_MMAP_FILE"
|
|
fi
|
|
|
|
do_build() {
|
|
local _phpconfig="--srcdir=.. \
|
|
--config-cache \
|
|
--prefix=/usr \
|
|
--sbindir=/usr/bin \
|
|
--sysconfdir=/etc/php \
|
|
--localstatedir=/var \
|
|
--with-layout=GNU \
|
|
--with-config-file-path=/etc/php \
|
|
--with-config-file-scan-dir=/etc/php/conf.d \
|
|
--disable-rpath \
|
|
--mandir=/usr/share/man \
|
|
--with-pear=/usr/share/pear \
|
|
"
|
|
|
|
local _phpextensions="--enable-bcmath=shared \
|
|
--enable-calendar=shared \
|
|
--enable-exif=shared \
|
|
--enable-ftp=shared \
|
|
--enable-intl=shared \
|
|
--enable-mbstring \
|
|
--enable-opcache \
|
|
--enable-pcntl \
|
|
--enable-phar=shared \
|
|
--enable-posix=shared \
|
|
--enable-shmop=shared \
|
|
--enable-soap=shared \
|
|
--enable-sockets=shared \
|
|
--enable-sysvmsg=shared \
|
|
--enable-sysvsem=shared \
|
|
--enable-sysvshm=shared \
|
|
--enable-mysqlnd \
|
|
--enable-gd=shared \
|
|
--with-external-gd \
|
|
--with-zip=shared \
|
|
--with-ffi=shared \
|
|
--with-bz2=shared,$XBPS_CROSS_BASE/usr/ \
|
|
--with-curl=shared \
|
|
--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=$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 \
|
|
--with-mhash \
|
|
--with-mysql-sock=/run/mysqld/mysqld.sock \
|
|
--with-mysqli=shared,mysqlnd \
|
|
--with-openssl=shared \
|
|
--with-pcre-regex=$XBPS_CROSS_BASE/usr \
|
|
--with-pdo-mysql=shared,mysqlnd \
|
|
--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_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_env}
|
|
}
|
|
|
|
do_install() {
|
|
cd ${wrksrc}/build
|
|
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
|
|
# remove static modules
|
|
rm -f ${DESTDIR}/usr/lib/php/modules/*.a
|
|
}
|
|
|
|
php-devel_package() {
|
|
short_desc+=" - development files"
|
|
pkg_install() {
|
|
vmove usr/include
|
|
vmove usr/lib/php/build
|
|
vmove usr/bin/php-config
|
|
vmove usr/bin/phpize
|
|
vmove usr/share/man/man1/phpize.1
|
|
vmove usr/share/man/man1/php-config.1
|
|
}
|
|
}
|
|
|
|
php-phpdbg_package() {
|
|
short_desc+=" - interactive debugger"
|
|
depends="php-${version}_${revision}"
|
|
pkg_install() {
|
|
cd ${wrksrc}/build
|
|
make INSTALL_ROOT=${PKGDESTDIR} install-phpdbg
|
|
}
|
|
}
|
|
|
|
php-cgi_package() {
|
|
short_desc+=' - CGI and FCGI SAPI'
|
|
depends="php-${version}_${revision}"
|
|
pkg_install() {
|
|
cd ${wrksrc}/build
|
|
make INSTALL_ROOT=${PKGDESTDIR} install-cgi
|
|
}
|
|
}
|
|
|
|
php-apache_package() {
|
|
short_desc+=' - Apache SAPI'
|
|
depends="php-${version}_${revision}"
|
|
conf_files="/etc/apache/extra/php7_module.conf"
|
|
pkg_install() {
|
|
vinstall ${wrksrc}/build-apache/libs/libphp7.so 755 usr/libexec/httpd/modules
|
|
vinstall ${FILESDIR}/apache.conf 644 etc/apache/extra php7_module.conf
|
|
}
|
|
}
|
|
|
|
php-fpm_package() {
|
|
short_desc+=' - FastCGI Process Manager'
|
|
depends="php-${version}_${revision}"
|
|
conf_files="/etc/php/php-fpm.conf /etc/php/php-fpm.d/*"
|
|
pkg_install() {
|
|
cd ${wrksrc}/build
|
|
make INSTALL_ROOT=${PKGDESTDIR} install-fpm
|
|
vsv php-fpm
|
|
}
|
|
}
|
|
|
|
php-embed_package() {
|
|
lib32disabled=yes
|
|
depends="php-${version}_${revision}"
|
|
short_desc+=' - Embed SAPI'
|
|
pkg_install() {
|
|
cd ${wrksrc}/build
|
|
make INSTALL_ROOT=${PKGDESTDIR} PHP_SAPI=embed install-sapi
|
|
}
|
|
}
|
|
|
|
php-pear_package() {
|
|
lib32disabled=yes
|
|
depends="php-${version}_${revision}"
|
|
short_desc+=' - PHP Extension and Application Repository'
|
|
conf_files="/etc/php/pear.conf"
|
|
pkg_install() {
|
|
cd ${wrksrc}/build
|
|
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}
|
|
}
|
|
}
|
|
|
|
php-enchant_package() {
|
|
lib32disabled=yes
|
|
depends="php-${version}_${revision}"
|
|
short_desc+=' - enchant module'
|
|
pkg_install() {
|
|
vmove usr/lib/php/modules/enchant.so
|
|
}
|
|
}
|
|
|
|
php-gd_package() {
|
|
lib32disabled=yes
|
|
depends="php-${version}_${revision}"
|
|
short_desc+=' - gd module'
|
|
pkg_install() {
|
|
vmove usr/lib/php/modules/gd.so
|
|
}
|
|
}
|
|
|
|
php-intl_package() {
|
|
lib32disabled=yes
|
|
depends="php-${version}_${revision}"
|
|
short_desc+=' - Internationalization module'
|
|
pkg_install() {
|
|
vmove usr/lib/php/modules/intl.so
|
|
}
|
|
}
|
|
|
|
php-ldap_package() {
|
|
lib32disabled=yes
|
|
depends="php-${version}_${revision}"
|
|
short_desc+=' - LDAP module'
|
|
pkg_install() {
|
|
vmove usr/lib/php/modules/ldap.so
|
|
}
|
|
}
|
|
|
|
php-mysql_package() {
|
|
lib32disabled=yes
|
|
depends="php-${version}_${revision}"
|
|
short_desc+=' - MySQL modules'
|
|
pkg_install() {
|
|
vmove "usr/lib/php/modules/*mysql*.so"
|
|
}
|
|
}
|
|
|
|
php-odbc_package() {
|
|
lib32disabled=yes
|
|
depends="php-${version}_${revision}"
|
|
short_desc+=' - ODBC modules'
|
|
pkg_install() {
|
|
vmove "usr/lib/php/modules/*odbc.so"
|
|
}
|
|
}
|
|
|
|
php-pgsql_package() {
|
|
lib32disabled=yes
|
|
depends="php-${version}_${revision}"
|
|
short_desc+=' - PostgreSQL modules'
|
|
pkg_install() {
|
|
vmove "usr/lib/php/modules/*pgsql.so"
|
|
}
|
|
}
|
|
|
|
php-snmp_package() {
|
|
lib32disabled=yes
|
|
depends="php-${version}_${revision}"
|
|
short_desc+=' - snmp module'
|
|
pkg_install() {
|
|
vmove usr/lib/php/modules/snmp.so
|
|
}
|
|
}
|
|
|
|
php-sqlite_package() {
|
|
lib32disabled=yes
|
|
depends="php-${version}_${revision}"
|
|
short_desc+=' - sqlite module'
|
|
pkg_install() {
|
|
vmove "usr/lib/php/modules/*sqlite*.so"
|
|
}
|
|
}
|
|
|
|
php-tidy_package() {
|
|
lib32disabled=yes
|
|
depends="php-${version}_${revision}"
|
|
short_desc+=' - tidy HTML module'
|
|
pkg_install() {
|
|
vmove "usr/lib/php/modules/*tidy*.so"
|
|
}
|
|
}
|
|
|
|
php-xsl_package() {
|
|
lib32disabled=yes
|
|
depends="php-${version}_${revision}"
|
|
short_desc+=' - XSL module'
|
|
pkg_install() {
|
|
vmove usr/lib/php/modules/xsl.so
|
|
}
|
|
}
|
|
|
|
php-sodium_package() {
|
|
lib32disabled=yes
|
|
depends="php-${version}_${revision}"
|
|
short_desc+=' - sodium module'
|
|
pkg_install() {
|
|
vmove usr/lib/php/modules/sodium.so
|
|
}
|
|
}
|
|
|
|
php-ffi_package() {
|
|
lib32disabled=yes
|
|
depends="php-${version}_${revision}"
|
|
short_desc+=' - FFI module'
|
|
pkg_install() {
|
|
vmove usr/lib/php/modules/ffi.so
|
|
}
|
|
}
|