diff --git a/base/libxmlb2/libxmlb.spec b/base/libxmlb2/libxmlb.spec new file mode 100644 index 0000000..4254d60 --- /dev/null +++ b/base/libxmlb2/libxmlb.spec @@ -0,0 +1,106 @@ +## START: Set by rpmautospec +## (rpmautospec version 0.3.5) +## RPMAUTOSPEC: autorelease, autochangelog +%define autorelease(e:s:pb:n) %{?-p:0.}%{lua: + release_number = 1; + base_release_number = tonumber(rpm.expand("%{?-b*}%{!?-b:1}")); + print(release_number + base_release_number - 1); +}%{?-e:.%{-e*}}%{?-s:.%{-s*}}%{!?-n:%{?dist}} +## END: Set by rpmautospec + +%global glib2_version 2.45.8 +%global realname libxmlb + +Summary: Library for querying compressed XML metadata +Name: libxmlb2 +Version: 0.3.14 +Release: %autorelease +License: LGPLv2+ +URL: https://github.com/hughsie/%{realname} +Source0: https://github.com/hughsie/%{realname}/releases/download/%{version}/%{realname}-%{version}.tar.xz + +BuildRequires: glib2-devel >= %{glib2_version} +BuildRequires: gtk-doc +BuildRequires: libstemmer-devel +BuildRequires: meson +BuildRequires: gobject-introspection-devel +BuildRequires: xz-devel +BuildRequires: libzstd-devel +BuildRequires: python3-setuptools + +# needed for the self tests +BuildRequires: shared-mime-info + +Requires: glib2%{?_isa} >= %{glib2_version} +Requires: shared-mime-info + +%description +XML is slow to parse and strings inside the document cannot be memory mapped as +they do not have a trailing NUL char. The libxmlb library takes XML source, and +converts it to a structured binary representation with a deduplicated string +table -- where the strings have the NULs included. + +This allows an application to mmap the binary XML file, do an XPath query and +return some strings without actually parsing the entire document. This is all +done using (almost) zero allocations and no actual copying of the binary data. + +%package devel +Summary: Development package for %{name} +Requires: %{name}%{?_isa} = %{version}-%{release} +Provides: pkgconfig(xmlb) = %{version}-%{release} +Conflicts: %{realname}-devel + +%description devel +Files for development with %{name}. + +%package tests +Summary: Files for installed tests +Conflicts: %{realname}-tests + +%description tests +Executable and data files for installed tests. + +%prep +%setup -q -n %{realname}-%{version} + +%build + +%meson \ + -Dgtkdoc=true \ + -Dtests=true + +%meson_build + +%check +%meson_test + +%install +%meson_install + + +%files +%doc README.md +%license LICENSE +%{_bindir}/xb-tool +%{_mandir}/man1/xb-tool.1* +%dir %{_libdir}/girepository-1.0 +%{_libdir}/girepository-1.0/Xmlb-2.0.typelib +%{_libdir}/libxmlb.so.2* + +%files devel +%dir %{_datadir}/gir-1.0 +%{_datadir}/gir-1.0/Xmlb-2.0.gir +%dir %{_datadir}/gtk-doc +%dir %{_datadir}/gtk-doc/html +%{_datadir}/gtk-doc/html/libxmlb +%{_includedir}/libxmlb-2 +%{_libdir}/libxmlb.so +%{_libdir}/pkgconfig/xmlb.pc + +%files tests +%dir %{_libexecdir}/installed-tests/libxmlb +%{_libexecdir}/installed-tests/libxmlb/xb-self-test +%{_libexecdir}/installed-tests/libxmlb/test.* +%dir %{_datadir}/installed-tests/libxmlb +%{_datadir}/installed-tests/libxmlb/libxmlb.test +