Add appstream (#12503)

* Add appstream

* recipe cleanup, add appstreamqt

---------

Co-authored-by: Luc Schrijvers <begasus@gmail.com>
This commit is contained in:
Sebastian Silva
2025-06-30 04:07:37 -05:00
committed by GitHub
parent b68b3cf16f
commit 2fbdad6533
2 changed files with 182 additions and 0 deletions

View File

@@ -0,0 +1,144 @@
SUMMARY="Tools and libraries to work with AppStream metadata"
DESCRIPTION="AppStream is a cross-distro effort for better app stores. \
It provides metadata for software components and makes it available to software \
centers like GNOME Software and KDE Discover."
HOMEPAGE="https://github.com/ximion/appstream"
COPYRIGHT="Matthias Klumpp"
LICENSE="GNU LGPL v2.1"
REVISION="1"
SOURCE_URI="https://github.com/ximion/appstream/archive/refs/tags/v$portVersion/appstream-$portVersion.tar.gz"
CHECKSUM_SHA256="dd33b1375ba4221ffee060e2778c478e8150d7b1108c6309148f5fb1ca6e90c0"
SOURCE_DIR="appstream-$portVersion"
PATCHES="appstream-1.0.5-haiku.patchset"
ARCHITECTURES="all !x86_gcc2"
SECONDARY_ARCHITECTURES="x86"
libVersion="$portVersion"
libVersionCompat="$libVersion compat >= ${libVersion%%.*}"
PROVIDES="
appstream$secondaryArchSuffix = $portVersion
cmd:appstreamcli
lib:libappstream$secondaryArchSuffix = $libVersionCompat
"
REQUIRES="
haiku$secondaryArchSuffix
lib:libcurl$secondaryArchSuffix
lib:libgio_2.0$secondaryArchSuffix
lib:libgirepository_1.0$secondaryArchSuffix
lib:libglib_2.0$secondaryArchSuffix
lib:libgobject_2.0$secondaryArchSuffix
lib:libintl$secondaryArchSuffix
lib:libstemmer$secondaryArchSuffix
lib:libxml2$secondaryArchSuffix
lib:libxmlb$secondaryArchSuffix
lib:libyaml_0$secondaryArchSuffix
lib:libzstd$secondaryArchSuffix
"
PROVIDES_devel="
appstream${secondaryArchSuffix}_devel = $portVersion
devel:libappstream$secondaryArchSuffix = $libVersionCompat
devel:libAppStreamQt$secondaryArchSuffix = $libVersionCompat
"
REQUIRES_devel="
appstream$secondaryArchSuffix == $portVersion base
devel:libffi$secondaryArchSuffix
devel:libglib_2.0$secondaryArchSuffix
devel:libpcre2_8$secondaryArchSuffix
devel:libz$secondaryArchSuffix
"
PROVIDES_qt6="
appstream_qt6$secondaryArchSuffix = $portVersion
lib:libAppStreamQt$secondaryArchSuffix = $libVersionCompat
devel:libAppStreamQt$secondaryArchSuffix = $libVersionCompat
"
REQUIRES_qt6="
appstream$secondaryArchSuffix == $portVersion base
appstream${secondaryArchSuffix}_devel == $portVersion
haiku$secondaryArchSuffix
lib:libgio_2.0$secondaryArchSuffix
lib:libglib_2.0$secondaryArchSuffix
lib:libgobject_2.0$secondaryArchSuffix
lib:libQt6Core$secondaryArchSuffix
"
BUILD_REQUIRES="
haiku${secondaryArchSuffix}_devel
qt6_tools${secondaryArchSuffix}_devel
devel:libcurl$secondaryArchSuffix
devel:libgio_2.0$secondaryArchSuffix
devel:libgirepository_1.0$secondaryArchSuffix
devel:libglib_2.0$secondaryArchSuffix
devel:libgobject_2.0$secondaryArchSuffix
devel:libQt6Core$secondaryArchSuffix
devel:libstemmer$secondaryArchSuffix >= 3
devel:libxml2$secondaryArchSuffix
devel:libxmlb$secondaryArchSuffix
devel:libyaml_0$secondaryArchSuffix
"
BUILD_PREREQUIRES="
docbook_xsl_stylesheets$secondaryArchSuffix
cmd:cmake
cmd:gcc$secondaryArchSuffix
cmd:gperf
cmd:itstool
cmd:ld$secondaryArchSuffix
cmd:meson
cmd:msgfmt$secondaryArchSuffix
cmd:ninja
cmd:pkg_config$secondaryArchSuffix
cmd:xsltproc
"
PATCH()
{
sed -i "s|stemmer_inc_dirs = include_directories(\['/usr/include'\])|#&|" meson.build
}
BUILD()
{
meson setup Build \
--buildtype=release \
--prefix="$prefix" \
--bindir="$prefix/bin" \
--libdir="$libDir" \
--includedir="$includeDir" \
--datadir="$dataDir" \
--localedir="$dataDir/locale" \
--sysconfdir="$settingsDir" \
-Dc_args="-I$includeDir" \
-Dcpp_args="-I$includeDir" \
-Dsystemd=false \
-Dgir=true \
-Dapidocs=false \
-Dcompose=false \
-Dqt=true
ninja -C Build
}
INSTALL()
{
ninja install -C Build
# cleanup
rm -rf $dataDir/metainfo $prefix/share
prepareInstalledDevelLibs \
libappstream \
libAppStreamQt
fixPkgconfig
packageEntries qt6 \
$libDir/libAppStreamQt* \
$developLibDir/libAppStreamQt* \
$libDir/cmake \
$includeDir/AppStreamQt
packageEntries devel \
$developDir
}

View File

@@ -0,0 +1,38 @@
From 066d7f81183d71158b961bb26667e149321f8409 Mon Sep 17 00:00:00 2001
From: Sebastian Silva <sebastian@fuentelibre.org>
Date: Wed, 11 Jun 2025 20:15:07 +0000
Subject: [PATCH] Add Haiku
---
src/as-system-info.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/src/as-system-info.c b/src/as-system-info.c
index 0c7e27c..3d12f5b 100644
--- a/src/as-system-info.c
+++ b/src/as-system-info.c
@@ -65,6 +65,9 @@
#endif
#include "as-utils-private.h"
+#ifdef __HAIKU__
+#include <OS.h>
+#endif
#define MB_IN_BYTES (1024 * 1024)
@@ -519,6 +522,11 @@ as_get_physical_memory_total (void)
if (physpages > 0 && pagesize > 0)
return (physpages * pagesize) / MB_IN_BYTES;
return 0;
+#elif defined(__HAIKU__)
+ system_info info;
+ if (get_system_info(&info) != B_OK)
+ return 0;
+ return (guint64)info.max_pages * B_PAGE_SIZE;
#else
#error "Implementation of as_get_physical_memory_total() missing for this OS."
#endif
--
2.48.1