#
# Conditional build:
%bcond_without apidocs # build without apidocs
-%bcond_without systemd # use systemd for session tracking instead of ConsoleKit (fallback to ConsoleKit on runtime)
+%bcond_without consolekit # ConsoleKit fallback
+%bcond_with mozjs # build with mozjs as JS backend instead of duktape
+%bcond_without systemd # use systemd-login for session tracking (fallback to ConsoleKit on runtime)
+%bcond_with elogind # use elogind instead of systemd-login
+%if %{with elogind}
+%undefine with_systemd
+%endif
Summary: A framework for defining policy for system-wide components
Summary(pl.UTF-8): Szkielet do definiowania polityki dla komponentów systemowych
Name: polkit
-Version: 0.113
-Release: 3
+Version: 121
+Release: 1
License: LGPL v2+
Group: Libraries
-Source0: http://www.freedesktop.org/software/polkit/releases/%{name}-%{version}.tar.gz
-# Source0-md5: 4b77776c9e4f897dcfe03b2c34198edf
+Source0: https://www.freedesktop.org/software/polkit/releases/%{name}-%{version}.tar.gz
+# Source0-md5: 255761abdc616805a6592bb5fffae178
Patch0: systemd-fallback.patch
-Patch1: js187.patch
-URL: http://www.freedesktop.org/wiki/Software/polkit
-BuildRequires: autoconf >= 2.60
-BuildRequires: automake >= 1:1.7
+URL: https://www.freedesktop.org/wiki/Software/polkit
+BuildRequires: dbus-devel
BuildRequires: docbook-dtd412-xml
BuildRequires: docbook-style-xsl
+%{!?with_mozjs:BuildRequires: duktape-devel >= 2.2.0}
+%{?with_elogind:BuildRequires: elogind-devel}
BuildRequires: expat-devel >= 1:1.95.8
BuildRequires: gettext-tools
BuildRequires: glib2-devel >= 1:2.32.0
+%if %(locale -a | grep -q '^C\.utf8$'; echo $?)
+BuildRequires: glibc-localedb-all
+%endif
BuildRequires: gobject-introspection-devel >= 0.6.2
-%{?with_apidocs:BuildRequires: gtk-doc >= 1.3}
+BuildRequires: gtk-doc >= 1.3
BuildRequires: gtk-doc-automake >= 1.3
-BuildRequires: intltool >= 0.40.0
-BuildRequires: js187-devel
-BuildRequires: libtool
+BuildRequires: libstdc++-devel >= 6:7
BuildRequires: libxslt-progs
+BuildRequires: meson >= 0.50.0
+%{?with_mozjs:BuildRequires: mozjs91-devel}
+BuildRequires: ninja
BuildRequires: pam-devel >= 0.80
BuildRequires: pkgconfig
-BuildRequires: python-modules
-BuildRequires: rpmbuild(macros) >= 1.647
+BuildRequires: rpm-build >= 4.6
+BuildRequires: rpmbuild(macros) >= 1.736
%{?with_systemd:BuildRequires: systemd-devel}
Requires: %{name}-libs = %{version}-%{release}
-%if %{without systemd}
+%if %{without systemd} && %{without elogind}
Requires: ConsoleKit >= 0.4.1
-%else
-Requires: systemd-units >= 38
%endif
Requires: dbus >= 1.1.2-5
-Obsoletes: PolicyKit
+%{!?with_mozjs:Requires: duktape >= 2.2.0}
+%if %{with systemd}
+Requires: systemd-units >= 38
+%endif
+Obsoletes: PolicyKit < 1
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%description
Summary(pl.UTF-8): Dokumentacja API PolicyKit
Group: Documentation
Requires: gtk-doc-common
-Obsoletes: PolicyKit-apidocs
-%if "%{_rpmversion}" >= "5"
+Obsoletes: PolicyKit-apidocs < 1
BuildArch: noarch
-%endif
%description apidocs
PolicyKit API documentation.
Requires: dbus-libs >= 1.1.2-5
Requires: glib2 >= 1:2.32.0
Requires: gobject-introspection
-Obsoletes: PolicyKit-libs
+Obsoletes: PolicyKit-libs < 1
%description libs
PolicyKit libraries.
Requires: %{name}-libs = %{version}-%{release}
Requires: expat-devel >= 1:1.95.8
Requires: glib2-devel >= 1:2.32.0
-Obsoletes: PolicyKit-devel
+Obsoletes: PolicyKit-devel < 1
+Obsoletes: polkit-static < 121
%description devel
Header files for PolicyKit.
%description devel -l pl.UTF-8
Pliki nagłówkowe PolicyKit.
-%package static
-Summary: Static PolicyKit libraries
-Summary(pl.UTF-8): Statyczne biblioteki PolicyKit
-Group: Development/Libraries
-Requires: %{name}-devel = %{version}-%{release}
-Obsoletes: PolicyKit-static
-
-%description static
-Static PolicyKit libraries.
-
-%description static -l pl.UTF-8
-Statyczne biblioteki PolicyKit.
-
%prep
-%setup -q
-%{?with_systemd:%patch0 -p1}
-%patch1 -p1
+%setup -q -n %{name}-v.%{version}
+%if %{with consolekit} && (%{with systemd} || %{with elogind})
+%patch0 -p1
+%endif
%build
-%{?with_apidocs:%{__gtkdocize}}
-%{__intltoolize}
-%{__libtoolize}
-%{__aclocal}
-%{__autoconf}
-%{__autoheader}
-%{__automake}
-%configure \
- %{__enable_disable apidocs gtk-doc} \
- --disable-silent-rules \
- %{__enable_disable systemd libsystemd-login} \
- --with-html-dir=%{_gtkdocdir} \
- --with-pam-include=system-auth \
- --with-pam-module-dir=/%{_lib}/security \
- --with-polkitd-user=polkitd
-
-%{__make} -j1
+%meson build \
+ -Dgtk_doc=%{__true_false apidocs} \
+ -Dtests=false \
+ -Dsession_tracking=%{?with_systemd:libsystemd-login}%{?with_elogind:libelogind} \
+ -Dpam_include=system-auth \
+ -Dpam_module_dir=/%{_lib}/security \
+ -Dpolkitd_user=polkitd \
+ -Dexamples=true \
+ -Djs_engine=%{!?with_mozjs:duktape}%{?with_mozjs:mozjs} \
+ -Dman=true
+
+%ninja_build -C build
%install
rm -rf $RPM_BUILD_ROOT
-%{__make} install \
- DESTDIR=$RPM_BUILD_ROOT
-
-%{__rm} $RPM_BUILD_ROOT%{_libdir}/*.la
+%ninja_install -C build
%find_lang polkit-1
%files -f polkit-1.lang
%defattr(644,root,root,755)
-%doc AUTHORS NEWS README
+%doc AUTHORS NEWS.md README.md
%attr(755,root,root) %{_bindir}/pkaction
%attr(755,root,root) %{_bindir}/pkcheck
%attr(4755,root,root) %{_bindir}/pkexec
%dir %{_sysconfdir}/polkit-1
%attr(700,polkitd,root) %dir %{_sysconfdir}/polkit-1/rules.d
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/polkit-1/rules.d/50-default.rules
-/etc/dbus-1/system.d/org.freedesktop.PolicyKit1.conf
/etc/pam.d/polkit-1
%dir %{_datadir}/polkit-1
+%{_datadir}/polkit-1/policyconfig-1.dtd
%{_datadir}/polkit-1/actions
%attr(700,polkitd,root) %dir %{_datadir}/polkit-1/rules.d
%{_datadir}/dbus-1/system-services/org.freedesktop.PolicyKit1.service
+%{_datadir}/dbus-1/system.d/org.freedesktop.PolicyKit1.conf
%{?with_systemd:%{systemdunitdir}/polkit.service}
%{_mandir}/man1/pkaction.1*
%{_mandir}/man1/pkcheck.1*
%{_pkgconfigdir}/polkit-gobject-1.pc
%{_datadir}/gir-1.0/Polkit-1.0.gir
%{_datadir}/gir-1.0/PolkitAgent-1.0.gir
-
-%files static
-%defattr(644,root,root,755)
-%{_libdir}/libpolkit-agent-1.a
-%{_libdir}/libpolkit-gobject-1.a
+%{_datadir}/gettext/its/polkit.its
+%{_datadir}/gettext/its/polkit.loc