diff options
Diffstat (limited to 'net-nntp/hellanzb/files')
9 files changed, 403 insertions, 0 deletions
diff --git a/net-nntp/hellanzb/files/hellanzb-0.13-Choose_interface_to_bind_on.patch b/net-nntp/hellanzb/files/hellanzb-0.13-Choose_interface_to_bind_on.patch new file mode 100644 index 00000000000..a254a9d23c9 --- /dev/null +++ b/net-nntp/hellanzb/files/hellanzb-0.13-Choose_interface_to_bind_on.patch @@ -0,0 +1,52 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 001-Choose_interface_to_bind_on +## by Adam Cécile (Le_Vert) <gandalf@le-vert.net> +## +## DP: Add a Hellanzb.XMLRPC_SERVER option which allowusers to set on which +## DP: IP address XMLRPC server will be binded. + +@DPATCH@ +diff -u hellanzb-0.11/Hellanzb/HellaXMLRPC/__init__.py hellanzb-0.11/Hellanzb/HellaXMLRPC/__init__.py.new +--- hellanzb-0.11/Hellanzb/HellaXMLRPC/__init__.py 2007-01-30 03:51:05.000000000 +0100 ++++ hellanzb-0.11/Hellanzb/HellaXMLRPC/__init__.py.new 2007-02-10 15:19:14.000000000 +0100 +@@ -597,9 +597,9 @@ + try: + if SECURE: + secure = HtPasswdWrapper(hxmlrpcs, 'hellanzb', Hellanzb.XMLRPC_PASSWORD, 'hellanzb XML RPC') +- reactor.listenTCP(Hellanzb.XMLRPC_PORT, Site(secure)) ++ reactor.listenTCP(Hellanzb.XMLRPC_PORT, Site(secure), 50, Hellanzb.XMLRPC_SERVER_BIND) + else: +- reactor.listenTCP(Hellanzb.XMLRPC_PORT, Site(hxmlrpcs)) ++ reactor.listenTCP(Hellanzb.XMLRPC_PORT, Site(hxmlrpcs), 50, Hellanzb.XMLRPC_SERVER_BIND) + except CannotListenError, cle: + error(str(cle)) + raise FatalError('Cannot bind to XML RPC port, is another hellanzb queue daemon already running?') + +diff -u hellanzb-0.11/etc/hellanzb.conf.sample hellanzb-0.11/etc/hellanzb.conf.sample.new +--- hellanzb-0.11/etc/hellanzb.conf.sample 2007-01-30 03:51:05.000000000 +0100 ++++ hellanzb-0.11/etc/hellanzb.conf.sample.new 2007-02-10 15:18:10.000000000 +0100 +@@ -151,6 +151,10 @@ + # Hostname for the XMLRPC client to connect to. By default, localhost + Hellanzb.XMLRPC_SERVER = 'localhost' + ++# IP address on which the XMLRPC Server will be binded to. ++# Type '0.0.0.0' for any interfaces, '127.0.0.1' will disable remote access ++Hellanzb.XMLRPC_SERVER_BIND = '127.0.0.1' ++ + # Port number the XML RPC server will listen on, and the client will connect to. + # Set to 'None' (without the quotes!) for no XML RPC server + Hellanzb.XMLRPC_PORT = 8760 +diff -u hellanzb-0.11/Hellanzb/Core.py hellanzb-0.11/Hellanzb/Core.py.new +--- hellanzb-0.11/Hellanzb/Core.py 2007-01-30 03:51:05.000000000 +0100 ++++ hellanzb-0.11/Hellanzb/Core.py.new 2007-02-10 15:18:10.000000000 +0100 +@@ -113,7 +106,9 @@ + + if not hasattr(Hellanzb, 'SKIP_UNRAR') or Hellanzb.SKIP_UNRAR is None: + Hellanzb.SKIP_UNRAR = False +- ++ if not hasattr(Hellanzb, 'XMLRPC_SERVER_BIND') or Hellanzb.XMLRPC_SERVER_BIND is None: ++ print 'Warning: Hellanzb.XMLRPC_SERVER_BIND is not set, bind to 127.0.0.1' ++ Hellanzb.XMLRPC_SERVER_BIND = '127.0.0.1' + + if not hasattr(Hellanzb, 'SMART_PAR'): + Hellanzb.SMART_PAR = True diff --git a/net-nntp/hellanzb/files/hellanzb-0.13-Fix_conf_file_search_path.patch b/net-nntp/hellanzb/files/hellanzb-0.13-Fix_conf_file_search_path.patch new file mode 100644 index 00000000000..ee22dd20c1e --- /dev/null +++ b/net-nntp/hellanzb/files/hellanzb-0.13-Fix_conf_file_search_path.patch @@ -0,0 +1,31 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 000-Fix_conf_file_search_path by +## Adam Cécile (Le_Vert) <gandalf@le-vert.net> +## +## DP: Search for configuration file in $HOME/.hellanzb/ or /etc/ + +@DPATCH@ + +diff -u hellanzb-0.11/Hellanzb/Core.py hellanzb-0.11/Hellanzb/Core.py.new +--- hellanzb-0.11/Hellanzb/Core.py 2007-02-10 15:01:50.000000000 +0100 ++++ hellanzb-0.11/Hellanzb/Core.py.new 2007-02-10 15:05:48.000000000 +0100 +@@ -33,16 +33,9 @@ + else: + error('Unable to load specified config file: ' + optionalConfigFile) + sys.exit(1) +- +- # look for conf in this order: sys.prefix, ./, or ./etc/ +- confDirs = [os.path.join(sys.prefix, 'etc')] +- try: +- confDirs.append(os.path.join(os.getcwd(), 'etc')) +- confDirs.append(os.getcwd()) +- except OSError, ose: +- if ose.errno != 2: +- raise +- # OSError: [Errno 2] No such file or directory. cwd doesn't exist ++ ++ # Look for conf file in /etc or $HOME/.hellanzb ++ confDirs = [ os.path.expanduser('~') + '/.hellanzb', '/etc' ] + + # hard coding preferred Darwin config file location, kind of lame. but I'd rather do + # this then make an etc dir in os x's Python.framework directory diff --git a/net-nntp/hellanzb/files/hellanzb-0.13-datafiles.patch b/net-nntp/hellanzb/files/hellanzb-0.13-datafiles.patch new file mode 100644 index 00000000000..88c5899c5b8 --- /dev/null +++ b/net-nntp/hellanzb/files/hellanzb-0.13-datafiles.patch @@ -0,0 +1,13 @@ +Index: hellanzb-0.13/setup.py +=================================================================== +--- hellanzb-0.13.orig/setup.py ++++ hellanzb-0.13/setup.py +@@ -38,8 +38,6 @@ def runSetup(): + packages = [ 'Hellanzb', 'Hellanzb.NZBLeecher', 'Hellanzb.HellaXMLRPC', + 'Hellanzb.external', 'Hellanzb.external.elementtree' ], + scripts = [ 'hellanzb.py' ], +- data_files = [ ( 'etc', [ 'etc/hellanzb.conf.sample' ] ), +- ( 'share/doc/hellanzb', [ 'CHANGELOG', 'CREDITS', 'README', 'LICENSE' ] ) ], + ) + py2app_options = dict( + app = [ 'hellanzb.py' ], diff --git a/net-nntp/hellanzb/files/hellanzb-0.13-fix_multiples_hosts.diff b/net-nntp/hellanzb/files/hellanzb-0.13-fix_multiples_hosts.diff new file mode 100644 index 00000000000..5cf39c311a8 --- /dev/null +++ b/net-nntp/hellanzb/files/hellanzb-0.13-fix_multiples_hosts.diff @@ -0,0 +1,107 @@ +diff -r bdbcba80e0fa Hellanzb/NZBLeecher/Protocol.py +--- a/Hellanzb/NZBLeecher/Protocol.py Wed Nov 14 10:00:29 2007 +0100 ++++ b/Hellanzb/NZBLeecher/Protocol.py Thu Nov 22 22:32:04 2007 +0100 +@@ -27,18 +27,14 @@ PHI = 1.6180339887498948 # (1 + math.sqr + PHI = 1.6180339887498948 # (1 + math.sqrt(5)) / 2 + class NZBLeecherFactory(ReconnectingClientFactory): + +- def __init__(self, username, password, activeTimeout, antiIdleTimeout, hostname, ++ def __init__(self, username, password, activeTimeout, antiIdleTimeout, + serverPoolName, skipGroupCmd, fillServerPriority = 0, color = None): + self.username = username + self.password = password + self.antiIdleTimeout = antiIdleTimeout + self.activeTimeout = activeTimeout +- self.hostname = hostname + self.serverPoolName = serverPoolName + self.fillServerPriority = fillServerPriority +- +- self.host = None +- self.port = None + + # statistics for the current session (sessions end when downloading stops on all + # clients). sessionReadBytes and sessionStartime are used to calculate the average +@@ -88,6 +84,7 @@ class NZBLeecherFactory(ReconnectingClie + p.factory = self + p.id = self.clientIds[0] + self.clientIds.remove(p.id) ++ p.host, p.port = addr.host, addr.port + + # All clients inherit the factory's anti idle timeout setting + # FIXME: I don't think there's any reason to copy these values to the +@@ -323,7 +320,7 @@ class NZBLeecher(NNTPClient, TimeoutMixi + "Override for notification when authInfoFailed() action fails" + debug(str(self) + ' AUTHINFO failed: ' + str(err)) + # FIXME: This gives us too much scroll. Need to only do it selectively +- #error(self.factory.hostname + '[' + str(self.id).zfill(2) + '] Authorization failed: ' + str(err)) ++ #error(self.host + '[' + str(self.id).zfill(2) + '] Authorization failed: ' + str(err)) + self.transport.loseConnection() + + def connectionMade(self): +@@ -428,7 +425,7 @@ class NZBLeecher(NNTPClient, TimeoutMixi + login """ + if self.username == None and self.password == None: + warn('Could not MODE READER on no auth server (%s:%i), returned: %s' % \ +- (self.factory.host, self.factory.port, str(err))) ++ (self.host, self.port, str(err))) + reactor.callLater(0, self.fetchNextNZBSegment) + elif not self.isLoggedIn: + self.setReaderAfterLogin = True +diff -r bdbcba80e0fa Hellanzb/NZBLeecher/__init__.py +--- a/Hellanzb/NZBLeecher/__init__.py Wed Nov 14 10:00:29 2007 +0100 ++++ b/Hellanzb/NZBLeecher/__init__.py Thu Nov 22 22:32:04 2007 +0100 +@@ -122,30 +122,28 @@ def connectServer(serverName, serverDict + connectionCount = 0 + hosts = serverDict['hosts'] + connections = int(serverDict['connections']) ++ antiIdle = int(setWithDefault(serverDict, 'antiIdle', defaultAntiIdle)) ++ idleTimeout = int(setWithDefault(serverDict, 'idleTimeout', defaultIdleTimeout)) ++ skipGroupCmd = setWithDefault(serverDict, 'skipGroupCmd', False) ++ fillServer = setWithDefault(serverDict, 'fillserver', 0) ++ useSSL = setWithDefault(serverDict, 'ssl', False) ++ ++ nsf = NZBLeecherFactory(serverDict['username'], serverDict['password'], ++ idleTimeout, antiIdle, serverName, skipGroupCmd, ++ fillServer) ++ color = nsf.color ++ Hellanzb.nsfs.append(nsf) ++ ++ preWrappedNsf = nsf ++ nsf = HellaThrottlingFactory(nsf) + + for host in hosts: +- antiIdle = int(setWithDefault(serverDict, 'antiIdle', defaultAntiIdle)) +- idleTimeout = int(setWithDefault(serverDict, 'idleTimeout', defaultIdleTimeout)) +- skipGroupCmd = setWithDefault(serverDict, 'skipGroupCmd', False) +- fillServer = setWithDefault(serverDict, 'fillserver', 0) +- useSSL = setWithDefault(serverDict, 'ssl', False) +- +- nsf = NZBLeecherFactory(serverDict['username'], serverDict['password'], +- idleTimeout, antiIdle, host, serverName, skipGroupCmd, +- fillServer) +- color = nsf.color +- Hellanzb.nsfs.append(nsf) +- + split = host.split(':') + host = split[0] + if len(split) == 2: + port = int(split[1]) + else: + port = 119 +- nsf.host, nsf.port = host, port +- +- preWrappedNsf = nsf +- nsf = HellaThrottlingFactory(nsf) + + ctxf = None + if useSSL: +@@ -195,7 +193,8 @@ def connectServer(serverName, serverDict + if antiIdle == 0: + preWrappedNsf.leecherConnectors.append(connector) + connectionCount += 1 +- preWrappedNsf.setConnectionCount(connectionCount) ++ ++ preWrappedNsf.setConnectionCount(connectionCount) + + if antiIdle == 0: + action = '' diff --git a/net-nntp/hellanzb/files/hellanzb-0.13-gettinggroup.patch b/net-nntp/hellanzb/files/hellanzb-0.13-gettinggroup.patch new file mode 100644 index 00000000000..2f7af1ad1a9 --- /dev/null +++ b/net-nntp/hellanzb/files/hellanzb-0.13-gettinggroup.patch @@ -0,0 +1,14 @@ +diff -r 92936345c3f5 Hellanzb/NZBLeecher/Protocol.py +--- a/Hellanzb/NZBLeecher/Protocol.py Mon Aug 18 10:38:55 2008 +0200 ++++ b/Hellanzb/NZBLeecher/Protocol.py Mon Aug 18 11:34:20 2008 +0200 +@@ -655,7 +655,7 @@ + reactor.callInThread(decode, segment) + + def gotGroup(self, group): +- group = group[3] ++ group = self.gettingGroup + self.activeGroups.append(group) + self.gettingGroup = None + debug(str(self) + ' got GROUP: ' + group) + + diff --git a/net-nntp/hellanzb/files/hellanzb-0.13-python_26_fixes.patch b/net-nntp/hellanzb/files/hellanzb-0.13-python_26_fixes.patch new file mode 100644 index 00000000000..4f981adedbb --- /dev/null +++ b/net-nntp/hellanzb/files/hellanzb-0.13-python_26_fixes.patch @@ -0,0 +1,90 @@ +https://bugs.gentoo.org/show_bug.cgi?id=262881 + +Index: Hellanzb/Growl.py +=================================================================== +--- Hellanzb/Growl.py (Revision 1094) ++++ Hellanzb/Growl.py (Arbeitskopie) +@@ -7,7 +7,13 @@ + __contributors__ = "Ingmar J Stein (Growl Team)" + + import struct +-import md5 ++ ++# The md5 module has been deprecated as of Python 2.6. ++try: ++ from hashlib import md5 ++except ImportError: ++ from md5 import md5 ++ + from socket import AF_INET, SOCK_DGRAM, socket + + GROWL_UDP_PORT=9887 +@@ -51,7 +57,7 @@ + self.data += encoded + for default in self.defaults: + self.data += struct.pack("B", default) +- self.checksum = md5.new() ++ self.checksum = md5() + self.checksum.update(self.data) + if self.password: + self.checksum.update(self.password) +@@ -89,7 +95,7 @@ + self.data += self.title + self.data += self.description + self.data += self.application +- self.checksum = md5.new() ++ self.checksum = md5() + self.checksum.update(self.data) + if password: + self.checksum.update(password) +Index: Hellanzb/Util.py +=================================================================== +--- Hellanzb/Util.py (Revision 1094) ++++ Hellanzb/Util.py (Arbeitskopie) +@@ -28,9 +28,6 @@ + + class FatalError(Exception): + """ An error that will cause the program to exit """ +- def __init__(self, message): +- self.args = [message] +- self.message = message + + class EmptyForThisPool(Empty): + """ The queue is empty in terms of our current serverPool, but there are still segments to +Index: Hellanzb/HellaXMLRPC/HtPasswdAuth.py +=================================================================== +--- Hellanzb/HellaXMLRPC/HtPasswdAuth.py (Revision 1094) ++++ Hellanzb/HellaXMLRPC/HtPasswdAuth.py (Arbeitskopie) +@@ -8,7 +8,13 @@ + (c) Copyright 2005 Philip Jenvey + [See end of file] + """ +-import md5 ++ ++# The md5 module has been deprecated as of Python 2.6. ++try: ++ from hashlib import md5 ++except ImportError: ++ from md5 import md5 ++ + from twisted.web import static + from twisted.web.resource import Resource + +@@ -70,7 +76,7 @@ + + self.user = user + +- m = md5.new() ++ m = md5() + m.update(password) + del password + self.passwordDigest = m.digest() +@@ -90,7 +96,7 @@ + def authenticateUser(self, request): + username, password = request.getUser(), request.getPassword() + +- m = md5.new() ++ m = md5() + m.update(password) + + authenticated = username == self.user and self.passwordDigest == m.digest() diff --git a/net-nntp/hellanzb/files/hellanzb-0.13-twisted-10.0.0.patch b/net-nntp/hellanzb/files/hellanzb-0.13-twisted-10.0.0.patch new file mode 100644 index 00000000000..e1a57892cee --- /dev/null +++ b/net-nntp/hellanzb/files/hellanzb-0.13-twisted-10.0.0.patch @@ -0,0 +1,36 @@ +https://bugs.gentoo.org/show_bug.cgi?id=316725 +http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=573221 + +--- xmlrpc.py 2010-03-10 18:29:19.000000000 -0600 ++++ /usr/share/pyshared/Hellanzb/HellaXMLRPC/xmlrpc.py 2010-03-10 18:30:03.000000000 -0600 +@@ -31,7 +31,7 @@ + from twisted.python import log, reflect + + import twisted.copyright +-if twisted.copyright.version >= '2.0.0': ++if twisted.copyright.version >= '2.0.0' or twisted.copyright.version >= '10.0.0': + from twisted.web import http + else: + from twisted.protocols import http +--- HtPasswdAuth.py 2010-03-10 18:30:29.000000000 -0600 ++++ /usr/share/pyshared/Hellanzb/HellaXMLRPC/HtPasswdAuth.py 2010-03-10 18:30:49.000000000 -0600 +@@ -19,7 +19,7 @@ + from twisted.web.resource import Resource + + import twisted.copyright +-if twisted.copyright.version >= '2.0.0': ++if twisted.copyright.version >= '2.0.0' or twisted.copyright.version >= '10.0.0': + from twisted.web import http + else: + from twisted.protocols import http +--- HellaReactor.py 2010-03-10 18:22:34.000000000 -0600 ++++ /usr/share/pyshared/Hellanzb/HellaReactor.py 2010-03-10 18:30:07.000000000 -0600 +@@ -9,7 +9,7 @@ + import Hellanzb, sys, time + + import twisted.copyright +-if twisted.copyright.version >= '2.0.0': ++if twisted.copyright.version >= '2.0.0' or twisted.copyright.version >= '10.0.0': + from twisted.internet.selectreactor import SelectReactor + from twisted.internet.selectreactor import _NO_FILENO + from twisted.internet.selectreactor import _NO_FILEDESC diff --git a/net-nntp/hellanzb/files/hellanzb.conf b/net-nntp/hellanzb/files/hellanzb.conf new file mode 100644 index 00000000000..e6553f89a76 --- /dev/null +++ b/net-nntp/hellanzb/files/hellanzb.conf @@ -0,0 +1,19 @@ +# Copyright 1999-2006 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +# /etc/conf.d/hellanzb +# Config file for hellanzb init script + +# Which user to run hellanzb as, you should change this. +HELLA_USER="root" +HELLA_GROUP="root" + +# Location of config file, create a copy from /etc/hellanzb.conf for this. +# Make sure the user specified above can read this file. +HELLA_CONFIGFILE="/etc/hellanzb.conf" + +# Specify some other cli-options to hellanzb.py if you want. +HELLA_OPTS="" + +# All the other options to hellanzb can be configured in ${CONFIG_FILE}. diff --git a/net-nntp/hellanzb/files/hellanzb.init b/net-nntp/hellanzb/files/hellanzb.init new file mode 100644 index 00000000000..be318d56c49 --- /dev/null +++ b/net-nntp/hellanzb/files/hellanzb.init @@ -0,0 +1,41 @@ +#!/sbin/runscript +# Copyright 1999-2006 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +opts="start stop" + +depend() { + need net +} + +start() { + ebegin "Starting hellanzb" + if ! check_config ; then + eend 1 + return 1 + fi + if [ "${RC_CMD}" = "restart" ] ; then + sleep 1 # wait for socket to be released + fi + + start-stop-daemon --start -c ${HELLA_USER} \ + -g ${HELLA_GROUP} --name hellanzb.py \ + --exec /usr/bin/hellanzb.py -- \ + -D -c ${HELLA_CONFIGFILE} ${HELLA_OPTS} &> /dev/null + eend $? +} + +stop() { + ebegin "Stopping hellanzb" + /usr/bin/hellanzb.py shutdown &> /dev/null + eend $? +} + +check_config() { + if [ ! -e ${HELLA_CONFIGFILE} ] ; then + eerror "ERROR: can't find ${HELLA_CONFIGFILE}." + return 1 + else + return 0 + fi +} |