diff options
author | miwi <miwi@FreeBSD.org> | 2008-12-08 04:36:48 +0800 |
---|---|---|
committer | miwi <miwi@FreeBSD.org> | 2008-12-08 04:36:48 +0800 |
commit | ee9041954dbb5eee6cf7ad23033f279fb9baf1fb (patch) | |
tree | 744175faae2ce279b11344446335825f003eaafd /net-p2p | |
parent | 4443f565cf19b431693adfa582dbd9007a32c657 (diff) | |
download | freebsd-ports-graphics-ee9041954dbb5eee6cf7ad23033f279fb9baf1fb.tar.gz freebsd-ports-graphics-ee9041954dbb5eee6cf7ad23033f279fb9baf1fb.tar.zst freebsd-ports-graphics-ee9041954dbb5eee6cf7ad23033f279fb9baf1fb.zip |
2008-09-19 japanese/escpf: Has been broken for more than 6 months
2008-09-19 java/java-gcj-compat: Has been broken for more than 6 months
2008-09-19 lang/screamer: Has been broken for more than 6 months
2008-10-01 misc/documancer: Unmaintained upstream
2008-09-19 misc/ipbt: Has been broken for more than 6 months
2008-10-13 multimedia/manslide: Use multimedia/smile instead
2008-09-19 net/globus4: Has been broken for more than 6 months
2008-09-19 net/p5-Parallel-MPI: Has been broken for more than 6 months
2008-01-28 net/p54u: website disappeared
2008-09-19 net-im/ginsu: Has been broken for more than 6 months
2008-09-19 net-p2p/py-kenosis-bittorrent: Has been broken for more than 6 months
2008-09-19 sysutils/sjog: Has been broken for more than 6 months
2008-09-19 textproc/Ebnf2ps: Has been broken for more than 6 months
2008-09-19 www/roxen: Has been broken for more than 6 months
2008-09-19 x11-fm/evidence: Has been broken for more than 6 months
Diffstat (limited to 'net-p2p')
22 files changed, 0 insertions, 949 deletions
diff --git a/net-p2p/Makefile b/net-p2p/Makefile index 22c8042485f..91aaa6272b0 100644 --- a/net-p2p/Makefile +++ b/net-p2p/Makefile @@ -101,7 +101,6 @@ SUBDIR += py-bittorrent-core SUBDIR += py-fngrab SUBDIR += py-kenosis - SUBDIR += py-kenosis-bittorrent SUBDIR += py-py2play SUBDIR += py-vertex SUBDIR += pyslsk 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%% |