252 lines
6.9 KiB
RPMSpec
Raw Permalink Normal View History

2024-09-02 17:09:04 +06:00
%global _syslibdir %{_libdir}
%global _prefix /opt/rx
Summary: Utilities to generate, maintain and access the AppStream database
Name: rx-appstream
Version: 1.0.2
Release: 2%{?dist}
# lib LGPLv2+, tools GPLv2+
License: GPL-2.0-or-later AND LGPL-2.1-or-later
#URL: http://www.freedesktop.org/wiki/Distributions/AppStream
URL: https://github.com/ximion/appstream
Source0: http://www.freedesktop.org/software/appstream/releases/AppStream-%{version}.tar.xz
# upstream patches
# https://github.com/PackageKit/PackageKit/issues/720
Patch0: utils-explicitly-set-format-style-when-installing-catalog-metadata.patch
# upstreamable patches
# needed for cmake auto-provides
BuildRequires: cmake
BuildRequires: meson >= 0.62
BuildRequires: gettext
BuildRequires: git-core
BuildRequires: gperf
BuildRequires: intltool
BuildRequires: itstool
BuildRequires: libstemmer-devel
BuildRequires: pkgconfig(cairo)
BuildRequires: pkgconfig(freetype2)
BuildRequires: pkgconfig(fontconfig)
BuildRequires: pkgconfig(gdk-pixbuf-2.0)
#BuildRequires: pkgconfig(gi-docgen) >= 2021.1
BuildRequires: rx-glib2-devel >= 2.62
BuildRequires: pkgconfig(libcurl)
BuildRequires: pkgconfig(librsvg-2.0) >= 2.48
BuildRequires: pkgconfig(libxml-2.0)
BuildRequires: pkgconfig(libzstd)
BuildRequires: pkgconfig(pango)
BuildRequires: pkgconfig(Qt5Core) >= 5.15
BuildRequires: pkgconfig(Qt6Core) >= 6.2.4
BuildRequires: pkgconfig(xmlb) >= 0.3.14
BuildRequires: pkgconfig(yaml-0.1)
# lrelease
BuildRequires: qt6-linguist
BuildRequires: sed
BuildRequires: xmlto
Requires: appstream-data
Requires: rx-libxmlb
Requires: rx-glib2
Requires: rx-librsvg2
%description
AppStream makes it easy to access application information from the
AppStream database over a nice GObject-based interface.
%package devel
Summary: Development files for %{name}
Requires: %{name}%{?_isa} = %{version}-%{release}
# -vala subpackage removed in F30
Obsoletes: appstream-vala < 0.12.4-3
Provides: appstream-vala = %{version}-%{release}
Provides: appstream-devel = %{version}-%{release}
Conflicts: appstream-devel
%description devel
%{summary}.
%package compose
Summary: Library for generating AppStream data
Requires: %{name}%{?_isa} = %{version}-%{release}
%description compose
%{summary}.
%package compose-devel
Summary: Development files for %{name}-compose library
Requires: %{name}-compose%{?_isa} = %{version}-%{release}
Requires: %{name}-devel%{?_isa} = %{version}-%{release}
Provides: appstream-compose-devel = %{version}-%{release}
Conflicts: appstream-compose-devel
%description compose-devel
%{summary}.
%package qt
Summary: Qt6 bindings for %{name}
Requires: %{name}%{?_isa} = %{version}-%{release}
%description qt
%{summary}.
%package qt-devel
Summary: Development files for %{name}-qt bindings
Requires: %{name}-qt%{?_isa} = %{version}-%{release}
Requires: pkgconfig(Qt6Core) >= 6.2.4
Provides: cmake(AppStreamQt) = %{version}-%{release}
Conflicts: appstream-qt-devel
%description qt-devel
%{summary}.
%package qt5
Summary: Qt5 bindings for %{name}
Requires: %{name}%{?_isa} = %{version}-%{release}
%description qt5
%{summary}.
%package qt5-devel
Summary: Development files for %{name}-qt bindings
Requires: %{name}-qt5%{?_isa} = %{version}-%{release}
Requires: pkgconfig(Qt5Core) >= 5.15
Provides: cmake(AppStreamQt5) = %{version}-%{release}
Provides: appstream-qt-devel = %{version}-%{release}
Conflicts: appstream-qt-devel
%description qt5-devel
%{summary}.
%prep
%autosetup -n AppStream-%{version} -S git_am
%build
export LDFLAGS="-L%{_prefix}/%{_lib} -Wl,-rpath=%{_prefix}/%{_lib} -lrsvg-2 -L%{_prefix}/glib2/%{_lib} -Wl,-rpath=%{_prefix}/glib2/%{_lib} ${LDFLAGS}"
export PKG_CONFIG_PATH=%{_prefix}/%{_lib}/pkgconfig:%{_prefix}/glib2/%{_lib}/pkgconfig${PKG_CONFIG_PATH:+:${PKG_CONFIG_PATH}}
sed -i "s/'libcurl', version: '>= 7.62'/'libcurl'/" meson.build
%{meson} \
-Dcompose=true \
-Dqt=true \
-Dqt-versions=5,6 \
-Dvapi=true \
-Dsystemd=false \
-Dgir=false \
-Dapidocs=false
%{meson_build}
%install
%{meson_install}
mkdir -p %{buildroot}/var/cache/swcatalog/{icons,gv,xml}
touch %{buildroot}/var/cache/swcatalog/cache.watch
%find_lang appstream
%if "%{?_metainfodir}" != "%{_datadir}/metainfo"
# move metainfo to right/legacy location
mkdir -p %{buildroot}%{_kf5_metainfodir}
mv %{buildroot}%{_datadir}/metainfo/*.xml \
%{buildroot}%{_metainfodir}
%endif
mkdir -p %{buildroot}%{_syslibdir}/cmake
ln -sf %{_libdir}/cmake/AppStreamQt %{buildroot}%{_syslibdir}/cmake/AppStreamQt
ln -sf %{_libdir}/cmake/AppStreamQt5 %{buildroot}%{_syslibdir}/cmake/AppStreamQt5
%check
%{meson_test} ||:
%posttrans
%{_bindir}/appstreamcli refresh --force >& /dev/null ||:
%transfiletriggerin -- %{_datadir}/swcatalog/xml
%{_bindir}/appstreamcli refresh --force >& /dev/null ||:
%transfiletriggerpostun -- %{_datadir}/swcatalog/xml
%{_bindir}/appstreamcli refresh --force >& /dev/null ||:
%files -f appstream.lang
%doc AUTHORS
%license COPYING
%{_bindir}/appstreamcli
%{_mandir}/man1/appstreamcli.1*
%{_datadir}/appstream/
#dir %{_libdir}/girepository-1.0/
#{_libdir}/girepository-1.0/AppStream-1.0.typelib
%{_libdir}/libappstream.so.5
%{_libdir}/libappstream.so.%{version}
%{_metainfodir}/org.freedesktop.appstream.cli.*.xml
# put in -devel? -- rex
%{_datadir}/gettext/its/metainfo.*
%ghost /var/cache/swcatalog/cache.watch
%dir /var/cache/swcatalog/
%dir /var/cache/swcatalog/icons/
%dir /var/cache/swcatalog/gv/
%dir /var/cache/swcatalog/xml/
%files devel
%{_includedir}/appstream/
%{_libdir}/libappstream.so
%{_libdir}/pkgconfig/appstream.pc
#dir %{_datadir}/gir-1.0/
#{_datadir}/gir-1.0/AppStream-1.0.gir
#dir %{_datadir}/vala
#dir %{_datadir}/vala/vapi
#{_datadir}/vala/vapi/appstream.deps
#{_datadir}/vala/vapi/appstream.vapi
%{_docdir}/appstream/html/
## symlink pointing to ^^, but need to take care, since rpm has
## trouble replacing dirs with symlinks, omit it for now -- rex
#exclude %{_datadir}/gtk-doc/html/appstream
# Maybe this should be split out? -- ngompa
%{_datadir}/installed-tests/appstream/metainfo-validate.test
%files compose
%{_libexecdir}/appstreamcli-compose
%{_mandir}/man1/appstreamcli-compose.1*
%{_libdir}/libappstream-compose.so.0
%{_libdir}/libappstream-compose.so.%{version}
#{_libdir}/girepository-1.0/AppStreamCompose-1.0.typelib
%{_metainfodir}/org.freedesktop.appstream.compose.metainfo.xml
%files compose-devel
%{_includedir}/appstream-compose/
%{_libdir}/libappstream-compose.so
%{_libdir}/pkgconfig/appstream-compose.pc
#{_datadir}/gir-1.0/AppStreamCompose-1.0.gir
#dir %{_datadir}/gtk-doc/
#dir %{_datadir}/gtk-doc/html/
#{_datadir}/gtk-doc/html/appstream-compose
%files qt
%{_libdir}/libAppStreamQt.so.3
%{_libdir}/libAppStreamQt.so.%{version}
%files qt-devel
%{_includedir}/AppStreamQt/
%{_syslibdir}/cmake/AppStreamQt
%{_libdir}/cmake/AppStreamQt/
%{_libdir}/libAppStreamQt.so
%files qt5
%{_libdir}/libAppStreamQt5.so.3
%{_libdir}/libAppStreamQt5.so.%{version}
%files qt5-devel
%{_includedir}/AppStreamQt5/
%{_syslibdir}/cmake/AppStreamQt5
%{_libdir}/cmake/AppStreamQt5/
%{_libdir}/libAppStreamQt5.so