[packages/transmission] up to 4.0.0

atler atler at pld-linux.org
Wed Feb 8 21:57:54 CET 2023


commit 058ef471d8815b4f7863dfe8f36f0aa2f320a922
Author: Jan Palus <atler at pld-linux.org>
Date:   Wed Feb 8 21:52:38 2023 +0100

    up to 4.0.0
    
    - disable werror within shipped libutp and prevent use of (future)
      system libutp (transmission requires its own customized libutp)
      see https://github.com/transmission/transmission/issues/4748
    - ENABLE_WEB disabled since it does not do what it seems to do
      see https://github.com/transmission/transmission/issues/4755

 openssl3.patch    |  23 --------
 transmission.spec | 165 +++++++++++++++++++++++++++++++-----------------------
 werror.patch      |  11 ++++
 3 files changed, 107 insertions(+), 92 deletions(-)
---
diff --git a/transmission.spec b/transmission.spec
index 22d20bb..5471fa0 100644
--- a/transmission.spec
+++ b/transmission.spec
@@ -1,64 +1,79 @@
 #
 # Conditional build:
 %bcond_without	gtk		# without GTK GUI
+%bcond_with	gtk4		# use GTK4 for GTK GUI
 %bcond_without	qt		# without Qt GUI
+%bcond_with	qt6		# use Qt6 for Qt GUI
 %bcond_without	systemd		# without systemd unit
 
-%define		qtver	5.2
+%define		qtver	5.6
 
 Summary:	A versatile and multi-platform BitTorrent client
 Summary(hu.UTF-8):	Egy sokoldalú és multiplatformos BitTorrent kliens
 Summary(pl.UTF-8):	Wszechstronny i wieloplatformowy klient BitTorrenta
 Name:		transmission
-Version:	3.00
-Release:	4
+Version:	4.0.0
+Release:	1
 License:	MIT
 Group:		Applications/Communications
-Source0:	https://github.com/transmission/transmission-releases/raw/master/%{name}-%{version}.tar.xz
-# Source0-md5:	a23a32672b83c89b9b61e90408f53d98
+Source0:	https://github.com/transmission/transmission/releases/download/%{version}/%{name}-%{version}.tar.xz
+# Source0-md5:	d73915000cf2871404b45a64969cea83
 Source1:	%{name}.sysconfig
 Source2:	%{name}.init
-Patch1:		openssl3.patch
+Patch0:		werror.patch
 URL:		http://transmissionbt.com/
-BuildRequires:	autoconf
-BuildRequires:	automake >= 1:1.9
-BuildRequires:	curl-devel >= 7.16.3
+BuildRequires:	cmake >= 3.12
+BuildRequires:	curl-devel >= 7.28.0
 BuildRequires:	gettext-tools
 %if %{with gtk}
-BuildRequires:	glib2-devel >= 1:2.32.0
-BuildRequires:	gtk+3-devel >= 3.4.0
+%if %{with gtk4}
+BuildRequires:	glibmm2.68-devel >= 2.60.0
+BuildRequires:	gtkmm4-devel >= 3.24.0
+%else
+BuildRequires:	glibmm-devel >= 2.60.0
+BuildRequires:	gtkmm3-devel >= 3.24.0
+BuildRequires:	libayatana-appindicator-gtk3-devel
 %endif
-BuildRequires:	intltool >= 0.35.5
-BuildRequires:	libevent-devel >= 2.0.10
+%endif
+BuildRequires:	libb64-devel
+BuildRequires:	libdeflate-devel >= 1.10
+BuildRequires:	libevent-devel >= 2.1.0
 BuildRequires:	libnatpmp-devel
-BuildRequires:	libstdc++-devel
-BuildRequires:	libtool
+BuildRequires:	libpsl-devel >= 0.21.1
+BuildRequires:	libstdc++-devel >= 6:5
 BuildRequires:	lsb-release
 BuildRequires:	miniupnpc-devel >= 1.7
 BuildRequires:	openssl-devel >= 0.9.7
 BuildRequires:	pkgconfig
 BuildRequires:	rpm-build >= 4.6
-BuildRequires:	rpmbuild(macros) >= 1.357
-BuildRequires:	systemd-devel
+BuildRequires:	rpmbuild(macros) >= 1.742
+%{?with_systemd:BuildRequires:	systemd-devel}
 BuildRequires:	tar >= 1:1.22
-BuildRequires:	util-linux
-BuildRequires:	which
 BuildRequires:	xfsprogs-devel
 BuildRequires:	xz
