From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 82CCA138334 for ; Fri, 1 Feb 2019 17:27:10 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 80D37E08A6; Fri, 1 Feb 2019 17:27:09 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [IPv6:2001:470:ea4a:1:5054:ff:fec7:86e4]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 41524E08A6 for ; Fri, 1 Feb 2019 17:27:09 +0000 (UTC) Received: from oystercatcher.gentoo.org (unknown [IPv6:2a01:4f8:202:4333:225:90ff:fed9:fc84]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id F256233BE65 for ; Fri, 1 Feb 2019 17:27:06 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id 0037F4FA for ; Fri, 1 Feb 2019 17:27:04 +0000 (UTC) From: "Brian Evans" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Brian Evans" Message-ID: <1549041992.41637f49b3a345f3183737bee81550d1645f8fcf.grknight@gentoo> Subject: [gentoo-commits] repo/gentoo:master commit in: dev-lang/php/ X-VCS-Repository: repo/gentoo X-VCS-Files: dev-lang/php/Manifest dev-lang/php/php-5.6.38.ebuild dev-lang/php/php-7.1.22.ebuild dev-lang/php/php-7.2.10.ebuild X-VCS-Directories: dev-lang/php/ X-VCS-Committer: grknight X-VCS-Committer-Name: Brian Evans X-VCS-Revision: 41637f49b3a345f3183737bee81550d1645f8fcf X-VCS-Branch: master Date: Fri, 1 Feb 2019 17:27:04 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: 5c8bec9c-9546-4938-96a2-6236f4869a4f X-Archives-Hash: 4459fae25a9c8f20918f6dfbceb653e7 commit: 41637f49b3a345f3183737bee81550d1645f8fcf Author: Brian Evans gentoo org> AuthorDate: Fri Feb 1 17:26:32 2019 +0000 Commit: Brian Evans gentoo org> CommitDate: Fri Feb 1 17:26:32 2019 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=41637f49 dev-lang/php: Clean up security vulnerable versions Bug: https://bugs.gentoo.org/675182 Closes: https://bugs.gentoo.org/674372 Package-Manager: Portage-2.3.59, Repoman-2.3.12 Signed-off-by: Brian Evans gentoo.org> dev-lang/php/Manifest | 3 - dev-lang/php/php-5.6.38.ebuild | 777 ----------------------------------------- dev-lang/php/php-7.1.22.ebuild | 729 -------------------------------------- dev-lang/php/php-7.2.10.ebuild | 741 --------------------------------------- 4 files changed, 2250 deletions(-) diff --git a/dev-lang/php/Manifest b/dev-lang/php/Manifest index 9a30646c78a..0197e3ec413 100644 --- a/dev-lang/php/Manifest +++ b/dev-lang/php/Manifest @@ -1,10 +1,7 @@ DIST php-5.6-openssl-1.1-compatibility.patch 42559 BLAKE2B b7f13866cd8545543143932930f31bcd928fa0b4b36ef63f04798b9ef4699f12b4f4227772ac9e6e5c498aaeacf7b106abcfa48031a12214e123de4b79d3a4cd SHA512 eed695a3dd7ce27e8651b4a4b96ccd0514f256e7d2f0214fac899e9eeea6412aa24f863f1b5d13305bcac50667ccb62709597fb34da1002b005ebf411dd2f5df -DIST php-5.6.38.tar.xz 12467408 BLAKE2B d9ee47e193d80bce8a9ed6ffd3eb13e67ba6d1f597ece2803cd92fddc6245f46cdfe644d6cda12a6bb409b92c1fe748610cc5eb43dea0bf063fda81188ee8b3d SHA512 66c51a8e954b1496c0bad0a2864a2a1537dd1c1c573b553991d6d5bce85fc7bc340e56a21109bc5e9a03799e703204b980b569c95a5c0a1bddb01c8947e7a682 DIST php-5.6.40.tar.xz 12472236 BLAKE2B f41147eaec9b15e965540f9e871691cc88848dd619bae6af85e7bba0130b71ce91bad5cdbbadbb537c42df83369f5c731007339a9d9e21e689e913c135201afc SHA512 997b5a952a60cf9166671cc91fcc34c674dd62bfd5cb0a9cdf3fdf2d088b5d19943d94c1cf193f8ab71fc4957d9a9a4c7c2fb8826f937501c1c0a0858f10e329 DIST php-7.0.32.tar.xz 12030780 BLAKE2B 0c277eac4c931a6e30954cceb7feef8dea1c3ef4aebac91779b7e1a6f90f608faa93d1750a2dc8f354c73304e0f7a9b9ac17bb0d1da4768ddb68925752c11aef SHA512 4a7c9a6b91ad7da69303916202062d639e6f02dcd483e851a44d8c7a2efeb5c9a666097935ab60d700c4445f86a0c68df1515300c57af1cdb76528b54b757608 DIST php-7.0.33.tar.xz 12033040 BLAKE2B cb7a4eb3ba8ede93ae8e85b6a11664f33654f7e94fa077ac9a33ab95157c0c2b3b05f98413e13e36f710c6d00b35d49d38bf26092a36e508b88805d092764287 SHA512 9298e185702ea801e9243671ecb0b781c2b04181a2f9fd6490bc14897a333a2c0cc88fe27b0c69c6dd0079629a71c330ed1aa337f48cac6cbd624addb8855500 -DIST php-7.1.22.tar.xz 12227848 BLAKE2B 72fab94b1c7ecfd3479f6d6c9a76a9d8813f7789402664201615d79ab8b5bb26fb1b7273769c4898a36f0336e0ce4d50bf2f17b81ddb54acc9583e39623e3a5b SHA512 0fc0907d303711dbc4ba0a18618e3e73550c73d13988c769f8d50066017b1efe3feb0d22d5539f69271ea4e9532a3d997e22841cb59bdbf96313169e1c03538d DIST php-7.1.26.tar.xz 12206956 BLAKE2B af78f764349a05905d7db22260c8a6415a2755b29e0dd01225160235b3b38ea76c8910d79c69798aa2de3fc6d4d41e45ab951161b54e62753111f81ac9d85bc2 SHA512 3c80dce2d5dcbf6f253ca4ca4e4ce01fdd3a3d31a6e6045f539fefadc1ea3c391d4d4995600a4ff758ab0361e0ec2244e2eaa6591ecb3e9b8e8a9c44f67a5b32 -DIST php-7.2.10.tar.xz 12160864 BLAKE2B f1959a00622c1bd11fa87c61d152c802b307f0b9e89b51ed86b40086cda03eeb6652d47b59df8cc7c9b4e79ab687ae1292b978f453e9f07ac352d209b64c62d8 SHA512 aa90fce17034b2649012d66461626ae74c21ea938b1c71c7eb12419e562c641b432df87a7e900c245ad28df39624cf64a1b2f8ffb123608d94cd35e41f09c0fe DIST php-7.2.14.tar.xz 12156460 BLAKE2B 88727241ca3fd68238ce50dcb4c12868f8e6df54213b04dba7650c5f98c3f18a3d02e0a191c0ebd13d85c83cc686fef60135f69ca7cc3e425bd5d7f80035fdd7 SHA512 13f2c97b730e3e872bd24bcc004c6cff5e2cc633c37a4eb60b8b5d1d4454bc5985f7d52943448d61cf4a227c64be770edc5eadd2c9612b297d71c0840b4b1259 DIST php-7.3.1.tar.xz 11944376 BLAKE2B 55b3192774c08b1e4c6621e16176a1e352ff6ba5540794a5d769b6416929723638f1409f2f8224c7fe3db99c9b020fa51db7b78d50eaa00e790308562a0a5334 SHA512 0663d90537fe3901cad00ba1056782050b8a61e8edb49f01851add4992df21d23aee3e9468e32b76b7f53ffd513f1ba10c9513c549e247d796416ed176355348 diff --git a/dev-lang/php/php-5.6.38.ebuild b/dev-lang/php/php-5.6.38.ebuild deleted file mode 100644 index 471eb29bc1b..00000000000 --- a/dev-lang/php/php-5.6.38.ebuild +++ /dev/null @@ -1,777 +0,0 @@ -# Copyright 1999-2018 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 - -inherit autotools flag-o-matic eapi7-ver systemd - -DESCRIPTION="The PHP language runtime engine" -HOMEPAGE="https://secure.php.net/" -SRC_URI="https://php.net/distributions/${P}.tar.xz" - -LICENSE="PHP-3.01 - BSD - Zend-2.0 - bcmath? ( LGPL-2.1+ ) - fpm? ( BSD-2 ) - gd? ( gd ) - unicode? ( BSD-2 LGPL-2.1 )" - -SLOT="$(ver_cut 1-2)" -KEYWORDS="alpha amd64 arm ~arm64 ~hppa ia64 ~mips ppc ppc64 ~s390 ~sh sparc x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos" - -# We can build the following SAPIs in the given order -SAPIS="embed cli cgi fpm apache2" - -# SAPIs and SAPI-specific USE flags (cli SAPI is default on): -IUSE="${IUSE} - ${SAPIS/cli/+cli} - threads" - -IUSE="${IUSE} acl bcmath berkdb bzip2 calendar cdb cjk - coverage crypt +ctype curl debug - enchant exif +fileinfo +filter firebird - flatfile ftp gd gdbm gmp +hash +iconv imap inifile - intl iodbc ipv6 +json kerberos ldap ldap-sasl libedit libressl - mhash mssql mysql libmysqlclient mysqli nls - oci8-instant-client odbc +opcache pcntl pdo +phar +posix postgres qdbm - readline recode selinux +session sharedmem - +simplexml snmp soap sockets spell sqlite ssl - sybase-ct sysvipc systemd tidy +tokenizer truetype unicode vpx wddx - +xml xmlreader xmlwriter xmlrpc xpm xslt zip zlib" - -# The supported (that is, autodetected) versions of BDB are listed in -# the ./configure script. Other versions *work*, but we need to stick to -# the ones that can be detected to avoid a repeat of bug #564824. -COMMON_DEPEND=" - >=app-eselect/eselect-php-0.9.1[apache2?,fpm?] - >=dev-libs/libpcre-8.32[unicode] - fpm? ( acl? ( sys-apps/acl ) ) - apache2? ( || ( >=www-servers/apache-2.4[apache2_modules_unixd,threads=] - =dev-libs/libmcrypt-2.4 ) - curl? ( >=net-misc/curl-7.10.5 ) - enchant? ( app-text/enchant ) - exif? ( !gd? ( - virtual/jpeg:0 - media-libs/libpng:0= - sys-libs/zlib:0= - ) ) - firebird? ( dev-db/firebird ) - gd? ( virtual/jpeg:0 media-libs/libpng:0= sys-libs/zlib:0= ) - gdbm? ( >=sys-libs/gdbm-1.8.0:0= ) - gmp? ( dev-libs/gmp:0= ) - iconv? ( virtual/libiconv ) - imap? ( virtual/imap-c-client[kerberos=,ssl=] ) - intl? ( =net-nds/openldap-1.2.11 ) - ldap-sasl? ( dev-libs/cyrus-sasl >=net-nds/openldap-1.2.11 ) - libedit? ( || ( sys-freebsd/freebsd-lib dev-libs/libedit ) ) - mssql? ( dev-db/freetds[mssql] ) - libmysqlclient? ( - mysql? ( virtual/libmysqlclient:= ) - mysqli? ( virtual/libmysqlclient:= ) - ) - nls? ( sys-devel/gettext ) - oci8-instant-client? ( dev-db/oracle-instantclient-basic ) - odbc? ( >=dev-db/unixODBC-1.8.13 ) - postgres? ( dev-db/postgresql:* ) - qdbm? ( dev-db/qdbm ) - readline? ( sys-libs/readline:0= ) - recode? ( app-text/recode ) - sharedmem? ( dev-libs/mm ) - simplexml? ( >=dev-libs/libxml2-2.6.8 ) - snmp? ( >=net-analyzer/net-snmp-5.2 ) - soap? ( >=dev-libs/libxml2-2.6.8 ) - spell? ( >=app-text/aspell-0.50 ) - sqlite? ( >=dev-db/sqlite-3.7.6.3 ) - ssl? ( - !libressl? ( dev-libs/openssl:0= ) - libressl? ( dev-libs/libressl:0= ) - ) - sybase-ct? ( dev-db/freetds ) - tidy? ( app-text/htmltidy ) - truetype? ( - =media-libs/freetype-2* - >=media-libs/t1lib-5.0.0 - !gd? ( - virtual/jpeg:0 media-libs/libpng:0= sys-libs/zlib:0= ) - ) - unicode? ( dev-libs/oniguruma:= ) - vpx? ( media-libs/libvpx:0= ) - wddx? ( >=dev-libs/libxml2-2.6.8 ) - xml? ( >=dev-libs/libxml2-2.6.8 ) - xmlrpc? ( >=dev-libs/libxml2-2.6.8 virtual/libiconv ) - xmlreader? ( >=dev-libs/libxml2-2.6.8 ) - xmlwriter? ( >=dev-libs/libxml2-2.6.8 ) - xpm? ( - x11-libs/libXpm - virtual/jpeg:0 - media-libs/libpng:0= sys-libs/zlib:0= - ) - xslt? ( dev-libs/libxslt >=dev-libs/libxml2-2.6.8 ) - zip? ( sys-libs/zlib:0= ) - zlib? ( sys-libs/zlib:0= ) -" - -RDEPEND="${COMMON_DEPEND} - virtual/mta - fpm? ( - selinux? ( sec-policy/selinux-phpfpm ) - systemd? ( sys-apps/systemd ) )" - -DEPEND="${COMMON_DEPEND} - app-arch/xz-utils - >=sys-devel/bison-3.0.1 - sys-devel/flex - >=sys-devel/m4-1.4.3 - >=sys-devel/libtool-1.5.18" - -# Without USE=readline or libedit, the interactive "php -a" CLI will hang. -REQUIRED_USE=" - || ( cli cgi fpm apache2 embed ) - cli? ( ^^ ( readline libedit ) ) - truetype? ( gd zlib ) - vpx? ( gd zlib ) - cjk? ( gd zlib ) - exif? ( gd zlib ) - xpm? ( gd zlib ) - gd? ( zlib ) - simplexml? ( xml ) - soap? ( xml ) - wddx? ( xml ) - xmlrpc? ( || ( xml iconv ) ) - xmlreader? ( xml ) - xslt? ( xml ) - ldap-sasl? ( ldap ) - mhash? ( hash ) - phar? ( hash ) - recode? ( !imap !mysql !mysqli !libmysqlclient ) - libmysqlclient? ( || ( - mysql - mysqli - pdo - ) ) - - qdbm? ( !gdbm ) - readline? ( !libedit ) - sharedmem? ( !threads ) -" - -PHP_MV="$(ver_cut 1)" - -php_install_ini() { - local phpsapi="${1}" - - # work out where we are installing the ini file - php_set_ini_dir "${phpsapi}" - - # Always install the production INI file, bug 611214. - local phpinisrc="php.ini-production-${phpsapi}" - cp php.ini-production "${phpinisrc}" || die - - # default to /tmp for save_path, bug #282768 - sed -e 's|^;session.save_path .*$|session.save_path = "'"${EPREFIX}"'/tmp"|g' -i "${phpinisrc}" || die - - # Set the extension dir - sed -e "s|^extension_dir .*$|extension_dir = ${extension_dir}|g" \ - -i "${phpinisrc}" || die - - # Set the include path to point to where we want to find PEAR packages - sed -e 's|^;include_path = ".:/php/includes".*|include_path = ".:'"${EPREFIX}"'/usr/share/php'${PHP_MV}':'"${EPREFIX}"'/usr/share/php"|' -i "${phpinisrc}" || die - - dodir "${PHP_INI_DIR#${EPREFIX}}" - insinto "${PHP_INI_DIR#${EPREFIX}}" - newins "${phpinisrc}" php.ini - - elog "Installing php.ini for ${phpsapi} into ${PHP_INI_DIR#${EPREFIX}}" - elog - - dodir "${PHP_EXT_INI_DIR#${EPREFIX}}" - dodir "${PHP_EXT_INI_DIR_ACTIVE#${EPREFIX}}" - - if use opcache; then - elog "Adding opcache to $PHP_EXT_INI_DIR" - echo "zend_extension=${PHP_DESTDIR}/$(get_libdir)/opcache.so" >> \ - "${D}/${PHP_EXT_INI_DIR}"/opcache.ini - dosym "${PHP_EXT_INI_DIR#${EPREFIX}}/opcache.ini" \ - "${PHP_EXT_INI_DIR_ACTIVE#${EPREFIX}}/opcache.ini" - fi - - # SAPI-specific handling - if [[ "${sapi}" == "fpm" ]] ; then - einfo "Installing FPM config file php-fpm.conf" - insinto "${PHP_INI_DIR#${EPREFIX}}" - doins sapi/fpm/php-fpm.conf - fi - - dodoc php.ini-{development,production} -} - -php_set_ini_dir() { - PHP_INI_DIR="${EPREFIX}/etc/php/${1}-php${SLOT}" - PHP_EXT_INI_DIR="${PHP_INI_DIR}/ext" - PHP_EXT_INI_DIR_ACTIVE="${PHP_INI_DIR}/ext-active" -} - -src_prepare() { - eapply "${FILESDIR}/php-${SLOT}-no-bison-warnings.patch" - eapply "${FILESDIR}/5.6-mbstring-oniguruma-6.8.patch" - eapply "${FILESDIR}/php-freetype-2.9.1.patch" - - # Change PHP branding - # Get the alpha/beta/rc version - sed -re "s|^(PHP_EXTRA_VERSION=\").*(\")|\1-pl${PR/r/}-gentoo\2|g" \ - -i configure.in || die "Unable to change PHP branding" - - # Patch PHP to show Gentoo as the server platform - sed -e 's/PHP_UNAME=`uname -a | xargs`/PHP_UNAME=`uname -s -n -r -v | xargs`/g' \ - -i configure.in || die "Failed to fix server platform name" - - # Prevent PHP from activating the Apache config, - # as we will do that ourselves - sed -i \ - -e "s,-i -a -n php${PHP_MV},-i -n php${PHP_MV},g" \ - -e "s,-i -A -n php${PHP_MV},-i -n php${PHP_MV},g" \ - configure sapi/apache2filter/config.m4 sapi/apache2handler/config.m4 \ - || die - - # Patch PHP to support heimdal instead of mit-krb5 - if has_version "app-crypt/heimdal" ; then - sed -e 's|gssapi_krb5|gssapi|g' -i acinclude.m4 \ - || die "Failed to fix heimdal libname" - sed -e 's|PHP_ADD_LIBRARY(k5crypto, 1, $1)||g' -i acinclude.m4 \ - || die "Failed to fix heimdal crypt library reference" - fi - - eapply_user - - # Force rebuilding aclocal.m4 - rm -f aclocal.m4 || die "failed to remove aclocal.m4 in src_prepare" - eautoreconf - - if [[ ${CHOST} == *-darwin* ]] ; then - # http://bugs.php.net/bug.php?id=48795, bug #343481 - sed -i -e '/BUILD_CGI="\\$(CC)/s/CC/CXX/' configure || die - fi -} - -src_configure() { - addpredict /usr/share/snmp/mibs/.index #nowarn - addpredict /var/lib/net-snmp/mib_indexes #nowarn - - PHP_DESTDIR="${EPREFIX}/usr/$(get_libdir)/php${SLOT}" - - # The php-fpm config file wants localstatedir to be ${EPREFIX}/var - # and not the Gentoo default ${EPREFIX}/var/lib. See bug 572002. - local our_conf=( - --prefix="${PHP_DESTDIR}" - --mandir="${PHP_DESTDIR}/man" - --infodir="${PHP_DESTDIR}/info" - --libdir="${PHP_DESTDIR}/lib" - --with-libdir="$(get_libdir)" - --localstatedir="${EPREFIX}/var" - --without-pear - $(use_enable threads maintainer-zts) - ) - - our_conf+=( - $(use_enable bcmath bcmath) - $(use_with bzip2 bz2 "${EPREFIX}/usr") - $(use_enable calendar calendar) - $(use_enable coverage gcov) - $(use_enable ctype ctype) - $(use_with curl curl "${EPREFIX}/usr") - $(use_enable xml dom) - $(use_with enchant enchant "${EPREFIX}/usr") - $(use_enable exif exif) - $(use_enable fileinfo fileinfo) - $(use_enable filter filter) - $(use_enable ftp ftp) - $(use_with nls gettext "${EPREFIX}/usr") - $(use_with gmp gmp "${EPREFIX}/usr") - $(use_enable hash hash) - $(use_with mhash mhash "${EPREFIX}/usr") - $(use_with iconv iconv \ - $(use elibc_glibc || use elibc_musl || use elibc_FreeBSD || echo "${EPREFIX}/usr")) - $(use_enable intl intl) - $(use_enable ipv6 ipv6) - $(use_enable json json) - $(use_with kerberos kerberos "${EPREFIX}/usr") - $(use_enable xml libxml) - $(use_with xml libxml-dir "${EPREFIX}/usr") - $(use_enable unicode mbstring) - $(use_with crypt mcrypt "${EPREFIX}/usr") - $(use_with mssql mssql "${EPREFIX}/usr") - $(use_with unicode onig "${EPREFIX}/usr") - $(use_with ssl openssl "${EPREFIX}/usr") - $(use_with ssl openssl-dir "${EPREFIX}/usr") - $(use_enable pcntl pcntl) - $(use_enable phar phar) - $(use_enable pdo pdo) - $(use_enable opcache opcache) - $(use_with postgres pgsql "${EPREFIX}/usr") - $(use_enable posix posix) - $(use_with spell pspell "${EPREFIX}/usr") - $(use_with recode recode "${EPREFIX}/usr") - $(use_enable simplexml simplexml) - $(use_enable sharedmem shmop) - $(use_with snmp snmp "${EPREFIX}/usr") - $(use_enable soap soap) - $(use_enable sockets sockets) - $(use_with sqlite sqlite3 "${EPREFIX}/usr") - $(use_with sybase-ct sybase-ct "${EPREFIX}/usr") - $(use_enable sysvipc sysvmsg) - $(use_enable sysvipc sysvsem) - $(use_enable sysvipc sysvshm) - $(use_with tidy tidy "${EPREFIX}/usr") - $(use_enable tokenizer tokenizer) - $(use_enable wddx wddx) - $(use_enable xml xml) - $(use_enable xmlreader xmlreader) - $(use_enable xmlwriter xmlwriter) - $(use_with xmlrpc xmlrpc) - $(use_with xslt xsl "${EPREFIX}/usr") - $(use_enable zip zip) - $(use_with zlib zlib "${EPREFIX}/usr") - $(use_enable debug debug) - ) - - # DBA support - if use cdb || use berkdb || use flatfile || use gdbm || use inifile \ - || use qdbm ; then - our_conf+=( "--enable-dba${shared}" ) - fi - - # DBA drivers support - our_conf+=( - $(use_with cdb cdb) - $(use_with berkdb db4 "${EPREFIX}/usr") - $(use_enable flatfile flatfile) - $(use_with gdbm gdbm "${EPREFIX}/usr") - $(use_enable inifile inifile) - $(use_with qdbm qdbm "${EPREFIX}/usr") - ) - - # Support for the GD graphics library - our_conf+=( - $(use_with truetype freetype-dir "${EPREFIX}/usr") - $(use_with truetype t1lib "${EPREFIX}/usr") - $(use_enable cjk gd-jis-conv) - $(use_with gd jpeg-dir "${EPREFIX}/usr") - $(use_with gd png-dir "${EPREFIX}/usr") - $(use_with xpm xpm-dir "${EPREFIX}/usr") - $(use_with vpx vpx-dir "${EPREFIX}/usr") - ) - # enable gd last, so configure can pick up the previous settings - our_conf+=( $(use_with gd gd) ) - - # IMAP support - if use imap ; then - our_conf+=( - $(use_with imap imap "${EPREFIX}/usr") - $(use_with ssl imap-ssl "${EPREFIX}/usr") - ) - fi - - # Interbase/firebird support - our_conf+=( $(use_with firebird interbase "${EPREFIX}/usr") ) - - # LDAP support - if use ldap ; then - our_conf+=( - $(use_with ldap ldap "${EPREFIX}/usr") - $(use_with ldap-sasl ldap-sasl "${EPREFIX}/usr") - ) - fi - - # MySQL support - local mysqllib="mysqlnd" - local mysqlilib="mysqlnd" - use libmysqlclient && mysqllib="${EPREFIX}/usr" - use libmysqlclient && mysqlilib="${EPREFIX}/usr/bin/mysql_config" - - our_conf+=( $(use_with mysql mysql "${mysqllib}") ) - our_conf+=( $(use_with mysqli mysqli "${mysqlilib}") ) - - local mysqlsock="${EPREFIX}/var/run/mysqld/mysqld.sock" - if use mysql || use mysqli ; then - our_conf+=( $(use_with mysql mysql-sock "${mysqlsock}") ) - fi - - # ODBC support - our_conf+=( - $(use_with odbc unixODBC "${EPREFIX}/usr") - $(use_with iodbc iodbc "${EPREFIX}/usr") - ) - - # Oracle support - our_conf+=( $(use_with oci8-instant-client oci8) ) - - # PDO support - if use pdo ; then - our_conf+=( - $(use_with mssql pdo-dblib) - $(use_with mysql pdo-mysql "${mysqllib}") - $(use_with postgres pdo-pgsql) - $(use_with sqlite pdo-sqlite "${EPREFIX}/usr") - $(use_with firebird pdo-firebird "${EPREFIX}/usr") - $(use_with odbc pdo-odbc "unixODBC,${EPREFIX}/usr") - $(use_with oci8-instant-client pdo-oci) - ) - fi - - # readline/libedit support - our_conf+=( - $(use_with readline readline "${EPREFIX}/usr") - $(use_with libedit libedit "${EPREFIX}/usr") - ) - - # Session support - if use session ; then - our_conf+=( $(use_with sharedmem mm "${EPREFIX}/usr") ) - else - our_conf+=( $(use_enable session session) ) - fi - - # Use pic for shared modules such as apache2's mod_php - our_conf+=( --with-pic ) - - # we use the system copy of pcre - # --with-pcre-regex affects ext/pcre - # --with-pcre-dir affects ext/filter and ext/zip - our_conf+=( - --with-pcre-regex="${EPREFIX}/usr" - --with-pcre-dir="${EPREFIX}/usr" - ) - - # Catch CFLAGS problems - # Fixes bug #14067. - # Changed order to run it in reverse for bug #32022 and #12021. - replace-cpu-flags "k6*" "i586" - - # Cache the ./configure test results between SAPIs. - our_conf+=( --cache-file="${T}/config.cache" ) - - # Support user-passed configuration parameters - our_conf+=( ${EXTRA_ECONF:-} ) - - # Support the Apache2 extras, they must be set globally for all - # SAPIs to work correctly, especially for external PHP extensions - - mkdir -p "${WORKDIR}/sapis-build" || die - for one_sapi in $SAPIS ; do - use "${one_sapi}" || continue - php_set_ini_dir "${one_sapi}" - - # The BUILD_DIR variable is used to determine where to output - # the files that autotools creates. This was all originally - # based on the autotools-utils eclass. - BUILD_DIR="${WORKDIR}/sapis-build/${one_sapi}" - cp -a "${S}" "${BUILD_DIR}" || die - cd "${BUILD_DIR}" || die - - local sapi_conf=( - --with-config-file-path="${PHP_INI_DIR}" - --with-config-file-scan-dir="${PHP_EXT_INI_DIR_ACTIVE}" - ) - - for sapi in $SAPIS ; do - case "$sapi" in - cli|cgi|embed|fpm) - if [[ "${one_sapi}" == "${sapi}" ]] ; then - sapi_conf+=( "--enable-${sapi}" ) - if [[ "fpm" == "${sapi}" ]] ; then - sapi_conf+=( - $(use_with acl fpm-acl) - $(use_with systemd fpm-systemd) - ) - fi - else - sapi_conf+=( "--disable-${sapi}" ) - fi - ;; - - apache2) - if [[ "${one_sapi}" == "${sapi}" ]] ; then - sapi_conf+=( --with-apxs2="${EPREFIX}/usr/bin/apxs" ) - else - sapi_conf+=( --without-apxs2 ) - fi - ;; - esac - done - - # Construct the $myeconfargs array by concatenating $our_conf - # (the common args) and $sapi_conf (the SAPI-specific args). - local myeconfargs=( "${our_conf[@]}" ) - myeconfargs+=( "${sapi_conf[@]}" ) - - pushd "${BUILD_DIR}" > /dev/null || die - econf "${myeconfargs[@]}" - popd > /dev/null || die - done -} - -src_compile() { - # snmp seems to run during src_compile, too (bug #324739) - addpredict /usr/share/snmp/mibs/.index #nowarn - addpredict /var/lib/net-snmp/mib_indexes #nowarn - - for sapi in ${SAPIS} ; do - if use "${sapi}"; then - cd "${WORKDIR}/sapis-build/$sapi" || \ - die "Failed to change dir to ${WORKDIR}/sapis-build/$1" - emake - fi - done -} - -src_install() { - # see bug #324739 for what happens when we don't have that - addpredict /usr/share/snmp/mibs/.index #nowarn - - # grab the first SAPI that got built and install common files from there - local first_sapi="" - for sapi in $SAPIS ; do - if use $sapi ; then - first_sapi=$sapi - break - fi - done - - # Makefile forgets to create this before trying to write to it... - dodir "${PHP_DESTDIR#${EPREFIX}}/bin" - - # Install php environment (without any sapis) - cd "${WORKDIR}/sapis-build/$first_sapi" || die - emake INSTALL_ROOT="${D}" \ - install-build install-headers install-programs - - local extension_dir="$("${ED}/${PHP_DESTDIR#${EPREFIX}}/bin/php-config" --extension-dir)" - - # Create the directory where we'll put version-specific php scripts - keepdir "/usr/share/php${PHP_MV}" - - local sapi="", file="" - local sapi_list="" - - for sapi in ${SAPIS}; do - if use "${sapi}" ; then - einfo "Installing SAPI: ${sapi}" - cd "${WORKDIR}/sapis-build/${sapi}" || die - - if [[ "${sapi}" == "apache2" ]] ; then - # We're specifically not using emake install-sapi as libtool - # may cause unnecessary relink failures (see bug #351266) - insinto "${PHP_DESTDIR#${EPREFIX}}/apache2/" - newins ".libs/libphp5$(get_libname)" \ - "libphp${PHP_MV}$(get_libname)" - keepdir "/usr/$(get_libdir)/apache2/modules" - else - # needed each time, php_install_ini would reset it - local dest="${PHP_DESTDIR#${EPREFIX}}" - into "${dest}" - case "$sapi" in - cli) - source="sapi/cli/php" - ;; - cgi) - source="sapi/cgi/php-cgi" - ;; - fpm) - source="sapi/fpm/php-fpm" - ;; - embed) - source="libs/libphp${PHP_MV}$(get_libname)" - ;; - *) - die "unhandled sapi in src_install" - ;; - esac - - if [[ "${source}" == *"$(get_libname)" ]]; then - dolib.so "${source}" - else - dobin "${source}" - local name="$(basename ${source})" - dosym "${dest}/bin/${name}" "/usr/bin/${name}${SLOT}" - fi - fi - - php_install_ini "${sapi}" - - # construct correct SAPI string for php-config - # thanks to ferringb for the bash voodoo - if [[ "${sapi}" == "apache2" ]]; then - sapi_list="${sapi_list:+${sapi_list} }apache2handler" - else - sapi_list="${sapi_list:+${sapi_list} }${sapi}" - fi - fi - done - - # Installing opcache module - if use opcache ; then - into "${PHP_DESTDIR#${EPREFIX}}" - dolib.so "modules/opcache$(get_libname)" - fi - - # Install env.d files - newenvd "${FILESDIR}/20php5-envd" "20php${SLOT}" - sed -e "s|/lib/|/$(get_libdir)/|g" -i "${ED}/etc/env.d/20php${SLOT}" || die - sed -e "s|php5|php${SLOT}|g" -i "${ED}/etc/env.d/20php${SLOT}" || die - - # set php-config variable correctly (bug #278439) - sed -e "s:^\(php_sapis=\)\".*\"$:\1\"${sapi_list}\":" -i \ - "${ED}/usr/$(get_libdir)/php${SLOT}/bin/php-config" || die - - if use fpm ; then - if use systemd; then - systemd_newunit "${FILESDIR}/php-fpm_at.service" \ - "php-fpm@${SLOT}.service" - else - systemd_newunit "${FILESDIR}/php-fpm_at-simple.service" \ - "php-fpm@${SLOT}.service" - fi - fi -} - -src_test() { - echo ">>> Test phase [test]: ${CATEGORY}/${PF}" - PHP_BIN="${WORKDIR}/sapis-build/cli/sapi/cli/php" - if [[ ! -x "${PHP_BIN}" ]] ; then - ewarn "Test phase requires USE=cli, skipping" - return - else - export TEST_PHP_EXECUTABLE="${PHP_BIN}" - fi - - if [[ -x "${WORKDIR}/sapis/cgi/php-cgi" ]] ; then - export TEST_PHP_CGI_EXECUTABLE="${WORKDIR}/sapis/cgi/php-cgi" - fi - - REPORT_EXIT_STATUS=1 "${TEST_PHP_EXECUTABLE}" -n -d \ - "session.save_path=${T}" \ - "${WORKDIR}/sapis-build/cli/run-tests.php" -n -q -d \ - "session.save_path=${T}" - - for name in ${EXPECTED_TEST_FAILURES}; do - mv "${name}.out" "${name}.out.orig" 2>/dev/null || die - done - - local failed="$(find -name '*.out')" - if [[ ${failed} != "" ]] ; then - ewarn "The following test cases failed unexpectedly:" - for name in ${failed}; do - ewarn " ${name/.out/}" - done - else - einfo "No unexpected test failures, all fine" - fi - - if [[ ${PHP_SHOW_UNEXPECTED_TEST_PASS} == "1" ]] ; then - local passed="" - for name in ${EXPECTED_TEST_FAILURES}; do - [[ -f "${name}.diff" ]] && continue - passed="${passed} ${name}" - done - if [[ ${passed} != "" ]] ; then - einfo "The following test cases passed unexpectedly:" - for name in ${passed}; do - ewarn " ${passed}" - done - else - einfo "None of the known-to-fail tests passed, all fine" - fi - fi -} - -pkg_postinst() { - # Output some general info to the user - if use apache2 ; then - elog - elog "To enable PHP in apache, you will need to add \"-D PHP\" to" - elog "your apache2 command. OpenRC users can append that string to" - elog "APACHE2_OPTS in /etc/conf.d/apache2." - elog - elog "The apache module configuration file 70_mod_php.conf is" - elog "provided (and maintained) by eselect-php." - elog - fi - - # Create the symlinks for php - for m in ${SAPIS}; do - [[ ${m} == 'embed' ]] && continue; - if use $m ; then - local ci=$(eselect php show $m) - if [[ -z $ci ]]; then - eselect php set $m php${SLOT} || die - einfo "Switched ${m} to use php:${SLOT}" - einfo - elif [[ $ci != "php${SLOT}" ]] ; then - elog "To switch $m to use php:${SLOT}, run" - elog " eselect php set $m php${SLOT}" - elog - fi - fi - done - - # Remove dead symlinks for SAPIs that were just disabled. For - # example, if the user has the cgi SAPI enabled, then he has an - # eselect-php symlink for it. If he later reinstalls PHP with - # USE="-cgi", that symlink will break. This call to eselect is - # supposed to remove that dead link per bug 572436. - eselect php cleanup || die - - if ! has "php${SLOT/./-}" ${PHP_TARGETS}; then - elog "To build extensions for this version of PHP, you will need to" - elog "add php${SLOT/./-} to your PHP_TARGETS USE_EXPAND variable." - elog - fi - - # Warn about the removal of PHP_INI_VERSION if the user has it set. - if [[ -n "${PHP_INI_VERSION}" ]]; then - ewarn 'The PHP_INI_VERSION variable has been phased out. You may' - ewarn 'remove it from your configuration at your convenience. See' - ewarn - ewarn ' https://bugs.gentoo.org/611214' - ewarn - ewarn 'for more information.' - fi - - elog "For details on how version slotting works, please see" - elog "the wiki:" - elog - elog " https://wiki.gentoo.org/wiki/PHP" - elog -} - -pkg_postrm() { - # This serves two purposes. First, if we have just removed the last - # installed version of PHP, then this will remove any dead symlinks - # belonging to eselect-php. Second, if a user upgrades slots from - # (say) 5.6 to 7.0 and depcleans the old slot, then this will update - # his existing symlinks to point to the new 7.0 installation. The - # latter is bug 432962. - # - # Note: the eselect-php package may not be installed at this point, - # so we can't die() if this command fails. - eselect php cleanup -} diff --git a/dev-lang/php/php-7.1.22.ebuild b/dev-lang/php/php-7.1.22.ebuild deleted file mode 100644 index ec1d9318de4..00000000000 --- a/dev-lang/php/php-7.1.22.ebuild +++ /dev/null @@ -1,729 +0,0 @@ -# Copyright 1999-2018 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 - -inherit flag-o-matic eapi7-ver systemd - -DESCRIPTION="The PHP language runtime engine" -HOMEPAGE="https://secure.php.net/" -SRC_URI="https://secure.php.net/distributions/${P}.tar.xz" - -LICENSE="PHP-3.01 - BSD - Zend-2.0 - bcmath? ( LGPL-2.1+ ) - fpm? ( BSD-2 ) - gd? ( gd ) - unicode? ( BSD-2 LGPL-2.1 )" - -SLOT="$(ver_cut 1-2)" -KEYWORDS="alpha amd64 arm ~arm64 ~hppa ia64 ~mips ppc ppc64 ~s390 ~sh sparc x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos" - -# We can build the following SAPIs in the given order -SAPIS="embed cli cgi fpm apache2 phpdbg" - -# SAPIs and SAPI-specific USE flags (cli SAPI is default on): -IUSE="${IUSE} - ${SAPIS/cli/+cli} - threads" - -IUSE="${IUSE} acl bcmath berkdb bzip2 calendar cdb cjk - coverage crypt +ctype curl debug - enchant exif +fileinfo +filter firebird - flatfile ftp gd gdbm gmp +hash +iconv imap inifile - intl iodbc ipv6 +json kerberos ldap ldap-sasl libedit libressl - mhash mssql mysql mysqli nls - oci8-instant-client odbc +opcache pcntl pdo +phar +posix postgres qdbm - readline recode selinux +session session-mm sharedmem - +simplexml snmp soap sockets spell sqlite ssl - sysvipc systemd test tidy +tokenizer truetype unicode wddx webp - +xml xmlreader xmlwriter xmlrpc xpm xslt zip zlib" - -# The supported (that is, autodetected) versions of BDB are listed in -# the ./configure script. Other versions *work*, but we need to stick to -# the ones that can be detected to avoid a repeat of bug #564824. -COMMON_DEPEND=" - >=app-eselect/eselect-php-0.9.1[apache2?,fpm?] - >=dev-libs/libpcre-8.32[unicode] - fpm? ( acl? ( sys-apps/acl ) ) - apache2? ( || ( >=www-servers/apache-2.4[apache2_modules_unixd,threads=] - =dev-libs/libmcrypt-2.4 ) - curl? ( >=net-misc/curl-7.10.5 ) - enchant? ( app-text/enchant ) - firebird? ( dev-db/firebird ) - gd? ( virtual/jpeg:0 media-libs/libpng:0= sys-libs/zlib ) - gdbm? ( >=sys-libs/gdbm-1.8.0:0= ) - gmp? ( dev-libs/gmp:0= ) - iconv? ( virtual/libiconv ) - imap? ( virtual/imap-c-client[kerberos=,ssl=] ) - intl? ( dev-libs/icu:= ) - iodbc? ( dev-db/libiodbc ) - kerberos? ( virtual/krb5 ) - ldap? ( >=net-nds/openldap-1.2.11 ) - ldap-sasl? ( dev-libs/cyrus-sasl >=net-nds/openldap-1.2.11 ) - libedit? ( || ( sys-freebsd/freebsd-lib dev-libs/libedit ) ) - mssql? ( dev-db/freetds[mssql] ) - nls? ( sys-devel/gettext ) - oci8-instant-client? ( dev-db/oracle-instantclient-basic ) - odbc? ( >=dev-db/unixODBC-1.8.13 ) - postgres? ( dev-db/postgresql:* ) - qdbm? ( dev-db/qdbm ) - readline? ( sys-libs/readline:0= ) - recode? ( app-text/recode ) - session-mm? ( dev-libs/mm ) - simplexml? ( >=dev-libs/libxml2-2.6.8 ) - snmp? ( >=net-analyzer/net-snmp-5.2 ) - soap? ( >=dev-libs/libxml2-2.6.8 ) - spell? ( >=app-text/aspell-0.50 ) - sqlite? ( >=dev-db/sqlite-3.7.6.3 ) - ssl? ( - !libressl? ( dev-libs/openssl:0= ) - libressl? ( dev-libs/libressl:0= ) - ) - tidy? ( || ( app-text/tidy-html5 app-text/htmltidy ) ) - truetype? ( =media-libs/freetype-2* ) - unicode? ( dev-libs/oniguruma:= ) - wddx? ( >=dev-libs/libxml2-2.6.8 ) - webp? ( media-libs/libwebp:0= ) - xml? ( >=dev-libs/libxml2-2.6.8 ) - xmlrpc? ( >=dev-libs/libxml2-2.6.8 virtual/libiconv ) - xmlreader? ( >=dev-libs/libxml2-2.6.8 ) - xmlwriter? ( >=dev-libs/libxml2-2.6.8 ) - xpm? ( x11-libs/libXpm ) - xslt? ( dev-libs/libxslt >=dev-libs/libxml2-2.6.8 ) - zip? ( sys-libs/zlib:0= ) - zlib? ( sys-libs/zlib:0= ) -" - -RDEPEND="${COMMON_DEPEND} - virtual/mta - fpm? ( - selinux? ( sec-policy/selinux-phpfpm ) - systemd? ( sys-apps/systemd ) )" - -# Bison isn't actually needed when building from a release tarball -# However, the configure script will warn if it's absent or if you -# have an incompatible version installed. See bug 593278. -DEPEND="${COMMON_DEPEND} - app-arch/xz-utils - >=sys-devel/bison-3.0.1" - -# Without USE=readline or libedit, the interactive "php -a" CLI will hang. -REQUIRED_USE=" - || ( cli cgi fpm apache2 embed phpdbg ) - cli? ( ^^ ( readline libedit ) ) - truetype? ( gd zlib ) - webp? ( gd zlib ) - cjk? ( gd zlib ) - exif? ( gd zlib ) - xpm? ( gd zlib ) - gd? ( zlib ) - simplexml? ( xml ) - soap? ( xml ) - wddx? ( xml ) - xmlrpc? ( || ( xml iconv ) ) - xmlreader? ( xml ) - xslt? ( xml ) - ldap-sasl? ( ldap ) - mhash? ( hash ) - phar? ( hash ) - qdbm? ( !gdbm ) - readline? ( !libedit ) - recode? ( !imap !mysqli !mysql ) - session-mm? ( session !threads ) - mysql? ( hash || ( mysqli pdo ) ) - mysqli? ( hash ) -" -PATCHES=( - "${FILESDIR}/php-freetype-2.9.1.patch" -) - -PHP_MV="$(ver_cut 1)" - -php_install_ini() { - local phpsapi="${1}" - - # work out where we are installing the ini file - php_set_ini_dir "${phpsapi}" - - # Always install the production INI file, bug 611214. - local phpinisrc="php.ini-production-${phpsapi}" - cp php.ini-production "${phpinisrc}" || die - - # default to /tmp for save_path, bug #282768 - sed -e 's|^;session.save_path .*$|session.save_path = "'"${EPREFIX}"'/tmp"|g' -i "${phpinisrc}" || die - - # Set the extension dir - sed -e "s|^extension_dir .*$|extension_dir = ${extension_dir}|g" \ - -i "${phpinisrc}" || die - - # Set the include path to point to where we want to find PEAR packages - sed -e 's|^;include_path = ".:/php/includes".*|include_path = ".:'"${EPREFIX}"'/usr/share/php'${PHP_MV}':'"${EPREFIX}"'/usr/share/php"|' -i "${phpinisrc}" || die - - dodir "${PHP_INI_DIR#${EPREFIX}}" - insinto "${PHP_INI_DIR#${EPREFIX}}" - newins "${phpinisrc}" php.ini - - elog "Installing php.ini for ${phpsapi} into ${PHP_INI_DIR#${EPREFIX}}" - elog - - dodir "${PHP_EXT_INI_DIR#${EPREFIX}}" - dodir "${PHP_EXT_INI_DIR_ACTIVE#${EPREFIX}}" - - if use opcache; then - elog "Adding opcache to $PHP_EXT_INI_DIR" - echo "zend_extension=${PHP_DESTDIR}/$(get_libdir)/opcache.so" >> \ - "${D}/${PHP_EXT_INI_DIR}"/opcache.ini - dosym "${PHP_EXT_INI_DIR#${EPREFIX}}/opcache.ini" \ - "${PHP_EXT_INI_DIR_ACTIVE#${EPREFIX}}/opcache.ini" - fi - - # SAPI-specific handling - if [[ "${sapi}" == "fpm" ]] ; then - einfo "Installing FPM config files php-fpm.conf and www.conf" - insinto "${PHP_INI_DIR#${EPREFIX}}" - doins sapi/fpm/php-fpm.conf - insinto "${PHP_INI_DIR#${EPREFIX}}/fpm.d" - doins sapi/fpm/www.conf - fi - - dodoc php.ini-{development,production} -} - -php_set_ini_dir() { - PHP_INI_DIR="${EPREFIX}/etc/php/${1}-php${SLOT}" - PHP_EXT_INI_DIR="${PHP_INI_DIR}/ext" - PHP_EXT_INI_DIR_ACTIVE="${PHP_INI_DIR}/ext-active" -} - -src_prepare() { - default - - # In php-7.x, the FPM pool configuration files have been split off - # of the main config. By default the pool config files go in - # e.g. /etc/php-fpm.d, which isn't slotted. So here we move the - # include directory to a subdirectory "fpm.d" of $PHP_INI_DIR. Later - # we'll install the pool configuration file "www.conf" there. - php_set_ini_dir fpm - sed -i "s~^include=.*$~include=${PHP_INI_DIR}/fpm.d/*.conf~" \ - sapi/fpm/php-fpm.conf.in \ - || die 'failed to move the include directory in php-fpm.conf' -} - -src_configure() { - addpredict /usr/share/snmp/mibs/.index #nowarn - addpredict /var/lib/net-snmp/mib_indexes #nowarn - - PHP_DESTDIR="${EPREFIX}/usr/$(get_libdir)/php${SLOT}" - - # The php-fpm config file wants localstatedir to be ${EPREFIX}/var - # and not the Gentoo default ${EPREFIX}/var/lib. See bug 572002. - local our_conf=( - --prefix="${PHP_DESTDIR}" - --mandir="${PHP_DESTDIR}/man" - --infodir="${PHP_DESTDIR}/info" - --libdir="${PHP_DESTDIR}/lib" - --with-libdir="$(get_libdir)" - --localstatedir="${EPREFIX}/var" - --without-pear - $(use_enable threads maintainer-zts) - ) - - our_conf+=( - $(use_enable bcmath bcmath) - $(use_with bzip2 bz2 "${EPREFIX}/usr") - $(use_enable calendar calendar) - $(use_enable coverage gcov) - $(use_enable ctype ctype) - $(use_with curl curl "${EPREFIX}/usr") - $(use_enable xml dom) - $(use_with enchant enchant "${EPREFIX}/usr") - $(use_enable exif exif) - $(use_enable fileinfo fileinfo) - $(use_enable filter filter) - $(use_enable ftp ftp) - $(use_with nls gettext "${EPREFIX}/usr") - $(use_with gmp gmp "${EPREFIX}/usr") - $(use_enable hash hash) - $(use_with mhash mhash "${EPREFIX}/usr") - $(use_with iconv iconv \ - $(use elibc_glibc || use elibc_musl || use elibc_FreeBSD || echo "${EPREFIX}/usr")) - $(use_enable intl intl) - $(use_enable ipv6 ipv6) - $(use_enable json json) - $(use_with kerberos kerberos "${EPREFIX}/usr") - $(use_enable xml libxml) - $(use_with xml libxml-dir "${EPREFIX}/usr") - $(use_enable unicode mbstring) - $(use_with crypt mcrypt "${EPREFIX}/usr") - $(use_with unicode onig "${EPREFIX}/usr") - $(use_with ssl openssl "${EPREFIX}/usr") - $(use_with ssl openssl-dir "${EPREFIX}/usr") - $(use_enable pcntl pcntl) - $(use_enable phar phar) - $(use_enable pdo pdo) - $(use_enable opcache opcache) - $(use_with postgres pgsql "${EPREFIX}/usr") - $(use_enable posix posix) - $(use_with spell pspell "${EPREFIX}/usr") - $(use_with recode recode "${EPREFIX}/usr") - $(use_enable simplexml simplexml) - $(use_enable sharedmem shmop) - $(use_with snmp snmp "${EPREFIX}/usr") - $(use_enable soap soap) - $(use_enable sockets sockets) - $(use_with sqlite sqlite3 "${EPREFIX}/usr") - $(use_enable sysvipc sysvmsg) - $(use_enable sysvipc sysvsem) - $(use_enable sysvipc sysvshm) - $(use_with tidy tidy "${EPREFIX}/usr") - $(use_enable tokenizer tokenizer) - $(use_enable wddx wddx) - $(use_enable xml xml) - $(use_enable xmlreader xmlreader) - $(use_enable xmlwriter xmlwriter) - $(use_with xmlrpc xmlrpc) - $(use_with xslt xsl "${EPREFIX}/usr") - $(use_enable zip zip) - $(use_with zlib zlib "${EPREFIX}/usr") - $(use_enable debug debug) - ) - - # DBA support - if use cdb || use berkdb || use flatfile || use gdbm || use inifile \ - || use qdbm ; then - our_conf+=( "--enable-dba${shared}" ) - fi - - # DBA drivers support - our_conf+=( - $(use_with cdb cdb) - $(use_with berkdb db4 "${EPREFIX}/usr") - $(use_enable flatfile flatfile) - $(use_with gdbm gdbm "${EPREFIX}/usr") - $(use_enable inifile inifile) - $(use_with qdbm qdbm "${EPREFIX}/usr") - ) - - # Support for the GD graphics library - our_conf+=( - $(use_with truetype freetype-dir "${EPREFIX}/usr") - $(use_enable cjk gd-jis-conv) - $(use_with gd jpeg-dir "${EPREFIX}/usr") - $(use_with gd png-dir "${EPREFIX}/usr") - $(use_with xpm xpm-dir "${EPREFIX}/usr") - ) - if use webp; then - our_conf+=( --with-webp-dir="${EPREFIX}/usr" ) - fi - # enable gd last, so configure can pick up the previous settings - our_conf+=( $(use_with gd gd) ) - - # IMAP support - if use imap ; then - our_conf+=( - $(use_with imap imap "${EPREFIX}/usr") - $(use_with ssl imap-ssl "${EPREFIX}/usr") - ) - fi - - # Interbase/firebird support - our_conf+=( $(use_with firebird interbase "${EPREFIX}/usr") ) - - # LDAP support - if use ldap ; then - our_conf+=( - $(use_with ldap ldap "${EPREFIX}/usr") - $(use_with ldap-sasl ldap-sasl "${EPREFIX}/usr") - ) - fi - - # MySQL support - local mysqllib="mysqlnd" - local mysqlilib="mysqlnd" - - our_conf+=( $(use_with mysqli mysqli "${mysqlilib}") ) - - local mysqlsock="${EPREFIX}/var/run/mysqld/mysqld.sock" - if use mysql || use mysqli ; then - our_conf+=( $(use_with mysql mysql-sock "${mysqlsock}") ) - fi - - # ODBC support - our_conf+=( - $(use_with odbc unixODBC "${EPREFIX}/usr") - $(use_with iodbc iodbc "${EPREFIX}/usr") - ) - - # Oracle support - our_conf+=( $(use_with oci8-instant-client oci8) ) - - # PDO support - if use pdo ; then - our_conf+=( - $(use_with mssql pdo-dblib "${EPREFIX}/usr") - $(use_with mysql pdo-mysql "${mysqllib}") - $(use_with postgres pdo-pgsql) - $(use_with sqlite pdo-sqlite "${EPREFIX}/usr") - $(use_with firebird pdo-firebird "${EPREFIX}/usr") - $(use_with odbc pdo-odbc "unixODBC,${EPREFIX}/usr") - $(use_with oci8-instant-client pdo-oci) - ) - fi - - # readline/libedit support - our_conf+=( - $(use_with readline readline "${EPREFIX}/usr") - $(use_with libedit libedit "${EPREFIX}/usr") - ) - - # Session support - if use session ; then - our_conf+=( $(use_with session-mm mm "${EPREFIX}/usr") ) - else - our_conf+=( $(use_enable session session) ) - fi - - # Use pic for shared modules such as apache2's mod_php - our_conf+=( --with-pic ) - - # we use the system copy of pcre - # --with-pcre-regex affects ext/pcre - # --with-pcre-dir affects ext/filter and ext/zip - our_conf+=( - --with-pcre-regex="${EPREFIX}/usr" - --with-pcre-dir="${EPREFIX}/usr" - ) - - # Catch CFLAGS problems - # Fixes bug #14067. - # Changed order to run it in reverse for bug #32022 and #12021. - replace-cpu-flags "k6*" "i586" - - # Cache the ./configure test results between SAPIs. - our_conf+=( --cache-file="${T}/config.cache" ) - - # Support user-passed configuration parameters - our_conf+=( ${EXTRA_ECONF:-} ) - - # Support the Apache2 extras, they must be set globally for all - # SAPIs to work correctly, especially for external PHP extensions - - mkdir -p "${WORKDIR}/sapis-build" || die - for one_sapi in $SAPIS ; do - use "${one_sapi}" || continue - php_set_ini_dir "${one_sapi}" - - # The BUILD_DIR variable is used to determine where to output - # the files that autotools creates. This was all originally - # based on the autotools-utils eclass. - BUILD_DIR="${WORKDIR}/sapis-build/${one_sapi}" - cp -a "${S}" "${BUILD_DIR}" || die - cd "${BUILD_DIR}" || die - - local sapi_conf=( - --with-config-file-path="${PHP_INI_DIR}" - --with-config-file-scan-dir="${PHP_EXT_INI_DIR_ACTIVE}" - ) - - for sapi in $SAPIS ; do - case "$sapi" in - cli|cgi|embed|fpm|phpdbg) - if [[ "${one_sapi}" == "${sapi}" ]] ; then - sapi_conf+=( "--enable-${sapi}" ) - if [[ "fpm" == "${sapi}" ]] ; then - sapi_conf+=( - $(use_with acl fpm-acl) - $(use_with systemd fpm-systemd) - ) - fi - else - sapi_conf+=( "--disable-${sapi}" ) - fi - ;; - - apache2) - if [[ "${one_sapi}" == "${sapi}" ]] ; then - sapi_conf+=( --with-apxs2="${EPREFIX}/usr/bin/apxs" ) - else - sapi_conf+=( --without-apxs2 ) - fi - ;; - esac - done - - # Construct the $myeconfargs array by concatenating $our_conf - # (the common args) and $sapi_conf (the SAPI-specific args). - local myeconfargs=( "${our_conf[@]}" ) - myeconfargs+=( "${sapi_conf[@]}" ) - - pushd "${BUILD_DIR}" > /dev/null || die - econf "${myeconfargs[@]}" - popd > /dev/null || die - done -} - -src_compile() { - # snmp seems to run during src_compile, too (bug #324739) - addpredict /usr/share/snmp/mibs/.index #nowarn - addpredict /var/lib/net-snmp/mib_indexes #nowarn - - for sapi in ${SAPIS} ; do - if use "${sapi}"; then - cd "${WORKDIR}/sapis-build/$sapi" || \ - die "Failed to change dir to ${WORKDIR}/sapis-build/$1" - emake - fi - done -} - -src_install() { - # see bug #324739 for what happens when we don't have that - addpredict /usr/share/snmp/mibs/.index #nowarn - - # grab the first SAPI that got built and install common files from there - local first_sapi="" - for sapi in $SAPIS ; do - if use $sapi ; then - first_sapi=$sapi - break - fi - done - - # Makefile forgets to create this before trying to write to it... - dodir "${PHP_DESTDIR#${EPREFIX}}/bin" - - # Install php environment (without any sapis) - cd "${WORKDIR}/sapis-build/$first_sapi" || die - emake INSTALL_ROOT="${D}" \ - install-build install-headers install-programs - - local extension_dir="$("${ED}/${PHP_DESTDIR#${EPREFIX}}/bin/php-config" --extension-dir)" - - # Create the directory where we'll put version-specific php scripts - keepdir "/usr/share/php${PHP_MV}" - - local sapi="", file="" - local sapi_list="" - - for sapi in ${SAPIS}; do - if use "${sapi}" ; then - einfo "Installing SAPI: ${sapi}" - cd "${WORKDIR}/sapis-build/${sapi}" || die - - if [[ "${sapi}" == "apache2" ]] ; then - # We're specifically not using emake install-sapi as libtool - # may cause unnecessary relink failures (see bug #351266) - insinto "${PHP_DESTDIR#${EPREFIX}}/apache2/" - newins ".libs/libphp${PHP_MV}$(get_libname)" \ - "libphp${PHP_MV}$(get_libname)" - keepdir "/usr/$(get_libdir)/apache2/modules" - else - # needed each time, php_install_ini would reset it - local dest="${PHP_DESTDIR#${EPREFIX}}" - into "${dest}" - case "$sapi" in - cli) - source="sapi/cli/php" - ;; - cgi) - source="sapi/cgi/php-cgi" - ;; - fpm) - source="sapi/fpm/php-fpm" - ;; - embed) - source="libs/libphp${PHP_MV}$(get_libname)" - ;; - phpdbg) - source="sapi/phpdbg/phpdbg" - ;; - *) - die "unhandled sapi in src_install" - ;; - esac - - if [[ "${source}" == *"$(get_libname)" ]]; then - dolib.so "${source}" - else - dobin "${source}" - local name="$(basename ${source})" - dosym "${dest}/bin/${name}" "/usr/bin/${name}${SLOT}" - fi - fi - - php_install_ini "${sapi}" - - # construct correct SAPI string for php-config - # thanks to ferringb for the bash voodoo - if [[ "${sapi}" == "apache2" ]]; then - sapi_list="${sapi_list:+${sapi_list} }apache2handler" - else - sapi_list="${sapi_list:+${sapi_list} }${sapi}" - fi - fi - done - - # Installing opcache module - if use opcache ; then - into "${PHP_DESTDIR#${EPREFIX}}" - dolib.so "modules/opcache$(get_libname)" - fi - - # Install env.d files - newenvd "${FILESDIR}/20php5-envd" "20php${SLOT}" - sed -e "s|/lib/|/$(get_libdir)/|g" -i "${ED}/etc/env.d/20php${SLOT}" || die - sed -e "s|php5|php${SLOT}|g" -i "${ED}/etc/env.d/20php${SLOT}" || die - - # set php-config variable correctly (bug #278439) - sed -e "s:^\(php_sapis=\)\".*\"$:\1\"${sapi_list}\":" -i \ - "${ED}/usr/$(get_libdir)/php${SLOT}/bin/php-config" || die - - if use fpm ; then - if use systemd; then - systemd_newunit "${FILESDIR}/php-fpm_at.service" \ - "php-fpm@${SLOT}.service" - else - systemd_newunit "${FILESDIR}/php-fpm_at-simple.service" \ - "php-fpm@${SLOT}.service" - fi - fi -} - -src_test() { - echo ">>> Test phase [test]: ${CATEGORY}/${PF}" - PHP_BIN="${WORKDIR}/sapis-build/cli/sapi/cli/php" - if [[ ! -x "${PHP_BIN}" ]] ; then - ewarn "Test phase requires USE=cli, skipping" - return - else - export TEST_PHP_EXECUTABLE="${PHP_BIN}" - fi - - if [[ -x "${WORKDIR}/sapis-build/cgi/sapi/cgi/php-cgi" ]] ; then - export TEST_PHP_CGI_EXECUTABLE="${WORKDIR}/sapis-build/cgi/sapi/cgi/php-cgi" - fi - - if [[ -x "${WORKDIR}/sapis-build/phpdbg/sapi/phpdbg/phpdbg" ]] ; then - export TEST_PHPDBG_EXECUTABLE="${WORKDIR}/sapis-build/phpdbg/sapi/phpdbg/phpdbg" - fi - - REPORT_EXIT_STATUS=1 "${TEST_PHP_EXECUTABLE}" -n -d \ - "session.save_path=${T}" \ - "${WORKDIR}/sapis-build/cli/run-tests.php" -n -q -d \ - "session.save_path=${T}" - - for name in ${EXPECTED_TEST_FAILURES}; do - mv "${name}.out" "${name}.out.orig" 2>/dev/null || die - done - - local failed="$(find -name '*.out')" - if [[ ${failed} != "" ]] ; then - ewarn "The following test cases failed unexpectedly:" - for name in ${failed}; do - ewarn " ${name/.out/}" - done - else - einfo "No unexpected test failures, all fine" - fi - - if [[ ${PHP_SHOW_UNEXPECTED_TEST_PASS} == "1" ]] ; then - local passed="" - for name in ${EXPECTED_TEST_FAILURES}; do - [[ -f "${name}.diff" ]] && continue - passed="${passed} ${name}" - done - if [[ ${passed} != "" ]] ; then - einfo "The following test cases passed unexpectedly:" - for name in ${passed}; do - ewarn " ${passed}" - done - else - einfo "None of the known-to-fail tests passed, all fine" - fi - fi -} - -pkg_postinst() { - # Output some general info to the user - if use apache2 ; then - elog - elog "To enable PHP in apache, you will need to add \"-D PHP\" to" - elog "your apache2 command. OpenRC users can append that string to" - elog "APACHE2_OPTS in /etc/conf.d/apache2." - elog - elog "The apache module configuration file 70_mod_php.conf is" - elog "provided (and maintained) by eselect-php." - elog - fi - - # Create the symlinks for php - for m in ${SAPIS}; do - [[ ${m} == 'embed' ]] && continue; - if use $m ; then - local ci=$(eselect php show $m) - if [[ -z $ci ]]; then - eselect php set $m php${SLOT} || die - einfo "Switched ${m} to use php:${SLOT}" - einfo - elif [[ $ci != "php${SLOT}" ]] ; then - elog "To switch $m to use php:${SLOT}, run" - elog " eselect php set $m php${SLOT}" - elog - fi - fi - done - - # Remove dead symlinks for SAPIs that were just disabled. For - # example, if the user has the cgi SAPI enabled, then he has an - # eselect-php symlink for it. If he later reinstalls PHP with - # USE="-cgi", that symlink will break. This call to eselect is - # supposed to remove that dead link per bug 572436. - eselect php cleanup || die - - if ! has "php${SLOT/./-}" ${PHP_TARGETS}; then - elog "To build extensions for this version of PHP, you will need to" - elog "add php${SLOT/./-} to your PHP_TARGETS USE_EXPAND variable." - elog - fi - - # Warn about the removal of PHP_INI_VERSION if the user has it set. - if [[ -n "${PHP_INI_VERSION}" ]]; then - ewarn 'The PHP_INI_VERSION variable has been phased out. You may' - ewarn 'remove it from your configuration at your convenience. See' - ewarn - ewarn ' https://bugs.gentoo.org/611214' - ewarn - ewarn 'for more information.' - fi - - elog "For details on how version slotting works, please see" - elog "the wiki:" - elog - elog " https://wiki.gentoo.org/wiki/PHP" - elog -} - -pkg_postrm() { - # This serves two purposes. First, if we have just removed the last - # installed version of PHP, then this will remove any dead symlinks - # belonging to eselect-php. Second, if a user upgrades slots from - # (say) 5.6 to 7.0 and depcleans the old slot, then this will update - # his existing symlinks to point to the new 7.0 installation. The - # latter is bug 432962. - # - # Note: the eselect-php package may not be installed at this point, - # so we can't die() if this command fails. - eselect php cleanup -} diff --git a/dev-lang/php/php-7.2.10.ebuild b/dev-lang/php/php-7.2.10.ebuild deleted file mode 100644 index 7d83e1171df..00000000000 --- a/dev-lang/php/php-7.2.10.ebuild +++ /dev/null @@ -1,741 +0,0 @@ -# Copyright 1999-2018 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 - -inherit flag-o-matic eapi7-ver systemd - -DESCRIPTION="The PHP language runtime engine" -HOMEPAGE="https://secure.php.net/" -SRC_URI="https://secure.php.net/distributions/${P}.tar.xz" - -LICENSE="PHP-3.01 - BSD - Zend-2.0 - bcmath? ( LGPL-2.1+ ) - fpm? ( BSD-2 ) - gd? ( gd ) - unicode? ( BSD-2 LGPL-2.1 )" - -SLOT="$(ver_cut 1-2)" -KEYWORDS="alpha amd64 arm ~arm64 ~hppa ia64 ~mips ppc ppc64 ~s390 ~sh sparc x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos" - -# We can build the following SAPIs in the given order -SAPIS="embed cli cgi fpm apache2 phpdbg" - -# SAPIs and SAPI-specific USE flags (cli SAPI is default on): -IUSE="${IUSE} - ${SAPIS/cli/+cli} - threads" - -IUSE="${IUSE} acl argon2 bcmath berkdb bzip2 calendar cdb cjk - coverage +ctype curl debug - enchant exif +fileinfo +filter firebird - flatfile ftp gd gdbm gmp +hash +iconv imap inifile - intl iodbc ipv6 +json kerberos ldap ldap-sasl libedit libressl lmdb - mhash mssql mysql mysqli nls - oci8-instant-client odbc +opcache pcntl pdo +phar +posix postgres qdbm - readline recode selinux +session session-mm sharedmem - +simplexml snmp soap sockets sodium spell sqlite ssl - sysvipc systemd test tidy +tokenizer tokyocabinet truetype unicode wddx webp - +xml xmlreader xmlwriter xmlrpc xpm xslt zip zip-encryption zlib" - -# The supported (that is, autodetected) versions of BDB are listed in -# the ./configure script. Other versions *work*, but we need to stick to -# the ones that can be detected to avoid a repeat of bug #564824. -COMMON_DEPEND=" - >=app-eselect/eselect-php-0.9.1[apache2?,fpm?] - >=dev-libs/libpcre-8.32[unicode] - fpm? ( acl? ( sys-apps/acl ) ) - apache2? ( || ( >=www-servers/apache-2.4[apache2_modules_unixd,threads=] - =net-misc/curl-7.10.5 ) - enchant? ( app-text/enchant ) - firebird? ( dev-db/firebird ) - gd? ( virtual/jpeg:0 media-libs/libpng:0= sys-libs/zlib ) - gdbm? ( >=sys-libs/gdbm-1.8.0:0= ) - gmp? ( dev-libs/gmp:0= ) - iconv? ( virtual/libiconv ) - imap? ( virtual/imap-c-client[kerberos=,ssl=] ) - intl? ( dev-libs/icu:= ) - iodbc? ( dev-db/libiodbc ) - kerberos? ( virtual/krb5 ) - ldap? ( >=net-nds/openldap-1.2.11 ) - ldap-sasl? ( dev-libs/cyrus-sasl >=net-nds/openldap-1.2.11 ) - libedit? ( || ( sys-freebsd/freebsd-lib dev-libs/libedit ) ) - lmdb? ( dev-db/lmdb:= ) - mssql? ( dev-db/freetds[mssql] ) - nls? ( sys-devel/gettext ) - oci8-instant-client? ( dev-db/oracle-instantclient-basic ) - odbc? ( >=dev-db/unixODBC-1.8.13 ) - postgres? ( dev-db/postgresql:* ) - qdbm? ( dev-db/qdbm ) - readline? ( sys-libs/readline:0= ) - recode? ( app-text/recode ) - session-mm? ( dev-libs/mm ) - simplexml? ( >=dev-libs/libxml2-2.6.8 ) - snmp? ( >=net-analyzer/net-snmp-5.2 ) - soap? ( >=dev-libs/libxml2-2.6.8 ) - sodium? ( dev-libs/libsodium:= ) - spell? ( >=app-text/aspell-0.50 ) - sqlite? ( >=dev-db/sqlite-3.7.6.3 ) - ssl? ( - !libressl? ( dev-libs/openssl:0= ) - libressl? ( dev-libs/libressl:0= ) - ) - tidy? ( || ( app-text/tidy-html5 app-text/htmltidy ) ) - tokyocabinet? ( dev-db/tokyocabinet ) - truetype? ( =media-libs/freetype-2* ) - unicode? ( dev-libs/oniguruma:= ) - wddx? ( >=dev-libs/libxml2-2.6.8 ) - webp? ( media-libs/libwebp:0= ) - xml? ( >=dev-libs/libxml2-2.6.8 ) - xmlrpc? ( >=dev-libs/libxml2-2.6.8 virtual/libiconv ) - xmlreader? ( >=dev-libs/libxml2-2.6.8 ) - xmlwriter? ( >=dev-libs/libxml2-2.6.8 ) - xpm? ( x11-libs/libXpm ) - xslt? ( dev-libs/libxslt >=dev-libs/libxml2-2.6.8 ) - zip? ( sys-libs/zlib:0= ) - zip-encryption? ( >=dev-libs/libzip-1.2.0:= ) - zlib? ( sys-libs/zlib:0= ) -" - -RDEPEND="${COMMON_DEPEND} - virtual/mta - fpm? ( - selinux? ( sec-policy/selinux-phpfpm ) - systemd? ( sys-apps/systemd ) )" - -# Bison isn't actually needed when building from a release tarball -# However, the configure script will warn if it's absent or if you -# have an incompatible version installed. See bug 593278. -DEPEND="${COMMON_DEPEND} - app-arch/xz-utils - >=sys-devel/bison-3.0.1" - -# Without USE=readline or libedit, the interactive "php -a" CLI will hang. -REQUIRED_USE=" - || ( cli cgi fpm apache2 embed phpdbg ) - cli? ( ^^ ( readline libedit ) ) - truetype? ( gd zlib ) - webp? ( gd zlib ) - cjk? ( gd zlib ) - exif? ( gd zlib ) - xpm? ( gd zlib ) - gd? ( zlib ) - simplexml? ( xml ) - soap? ( xml ) - wddx? ( xml ) - xmlrpc? ( || ( xml iconv ) ) - xmlreader? ( xml ) - xslt? ( xml ) - ldap-sasl? ( ldap ) - mhash? ( hash ) - phar? ( hash ) - qdbm? ( !gdbm ) - readline? ( !libedit ) - recode? ( !imap !mysqli !mysql ) - session-mm? ( session !threads ) - mysql? ( hash || ( mysqli pdo ) ) - mysqli? ( hash ) - zip-encryption? ( zip ) -" -PATCHES=( - "${FILESDIR}/php-freetype-2.9.1.patch" -) - -PHP_MV="$(ver_cut 1)" - -php_install_ini() { - local phpsapi="${1}" - - # work out where we are installing the ini file - php_set_ini_dir "${phpsapi}" - - # Always install the production INI file, bug 611214. - local phpinisrc="php.ini-production-${phpsapi}" - cp php.ini-production "${phpinisrc}" || die - - # default to /tmp for save_path, bug #282768 - sed -e 's|^;session.save_path .*$|session.save_path = "'"${EPREFIX}"'/tmp"|g' -i "${phpinisrc}" || die - - # Set the extension dir - sed -e "s|^extension_dir .*$|extension_dir = ${extension_dir}|g" \ - -i "${phpinisrc}" || die - - # Set the include path to point to where we want to find PEAR packages - sed -e 's|^;include_path = ".:/php/includes".*|include_path = ".:'"${EPREFIX}"'/usr/share/php'${PHP_MV}':'"${EPREFIX}"'/usr/share/php"|' -i "${phpinisrc}" || die - - dodir "${PHP_INI_DIR#${EPREFIX}}" - insinto "${PHP_INI_DIR#${EPREFIX}}" - newins "${phpinisrc}" php.ini - - elog "Installing php.ini for ${phpsapi} into ${PHP_INI_DIR#${EPREFIX}}" - elog - - dodir "${PHP_EXT_INI_DIR#${EPREFIX}}" - dodir "${PHP_EXT_INI_DIR_ACTIVE#${EPREFIX}}" - - if use opcache; then - elog "Adding opcache to $PHP_EXT_INI_DIR" - echo "zend_extension=${PHP_DESTDIR}/$(get_libdir)/opcache.so" >> \ - "${D}/${PHP_EXT_INI_DIR}"/opcache.ini - dosym "${PHP_EXT_INI_DIR#${EPREFIX}}/opcache.ini" \ - "${PHP_EXT_INI_DIR_ACTIVE#${EPREFIX}}/opcache.ini" - fi - - # SAPI-specific handling - if [[ "${sapi}" == "fpm" ]] ; then - einfo "Installing FPM config files php-fpm.conf and www.conf" - insinto "${PHP_INI_DIR#${EPREFIX}}" - doins sapi/fpm/php-fpm.conf - insinto "${PHP_INI_DIR#${EPREFIX}}/fpm.d" - doins sapi/fpm/www.conf - fi - - dodoc php.ini-{development,production} -} - -php_set_ini_dir() { - PHP_INI_DIR="${EPREFIX}/etc/php/${1}-php${SLOT}" - PHP_EXT_INI_DIR="${PHP_INI_DIR}/ext" - PHP_EXT_INI_DIR_ACTIVE="${PHP_INI_DIR}/ext-active" -} - -src_prepare() { - default - - # In php-7.x, the FPM pool configuration files have been split off - # of the main config. By default the pool config files go in - # e.g. /etc/php-fpm.d, which isn't slotted. So here we move the - # include directory to a subdirectory "fpm.d" of $PHP_INI_DIR. Later - # we'll install the pool configuration file "www.conf" there. - php_set_ini_dir fpm - sed -i "s~^include=.*$~include=${PHP_INI_DIR}/fpm.d/*.conf~" \ - sapi/fpm/php-fpm.conf.in \ - || die 'failed to move the include directory in php-fpm.conf' -} - -src_configure() { - addpredict /usr/share/snmp/mibs/.index #nowarn - addpredict /var/lib/net-snmp/mib_indexes #nowarn - - PHP_DESTDIR="${EPREFIX}/usr/$(get_libdir)/php${SLOT}" - - # The php-fpm config file wants localstatedir to be ${EPREFIX}/var - # and not the Gentoo default ${EPREFIX}/var/lib. See bug 572002. - local our_conf=( - --prefix="${PHP_DESTDIR}" - --mandir="${PHP_DESTDIR}/man" - --infodir="${PHP_DESTDIR}/info" - --libdir="${PHP_DESTDIR}/lib" - --with-libdir="$(get_libdir)" - --localstatedir="${EPREFIX}/var" - --without-pear - $(use_enable threads maintainer-zts) - ) - - our_conf+=( - $(use_with argon2 password-argon2 "${EPREFIX}/usr") - $(use_enable bcmath bcmath) - $(use_with bzip2 bz2 "${EPREFIX}/usr") - $(use_enable calendar calendar) - $(use_enable coverage gcov) - $(use_enable ctype ctype) - $(use_with curl curl "${EPREFIX}/usr") - $(use_enable xml dom) - $(use_with enchant enchant "${EPREFIX}/usr") - $(use_enable exif exif) - $(use_enable fileinfo fileinfo) - $(use_enable filter filter) - $(use_enable ftp ftp) - $(use_with nls gettext "${EPREFIX}/usr") - $(use_with gmp gmp "${EPREFIX}/usr") - $(use_enable hash hash) - $(use_with mhash mhash "${EPREFIX}/usr") - $(use_with iconv iconv \ - $(use elibc_glibc || use elibc_musl || use elibc_FreeBSD || echo "${EPREFIX}/usr")) - $(use_enable intl intl) - $(use_enable ipv6 ipv6) - $(use_enable json json) - $(use_with kerberos kerberos "${EPREFIX}/usr") - $(use_enable xml libxml) - $(use_with xml libxml-dir "${EPREFIX}/usr") - $(use_enable unicode mbstring) - $(use_with unicode onig "${EPREFIX}/usr") - $(use_with ssl openssl "${EPREFIX}/usr") - $(use_with ssl openssl-dir "${EPREFIX}/usr") - $(use_enable pcntl pcntl) - $(use_enable phar phar) - $(use_enable pdo pdo) - $(use_enable opcache opcache) - $(use_with postgres pgsql "${EPREFIX}/usr") - $(use_enable posix posix) - $(use_with spell pspell "${EPREFIX}/usr") - $(use_with recode recode "${EPREFIX}/usr") - $(use_enable simplexml simplexml) - $(use_enable sharedmem shmop) - $(use_with snmp snmp "${EPREFIX}/usr") - $(use_enable soap soap) - $(use_enable sockets sockets) - $(use_with sodium sodium "${EPREFIX}/usr") - $(use_with sqlite sqlite3 "${EPREFIX}/usr") - $(use_enable sysvipc sysvmsg) - $(use_enable sysvipc sysvsem) - $(use_enable sysvipc sysvshm) - $(use_with tidy tidy "${EPREFIX}/usr") - $(use_enable tokenizer tokenizer) - $(use_enable wddx wddx) - $(use_enable xml xml) - $(use_enable xmlreader xmlreader) - $(use_enable xmlwriter xmlwriter) - $(use_with xmlrpc xmlrpc) - $(use_with xslt xsl "${EPREFIX}/usr") - $(use_enable zip zip) - $(use_with zip-encryption libzip "${EPREFIX}/usr") - $(use_with zlib zlib "${EPREFIX}/usr") - $(use_enable debug debug) - ) - - # DBA support - if use cdb || use berkdb || use flatfile || use gdbm || use inifile \ - || use qdbm || use lmdb || use tokyocabinet ; then - our_conf+=( "--enable-dba${shared}" ) - fi - - # DBA drivers support - our_conf+=( - $(use_with cdb cdb) - $(use_with berkdb db4 "${EPREFIX}/usr") - $(use_enable flatfile flatfile) - $(use_with gdbm gdbm "${EPREFIX}/usr") - $(use_enable inifile inifile) - $(use_with qdbm qdbm "${EPREFIX}/usr") - $(use_with lmdb lmdb "${EPREFIX}/usr") - ) - - # Support for the GD graphics library - our_conf+=( - $(use_with truetype freetype-dir "${EPREFIX}/usr") - $(use_enable cjk gd-jis-conv) - $(use_with gd jpeg-dir "${EPREFIX}/usr") - $(use_with gd png-dir "${EPREFIX}/usr") - $(use_with xpm xpm-dir "${EPREFIX}/usr") - ) - if use webp; then - our_conf+=( --with-webp-dir="${EPREFIX}/usr" ) - fi - # enable gd last, so configure can pick up the previous settings - our_conf+=( $(use_with gd gd) ) - - # IMAP support - if use imap ; then - our_conf+=( - $(use_with imap imap "${EPREFIX}/usr") - $(use_with ssl imap-ssl "${EPREFIX}/usr") - ) - fi - - # Interbase/firebird support - our_conf+=( $(use_with firebird interbase "${EPREFIX}/usr") ) - - # LDAP support - if use ldap ; then - our_conf+=( - $(use_with ldap ldap "${EPREFIX}/usr") - $(use_with ldap-sasl ldap-sasl "${EPREFIX}/usr") - ) - fi - - # MySQL support - local mysqllib="mysqlnd" - local mysqlilib="mysqlnd" - - our_conf+=( $(use_with mysqli mysqli "${mysqlilib}") ) - - local mysqlsock="${EPREFIX}/var/run/mysqld/mysqld.sock" - if use mysql || use mysqli ; then - our_conf+=( $(use_with mysql mysql-sock "${mysqlsock}") ) - fi - - # ODBC support - our_conf+=( - $(use_with odbc unixODBC "${EPREFIX}/usr") - $(use_with iodbc iodbc "${EPREFIX}/usr") - ) - - # Oracle support - our_conf+=( $(use_with oci8-instant-client oci8) ) - - # PDO support - if use pdo ; then - our_conf+=( - $(use_with mssql pdo-dblib "${EPREFIX}/usr") - $(use_with mysql pdo-mysql "${mysqllib}") - $(use_with postgres pdo-pgsql) - $(use_with sqlite pdo-sqlite "${EPREFIX}/usr") - $(use_with firebird pdo-firebird "${EPREFIX}/usr") - $(use_with odbc pdo-odbc "unixODBC,${EPREFIX}/usr") - $(use_with oci8-instant-client pdo-oci) - ) - fi - - # readline/libedit support - our_conf+=( - $(use_with readline readline "${EPREFIX}/usr") - $(use_with libedit libedit "${EPREFIX}/usr") - ) - - # Session support - if use session ; then - our_conf+=( $(use_with session-mm mm "${EPREFIX}/usr") ) - else - our_conf+=( $(use_enable session session) ) - fi - - # Use pic for shared modules such as apache2's mod_php - our_conf+=( --with-pic ) - - # we use the system copy of pcre - # --with-pcre-regex affects ext/pcre - # --with-pcre-dir affects ext/filter and ext/zip - # --with-pcre-valgrind cannot be enabled with system pcre - # Many arches don't support pcre-jit - our_conf+=( - --with-pcre-regex="${EPREFIX}/usr" - --with-pcre-dir="${EPREFIX}/usr" - --without-pcre-valgrind - --without-pcre-jit - ) - - # Catch CFLAGS problems - # Fixes bug #14067. - # Changed order to run it in reverse for bug #32022 and #12021. - replace-cpu-flags "k6*" "i586" - - # Cache the ./configure test results between SAPIs. - our_conf+=( --cache-file="${T}/config.cache" ) - - # Support user-passed configuration parameters - our_conf+=( ${EXTRA_ECONF:-} ) - - # Support the Apache2 extras, they must be set globally for all - # SAPIs to work correctly, especially for external PHP extensions - - mkdir -p "${WORKDIR}/sapis-build" || die - for one_sapi in $SAPIS ; do - use "${one_sapi}" || continue - php_set_ini_dir "${one_sapi}" - - # The BUILD_DIR variable is used to determine where to output - # the files that autotools creates. This was all originally - # based on the autotools-utils eclass. - BUILD_DIR="${WORKDIR}/sapis-build/${one_sapi}" - cp -a "${S}" "${BUILD_DIR}" || die - cd "${BUILD_DIR}" || die - - local sapi_conf=( - --with-config-file-path="${PHP_INI_DIR}" - --with-config-file-scan-dir="${PHP_EXT_INI_DIR_ACTIVE}" - ) - - for sapi in $SAPIS ; do - case "$sapi" in - cli|cgi|embed|fpm|phpdbg) - if [[ "${one_sapi}" == "${sapi}" ]] ; then - sapi_conf+=( "--enable-${sapi}" ) - if [[ "fpm" == "${sapi}" ]] ; then - sapi_conf+=( - $(use_with acl fpm-acl) - $(use_with systemd fpm-systemd) - ) - fi - else - sapi_conf+=( "--disable-${sapi}" ) - fi - ;; - - apache2) - if [[ "${one_sapi}" == "${sapi}" ]] ; then - sapi_conf+=( --with-apxs2="${EPREFIX}/usr/bin/apxs" ) - else - sapi_conf+=( --without-apxs2 ) - fi - ;; - esac - done - - # Construct the $myeconfargs array by concatenating $our_conf - # (the common args) and $sapi_conf (the SAPI-specific args). - local myeconfargs=( "${our_conf[@]}" ) - myeconfargs+=( "${sapi_conf[@]}" ) - - pushd "${BUILD_DIR}" > /dev/null || die - econf "${myeconfargs[@]}" - popd > /dev/null || die - done -} - -src_compile() { - # snmp seems to run during src_compile, too (bug #324739) - addpredict /usr/share/snmp/mibs/.index #nowarn - addpredict /var/lib/net-snmp/mib_indexes #nowarn - - for sapi in ${SAPIS} ; do - if use "${sapi}"; then - cd "${WORKDIR}/sapis-build/$sapi" || \ - die "Failed to change dir to ${WORKDIR}/sapis-build/$1" - emake - fi - done -} - -src_install() { - # see bug #324739 for what happens when we don't have that - addpredict /usr/share/snmp/mibs/.index #nowarn - - # grab the first SAPI that got built and install common files from there - local first_sapi="" - for sapi in $SAPIS ; do - if use $sapi ; then - first_sapi=$sapi - break - fi - done - - # Makefile forgets to create this before trying to write to it... - dodir "${PHP_DESTDIR#${EPREFIX}}/bin" - - # Install php environment (without any sapis) - cd "${WORKDIR}/sapis-build/$first_sapi" || die - emake INSTALL_ROOT="${D}" \ - install-build install-headers install-programs - - local extension_dir="$("${ED}/${PHP_DESTDIR#${EPREFIX}}/bin/php-config" --extension-dir)" - - # Create the directory where we'll put version-specific php scripts - keepdir "/usr/share/php${PHP_MV}" - - local sapi="", file="" - local sapi_list="" - - for sapi in ${SAPIS}; do - if use "${sapi}" ; then - einfo "Installing SAPI: ${sapi}" - cd "${WORKDIR}/sapis-build/${sapi}" || die - - if [[ "${sapi}" == "apache2" ]] ; then - # We're specifically not using emake install-sapi as libtool - # may cause unnecessary relink failures (see bug #351266) - insinto "${PHP_DESTDIR#${EPREFIX}}/apache2/" - newins ".libs/libphp${PHP_MV}$(get_libname)" \ - "libphp${PHP_MV}$(get_libname)" - keepdir "/usr/$(get_libdir)/apache2/modules" - else - # needed each time, php_install_ini would reset it - local dest="${PHP_DESTDIR#${EPREFIX}}" - into "${dest}" - case "$sapi" in - cli) - source="sapi/cli/php" - ;; - cgi) - source="sapi/cgi/php-cgi" - ;; - fpm) - source="sapi/fpm/php-fpm" - ;; - embed) - source="libs/libphp${PHP_MV}$(get_libname)" - ;; - phpdbg) - source="sapi/phpdbg/phpdbg" - ;; - *) - die "unhandled sapi in src_install" - ;; - esac - - if [[ "${source}" == *"$(get_libname)" ]]; then - dolib.so "${source}" - else - dobin "${source}" - local name="$(basename ${source})" - dosym "${dest}/bin/${name}" "/usr/bin/${name}${SLOT}" - fi - fi - - php_install_ini "${sapi}" - - # construct correct SAPI string for php-config - # thanks to ferringb for the bash voodoo - if [[ "${sapi}" == "apache2" ]]; then - sapi_list="${sapi_list:+${sapi_list} }apache2handler" - else - sapi_list="${sapi_list:+${sapi_list} }${sapi}" - fi - fi - done - - # Installing opcache module - if use opcache ; then - into "${PHP_DESTDIR#${EPREFIX}}" - dolib.so "modules/opcache$(get_libname)" - fi - - # Install env.d files - newenvd "${FILESDIR}/20php5-envd" "20php${SLOT}" - sed -e "s|/lib/|/$(get_libdir)/|g" -i "${ED}/etc/env.d/20php${SLOT}" || die - sed -e "s|php5|php${SLOT}|g" -i "${ED}/etc/env.d/20php${SLOT}" || die - - # set php-config variable correctly (bug #278439) - sed -e "s:^\(php_sapis=\)\".*\"$:\1\"${sapi_list}\":" -i \ - "${ED}/usr/$(get_libdir)/php${SLOT}/bin/php-config" || die - - if use fpm ; then - if use systemd; then - systemd_newunit "${FILESDIR}/php-fpm_at.service" \ - "php-fpm@${SLOT}.service" - else - systemd_newunit "${FILESDIR}/php-fpm_at-simple.service" \ - "php-fpm@${SLOT}.service" - fi - fi -} - -src_test() { - echo ">>> Test phase [test]: ${CATEGORY}/${PF}" - PHP_BIN="${WORKDIR}/sapis-build/cli/sapi/cli/php" - if [[ ! -x "${PHP_BIN}" ]] ; then - ewarn "Test phase requires USE=cli, skipping" - return - else - export TEST_PHP_EXECUTABLE="${PHP_BIN}" - fi - - if [[ -x "${WORKDIR}/sapis-build/cgi/sapi/cgi/php-cgi" ]] ; then - export TEST_PHP_CGI_EXECUTABLE="${WORKDIR}/sapis-build/cgi/sapi/cgi/php-cgi" - fi - - if [[ -x "${WORKDIR}/sapis-build/phpdbg/sapi/phpdbg/phpdbg" ]] ; then - export TEST_PHPDBG_EXECUTABLE="${WORKDIR}/sapis-build/phpdbg/sapi/phpdbg/phpdbg" - fi - - REPORT_EXIT_STATUS=1 "${TEST_PHP_EXECUTABLE}" -n -d \ - "session.save_path=${T}" \ - "${WORKDIR}/sapis-build/cli/run-tests.php" -n -q -d \ - "session.save_path=${T}" - - for name in ${EXPECTED_TEST_FAILURES}; do - mv "${name}.out" "${name}.out.orig" 2>/dev/null || die - done - - local failed="$(find -name '*.out')" - if [[ ${failed} != "" ]] ; then - ewarn "The following test cases failed unexpectedly:" - for name in ${failed}; do - ewarn " ${name/.out/}" - done - else - einfo "No unexpected test failures, all fine" - fi - - if [[ ${PHP_SHOW_UNEXPECTED_TEST_PASS} == "1" ]] ; then - local passed="" - for name in ${EXPECTED_TEST_FAILURES}; do - [[ -f "${name}.diff" ]] && continue - passed="${passed} ${name}" - done - if [[ ${passed} != "" ]] ; then - einfo "The following test cases passed unexpectedly:" - for name in ${passed}; do - ewarn " ${passed}" - done - else - einfo "None of the known-to-fail tests passed, all fine" - fi - fi -} - -pkg_postinst() { - # Output some general info to the user - if use apache2 ; then - elog - elog "To enable PHP in apache, you will need to add \"-D PHP\" to" - elog "your apache2 command. OpenRC users can append that string to" - elog "APACHE2_OPTS in /etc/conf.d/apache2." - elog - elog "The apache module configuration file 70_mod_php.conf is" - elog "provided (and maintained) by eselect-php." - elog - fi - - # Create the symlinks for php - for m in ${SAPIS}; do - [[ ${m} == 'embed' ]] && continue; - if use $m ; then - local ci=$(eselect php show $m) - if [[ -z $ci ]]; then - eselect php set $m php${SLOT} || die - einfo "Switched ${m} to use php:${SLOT}" - einfo - elif [[ $ci != "php${SLOT}" ]] ; then - elog "To switch $m to use php:${SLOT}, run" - elog " eselect php set $m php${SLOT}" - elog - fi - fi - done - - # Remove dead symlinks for SAPIs that were just disabled. For - # example, if the user has the cgi SAPI enabled, then he has an - # eselect-php symlink for it. If he later reinstalls PHP with - # USE="-cgi", that symlink will break. This call to eselect is - # supposed to remove that dead link per bug 572436. - eselect php cleanup || die - - if ! has "php${SLOT/./-}" ${PHP_TARGETS}; then - elog "To build extensions for this version of PHP, you will need to" - elog "add php${SLOT/./-} to your PHP_TARGETS USE_EXPAND variable." - elog - fi - - # Warn about the removal of PHP_INI_VERSION if the user has it set. - if [[ -n "${PHP_INI_VERSION}" ]]; then - ewarn 'The PHP_INI_VERSION variable has been phased out. You may' - ewarn 'remove it from your configuration at your convenience. See' - ewarn - ewarn ' https://bugs.gentoo.org/611214' - ewarn - ewarn 'for more information.' - fi - - elog "For details on how version slotting works, please see" - elog "the wiki:" - elog - elog " https://wiki.gentoo.org/wiki/PHP" - elog -} - -pkg_postrm() { - # This serves two purposes. First, if we have just removed the last - # installed version of PHP, then this will remove any dead symlinks - # belonging to eselect-php. Second, if a user upgrades slots from - # (say) 5.6 to 7.0 and depcleans the old slot, then this will update - # his existing symlinks to point to the new 7.0 installation. The - # latter is bug 432962. - # - # Note: the eselect-php package may not be installed at this point, - # so we can't die() if this command fails. - eselect php cleanup -}