File libzypp-plugin-appdata.spec of Package libzypp-plugin-appdata

#
# spec file for package libzypp-plugin-appdata
#
# Copyright (c) 2024 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.

# Please submit bugfixes or comments via https://bugs.opensuse.org/
#


Name:           libzypp-plugin-appdata
Version:        1.0.1+git.20240209
Release:        0
Summary:        libzypp extension to handle AppStream metadata
License:        CC0-1.0 AND MIT
Group:          System/Libraries
URL:            https://wiki.gnome.org/Design/Apps/Software
Source0:        openSUSE-appstream-%{version}.tar.xz
Source99:       libzypp-plugin-appdata-rpmlintrc
# appstream-glib >= 0.3.6 is the first to correctly to appstream-util uninstall in /var/cache
Requires:       (appstream-glib >= 0.3.6 with asglib(swcatalog))
# appdata hook was introduced in libzypp 14.29.4
Requires:       libzypp >= 14.29.4
# AsHelper is a python program with few dependencies
Requires:       python3-cmdln
Requires:       python3-createrepo_c
Requires(post): (appstream-glib >= 0.3.6 with asglib(swcatalog))
# libzypp 16.13.1 was the version gaingin support for ZYPP_PLUGIN_APPDATA_FORCE_COLLECT
Requires(post): libzypp >= 16.13.1
Requires(post): python3-cmdln
Requires(post): python3-createrepo_c
Requires(post): zypper
# This is one way of providing valid appstream metadata to applications (currently the only implemented one)
Provides:       appstream-provider
BuildArch:      noarch

%description
This plugin extends libzypp to install AppStream metadata, as extracted from the
repository metadata, onto the file system in order to be picked up by
software centers.

%package -n openSUSE-appdata-extra
Summary:        Additional Appstream Metadata
License:        CC0-1.0
Group:          Metapackages

%description -n openSUSE-appdata-extra
This package contains extra appstream metadata to be used by appstream-builder

%prep
%autosetup -n openSUSE-appstream-%{version}

%build

%install
# install the additional appstream metadata
install -m 0755 -d %{buildroot}%{_datadir}/appdata-extra
cp appdata-extra/*/* %{buildroot}%{_datadir}/appdata-extra/

# Install AppData zypp plugin
install -Dm 0755 InstallAppdata.py %{buildroot}%{_prefix}/lib/zypp/plugins/appdata/InstallAppdata
install -Dm 0755 AsHelper.py %{buildroot}%{_prefix}/lib/AsHelper

# Install zypper helper command
install -Dm 0755 zypper-appstream-cache %{buildroot}%{_prefix}/lib/zypper/commands/zypper-appstream-cache

# Install the systemd service, which triggers when /var/cache/app-info/xmls does not yet exist during a boot
install -dm 0755 %{buildroot}%{_unitdir}
install -m 0644 appstream-sync-cache.service %{buildroot}%{_unitdir}

%preun
%service_del_preun appstream-sync-cache.service

%pre
%service_add_pre appstream-sync-cache.service

%post
%service_add_post appstream-sync-cache.service

%postun
%service_del_postun appstream-sync-cache.service

%files
# zypp plugin triggering AppData update on repo refresh
%dir %{_prefix}/lib/zypp
%dir %{_prefix}/lib/zypp/plugins
%dir %{_prefix}/lib/zypp/plugins/appdata/
%{_prefix}/lib/zypp/plugins/appdata/InstallAppdata
%dir %{_prefix}/lib/zypper
%dir %{_prefix}/lib/zypper/commands
%{_prefix}/lib/zypper/commands/zypper-appstream-cache
%{_prefix}/lib/AsHelper
%{_unitdir}/appstream-sync-cache.service

%files -n openSUSE-appdata-extra
%{_datadir}/appdata-extra/

%changelog
openSUSE Build Service is sponsored by