diff options
author | Patrick Lauer <patrick@gentoo.org> | 2009-04-23 09:10:39 +0000 |
---|---|---|
committer | Patrick Lauer <patrick@gentoo.org> | 2009-04-23 09:10:39 +0000 |
commit | ff398167ec961e36525376f7e324730f0d76e449 (patch) | |
tree | 96f2e7d3fa0866e1124b36ea2d1c8da1212e208f /dev-python/httplib2 | |
parent | add x11-apps/xwininfo to RDEPEND as reported on bug 265069 by cedk (diff) | |
download | gentoo-2-ff398167ec961e36525376f7e324730f0d76e449.tar.gz gentoo-2-ff398167ec961e36525376f7e324730f0d76e449.tar.bz2 gentoo-2-ff398167ec961e36525376f7e324730f0d76e449.zip |
Py 2.6 deprecation fix. Thanks to djc for pointing it out, thanks to Benoit Chesneau for the patch. Fixes #267184
(Portage version: 2.2_rc31/cvs/Linux x86_64)
Diffstat (limited to 'dev-python/httplib2')
-rw-r--r-- | dev-python/httplib2/ChangeLog | 9 | ||||
-rw-r--r-- | dev-python/httplib2/files/compat-2.6-0.4.0.patch | 140 | ||||
-rw-r--r-- | dev-python/httplib2/httplib2-0.4.0-r1.ebuild | 22 |
3 files changed, 170 insertions, 1 deletions
diff --git a/dev-python/httplib2/ChangeLog b/dev-python/httplib2/ChangeLog index 3e67899af05e..88e8cf66d9d9 100644 --- a/dev-python/httplib2/ChangeLog +++ b/dev-python/httplib2/ChangeLog @@ -1,6 +1,13 @@ # ChangeLog for dev-python/httplib2 # Copyright 1999-2009 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/dev-python/httplib2/ChangeLog,v 1.8 2009/04/14 09:45:48 armin76 Exp $ +# $Header: /var/cvsroot/gentoo-x86/dev-python/httplib2/ChangeLog,v 1.9 2009/04/23 09:10:39 patrick Exp $ + +*httplib2-0.4.0-r1 (23 Apr 2009) + + 23 Apr 2009; Patrick Lauer <patrick@gentoo.org> + +files/compat-2.6-0.4.0.patch, +httplib2-0.4.0-r1.ebuild: + Py 2.6 deprecation fix. Thanks to djc for pointing it out, thanks to + Benoit Chesneau for the patch. Fixes #267184 14 Apr 2009; Raúl Porcel <armin76@gentoo.org> httplib2-0.4.0.ebuild: x86 stable wrt #264496 diff --git a/dev-python/httplib2/files/compat-2.6-0.4.0.patch b/dev-python/httplib2/files/compat-2.6-0.4.0.patch new file mode 100644 index 000000000000..f02232ce5e93 --- /dev/null +++ b/dev-python/httplib2/files/compat-2.6-0.4.0.patch @@ -0,0 +1,140 @@ +Index: httplib2/__init__.py +=================================================================== +--- httplib2/__init__.py (revision 274) ++++ httplib2/__init__.py (revision 275) +@@ -26,7 +26,6 @@ + + import re + import sys +-import md5 + import email + import email.Utils + import email.Message +@@ -42,7 +41,14 @@ + import calendar + import time + import random +-import sha ++# remove depracated warning in python2.6 ++try: ++ from hashlib import sha1 as _sha, md5 as _md5 ++except ImportError: ++ import sha ++ import md5 ++ _sha = sha.new ++ _md5 = md5.new + import hmac + from gettext import gettext as _ + import socket +@@ -52,12 +58,27 @@ + except ImportError: + socks = None + ++# Build the appropriate socket wrapper for ssl ++try: ++ import ssl # python 2.6 ++ _ssl_wrap_socket = ssl.wrap_socket ++except ImportError: ++ def _ssl_wrap_socket(sock, key_file, cert_file): ++ ssl_sock = socket.ssl(sock, key_file, cert_file) ++ return httplib.FakeSocket(sock, ssl_sock) ++ ++ + if sys.version_info >= (2,3): + from iri2uri import iri2uri + else: + def iri2uri(uri): + return uri + ++def has_timeout(timeout): # python 2.6 ++ if hasattr(socket, '_GLOBAL_DEFAULT_TIMEOUT'): ++ return (timeout is not None and timeout is not socket._GLOBAL_DEFAULT_TIMEOUT) ++ return (timeout is not None) ++ + __all__ = ['Http', 'Response', 'ProxyInfo', 'HttpLib2Error', + 'RedirectMissingLocation', 'RedirectLimit', 'FailedToDecompressContent', + 'UnimplementedDigestAuthOptionError', 'UnimplementedHmacDigestAuthOptionError', +@@ -182,7 +203,7 @@ + pass + if isinstance(filename,unicode): + filename=filename.encode('utf-8') +- filemd5 = md5.new(filename).hexdigest() ++ filemd5 = _md5(filename).hexdigest() + filename = re_url_scheme.sub("", filename) + filename = re_slash.sub(",", filename) + +@@ -363,11 +384,11 @@ + cache.set(cachekey, text) + + def _cnonce(): +- dig = md5.new("%s:%s" % (time.ctime(), ["0123456789"[random.randrange(0, 9)] for i in range(20)])).hexdigest() ++ dig = _md5("%s:%s" % (time.ctime(), ["0123456789"[random.randrange(0, 9)] for i in range(20)])).hexdigest() + return dig[:16] + + def _wsse_username_token(cnonce, iso_now, password): +- return base64.encodestring(sha.new("%s%s%s" % (cnonce, iso_now, password)).digest()).strip() ++ return base64.encodestring(_sha("%s%s%s" % (cnonce, iso_now, password)).digest()).strip() + + + # For credentials we need two things, first +@@ -441,7 +462,7 @@ + + def request(self, method, request_uri, headers, content, cnonce = None): + """Modify the request headers""" +- H = lambda x: md5.new(x).hexdigest() ++ H = lambda x: _md5(x).hexdigest() + KD = lambda s, d: H("%s:%s" % (s, d)) + A2 = "".join([method, ":", request_uri]) + self.challenge['cnonce'] = cnonce or _cnonce() +@@ -501,13 +522,13 @@ + if self.challenge['pw-algorithm'] not in ['SHA-1', 'MD5']: + raise UnimplementedHmacDigestAuthOptionError( _("Unsupported value for pw-algorithm: %s." % self.challenge['pw-algorithm'])) + if self.challenge['algorithm'] == 'HMAC-MD5': +- self.hashmod = md5 ++ self.hashmod = _md5 + else: +- self.hashmod = sha ++ self.hashmod = _sha + if self.challenge['pw-algorithm'] == 'MD5': +- self.pwhashmod = md5 ++ self.pwhashmod = _md5 + else: +- self.pwhashmod = sha ++ self.pwhashmod = _sha + self.key = "".join([self.credentials[0], ":", + self.pwhashmod.new("".join([self.credentials[1], self.challenge['salt']])).hexdigest().lower(), + ":", self.challenge['realm'] +@@ -604,9 +625,6 @@ + + AUTH_SCHEME_ORDER = ["hmacdigest", "googlelogin", "digest", "wsse", "basic"] + +-def _md5(s): +- return +- + class FileCache(object): + """Uses a local directory as a store for cached files. + Not really safe to use if multiple threads or processes are going to +@@ -701,7 +719,7 @@ + else: + self.sock = socket.socket(af, socktype, proto) + # Different from httplib: support timeouts. +- if self.timeout is not None: ++ if has_timeout(self.timeout): + self.sock.settimeout(self.timeout) + # End of difference from httplib. + if self.debuglevel > 0: +@@ -737,11 +755,11 @@ + sock.setproxy(*self.proxy_info.astuple()) + else: + sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) +- if self.timeout is not None: ++ ++ if has_timeout(self.timeout): + sock.settimeout(self.timeout) + sock.connect((self.host, self.port)) +- ssl = socket.ssl(sock, self.key_file, self.cert_file) +- self.sock = httplib.FakeSocket(sock, ssl) ++ self.sock =_ssl_wrap_socket(sock, self.key_file, self.cert_file) + + + diff --git a/dev-python/httplib2/httplib2-0.4.0-r1.ebuild b/dev-python/httplib2/httplib2-0.4.0-r1.ebuild new file mode 100644 index 000000000000..2aabd544e588 --- /dev/null +++ b/dev-python/httplib2/httplib2-0.4.0-r1.ebuild @@ -0,0 +1,22 @@ +# Copyright 1999-2009 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/dev-python/httplib2/httplib2-0.4.0-r1.ebuild,v 1.1 2009/04/23 09:10:39 patrick Exp $ + +NEED_PYTHON=2.3 + +inherit distutils + +DESCRIPTION="A comprehensive HTTP client library with caching and authentication." +HOMEPAGE="http://code.google.com/p/httplib2/" +SRC_URI="http://httplib2.googlecode.com/files/${P}.tar.gz" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~amd64 ~ppc ~x86" + +IUSE="" + +src_unpack() { + distutils_src_unpack + epatch "${FILESDIR}"/compat-2.6-${PV}.patch +} |