aboutsummaryrefslogtreecommitdiffstats
path: root/net-p2p/py-bittorrent-devel
diff options
context:
space:
mode:
authorlioux <lioux@FreeBSD.org>2004-12-09 03:19:29 +0800
committerlioux <lioux@FreeBSD.org>2004-12-09 03:19:29 +0800
commitaa0d1257c81346e9add4f0612a98a8cf6ba358b0 (patch)
treee92a4b7a9a01678d498c7ab5c2fda5a502bd1e74 /net-p2p/py-bittorrent-devel
parentc63db7ebdc2d6b9b640ce6efd34b49b9c808dce5 (diff)
downloadfreebsd-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/Makefile8
-rw-r--r--net-p2p/py-bittorrent-devel/files/zurllib.py61
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()