summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarien Zwart <marienz@gentoo.org>2012-06-13 11:20:28 +0000
committerMarien Zwart <marienz@gentoo.org>2012-06-13 11:20:28 +0000
commitbe6c7f3fc32480e0349965396a52f89191563d38 (patch)
tree6ba82fa78b8fe63025c0ab529a690ffc3e7ec6b9 /dev-python/pycurl
parentBump to latest release. Remove older which is actually newer and put directly... (diff)
downloadhistorical-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/ChangeLog8
-rw-r--r--dev-python/pycurl/Manifest14
-rw-r--r--dev-python/pycurl/files/pycurl-7.19.0-linking-v2.patch55
-rw-r--r--dev-python/pycurl/pycurl-7.19.0-r1.ebuild59
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
+}