Skip to content

Commit

Permalink
net-nntp/sabnzbd: add 4.3.3_rc2
Browse files Browse the repository at this point in the history
Still need to sort out tests, but this should work otherwise.
  • Loading branch information
joecool1029 committed Aug 19, 2024
1 parent 7ee8b7e commit f44dc6f
Show file tree
Hide file tree
Showing 2 changed files with 174 additions and 0 deletions.
1 change: 1 addition & 0 deletions net-nntp/sabnzbd/Manifest
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
DIST SABnzbd-4.3.3Beta2-src.tar.gz 5108456 BLAKE2B d8d00363fca918141f94fc6cb036c06ff42eb6d0f814910c8152cd8e9cb1172998ebbda76b4b237ff57eca1df65ea6db8e843b0cec264c23a13a9d914d811459 SHA512 4bdbe28734805f7a4f8f935c49d0d060507560d4e5cb6c5a382e8b42278f68725261c1f08f552788f9892da5e158abeb8a8537e1761f8710ddfaf900359790f7
DIST SABnzbd-4.3.3RC2-src.tar.gz 5108765 BLAKE2B 09099f1c229a63f20fe735888de52234165c9ecb580690d8cef59ef75697774902a365b71a519a81022d9c52b94f5022728114a109a488a313ab9029e9c820f2 SHA512 1d728858de79b90d5a13d29a71a2a5f25c3484fc2f62a57e1c8d0cd23a3c955222da9d3ca673e405647efe5b2fe4ba41175cec0e04c23998b8ad2217111dc46e
173 changes: 173 additions & 0 deletions net-nntp/sabnzbd/sabnzbd-4.3.3_rc2.ebuild
Original file line number Diff line number Diff line change
@@ -0,0 +1,173 @@
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI="8"

PYTHON_COMPAT=( python3_{10..12} )
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 software with the following licenses.
LICENSE="GPL-2 BSD LGPL-2 MIT BSD-1"
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.8.0[${PYTHON_USEDEP}]
dev-python/chardet[${PYTHON_USEDEP}]
dev-python/cheetah3[${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/sabctools-8.2.5[${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-4.5.0[${PYTHON_USEDEP}]
>dev-python/pyfakefs-5.6.0[${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-7.4.4[${PYTHON_USEDEP}]
dev-python/requests[${PYTHON_USEDEP}]
dev-python/selenium[${PYTHON_USEDEP}]
dev-python/tavalidate[${PYTHON_USEDEP}]
>=dev-python/tavern-2[${PYTHON_USEDEP}]
dev-python/werkzeug[${PYTHON_USEDEP}]
dev-python/xmltodict[${PYTHON_USEDEP}]
')
app-arch/p7zip
app-arch/unrar
app-arch/unzip
www-apps/chromedriver-bin
)
"

src_test() {
local EPYTEST_IGNORE=(
# network sandbox
tests/test_getipaddress.py
tests/test_rss.py
tests/test_urlgrabber.py
tests/test_utils/test_happyeyeballs.py
tests/test_utils/test_internetspeed.py
)
local EPYTEST_DESELECT=(
# network sandbox
'tests/test_cfg.py::TestValidators::test_validate_host'
'tests/test_consistency.py::TestWiki'
'tests/test_newswrapper.py::TestNewsWrapper'
'tests/test_happyeyeballs.py::TestHappyEyeballs'
'tests/test_internetspeed.py::TestInternetSpeed'
# Just plain fails
'tests/test_newsunpack.py::TestPar2Repair::test_basic'
# Chromedriver tests don't want to behave in portage
'tests/test_functional_config.py::TestBasicPages::test_base_pages'
'tests/test_functional_config.py::TestBasicPages::test_base_submit_pages'
'tests/test_functional_config.py::TestConfigLogin::test_login'
'tests/test_functional_config.py::TestConfigCategories::test_page'
'tests/test_functional_config.py::TestConfigRSS::test_rss_basic_flow'
'tests/test_functional_config.py::TestConfigServers::test_add_and_remove_server'
'tests/test_functional_downloads.py::TestDownloadFlow::test_download_basic_rar5'
'tests/test_functional_downloads.py::TestDownloadFlow::test_download_zip'
'tests/test_functional_downloads.py::TestDownloadFlow::test_download_7zip'
'tests/test_functional_downloads.py::TestDownloadFlow::test_download_passworded'
'tests/test_functional_downloads.py::TestDownloadFlow::test_download_fully_obfuscated'
'tests/test_functional_downloads.py::TestDownloadFlow::test_download_unicode_rar'
'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'
'tests/test_functional_sorting.py::TestDownloadSorting'
)

# The test suite is prone to being broken by random plugins that happen
# to be installed, so disable autoloading.
local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
# Use PYTEST_PLUGINS instead of args to 'epytest' because the test suite
# calls pytest itself and the args would get lost. To get the list of plugins,
# if stuck, comment out the AUTOLOAD line above, look at the list of loaded
# plugins at the top of the pytest output, then translate those into module names
# by e.g. checking equery f.
local -x PYTEST_PLUGINS=pytest_mock,tavern,tavern._core.pytest,pyfakefs.pytest_plugin,pytest_asyncio.plugin

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 '[email protected]'
}

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 <user>"
einfo
einfo "By default, SABnzbd will listen on TCP port 8080."
fi

optfeature "7z archive support" app-arch/p7zip
optfeature "rar archive support" app-arch/unrar app-arch/rar
optfeature "zip archive support" app-arch/unzip
}

0 comments on commit f44dc6f

Please sign in to comment.