summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'net-nntp')
-rw-r--r--net-nntp/nzbget/Manifest3
-rw-r--r--net-nntp/nzbget/files/nzbget-24.1-fix-allocah.patch39
-rw-r--r--net-nntp/nzbget/files/nzbget-24.2-fix-getrealpath-buffer-overflow.patch174
-rw-r--r--net-nntp/nzbget/nzbget-24.2.ebuild117
-rw-r--r--net-nntp/nzbget/nzbget-24.3.ebuild (renamed from net-nntp/nzbget/nzbget-24.1.ebuild)31
-rw-r--r--net-nntp/sabnzbd/Manifest2
-rw-r--r--net-nntp/sabnzbd/sabnzbd-4.2.3.ebuild171
-rw-r--r--net-nntp/sabnzbd/sabnzbd-4.3.1.ebuild173
-rw-r--r--net-nntp/sabnzbd/sabnzbd-4.3.2.ebuild4
9 files changed, 313 insertions, 401 deletions
diff --git a/net-nntp/nzbget/Manifest b/net-nntp/nzbget/Manifest
index 059d1d38d04c..fdff7e7c6693 100644
--- a/net-nntp/nzbget/Manifest
+++ b/net-nntp/nzbget/Manifest
@@ -1,2 +1,3 @@
DIST nzbget-21.1.tar.gz 1988916 BLAKE2B 74298c5c7f3986831f36832a8ffe596543196b5b46500925de478bf11cab8e66fb36dee9458533a4194d82123765b29e37914463d72fd206e218b4875861001a SHA512 d8dc1ad324f675c5505e623049a14c022475267aa03dcd5d8fd6cf9ed3b776cc2776077b61d035e252937ea4b6bf8f90bd33e715cfd842d2e012615df3ffeafb
-DIST nzbget-24.1.tar.gz 5365282 BLAKE2B 4fe260c361888d99eaf457a520b39560320b86d181cd12891b35962c9d4c6d773aeb389bf2254029fc58643bb5b04eb24917db9319f1a1068014feed08521dde SHA512 eb4a60cb3a529e2fb8242615e57758ceed615a573fabbe7170490e7af8c228edc90a096860ab7cf49ee85fc834cb8db30aa866c4f149679396139e54c166cf5c
+DIST nzbget-24.2.tar.gz 5512752 BLAKE2B ef4c6e562976030b790a93747d11d6b7059be7cb8bc9076068c037a0e8d25f09054ff280417b52f534af50aec0f11cd21959f995ae8252a21ea274aa7efdfc84 SHA512 ad280315f9a60bf206a134e3703337af2e2dfb8282dd5efc55af071f82f5f7e7857f819dd843f6ae70cd7fcea2c84de4db535d7658fb5255a380ffcf685a680f
+DIST nzbget-24.3.tar.gz 5533518 BLAKE2B 67614aecebb28b2664ab629beddeea6c492e1f32ba71854d1812c7c4e5b41219c1773c33d5952f6e2805bf5804d3fb1e410f9c6cdc0850a4d3036d4253f9c0ba SHA512 6a79f7fcc58c494af19179b6a98d5235423fc8d3a45c6ba969cf687948da25faaf9bcec074b7c9b8ccf2d3621e6bc2dc9c2ae67e877e89fa9a00b8f3ff4ca85a
diff --git a/net-nntp/nzbget/files/nzbget-24.1-fix-allocah.patch b/net-nntp/nzbget/files/nzbget-24.1-fix-allocah.patch
deleted file mode 100644
index 335800118e31..000000000000
--- a/net-nntp/nzbget/files/nzbget-24.1-fix-allocah.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-https://github.com/nzbgetcom/nzbget/commit/412d9e5b732c1cf39aac266dcf97bf097f85bc58
-
-From 412d9e5b732c1cf39aac266dcf97bf097f85bc58 Mon Sep 17 00:00:00 2001
-From: Louis Sautier <sautier.louis@gmail.com>
-Date: Tue, 16 Jul 2024 05:41:47 +0200
-Subject: [PATCH] Fix: add missing HAVE_ALLOCA_H definition for regex (#308)
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Without this, the build fails with:
-```
-/var/tmp/portage/net-nntp/nzbget-24.1/work/nzbget-24.1/lib/regex/regex.c: In function ‘set_regs’:
-/var/tmp/portage/net-nntp/nzbget-24.1/work/nzbget-24.1/lib/regex/regex.c:7701:39: error: implicit declaration of function ‘alloca’; did you mean ‘calloc’? [-Wimplicit-function-declaration] 7701 | prev_idx_match = (regmatch_t*)alloca(nmatch * sizeof(regmatch_t));
- | ^~~~~~
- | calloc
-```
---- a/cmake/config.h.in
-+++ b/cmake/config.h.in
-@@ -134,6 +134,9 @@
- /* Define to 1 if you have the <unistd.h> header file. */
- #cmakedefine HAVE_UNISTD_H @HAVE_UNISTD_H@
-
-+/* Define to 1 if you have the <alloca.h> header file. */
-+#cmakedefine HAVE_ALLOCA_H @HAVE_ALLOCA_H@
-+
- /* Define to 1 if variadic macros are supported */
- #cmakedefine HAVE_VARIADIC_MACROS @HAVE_VARIADIC_MACROS@
-
---- a/cmake/posix.cmake
-+++ b/cmake/posix.cmake
-@@ -120,6 +120,7 @@ check_include_file(strings.h HAVE_STRINGS_H)
- check_include_file(string.h HAVE_STRING_H)
- check_include_file(sys/stat.h HAVE_SYS_STAT_H)
- check_include_file(unistd.h HAVE_UNISTD_H)
-+check_include_file(alloca.h HAVE_ALLOCA_H)
-
- check_library_exists(pthread pthread_create "" HAVE_PTHREAD_CREATE)
- check_library_exists(socket socket "" HAVE_SOCKET)
diff --git a/net-nntp/nzbget/files/nzbget-24.2-fix-getrealpath-buffer-overflow.patch b/net-nntp/nzbget/files/nzbget-24.2-fix-getrealpath-buffer-overflow.patch
new file mode 100644
index 000000000000..fcaeb9a5c2d6
--- /dev/null
+++ b/net-nntp/nzbget/files/nzbget-24.2-fix-getrealpath-buffer-overflow.patch
@@ -0,0 +1,174 @@
+https://github.com/nzbgetcom/nzbget/commit/f89978f7479cbb0ff2f96c8632d9d2f31834e6c8
+
+From f89978f7479cbb0ff2f96c8632d9d2f31834e6c8 Mon Sep 17 00:00:00 2001
+From: Denis <146707790+dnzbk@users.noreply.github.com>
+Date: Wed, 7 Aug 2024 11:54:33 -0700
+Subject: [PATCH] Fixed: buffer overflow using getrealpath function (#346)
+
+- use a safer approach of using `getrealpath` according to the [doc](https://man7.org/linux/man-pages/man3/realpath.3.html)
+- using `std::string_view` instead of `std::string&` for better performance
+- improved `SystemInfoTest` to make it more flexible
+--- a/daemon/util/FileSystem.cpp
++++ b/daemon/util/FileSystem.cpp
+@@ -56,20 +56,21 @@ void FileSystem::NormalizePathSeparators(char* path)
+ }
+ }
+
+-std::optional<std::string> FileSystem::GetFileRealPath(const std::string& path)
++std::optional<std::string> FileSystem::GetFileRealPath(std::string_view path)
+ {
+- char buffer[256];
+-
+ #ifdef WIN32
+- DWORD len = GetFullPathName(path.c_str(), 256, buffer, nullptr);
++ char buffer[MAX_PATH];
++ DWORD len = GetFullPathName(path.data(), MAX_PATH, buffer, nullptr);
+ if (len != 0)
+ {
+- return std::optional<std::string>{ buffer };
++ return std::optional{ buffer };
+ }
+ #else
+- if (realpath(path.c_str(), buffer) != nullptr)
++ if (char* realPath = realpath(path.data(), nullptr))
+ {
+- return std::optional<std::string>{ buffer };
++ std::string res = realPath;
++ free(realPath);
++ return std::optional(std::move(res));
+ }
+ #endif
+
+--- a/daemon/util/FileSystem.h
++++ b/daemon/util/FileSystem.h
+@@ -40,7 +40,7 @@ class FileSystem
+ static char* BaseFileName(const char* filename);
+ static bool SameFilename(const char* filename1, const char* filename2);
+ static void NormalizePathSeparators(char* path);
+- static std::optional<std::string> GetFileRealPath(const std::string& path);
++ static std::optional<std::string> GetFileRealPath(std::string_view path);
+ static bool LoadFileIntoBuffer(const char* filename, CharBuffer& buffer, bool addTrailingNull);
+ static bool SaveBufferIntoFile(const char* filename, const char* buffer, int bufLen);
+ static bool AllocateFile(const char* filename, int64 size, bool sparse, CString& errmsg);
+--- a/tests/system/SystemInfoTest.cpp
++++ b/tests/system/SystemInfoTest.cpp
+@@ -28,22 +28,22 @@
+ #include "Log.h"
+ #include "DiskState.h"
+
+-Log* g_Log = new Log();
++Log* g_Log;
+ Options* g_Options;
+ DiskState* g_DiskState;
+
+-std::string GetToolsJsonStr(const std::vector<System::Tool> tools)
++std::string GetToolsJsonStr(const std::vector<System::Tool>& tools)
+ {
+ std::string json = "\"Tools\":[";
+
+ for (size_t i = 0; i < tools.size(); ++i)
+ {
+ std::string path = tools[i].path;
+- for (size_t i = 0; i < path.length(); ++i) {
+- if (path[i] == '\\')
++ for (size_t j = 0; j < path.length(); ++j) {
++ if (path[j] == '\\')
+ {
+- path.insert(i, "\\");
+- ++i;
++ path.insert(j, "\\");
++ ++j;
+ }
+ }
+
+@@ -62,7 +62,7 @@ std::string GetToolsJsonStr(const std::vector<System::Tool> tools)
+ return json;
+ }
+
+-std::string GetLibrariesJsonStr(const std::vector<System::Library> libs)
++std::string GetLibrariesJsonStr(const std::vector<System::Library>& libs)
+ {
+ std::string json = "\"Libraries\":[";
+
+@@ -82,7 +82,7 @@ std::string GetLibrariesJsonStr(const std::vector<System::Library> libs)
+ return json;
+ }
+
+-std::string GetToolsXmlStr(const std::vector<System::Tool> tools)
++std::string GetToolsXmlStr(const std::vector<System::Tool>& tools)
+ {
+ std::string xml = "<Tools>";
+
+@@ -110,7 +110,7 @@ std::string GetToolsXmlStr(const std::vector<System::Tool> tools)
+ return xml;
+ }
+
+-std::string GetLibrariesXmlStr(const std::vector<System::Library> libs)
++std::string GetLibrariesXmlStr(const std::vector<System::Library>& libs)
+ {
+ std::string xml = "<Libraries>";
+
+@@ -126,13 +126,32 @@ std::string GetLibrariesXmlStr(const std::vector<System::Library> libs)
+ return xml;
+ }
+
++std::string GetNetworkXmlStr(const System::Network& network)
++{
++ std::string res = "<Network>";
++ res += network.publicIP.empty()
++ ? "<member><name>PublicIP</name><value><string/></value></member>"
++ : "<member><name>PublicIP</name><value><string>" + network.publicIP + "</string></value></member>";
++
++ res += network.privateIP.empty()
++ ? "<member><name>PrivateIP</name><value><string/></value></member>"
++ : "<member><name>PrivateIP</name><value><string>" + network.privateIP + "</string></value></member>";
++
++ res += "</Network>";
++ return res;
++}
++
+ BOOST_AUTO_TEST_CASE(SystemInfoTest)
+ {
+- BOOST_CHECK(0 == 0);
++ Log log;
++ DiskState ds;
+ Options::CmdOptList cmdOpts;
+ cmdOpts.push_back("SevenZipCmd=7z");
+ cmdOpts.push_back("UnrarCmd=unrar");
+ Options options(&cmdOpts, nullptr);
++
++ g_Log = &log;
++ g_DiskState = &ds;
+ g_Options = &options;
+
+ auto sysInfo = std::make_unique<System::SystemInfo>();
+@@ -157,14 +176,25 @@ BOOST_AUTO_TEST_CASE(SystemInfoTest)
+ "</string></value></member>" +
+ "<member><name>Arch</name><value><string>" + sysInfo->GetCPUInfo().GetArch() +
+ "</string></value></member></CPU>" +
+- "<Network><member><name>PublicIP</name><value><string>" + sysInfo->GetNetworkInfo().publicIP +
+- "</string></value></member>"
+- "<member><name>PrivateIP</name><value><string>" + sysInfo->GetNetworkInfo().privateIP +
+- "</string></value></member></Network>" +
++ GetNetworkXmlStr(sysInfo->GetNetworkInfo()) +
+ GetToolsXmlStr(sysInfo->GetTools()) +
+ GetLibrariesXmlStr(sysInfo->GetLibraries()) +
+ "</struct></value>";
+
++ BOOST_TEST_MESSAGE("EXPECTED JSON STR: ");
++ BOOST_TEST_MESSAGE(jsonStrExpected);
++
++ BOOST_TEST_MESSAGE("RESULT JSON STR: ");
++ BOOST_TEST_MESSAGE(jsonStrResult);
++
++ BOOST_TEST_MESSAGE("EXPECTED XML STR: ");
++ BOOST_TEST_MESSAGE(xmlStrExpected);
++
++ BOOST_TEST_MESSAGE("RESULT XML STR: ");
++ BOOST_TEST_MESSAGE(xmlStrResult);
++
+ BOOST_CHECK(jsonStrResult == jsonStrExpected);
+ BOOST_CHECK(xmlStrResult == xmlStrExpected);
++
++ xmlCleanupParser();
+ }
diff --git a/net-nntp/nzbget/nzbget-24.2.ebuild b/net-nntp/nzbget/nzbget-24.2.ebuild
new file mode 100644
index 000000000000..cf239712567b
--- /dev/null
+++ b/net-nntp/nzbget/nzbget-24.2.ebuild
@@ -0,0 +1,117 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake systemd
+
+DESCRIPTION="A command-line based binary newsgrabber supporting .nzb files"
+HOMEPAGE="https://nzbget.com/"
+SRC_URI="https://github.com/nzbgetcom/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-2+"
+SLOT="0"
+KEYWORDS="amd64 ~arm ~arm64 ~ppc x86"
+IUSE="gnutls ncurses +parcheck ssl test zlib"
+RESTRICT="!test? ( test )"
+
+DEPEND="
+ dev-libs/boost:=
+ dev-libs/libxml2:=
+ ncurses? ( sys-libs/ncurses:0= )
+ ssl? (
+ gnutls? (
+ net-libs/gnutls:=
+ dev-libs/nettle:=
+ )
+ !gnutls? ( dev-libs/openssl:0=[-bindist(-)] )
+ )
+ zlib? ( sys-libs/zlib:= )"
+RDEPEND="
+ ${DEPEND}
+ acct-user/nzbget
+ acct-group/nzbget
+"
+BDEPEND="
+ test? (
+ || (
+ app-arch/rar
+ app-arch/unrar
+ )
+ )
+ virtual/pkgconfig
+"
+
+DOCS=( ChangeLog.md README.md nzbget.conf )
+
+PATCHES=(
+ "${FILESDIR}/${P}-fix-getrealpath-buffer-overflow.patch"
+)
+
+src_prepare() {
+ cmake_src_prepare
+
+ # Update the main configuration file with the correct paths
+ sed -i nzbget.conf \
+ -e "s:^WebDir=.*:WebDir=${EPREFIX}/usr/share/nzbget/webui:" \
+ -e "s:^ConfigTemplate=.*:ConfigTemplate=${EPREFIX}/usr/share/nzbget/nzbget.conf:" \
+ || die
+ # Update the daemon-specific configuration file (used by the OpenRC and
+ # systemd services)
+ sed nzbget.conf > nzbgetd.conf \
+ -e "s:^MainDir=.*:MainDir=${EPREFIX}/var/lib/nzbget:" \
+ -e "s:^LogFile=.*:LogFile=${EPREFIX}/var/log/nzbget/nzbget.log:" \
+ -e 's:^DaemonUsername=.*:DaemonUsername=nzbget:' \
+ || die
+}
+
+src_configure() {
+ local mycmakeargs=(
+ -DDISABLE_CURSES=$(usex !ncurses)
+ -DDISABLE_PARCHECK=$(usex !parcheck)
+ -DDISABLE_TLS=$(usex !ssl)
+ -DDISABLE_GZIP=$(usex !zlib)
+ -DUSE_OPENSSL=$(usex !gnutls)
+ -DUSE_GNUTLS=$(usex gnutls)
+ -DENABLE_TESTS=$(usex test)
+ )
+ cmake_src_configure
+}
+
+src_install() {
+ cmake_src_install
+
+ insinto /etc
+ doins nzbget.conf
+ doins nzbgetd.conf
+
+ # The configuration file's "ConfigTemplate" option points to this, we must
+ # make sure it exists as the Web UI reads it. It is not installed by
+ # default, see the "install-conf" target in cmake/install.cmake.
+ insinto /usr/share/nzbget
+ doins nzbget.conf
+
+ keepdir /var/log/nzbget
+
+ newinitd "${FILESDIR}"/nzbget.initd-r1 nzbget
+ newconfd "${FILESDIR}"/nzbget.confd nzbget
+ systemd_dounit "${FILESDIR}"/nzbget.service
+}
+
+pkg_preinst() {
+ fowners nzbget:nzbget /var/log/nzbget
+ fperms 750 /var/log/nzbget
+
+ fowners nzbget:nzbget /etc/nzbgetd.conf
+ fperms 640 /etc/nzbgetd.conf
+}
+
+pkg_postinst() {
+ if [[ -z ${REPLACING_VERSIONS} ]] ; then
+ elog
+ elog "Please add users that you want to be able to use the system-wide"
+ elog "nzbget daemon to the nzbget group. To access the daemon, run nzbget"
+ elog "with the --configfile /etc/nzbgetd.conf option."
+ elog
+ fi
+}
diff --git a/net-nntp/nzbget/nzbget-24.1.ebuild b/net-nntp/nzbget/nzbget-24.3.ebuild
index a2fbf9d1ad90..63600a57ae90 100644
--- a/net-nntp/nzbget/nzbget-24.1.ebuild
+++ b/net-nntp/nzbget/nzbget-24.3.ebuild
@@ -44,24 +44,21 @@ BDEPEND="
DOCS=( ChangeLog.md README.md nzbget.conf )
-PATCHES=(
- "${FILESDIR}/${P}-fix-allocah.patch"
-)
-
src_prepare() {
- # Do not install a configuration file in /usr/etc
- sed -i '\:install(FILES ${CMAKE_BINARY_DIR}/nzbget.conf DESTINATION ${CMAKE_INSTALL_PREFIX}/etc):d' cmake/install.cmake || die
cmake_src_prepare
- sed -i 's:^ScriptDir=.*:ScriptDir=/usr/share/nzbget/ppscripts:' nzbget.conf || die
-
- sed \
- -e 's:^MainDir=.*:MainDir=/var/lib/nzbget:' \
- -e 's:^LogFile=.*:LogFile=/var/log/nzbget/nzbget.log:' \
- -e 's:^WebDir=.*:WebDir=/usr/share/nzbget/webui:' \
- -e 's:^ConfigTemplate=.*:ConfigTemplate=/usr/share/nzbget/nzbget.conf:' \
+ # Update the main configuration file with the correct paths
+ sed -i nzbget.conf \
+ -e "s:^WebDir=.*:WebDir=${EPREFIX}/usr/share/nzbget/webui:" \
+ -e "s:^ConfigTemplate=.*:ConfigTemplate=${EPREFIX}/usr/share/nzbget/nzbget.conf:" \
+ || die
+ # Update the daemon-specific configuration file (used by the OpenRC and
+ # systemd services)
+ sed nzbget.conf > nzbgetd.conf \
+ -e "s:^MainDir=.*:MainDir=${EPREFIX}/var/lib/nzbget:" \
+ -e "s:^LogFile=.*:LogFile=${EPREFIX}/var/log/nzbget/nzbget.log:" \
-e 's:^DaemonUsername=.*:DaemonUsername=nzbget:' \
- nzbget.conf > nzbgetd.conf || die
+ || die
}
src_configure() {
@@ -84,6 +81,12 @@ src_install() {
doins nzbget.conf
doins nzbgetd.conf
+ # The configuration file's "ConfigTemplate" option points to this, we must
+ # make sure it exists as the Web UI reads it. It is not installed by
+ # default, see the "install-conf" target in cmake/install.cmake.
+ insinto /usr/share/nzbget
+ doins nzbget.conf
+
keepdir /var/log/nzbget
newinitd "${FILESDIR}"/nzbget.initd-r1 nzbget
diff --git a/net-nntp/sabnzbd/Manifest b/net-nntp/sabnzbd/Manifest
index 12586c28bf86..11883a6fdd50 100644
--- a/net-nntp/sabnzbd/Manifest
+++ b/net-nntp/sabnzbd/Manifest
@@ -1,3 +1 @@
-DIST SABnzbd-4.2.3-src.tar.gz 5096209 BLAKE2B 60d52f89cd85d942d50310b25016a33983889ee13e380785e3510b954e82ce6c29f867e4cf21814e4a949b9f0484cf55766583234bed7e91432a3a741ac3ba3a SHA512 446985d6c5faddd90bff097a55fb2e4e588f9d5aad42215187bade57dab9b00c132d8d9116c68b8210b51d382740a97908f2b5d071cbf6b90fe9c7ecbfc65398
-DIST SABnzbd-4.3.1-src.tar.gz 5104424 BLAKE2B d37b06da3943e1ae196b139c5c9be57b7c6af6225535ef3ca95c55dd93b6a64c7a2c2f73494c173d3284e63065f5a8867057a377ccf6505de7f6a2daa8b62a5f SHA512 99584a6e66c81bea59d9c139deb8c9683804000c09feb6df10c96ec52c3d9deedd794cee3d9db845b58c27d151cc2fcd1be1b022ce256f750dc45ba8d4ecae52
DIST SABnzbd-4.3.2-src.tar.gz 5106752 BLAKE2B 0f8c934b862354158e8aa081adc9beec285e2f3b01899b6ae4e51e7b236aacf1a5dfff21a4e847add1412c620cd6da2e7c2e38173c3450443b37142332ab5659 SHA512 3b119ac4f3de55191e9ed4668b5423e680a11e12f98f0d3d82cc7e2195af316c30711372771a6ab863bcc3fdf39e79f121781341872b42cfbdec332f63ffc29a
diff --git a/net-nntp/sabnzbd/sabnzbd-4.2.3.ebuild b/net-nntp/sabnzbd/sabnzbd-4.2.3.ebuild
deleted file mode 100644
index a724182b8531..000000000000
--- a/net-nntp/sabnzbd/sabnzbd-4.2.3.ebuild
+++ /dev/null
@@ -1,171 +0,0 @@
-# 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/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.7.1[${PYTHON_USEDEP}]
- dev-python/notify2[${PYTHON_USEDEP}]
- dev-python/portend[${PYTHON_USEDEP}]
- dev-python/puremagic[${PYTHON_USEDEP}]
- ~dev-python/sabctools-8.1.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-4.5.0[${PYTHON_USEDEP}]
- <dev-python/pyfakefs-5.4.0[${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 '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 <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
-}
diff --git a/net-nntp/sabnzbd/sabnzbd-4.3.1.ebuild b/net-nntp/sabnzbd/sabnzbd-4.3.1.ebuild
deleted file mode 100644
index d5ca5cb9611a..000000000000
--- a/net-nntp/sabnzbd/sabnzbd-4.3.1.ebuild
+++ /dev/null
@@ -1,173 +0,0 @@
-# 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.7.6[${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.7.1[${PYTHON_USEDEP}]
- dev-python/notify2[${PYTHON_USEDEP}]
- dev-python/portend[${PYTHON_USEDEP}]
- dev-python/puremagic[${PYTHON_USEDEP}]
- ~dev-python/sabctools-8.1.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-4.5.0[${PYTHON_USEDEP}]
- <dev-python/pyfakefs-5.4.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 '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 <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
-}
diff --git a/net-nntp/sabnzbd/sabnzbd-4.3.2.ebuild b/net-nntp/sabnzbd/sabnzbd-4.3.2.ebuild
index f1cebec164bd..8170087d60e0 100644
--- a/net-nntp/sabnzbd/sabnzbd-4.3.2.ebuild
+++ b/net-nntp/sabnzbd/sabnzbd-4.3.2.ebuild
@@ -22,7 +22,7 @@ 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"
+KEYWORDS="amd64"
IUSE="test"
RESTRICT="!test? ( test )"
REQUIRED_USE="${PYTHON_REQUIRED_USE}"
@@ -116,6 +116,8 @@ src_test() {
'tests/test_functional_sorting.py::TestDownloadSorting'
# Bug https://bugs.gentoo.org/934331 fixed in 4.3.3.
'tests/test_sorting.py::TestSortingSorter'
+ # cryptography-43, https://bugs.gentoo.org/938453
+ 'tests/test_utils/test_cert_gen.py::TestCertGen::test_generate_key_custom[512-test_key.pem]'
)
# The test suite is prone to being broken by random plugins that happen