From 49f3a2685d492f468e92e9d7fe1a72071163c726 Mon Sep 17 00:00:00 2001 From: Mike Gilbert Date: Sun, 15 May 2022 11:08:34 -0400 Subject: net-p2p/transmission: load openssl "legacy" provider Required for RC4. Closes: https://bugs.gentoo.org/844748 Signed-off-by: Mike Gilbert --- .../files/transmission-3.00-openssl-3.patch | 37 ++++++ net-p2p/transmission/transmission-3.00-r2.ebuild | 146 +++++++++++++++++++++ 2 files changed, 183 insertions(+) create mode 100644 net-p2p/transmission/files/transmission-3.00-openssl-3.patch create mode 100644 net-p2p/transmission/transmission-3.00-r2.ebuild (limited to 'net-p2p/transmission') 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 +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 + #include + #include ++#if OPENSSL_VERSION_MAJOR >= 3 ++#include ++#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 +} -- cgit v1.2.3-65-gdbad