aboutsummaryrefslogtreecommitdiffstats
path: root/net-p2p/py-kenosis-bittorrent
diff options
context:
space:
mode:
Diffstat (limited to 'net-p2p/py-kenosis-bittorrent')
-rw-r--r--net-p2p/py-kenosis-bittorrent/Makefile144
-rw-r--r--net-p2p/py-kenosis-bittorrent/distinfo3
-rw-r--r--net-p2p/py-kenosis-bittorrent/files/extra-gui-patch-setup.py25
-rw-r--r--net-p2p/py-kenosis-bittorrent/files/extra-nogui-patch-setup.py27
-rw-r--r--net-p2p/py-kenosis-bittorrent/files/extra-psyco-patch-btcompletedir.py18
-rw-r--r--net-p2p/py-kenosis-bittorrent/files/extra-psyco-patch-btcompletedirgui.py18
-rw-r--r--net-p2p/py-kenosis-bittorrent/files/extra-psyco-patch-btdownloadcurses.py18
-rw-r--r--net-p2p/py-kenosis-bittorrent/files/extra-psyco-patch-btdownloadgui.py18
-rw-r--r--net-p2p/py-kenosis-bittorrent/files/extra-psyco-patch-btdownloadheadless.py18
-rw-r--r--net-p2p/py-kenosis-bittorrent/files/extra-psyco-patch-btlaunchmany.py18
-rw-r--r--net-p2p/py-kenosis-bittorrent/files/extra-psyco-patch-btlaunchmanycurses.py18
-rw-r--r--net-p2p/py-kenosis-bittorrent/files/extra-psyco-patch-btmakemetafile.py18
-rw-r--r--net-p2p/py-kenosis-bittorrent/files/extra-psyco-patch-bttrack.py18
-rw-r--r--net-p2p/py-kenosis-bittorrent/files/patch-BitTorrent::Rerequester.py30
-rw-r--r--net-p2p/py-kenosis-bittorrent/files/patch-BitTorrent::track.py300
-rw-r--r--net-p2p/py-kenosis-bittorrent/files/patch-BitTorrent::zurllib.py18
-rw-r--r--net-p2p/py-kenosis-bittorrent/files/patch-btcompletedir.py12
-rw-r--r--net-p2p/py-kenosis-bittorrent/files/zurllib.py61
-rw-r--r--net-p2p/py-kenosis-bittorrent/pkg-descr23
-rw-r--r--net-p2p/py-kenosis-bittorrent/pkg-message48
-rw-r--r--net-p2p/py-kenosis-bittorrent/pkg-plist95
21 files changed, 0 insertions, 948 deletions
diff --git a/net-p2p/py-kenosis-bittorrent/Makefile b/net-p2p/py-kenosis-bittorrent/Makefile
deleted file mode 100644
index 02216ce4f07..00000000000
--- a/net-p2p/py-kenosis-bittorrent/Makefile
+++ /dev/null
@@ -1,144 +0,0 @@
-# New ports collection makefile for: Kenosis enabled BitTorrent
-# Date created: Thu Jan 13 01:15:19 UTC 2005
-# Whom: Mario Sergio Fujikawa Ferreira <lioux@FreeBSD.org>
-#
-# $FreeBSD$
-#
-
-PORTNAME= kenosis
-PORTVERSION= ${KENOSIS_VERSION}.0.3.4.2
-PORTREVISION= 5
-PORTEPOCH= 2
-CATEGORIES?= net-p2p python
-MASTER_SITES= ${MASTER_SITE_SOURCEFORGE}
-MASTER_SITE_SUBDIR= ${PORTNAME:L}
-PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
-PKGNAMESUFFIX= -BitTorrent
-DISTNAME= ${KENOSIS_DISTNAME}
-
-MAINTAINER= ports@FreeBSD.org
-COMMENT?= A Kenosis enabled, distributed BitTorrent
-
-RUN_DEPENDS= ${PYTHON_SITELIBDIR}/kenosis/__init__.py:${PORTSDIR}/net-p2p/py-kenosis
-
-BROKEN= fails to install
-DEPRECATED= Has been broken for more than 6 months
-EXPIRATION_DATE=2008-09-19
-
-USE_PYTHON= yes
-USE_PYDISTUTILS= yes
-PYDISTUTILS_PKGVERSION= 0.95
-PYDISTUTILS_PKGNAME= kenosis_BitTorrent
-
-WRKSRC= ${WRKDIR}/${DISTNAME}/bt
-
-DOC_FILES= \
- BUILD.windows.txt INSTALL.unix.txt LICENSE.txt \
- README_KENOSIS.txt \
- README.txt credits.txt
-PORTDOCS= \
- README-FreeBSD.txt \
- ${DOC_FILES}
-
-.include <bsd.port.pre.mk>
-
-#KENOSIS_PORTDIR= ../py-kenosis
-KENOSIS_PORTDIR= ${PORTSDIR}/net-p2p/py-kenosis
-KENOSIS_DISTNAME!= cd ${KENOSIS_PORTDIR} && make -V DISTNAME
-KENOSIS_VERSION!= cd ${KENOSIS_PORTDIR} && make -V PORTVERSION
-
-.if ${ARCH} != "i386"
-WITHOUT_PSYCO= yes
-.endif
-
-# required for GUI
-.ifndef(WITHOUT_GUI)
-USE_WX= 2.4
-WX_COMPS= python
-
-EXTRA_PATCHES+= ${FILESDIR}/extra-gui-patch-setup.py
-
-PLIST_FILES+= \
- libexec/${PORTNAME}${PKGNAMESUFFIX}/btcompletedirgui.py \
- libexec/${PORTNAME}${PKGNAMESUFFIX}/btdownloadgui.py
-.else
-EXTRA_PATCHES+= ${FILESDIR}/extra-nogui-patch-setup.py
-.endif
-# required for PSYCO
-.ifndef(WITHOUT_PSYCO)
-RUN_DEPENDS+= ${PYTHON_SITELIBDIR}/psyco/_psyco.so:${PORTSDIR}/devel/py-psyco
-
-EXTRA_PATCHES+= \
- ${FILESDIR}/extra-psyco-patch-btcompletedir.py \
- ${FILESDIR}/extra-psyco-patch-btcompletedirgui.py \
- ${FILESDIR}/extra-psyco-patch-btdownloadcurses.py \
- ${FILESDIR}/extra-psyco-patch-btdownloadgui.py \
- ${FILESDIR}/extra-psyco-patch-btdownloadheadless.py \
- ${FILESDIR}/extra-psyco-patch-btlaunchmany.py \
- ${FILESDIR}/extra-psyco-patch-btlaunchmanycurses.py \
- ${FILESDIR}/extra-psyco-patch-btmakemetafile.py \
- ${FILESDIR}/extra-psyco-patch-bttrack.py
-
-PLIST_FILES+= \
- %%PYTHON_SITELIBDIR%%/${PORTNAME}${PKGNAMESUFFIX:S/^-/_/}/PSYCO.py \
- %%PYTHON_SITELIBDIR%%/${PORTNAME}${PKGNAMESUFFIX:S/^-/_/}/PSYCO.pyc \
- %%PYTHON_SITELIBDIR%%/${PORTNAME}${PKGNAMESUFFIX:S/^-/_/}/PSYCO.pyo
-.endif
-
-pre-everything::
-.ifndef(WITHOUT_GUI)
- @${ECHO_MSG} '===> Define WITHOUT_GUI to disable GUI installation'
-.endif
-.ifndef(WITHOUT_PSYCO)
- @${ECHO_MSG} '===> Define WITHOUT_PSYCO to disable devel/py-psyco optimization'
-.endif
-
-post-patch:
- @${FIND} ${WRKSRC} -type f | \
- ${XARGS} -x -n 10 \
- ${REINPLACE_CMD} -E \
- -e 's|from[[:space:]]+BitTorrent|from ${PORTNAME}${PKGNAMESUFFIX:S/^-/_/}|' \
- -e 's|import[[:space:]]+BitTorrent|import ${PORTNAME}${PKGNAMESUFFIX:S/^-/_/}|' \
- -e 's|from[[:space:]]+ds|from ${PORTNAME}.ds|' \
- -e 's|/usr/bin/env python|${LOCALBASE}/bin/python|'
- @${REINPLACE_CMD} -E \
- -e 's|%%KENOSIS-BITTORRENT%%|${PORTNAME}${PKGNAMESUFFIX:S/^-/_/}|' \
- ${WRKSRC}/${PYSETUP}
- @${REINPLACE_CMD} -E \
- -e 's|bt.BitTorrent|${PORTNAME}${PKGNAMESUFFIX:S/^-/_/}|' \
- -e 's|from[[:space:]]+bt[[:space:]]+||' \
- ${WRKSRC}/btunittest.py
-.ifdef(WITHOUT_GUI)
- @${REINPLACE_CMD} -E \
- -e 's|btdownloadgui.py|btdownloadcurses.py|' \
- ${WRKSRC}/INSTALL.unix.txt
-.endif
-.ifndef(WITHOUT_PSYCO)
-# activate psyco optimization
- @${ECHO_CMD} 'psyco = 1' > ${WRKSRC}/BitTorrent/PSYCO.py
-.endif
-
-pre-configure:
- @${MV} ${WRKSRC}/BitTorrent ${WRKSRC}/${PORTNAME}${PKGNAMESUFFIX:S/^-/_/}
-
-post-install:
- @${CAT} ${PKGMESSAGE}
-.ifndef(NOPORTDOCS)
- @${MKDIR} ${DOCSDIR}
-.for file in ${DOC_FILES}
- @${INSTALL_DATA} ${WRKSRC}/${file} ${DOCSDIR}
-.endfor
- @${INSTALL_DATA} ${PKGMESSAGE} ${DOCSDIR}/README-FreeBSD.txt
-.endif
-# set proper permissions
- @${CHMOD} -R ${SHAREMODE} \
- ${PREFIX}/${PYTHON_SITELIBDIR:S|^${PYTHONBASE}/||}/${PORTNAME}${PKGNAMESUFFIX:S/^-/_/}
- @${CHMOD} ${SHAREMODE} \
- ${PREFIX}/${PYTHON_SITELIBDIR:S|^${PYTHONBASE}/||}/${PORTNAME}${PKGNAMESUFFIX:S/^-/_/}
- @${CHMOD} a+x \
- ${PREFIX}/${PYTHON_SITELIBDIR:S|^${PYTHONBASE}/||}/${PORTNAME}${PKGNAMESUFFIX:S/^-/_/}
-
-.include <bsd.port.post.mk>
-
-DOCSDIR:= ${DOCSDIR:S!${PORTNAME}$!${PORTNAME}${PKGNAMESUFFIX}!}
-PYDISTUTILS_INSTALLARGS:= ${PYDISTUTILS_INSTALLARGS} --install-scripts=${PREFIX}/libexec/${PORTNAME}${PKGNAMESUFFIX}
diff --git a/net-p2p/py-kenosis-bittorrent/distinfo b/net-p2p/py-kenosis-bittorrent/distinfo
deleted file mode 100644
index cbae945682e..00000000000
--- a/net-p2p/py-kenosis-bittorrent/distinfo
+++ /dev/null
@@ -1,3 +0,0 @@
-MD5 (kenosis-0.95.tar.gz) = b3846a89723d1e6f2f79b8481fae6981
-SHA256 (kenosis-0.95.tar.gz) = d7096e91f4fe2ecf84396182a0cd7c8e0ae1db4855091ac63d599030693195c5
-SIZE (kenosis-0.95.tar.gz) = 170694
diff --git a/net-p2p/py-kenosis-bittorrent/files/extra-gui-patch-setup.py b/net-p2p/py-kenosis-bittorrent/files/extra-gui-patch-setup.py
deleted file mode 100644
index 1b41d84d9bd..00000000000
--- a/net-p2p/py-kenosis-bittorrent/files/extra-gui-patch-setup.py
+++ /dev/null
@@ -1,25 +0,0 @@
---- setup.py.orig Fri Jan 14 22:03:18 2005
-+++ setup.py Fri Jan 14 22:03:44 2005
-@@ -9,18 +9,19 @@
- import BitTorrent
-
- setup(
-- name = "BitTorrent",
-- version = BitTorrent.version,
-+ name = "%%KENOSIS-BITTORRENT%%",
-+ version = %%KENOSIS-BITTORRENT%%.version,
- author = "Bram Cohen",
- author_email = "<bram@bitconjurer.org>",
- url = "http://www.bitconjurer.org/BitTorrent/",
- license = "MIT",
-
-- packages = ["BitTorrent"],
-+ packages = ["%%KENOSIS-BITTORRENT%%"],
-
- scripts = ["btdownloadgui.py", "btdownloadheadless.py", "btdownloadlibrary.py",
- "bttrack.py", "btmakemetafile.py", "btlaunchmany.py", "btcompletedir.py",
- "btdownloadcurses.py", "btcompletedirgui.py", "btlaunchmanycurses.py",
- "btmakemetafile.py", "btreannounce.py", "btrename.py", "btshowmetainfo.py",
-+ "btunittest.py",
- "bttest.py"]
- )
diff --git a/net-p2p/py-kenosis-bittorrent/files/extra-nogui-patch-setup.py b/net-p2p/py-kenosis-bittorrent/files/extra-nogui-patch-setup.py
deleted file mode 100644
index 4c72f66ad46..00000000000
--- a/net-p2p/py-kenosis-bittorrent/files/extra-nogui-patch-setup.py
+++ /dev/null
@@ -1,27 +0,0 @@
---- setup.py.orig Fri Jan 14 22:12:02 2005
-+++ setup.py Fri Jan 14 22:12:54 2005
-@@ -9,18 +9,19 @@
- import BitTorrent
-
- setup(
-- name = "BitTorrent",
-- version = BitTorrent.version,
-+ name = "%%KENOSIS-BITTORRENT%%",
-+ version = %%KENOSIS-BITTORRENT%%.version,
- author = "Bram Cohen",
- author_email = "<bram@bitconjurer.org>",
- url = "http://www.bitconjurer.org/BitTorrent/",
- license = "MIT",
-
-- packages = ["BitTorrent"],
-+ packages = ["%%KENOSIS-BITTORRENT%%"],
-
-- scripts = ["btdownloadgui.py", "btdownloadheadless.py", "btdownloadlibrary.py",
-+ scripts = ["btdownloadheadless.py", "btdownloadlibrary.py",
- "bttrack.py", "btmakemetafile.py", "btlaunchmany.py", "btcompletedir.py",
-- "btdownloadcurses.py", "btcompletedirgui.py", "btlaunchmanycurses.py",
-+ "btdownloadcurses.py", "btlaunchmanycurses.py",
- "btmakemetafile.py", "btreannounce.py", "btrename.py", "btshowmetainfo.py",
-+ "btunittest.py",
- "bttest.py"]
- )
diff --git a/net-p2p/py-kenosis-bittorrent/files/extra-psyco-patch-btcompletedir.py b/net-p2p/py-kenosis-bittorrent/files/extra-psyco-patch-btcompletedir.py
deleted file mode 100644
index 7313c0b3b81..00000000000
--- a/net-p2p/py-kenosis-bittorrent/files/extra-psyco-patch-btcompletedir.py
+++ /dev/null
@@ -1,18 +0,0 @@
---- btcompletedir.py Thu Dec 16 11:03:11 2004
-+++ btcompletedir.py Thu Dec 16 11:12:55 2004
-@@ -3,6 +3,15 @@
- # Written by Bram Cohen
- # see LICENSE.txt for license information
-
-+from BitTorrent import PSYCO
-+if PSYCO.psyco:
-+ try:
-+ import psyco
-+ assert psyco.__version__ >= 0x010300f0
-+ psyco.full()
-+ except:
-+ pass
-+
- from os.path import join, split
- from threading import Event
- from traceback import print_exc
diff --git a/net-p2p/py-kenosis-bittorrent/files/extra-psyco-patch-btcompletedirgui.py b/net-p2p/py-kenosis-bittorrent/files/extra-psyco-patch-btcompletedirgui.py
deleted file mode 100644
index 750f7f3b4ff..00000000000
--- a/net-p2p/py-kenosis-bittorrent/files/extra-psyco-patch-btcompletedirgui.py
+++ /dev/null
@@ -1,18 +0,0 @@
---- btcompletedirgui.py Thu Dec 16 11:03:11 2004
-+++ btcompletedirgui.py Thu Dec 16 11:13:34 2004
-@@ -3,6 +3,15 @@
- # Written by Bram Cohen
- # see LICENSE.txt for license information
-
-+from BitTorrent import PSYCO
-+if PSYCO.psyco:
-+ try:
-+ import psyco
-+ assert psyco.__version__ >= 0x010300f0
-+ psyco.full()
-+ except:
-+ pass
-+
- from sys import argv, version
-
- from btcompletedir import completedir
diff --git a/net-p2p/py-kenosis-bittorrent/files/extra-psyco-patch-btdownloadcurses.py b/net-p2p/py-kenosis-bittorrent/files/extra-psyco-patch-btdownloadcurses.py
deleted file mode 100644
index f9914687c61..00000000000
--- a/net-p2p/py-kenosis-bittorrent/files/extra-psyco-patch-btdownloadcurses.py
+++ /dev/null
@@ -1,18 +0,0 @@
---- btdownloadcurses.py Thu Dec 16 11:03:11 2004
-+++ btdownloadcurses.py Thu Dec 16 11:13:54 2004
-@@ -3,6 +3,15 @@
- # Written by Henry 'Pi' James
- # see LICENSE.txt for license information
-
-+from BitTorrent import PSYCO
-+if PSYCO.psyco:
-+ try:
-+ import psyco
-+ assert psyco.__version__ >= 0x010300f0
-+ psyco.full()
-+ except:
-+ pass
-+
- from BitTorrent.download import download
- from threading import Event
- from os.path import abspath
diff --git a/net-p2p/py-kenosis-bittorrent/files/extra-psyco-patch-btdownloadgui.py b/net-p2p/py-kenosis-bittorrent/files/extra-psyco-patch-btdownloadgui.py
deleted file mode 100644
index d9f8aa0300d..00000000000
--- a/net-p2p/py-kenosis-bittorrent/files/extra-psyco-patch-btdownloadgui.py
+++ /dev/null
@@ -1,18 +0,0 @@
---- btdownloadgui.py Thu Dec 16 11:03:11 2004
-+++ btdownloadgui.py Thu Dec 16 11:14:07 2004
-@@ -3,6 +3,15 @@
- # Written by Bram Cohen and Myers Carpenter
- # see LICENSE.txt for license information
-
-+from BitTorrent import PSYCO
-+if PSYCO.psyco:
-+ try:
-+ import psyco
-+ assert psyco.__version__ >= 0x010300f0
-+ psyco.full()
-+ except:
-+ pass
-+
- from sys import argv
- from BitTorrent import version
- from BitTorrent.download import download
diff --git a/net-p2p/py-kenosis-bittorrent/files/extra-psyco-patch-btdownloadheadless.py b/net-p2p/py-kenosis-bittorrent/files/extra-psyco-patch-btdownloadheadless.py
deleted file mode 100644
index ba6038187d0..00000000000
--- a/net-p2p/py-kenosis-bittorrent/files/extra-psyco-patch-btdownloadheadless.py
+++ /dev/null
@@ -1,18 +0,0 @@
---- btdownloadheadless.py Thu Dec 16 11:03:11 2004
-+++ btdownloadheadless.py Thu Dec 16 11:14:16 2004
-@@ -3,6 +3,15 @@
- # Written by Bram Cohen
- # see LICENSE.txt for license information
-
-+from BitTorrent import PSYCO
-+if PSYCO.psyco:
-+ try:
-+ import psyco
-+ assert psyco.__version__ >= 0x010300f0
-+ psyco.full()
-+ except:
-+ pass
-+
- from BitTorrent.download import download
- from threading import Event
- from os.path import abspath
diff --git a/net-p2p/py-kenosis-bittorrent/files/extra-psyco-patch-btlaunchmany.py b/net-p2p/py-kenosis-bittorrent/files/extra-psyco-patch-btlaunchmany.py
deleted file mode 100644
index b52ef8d9673..00000000000
--- a/net-p2p/py-kenosis-bittorrent/files/extra-psyco-patch-btlaunchmany.py
+++ /dev/null
@@ -1,18 +0,0 @@
---- btlaunchmany.py Thu Dec 16 11:03:11 2004
-+++ btlaunchmany.py Thu Dec 16 11:14:54 2004
-@@ -7,6 +7,15 @@
- # fmttime and fmtsize stolen from btdownloadcurses.
- # see LICENSE.txt for license information
-
-+from BitTorrent import PSYCO
-+if PSYCO.psyco:
-+ try:
-+ import psyco
-+ assert psyco.__version__ >= 0x010300f0
-+ psyco.full()
-+ except:
-+ pass
-+
- from BitTorrent.download import download
- from threading import Thread, Event, Lock
- from os import listdir
diff --git a/net-p2p/py-kenosis-bittorrent/files/extra-psyco-patch-btlaunchmanycurses.py b/net-p2p/py-kenosis-bittorrent/files/extra-psyco-patch-btlaunchmanycurses.py
deleted file mode 100644
index 7cf9c34eefd..00000000000
--- a/net-p2p/py-kenosis-bittorrent/files/extra-psyco-patch-btlaunchmanycurses.py
+++ /dev/null
@@ -1,18 +0,0 @@
---- btlaunchmanycurses.py Thu Dec 16 11:03:11 2004
-+++ btlaunchmanycurses.py Thu Dec 16 11:14:47 2004
-@@ -7,6 +7,15 @@
- # fmttime and fmtsize stolen from btdownloadcurses.
- # see LICENSE.txt for license information
-
-+from BitTorrent import PSYCO
-+if PSYCO.psyco:
-+ try:
-+ import psyco
-+ assert psyco.__version__ >= 0x010300f0
-+ psyco.full()
-+ except:
-+ pass
-+
- from BitTorrent.download import download
- from threading import Thread, Event, Lock
- from os import listdir
diff --git a/net-p2p/py-kenosis-bittorrent/files/extra-psyco-patch-btmakemetafile.py b/net-p2p/py-kenosis-bittorrent/files/extra-psyco-patch-btmakemetafile.py
deleted file mode 100644
index 27caf5b0379..00000000000
--- a/net-p2p/py-kenosis-bittorrent/files/extra-psyco-patch-btmakemetafile.py
+++ /dev/null
@@ -1,18 +0,0 @@
---- btmakemetafile.py Thu Dec 16 11:03:11 2004
-+++ btmakemetafile.py Thu Dec 16 11:15:10 2004
-@@ -3,6 +3,15 @@
- # Written by Bram Cohen
- # see LICENSE.txt for license information
-
-+from BitTorrent import PSYCO
-+if PSYCO.psyco:
-+ try:
-+ import psyco
-+ assert psyco.__version__ >= 0x010300f0
-+ psyco.full()
-+ except:
-+ pass
-+
- from sys import argv
- from os.path import getsize, split, join, abspath, isdir
- from os import listdir
diff --git a/net-p2p/py-kenosis-bittorrent/files/extra-psyco-patch-bttrack.py b/net-p2p/py-kenosis-bittorrent/files/extra-psyco-patch-bttrack.py
deleted file mode 100644
index eee72f22c62..00000000000
--- a/net-p2p/py-kenosis-bittorrent/files/extra-psyco-patch-bttrack.py
+++ /dev/null
@@ -1,18 +0,0 @@
---- bttrack.py Thu Dec 16 11:03:11 2004
-+++ bttrack.py Thu Dec 16 11:15:33 2004
-@@ -3,6 +3,15 @@
- # Written by Bram Cohen
- # see LICENSE.txt for license information
-
-+from BitTorrent import PSYCO
-+if PSYCO.psyco:
-+ try:
-+ import psyco
-+ assert psyco.__version__ >= 0x010300f0
-+ psyco.full()
-+ except:
-+ pass
-+
- from sys import argv
- from BitTorrent.track import track
-
diff --git a/net-p2p/py-kenosis-bittorrent/files/patch-BitTorrent::Rerequester.py b/net-p2p/py-kenosis-bittorrent/files/patch-BitTorrent::Rerequester.py
deleted file mode 100644
index 49c5bd167da..00000000000
--- a/net-p2p/py-kenosis-bittorrent/files/patch-BitTorrent::Rerequester.py
+++ /dev/null
@@ -1,30 +0,0 @@
---- BitTorrent/Rerequester.py Sat Apr 3 01:10:23 2004
-+++ BitTorrent/Rerequester.py Sun Apr 18 17:03:33 2004
-@@ -5,7 +5,7 @@
- from btformats import check_peers
- from bencode import bdecode
- from threading import Thread, Lock
--from socket import error
-+from socket import error, gethostbyname
- from time import time
- from random import randrange
- from binascii import b2a_hex
-@@ -45,8 +45,7 @@
- self.url = ('%s?info_hash=%s&peer_id=%s&port=%s&key=%s' %
- (url, quote(infohash), quote(myid), str(port),
- b2a_hex(''.join([chr(randrange(256)) for i in xrange(4)]))))
-- if ip != '':
-- self.url += '&ip=' + quote(ip)
-+ self.ip = ip
- self.interval = interval
- self.last = None
- self.trackerid = None
-@@ -108,6 +107,8 @@
-
- def rerequest(self, url, set):
- try:
-+ if self.ip:
-+ url += '&ip=' + gethostbyname(self.ip)
- print "opening url %s" % url
- h = urlopen(url)
- r = h.read()
diff --git a/net-p2p/py-kenosis-bittorrent/files/patch-BitTorrent::track.py b/net-p2p/py-kenosis-bittorrent/files/patch-BitTorrent::track.py
deleted file mode 100644
index 7a98123784d..00000000000
--- a/net-p2p/py-kenosis-bittorrent/files/patch-BitTorrent::track.py
+++ /dev/null
@@ -1,300 +0,0 @@
---- BitTorrent/track.py Sun Mar 21 16:32:55 2004
-+++ BitTorrent/track.py Sun Jun 6 09:33:07 2004
-@@ -37,12 +37,15 @@
- 'minimum time it must have been since the last flush to do another one'),
- ('allowed_dir', '', 'only allow downloads for .torrents in this dir'),
- ('parse_allowed_interval', 15, 'minutes between reloading of allowed_dir'),
-+ ('show_infopage', 1, "whether to display an info page when the tracker's root dir is loaded"),
-+ ('infopage_redirect', '', 'a URL to redirect the info page to'),
- ('show_names', 1, 'whether to display names from allowed dir'),
- ('favicon', '', 'file containing x-icon data to return when browser requests favicon.ico'),
- ('only_local_override_ip', 1, "ignore the ip GET parameter from machines which aren't on local network IPs"),
- ('logfile', '', 'file to write the tracker logs, use - for stdout (default)'),
- ('allow_get', 0, 'use with allowed_dir; adds a /file?hash={hash} url that allows users to download the torrent file'),
- ('keep_dead', 0, 'keep dead torrents after they expire (so they still show up on your /scrape and web page)'),
-+ ('scrape_allowed', 'full', 'scrape access allowed (can be none, specific or full)'),
- ('max_give', 200, 'maximum number of peers to give with any one request'),
- ]
-
-@@ -124,11 +127,11 @@
- favicon = config['favicon']
- self.favicon = None
- if favicon:
-- if isfile(favicon):
-+ try:
- h = open(favicon, 'rb')
- self.favicon = h.read()
- h.close()
-- else:
-+ except:
- print "**warning** specified favicon file -- %s -- does not exist." % favicon
- self.rawserver = rawserver
- self.becache1 = {}
-@@ -190,6 +193,130 @@
- self.uq_broken = 0
- self.keep_dead = config['keep_dead']
-
-+ def get_infopage(self):
-+ if not self.config['show_infopage']:
-+ return (404, 'Not Found', {'Content-Type': 'text/plain', 'Pragma': 'no-cache'}, alas)
-+ red = self.config['infopage_redirect']
-+ if red != '':
-+ return (302, 'Found', {'Content-Type': 'text/html', 'Location': red},
-+ '<A HREF="'+red+'">Click Here</A>')
-+
-+ s = StringIO()
-+ s.write('<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">\n' \
-+ '<html><head><title>BitTorrent download info</title>\n')
-+ if self.favicon != None:
-+ s.write('<link rel="shortcut icon" href="/favicon.ico" />\n')
-+ s.write('</head>\n<body>\n' \
-+ '<h3>BitTorrent download info</h3>\n'\
-+ '<ul>\n'
-+ '<li><strong>tracker version:</strong> %s</li>\n' \
-+ '<li><strong>server time:</strong> %s</li>\n' \
-+ '</ul>\n' % (version, isotime()))
-+ names = self.downloads.keys()
-+ if not names:
-+ s.write('<p>not tracking any files yet...</p>\n')
-+ else:
-+ names.sort()
-+ tn = 0
-+ tc = 0
-+ td = 0
-+ tt = 0 # Total transferred
-+ ts = 0 # Total size
-+ nf = 0 # Number of files displayed
-+ uc = {}
-+ ud = {}
-+ if self.allowed != None and self.show_names:
-+ s.write('<table summary="files" border="1">\n' \
-+ '<tr><th>info hash</th><th>torrent name</th><th align="right">size</th><th align="right">complete</th><th align="right">downloading</th><th align="right">downloaded</th><th align="right">transferred</th></tr>\n')
-+ else:
-+ s.write('<table summary="files">\n' \
-+ '<tr><th>info hash</th><th align="right">complete</th><th align="right">downloading</th><th align="right">downloaded</th></tr>\n')
-+ for name in names:
-+ l = self.downloads[name]
-+ n = self.completed.get(name, 0)
-+ tn = tn + n
-+ lc = []
-+ for i in l.values():
-+ if type(i) == DictType:
-+ if i['left'] == 0:
-+ lc.append(1)
-+ uc[i['ip']] = 1
-+ else:
-+ ud[i['ip']] = 1
-+ c = len(lc)
-+ tc = tc + c
-+ d = len(l) - c
-+ td = td + d
-+ if self.allowed != None and self.show_names:
-+ if self.allowed.has_key(name):
-+ nf = nf + 1
-+ sz = self.allowed[name]['length'] # size
-+ ts = ts + sz
-+ szt = sz * n # Transferred for this torrent
-+ tt = tt + szt
-+ if self.allow_get == 1:
-+ linkname = '<a href="/file?info_hash=' + quote(name) + '">' + self.allowed[name]['name'] + '</a>'
-+ else:
-+ linkname = self.allowed[name]['name']
-+ s.write('<tr><td><code>%s</code></td><td>%s</td><td align="right">%s</td><td align="right">%i</td><td align="right">%i</td><td align="right">%i</td><td align="right">%s</td></tr>\n' \
-+ % (b2a_hex(name), linkname, size_format(sz), c, d, n, size_format(szt)))
-+ else:
-+ s.write('<tr><td><code>%s</code></td><td align="right"><code>%i</code></td><td align="right"><code>%i</code></td><td align="right"><code>%i</code></td></tr>\n' \
-+ % (b2a_hex(name), c, d, n))
-+ ttn = 0
-+ for i in self.completed.values():
-+ ttn = ttn + i
-+ if self.allowed != None and self.show_names:
-+ s.write('<tr><td align="right" colspan="2">%i files</td><td align="right">%s</td><td align="right">%i/%i</td><td align="right">%i/%i</td><td align="right">%i/%i</td><td align="right">%s</td></tr>\n'
-+ % (nf, size_format(ts), len(uc), tc, len(ud), td, tn, ttn, size_format(tt)))
-+ else:
-+ s.write('<tr><td align="right">%i files</td><td align="right">%i/%i</td><td align="right">%i/%i</td><td align="right">%i/%i</td></tr>\n'
-+ % (nf, len(uc), tc, len(ud), td, tn, ttn))
-+ s.write('</table>\n' \
-+ '<ul>\n' \
-+ '<li><em>info hash:</em> SHA1 hash of the "info" section of the metainfo (*.torrent)</li>\n' \
-+ '<li><em>complete:</em> number of connected clients with the complete file (total: unique IPs/total connections)</li>\n' \
-+ '<li><em>downloading:</em> number of connected clients still downloading (total: unique IPs/total connections)</li>\n' \
-+ '<li><em>downloaded:</em> reported complete downloads (total: current/all)</li>\n' \
-+ '<li><em>transferred:</em> torrent size * total downloaded (does not include partial transfers)</li>\n' \
-+ '</ul>\n')
-+ s.write('</body>\n' \
-+ '</html>\n')
-+ return (200, 'OK', {'Content-Type': 'text/html; charset=iso-8859-1'}, s.getvalue())
-+
-+ def scrapedata(self, name, return_name = True):
-+ l = self.downloads[name]
-+ n = self.completed.get(name, 0)
-+ c = len([1 for i in l.values() if i['left'] == 0])
-+ d = len(l) - c
-+ f = {'complete': c, 'incomplete': d, 'downloaded': n}
-+ if ( return_name and self.show_names
-+ and self.allowed is not None and self.allowed.has_key(name) ):
-+ f['name'] = self.allowed[name]['name']
-+ return (f)
-+
-+ def get_scrape(self, paramslist):
-+ fs = {}
-+ if paramslist.has_key('info_hash'):
-+ if self.config['scrape_allowed'] not in ['specific', 'full']:
-+ return (400, 'Not Authorized', {'Content-Type': 'text/plain', 'Pragma': 'no-cache'},
-+ bencode({'failure reason':
-+ 'specific scrape function is not available with this tracker.'}))
-+ for infohash in paramslist['info_hash']:
-+ if infohash in self.downloads.keys():
-+ fs[infohash] = self.scrapedata(infohash)
-+ else:
-+ if self.config['scrape_allowed'] != 'full':
-+ return (400, 'Not Authorized', {'Content-Type': 'text/plain', 'Pragma': 'no-cache'},
-+ bencode({'failure reason':
-+ 'full scrape function is not available with this tracker.'}))
-+ names = self.downloads.keys()
-+ names.sort()
-+ for name in names:
-+ fs[name] = self.scrapedata(name)
-+
-+ return (200, 'OK', {'Content-Type': 'text/plain'}, bencode({'files': fs}))
-+
- def get(self, connection, path, headers):
- try:
- (scheme, netloc, path, pars, query, fragment) = urlparse(path)
-@@ -197,117 +324,22 @@
- path = path.replace('+',' ')
- query = query.replace('+',' ')
- path = unquote(path)[1:]
-+ paramslist = {}
- params = {}
- for s in query.split('&'):
- if s != '':
- i = s.index('=')
-- params[unquote(s[:i])] = unquote(s[i+1:])
-+ kw = unquote(s[:i])
-+ key, value = unquote(s[:i]), unquote(s[i+1:])
-+ paramslist.setdefault(key, []).append(value)
-+ params[key] = value
- except ValueError, e:
- return (400, 'Bad Request', {'Content-Type': 'text/plain'},
- 'you sent me garbage - ' + str(e))
- if path == '' or path == 'index.html':
-- s = StringIO()
-- s.write('<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">\n' \
-- '<html><head><title>BitTorrent download info</title>\n')
-- if self.favicon != None:
-- s.write('<link rel="shortcut icon" href="/favicon.ico" />\n')
-- s.write('</head>\n<body>\n' \
-- '<h3>BitTorrent download info</h3>\n'\
-- '<ul>\n'
-- '<li><strong>tracker version:</strong> %s</li>\n' \
-- '<li><strong>server time:</strong> %s</li>\n' \
-- '</ul>\n' % (version, isotime()))
-- names = self.downloads.keys()
-- if names:
-- names.sort()
-- tn = 0
-- tc = 0
-- td = 0
-- tt = 0 # Total transferred
-- ts = 0 # Total size
-- nf = 0 # Number of files displayed
-- uc = {}
-- ud = {}
-- if self.allowed != None and self.show_names:
-- s.write('<table summary="files" border="1">\n' \
-- '<tr><th>info hash</th><th>torrent name</th><th align="right">size</th><th align="right">complete</th><th align="right">downloading</th><th align="right">downloaded</th><th align="right">transferred</th></tr>\n')
-- else:
-- s.write('<table summary="files">\n' \
-- '<tr><th>info hash</th><th align="right">complete</th><th align="right">downloading</th><th align="right">downloaded</th></tr>\n')
-- for name in names:
-- l = self.downloads[name]
-- n = self.completed.get(name, 0)
-- tn = tn + n
-- lc = []
-- for i in l.values():
-- if type(i) == DictType:
-- if i['left'] == 0:
-- lc.append(1)
-- uc[i['ip']] = 1
-- else:
-- ud[i['ip']] = 1
-- c = len(lc)
-- tc = tc + c
-- d = len(l) - c
-- td = td + d
-- if self.allowed != None and self.show_names:
-- if self.allowed.has_key(name):
-- nf = nf + 1
-- sz = self.allowed[name]['length'] # size
-- ts = ts + sz
-- szt = sz * n # Transferred for this torrent
-- tt = tt + szt
-- if self.allow_get == 1:
-- linkname = '<a href="/file?info_hash=' + quote(name) + '">' + self.allowed[name]['name'] + '</a>'
-- else:
-- linkname = self.allowed[name]['name']
-- s.write('<tr><td><code>%s</code></td><td>%s</td><td align="right">%s</td><td align="right">%i</td><td align="right">%i</td><td align="right">%i</td><td align="right">%s</td></tr>\n' \
-- % (b2a_hex(name), linkname, size_format(sz), c, d, n, size_format(szt)))
-- else:
-- s.write('<tr><td><code>%s</code></td><td align="right"><code>%i</code></td><td align="right"><code>%i</code></td><td align="right"><code>%i</code></td></tr>\n' \
-- % (b2a_hex(name), c, d, n))
-- ttn = 0
-- for i in self.completed.values():
-- ttn = ttn + i
-- if self.allowed != None and self.show_names:
-- s.write('<tr><td align="right" colspan="2">%i files</td><td align="right">%s</td><td align="right">%i/%i</td><td align="right">%i/%i</td><td align="right">%i/%i</td><td align="right">%s</td></tr>\n'
-- % (nf, size_format(ts), len(uc), tc, len(ud), td, tn, ttn, size_format(tt)))
-- else:
-- s.write('<tr><td align="right">%i files</td><td align="right">%i/%i</td><td align="right">%i/%i</td><td align="right">%i/%i</td></tr>\n'
-- % (nf, len(uc), tc, len(ud), td, tn, ttn))
-- s.write('</table>\n' \
-- '<ul>\n' \
-- '<li><em>info hash:</em> SHA1 hash of the "info" section of the metainfo (*.torrent)</li>\n' \
-- '<li><em>complete:</em> number of connected clients with the complete file (total: unique IPs/total connections)</li>\n' \
-- '<li><em>downloading:</em> number of connected clients still downloading (total: unique IPs/total connections)</li>\n' \
-- '<li><em>downloaded:</em> reported complete downloads (total: current/all)</li>\n' \
-- '<li><em>transferred:</em> torrent size * total downloaded (does not include partial transfers)</li>\n' \
-- '</ul>\n')
-- else:
-- s.write('<p>not tracking any files yet...</p>\n')
-- s.write('</body>\n' \
-- '</html>\n')
-- return (200, 'OK', {'Content-Type': 'text/html; charset=iso-8859-1'}, s.getvalue())
-+ return self.get_infopage()
- elif path == 'scrape':
-- fs = {}
-- names = []
-- if params.has_key('info_hash'):
-- if self.downloads.has_key(params['info_hash']):
-- names = [ params['info_hash'] ]
-- # else return nothing
-- else:
-- names = self.downloads.keys()
-- names.sort()
-- for name in names:
-- l = self.downloads[name]
-- n = self.completed.get(name, 0)
-- c = len([1 for i in l.values() if type(i) == DictType and i['left'] == 0])
-- d = len(l) - c
-- fs[name] = {'complete': c, 'incomplete': d, 'downloaded': n}
-- if (self.allowed is not None) and self.allowed.has_key(name) and self.show_names:
-- fs[name]['name'] = self.allowed[name]['name']
-- r = {'files': fs}
-- return (200, 'OK', {'Content-Type': 'text/plain'}, bencode(r))
-+ return self.get_scrape(paramslist)
- elif (path == 'file') and (self.allow_get == 1) and params.has_key('info_hash') and self.allowed.has_key(params['info_hash']):
- hash = params['info_hash']
- fname = self.allowed[hash]['file']
-@@ -506,9 +538,9 @@
- r = str(s) + 'B'
- elif (s < 1048576):
- r = str(int(s/1024)) + 'KiB'
-- elif (s < 1073741824l):
-+ elif (s < 1073741824L):
- r = str(int(s/1048576)) + 'MiB'
-- elif (s < 1099511627776l):
-+ elif (s < 1099511627776L):
- r = str(int((s/1073741824.0)*100.0)/100.0) + 'GiB'
- else:
- r = str(int((s/1099511627776.0)*100.0)/100.0) + 'TiB'
diff --git a/net-p2p/py-kenosis-bittorrent/files/patch-BitTorrent::zurllib.py b/net-p2p/py-kenosis-bittorrent/files/patch-BitTorrent::zurllib.py
deleted file mode 100644
index deca5e24f02..00000000000
--- a/net-p2p/py-kenosis-bittorrent/files/patch-BitTorrent::zurllib.py
+++ /dev/null
@@ -1,18 +0,0 @@
---- BitTorrent/zurllib.py.orig Thu Dec 9 10:36:43 2004
-+++ BitTorrent/zurllib.py Thu Dec 9 10:38:19 2004
-@@ -35,7 +35,14 @@
- if DEBUG:
- pprint.pprint(headers.dict)
- url = fp.url
-- return addinfourldecompress(fp, headers, url)
-+ resp = addinfourldecompress(fp, headers, url)
-+ # As of Python 2.4 http_open response also has 'code' and 'msg'
-+ # members, and HTTPErrorProcessor breaks if they don't exist.
-+ if 'code' in dir(fp):
-+ resp.code = fp.code
-+ if 'msg' in dir(fp):
-+ resp.msg = fp.msg
-+ return resp
-
-
- class addinfourldecompress(addinfourl):
diff --git a/net-p2p/py-kenosis-bittorrent/files/patch-btcompletedir.py b/net-p2p/py-kenosis-bittorrent/files/patch-btcompletedir.py
deleted file mode 100644
index f70d4e932b7..00000000000
--- a/net-p2p/py-kenosis-bittorrent/files/patch-btcompletedir.py
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -ruN BitTorrent-3.4.2/btcompletedir.py BitTorrent.cvs/btcompletedir.py
---- btcompletedir.py Wed Mar 3 14:44:06 2004
-+++ btcompletedir.py Sun May 23 04:31:44 2004
-@@ -30,6 +30,8 @@
- subtotal[0] += x
- vc(float(subtotal[0]) / total)
- for i in togen:
-+ if flag.isSet():
-+ break
- t = split(i)
- if t[1] == '':
- i = t[0]
diff --git a/net-p2p/py-kenosis-bittorrent/files/zurllib.py b/net-p2p/py-kenosis-bittorrent/files/zurllib.py
deleted file mode 100644
index a99ca51142b..00000000000
--- a/net-p2p/py-kenosis-bittorrent/files/zurllib.py
+++ /dev/null
@@ -1,61 +0,0 @@
-# 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()
diff --git a/net-p2p/py-kenosis-bittorrent/pkg-descr b/net-p2p/py-kenosis-bittorrent/pkg-descr
deleted file mode 100644
index e212e5a9081..00000000000
--- a/net-p2p/py-kenosis-bittorrent/pkg-descr
+++ /dev/null
@@ -1,23 +0,0 @@
-[ excerpt from developer's web site ]
-
-This is Kenosis-enabled BitTorrent. Using Kenosis, we've eliminated
-the tracker as a central point of failure for BitTorrent downloads.
-Kenosis-enabled BitTorrent is 100% backwards compatible with existing
-BitTorrent clients.
-
-Kenosis-BitTorrent uses torrent files which specify a tracker of
-the form http://hash.bt.kenosisp2p.org, where "hash" is the hash
-of the original file.
-
-Kenosis-BitTorrent downloaders will notice that this is a kenosis
-url and use kenosis to find the tracker that is handling this torrent
-file. Standard BitTorrent downloaders try to resolve hash.bt.kenosisp2p.org
-as normal. Our dns server will look up the hash in kenosis and
-return to the client the ip address of the kenosis node that is
-tracking that file. If that tracker becomes unreachable, subsequent
-lookups for that hash will switch automatically to the next available
-Kenosis-enabled tracker.
-
-WWW: http://kenosis.sourceforge.net/
-
--- lioux@FreeBSD.org
diff --git a/net-p2p/py-kenosis-bittorrent/pkg-message b/net-p2p/py-kenosis-bittorrent/pkg-message
deleted file mode 100644
index e9c9b962e7c..00000000000
--- a/net-p2p/py-kenosis-bittorrent/pkg-message
+++ /dev/null
@@ -1,48 +0,0 @@
- ATTENTIONATTENTION:
-
-Please make sure that you read
-/usr/local/share/doc/kenosis-BitTorrent/README_KENOSIS.txt. It
-contains important information about testing and configuring the
-Kenosis enabled BitTorrent client and tracker, and ultimately
-replacing the official client with this version.
-
-Non-Kenosis clients can use Kenosis trackers without a problem AND
-Kenosis clients can disable Kenosis suppport (I am not sure why
-because you can use the non-Kenosis trackers with Kenosis enabled)
-if that is desired.
-
-It is fully compatible with current BitTorrent clients so it will
-work with or without Kenosis support. This is a modified version
-of the official stable BitTorrent distribution version 3.4.2.
-
-In order to make sure this application does not interfere with
-previously installed official BitTorrent clients while users perform
-the transition, the installation has been customized.
-
-The kenosis_BitTorrent python module files can be found under
-
-/usr/local/lib/python2.4/site-packages/kenosis_BitTorrent
-
-and
-
-the BitTorrent scripts under
-
-/usr/local/libexec/kenosis-BitTorrent
-
-If you desire to use the kenosis-BitTorrent instead of the official
-BitTorrent client, you should just place that directory in front
-of PATH
-
-- For sh based shells
-
-$ export PATH="/usr/local/libexec/kenosis-BitTorrent:${PATH}"
-
-- For csh based shells
-
-$ setenv PATH "/usr/local/libexec/kenosis-BitTorrent:${PATH}"
-
-Now, just use BitTorrent as usual. A file containing a copy of this
-message is available as
-
-/usr/local/share/doc/kenosis-BitTorrent/README-FreeBSD.txt
-
diff --git a/net-p2p/py-kenosis-bittorrent/pkg-plist b/net-p2p/py-kenosis-bittorrent/pkg-plist
deleted file mode 100644
index 66bdeaf54f6..00000000000
--- a/net-p2p/py-kenosis-bittorrent/pkg-plist
+++ /dev/null
@@ -1,95 +0,0 @@
-libexec/kenosis-BitTorrent/btcompletedir.py
-libexec/kenosis-BitTorrent/btdownloadcurses.py
-libexec/kenosis-BitTorrent/btdownloadheadless.py
-libexec/kenosis-BitTorrent/btdownloadlibrary.py
-libexec/kenosis-BitTorrent/btlaunchmany.py
-libexec/kenosis-BitTorrent/btlaunchmanycurses.py
-libexec/kenosis-BitTorrent/btmakemetafile.py
-libexec/kenosis-BitTorrent/btreannounce.py
-libexec/kenosis-BitTorrent/btrename.py
-libexec/kenosis-BitTorrent/btshowmetainfo.py
-libexec/kenosis-BitTorrent/bttest.py
-libexec/kenosis-BitTorrent/bttrack.py
-libexec/kenosis-BitTorrent/btunittest.py
-%%PYTHON_SITELIBDIR%%/kenosis_BitTorrent/Choker.py
-%%PYTHON_SITELIBDIR%%/kenosis_BitTorrent/Choker.pyc
-%%PYTHON_SITELIBDIR%%/kenosis_BitTorrent/Choker.pyo
-%%PYTHON_SITELIBDIR%%/kenosis_BitTorrent/Connecter.py
-%%PYTHON_SITELIBDIR%%/kenosis_BitTorrent/Connecter.pyc
-%%PYTHON_SITELIBDIR%%/kenosis_BitTorrent/Connecter.pyo
-%%PYTHON_SITELIBDIR%%/kenosis_BitTorrent/CurrentRateMeasure.py
-%%PYTHON_SITELIBDIR%%/kenosis_BitTorrent/CurrentRateMeasure.pyc
-%%PYTHON_SITELIBDIR%%/kenosis_BitTorrent/CurrentRateMeasure.pyo
-%%PYTHON_SITELIBDIR%%/kenosis_BitTorrent/Downloader.py
-%%PYTHON_SITELIBDIR%%/kenosis_BitTorrent/Downloader.pyc
-%%PYTHON_SITELIBDIR%%/kenosis_BitTorrent/Downloader.pyo
-%%PYTHON_SITELIBDIR%%/kenosis_BitTorrent/DownloaderFeedback.py
-%%PYTHON_SITELIBDIR%%/kenosis_BitTorrent/DownloaderFeedback.pyc
-%%PYTHON_SITELIBDIR%%/kenosis_BitTorrent/DownloaderFeedback.pyo
-%%PYTHON_SITELIBDIR%%/kenosis_BitTorrent/Encrypter.py
-%%PYTHON_SITELIBDIR%%/kenosis_BitTorrent/Encrypter.pyc
-%%PYTHON_SITELIBDIR%%/kenosis_BitTorrent/Encrypter.pyo
-%%PYTHON_SITELIBDIR%%/kenosis_BitTorrent/HTTPHandler.py
-%%PYTHON_SITELIBDIR%%/kenosis_BitTorrent/HTTPHandler.pyc
-%%PYTHON_SITELIBDIR%%/kenosis_BitTorrent/HTTPHandler.pyo
-%%PYTHON_SITELIBDIR%%/kenosis_BitTorrent/NatCheck.py
-%%PYTHON_SITELIBDIR%%/kenosis_BitTorrent/NatCheck.pyc
-%%PYTHON_SITELIBDIR%%/kenosis_BitTorrent/NatCheck.pyo
-%%PYTHON_SITELIBDIR%%/kenosis_BitTorrent/PiecePicker.py
-%%PYTHON_SITELIBDIR%%/kenosis_BitTorrent/PiecePicker.pyc
-%%PYTHON_SITELIBDIR%%/kenosis_BitTorrent/PiecePicker.pyo
-%%PYTHON_SITELIBDIR%%/kenosis_BitTorrent/RateMeasure.py
-%%PYTHON_SITELIBDIR%%/kenosis_BitTorrent/RateMeasure.pyc
-%%PYTHON_SITELIBDIR%%/kenosis_BitTorrent/RateMeasure.pyo
-%%PYTHON_SITELIBDIR%%/kenosis_BitTorrent/RawServer.py
-%%PYTHON_SITELIBDIR%%/kenosis_BitTorrent/RawServer.pyc
-%%PYTHON_SITELIBDIR%%/kenosis_BitTorrent/RawServer.pyo
-%%PYTHON_SITELIBDIR%%/kenosis_BitTorrent/Rerequester.py
-%%PYTHON_SITELIBDIR%%/kenosis_BitTorrent/Rerequester.pyc
-%%PYTHON_SITELIBDIR%%/kenosis_BitTorrent/Rerequester.pyo
-%%PYTHON_SITELIBDIR%%/kenosis_BitTorrent/Storage.py
-%%PYTHON_SITELIBDIR%%/kenosis_BitTorrent/Storage.pyc
-%%PYTHON_SITELIBDIR%%/kenosis_BitTorrent/Storage.pyo
-%%PYTHON_SITELIBDIR%%/kenosis_BitTorrent/StorageWrapper.py
-%%PYTHON_SITELIBDIR%%/kenosis_BitTorrent/StorageWrapper.pyc
-%%PYTHON_SITELIBDIR%%/kenosis_BitTorrent/StorageWrapper.pyo
-%%PYTHON_SITELIBDIR%%/kenosis_BitTorrent/Uploader.py
-%%PYTHON_SITELIBDIR%%/kenosis_BitTorrent/Uploader.pyc
-%%PYTHON_SITELIBDIR%%/kenosis_BitTorrent/Uploader.pyo
-%%PYTHON_SITELIBDIR%%/kenosis_BitTorrent/__init__.py
-%%PYTHON_SITELIBDIR%%/kenosis_BitTorrent/__init__.pyc
-%%PYTHON_SITELIBDIR%%/kenosis_BitTorrent/__init__.pyo
-%%PYTHON_SITELIBDIR%%/kenosis_BitTorrent/bencode.py
-%%PYTHON_SITELIBDIR%%/kenosis_BitTorrent/bencode.pyc
-%%PYTHON_SITELIBDIR%%/kenosis_BitTorrent/bencode.pyo
-%%PYTHON_SITELIBDIR%%/kenosis_BitTorrent/bitfield.py
-%%PYTHON_SITELIBDIR%%/kenosis_BitTorrent/bitfield.pyc
-%%PYTHON_SITELIBDIR%%/kenosis_BitTorrent/bitfield.pyo
-%%PYTHON_SITELIBDIR%%/kenosis_BitTorrent/btformats.py
-%%PYTHON_SITELIBDIR%%/kenosis_BitTorrent/btformats.pyc
-%%PYTHON_SITELIBDIR%%/kenosis_BitTorrent/btformats.pyo
-%%PYTHON_SITELIBDIR%%/kenosis_BitTorrent/download.py
-%%PYTHON_SITELIBDIR%%/kenosis_BitTorrent/download.pyc
-%%PYTHON_SITELIBDIR%%/kenosis_BitTorrent/download.pyo
-%%PYTHON_SITELIBDIR%%/kenosis_BitTorrent/fakeopen.py
-%%PYTHON_SITELIBDIR%%/kenosis_BitTorrent/fakeopen.pyc
-%%PYTHON_SITELIBDIR%%/kenosis_BitTorrent/fakeopen.pyo
-%%PYTHON_SITELIBDIR%%/kenosis_BitTorrent/parseargs.py
-%%PYTHON_SITELIBDIR%%/kenosis_BitTorrent/parseargs.pyc
-%%PYTHON_SITELIBDIR%%/kenosis_BitTorrent/parseargs.pyo
-%%PYTHON_SITELIBDIR%%/kenosis_BitTorrent/selectpoll.py
-%%PYTHON_SITELIBDIR%%/kenosis_BitTorrent/selectpoll.pyc
-%%PYTHON_SITELIBDIR%%/kenosis_BitTorrent/selectpoll.pyo
-%%PYTHON_SITELIBDIR%%/kenosis_BitTorrent/testtest.py
-%%PYTHON_SITELIBDIR%%/kenosis_BitTorrent/testtest.pyc
-%%PYTHON_SITELIBDIR%%/kenosis_BitTorrent/testtest.pyo
-%%PYTHON_SITELIBDIR%%/kenosis_BitTorrent/track.py
-%%PYTHON_SITELIBDIR%%/kenosis_BitTorrent/track.pyc
-%%PYTHON_SITELIBDIR%%/kenosis_BitTorrent/track.pyo
-%%PYTHON_SITELIBDIR%%/kenosis_BitTorrent/zurllib.py
-%%PYTHON_SITELIBDIR%%/kenosis_BitTorrent/zurllib.pyc
-%%PYTHON_SITELIBDIR%%/kenosis_BitTorrent/zurllib.pyo
-@dirrm libexec/kenosis-BitTorrent
-@dirrm %%PYTHON_SITELIBDIR%%/kenosis_BitTorrent
-@dirrmtry %%PYTHON_SITELIBDIR%%
-@dirrmtry %%PYTHON_LIBDIR%%