summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Orlitzky <mjo@gentoo.org>2017-03-19 13:21:12 -0400
committerMichael Orlitzky <mjo@gentoo.org>2017-03-19 13:32:16 -0400
commite4fc5bf05ab9573dec1ed05601a31cca0e19c8f5 (patch)
treec65e221971f51bc1158901f4614f69f580ed76fa /dev-php/pecl-http
parentdev-php/pecl-http: remove unused versions 2.5.6 and 3.0.1. (diff)
downloadgentoo-e4fc5bf05ab9573dec1ed05601a31cca0e19c8f5.tar.gz
gentoo-e4fc5bf05ab9573dec1ed05601a31cca0e19c8f5.tar.bz2
gentoo-e4fc5bf05ab9573dec1ed05601a31cca0e19c8f5.zip
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
Diffstat (limited to 'dev-php/pecl-http')
-rw-r--r--dev-php/pecl-http/pecl-http-2.6.0-r1.ebuild69
-rw-r--r--dev-php/pecl-http/pecl-http-3.1.0-r1.ebuild69
2 files changed, 138 insertions, 0 deletions
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
+}