diff options
author | Marien Zwart <marienz@gentoo.org> | 2012-06-13 11:20:28 +0000 |
---|---|---|
committer | Marien Zwart <marienz@gentoo.org> | 2012-06-13 11:20:28 +0000 |
commit | be6c7f3fc32480e0349965396a52f89191563d38 (patch) | |
tree | 6ba82fa78b8fe63025c0ab529a690ffc3e7ec6b9 /dev-python/pycurl | |
parent | Bump to latest release. Remove older which is actually newer and put directly... (diff) | |
download | historical-be6c7f3fc32480e0349965396a52f89191563d38.tar.gz historical-be6c7f3fc32480e0349965396a52f89191563d38.tar.bz2 historical-be6c7f3fc32480e0349965396a52f89191563d38.zip |
Improve handling of curl ssl backends (#408821, #329987), restrict pypy.
Package-Manager: portage-2.2.0_alpha110/cvs/Linux x86_64
Diffstat (limited to 'dev-python/pycurl')
-rw-r--r-- | dev-python/pycurl/ChangeLog | 8 | ||||
-rw-r--r-- | dev-python/pycurl/Manifest | 14 | ||||
-rw-r--r-- | dev-python/pycurl/files/pycurl-7.19.0-linking-v2.patch | 55 | ||||
-rw-r--r-- | dev-python/pycurl/pycurl-7.19.0-r1.ebuild | 59 |
4 files changed, 129 insertions, 7 deletions
diff --git a/dev-python/pycurl/ChangeLog b/dev-python/pycurl/ChangeLog index a938b762862a..5f4f9d109ea6 100644 --- a/dev-python/pycurl/ChangeLog +++ b/dev-python/pycurl/ChangeLog @@ -1,6 +1,12 @@ # ChangeLog for dev-python/pycurl # Copyright 1999-2012 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/dev-python/pycurl/ChangeLog,v 1.69 2012/04/18 21:41:41 neurogeek Exp $ +# $Header: /var/cvsroot/gentoo-x86/dev-python/pycurl/ChangeLog,v 1.70 2012/06/13 11:20:28 marienz Exp $ + +*pycurl-7.19.0-r1 (13 Jun 2012) + + 13 Jun 2012; Marien Zwart <marienz@gentoo.org> + +files/pycurl-7.19.0-linking-v2.patch, +pycurl-7.19.0-r1.ebuild: + Improve handling of curl ssl backends (#408821, #329987), restrict pypy. 18 Apr 2012; Jesus Rivero <neurogeek@gentoo.org> files/pycurl-7.19.0-linking.patch: diff --git a/dev-python/pycurl/Manifest b/dev-python/pycurl/Manifest index 7a4eab5b80f8..f0dc8b9f3952 100644 --- a/dev-python/pycurl/Manifest +++ b/dev-python/pycurl/Manifest @@ -1,15 +1,17 @@ -----BEGIN PGP SIGNED MESSAGE----- -Hash: SHA1 +Hash: SHA256 +AUX pycurl-7.19.0-linking-v2.patch 2009 RMD160 f771a88ca50d9315766e7963b7ecc63d0ca22a2d SHA1 f6aa14ae39b470aa7bbfa38a995d7290467bfdf4 SHA256 bd4b98144b9bc6ef8a5b8a328ef71b2aa236af3115a2cb3f252036e84a5c4081 AUX pycurl-7.19.0-linking.patch 871 RMD160 8664b7beb96354153b1a5a048845f9d02c5c3489 SHA1 95faf82b73d87ca168e7cdfc5472cafcedda32dd SHA256 7f6dfe49f7147d85e3ac53b3192b7514197fa0ac8e1c763c803ff94d5fc921be DIST pycurl-7.19.0.tar.gz 71346 RMD160 dab547b3db67ed30cafb556a1a383f567064de49 SHA1 3fb59eca1461331bb9e9e8d6fe3b23eda961a416 SHA256 eb782dfcc5a7c023539a077462b83c167e178128ee9f7201665b9fbb1a8b0642 +EBUILD pycurl-7.19.0-r1.ebuild 1989 RMD160 0a04b2f6641fb8cb70362136b6f68e96abf6768d SHA1 ad16488c61992d69434e66f8220a5a20c42e0a42 SHA256 e8b86ef254f0943fc1643de754425c56b6b7feb274bbb24de8f723814d5db872 EBUILD pycurl-7.19.0.ebuild 1294 RMD160 28e3acddf6890e4a0a8c503f756bce59d676577d SHA1 c69f117528790a85c747534cbcf512bf5d8c3184 SHA256 56309f8ad5c8bcfda86ff052970247c3140cffff6a906c59b7d9bcccc0e3c67f -MISC ChangeLog 9535 RMD160 97d97753cf4d43a765c6a5fe1f191b833df6c3c5 SHA1 99216d1a815a93154b32910a7525b9771b5090aa SHA256 93da999b56c1dacdf855909ecb50ec07adcae5938b4494fc5fa8c03d29269798 +MISC ChangeLog 9758 RMD160 6e637e75850bf228629727238337a0f3aeb92f48 SHA1 2c12c247f9a45df6dcd92a66eea0e76fa4058360 SHA256 f04ab4a877f08255ca70c03e7b55ade08c6e8d0fb51d3dd6c24b0a6aee2c48c8 MISC metadata.xml 826 RMD160 41f5a5d9c8ca00c1ec94fabccdc1a64df9a0adcb SHA1 88b4ce003ac375f0f56ee4386cc6a4d7d3cd5d89 SHA256 fdc8c57902acabf11f4b07cd9ac36960db5c41d8f9e94e238cf9e40903a51dad -----BEGIN PGP SIGNATURE----- -Version: GnuPG v2.0.17 (GNU/Linux) +Version: GnuPG v2.0.19 (GNU/Linux) -iEYEARECAAYFAk+O/PsACgkQdIssYB9vBoM4wwCcCFptUFGtOuZgBEUZtls9qNvu -WLYAnAruROAwxv8HuZcqSJR1jP4x9MWc -=Zyq6 +iF4EAREIAAYFAk/Yd4YACgkQpnr2roL0g0nJ0QEAo4TfM1G8BMWUhS7XSU5i4lu/ +ab8y+x2kHLi3omCBhKkA/Av7qhX9uqgygbK7a93nYCo0XwK5gOt1pa20PAvQE+C3 +=cwzA -----END PGP SIGNATURE----- diff --git a/dev-python/pycurl/files/pycurl-7.19.0-linking-v2.patch b/dev-python/pycurl/files/pycurl-7.19.0-linking-v2.patch new file mode 100644 index 000000000000..4d85778786fd --- /dev/null +++ b/dev-python/pycurl/files/pycurl-7.19.0-linking-v2.patch @@ -0,0 +1,55 @@ +* Ignore curl-config --static-libs, as we should link dynamically. +* Only initialize gcrypt if we are using an older gnutls that needs this. + This is necessary to support newer gnutls linked to libnettle instead of libgcrypt. +* Mark NSS as supported, as it does not require the application to initialize threading. + +--- setup.py ++++ setup.py +@@ -96,9 +96,7 @@ + include_dirs.append(e[2:]) + else: + extra_compile_args.append(e) +- libs = split_quoted( +- os.popen("'%s' --libs" % CURL_CONFIG).read()+\ +- os.popen("'%s' --static-libs" % CURL_CONFIG).read()) ++ libs = split_quoted(os.popen("'%s' --libs" % CURL_CONFIG).read()) + for e in libs: + if e[:2] == "-l": + libraries.append(e[2:]) +@@ -106,6 +104,8 @@ + define_macros.append(('HAVE_CURL_OPENSSL', 1)) + if e[2:] == 'gnutls': + define_macros.append(('HAVE_CURL_GNUTLS', 1)) ++ if e[2:] == 'ssl3': ++ define_macros.append(('HAVE_CURL_NSS', 1)) + elif e[:2] == "-L": + library_dirs.append(e[2:]) + else: + +--- src/pycurl.c ++++ src/pycurl.c +@@ -78,15 +78,18 @@ + # define PYCURL_NEED_OPENSSL_TSL + # include <openssl/crypto.h> + # elif defined(HAVE_CURL_GNUTLS) +-# define PYCURL_NEED_SSL_TSL +-# define PYCURL_NEED_GNUTLS_TSL +-# include <gcrypt.h> +-# else ++# include <gnutls/gnutls.h> ++# if GNUTLS_VERSION_NUMBER <= 0x020b00 ++# define PYCURL_NEED_SSL_TSL ++# define PYCURL_NEED_GNUTLS_TSL ++# include <gcrypt.h> ++# endif ++# elif !defined(HAVE_CURL_NSS) + # warning \ + "libcurl was compiled with SSL support, but configure could not determine which " \ + "library was used; thus no SSL crypto locking callbacks will be set, which may " \ + "cause random crashes on SSL requests" +-# endif /* HAVE_CURL_OPENSSL || HAVE_CURL_GNUTLS */ ++# endif /* HAVE_CURL_OPENSSL || HAVE_CURL_GNUTLS || HAVE_CURL_NSS */ + #endif /* HAVE_CURL_SSL */ + + #if defined(PYCURL_NEED_SSL_TSL) + diff --git a/dev-python/pycurl/pycurl-7.19.0-r1.ebuild b/dev-python/pycurl/pycurl-7.19.0-r1.ebuild new file mode 100644 index 000000000000..42c481545005 --- /dev/null +++ b/dev-python/pycurl/pycurl-7.19.0-r1.ebuild @@ -0,0 +1,59 @@ +# Copyright 1999-2012 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/dev-python/pycurl/pycurl-7.19.0-r1.ebuild,v 1.1 2012/06/13 11:20:28 marienz Exp $ + +EAPI="4" +PYTHON_DEPEND="2" +SUPPORT_PYTHON_ABIS="1" +# The selftests fail with pypy, and urlgrabber segfaults for me. +RESTRICT_PYTHON_ABIS="3.* *-jython *-pypy-*" + +inherit distutils eutils + +DESCRIPTION="python binding for curl/libcurl" +HOMEPAGE="http://pycurl.sourceforge.net/ http://pypi.python.org/pypi/pycurl" +SRC_URI="http://pycurl.sourceforge.net/download/${P}.tar.gz" + +LICENSE="LGPL-2.1" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~x86-fbsd ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos" +IUSE="examples" +# Copied from the curl ebuild. Keep in sync. +IUSE="${IUSE} curl_ssl_axtls curl_ssl_cyassl curl_ssl_gnutls curl_ssl_nss +curl_ssl_openssl curl_ssl_polarssl" + +# Depend on a curl with curl_ssl_* USE flags. +# libcurl must not be using an ssl backend we do not support. +# If the libcurl ssl backend changes pycurl should be recompiled. +# If curl uses gnutls, depend on at least gnutls 2.11.0 so that pycurl +# does not need to initialize gcrypt threading and we do not need to +# explicitly link to libgcrypt. +DEPEND=">=net-misc/curl-7.25.0-r1[curl_ssl_gnutls=,curl_ssl_openssl=,curl_ssl_nss=,-curl_ssl_axtls,-curl_ssl_cyassl,-curl_ssl_polarssl] + curl_ssl_gnutls? ( >=net-libs/gnutls-2.11.0 )" +RDEPEND="${DEPEND}" + +PYTHON_MODNAME="curl" + +src_prepare() { + distutils_src_prepare + epatch "${FILESDIR}/${P}-linking-v2.patch" +} + +src_test() { + testing() { + PYTHONPATH="$(ls -d build-${PYTHON_ABI}/lib.*)" "$(PYTHON)" tests/test_internals.py -q + } + python_execute_function testing +} + +src_install() { + sed -e "/data_files=/d" -i setup.py || die "sed in setup.py failed" + + distutils_src_install + + dohtml -r doc/* + + if use examples; then + insinto /usr/share/doc/${PF} + doins -r examples tests + fi +} |