############################################################################### # Generated by arch-phpbs: https://github.com/lamskoy/arch-phpbs # # Maintaining/co-maintaining on AUR: all packages from php56 up to php85 # # Thanks to: # # AUR php80 Co-maintainer: Timo Sarawinski # AUR php70 and php71 Co-maintainer: William Gathoye # AUR php74 Co-maintainer: Tomasz Gruszka # AUR php73 Co-maintainer: Matt Harrison # AUR php73 and php56 Contributor: Pierre Schmitz # AUR php56 Contributor: Chris Severance aur.severach aATt spamgourmet dott com # AUR php56 Contributor: Thore Bödecker # AUR php56 Contributor: Jörg Schuck # AUR php55 Contributor: Raphaël Doursenaud # AUR php53 Contriburor: Felix Yan ############################################################################### _phpbase="84" _suffix="" pkgver="8.4.27" pkgbase_rc="" pkgrel="1" pkgbase="php84" pkgdesc="PHP 8.4.27 compiled as to not conflict with mainline php" _cppflags=" -DU_USING_ICU_NAMESPACE=1 " _build_apache_cfg="etc/httpd/conf/extra" _build_bundled_gd="0" _build_conf_d="etc/php84/conf.d" _build_fpm_name="php-fpm84" _build_fpm_service_name="php84-fpm" _build_icu_src_dir="icu/source" _build_ini_per_sapi="0" _build_mysql_socket="/run/mysqld/mysqld.sock" _build_phpdbg="1" _build_sapi_ini_apache="etc/php84" _build_sapi_ini_cgi="etc/php84" _build_sapi_ini_cli="etc/php84" _build_sapi_ini_embed="etc/php84" _build_sapi_ini_fpm="etc/php84" _build_sapi_ini_litespeed="etc/php84" _build_sapi_ini_phpdbg="etc/php84" _build_sapi_litespeed="--enable-litespeed" _build_shared_gd="1" _build_shared_json="0" _build_shared_libedit="0" _build_shared_mysqlnd="1" _build_shared_openssl="1" _build_shared_pdo="1" _build_system_timezonedb="1" _build_update_sqlite="0" _build_uses_argon="1" _build_uses_lmdb="1" _priority_default="20" _priority_dom="16" _priority_json="15" _priority_mysqlnd="10" _priority_opcache="10" _priority_openssl="05" _priority_pdo="10" _priority_xml="15" _suffix="" _suffix_so="" pkgname=( "php84" "php84-cli" "php84-cgi" "php84-fpm" "php84-embed" "php84-apache" "php84-litespeed" "php84-pear" "php84-pecl" "php84-phpdbg" "php84-xml" "php84-xsl" "php84-xmlreader" "php84-xmlwriter" "php84-dom" "php84-simplexml" "php84-openssl" "php84-pdo" "php84-mysql" "php84-phar" "php84-pcntl" "php84-posix" "php84-shmop" "php84-sockets" "php84-sysvmsg" "php84-sysvsem" "php84-sysvshm" "php84-tokenizer" "php84-dba" "php84-pgsql" "php84-odbc" "php84-firebird" "php84-dblib" "php84-sqlite" "php84-gd" "php84-exif" "php84-tidy" "php84-iconv" "php84-bcmath" "php84-gmp" "php84-zip" "php84-bz2" "php84-fileinfo" "php84-ctype" "php84-mbstring" "php84-enchant" "php84-intl" "php84-calendar" "php84-gettext" "php84-soap" "php84-ftp" "php84-curl" "php84-snmp" "php84-ldap" "php84-sodium" "php84-ffi" "php84-opcache" ) source=( "make-tests.patch" "php-makefile-patcher.php" "php-apache.conf" "pear-config-patcher.php" "https://php.net/distributions/php-${pkgver}.tar.xz" "apache-php8.4.patch" "php-phpinfo-8.4.patch" "timezonedb-guess.patch" "timezonedb-php8.4.patch" ) depends=( ) makedepends=( "acl" "libtool" "autoconf" "automake" "patchelf" "gawk" "sed" "bash" "python" "libxml2" "pam" "krb5" "zlib" "libedit" "smtp-forwarder" "pcre" "apache" "ncurses" "libxcrypt" "systemd" "systemd-libs" "coreutils" "findutils" "argon2" "libxslt" "e2fsprogs" "openssl" "lmdb" "db5.3" "postgresql-libs" "unixodbc" "libfbclient" "freetds" "sqlite" "gd" "tidy" "gmp" "libzip" "oniguruma" "enchant" "libvoikko" "hspell" "hunspell" "nuspell" "aspell" "icu" "curl" "net-snmp" "libsasl" "libldap" "libsodium" "libffi" ) arch=( ) _patches=( "apache-php8.4.patch" "php-phpinfo-8.4.patch" "timezonedb-guess.patch" "timezonedb-php8.4.patch" ) _sapi_depends=( "libxml2" "pcre2" "libedit" "argon2" ) _ext_depends_snmp=( "php84=8.4.27" "net-snmp" "openssl" ) _ext_depends_ftp=( "php84=8.4.27" "openssl" ) _ext_depends_intl=( "php84=8.4.27" "icu" ) _ext_depends_imap=( ) _ext_depends_gd=( "php84=8.4.27" "gd" ) _ext_depends_mysql=( "php84=8.4.27" "php84-pdo=8.4.27" "php84-openssl=8.4.27" ) _ext_depends_dba=( "php84=8.4.27" "db5.3" "lmdb" ) _ext_depends_odbc=( "php84=8.4.27" "unixodbc" "php84-pdo=8.4.27" ) _ext_depends_pgsql=( "php84=8.4.27" "postgresql-libs" "php84-pdo=8.4.27" ) _ext_depends_firebird=( "php84=8.4.27" "libfbclient" "php84-pdo=8.4.27" ) _ext_depends_sqlite=( "php84=8.4.27" "sqlite" "php84-pdo=8.4.27" ) _ext_depends_mbstring=( "php84=8.4.27" "oniguruma" ) _ext_depends_openssl=( "php84=8.4.27" "krb5" "e2fsprogs" "openssl" ) _phpconfig="\ --prefix=/usr \ --sbindir=/usr/bin \ --localstatedir=/var \ --with-layout=GNU \ --disable-debug \ --mandir=/usr/share/man \ --srcdir=../php-${pkgver} \ --libdir=/usr/lib/php${_phpbase}${_suffix} \ --datadir=/usr/share/php${_phpbase}${_suffix} \ --program-suffix=${_phpbase}${_suffix} \ --with-config-file-scan-dir=/${_build_conf_d} \ --enable-filter \ --enable-session \ --with-pear \ --with-mhash=/usr \ --with-kerberos \ --with-mysql-sock=${_build_mysql_socket} \ --enable-mysqlnd-compression-support \ --datarootdir=/usr/share/php${_phpbase}${_suffix} \ --with-zlib \ --with-libxml \ --with-pcre-jit \ --with-external-pcre=/usr \ --with-password-argon2=/usr \ --disable-rpath \ --config-cache \ --with-system-tzdata \ --enable-phpdbg-readline \ --with-libedit" _phpextensions="\ --enable-xml=shared \ --with-xsl=shared \ --enable-xmlreader=shared \ --enable-xmlwriter=shared \ --enable-dom=shared \ --enable-simplexml=shared \ --with-openssl=shared \ --enable-pdo=shared \ --enable-mysqlnd=shared \ --with-mysqli=shared,mysqlnd \ --with-pdo-mysql=shared,mysqlnd \ --enable-phar=shared \ --enable-pcntl=shared \ --enable-posix=shared \ --enable-shmop=shared \ --enable-sockets=shared \ --enable-sysvmsg=shared \ --enable-sysvsem=shared \ --enable-sysvshm=shared \ --enable-tokenizer=shared --enable-dba=shared \ --with-db4=/usr \ --without-gdbm \ --with-cdb \ --with-lmdb=/usr \ --with-pgsql=shared,/usr \ --with-pdo-pgsql=shared,/usr \ --with-unixODBC=shared \ --with-pdo-odbc=shared,unixODBC,/usr \ --with-pdo-firebird=shared,/usr \ --with-pdo-dblib=shared,/usr \ --with-pdo-sqlite=shared,/usr \ --with-sqlite3=shared \ --enable-gd=shared \ --with-external-gd=/usr \ --with-jpeg \ --with-xpm \ --with-webp \ --with-freetype \ --enable-exif=shared \ --with-tidy=shared,/usr \ --with-iconv=shared \ --enable-bcmath=shared \ --with-gmp=shared,/usr \ --with-zip=shared \ --with-bz2=shared,/usr \ --enable-fileinfo=shared \ --enable-ctype=shared \ --enable-mbstring=shared \ --with-onig=/usr \ --enable-mbregex \ --with-enchant=shared \ --enable-intl=shared \ --enable-calendar=shared \ --with-gettext=shared,/usr \ --enable-soap=shared \ --enable-ftp=shared \ --with-curl=shared \ --with-snmp=shared,/usr \ --with-ldap=shared,/usr \ --with-ldap-sasl \ --with-sodium=shared \ --with-ffi=shared \ --enable-opcache \ --enable-huge-code-pages" _phpextensions_fpm="\ --with-fpm-user=http \ --with-fpm-group=http \ --with-fpm-systemd \ --with-fpm-acl" options=('!lto') arch=("$CARCH") checkdepends=('procps-ng' 'smtp-forwarder') license=('PHP') url='http://www.php.net' ################################################################################ # Prepare it ################################################################################ prepare() { pushd "php-${pkgver}" echo "[SED] scripts/phpize.in" sed -E "s|(includedir[\t ]*=.*/php)|\1${_phpbase}${_suffix}|g" \ -i scripts/phpize.in echo "[SED] scripts/phpize.m4" sed -e "s|\[php-config\]|\[php-config${_phpbase}${_suffix}\]|g" \ -e "s|\(PHP_ARG_WITH(\[php-config\)${_phpbase}${_suffix}\]|\1]|g" \ -e "s|php-config, no|php-config${_phpbase}${_suffix}, no|g" \ -i "scripts/phpize.m4" echo "[SED] scripts/Makefile.frag" sed -E "s|(phpincludedir[\t ]*=.*/php)|\1${_phpbase}${_suffix}|g" \ -i scripts/Makefile.frag echo "[SED] scripts/php-config.in" sed -E "s|(include_dir[\t ]*=.*php)|\1${_phpbase}${_suffix}|g" \ -i scripts/php-config.in if ((_phpbase < 84)); then echo "[SED] sapi/apache2handler/config.m4" sed -e '/APACHE_THREADED_MPM=/d' \ -i sapi/apache2handler/config.m4 fi echo "[SED] sapi/fpm/Makefile.frag" # sed -e 's#php-fpm\$(program_suffix)#php\$(program_suffix)-fpm#' sed -e 's/.conf.default/.conf/g' \ -i sapi/fpm/Makefile.frag echo "[SED] sapi/fpm/php-fpm.service.in" sed -E "s|ExecStart[\s]?=[\s]?@([a-zA-Z_]+)@/php-fpm|ExecStart=@\1@/${_build_fpm_name}|g; \ s|PIDFile[\s]?=[\s]?@([a-zA-Z_]+)@/run/php-fpm.pid|PIDFile=/run/${_build_fpm_service_name}/php-fpm.pid|g" \ -i sapi/fpm/php-fpm.service.in local _check_files=("sapi/fpm/www.conf.in" "sapi/fpm/php-fpm.conf.in"); for file_conf in "${_check_files[@]}"; do if [[ ! -f $file_conf ]]; then continue; fi echo "[SED] ${file_conf}" sed -e "s#^listen =.*#listen = /run/${_build_fpm_service_name}/php-fpm.sock#" \ -e "s#run/php-fpm.pid#/run/${_build_fpm_service_name}/php-fpm.pid#" \ -e 's#^;*[ \t]*listen.owner =#listen.owner =#' \ -e 's#^;*[ \t]*listen.group =#listen.group =#' \ -e 's#^;*[ \t]*error_log =.*#error_log = syslog#' \ -e 's#^;*[ \t]*chdir =.*#;chdir = /srv/http#' \ -i "${file_conf}" done echo "[SED] php.ini-production" sed -e 's#^;*[ \t]*extension_dir[\t ]*=.*/.*$#extension_dir = "___EXTENSIONDIR___"#' \ -e "s#___EXTENSIONDIR___#/usr/lib/${pkgbase}/modules#g" \ -e "s#^;*[ \t]*extension=#;extension=#g" \ -e "s#^;*[ \t]*session.save_path[\t ]*=.*#session.save_path=___SESSIONS___#g" \ -e "s#___SESSIONS___#/var/lib/${pkgbase}/sessions#g" \ -i php.ini-production for patch_name in "${_patches[@]}"; do echo "[PATCH] Applying source patch ${patch_name}"; patch -Np1 -i "../${patch_name}" done ./buildconf --force rm -f tests/output/stream_isatty_*.phpt rm -f Zend/tests/arginfo_zpp_mismatch*.phpt rm -f Zend/tests/bug79919.phpt popd } _build_sapi() { _sapi="${1}" _commands="${2}" if (( _sapi == "cli" )); then if [[ ! -d "build-${_sapi}" ]]; then mkdir "build-${_sapi}" fi pushd "build-${_sapi}" if [[ -L configure ]]; then rm configure fi ln -s "../php-${pkgver}/configure" popd else cp -Ta "build-cli" "build-${_sapi}" fi pushd "build-${_sapi}" ./configure ${_phpconfig} ${_commands} patch -Np1 -i "${srcdir}/make-tests.patch" if (($_sapi != "cli")); then make clean elif ((_phpbase < 82)); then sed -i 's/\(-Iext\/intl\/.*\)-std=c++11\(.*\)/\1-std=c++17\2/g' Makefile fi sed -i -e 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' \ -e 's|^runpath_var=LD_RUN_PATH|runpath_var=LIBTOOL_IS_BROKED|g' \ libtool make popd } ################################################################################ # BUILD them all ################################################################################ build() { if ((_phpbase <= 80)); then export CFLAGS="${CFLAGS} -fPIC -std=gnu99 -Wno-error=incompatible-pointer-types -Wno-implicit-function-declaration -fpermissive" export CXXFLAGS="${CXXFLAGS} -fPIC -Wno-error=incompatible-pointer-types -std=c++17 -Wno-implicit-function-declaration -fpermissive" else export CFLAGS="${CFLAGS} -fPIC -Wno-error=incompatible-pointer-types" export CXXFLAGS="${CXXFLAGS} -fPIC -Wno-error=incompatible-pointer-types -std=c++17" fi export EXTENSION_DIR="/usr/lib/${pkgbase}/modules" if [[ ! -z "${_cppflags}" ]]; then CPPFLAGS+=" $_cppflags " fi if ((_build_ini_per_sapi)); then # CLI _cli_addons='' # CGI enabled here only for tests passing, then overriden later by cgi build _cli_addons+=" --enable-cgi " _build_sapi "cli" "\ --sysconfdir=/${_build_sapi_ini_cli} \ --with-config-file-path=/${_build_sapi_ini_cli} \ --enable-cli \ ${_phpextensions} \ ${_cli_addons} \ --disable-fpm \ --disable-embed \ --disable-phpdbg \ " # phpdbg if ((_build_phpdbg)); then _sapi="phpdbg" _build_sapi "phpdbg" "\ --sysconfdir=/${_build_sapi_ini_phpdbg} \ --with-config-file-path=/${_build_sapi_ini_phpdbg} \ --disable-all \ --enable-phpdbg \ --disable-cgi \ --disable-cli \ --disable-fpm \ --disable-embed \ " fi # embed _build_sapi "embed" "\ --sysconfdir=/${_build_sapi_ini_embed} \ --with-config-file-path=/${_build_sapi_ini_embed} \ --disable-all \ --enable-embed=shared \ --disable-cgi \ --disable-cli \ --disable-fpm \ --disable-phpdbg \ " # cgi _build_sapi "cgi" "\ --sysconfdir=/${_build_sapi_ini_cgi} \ --with-config-file-path=/${_build_sapi_ini_cgi} \ --disable-all \ --enable-cgi \ --disable-cli \ --disable-fpm \ --disable-embed \ --disable-phpdbg \ " # litespeed _cflags="${CFLAGS}" export CFLAGS="${CFLAGS} -Wno-error=format-security" _build_sapi "litespeed" "\ --sysconfdir=/${_build_sapi_ini_litespeed} \ --with-config-file-path=/${_build_sapi_ini_litespeed} \ --disable-all \ --disable-cgi \ --disable-cli \ --disable-fpm \ --disable-embed \ --disable-phpdbg \ ${_build_sapi_litespeed} \ " export CFLAGS="${_cflags}" # fpm _build_sapi "fpm" "\ --sysconfdir=/${_build_sapi_ini_fpm} \ --with-config-file-path=/${_build_sapi_ini_fpm} \ --disable-all \ --enable-fpm \ ${_phpextensions_fpm} \ --disable-cli \ --disable-cgi \ --disable-embed \ --disable-phpdbg \ " else # CLI if ((_build_phpdbg)); then _cli_addons+=" --enable-phpdbg " fi _build_sapi "cli" "\ --sysconfdir=/${_build_sapi_ini_cli} \ --with-config-file-path=/${_build_sapi_ini_cli} \ --enable-cli \ ${_phpextensions} \ ${_cli_addons} \ --enable-fpm \ --enable-cgi \ --enable-embed=shared \ --enable-fpm \ ${_phpextensions_fpm} \ ${_build_sapi_litespeed} \ " fi # apache _build_sapi "apache" "\ --disable-all \ --disable-cli \ --disable-cgi \ --disable-fpm \ --disable-embed \ --disable-phpdbg \ --with-apxs2 \ --sysconfdir=/${_build_sapi_ini_apache} \ --with-config-file-path=/${_build_sapi_ini_apache} \ " } check() { export CFLAGS="${CFLAGS} -fPIC" export CXXFLAGS="${CXXFLAGS} -fPIC" pushd "build-cli" # Check if sendmail was configured correctly (FS#47600) export REPORT_EXIT_STATUS=1 export NO_INTERACTION=1 export SKIP_ONLINE_TESTS=1 export SKIP_SLOW_TESTS=1 export TESTS='tests Zend' if ((_phpbase > 73)); then export TEST_PHP_ARGS="-j$(nproc)" fi # Patch tests to run PHP modules in needed order sapi/cli/php -n ../php-makefile-patcher.php Makefile make test || : popd } ################################################################################ # Custom code ################################################################################ _install_module_ini() { local extension=$(echo "${1}" | sed 's/\.so//') local priority="${_priority_default}" case "${extension}" in "json") priority="${_priority_json}" ;; "xml") priority="${_priority_xml}" ;; "openssl") priority="${_priority_openssl}" ;; "mysqlnd") priority="${_priority_mysqlnd}" ;; "pdo") priority="${_priority_pdo}" ;; "opcache") priority="${_priority_opcache}" ;; "dom") priority="${_priority_dom}" ;; esac local extension_type="extension" case "${extension}" in "opcache" | "xdebug") extension_type="zend_extension" ;; "recode") extension_type=";extension" ;; esac if [[ ! -d "${pkgdir}/${_build_conf_d}" ]]; then mkdir -p "${pkgdir}/${_build_conf_d}" fi echo "${extension_type}=${extension}.so" > "${pkgdir}/${_build_conf_d}/${priority}-${extension}.ini" chmod 0644 "$pkgdir/${_build_conf_d}/${priority}-${extension}.ini" _last_priority=${priority} _last_extension=${extension} } _install_module() { if [[ -f "build-cli/modules/${1}.so" ]]; then install -D -m755 "build-cli/modules/${1}.so" "${pkgdir}/usr/lib/${pkgbase}/modules/${1}.so"; _install_module_ini "${1}" else echo "[DEBUG]: Install_module can't find ${1}.so, skipped" fi } ############################################################################### # PHP: SAPI's ############################################################################### # Main package package_php84() { # Binary names pkgdesc='PHP. A general-purpose scripting language that is especially suited to web development' depends=('zlib' 'pcre' 'libedit') # Install session dir install -d -m1733 "${pkgdir}/var/lib/${pkgbase}/sessions" # conf.d dir with shared modules install -d -m755 "${pkgdir}/${_build_conf_d}/" pushd "build-cli" make -j1 INSTALL_ROOT=${pkgdir} install-{modules,build,headers,programs} # Cleanup for CGI" rm -rf "${pkgdir}/usr/bin/${pkgbase}-cgi" popd pushd "${pkgdir}/usr/lib/${pkgbase}/modules/" # remove static modules rm -f *.a # remove modules provided by subpackages rm -f {enchant,imap,intl,pspell,snmp,tidy,curl,ldap,bz2,bcmath,soap,zip,gmp,dba,opcache,json,gd,mcrypt,sodium,recode}.so rm -f {pdo_dblib,mssql}.so rm -f {dom,simplexml,xml,xmlreader,xmlwriter,xsl,wddx,xmlrpc}.so rm -f {pgsql,pdo_pgsql}.so rm -f {odbc,pdo_odbc}.so rm -f {pdo_sqlite,sqlite3}.so rm -f {pdo_firebird.so,interbase.so} rm -f {mysqli,pdo_mysql,mysqlnd,mysql}.so rm -f {openssl,ffi,pcntl,ftp,calendar,ctype,fileinfo,iconv,mbstring,exif,pdo,phar,posix,shmop}.so rm -f {sockets,tokenizer,gettext,sysvmsg,sysvsem,sysvshm}.so popd pushd build-cli if (( ! _build_ini_per_sapi )); then backup=("${_build_sapi_ini_cli}/php.ini") install -d -m755 "${pkgdir}/${_build_sapi_ini_cli}" install -D -m644 "../php-${pkgver}/php.ini-production" "${pkgdir}/${_build_sapi_ini_cli}/php.ini" fi popd } # Cli + phar package_php84-cli() { _sapi="cli" pkgdesc="cli (command-line executable) version for ${pkgbase}" depends=("${pkgbase}=${pkgver}") depends+=("${_sapi_depends[@]}") pushd "build-${_sapi}" make -j1 INSTALL_ROOT="${pkgdir}" install-cli make -j1 INSTALL_ROOT="${pkgdir}" install-pharcmd if ((_build_ini_per_sapi)); then backup=("${_build_sapi_ini_cli}/php.ini") install -d -m755 "${pkgdir}/${_build_sapi_ini_cli}" install -D -m644 "../php-${pkgver}/php.ini-production" "${pkgdir}/${_build_sapi_ini_cli}/php.ini" fi # Cleanup for CGI rm -rf "${pkgdir}/usr/bin/${pkgbase}-cgi" popd } # End cli # CGI package_php84-cgi() { _sapi="cgi" pkgdesc="CGI and FCGI SAPI for ${pkgbase}" depends=("${pkgbase}=${pkgver}") depends+=("${_sapi_depends[@]}") if ((_build_ini_per_sapi)); then pushd "build-${_sapi}" else pushd "build-cli" fi if ((_build_ini_per_sapi)); then install -D -m644 "../php-${pkgver}/php.ini-production" "${pkgdir}/${_build_sapi_ini_cgi}/php.ini" backup=("${_build_sapi_ini_cgi}/php.ini") fi make -j1 INSTALL_ROOT="${pkgdir}" install-cgi popd } # CGI end # Apache package_php84-apache() { _sapi="apache" _build_mod_php_so="libphp${_suffix_so}.so" _build_mod_php_module="php${_suffix_so}_module" _build_build_php_script_name="php${_suffix_so}-script" _apache_module_conf="${pkgbase}-module.conf" pkgdesc="Apache SAPI for ${pkgbase}" depends=("${pkgbase}=${pkgver}" 'apache') depends+=("${_sapi_depends[@]}") depends+=('libxcrypt'); depends+=('ncurses'); backup=("${_build_apache_cfg}/${_apache_module_conf}") echo "# End of LoadModule in httpd.conf - see ArchWiki Apache HTTP Server" echo "LoadModule ${_build_mod_php_module} modules/lib${pkgbase}.so" echo "AddHandler ${_build_php_script_name} .php" echo "# End of Include List" echo "Include conf/extra/${_apache_module_conf}" pushd "build-${_sapi}" if ((_build_ini_per_sapi)); then backup+=("${_build_sapi_ini_apache}/php.ini") install -d -m755 "${pkgdir}/${_build_sapi_ini_apache}" install -D -m644 "../php-${pkgver}/php.ini-production" "${pkgdir}/${_build_sapi_ini_apache}/php.ini" fi install -D -m755 "libs/${_build_mod_php_so}" "${pkgdir}/usr/lib/httpd/modules/lib${pkgbase}.so" patchelf --set-soname \ "lib${pkgbase}.so" \ "${pkgdir}/usr/lib/httpd/modules/lib${pkgbase}.so" popd install -D -m644 "php-apache.conf" "${pkgdir}/${_build_apache_cfg}/${_apache_module_conf}" echo "[SED] ${pkgdir}/${_build_apache_cfg}/${_apache_module_conf}" sed -e "s#@MODULE@#${_build_mod_php_module}#" \ -i "${pkgdir}/${_build_apache_cfg}/${_apache_module_conf}" } # Apache end # FPM package_php84-fpm() { _sapi="fpm" install="php-fpm.install" pkgdesc="FastCGI Process Manager for ${pkgbase}" depends=("${pkgbase}=${pkgver}" 'systemd-libs' 'acl') depends+=("${_sapi_depends[@]}") backup=("${_build_sapi_ini_fpm}/php-fpm.conf") if ((_phpbase >= 70)); then backup+=("${_build_sapi_ini_fpm}/php-fpm.d/www.conf") fi options=('!emptydirs') if ((_build_ini_per_sapi)); then pushd "build-${_sapi}" else pushd "build-cli" fi if ((_build_ini_per_sapi)); then backup+=("${_build_sapi_ini_fpm}/php.ini") install -d -m755 "${pkgdir}/${_build_sapi_ini_fpm}/" install -D -m644 "../php-${pkgver}/php.ini-production" "${pkgdir}/${_build_sapi_ini_fpm}/php.ini" fi make -j1 INSTALL_ROOT="${pkgdir}" install-fpm install -D -m644 "sapi/fpm/php-fpm.service" "${pkgdir}/usr/lib/systemd/system/${_build_fpm_service_name}.service" echo "d /run/${_build_fpm_service_name} 755 root root" > php-fpm.tmpfiles install -D -m644 "php-fpm.tmpfiles" "${pkgdir}/usr/lib/tmpfiles.d/${_build_fpm_service_name}.conf" popd } # FPM end # embed sapi package_php84-embed() { _sapi="embed" pkgdesc="Embedded PHP SAPI library for ${pkgbase}" depends=("${pkgbase}=${pkgver}" 'ncurses' 'systemd-libs' 'libxcrypt' 'acl' 'ncurses') depends+=("${_sapi_depends[@]}") options=('!emptydirs') if ((_build_ini_per_sapi)); then pushd "build-${_sapi}" else pushd "build-cli" fi install -d -m755 "${pkgdir}/${_build_sapi_ini_embed}" if ((_build_ini_per_sapi)); then install -D -m644 "../php-${pkgver}/php.ini-production" "${pkgdir}/${_build_sapi_ini_embed}/php.ini" backup=("${_build_sapi_ini_embed}/php.ini") fi make -j1 INSTALL_ROOT="${pkgdir}" PHP_SAPI=embed install-sapi if ((_phpbase < 84)); then mv "${pkgdir}/usr/lib/libphp${_suffix_so}.so" "${pkgdir}/usr/lib/lib${pkgbase}.so" else mv "${pkgdir}/usr/lib/${pkgbase}/libphp${_suffix_so}.so" "${pkgdir}/usr/lib/lib${pkgbase}.so" fi popd patchelf --set-soname "lib${pkgbase}.so" "${pkgdir}/usr/lib/lib${pkgbase}.so" } # embed sapi end # phpdbg sapi package_php84-phpdbg() { _sapi="phpdbg" options=('!emptydirs') pkgdesc="Interactive PHP debugger for ${pkgbase}" depends=("${pkgbase}=${pkgver}") depends+=("${_sapi_depends[@]}") if ((_build_ini_per_sapi)); then pushd "build-${_sapi}" else pushd "build-cli" fi if ((_build_ini_per_sapi)); then backup=("${_build_sapi_ini_phpdbg}/php.ini") install -d -m755 "${pkgdir}/${_build_sapi_ini_phpdbg}" install -D -m644 "../php-${pkgver}/php.ini-production" "${pkgdir}/${_build_sapi_ini_phpdbg}/php.ini" fi make -j1 INSTALL_ROOT="${pkgdir}" "install-${_sapi}" popd } # phpdbg sapi end # litespeed sapi package_php84-litespeed() { _sapi="litespeed" pkgdesc="LiteSpeed SAPI for ${pkgbase}" depends=("${pkgbase}=${pkgver}") depends+=("${_sapi_depends[@]}") if ((_build_ini_per_sapi)); then pushd "build-${_sapi}" else pushd "build-cli" fi if ((_build_ini_per_sapi)); then install -D -m644 "../php-${pkgver}/php.ini-production" "${pkgdir}/${_build_sapi_ini_cgi}/php.ini" backup=("${_build_sapi_ini_cgi}/php.ini") fi case "${_phpbase}" in 85|84|83) install -D -m755 sapi/litespeed/lsphp "${pkgdir}/usr/bin/ls${pkgbase}" ;; *) install -D -m755 sapi/litespeed/php "${pkgdir}/usr/bin/ls${pkgbase}" ;; esac popd } # litespeed sapi end ############################################################################### # PEAR + PECL ############################################################################### # PEAR package_php84-pear() { pkgdesc="PHP Extension and Application Repository (PEAR) for ${pkgbase}" depends=( "${pkgbase}=${pkgver}" "php${_phpbase}-xml${_suffix}=${pkgver}" "php${_phpbase}-cli${_suffix}=${pkgver}" "php${_phpbase}-phar${_suffix}=${pkgver}" ) #backup=("${_build_sapi_ini_cli}/pear.conf") install -d "${pkgdir}/usr/share/${pkgbase}/pear/htdocs" install -d "${pkgdir}/usr/share/${pkgbase}/pear/data" install -d "${pkgdir}/usr/share/${pkgbase}/pear/doc" install -d "${pkgdir}/usr/share/${pkgbase}/pear/test" install -d "${pkgdir}/usr/share/${pkgbase}/pear/cfg" install -d "${pkgdir}/var/lib/${pkgbase}/pear/cache" install -d "${pkgdir}/var/lib/${pkgbase}/pear/metadata" install -d "${pkgdir}/var/lib/${pkgbase}/pear/download" install -d "${pkgdir}/var/lib/${pkgbase}/pear/temp" export PHP_PEAR_SYSCONF_DIR="${_build_sapi_ini_cli}" pushd build-cli cp "${srcdir}/php-${pkgver}/pear/install-pear-nozlib.phar" "pear/install-pear-nozlib.phar" INSTALL_ROOT="${pkgdir}/" ./sapi/cli/php -n \ -d extension=modules/xml.so \ -d extension=modules/phar.so \ -d date.timezone=UTC -d memory_limit=64M -d short_open_tag=0 -d safe_mode=0 \ -d 'error_reporting=E_ALL&~E_DEPRECATED' -d detect_unicode=0 "pear/install-pear-nozlib.phar" \ -ds "${_phpbase}${_suffix}" \ --php "/usr/bin/${pkgbase}" \ --bin "/usr/bin" \ --man "/usr/share/man" \ --dir "/usr/share/${pkgbase}/pear" \ --data "/usr/share/${pkgbase}/pear/data" \ --doc "/usr/share/${pkgbase}/pear/doc" \ --test "/usr/share/${pkgbase}/pear/test" \ --www "/usr/share/${pkgbase}/pear/htdocs" \ --config "/usr/share/${pkgbase}/pear/cfg" \ --force # fix pear.conf with unserialize # first arg: path to pear.conf # second arg: PEAR base /var path ./sapi/cli/php -n ../pear-config-patcher.php \ "${pkgdir}/${_build_sapi_ini_cli}/pear.conf" \ "/var/lib/${pkgbase}/pear" popd # remove unneeded files rm -rf "${pkgdir}"/.{channels,depdb,depdblock,filemap,lock,registry} #rename binaries for i in pear peardev pecl; do _target="${pkgbase/php/$i}" # fix hardcoded paths sed "s|PHP=php|PHP=\"/usr/bin/${pkgbase}\"|g; s|\"/usr/bin/php\"|\"/usr/bin/${pkgbase}\"|g; s| -n | |g" \ -i "${pkgdir}/usr/bin/${i}" if [[ "$i" == "pecl" ]]; then echo "Moving ${pkgdir}/usr/bin/${i} => ${srcdir}/${pkgbase}-pecl-bin/" mkdir -p "${srcdir}/${pkgbase}-pecl-bin/" mv "${pkgdir}/usr/bin/pecl" "${srcdir}/${pkgbase}-pecl-bin/" else echo "Moving ${pkgdir}/usr/bin/${i} => ${pkgdir}/usr/bin/${_target}" mv "${pkgdir}/usr/bin/${i}" "${pkgdir}/usr/bin/${_target}" fi done } # PEAR end # PECL package_php84-pecl() { pkgdesc="PHP Extension Community Library (PECL) for ${pkgbase}" depends=("php${_phpbase}-pear${_suffix}=${pkgver}") _target="${pkgbase/php/pecl}" install -D -m755 "${srcdir}/${pkgbase}-pecl-bin/pecl" "${pkgdir}/usr/bin/${_target}" } ############################################################################### # PHP Modules: First need ############################################################################### # OpenSSL package_php84-openssl() { pkgdesc="OpenSSL module for php84" depends=("${_ext_depends_openssl[@]}") _install_module openssl } # Json package_php84-json() { pkgdesc="json module for php84" depends=("php84=${pkgver}") _install_module json } # pdo package_php84-pdo() { pkgdesc="pdo module for php84" depends=("php84=${pkgver}") _install_module pdo } # mbstring package_php84-mbstring() { pkgdesc="mbstring module for php84" depends=("${_ext_depends_mbstring[@]}") _install_module mbstring } # phar package_php84-phar() { pkgdesc="phar module for php84" depends=("php84=${pkgver}") _install_module phar } ############################################################################### # PHP modules: XML ############################################################################### # XML modules combined package package_php84-xml() { pkgdesc="xml modules for php84" depends=("php84=${pkgver}" 'libxml2') _install_module xml } package_php84-wddx() { pkgdesc="wddx module for php84" depends=("php${_phpbase}-xml${_suffix}=${pkgver}") _install_module wddx } package_php84-simplexml() { pkgdesc="simplexml module for php84" depends=("php${_phpbase}-xml${_suffix}=${pkgver}") _install_module simplexml } package_php84-dom() { pkgdesc="dom module for php84" depends=("php${_phpbase}-xml${_suffix}=${pkgver}") _install_module dom } package_php84-xmlreader() { pkgdesc="xmlreader module for php84" depends=("php${_phpbase}-xml${_suffix}=${pkgver}") _install_module xmlreader } package_php84-xmlwriter() { pkgdesc="xmlwriter module for php84" depends=("php${_phpbase}-xml${_suffix}=${pkgver}") _install_module xmlwriter } # Tidy package_php84-tidy() { pkgdesc="tidy module for php84" depends=("php84=${pkgver}" 'tidy') _install_module tidy } # XSL package_php84-xsl() { pkgdesc="xsl module for php84" depends=("php${_phpbase}-xml${_suffix}=${pkgver}" "php${_phpbase}-dom${_suffix}=${pkgver}") depends+=('libxslt') _install_module xsl } ############################################################################### # PHP modules: Databases ############################################################################### # MySQL package_php84-mysql() { pkgdesc="MySQL modules for php84" depends=("${_ext_depends_mysql[@]}") _install_module mysqlnd _install_module mysql _install_module mysqli _install_module pdo_mysql } # pdo_sqlite + sqlite3 package_php84-sqlite() { pkgdesc="sqlite module for php84" depends=("${_ext_depends_sqlite[@]}") _install_module sqlite3 _install_module pdo_sqlite } # ODBC package_php84-odbc() { pkgdesc="ODBC modules for php84" depends=("${_ext_depends_odbc[@]}") _install_module odbc _install_module pdo_odbc } # PostgreSQL package_php84-pgsql() { pkgdesc="PostgreSQL modules for php84" depends=("${_ext_depends_pgsql[@]}") _install_module pgsql _install_module pdo_pgsql } # interbase package_php84-interbase() { pkgdesc="interbase module for php84" depends=("php84=${pkgver}" "libfbclient") _install_module interbase } # firebird package_php84-firebird() { pkgdesc="pdo_firebird module for php84" depends=("${_ext_depends_firebird[@]}") _install_module pdo_firebird } # pdo_dblib package_php84-dblib() { depends=("php84=${pkgver}" 'freetds') pkgdesc="pdo_dblib module for php84" _install_module pdo_dblib } # mssql package_php84-mssql() { depends=("php84=${pkgver}" 'freetds') pkgdesc="mssql module for php84" _install_module mssql } # Dba package_php84-dba() { pkgdesc="dba module for php84" depends=("${_ext_depends_dba[@]}") _install_module dba } ############################################################################### # PHP Modules: internationalization, text, datetime ############################################################################### # Intl package_php84-intl() { pkgdesc="intl module for php84" depends=("${_ext_depends_intl[@]}") _install_module intl } # Recode package_php84-recode() { pkgdesc="recode module for php84" depends=("php84=${pkgver}" 'recode') _install_module recode } # gettext package_php84-gettext() { pkgdesc="gettext module for php84" depends=("php84=${pkgver}") _install_module gettext } # iconv package_php84-iconv() { pkgdesc="iconv module for php84" depends=("php84=${pkgver}") _install_module iconv } # calendar package_php84-calendar() { pkgdesc="calendar module for php84" depends=("php84=${pkgver}") _install_module calendar } ############################################################################### # PHP Modules: multimedia ############################################################################### # GD package_php84-gd() { pkgdesc="gd module for php84" depends=("${_ext_depends_gd[@]}") _install_module gd } # exif package_php84-exif() { pkgdesc="exif module for php84" depends=("php84=${pkgver}") _install_module exif } # fileinfo package_php84-fileinfo() { pkgdesc="fileinfo module for php84" depends=("php84=${pkgver}") _install_module fileinfo } ############################################################################### # PHP modules: math ############################################################################### # bcmath package_php84-bcmath() { pkgdesc="bcmath module for php84" depends=("php84") _install_module bcmath } # gmp package_php84-gmp() { pkgdesc="gmp module for php84" depends=("php84=${pkgver}" 'gmp') _install_module gmp } ############################################################################### # PHP modules: spell checking ############################################################################### # Enchant package_php84-enchant() { pkgdesc="enchant module for php84" depends=("php84=${pkgver}" 'enchant' 'libvoikko' 'hspell' 'hunspell' 'nuspell' 'aspell') _install_module enchant } # Pspell package_php84-pspell() { pkgdesc="pspell module for php84" depends=("php84=${pkgver}" 'aspell') _install_module pspell } ############################################################################### # PHP modules: compression ############################################################################### # bz2 package_php84-bz2() { pkgdesc="bz2 module for php84" depends=("php84=${pkgver}" 'bzip2') _install_module bz2 } # Zip package_php84-zip() { pkgdesc="zip module for php84" depends=("php84=${pkgver}" 'libzip') _install_module zip } ############################################################################### # PHP modules: network client/servers ############################################################################### # curl package_php84-curl() { pkgdesc="curl module for php84" depends=("php84=${pkgver}" "curl") _install_module curl } # SOAP package_php84-soap() { pkgdesc="soap module for php84" depends=("php84=${pkgver}" 'libxml2') _install_module soap } # FTP package_php84-ftp() { pkgdesc="FTP module for php84" depends=("${_ext_depends_ftp[@]}") _install_module ftp } # ldap package_php84-ldap() { pkgdesc="ldap module for php84" depends=("php84=${pkgver}" 'libldap' 'libsasl') _install_module ldap } # SNMP package_php84-snmp() { pkgdesc="snmp module for php84" depends=("${_ext_depends_snmp[@]}") _install_module snmp } # XML-RPC package_php84-xmlrpc() { pkgdesc="xmlrpc module for php84" depends=("php84=${pkgver}" 'libxml2') _install_module xmlrpc } # Imap package_php84-imap() { pkgdesc="imap module for php84" depends=("${_ext_depends_imap[@]}") _install_module imap } # sockets package_php84-sockets() { pkgdesc="sockets module for php84" depends=("php84=${pkgver}") _install_module sockets } ############################################################################### # PHP Modules: cryptography ############################################################################### # Sodium package_php84-sodium() { pkgdesc="sodium (libsodium) module for php84" depends=("php84=${pkgver}" "libsodium") _install_module sodium } # Mcrypt package_php84-mcrypt() { pkgdesc="mcrypt module for php84" depends=("php84=${pkgver}" 'libmcrypt') _install_module mcrypt } ############################################################################### # PHP Zend modules: opcache/jit ############################################################################### # Opcache package_php84-opcache() { pkgdesc="opcache zend module for php84" depends=("php84=${pkgver}") _install_module opcache } ############################################################################### # PHP posix, pcntl, shmop and System V modules ############################################################################### # posix package_php84-posix() { pkgdesc="posix module for php84" depends=("php84=${pkgver}") _install_module posix } # pcntl package_php84-pcntl() { pkgdesc="pcntl module for php84" depends=("php84=${pkgver}") _install_module pcntl } # shmop package_php84-shmop() { pkgdesc="shmop module for php84" depends=("php84=${pkgver}") _install_module shmop } # sysvmsg package_php84-sysvmsg() { pkgdesc="sysvmsg module for php84" depends=("php84=${pkgver}") _install_module sysvmsg } # sysvsem package_php84-sysvsem() { pkgdesc="sysvsem module for php84" depends=("php84=${pkgver}") _install_module sysvsem } # sysvshm package_php84-sysvshm() { pkgdesc="sysvshm module for php84" depends=("php84=${pkgver}") _install_module sysvshm } ############################################################################### # PHP Misc modules ############################################################################### # Ffi package_php84-ffi() { pkgdesc="ffi module for php84" depends=("php84=${pkgver}" 'libffi') _install_module ffi } # ctype package_php84-ctype() { pkgdesc="ctype module for php84" depends=("php84=${pkgver}") _install_module ctype } # tokenizer package_php84-tokenizer() { pkgdesc="tokenizer module for php84" depends=("php84=${pkgver}") _install_module tokenizer } # libedit/readline package_php84-readline() { pkgdesc="readline (libedit version) module for php84" depends=("php84=${pkgver}" 'libedit') _install_module readline } sha256sums=('e6b8530d747000eebb0089249ec70a3b14add7b501337046700544883f62b17b' 'ba72fc64f77822755a469314160d5889d5298f4eb5758dd7939dac9b811afe52' '6d0ad9becb5470ce8e5929d7d45660b0f32579038978496317544c5310281a91' '0b7e98dca9c996ec10cb9b3f6296bb7547c68797fd5f35006fdfd3e97700672d' 'dcf93923b0e38e0d5252b25b796520b5a47761a08b3488b6d0b5d1115764d3f0' '6f674d415bf54d60a2ee3bdeadd43e8e754fb2ec8b13476f9a8d0faa67011103' 'c537b06cc5d2645b566021d038f28bc32c4037efc3605023b3d37196b3b744cc' '40bcc1e5058602302198d0925e431495391d8469499593af477f59d84d32f764' '267c8ea589c2aec13e481ebfa2ae2e78176ce070000ed25fbc613ab52abd4e21')