Introduction to AppStream
The AppStream package contains a
library and tool that is useful for retrieving software metadata
and making it easily accessible to programs which need it.
Note
Development versions of BLFS may not build or run some packages
properly if LFS or dependencies have been updated since the most
recent stable versions of the books.
Package Information
AppStream Dependencies
Required
cURL-8.21.0, elogind-257.16, itstool-2.0.7,
libfyaml-0.9.6, libxml2-2.15.3, libxmlb-0.3.29, libxslt-1.1.45, and
Wayland-1.26.0
Recommended
docbook-xsl-nons-1.79.2
Optional
Gi-DocGen-2026.1, Qt-6.11.1, DAPS, and libstemmer
Installation of AppStream
First, fix a problem when building man pages:
sed -i 's/xsl-ns/xsl/' docs/meson.build
Install AppStream by running the
following commands:
mkdir build &&
cd build &&
meson setup --prefix=/usr \
--buildtype=release \
-D apidocs=false \
-D bash-completion=false \
-D stemming=false .. &&
ninja
To test the results, issue: ninja
test.
Now, as the root user:
ninja install &&
mv -v /usr/share/doc/appstream{,-1.1.6}
Command Explanations
--buildtype=release:
Specify a buildtype suitable for stable releases of the package, as
the default may produce unoptimized binaries.
-D apidocs=false: This
switch disables building the API documentation. Remove it if you
have Gi-DocGen-2026.1 installed and wish to
regenerate the API documentation. When the API documentation is not
regenerated, a pre-built copy is installed anyway.
-D bash-completion=false:
This switch disables bash-completion support which is not in BLFS.
-D stemming=false: This
switch disables stemming support. Remove this switch if you have
libstemmer installed and
want faster searches.
-D qt=true: Use this option if you have
Qt-6.11.1 installed and you want to build support
for Qt6 applications into this package.
-D man=false: This switch disables
building the manpages. Add it if you do not have docbook-xsl-nons-1.79.2 installed.
Configuring AppStream
Config Files
/usr/share/metainfo/org.linuxfromscratch.lfs.xml
Configuration Information
AppStream expects an operating
system metainfo file describing the GNU/Linux distribution. As
the root user, create the file
describing LFS:
install -vdm755 /usr/share/metainfo &&
cat > /usr/share/metainfo/org.linuxfromscratch.lfs.xml << EOF
<?xml version="1.0" encoding="UTF-8"?>
<component type="operating-system">
<id>org.linuxfromscratch.lfs</id>
<name>Linux From Scratch</name>
<summary>A customized Linux system built entirely from source</summary>
<description>
<p>
Linux From Scratch (LFS) is a project that provides you with
step-by-step instructions for building your own customized Linux
system entirely from source.
</p>
</description>
<url type="homepage">https://www.linuxfromscratch.org/lfs/</url>
<metadata_license>MIT</metadata_license>
<developer id='linuxfromscratch.org'>
<name>The Linux From Scratch Editors</name>
</developer>
<releases>
<release version="13.0" type="stable" date="2026-03-05">
<description>
<p>Now contains Binutils 2.46.0, GCC-15.2.0, Glibc-2.43,
Linux kernel 6.18, and six security updates.</p>
</description>
</release>
<release version="12.4" type="stable" date="2025-09-01">
<description>
<p>Now contains Binutils 2.45, GCC-15.2.0, Glibc-2.42,
Linux kernel 6.16, and twelve security updates.</p>
</description>
</release>
<release version="12.3" type="stable" date="2025-03-05">
<description>
<p>Now contains Binutils 2.44, GCC-14.2.0, Glibc-2.41, and
Linux Kernel 6.13, and three security updates.</p>
</description>
</release>
</releases>
</component>
EOF
Contents
Installed Programs:
appstreamcli
Installed Libraries:
libappstream.so and libAppStreamQt.so (if
Qt6 support is enabled)
Installed Directories:
/usr/include/appstream,
/usr/include/AppStreamQt (if Qt6 support is enabled),
/usr/lib/cmake/AppStreamQt (if Qt6 support is enabled),
/usr/share/doc/appstream-1.1.6, and
/usr/share/installed-tests/appstream
Short Descriptions
|
appstreamcli
|
queries information from AppStream metadata and from the
AppStream component index
|
|
libappstream.so
|
contains functions that handle AppStream metadata queries
and request information from the AppStream component
index
|
|
libAppStreamQt.so
|
contains functions that allow Qt6 applications to handle
AppStream metadata queries and allows them to request
information from the AppStream component index
|