diff --git a/net-nntp/sabnzbd/Manifest b/net-nntp/sabnzbd/Manifest index 0511774d787c..29597fece942 100644 --- a/net-nntp/sabnzbd/Manifest +++ b/net-nntp/sabnzbd/Manifest @@ -1,2 +1,3 @@ DIST SABnzbd-4.5.3-src.tar.gz 5250826 BLAKE2B c88e79ec38c1b0a66f7edb546d7004463600bb42d2b0eef5cb525acd0963de4579ddff883cc9fc5e7e58e32b7c0acaf28a1d27f4f5fa01d7cf03c32b6dc4a084 SHA512 d8facf74a387b3cb79e690fbe28f61eebcdf13f9eeae9645a7d2e0b700e16d56e5a78d9ab75dd27626f903b6c7dc8343743850a0433fa6644cd45dcabfefb1dd DIST SABnzbd-4.5.5-src.tar.gz 5240879 BLAKE2B 3e2e061e7cff3b020d8807b81c01ea70f6a06cef13e5f02f935d3141c2b5e72921974a02faf16df302639a33d567d180b114ef5b4115eba45f9d50578cd2a273 SHA512 c388b87c894baa8b791b0f14b855f3a3b9114dcf9d3a7f0daba392f71b02271ec7419c1f03d9ca8c4b58fea541d7bb710bed097632aa4ebea75c391b5937a9ea +DIST SABnzbd-5.0.1-src.tar.gz 5300965 BLAKE2B 791544b944e42b158478bf4f13333cfa96cb256ac965959b2102b123810a46cb6dc96e90fe0b755dfe9569018a807aa039c81d647c2eaa7479cf153cf4933035 SHA512 940f997165eb7a511426512609e859ecd2b1474a6bf64d83f882de53beb73c5573f5d1f7ac645ada39dbd678e05b251df0d1429b13806aeaa96938ecc1769298 diff --git a/net-nntp/sabnzbd/sabnzbd-5.0.1.ebuild b/net-nntp/sabnzbd/sabnzbd-5.0.1.ebuild new file mode 100644 index 000000000000..14bab6bbb36c --- /dev/null +++ b/net-nntp/sabnzbd/sabnzbd-5.0.1.ebuild @@ -0,0 +1,154 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="8" + +PYTHON_COMPAT=( python3_{12..14} ) +PYTHON_REQ_USE="sqlite" + +inherit optfeature python-single-r1 systemd + +MY_PV="${PV/_alpha/Alpha}" +MY_PV="${MY_PV/_beta/Beta}" +MY_PV="${MY_PV/_rc/RC}" + +MY_P="SABnzbd-${MY_PV}" + +DESCRIPTION="Binary newsgrabber with web-interface" +HOMEPAGE="https://sabnzbd.org/" +SRC_URI="https://github.com/sabnzbd/sabnzbd/releases/download/${MY_PV}/${MY_P}-src.tar.gz" +S="${WORKDIR}/${MY_P}" + +# SABnzbd is GPL-2+ but bundles JS/CSS libraries and Python modules +# with their own licenses (Bootstrap, jQuery, Knockout, rarfile, etc). +LICENSE="GPL-2+ Apache-2.0 CC-BY-3.0 ISC LGPL-2.1+ MIT" +SLOT="0" +KEYWORDS="~amd64" +IUSE="test" +RESTRICT="!test? ( test )" +REQUIRED_USE="${PYTHON_REQUIRED_USE}" + +DEPEND=" + acct-user/sabnzbd + acct-group/sabnzbd + ${PYTHON_DEPS} + $(python_gen_cond_dep ' + >=dev-python/apprise-1.9.2[${PYTHON_USEDEP}] + dev-python/chardet[${PYTHON_USEDEP}] + >=dev-python/cheetah3-3.4.0[${PYTHON_USEDEP}] + dev-python/cherrypy[${PYTHON_USEDEP}] + dev-python/configobj[${PYTHON_USEDEP}] + dev-python/cryptography[${PYTHON_USEDEP}] + >=dev-python/feedparser-6.0.11[${PYTHON_USEDEP}] + >=dev-python/guessit-3.8.0[${PYTHON_USEDEP}] + dev-python/notify2[${PYTHON_USEDEP}] + dev-python/portend[${PYTHON_USEDEP}] + dev-python/puremagic[${PYTHON_USEDEP}] + ~dev-python/rarfile-4.2[${PYTHON_USEDEP}] + ~dev-python/sabctools-9.4.0[${PYTHON_USEDEP}] + ') +" +RDEPEND=" + ${DEPEND} + || ( + >=app-arch/par2cmdline-0.8 + >=app-arch/par2cmdline-turbo-1.1.0 + ) + net-misc/wget +" +BDEPEND=" + test? ( + $(python_gen_cond_dep ' + dev-python/flaky[${PYTHON_USEDEP}] + dev-python/lxml[${PYTHON_USEDEP}] + dev-python/pyfakefs[${PYTHON_USEDEP}] + dev-python/pytest-asyncio[${PYTHON_USEDEP}] + dev-python/pytest-httpbin[${PYTHON_USEDEP}] + dev-python/pytest-httpserver[${PYTHON_USEDEP}] + dev-python/pytest-mock[${PYTHON_USEDEP}] + dev-python/pytest[${PYTHON_USEDEP}] + dev-python/requests[${PYTHON_USEDEP}] + dev-python/selenium[${PYTHON_USEDEP}] + dev-python/tavalidate[${PYTHON_USEDEP}] + >=dev-python/tavern-3[${PYTHON_USEDEP}] + dev-python/werkzeug[${PYTHON_USEDEP}] + dev-python/xmltodict[${PYTHON_USEDEP}] + ') + app-arch/7zip + app-arch/unrar + app-arch/unzip + ) +" + +src_test() { + local EPYTEST_IGNORE=( + # network sandbox + tests/test_get_addrinfo.py + tests/test_getipaddress.py + tests/test_internetspeed.py + # Requires chromedriver + tests/test_functional_config.py + tests/test_functional_downloads.py + tests/test_functional_sorting.py + ) + local EPYTEST_DESELECT=( + # network sandbox + 'tests/test_cfg.py::TestValidators::test_validate_host' + 'tests/test_consistency.py::TestWiki' + 'tests/test_rss.py::TestRSS::test_rss_newznab_parser' + 'tests/test_rss.py::TestRSS::test_rss_nzedb_parser' + 'tests/test_urlgrabber.py::TestBuildRequest::test_http_basic' + 'tests/test_urlgrabber.py::TestBuildRequest::test_https_basic' + # Requires chromedriver + 'tests/test_functional_misc.py::TestShowLogging::test_showlog' + 'tests/test_functional_misc.py::TestQueueRepair::test_queue_repair' + 'tests/test_functional_misc.py::TestDaemonizing::test_daemonizing' + # Runs extract_pot.py which needs the git repo + 'tests/test_functional_misc.py::TestExtractPot::test_extract_pot' + ) + + epytest -s +} + +src_install() { + insinto /usr/share/${PN} + doins -r email icons interfaces locale po sabnzbd scripts tools + + exeinto /usr/share/${PN} + doexe SABnzbd.py + + python_fix_shebang "${ED}"/usr/share/${PN} + python_optimize "${ED}"/usr/share/${PN} + + newinitd "${FILESDIR}"/${PN}-r1.initd ${PN} + newconfd "${FILESDIR}"/${PN}.confd ${PN} + + diropts -o ${PN} -g ${PN} + dodir /etc/${PN} + keepdir /var/log/${PN} + + insinto "/etc/${PN}" + insopts -m 0600 -o "${PN}" -g "${PN}" + newins "${FILESDIR}"/${PN}-r1.ini ${PN}.ini + + dodoc ISSUES.txt README.mkd + + systemd_newunit "${FILESDIR}"/sabnzbd_at.service 'sabnzbd@.service' +} + +pkg_postinst() { + if [[ -z "${REPLACING_VERSIONS}" ]]; then + # This is a new installation + einfo "Default directory: /var/lib/${PN}" + einfo + einfo "To add a user to the sabnzbd group so it can edit SABnzbd+ files, run:" + einfo + einfo " usermod -a -G sabnzbd " + einfo + einfo "By default, SABnzbd will listen on TCP port 8080." + fi + + optfeature "7z archive support" app-arch/7zip + optfeature "rar archive support" app-arch/unrar app-arch/rar + optfeature "zip archive support" app-arch/unzip +}