blob: e5f0860d7e02ede17a8ce16e08b9f0b3e9719738 [file] [log] [blame]
# Copyright 1999-2016 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
EAPI="5"
# Require python-2 with sqlite USE flag
PYTHON_DEPEND="2:2.7"
PYTHON_USE_WITH="sqlite"
inherit eutils python user systemd versionator
MY_P="${P/sab/SAB}"
DESCRIPTION="Binary newsgrabber with web-interface"
HOMEPAGE="http://www.sabnzbd.org/"
SRC_URI="mirror://sourceforge/sabnzbdplus/${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="
>=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 )
"
S="${WORKDIR}/${MY_P}"
pkg_setup() {
HOMEDIR="/var/lib/${PN}"
python_set_active_version 2
python_pkg_setup
# Create sabnzbd group
enewgroup ${PN}
# Create sabnzbd user, put in sabnzbd group
enewuser "${PN}" -1 -1 "${HOMEDIR}" "${PN}"
}
src_prepare() {
epatch "${FILESDIR}"/1.1.x/0001-use-system-configobj-and-feedparser.patch
epatch "${FILESDIR}"/1.1.x/0002-assume-gntp-1.0.patch
epatch "${FILESDIR}"/1.1.x/0003-cfg-disable-growl-by-default.patch
epatch "${FILESDIR}"/1.1.x/0004-use-system-rarfile.patch
# 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
}
src_install() {
local d
dodir /usr/share/${PN}/sabnzbd
insinto /usr/share/${PN}/
doins SABnzbd.py
fperms +x /usr/share/${PN}/SABnzbd.py
dobin "${FILESDIR}"/sabnzbd
for d in cherrypy email icons interfaces locale po sabnzbd tools util; do
insinto /usr/share/${PN}/${d}
doins -r ${d}/*
done
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() {
python_mod_optimize /usr/share/${PN}
einfo "Default directory: ${HOMEDIR}"
einfo ""
einfo "Run: gpasswd -a <user> sabnzbd"
einfo "to add a user to the sabnzbd group so it can edit sabnzbd files"
einfo ""
einfo "By default sabnzbd will listen on 127.0.0.1:8080"
einfo "As growl isn't default notification system on gentoo we disable it."
einfo "By default notifications are forwarded to the 23053 port(gntp)."
local replacing
for replacing in ${REPLACING_VERSIONS}; do
if [ "$(get_major_version ${replacing})" == "0" ]; then
echo
ewarn "Upgrading from ${PN}-0.x.y to ${PN}-1.x.y introduces incompatible changes"
ewarn "See http://wiki.sabnzbd.org/introducing-1-0-0."
ewarn "In particular, you need to let your queue complete before restarting ${PN}"
break
fi
done
}
pkg_postrm() {
python_mod_cleanup /usr/share/${PN}
}