aboutsummaryrefslogtreecommitdiff
path: root/security/py-fail2ban
diff options
context:
space:
mode:
authorSunpoet Po-Chuan Hsieh <sunpoet@FreeBSD.org>2014-05-02 13:17:26 +0000
committerSunpoet Po-Chuan Hsieh <sunpoet@FreeBSD.org>2014-05-02 13:17:26 +0000
commitb7143f3f2f6c3cabb7883575bef3fd9592f5111f (patch)
treea4c7626bb54e1282315aae7476cc288a0a24d467 /security/py-fail2ban
parentafc88494040ea09f5ad14c86381c3a39c319c672 (diff)
downloadports-b7143f3f2f6c3cabb7883575bef3fd9592f5111f.tar.gz
ports-b7143f3f2f6c3cabb7883575bef3fd9592f5111f.zip
Notes
Diffstat (limited to 'security/py-fail2ban')
-rw-r--r--security/py-fail2ban/Makefile24
-rw-r--r--security/py-fail2ban/distinfo4
-rw-r--r--security/py-fail2ban/files/patch-fail2banreader.py11
-rw-r--r--security/py-fail2ban/files/patch-paths-freebsd.conf20
-rw-r--r--security/py-fail2ban/files/patch-setup.py15
-rw-r--r--security/py-fail2ban/pkg-message3
-rw-r--r--security/py-fail2ban/pkg-plist248
7 files changed, 187 insertions, 138 deletions
diff --git a/security/py-fail2ban/Makefile b/security/py-fail2ban/Makefile
index 5532073bd43f..0930534ebc66 100644
--- a/security/py-fail2ban/Makefile
+++ b/security/py-fail2ban/Makefile
@@ -1,7 +1,7 @@
# $FreeBSD$
PORTNAME= fail2ban
-PORTVERSION= 0.8.12
+PORTVERSION= 0.9.0
CATEGORIES= security python
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -10,10 +10,12 @@ COMMENT= Scans log files and bans IP that makes too many password failures
LICENSE= GPLv2
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}sqlite3>0:${PORTSDIR}/databases/py-sqlite3
+
USE_GITHUB= yes
GH_ACCOUNT= ${PORTNAME}
GH_PROJECT= ${PORTNAME}
-GH_COMMIT= 33dd173
+GH_COMMIT= c7f4c48
GH_TAGNAME= ${PORTVERSION}
USE_PYTHON= 2
@@ -28,21 +30,23 @@ PYDISTUTILS_PKGVERSION= ${PORTVERSION}
PORTDOCS= README.md DEVELOP
-FILES= ${WRKSRC}/fail2ban-regex \
+FILES= ${WRKSRC}/bin/fail2ban-client \
+ ${WRKSRC}/fail2ban/client/configreader.py \
${WRKSRC}/man/fail2ban-client.1 \
${WRKSRC}/man/fail2ban-client.h2m \
- ${WRKSRC}/setup.py \
- ${WRKSRC}/client/configreader.py \
- ${WRKSRC}/fail2ban-client
+ ${WRKSRC}/setup.py
+FAIL2BAN_DBDIR= /var/db/${PORTNAME}
post-patch:
- @${ECHO_CMD} ${FILES} | ${XARGS} ${REINPLACE_CMD} -e 's,/etc/fail2ban,${ETCDIR},g'
- @${REINPLACE_CMD} -e 's,/bin/grep,grep,g' \
- ${WRKSRC}/config/action.d/sendmail-whois-lines.conf
- @${REINPLACE_CMD} -e 's,/var/log/sshd.log,/var/log/auth.log,g' \
+# @${ECHO_CMD} ${FILES} | ${XARGS} ${REINPLACE_CMD} -e 's,/etc/fail2ban,${ETCDIR},g'
+ @${REINPLACE_CMD} -e 's,/etc/fail2ban,${ETCDIR},g' ${FILES}
+ @${REINPLACE_CMD} -e 's,paths-debian.conf,paths-freebsd.conf,g' \
${WRKSRC}/config/jail.conf
+ @${REINPLACE_CMD} -e 's,/var/lib/fail2ban/fail2ban.sqlite3,${FAIL2BAN_DBDIR}/fail2ban.sqlite3,g' \
+ ${WRKSRC}/config/fail2ban.conf
post-install:
+ @${MKDIR} ${STAGEDIR}${FAIL2BAN_DBDIR}
@${MKDIR} ${STAGEDIR}${DOCSDIR}
(cd ${WRKSRC}/ && ${INSTALL_DATA} ${PORTDOCS} ${STAGEDIR}${DOCSDIR})
diff --git a/security/py-fail2ban/distinfo b/security/py-fail2ban/distinfo
index 8e0c423b3cd2..e04874eca874 100644
--- a/security/py-fail2ban/distinfo
+++ b/security/py-fail2ban/distinfo
@@ -1,2 +1,2 @@
-SHA256 (fail2ban-0.8.12.tar.gz) = d03db61265b7ca6e74f087953e8b0b81f2608636ecca7aad8db289c014e3440c
-SIZE (fail2ban-0.8.12.tar.gz) = 221688
+SHA256 (fail2ban-0.9.0.tar.gz) = 981d2461a75d818934e2dcacf618ad9460ac4a6c05956f845f4d51c4d88000e0
+SIZE (fail2ban-0.9.0.tar.gz) = 274108
diff --git a/security/py-fail2ban/files/patch-fail2banreader.py b/security/py-fail2ban/files/patch-fail2banreader.py
new file mode 100644
index 000000000000..7c5760aabf85
--- /dev/null
+++ b/security/py-fail2ban/files/patch-fail2banreader.py
@@ -0,0 +1,11 @@
+--- fail2ban/client/fail2banreader.py.orig 2014-04-03 15:33:44.000000000 +0200
++++ fail2ban/client/fail2banreader.py 2014-04-03 15:34:00.000000000 +0200
+@@ -45,7 +45,7 @@
+ return ConfigReader.getOptions(self, "Definition", opts)
+
+ def getOptions(self):
+- opts = [["int", "loglevel", "INFO" ],
++ opts = [["string", "loglevel", "INFO" ],
+ ["string", "logtarget", "STDERR"],
+ ["string", "dbfile", "/var/lib/fail2ban/fail2ban.sqlite3"],
+ ["int", "dbpurgeage", 86400]]
diff --git a/security/py-fail2ban/files/patch-paths-freebsd.conf b/security/py-fail2ban/files/patch-paths-freebsd.conf
new file mode 100644
index 000000000000..7f917035e213
--- /dev/null
+++ b/security/py-fail2ban/files/patch-paths-freebsd.conf
@@ -0,0 +1,20 @@
+--- config/paths-freebsd.conf.orig 2014-03-15 01:18:01.000000000 +0100
++++ config/paths-freebsd.conf 2014-04-03 09:49:23.000000000 +0200
+@@ -2,7 +2,7 @@
+
+ [INCLUDES]
+
+-before = common-paths.conf
++before = paths-common.conf
+
+ after = paths-overrides.local
+
+@@ -24,6 +24,8 @@
+
+ syslog_local0 = /var/log/messages
+
++syslog_user =
++
+ # Linux things
+ # we fake to avoid parse error in startups
+
diff --git a/security/py-fail2ban/files/patch-setup.py b/security/py-fail2ban/files/patch-setup.py
index f969a436996a..a8a782a966dd 100644
--- a/security/py-fail2ban/files/patch-setup.py
+++ b/security/py-fail2ban/files/patch-setup.py
@@ -1,12 +1,13 @@
---- setup.py.orig 2013-06-10 03:40:55.000000000 -0400
-+++ setup.py 2013-06-10 03:41:17.000000000 -0400
-@@ -67,9 +67,6 @@
+--- setup.py.orig 2014-04-02 18:37:35.000000000 +0200
++++ setup.py 2014-04-02 18:38:12.000000000 +0200
+@@ -141,10 +141,6 @@
),
- ('/var/run/fail2ban',
+ ('/var/lib/fail2ban',
''
- ),
- ('/usr/share/doc/fail2ban',
-- ['README.md', 'DEVELOP', 'doc/run-rootless.txt']
+- ['README.md', 'README.Solaris', 'DEVELOP', 'FILTERS',
+- 'doc/run-rootless.txt']
)
- ]
- )
+ ],
+ **setup_extra
diff --git a/security/py-fail2ban/pkg-message b/security/py-fail2ban/pkg-message
index 479bc235b3a4..1339f2c56ad3 100644
--- a/security/py-fail2ban/pkg-message
+++ b/security/py-fail2ban/pkg-message
@@ -10,4 +10,7 @@ For more information, see the official manual:
http://www.fail2ban.org/wiki/index.php/MANUAL_0_8#Configuration
+If you are upgrading from 0.8.x consider adopting the new
+configuration style.
+
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
diff --git a/security/py-fail2ban/pkg-plist b/security/py-fail2ban/pkg-plist
index dc20b3bdc04a..e4fa3ef21b0b 100644
--- a/security/py-fail2ban/pkg-plist
+++ b/security/py-fail2ban/pkg-plist
@@ -1,8 +1,19 @@
+bin/fail2ban-client
+bin/fail2ban-regex
+bin/fail2ban-server
+%%ETCDIR%%/fail2ban.conf
+%%ETCDIR%%/jail.conf
+%%ETCDIR%%/paths-freebsd.conf
+%%ETCDIR%%/paths-common.conf
%%ETCDIR%%/action.d/apf.conf
+%%ETCDIR%%/action.d/badips.conf
+%%ETCDIR%%/action.d/badips.py
+%%ETCDIR%%/action.d/blocklist_de.conf
%%ETCDIR%%/action.d/bsd-ipfw.conf
%%ETCDIR%%/action.d/complain.conf
%%ETCDIR%%/action.d/dshield.conf
%%ETCDIR%%/action.d/dummy.conf
+%%ETCDIR%%/action.d/firewallcmd-ipset.conf
%%ETCDIR%%/action.d/firewallcmd-new.conf
%%ETCDIR%%/action.d/hostsdeny.conf
%%ETCDIR%%/action.d/ipfilter.conf
@@ -10,13 +21,13 @@
%%ETCDIR%%/action.d/iptables-allports.conf
%%ETCDIR%%/action.d/iptables-blocktype.conf
%%ETCDIR%%/action.d/iptables-ipset-proto4.conf
-%%ETCDIR%%/action.d/iptables-ipset-proto6.conf
%%ETCDIR%%/action.d/iptables-ipset-proto6-allports.conf
+%%ETCDIR%%/action.d/iptables-ipset-proto6.conf
%%ETCDIR%%/action.d/iptables-multiport-log.conf
%%ETCDIR%%/action.d/iptables-multiport.conf
%%ETCDIR%%/action.d/iptables-new.conf
-%%ETCDIR%%/action.d/iptables.conf
%%ETCDIR%%/action.d/iptables-xt_recent-echo.conf
+%%ETCDIR%%/action.d/iptables.conf
%%ETCDIR%%/action.d/mail-buffered.conf
%%ETCDIR%%/action.d/mail-whois-lines.conf
%%ETCDIR%%/action.d/mail-whois.conf
@@ -28,15 +39,22 @@
%%ETCDIR%%/action.d/route.conf
%%ETCDIR%%/action.d/sendmail-buffered.conf
%%ETCDIR%%/action.d/sendmail-common.conf
+%%ETCDIR%%/action.d/sendmail-whois-ipjailmatches.conf
+%%ETCDIR%%/action.d/sendmail-whois-ipmatches.conf
%%ETCDIR%%/action.d/sendmail-whois-lines.conf
+%%ETCDIR%%/action.d/sendmail-whois-matches.conf
%%ETCDIR%%/action.d/sendmail-whois.conf
%%ETCDIR%%/action.d/sendmail.conf
%%ETCDIR%%/action.d/shorewall.conf
-%%ETCDIR%%/fail2ban.conf
+%%ETCDIR%%/action.d/smtp.py
+%%ETCDIR%%/action.d/ufw.conf
+%%ETCDIR%%/action.d/xarf-login-attack.conf
%%ETCDIR%%/filter.d/3proxy.conf
%%ETCDIR%%/filter.d/apache-auth.conf
%%ETCDIR%%/filter.d/apache-badbots.conf
+%%ETCDIR%%/filter.d/apache-botsearch.conf
%%ETCDIR%%/filter.d/apache-common.conf
+%%ETCDIR%%/filter.d/apache-modsecurity.conf
%%ETCDIR%%/filter.d/apache-nohome.conf
%%ETCDIR%%/filter.d/apache-noscript.conf
%%ETCDIR%%/filter.d/apache-overflows.conf
@@ -46,24 +64,33 @@
%%ETCDIR%%/filter.d/bsd-sshd.conf
%%ETCDIR%%/filter.d/bsdftp.conf
%%ETCDIR%%/filter.d/common.conf
-%%ETCDIR%%/filter.d/courierlogin.conf
-%%ETCDIR%%/filter.d/couriersmtp.conf
+%%ETCDIR%%/filter.d/counter-strike.conf
+%%ETCDIR%%/filter.d/courier-auth.conf
+%%ETCDIR%%/filter.d/courier-smtp.conf
%%ETCDIR%%/filter.d/cyrus-imap.conf
%%ETCDIR%%/filter.d/dovecot.conf
%%ETCDIR%%/filter.d/dropbear.conf
-%%ETCDIR%%/filter.d/exim.conf
%%ETCDIR%%/filter.d/exim-common.conf
%%ETCDIR%%/filter.d/exim-spam.conf
+%%ETCDIR%%/filter.d/exim.conf
+%%ETCDIR%%/filter.d/freeswitch.conf
+%%ETCDIR%%/filter.d/groupoffice.conf
%%ETCDIR%%/filter.d/gssftpd.conf
+%%ETCDIR%%/filter.d/guacamole.conf
+%%ETCDIR%%/filter.d/horde.conf
+%%ETCDIR%%/filter.d/kerio.conf
%%ETCDIR%%/filter.d/lighttpd-auth.conf
%%ETCDIR%%/filter.d/mysqld-auth.conf
+%%ETCDIR%%/filter.d/nagios.conf
%%ETCDIR%%/filter.d/named-refused.conf
%%ETCDIR%%/filter.d/nginx-http-auth.conf
+%%ETCDIR%%/filter.d/nsd.conf
+%%ETCDIR%%/filter.d/openwebmail.conf
%%ETCDIR%%/filter.d/pam-generic.conf
%%ETCDIR%%/filter.d/perdition.conf
%%ETCDIR%%/filter.d/php-url-fopen.conf
-%%ETCDIR%%/filter.d/postfix.conf
%%ETCDIR%%/filter.d/postfix-sasl.conf
+%%ETCDIR%%/filter.d/postfix.conf
%%ETCDIR%%/filter.d/proftpd.conf
%%ETCDIR%%/filter.d/pure-ftpd.conf
%%ETCDIR%%/filter.d/qmail.conf
@@ -71,130 +98,113 @@
%%ETCDIR%%/filter.d/roundcube-auth.conf
%%ETCDIR%%/filter.d/selinux-common.conf
%%ETCDIR%%/filter.d/selinux-ssh.conf
+%%ETCDIR%%/filter.d/sendmail-auth.conf
+%%ETCDIR%%/filter.d/sendmail-reject.conf
%%ETCDIR%%/filter.d/sieve.conf
%%ETCDIR%%/filter.d/sogo-auth.conf
+%%ETCDIR%%/filter.d/solid-pop3d.conf
+%%ETCDIR%%/filter.d/squid.conf
+%%ETCDIR%%/filter.d/squirrelmail.conf
%%ETCDIR%%/filter.d/sshd-ddos.conf
%%ETCDIR%%/filter.d/sshd.conf
+%%ETCDIR%%/filter.d/stunnel.conf
%%ETCDIR%%/filter.d/suhosin.conf
+%%ETCDIR%%/filter.d/tine20.conf
%%ETCDIR%%/filter.d/uwimap-auth.conf
%%ETCDIR%%/filter.d/vsftpd.conf
%%ETCDIR%%/filter.d/webmin-auth.conf
%%ETCDIR%%/filter.d/wuftpd.conf
%%ETCDIR%%/filter.d/xinetd-fail.conf
-%%ETCDIR%%/jail.conf
-%%PYTHON_SITELIBDIR%%/client/__init__.py
-%%PYTHON_SITELIBDIR%%/client/__init__.pyc
-%%PYTHON_SITELIBDIR%%/client/actionreader.py
-%%PYTHON_SITELIBDIR%%/client/actionreader.pyc
-%%PYTHON_SITELIBDIR%%/client/beautifier.py
-%%PYTHON_SITELIBDIR%%/client/beautifier.pyc
-%%PYTHON_SITELIBDIR%%/client/configparserinc.py
-%%PYTHON_SITELIBDIR%%/client/configparserinc.pyc
-%%PYTHON_SITELIBDIR%%/client/configreader.py
-%%PYTHON_SITELIBDIR%%/client/configreader.pyc
-%%PYTHON_SITELIBDIR%%/client/configurator.py
-%%PYTHON_SITELIBDIR%%/client/configurator.pyc
-%%PYTHON_SITELIBDIR%%/client/csocket.py
-%%PYTHON_SITELIBDIR%%/client/csocket.pyc
-%%PYTHON_SITELIBDIR%%/client/fail2banreader.py
-%%PYTHON_SITELIBDIR%%/client/fail2banreader.pyc
-%%PYTHON_SITELIBDIR%%/client/filterreader.py
-%%PYTHON_SITELIBDIR%%/client/filterreader.pyc
-%%PYTHON_SITELIBDIR%%/client/jailreader.py
-%%PYTHON_SITELIBDIR%%/client/jailreader.pyc
-%%PYTHON_SITELIBDIR%%/client/jailsreader.py
-%%PYTHON_SITELIBDIR%%/client/jailsreader.pyc
-%%PYTHON_SITELIBDIR%%/common/__init__.py
-%%PYTHON_SITELIBDIR%%/common/__init__.pyc
-%%PYTHON_SITELIBDIR%%/common/exceptions.py
-%%PYTHON_SITELIBDIR%%/common/exceptions.pyc
-%%PYTHON_SITELIBDIR%%/common/helpers.py
-%%PYTHON_SITELIBDIR%%/common/helpers.pyc
-%%PYTHON_SITELIBDIR%%/common/protocol.py
-%%PYTHON_SITELIBDIR%%/common/protocol.pyc
-%%PYTHON_SITELIBDIR%%/common/version.py
-%%PYTHON_SITELIBDIR%%/common/version.pyc
-%%PYTHON_SITELIBDIR%%/server/__init__.py
-%%PYTHON_SITELIBDIR%%/server/__init__.pyc
-%%PYTHON_SITELIBDIR%%/server/action.py
-%%PYTHON_SITELIBDIR%%/server/action.pyc
-%%PYTHON_SITELIBDIR%%/server/actions.py
-%%PYTHON_SITELIBDIR%%/server/actions.pyc
-%%PYTHON_SITELIBDIR%%/server/asyncserver.py
-%%PYTHON_SITELIBDIR%%/server/asyncserver.pyc
-%%PYTHON_SITELIBDIR%%/server/banmanager.py
-%%PYTHON_SITELIBDIR%%/server/banmanager.pyc
-%%PYTHON_SITELIBDIR%%/server/datedetector.py
-%%PYTHON_SITELIBDIR%%/server/datedetector.pyc
-%%PYTHON_SITELIBDIR%%/server/datetemplate.py
-%%PYTHON_SITELIBDIR%%/server/datetemplate.pyc
-%%PYTHON_SITELIBDIR%%/server/faildata.py
-%%PYTHON_SITELIBDIR%%/server/faildata.pyc
-%%PYTHON_SITELIBDIR%%/server/failmanager.py
-%%PYTHON_SITELIBDIR%%/server/failmanager.pyc
-%%PYTHON_SITELIBDIR%%/server/failregex.py
-%%PYTHON_SITELIBDIR%%/server/failregex.pyc
-%%PYTHON_SITELIBDIR%%/server/filter.py
-%%PYTHON_SITELIBDIR%%/server/filter.pyc
-%%PYTHON_SITELIBDIR%%/server/filterpyinotify.py
-%%PYTHON_SITELIBDIR%%/server/filterpyinotify.pyc
-%%PYTHON_SITELIBDIR%%/server/filtergamin.py
-%%PYTHON_SITELIBDIR%%/server/filtergamin.pyc
-%%PYTHON_SITELIBDIR%%/server/filterpoll.py
-%%PYTHON_SITELIBDIR%%/server/filterpoll.pyc
-%%PYTHON_SITELIBDIR%%/server/iso8601.py
-%%PYTHON_SITELIBDIR%%/server/iso8601.pyc
-%%PYTHON_SITELIBDIR%%/server/jail.py
-%%PYTHON_SITELIBDIR%%/server/jail.pyc
-%%PYTHON_SITELIBDIR%%/server/jails.py
-%%PYTHON_SITELIBDIR%%/server/jails.pyc
-%%PYTHON_SITELIBDIR%%/server/jailthread.py
-%%PYTHON_SITELIBDIR%%/server/jailthread.pyc
-%%PYTHON_SITELIBDIR%%/server/mytime.py
-%%PYTHON_SITELIBDIR%%/server/mytime.pyc
-%%PYTHON_SITELIBDIR%%/server/server.py
-%%PYTHON_SITELIBDIR%%/server/server.pyc
-%%PYTHON_SITELIBDIR%%/server/ticket.py
-%%PYTHON_SITELIBDIR%%/server/ticket.pyc
-%%PYTHON_SITELIBDIR%%/server/transmitter.py
-%%PYTHON_SITELIBDIR%%/server/transmitter.pyc
-%%PYTHON_SITELIBDIR%%/testcases/__init__.py
-%%PYTHON_SITELIBDIR%%/testcases/__init__.pyc
-%%PYTHON_SITELIBDIR%%/testcases/actiontestcase.py
-%%PYTHON_SITELIBDIR%%/testcases/actiontestcase.pyc
-%%PYTHON_SITELIBDIR%%/testcases/actionstestcase.py
-%%PYTHON_SITELIBDIR%%/testcases/actionstestcase.pyc
-%%PYTHON_SITELIBDIR%%/testcases/banmanagertestcase.py
-%%PYTHON_SITELIBDIR%%/testcases/banmanagertestcase.pyc
-%%PYTHON_SITELIBDIR%%/testcases/clientreadertestcase.py
-%%PYTHON_SITELIBDIR%%/testcases/clientreadertestcase.pyc
-%%PYTHON_SITELIBDIR%%/testcases/datedetectortestcase.py
-%%PYTHON_SITELIBDIR%%/testcases/datedetectortestcase.pyc
-%%PYTHON_SITELIBDIR%%/testcases/dummyjail.py
-%%PYTHON_SITELIBDIR%%/testcases/dummyjail.pyc
-%%PYTHON_SITELIBDIR%%/testcases/failmanagertestcase.py
-%%PYTHON_SITELIBDIR%%/testcases/failmanagertestcase.pyc
-%%PYTHON_SITELIBDIR%%/testcases/filtertestcase.py
-%%PYTHON_SITELIBDIR%%/testcases/filtertestcase.pyc
-%%PYTHON_SITELIBDIR%%/testcases/misctestcase.py
-%%PYTHON_SITELIBDIR%%/testcases/misctestcase.pyc
-%%PYTHON_SITELIBDIR%%/testcases/samplestestcase.py
-%%PYTHON_SITELIBDIR%%/testcases/samplestestcase.pyc
-%%PYTHON_SITELIBDIR%%/testcases/servertestcase.py
-%%PYTHON_SITELIBDIR%%/testcases/servertestcase.pyc
-%%PYTHON_SITELIBDIR%%/testcases/sockettestcase.py
-%%PYTHON_SITELIBDIR%%/testcases/sockettestcase.pyc
-%%PYTHON_SITELIBDIR%%/testcases/utils.py
-%%PYTHON_SITELIBDIR%%/testcases/utils.pyc
-bin/fail2ban-client
-bin/fail2ban-regex
-bin/fail2ban-server
+%%PYTHON_SITELIBDIR%%/fail2ban/__init__.py
+%%PYTHON_SITELIBDIR%%/fail2ban/__init__.pyc
+%%PYTHON_SITELIBDIR%%/fail2ban/exceptions.py
+%%PYTHON_SITELIBDIR%%/fail2ban/exceptions.pyc
+%%PYTHON_SITELIBDIR%%/fail2ban/helpers.py
+%%PYTHON_SITELIBDIR%%/fail2ban/helpers.pyc
+%%PYTHON_SITELIBDIR%%/fail2ban/protocol.py
+%%PYTHON_SITELIBDIR%%/fail2ban/protocol.pyc
+%%PYTHON_SITELIBDIR%%/fail2ban/version.py
+%%PYTHON_SITELIBDIR%%/fail2ban/version.pyc
+%%PYTHON_SITELIBDIR%%/fail2ban/client/__init__.py
+%%PYTHON_SITELIBDIR%%/fail2ban/client/__init__.pyc
+%%PYTHON_SITELIBDIR%%/fail2ban/client/actionreader.py
+%%PYTHON_SITELIBDIR%%/fail2ban/client/actionreader.pyc
+%%PYTHON_SITELIBDIR%%/fail2ban/client/beautifier.py
+%%PYTHON_SITELIBDIR%%/fail2ban/client/beautifier.pyc
+%%PYTHON_SITELIBDIR%%/fail2ban/client/configparserinc.py
+%%PYTHON_SITELIBDIR%%/fail2ban/client/configparserinc.pyc
+%%PYTHON_SITELIBDIR%%/fail2ban/client/configreader.py
+%%PYTHON_SITELIBDIR%%/fail2ban/client/configreader.pyc
+%%PYTHON_SITELIBDIR%%/fail2ban/client/configurator.py
+%%PYTHON_SITELIBDIR%%/fail2ban/client/configurator.pyc
+%%PYTHON_SITELIBDIR%%/fail2ban/client/csocket.py
+%%PYTHON_SITELIBDIR%%/fail2ban/client/csocket.pyc
+%%PYTHON_SITELIBDIR%%/fail2ban/client/fail2banreader.py
+%%PYTHON_SITELIBDIR%%/fail2ban/client/fail2banreader.pyc
+%%PYTHON_SITELIBDIR%%/fail2ban/client/filterreader.py
+%%PYTHON_SITELIBDIR%%/fail2ban/client/filterreader.pyc
+%%PYTHON_SITELIBDIR%%/fail2ban/client/jailreader.py
+%%PYTHON_SITELIBDIR%%/fail2ban/client/jailreader.pyc
+%%PYTHON_SITELIBDIR%%/fail2ban/client/jailsreader.py
+%%PYTHON_SITELIBDIR%%/fail2ban/client/jailsreader.pyc
+%%PYTHON_SITELIBDIR%%/fail2ban/server/__init__.py
+%%PYTHON_SITELIBDIR%%/fail2ban/server/__init__.pyc
+%%PYTHON_SITELIBDIR%%/fail2ban/server/action.py
+%%PYTHON_SITELIBDIR%%/fail2ban/server/action.pyc
+%%PYTHON_SITELIBDIR%%/fail2ban/server/actions.py
+%%PYTHON_SITELIBDIR%%/fail2ban/server/actions.pyc
+%%PYTHON_SITELIBDIR%%/fail2ban/server/asyncserver.py
+%%PYTHON_SITELIBDIR%%/fail2ban/server/asyncserver.pyc
+%%PYTHON_SITELIBDIR%%/fail2ban/server/banmanager.py
+%%PYTHON_SITELIBDIR%%/fail2ban/server/banmanager.pyc
+%%PYTHON_SITELIBDIR%%/fail2ban/server/database.py
+%%PYTHON_SITELIBDIR%%/fail2ban/server/database.pyc
+%%PYTHON_SITELIBDIR%%/fail2ban/server/datedetector.py
+%%PYTHON_SITELIBDIR%%/fail2ban/server/datedetector.pyc
+%%PYTHON_SITELIBDIR%%/fail2ban/server/datetemplate.py
+%%PYTHON_SITELIBDIR%%/fail2ban/server/datetemplate.pyc
+%%PYTHON_SITELIBDIR%%/fail2ban/server/faildata.py
+%%PYTHON_SITELIBDIR%%/fail2ban/server/faildata.pyc
+%%PYTHON_SITELIBDIR%%/fail2ban/server/failmanager.py
+%%PYTHON_SITELIBDIR%%/fail2ban/server/failmanager.pyc
+%%PYTHON_SITELIBDIR%%/fail2ban/server/failregex.py
+%%PYTHON_SITELIBDIR%%/fail2ban/server/failregex.pyc
+%%PYTHON_SITELIBDIR%%/fail2ban/server/filter.py
+%%PYTHON_SITELIBDIR%%/fail2ban/server/filter.pyc
+%%PYTHON_SITELIBDIR%%/fail2ban/server/filtergamin.py
+%%PYTHON_SITELIBDIR%%/fail2ban/server/filtergamin.pyc
+%%PYTHON_SITELIBDIR%%/fail2ban/server/filterpoll.py
+%%PYTHON_SITELIBDIR%%/fail2ban/server/filterpoll.pyc
+%%PYTHON_SITELIBDIR%%/fail2ban/server/filterpyinotify.py
+%%PYTHON_SITELIBDIR%%/fail2ban/server/filterpyinotify.pyc
+%%PYTHON_SITELIBDIR%%/fail2ban/server/filtersystemd.py
+%%PYTHON_SITELIBDIR%%/fail2ban/server/filtersystemd.pyc
+%%PYTHON_SITELIBDIR%%/fail2ban/server/jail.py
+%%PYTHON_SITELIBDIR%%/fail2ban/server/jail.pyc
+%%PYTHON_SITELIBDIR%%/fail2ban/server/jails.py
+%%PYTHON_SITELIBDIR%%/fail2ban/server/jails.pyc
+%%PYTHON_SITELIBDIR%%/fail2ban/server/jailthread.py
+%%PYTHON_SITELIBDIR%%/fail2ban/server/jailthread.pyc
+%%PYTHON_SITELIBDIR%%/fail2ban/server/mytime.py
+%%PYTHON_SITELIBDIR%%/fail2ban/server/mytime.pyc
+%%PYTHON_SITELIBDIR%%/fail2ban/server/server.py
+%%PYTHON_SITELIBDIR%%/fail2ban/server/server.pyc
+%%PYTHON_SITELIBDIR%%/fail2ban/server/strptime.py
+%%PYTHON_SITELIBDIR%%/fail2ban/server/strptime.pyc
+%%PYTHON_SITELIBDIR%%/fail2ban/server/ticket.py
+%%PYTHON_SITELIBDIR%%/fail2ban/server/ticket.pyc
+%%PYTHON_SITELIBDIR%%/fail2ban/server/transmitter.py
+%%PYTHON_SITELIBDIR%%/fail2ban/server/transmitter.pyc
+%%PYTHON_SITELIBDIR%%/fail2ban/tests/__init__.py
+%%PYTHON_SITELIBDIR%%/fail2ban/tests/__init__.pyc
+%%PYTHON_SITELIBDIR%%/fail2ban/tests/utils.py
+%%PYTHON_SITELIBDIR%%/fail2ban/tests/utils.pyc
+@dirrm %%PYTHON_SITELIBDIR%%/fail2ban/tests
+@dirrm %%PYTHON_SITELIBDIR%%/fail2ban/server
+@dirrm %%PYTHON_SITELIBDIR%%/fail2ban/client
+@dirrm %%PYTHON_SITELIBDIR%%/fail2ban
@dirrmtry %%ETCDIR%%/jail.d
@dirrmtry %%ETCDIR%%/filter.d
@dirrmtry %%ETCDIR%%/fail2ban.d
@dirrmtry %%ETCDIR%%/action.d
@dirrmtry %%ETCDIR%%
-@dirrm %%PYTHON_SITELIBDIR%%/testcases
-@dirrm %%PYTHON_SITELIBDIR%%/server
-@dirrm %%PYTHON_SITELIBDIR%%/common
-@dirrm %%PYTHON_SITELIBDIR%%/client