commit:     c1be114570a325d593fcc30c72e197e7fa015c52
Author:     Louis Sautier <sbraz <AT> gentoo <DOT> org>
AuthorDate: Wed Aug 24 10:35:25 2022 +0000
Commit:     Louis Sautier <sbraz <AT> gentoo <DOT> org>
CommitDate: Wed Aug 24 10:39:32 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c1be1145

net-nntp/nzbget: fix build with OpenSSL 3, bump to EAPI 8

Closes: https://bugs.gentoo.org/805896
Signed-off-by: Louis Sautier <sbraz <AT> gentoo.org>

 net-nntp/nzbget/files/nzbget-21.1-openssl-3.patch |  28 +++++
 net-nntp/nzbget/nzbget-21.1-r2.ebuild             | 118 ++++++++++++++++++++++
 2 files changed, 146 insertions(+)

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.cho...@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
+}

Reply via email to