summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLouis Sautier <sbraz@gentoo.org>2022-08-24 12:35:25 +0200
committerLouis Sautier <sbraz@gentoo.org>2022-08-24 12:39:32 +0200
commitc1be114570a325d593fcc30c72e197e7fa015c52 (patch)
tree3885fc7b22d373fb96abc68ede7e9b3ebe3ec5b5 /net-nntp
parentnet-nntp/nzbget: drop 21.0-r2 (diff)
downloadgentoo-c1be114570a325d593fcc30c72e197e7fa015c52.tar.gz
gentoo-c1be114570a325d593fcc30c72e197e7fa015c52.tar.bz2
gentoo-c1be114570a325d593fcc30c72e197e7fa015c52.zip
net-nntp/nzbget: fix build with OpenSSL 3, bump to EAPI 8
Closes: https://bugs.gentoo.org/805896 Signed-off-by: Louis Sautier <sbraz@gentoo.org>
Diffstat (limited to 'net-nntp')
-rw-r--r--net-nntp/nzbget/files/nzbget-21.1-openssl-3.patch28
-rw-r--r--net-nntp/nzbget/nzbget-21.1-r2.ebuild118
2 files changed, 146 insertions, 0 deletions
diff --git a/net-nntp/nzbget/files/nzbget-21.1-openssl-3.patch b/net-nntp/nzbget/files/nzbget-21.1-openssl-3.patch
new file mode 100644
index 000000000000..d1d89e9260c0
--- /dev/null
+++ b/net-nntp/nzbget/files/nzbget-21.1-openssl-3.patch
@@ -0,0 +1,28 @@
+From f76e8555504e3af4cf8dd4a8c8e374b3ca025099 Mon Sep 17 00:00:00 2001
+From: Simon Chopin <simon.chopin@canonical.com>
+Date: Tue, 7 Dec 2021 13:23:21 +0100
+Subject: [PATCH] daemon:connect: don't use FIPS_mode_set with OpenSSL 3
+
+This function has been removed in OpenSSL 3, replaced by
+EVP_default_properties_enable_fips. See
+https://www.openssl.org/docs/man3.0/man7/migration_guide.html
+---
+ daemon/connect/TlsSocket.cpp | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/daemon/connect/TlsSocket.cpp b/daemon/connect/TlsSocket.cpp
+index 544bf6850..831da0dc0 100644
+--- a/daemon/connect/TlsSocket.cpp
++++ b/daemon/connect/TlsSocket.cpp
+@@ -189,7 +189,11 @@ void TlsSocket::Final()
+
+ #ifdef HAVE_OPENSSL
+ #ifndef LIBRESSL_VERSION_NUMBER
++#if OPENSSL_VERSION_NUMBER < 0x30000000L
+ FIPS_mode_set(0);
++#else
++ EVP_default_properties_enable_fips(NULL, 0);
++#endif
+ #endif
+ #ifdef NEED_CRYPTO_LOCKING
+ CRYPTO_set_locking_callback(nullptr);
diff --git a/net-nntp/nzbget/nzbget-21.1-r2.ebuild b/net-nntp/nzbget/nzbget-21.1-r2.ebuild
new file mode 100644
index 000000000000..a7d5afecaf9a
--- /dev/null
+++ b/net-nntp/nzbget/nzbget-21.1-r2.ebuild
@@ -0,0 +1,118 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools systemd
+
+MY_PV=${PV/_pre/-r}
+MY_P=${PN}-${PV/_pre/-testing-r}
+
+DESCRIPTION="A command-line based binary newsgrabber supporting .nzb files"
+HOMEPAGE="https://nzbget.net/"
+SRC_URI="https://github.com/${PN}/${PN}/releases/download/v${MY_PV}/${MY_P}-src.tar.gz -> ${P}.tar.gz"
+S=${WORKDIR}/${PN}-${PV/_pre*/-testing}
+
+LICENSE="GPL-2+"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~ppc ~x86"
+IUSE="debug gnutls ncurses +parcheck ssl test zlib"
+RESTRICT="!test? ( test )"
+
+DEPEND="
+ 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 README nzbget.conf )
+
+PATCHES=(
+ # https://bugs.gentoo.org/805896
+ # https://github.com/nzbget/nzbget/pull/793
+ "${FILESDIR}/${P}-openssl-3.patch"
+)
+
+src_prepare() {
+ default
+ eautoreconf
+
+ 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:' \
+ -e 's:^DaemonUsername=.*:DaemonUsername=nzbget:' \
+ nzbget.conf > nzbgetd.conf || die
+}
+
+src_configure() {
+ local myconf=(
+ $(use_enable debug)
+ $(use_enable ncurses curses)
+ $(use_enable parcheck)
+ $(use_enable ssl tls)
+ $(use_enable zlib gzip)
+ $(use_enable test tests)
+ --with-tlslib=$(usex gnutls GnuTLS OpenSSL)
+ )
+ econf "${myconf[@]}"
+}
+
+src_test() {
+ ./nzbget --tests || die "Tests failed"
+}
+
+src_install() {
+ default
+
+ insinto /etc
+ doins nzbget.conf
+ doins nzbgetd.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
+}