From e4fc5bf05ab9573dec1ed05601a31cca0e19c8f5 Mon Sep 17 00:00:00 2001 From: Michael Orlitzky Date: Sun, 19 Mar 2017 13:21:12 -0400 Subject: dev-php/pecl-http: new revisions to fix extension load order. The http extension has dependencies on two other extensions, and needs to be loaded after them. Our eclass currently can't handle that -- we throw files into /etc/php/.../ext-active, and they get loaded in glob order. For an ugly workaround, I've renamed the symlinks that get installed in ext-active to "zzhttp.ini", but have left them pointing to a file named "http.ini" in the "ext" directory. That fixes the problem for pecl-http, but it would be nice to have a long-term solution for the problem. I've made a note to that effect on bug 586446, where we are tracking future improvements to the eclass. Gentoo-Bug: 586446 Gentoo-Bug: 612054 Package-Manager: Portage-2.3.3, Repoman-2.3.1 --- dev-php/pecl-http/pecl-http-2.6.0-r1.ebuild | 69 +++++++++++++++++++++++++++++ dev-php/pecl-http/pecl-http-3.1.0-r1.ebuild | 69 +++++++++++++++++++++++++++++ 2 files changed, 138 insertions(+) create mode 100644 dev-php/pecl-http/pecl-http-2.6.0-r1.ebuild create mode 100644 dev-php/pecl-http/pecl-http-3.1.0-r1.ebuild (limited to 'dev-php/pecl-http') diff --git a/dev-php/pecl-http/pecl-http-2.6.0-r1.ebuild b/dev-php/pecl-http/pecl-http-2.6.0-r1.ebuild new file mode 100644 index 000000000000..17aa145af9e9 --- /dev/null +++ b/dev-php/pecl-http/pecl-http-2.6.0-r1.ebuild @@ -0,0 +1,69 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI="6" + +PHP_EXT_NAME="http" +PHP_EXT_PECL_PKG="pecl_http" +PHP_EXT_INI="yes" +PHP_EXT_ZENDEXT="no" + +USE_PHP="php5-6 php7-0 php7-1" + +inherit php-ext-pecl-r3 + +USE_PHP="php5-6" + +KEYWORDS="~amd64 ~x86" + +DESCRIPTION="Extended HTTP Support for PHP" +LICENSE="BSD-2 MIT" +SLOT="2" +IUSE="ssl curl_ssl_gnutls curl_ssl_libressl curl_ssl_nss +curl_ssl_openssl" + +DEPEND="php_targets_php5-6? ( + dev-libs/libevent + dev-php/pecl-propro:0[php_targets_php5-6] + dev-php/pecl-raphf:0[php_targets_php5-6] + net-dns/libidn + sys-libs/zlib + ssl? ( net-misc/curl[ssl,curl_ssl_gnutls=,curl_ssl_libressl=,curl_ssl_nss=,curl_ssl_openssl=] ) + !ssl? ( net-misc/curl[-ssl] ) + dev-lang/php:5.6[hash,session,iconv] )" +RDEPEND="${DEPEND}" +PDEPEND=" + php_targets_php7-0? ( dev-php/pecl-http:7[php_targets_php7-0] ) + php_targets_php7-1? ( dev-php/pecl-http:7[php_targets_php7-1] )" + +PHP_EXT_ECONF_ARGS=( --with-http --without-http-shared-deps ) + +src_prepare() { + if use php_targets_php5-6 ; then + php-ext-source-r3_src_prepare + else + default_src_prepare + fi +} + +src_install() { + if use php_targets_php5-6 ; then + php-ext-pecl-r3_src_install + + # Ensure that the http extension is loaded after its + # dependencies raphf and propro (bug 612054). Some day + # this should be possible through the eclass (bug 586446). + local slot, file, oldname, newname + for slot in $(php_get_slots); do + php_init_slot_env "${slot}" + for file in $(php_slot_ini_files "${slot}") ; do + # Prepend "zz" to the ini symlink name. This is sadly + # coupled to the naming convention in the eclass. + oldname="${ED}/${file/ext/ext-active}" + newname="${oldname/${PHP_EXT_NAME}.ini/zz${PHP_EXT_NAME}.ini}" + mv "${oldname}" "${newname}" \ + || die "failed to rename ${oldname} to ${newname}" + einfo "renamed ${oldname} to ${newname}" + done + done + fi +} diff --git a/dev-php/pecl-http/pecl-http-3.1.0-r1.ebuild b/dev-php/pecl-http/pecl-http-3.1.0-r1.ebuild new file mode 100644 index 000000000000..39ea6b2346b9 --- /dev/null +++ b/dev-php/pecl-http/pecl-http-3.1.0-r1.ebuild @@ -0,0 +1,69 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI="6" + +PHP_EXT_NAME="http" +PHP_EXT_PECL_PKG="pecl_http" +PHP_EXT_INI="yes" +PHP_EXT_ZENDEXT="no" + +USE_PHP="php5-6 php7-0 php7-1" + +inherit php-ext-pecl-r3 + +USE_PHP="php7-0 php7-1" + +KEYWORDS="~amd64 ~x86" + +DESCRIPTION="Extended HTTP Support for PHP" +LICENSE="BSD-2 MIT" +SLOT="7" +IUSE="ssl curl_ssl_gnutls curl_ssl_libressl curl_ssl_nss +curl_ssl_openssl" + +DEPEND="dev-libs/libevent + dev-php/pecl-propro:7[php_targets_php5-6?,php_targets_php7-0?,php_targets_php7-1?] + dev-php/pecl-raphf:7[php_targets_php5-6?,php_targets_php7-0?,php_targets_php7-1?] + net-dns/libidn + sys-libs/zlib + ssl? ( net-misc/curl[ssl,curl_ssl_gnutls=,curl_ssl_libressl=,curl_ssl_nss=,curl_ssl_openssl=] ) + !ssl? ( net-misc/curl[-ssl] ) + php_targets_php7-0? ( dev-lang/php:7.0[hash,session,iconv] ) + php_targets_php7-1? ( dev-lang/php:7.1[hash,session,iconv] )" +RDEPEND="${DEPEND} + php_targets_php5-6? ( dev-php/pecl-http:2[php_targets_php5-6] )" + +PHP_EXT_ECONF_ARGS=( --with-http --without-http-shared-deps ) + +PATCHES=( "${FILESDIR}/pecl-http-gnutls.patch" ) + +src_prepare() { + if use php_targets_php7-0 || use php_targets_php7-1 ; then + php-ext-source-r3_src_prepare + else + default_src_prepare + fi +} + +src_install() { + if use php_targets_php7-0 || use php_targets_php7-1 ; then + php-ext-pecl-r3_src_install + + # Ensure that the http extension is loaded after its + # dependencies raphf and propro (bug 612054). Some day + # this should be possible through the eclass (bug 586446). + local slot, file, oldname, newname + for slot in $(php_get_slots); do + php_init_slot_env "${slot}" + for file in $(php_slot_ini_files "${slot}") ; do + # Prepend "zz" to the ini symlink name. This is sadly + # coupled to the naming convention in the eclass. + oldname="${ED}/${file/ext/ext-active}" + newname="${oldname/${PHP_EXT_NAME}.ini/zz${PHP_EXT_NAME}.ini}" + mv "${oldname}" "${newname}" \ + || die "failed to rename ${oldname} to ${newname}" + einfo "renamed ${oldname} to ${newname}" + done + done + fi +} -- cgit v1.2.3-18-g5258