summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Gilbert <floppym@gentoo.org>2022-05-15 11:08:34 -0400
committerMike Gilbert <floppym@gentoo.org>2022-05-15 11:08:34 -0400
commit49f3a2685d492f468e92e9d7fe1a72071163c726 (patch)
treea63a8ad2f98d00ae2ca1a4639964214b31c25e6e /net-p2p
parentdev-lua/luasec: drop 1.0.2-r1 (diff)
downloadgentoo-49f3a2685d492f468e92e9d7fe1a72071163c726.tar.gz
gentoo-49f3a2685d492f468e92e9d7fe1a72071163c726.tar.bz2
gentoo-49f3a2685d492f468e92e9d7fe1a72071163c726.zip
net-p2p/transmission: load openssl "legacy" provider
Required for RC4. Closes: https://bugs.gentoo.org/844748 Signed-off-by: Mike Gilbert <floppym@gentoo.org>
Diffstat (limited to 'net-p2p')
-rw-r--r--net-p2p/transmission/files/transmission-3.00-openssl-3.patch37
-rw-r--r--net-p2p/transmission/transmission-3.00-r2.ebuild146
2 files changed, 183 insertions, 0 deletions
diff --git a/net-p2p/transmission/files/transmission-3.00-openssl-3.patch b/net-p2p/transmission/files/transmission-3.00-openssl-3.patch
new file mode 100644
index 000000000000..dbedcd217c94
--- /dev/null
+++ b/net-p2p/transmission/files/transmission-3.00-openssl-3.patch
@@ -0,0 +1,37 @@
+From 6ee128b95bacaff20746538dc97c2b8e2b9fcc29 Mon Sep 17 00:00:00 2001
+From: Mike Gilbert <floppym@gentoo.org>
+Date: Sun, 15 May 2022 10:54:38 -0400
+Subject: [PATCH] openssl: load "legacy" provider for RC4
+
+---
+ libtransmission/crypto-utils-openssl.c | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+diff --git a/libtransmission/crypto-utils-openssl.c b/libtransmission/crypto-utils-openssl.c
+index 45fd71913..14d680654 100644
+--- a/libtransmission/crypto-utils-openssl.c
++++ b/libtransmission/crypto-utils-openssl.c
+@@ -20,6 +20,9 @@
+ #include <openssl/rand.h>
+ #include <openssl/ssl.h>
+ #include <openssl/x509.h>
++#if OPENSSL_VERSION_MAJOR >= 3
++#include <openssl/provider.h>
++#endif
+
+ #include "transmission.h"
+ #include "crypto-utils.h"
+@@ -184,6 +187,10 @@ static void openssl_evp_cipher_context_free(EVP_CIPHER_CTX* handle)
+
+ tr_rc4_ctx_t tr_rc4_new(void)
+ {
++#if OPENSSL_VERSION_MAJOR >= 3
++ OSSL_PROVIDER_load(NULL, "legacy");
++ OSSL_PROVIDER_load(NULL, "default");
++#endif
+ EVP_CIPHER_CTX* handle = EVP_CIPHER_CTX_new();
+
+ if (check_result(EVP_CipherInit_ex(handle, EVP_rc4(), NULL, NULL, NULL, -1)))
+--
+2.35.1
+
diff --git a/net-p2p/transmission/transmission-3.00-r2.ebuild b/net-p2p/transmission/transmission-3.00-r2.ebuild
new file mode 100644
index 000000000000..6fdc118910b6
--- /dev/null
+++ b/net-p2p/transmission/transmission-3.00-r2.ebuild
@@ -0,0 +1,146 @@
+# Copyright 2006-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit cmake systemd xdg-utils
+
+if [[ ${PV} == 9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/transmission/transmission"
+else
+ SRC_URI="https://dev.gentoo.org/~floppym/dist/${P}.tar.xz"
+ KEYWORDS="~amd64 ~arm ~arm64 ~mips ~ppc ~ppc64 ~riscv ~x86 ~amd64-linux"
+fi
+
+DESCRIPTION="A fast, easy, and free BitTorrent client"
+HOMEPAGE="https://transmissionbt.com/"
+
+# web/LICENSE is always GPL-2 whereas COPYING allows either GPL-2 or GPL-3 for the rest
+# transmission in licenses/ is for mentioning OpenSSL linking exception
+# MIT is in several libtransmission/ headers
+LICENSE="|| ( GPL-2 GPL-3 Transmission-OpenSSL-exception ) GPL-2 MIT"
+SLOT="0"
+IUSE="appindicator cli gtk lightweight nls mbedtls qt5 systemd test"
+RESTRICT="!test? ( test )"
+
+ACCT_DEPEND="
+ acct-group/transmission
+ acct-user/transmission
+"
+BDEPEND="${ACCT_DEPEND}
+ virtual/pkgconfig
+ nls? (
+ gtk? (
+ sys-devel/gettext
+ )
+ qt5? (
+ dev-qt/linguist-tools:5
+ )
+ )
+"
+COMMON_DEPEND="
+ >=dev-libs/libevent-2.0.10:=
+ !mbedtls? ( dev-libs/openssl:0= )
+ mbedtls? ( net-libs/mbedtls:0= )
+ net-libs/libnatpmp
+ >=net-libs/miniupnpc-1.7:=
+ >=net-misc/curl-7.16.3[ssl]
+ sys-libs/zlib:=
+ nls? ( virtual/libintl )
+ gtk? (
+ >=dev-libs/dbus-glib-0.100
+ >=dev-libs/glib-2.32:2
+ >=x11-libs/gtk+-3.4:3
+ appindicator? ( >=dev-libs/libappindicator-0.4.30:3 )
+ )
+ qt5? (
+ dev-qt/qtcore:5
+ dev-qt/qtgui:5
+ dev-qt/qtwidgets:5
+ dev-qt/qtnetwork:5
+ dev-qt/qtdbus:5
+ )
+ systemd? ( >=sys-apps/systemd-209:= )
+"
+DEPEND="${COMMON_DEPEND}
+ nls? (
+ virtual/libintl
+ gtk? (
+ sys-devel/gettext
+ )
+ qt5? (
+ dev-qt/linguist-tools:5
+ )
+ )
+"
+RDEPEND="${COMMON_DEPEND}
+ ${ACCT_DEPEND}
+"
+
+PATCHES=(
+ "${FILESDIR}"/cmake-unused-command-line.patch
+ "${FILESDIR}"/transmission-3.00-openssl-3.patch
+)
+
+src_configure() {
+ local mycmakeargs=(
+ -DCMAKE_INSTALL_DOCDIR=share/doc/${PF}
+
+ -DENABLE_CLI=$(usex cli ON OFF)
+ -DENABLE_GTK=$(usex gtk ON OFF)
+ -DENABLE_LIGHTWEIGHT=$(usex lightweight ON OFF)
+ -DENABLE_NLS=$(usex nls ON OFF)
+ -DENABLE_QT=$(usex qt5 ON OFF)
+ -DENABLE_TESTS=$(usex test ON OFF)
+
+ -DUSE_SYSTEM_EVENT2=ON
+ -DUSE_SYSTEM_DHT=OFF
+ -DUSE_SYSTEM_MINIUPNPC=ON
+ -DUSE_SYSTEM_NATPMP=ON
+ -DUSE_SYSTEM_UTP=OFF
+ -DUSE_SYSTEM_B64=OFF
+
+ -DWITH_CRYPTO=$(usex mbedtls polarssl openssl)
+ -DWITH_INOTIFY=ON
+ -DWITH_LIBAPPINDICATOR=$(usex appindicator ON OFF)
+ -DWITH_SYSTEMD=$(usex systemd ON OFF)
+ )
+
+ cmake_src_configure
+}
+
+src_install() {
+ cmake_src_install
+
+ newinitd "${FILESDIR}"/transmission-daemon.initd.10 transmission-daemon
+ newconfd "${FILESDIR}"/transmission-daemon.confd.4 transmission-daemon
+
+ if use systemd; then
+ # Service sets Type=notify
+ systemd_dounit daemon/transmission-daemon.service
+ systemd_install_serviced "${FILESDIR}"/transmission-daemon.service.conf
+ fi
+
+ insinto /usr/lib/sysctl.d
+ doins "${FILESDIR}"/60-transmission.conf
+
+ if [[ ${EUID} == 0 ]]; then
+ diropts -o transmission -g transmission
+ fi
+ keepdir /var/lib/transmission
+}
+
+pkg_postrm() {
+ if use gtk || use qt5; then
+ xdg_desktop_database_update
+ xdg_icon_cache_update
+ fi
+}
+
+pkg_postinst() {
+ if use gtk || use qt5; then
+ xdg_desktop_database_update
+ xdg_icon_cache_update
+ fi
+}