diff options
author | lioux <lioux@FreeBSD.org> | 2004-12-09 03:19:29 +0800 |
---|---|---|
committer | lioux <lioux@FreeBSD.org> | 2004-12-09 03:19:29 +0800 |
commit | aa0d1257c81346e9add4f0612a98a8cf6ba358b0 (patch) | |
tree | e92a4b7a9a01678d498c7ab5c2fda5a502bd1e74 /net-p2p/py-bittorrent-devel | |
parent | c63db7ebdc2d6b9b640ce6efd34b49b9c808dce5 (diff) | |
download | freebsd-ports-gnome-aa0d1257c81346e9add4f0612a98a8cf6ba358b0.tar.gz freebsd-ports-gnome-aa0d1257c81346e9add4f0612a98a8cf6ba358b0.tar.zst freebsd-ports-gnome-aa0d1257c81346e9add4f0612a98a8cf6ba358b0.zip |
o Fix issue with python 2.4. Fix with small changes from Hoffman
obtained from BitTornado forum
http://forums.degreez.net/viewtopic.php?t=3581&sid=2428d7d8dff1871f7fb2118548bdc86c
o Bump PORTREVISION to force update
o Remove BROKEN
Diffstat (limited to 'net-p2p/py-bittorrent-devel')
-rw-r--r-- | net-p2p/py-bittorrent-devel/Makefile | 8 | ||||
-rw-r--r-- | net-p2p/py-bittorrent-devel/files/zurllib.py | 61 |
2 files changed, 66 insertions, 3 deletions
diff --git a/net-p2p/py-bittorrent-devel/Makefile b/net-p2p/py-bittorrent-devel/Makefile index 50830269b263..f3ad85dea2a2 100644 --- a/net-p2p/py-bittorrent-devel/Makefile +++ b/net-p2p/py-bittorrent-devel/Makefile @@ -7,7 +7,7 @@ PORTNAME= BitTorrent PORTVERSION= 3.4.2 -PORTREVISION= 1 +PORTREVISION= 2 PORTEPOCH= 1 CATEGORIES?= net python MASTER_SITES= ${MASTER_SITE_SOURCEFORGE_EXTENDED} @@ -18,8 +18,6 @@ PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} MAINTAINER= lioux@FreeBSD.org COMMENT?= A peer-to-peer tool for distributing files written in Python -BROKEN= Does not work with python 2.4 - USE_PYTHON= yes USE_PYDISTUTILS= yes USE_REINPLACE= yes @@ -46,6 +44,10 @@ pre-everything:: @${ECHO_MSG} '===> Define WITHOUT_GUI to disable GUI installation' .endif +post-extract: +# patch to work with python 2.4 + @${CP} ${FILESDIR}/zurllib.py ${WRKSRC}/BitTorrent + post-patch: @${FIND} ${WRKSRC} -type f | \ ${XARGS} -x -n 10 \ diff --git a/net-p2p/py-bittorrent-devel/files/zurllib.py b/net-p2p/py-bittorrent-devel/files/zurllib.py new file mode 100644 index 000000000000..a99ca51142bb --- /dev/null +++ b/net-p2p/py-bittorrent-devel/files/zurllib.py @@ -0,0 +1,61 @@ +# Written by John Hoffman +# see LICENSE.txt for license information + +from httplib import HTTPConnection +from urlparse import urlparse +import socket +from gzip import GzipFile +from StringIO import StringIO +from urllib import quote, unquote +from __init__ import version + +MAX_REDIRECTS = 10 + +class urlopen: + def __init__(self, url): + self.tries = 0 + self._open(url) + + def _open(self, url): + self.tries += 1 + if self.tries > MAX_REDIRECTS: + raise IOError, ('http error', 500, + "Internal Server Error: Redirect Recursion") + (scheme, netloc, path, pars, query, fragment) = urlparse(url) + if scheme != 'http': + raise IOError, ('url error', 'unknown url type', scheme, url) + url = path + if pars: + url += ';'+pars + if query: + url += '?'+query +# if fragment: + self.connection = HTTPConnection(netloc) + self.connection.request('GET', url, None, + { 'User-Agent': 'BitTorrent/' + version, + 'Accept-Encoding': 'gzip' } ) + self.response = self.connection.getresponse() + status = self.response.status + if status in (301,302): + try: + self.connection.close() + except: + pass + self._open(self.response.getheader('Location')) + return + if status != 200: + raise IOError, ('http error', status, self.response.reason) + + def read(self): + data = self.response.read() + if self.response.getheader('Content-Encoding','').find('gzip') >= 0: + try: + compressed = StringIO(data) + f = GzipFile(fileobj = compressed) + data = f.read() + except: + raise IOError, ('http error', 'got corrupt response') + return data + + def close(self): + self.connection.close() |