summaryrefslogtreecommitdiff
path: root/community/inn
diff options
context:
space:
mode:
authorroot <root@rshg047.dnsready.net>2011-06-30 23:11:47 +0000
committerroot <root@rshg047.dnsready.net>2011-06-30 23:11:47 +0000
commit64e72407414ce0badfb541782125cd8e3a25c12e (patch)
treeb77ce06374d43b1653bc517ebdbd10e1d0f2b328 /community/inn
parent5e8a6a470237711ad18f12dde87deea6f2b8b0e0 (diff)
Thu Jun 30 23:11:47 UTC 2011
Diffstat (limited to 'community/inn')
-rw-r--r--community/inn/PKGBUILD131
-rw-r--r--community/inn/inn.install22
-rw-r--r--community/inn/innd.conf2
-rw-r--r--community/inn/innd.rc41
-rw-r--r--community/inn/nnrpd.conf3
-rw-r--r--community/inn/nnrpd.rc49
-rw-r--r--community/inn/site.make.patch32
7 files changed, 280 insertions, 0 deletions
diff --git a/community/inn/PKGBUILD b/community/inn/PKGBUILD
new file mode 100644
index 000000000..044531434
--- /dev/null
+++ b/community/inn/PKGBUILD
@@ -0,0 +1,131 @@
+# $Id: PKGBUILD 44059 2011-04-01 20:32:01Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Maintainer: Edward Tjörnhammar <xhemi@cube2.se>
+# Contributor: Edward Tjörnhammar <xhemi@cube2.se>
+
+pkgname=inn
+pkgver=2.5.2
+pkgrel=6
+pkgdesc="Complete open source Usenet system. De facto standard for handling news routing, news spool and serving the spool to customers."
+url="http://www.isc.org/software/inn/"
+arch=('i686' 'x86_64')
+license=("custom:INN")
+depends=('openssl' 'dovecot')
+makedepends=('make' 'bison' 'python2' 'gcc' 'smtp-forwarder' 'libsasl')
+optdepends=('perl' 'python2' 'libsasl')
+options=(emptydirs docs zipman)
+install=inn.install
+backup=(etc/inn/newsfeeds
+ etc/inn/incoming.conf
+ etc/inn/nnrpd.track
+ etc/inn/passwd.nntp
+ etc/inn/inn.conf
+ etc/inn/moderators
+ etc/inn/control.ctl
+ etc/inn/expire.ctl
+ etc/inn/nntpsend.ctl
+ etc/inn/innreport.conf
+ etc/inn/innwatch.ctl
+ etc/inn/distrib.pats
+ etc/inn/actsync.cfg
+ etc/inn/actsync.ign
+ etc/inn/motd.news
+ etc/inn/storage.conf
+ etc/inn/cycbuff.conf
+ etc/inn/buffindexed.conf
+ etc/inn/innfeed.conf
+ etc/inn/news2mail.cf
+ etc/inn/readers.conf
+ etc/inn/radius.conf
+ etc/inn/ovdb.conf
+ etc/inn/subscriptions
+ var/db/inn/active
+ var/db/inn/active.times
+ var/db/inn/history
+ var/db/inn/history.dir
+ var/db/inn/history.hash
+ var/db/inn/history.index
+ var/db/inn/newsgroups)
+source=(http://ftp.isc.org/isc/inn/inn-$pkgver.tar.gz
+ innd.rc
+ nnrpd.rc
+ innd.conf
+ nnrpd.conf
+ site.make.patch)
+md5sums=('a6e577dceb90d07501b96149508b974b'
+ '2ad5138dac7c7535278f73f30020d656'
+ 'a0b1ff8501ac8a31ce81a2f9c9b4bac9'
+ 'fbf1d2c5b3c5a08ae3e515c71c2e2e4a'
+ 'bb4bbe86ae52fbbf08b0f6f370dea052'
+ '960c800026ed6e03901cf0bafdfd53d8')
+
+build() {
+ cd $srcdir/inn-$pkgver
+
+ [ $NOEXTRACT -eq 1 ] || PYTHON=/usr/bin/python2 ./configure --prefix=/usr \
+ --includedir=/usr/include/inn \
+ --sbindir=/usr/sbin \
+ --with-libtool \
+ --with-gnu-id \
+ --with-db-dir=/var/db/inn \
+ --sysconfdir=/etc/inn \
+ --with-spool-dir=/var/spool/news \
+ --with-log-dir=/var/log/inn \
+ --with-run-dir=/var/run/inn \
+ --with-tmp-dir=/var/spool/inn/tmp \
+ --enable-largefiles \
+ --with-openssl=/usr \
+ --with-perl \
+ --with-python \
+ --with-sendmail=/usr/bin/msmtp \
+ --with-sasl=/usr \
+ --with-news-user=9 \
+ --with-news-group=13
+ # See https://wiki.archlinux.org/index.php/DeveloperWiki:UID_/_GID_Database
+
+ cat >>confdefs.h <<EOF
+#undef RUNASUSER
+#define RUNASUSER "news"
+#undef RUNASGROUP
+#define RUNASGROUP "news"
+EOF
+ sed -i 's|-export-dynamic gnu|-export-dynamic|' Makefile.global
+ [ $NOEXTRACT -eq 1 ] || patch -p3 < $srcdir/site.make.patch
+ export LD_LIBRARY_PATH=.:$pkgdir/usr/lib:$LD_LIBRARY_PATH
+
+ make
+}
+
+package() {
+ cd $srcdir/inn-$pkgver
+ export LD_LIBRARY_PATH=.:$pkgdir/usr/lib:$LD_LIBRARY_PATH
+
+ make DESTDIR=$pkgdir install
+
+ mkdir -p $pkgdir/etc/{conf,rc}.d
+ install -m0755 $srcdir/innd.rc $pkgdir/etc/rc.d/innd
+ install -m0644 $srcdir/innd.conf $pkgdir/etc/conf.d/innd
+
+ install -m0755 $srcdir/nnrpd.rc $pkgdir/etc/rc.d/nnrpd
+ install -m0644 $srcdir/nnrpd.conf $pkgdir/etc/conf.d/nnrpd
+
+ cd $pkgdir/usr/lib
+ for i in lib*.a; do
+ gcc -shared -o ${i%%.a}.so.2.0.0 $i
+ for j in 2.0 2; do
+ ln -s ${i%%a}so.2.0.0 ${i%%a}so.$j
+ done
+ done
+
+ touch $pkgdir/var/db/inn/history{.dir,.hash,.index,}
+
+ mkdir -p $pkgdir/usr/share/doc/inn $pkgdir/usr/share/inn/
+ mv $pkgdir/usr/share/man/man3/list.3 $pkgdir/usr/share/man/man3/list-inn.3
+ mv $pkgdir/usr/doc/* $pkgdir/usr/share/doc/inn/
+ mv $pkgdir/usr/http/* $pkgdir/usr/share/inn/
+ mv $pkgdir/usr/bin/archive $pkgdir/usr/bin/archive.inn
+ rm -rf $pkgdir/usr/doc $pkgdir/usr/http $pkgdir/var/run
+ install -D -m0644 $srcdir/inn-$pkgver/LICENSE $pkgdir/usr/share/licenses/inn/LICENSE
+ chown root:root $pkgdir/usr/bin/innbind
+ chmod 05555 $pkgdir/usr/bin/innbind
+}
diff --git a/community/inn/inn.install b/community/inn/inn.install
new file mode 100644
index 000000000..e4070870f
--- /dev/null
+++ b/community/inn/inn.install
@@ -0,0 +1,22 @@
+post_install() {
+ grep -e "^news:" /etc/group 2>&- >&- || groupadd -g 13 -r news 2>&- >&-
+ grep -e "^news:" /etc/passwd 2>&- >&- || useradd -u 9 -r -m -g news news 2>&- >&-
+
+ /usr/bin/makedbz -i -o 2>&- >&-
+ mkdir /var/log/news 2>&- >&-
+
+ chown news:news -R var/spool/news 2>&- >&-
+ chown news:news var/log/news 2>&- >&-
+ chown news:news -R var/db/inn 2>&- >&-
+
+ echo ""
+ echo "->"
+ echo "-> If this is a first-time installation, a minimal active file and"
+ echo "-> history database have been installed. Do not forget to update"
+ echo "-> your cron entries and configure INN. See INSTALL for more"
+ echo "-> information."
+ echo "->"
+ echo "-> The default user:group for inn is news:news"
+ echo "->"
+ echo ""
+}
diff --git a/community/inn/innd.conf b/community/inn/innd.conf
new file mode 100644
index 000000000..48f96ba5e
--- /dev/null
+++ b/community/inn/innd.conf
@@ -0,0 +1,2 @@
+NEWS_USER=news
+NEWS_GROUP=news
diff --git a/community/inn/innd.rc b/community/inn/innd.rc
new file mode 100644
index 000000000..e88bd0c39
--- /dev/null
+++ b/community/inn/innd.rc
@@ -0,0 +1,41 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+[ -f /etc/conf.d/innd ] && . /etc/conf.d/innd
+[ -z "$NEWS_USER" ] && print "Please set news username" && exit 1;
+
+case "$1" in
+ start)
+ stat_busy "Starting InterNetNews"
+ [ -d /var/run/inn ] || mkdir -p /var/run/inn
+ su $NEWS_USER -c /usr/bin/rc.news 2>&- >&-
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ echo $! > /var/run/innd.pid
+ add_daemon innd
+ stat_done
+ fi
+
+ ;;
+ stop)
+ stat_busy "Stopping InterNetNews"
+ su $NEWS_USER -c /usr/bin/rc.news stop 2>&- >&-
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm /var/run/innd.pid
+ rm_daemon innd
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/community/inn/nnrpd.conf b/community/inn/nnrpd.conf
new file mode 100644
index 000000000..689a289ce
--- /dev/null
+++ b/community/inn/nnrpd.conf
@@ -0,0 +1,3 @@
+USE_SSL=1
+LISTEN_PORT=563
+NNRPD_OPTS="-D -S -p $LISTEN_PORT -c /etc/inn/readers.conf"
diff --git a/community/inn/nnrpd.rc b/community/inn/nnrpd.rc
new file mode 100644
index 000000000..d7c902832
--- /dev/null
+++ b/community/inn/nnrpd.rc
@@ -0,0 +1,49 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+[ -f /etc/conf.d/nnrpd ] && . /etc/conf.d/nnrpd
+[ -z "$NNRPD_OPTS" ] && print "FATAL: No arguments where passed" && exit 1;
+
+PID=`pidof -o %PPID nnrpd`
+case "$1" in
+ start)
+ stat_busy "Starting InterNetNews Readers Daemon"
+ if [ ! -f /var/run/nnrpd.pid ]; then
+ stat_append ":: InterNetNews (innd) is not running"
+ stat_fail
+ exit 1
+ fi
+
+ [ -d /var/run/inn ] || mkdir -p /var/run/inn
+ [ -z "$PID" ] && nnrpd $NNRPD_OPTS 2>&- >&-
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ PID=`pidof -o %PPID nnrpd`
+ echo $PID > /var/run/nnrpd.pid
+ add_daemon nnrpd
+ stat_done
+ fi
+
+ ;;
+ stop)
+ stat_busy "Stopping InterNetNews Readers Daemon"
+ [ ! -z "$PID" ] && kill $PID >&-
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm /var/run/nnrpd.pid
+ rm_daemon nnrpd
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/community/inn/site.make.patch b/community/inn/site.make.patch
new file mode 100644
index 000000000..5af6e1162
--- /dev/null
+++ b/community/inn/site.make.patch
@@ -0,0 +1,32 @@
+--- old/src/inn-2.4.5/site/Makefile 2008-06-29 19:56:57.000000000 +0200
++++ new/src/inn-2.4.5/site/Makefile 2008-10-09 19:27:59.613208825 +0200
+@@ -52,7 +52,6 @@
+
+ PATH_ACTIVE = ${PATHDB}/active
+ PATH_ACTIVE_TIMES = ${PATHDB}/active.times
+-PATH_HISTORY = ${PATHDB}/history
+ PATH_NEWSGROUPS = ${PATHDB}/newsgroups
+
+ ## Scripts from above, plus site-specific config files.
+@@ -98,7 +97,7 @@
+ ALL_INSTALLED = $(MOST_INSTALLED) $(REST_INSTALLED)
+
+ SPECIAL = $D$(PATH_ACTIVE) $D$(PATH_ACTIVE_TIMES) \
+- $D$(PATH_NEWSGROUPS) $D$(PATH_HISTORY)
++ $D$(PATH_NEWSGROUPS)
+
+ ## Get new versions of everything from samples directory.
+ all: $(ALL) config
+@@ -143,12 +142,6 @@
+ chown $(RUNASUSER) $@
+ chgrp $(RUNASGROUP) $@
+ chmod $(FILEMODE) $@
+-$D$(PATH_HISTORY):
+- touch $@
+- chown $(RUNASUSER) $@
+- chgrp $(RUNASGROUP) $@
+- chmod $(FILEMODE) $@
+- test -z "$D" && $(PATHBIN)/makedbz -i -o
+
+ bootstrap:
+