mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-07-31 23:08:09 -07:00
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
This commit is contained in:
69
dev-php/pecl-http/pecl-http-2.6.0-r1.ebuild
Normal file
69
dev-php/pecl-http/pecl-http-2.6.0-r1.ebuild
Normal file
@@ -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
|
||||
}
|
||||
69
dev-php/pecl-http/pecl-http-3.1.0-r1.ebuild
Normal file
69
dev-php/pecl-http/pecl-http-3.1.0-r1.ebuild
Normal file
@@ -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
|
||||
}
|
||||
Reference in New Issue
Block a user