# TODO:
# - BASH command-not-found functionality disabled for now as it needs patched bash
# (details in bash from Fedora Rawhide)
+# - setup dnf vendor properly? (see meson command)
+# - daemon user (see meson command)
#
# Conditional build:
-%bcond_without qt # don't build packagekit-qt library
-%bcond_without doc # build without docs
-%bcond_without gir # gobject introspection, time to time broken
-%bcond_without poldek # build Poldek backend
-%bcond_without smart # build SMART backend
-%bcond_without yum # build YUM backend
-%bcond_with browser # build browser plugin (patrys says: it's flawed by concept)
-
-# default backend, configurable at runtime
-%define backend poldek
+%bcond_without apidocs # API documentation
+%bcond_without introspection # gobject introspection, time to time broken
+%bcond_without static_libs # static library
+%bcond_without python # Python binding (used by entropy and portage backends)
+%bcond_without vala # Vala binding
+# backends
+%bcond_with alpm # ALPM (Arch Linux package manager) backend
+%bcond_with apt # APT (Debian/Ubuntu) backend using C++ API
+%bcond_without dnf # DNF (Fedora/RHEL/Mageia/OpenMandriva/OpenSUSE/Rosa) backend
+%bcond_with entropy # Entropy (Sabayon) backend (Python)
+%bcond_with nix # Nix (NixOS) backend [broken as of 1.2.0-1.2.5]
+%bcond_with pisi # PiSi (Pardus) backend (Python)
+%bcond_without poldek # Poldek (PLD) backend
+%bcond_with portage # portage (Gentoo) backend (Python)
+%bcond_with slack # Slack (Slackware) backend
+%bcond_with zypp # ZYPP (openSUSE/SLE) backend
+
+%if %{without python}
+%undefine with_entropy
+%undefine with_pisi
+%undefine with_portage
+%endif
Summary: System daemon that is a D-Bus abstraction layer for package management
Summary(pl.UTF-8): Demon systemowy będący warstwą abstrakcji D-Bus do zarządzania pakietami
Name: PackageKit
-Version: 0.8.4
-Release: 1
+Version: 1.2.8
+Release: 2
License: GPL v2+
Group: Applications/System
-Source0: http://www.packagekit.org/releases/%{name}-%{version}.tar.xz
-# Source0-md5: 94ca18d084c2033f31bb920562659a95
-Patch1: %{name}-PLD.patch
-Patch2: bashism.patch
-Patch3: smart-at-fix.patch
-Patch4: %{name}-git.patch
-Patch5: %{name}-gstreamer.patch
-URL: http://www.packagekit.org/
+Source0: https://www.freedesktop.org/software/PackageKit/releases/%{name}-%{version}.tar.xz
+# Source0-md5: 78cb918f4128a57bfc8a454b60f5a3c1
+Patch0: %{name}-poldek.patch
+Patch2: %{name}-meson.patch
+Patch3: consolekit-fallback.patch
+URL: https://www.freedesktop.org/software/PackageKit/
+%{?with_dnf:BuildRequires: AppStream-devel >= 0.14.0}
+%{?with_apt:BuildRequires: AppStream-devel >= 0.16.0}
BuildRequires: NetworkManager-devel >= 0.6.5
-%if %{with qt}
-BuildRequires: QtCore-devel >= 4.4.0
-BuildRequires: QtDBus-devel >= 4.4.0
-BuildRequires: QtGui-devel >= 4.4.0
-BuildRequires: QtSql-devel >= 4.4.0
-BuildRequires: QtXml-devel >= 4.4.0
-%endif
-BuildRequires: autoconf >= 2.65
-BuildRequires: automake >= 1.11
-%{?with_qt:BuildRequires: cppunit-devel}
+# pkgconfig(libalpm) >= 13.0.0
+%{?with_alpm:BuildRequires: alpm-devel >= 6.0}
+%{?with_apt:BuildRequires: apt-devel >= 1.9.2}
+BuildRequires: bash-completion-devel >= 1:2.0
+BuildRequires: connman-devel
+%{?with_slack:BuildRequires: curl-devel}
BuildRequires: dbus-devel >= 1.2.0
BuildRequires: dbus-glib-devel >= 0.76
BuildRequires: docbook-dtd412-xml
BuildRequires: docbook-dtd42-xml
+BuildRequires: docbook-style-xsl-nons
BuildRequires: fontconfig-devel
-BuildRequires: gettext-devel
-BuildRequires: glib2-devel >= 1:2.22.0
-%{?with_gir:BuildRequires: gobject-introspection-devel}
+BuildRequires: gettext-tools
+BuildRequires: glib2-devel >= 1:2.62
+%{?with_introspection:BuildRequires: gobject-introspection-devel >= 0.9.9}
BuildRequires: gstreamer-devel >= 1.0.0
BuildRequires: gstreamer-plugins-base-devel >= 1.0.0
-BuildRequires: gtk+2-devel >= 2:2.14.0
BuildRequires: gtk+3-devel >= 3.0.0
-%{?with_doc:BuildRequires: gtk-doc >= 1.9}
-BuildRequires: intltool >= 0.35.0
+%{?with_apidocs:BuildRequires: gtk-doc >= 1.11}
BuildRequires: libarchive-devel
-BuildRequires: libtool
+%{?with_dnf:BuildRequires: libdnf-devel >= 0.43.1}
+%if %{with apt} || %{with nix}
+BuildRequires: libstdc++-devel >= 6:4.7
+%endif
+%{?with_slack:BuildRequires: libstdc++-devel >= 6:5}
BuildRequires: libxslt-progs
+%{?with_zypp:BuildRequires: libzypp-devel >= 17.31.0}
+BuildRequires: meson >= 0.50
+BuildRequires: ninja >= 1.5
+# nix-expr nix-main nix-store
+%{?with_nix:BuildRequires: nix-devel >= 2.9}
BuildRequires: pango-devel
BuildRequires: pkgconfig
-BuildRequires: pm-utils
+# just to detect which reboot modes to use (library not linked)
+#BuildRequires: plymouth-devel >= 0.9.5
%{?with_poldek:BuildRequires: poldek-devel >= 0.30-1.rc6.4}
-BuildRequires: polkit-devel >= 0.97
-BuildRequires: python-devel
-%{?with_qt:BuildRequires: qt4-build >= 4.4.0}
+BuildRequires: polkit-devel >= 0.114
+%{?with_python:BuildRequires: python3-devel >= 1:3.2}
BuildRequires: readline-devel
+BuildRequires: rpm-build >= 4.6
+%{?with_dnf:BuildRequires: rpm-devel >= 1:4.6}
BuildRequires: rpm-pythonprov
-BuildRequires: rpmbuild(macros) >= 1.311
-BuildRequires: sqlite3-devel
+BuildRequires: rpmbuild(macros) >= 1.736
+BuildRequires: sed >= 4.0
+BuildRequires: sqlite3-devel >= 3
+# or elogind >= 229.4
+BuildRequires: systemd-devel >= 1:213
BuildRequires: tar >= 1:1.22
BuildRequires: udev-glib-devel
+%{?with_vala:BuildRequires: vala >= 2:0.16}
BuildRequires: xz
-%if %{with browser}
-BuildRequires: cairo-devel
-BuildRequires: nspr-devel >= 4.8
-BuildRequires: xulrunner-devel >= 8.0
-%endif
Requires(post,postun): shared-mime-info
Requires: %{name}-backend
Requires: %{name}-libs = %{version}-%{release}
-Requires: ConsoleKit-x11
Requires: crondaemon
-Requires: polkit >= 0.92
+Requires: polkit >= 0.114
+Suggests: ConsoleKit-x11
+Obsoletes: PackageKit-backend-ports < 1.2
+Obsoletes: PackageKit-backend-smart < 1.0
+Obsoletes: PackageKit-backend-urpmi < 1.2
+Obsoletes: PackageKit-backend-yum < 1.2
Obsoletes: PackageKit-docs < 0.8.4
+Obsoletes: pm-utils-packagekit < 0.8.15
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%description
Summary: packagekit-glib library
Summary(pl.UTF-8): Biblioteka packagekit-glib
Group: Libraries
-Requires: glib2 >= 1:2.22.0
+Requires: glib2 >= 1:2.62
+Obsoletes: browser-plugin-packagekit < 1.1.0
%description libs
packagekit-glib library.
Group: Development/Libraries
Requires: %{name}-libs = %{version}-%{release}
Requires: dbus-devel >= 1.2.0
-Requires: glib2-devel >= 1:2.22.0
+Requires: glib2-devel >= 1:2.62
Requires: sqlite3-devel
%description devel
%description static -l pl.UTF-8
Statyczna biblioteka packagekit-glib.
-%package backend-poldek
-Summary: PackageKit Poldek backend
+%package -n vala-packagekit
+Summary: Vala API for PackageKit library
+Summary(pl.UTF-8): API języka Vala do biblioteki PackageKitu
+Group: Development/Libraries
+Requires: %{name}-devel = %{version}-%{release}
+Requires: vala >= 2:0.16
+BuildArch: noarch
+
+%description -n vala-packagekit
+Vala API for PackageKit library.
+
+%description -n vala-packagekit -l pl.UTF-8
+API języka Vala do biblioteki PackageKitu.
+
+%package apidocs
+Summary: PackageKit library API documentation
+Summary(pl.UTF-8): Dokumentacja API biblioteki PackageKit
+Group: Documentation
+Requires: gtk-doc-common
+BuildArch: noarch
+
+%description apidocs
+PackageKit library API documentation.
+
+%description apidocs -l pl.UTF-8
+Dokumentacja API biblioteki PackageKit.
+
+%package backend-alpm
+Summary: PackageKit ALPM backend
+Summary(pl.UTF-8): Backend PackageKit oparty na bibliotece ALPM
Group: Libraries
Requires: %{name} = %{version}-%{release}
-Requires: poldek >= 0.30-1.rc6.4
-Provides: %{name}-backend
-Conflicts: %{name} < 0.6.8-3
+Provides: %{name}-backend = %{version}-%{release}
-%description backend-poldek
-A backend for PackageKit to enable Poldek functionality.
+%description backend-alpm
+A backend for PackageKit to enable Arch Linux packages via ALPM
+library.
+
+%description backend-alpm -l pl.UTF-8
+Backend PackageKit dodający obsługę pakietów Arch Linuksa poprzez
+bibliotekę ALPM.
-%package backend-smart
-Summary: PackageKit SMART backend
+%package backend-aptcc
+Summary: PackageKit APTcc backend
+Summary(pl.UTF-8): Backend PackageKit APTcc
Group: Libraries
Requires: %{name} = %{version}-%{release}
-Requires: smart
+Requires: AppStream >= 0.12
+Requires: apt >= 1.9.2
+Provides: %{name}-backend = %{version}-%{release}
-%description backend-smart
-A backend for PackageKit to enable SMART functionality.
+%description backend-aptcc
+A backend for PackageKit to enable APT support via C++ API.
-%package backend-yum
-Summary: PackageKit YUM backend
+%description backend-aptcc -l pl.UTF-8
+Backend PackageKit dodający obsługę zarządcy pakietów APT poprzez API
+C++.
+
+%package backend-dnf
+Summary: PackageKit dnf backend
+Summary(pl.UTF-8): Backend PackageKit oparty na bibliotece dnfhif
+Group: Libraries
+Requires: %{name} = %{version}-%{release}
+Requires: libdnf >= 0.43.1
+Requires: rpm >= 1:4.6
+Provides: %{name}-backend = %{version}-%{release}
+Obsoletes: PackageKit-backend-hawkey < 1.0
+Obsoletes: PackageKit-backend-hif < 1.2
+
+%description backend-dnf
+A backend for PackageKit to enable RPM packages support via dnf
+library (used in Fedora).
+
+%description backend-dnf -l pl.UTF-8
+Backend PackageKit dodający obsługę pakietów RPM poprzez bibliotekę
+dnf (używaną w dystrybucji Fedora).
+
+%package backend-entropy
+Summary: PackageKit Entropy backend
+Summary(pl.UTF-8): Backend PackageKit Entropy
Group: Libraries
Requires: %{name} = %{version}-%{release}
-Requires: python-packagekit = %{version}-%{release}
-Requires: yum >= 3.2.19
-Provides: %{name}-backend
+Requires: python3-packagekit = %{version}-%{release}
+#Requires: python3-entropy
+Provides: %{name}-backend = %{version}-%{release}
-%description backend-yum
-A backend for PackageKit to enable yum functionality.
+%description backend-entropy
+A backend for PackageKit to enable Sabayon packages support through
+Entropy package manager.
-%package qt2
-Summary: packagekit-qt2 library
-Summary(pl.UTF-8): Biblioteka packagekit-qt2
+%description backend-entropy -l pl.UTF-8
+Backend PackageKit dodający obsługę pakietów dystrybucji Sabayon przy
+użyciu zarządcy pakietów Entropy.
+
+%package backend-nix
+Summary: PackageKit Nix backend
+Summary(pl.UTF-8): Backend PackageKit oparty na zarządcy pakietów Nix
Group: Libraries
-Obsoletes: PackageKit-qt < 0.8.4
-Obsoletes: qpackagekit < 0.4.0
+Requires: %{name} = %{version}-%{release}
+Requires: nix >= 2.9
+Provides: %{name}-backend = %{version}-%{release}
-%description qt2
-packagekit-qt2 library.
+%description backend-nix
+A backend for PackageKit to enable Nix packages support (used in
+NixOS).
-%description qt2 -l pl.UTF-8
-Biblioteka packagekit-qt2.
+%description backend-nix -l pl.UTF-8
+Backend PackageKit dodający obsługę pakietów Nix (używanych w NixOS).
-%package qt2-devel
-Summary: Header files for packagekit-qt2 library
-Summary(pl.UTF-8): Pliki nagłówkowe biblioteki packagekit-qt2
-Group: Development/Libraries
-Requires: %{name}-qt2 = %{version}-%{release}
-Requires: QtCore-devel >= 4.4.0
-Requires: QtDBus-devel >= 4.4.0
-Requires: QtGui-devel >= 4.4.0
-Requires: QtSql-devel >= 4.4.0
-Requires: QtXml-devel >= 4.4.0
-Obsoletes: PackageKit-qt-devel < 0.8.4
-Obsoletes: qpackagekit-devel < 0.4.0
-
-%description qt2-devel
-Header files for packagekit-qt2 library.
-
-%description qt2-devel -l pl.UTF-8
-Pliki nagłówkowe biblioteki packagekit-qt2.
-
-%package qt2-static
-Summary: Static packagekit-qt2 library
-Summary(pl.UTF-8): Statyczna biblioteka packagekit-qt2
-Group: Development/Libraries
-Requires: %{name}-qt2-devel = %{version}-%{release}
-Obsoletes: PackageKit-qt-static < 0.8.4
+%package backend-pisi
+Summary: PackageKit PiSi backend
+Summary(pl.UTF-8): Backend PackageKit PiSi
+Group: Libraries
+Requires: %{name} = %{version}-%{release}
+Requires: python3-packagekit = %{version}-%{release}
+#Requires: python3-piksemel
+#Requires: python3-pisi
+Provides: %{name}-backend = %{version}-%{release}
-%description qt2-static
-Static packagekit-qt2 library.
+%description backend-pisi
+A backend for PackageKit to enable PiSi packages support. PiSi
+packages are originated in Pardus distribution.
-%description qt2-static -l pl.UTF-8
-Statyczna biblioteka packagekit-qt2.
+%description backend-pisi -l pl.UTF-8
+Backend PackageKit dodający obsługę pakietów PiSi. Pakiety PiSi
+wywodzą się z dystrybucji Pardus.
-%package apidocs
-Summary: PackageKit library API documentation
-Summary(pl.UTF-8): Dokumentacja API biblioteki PackageKit
-Group: Documentation
-Requires: gtk-doc-common
+%package backend-poldek
+Summary: PackageKit Poldek backend
+Summary(pl.UTF-8): Backend PackageKit oparty na Poldku
+Group: Libraries
+Requires: %{name} = %{version}-%{release}
+Requires: poldek >= 0.30-1.rc6.4
+Provides: %{name}-backend = %{version}-%{release}
-%description apidocs
-PackageKit library API documentation.
+%description backend-poldek
+A backend for PackageKit to enable RPM packages support through Poldek
+- native PLD package manager.
-%description apidocs -l pl.UTF-8
-Dokumentacja API biblioteki PackageKit.
+%description backend-poldek -l pl.UTF-8
+Backend PackageKit dodający obsługę pakietów RPM poprzez Poldka -
+natywnego zarządcę pakietów dystrybucji PLD.
+
+%package backend-portage
+Summary: PackageKit Portage backend
+Summary(pl.UTF-8): Backend PackageKit Portage
+Group: Libraries
+Requires: %{name} = %{version}-%{release}
+Requires: python3-packagekit = %{version}-%{release}
+#Requires: python3-portage
+Provides: %{name}-backend = %{version}-%{release}
+
+%description backend-portage
+A backend for PackageKit to enable Gentoo Portage support.
+
+%description backend-portage -l pl.UTF-8
+Backend PackageKit dodający obsługę systemu Portage dystrybucji
+Gentoo.
+
+%package backend-slack
+Summary: PackageKit Slack backend
+Summary(pl.UTF-8): Backend PackageKit Slack
+Group: Libraries
+Requires: %{name} = %{version}-%{release}
+Provides: %{name}-backend = %{version}-%{release}
+Obsoletes: PackageKit-backend-katja < 1.2
+
+%description backend-slack
+Slack backend for PackageKit to enable Slackware repositories support.
+
+%description backend-slack -l pl.UTF-8
+Backend PackageKit Slack dodający obsługę repozytoriów Slackware.
+
+%package backend-zypp
+Summary: PackageKit Zypp backend
+Summary(pl.UTF-8): Backend PackageKit Zypp
+Group: Libraries
+Requires: %{name} = %{version}-%{release}
+Requires: libzypp >= 17.31.0
+Provides: %{name}-backend = %{version}-%{release}
+
+%description backend-zypp
+A backend for PackageKit to enable RPM packages support through Zypp
+library (originated in openSUSE/SLE).
+
+%description backend-zypp -l pl.UTF-8
+Backend PackageKit dodający obsługę pakietów RPM poprzez bibliotekę
+Zypp (pochodzącą z dystrybucji openSUSE/SLE).
%package gstreamer-plugin
Summary: GStreamer codecs installer
Summary(pl.UTF-8): Instalator kodeków GStreamera
Group: Applications
Requires: %{name} = %{version}-%{release}
-Requires: %{name}-gtk-module = %{version}-%{release}
+Requires: %{name}-gtk3-module = %{version}-%{release}
%description gstreamer-plugin
The PackageKit GStreamer plugin allows any GStreamer application to
Wtyczka GStreamer pozwala każdej aplikacji używającej GStreamera
zainstalować kodeki ze skonfigurowanych źródeł PackageKit.
-%package gtk-module
-Summary: GTK+ module to detect and install missing fonts
-Summary(pl.UTF-8): Moduł GTK+ do wykrywania i instalowania brakujących czcionek
-Group: X11/Libraries
-
-%description gtk-module
-The PackageKit GTK+ module allows any pango application to install
-missing fonts from configured repositories using PackageKit.
-
-%description gtk-module -l pl.UTF-8
-Moduł GTK+ pozwala każdej aplikacji używającej pango zainstalować
-brakującą czcionkę ze skonfigurowanych źródeł PackageKit.
-
%package gtk3-module
Summary: GTK+ 3.x module to detect and install missing fonts
Summary(pl.UTF-8): Moduł GTK+ 3.x do wykrywania i instalowania brakujących czcionek
Group: X11/Libraries
+Obsoletes: PackageKit-gtk-module < 1.2.0
%description gtk3-module
The PackageKit GTK+ 3.x module allows any pango application to install
brakującą czcionkę ze skonfigurowanych źródeł PackageKit.
%package -n bash-completion-packagekit
-Summary: bash-completion for PackageKit
-Summary(pl.UTF-8): bashowe uzupełnianie nazw dla PackageKit
+Summary: Bash completion for PackageKit console commands
+Summary(pl.UTF-8): Bashowe uzupełnianie parametrów dla poleceń konsolowych PackageKit
Group: Applications/Shells
-Requires: bash-completion
+Requires: %{name} = %{version}-%{release}
+Requires: bash-completion >= 1:2.0
+BuildArch: noarch
%description -n bash-completion-packagekit
-This package provides bash-completion for PackageKit.
+This package provides bash-completion for PackageKit console commands.
%description -n bash-completion-packagekit -l pl.UTF-8
-Pakiet ten dostarcza bashowe uzupełnianie nazw dla PackageKit.
-
-%package -n pm-utils-packagekit
-Summary: PackageKit script for pm-utils
-Summary(pl.UTF-8): Skrypt PackageKit dla pm-utils
-Group: Applications/System
-Requires: pm-utils
-
-%description -n pm-utils-packagekit
-PackageKit script for pm-utils.
+Pakiet ten dostarcza bashowe uzupełnianie parametrów dla poleceń
+konsolowych PackageKit.
-%description -n pm-utils-packagekit -l pl.UTF-8
-Skrypt PackageKit dla pm-utils.
-
-%package -n python-packagekit
+%package -n python3-packagekit
Summary: PackageKit Python bindings
Summary(pl.UTF-8): Wiązania PackageKit dla Pythona
Group: Development/Languages/Python
-Requires: python-dbus
-Requires: python-pygobject
+Obsoletes: python-packagekit < 1.2.7
-%description -n python-packagekit
+%description -n python3-packagekit
PackageKit Python bindings.
-%description -n python-packagekit -l pl.UTF-8
+%description -n python3-packagekit -l pl.UTF-8
Wiązania PackageKit dla Pythona.
-%package -n browser-plugin-packagekit
-Summary: PackageKit's browser plugin
-Summary(pl.UTF-8): Wtyczka PackageKit do przeglądarek WWW
-Group: X11/Libraries
-Requires: %{name} = %{version}-%{release}
-Requires: browser-plugins >= 2.0
-Requires: browser-plugins(%{_target_base_arch})
-
-%description -n browser-plugin-packagekit
-PackageKit's plugin for browsers.
-
-%description -n browser-plugin-packagekit -l pl.UTF-8
-Wtyczka PackageKit do przeglądarek WWW.
-
%prep
%setup -q
-%patch1 -p1
+%patch0 -p1
%patch2 -p1
-%patch3 -p0
-%patch4 -p1
-%patch5 -p1
+%patch3 -p1
-%build
-%if %{with doc}
-%{__gtkdocize}
+%{__sed} -i -e '1s,/usr/bin/python$,%{__python3},' backends/pisi/pisiBackend.py
+
+%if %{with static_libs}
+%{__sed} -i -e '/^packagekit_glib2_library =/ s/shared_library/library/' lib/packagekit-glib2/meson.build
%endif
-%{__intltoolize}
-%{__libtoolize}
-%{__aclocal} -I m4
-%{__autoconf}
-%{__autoheader}
-%{__automake}
-%configure \
- --disable-silent-rules \
- --disable-dummy \
- --disable-command-not-found \
- %{!?with_gir:--disable-introspection} \
- %{__enable_disable browser browser-plugin} \
- %{__enable_disable poldek} \
- %{__enable_disable smart} \
- %{__enable_disable yum} \
- %{__enable_disable dok gtk-doc}\
- %{__enable_disable qt} \
- --with-html-dir=%{_gtkdocdir} \
- --with-default-backend=%{backend} \
- --with-security-framework=polkit \
- --with-mozilla-plugin-dir=%{_browserpluginsdir}
-%{__make}
-%install
-rm -rf $RPM_BUILD_ROOT
+%build
+%meson build \
+ --python.bytecompile=2 \
+ -Dbash_command_not_found=false \
+ %{!?with_introspection:-Dgobject_introspection=false} \
+ %{?with_apidocs:-Dgtk_doc=true} \
+ -Dpackaging_backend=dummy%{?with_alpm:,alpm}%{?with_apt:,aptcc}%{?with_dnf:,dnf}%{?with_entropy:,entropy}%{?with_pisi:,pisi}%{?with_poldek:,poldek}%{?with_portage:,portage}%{?with_slack:,slack}%{?with_zypp:,zypp}%{?with_nix:,nix} \
+ %{!?with_python:-Dpython_backend=false} \
+ -Dsystemdsystemunitdir=%{systemdunitdir}
-%{__make} install \
- DESTDIR=$RPM_BUILD_ROOT
+# TODO:
+# -Ddnf_vendor=
+# -Dpackagekit_user=
-# use pk-gstreamer-install as codec installer
-ln -s pk-gstreamer-install $RPM_BUILD_ROOT%{_libdir}/gst-install-plugins-helper
+%ninja_build -C build
-install -d $RPM_BUILD_ROOT%{_libdir}/pm-utils/sleep.d
-install -p contrib/pm-utils/95packagekit $RPM_BUILD_ROOT%{_libdir}/pm-utils/sleep.d
+%install
+rm -rf $RPM_BUILD_ROOT
+install -d $RPM_BUILD_ROOT/var/cache/PackageKit/downloads
+
+%ninja_install -C build
-%{__rm} $RPM_BUILD_ROOT%{_libdir}/gtk-{2,3}.0/modules/*.{la,a}
-%{__rm} $RPM_BUILD_ROOT%{_libdir}/packagekit-backend/*.{la,a}
%{__rm} $RPM_BUILD_ROOT%{_libdir}/packagekit-backend/libpk_backend_test_*.so
-%{__rm} $RPM_BUILD_ROOT%{_libdir}/packagekit-plugins/*.{la,a}
-%{__rm} $RPM_BUILD_ROOT%{_libdir}/*.la
%{__rm} -r $RPM_BUILD_ROOT%{_datadir}/PackageKit/helpers/test_spawn
-%if %{with browser}
-%{__rm} $RPM_BUILD_ROOT%{_browserpluginsdir}/*.{la,a}
-%endif
-
-%if %{with yum}
-# yumBackend.py can't be compiled (invoked directly), other should be compiled
-%py_comp $RPM_BUILD_ROOT%{_datadir}/PackageKit/helpers/yum
-%py_ocomp $RPM_BUILD_ROOT%{_datadir}/PackageKit/helpers/yum
-%{__rm} $RPM_BUILD_ROOT%{_datadir}/PackageKit/helpers/yum/yum{Comps,Filter}.py
-%{__rm} $RPM_BUILD_ROOT%{_datadir}/PackageKit/helpers/yum/yumBackend.py[co]
-%endif
-
-# unsupported
-%{__rm} -r $RPM_BUILD_ROOT%{_localedir}/it_IT
+# use pk-gstreamer-install as codec installer
+ln -s pk-gstreamer-install $RPM_BUILD_ROOT%{_libexecdir}/gst-install-plugins-helper
-%py_postclean
+install -d $RPM_BUILD_ROOT%{systemdunitdir}/system-update.target.wants
+ln -sf ../packagekit-offline-update.service \
+ $RPM_BUILD_ROOT%{systemdunitdir}/system-update.target.wants/packagekit-offline-update.service
%find_lang %{name}
%post libs -p /sbin/ldconfig
%postun libs -p /sbin/ldconfig
-%post qt2 -p /sbin/ldconfig
-%postun qt2 -p /sbin/ldconfig
-
-%post -n browser-plugin-packagekit
-%update_browser_plugins
-
-%postun -n browser-plugin-packagekit
-if [ "$1" = 0 ]; then
- %update_browser_plugins
-fi
-
%files -f %{name}.lang
%defattr(644,root,root,755)
-%doc AUTHORS ChangeLog HACKING NEWS README TODO
-%attr(755,root,root) %{_bindir}/packagekit-bugreport.sh
+%doc AUTHORS HACKING MAINTAINERS NEWS README
%attr(755,root,root) %{_bindir}/pkcon
-%attr(755,root,root) %{_bindir}/pkgenpack
%attr(755,root,root) %{_bindir}/pkmon
-%attr(755,root,root) %{_bindir}/pk-debuginfo-install
%attr(750,root,root) /etc/cron.daily/packagekit-background.cron
+%attr(755,root,root) %{_libexecdir}/packagekit-direct
+%attr(755,root,root) %{_libexecdir}/packagekitd
+%attr(755,root,root) %{_libexecdir}/pk-offline-update
%dir %{_libdir}/packagekit-backend
-%dir %{_libdir}/packagekit-plugins
-%attr(755,root,root) %{_libdir}/packagekit-plugins/libpk_plugin-check-shared-libraries-in-use.so
-%attr(755,root,root) %{_libdir}/packagekit-plugins/libpk_plugin-clear-firmware-requests.so
-%attr(755,root,root) %{_libdir}/packagekit-plugins/libpk_plugin-clear-system-update.so
-%attr(755,root,root) %{_libdir}/packagekit-plugins/libpk_plugin-no-update-process.so
-%attr(755,root,root) %{_libdir}/packagekit-plugins/libpk_plugin-scan-desktop-files.so
-%attr(755,root,root) %{_libdir}/packagekit-plugins/libpk_plugin-systemd-updates.so
-%attr(755,root,root) %{_libdir}/packagekit-plugins/libpk_plugin-update-check-processes.so
-%attr(755,root,root) %{_libdir}/packagekit-plugins/libpk_plugin-update-package-cache.so
-%attr(755,root,root) %{_libdir}/packagekit-plugins/libpk_plugin_scripts.so
-%attr(755,root,root) %{_libdir}/packagekitd
-%attr(755,root,root) %{_libdir}/pk-clear-offline-update
-%attr(755,root,root) %{_libdir}/pk-offline-update
-%attr(755,root,root) %{_libdir}/pk-trigger-offline-update
-%attr(755,root,root) %{_sbindir}/pk-device-rebind
+%attr(755,root,root) %{_libdir}/packagekit-backend/libpk_backend_dummy.so
%dir %{_sysconfdir}/PackageKit
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/PackageKit/PackageKit.conf
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/PackageKit/Vendor.conf
-%dir %{_sysconfdir}/PackageKit/events
-%{_sysconfdir}/PackageKit/events/post-transaction.d
-%{_sysconfdir}/PackageKit/events/pre-transaction.d
%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/packagekit-background
-/etc/dbus-1/system.d/org.freedesktop.PackageKit.conf
%dir %{_datadir}/PackageKit
%dir %{_datadir}/PackageKit/helpers
%attr(755,root,root) %{_datadir}/PackageKit/pk-upgrade-distro.sh
%{_datadir}/polkit-1/actions/org.freedesktop.packagekit.policy
-%{_datadir}/dbus-1/interfaces/org.freedesktop.PackageKit.Transaction.xml
-%{_datadir}/dbus-1/interfaces/org.freedesktop.PackageKit.xml
+%{_datadir}/polkit-1/rules.d/org.freedesktop.packagekit.rules
%{_datadir}/dbus-1/system-services/org.freedesktop.PackageKit.service
-%{_datadir}/mime/packages/packagekit-catalog.xml
-%{_datadir}/mime/packages/packagekit-package-list.xml
-%{_datadir}/mime/packages/packagekit-servicepack.xml
+%{_datadir}/dbus-1/system.d/org.freedesktop.PackageKit.conf
+%{_datadir}/metainfo/org.freedesktop.packagekit.metainfo.xml
%{_mandir}/man1/pkcon.1*
-%{_mandir}/man1/pk-debuginfo-install.1*
-%{_mandir}/man1/pk-device-rebind.1*
-%{_mandir}/man1/pkgenpack.1*
%{_mandir}/man1/pkmon.1*
+%{systemdunitdir}/packagekit.service
%{systemdunitdir}/packagekit-offline-update.service
+%{systemdunitdir}/system-update.target.wants/packagekit-offline-update.service
%dir /var/cache/PackageKit
%dir /var/cache/PackageKit/downloads
%dir /var/lib/PackageKit
%files libs
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/libpackagekit-glib2.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libpackagekit-glib2.so.16
+%attr(755,root,root) %ghost %{_libdir}/libpackagekit-glib2.so.18
%{_libdir}/girepository-1.0/PackageKitGlib-1.0.typelib
-%{_libdir}/girepository-1.0/PackageKitPlugin-1.0.typelib
+# NOTE: dbus interface xmls are commonly used:
+# - at runtime by packagekitd
+# - for development of applications using PK dbus interface
+%{_datadir}/dbus-1/interfaces/org.freedesktop.PackageKit.Transaction.xml
+%{_datadir}/dbus-1/interfaces/org.freedesktop.PackageKit.xml
%files devel
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/libpackagekit-glib2.so
%{_pkgconfigdir}/packagekit-glib2.pc
-%{_pkgconfigdir}/packagekit-plugin.pc
%dir %{_includedir}/PackageKit
%{_includedir}/PackageKit/packagekit-glib2
-%{_includedir}/PackageKit/plugin
%{_datadir}/gir-1.0/PackageKitGlib-1.0.gir
-%{_datadir}/gir-1.0/PackageKitPlugin-1.0.gir
+%if %{with static_libs}
%files static
%defattr(644,root,root,755)
%{_libdir}/libpackagekit-glib2.a
+%endif
-%if %{with poldek}
-%files backend-poldek
+%if %{with vala}
+%files -n vala-packagekit
%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/packagekit-backend/libpk_backend_poldek.so
+%{_datadir}/vala/vapi/packagekit-glib2.deps
+%{_datadir}/vala/vapi/packagekit-glib2.vapi
%endif
-%if %{with smart}
-%files backend-smart
+%if %{with apidocs}
+%files apidocs
%defattr(644,root,root,755)
-%{_libdir}/packagekit-backend/libpk_backend_smart.so
-%dir %{_datadir}/PackageKit/helpers/smart
-%attr(755,root,root) %{_datadir}/PackageKit/helpers/smart/smartBackend.py
+%{_gtkdocdir}/PackageKit
%endif
-%if %{with yum}
-%files backend-yum
+%if %{with alpm}
+%files backend-alpm
%defattr(644,root,root,755)
-%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/PackageKit/Yum.conf
-%attr(755,root,root) %{_libdir}/packagekit-backend/libpk_backend_yum.so
-%dir %{_datadir}/PackageKit/helpers/yum
-%{_datadir}/PackageKit/helpers/yum/licenses.txt
-%{_datadir}/PackageKit/helpers/yum/yum-comps-groups.conf
-%attr(755,root,root) %{_datadir}/PackageKit/helpers/yum/yumBackend.py
-%{_datadir}/PackageKit/helpers/yum/yumComps.py[co]
-%{_datadir}/PackageKit/helpers/yum/yumFilter.py[co]
-
-# yum plugin
-%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/yum/pluginconf.d/refresh-packagekit.conf
-%{_prefix}/lib/yum-plugins/refresh-packagekit.py
+%attr(755,root,root) %{_libdir}/packagekit-backend/libpk_backend_alpm.so
+%dir %{_sysconfdir}/PackageKit/alpm.d
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/PackageKit/alpm.d/groups.list
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/PackageKit/alpm.d/pacman.conf
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/PackageKit/alpm.d/repos.list
+# FIXME: dirs should be owned by alpm?
+%dir %{_datadir}/libalpm
+%dir %{_datadir}/libalpm/hooks
+%{_datadir}/libalpm/hooks/90-packagekit-refresh.hook
%endif
-%if %{with qt}
-%files qt2
+%if %{with apt}
+%files backend-aptcc
%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/libpackagekit-qt2.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libpackagekit-qt2.so.4
+%attr(755,root,root) %{_libdir}/packagekit-backend/libpk_backend_aptcc.so
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/apt/apt.conf.d/20packagekit
+%dir %{_datadir}/PackageKit/helpers/aptcc
+%attr(755,root,root) %{_datadir}/PackageKit/helpers/aptcc/get-distro-upgrade.py
+%attr(755,root,root) %{_datadir}/PackageKit/helpers/aptcc/pkconffile
+%{_datadir}/PackageKit/helpers/aptcc/pkconffile.nodiff
+%endif
-%files qt2-devel
+%if %{with dnf}
+%files backend-dnf
%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/libpackagekit-qt2.so
-%{_pkgconfigdir}/packagekit-qt2.pc
-%{_includedir}/PackageKit/packagekit-qt2
-%{_libdir}/cmake/packagekit-qt2/packagekit-qt2-config-version.cmake
-%{_libdir}/cmake/packagekit-qt2/packagekit-qt2-config.cmake
+%attr(755,root,root) %{_libdir}/packagekit-backend/libpk_backend_dnf.so
+%attr(755,root,root) %{_libexecdir}/packagekit-dnf-refresh-repo
+%{py3_sitescriptdir}/dnf-plugins/notify_packagekit.py
+%{py3_sitescriptdir}/dnf-plugins/__pycache__/notify_packagekit.cpython-*.py[co]
+%endif
-%files qt2-static
+%if %{with entropy}
+%files backend-entropy
%defattr(644,root,root,755)
-%{_libdir}/libpackagekit-qt2.a
+%attr(755,root,root) %{_libdir}/packagekit-backend/libpk_backend_entropy.so
+%dir %{_datadir}/PackageKit/helpers/entropy
+%attr(755,root,root) %{_datadir}/PackageKit/helpers/entropy/entropyBackend.py
%endif
-%files apidocs
+%if %{with nix}
+%files backend-nix
%defattr(644,root,root,755)
-%{_gtkdocdir}/PackageKit
+%attr(755,root,root) %{_libdir}/packagekit-backend/libpk_backend_nix.so
+%endif
-%files gstreamer-plugin
+%if %{with pisi}
+%files backend-pisi
%defattr(644,root,root,755)
-%doc contrib/gstreamer-plugin/README
-%attr(755,root,root) %{_libdir}/gst-install-plugins-helper
-%attr(755,root,root) %{_libdir}/pk-gstreamer-install
+%attr(755,root,root) %{_libdir}/packagekit-backend/libpk_backend_pisi.so
+%dir %{_datadir}/PackageKit/helpers/pisi
+%attr(755,root,root) %{_datadir}/PackageKit/helpers/pisi/pisiBackend.py
+%endif
-%files gtk-module
+%if %{with poldek}
+%files backend-poldek
%defattr(644,root,root,755)
-%doc contrib/gtk-module/{GLASS.txt,README}
-%attr(755,root,root) %{_libdir}/gtk-2.0/modules/libpk-gtk-module.so
+%attr(755,root,root) %{_libdir}/packagekit-backend/libpk_backend_poldek.so
+%endif
-%files gtk3-module
+%if %{with portage}
+%files backend-portage
%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/gtk-3.0/modules/libpk-gtk-module.so
-%{_libdir}/gnome-settings-daemon-3.0/gtk-modules/pk-gtk-module.desktop
+%attr(755,root,root) %{_libdir}/packagekit-backend/libpk_backend_portage.so
+%dir %{_datadir}/PackageKit/helpers/portage
+%attr(755,root,root) %{_datadir}/PackageKit/helpers/portage/portageBackend.py
+%endif
-%files -n bash-completion-packagekit
+%if %{with slack}
+%files backend-slack
%defattr(644,root,root,755)
-%{_sysconfdir}/bash_completion.d/pk-completion.bash
+%attr(755,root,root) %{_libdir}/packagekit-backend/libpk_backend_slack.so
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/PackageKit/Slackware.conf
+%dir /var/cache/PackageKit/metadata
+%ghost /var/cache/PackageKit/metadata/metadata.db
+%endif
-%files -n pm-utils-packagekit
+%if %{with zypp}
+%files backend-zypp
%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/pm-utils/sleep.d/95packagekit
+%attr(755,root,root) %{_libdir}/packagekit-backend/libpk_backend_zypp.so
+%endif
-%files -n python-packagekit
+%files gstreamer-plugin
+%defattr(644,root,root,755)
+%doc contrib/gstreamer-plugin/README
+%attr(755,root,root) %{_libexecdir}/gst-install-plugins-helper
+%attr(755,root,root) %{_libexecdir}/pk-gstreamer-install
+
+%files gtk3-module
+%defattr(644,root,root,755)
+%doc contrib/gtk-module/{GLASS.txt,README}
+%attr(755,root,root) %{_libdir}/gtk-3.0/modules/libpk-gtk-module.so
+%{_libdir}/gnome-settings-daemon-3.0/gtk-modules/pk-gtk-module.desktop
+
+%files -n bash-completion-packagekit
%defattr(644,root,root,755)
-%dir %{py_sitescriptdir}/packagekit
-%{py_sitescriptdir}/packagekit/*.py[co]
+%{bash_compdir}/pkcon
-%if %{with browser}
-%files -n browser-plugin-packagekit
+%if %{with python}
+%files -n python3-packagekit
%defattr(644,root,root,755)
-%attr(755,root,root) %{_browserpluginsdir}/packagekit-plugin.so
+%{py3_sitescriptdir}/packagekit
%endif