summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'net-nntp/sabnzbd/sabnzbd-2.0.1.ebuild')
-rw-r--r--net-nntp/sabnzbd/sabnzbd-2.0.1.ebuild132
1 files changed, 132 insertions, 0 deletions
diff --git a/net-nntp/sabnzbd/sabnzbd-2.0.1.ebuild b/net-nntp/sabnzbd/sabnzbd-2.0.1.ebuild
new file mode 100644
index 000000000000..672045429780
--- /dev/null
+++ b/net-nntp/sabnzbd/sabnzbd-2.0.1.ebuild
@@ -0,0 +1,132 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+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="+7za +rar unzip"
+
+# 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 portage:
+# kronos, rsslib, ssmtplib, listquote, json-py, msgfmt, happyeyeballs
+# pynewsleecher
+#
+# dev-python/rarfile is bundled as of 2.0.1 because sabnzbd is modifying it
+# https://github.com/sabnzbd/sabnzbd/commit/de6d642b0dc6eaed63199a99d9a1a8b2e3d0018b
+#
+# 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/cryptography
+ dev-python/feedparser
+ dev-python/gntp
+ dev-python/pythonutils
+ dev-python/sabyenc
+ net-misc/wget
+ 7za? ( app-arch/p7zip )
+ rar? ( || ( app-arch/unrar app-arch/rar ) )
+ unzip? ( >=app-arch/unzip-5.5.2 )
+"
+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}.py || die
+ rm -r gntp || die
+ rm licenses/License-{feedparser,configobj,gntp}.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
+
+ exeinto "/usr/share/${PN}"
+ doexe 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})" == "1" ]; then
+ ewarn
+ ewarn "Upgrading to ${PN}-2.x.y converts schedule items to a format"
+ ewarn "that is not compatible with earlier ${PN}-1.x.y releases."
+ ewarn
+ break
+ fi
+ done
+}