diff --git a/.fmf/version b/.fmf/version new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/.fmf/version @@ -0,0 +1 @@ +1 diff --git a/.gitignore b/.gitignore index 77ca6cb..02dd8e0 100644 --- a/.gitignore +++ b/.gitignore @@ -1,9 +1,20 @@ -/AppStream-0.12.3.tar.xz -/AppStream-0.12.4.tar.xz -/0002-Don-t-warn-about-issues-in-a-cache-refresh-if-there-.patch -/0010-as-pool-Fix-g-i-for-get_components_-while-GPtrArray-.patch -/AppStream-0.12.6.tar.xz -/AppStream-0.12.7.tar.xz -/AppStream-0.12.8.tar.xz -/AppStream-0.12.9.tar.xz -/AppStream-0.12.10.tar.xz +/AppStream-0.14.1.tar.xz +/AppStream-0.14.2.tar.xz +/AppStream-0.14.3.tar.xz +/AppStream-0.14.4.tar.xz +/AppStream-0.14.5.tar.xz +/AppStream-0.14.6.tar.xz +/AppStream-0.15.1.tar.xz +/AppStream-0.15.2.tar.xz +/AppStream-0.15.3.tar.xz +/AppStream-0.15.4.tar.xz +/AppStream-0.15.5.tar.xz +/AppStream-0.16.1.tar.xz +/appstream-d88ed03cb5b3b1803bdee3528c9b99d528ceb065.tar.gz +/AppStream-1.0.0.tar.xz +/AppStream-1.0.1.tar.xz +/AppStream-1.0.2.tar.xz +/AppStream-1.0.4.tar.xz +/AppStream-1.0.5.tar.xz +/AppStream-1.0.6.tar.xz +/AppStream-1.1.0.tar.xz diff --git a/appstream.spec b/appstream.spec index 2f78b60..486b97e 100644 --- a/appstream.spec +++ b/appstream.spec @@ -1,45 +1,57 @@ - -# Vala/Vapi support ( upstream disabled by default, probably explains why it the build breaks often ) -%global vala 1 +%bcond stemming %{undefined rhel} Summary: Utilities to generate, maintain and access the AppStream database Name: appstream -Version: 0.12.10 -Release: 1%{?dist} +Version: 1.1.0 +Release: 2%{?dist} # lib LGPLv2+, tools GPLv2+ -License: GPLv2+ and LGPLv2+ +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 +Source0: https://www.freedesktop.org/software/appstream/releases/AppStream-%{version}.tar.xz -## upstream patches (lookaside cache) +# upstream patches + +# upstreamable patches -## upstreamable patches # needed for cmake auto-provides BuildRequires: cmake -BuildRequires: meson +BuildRequires: meson >= 0.62 BuildRequires: gettext +BuildRequires: git-core BuildRequires: gperf BuildRequires: gtk-doc BuildRequires: intltool BuildRequires: itstool +%if %{with stemming} BuildRequires: libstemmer-devel -BuildRequires: pkgconfig(gio-2.0) pkgconfig(gobject-introspection-1.0) -BuildRequires: pkgconfig(libsoup-2.4) +%endif +BuildRequires: pkgconfig(cairo) +BuildRequires: pkgconfig(freetype2) +BuildRequires: pkgconfig(fontconfig) +BuildRequires: pkgconfig(gdk-pixbuf-2.0) +BuildRequires: pkgconfig(gi-docgen) >= 2021.1 +BuildRequires: pkgconfig(gio-2.0) +BuildRequires: pkgconfig(gobject-introspection-1.0) +BuildRequires: pkgconfig(libcurl) +BuildRequires: pkgconfig(libfyaml) +BuildRequires: pkgconfig(librsvg-2.0) +BuildRequires: pkgconfig(libsystemd) BuildRequires: pkgconfig(libxml-2.0) -BuildRequires: pkgconfig(lmdb) -BuildRequires: pkgconfig(packagekit-glib2) -BuildRequires: pkgconfig(protobuf-lite) -BuildRequires: pkgconfig(Qt5Core) -# lrelease -BuildRequires: qt5-linguist +BuildRequires: pkgconfig(libzstd) +BuildRequires: pkgconfig(pango) +BuildRequires: pkgconfig(Qt6Core) >= 6.2.4 +BuildRequires: pkgconfig(xmlb) >= 0.3.14 BuildRequires: pkgconfig(yaml-0.1) +# lrelease +BuildRequires: qt6-linguist +BuildRequires: sed BuildRequires: vala BuildRequires: xmlto -Requires: appstream-data +Requires: (appstream-data if PackageKit) %description AppStream makes it easy to access application information from the @@ -54,8 +66,21 @@ Provides: appstream-vala = %{version}-%{release} %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} +%description compose-devel +%{summary}. + %package qt -Summary: Qt5 bindings for %{name} +Summary: Qt6 bindings for %{name} Requires: %{name}%{?_isa} = %{version}-%{release} %description qt %{summary}. @@ -63,21 +88,21 @@ Requires: %{name}%{?_isa} = %{version}-%{release} %package qt-devel Summary: Development files for %{name}-qt bindings Requires: %{name}-qt%{?_isa} = %{version}-%{release} -Requires: pkgconfig(Qt5Core) +Requires: pkgconfig(Qt6Core) >= 6.2.4 %description qt-devel %{summary}. %prep -%autosetup -n AppStream-%{version} -p1 - -sed -i -e "s|0.12.2|%{version}|" meson.build +%autosetup -n AppStream-%{version} -S git_am %build %{meson} \ + -Dcompose=true \ -Dqt=true \ - -Dvapi=%{?vala:true}%{!?vala:false} + -Dstemming=%{?with_stemming:true}%{!?with_stemming:false} \ + -Dvapi=true %{meson_build} @@ -85,8 +110,8 @@ sed -i -e "s|0.12.2|%{version}|" meson.build %install %{meson_install} -mkdir -p %{buildroot}/var/cache/app-info/{icons,gv,xmls} -touch %{buildroot}/var/cache/app-info/cache.watch +mkdir -p %{buildroot}/var/cache/swcatalog/{icons,gv,xml} +touch %{buildroot}/var/cache/swcatalog/cache.watch %find_lang appstream @@ -102,45 +127,33 @@ mv %{buildroot}%{_datadir}/metainfo/*.xml \ %{meson_test} ||: -%ldconfig_scriptlets - %posttrans %{_bindir}/appstreamcli refresh --force >& /dev/null ||: -## use file triggers instead of static pkg names -## other repos can provide appdata too -%if 0%{?fedora} > 25 -## not sure how smart appstreamcli is about cache validation -## to judge if --force is really needed here or not -- rex -%transfiletriggerin -- %{_datadir}/app-info/xmls +%transfiletriggerin -- %{_datadir}/swcatalog/xml %{_bindir}/appstreamcli refresh --force >& /dev/null ||: -%transfiletriggerpostun -- %{_datadir}/app-info/xmls -%{_bindir}/appstreamcli refresh >& /dev/null ||: -%else -%triggerun -- appstream-data -%{_bindir}/appstreamcli refresh >& /dev/null ||: -%endif +%transfiletriggerpostun -- %{_datadir}/swcatalog/xml +%{_bindir}/appstreamcli refresh --force >& /dev/null ||: %files -f appstream.lang %doc AUTHORS -%license LICENSE.GPLv2 -%license LICENSE.LGPLv2.1 +%license COPYING %{_bindir}/appstreamcli %{_mandir}/man1/appstreamcli.1* -%config(noreplace) %{_sysconfdir}/appstream.conf +%{_datadir}/appstream/ %dir %{_libdir}/girepository-1.0/ %{_libdir}/girepository-1.0/AppStream-1.0.typelib -%{_libdir}/libappstream.so.4* +%{_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/app-info/cache.watch -%dir /var/cache/app-info/ -%dir /var/cache/app-info/icons/ -%dir /var/cache/app-info/gv/ -%dir /var/cache/app-info/xmls/ +%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/ @@ -148,21 +161,36 @@ mv %{buildroot}%{_datadir}/metainfo/*.xml \ %{_libdir}/pkgconfig/appstream.pc %dir %{_datadir}/gir-1.0/ %{_datadir}/gir-1.0/AppStream-1.0.gir -%if 0%{?vala} %dir %{_datadir}/vala %dir %{_datadir}/vala/vapi %{_datadir}/vala/vapi/appstream.deps %{_datadir}/vala/vapi/appstream.vapi -%endif %{_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 -%ldconfig_scriptlets qt +%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.2* +%{_libdir}/libAppStreamQt.so.3 %{_libdir}/libAppStreamQt.so.%{version} %files qt-devel @@ -172,6 +200,136 @@ mv %{buildroot}%{_datadir}/metainfo/*.xml \ %changelog +* Fri Jan 16 2026 Fedora Release Engineering - 1.1.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild + +* Fri Sep 26 2025 Neal Gompa - 1.1.0-1 +- Update to 1.1.0 + +* Mon Aug 18 2025 Marc-André Lureau - 1.0.6-1 +- rebuilt + +* Wed Jul 23 2025 Fedora Release Engineering - 1.0.4-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + +* Fri Mar 14 2025 Shawn W. Dunn - 1.0.4-2 +- Change appstream-data to a conditional Requires: + +* Sun Jan 19 2025 Pavel Solovev - 1.0.4-1 +- Update to 1.0.4 + +* Thu Jan 16 2025 Fedora Release Engineering - 1.0.2-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + +* Wed Jul 17 2024 Fedora Release Engineering - 1.0.2-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Fri Jul 05 2024 Yaakov Selkowitz - 1.0.2-3 +- Disable stemming support on RHEL + +* Sat Mar 09 2024 Alessandro Astone - 1.0.2-2 +- Backport patch to fix installing swcatalog + +* Sun Feb 25 2024 Neal Gompa - 1.0.2-1 +- Update to 1.0.2 +- Clean up some pre-1.0 scriptlet cruft + +* Mon Jan 22 2024 Fedora Release Engineering - 1.0.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Fri Jan 19 2024 Fedora Release Engineering - 1.0.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Wed Jan 03 2024 Steve Cossette - 1.0.1-1 +- Update to 1.0.1 + +* Fri Nov 17 2023 Neal Gompa - 1.0.0-1 +- Update to 1.0.0 final + +* Thu Nov 02 2023 Neal Gompa - 1.0.0~git20231102.d88ed03-1 +- Rebase to 1.0.0 git snapshot + +* Mon Aug 21 2023 Parag Nemade - 0.16.1-4 +- Migrate to SPDX license expression + +* Wed Jul 19 2023 Fedora Release Engineering - 0.16.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Mon Jun 19 2023 Yaakov Selkowitz - 0.16.1-2 +- Disable Qt5 in RHEL 10 builds +- Remove obsolete BuildRequires + +* Sat Feb 11 2023 Neal Gompa - 0.16.1-1 +- Update to 0.16.1 + +* Wed Jan 18 2023 Fedora Release Engineering - 0.15.5-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Tue Sep 6 2022 Amit Shah - 0.15.5-2 +- Make qt deps and builds conditional + +* Fri Sep 02 2022 Rex Dieter - 0.15.5-1 +- 0.15.5 + +* Wed Jul 20 2022 Fedora Release Engineering - 0.15.4-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Tue Jun 07 2022 Rex Dieter - 0.15.4-1 +- 0.15.4 + +* Tue Apr 19 2022 Rex Dieter 0.15.3-1 +- 0.15.3 + +* Wed Feb 23 2022 Rex Dieter - 0.15.2-1 +- 0.15.2 +- support only filetriggers + +* Wed Jan 19 2022 Fedora Release Engineering - 0.15.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Wed Dec 29 2021 Rex Dieter - 0.15.1-1 +- 0.15.1 (#2028696) +- update triggers to consistently use --force flag on 'appstreamcli refresh' calls + +* Tue Oct 12 2021 Rex Dieter - 0.14.6-1 +- 0.14.6 + +* Sat Aug 28 2021 Neal Gompa - 0.14.5-1 +- Update to 0.14.5 + +* Wed Jul 21 2021 Fedora Release Engineering - 0.14.4-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Tue Jun 29 2021 Rex Dieter - 0.14.4-1 +- 0.14.4 + +* Sat Apr 03 2021 Neal Gompa - 0.14.3-2 +- Build appstream-compose library for appstream-generator >= 0.8.4 + +* Mon Mar 08 2021 Rex Dieter - 0.14.3-1 +- 0.14.3 + +* Tue Mar 02 2021 Rex Dieter - 0.14.2-1 +- 0.14.2 + +* Wed Feb 17 2021 Rex Dieter - 0.14.1-1 +- 0.14.1 + +* Thu Feb 04 2021 Rex Dieter - 0.14.0-1 +- 0.14.0 + +* Tue Jan 26 2021 Fedora Release Engineering - 0.13.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Mon Dec 07 2020 Rex Dieter - 0.13.1-1 +- 0.13.1 + +* Mon Jul 27 2020 Fedora Release Engineering - 0.12.11-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Thu May 14 2020 Rex Dieter - 0.12.11-1 +- 0.12.11 + * Thu Mar 19 2020 Rex Dieter - 0.12.10-1 - 0.12.10 diff --git a/plans/basic.fmf b/plans/basic.fmf new file mode 100644 index 0000000..c1627f9 --- /dev/null +++ b/plans/basic.fmf @@ -0,0 +1,5 @@ +summary: Basic smoke test +discover: + how: fmf +execute: + how: tmt diff --git a/sources b/sources index 8c18741..dc574cc 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (AppStream-0.12.10.tar.xz) = 5cd7da7adbd035947bde6a6d7655dc2f7c1be25cef102e51ef88e8f684a83b196a41b440edaabdd89da69a9117a26dad30e548b86b50f324f0ba70eef95a6060 +SHA512 (AppStream-1.1.0.tar.xz) = d775f3e1ed22cdedcdc12e103a35752f2cbb1700deb03118600a83a3fbf1489f34d62c833f5fc0279f40d9d8066a6cb2e6be358844adc366809777c5061c2342 diff --git a/tests/main.fmf b/tests/main.fmf new file mode 100644 index 0000000..dce9b1e --- /dev/null +++ b/tests/main.fmf @@ -0,0 +1,5 @@ +require: +- appstream +- emoji-picker +test: python3 test_appstream.py -v +framework: shell diff --git a/tests/test_appstream.py b/tests/test_appstream.py new file mode 100644 index 0000000..6642809 --- /dev/null +++ b/tests/test_appstream.py @@ -0,0 +1,46 @@ +import unittest +import sys +import subprocess + +class TestAppstream(unittest.TestCase): + + def test_dummy(self): + self.assertEqual(True, True) + + @unittest.expectedFailure + def test_expected_failure(self): + self.assertEqual(False, True) + + def test_appstreamcli_search(self): + cp = subprocess.run( + ['env LC_ALL=en_US.UTF-8 appstreamcli search emoji-picker'], + encoding='UTF-8', + text=True, + shell=True, + capture_output=True) + output_lines = cp.stdout.split('\n') + print('----------------------------------------') + print(output_lines) + print('----------------------------------------') + self.assertTrue( + 'Identifier: org.freedesktop.ibus.engine.typing_booster.emoji_picker [desktop-application]' + in output_lines) + self.assertTrue( + 'Name: Emoji Picker' + in output_lines) + self.assertTrue( + 'Summary: Emoji browsing tool' + in output_lines) + self.assertTrue( + 'Homepage: https://mike-fabian.github.io/ibus-typing-booster/' + in output_lines) + self.assertTrue( + 'Icon: org.freedesktop.ibus.engine.typing_booster.emoji_picker.png' + in output_lines) + # This section not always there, better don’t test for this: + # self.assertTrue( + # 'Package: emoji-picker' + # in output_lines) + +if __name__ == "__main__": + unittest.main()