GGiteeup
4f1aa889创建于 2022年1月14日历史提交
%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