diff --git a/.gitignore b/.gitignore index b6ad07d..75a6f39 100644 --- a/.gitignore +++ b/.gitignore @@ -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 diff --git a/0001-gtk-use-com.transmissionbt.Transmission.-D-Bus-names.patch b/0001-gtk-use-com.transmissionbt.Transmission.-D-Bus-names.patch deleted file mode 100644 index f54c69d..0000000 --- a/0001-gtk-use-com.transmissionbt.Transmission.-D-Bus-names.patch +++ /dev/null @@ -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); diff --git a/openssl3-compat.patch b/openssl3-compat.patch deleted file mode 100644 index 247d56e..0000000 --- a/openssl3-compat.patch +++ /dev/null @@ -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 -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 - #include - #include -+#if OPENSSL_VERSION_NUMBER >= 0x30000000L -+#include -+#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)); - } - - /*** diff --git a/sources b/sources index 55d0db4..83b59f4 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (transmission-3.00.tar.xz) = eeaf7fe46797326190008776a7fa641b6341c806b0f1684c2e7326c1284832a320440013e42a37acda9fd0ee5dca695f215d6263c8acb39188c5d9a836104a61 +SHA512 (transmission-4.0.0.tar.xz) = 79945af73fe7226dddadba7cc039516f2f878e05a9cf6c6d799b636b8298e2b2fa25c4426789bd41ef4d2b00d75a3c1c115c1676b4d2a9f09a1526456dceb3f8 diff --git a/transmission-fdlimits.patch b/transmission-fdlimits.patch deleted file mode 100644 index dead58d..0000000 --- a/transmission-fdlimits.patch +++ /dev/null @@ -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 - } - } - diff --git a/transmission.spec b/transmission.spec index 255176e..28e8b27 100644 --- a/transmission.spec +++ b/transmission.spec @@ -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: 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 - 4.0.0-1 +- 4.0.0, moved to qt6. + * Sat Jan 21 2023 Fedora Release Engineering - 3.00-15 - Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild