← All tools

appstream-glib

Popularity 85 Updated Development & Build

Helper library for reading and writing AppStream metadata

homebrewauto-collected

Installation

Homebrew
brew install appstream-glib

Install with Homebrew.

| ⚠️ WARNING: appstream-glib is heavy maintenance mode, use appstream instead | | --- |

AppStream-Glib ==============

This library provides GObjects and helper methods to make it easy to read and write AppStream metadata. It also provides a simple DOM implementation that makes it easy to edit nodes and convert to and from the standardized XML representation. It also supports reading of Debian-style DEP-11 metadata.

What this library allows you to do:

  • Read and write compressed AppStream XML files
  • Read compressed Debian YAML files
  • Add and search for applications in an application store
  • Get screenshot image data and release announcements
  • Easily retrieve the best application data for the current locale
  • Efficiently interface with more heavy-weight parsers like expat

For more information about what AppStream is, please see the wiki here: https://www.freedesktop.org/wiki/Distributions/AppStream/

Getting Started ---------------

To install the libappstream-glib library you either need to install the libappstream-glib package from your distributor, or you can build a local copy. To do the latter just do:

dnf install docbook-utils gettext-devel glib-devel \ gobject-introspection-devel gperf gtk-doc gtk3-devel \ json-glib-devel libarchive-devel libcurl-devel \ libuuid-devel libyaml-devel \ meson rpm-devel mkdir build && cd build meson .. --prefix=/opt -Dbuilder=false ninja

Hacking -------

If you want a new feature, or have found a bug or a way to crash this library, please report as much information as you can to the issue tracker: https://github.com/hughsie/appstream-glib/issues -- patches very welcome.

New functionality or crash fixes should include a test in libappstream-builder/ as-self-test.c to ensure we don't regress in the future. New functionality should also be thread safe and also not leak any memory for success or failure cases.

Translations ------------

Translations of the natural language strings are managed through a third party translation interface, transifex.com. Newly added strings will be periodically uploaded there for translation, and any new translations will be merged back to the project source code.

Please use https://www.transifex.com/projects/p/appstream-glib/ to contribute translations, rather than sending pull requests.

AppStream-Builder =================

appstream-builder is a tool that allows us to create AppStream metadata from a directory of packages. It is typically used when generating distribution metadata, usually at the same time as modifyrepo or createrepo.

What this tool does: