mirror of
https://gitdl.cn/https://github.com/chakralinux/core.git
synced 2025-02-03 17:57:13 +08:00
466 lines
14 KiB
Bash
466 lines
14 KiB
Bash
pkgbase=php56
|
|
_pkgbase=${pkgbase%56}
|
|
pkgname=("${pkgbase}"
|
|
"${pkgbase}-cgi"
|
|
"${pkgbase}-apache"
|
|
"${pkgbase}-fpm"
|
|
"${pkgbase}-embed"
|
|
"${pkgbase}-phpdbg"
|
|
"${pkgbase}-dblib"
|
|
"${pkgbase}-pear"
|
|
"${pkgbase}-enchant"
|
|
"${pkgbase}-gd"
|
|
"${pkgbase}-intl"
|
|
"${pkgbase}-ldap"
|
|
"${pkgbase}-mcrypt"
|
|
"${pkgbase}-mssql"
|
|
"${pkgbase}-odbc"
|
|
"${pkgbase}-pgsql"
|
|
"${pkgbase}-pspell"
|
|
"${pkgbase}-snmp"
|
|
"${pkgbase}-sqlite"
|
|
"${pkgbase}-xsl")
|
|
pkgver=5.6.35
|
|
pkgrel=1
|
|
pkgdesc="A general-purpose scripting language that is especially suited to web development"
|
|
arch=('x86_64')
|
|
license=('PHP')
|
|
url='https://php.net'
|
|
makedepends=('apache'
|
|
'aspell'
|
|
'curl'
|
|
'db'
|
|
'enchant'
|
|
'file'
|
|
'freetds'
|
|
'gd'
|
|
'gmp'
|
|
'icu'
|
|
'libldap'
|
|
'libltdl'
|
|
'libmcrypt'
|
|
'libvpx'
|
|
'libxpm'
|
|
'libxslt'
|
|
'libzip'
|
|
'net-snmp'
|
|
'openssl'
|
|
'postgresql-libs'
|
|
'smtp-forwarder'
|
|
'sqlite3'
|
|
'systemd'
|
|
'unixodbc')
|
|
|
|
source=("http://php.net/distributions/${_pkgbase}-${pkgver}.tar.xz"
|
|
"http://php.net/distributions/${_pkgbase}-${pkgver}.tar.xz.asc"
|
|
'php.ini.patch'
|
|
'apache.conf'
|
|
'php-fpm.conf.in.patch'
|
|
'logrotate.d.php-fpm'
|
|
'php-fpm.service'
|
|
'php-fpm.tmpfiles'
|
|
'use-enchant2.patch')
|
|
md5sums=('50afbbc745ad433b9f368c5885bd73bf'
|
|
'SKIP'
|
|
'c893cdf2599f68a7844cd4c91e66a18b'
|
|
'dec2cbaad64e3abf4f0ec70e1de4e8e9'
|
|
'2d0e98c423a9dc57e923f31d63117106'
|
|
'bc1006ba3308c0b641726944874da315'
|
|
'c1cc15d2123931f883f75f231ae44f60'
|
|
'12392414f768281ae96f292d0aa9669c'
|
|
'd4e12952c5b4aaa79b05640ebe21ad32')
|
|
validpgpkeys=('6E4F6AB321FDC07F2C332E3AC2BF0BC433CFC8B3'
|
|
'0BD78B5F97500D450838F95DFE857D9A90D90EC1')
|
|
|
|
prepare() {
|
|
cd ${_pkgbase}-${pkgver}
|
|
|
|
patch -p0 -i ${srcdir}/php.ini.patch
|
|
patch -p0 -i ${srcdir}/php-fpm.conf.in.patch
|
|
patch -p0 -i ${srcdir}/use-enchant2.patch
|
|
|
|
# Just because our Apache 2.4 is configured with a threaded MPM by default does not mean we want to build a ZTS PHP.
|
|
# Let's supress this behaviour and build a SAPI that works fine with the prefork MPM.
|
|
sed '/APACHE_THREADED_MPM=/d' -i sapi/apache2handler/config.m4 -i configure
|
|
}
|
|
|
|
build() {
|
|
local _phpconfig=(
|
|
--srcdir=../${_pkgbase}-${pkgver}
|
|
--config-cache
|
|
--prefix=/usr
|
|
--sbindir=/usr/bin
|
|
--sysconfdir=/etc/${pkgbase}
|
|
--localstatedir=/var
|
|
--libdir=/usr/lib/${pkgbase}
|
|
--datarootdir=/usr/share/${pkgbase}
|
|
--datadir=/usr/share/${pkgbase}
|
|
--program-suffix=${pkgbase#php}
|
|
--with-layout=GNU
|
|
--with-config-file-path=/etc/${pkgbase}
|
|
--with-config-file-scan-dir=/etc/${pkgbase}/conf.d
|
|
--disable-rpath
|
|
--mandir=/usr/share/man
|
|
--without-pear
|
|
)
|
|
|
|
local _phpextensions=(
|
|
--enable-bcmath=shared
|
|
--enable-calendar=shared
|
|
--enable-dba=shared
|
|
--enable-exif=shared
|
|
--enable-ftp=shared
|
|
--enable-gd-native-ttf
|
|
--enable-intl=shared
|
|
--enable-mbstring
|
|
--enable-opcache
|
|
--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-zip=shared
|
|
--with-bz2=shared
|
|
--with-curl=shared
|
|
--with-db4=/usr
|
|
--with-enchant=shared,/usr
|
|
--with-fpm-systemd
|
|
--with-freetype-dir=/usr
|
|
--with-xpm-dir=/usr
|
|
--with-gd=shared,/usr
|
|
--with-gdbm
|
|
--with-gettext=shared
|
|
--with-gmp=shared
|
|
--with-iconv=shared
|
|
--with-icu-dir=/usr
|
|
--with-kerberos=/usr
|
|
--with-jpeg-dir=/usr
|
|
--with-vpx-dir=/usr
|
|
--with-ldap=shared
|
|
--with-ldap-sasl
|
|
--with-libzip
|
|
--with-mcrypt=shared
|
|
--with-mhash
|
|
--with-mssql=shared
|
|
--with-mysql-sock=/run/mysqld/mysqld.sock
|
|
--with-mysql=shared,mysqlnd
|
|
--with-mysqli=shared,mysqlnd
|
|
--with-openssl=shared
|
|
--with-pcre-regex=/usr
|
|
--with-pdo-dblib=shared,/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-pspell=shared
|
|
--with-snmp=shared
|
|
--with-sqlite3=shared,/usr
|
|
--with-unixODBC=shared,/usr
|
|
--with-xmlrpc=shared
|
|
--with-xsl=shared
|
|
--with-zlib
|
|
)
|
|
|
|
export EXTENSION_DIR=/usr/lib/${pkgbase}/modules
|
|
export PEAR_INSTALLDIR=/usr/share/${pkgbase}/pear
|
|
|
|
# php
|
|
mkdir -p build-php
|
|
cd ${srcdir}/build-php
|
|
ln -sf ../${_pkgbase}-${pkgver}/configure
|
|
./configure "${_phpconfig[@]}" \
|
|
--disable-cgi \
|
|
--with-readline \
|
|
--enable-pcntl \
|
|
"${_phpextensions[@]}"
|
|
make
|
|
|
|
# cgi and fcgi
|
|
# reuse the previous run; this will save us a lot of time
|
|
cp -Ta "${srcdir}/build-php" "${srcdir}/build-cgi"
|
|
cd "${srcdir}/build-cgi"
|
|
./configure "${_phpconfig[@]}" \
|
|
--disable-cli \
|
|
--enable-cgi \
|
|
"${_phpextensions[@]}"
|
|
make
|
|
|
|
# "apache"
|
|
cp -Ta "${srcdir}/build-php" "${srcdir}/build-apache"
|
|
cd "${srcdir}/build-apache"
|
|
./configure "${_phpconfig[@]}" \
|
|
--disable-cli \
|
|
--with-apxs2 \
|
|
"${_phpextensions[@]}"
|
|
make
|
|
|
|
# "fpm"
|
|
cp -Ta "${srcdir}/build-php" "${srcdir}/build-fpm"
|
|
cd "${srcdir}/build-fpm"
|
|
./configure "${_phpconfig[@]}" \
|
|
--disable-cli \
|
|
--enable-fpm \
|
|
--with-fpm-user=http \
|
|
--with-fpm-group=http \
|
|
"${_phpextensions[@]}"
|
|
make
|
|
|
|
# "embed"
|
|
cp -Ta "${srcdir}/build-php" "${srcdir}/build-embed"
|
|
cd "${srcdir}/build-embed"
|
|
./configure "${_phpconfig[@]}" \
|
|
--disable-cli \
|
|
--enable-embed=shared \
|
|
"${_phpextensions[@]}"
|
|
make
|
|
|
|
# "phpdbg"
|
|
cp -Ta "${srcdir}/build-php" "${srcdir}/build-phpdbg"
|
|
cd "${srcdir}/build-phpdbg"
|
|
./configure "${_phpconfig[@]}" \
|
|
--disable-cli \
|
|
--disable-cgi \
|
|
--with-readline \
|
|
--enable-phpdbg \
|
|
"${_phpextensions[@]}"
|
|
make
|
|
|
|
# "pear"
|
|
cp -Ta "${srcdir}/build-php" "${srcdir}/build-pear"
|
|
cd "${srcdir}/build-pear"
|
|
./configure "${_phpconfig[@]}" \
|
|
--disable-cgi \
|
|
--with-readline \
|
|
--enable-pcntl \
|
|
--with-pear \
|
|
"${_phpextensions[@]}"
|
|
make
|
|
}
|
|
|
|
package_php56() {
|
|
pkgdesc='An HTML-embedded scripting language'
|
|
depends=('pcre' 'libxml2' 'curl' 'libzip')
|
|
backup=("etc/${pkgbase}/php.ini")
|
|
provides=("${_pkgbase}=$pkgver")
|
|
|
|
cd build-php
|
|
make -j1 INSTALL_ROOT="${pkgdir}" install
|
|
# install php.ini
|
|
install -D -m644 ${srcdir}/${_pkgbase}-${pkgver}/php.ini-production ${pkgdir}/etc/${pkgbase}/php.ini
|
|
install -d -m755 ${pkgdir}/etc/${pkgbase}/conf.d/
|
|
|
|
# remove static modules
|
|
rm -f ${pkgdir}/usr/lib/${pkgbase}/modules/*.a
|
|
# remove modules provided by sub packages
|
|
rm -f ${pkgdir}/usr/lib/${pkgbase}/modules/{enchant,gd,intl,ldap,mcrypt,mssql,odbc,pdo_odbc,pgsql,pdo_pgsql,pspell,snmp,sqlite3,pdo_sqlite,xsl,pdo_dblib}.so
|
|
|
|
# remove empty directory
|
|
rmdir ${pkgdir}/usr/include/php/include
|
|
|
|
# move include directory
|
|
mv ${pkgdir}/usr/include/php ${pkgdir}/usr/include/${pkgbase}
|
|
|
|
# fix phar symlink
|
|
rm ${pkgdir}/usr/bin/phar
|
|
ln -sf phar.${pkgbase/php/phar} ${pkgdir}/usr/bin/${pkgbase/php/phar}
|
|
|
|
# rename executables
|
|
mv ${pkgdir}/usr/bin/phar.{phar,${pkgbase/php/phar}}
|
|
|
|
# rename man pages
|
|
mv ${pkgdir}/usr/share/man/man1/{phar,${pkgbase/php/phar}}.1
|
|
mv ${pkgdir}/usr/share/man/man1/phar.{phar,${pkgbase/php/phar}}.1
|
|
|
|
# fix paths in executables
|
|
sed -i "/^includedir=/c \includedir=/usr/include/${pkgbase}" ${pkgdir}/usr/bin/${pkgbase/php/phpize}
|
|
sed -i "/^include_dir=/c \include_dir=/usr/include/${pkgbase}" ${pkgdir}/usr/bin/${pkgbase/php/php-config}
|
|
|
|
# make phpize use php-config56
|
|
sed -i "/^\[ --with-php-config=/c \[ --with-php-config=PATH Path to php-config [${pkgbase/php/php-config}]], ${pkgbase/php/php-config}, no)" ${pkgdir}/usr/lib/${pkgbase}/build/phpize.m4
|
|
}
|
|
|
|
package_php56-cgi() {
|
|
pkgdesc='CGI and FCGI SAPI for PHP'
|
|
depends=("${pkgbase}")
|
|
provides=("${_pkgbase}-cgi=$pkgver")
|
|
|
|
install -D -m755 ${srcdir}/build-cgi/sapi/cgi/php-cgi ${pkgdir}/usr/bin/${pkgbase}-cgi
|
|
}
|
|
|
|
package_php56-apache() {
|
|
pkgdesc='Apache SAPI for PHP'
|
|
depends=("${pkgbase}" 'apache')
|
|
provides=("${_pkgbase}-apache=$pkgver")
|
|
backup=("etc/httpd/conf/extra/${pkgbase}_module.conf")
|
|
install='php-apache.install'
|
|
|
|
install -D -m755 ${srcdir}/build-apache/libs/libphp5.so ${pkgdir}/usr/lib/httpd/modules/lib${pkgbase}.so
|
|
install -D -m644 ${srcdir}/apache.conf ${pkgdir}/etc/httpd/conf/extra/${pkgbase}_module.conf
|
|
}
|
|
|
|
package_php56-fpm() {
|
|
pkgdesc='FastCGI Process Manager for PHP'
|
|
depends=("${pkgbase}" 'systemd')
|
|
provides=("${_pkgbase}-fpm=$pkgver")
|
|
backup=("etc/${pkgbase}/php-fpm.conf")
|
|
install='php-fpm.install'
|
|
|
|
install -d -m755 ${pkgdir}/usr/bin
|
|
install -D -m755 ${srcdir}/build-fpm/sapi/fpm/php-fpm ${pkgdir}/usr/bin/${pkgbase}-fpm
|
|
|
|
install -D -m644 ${srcdir}/build-fpm/sapi/fpm/php-fpm.8 ${pkgdir}/usr/share/man/man8/${pkgbase}-fpm.8
|
|
install -D -m644 ${srcdir}/build-fpm/sapi/fpm/php-fpm.conf ${pkgdir}/etc/${pkgbase}/php-fpm.conf
|
|
|
|
install -d -m755 ${pkgdir}/etc/${pkgbase}/fpm.d
|
|
install -D -m644 ${srcdir}/php-fpm.tmpfiles ${pkgdir}/usr/lib/tmpfiles.d/${pkgbase}-fpm.conf
|
|
install -D -m644 ${srcdir}/php-fpm.service ${pkgdir}/usr/lib/systemd/system/${pkgbase}-fpm.service
|
|
|
|
install -d -m755 ${pkgdir}/etc/logrotate.d
|
|
install -D -m644 ${srcdir}/logrotate.d.php-fpm ${pkgdir}/etc/logrotate.d/${pkgbase}-fpm
|
|
}
|
|
|
|
package_php56-embed() {
|
|
pkgdesc='Embedded PHP SAPI library'
|
|
depends=("${pkgbase}")
|
|
provides=("${_pkgbase}-embed=$pkgver")
|
|
|
|
install -D -m755 ${srcdir}/build-embed/libs/libphp5.so ${pkgdir}/usr/lib/libphp56.so
|
|
install -D -m644 ${srcdir}/${_pkgbase}-${pkgver}/sapi/embed/php_embed.h ${pkgdir}/usr/include/${pkgbase}/sapi/embed/php_embed.h
|
|
}
|
|
|
|
package_php56-phpdbg() {
|
|
pkgdesc='Interactive PHP debugger'
|
|
depends=("${pkgbase}")
|
|
provides=("${_pkgbase}-phpdbg=$pkgver")
|
|
|
|
install -d -m755 ${pkgdir}/usr/bin
|
|
install -D -m755 ${srcdir}/build-phpdbg/sapi/phpdbg/phpdbg ${pkgdir}/usr/bin/${pkgbase}dbg
|
|
}
|
|
|
|
package_php56-dblib() {
|
|
pkgdesc='dblib module for PHP'
|
|
depends=("${pkgbase}")
|
|
provides=("${_pkgbase}-dblib=$pkgver")
|
|
|
|
install -D -m755 ${srcdir}/build-php/modules/pdo_dblib.so ${pkgdir}/usr/lib/${pkgbase}/modules/pdo_dblib.so
|
|
}
|
|
|
|
package_php56-pear() {
|
|
pkgdesc='PHP Extension and Application Repository'
|
|
depends=("${pkgbase}")
|
|
provides=("${_pkgbase}-pear=$pkgver")
|
|
backup=("etc/${pkgbase}/pear.conf")
|
|
|
|
cd ${srcdir}/build-pear
|
|
make install-pear INSTALL_ROOT=${pkgdir}
|
|
rm -rf ${pkgdir}{/usr/share/${pkgbase}/pear,}/.{channels,depdb,depdblock,filemap,lock,registry}
|
|
|
|
mv ${pkgdir}/usr/bin/{pear,${pkgbase/php/pear}}
|
|
mv ${pkgdir}/usr/bin/{peardev,${pkgbase/php/peardev}}
|
|
mv ${pkgdir}/usr/bin/{pecl,${pkgbase/php/pecl}}
|
|
}
|
|
|
|
package_php56-enchant() {
|
|
pkgdesc='enchant module for PHP'
|
|
depends=("${pkgbase}" 'enchant')
|
|
provides=("${_pkgbase}-enchant=$pkgver")
|
|
|
|
install -D -m755 ${srcdir}/build-php/modules/enchant.so ${pkgdir}/usr/lib/${pkgbase}/modules/enchant.so
|
|
}
|
|
|
|
package_php56-gd() {
|
|
pkgdesc='gd module for PHP'
|
|
depends=("${pkgbase}" 'gd')
|
|
provides=("${_pkgbase}-gd=$pkgver")
|
|
|
|
install -D -m755 ${srcdir}/build-php/modules/gd.so ${pkgdir}/usr/lib/${pkgbase}/modules/gd.so
|
|
}
|
|
|
|
package_php56-intl() {
|
|
pkgdesc='intl module for PHP'
|
|
depends=("${pkgbase}" 'icu')
|
|
provides=("${_pkgbase}-intl=$pkgver")
|
|
|
|
install -D -m755 ${srcdir}/build-php/modules/intl.so ${pkgdir}/usr/lib/${pkgbase}/modules/intl.so
|
|
}
|
|
|
|
package_php56-ldap() {
|
|
pkgdesc='ldap module for PHP'
|
|
depends=("${pkgbase}" 'libldap')
|
|
provides=("${pkgbase}-ldap=$pkgver")
|
|
|
|
install -D -m755 ${srcdir}/build-php/modules/ldap.so ${pkgdir}/usr/lib/${pkgbase}/modules/ldap.so
|
|
}
|
|
|
|
package_php56-mcrypt() {
|
|
pkgdesc='mcrypt module for PHP'
|
|
depends=("${pkgbase}" 'libmcrypt' 'libltdl')
|
|
provides=("${_pkgbase}-mcrypt=$pkgver")
|
|
|
|
install -D -m755 ${srcdir}/build-php/modules/mcrypt.so ${pkgdir}/usr/lib/${pkgbase}/modules/mcrypt.so
|
|
}
|
|
|
|
package_php56-mssql() {
|
|
pkgdesc='mssql module for PHP'
|
|
depends=("${pkgbase}" 'freetds')
|
|
provides=("${_pkgbase}-mssql=$pkgver")
|
|
|
|
install -D -m755 ${srcdir}/build-php/modules/mssql.so ${pkgdir}/usr/lib/${pkgbase}/modules/mssql.so
|
|
}
|
|
|
|
package_php56-odbc() {
|
|
pkgdesc='ODBC modules for PHP'
|
|
depends=("${pkgbase}" 'unixodbc')
|
|
provides=("${_pkgbase}-odbc=$pkgver")
|
|
|
|
install -D -m755 ${srcdir}/build-php/modules/odbc.so ${pkgdir}/usr/lib/${pkgbase}/modules/odbc.so
|
|
install -D -m755 ${srcdir}/build-php/modules/pdo_odbc.so ${pkgdir}/usr/lib/${pkgbase}/modules/pdo_odbc.so
|
|
}
|
|
|
|
package_php56-pgsql() {
|
|
pkgdesc='PostgreSQL modules for PHP'
|
|
depends=("${pkgbase}" 'postgresql-libs')
|
|
provides=("${_pkgbase}-pgsql=$pkgver")
|
|
|
|
install -D -m755 ${srcdir}/build-php/modules/pgsql.so ${pkgdir}/usr/lib/${pkgbase}/modules/pgsql.so
|
|
install -D -m755 ${srcdir}/build-php/modules/pdo_pgsql.so ${pkgdir}/usr/lib/${pkgbase}/modules/pdo_pgsql.so
|
|
}
|
|
|
|
package_php56-pspell() {
|
|
pkgdesc='pspell module for PHP'
|
|
depends=("${pkgbase}" 'aspell')
|
|
provides=("${_pkgbase}-pspell=$pkgver")
|
|
|
|
install -D -m755 ${srcdir}/build-php/modules/pspell.so ${pkgdir}/usr/lib/${pkgbase}/modules/pspell.so
|
|
}
|
|
|
|
package_php56-snmp() {
|
|
pkgdesc='snmp module for PHP'
|
|
depends=("${pkgbase}" 'net-snmp')
|
|
provides=("${_pkgbase}-snmp=$pkgver")
|
|
|
|
install -D -m755 ${srcdir}/build-php/modules/snmp.so ${pkgdir}/usr/lib/${pkgbase}/modules/snmp.so
|
|
}
|
|
|
|
package_php56-sqlite() {
|
|
pkgdesc='sqlite module for PHP'
|
|
depends=("${pkgbase}" 'sqlite3')
|
|
provides=("${_pkgbase}-sqlite=$pkgver")
|
|
|
|
install -D -m755 ${srcdir}/build-php/modules/sqlite3.so ${pkgdir}/usr/lib/${pkgbase}/modules/sqlite3.so
|
|
install -D -m755 ${srcdir}/build-php/modules/pdo_sqlite.so ${pkgdir}/usr/lib/${pkgbase}/modules/pdo_sqlite.so
|
|
}
|
|
|
|
package_php56-xsl() {
|
|
pkgdesc='xsl module for PHP'
|
|
depends=("${pkgbase}" 'libxslt')
|
|
provides=("${_pkgbase}-xsl=$pkgver")
|
|
|
|
install -D -m755 ${srcdir}/build-php/modules/xsl.so ${pkgdir}/usr/lib/${pkgbase}/modules/xsl.so
|
|
}
|