-BuildRequires:	zlib-devel >= 1.2.3
 %if %{with qt}
+%if %{with qt6}
+BuildRequires:	Qt6Core-devel >= %{qtver}
+BuildRequires:	Qt6DBus-devel >= %{qtver}
+BuildRequires:	Qt6Gui-devel >= %{qtver}
+BuildRequires:	Qt6Network-devel >= %{qtver}
+BuildRequires:	Qt6Svg-devel >= %{qtver}
+BuildRequires:	Qt6Widgets-devel >= %{qtver}
+BuildRequires:	qt6-build >= %{qtver}
+BuildRequires:	qt6-linguist >= %{qtver}
+%else
 BuildRequires:	Qt5Core-devel >= %{qtver}
 BuildRequires:	Qt5DBus-devel >= %{qtver}
 BuildRequires:	Qt5Gui-devel >= %{qtver}
 BuildRequires:	Qt5Network-devel >= %{qtver}
+BuildRequires:	Qt5Svg-devel >= %{qtver}
 BuildRequires:	Qt5Widgets-devel >= %{qtver}
 BuildRequires:	qt5-build >= %{qtver}
-BuildRequires:	qt5-qmake >= %{qtver}
+BuildRequires:	qt5-linguist >= %{qtver}
+%endif
 %endif
 BuildRoot:	%{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 
-%define		_appdir		%{_datadir}/%{name}/web
-
 %description
 Transmission has been built from the ground up to be a lightweight,
 yet powerful BitTorrent client. Its simple, intuitive interface is
@@ -84,11 +99,12 @@ Summary:	Command line implementation for BitTorrent client
 Summary(pl.UTF-8):	Implementacja w wierszu poleceń dla klienta BitTorrenta
 Group:		Applications/Networking
 Requires:	%{name}-common = %{version}-%{release}
-Requires:	curl-libs >= 7.16.3
-Requires:	libevent >= 2.0.10
+Requires:	curl-libs >= 7.28.0
+Requires:	libdeflate >= 1.10
+Requires:	libevent >= 2.1.0
+Requires:	libpsl >= 0.21.1
 Requires:	miniupnpc >= 1.7
 Requires:	openssl >= 0.9.7
-Requires:	zlib >= 1.2.3
 
 %description cli
 Transmission has been built from the ground up to be a lightweight,
@@ -131,12 +147,13 @@ Summary:	Daemon package for BitTorrent client
 Summary(pl.UTF-8):	Pakiet demona dla klienta BitTorrenta
 Group:		Networking/Daemons
 Requires:	%{name}-common = %{version}-%{release}
-Requires:	curl-libs >= 7.16.3
-Requires:	libevent >= 2.0.10
+Requires:	curl-libs >= 7.28.0
+Requires:	libdeflate >= 1.10
+Requires:	libevent >= 2.1.0
+Requires:	libpsl >= 0.21.1
 Requires:	miniupnpc >= 1.7
 Requires:	openssl >= 0.9.7
 %{?with_systemd:Requires:	systemd-units >= 38}
-Requires:	zlib >= 1.2.3
 Provides:	group(transmission)
 Provides:	user(transmission)
 Obsoletes:	Transmission <= 1.05
@@ -174,14 +191,20 @@ Group:		X11/Applications/Networking
 Requires(post,postun):	gtk-update-icon-cache
 Requires(post,postun):	hicolor-icon-theme
 Requires:	%{name}-common = %{version}-%{release}
-Requires:	curl-libs >= 7.16.3
-Requires:	glib2 >= 1:2.32.0
-Requires:	gtk+3 >= 3.4.0
+Requires:	curl-libs >= 7.28.0
+%if %{with gtk4}
+Requires:	glibmm2.68 >= 2.60.0
+Requires:	gtkmm4 >= 3.24.0
+%else
+Requires:	glibmm >= 2.60.0
+Requires:	gtkmm3 >= 3.24.0
+%endif
 Requires:	libcanberra-gtk3
-Requires:	libevent >= 2.0.10
+Requires:	libdeflate >= 1.10
+Requires:	libevent >= 2.1.0
+Requires:	libpsl >= 0.21.1
 Requires:	miniupnpc >= 1.7
 Requires:	openssl >= 0.9.7
-Requires:	zlib >= 1.2.3
 
 %description gui
 Transmission has been built from the ground up to be a lightweight,
@@ -208,17 +231,28 @@ Summary:	A GUI to Transmission based on Qt 5
 Summary(pl.UTF-8):	Graficzny interfejs do Transmission oparty na Qt 5
 Group:		X11/Applications/Networking
 Requires:	%{name}-common = %{version}-%{release}
+%if %{with qt6}
+Requires:	Qt6Core >= %{qtver}
+Requires:	Qt6DBus >= %{qtver}
+Requires:	Qt6Gui >= %{qtver}
+Requires:	Qt6Network >= %{qtver}
+Requires:	Qt6Svg >= %{qtver}
+Requires:	Qt6Widgets >= %{qtver}
+%else
 Requires:	Qt5Core >= %{qtver}
 Requires:	Qt5DBus >= %{qtver}
 Requires:	Qt5Gui >= %{qtver}
 Requires:	Qt5Network >= %{qtver}
+Requires:	Qt5Svg >= %{qtver}
 Requires:	Qt5Widgets >= %{qtver}
-Requires:	curl-libs >= 7.16.3
+%endif
+Requires:	curl-libs >= 7.28.0
 Requires:	libcanberra-gtk3
-Requires:	libevent >= 2.0.10
+Requires:	libdeflate >= 1.10
+Requires:	libevent >= 2.1.0
+Requires:	libpsl >= 0.21.1
 Requires:	miniupnpc >= 1.7
 Requires:	openssl >= 0.9.7
-Requires:	zlib >= 1.2.3
 
 %description gui-qt
 A GUI to Transmission based on Qt 5.
@@ -239,24 +273,22 @@ Narzędzia dla klienta BitTorrenta Transmission.
 
 %prep
 %setup -q
-%patch1 -p1
-
-%{__sed} -i 's/\(^CONFIG.*\)\( debug\)/\1/' qt/qtr.pro
+%patch0 -p1
 
 %build
-%configure \
-	%{__with_without gtk} \
-	--disable-silent-rules \
-	--enable-cli \
-	--enable-external-natpmp
-%{__make}
+install -d build
+cd build
+%cmake .. \
+	-DENABLE_CLI:BOOL=ON \
+	-DENABLE_WEB:BOOL=OFF \
+	%{cmake_on_off gtk ENABLE_GTK} \
+	-DUSE_GTK_VERSION=%{?with_gtk4:4}%{!?with_gtk4:3} \
+	%{cmake_on_off qt ENABLE_QT} \
+	-DUSE_QT_VERSION=%{?with_qt6:6}%{!?with_qt6:5} \
+	%{cmake_on_off systemd ENABLE_SYSTEMD} \
+	-DUSE_SYSTEM_UTP:BOOL=OFF
 
-%if %{with qt}
-cd qt
-qmake-qt5
 %{__make}
-cd -
-%endif
 
 %install
 rm -rf $RPM_BUILD_ROOT
@@ -265,7 +297,7 @@ install -d $RPM_BUILD_ROOT/etc/{sysconfig,rc.d/init.d} \
 	$RPM_BUILD_ROOT/var/lib/%{name} \
 	%{?with_systemd:$RPM_BUILD_ROOT%{systemdunitdir}}
 
-%{__make} install \
+%{__make} -C build install \
 	DESTDIR=$RPM_BUILD_ROOT
 
 install %{SOURCE1} $RPM_BUILD_ROOT/etc/sysconfig/%{name}
@@ -275,19 +307,18 @@ install %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/%{name}
 cp -p daemon/transmission-daemon.service $RPM_BUILD_ROOT%{systemdunitdir}
 %endif
 
-%if %{with qt}
-install qt/transmission-qt $RPM_BUILD_ROOT%{_bindir}
-install qt/transmission-qt.desktop $RPM_BUILD_ROOT%{_desktopdir}
-install gtk/transmission.png $RPM_BUILD_ROOT%{_pixmapsdir}/transmission-qt.png
-%endif
 %if %{with gtk}
 %{__rm} -r $RPM_BUILD_ROOT%{_localedir}/{ceb,jbo}
 
 %find_lang %{name} --all-name --with-gnome
 %endif
 
+%if %{with qt}
+%find_lang %{name} --with-qm -o %{name}-qt.lang
+%endif
+
 # copy of GPLv2 not needed
-%{__rm} $RPM_BUILD_ROOT%{_appdir}/LICENSE
+%{__rm} $RPM_BUILD_ROOT%{_datadir}/%{name}/public_html/transmission-app.js.LICENSE.txt
 
 %clean
 rm -rf $RPM_BUILD_ROOT
@@ -335,13 +366,9 @@ fi
 
 %files common
 %defattr(644,root,root,755)
-%doc AUTHORS NEWS.md README.md
+%doc AUTHORS README.md
 %dir %{_datadir}/%{name}
-%dir %{_appdir}
-%{_appdir}/images
-%{_appdir}/javascript
-%{_appdir}/style
-%{_appdir}/index.html
+%{_datadir}/%{name}/public_html
 
 %files daemon
 %defattr(644,root,root,755)
@@ -359,18 +386,18 @@ fi
 %attr(755,root,root) %{_bindir}/transmission-gtk
 %{_mandir}/man1/transmission-gtk.1*
 %{_desktopdir}/transmission-gtk.desktop
-%{_pixmapsdir}/transmission.png
-%{_iconsdir}/hicolor/*/apps/transmission.svg
+%{_iconsdir}/hicolor/scalable/apps/transmission.svg
+%{_iconsdir}/hicolor/scalable/apps/transmission-devel.svg
 %{_iconsdir}/hicolor/symbolic/apps/transmission-symbolic.svg
-%{_datadir}/appdata/transmission-gtk.appdata.xml
+%{_datadir}/metainfo/transmission-gtk.metainfo.xml
 %endif
 
 %if %{with qt}
-%files gui-qt
+%files gui-qt -f %{name}-qt.lang
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_bindir}/transmission-qt
 %{_desktopdir}/transmission-qt.desktop
-%{_pixmapsdir}/transmission-qt.png
+%{_mandir}/man1/transmission-qt.1*
 %endif
 
 %files utils
diff --git a/openssl3.patch b/openssl3.patch
deleted file mode 100644
index 9aa763a..0000000
--- a/openssl3.patch
+++ /dev/null
@@ -1,23 +0,0 @@
---- transmission-3.00/libtransmission/crypto-utils-openssl.c.orig	2020-05-22 13:04:23.386804824 +0200
-+++ transmission-3.00/libtransmission/crypto-utils-openssl.c	2021-10-16 18:32:47.294590906 +0200
-@@ -17,6 +17,9 @@
- #include <openssl/err.h>
- #include <openssl/evp.h>
- #include <openssl/opensslv.h>
-+#if defined(OPENSSL_VERSION_MAJOR) && (OPENSSL_VERSION_MAJOR >= 3)
-+#include <openssl/provider.h>
-+#endif
- #include <openssl/rand.h>
- #include <openssl/ssl.h>
- #include <openssl/x509.h>
-@@ -184,6 +187,10 @@
- 
- tr_rc4_ctx_t tr_rc4_new(void)
- {
-+#if defined(OPENSSL_VERSION_MAJOR) && (OPENSSL_VERSION_MAJOR >= 3)
-+    if (OSSL_PROVIDER_load(NULL, "legacy") == NULL)
-+        return NULL;
-+#endif
-     EVP_CIPHER_CTX* handle = EVP_CIPHER_CTX_new();
- 
-     if (check_result(EVP_CipherInit_ex(handle, EVP_rc4(), NULL, NULL, NULL, -1)))
diff --git a/werror.patch b/werror.patch
new file mode 100644
index 0000000..4cb6cc5
--- /dev/null
+++ b/werror.patch
@@ -0,0 +1,11 @@
+--- transmission-4.0.0/third-party/libutp/CMakeLists.txt.orig	2023-01-20 01:46:17.000000000 +0100
++++ transmission-4.0.0/third-party/libutp/CMakeLists.txt	2023-02-08 18:45:55.523601765 +0100
+@@ -7,7 +7,7 @@
+ endif()
+ 
+ option(LIBUTP_ENABLE_INSTALL "${PROJECT_NAME}: Enable install" ${LIBUTP_STANDALONE_BUILD})
+-option(LIBUTP_ENABLE_WERROR "${PROJECT_NAME}: Treat warnings as errors" ${LIBUTP_STANDALONE_BUILD})
++option(LIBUTP_ENABLE_WERROR "${PROJECT_NAME}: Treat warnings as errors" OFF)
+ option(LIBUTP_BUILD_PROGRAMS "${PROJECT_NAME}: Build programs" ${LIBUTP_STANDALONE_BUILD})
+ 
+ if(LIBUTP_ENABLE_INSTALL)
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/transmission.git/commitdiff/058ef471d8815b4f7863dfe8f36f0aa2f320a922



More information about the pld-cvs-commit mailing list