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: 1.3.6
-Release: 1
+Version: 2.1.1
+Release: 2
License: GPL v3
Group: X11/Applications/Networking
-Source0: http://download.deluge-torrent.org/source/%{name}-%{version}.tar.lzma
-# Source0-md5: 956e70928437223d22b4a782134fa8c3
-URL: http://deluge-torrent.org/
-BuildRequires: python-devel >= 1:2.5
-BuildRequires: python-libtorrent-rasterbar
-BuildRequires: python-setuptools
+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.311
+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: GConf2
Requires: hicolor-icon-theme
+Requires: libappindicator-gtk3
# for svg pixbuf loader
Requires: librsvg
-Requires: python-Mako
-Requires: python-TwistedCore >= 8.1
-Requires: python-TwistedCore-ssl >= 8.1
-Requires: python-TwistedWeb >= 8.1
-Requires: python-chardet
-Requires: python-dbus
-Requires: python-libtorrent-rasterbar >= 0.14.9
-Requires: python-pyOpenSSL
-Requires: python-pygame
-Requires: python-pygtk-glade >= 2:2.12
-Requires: python-pygtk-gtk >= 2:2.12
-Requires: python-pynotify
-Requires: python-pyxdg
-Requires: python-setuptools
+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
%prep
%setup -q
+%patch0 -p1
%build
-%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
-# move lang files into %{_datadir}/locale, 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}
-mv -f $RPM_BUILD_ROOT%{py_sitescriptdir}/%{name}/i18n/* $RPM_BUILD_ROOT%{_localedir}
-# clean *.py files from the package, macro doesn't catch those
-find $RPM_BUILD_ROOT%{py_sitescriptdir}/%{name} -name '*.py' -exec %{__rm} {} \;
+%py3_install --skip-build
-# not supported in glibc (as for 2.14-15)
-%{__rm} -r $RPM_BUILD_ROOT%{_localedir}/{pms,lb}
+# 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 svg icon to proper place
-install -d $RPM_BUILD_ROOT%{_iconsdir}/hicolor/scalable/apps
-mv -f $RPM_BUILD_ROOT%{_iconsdir}/scalable/apps/deluge.svg $RPM_BUILD_ROOT%{_iconsdir}/hicolor/scalable/apps/
+# 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}
%files -f %{name}.lang
%defattr(644,root,root,755)
-%doc ChangeLog README
+%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
-%{_pixmapsdir}/%{name}.xpm
-%dir %{py_sitescriptdir}/%{name}
-%dir %{py_sitescriptdir}/%{name}/core
-%dir %{py_sitescriptdir}/%{name}/data
-%dir %{py_sitescriptdir}/%{name}/data/pixmaps
-%dir %{py_sitescriptdir}/%{name}/data/pixmaps/flags
-%dir %{py_sitescriptdir}/%{name}/plugins
-%dir %{py_sitescriptdir}/%{name}/ui
-%dir %{py_sitescriptdir}/%{name}/ui/console
-%dir %{py_sitescriptdir}/%{name}/ui/console/commands
-%dir %{py_sitescriptdir}/%{name}/ui/gtkui
-%dir %{py_sitescriptdir}/%{name}/ui/gtkui/glade
-%dir %{py_sitescriptdir}/%{name}/ui/web
-%{py_sitescriptdir}/%{name}/*.py[co]
-%{py_sitescriptdir}/%{name}/core/*.py[co]
-%{py_sitescriptdir}/%{name}/data/pixmaps/*.gif
-%{py_sitescriptdir}/%{name}/data/pixmaps/*.ico
-%{py_sitescriptdir}/%{name}/data/pixmaps/*.png
-%{py_sitescriptdir}/%{name}/data/pixmaps/*.svg
-%{py_sitescriptdir}/%{name}/data/pixmaps/flags/*.png
-%{py_sitescriptdir}/%{name}/plugins/*.py[co]
-%{py_sitescriptdir}/%{name}/plugins/*.egg
-%{py_sitescriptdir}/%{name}/ui/*.py[co]
-%{py_sitescriptdir}/%{name}/ui/console/*.py[co]
-%{py_sitescriptdir}/%{name}/ui/console/commands/*.py[co]
-%{py_sitescriptdir}/%{name}/ui/gtkui/*.py[co]
-%{py_sitescriptdir}/%{name}/ui/gtkui/glade/*.glade
-%{py_sitescriptdir}/%{name}/ui/web/*.js
-%{py_sitescriptdir}/%{name}/ui/web/*.py[co]
-%{py_sitescriptdir}/%{name}/ui/web/css
-%{py_sitescriptdir}/%{name}/ui/web/icons
-%{py_sitescriptdir}/%{name}/ui/web/images
-%{py_sitescriptdir}/%{name}/ui/web/index.html
-%{py_sitescriptdir}/%{name}/ui/web/js
-%{py_sitescriptdir}/%{name}/ui/web/render
-%{py_sitescriptdir}/%{name}/ui/web/themes
-%{py_sitescriptdir}/%{name}-*-py*.egg-info
+%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
-%{_iconsdir}/hicolor/16x16/apps/deluge.png
-%{_iconsdir}/hicolor/22x22/apps/deluge.png
-%{_iconsdir}/hicolor/24x24/apps/deluge.png
-%{_iconsdir}/hicolor/32x32/apps/deluge.png
-%{_iconsdir}/hicolor/36x36/apps/deluge.png
-%{_iconsdir}/hicolor/48x48/apps/deluge.png
-%{_iconsdir}/hicolor/64x64/apps/deluge.png
-%{_iconsdir}/hicolor/72x72/apps/deluge.png
-%{_iconsdir}/hicolor/96x96/apps/deluge.png
-%{_iconsdir}/hicolor/128x128/apps/deluge.png
-%{_iconsdir}/hicolor/192x192/apps/deluge.png
-%{_iconsdir}/hicolor/256x256/apps/deluge.png
+%{_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*