From 4f2d7949f03e1c198bc888f2d05f421d35c57e21 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Mon, 9 Oct 2017 18:53:29 +0100 Subject: reinit the tree, so we can have metadata --- net-nntp/sabnzbd/Manifest | 12 ++ .../files/patches/0001-use-system-configobj.patch | 28 ++++ .../files/patches/0002-use-system-feedparser.patch | 34 +++++ .../0003-cfg-disable-NtfOSD-by-default.patch | 25 ++++ net-nntp/sabnzbd/files/sabnzbd.confd | 6 + net-nntp/sabnzbd/files/sabnzbd.ini | 14 ++ net-nntp/sabnzbd/files/sabnzbd.initd | 71 ++++++++++ net-nntp/sabnzbd/files/sabnzbd_at.service | 10 ++ net-nntp/sabnzbd/metadata.xml | 15 +++ net-nntp/sabnzbd/sabnzbd-2.3.0.ebuild | 146 +++++++++++++++++++++ 10 files changed, 361 insertions(+) create mode 100644 net-nntp/sabnzbd/Manifest create mode 100644 net-nntp/sabnzbd/files/patches/0001-use-system-configobj.patch create mode 100644 net-nntp/sabnzbd/files/patches/0002-use-system-feedparser.patch create mode 100644 net-nntp/sabnzbd/files/patches/0003-cfg-disable-NtfOSD-by-default.patch create mode 100644 net-nntp/sabnzbd/files/sabnzbd.confd create mode 100644 net-nntp/sabnzbd/files/sabnzbd.ini create mode 100755 net-nntp/sabnzbd/files/sabnzbd.initd create mode 100644 net-nntp/sabnzbd/files/sabnzbd_at.service create mode 100644 net-nntp/sabnzbd/metadata.xml create mode 100644 net-nntp/sabnzbd/sabnzbd-2.3.0.ebuild (limited to 'net-nntp/sabnzbd') diff --git a/net-nntp/sabnzbd/Manifest b/net-nntp/sabnzbd/Manifest new file mode 100644 index 000000000000..29c59d035463 --- /dev/null +++ b/net-nntp/sabnzbd/Manifest @@ -0,0 +1,12 @@ +AUX patches/0001-use-system-configobj.patch 784 SHA256 64475b8a839421ac30cb02b8e8ac229e757701cedc640e19c0888b5daaeb4c2e SHA512 3d657a62da5f53eb26bbffe47ddf8c36026f1f6536bfae6c8278ec84f27e1672e058a87bc77e65e1ab40deb8b7c3ee7a72dbcc9035d62af71d7e0642dd7f6542 WHIRLPOOL 99fe7dd77fa2c75b54c6e87829ee96b22cac14c8502b866e208dee14e416c386047a3757d63ce0dc1bbf0967e4efbe04e7738ffee1b885de4eb520bed608456f +AUX patches/0002-use-system-feedparser.patch 929 SHA256 a9db847f81a391e84a3e1880a638e91fe60812811e7859187d0e522a788b3215 SHA512 2a58fc9c21e81c0b18f30bf94ba75777724ec8d0a9d54fddc591f1517c7f92f5b2d3d6726c90ee545f94242fef48020b81ce6291c15f9e8eecc7095f388701db WHIRLPOOL 8a018fc8ce654cfdf2ab610adb35ca7ffc827fe20f0315f7bfde89692c68d19a6757731d4c87bc3960cea2535f19a0813563c8e44fc862df1267565ce2a7768f +AUX patches/0003-cfg-disable-NtfOSD-by-default.patch 962 SHA256 6e6fe1b58e3740f62e8b4713e83df674e5d7e8bc547f4b2da19788e88d53115e SHA512 48f157d0c31465424e7951f933bb2f4089c1abce185df8146cb5292a0be636b9e31c2f761aced09666bf12c907a7a33cea2fa4e5ac0853f55f0de9a0e2751fbf WHIRLPOOL 5b2228fd46dac29bd534aba02fffdd966634fb5be692e612d7e7b339147e0c81e6f1aa9def9c3dcb22b373979671d1bcf9e7d9013f92d8ddb2115baaa21b1726 +AUX sabnzbd.confd 156 SHA256 1200b1e7a6b58f63e34c0526a0cbd981a142484074cf2e2e6b52afb7990018dd SHA512 91915b54b6e2c2dc7839c23726aba7982b158b20a813ad0f66fa879d2454db14e24472e57e076b41866b28c7cd3991f9961c114b17dfc7e37322b23aa1e6c468 WHIRLPOOL b25c71e8c210185f45df59af3d6cfc5f059c99b8d2db9e96891f6d790c68666cb5210723fa7d65d9799b59a859be2e8c22d69f35cd52dc2aedae991dc7cb533d +AUX sabnzbd.ini 347 SHA256 3275fae0b32d4d3c09225f4bed11a495acb88d51470807187f0e7d9f3f853d3d SHA512 14df57a0594a671a275e6e5b4f6a704ce2be01507c518f46162d096870da7b04fb636c4e8aedfdb07d3290934941707eda94180e290bdf7eef561b5641497df4 WHIRLPOOL 067fd44e1870567bbad3dfbba4262160c581212bb0c86bb4abd010daa5094bd64c3d1caa558b3e5ad6aa548b47da73e948883d8fabfc11c74f551fb9db07c914 +AUX sabnzbd.initd 1395 SHA256 d6b773de2e2e43c6bf1bfa455aebcdf1e04dd27dd3dd05554b76e1d4d84bbbee SHA512 0510dc7386ae57493bf614d9b74614f0c2b160981c0f7e5f784a9a336167de7918112ff1a173e3535edd654567ca806b156ee6db819e139dcfea3990bc8252d8 WHIRLPOOL 7f3f6dacd65a1c0ad38ff8e88eb912d8308f351e49f622efe794b38c92257d4d89cfcdfaba867a330ede41f72ae173579e3b01535394876725559ddcdcb30095 +AUX sabnzbd_at.service 175 SHA256 f05d6ac93f02fa86e88e6fdbec161d6f5425522ddc70616cacb66a3180bad43d SHA512 b2a913f322c0aae74e445ef420486ad6b4e41a85fc75d7d1a5dffab006dccae7c5b87abfd8a35ba8460a691acf69d50a9337e1ac74d549304e3683ac12c19fd4 WHIRLPOOL ac4c542254d74b6e924fa26b49b27626e77107f293bbb804f9093f0206acf147b993aa5cc20245c886ddf84020652c34f3355c955090efa0e67656dcd5ecb828 +DIST SABnzbd-2.3.0-src.tar.gz 2731445 SHA256 8c89902330531fddd6349271fd410a1e92e2a18905a15c7493aac0378e86e32b SHA512 e649434314eb38e3b4c9a693f665548b6f92c6e1044359085411b983af407b1654fb49e93216c1b12256a2ecfad831e316205bc090afa7d908b93df99b095382 WHIRLPOOL ccaac7072bd604498cd88d4a54556433a405dd2aa84dde8c167aeaf4e279afea16663a0178ecca8c8236424931c477340d61e43be6774a6f14f4a86720a2f56b +EBUILD sabnzbd-2.3.0.ebuild 4059 SHA256 65bed2bd4370a1f5fe361e473e13682a656d520bbd62919d064c62e45a59044f SHA512 7a7f26c395418a8524df1ecb74bbe6b13ec89f4060a526496284dae8e10f85f61a526eeb001e5c700bc5f3dcc7b47d1200d61a3351637f4cacdbb126548ed43b WHIRLPOOL 4174138e04ea001b9dbef46418e97bb0bca1e6bc595c76e1a1cce8d7d932038f69ba07f74d4fc58b0257f33c9abcd80ea612ac88593fbb01826514a390d64893 +MISC ChangeLog 7574 SHA256 ef8acef5c44f3344da29006bbab26980a63ee2fd7b99f8b12a3628476b47bbdd SHA512 fff27b6789303c4890cea1dffdf5042a6f3733f1f7f7318194ace18b74446e3667412cf98b11aac6f0e995f134d439b70c1f03b4ae7845e2484ed1dab69d3195 WHIRLPOOL 7208bc89133af3deff241827adfe7a4a527c0dd71095e547a781768cd18f618317681257c9d129083d1f97d97bc090b4c5424926b1bc87f4e4f85f9ff92383b6 +MISC ChangeLog-2015 4644 SHA256 2fb2921444583981995f4b692908c6e15c2f52890ea8e68d27a324d91de008e6 SHA512 215b33cfe0e23146e2ee9ea88ee0570d75430ca70f29611fddab8b3d9739dca6e1662b044bde23ba2b748b5d09fea5e13012db2ee35fe6d6523659eb5a97e202 WHIRLPOOL 7d95cc2d97dba49e4dda61a7a01bf508ac01ed17c8fef3a58ca77a6dbe446e0acea7e996e9c0e37ba3d93e6f79801d8d479d855189a2c125a4e46ab1a22e7519 +MISC metadata.xml 506 SHA256 b8b4b016fa9e3279822d6281a3f3ed7b46798dce79c6b92667f940e1e19e9685 SHA512 13c60fc2a77328dd1d8ae3d2036a84b72dc98a88093aad9a326fd904b41c795dcce84aec5dc528bc81daabba0341f10a7dda2d01788f70310bbaf801da831f53 WHIRLPOOL 4732c40ef33029ed913f78b87fb64b6fec6271f3d0d2917b2db6cf5a51f09497f5fd46b89ba104ea2863b2e875af6ff21e56179f7ce7c8da8adeb97b0e804a34 diff --git a/net-nntp/sabnzbd/files/patches/0001-use-system-configobj.patch b/net-nntp/sabnzbd/files/patches/0001-use-system-configobj.patch new file mode 100644 index 000000000000..0f89dcd13414 --- /dev/null +++ b/net-nntp/sabnzbd/files/patches/0001-use-system-configobj.patch @@ -0,0 +1,28 @@ +From db9a217dd5a02b5be72d47b7618f877f39cb31bc Mon Sep 17 00:00:00 2001 +From: Justin Bronder +Date: Mon, 13 Feb 2017 18:20:39 -0500 +Subject: [PATCH 1/3] use system configobj + +--- + sabnzbd/config.py | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/sabnzbd/config.py b/sabnzbd/config.py +index 2f58ffd..04bfaab 100644 +--- a/sabnzbd/config.py ++++ b/sabnzbd/config.py +@@ -30,9 +30,10 @@ from hashlib import md5 + from urlparse import urlparse + import sabnzbd.misc + from sabnzbd.constants import CONFIG_VERSION, NORMAL_PRIORITY, DEFAULT_PRIORITY, MAX_WIN_DFOLDER +-from sabnzbd.utils import configobj + from sabnzbd.decorators import synchronized + ++import configobj ++ + CONFIG_LOCK = threading.Lock() + SAVE_CONFIG_LOCK = threading.Lock() + +-- +2.13.0 + diff --git a/net-nntp/sabnzbd/files/patches/0002-use-system-feedparser.patch b/net-nntp/sabnzbd/files/patches/0002-use-system-feedparser.patch new file mode 100644 index 000000000000..68e39a975e7e --- /dev/null +++ b/net-nntp/sabnzbd/files/patches/0002-use-system-feedparser.patch @@ -0,0 +1,34 @@ +From b8540c4c71e917623290f3ca8d4091228fab8903 Mon Sep 17 00:00:00 2001 +From: Justin Bronder +Date: Mon, 13 Feb 2017 18:21:28 -0500 +Subject: [PATCH 2/3] use system feedparser + +--- + sabnzbd/rss.py | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/sabnzbd/rss.py b/sabnzbd/rss.py +index 0315fca..18ac828 100644 +--- a/sabnzbd/rss.py ++++ b/sabnzbd/rss.py +@@ -25,6 +25,8 @@ import time + import datetime + import threading + ++import feedparser ++ + import sabnzbd + from sabnzbd.constants import RSS_FILE_NAME, DEFAULT_PRIORITY, NORMAL_PRIORITY, DUP_PRIORITY + from sabnzbd.decorators import synchronized +@@ -35,8 +37,6 @@ from sabnzbd.misc import cat_convert, wildcard_to_re, cat_to_opts, \ + import sabnzbd.emailer as emailer + from sabnzbd.encoding import unicoder, xml_name + +-import sabnzbd.utils.feedparser as feedparser +- + __RSS = None # Global pointer to RSS-scanner instance + + +-- +2.13.0 + diff --git a/net-nntp/sabnzbd/files/patches/0003-cfg-disable-NtfOSD-by-default.patch b/net-nntp/sabnzbd/files/patches/0003-cfg-disable-NtfOSD-by-default.patch new file mode 100644 index 000000000000..064d523a1e1e --- /dev/null +++ b/net-nntp/sabnzbd/files/patches/0003-cfg-disable-NtfOSD-by-default.patch @@ -0,0 +1,25 @@ +From 459111cb4f6937d58de480cf06743474f5c1dd3d Mon Sep 17 00:00:00 2001 +From: Justin Bronder +Date: Sat, 5 Aug 2017 17:38:03 -0400 +Subject: [PATCH 3/3] cfg: disable NtfOSD by default + +--- + sabnzbd/cfg.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/sabnzbd/cfg.py b/sabnzbd/cfg.py +index d8867db..59a341c 100644 +--- a/sabnzbd/cfg.py ++++ b/sabnzbd/cfg.py +@@ -322,7 +322,7 @@ acenter_prio_queue_done = OptionBool('acenter', 'acenter_prio_queue_done', True) + acenter_prio_other = OptionBool('acenter', 'acenter_prio_other', False) + + # [ntfosd] +-ntfosd_enable = OptionBool('ntfosd', 'ntfosd_enable', not sabnzbd.WIN32 and not sabnzbd.DARWIN) ++ntfosd_enable = OptionBool('ntfosd', 'ntfosd_enable', False) + ntfosd_cats = OptionList('ntfosd', 'ntfosd_cats', ['*']) + ntfosd_prio_startup = OptionBool('ntfosd', 'ntfosd_prio_startup', True) + ntfosd_prio_download = OptionBool('ntfosd', 'ntfosd_prio_download', False) +-- +2.13.0 + diff --git a/net-nntp/sabnzbd/files/sabnzbd.confd b/net-nntp/sabnzbd/files/sabnzbd.confd new file mode 100644 index 000000000000..c949355ec708 --- /dev/null +++ b/net-nntp/sabnzbd/files/sabnzbd.confd @@ -0,0 +1,6 @@ +SABNZBD_CONFIGFILE="/etc/sabnzbd/sabnzbd.ini" +SABNZBD_USER="sabnzbd" +SABNZBD_GROUP="sabnzbd" + +# 0 - error/warnings, 1 - info, 2 - debug +SABNZBD_LOGGING="1" diff --git a/net-nntp/sabnzbd/files/sabnzbd.ini b/net-nntp/sabnzbd/files/sabnzbd.ini new file mode 100644 index 000000000000..c5ff04854e15 --- /dev/null +++ b/net-nntp/sabnzbd/files/sabnzbd.ini @@ -0,0 +1,14 @@ +__version__ = 19 +[misc] +log_dir = /var/log/sabnzbd +admin_dir = /var/lib/sabnzbd/admin +cache_dir = /var/lib/sabnzbd/cache +complete_dir = /var/lib/sabnzbd/complete +download_dir = /var/lib/sabnzbd/download +dirscan_dir = /var/lib/sabnzbd/dirscan +nzb_backup_dir = /var/lib/sabnzbd/backup +auto_browser = 0 +host = :: +port = 8080 +[growl] +growl_enable = 0 diff --git a/net-nntp/sabnzbd/files/sabnzbd.initd b/net-nntp/sabnzbd/files/sabnzbd.initd new file mode 100755 index 000000000000..b3dca9797562 --- /dev/null +++ b/net-nntp/sabnzbd/files/sabnzbd.initd @@ -0,0 +1,71 @@ +#!/sbin/openrc-run +# Copyright 1999-2016 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +PIDFILE="/run/sabnzbd/sabnzbd.pid" + +depend() { + need net +} + +get_var() { + grep -P -o -m 1 "(?<=^${1} = ).*" "${SABNZBD_CONFIGFILE}" || echo 0 +} + +start() { + ebegin "Starting SABnzbd" + + checkpath -q -d -o ${SABNZBD_USER}:${SABNZBD_GROUP} -m 0770 "$(dirname "${PIDFILE}")" + + start-stop-daemon \ + --quiet \ + --start \ + --user ${SABNZBD_USER} \ + --group ${SABNZBD_GROUP} \ + --pidfile "${PIDFILE}" \ + --wait 1000 \ + --exec /usr/share/sabnzbd/SABnzbd.py \ + -- \ + --config-file "${SABNZBD_CONFIGFILE}" \ + --logging "${SABNZBD_LOGGING}" \ + --daemon \ + --pidfile "${PIDFILE}" + + eend $? +} + +stop() { + local protocol="http" + local host="$(get_var "host")" + local port="$(get_var "port")" + + if [ $(get_var "enable_https") -eq 1 ]; then + protocol="https" + port="$(get_var "https_port")" + fi + + case "${host}" in + *:*) host="[${host}]" ;; + esac + + local url="${protocol}://${host}:${port}/sabnzbd/api?mode=shutdown" + + if [ $(get_var "disable_api_key") -eq 0 ]; then + url="${url}&apikey=$(get_var "api_key")" + fi + + local signals="TERM/1/KILL/1" + + ebegin "Stopping SABnzbd" + + if [ "$(wget -o /dev/null -t 1 -O - -T 10 "${url}")" = "ok" ]; then + signals="NULL/5/${signals}" + fi + + start-stop-daemon \ + --stop \ + --pidfile "${PIDFILE}" \ + --retry "${signals}" + + eend $? +} diff --git a/net-nntp/sabnzbd/files/sabnzbd_at.service b/net-nntp/sabnzbd/files/sabnzbd_at.service new file mode 100644 index 000000000000..e9fdc4a35de3 --- /dev/null +++ b/net-nntp/sabnzbd/files/sabnzbd_at.service @@ -0,0 +1,10 @@ +[Unit] +Description=SABnzbd binary newsreader + +[Service] +ExecStart=/usr/share/sabnzbd/SABnzbd.py --logging 1 --browser 0 +User=%I +Group=%I + +[Install] +WantedBy=multi-user.target diff --git a/net-nntp/sabnzbd/metadata.xml b/net-nntp/sabnzbd/metadata.xml new file mode 100644 index 000000000000..1bd96f540af7 --- /dev/null +++ b/net-nntp/sabnzbd/metadata.xml @@ -0,0 +1,15 @@ + + + + + jsbronder@gentoo.org + + + Add support for extracting 7za files + Add support for extracting rar files + Add support for extracting zip files + + + sabnzbd/sabnzbd + + diff --git a/net-nntp/sabnzbd/sabnzbd-2.3.0.ebuild b/net-nntp/sabnzbd/sabnzbd-2.3.0.ebuild new file mode 100644 index 000000000000..939fb5e3da69 --- /dev/null +++ b/net-nntp/sabnzbd/sabnzbd-2.3.0.ebuild @@ -0,0 +1,146 @@ +# 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-3.3.1 + 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 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 + local major + local minor + for replacing in ${REPLACING_VERSIONS}; do + major=$(get_major_version ${replacing}) + minor=$(get_version_component_range 2 ${replacing}) + + if [ "${major}" == "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 + elif [ "${major}" == "2" ] && [ ${minor} -lt 2 ]; then + ewarn + ewarn "Due to changes in this release, the queue will be converted when ${PN}" + ewarn "is started for the first time. Job order, settings and data will be" + ewarn "preserved, but all jobs will be unpaused and URLs that did not finish" + ewarn "fetching before the upgrade will be lost!" + ewarn + break + fi + + done +} -- cgit v1.2.3