%global _hardened_build 1
Name: transmission
Version: 3.00
Release: 1
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
# 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
BuildRequires: openssl-devel >= 1.1.0
BuildRequires: glib2-devel >= 2.32.0
BuildRequires: gtk3-devel >= 3.2.0
BuildRequires: libnotify-devel >= 0.4.3
BuildRequires: libcanberra-devel
BuildRequires: libcurl-devel >= 7.16.3
BuildRequires: dbus-glib-devel >= 0.70
BuildRequires: libevent-devel >= 2.0.10
BuildRequires: desktop-file-utils
BuildRequires: gettext intltool
BuildRequires: qt5-qtbase-devel
BuildRequires: systemd-devel
BuildRequires: libnatpmp-devel >= 20150609-1
BuildRequires: libappindicator-gtk3-devel
# Default
Requires: transmission-gtk%{?_isa}
%description
Transmission is a free, lightweight BitTorrent client. It features a
simple, intuitive interface on top on an efficient, cross-platform
back-end.
%package common
Summary: Transmission common files
%description common
Common files for Transmission BitTorrent client sub-packages. It includes
the web user interface, icons and transmission-remote, transmission-create,
transmission-edit, transmission-show utilities.
%package cli
Summary: Transmission command line implementation
Requires: transmission-common%{?_isa}
%description cli
Command line version of Transmission BitTorrent client.
%package daemon
Summary: Transmission daemon
Requires: transmission-common%{?_isa}
Requires(pre): shadow-utils
Requires(post): systemd
Requires(preun): systemd
Requires(postun): systemd
BuildRequires: systemd
%description daemon
Transmission BitTorrent client daemon.
%package gtk
Summary: Transmission GTK interface
Requires: transmission-common%{?_isa}
%description gtk
GTK graphical interface of Transmission BitTorrent client.
%package qt
Summary: Transmission Qt interface
Requires: transmission-common%{?_isa}
%description qt
Qt graphical interface of Transmission BitTorrent client.
%pre daemon
getent group transmission >/dev/null || groupadd -r transmission
getent passwd transmission >/dev/null || \
useradd -r -g transmission -d %{_sharedstatedir}/transmission -s /sbin/nologin \
-c "transmission daemon account" transmission
exit 0
%prep
%autosetup -p0
# fix icon location for Transmission Qt
sed -i 's|Icon=%{name}-qt|Icon=%{name}|g' qt/%{name}-qt.desktop
# convert to UTF encoding
iconv --from=ISO-8859-1 --to=UTF-8 AUTHORS > AUTHORS.new
mv AUTHORS.new AUTHORS
%build
CXXFLAGS="%{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
%check
%make_build check
%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
# Install the symbolic icon
mkdir -p %{buildroot}%{_datadir}/icons/hicolor/symbolic/apps
cp %{SOURCE1} %{buildroot}%{_datadir}/icons/hicolor/symbolic/apps/transmission-symbolic.svg
%find_lang %{name}-gtk
desktop-file-validate %{buildroot}%{_datadir}/applications/%{name}-gtk.desktop
desktop-file-install \
--dir=%{buildroot}%{_datadir}/applications/ \
qt/%{name}-qt.desktop
# Register as an application to be visible in the software center
#
# NOTE: It would be *awesome* if this file was maintained by the upstream
# project, translated and installed into the right place during `make install`.
#
# See http://www.freedesktop.org/software/appstream/docs/ for more details.
#
mkdir -p $RPM_BUILD_ROOT%{_datadir}/appdata
cat > $RPM_BUILD_ROOT%{_datadir}/appdata/transmission-gtk.appdata.xml <<EOF
<?xml version="1.0" encoding="UTF-8"?>
<!-- Copyright 2014 Richard Hughes <richard@hughsie.com> -->
<!--
BugReportURL: https://forum.transmissionbt.com/viewtopic.php?f=3&t=16443
SentUpstream: 2014-09-18
-->
<application>
<id type="desktop">transmission-gtk.desktop</id>
<metadata_license>CC0-1.0</metadata_license>
<description>
<p>
BitTorrent is a peer-to-peer file-sharing protocol that is commonly used to
distribute large amounts of data between multiple users.
</p>
<p>
Transmission is a BitTorrent client with an easy-to-use frontend on top a
cross-platform backend.
Native frontends are available for OS X and Windows, as well as command line and
web frontends.
</p>
<p>
Notable features of Transmission include Local Peer Discovery and Full Encryption,
Full encryption, DHTµTP, PEX and Magnet Link support.
</p>
</description>
<url type="homepage">http://www.transmissionbt.com/</url>
<screenshots>
<screenshot type="default">https://raw.githubusercontent.com/hughsie/fedora-appstream/master/screenshots-extra/transmission-gtk/a.png</screenshot>
</screenshots>
<!-- FIXME: change this to an upstream email address for spec updates
<updatecontact>someone_who_cares@upstream_project.org</updatecontact>
-->
</application>
EOF
%post daemon
%systemd_post transmission-daemon.service
%preun daemon
%systemd_preun transmission-daemon.service
%postun daemon
%systemd_postun_with_restart transmission-daemon.service
%files
%files common
%license COPYING
%doc AUTHORS NEWS.md README.md
%{_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
%doc %{_mandir}/man1/transmission-remote*
%doc %{_mandir}/man1/transmission-create*
%doc %{_mandir}/man1/transmission-edit*
%doc %{_mandir}/man1/transmission-show*
%files cli
%{_bindir}/transmission-cli
%doc %{_mandir}/man1/transmission-cli*
%files daemon
%{_bindir}/transmission-daemon
%{_unitdir}/transmission-daemon.service
%attr(-,transmission, transmission)%{_sharedstatedir}/transmission/
%doc %{_mandir}/man1/transmission-daemon*
%files gtk -f %{name}-gtk.lang
%{_bindir}/transmission-gtk
%{_datadir}/appdata/%{name}-gtk.appdata.xml
%{_datadir}/applications/transmission-gtk.desktop
%doc %{_mandir}/man1/transmission-gtk.*
%files qt
%{_bindir}/transmission-qt
%{_datadir}/applications/transmission-qt.desktop
%doc %{_mandir}/man1/transmission-qt.*
%changelog
* Thu Jan 13 2022 haomimi<haomimi@uniontech.com> - 3.00-1
- package init