4.0.0, move to qt6.

epel9
Gwyn Ciesla 2 years ago
parent a9426412c0
commit 2df765fc14

1
.gitignore vendored

@ -26,3 +26,4 @@ transmission-2.04.tar.xz
/transmission-2.93.tar.xz
/transmission-2.94.tar.xz
/transmission-3.00.tar.xz
/transmission-4.0.0.tar.xz

@ -1,11 +0,0 @@
--- gtk/main.c~ 2020-05-22 06:04:23.000000000 -0500
+++ gtk/main.c 2020-07-02 08:50:35.087089387 -0500
@@ -675,7 +675,7 @@
/* init the application for the specified config dir */
stat(cbdata.config_dir, &sb);
- application_id = g_strdup_printf("com.transmissionbt.transmission_%lu_%lu", (unsigned long)sb.st_dev,
+ application_id = g_strdup_printf("com.transmissionbt.Transmission._%lu_%lu", (unsigned long)sb.st_dev,
(unsigned long)sb.st_ino);
app = gtk_application_new(application_id, G_APPLICATION_HANDLES_OPEN);
g_signal_connect(app, "open", G_CALLBACK(on_open), &cbdata);

@ -1,130 +0,0 @@
Description: Compatibility with OpenSSL 3
We rely on RC4 because of the torrent protocol we're implementing, but this
is no longer available in the default provider.
Author: Steve Langasek <steve.langasek@ubuntu.com>
Bug-Ubuntu: https://bugs.launchpad.net/bugs/1946215
Last-Update: 2021-12-13
Forwarded: no
Index: transmission-3.00/libtransmission/crypto-utils-openssl.c
===================================================================
--- libtransmission/crypto-utils-openssl.c
+++ libtransmission/crypto-utils-openssl.c
@@ -20,6 +20,9 @@
#include <openssl/rand.h>
#include <openssl/ssl.h>
#include <openssl/x509.h>
+#if OPENSSL_VERSION_NUMBER >= 0x30000000L
+#include <openssl/provider.h>
+#endif
#include "transmission.h"
#include "crypto-utils.h"
@@ -182,46 +185,86 @@
#endif
+typedef struct tr_rc4_ctx {
+ EVP_CIPHER_CTX *cipher_ctx;
+#if OPENSSL_VERSION_NUMBER >= 0x30000000L
+ OSSL_LIB_CTX *lib_ctx;
+#endif
+} tr_rc4_ctx;
+
tr_rc4_ctx_t tr_rc4_new(void)
{
- EVP_CIPHER_CTX* handle = EVP_CIPHER_CTX_new();
+#if OPENSSL_VERSION_NUMBER >= 0x30000000L
+ OSSL_PROVIDER *legacy_provider = NULL;
+ OSSL_PROVIDER *default_provider = NULL;
+#endif
+ const EVP_CIPHER *cipher;
- if (check_result(EVP_CipherInit_ex(handle, EVP_rc4(), NULL, NULL, NULL, -1)))
+ tr_rc4_ctx *handle = malloc(sizeof(tr_rc4_ctx));
+
+ handle->cipher_ctx = EVP_CIPHER_CTX_new();
+
+#if OPENSSL_VERSION_NUMBER >= 0x30000000L
+ handle->lib_ctx = OSSL_LIB_CTX_new();
+ TR_ASSERT(handle->lib_ctx);
+ legacy_provider = OSSL_PROVIDER_load(handle->lib_ctx, "legacy");
+ TR_ASSERT(legacy_provider);
+ default_provider = OSSL_PROVIDER_load(handle->lib_ctx, "default");
+ TR_ASSERT(default_provider);
+
+ cipher = EVP_CIPHER_fetch(handle->lib_ctx, "RC4", NULL);
+#else
+ cipher = EVP_rc4();
+#endif
+
+ if (check_result(EVP_CipherInit_ex(handle->cipher_ctx, cipher, NULL, NULL,
+ NULL, -1)))
{
return handle;
}
- EVP_CIPHER_CTX_free(handle);
+ EVP_CIPHER_CTX_free(handle->cipher_ctx);
+#if OPENSSL_VERSION_NUMBER >= 0x30000000L
+ OSSL_LIB_CTX_free(handle->lib_ctx);
+#endif
return NULL;
}
-void tr_rc4_free(tr_rc4_ctx_t handle)
+void tr_rc4_free(tr_rc4_ctx_t h)
{
- if (handle == NULL)
+ if (h == NULL)
{
return;
}
- EVP_CIPHER_CTX_free(handle);
+ tr_rc4_ctx *handle = (tr_rc4_ctx *)h;
+
+ EVP_CIPHER_CTX_free(handle->cipher_ctx);
+#if OPENSSL_VERSION_NUMBER >= 0x30000000L
+ OSSL_LIB_CTX_free(handle->lib_ctx);
+#endif
+ free(handle);
}
-void tr_rc4_set_key(tr_rc4_ctx_t handle, uint8_t const* key, size_t key_length)
+void tr_rc4_set_key(tr_rc4_ctx_t h, uint8_t const* key, size_t key_length)
{
- TR_ASSERT(handle != NULL);
+ TR_ASSERT(h != NULL);
TR_ASSERT(key != NULL);
- if (!check_result(EVP_CIPHER_CTX_set_key_length(handle, key_length)))
+ tr_rc4_ctx *handle = (tr_rc4_ctx *)h;
+ if (!check_result(EVP_CIPHER_CTX_set_key_length(handle->cipher_ctx, key_length)))
{
return;
}
- check_result(EVP_CipherInit_ex(handle, NULL, NULL, key, NULL, -1));
+ check_result(EVP_CipherInit_ex(handle->cipher_ctx, NULL, NULL, key, NULL, -1));
}
-void tr_rc4_process(tr_rc4_ctx_t handle, void const* input, void* output, size_t length)
+void tr_rc4_process(tr_rc4_ctx_t h, void const* input, void* output, size_t length)
{
- TR_ASSERT(handle != NULL);
+ TR_ASSERT(h != NULL);
+ tr_rc4_ctx *handle = (tr_rc4_ctx *)h;
if (length == 0)
{
return;
@@ -232,7 +275,7 @@
int output_length;
- check_result(EVP_CipherUpdate(handle, output, &output_length, input, length));
+ check_result(EVP_CipherUpdate(handle->cipher_ctx, output, &output_length, input, length));
}
/***

@ -1 +1 @@
SHA512 (transmission-3.00.tar.xz) = eeaf7fe46797326190008776a7fa641b6341c806b0f1684c2e7326c1284832a320440013e42a37acda9fd0ee5dca695f215d6263c8acb39188c5d9a836104a61
SHA512 (transmission-4.0.0.tar.xz) = 79945af73fe7226dddadba7cc039516f2f878e05a9cf6c6d799b636b8298e2b2fa25c4426789bd41ef4d2b00d75a3c1c115c1676b4d2a9f09a1526456dceb3f8

@ -1,29 +0,0 @@
--- libtransmission/fdlimit.c~ 2020-05-22 06:04:23.000000000 -0500
+++ libtransmission/fdlimit.c 2020-07-02 08:53:15.170954677 -0500
@@ -390,26 +390,6 @@
fileset_construct(&i->fileset, FILE_CACHE_SIZE);
session->fdInfo = i;
-#ifndef _WIN32
-
- /* set the open-file limit to the largest safe size wrt FD_SETSIZE */
- struct rlimit limit;
-
- if (getrlimit(RLIMIT_NOFILE, &limit) == 0)
- {
- int const old_limit = (int)limit.rlim_cur;
- int const new_limit = MIN(limit.rlim_max, FD_SETSIZE);
-
- if (new_limit != old_limit)
- {
- limit.rlim_cur = new_limit;
- setrlimit(RLIMIT_NOFILE, &limit);
- getrlimit(RLIMIT_NOFILE, &limit);
- tr_logAddInfo("Changed open file limit from %d to %d", old_limit, (int)limit.rlim_cur);
- }
- }
-
-#endif
}
}

