+# Conditional build:
+%bcond_without cinnamon # build without nemo support
+%bcond_without gnome # build without nautilus support
+%bcond_without mate # build without caja support
+%bcond_without xfce # build without Thunar support
+
Summary: Blueman - bluetooth management utility for GNOME
Name: blueman
-Version: 0.5
-Release: 1
+Version: 2.1.3
+Release: 2
License: GPL
-Group: Applications
-Source0: http://download.tuxfamily.org/blueman/%{name}_%{version}.tar.gz
-# Source0-md5: f66861ce1d3c2162dc6682c0b67b8397
-URL: http://blueman.tuxfamily.org/
-BuildRequires: bluez-libs-devel
-BuildRequires: gnome-bluetooth-devel
-BuildRequires: python-Pyrex
-BuildRequires: python-devel
-BuildRequires: python-devel >= 2.5
-BuildRequires: python-distutils-extra
+Group: X11/Applications
+Source0: https://github.com/blueman-project/blueman/releases/download/%{version}/%{name}-%{version}.tar.xz
+# Source0-md5: b341822c8362bf9619fbbc22c957b00c
+URL: https://github.com/blueman-project/blueman
+BuildRequires: autoconf
+BuildRequires: automake
+BuildRequires: bluez-libs-devel >= 5.0
+%{?with_mate:BuildRequires: caja-python-devel}
+%{?with_cinnamon:BuildRequires: cinnamon-nemo-python-devel}
+BuildRequires: gettext-tools
+BuildRequires: glib2-devel >= 2.32
+BuildRequires: gtk+3-devel >= 3.12
+BuildRequires: intltool >= 0.35.0
+BuildRequires: libtool
+%{?with_gnome:BuildRequires: nautilus-python-devel}
+BuildRequires: pkgconfig >= 0.9.0
+BuildRequires: python-Cython
+BuildRequires: python-devel >= 3.3
+BuildRequires: python-pygobject3-common-devel >= 3.27.2
BuildRequires: rpm-pythonprov
-Requires: bluez-libs >= 2.20
-Requires: bluez-utils
-Requires: gtk+2 >= 2.12
+BuildRequires: rpmbuild(macros) >= 1.527
+Requires(post,postun): gtk-update-icon-cache
+Requires(post,postun): hicolor-icon-theme
+Requires(post,preun,postun): systemd-units >= 38
+Requires: bluez-libs >= 5.0
+Requires: bluez-utils >= 5.0
+Requires: gtk+3 >= 3.12
+Requires: python >= %py_ver
+Requires: python-appindicator-gtk2
+Requires: python-bluetooth
+Requires: python-pygtk-gtk
+Suggests: pulseaudio-bluetooth
+Suggests: pulseaudio-hal
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%description
- Connect and receive connections from: audio, network, input and
serial devices
+%package caja
+Summary: Blueman plugin for Caja
+Summary(pl.UTF-8): Wtyczka Blueman-a dla managera plików Caja
+Group: X11/Applications
+Requires: %{name} = %{version}
+Requires: caja-python
+
+%description caja
+Blueman plugin for Caja.
+
+%description caja -l pl.UTF-8
+Wtyczka Blueman-a dla managera plików Caja.
+
+%package nautilus
+Summary: Blueman plugin for Nautilus
+Summary(pl.UTF-8): Wtyczka Blueman-a dla Nautilus-a
+Group: X11/Applications
+Requires: %{name} = %{version}
+Requires: nautilus-python
+
+%description nautilus
+Blueman plugin for Nautilus.
+
+%description nautilus -l pl.UTF-8
+Wtyczka Blueman-a dla Nautilus-a.
+
+%package nemo
+Summary: Blueman plugin for Nemo
+Summary(pl.UTF-8): Wtyczka Blueman-a dla managera plików Nemo.
+Group: X11/Applications
+Requires: %{name} = %{version}
+Requires: cinnamon-nemo-python
+
+%description nemo
+Blueman plugin for Nautilus.
+
+%description nemo -l pl.UTF-8
+Wtyczka Blueman-a dla managera plików Nemo.
+
+%package thunar
+Summary: Blueman plugin for Thunar
+Summary(pl.UTF-8): Wtyczka Blueman-a dla Thunar-a
+Group: X11/Applications
+Requires: %{name} = %{version}
+
+%description thunar
+Blueman plugin for Thunar.
+
+%description thunar -l pl.UTF-8
+Wtyczka Blueman-a dla Thunar-a.
+
%prep
-%setup -q -n %{name}_%{version}
+%setup -q
%build
-%{__sed} -i -e 's,lib/,%{_lib}/,g' setup.py
-%{__sed} -i -e 's,lib/,%{_lib}/,g' sys/org.blueman.Mechanism.service
-%{__python} setup.py build
+%configure \
+ NETWORKTOOLS=/sbin/ip \
+ --disable-static \
+ --disable-schemas-compile \
+ --enable-polkit \
+ %{__enable_disable mate caja-sendto} \
+ %{__enable_disable cinnamon nemo-sendto} \
+ %{__enable_disable gnome nautilus-sendto} \
+ %{__enable_disable xfce thunar-sendto} \
+ --enable-settings-integration
+
+%{__make}
%install
rm -rf $RPM_BUILD_ROOT
+%{__make} install \
+ DESTDIR=$RPM_BUILD_ROOT
+
+%{__rm} -r $RPM_BUILD_ROOT%{_docdir}/%{name}
+%{__rm} $RPM_BUILD_ROOT%{_libdir}/python3.8/site-packages/_blueman.la
-%{__python} setup.py install \
- --root=$RPM_BUILD_ROOT
+# DO NOT RUN py_postclean - breaks plugins and everything
%find_lang %{name} --with-gnome
%clean
rm -rf $RPM_BUILD_ROOT
+%post
+%update_icon_cache hicolor
+glib-compile-schemas %{_datadir}/glib-2.0/schemas
+%service %{name}-mechanism restart
+%systemd_post %{name}-mechanism.service
+
+%preun
+if [ "$1" = "0" ]; then
+ %service -q %{name}-mechanism stop
+fi
+%systemd_preun %{name}-mechanism.service
+
+%postun
+%update_icon_cache hicolor
+glib-compile-schemas %{_datadir}/glib-2.0/schemas
+%systemd_reload
+
%files -f %{name}.lang
%defattr(644,root,root,755)
-%doc README
-#%dir %{_sysconfdir}
-%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bluetooth/network.conf
-%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/dbus-1/system.d/org.blueman.Mechanism.conf
-%attr(755,root,root) %{_libdir}/%{name}
-%attr(755,root,root) %{_bindir}/*
+%doc README.md CHANGELOG.md COPYING FAQ
+%config(noreplace) %verify(not md5 mtime size) /etc/dbus-1/system.d/org.blueman.Mechanism.conf
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/xdg/autostart/blueman.desktop
+%attr(755,root,root) %{_bindir}/blueman-adapters
+%attr(755,root,root) %{_bindir}/blueman-applet
+%attr(755,root,root) %{_bindir}/blueman-assistant
+%attr(755,root,root) %{_bindir}/blueman-manager
+%attr(755,root,root) %{_bindir}/blueman-report
+%attr(755,root,root) %{_bindir}/blueman-sendto
+%attr(755,root,root) %{_bindir}/blueman-services
+%attr(755,root,root) %{_bindir}/blueman-tray
+%{_mandir}/man1/blueman-adapters.1*
+%{_mandir}/man1/blueman-applet.1*
+%{_mandir}/man1/blueman-assistant.1*
+%{_mandir}/man1/blueman-manager.1*
+%{_mandir}/man1/blueman-report.1
+%{_mandir}/man1/blueman-sendto.1*
+%{_mandir}/man1/blueman-services.1*
+%{_mandir}/man1/blueman-tray.1*
+%attr(755,root,root) %{_libexecdir}/%{name}-mechanism
+%attr(755,root,root) %{_libexecdir}/%{name}-rfcomm-watcher
%{_datadir}/%{name}
%{_datadir}/dbus-1/system-services/org.blueman.Mechanism.service
-%{_iconsdir}/hicolor/scalable/apps/*.svg
-%{_iconsdir}/hicolor/*/apps/*.png
-%{_datadir}/PolicyKit/policy/org.blueman.policy
-%{_desktopdir}/blueman.desktop
-%{py_sitedir}/%{name}
-%{py_sitedir}/%{name}-%{version}-py*.egg-info
+%{_desktopdir}/blueman-manager.desktop
+%{_desktopdir}/blueman-adapters.desktop
+%{_iconsdir}/hicolor/scalable/*/*.svg
+%{_iconsdir}/hicolor/*/*/*.png
+%dir %{_pixmapsdir}/blueman
+%{_pixmapsdir}/blueman/blueman-*.png
+%{_datadir}/glib-2.0/schemas/org.blueman.gschema.xml
+%{systemdunitdir}/blueman-mechanism.service
+%{systemduserunitdir}/blueman-applet.service
+%{_datadir}/dbus-1/services/org.blueman.Applet.service
+%{_datadir}/polkit-1/actions/org.blueman.policy
+%{_datadir}/polkit-1/rules.d/blueman.rules
+%attr(755,root,root) %{_libdir}/python3.8/site-packages/_blueman.so
+%{_libdir}/python3.8/site-packages/%{name}
+
+%if %{with mate}
+%files caja
+%defattr(644,root,root,755)
+%{_datadir}/caja-python/extensions/caja_blueman_sendto.py
+%endif
+
+%if %{with gnome}
+%files nautilus
+%defattr(644,root,root,755)
+%{_datadir}/nautilus-python/extensions/nautilus_blueman_sendto.py
+%endif
+
+%if %{with cinnamon}
+%files nemo
+%defattr(644,root,root,755)
+%{_datadir}/nemo-python/extensions/nemo_blueman_sendto.py
+%endif
+
+%if %{with xfce}
+%files thunar
+%defattr(644,root,root,755)
+%{_datadir}/Thunar/sendto/thunar-sendto-blueman.desktop
+%endif