Summary: A Python BitTorrent client with support for UPnP and DHT
Summary(pl.UTF-8): Klient BitTorrenta napisany w Pythonie ze wspraciem dla UPnP i DHT
Name: deluge
-Version: 0.5.3
-Release: 1
-License: GPL
+Version: 2.1.1
+Release: 2
+License: GPL v3
Group: X11/Applications/Networking
-Source0: http://download.deluge-torrent.org/stable/%{name}-%{version}.tar.gz
-# Source0-md5: 9e7b36bb946c5a1ddae0ffa9944a17e3
-#Source1: %{name}-fixed-setup.py
-Patch0: %{name}-pld.patch
-URL: http://deluge-torrent.org/
-BuildRequires: boost-program_options-devel
-BuildRequires: boost-regex-devel
-BuildRequires: desktop-file-utils
-BuildRequires: libtool
-BuildRequires: python-devel >= 1:2.5
-BuildRequires: rb_libtorrent-devel
+Source0: https://ftp.osuosl.org/pub/deluge/source/2.1/%{name}-%{version}.tar.xz
+# Source0-md5: 2f132a55217fd250967678c9a555bad5
+Patch0: %{name}-no-wheel.patch
+URL: https://deluge-torrent.org/
+BuildRequires: closure-compiler
+BuildRequires: intltool
+BuildRequires: python3 >= 1:3.6
+BuildRequires: python3-setuptools
BuildRequires: rpm-pythonprov
+BuildRequires: rpmbuild(macros) >= 1.710
+BuildRequires: tar >= 1:1.22
+BuildRequires: xz
+Requires(post,postun): gtk-update-icon-cache
+Requires(post,postun): hicolor-icon-theme
Requires: /bin/sh
-Requires: python-dbus
-Requires: python-pygtk-glade
-Requires: python-pyxdg
-Requires: rb_libtorrent
+Requires: GConf2
+Requires: hicolor-icon-theme
+Requires: libappindicator-gtk3
+# for svg pixbuf loader
+Requires: librsvg
+Requires: python3-Mako
+Requires: python3-pyasn1
+Requires: python3-twisted >= 17.1
+Requires: python3-chardet
+Requires: python3-dbus
+Requires: python3-distro
+Requires: python3-libtorrent-rasterbar >= 1.2.0
+Requires: python3-ifaddr
+Requires: python3-pillow
+Requires: python3-pyOpenSSL
+Requires: python3-pycairo
+Requires: python3-pygobject3
+Requires: python3-pyxdg
+Requires: python3-service_identity
+Requires: python3-setproctitle
+Requires: python3-setuptools
+Requires: python3-zope.interface
+Requires: xdg-utils
+Suggests: GeoIP-db-Country
+Suggests: libnotify
+Suggests: python3-pygame
+BuildArch: noarch
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%description
%patch0 -p1
%build
-## We forcibly don't store the installation directory during the build, so
-## we need to ensure that it is properly inserted into the code as required.
-%{__sed} -i -e "s:INSTALL_PREFIX = '@datadir@':INSTALL_PREFIX = '%{_usr}':" \
- src/common.py
-%ifarch %{x8664} ppc64 sparc64
- CFLAGS="%{rpmcflags} -DAMD64" %{__python} setup.py build
-%else
- CFLAGS="%{rpmcflags}" %{__python} setup.py build
-%endif
+%py3_build
%install
rm -rf $RPM_BUILD_ROOT
-%{__python} setup.py install -O1 --skip-build --root $RPM_BUILD_ROOT
-## ...then strip the unneeded shebang lines from some of the plugins...
-# this seems, wrong, we don't pkg the .py
-# and if we do chmod -x on files should not fill autodeps
-#sed -i 1d $RPM_BUILD_ROOT%{py_sitedir}/%{name}/{delugegtk.py,delugeplugins.py}
+%py3_install --skip-build
+
+# nap,pms not supported in glibc (as for 2.14-15)
+# iu,te,tlh,ur empty (as of deluge 2.1.1)
+%{__rm} -r $RPM_BUILD_ROOT%{py3_sitescriptdir}/%{name}/i18n/{iu,nap,pms,te,tlh,ur}
+
+# move lang files into %{_localedir}, find_lang does not work on
+# this. Looks really ugly, if you know a better way please do use it :)
+install -d $RPM_BUILD_ROOT%{_localedir}
+for f in $RPM_BUILD_ROOT%{py3_sitescriptdir}/%{name}/i18n/[a-z]* ; do
+ [ -d "$f" ] || continue
+ %{__mv} $f $RPM_BUILD_ROOT%{_localedir}
+ ln -sr $RPM_BUILD_ROOT%{_localedir}/$(basename $f) $RPM_BUILD_ROOT%{py3_sitescriptdir}/%{name}/i18n/
+done
%find_lang %{name}
%clean
rm -rf $RPM_BUILD_ROOT
+%post
+%update_icon_cache hicolor
+
+%postun
+%update_icon_cache hicolor
+
%files -f %{name}.lang
%defattr(644,root,root,755)
-%doc LICENSE
-%attr(755,root,root) %{_bindir}/%{name}
-%dir %{py_sitedir}/%{name}
-%{py_sitedir}/%{name}/*.py[co]
-%attr(755,root,root) %{py_sitedir}/%{name}/*.so
-%{py_sitedir}/%{name}-%{version}-py*.egg-info
+%doc CHANGELOG.md README.md
+%attr(755,root,root) %{_bindir}/deluge
+%attr(755,root,root) %{_bindir}/deluge-console
+%attr(755,root,root) %{_bindir}/deluge-gtk
+%attr(755,root,root) %{_bindir}/deluge-web
+%attr(755,root,root) %{_bindir}/deluged
+%dir %{py3_sitescriptdir}/%{name}
+%dir %{py3_sitescriptdir}/%{name}/core
+%dir %{py3_sitescriptdir}/%{name}/i18n
+%dir %{py3_sitescriptdir}/%{name}/plugins
+%dir %{py3_sitescriptdir}/%{name}/ui
+%dir %{py3_sitescriptdir}/%{name}/ui/console
+%dir %{py3_sitescriptdir}/%{name}/ui/console/cmdline
+%dir %{py3_sitescriptdir}/%{name}/ui/console/cmdline/commands
+%dir %{py3_sitescriptdir}/%{name}/ui/console/modes
+%dir %{py3_sitescriptdir}/%{name}/ui/console/modes/preferences
+%dir %{py3_sitescriptdir}/%{name}/ui/console/modes/torrentlist
+%dir %{py3_sitescriptdir}/%{name}/ui/console/utils
+%dir %{py3_sitescriptdir}/%{name}/ui/console/widgets
+%dir %{py3_sitescriptdir}/%{name}/ui/data
+%dir %{py3_sitescriptdir}/%{name}/ui/data/pixmaps
+%dir %{py3_sitescriptdir}/%{name}/ui/data/pixmaps/flags
+%dir %{py3_sitescriptdir}/%{name}/ui/gtk3
+%dir %{py3_sitescriptdir}/%{name}/ui/gtk3/glade
+%dir %{py3_sitescriptdir}/%{name}/ui/web
+%{py3_sitescriptdir}/%{name}/__pycache__
+%{py3_sitescriptdir}/%{name}/*.py
+%{py3_sitescriptdir}/%{name}/core/__pycache__
+%{py3_sitescriptdir}/%{name}/core/*.py
+%{py3_sitescriptdir}/%{name}/i18n/__pycache__
+%{py3_sitescriptdir}/%{name}/i18n/*.py
+%{py3_sitescriptdir}/%{name}/i18n/[a-z][a-z]
+%{py3_sitescriptdir}/%{name}/i18n/[a-z][a-z][a-z]
+%{py3_sitescriptdir}/%{name}/i18n/[a-z][a-z]_[A-Z][A-Z]
+%{py3_sitescriptdir}/%{name}/plugins/__pycache__
+%{py3_sitescriptdir}/%{name}/plugins/*.py
+%{py3_sitescriptdir}/%{name}/plugins/*.egg
+%{py3_sitescriptdir}/%{name}/ui/__pycache__
+%{py3_sitescriptdir}/%{name}/ui/*.py
+%{py3_sitescriptdir}/%{name}/ui/console/__pycache__
+%{py3_sitescriptdir}/%{name}/ui/console/*.py
+%{py3_sitescriptdir}/%{name}/ui/console/cmdline/__pycache__
+%{py3_sitescriptdir}/%{name}/ui/console/cmdline/*.py
+%{py3_sitescriptdir}/%{name}/ui/console/cmdline/commands/__pycache__
+%{py3_sitescriptdir}/%{name}/ui/console/cmdline/commands/*.py
+%{py3_sitescriptdir}/%{name}/ui/console/modes/__pycache__
+%{py3_sitescriptdir}/%{name}/ui/console/modes/*.py
+%{py3_sitescriptdir}/%{name}/ui/console/modes/preferences/__pycache__
+%{py3_sitescriptdir}/%{name}/ui/console/modes/preferences/*.py
+%{py3_sitescriptdir}/%{name}/ui/console/modes/torrentlist/__pycache__
+%{py3_sitescriptdir}/%{name}/ui/console/modes/torrentlist/*.py
+%{py3_sitescriptdir}/%{name}/ui/console/utils/__pycache__
+%{py3_sitescriptdir}/%{name}/ui/console/utils/*.py
+%{py3_sitescriptdir}/%{name}/ui/console/widgets/__pycache__
+%{py3_sitescriptdir}/%{name}/ui/console/widgets/*.py
+%{py3_sitescriptdir}/%{name}/ui/data/pixmaps/*.gif
+%{py3_sitescriptdir}/%{name}/ui/data/pixmaps/*.ico
+%{py3_sitescriptdir}/%{name}/ui/data/pixmaps/*.png
+%{py3_sitescriptdir}/%{name}/ui/data/pixmaps/*.svg
+%{py3_sitescriptdir}/%{name}/ui/data/pixmaps/flags/*.png
+%{py3_sitescriptdir}/%{name}/ui/gtk3/__pycache__
+%{py3_sitescriptdir}/%{name}/ui/gtk3/*.py
+%{py3_sitescriptdir}/%{name}/ui/gtk3/glade/*.ui
+%{py3_sitescriptdir}/%{name}/ui/web/__pycache__
+%{py3_sitescriptdir}/%{name}/ui/web/*.py
+%{py3_sitescriptdir}/%{name}/ui/web/css
+%{py3_sitescriptdir}/%{name}/ui/web/icons
+%{py3_sitescriptdir}/%{name}/ui/web/images
+%{py3_sitescriptdir}/%{name}/ui/web/index.html
+%{py3_sitescriptdir}/%{name}/ui/web/js
+%{py3_sitescriptdir}/%{name}/ui/web/render
+%{py3_sitescriptdir}/%{name}/ui/web/themes
+%{py3_sitescriptdir}/%{name}-*-py*.egg-info
+%{_datadir}/appdata/deluge.appdata.xml
%{_desktopdir}/%{name}.desktop
%{_pixmapsdir}/%{name}.png
-%{_datadir}/%{name}
+%{_iconsdir}/hicolor/*x*/apps/deluge.png
+%{_iconsdir}/hicolor/*x*/apps/deluge-panel.png
+%{_iconsdir}/hicolor/scalable/apps/deluge.svg
+%{_mandir}/man1/deluge.1*
+%{_mandir}/man1/deluged.1*
+%{_mandir}/man1/deluge-console.1*
+%{_mandir}/man1/deluge-gtk.1*
+%{_mandir}/man1/deluge-web.1*