@ -1,26 +1,24 @@
%global _hardened_build 1
Name: transmission
Version: 3.00
Release: 15%{?dist}
Version: 4.0.0
Release: 1%{?dist}
Summary: A lightweight GTK+ BitTorrent client
# See COPYING. This licensing situation is... special.
License: MIT and GPLv2
URL: http://www.transmissionbt.com
Source0: https://github.com/transmission/transmission-releases/raw/master/transmission-%{version}.tar.xz
Source0: https://github.com/transmission/transmission/releases/download/%{version}/transmission-%{version}.tar.xz
# https://bugzilla.redhat.com/show_bug.cgi?id=1221292
Source1: https://raw.githubusercontent.com/gnome-design-team/gnome-icons/master/apps-symbolic/Adwaita/scalable/apps/transmission-symbolic.svg
Patch1: transmission-fdlimits.patch
# Fix the DBus name to match the app name for flatpak builds
# https://github.com/transmission/transmission/pull/847
Patch2: 0001-gtk-use-com.transmissionbt.Transmission.-D-Bus-names.patch
Patch3: openssl3-compat.patch
BuildRequires: make
BuildRequires: cmake
BuildRequires: openssl-devel
BuildRequires: glib2-devel >= 2.32.0
BuildRequires: gtk3-devel >= 3.2.0
# gtk4 works on f37 but not on f38. Not sure why yet. -Gwyn
BuildRequires: gtk3-devel
BuildRequires: gtkmm3.0-devel
BuildRequires: libnotify-devel >= 0.4.3
BuildRequires: libcanberra-devel
BuildRequires: libcurl-devel >= 7.16.3
@ -28,7 +26,9 @@ BuildRequires: dbus-glib-devel >= 0.70
BuildRequires: libevent-devel >= 2.0.10
BuildRequires: desktop-file-utils
BuildRequires: gettext intltool
BuildRequires: qt5-qtbase-devel
BuildRequires: qt6-qtbase-devel
BuildRequires: qt6-qtsvg-devel
BuildRequires: qt6-qttools-devel
BuildRequires: systemd-devel
BuildRequires: libnatpmp-devel >= 20150609-1
BuildRequires: libappindicator-gtk3-devel
@ -101,25 +101,19 @@ mv AUTHORS.new AUTHORS
CXXFLAGS="%{optflags} -fPIC"
CFLAGS="%{optflags} -fPIC"
%configure --disable-static --enable-utp --enable-daemon --with-systemd-daemon \
--enable-nls --enable-cli --enable-daemon \
--enable-external-natpmp
%make_build
pushd qt
%{qmake_qt5} qtr.pro
%make_build
popd
%cmake -DENABLE_CLI=ON -DENABLE_QT=ON -DUSE_GTK_VERSION=3
%cmake_build
%check
%make_build check
%ctest
%install
mkdir -p %{buildroot}%{_unitdir}
install -m0644 daemon/transmission-daemon.service %{buildroot}%{_unitdir}/
mkdir -p %{buildroot}%{_sharedstatedir}/transmission
%make_install
%make_install INSTALL_ROOT=%{buildroot}%{_prefix} -C qt
%cmake_install
mv -f %{buildroot}/usr/share/doc/transmission %{buildroot}/usr/share/doc/transmission-common
# Install the symbolic icon
mkdir -p %{buildroot}%{_datadir}/icons/hicolor/symbolic/apps
@ -145,13 +139,12 @@ desktop-file-install \
%files common
%license COPYING
%doc AUTHORS NEWS.md README.md
%doc COPYING AUTHORS README.md news/ rpc-spec.md send-email-when-torrent-done.sh
%{_bindir}/transmission-remote
%{_bindir}/transmission-create
%{_bindir}/transmission-edit
%{_bindir}/transmission-show
%{_datadir}/transmission/
%{_datadir}/pixmaps/*
%{_datadir}/icons/hicolor/*/apps/transmission.*
%{_datadir}/icons/hicolor/symbolic/apps/transmission-symbolic.svg
%{_datadir}/icons/hicolor/scalable/apps/transmission-devel.svg
@ -172,7 +165,7 @@ desktop-file-install \
%files gtk -f %{name}-gtk.lang
%{_bindir}/transmission-gtk
%{_datadir}/appdata/transmission-gtk.appdata.xml
%{_datadir}/metainfo/transmission-gtk.metainfo.xml
%{_datadir}/applications/transmission-gtk.desktop
%doc %{_mandir}/man1/transmission-gtk.*
@ -182,6 +175,9 @@ desktop-file-install \
%doc %{_mandir}/man1/transmission-qt.*
%changelog
* Wed Feb 08 2023 Gwyn Ciesla <gwync@protonmail.com> - 4.0.0-1
- 4.0.0, moved to qt6.
* Sat Jan 21 2023 Fedora Release Engineering <releng@fedoraproject.org> - 3.00-15
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild

Loading…
Cancel
Save