summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'net-nntp/sabnzbd/sabnzbd-1.1.1-r1.ebuild')
-rw-r--r--net-nntp/sabnzbd/sabnzbd-1.1.1-r1.ebuild133
1 files changed, 133 insertions, 0 deletions
diff --git a/net-nntp/sabnzbd/sabnzbd-1.1.1-r1.ebuild b/net-nntp/sabnzbd/sabnzbd-1.1.1-r1.ebuild
new file mode 100644
index 000000000000..7502561fb08a
--- /dev/null
+++ b/net-nntp/sabnzbd/sabnzbd-1.1.1-r1.ebuild
@@ -0,0 +1,133 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="6"
+
+# Require python-2 with sqlite USE flag
+PYTHON_COMPAT=( python2_7 )
+PYTHON_REQ_USE="sqlite"
+
+inherit python-single-r1 user systemd versionator
+
+MY_P="${P/sab/SAB}"
+
+DESCRIPTION="Binary newsgrabber with web-interface"
+HOMEPAGE="https://sabnzbd.org/"
+SRC_URI="https://github.com/sabnzbd/sabnzbd/releases/download/${PV}/${MY_P}-src.tar.gz"
+
+# Sabnzbd is GPL-2 but bundles software with the following licenses.
+LICENSE="GPL-2 BSD LGPL-2 MIT BSD-1"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="+rar +ssl unzip +yenc"
+
+# Sabnzbd is installed to /usr/share/ as upstream makes it clear they should not
+# be in python's sitedir. See: http://wiki.sabnzbd.org/unix-packaging
+
+# TODO: still bundled but not in protage:
+# kronos, rsslib, ssmtplib, listquote, json-py, msgfmt
+# pynewsleecher
+#
+# Also note that cherrypy is still bundled. It's near impossible to find
+# out where the bundled and heavily patched version came from (pulled from
+# cherrypy subversion, patched somewhere, then imported to sabnzbd and patched
+# further. Upstream is planning on making this easier with 0.8.0.
+# https://github.com/sabnzbd/sabnzbd/issues/47
+
+RDEPEND="
+ ${PYTHON_DEPS}
+ >=app-arch/par2cmdline-0.4
+ >=dev-python/cheetah-2.0.1
+ dev-python/configobj
+ dev-python/feedparser
+ dev-python/gntp
+ dev-python/pythonutils
+ dev-python/rarfile
+ net-misc/wget
+ rar? ( || ( app-arch/unrar app-arch/rar ) )
+ ssl? ( dev-python/pyopenssl )
+ unzip? ( >=app-arch/unzip-5.5.2 )
+ yenc? ( dev-python/yenc )
+"
+DEPEND="${PYTHON_DEPS}"
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+S="${WORKDIR}/${MY_P}"
+
+pkg_setup() {
+ HOMEDIR="/var/lib/${PN}"
+ python-single-r1_pkg_setup
+
+ # Create sabnzbd group
+ enewgroup "${PN}"
+ # Create sabnzbd user, put in sabnzbd group
+ enewuser "${PN}" -1 -1 "${HOMEDIR}" "${PN}"
+}
+
+src_prepare() {
+ eapply "${FILESDIR}"/patches
+
+ # remove bundled modules
+ rm -r sabnzbd/utils/{feedparser,configobj,rarfile}.py || die
+ rm -r gntp || die
+ rm licenses/License-{feedparser,configobj,gntp,rarfile}.txt || die
+
+ eapply_user
+}
+
+src_install() {
+ local d
+
+ for d in cherrypy email icons interfaces locale po sabnzbd tools util; do
+ insinto "/usr/share/${PN}/${d}"
+ doins -r ${d}/*
+ done
+
+ insinto "/usr/share/${PN}"
+ insopts -m 0755
+ doins SABnzbd.py
+
+ python_fix_shebang "${ED}usr/share/${PN}"
+ python_optimize "${ED}usr/share/${PN}"
+
+ newinitd "${FILESDIR}/${PN}.initd" "${PN}"
+ newconfd "${FILESDIR}/${PN}.confd" "${PN}"
+
+ diropts -o "${PN}" -g "${PN}"
+ dodir "/etc/${PN}"
+ dodir "/var/log/${PN}"
+
+ insinto "/etc/${PN}"
+ insopts -m 0600 -o "${PN}" -g "${PN}"
+ doins "${FILESDIR}/${PN}.ini"
+
+ dodoc {ABOUT,ISSUES,README}.txt licenses/*
+
+ systemd_newunit "${FILESDIR}"/sabnzbd_at.service 'sabnzbd@.service'
+}
+
+pkg_postinst() {
+ einfo "Default directory: ${HOMEDIR}"
+ einfo
+ einfo "To add a user to the sabnzbd group so it can edit SABnzbd+ files, run:"
+ einfo
+ einfo " gpasswd -a <user> sabnzbd"
+ einfo
+ einfo "By default, SABnzbd+ will listen on TCP port 8080."
+ einfo
+ einfo "As Growl is not the default notification system on Gentoo, we disable it."
+
+ local replacing
+ for replacing in ${REPLACING_VERSIONS}; do
+ if [ "$(get_major_version ${replacing})" == "0" ]; then
+ ewarn
+ ewarn "Upgrading from ${PN}-0.x.y to ${PN}-1.x.y introduces incompatible changes, see:"
+ ewarn
+ ewarn " https://sabnzbd.org/wiki/introducing-1-0-0"
+ ewarn
+ ewarn "In particular, you need to let your queue complete before restarting SABnzbd+."
+ break
+ fi
+ done
+}