summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin H. Johnson <robbat2@gentoo.org>2015-08-08 13:49:04 -0700
committerRobin H. Johnson <robbat2@gentoo.org>2015-08-08 17:38:18 -0700
commit56bd759df1d0c750a065b8c845e93d5dfa6b549d (patch)
tree3f91093cdb475e565ae857f1c5a7fd339e2d781e /net-nntp/inn
downloadgentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.gz
gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.bz2
gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.zip
proj/gentoo: Initial commit
This commit represents a new era for Gentoo: Storing the gentoo-x86 tree in Git, as converted from CVS. This commit is the start of the NEW history. Any historical data is intended to be grafted onto this point. Creation process: 1. Take final CVS checkout snapshot 2. Remove ALL ChangeLog* files 3. Transform all Manifests to thin 4. Remove empty Manifests 5. Convert all stale $Header$/$Id$ CVS keywords to non-expanded Git $Id$ 5.1. Do not touch files with -kb/-ko keyword flags. Signed-off-by: Robin H. Johnson <robbat2@gentoo.org> X-Thanks: Alec Warner <antarus@gentoo.org> - did the GSoC 2006 migration tests X-Thanks: Robin H. Johnson <robbat2@gentoo.org> - infra guy, herding this project X-Thanks: Nguyen Thai Ngoc Duy <pclouds@gentoo.org> - Former Gentoo developer, wrote Git features for the migration X-Thanks: Brian Harring <ferringb@gentoo.org> - wrote much python to improve cvs2svn X-Thanks: Rich Freeman <rich0@gentoo.org> - validation scripts X-Thanks: Patrick Lauer <patrick@gentoo.org> - Gentoo dev, running new 2014 work in migration X-Thanks: Michał Górny <mgorny@gentoo.org> - scripts, QA, nagging X-Thanks: All of other Gentoo developers - many ideas and lots of paint on the bikeshed
Diffstat (limited to 'net-nntp/inn')
-rw-r--r--net-nntp/inn/Manifest3
-rw-r--r--net-nntp/inn/files/inn-2.5.3-ar.patch37
-rw-r--r--net-nntp/inn/files/inn-2.5.3-tests.patch19
-rw-r--r--net-nntp/inn/files/innd22
-rw-r--r--net-nntp/inn/files/innd-r123
-rw-r--r--net-nntp/inn/inn-2.5.3-r1.ebuild280
-rw-r--r--net-nntp/inn/inn-2.5.3-r2.ebuild287
-rw-r--r--net-nntp/inn/inn-2.5.4.ebuild287
-rw-r--r--net-nntp/inn/inn-2.5.5.ebuild287
-rw-r--r--net-nntp/inn/metadata.xml10
10 files changed, 1255 insertions, 0 deletions
diff --git a/net-nntp/inn/Manifest b/net-nntp/inn/Manifest
new file mode 100644
index 000000000000..00dc8d70d58b
--- /dev/null
+++ b/net-nntp/inn/Manifest
@@ -0,0 +1,3 @@
+DIST inn-2.5.3.tar.gz 2412119 SHA256 60f0042b144499680cc577a4330aeaac5dac20c5994649c0e945d32b5f8dbcf1 SHA512 e579944571f0ec4fcdbf86de8458342075ce08f60df046bc8c45969b39f396ede8f5034f734542e1c64fb7792ae01c117c6a7af170fe5a43e1d0b2693f34d392 WHIRLPOOL a6d08020bfc458ad52567d225f14ef2f92fd605767c7ae4292724e3a3f49e1b42630fd787e7f79aae8a16d236479cef13b9531862eae050db839d3d0530f7999
+DIST inn-2.5.4.tar.gz 2408600 SHA256 5b62240c3074f2f38b3bcc656c343c587f2a923ec9d45e19f0d4ce269cb3f3f4 SHA512 f632599d009e8965d1b0ce7fef84dfbe48034c3a86825694a5ca4311123347647f9a4b534cff59820437f619ec09867bcff16f8f18c705e056eeea6493bc5441 WHIRLPOOL a313cb90e5dd55f4db5b70ede6b6d98561d2601f8d27e1b9b3983b90491b5ab300f0571d5fc1ac74f7892997ff6219189c863b122d569fe8673f3fcd13b0b67a
+DIST inn-2.5.5.tar.gz 2419841 SHA256 4245602c2c30fd3fe38513e9403c8d0ea4eb76256961591f97da630c341053bf SHA512 aada60b15952810fa31c3b2078b4ca1b1e560cee348cc81d076e0ba1f8b785497310d60aca89b9ecc4af85a1493eefa8a2b976cb349b8ea96482c93cbcf049f1 WHIRLPOOL b931d0f6a1e60b0157fafcc269e84d4f1f6c914ca7b95799be1a99feeec5c5568e41a9c7384da122d05eac7393d457a612be9ffbb79a01122e0c37c1de76785a
diff --git a/net-nntp/inn/files/inn-2.5.3-ar.patch b/net-nntp/inn/files/inn-2.5.3-ar.patch
new file mode 100644
index 000000000000..ac4f8158c44f
--- /dev/null
+++ b/net-nntp/inn/files/inn-2.5.3-ar.patch
@@ -0,0 +1,37 @@
+Use system AR.
+
+Gentoo bug #461254.
+
+--- lib/Makefile
++++ lib/Makefile
+@@ -53,7 +53,7 @@
+ -rpath $(PATHLIB) -version-info 2:0:0
+
+ libinn.a: $(OBJECTS)
+- ar r $@ $(OBJECTS)
++ $(AR) r $@ $(OBJECTS)
+ $(RANLIB) libinn.a
+
+ .c.o .c.lo:
+--- storage/Makefile
++++ storage/Makefile
+@@ -55,7 +55,7 @@
+ -rpath $(PATHLIB) -version-info 2:0:0
+
+ libstorage.a: $(OBJECTS)
+- ar r $@ $(OBJECTS)
++ $(AR) r $@ $(OBJECTS)
+ $(RANLIB) libstorage.a
+
+ # Make.methods is included in the distribution tarball since some non-GNU
+--- history/Makefile
++++ history/Makefile
+@@ -51,7 +51,7 @@
+ -rpath $(PATHLIB) -version-info 2:0:0
+
+ libinnhist.a: $(OBJECTS)
+- ar r $@ $(OBJECTS)
++ $(AR) r $@ $(OBJECTS)
+ $(RANLIB) libinnhist.a
+
+ # Try to set up these rules so that buildconfig is only run once.
diff --git a/net-nntp/inn/files/inn-2.5.3-tests.patch b/net-nntp/inn/files/inn-2.5.3-tests.patch
new file mode 100644
index 000000000000..6511508308d6
--- /dev/null
+++ b/net-nntp/inn/files/inn-2.5.3-tests.patch
@@ -0,0 +1,19 @@
+Certain filesystems (such as reiserfs) cannot properly report
+the number of free inodes. In this case, inndf reports an absurdly
+high number instead of nothing, which standard df does.
+There seems to be some confusion about which FOO_MAX is returned,
+so this patch adds an actual value known to be returned.
+
+See bug #348490.
+
+--- tests/util/inndf.t
++++ tests/util/inndf.t
+@@ -62,7 +62,7 @@
+ real=`df -i . | sed 1d | awk '{ print $4 }'`
+ fi
+ try=`$inndf -i .`
+- if [ "$try" = 4294967295 ] ; then
++ if [ "$try" = 4294967295 ] || [ "$try" = 2147483647 ] ; then
+ printcount "ok"
+ else
+ diff=`expr "$real" - "$try"`
diff --git a/net-nntp/inn/files/innd b/net-nntp/inn/files/innd
new file mode 100644
index 000000000000..b22ce0946d5d
--- /dev/null
+++ b/net-nntp/inn/files/innd
@@ -0,0 +1,22 @@
+#!/sbin/runscript
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+depend() {
+ need net
+}
+
+start() {
+ ebegin "Starting innd"
+ checkpath -d -m 0755 -o news:news /var/run/news
+ start-stop-daemon --start --user news --exec /usr/lib/news/bin/rc.news
+ eend $?
+}
+
+stop() {
+ ebegin "Stopping innd"
+ start-stop-daemon --start --user news --exec /usr/lib/news/bin/rc.news -- stop
+ sleep 2
+ eend $?
+}
diff --git a/net-nntp/inn/files/innd-r1 b/net-nntp/inn/files/innd-r1
new file mode 100644
index 000000000000..1169a6755b8b
--- /dev/null
+++ b/net-nntp/inn/files/innd-r1
@@ -0,0 +1,23 @@
+#!/sbin/runscript
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+depend() {
+ need net
+}
+
+start() {
+ ebegin "Starting ${SVCNAME}"
+ checkpath -d -m 0755 -o news:news /run/news
+ start-stop-daemon --start --user news --pidfile /run/news/${SVCNAME}.pid \
+ --exec /usr/lib/news/bin/rc.news
+ eend $?
+}
+
+stop() {
+ ebegin "Stopping ${SVCNAME}"
+ start-stop-daemon --start --user news --exec /usr/lib/news/bin/rc.news -- stop
+ sleep 2
+ eend $?
+}
diff --git a/net-nntp/inn/inn-2.5.3-r1.ebuild b/net-nntp/inn/inn-2.5.3-r1.ebuild
new file mode 100644
index 000000000000..7c45a9fc6646
--- /dev/null
+++ b/net-nntp/inn/inn-2.5.3-r1.ebuild
@@ -0,0 +1,280 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit autotools eutils multilib python-single-r1 ssl-cert
+
+DESCRIPTION="The Internet News daemon, fully featured NNTP server"
+HOMEPAGE="https://www.isc.org/software/inn"
+SRC_URI="ftp://ftp.isc.org/isc/inn/${P}.tar.gz"
+
+# GPL-2 only for init script
+LICENSE="ISC GPL-2+ public-domain BSD-4 BSD-2 RSA BSD MIT GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ppc x86"
+IUSE="berkdb innkeywords inntaggedhash ipv6 kerberos perl python sasl ssl"
+
+DEPEND="
+ virtual/mta
+ dev-perl/MIME-tools
+ sys-libs/pam
+ sys-libs/zlib
+ kerberos? ( virtual/krb5 )
+ sasl? ( >=dev-libs/cyrus-sasl-2 )
+ ssl? ( dev-libs/openssl )
+ python? ( ${PYTHON_DEPS} )
+ berkdb? ( sys-libs/db )
+"
+RDEPEND="${DEPEND}"
+
+pkg_setup() {
+ use python && python-single-r1_pkg_setup
+}
+
+src_prepare() {
+ epatch "${FILESDIR}"/${P}-tests.patch
+
+ sed -e 's: -B .OLD::' -i Makefile.global.in || die
+
+ # Do not treat LDFLAGS as if it contained libraries to link to
+ sed -e 's:LDFLAGS::g' -i m4/python.m4 || die
+
+ # We do not have the biff service, but we do have comsat
+ sed -e 's:"biff":"comsat":g' -i tests/lib/getnameinfo-t.c || die
+
+ eautoreconf
+}
+
+src_configure() {
+ econf \
+ --prefix=/usr/$(get_libdir)/news \
+ --sysconfdir=/etc/news \
+ --mandir=/usr/share/man \
+ --infodir=/usr/share/info \
+ --with-control-dir=/usr/$(get_libdir)/news/bin/control \
+ --with-filter-dir=/usr/$(get_libdir)/news/bin/filter \
+ --with-db-dir=/var/spool/news/db \
+ --with-doc-dir=/usr/share/doc/${PF} \
+ --with-spool-dir=/var/spool/news \
+ --with-log-dir=/var/log/news \
+ --with-run-dir=/var/run/news \
+ --with-tmp-dir=/var/spool/news/tmp \
+ --disable-libtool \
+ --with-gnu-ld \
+ --enable-setgid-inews \
+ --enable-uucp-rnews \
+ $(use_with perl) \
+ $(use_with python) \
+ $(use_with kerberos kerberos /usr) \
+ $(use_with sasl) \
+ $(use_with ssl openssl) \
+ $(use_with berkdb berkeleydb /usr) \
+ $(use_enable ipv6) \
+ $(use_enable !inntaggedhash largefiles) \
+ $(use_enable inntaggedhash tagged-hash) \
+ $(use_enable innkeywords keywords)
+}
+
+src_install() {
+ emake DESTDIR="${D}/" P="" SPECIAL="" install
+
+ chown -R root:0 \
+ "${D}"/usr/$(get_libdir)/news/$(get_libdir) \
+ "${D}"/usr/$(get_libdir)/news/include \
+ "${D}"/usr/share/doc \
+ "${D}"/usr/share/man \
+ || die
+ chmod 644 "${D}"/etc/news/* || die
+ chmod 640 \
+ "${D}"/etc/news/control.ctl \
+ "${D}"/etc/news/expire.ctl \
+ "${D}"/etc/news/incoming.conf \
+ "${D}"/etc/news/nntpsend.ctl \
+ "${D}"/etc/news/passwd.nntp \
+ "${D}"/etc/news/readers.conf \
+ || die
+
+ # Prevent old db/* files from being overwritten
+ insinto /usr/share/inn/dbexamples
+ newins site/active.minimal active
+ newins site/newsgroups.minimal newsgroups
+
+ keepdir \
+ /var/log/news \
+ /var/spool/news/archive \
+ /var/spool/news/articles \
+ /var/spool/news/db \
+ /var/spool/news/incoming \
+ /var/spool/news/incoming/bad \
+ /var/spool/news/innfeed \
+ /var/spool/news/outgoing \
+ /var/spool/news/overview \
+ /var/spool/news/tmp
+
+ fowners news:news /var/log/news
+
+ dodoc ChangeLog MANIFEST README* doc/checklist
+ use ipv6 && dodoc doc/IPv6-info
+
+ # So other programs can build against INN
+ insinto /usr/$(get_libdir)/news/include
+ doins include/*.h
+
+ doinitd "${FILESDIR}"/innd
+
+ rm -r "${D}"/var/run
+}
+
+pkg_postinst() {
+ for db_file in active newsgroups
+ do
+ [[ -f ${ROOT}/var/spool/news/db/${db_file} ]] && continue
+
+ if [[ -f ${ROOT}/usr/share/inn/dbexamples/${db_file} ]]
+ then
+ cp "${ROOT}"/usr/share/inn/dbexamples/${db_file} \
+ "${ROOT}"/var/spool/news/db/${db_file}
+ else
+ touch "${ROOT}"/var/spool/news/db/${db_file}
+ fi
+
+ chown news:news "${ROOT}"/var/spool/news/db/${db_file}
+ chmod 664 "${ROOT}"/var/spool/news/db/${db_file}
+ done
+
+ elog "Do not forget to update your cron entries, and also run"
+ elog "makedbz if you need to. If this is a first-time installation"
+ elog "a minimal active file has been installed. You will need to"
+ elog "touch history and run 'makedbz -i' to initialize the history"
+ elog "database. See INSTALL for more information."
+ elog
+ elog "You need to assign a real shell to the news user, or else"
+ elog "starting inn will fail. You can use 'usermod -s /bin/bash news'"
+ elog "for this."
+
+ if use ssl
+ then
+ install_cert /etc/news/cert/cert
+ chown news:news \
+ "${ROOT}"/etc/news/cert/cert.{crt,csr,key,pem}
+
+ elog
+ elog "You may want to start nnrpd manually for native ssl support."
+ elog "If you choose to do so, automating this with a bootscript might"
+ elog "also be a good choice."
+ elog "Have a look at man nnrpd for valid parameters."
+ elog
+ elog "The certificate location in /etc/news/sasl.conf has been changed"
+ elog "to /etc/news/cert!"
+
+ fi
+}
+
+pkg_postrm() {
+ elog
+ elog "If you want your newsspool or altered configuration files"
+ elog "to be removed, please do so now manually."
+ elog
+}
+
+pkg_config() {
+ NEWSSPOOL_DIR="${ROOT}/var/spool/news"
+ NEWS_SHELL="$( awk -F':' '/^news:/ {print $7;}' ${ROOT}/etc/passwd )"
+ NEWS_ERRFLAG="0"
+
+ if [[ ${NEWS_SHELL} == /bin/false || ${NEWS_SHELL} == /dev/null ]]; then
+ einfo "Changing shell to /bin/bash for user news..."
+ usermod -s /bin/bash news
+ else
+ einfo "Shell for user news unchanged ('${NEWS_SHELL}')."
+ if [[ ${NEWS_SHELL} != /bin/sh && ${NEWS_SHELL} != /bin/bash ]]; then
+ ewarn "You might want to change it to '/bin/bash', though."
+ fi
+ fi
+
+ if [[ ! -e ${NEWSSPOOL_DIR}/db/history ]]; then
+ if [[ ! -f ${NEWSSPOOL_DIR}/db/history.dir \
+ && ! -f ${NEWSSPOOL_DIR}/db/history.pag \
+ && ! -f ${NEWSSPOOL_DIR}/db/history.hash \
+ && ! -f ${NEWSSPOOL_DIR}/db/history.index ]]
+ then
+ einfo "Building history database ..."
+
+ touch "${NEWSSPOOL_DIR}"/db/history
+ chown news:news "${NEWSSPOOL_DIR}"/db/history
+ chmod 644 "${NEWSSPOOL_DIR}"/db/history
+
+ einfo "Running makedbz -i ..."
+ su - news -c "/usr/$(get_libdir)/news/bin/makedbz -i"
+
+ einfo "Moving files into place ..."
+ [[ -f ${NEWSSPOOL_DIR}/db/history.n.dir ]] && \
+ mv -vf "${NEWSSPOOL_DIR}"/db/history.n.dir \
+ "${NEWSSPOOL_DIR}"/db/history.dir
+ [[ -f ${NEWSSPOOL_DIR}/db/history.n.pag ]] && \
+ mv -vf "${NEWSSPOOL_DIR}"/db/history.n.pag \
+ "${NEWSSPOOL_DIR}"/db/history.pag
+ [[ -f ${NEWSSPOOL_DIR}/db/history.n.hash ]] && \
+ mv -vf "${NEWSSPOOL_DIR}"/db/history.n.hash \
+ "${NEWSSPOOL_DIR}"/db/history.hash
+ [[ -f ${NEWSSPOOL_DIR}/db/history.n.index ]] && \
+ mv -vf "${NEWSSPOOL_DIR}"/db/history.n.index \
+ "${NEWSSPOOL_DIR}"/db/history.index
+
+ einfo "Running makehistory ..."
+ su - news -c /usr/$(get_libdir)/news/bin/makehistory
+ else
+ NEWS_ERRFLAG="1"
+ eerror "Your installation seems to be screwed up."
+ eerror "${NEWSSPOOL_DIR}/db/history does not exist, but there's"
+ eerror "one of the files history.dir, history.hash or history.index"
+ eerror "within ${NEWSSPOOL_DIR}/db."
+ eerror "Use your backup to restore the history database."
+ fi
+ else
+ einfo "${NEWSSPOOL_DIR}/db/history found."
+ einfo "Leaving history database as it is."
+ fi
+
+ INNCFG_INODES=$(
+ sed /etc/news/inn.conf \
+ -e '/innwatchspoolnodes/ ! d; s:[^ ]*[ ]*\([^ ]*\):\1:'
+ )
+ INNSPOOL_INODES=$(
+ df -Pi ${NEWSSPOOL_DIR} | \
+ sed -e 's:[^ ]*[ ]*\([^ ]*\).*:\1:; 1 d'
+ )
+ if [[ ${INNCFG_INODES} -gt ${INNSPOOL_INODES} ]]; then
+ ewarn "Setting innwatchspoolinodes to zero, because the filesystem behind"
+ ewarn "$NEWSSPOOL_DIR works without inodes."
+ ewarn
+ cp /etc/news/inn.conf /etc/news/inn.conf.OLD
+ einfo "A copy of your old inn.conf has been saved to /etc/news/inn.conf.OLD."
+ sed -i /etc/news/inn.conf \
+ -e '/innwatchspoolnodes/ s:\([^ ]*\)\([ ]*\).*:\1\20:'
+ chown news:news /etc/news/inn.conf
+ chmod 644 /etc/news/inn.conf
+ fi
+
+ INNCHECK_LINES=$(
+ su - news -c "/usr/$(get_libdir)/news/bin/inncheck | wc -l"
+ )
+ if [[ ${INNCHECK_LINES} -gt 0 ]]; then
+ NEWS_ERRFLAG="1"
+ ewarn "inncheck most certainly found an error."
+ ewarn "Please check its output:"
+ eerror "`su - news -c /usr/$(get_libdir)/news/bin/inncheck`"
+ fi
+
+ if [[ ${NEWS_ERRFLAG} -gt 0 ]]; then
+ eerror "There were one or more errors/warnings checking your"
+ eerror "configuration. Please read inn's documentation and"
+ eerror "fix them accordingly."
+ else
+ einfo "INN configuration tests passed successfully."
+ ewarn "Please ensure you have configured inn properly."
+ fi
+}
diff --git a/net-nntp/inn/inn-2.5.3-r2.ebuild b/net-nntp/inn/inn-2.5.3-r2.ebuild
new file mode 100644
index 000000000000..5921291d5661
--- /dev/null
+++ b/net-nntp/inn/inn-2.5.3-r2.ebuild
@@ -0,0 +1,287 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit autotools eutils multilib python-single-r1 ssl-cert toolchain-funcs
+
+DESCRIPTION="The Internet News daemon, fully featured NNTP server"
+HOMEPAGE="https://www.isc.org/software/inn"
+SRC_URI="ftp://ftp.isc.org/isc/inn/${P}.tar.gz"
+
+# GPL-2 only for init script
+LICENSE="ISC GPL-2+ public-domain BSD-4 BSD-2 RSA BSD MIT GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86"
+IUSE="berkdb innkeywords inntaggedhash ipv6 kerberos perl python sasl ssl"
+
+REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
+
+DEPEND="
+ virtual/mta
+ dev-perl/MIME-tools
+ sys-libs/pam
+ sys-libs/zlib
+ kerberos? ( virtual/krb5 )
+ sasl? ( >=dev-libs/cyrus-sasl-2 )
+ ssl? ( dev-libs/openssl )
+ python? ( ${PYTHON_DEPS} )
+ berkdb? ( sys-libs/db )
+"
+RDEPEND="${DEPEND}"
+
+pkg_setup() {
+ use python && python-single-r1_pkg_setup
+}
+
+src_prepare() {
+ epatch "${FILESDIR}"/${P}-ar.patch
+ epatch "${FILESDIR}"/${P}-tests.patch
+
+ sed -e 's: -B .OLD::' -i Makefile.global.in || die
+
+ # Do not treat LDFLAGS as if it contained libraries to link to
+ sed -e 's:LDFLAGS::g' -i m4/python.m4 || die
+
+ # We do not have the biff service, but we do have comsat
+ sed -e 's:"biff":"comsat":g' -i tests/lib/getnameinfo-t.c || die
+
+ eautoreconf
+}
+
+src_configure() {
+ tc-export AR
+
+ econf \
+ --prefix=/usr/$(get_libdir)/news \
+ --sysconfdir=/etc/news \
+ --mandir=/usr/share/man \
+ --infodir=/usr/share/info \
+ --with-control-dir=/usr/$(get_libdir)/news/bin/control \
+ --with-filter-dir=/usr/$(get_libdir)/news/bin/filter \
+ --with-db-dir=/var/spool/news/db \
+ --with-doc-dir=/usr/share/doc/${PF} \
+ --with-spool-dir=/var/spool/news \
+ --with-log-dir=/var/log/news \
+ --with-run-dir=/run/news \
+ --with-tmp-dir=/var/spool/news/tmp \
+ --disable-libtool \
+ --with-gnu-ld \
+ --enable-setgid-inews \
+ --enable-uucp-rnews \
+ $(use_with perl) \
+ $(use_with python) \
+ $(use_with kerberos kerberos /usr) \
+ $(use_with sasl) \
+ $(use_with ssl openssl) \
+ $(use_with berkdb berkeleydb /usr) \
+ $(use_enable ipv6) \
+ $(use_enable !inntaggedhash largefiles) \
+ $(use_enable inntaggedhash tagged-hash) \
+ $(use_enable innkeywords keywords)
+}
+
+src_install() {
+ emake DESTDIR="${D}/" P="" SPECIAL="" install
+
+ chown -R root:0 \
+ "${D}"/usr/$(get_libdir)/news/$(get_libdir) \
+ "${D}"/usr/$(get_libdir)/news/include \
+ "${D}"/usr/share/doc \
+ "${D}"/usr/share/man \
+ || die
+ chmod 644 "${D}"/etc/news/* || die
+ chmod 640 \
+ "${D}"/etc/news/control.ctl \
+ "${D}"/etc/news/expire.ctl \
+ "${D}"/etc/news/incoming.conf \
+ "${D}"/etc/news/innfeed.conf \
+ "${D}"/etc/news/nntpsend.ctl \
+ "${D}"/etc/news/passwd.nntp \
+ "${D}"/etc/news/readers.conf \
+ || die
+
+ # Prevent old db/* files from being overwritten
+ insinto /usr/share/inn/dbexamples
+ newins site/active.minimal active
+ newins site/newsgroups.minimal newsgroups
+
+ keepdir \
+ /var/log/news \
+ /var/spool/news/archive \
+ /var/spool/news/articles \
+ /var/spool/news/db \
+ /var/spool/news/incoming \
+ /var/spool/news/incoming/bad \
+ /var/spool/news/innfeed \
+ /var/spool/news/outgoing \
+ /var/spool/news/overview \
+ /var/spool/news/tmp
+
+ fowners news:news /var/log/news
+
+ dodoc ChangeLog MANIFEST README* doc/checklist
+ use ipv6 && dodoc doc/IPv6-info
+
+ # So other programs can build against INN
+ insinto /usr/$(get_libdir)/news/include
+ doins include/*.h
+
+ newinitd "${FILESDIR}"/innd-r1 innd
+}
+
+pkg_postinst() {
+ for db_file in active newsgroups
+ do
+ [[ -f ${ROOT}var/spool/news/db/${db_file} ]] && continue
+
+ if [[ -f ${ROOT}usr/share/inn/dbexamples/${db_file} ]]
+ then
+ cp "${ROOT}"usr/share/inn/dbexamples/${db_file} \
+ "${ROOT}"var/spool/news/db/${db_file}
+ else
+ touch "${ROOT}"var/spool/news/db/${db_file}
+ fi
+
+ chown news:news "${ROOT}"var/spool/news/db/${db_file}
+ chmod 664 "${ROOT}"var/spool/news/db/${db_file}
+ done
+
+ elog "It is recommended to run emerge --config ${CATEGORY}/${PN}"
+ elog "now to finish setting up this package."
+ elog
+ elog "Do not forget to update your cron entries, and also run"
+ elog "makedbz if you need to. If this is a first-time installation"
+ elog "a minimal active file has been installed. You will need to"
+ elog "touch history and run 'makedbz -i' to initialize the history"
+ elog "database. See INSTALL for more information."
+ elog
+ elog "You need to assign a real shell to the news user, or else"
+ elog "starting inn will fail. You can use 'usermod -s /bin/bash news'"
+ elog "for this."
+
+ if use ssl
+ then
+ install_cert /etc/news/cert/cert
+ chown news:news \
+ "${ROOT}"etc/news/cert/cert.{crt,csr,key,pem}
+
+ elog
+ elog "You may want to start nnrpd manually for native ssl support."
+ elog "If you choose to do so, automating this with a bootscript might"
+ elog "also be a good choice."
+ elog "Have a look at man nnrpd for valid parameters."
+ elog
+ elog "The certificate location in /etc/news/sasl.conf has been changed"
+ elog "to /etc/news/cert!"
+
+ fi
+}
+
+pkg_postrm() {
+ elog
+ elog "If you want your newsspool or altered configuration files"
+ elog "to be removed, please do so now manually."
+ elog
+}
+
+pkg_config() {
+ NEWSSPOOL_DIR="${ROOT}var/spool/news"
+ NEWS_SHELL="$( awk -F':' '/^news:/ {print $7;}' ${ROOT}etc/passwd )"
+ NEWS_ERRFLAG="0"
+
+ if [[ ${NEWS_SHELL} == /bin/false || ${NEWS_SHELL} == /dev/null ]]; then
+ einfo "Changing shell to /bin/bash for user news..."
+ usermod -s /bin/bash news
+ else
+ einfo "Shell for user news unchanged ('${NEWS_SHELL}')."
+ if [[ ${NEWS_SHELL} != /bin/sh && ${NEWS_SHELL} != /bin/bash ]]; then
+ ewarn "You might want to change it to '/bin/bash', though."
+ fi
+ fi
+
+ if [[ ! -e ${NEWSSPOOL_DIR}/db/history ]]; then
+ if [[ ! -f ${NEWSSPOOL_DIR}/db/history.dir \
+ && ! -f ${NEWSSPOOL_DIR}/db/history.pag \
+ && ! -f ${NEWSSPOOL_DIR}/db/history.hash \
+ && ! -f ${NEWSSPOOL_DIR}/db/history.index ]]
+ then
+ einfo "Building history database ..."
+
+ touch "${NEWSSPOOL_DIR}"/db/history
+ chown news:news "${NEWSSPOOL_DIR}"/db/history
+ chmod 644 "${NEWSSPOOL_DIR}"/db/history
+
+ einfo "Running makedbz -i ..."
+ su - news -c "/usr/$(get_libdir)/news/bin/makedbz -i"
+
+ einfo "Moving files into place ..."
+ [[ -f ${NEWSSPOOL_DIR}/db/history.n.dir ]] && \
+ mv -vf "${NEWSSPOOL_DIR}"/db/history.n.dir \
+ "${NEWSSPOOL_DIR}"/db/history.dir
+ [[ -f ${NEWSSPOOL_DIR}/db/history.n.pag ]] && \
+ mv -vf "${NEWSSPOOL_DIR}"/db/history.n.pag \
+ "${NEWSSPOOL_DIR}"/db/history.pag
+ [[ -f ${NEWSSPOOL_DIR}/db/history.n.hash ]] && \
+ mv -vf "${NEWSSPOOL_DIR}"/db/history.n.hash \
+ "${NEWSSPOOL_DIR}"/db/history.hash
+ [[ -f ${NEWSSPOOL_DIR}/db/history.n.index ]] && \
+ mv -vf "${NEWSSPOOL_DIR}"/db/history.n.index \
+ "${NEWSSPOOL_DIR}"/db/history.index
+
+ einfo "Running makehistory ..."
+ su - news -c /usr/$(get_libdir)/news/bin/makehistory
+ else
+ NEWS_ERRFLAG="1"
+ eerror "Your installation seems to be screwed up."
+ eerror "${NEWSSPOOL_DIR}/db/history does not exist, but there's"
+ eerror "one of the files history.dir, history.hash or history.index"
+ eerror "within ${NEWSSPOOL_DIR}/db."
+ eerror "Use your backup to restore the history database."
+ fi
+ else
+ einfo "${NEWSSPOOL_DIR}/db/history found."
+ einfo "Leaving history database as it is."
+ fi
+
+ INNCFG_INODES=$(
+ sed /etc/news/inn.conf \
+ -e '/innwatchspoolnodes/ ! d; s:[^ ]*[ ]*\([^ ]*\):\1:'
+ )
+ INNSPOOL_INODES=$(
+ df -Pi ${NEWSSPOOL_DIR} | \
+ sed -e 's:[^ ]*[ ]*\([^ ]*\).*:\1:; 1 d'
+ )
+ if [[ ${INNCFG_INODES} -gt ${INNSPOOL_INODES} ]]; then
+ ewarn "Setting innwatchspoolinodes to zero, because the filesystem behind"
+ ewarn "$NEWSSPOOL_DIR works without inodes."
+ ewarn
+ cp /etc/news/inn.conf /etc/news/inn.conf.OLD
+ einfo "A copy of your old inn.conf has been saved to /etc/news/inn.conf.OLD."
+ sed -i /etc/news/inn.conf \
+ -e '/innwatchspoolnodes/ s:\([^ ]*\)\([ ]*\).*:\1\20:'
+ chown news:news /etc/news/inn.conf
+ chmod 644 /etc/news/inn.conf
+ fi
+
+ INNCHECK_LINES=$(
+ su - news -c "/usr/$(get_libdir)/news/bin/inncheck | wc -l"
+ )
+ if [[ ${INNCHECK_LINES} -gt 0 ]]; then
+ NEWS_ERRFLAG="1"
+ ewarn "inncheck most certainly found an error."
+ ewarn "Please check its output:"
+ eerror "`su - news -c /usr/$(get_libdir)/news/bin/inncheck`"
+ fi
+
+ if [[ ${NEWS_ERRFLAG} -gt 0 ]]; then
+ eerror "There were one or more errors/warnings checking your"
+ eerror "configuration. Please read inn's documentation and"
+ eerror "fix them accordingly."
+ else
+ einfo "INN configuration tests passed successfully."
+ ewarn "Please ensure you have configured inn properly."
+ fi
+}
diff --git a/net-nntp/inn/inn-2.5.4.ebuild b/net-nntp/inn/inn-2.5.4.ebuild
new file mode 100644
index 000000000000..a76c4d97da47
--- /dev/null
+++ b/net-nntp/inn/inn-2.5.4.ebuild
@@ -0,0 +1,287 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit autotools eutils multilib python-single-r1 ssl-cert toolchain-funcs
+
+DESCRIPTION="The Internet News daemon, fully featured NNTP server"
+HOMEPAGE="https://www.isc.org/software/inn"
+SRC_URI="ftp://ftp.isc.org/isc/inn/${P}.tar.gz"
+
+# GPL-2 only for init script
+LICENSE="ISC GPL-2+ public-domain BSD-4 BSD-2 RSA BSD MIT GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86"
+IUSE="berkdb innkeywords inntaggedhash ipv6 kerberos perl python sasl ssl"
+
+REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
+
+DEPEND="
+ virtual/mta
+ dev-perl/MIME-tools
+ sys-libs/pam
+ sys-libs/zlib
+ kerberos? ( virtual/krb5 )
+ sasl? ( >=dev-libs/cyrus-sasl-2 )
+ ssl? ( dev-libs/openssl )
+ python? ( ${PYTHON_DEPS} )
+ berkdb? ( sys-libs/db )
+"
+RDEPEND="${DEPEND}"
+
+pkg_setup() {
+ use python && python-single-r1_pkg_setup
+}
+
+src_prepare() {
+ epatch "${FILESDIR}"/${PN}-2.5.3-ar.patch
+ epatch "${FILESDIR}"/${PN}-2.5.3-tests.patch
+
+ sed -e 's: -B .OLD::' -i Makefile.global.in || die
+
+ # Do not treat LDFLAGS as if it contained libraries to link to
+ sed -e 's:LDFLAGS::g' -i m4/python.m4 || die
+
+ # We do not have the biff service, but we do have comsat
+ sed -e 's:"biff":"comsat":g' -i tests/lib/getnameinfo-t.c || die
+
+ eautoreconf
+}
+
+src_configure() {
+ tc-export AR
+
+ econf \
+ --prefix=/usr/$(get_libdir)/news \
+ --sysconfdir=/etc/news \
+ --mandir=/usr/share/man \
+ --infodir=/usr/share/info \
+ --with-control-dir=/usr/$(get_libdir)/news/bin/control \
+ --with-filter-dir=/usr/$(get_libdir)/news/bin/filter \
+ --with-db-dir=/var/spool/news/db \
+ --with-doc-dir=/usr/share/doc/${PF} \
+ --with-spool-dir=/var/spool/news \
+ --with-log-dir=/var/log/news \
+ --with-run-dir=/run/news \
+ --with-tmp-dir=/var/spool/news/tmp \
+ --disable-libtool \
+ --with-gnu-ld \
+ --enable-setgid-inews \
+ --enable-uucp-rnews \
+ $(use_with perl) \
+ $(use_with python) \
+ $(use_with kerberos kerberos /usr) \
+ $(use_with sasl) \
+ $(use_with ssl openssl) \
+ $(use_with berkdb berkeleydb /usr) \
+ $(use_enable ipv6) \
+ $(use_enable !inntaggedhash largefiles) \
+ $(use_enable inntaggedhash tagged-hash) \
+ $(use_enable innkeywords keywords)
+}
+
+src_install() {
+ emake DESTDIR="${D}/" P="" SPECIAL="" install
+
+ chown -R root:0 \
+ "${D}"/usr/$(get_libdir)/news/$(get_libdir) \
+ "${D}"/usr/$(get_libdir)/news/include \
+ "${D}"/usr/share/doc \
+ "${D}"/usr/share/man \
+ || die
+ chmod 644 "${D}"/etc/news/* || die
+ chmod 640 \
+ "${D}"/etc/news/control.ctl \
+ "${D}"/etc/news/expire.ctl \
+ "${D}"/etc/news/incoming.conf \
+ "${D}"/etc/news/innfeed.conf \
+ "${D}"/etc/news/nntpsend.ctl \
+ "${D}"/etc/news/passwd.nntp \
+ "${D}"/etc/news/readers.conf \
+ || die
+
+ # Prevent old db/* files from being overwritten
+ insinto /usr/share/inn/dbexamples
+ newins site/active.minimal active
+ newins site/newsgroups.minimal newsgroups
+
+ keepdir \
+ /var/log/news \
+ /var/spool/news/archive \
+ /var/spool/news/articles \
+ /var/spool/news/db \
+ /var/spool/news/incoming \
+ /var/spool/news/incoming/bad \
+ /var/spool/news/innfeed \
+ /var/spool/news/outgoing \
+ /var/spool/news/overview \
+ /var/spool/news/tmp
+
+ fowners news:news /var/log/news
+
+ dodoc ChangeLog MANIFEST README* doc/checklist
+ use ipv6 && dodoc doc/IPv6-info
+
+ # So other programs can build against INN
+ insinto /usr/$(get_libdir)/news/include
+ doins include/*.h
+
+ newinitd "${FILESDIR}"/innd-r1 innd
+}
+
+pkg_postinst() {
+ for db_file in active newsgroups
+ do
+ [[ -f ${ROOT}var/spool/news/db/${db_file} ]] && continue
+
+ if [[ -f ${ROOT}usr/share/inn/dbexamples/${db_file} ]]
+ then
+ cp "${ROOT}"usr/share/inn/dbexamples/${db_file} \
+ "${ROOT}"var/spool/news/db/${db_file}
+ else
+ touch "${ROOT}"var/spool/news/db/${db_file}
+ fi
+
+ chown news:news "${ROOT}"var/spool/news/db/${db_file}
+ chmod 664 "${ROOT}"var/spool/news/db/${db_file}
+ done
+
+ elog "It is recommended to run emerge --config ${CATEGORY}/${PN}"
+ elog "now to finish setting up this package."
+ elog
+ elog "Do not forget to update your cron entries, and also run"
+ elog "makedbz if you need to. If this is a first-time installation"
+ elog "a minimal active file has been installed. You will need to"
+ elog "touch history and run 'makedbz -i' to initialize the history"
+ elog "database. See INSTALL for more information."
+ elog
+ elog "You need to assign a real shell to the news user, or else"
+ elog "starting inn will fail. You can use 'usermod -s /bin/bash news'"
+ elog "for this."
+
+ if use ssl
+ then
+ install_cert /etc/news/cert/cert
+ chown news:news \
+ "${ROOT}"etc/news/cert/cert.{crt,csr,key,pem}
+
+ elog
+ elog "You may want to start nnrpd manually for native ssl support."
+ elog "If you choose to do so, automating this with a bootscript might"
+ elog "also be a good choice."
+ elog "Have a look at man nnrpd for valid parameters."
+ elog
+ elog "The certificate location in /etc/news/sasl.conf has been changed"
+ elog "to /etc/news/cert!"
+
+ fi
+}
+
+pkg_postrm() {
+ elog
+ elog "If you want your newsspool or altered configuration files"
+ elog "to be removed, please do so now manually."
+ elog
+}
+
+pkg_config() {
+ NEWSSPOOL_DIR="${ROOT}var/spool/news"
+ NEWS_SHELL="$( awk -F':' '/^news:/ {print $7;}' ${ROOT}etc/passwd )"
+ NEWS_ERRFLAG="0"
+
+ if [[ ${NEWS_SHELL} == /bin/false || ${NEWS_SHELL} == /dev/null ]]; then
+ einfo "Changing shell to /bin/bash for user news..."
+ usermod -s /bin/bash news
+ else
+ einfo "Shell for user news unchanged ('${NEWS_SHELL}')."
+ if [[ ${NEWS_SHELL} != /bin/sh && ${NEWS_SHELL} != /bin/bash ]]; then
+ ewarn "You might want to change it to '/bin/bash', though."
+ fi
+ fi
+
+ if [[ ! -e ${NEWSSPOOL_DIR}/db/history ]]; then
+ if [[ ! -f ${NEWSSPOOL_DIR}/db/history.dir \
+ && ! -f ${NEWSSPOOL_DIR}/db/history.pag \
+ && ! -f ${NEWSSPOOL_DIR}/db/history.hash \
+ && ! -f ${NEWSSPOOL_DIR}/db/history.index ]]
+ then
+ einfo "Building history database ..."
+
+ touch "${NEWSSPOOL_DIR}"/db/history
+ chown news:news "${NEWSSPOOL_DIR}"/db/history
+ chmod 644 "${NEWSSPOOL_DIR}"/db/history
+
+ einfo "Running makedbz -i ..."
+ su - news -c "/usr/$(get_libdir)/news/bin/makedbz -i"
+
+ einfo "Moving files into place ..."
+ [[ -f ${NEWSSPOOL_DIR}/db/history.n.dir ]] && \
+ mv -vf "${NEWSSPOOL_DIR}"/db/history.n.dir \
+ "${NEWSSPOOL_DIR}"/db/history.dir
+ [[ -f ${NEWSSPOOL_DIR}/db/history.n.pag ]] && \
+ mv -vf "${NEWSSPOOL_DIR}"/db/history.n.pag \
+ "${NEWSSPOOL_DIR}"/db/history.pag
+ [[ -f ${NEWSSPOOL_DIR}/db/history.n.hash ]] && \
+ mv -vf "${NEWSSPOOL_DIR}"/db/history.n.hash \
+ "${NEWSSPOOL_DIR}"/db/history.hash
+ [[ -f ${NEWSSPOOL_DIR}/db/history.n.index ]] && \
+ mv -vf "${NEWSSPOOL_DIR}"/db/history.n.index \
+ "${NEWSSPOOL_DIR}"/db/history.index
+
+ einfo "Running makehistory ..."
+ su - news -c /usr/$(get_libdir)/news/bin/makehistory
+ else
+ NEWS_ERRFLAG="1"
+ eerror "Your installation seems to be screwed up."
+ eerror "${NEWSSPOOL_DIR}/db/history does not exist, but there's"
+ eerror "one of the files history.dir, history.hash or history.index"
+ eerror "within ${NEWSSPOOL_DIR}/db."
+ eerror "Use your backup to restore the history database."
+ fi
+ else
+ einfo "${NEWSSPOOL_DIR}/db/history found."
+ einfo "Leaving history database as it is."
+ fi
+
+ INNCFG_INODES=$(
+ sed /etc/news/inn.conf \
+ -e '/innwatchspoolnodes/ ! d; s:[^ ]*[ ]*\([^ ]*\):\1:'
+ )
+ INNSPOOL_INODES=$(
+ df -Pi ${NEWSSPOOL_DIR} | \
+ sed -e 's:[^ ]*[ ]*\([^ ]*\).*:\1:; 1 d'
+ )
+ if [[ ${INNCFG_INODES} -gt ${INNSPOOL_INODES} ]]; then
+ ewarn "Setting innwatchspoolinodes to zero, because the filesystem behind"
+ ewarn "$NEWSSPOOL_DIR works without inodes."
+ ewarn
+ cp /etc/news/inn.conf /etc/news/inn.conf.OLD
+ einfo "A copy of your old inn.conf has been saved to /etc/news/inn.conf.OLD."
+ sed -i /etc/news/inn.conf \
+ -e '/innwatchspoolnodes/ s:\([^ ]*\)\([ ]*\).*:\1\20:'
+ chown news:news /etc/news/inn.conf
+ chmod 644 /etc/news/inn.conf
+ fi
+
+ INNCHECK_LINES=$(
+ su - news -c "/usr/$(get_libdir)/news/bin/inncheck | wc -l"
+ )
+ if [[ ${INNCHECK_LINES} -gt 0 ]]; then
+ NEWS_ERRFLAG="1"
+ ewarn "inncheck most certainly found an error."
+ ewarn "Please check its output:"
+ eerror "`su - news -c /usr/$(get_libdir)/news/bin/inncheck`"
+ fi
+
+ if [[ ${NEWS_ERRFLAG} -gt 0 ]]; then
+ eerror "There were one or more errors/warnings checking your"
+ eerror "configuration. Please read inn's documentation and"
+ eerror "fix them accordingly."
+ else
+ einfo "INN configuration tests passed successfully."
+ ewarn "Please ensure you have configured inn properly."
+ fi
+}
diff --git a/net-nntp/inn/inn-2.5.5.ebuild b/net-nntp/inn/inn-2.5.5.ebuild
new file mode 100644
index 000000000000..a76c4d97da47
--- /dev/null
+++ b/net-nntp/inn/inn-2.5.5.ebuild
@@ -0,0 +1,287 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=( python2_7 )
+
+inherit autotools eutils multilib python-single-r1 ssl-cert toolchain-funcs
+
+DESCRIPTION="The Internet News daemon, fully featured NNTP server"
+HOMEPAGE="https://www.isc.org/software/inn"
+SRC_URI="ftp://ftp.isc.org/isc/inn/${P}.tar.gz"
+
+# GPL-2 only for init script
+LICENSE="ISC GPL-2+ public-domain BSD-4 BSD-2 RSA BSD MIT GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86"
+IUSE="berkdb innkeywords inntaggedhash ipv6 kerberos perl python sasl ssl"
+
+REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
+
+DEPEND="
+ virtual/mta
+ dev-perl/MIME-tools
+ sys-libs/pam
+ sys-libs/zlib
+ kerberos? ( virtual/krb5 )
+ sasl? ( >=dev-libs/cyrus-sasl-2 )
+ ssl? ( dev-libs/openssl )
+ python? ( ${PYTHON_DEPS} )
+ berkdb? ( sys-libs/db )
+"
+RDEPEND="${DEPEND}"
+
+pkg_setup() {
+ use python && python-single-r1_pkg_setup
+}
+
+src_prepare() {
+ epatch "${FILESDIR}"/${PN}-2.5.3-ar.patch
+ epatch "${FILESDIR}"/${PN}-2.5.3-tests.patch
+
+ sed -e 's: -B .OLD::' -i Makefile.global.in || die
+
+ # Do not treat LDFLAGS as if it contained libraries to link to
+ sed -e 's:LDFLAGS::g' -i m4/python.m4 || die
+
+ # We do not have the biff service, but we do have comsat
+ sed -e 's:"biff":"comsat":g' -i tests/lib/getnameinfo-t.c || die
+
+ eautoreconf
+}
+
+src_configure() {
+ tc-export AR
+
+ econf \
+ --prefix=/usr/$(get_libdir)/news \
+ --sysconfdir=/etc/news \
+ --mandir=/usr/share/man \
+ --infodir=/usr/share/info \
+ --with-control-dir=/usr/$(get_libdir)/news/bin/control \
+ --with-filter-dir=/usr/$(get_libdir)/news/bin/filter \
+ --with-db-dir=/var/spool/news/db \
+ --with-doc-dir=/usr/share/doc/${PF} \
+ --with-spool-dir=/var/spool/news \
+ --with-log-dir=/var/log/news \
+ --with-run-dir=/run/news \
+ --with-tmp-dir=/var/spool/news/tmp \
+ --disable-libtool \
+ --with-gnu-ld \
+ --enable-setgid-inews \
+ --enable-uucp-rnews \
+ $(use_with perl) \
+ $(use_with python) \
+ $(use_with kerberos kerberos /usr) \
+ $(use_with sasl) \
+ $(use_with ssl openssl) \
+ $(use_with berkdb berkeleydb /usr) \
+ $(use_enable ipv6) \
+ $(use_enable !inntaggedhash largefiles) \
+ $(use_enable inntaggedhash tagged-hash) \
+ $(use_enable innkeywords keywords)
+}
+
+src_install() {
+ emake DESTDIR="${D}/" P="" SPECIAL="" install
+
+ chown -R root:0 \
+ "${D}"/usr/$(get_libdir)/news/$(get_libdir) \
+ "${D}"/usr/$(get_libdir)/news/include \
+ "${D}"/usr/share/doc \
+ "${D}"/usr/share/man \
+ || die
+ chmod 644 "${D}"/etc/news/* || die
+ chmod 640 \
+ "${D}"/etc/news/control.ctl \
+ "${D}"/etc/news/expire.ctl \
+ "${D}"/etc/news/incoming.conf \
+ "${D}"/etc/news/innfeed.conf \
+ "${D}"/etc/news/nntpsend.ctl \
+ "${D}"/etc/news/passwd.nntp \
+ "${D}"/etc/news/readers.conf \
+ || die
+
+ # Prevent old db/* files from being overwritten
+ insinto /usr/share/inn/dbexamples
+ newins site/active.minimal active
+ newins site/newsgroups.minimal newsgroups
+
+ keepdir \
+ /var/log/news \
+ /var/spool/news/archive \
+ /var/spool/news/articles \
+ /var/spool/news/db \
+ /var/spool/news/incoming \
+ /var/spool/news/incoming/bad \
+ /var/spool/news/innfeed \
+ /var/spool/news/outgoing \
+ /var/spool/news/overview \
+ /var/spool/news/tmp
+
+ fowners news:news /var/log/news
+
+ dodoc ChangeLog MANIFEST README* doc/checklist
+ use ipv6 && dodoc doc/IPv6-info
+
+ # So other programs can build against INN
+ insinto /usr/$(get_libdir)/news/include
+ doins include/*.h
+
+ newinitd "${FILESDIR}"/innd-r1 innd
+}
+
+pkg_postinst() {
+ for db_file in active newsgroups
+ do
+ [[ -f ${ROOT}var/spool/news/db/${db_file} ]] && continue
+
+ if [[ -f ${ROOT}usr/share/inn/dbexamples/${db_file} ]]
+ then
+ cp "${ROOT}"usr/share/inn/dbexamples/${db_file} \
+ "${ROOT}"var/spool/news/db/${db_file}
+ else
+ touch "${ROOT}"var/spool/news/db/${db_file}
+ fi
+
+ chown news:news "${ROOT}"var/spool/news/db/${db_file}
+ chmod 664 "${ROOT}"var/spool/news/db/${db_file}
+ done
+
+ elog "It is recommended to run emerge --config ${CATEGORY}/${PN}"
+ elog "now to finish setting up this package."
+ elog
+ elog "Do not forget to update your cron entries, and also run"
+ elog "makedbz if you need to. If this is a first-time installation"
+ elog "a minimal active file has been installed. You will need to"
+ elog "touch history and run 'makedbz -i' to initialize the history"
+ elog "database. See INSTALL for more information."
+ elog
+ elog "You need to assign a real shell to the news user, or else"
+ elog "starting inn will fail. You can use 'usermod -s /bin/bash news'"
+ elog "for this."
+
+ if use ssl
+ then
+ install_cert /etc/news/cert/cert
+ chown news:news \
+ "${ROOT}"etc/news/cert/cert.{crt,csr,key,pem}
+
+ elog
+ elog "You may want to start nnrpd manually for native ssl support."
+ elog "If you choose to do so, automating this with a bootscript might"
+ elog "also be a good choice."
+ elog "Have a look at man nnrpd for valid parameters."
+ elog
+ elog "The certificate location in /etc/news/sasl.conf has been changed"
+ elog "to /etc/news/cert!"
+
+ fi
+}
+
+pkg_postrm() {
+ elog
+ elog "If you want your newsspool or altered configuration files"
+ elog "to be removed, please do so now manually."
+ elog
+}
+
+pkg_config() {
+ NEWSSPOOL_DIR="${ROOT}var/spool/news"
+ NEWS_SHELL="$( awk -F':' '/^news:/ {print $7;}' ${ROOT}etc/passwd )"
+ NEWS_ERRFLAG="0"
+
+ if [[ ${NEWS_SHELL} == /bin/false || ${NEWS_SHELL} == /dev/null ]]; then
+ einfo "Changing shell to /bin/bash for user news..."
+ usermod -s /bin/bash news
+ else
+ einfo "Shell for user news unchanged ('${NEWS_SHELL}')."
+ if [[ ${NEWS_SHELL} != /bin/sh && ${NEWS_SHELL} != /bin/bash ]]; then
+ ewarn "You might want to change it to '/bin/bash', though."
+ fi
+ fi
+
+ if [[ ! -e ${NEWSSPOOL_DIR}/db/history ]]; then
+ if [[ ! -f ${NEWSSPOOL_DIR}/db/history.dir \
+ && ! -f ${NEWSSPOOL_DIR}/db/history.pag \
+ && ! -f ${NEWSSPOOL_DIR}/db/history.hash \
+ && ! -f ${NEWSSPOOL_DIR}/db/history.index ]]
+ then
+ einfo "Building history database ..."
+
+ touch "${NEWSSPOOL_DIR}"/db/history
+ chown news:news "${NEWSSPOOL_DIR}"/db/history
+ chmod 644 "${NEWSSPOOL_DIR}"/db/history
+
+ einfo "Running makedbz -i ..."
+ su - news -c "/usr/$(get_libdir)/news/bin/makedbz -i"
+
+ einfo "Moving files into place ..."
+ [[ -f ${NEWSSPOOL_DIR}/db/history.n.dir ]] && \
+ mv -vf "${NEWSSPOOL_DIR}"/db/history.n.dir \
+ "${NEWSSPOOL_DIR}"/db/history.dir
+ [[ -f ${NEWSSPOOL_DIR}/db/history.n.pag ]] && \
+ mv -vf "${NEWSSPOOL_DIR}"/db/history.n.pag \
+ "${NEWSSPOOL_DIR}"/db/history.pag
+ [[ -f ${NEWSSPOOL_DIR}/db/history.n.hash ]] && \
+ mv -vf "${NEWSSPOOL_DIR}"/db/history.n.hash \
+ "${NEWSSPOOL_DIR}"/db/history.hash
+ [[ -f ${NEWSSPOOL_DIR}/db/history.n.index ]] && \
+ mv -vf "${NEWSSPOOL_DIR}"/db/history.n.index \
+ "${NEWSSPOOL_DIR}"/db/history.index
+
+ einfo "Running makehistory ..."
+ su - news -c /usr/$(get_libdir)/news/bin/makehistory
+ else
+ NEWS_ERRFLAG="1"
+ eerror "Your installation seems to be screwed up."
+ eerror "${NEWSSPOOL_DIR}/db/history does not exist, but there's"
+ eerror "one of the files history.dir, history.hash or history.index"
+ eerror "within ${NEWSSPOOL_DIR}/db."
+ eerror "Use your backup to restore the history database."
+ fi
+ else
+ einfo "${NEWSSPOOL_DIR}/db/history found."
+ einfo "Leaving history database as it is."
+ fi
+
+ INNCFG_INODES=$(
+ sed /etc/news/inn.conf \
+ -e '/innwatchspoolnodes/ ! d; s:[^ ]*[ ]*\([^ ]*\):\1:'
+ )
+ INNSPOOL_INODES=$(
+ df -Pi ${NEWSSPOOL_DIR} | \
+ sed -e 's:[^ ]*[ ]*\([^ ]*\).*:\1:; 1 d'
+ )
+ if [[ ${INNCFG_INODES} -gt ${INNSPOOL_INODES} ]]; then
+ ewarn "Setting innwatchspoolinodes to zero, because the filesystem behind"
+ ewarn "$NEWSSPOOL_DIR works without inodes."
+ ewarn
+ cp /etc/news/inn.conf /etc/news/inn.conf.OLD
+ einfo "A copy of your old inn.conf has been saved to /etc/news/inn.conf.OLD."
+ sed -i /etc/news/inn.conf \
+ -e '/innwatchspoolnodes/ s:\([^ ]*\)\([ ]*\).*:\1\20:'
+ chown news:news /etc/news/inn.conf
+ chmod 644 /etc/news/inn.conf
+ fi
+
+ INNCHECK_LINES=$(
+ su - news -c "/usr/$(get_libdir)/news/bin/inncheck | wc -l"
+ )
+ if [[ ${INNCHECK_LINES} -gt 0 ]]; then
+ NEWS_ERRFLAG="1"
+ ewarn "inncheck most certainly found an error."
+ ewarn "Please check its output:"
+ eerror "`su - news -c /usr/$(get_libdir)/news/bin/inncheck`"
+ fi
+
+ if [[ ${NEWS_ERRFLAG} -gt 0 ]]; then
+ eerror "There were one or more errors/warnings checking your"
+ eerror "configuration. Please read inn's documentation and"
+ eerror "fix them accordingly."
+ else
+ einfo "INN configuration tests passed successfully."
+ ewarn "Please ensure you have configured inn properly."
+ fi
+}
diff --git a/net-nntp/inn/metadata.xml b/net-nntp/inn/metadata.xml
new file mode 100644
index 000000000000..93a158225936
--- /dev/null
+++ b/net-nntp/inn/metadata.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>net-news</herd>
+<use>
+ <flag name='innkeywords'>Enable automatic keyword generation support</flag>
+ <flag name='inntaggedhash'>Use tagged hash table for history (disables large
+ file support)</flag>
+</use>
+</pkgmetadata>