Creates a new #AsAgreement.
a #AsAgreement
Gets the agreement kind.
a string, e.g. %AS_AGREEMENT_KIND_EULA
a #AsAgreement instance.
Gets the first section in the agreement.
agreement section, or %NULL
a #AsAgreement instance.
Gets all the sections in the agreement.
array
a #AsAgreement instance.
Gets the agreement version_id.
a string, e.g. "1.4a", or NULL
a #AsAgreement instance.
Sets the agreement kind.
a #AsAgreement instance.
the agreement kind, e.g. %AS_AGREEMENT_KIND_EULA
Sets the agreement version identifier.
a #AsAgreement instance.
the agreement version ID, e.g. "1.4a"
The kind of the agreement.
Unknown value
A generic agreement without a specific type
An End User License Agreement
A privacy agreement, typically a GDPR statement
Converts the text representation to an enumerated value.
a #AsAgreementKind or %AS_AGREEMENT_KIND_UNKNOWN for unknown
the string.
Converts the enumerated value to an text representation.
string version of @value
the #AsAgreementKind.
Creates a new #AsAgreementSection.
a #AsAgreementSection
Returns the #AsContext associated with this section.
This function may return %NULL if no context is set.
the #AsContext used by this agreement section.
An instance of #AsAgreementSection.
Gets the agreement section desc.
a string, e.g. "GDPR", or NULL
a #AsAgreementSection instance.
Gets the agreement section kind.
a string, e.g. "GDPR", or NULL
a #AsAgreementSection instance.
Gets the agreement section name.
a string, e.g. "GDPR", or NULL
a #AsAgreementSection instance.
Sets the document context this release is associated
with.
An instance of #AsAgreementSection.
the #AsContext.
Sets the agreement section desc.
a #AsAgreementSection instance.
the agreement description, e.g. "GDPR"
the locale in BCP47 format. e.g. "en-GB"
Sets the agreement section kind.
a #AsAgreementSection instance.
the agreement kind, e.g. "GDPR"
Sets the agreement section name.
a #AsAgreementSection instance.
the agreement name, e.g. "GDPR"
the locale. e.g. "en_GB"
Creates a new #AsArtifact.
a #AsArtifact
Add a checksum for the file associated with this artifact.
An instance of #AsArtifact.
The #AsChecksum.
Adds a artifact location.
An URL of the download location
Gets the bundle kind of this artifact.
the #AsBundleKind
an #AsArtifact instance.
Gets the artifact checksum
an #AsChecksum, or %NULL for not set or invalid
a #AsArtifact instance.
Get a list of all checksums we have for this artifact.
an array of #AsChecksum objects.
Gets a suggested filename for the downloaded artifact,
or %NULL if none is suggested.
The platform triplet or identifier string.
a #AsArtifact instance.
Gets the artifact kind.
the #AsArtifactKind
a #AsArtifact instance.
Gets the artifact locations, typically URLs.
list of locations
Gets the artifact platform string (e.g. a triplet like "x86_64-linux-gnu").
The platform triplet or identifier string.
a #AsArtifact instance.
Gets the artifact size.
The size of the given kind of this artifact.
a #AsArtifact instance
a #AsSizeKind
Sets the bundle kind for this release artifact.
an #AsArtifact instance.
the #AsBundleKind, e.g. %AS_BUNDLE_KIND_TARBALL.
Sets a suggested filename for this artifact after it has been downloaded.
a #AsArtifact instance.
the file name suggestion.
Sets the artifact kind.
a #AsArtifact instance.
the #AsArtifactKind, e.g. %AS_ARTIFACT_KIND_SOURCE.
Sets the artifact platform triplet or identifier string.
a #AsArtifact instance.
the platform triplet.
Sets the artifact size for the given kind.
a #AsArtifact instance
a size in bytes, or 0 for unknown
a #AsSizeKind
The artifact type.
Type invalid or not known
The artifact describes software sources.
The artifact describes a binary distribution of the component.
Converts the text representation to an enumerated value.
a #AsArtifactKind, or %AS_ARTIFACT_KIND_UNKNOWN for unknown.
the string.
Converts the enumerated value to an text representation.
string version of @kind
the #AsArtifactKind.
Creates a new #AsBranding.
a #AsBranding
Retrieve a color of the given @kind that matches @scheme_kind.
If a color has no scheme preference defined, it will be returned for either scheme type,
unless a more suitable color was found.
The HTML color code of the found color, or %NULL if no color was found.
an #AsBranding instance.
the #AsColorKind, e.g. %AS_COLOR_KIND_PRIMARY.
Color scheme preference for the color, e.g. %AS_COLOR_SCHEME_KIND_LIGHT
Deletes a color that matches the given type and scheme preference.
an #AsBranding instance.
the #AsColorKind, e.g. %AS_COLOR_KIND_PRIMARY.
Type of color scheme preferred for this color, e.g. %AS_COLOR_SCHEME_KIND_LIGHT
Sets a new accent color. If a color of the given kind with the given scheme preference already exists,
it will be overriden with the new color code.
an #AsBranding instance.
the #AsColorKind, e.g. %AS_COLOR_KIND_PRIMARY.
Type of color scheme preferred for this color, e.g. %AS_COLOR_SCHEME_KIND_LIGHT
a HTML color code.
A #AsBrandingColorIter structure represents an iterator that can be used
to iterate over the accent colors of an #AsBranding object.
#AsBrandingColorIter structures are typically allocated on the stack and
then initialized with as_branding_color_iter_init().
Initializes a color iterator for the accent color list and associates it
it with @branding.
The #AsBrandingColorIter structure is typically allocated on the stack
and does not need to be freed explicitly.
an uninitialized #AsBrandingColorIter
an #AsBranding
Returns the current color entry and advances the iterator.
Example:
|[<!-- language="C" -->
AsBrandingColorIter iter;
AsColorKind ckind;
AsColorSchemeKind scheme_preference;
const gchar *color_value;
as_branding_color_iter_init (&iter, branding);
while (as_branding_color_iter_next (&iter, &ckind, &scheme_preference, &color_value)) {
// do something with the color data
}
]|
%FALSE if the last entry has been reached.
an initialized #AsBrandingColorIter
Destination of the returned color kind.
Destination of the returned color's scheme preference.
Destination of the returned color code.
Creates a new #AsBundle.
a #AsBundle
Gets the ID for this bundle.
ID, e.g. "foobar-1.0.2"
an #AsBundle instance.
Gets the bundle kind.
the #AsBundleKind
an #AsBundle instance.
Sets the ID for this bundle.
an #AsBundle instance.
the URL.
Sets the bundle kind.
an #AsBundle instance.
the #AsBundleKind, e.g. %AS_BUNDLE_KIND_LIMBA.
The bundle type.
Type invalid or not known
A native package (currently not used)
A Limba bundle
A Flatpak bundle
An AppImageKit bundle
A Snap/Snappy bundle
A (maybe compressed) tarball.
Cabinet firmware deployment
A Linglong bundle
Converts the text representation to an enumerated value.
a #AsBundleKind or %AS_BUNDLE_KIND_UNKNOWN for unknown
the string.
Converts the enumerated value to an text representation.
string version of @kind
the %AsBundleKind.
Flags on how caching should be used.
No flags.
Create an user-specific metadata cache.
Use and - if possible - update the system metadata cache.
Don't clear the cache when opening it.
Refresh the system cache that is shared between applications.
Creates a new #AsCategory.
a new #AsCategory
Add a subcategory to this category.
An instance of #AsCategory.
A subcategory to add.
Add a component to this category.
An instance of #AsCategory.
The #AsComponent to add.
Add a desktop-file category to this #AsCategory.
An instance of #AsCategory.
A subcategory to add.
A list of subcategories.
An instance of #AsCategory.
Get list of components which have been sorted into this category.
List of #AsCategory
An instance of #AsCategory.
A list of desktop-file categories.
An instance of #AsCategory.
Get the stock icon name for this category.
An instance of #AsCategory.
Get the ID of this category.
An instance of #AsCategory.
Get the name of this category.
An instance of #AsCategory.
Get the summary (short description) of this category.
An instance of #AsCategory.
Test for sub-categories.
%TRUE if this category has any subcategory
An instance of #AsCategory.
Check if the exact #AsComponent @cpt is a member of this
category already.
%TRUE if the component is present.
An instance of #AsCategory.
The #AsComponent to look for.
Drop a subcategory from this #AsCategory.
An instance of #AsCategory.
A subcategory to remove.
Set the stock icon name for this category.
An instance of #AsCategory.
Set the ID of this category.
An instance of #AsCategory.
Set the name of this category.
An instance of #AsCategory.
Get the summary (short description) of this category.
An instance of #AsCategory.
A new short summary of this category.
The type of chassis a computing device is built into.
Unknown chassis.
A desktop/workstation
A mobile computer with a bigger screen / laptop
A server, often without GUI
A tablet with touch as primary input method
A smaller touch-input device, like a smartphone
Converts the text representation to an enumerated value.
a #AsChassisKind or %AS_CHASSIS_KIND_UNKNOWN for unknown
the string.
Converts the enumerated value to a text representation.
string version of @kind
the #AsChassisKind.
Result of a check operation.
The check failed.
The outcome could not be determined.
False/No
True/Yes
Creates a new #AsChecksum.
an #AsChecksum
Creates a new #AsChecksum with the given hash
function and hash value.
an #AsChecksum
Gets the checksum type.
the #AsChecksumKind
a #AsChecksum instance.
Gets the checksum, usually in its hexadecimal form.
the checksum.
a #AsChecksum instance.
Sets the checksum type.
a #AsChecksum instance.
the #AsChecksumKind, e.g. %AS_CHECKSUM_KIND_SHA256.
Sets the checksum value filename.
a #AsChecksum instance.
the new value.
Checksums supported by #AsRelease
No checksum
SHA1 checksum
SHA256 checksum
SHA512 checksum
BLAKE2 checksum
BLAKE3 checksum
Converts the text representation to an enumerated value.
a #AsChecksumKind or %AS_CHECKSUM_KIND_NONE for unknown
the string.
Converts the enumerated value to an text representation.
string version of @kind
the %AsChecksumKind.
A branding color type.
Color type invalid or not known
Primary accent color
Converts the text representation to an enumerated value.
a #AsColorKind or %AS_COLOR_KIND_UNKNOWN for unknown.
the string.
Converts the enumerated value to an text representation.
string version of @kind
the %AsColorKind.
A color scheme type.
Color scheme invalid or not known
A light color scheme
A dark color scheme
Converts the text representation to an enumerated value.
a #AsColorKind or %AS_COLOR_SCHEME_KIND_UNKNOWN for unknown.
the string.
Converts the enumerated value to an text representation.
string version of @kind
the %AsColorSchemeKind.
Creates a new #AsComponent.
a new #AsComponent
Add a reference to the addon that is enhancing this component.
a #AsComponent instance.
The #AsComponent that extends @cpt
Adds an agreement to the software component.
a #AsComponent instance.
an #AsAgreement instance.
Adds a bundle to the component.
a #AsComponent instance.
The #AsBundle to add.
Add a category.
a #AsComponent instance.
the categories name to add.
Adds a content rating to this component.
a #AsComponent instance.
a #AsContentRating instance.
Add a reference to the extended component
a #AsComponent instance.
The id of a component which is extended by this component
Add an icon to this component.
an #AsComponent instance
the valid #AsIcon instance to add.
Add a new keyword to the keywords list for the given locale. This function does not
check for duplicate keywords.
an #AsComponent instance.
The new keyword to add.
BCP47 locale of the values, or %NULL to use current locale.
Adds a language to the component.
an #AsComponent instance.
the BCP47 locale, or %NULL. e.g. "en-GB"
the percentage completion of the translation, 0 for locales with unknown amount of translation
Adds a #AsLaunchable containing launchables entries for this component.
a #AsComponent instance.
a #AsLaunchable instance.
Add a set of provided items to this component.
a #AsComponent instance.
a #AsProvided instance.
Adds a provided item to the component with the given @kind, creating a new
@AsProvided for this kind internally if necessary.
a #AsComponent instance.
the kind of the provided item (e.g. %AS_PROVIDED_KIND_MEDIATYPE)
the item to add.
Adds an external reference to the software component.
a #AsComponent instance.
an #AsReference instance.
Adds a #AsRelation to set a recommends or requires relation of
component @cpt on the item mentioned in the #AsRelation.
a #AsComponent instance.
a #AsRelation instance.
Add an #AsRelease to this component.
a #AsComponent instance.
The #AsRelease to add
Add the component ID of a component that gets replaced by the current component.
a #AsComponent instance.
an AppStream component ID
Adds a user review to a software component.
a #AsComponent instance.
a #AsReview instance.
Add an #AsScreenshot to this component.
a #AsComponent instance.
The #AsScreenshot to add
Add an #AsSuggested to this component.
a #AsComponent instance.
The #AsSuggested
Add a tag to this component.
%TRUE if the tag was added.
a #AsComponent instance.
The namespace the tag belongs to
The tag name
Assign an #AsTranslation object describing the translation system used
by this component.
an #AsComponent instance.
an #AsTranslation instance.
Adds some URL data to the component.
a #AsComponent instance.
the URL kind, e.g. %AS_URL_KIND_HOMEPAGE
the full URL.
Verifies the respective relations and presents whether the system specified
in #AsSystemInfo @sysinfo and data from @pool supply the requested facilities.
An array of #AsRelationCheckResult
a #AsComponent instance.
an #AsSystemInfo to use for system information.
an #AsPool to find component dependencies in.
the kind of relations to check
Remove all keywords for the given locale.
an #AsComponent instance.
BCP47 locale of the values, or %NULL to use current locale.
Remove all registered language translation information.
an #AsComponent instance.
Remove all tags associated with this component.
a #AsComponent instance.
Returns a list of #AsComponent objects which
are addons extending this component in functionality.
This is the reverse of %as_component_get_extends()
An array of #AsComponent.
an #AsComponent instance.
Gets an agreement the component has specified for the particular kind.
a #AsAgreement or %NULL for not found
a #AsComponent instance.
an agreement kind, e.g. %AS_AGREEMENT_KIND_EULA
Get a list of all agreements registered with this software component.
An array of #AsAgreement.
an #AsComponent instance.
Gets the branch for the application.
string, or %NULL if unset
a #AsComponent instance.
Get the branding associated with this component, or %NULL
in case this component has no special branding.
An #AsBranding.
an #AsComponent instance.
Gets a bundle identifier string.
An #AsBundle, or %NULL if not set.
a #AsComponent instance.
the bundle kind, e.g. %AS_BUNDLE_KIND_LIMBA.
Get a list of all software bundles associated with this component.
A list of #AsBundle.
a #AsComponent instance.
String array of categories
a #AsComponent instance.
A list of desktops where this component is compulsory
a #AsComponent instance.
Gets a content ratings of a specific type that are defined for this component.
a #AsContentRating or %NULL if not found
a #AsComponent instance.
a ratings kind, e.g. "oars-1.0"
Gets all content ratings defined for this software.
an array
a #AsComponent instance.
Get the #AsContext associated with this component.
This function may return %NULL if no context is set
(which will be the case if the component was not loaded from
a file or cache but constructed in memory).
the associated #AsContext or %NULL
a #AsComponent instance.
Hash table of custom user defined data fields.
An #AsComponent.
Retrieve value for a custom data entry with the given key.
An #AsComponent.
Field name.
Get a unique identifier for this metadata set.
This unique ID is only valid for the current session,
as opposed to the AppStream ID which uniquely identifies
a software component.
The format of the unique id usually is:
%{scope}/%{origin}/%{distribution_system}/%{appstream_id}
For example:
system/os/package/org.example.FooBar
the unique session-specific identifier.
a #AsComponent instance.
Gets the end-of-life date for the entire component.
The EOL date as string in ISO8601 format.
a #AsComponent instance.
Get the localized long description of this component.
the description.
a #AsComponent instance.
Get information about the component's developer or development team.
The returned object may be empty if no developer information was
available.
the developer as #AsDeveloper.
a #AsComponent instance.
Returns a string list of IDs of components which
are extended by this addon.
See %as_component_get_extends() for the reverse.
A #GPtrArray or %NULL if not set.
an #AsComponent instance.
Gets an icon matching the size constraints.
The icons are not filtered by type, and the first icon
which matches the size is returned.
If you want more control over which icons you use for displaying,
use the %as_component_get_icons() function to get a list of all icons.
Note that this function is not HiDPI aware! It will never return an icon with
a scaling factor > 1.
An icon matching the given width/height, or %NULL if not found.
an #AsComponent instance
The icon width in pixels.
the icon height in pixels.
Gets a stock icon for this component if one is associated with it.
Will return %NULL otherwise.
An stock icon, or %NULL if none found.
an #AsComponent instance
A #GPtrArray of all icons for this component.
an #AsComponent instance
Get the unique AppStream identifier for this component.
This ID is unique for the described component, but does
not uniquely identify the metadata set.
For a unique ID for this metadata set in the current
session, use %as_component_get_data_id()
the unique AppStream identifier.
a #AsComponent instance.
String array of keywords
a #AsComponent instance.
Retrieve the internal hash table mapping languages to
keword arrays.
Hash table locale->keyword arrays
a #AsComponent instance.
Returns the #AsComponentKind of this component.
the kind of #this.
a #AsComponent instance.
Gets the translation coverage in percent for a specific locale
a percentage value, -1 if locale was not found
an #AsComponent instance.
the BCP47 locale, or %NULL. e.g. "en-GB"
Get a list of all languages.
list of locales
an #AsComponent instance.
Gets a #AsLaunchable of a specific type that contains launchable entries for
this component.
a #AsLaunchable or %NULL if not found
a #AsComponent instance.
a launch kind, e.g. %AS_LAUNCHABLE_KIND_DESKTOP_ID
an array
a #AsComponent instance.
Get the merge method which should apply to duplicate components
with this ID.
the #AsMergeKind of this component.
a #AsComponent instance.
The license the metadata iself is subjected to.
the license.
a #AsComponent instance.
A human-readable name for this component.
the name.
a #AsComponent instance.
Get the internal locale to component name
mapping table.
locale->names map
an #AsComponent instance.
Get variant suffix for the component name
(only to be displayed if two components have the same name).
the variant suffix
a #AsComponent instance.
a #AsComponent instance.
Get the first package name of the list of packages that need to be installed
for this component to be present on the system.
Since most components consist of only one package, this is safe to use for
about 90% of all cases.
However, to support a component fully, please use %as_component_get_pkgnames() for
getting all packages that need to be installed, and use this method only to
e.g. get the main package to perform a quick "is it installed?" check.
String array of package names
a #AsComponent instance.
Get a list of package names which this component consists of.
This usually is just one package name.
String array of package names
a #AsComponent instance.
Returns the priority of this component.
This method is used internally.
a #AsComponent instance.
Get the component's project group.
the project group.
a #AsComponent instance.
Get the license of the project this component belongs to.
the license.
a #AsComponent instance.
Get a list of #AsProvided objects associated with this component.
A list of #AsProvided objects.
a #AsComponent instance.
Get an #AsProvided object for the given interface type,
containing information about the public interfaces (mimetypes, firmware, DBus services, ...)
this component provides.
#AsProvided containing the items this component provides, or %NULL.
a #AsComponent instance.
kind of the provided item, e.g. %AS_PROVIDED_KIND_MEDIATYPE
Get an array of items that are recommended by this component.
an array
a #AsComponent instance.
Get a list of external references and citation information for this component.
An array of #AsReference.
an #AsComponent instance.
Get release information for this component,
without downloading or loading any data from external sources.
Release information as #AsReleaseList
a #AsComponent instance.
Get a list of component IDs of components that this software replaces entirely.
an array of component-IDs
a #AsComponent instance.
Get an array of items that are required by this component.
an array
a #AsComponent instance.
Gets any reviews associated with the component.
an array
a #AsComponent instance.
the #AsComponentScope of this component.
a #AsComponent instance.
Get a list of all associated screenshots, for all environments.
an array of #AsScreenshot instances
a #AsComponent instance.
Returns all search tokens for this component.
The string search tokens
a #AsComponent instance.
Returns the sorting priority of this component.
This will only return a valid value if this component
was the result of or involved in a search operation which
returned sorted results.
In most cases you will not need to access this value explicitly,
as all results of search operations in AppStream are already sorted
from best match to worst.
The returned value is an arbitrary integer value, valid only for
the search terms involved in the search operation that yielded
this component as a result.
a #AsComponent instance.
the source package name.
a #AsComponent instance.
Get a list of associated suggestions.
an array of #AsSuggested instances
a #AsComponent instance.
Get a short description of this component.
the summary.
a #AsComponent instance.
Get the internal locale to component summary
mapping table.
locale->summary map
an #AsComponent instance.
Get an array of items that are supported by this component,
e.g. to indicate support for a specific piece of hardware.
an array
a #AsComponent instance.
Return a score between 0 and 100 determining how compatible the component
is with the system configuration provided as parameter.
0 means the componsnt will not work at all, while 100 is best compatibility.
a compatibility score between 0 and 100
a #AsComponent instance.
an #AsSystemInfo to use for system information.
if %TRUE, treat system info as neutral template, ignoring any peripheral devices or kernel relations.
Receive the resulting check results
Gets the UNIX timestamp for the date when this component
is out of support (end-of-life) and will receive no more
updates, not even security fixes.
UNIX timestamp, or 0 for unset or invalid.
a #AsComponent instance.
Get a #GPtrArray of #AsTranslation objects describing the
translation systems and translation-ids (e.g. Gettext domains) used
by this software component.
Only set for metainfo files.
An array of #AsTranslation objects.
an #AsComponent instance.
Gets a URL.
string, or %NULL if unset
a #AsComponent instance.
the URL kind, e.g. %AS_URL_KIND_HOMEPAGE.
%TRUE if this component has a bundle associated.
a #AsComponent instance.
Check if component is in the specified category.
%TRUE if the component is in the specified category.
an #AsComponent object
the specified category to check
Test if the component is tagged with the selected
tag.
%TRUE if tag exists.
a #AsComponent instance.
The namespace the tag belongs to
The tag name
Add a key and value pair to the custom data table.
%TRUE if the key did not exist yet.
An #AsComponent.
Key name.
A string value.
Check if this component is compulsory for the given desktop.
%TRUE if compulsory, %FALSE otherwise.
an #AsComponent object
the desktop-id to test for
Returns %TRUE if this component is free and open source software.
To determine this status, this function will check if it comes
from a vetted free-software-only source or whether its licenses
are only free software licenses.
%TRUE if this component is free software.
a #AsComponent instance.
Whether this component's metadata should be ignored.
a #AsComponent instance.
Test if the component @cpt is a member of category @category.
a #AsComponent instance.
The category to test.
Check if the essential properties of this Component are
populated with useful data.
TRUE if the component data was validated successfully.
a #AsComponent instance.
Load metadata for this component from an XML string.
You normally do not want to use this method directly and instead use the more
convenient API of #AsMetadata to create and update components.
If this function returns %TRUE, a valid component is returned unless the selected
format was %AS_FORMAT_KIND_DESKTOP_ENTRY, in which case a component ID will have to
be set explicitly by the caller in order to make the component valid.
%TRUE on success.
an #AsComponent instance.
an #AsContext instance.
the format of the data to load, e.g. %AS_FORMAT_KIND_XML
the data to load.
Get release information for this component, download it
if necessary.
Release information as #AsReleaseList, or %NULL if loading failed.
a #AsComponent instance.
Remove a tag from this component
%TRUE if the tag was removed.
a #AsComponent instance.
The namespace the tag belongs to
The tag name
Searches component data for a specific keyword.
a match scrore, where 0 is no match and 100 is the best match.
a #AsComponent instance.
the search term.
Searches component data for all the specific keywords.
a match score, where 0 is no match and larger numbers are better
matches.
a #AsComponent instance.
the search terms.
Set the branch that the component instance was sourced from.
a #AsComponent instance.
the branch, e.g. "master" or "3-16".
Set branding for this component.
a #AsComponent instance.
an #AsBranding instance.
Mark this component to be compulsory for the specified desktop environment.
a #AsComponent instance.
The name of the desktop.
Sets the document context this component is associated
with.
a #AsComponent instance.
the #AsContext.
Set the active locale on the context assoaiacted with this component,
creating a new context for the component if none exists yet.
Please not that this will flip the locale of all other components and
entities that use the same context as well!
This function is just a convenience method, and does not replace
proper #AsContext management.
a #AsComponent instance.
the new locale.
Set the session-specific unique metadata identifier for this
component.
If two components have a different data_id but the same ID,
they will be treated as independent sets of metadata describing
the same component type.
a #AsComponent instance.
the unique session-specific identifier.
Sets an end-of-life date for this component.
a #AsComponent instance.
the EOL date in ISO8601 format.
Set long description for this component.
A valid #AsComponent
The long description
The BCP47 locale for this value, or %NULL to use the current active one.
Set the the component's developer.
a #AsComponent instance.
the new #AsDeveloper
Set the AppStream identifier for this component.
a #AsComponent instance.
the unique identifier.
Set keywords for this component, replacing all existing ones for the selected locale.
a #AsComponent instance.
Array of keywords
BCP47 locale of the values, or %NULL to use current locale.
Set to %TRUE if the keywords array should be copied, %FALSE to set by reference.
Sets the #AsComponentKind of this component.
a #AsComponent instance.
the #AsComponentKind.
Sets the #AsMergeKind for this component.
a #AsComponent instance.
the #AsMergeKind.
Set the license this metadata is licensed under.
a #AsComponent instance.
the metadata license.
Set a human-readable name for this component.
A valid #AsComponent
The name
The BCP47 locale for this value, or %NULL to use the current active one.
Set a variant suffix for the component name
(only to be displayed if components have the same name).
a #AsComponent instance.
the developer or developer team name
the BCP47 locale, or %NULL. e.g. "en-GB"
a #AsComponent instance.
the origin.
Set the package name that provides this component.
a #AsComponent instance.
the package name
Set a list of package names this component consists of.
(This should usually be just one package name)
a #AsComponent instance.
Sets the priority of this component.
This method is used internally.
a #AsComponent instance.
the given priority
Set the component's project group.
a #AsComponent instance.
the project group.
Set the project license.
a #AsComponent instance.
the project license.
Set a new set of releases for this component.
a #AsComponent instance.
the #AsReleaseList to use.
Sets the #AsComponentScope of this component.
a #AsComponent instance.
the #AsComponentKind.
Sets the sorting score of this component.
a #AsComponent instance.
the given sorting score
a #AsComponent instance.
the source package name.
Set a short description for this component.
A valid #AsComponent
The summary
The BCP47 locale for this value, or %NULL to use the current active one.
Reorder the screenshots to prioritize a certain environment or style, instead of using the default
screenshot order.
If both "environment" and "style" are %NULL, the previous default order is restored.
a #AsComponent instance.
a GUI environment string, e.g. "plasma" or "gnome"
and environment style string, e.g. "light" or "dark"
if %TRUE, order screenshots of the given style earlier than ones of the given environment.
Returns a string identifying this component.
(useful for debugging)
A descriptive string
a #AsComponent instance.
Serialize this component into an XML string.
You normally do not want to use this method directly and instead use the more
convenient API of #AsMetadata to serialize components.
%TRUE on success.
an #AsComponent instance.
an #AsContext instance.
string array of categories
the description
hash map of icon urls and sizes
the unique identifier
string array of keywords
the #AsComponentKind of this component
the name
string array of packages name
the project group
the project license
An array of #AsScreenshot instances
the summary
the urls associated with this component
Creates a new #AsComponentBox.
an #AsComponentBox
Creates a new #AsComponentBox with the simplest parameters,
so it is basically an array storage without overhead.
Only the most basic checks on inserted components will be performed,
and it is assumed that the inserted components have been checked
already prior to insertion.
an #AsComponentBox
Add a component to the box. Returns an error if we could not add it
(most likely due to component box constraints).
%TRUE on success.
An instance of #AsComponentBox.
Get the contents of this component box as #GPtrArray.
an array of #AsComponent instances.
An instance of #AsComponentBox.
Remove all contents of this component box.
An instance of #AsComponentBox.
Get the flags this component box was constructed with.
The #AsComponentBoxFlags that are in effect.
An instance of #AsComponentBox.
Get the amount of components in this box.
Amount of components.
An instance of #AsComponentBox.
Retrieve a component at the respective index from the internal
component array.
An #AsComponent or %NULL
An instance of #AsComponentBox.
The component index.
Check if there are any components present.
%TRUE if this component box is empty.
An instance of #AsComponentBox.
Remove a component at the specified index.
Please ensure that the index is not larger than
%as_component_box_get_size() - 1
An instance of #AsComponentBox.
the index of the component to remove.
Sort components to bring them into a deterministic order.
An instance of #AsComponentBox.
Sort components by their (search) match score.
An instance of #AsComponentBox.
Flags controlling the component box behavior.
No flags.
Only perform the most basic verification.
The type of an #AsComponent.
Type invalid or not known
A generic (= without specialized type) component
An application with a .desktop-file
A console application
A web application
A system service launched by the init system
An extension of existing software, which does not run standalone
An application runtime platform
A font
A multimedia codec
An input-method provider
A computer operating system
Firmware
A driver
Software localization (usually l10n resources)
A remote software or data source
An icon theme following the XDG specification
Converts the text representation to an enumerated value.
a #AsComponentKind or %AS_COMPONENT_KIND_UNKNOWN for unknown
the string.
Converts the enumerated value to an text representation.
string version of @kind
the #AsComponentKind.
Scope of the #AsComponent (system-wide or user-scope)
Unknown scope
System scope
User scope
Converts the text representation to an enumerated value.
a #AsComponentScope or %AS_COMPONENT_SCOPE_UNKNOWN for unknown
the string.
Converts the enumerated value to an text representation.
string version of @scope
the #AsComponentScope.
Creates a new #AsContentRating.
a #AsContentRating
Gets the highest #AsContentRatingValue which is allowed to be seen by the
given Common Sense Media @age for the given subsection @id.
For example, if the CSM age mappings for `violence-bloodshed` are:
* age ≥ 0 for %AS_CONTENT_RATING_VALUE_NONE
* age ≥ 9 for %AS_CONTENT_RATING_VALUE_MILD
* age ≥ 11 for %AS_CONTENT_RATING_VALUE_MODERATE
* age ≥ 18 for %AS_CONTENT_RATING_VALUE_INTENSE
then calling this function with `violence-bloodshed` and @age set to 17 would
return %AS_CONTENT_RATING_VALUE_MODERATE. Calling it with age 18 would
return %AS_CONTENT_RATING_VALUE_INTENSE.
the #AsContentRatingValue, or %AS_CONTENT_RATING_VALUE_UNKNOWN if
unknown
the subsection ID e.g. `violence-cartoon`
the CSM age
Get a human-readable description of what content would be expected to
require the content rating attribute given by @id and @value.
a human-readable description of @id and @value
the subsection ID e.g. `violence-cartoon`
the #AsContentRatingValue, e.g. %AS_CONTENT_RATING_VALUE_INTENSE
Gets the Common Sense Media approved age for a specific rating level.
The age in years, or 0 for no details.
the subsection ID e.g. `violence-cartoon`
the #AsContentRatingValue, e.g. %AS_CONTENT_RATING_VALUE_INTENSE
Returns a list of all the valid OARS content rating attribute IDs as could
be passed to as_content_rating_add_attribute() or
as_content_rating_attribute_to_csm_age().
a %NULL-terminated
array of IDs, to be freed with g_free() (the element values are owned by
libappstream and must not be freed)
Adds an attribute value to the content rating.
a #AsContentRating instance.
a content rating ID, e.g. `money-gambling`.
a #AsContentRatingValue, e.g. %AS_CONTENT_RATING_VALUE_MODERATE.
Gets the content_rating kind.
a string, e.g. "oars-1.0", or NULL
a #AsContentRating instance.
Gets the lowest Common Sense Media approved age for the content_rating block.
NOTE: these numbers are based on the data and descriptions available from
https://www.commonsensemedia.org/about-us/our-mission/about-our-ratings and
you may disagree with them.
You're free to disagree with these, and of course you should use your own
brain to work our if your child is able to cope with the concepts enumerated
here. Some 13 year olds may be fine with the concept of mutilation of body
parts; others may get nightmares.
The age in years, 0 for no rating, or G_MAXUINT for no details.
a #AsContentRating
Gets the set of ratings IDs which are present in this @content_rating. An
example of a ratings ID is `violence-bloodshed`.
The IDs are returned in lexicographical order.
%NULL-terminated
array of ratings IDs; each ratings ID is owned by the #AsContentRating and
must not be freed, but the container must be freed with g_free()
a #AsContentRating
Gets the value of a content rating key.
the #AsContentRatingValue, or %AS_CONTENT_RATING_VALUE_UNKNOWN
a #AsContentRating
A ratings ID, e.g. `violence-bloodshed`.
Sets the content rating kind.
a #AsContentRating instance.
the rating kind, e.g. "oars-1.0"
Sets the value of a content rating key.
a #AsContentRating
A ratings ID, e.g. `violence-bloodshed`.
A #AsContentRatingValue, e.g. %AS_CONTENT_RATING_VALUE_INTENSE
A content rating system for a particular territory.
Unknown ratings system
INCAA
ACB
DJCTQ
GSRR
PEGI
KAVI
USK
ESRA
CERO
OFLCNZ
Russia
MDA
GRAC
ESRB
IARC
Format @age as a human-readable string in the given rating @system. This is
the way to present system-specific strings in a UI.
a newly allocated formatted version of
@age, or %NULL if the given @system has no representation for @age
an #AsContentRatingSystem
a CSM age to format
Determine the most appropriate #AsContentRatingSystem for the given @locale.
Content rating systems are selected by territory. If no content rating system
seems suitable, %AS_CONTENT_RATING_SYSTEM_IARC is returned.
the most relevant #AsContentRatingSystem
a locale, in the format described in `man 3 setlocale`
Get the CSM ages corresponding to the entries returned by
as_content_rating_system_get_formatted_ages() for this @system.
an array of CSM ages
an #AsContentRatingSystem
return location for the length of the
returned array
Get an array of all the possible return values of
as_content_rating_system_format_age() for the given @system. The array is
sorted with youngest CSM age first.
%NULL-terminated array of human-readable age strings
an #AsContentRatingSystem
Get a human-readable string to identify @system. %NULL will be returned for
%AS_CONTENT_RATING_SYSTEM_UNKNOWN.
a human-readable string for @system, or %NULL if unknown
an #AsContentRatingSystem
The specified level of an content_rating rating ID.
Unknown value
None
A small amount
A moderate amount
An intense amount
Converts the text representation to an enumerated value.
a #AsContentRatingValue or %AS_CONTENT_RATING_VALUE_UNKNOWN for unknown
the string.
Converts the enumerated value to an text representation.
string version of @value
the #AsContentRatingValue.
Creates a new #AsContext.
an #AsContext
The name of the file the data originates from.
a #AsContext instance.
The AppStream format version.
a #AsContext instance.
The active locale in BCP47 format.
a #AsContext instance.
%TRUE if all locale should be parsed.
a #AsContext instance.
The media base URL.
a #AsContext instance.
The data origin.
a #AsContext instance.
The data priority.
a #AsContext instance.
The document style.
a #AsContext instance.
The #AsValueFlags that are set on @cpt.
a #AsContext instance.
%TRUE if a media base URL is set.
a #AsContext instance.
Sets the file name we are loading data from.
a #AsContext instance.
the new file name.
Sets the AppStream format version.
a #AsContext instance.
the new format version.
Sets the active locale.
If the magic value "ALL" is used, the current system locale will be used
for data reading, but when writing data all locale will be written.
a #AsContext instance.
a POSIX or BCP47 locale, or %NULL. e.g. "en_GB"
Sets the media base URL.
a #AsContext instance.
the new value.
Sets the data origin.
a #AsContext instance.
the new value.
Sets the data priority.
a #AsContext instance.
the new priority.
Sets the AppStream document style.
a #AsContext instance.
the new document style.
a #AsContext instance.
#AsValueFlags to set on @cpt.
Kind of an input method for users to control software
Unknown kind
Mouse/cursors/other precision pointing device
Keyboard input
Console / command-line interface
Touch input
Gamepad input (any game controller with wheels/buttons/joysticks)
Control via voice recognition/activation
Computer vision / visual object and sign detection
Input via a television remote
Graphics tablet input
Converts the text representation to an enumerated value.
a #AsControlKind or %AS_CONTROL_KIND_UNKNOWN for unknown
the string.
Converts the enumerated value to a text representation.
string version of @kind
the #AsControlKind.
The flags used when matching unique IDs.
No flags set
Scope, e.g. a #AsComponentScope
Bundle kind, e.g. a #AsBundleKind
Origin
Component AppStream ID
Branch
Creates a new #AsDeveloper.
a #AsDeveloper
Gets a unique ID for this particular developer, e.g. "gnome" or "mozilla.org"
the unique developer ID, or %NULL if none was set.
an #AsDeveloper instance.
Get a localized developer, or development team name.
the developer name.
an #AsDeveloper instance.
Sets the unique ID of this developer.
an #AsDeveloper instance.
a developer ID, e.g. "mozilla.org"
Set the the developer or development team name.
an #AsDeveloper instance.
the developer or developer team name
the BCP47 locale, or %NULL. e.g. "en-GB"
Side a display_length requirement is for.
Unknown
Shortest side of the display rectangle.
Longest side of the display rectangle.
Converts the text representation to an enumerated value.
a #AsDisplaySideKind or %AS_DISPLAY_SIDE_KIND_UNKNOWN for unknown
the string.
Converts the enumerated value to a text representation.
string version of @kind
the #AsDisplaySideKind.
Format of the AppStream metadata.
Unknown metadata format.
AppStream XML metadata.
AppStream YAML (DEP-11) metadata.
XDG Desktop Entry data.
Converts the text representation to an enumerated value.
a #AsFormatKind or %AS_FORMAT_KIND_UNKNOWN for unknown
the string.
Converts the enumerated value to an text representation.
string version of @kind
the #AsFormatKind.
There are a few differences between AppStream's metainfo files (shipped by upstream projects)
and the catalog metadata (shipped by distributors).
The data source kind indicates which style we should process.
Usually you do not want to set this explicitly.
The format style is unknown.
Parse AppStream upstream metadata (metainfo files)
Parse AppStream metadata catalog (shipped by software distributors)
Format version / API level of the AppStream metadata.
Unknown format version
1.0
Converts the text representation to an enumerated value.
a #AsFormatVersion. For unknown, the highest version
number is assumed.
the string.
Converts the enumerated value to an text representation.
string version of @version
the #AsFormatKind.
Creates a new #AsIcon.
a #AsIcon
The absolute path for the icon on disk.
This is only set for icons of kind %AS_ICON_KIND_LOCAL or
%AS_ICON_KIND_CACHED.
a #AsIcon instance.
The icon height in pixels, or 0 if unknown.
a #AsIcon instance.
Gets the icon kind.
the #AsIconKind
a #AsIcon instance.
the stock name of the icon. In case the icon is not of kind
"stock", the basename of the icon filename or URL is returned.
a #AsIcon instance.
The icon scaling factor.
a #AsIcon instance.
Gets the icon URL, pointing at a remote location. HTTPS and FTP urls are allowed.
This property is only set for icons of type %AS_ICON_KIND_REMOTE
the URL
a #AsIcon instance.
The icon width in pixels, or 0 if unknown.
a #AsIcon instance.
Sets the icon absolute filename.
a #AsIcon instance.
the new icon URL.
Sets the icon height.
a #AsIcon instance.
the height in pixels.
Sets the icon kind.
a #AsIcon instance.
the #AsIconKind, e.g. %AS_ICON_KIND_CACHED.
Sets the stock name or basename to use for the icon.
a #AsIcon instance.
the icon stock name, e.g. "gwenview"
Sets the icon scaling factor used for HiDPI displays.
a #AsIcon instance.
the icon scaling factor.
Sets the icon URL.
a #AsIcon instance.
the new icon URL.
Sets the icon width.
a #AsIcon instance.
the width in pixels.
The icon type.
Unknown icon kind
Stock icon name
Icon in the internal caches
Local icon name
Remote icon URL
Converts the text representation to an enumerated value.
a #AsIconKind or %AS_ICON_KIND_UNKNOWN for unknown
the string.
Converts the enumerated value to an text representation.
string version of @kind
the %AsIconKind.
Creates a new #AsImage.
a #AsImage
Gets the image height.
height in pixels
an #AsImage instance.
Gets the image kind.
the #AsImageKind
an #AsImage instance.
Get locale for this image.
Locale string
an #AsImage instance.
Gets the image integer scale factor.
the scale factor.
an #AsImage instance.
Gets the full qualified URL for the image, usually pointing at some mirror.
URL
an #AsImage instance.
Gets the image width.
width in pixels
an #AsImage instance.
Sets the image height.
an #AsImage instance.
the height in pixels.
Sets the image kind.
an #AsImage instance.
the #AsImageKind, e.g. %AS_IMAGE_KIND_THUMBNAIL.
Sets the locale for this image.
an #AsImage instance.
the BCP47 locale string.
Sets the image scale factor.
an #AsImage instance.
the integer scale factor, e.g. 2
Sets the fully-qualified mirror URL to use for the image.
an #AsImage instance.
the URL.
Sets the image width.
an #AsImage instance.
the width in pixels.
The image type.
Type invalid or not known
The source image at full resolution
A thumbnail at reduced resolution
Converts the text representation to an enumerated value.
a #AsImageKind, or %AS_IMAGE_KIND_UNKNOWN for unknown.
the string.
Converts the enumerated value to an text representation.
string version of @kind
the #AsImageKind.
Different internet connectivity requirements or recommendations for an
application.
Unknown
Always requires/recommends internet
Application is offline-only
Requires/Recommends internet on first run only
Converts the text representation to an enumerated value.
a #AsInternetKind or %AS_INTERNET_KIND_UNKNOWN for unknown
the string.
Converts the enumerated value to a text representation.
string version of @kind
the #AsInternetKind.
Creates a new #AsIssue.
an #AsIssue
Gets the issue ID (usually a bug number or CVE ID)
the ID.
a #AsIssue instance.
Gets the issue type.
the #AsIssueKind
a #AsIssue instance.
Gets the URL associacted with this issue, usually
referencing a bug report or issue description.
the URL.
a #AsIssue instance.
Sets the issue ID.
a #AsIssue instance.
the new ID.
Sets the issue type.
a #AsIssue instance.
the #AsIssueKind, e.g. %AS_ISSUE_KIND_SHA256.
Sets an URL describing this issue.
a #AsIssue instance.
the new URL.
Checksums supported by #AsRelease
Unknown issue type
Generic issue type
Common Vulnerabilities and Exposures issue
Converts the text representation to an enumerated value.
a #AsIssueKind or %AS_ISSUE_KIND_UNKNOWN for unknown
the string.
Converts the enumerated value to an text representation.
string version of @kind
the %AsIssueKind.
The severity of an issue found by #AsValidator
The severity is unknown.
Pedantic information about ways to improve the data, but could also be ignored.
Non-essential information on how to improve metadata, no immediate action needed.
Something metadata issue which should be fixed as soon as possible.
There is a serious, fatal error in your metadata
Converts the text representation to an enumerated value.
a #AsIssueSeverity, or %AS_ISSUE_SEVERITY_UNKNOWN for unknown.
the string.
Converts the enumerated value to an text representation.
string version of @severity
the #AsIssueSeverity.
Creates a new #AsLaunchable.
a #AsLaunchable
Add a new launchable entry.
a #AsLaunchable instance.
Get an array of launchable entries.
An string list of launch entries.
a #AsLaunchable instance.
The launch system for the entries this #AsLaunchable
object stores.
an enum of type #AsLaunchableKind
a #AsLaunchable instance.
Set the launch system for the entries this #AsLaunchable
object stores.
a #AsLaunchable instance.
the new #AsLaunchableKind
Type of launch system the entries belong to.
Unknown kind
Launch by desktop-id
A systemd/SysV-init service name
A Cockpit manifest / package name
A web HTTPS URL to launch a web application from
Converts the text representation to an enumerated value.
a #AsLaunchableKind or %AS_LAUNCHABLE_KIND_UNKNOWN for unknown
the string.
Converts the enumerated value to a text representation.
string version of @kind
the #AsLaunchableKind.
Text markup types.
Unknown markup.
XML markup.
Simple text with unicode symbols.
Markdown
Defines how #AsComponent data should be merged if the component is
set for merge.
No merge is happening.
Merge replacing data of target.
Merge appending data to target.
Remove the entire component if it matches.
Converts the text representation to an enumerated value.
a #AsMergeKind or %AS_MERGE_KIND_NONE for unknown
the string.
Converts the enumerated value to an text representation.
string version of @kind
the #AsMergeKind.
Creates a new #AsMetadata.
a #AsMetadata
Guesses the AppStream metadata style (metainfo or catalog) based on
the filename.
An #AsFormatStyle, e.g. %AS_FORMAT_STYLE_METAINFO.
a file name
Add an #AsComponent to the list of components.
This can be used to add multiple components in order to
produce a distro-XML AppStream metadata file.
Remove all previously parsed or manually added components.
an instance of #AsMetadata.
Remove all previously parsed releases entries.
a #AsMetadata instance.
Convert an #AsComponent to metainfo data.
This will always be XML, YAML is no valid format for metainfo files.
The amount of localization included in the metadata depends on how the #AsComponent
was initially loaded and whether it contains data for all locale.
The first #AsComponent added to the internal list will be transformed.
In case no component is present, %NULL is returned.
A string containing the XML metadata. Free with g_free()
An instance of #AsMetadata.
The format to use (XML or YAML)
Serialize all #AsComponent instances into AppStream
catalog metadata.
%NULL is returned if there is nothing to serialize.
A string containing the YAML or XML data. Free with g_free()
An instance of #AsMetadata.
The format to serialize the data to (XML or YAML).
The architecture of AppStream distro metadata
an #AsMetadata instance.
Gets the #AsComponent which has been parsed from the XML.
If the AppStream XML contained multiple components, return the last
component that has been parsed.
An #AsComponent or %NULL
a #AsMetadata instance.
an #AsComponentBox of all parsed components
a #AsMetadata instance.
Get the metadata parsing mode.
a #AsMetadata instance.
The AppStream metadata format version.
an #AsMetadata instance.
Gets the current active locale for parsing metadata,
or "ALL" if all locales are read.
Locale used for metadata parsing.
a #AsMetadata instance.
The media URL prefix.
an #AsMetadata instance.
The origin of AppStream distro metadata
an #AsMetadata instance.
Get the metadata parse flags.
a #AsMetadata instance.
Gets the recently parsed #AsReleaseList entry.
An #AsReleaseList or %NULL
a #AsMetadata instance.
A #GPtrArray of all parsed release metadata.
a #AsMetadata instance.
Whether existing components should be updates with the parsed data,
instead of creating new ones.
an #AsMetadata instance.
Whether we will write a header/root node in catalog metadata.
an #AsMetadata instance.
Parses any AppStream metadata into one or more #AsComponent instances.
%TRUE on success.
An instance of #AsMetadata.
Metadata describing one or more software components.
The format of the data (XML or YAML).
Parses any AppStream metadata into one or more #AsComponent instances.
%TRUE on success.
An instance of #AsMetadata.
Metadata describing one or more software components as string.
Length of @data, or -1 if length is unknown and @data is NULL-terminated.
The format of the data (XML or YAML).
Parses XDG Desktop Entry metadata and adds it to the list of parsed entities.
Please note that not every desktop-entry file will result in a valid component
being generated, even if parsing succeeds without error (The desktiop-entry file
may be valid but not generate a component on purpose).
%TRUE if the file was parsed without error.
An instance of #AsMetadata.
The component-id the new #AsComponent should have.
Metadata describing one or more software components.
The data length, or -1 if unknown and null-terminated.
Parses an AppStream upstream metadata file.
If @file does not exist, %G_IO_ERROR_NOT_FOUND will be returned. Other
#GIOErrors and #AsMetadataErrors may be returned as appropriate.
%TRUE if the file was parsed without error.
A valid #AsMetadata instance
#GFile for the upstream metadata
The format the data is in, or %AS_FORMAT_KIND_UNKNOWN if not known.
Parses any AppStream release metadata into #AsRelease objects.
You can retrieve the last parsed #AsReleaseList using %as_metadata_get_release_list.
%TRUE on success.
An instance of #AsMetadata.
Metadata describing release notes.
Parses any AppStream release metadata into #AsRelease objects
using the provided file.
You can retrieve the last parsed #AsReleaseList using %as_metadata_get_release_list.
%TRUE on success.
A valid #AsMetadata instance
#GFile for the release metadata
Convert a releases of an #AsReleaseList entity into a release metadata XML representation.
The XML representation or %NULL on error.
A valid #AsMetadata instance
the #AsReleaseList to convert.
Serialize all #AsComponent instances to XML or YAML metadata and save
the data to a file.
An existing file at the same location will be overridden.
%TRUE if the file was written without error.
An instance of #AsMetadata.
The filename for the new metadata file.
Serialize #AsComponent instance to XML and save it to file.
An existing file at the same location will be overridden.
%TRUE if the file was written without error.
The filename for the new metadata file.
The format to save this file in. Only XML is supported at time.
Set the architecture the components in this metadata belong to.
an #AsMetadata instance.
an architecture string.
Sets the current metadata parsing mode.
a #AsMetadata instance.
the #AsFormatStyle.
Set the current AppStream format version that we should generate data for
or be able to read.
a #AsMetadata instance.
the AppStream metadata format version as #AsFormatVersion.
Sets the locale which should be read when processing metadata.
All other locales are ignored, which increases parsing speed and
reduces memory usage.
If you set the locale to "ALL", all locales will be read.
a #AsMetadata instance.
the BCP47 locale.
Set the base URL for all media links referenced in the metadata,
or %NULL if every component has absolute URLs.
an #AsMetadata instance.
the base URL.
Set the origin of AppStream distro metadata
an #AsMetadata instance.
the origin of AppStream distro metadata.
Sets the current metadata parse flags.
a #AsMetadata instance.
the #AsParseFlags.
If set to %TRUE, the parser will not create new components but
instead update existing components in the pool with new metadata.
NOTE: Right now, this feature is only implemented for metainfo XML parsing!
an #AsMetadata instance.
A boolean value.
If set to %TRUE, tehe metadata writer will omit writing a DEP-11
header document when in YAML mode, and will not write a root components node
when writing XML data.
Please keep in mind that this will create an invalid DEP-11 YAML AppStream
catalog metadata file, and an invalid XML file.
This parameter should only be changed e.g. by the appstream-generator tool.
NOTE: Right now, this feature is only implemented for YAML!
an #AsMetadata instance.
A boolean value.
A metadata processing error.
Generic failure.
Unable to parse the metadata file.
Expected catalog metadata but got metainfo metadata, or vice versa.
We expected a component in the pool, but couldn't find one.
A essential value is missing in the source document.
An error quark.
The flags used when installing and removing metadata files.
An unknown/invalid location.
Installed by the vendor, shared
Installed as metadata into /var/lib, shared
Installed as metadata into /var/cache, shared
Installed for the current user
Influence certain aspects of how AppStream metadata is parsed.
No flags.
Do not process the media_baseurl document property.
Creates a new #AsPool.
a #AsPool
Register a set of components with the pool temporarily.
Data from components added like this will not be cached.
%TRUE if the new components were successfully added to the pool.
An instance of #AsPool
Components to add to the pool.
Add an additional non-standard location to the metadata pool where metadata will be read from.
If @directory contains a "xml", "xmls", "yaml" or "icons" subdirectory (or all of them),
those paths will be added to the search paths instead.
An instance of #AsPool.
An existing filesystem location.
The expected format style of the metadata, e.g. %AS_FORMAT_STYLE_CATALOG
Convenience function to add one or multiple #AsPoolFlags to
the flag set of this data pool.
An instance of #AsPool.
The #AsPoolFlags to add.
Splits up a string into an array of tokens that are suitable for searching.
This includes stripping whitespaces, casefolding the terms and removing greylist words.
This function is usually called automatically when needed, you will only need to
run it explicitly when you need to check which search tokens the pool will actually
use internally for a given phrase.
(array zero-terminated=1): Valid tokens to search for, or %NULL for error
An instance of #AsPool.
the (user-provided) search phrase.
Remove all metadata from the pool, data will be reloaded
once %as_pool_load is called again.
An #AsPool.
Get a list of found components.
an #AsComponentBox.
An instance of #AsPool.
Find components that are provided by a bundle with a specific ID by its prefix.
For example, given a AS_BUNDLE_KIND_FLATPAK and a bundle_id "org.kde.dolphin/",
it will list all the components that bundle dolphin. If the bundle_id is
"org.kde.dolphin/x86_64" it will give those with also the architecture.
an #AsComponentBox.
An instance of #AsPool.
The kind of the bundle we are looking for
The bundle ID to match, as specified in #AsBundle
%TRUE to match the ID by prefix, %FALSE to perform an absolute match.
Return a list of components which are in all of the categories.
an #AsComponentBox of found components.
An instance of #AsDatabase.
An array of XDG categories to include.
Find components extending the component with the given ID. They can then be registered to the
#AsComponent they extend via %as_component_add_addon.
If the %AS_POOL_FLAG_RESOLVE_ADDONS pool flag is set, addons are automatically resolved and
this explicit function is not needed, but overall query time will be increased (so only use
this flag if you will be resolving addon information later anyway).
an #AsComponentBox.
An instance of #AsPool.
The ID of the component to search extensions for.
Get a specific component by its ID.
This function may contain multiple results if we have
data describing this component from multiple scopes/origin types.
an #AsComponentBox.
An instance of #AsPool.
The AppStream-ID to look for.
Return a list of all components in the pool which are of a certain kind.
an #AsComponentBox of found components.
An instance of #AsDatabase.
An #AsComponentKind.
Find components in the AppStream data pool which provide a specific launchable.
See #AsLaunchable for details on launchables, or refer to the AppStream specification.
an #AsComponentBox of found components.
An instance of #AsPool.
An #AsLaunchableKind
The ID of the launchable.
Find components in the AppStream data pool which provide a certain item.
an #AsComponentBox of found components.
An instance of #AsPool.
An #AsProvidesKind
The value of the provided item.
Get the #AsPoolFlags for this data pool.
An instance of #AsPool.
Gets the currently used locale.
Locale used for metadata parsing.
An instance of #AsPool.
Check if this pool contains any data.
%TRUE if the pool is empty.
An instance of #AsPool.
Builds an index of all found components in the watched locations.
The function will try to get as much data into the pool as possible, so even if
the update completes with %FALSE, it might still have added components to the pool.
The function will load from all possible data sources, preferring caches if they
are up to date.
%TRUE if update completed without error.
An instance of #AsPool.
a #GCancellable.
Asynchronously loads data from all registered locations.
Equivalent to as_pool_load() (but asynchronous)
An instance of #AsPool.
a #GCancellable.
A #GAsyncReadyCallback
Data to pass to @callback
Retrieve the result of as_pool_load_async().
%TRUE for success
An instance of #AsPool.
A #GAsyncResult
Convenience function to remove one or multiple #AsPoolFlags from
the flag set of this data pool.
An instance of #AsPool.
The #AsPoolFlags to remove.
Remove all explicitly added metadata locations.
An instance of #AsPool.
Search for a list of components matching the search term.
The list will be ordered by match score.
an #AsComponentBox of the found components.
An instance of #AsPool
A search string
Set the #AsPoolFlags for this data pool.
An instance of #AsPool.
The new #AsPoolFlags.
This is a convenience function that enables or disables loading of metadata
from well-known standard locations by configuring the #AsPoolFlags of this
#AsPool accordingly.
Data affected by this includes the OS data catalog, metainfo, desktop-entry
files and Flatpak data.
If you need more fine-grained control, set the #AsPoolFlags explicitly.
An instance of #AsPool.
Whether loading of data from standard locations should be enabled.
Sets the current locale which should be used when parsing metadata.
An instance of #AsPool.
the BCP47 or POSIX locale to use for this pool.
The ::changed signal is emitted when components have been added
or removed from the metadata pool.
A metadata pool error.
Generic failure
The pool was loaded, but we had to ignore some metadata.
An AppStream-ID collision occured (a component with that ID already existed in the pool)
Unable to write to *any* cache file (not even tmpfs writes worked)
The disk cache was broken and we could not automatically recover.
An error quark.
Flags controlling the metadata pool behavior.
No flags.
Load AppStream catalog metadata from OS locations.
Load MetaInfo data from OS locations.
Load components from desktop-entry files in OS locations.
Load AppStream catalog metadata from Flatpak.
Load fresh data even if an up-o-date cache is available.
Always resolve addons for returned components.
Prefer local metainfo data over the system-provided catalog data. Useful for previewing local data.
Monitor registered directories for changes, and auto-reload metadata if necessary.
Creates a new #AsProvided.
a #AsProvided
Add a new provided item.
a #AsProvided instance.
Get an array of provided data.
An string list of provided items.
a #AsProvided instance.
The kind of items this #AsProvided object stores.
an enum of type #AsProvidedKind
a #AsProvided instance.
Check if the current #AsProvided contains an item
of the given name.
%TRUE if found.
a #AsProvided instance.
the name of a provided item, e.g. "audio/x-vorbis" (in case the provided kind is a mimetype)
Set the kind of items this #AsProvided object stores.
a #AsProvided instance.
the new #AsProvidedKind
Type of the public interface components can provide.
Unknown kind
A shared library
A binary installed into a directory in PATH
Provides a handler for a mimetype
A font
A modalias
A Python 3 module
A DBus service name on the system bus.
A DBus service name on the user/session bus.
Firmware flashed at runtime.
Firmware flashed permanently to the device.
An AppStream component
Converts the text representation to an enumerated value.
a #AsProvidedKind or %AS_PROVIDED_KIND_UNKNOWN for unknown
the string.
Converts the enumerated value to a localized text representation,
using the plural forms (e.g. "Libraries" instead of "Library").
This can be useful when displaying provided items in GUI dialogs.
Pluralized, l10n string version of @kind
the #AsProvidedKind.
Converts the enumerated value to a text representation.
string version of @kind
the #AsProvidedKind.
Creates a new #AsReference.
a #AsReference
Gets the reference kind.
the #AsReferenceKind
an #AsReference instance.
Gets the name of the registry this reference is for,
if the reference is of type %AS_REFERENCE_KIND_REGISTRY.
Otherwise return %NULL.
the registry name.
an #AsReference instance.
Gets the value of this reference, e.g. a DOI if the
reference kind is %AS_REFERENCE_KIND_DOI or an URL
for %AS_REFERENCE_KIND_CITATION_CFF.
the value of this reference.
an #AsReference instance.
Sets the reference kind.
an #AsReference instance.
the #AsReferenceKind, e.g. %AS_REFERENCE_KIND_DOI.
Sets a name of a registry if this reference is of
type %AS_REFERENCE_KIND_REGISTRY.
an #AsReference instance.
name of an external registry.
Sets a value for this reference.
an #AsReference instance.
a value for this reference, e.g. "10.1000/182"
A reference type.
Unknown reference kind.
Digital Object Identifier
Web URL to a Citation File Format file
A generic registry.
Converts the text representation to an enumerated value.
a AsReferenceKind or %AS_REFERENCE_KIND_UNKNOWN for unknown
the string.
Converts the enumerated value to an text representation.
string version of @kind
the %AsReferenceKind.
Creates a new #AsRelation.
a #AsRelation
Calculate a compatibility sore between 0 and 100 based on the given set of
AsRelationCheckResults.
A compatibility of 100 means all requirements are satisfied and the component will
run perfectly on the confoguration it was tested agains, while 0 means it will not run at all.
an array of #AsRelationCheckResult
The version comparison type.
an enum of type #AsRelationCompare
a #AsRelation instance.
Gets the display side kind, in case this item is of
kind %AS_RELATION_ITEM_KIND_DISPLAY_LENGTH
a #AsDisplaySideKind or %AS_DISPLAY_SIDE_KIND_UNKNOWN
an #AsRelation instance.
The kind of the item of this #AsRelation.
an enum of type #AsRelationItemKind
a #AsRelation instance.
The type (and thereby strength) of this #AsRelation.
an enum of type #AsRelationKind
a #AsRelation instance.
Get the value of this #AsRelation item as #AsControlKind if the
type of this relation is %AS_RELATION_ITEM_KIND_CONTROL.
Otherwise return %AS_CONTROL_KIND_UNKNOWN
a #AsControlKind or %AS_CONTROL_KIND_UNKNOWN in case the item is not of the right kind.
an #AsRelation instance.
The value of this #AsRelation item as an integer. Returns 0 if the value was no integer.
an #AsRelation instance.
If this #AsRelation is of kind %AS_RELATION_ITEM_KIND_INTERNET, return the
minimum bandwidth requirement of the component, if set.
If the relation is of a different kind, or the requirement isn’t set, this
returns `0`.
The minimum bandwidth requirement, in Mbit/s.
an #AsRelation instance.
Get the value of this #AsRelation item as #AsInternetKind if the
type of this relation is %AS_RELATION_ITEM_KIND_INTERNET.
Otherwise return %AS_INTERNET_KIND_UNKNOWN
a #AsInternetKind or %AS_INTERNET_KIND_UNKNOWN in case the item is not of the right kind.
an #AsRelation instance.
In case this #AsRelation is of kind %AS_RELATION_ITEM_KIND_DISPLAY_LENGTH,
return the set logical pixel amount.
The logical pixel amount for this display length, value <= 0 on error.
an #AsRelation instance.
The value of the item this #AsRelation is about, as a string.
an #AsRelation instance.
The version of the item this #AsRelation is about.
an #AsRelation instance.
Test if this relation is satisfied on the current system or with the
provided #AsPool. If no #AsSystemInfo is found, a temporary one will be
created. If no #AsPool is provided, any component relationships can not
be validated and an error will be thrown.
an #AsRelationCheckResult with details about the result, or %NULL on error.
a #AsRelation instance.
an #AsSystemInfo to use for system information.
an #AsPool to find component dependencies in.
Set the version comparison type of this #AsRelation.
an #AsRelation instance.
the new #AsRelationCompare
Sets the display side kind, in case this item is of
kind %AS_RELATION_ITEM_KIND_DISPLAY_LENGTH
an #AsRelation instance.
the new #AsDisplaySideKind.
Set the kind of the item this #AsRelation is about.
a #AsRelation instance.
the new #AsRelationItemKind
Set the kind of this #AsRelation.
a #AsRelation instance.
the new #AsRelationKind
Set relation item value from an #AsControlKind.
an #AsRelation instance.
an #AsControlKind
Sets the item value as an integer, if the given item type
of this #AsRelation permits integer values.
an #AsRelation instance.
the new value.
Set relation item value from an #AsInternetKind.
an #AsRelation instance.
an #AsInternetKind
Sets the item value as logical pixel count. This requires the relation
to be of item kind %AS_RELATION_ITEM_KIND_DISPLAY_LENGTH.
an #AsRelation instance.
logical pixel count.
Sets the item value as a string, if the given item type
of this #AsRelation permits string values.
an #AsRelation instance.
the new value.
Sets the item version.
an #AsRelation instance.
the new version.
Tests whether the version number of this #AsRelation is fulfilled by
@version. Whether the given version is sufficient to fulfill the version
requirement of this #AsRelation is determined by its comparison resraint.
%TRUE if the version from the parameter is sufficient.
an #AsRelation instance.
a version number, e.g. `1.2.0`
Creates a new #AsRelationCheckResult.
a #AsRelationCheckResult
Retrieve the error code, in case this result represents an error.
an #AsRelationError
an #AsRelationCheckResult instance.
Get a human-readable message about the state of this relation.
May be %NULL in case the relation is satisfied and there is no further information about it.
a human-readable message about this relation's state.
an #AsRelationCheckResult instance.
Get the relation that this check result was generated for.
an #AsRelation or %NULL
an #AsRelationCheckResult instance.
Returns the status of this relation check result.
If the status is %AS_RELATION_STATUS_ERROR, an error message will
have been set as message.
an #AsRelationStatus
an #AsRelationCheckResult instance.
Set the error code in case this result represents an error.
an #AsRelationCheckResult instance.
the #AsRelationError
Set a human-readable information message about the satisfaction state
of the dependency under the checked system configuration.
an #AsRelationCheckResult instance.
the new message
Set an #AsRelation to associate with this check result.
an #AsRelationCheckResult instance.
the #AsRelation
Set the outcome of this relation check result.
an #AsRelationCheckResult instance.
the new #AsRelationStatus
The relational comparison type.
Comparison predicate invalid or not known
Equal to
Not equal to
Less than
Greater than
Less than or equal to
Greater than or equal to
Converts the text representation to an enumerated value.
a #AsRelationCompare, or %AS_RELATION_COMPARE_UNKNOWN for unknown.
the string.
Converts the enumerated value to an text representation.
The enum is converted into a two-letter identifier ("eq", "ge", etc.)
for use in the XML representation.
string version of @compare
the #AsRelationCompare.
Converts the enumerated value to an text representation.
The enum is converted into an identifier consisting of two
mathematical comparison operators ("==", ">=", etc.)
for use in the YAML representation and user interfaces.
string version of @compare
the #AsRelationCompare.
The error type.
Generic failure
A metadata value was bad.
Some check was not (yet) implemented.
An error quark.
Type of the item an #AsRelation is for.
Unknown kind
A component ID
A hardware modalias
An operating system kernel (like Linux)
A system RAM requirement
A device firmware requirement (used by fwupd)
An input method for users to control software
Display edge length
A Computer Hardware ID (CHID) to depend on system hardware
Internet connectivity (Since: 0.15.5)
Converts the text representation to an enumerated value.
a #AsRelationItemKind or %AS_RELATION_ITEM_KIND_UNKNOWN for unknown
the string.
Converts the enumerated value to a text representation.
string version of @kind
the #AsRelationKind.
Type of a component's relation to other items.
Unknown kind
The referenced item is required by the component
The referenced item is recommended
The referenced item is supported
Converts the text representation to an enumerated value.
a #AsRelationKind or %AS_RELATION_KIND_UNKNOWN for unknown
the string.
Converts the enumerated value to a text representation.
string version of @kind
the #AsRelationKind.
Status of a relation check result.
Unknown status.
An error occured and the status could not be checked.
The relation is not satisfied.
The relation is satisfied.
Creates a new #AsRelease.
a #AsRelease
Add an artifact (binary / source download) for this release.
An instance of #AsRelease.
The #AsArtifact.
Add information about a (resolved) issue to this release.
An instance of #AsRelease.
The #AsIssue.
Add a tag to this release.
%TRUE if the tag was added.
an #AsRelease instance.
The namespace the tag belongs to
The tag name
Remove all tags associated with this release.
an #AsRelease instance.
Get a list of all downloadable artifacts that are associated with
this release.
an array of #AsArtifact objects.
the #AsContext associated with this release.
This function may return %NULL if no context is set.
An instance of #AsRelease.
Gets the release date.
The date in ISO8601 format.
a #AsRelease instance.
Gets the end-of-life date for this release.
The EOL date in ISO8601 format.
a #AsRelease instance.
Gets the release description markup for a given locale.
markup, or %NULL for not set or invalid
a #AsRelease instance.
Get a list of all issues resolved by this release.
an array of #AsIssue objects.
Gets the type of the release.
(development or stable release)
a #AsRelease instance.
Gets the release timestamp.
timestamp, or 0 for unset
a #AsRelease instance.
Gets the UNIX timestamp for the date when this
release is out of support (end-of-life).
UNIX timestamp, or 0 for unset or invalid.
a #AsRelease instance.
Gets the urgency of the release
(showing how important it is to update to a more recent release)
#AsUrgencyKind, or %AS_URGENCY_KIND_UNKNOWN for not set
a #AsRelease instance.
Gets an URL.
string, or %NULL if unset
a #AsRelease instance.
the URL kind, e.g. %AS_RELEASE_URL_KIND_DETAILS.
Gets the release version.
string, or %NULL for not set or invalid
a #AsRelease instance.
Test if the release is tagged with the selected tag.
%TRUE if tag exists.
an #AsRelease instance.
The namespace the tag belongs to
The tag name
Remove a tag from this release
%TRUE if the tag was removed.
an #AsRelease instance.
The namespace the tag belongs to
The tag name
Sets the document context this release is associated
with.
An instance of #AsRelease.
the #AsContext.
Sets the release date.
a #AsRelease instance.
the date in ISO8601 format.
Sets the end-of-life date for this release.
a #AsRelease instance.
the EOL date in ISO8601 format.
Sets the description release markup.
a #AsRelease instance.
the description markup.
the BCP47 locale, or %NULL. e.g. "en-GB".
Sets the release kind to distinguish between end-user ready
stable releases and development prereleases..
a #AsRelease instance.
the #AsReleaseKind
Sets the release timestamp.
a #AsRelease instance.
the timestamp value.
Sets the UNIX timestamp for the date when this
release is out of support (end-of-life).
a #AsRelease instance.
the timestamp value.
Sets the release urgency.
a #AsRelease instance.
the urgency of this release/update (as #AsUrgencyKind)
Sets an URL for this release.
a #AsRelease instance.
the URL kind, e.g. %AS_RELEASE_URL_KIND_DETAILS
the full URL.
Sets the release version.
a #AsRelease instance.
the version string.
Compare the version numbers of two releases.
1 if @rel1 version is higher than @rel2, 0 if versions are equal, -1 if @rel2 version is higher than @rel1.
an #AsRelease
an #AsRelease
The release kind.
Unknown release type
A stable release for end-users
A development release or pre-release for testing
A snapshot of a software being worked on
Converts the text representation to an enumerated value.
an #AsReleaseKind or %AS_RELEASE_KIND_UNKNOWN for unknown
the string.
Converts the enumerated value to an text representation.
string version of @kind
the #AsReleaseKind.
Creates a new #AsReleaseList.
an #AsReleaseList
Append a release entry to this #AsReleaseList container.
An instance of #AsReleaseList.
Remove all release entries from this releases object.
a #AsReleaseList instance.
Get the #AsContext associated with these releases.
This function may return %NULL if no context is set
the associated #AsContext or %NULL
a #AsReleaseList instance.
Get the release entries as #GPtrArray.
an array of #AsRelease instances.
An instance of #AsReleaseList.
Returns the #AsReleaseListKind of the release metadata
associated with this component.
The kind.
a #AsReleaseList instance.
Get the amount of components in this box.
Amount of components.
An instance of #AsReleaseList.
Get the remote URL to obtain release information from.
The URL of external release data, or %NULL
a #AsReleaseList instance.
Retrieve a release entry at the respective index from the
release entry list.
An #AsRelease or %NULL
An instance of #AsReleaseList.
The release entry index.
Check if there are any components present.
%TRUE if this component box is empty.
An instance of #AsReleaseList.
Load release information from XML bytes.
%TRUE on success.
a #AsReleaseList instance.
the attached #AsContext or %NULL to use the current context
the release XML data as #GBytes
Sets the document context these releases are associated with.
a #AsReleaseList instance.
the #AsContext.
Sets the #AsReleaseListKind of the release metadata
associated with this component.
a #AsReleaseList instance.
the #AsComponentKind.
Set the amount of release entries stored.
a #AsReleaseList instance.
Set a remote URL pointing to an AppStream release info file.
a #AsReleaseList instance.
the web URL where release data is found.
Sort releases by their release version,
starting with the most recent release.
a #AsReleaseList instance.
The kind of a releases block.
Unknown releases type
Release info is embedded in metainfo file
Release info is split to a separate file
Converts the text representation to an enumerated value.
an #AsReleaseKind or %AS_RELEASE_KIND_UNKNOWN for unknown
the string.
Converts the enumerated value to an text representation.
string version of @kind
the #AsReleaseKind.
@AS_RELEASE_URL_KIND_UNKNOWN Unknown release web URL type
The release URL kinds.
Weblink to detailed release notes.
Converts the text representation to an enumerated value.
an #AsReleaseUrlKind or %AS_RELEASE_URL_KIND_UNKNOWN for unknown
the string.
Converts the enumerated value to an text representation.
string version of @kind
the #AsReleaseUrlKind.
Creates a new #AsReview.
a #AsReview
Adds flags to an existing review without replacing the other flags.
a #AsReview
a #AsReviewFlags, e.g. %AS_REVIEW_FLAG_SELF
Adds metadata to the review object.
It is left for the the plugin to use this method as required, but a
typical use would be to store some secure authentication token.
a #AsReview
a string
a string
Checks if two reviews are the same.
%TRUE for success
a #AsReview instance.
a #AsReview instance.
Gets the date the review was originally submitted.
the #GDateTime, or %NULL for unset
a #AsReview
Gets the multi-line review text that forms the body of the review.
the string, or %NULL
a #AsReview
Gets any flags set on the review, for example if the user has already
voted on the review or if the user wrote the review themselves.
a #AsReviewFlags, e.g. %AS_REVIEW_FLAG_SELF
a #AsReview
Gets the review id.
the review identifier, e.g. "deadbeef"
a #AsReview
Gets the locale for the review.
the string, or %NULL
a #AsReview
Gets some metadata from a review object.
It is left for the the plugin to use this method as required, but a
typical use would be to retrieve some secure authentication token.
A string value, or %NULL for not found
a #AsReview
a string
This allows the UI to sort reviews into the correct order.
Higher numbers indicate a more important or relevant review.
the review priority, or 0 for unset.
a #AsReview
Gets the star rating of the review, where 100 is 5 stars.
integer as a percentage, or 0 for unset
a #AsReview
Gets the name of the reviewer.
the reviewer ID, e.g. "deadbeef", or %NULL
a #AsReview
Gets the name of the reviewer.
the reviewer name, e.g. "David Smith", or %NULL
a #AsReview
Gets the review summary.
the one-line summary, e.g. "Awesome application"
a #AsReview
Gets the version string for the application being reviewed..
the version string, e.g. "0.1.2", or %NULL for unset
a #AsReview
Sets the date the review was originally submitted.
a #AsReview
a #GDateTime, or %NULL
Sets the multi-line review text that forms the body of the review.
a #AsReview
multi-line description
Gets any flags set on the review, for example if the user has already
voted on the review or if the user wrote the review themselves.
a #AsReview
a #AsReviewFlags, e.g. %AS_REVIEW_FLAG_SELF
Sets the review identifier that is unique to each review.
a #AsReview
review identifier, e.g. "deadbeef"
Sets the locale for the review.
a #AsReview
a BCP47 locale, e.g. "en-GB"
Sets the priority for the review, where positive numbers indicate
a better review for the specific user.
a #AsReview
a priority value
Sets the star rating of the review, where 100 is 5 stars..
a #AsReview
a integer as a percentage, or 0 for unset
Sets the name of the reviewer, which can be left unset.
a #AsReview
the reviewer ID, e.g. "deadbeef"
Sets the name of the reviewer, which can be left unset.
a #AsReview
the reviewer name, e.g. "David Smith"
Sets the one-line summary that may be displayed in bold.
a #AsReview
a one-line summary, e.g. "Awesome application"
Sets the version string for the application being reviewed.
a #AsReview
a version string, e.g. "0.1.2"
The priority for the review, where positive numbers indicate
a better review for the specific user.
The flags for the review.
No special flags set
The user wrote the review themselves
The user voted on the review
Creates a new #AsScreenshot.
a #AsScreenshot
Adds an image to the screenshot.
a #AsScreenshot instance.
a #AsImage instance.
Adds a video to the screenshot.
a #AsScreenshot instance.
a #AsVideo instance.
Remove all images associated with this screenshot.
a #AsScreenshot instance.
Gets the image caption
the caption
a #AsScreenshot instance.
Returns the #AsContext associated with this screenshot.
This function may return %NULL if no context is set.
the #AsContext used by this screenshot.
an #AsScreenshot instance.
Get the GUI environment ID of this screenshot, if any
is associated with it. E.g. "plasma-mobile" or "gnome:dark".
The GUI environment ID the screenshot was recorded in, or %NULL if none set.
a #AsScreenshot instance.
Gets the AsImage closest to the target size. The #AsImage may not actually
be the requested size, and the application may have to pad / rescale the
image to make it fit.
Only images for the current active locale (or fallback, if images are not localized)
are considered.
an #AsImage, or %NULL
a #AsScreenshot instance.
target width
target height
the target scaling factor.
Gets the images for this screenshots. Only images valid for the current
language are returned. We return all sizes.
an array
a #AsScreenshot instance.
Returns an array of all images we have, regardless of their
size and language.
an array
an #AsScreenshot instance.
Gets the screenshot kind.
a #AsScreenshotKind
a #AsScreenshot instance.
Gets the screenshot media kind.
a #AsScreenshotMediaKind
a #AsScreenshot instance.
Gets the videos for this screenshots. Only videos valid for the current
language selection are returned. We return all sizes.
an array
a #AsScreenshot instance.
Returns an array of all screencast videos we have, regardless of their
size and locale.
an array
a #AsScreenshot instance.
Performs a quick validation on this screenshot
TRUE if the screenshot is a complete #AsScreenshot
a #AsScreenshot instance.
Sets a caption on the screenshot
a #AsScreenshot instance.
the caption text.
Sets the document context this screenshot is associated
with.
an #AsScreenshot instance.
the #AsContext.
Sets the GUI environment ID of this screenshot.
a #AsScreenshot instance.
the GUI environment ID, e.g. "plasma-mobile" or "gnome:dark"
Sets the screenshot kind.
a #AsScreenshot instance.
the #AsScreenshotKind.
The screenshot type.
Type invalid or not known
The primary screenshot to show by default
Optional screenshot
Converts the text representation to an enumerated value.
a %AsScreenshotKind, or %AS_SCREENSHOT_KIND_UNKNOWN if not known.
the string.
Converts the enumerated value to an text representation.
string version of @kind
the #AsScreenshotKind.
The media kind contained in this screenshot.
Media kind is unknown
The screenshot contains images
The screenshot contains videos
The artifact size kind.
Unknown size
Size of download of component
Size of installed component
Converts the text representation to an enumerated value.
an #AsSizeKind or %AS_SIZE_KIND_UNKNOWN for unknown
the string.
Converts the enumerated value to an text representation.
string version of @size_kind
the #AsSizeKind.
Creates a new #AsSuggested.
a new #AsSuggested
Add a component id to this suggested object.
a #AsSuggested instance.
The component id to add
Get a list of components id that generated the suggestion
an array of components id
a #AsSuggested instance.
Gets the suggested kind.
the #AsSuggestedKind
a #AsSuggested instance.
Check if the essential properties of this suggestion are
populated with useful data.
%TRUE if we have useful data.
a #AsSuggested instance.
Sets the suggested kind.
a #AsSuggested instance.
the #AsSuggestedKind, e.g. %AS_SUGGESTED_KIND_HEURISTIC.
The suggested type.
Unknown suggested kind
Suggestions provided by the upstream project.
Suggestions provided by automatic heuristics.
Converts the text representation to an enumerated value.
a #AsSuggestedKind or %AS_SUGGESTED_KIND_UNKNOWN for unknown
the string.
Converts the enumerated value to an text representation.
string version of @kind
the %AsSuggestedKind.
Creates a new #AsSystemInfo.
a #AsSystemInfo
Creates a new #AsSystemInfo that can be used as a mock system
for the given chassis type, reading (mostly) no information
from the current system.
This function will try to generate a device most representative of
the given chassis class. This can be useful when testing compatibility
for other devices on a different device that is not of the same chassis
type as the one to be tested.
an #AsSystemInfo template
the #AsChassisKind to generate a template for
Return a human readable device name for the given modalias.
Will return the modalias again if no device name could be found,
and returns %NULL on error.
If @allow_fallback is set to %FALSE, this function will return %NULL and error
%AS_SYSTEM_INFO_ERROR_NOT_FOUND in case no suitable description could be found.
a human-readable device name, or %NULL on error.
a #AsSystemInfo instance.
the modalias value to resolve (may contain wildcards).
fall back to low-quality data if no better information is available
Get the current display length for the given side kind.
If the display size is unknown, this function will return 0.
the display size in logical pixels.
a #AsSystemInfo instance.
the #AsDisplaySideKind to select.
Check whether graphical applications can be displayed via X11 or Wayland.
%TRUE if graphical applications can be displayed.
a #AsSystemInfo instance.
Get the name of the current kernel, e.g. "Linux"
the current OS kernel name
a #AsSystemInfo instance.
Get the version of the current kernel, e.g. "6.2.0-2"
the current kernel version
a #AsSystemInfo instance.
Get the current total amount of physical memory in MiB.
the current total amount of usable memory in MiB
a #AsSystemInfo instance.
Get a list of modaliases for all the hardware on this system that has them.
a list of modaliases on the system.
a #AsSystemInfo instance.
Get the AppStream component ID of the current operating system.
the component ID of the current OS.
a #AsSystemInfo instance.
Get the homepage URL of the current operating system.
the homepage of the current OS.
a #AsSystemInfo instance.
Get the ID of the current operating system.
the current OS ID.
a #AsSystemInfo instance.
Get the humen-readable name of the current operating system.
the name of the current OS.
a #AsSystemInfo instance.
Get the version string of the current operating system.
the version of the current OS.
a #AsSystemInfo instance.
Check if there is a device on this system that matches the given modalias glob.
%TRUE if a matching device was found.
a #AsSystemInfo instance.
the modalias value to to look for, may contain wildcards.
Test if the current system has a specific user input control method.
Returns %AS_CHECK_RESULT_UNKNOWN if we could not test for an input control method,
%AS_CHECK_RESULT_ERROR on error and %AS_CHECK_RESULT_FALSE if the control was not found.
%AS_CHECK_RESULT_TRUE if control was found
a #AsSystemInfo instance.
the #AsControlKind to test for.
Receive a path in /sys for the devices with the given modalias.
the syspath, or %NULL if none was found.
a #AsSystemInfo instance.
the modalias value to resolve.
Set the current display length for the given side kind.
The size needs to be in device-independent pixels, see the
AppStream documentation for more information:
https://freedesktop.org/software/appstream/docs/chap-Metadata.html#tag-relations-display_length
a #AsSystemInfo instance.
the #AsDisplaySideKind to select.
the length value in device-independt pixels.
Set whether this system has a GUI / desktop environment available.
a #AsSystemInfo instance.
%TRUE if GUI is available.
Explicitly mark a user input control as present or not present on this system.
a #AsSystemInfo instance.
the #AsControlKind to set.
%TRUE if the control should be marked as found.
The error type.
Generic failure
Information was not found.
An error quark.
Creates a new #AsTranslation.
a #AsTranslation
The ID (e.g. Gettext translation domain) of this translation.
a #AsTranslation instance.
The translation system type.
an enum of type #AsTranslationKind
a #AsTranslation instance.
The locale of the source strings for this component. If this has not been
explicitly specified, `en_US` will be returned.
The locale of the source strings for this component.
a #AsTranslation instance.
Set the ID (e.g. Gettext domain) of this translation.
a #AsTranslation instance.
The ID of this translation.
Set the translation system type.
a #AsTranslation instance.
the new #AsTranslationKind
Set the locale of the source strings for this component. In gettext, this is
referred to as the `C` locale. It’s almost always `en_US`, but for some
components it may not be.
a #AsTranslation instance.
The POSIX locale that the source strings are in, or %NULL if unknown or default.
The translation type.
Type invalid or not known
Gettext translation domain
Qt translation domain
Converts the text representation to an enumerated value.
a #AsTranslationKind or %AS_TRANSLATION_KIND_UNKNOWN for unknown
the string.
Converts the enumerated value to a text representation.
string version of @kind
the #AsTranslationKind.
The urgency of an #AsRelease
Urgency is unknown or not set
Low urgency
Medium urgency
High urgency
Critical urgency
Converts the text representation to an enumerated value.
a %AsUrgencyKind or %AS_URGENCY_KIND_UNKNOWN for unknown
the string.
Converts the enumerated value to an text representation.
string version of @urgency_kind
the %AsUrgencyKind.
The URL type.
Type invalid or not known
Project homepage
Bugtracker
FAQ page
Help manual
Page with information about how to donate to the project
Page with instructions on how to translate the project / submit translations.
Contact the developers
Browse the source code
Help developing
Converts the text representation to an enumerated value.
a #AsUrlKind or %AS_URL_KIND_UNKNOWN for unknown
the string.
Converts the enumerated value to an text representation.
string version of @url_kind
the %AsUrlKind.
The error type.
Generic failure
An error quark.
Creates a new #AsValidator.
an #AsValidator
Override the severity of a selected tag. For most tags, the severity
can not be lowered to a value that makes a validation
that would otherwise fail pass (so e.g. an ERROR can not become an INFO).
Some tags are explicitly allowed to have their severity lowered to enable
validation of e.g. incomplete metadata during development.
Increasing the severity of any tag is always allowed.
a #AsValidator instance.
the issue tag to override, e.g. "release-time-missing"
the new severity for the tag.
Add release metadata explicitly from bytes.
a #AsValidator instance.
File basename of the release metadata file to add.
Data of the release metadata file.
Add a release metadata file to the validation process.
a #AsValidator instance.
Release metadata file to add.
Check the current registered values again and return %TRUE
if no issues were found that would make the previously validated
files fail validation.
Usually you do not need to call this function explicitly, as
the as_validator_validate_* functions will already return whether
data was valid as return value.
%TRUE if previously validated files were valid.
An instance of #AsValidator.
Clear all release information that was explicitly added to the
validation process.
a #AsValidator instance.
%TRUE in case we allow network access.
a #AsValidator instance.
Get the number of files for which issues have been found.
The number of files that have issues.
An instance of #AsValidator.
Get a list of found metadata format issues.
a list of #AsValidatorIssue instances, free with g_list_free()
An instance of #AsValidator.
Get a hash table of filenames mapped to lists of issues.
This is useful if validation was requested for multiple files and
a list of issues per-file is desired without prior explicit sorting.
a file to issue list mapping
An instance of #AsValidator.
%TRUE in case we are in strict mode and consider any issues as fatal.
a #AsValidator instance.
Get the explanatory text for a given issue tag.
Explanation text.
An instance of #AsValidator.
Get the severity for a given issue tag.
The #AsIssueSeverity
An instance of #AsValidator.
Get an array of all tags known to the validator.
A string array of tags
An instance of #AsValidator.
If set to %TRUE, the validator will be allowed to connect
to the internet to e.g. check URLs for validity.
a #AsValidator instance.
%TRUE if remote URLs should be checked for availability.
Enable or disable strict mode. In strict mode, any found issue will result
in a failed validation (except for issues of "pedantic" severity).
Otherwise, only a "warning" or "error" will cause the validation to fail.
a #AsValidator instance.
%TRUE to enable strict mode.
Validate AppStream XML data from a byte array.
Remember to run %as_validator_clear_issues if you do not want previous
validation runs to affect the outcome of this validation.
%TRUE if bytes validated successfully.
An instance of #AsValidator.
XML metadata as #GBytes.
Validate AppStream XML data.
%TRUE if data validated successfully.
An instance of #AsValidator.
XML metadata.
Validate an AppStream XML file.
%TRUE if file validated successfully.
An instance of #AsValidator.
An AppStream XML file.
Validate a full directory tree for issues in AppStream metadata.
%TRUE if file validated successfully.
An instance of #AsValidator.
The root directory of the filesystem tree that should be validated.
The error type.
Generic failure
The issue override was not accepted.
The filename was invalid.
An error quark.
Creates a new #AsValidatorIssue.
a #AsValidatorIssue
The component-id this issue is about.
a component-id.
a #AsValidatorIssue instance.
Get an extended explanation on this issue, or return %NULL
if none is available.
the explanation
a #AsValidatorIssue instance.
The name of the file this issue was found in.
the filename
a #AsValidatorIssue instance.
Get a short context hint for this issue.
the hint
a #AsValidatorIssue instance.
Gets the line number where this issue was found.
the line number where this issue occured, or -1 if unknown.
a #AsValidatorIssue instance.
Builds a string containing all information about the location
where this issue occured that we know about.
the location hint as string.
a #AsValidatorIssue instance.
Gets the severity of this issue.
a #AsIssueSeverity
a #AsValidatorIssue instance.
Gets the issue tag string for this issue.
the tag
a #AsValidatorIssue instance.
Sets the component-id this issue is about.
a #AsValidatorIssue instance.
a component-id.
Set explanatory text for this issue.
a #AsValidatorIssue instance.
the explanation.
Sets the name of the file the issue was found in.
a #AsValidatorIssue instance.
the filename.
Sets short issue hint.
a #AsValidatorIssue instance.
the hint.
Sets the line number where this issue was found.
a #AsValidatorIssue instance.
the line number.
Sets the severity for this issue.
a #AsValidatorIssue instance.
the #AsIssueSeverity.
Sets the issue tag.
a #AsValidatorIssue instance.
the tag.
Set how values assigned to an #AsComponent should be treated when
they are set or retrieved.
No flags.
Check for duplicates when adding items to list values.
Don't fall back to C when retrieving translated values.
The flags used when matching unique IDs.
No flags set
Ignore epoch part of a version string.
Creates a new #AsVideo.
a #AsVideo
Gets the video codec, if known.
the #AsVideoCodecKind
a #AsVideo instance.
Gets the video container format, if known.
the #AsVideoContainerKind
a #AsVideo instance.
Gets the video height, if known.
height in pixels or 0 if unknown
a #AsVideo instance.
Get locale for this video.
Locale string
a #AsVideo instance.
Gets the full qualified URL for the video, usually pointing at a mirror or CDN server.
a web URL
a #AsVideo instance.
Gets the video width, if known.
width in pixels or 0 if unknown
a #AsVideo instance.
Sets the video codec.
a #AsVideo instance.
the #AsVideoCodecKind, e.g. %AS_VIDEO_CODEC_KIND_AV1.
Sets the video container.
a #AsVideo instance.
the #AsVideoContainerKind, e.g. %AS_VIDEO_CONTAINER_KIND_MKV.
Sets the video height.
a #AsVideo instance.
the height in pixels.
Sets the locale for this video.
a #AsVideo instance.
the BCP47 locale string.
Sets the fully-qualified URL to use for the video.
a #AsVideo instance.
the URL.
Sets the video width.
a #AsVideo instance.
the width in pixels.
Supported video codecs.
Unknown video codec
The VP9 video codec
The AV1 video codec
Converts the text representation to an enumerated value.
a #AsVideoCodecKind, or %AS_VIDEO_CODEC_KIND_UNKNOWN for unknown.
the string.
Converts the enumerated value to an text representation.
string version of @codec
the #AsVideoCodecKind.
Supported video codecs.
Unknown video container
The Matroska video (MKV) container
The WebM video container
Converts the text representation to an enumerated value.
a #AsVideoContainerKind, or %AS_VIDEO_CONTAINER_KIND_UNKNOWN for unknown.
the string.
Converts the enumerated value to an text representation.
string version of @kind
the #AsVideoContainerKind.
Converts the text representation to an enumerated value.
a #AsAgreementKind or %AS_AGREEMENT_KIND_UNKNOWN for unknown
the string.
Converts the enumerated value to an text representation.
string version of @value
the #AsAgreementKind.
Converts the text representation to an enumerated value.
a #AsArtifactKind, or %AS_ARTIFACT_KIND_UNKNOWN for unknown.
the string.
Converts the enumerated value to an text representation.
string version of @kind
the #AsArtifactKind.
Agreements can be used by components to specify GDPR, EULA or other warnings.
See also: #AsAgreementSection
Agreements are typically split up into sections.
This class describes one agreement section.
See also: #AsAgreement
Describes a artifact artifact
See also: #AsArtifact
This class provides information contained in an AppStream branding tag.
See https://www.freedesktop.org/software/appstream/docs/chap-Metadata.html#tag-branding
for more information.
See also: #AsComponent
This class provides information contained in an AppStream bundle tag.
See https://www.freedesktop.org/software/appstream/docs/chap-CatalogData.html#tag-ct-bundle
for more information.
See also: #AsComponent
Caches are used by #AsPool to quickly search for components while not keeping all
component data in memory.
This class is threadsafe.
See also: #AsPool
This object represents a XDG category, as defined at:
https://specifications.freedesktop.org/menu-spec/menu-spec-1.0.html#category-registry
The #AsCategory object does not support all aspects of a menu. Its main purpose
is to be used in software-centers to group visual components (gui/web applications).
You can use %as_get_default_categories() to get a set of supported default categories.
See also: #AsComponent
A checksum for a file referenced in a release.
See also: #AsRelease
This object represents an Appstream software component which is associated
to a package in the distribution's repositories.
A component can be anything, ranging from an application to a font, a codec or
even a non-visual software project providing libraries and python-modules for
other applications to use.
The type of the component is stored as #AsComponentKind and can be queried to
find out which kind of component we're dealing with.
See also: #AsProvidesKind, #AsDatabase
This class is a container for #AsComponent objects which usually share the same #AsContext
and are manipulated together.
It also provides binding-safe accessor functions to manipulate an array of
components.
See also: #AsComponent
Content ratings are age-specific guidelines for applications.
See also: #AsComponent
Contains information about the context of AppStream metadata, from the
root node of the document.
Instances of #AsContext may be shared between #AsComponent instances.
You usually do not want to use this directly, but use the more convenient
#AsMetadata instead.
See also: #AsComponent, #AsMetadata
Describes the developer of a component.
See also: #AsComponent
This module mainly contains distribution-specific, non-public helper methods.
This object will monitor a set of directories for changes.
See also: #AsPool
Screenshot may have multiple versions of an image in different resolutions
or aspect ratios. This object allows access to the location and size of a
single image.
See also: #AsScreenshot
Information about an issue that was resolved in a release.
See also: #AsRelease
Components can provide multiple launch-entries to launch the software they belong to.
This class describes them.
See also: #AsComponent
This object parses MetaInfo data, AppStream Catalog metadata
and AppStream release metadata into #AsComponent representations.
It is also able to serialize #AsComponent entities into their
various AppStream XML/YAML representations.
See also: #AsComponent, #AsRelease, #AsPool
Read NEWS and other types of release information files and convert them
to AppStream metainfo data.
Also, write NEWS files from #AsRelease release information.
These functions are private/internal.
This class loads AppStream metadata from various sources and refines it with existing
knowledge about the system (e.g. by setting absolute paths for cached icons).
An #AsPool will use an on-disk cache to store metadata is has read and refined to
speed up the loading time when the same data is requested a second time.
You can find AppStream metadata matching various user-defined criteria, and also add new
metadata to the pool.
The caching behavior can be controlled by the application using #AsCacheFlags.
An AppStream cache object can also be created and read using the appstreamcli(1) utility.
This class is threadsafe.
See also: #AsComponent
Components can provide various items, like libraries, Python-modules,
firmware, binaries, etc.
Functions to work with these items are provided here.
See also: #AsComponent
Contains information about external references to the
component this reference is associated with.
See also: #AsComponent
A component can have recommends- or requires relations on other components, system properties,
hardware and other interfaces.
This class contains a representation of those relations.
See also: #AsComponent
This object represents a single upstream release, typically a minor update.
Releases can contain a localized description of paragraph and list elements
and also have a version number and timestamp.
Releases can be automatically generated by parsing upstream ChangeLogs or
.spec files, or can be populated using MetaInfo files.
See also: #AsComponent
This class contains multiple #Asrelease entries as well as information
affecting all releases of that grouping.
It can also fetch the required release information on-demand from
a web URL in case it is not available locally.
See also: #AsRelease, #AsRelease
This class contains resulting information from a check for whether an
#AsRelation is satisfied on a specific system configuration.
See also: #AsRelation
This object represents a user-submitted software review.
Screenshots have a localized caption and contain either a set of images
of different resolution or a video screencast showcasing the software.
See also: #AsImage, #AsVideo
This class provides a list of other component-ids suggested by a software component, as well
as an origin of the suggestion (manually suggested by the upstream project, or
automatically determined by heuristics).
This class reads information about the current operating system and device
that AppStream is running on. It can also be used by GUI toolkits to set
data that we can not automatically determine in a toolkit-independent way,
such as screen dimensions.
AppStream uses this information to verify component relations
(as set in requires/recommends/supports etc. tags).
See also: #AsComponent
These functions will convert a tag enum such as %AS_TAG_COMPONENT to
it's string form, and also vice-versa.
These helper functions may be useful if implementing an AppStream parser.
Describes the translation domain and translation system used by the upstream component.
See [the specification](https://www.freedesktop.org/software/appstream/docs/chap-Metadata.html#tag-translation) for
more information on the corresponding XML tag.
See also: #AsComponent
Functions which are used in libappstream and might be useful for others
as well.
This object is able to validate AppStream XML metadata (catalog and metainfo)
and to generate a report about issues found with it.
See also: #AsMetadata
See also: #AsValidator
Compare software version numbers.
These functions are used in client code to conditionalize compilation
depending on the version of libappstream headers installed.
Also, a function to obtain the AppStream version at runtime is provided.
Screenshot may have a video instead of a static image associated with them.
This object allows access to the video and basic information about it.
See also: #AsScreenshot, #AsImage
Converts the text representation to an enumerated value.
a #AsBundleKind or %AS_BUNDLE_KIND_UNKNOWN for unknown
the string.
Converts the enumerated value to an text representation.
string version of @kind
the %AsBundleKind.
Converts the text representation to an enumerated value.
a #AsChassisKind or %AS_CHASSIS_KIND_UNKNOWN for unknown
the string.
Converts the enumerated value to a text representation.
string version of @kind
the #AsChassisKind.
Converts the text representation to an enumerated value.
a #AsChecksumKind or %AS_CHECKSUM_KIND_NONE for unknown
the string.
Converts the enumerated value to an text representation.
string version of @kind
the %AsChecksumKind.
Converts the text representation to an enumerated value.
a #AsColorKind or %AS_COLOR_KIND_UNKNOWN for unknown.
the string.
Converts the enumerated value to an text representation.
string version of @kind
the %AsColorKind.
Converts the text representation to an enumerated value.
a #AsColorKind or %AS_COLOR_SCHEME_KIND_UNKNOWN for unknown.
the string.
Converts the enumerated value to an text representation.
string version of @kind
the %AsColorSchemeKind.
Returns the #AsComponent at the given index of the array.
This does not perform bounds checking on the given @index_,
so you are responsible for checking it against the array length.
Use %as_component_box_len to determine the amount of components
present in the #AsComponentBox.
a #AsComponentBox
the index of the #AsComponent to return
Get the amount of components in its box array.
a #AsComponentBox
Converts the text representation to an enumerated value.
a #AsComponentKind or %AS_COMPONENT_KIND_UNKNOWN for unknown
the string.
Converts the enumerated value to an text representation.
string version of @kind
the #AsComponentKind.
Converts the text representation to an enumerated value.
a #AsComponentScope or %AS_COMPONENT_SCOPE_UNKNOWN for unknown
the string.
Converts the enumerated value to an text representation.
string version of @scope
the #AsComponentScope.
Format @age as a human-readable string in the given rating @system. This is
the way to present system-specific strings in a UI.
a newly allocated formatted version of
@age, or %NULL if the given @system has no representation for @age
an #AsContentRatingSystem
a CSM age to format
Determine the most appropriate #AsContentRatingSystem for the given @locale.
Content rating systems are selected by territory. If no content rating system
seems suitable, %AS_CONTENT_RATING_SYSTEM_IARC is returned.
the most relevant #AsContentRatingSystem
a locale, in the format described in `man 3 setlocale`
Get the CSM ages corresponding to the entries returned by
as_content_rating_system_get_formatted_ages() for this @system.
an array of CSM ages
an #AsContentRatingSystem
return location for the length of the
returned array
Get an array of all the possible return values of
as_content_rating_system_format_age() for the given @system. The array is
sorted with youngest CSM age first.
%NULL-terminated array of human-readable age strings
an #AsContentRatingSystem
Get a human-readable string to identify @system. %NULL will be returned for
%AS_CONTENT_RATING_SYSTEM_UNKNOWN.
a human-readable string for @system, or %NULL if unknown
an #AsContentRatingSystem
Converts the text representation to an enumerated value.
a #AsContentRatingValue or %AS_CONTENT_RATING_VALUE_UNKNOWN for unknown
the string.
Converts the enumerated value to an text representation.
string version of @value
the #AsContentRatingValue.
Converts the text representation to an enumerated value.
a #AsControlKind or %AS_CONTROL_KIND_UNKNOWN for unknown
the string.
Converts the enumerated value to a text representation.
string version of @kind
the #AsControlKind.
Converts the text representation to an enumerated value.
a #AsDisplaySideKind or %AS_DISPLAY_SIDE_KIND_UNKNOWN for unknown
the string.
Converts the enumerated value to a text representation.
string version of @kind
the #AsDisplaySideKind.
Converts the text representation to an enumerated value.
a #AsFormatKind or %AS_FORMAT_KIND_UNKNOWN for unknown
the string.
Converts the enumerated value to an text representation.
string version of @kind
the #AsFormatKind.
Converts the text representation to an enumerated value.
a #AsFormatVersion. For unknown, the highest version
number is assumed.
the string.
Converts the enumerated value to an text representation.
string version of @version
the #AsFormatKind.
Returns the component-ID of the current distribution based on contents
of the `/etc/os-release` file.
This function is a shorthand for %as_distro_details_get_cid
Get a list of the default Freedesktop and AppStream categories
that software components (especially GUI applications) can be sorted
into in software centers.
a list of #AsCategory
Include special categories (e.g. "addons", and "all"/"featured" in submenus)
Get a list of the default Freedesktop and AppStream categories
that software components (especially GUI applications) can be sorted
into in software centers.
This function fully transfers ownership of the returned container,
to be used in GIR bindings.
a list of #AsCategory
Include special categories (e.g. "addons", and "all"/"featured" in submenus)
Get a translated license name for the given SPDX ID.
The license name, or %NULL if none found.
The SPDX license ID.
Get a web URL to the license text and more license information for an SPDX
license identifier.
The license URL, or %NULL if none available.
The SPDX license ID.
Replaces the string @find with the string @replace in a #GString up to
@limit times. If the number of instances of @find in the #GString is
less than @limit, all instances are replaced. If @limit is `0`,
all instances of @find are replaced.
the number of find and replace operations performed.
a #GString
the string to find in @string
the string to insert in place of @find
the maximum instances of @find to replace with @replace, or `0` for no limit
Converts the text representation to an enumerated value.
a #AsIconKind or %AS_ICON_KIND_UNKNOWN for unknown
the string.
Converts the enumerated value to an text representation.
string version of @kind
the %AsIconKind.
Converts the text representation to an enumerated value.
a #AsImageKind, or %AS_IMAGE_KIND_UNKNOWN for unknown.
the string.
Converts the enumerated value to an text representation.
string version of @kind
the #AsImageKind.
Converts the text representation to an enumerated value.
a #AsInternetKind or %AS_INTERNET_KIND_UNKNOWN for unknown
the string.
Converts the enumerated value to a text representation.
string version of @kind
the #AsInternetKind.
Searches the known list of SPDX license exception IDs.
%TRUE if the string is a valid SPDX license exception ID
a single SPDX license exception ID, e.g. "GCC-exception-3.1"
Checks the licence string to check it being a valid licence.
NOTE: SPDX licenses can't typically contain brackets.
%TRUE if the icon is a valid "SPDX license"
a SPDX license string, e.g. "CC-BY-3.0 and GFDL-1.3"
Searches the known list of SPDX license IDs.
%TRUE if the string is a valid SPDX license ID
a single SPDX license ID, e.g. "GPL-3.0"
Converts the text representation to an enumerated value.
a #AsIssueKind or %AS_ISSUE_KIND_UNKNOWN for unknown
the string.
Converts the enumerated value to an text representation.
string version of @kind
the %AsIssueKind.
Converts the text representation to an enumerated value.
a #AsIssueSeverity, or %AS_ISSUE_SEVERITY_UNKNOWN for unknown.
the string.
Converts the enumerated value to an text representation.
string version of @severity
the #AsIssueSeverity.
Converts the text representation to an enumerated value.
a #AsLaunchableKind or %AS_LAUNCHABLE_KIND_UNKNOWN for unknown
the string.
Converts the enumerated value to a text representation.
string version of @kind
the #AsLaunchableKind.
Check if the given license is for free-as-in-freedom software.
A free software license is either approved by the Free Software Foundation
or the Open Source Initiative.
This function does *not* yet handle complex license expressions with AND and OR.
If the expression contains any of these, it will still simply check if all mentioned
licenses are Free licenses.
Currently, any license exception recognized by SPDX is assumed to not impact the free-ness
status of a software component.
Please note that this function does not give any legal advice. Please read the license texts
to learn more about the individual licenses and their conditions.
%TRUE if the license string contains only free-as-in-freedom licenses.
The SPDX license string to test.
Check if the metadata license is suitable for mixing with other
metadata and redistributing the bundled result (this means we
prefer permissive licenses here, to not require people shipping
catalog metadata to perform a full license review).
This method checks against a hardcoded list of permissive licenses
commonly used to license metadata under.
%TRUE if the license contains only permissive licenses suitable
as metadata license.
The SPDX license string to test.
Tests license ID against the vetted list of licenses that
can be used for metainfo metadata.
This function will not work for license expressions, if you need
to test an SPDX license expression for compliance, please
use %as_license_is_metadata_license insread.
%TRUE if the string is a valid metadata license ID.
a single SPDX license ID, e.g. "FSFAP"
Converts a non-SPDX license into an SPDX format string where possible.
the best-effort SPDX license string
a not-quite SPDX license string, e.g. "GPLv3+"
Converts XML description markup into other forms of text.
a newly allocated string, or %NULL on error.
the XML markup to transform.
The markup style to convert into.
Splits up a long line into an array of smaller strings, each being no longer
than @line_len. Words are not split.
lines, or %NULL in event of an error
the text to split.
the maximum length of the output line
Converts the text representation to an enumerated value.
a #AsMergeKind or %AS_MERGE_KIND_NONE for unknown
the string.
Converts the enumerated value to an text representation.
string version of @kind
the #AsMergeKind.
An error quark.
An error quark.
Converts the text representation to an enumerated value.
a #AsProvidedKind or %AS_PROVIDED_KIND_UNKNOWN for unknown
the string.
Converts the enumerated value to a localized text representation,
using the plural forms (e.g. "Libraries" instead of "Library").
This can be useful when displaying provided items in GUI dialogs.
Pluralized, l10n string version of @kind
the #AsProvidedKind.
Converts the enumerated value to a text representation.
string version of @kind
the #AsProvidedKind.
Converts the text representation to an enumerated value.
a AsReferenceKind or %AS_REFERENCE_KIND_UNKNOWN for unknown
the string.
Converts the enumerated value to an text representation.
string version of @kind
the %AsReferenceKind.
Converts the text representation to an enumerated value.
a #AsRelationCompare, or %AS_RELATION_COMPARE_UNKNOWN for unknown.
the string.
Converts the enumerated value to an text representation.
The enum is converted into a two-letter identifier ("eq", "ge", etc.)
for use in the XML representation.
string version of @compare
the #AsRelationCompare.
Converts the enumerated value to an text representation.
The enum is converted into an identifier consisting of two
mathematical comparison operators ("==", ">=", etc.)
for use in the YAML representation and user interfaces.
string version of @compare
the #AsRelationCompare.
An error quark.
Converts the text representation to an enumerated value.
a #AsRelationItemKind or %AS_RELATION_ITEM_KIND_UNKNOWN for unknown
the string.
Converts the enumerated value to a text representation.
string version of @kind
the #AsRelationKind.
Converts the text representation to an enumerated value.
a #AsRelationKind or %AS_RELATION_KIND_UNKNOWN for unknown
the string.
Converts the enumerated value to a text representation.
string version of @kind
the #AsRelationKind.
Converts the text representation to an enumerated value.
an #AsReleaseKind or %AS_RELEASE_KIND_UNKNOWN for unknown
the string.
Converts the enumerated value to an text representation.
string version of @kind
the #AsReleaseKind.
Returns the #AsRelease at the given index of the array.
This does not perform bounds checking on the given @index_,
so you are responsible for checking it against the array length.
Use %as_release_list_len to determine the amount of releases
present in the #AsReleaseList container.
a #AsReleaseList
the index of the #AsRelease to return
Converts the text representation to an enumerated value.
an #AsReleaseKind or %AS_RELEASE_KIND_UNKNOWN for unknown
the string.
Converts the enumerated value to an text representation.
string version of @kind
the #AsReleaseKind.
Get the amount of release entries present.
a #AsReleaseList
Converts the text representation to an enumerated value.
an #AsReleaseUrlKind or %AS_RELEASE_URL_KIND_UNKNOWN for unknown
the string.
Converts the enumerated value to an text representation.
string version of @kind
the #AsReleaseUrlKind.
Converts the text representation to an enumerated value.
a %AsScreenshotKind, or %AS_SCREENSHOT_KIND_UNKNOWN if not known.
the string.
Converts the enumerated value to an text representation.
string version of @kind
the #AsScreenshotKind.
Converts the text representation to an enumerated value.
an #AsSizeKind or %AS_SIZE_KIND_UNKNOWN for unknown
the string.
Converts the enumerated value to an text representation.
string version of @size_kind
the #AsSizeKind.
De-tokenizes the SPDX licenses into a string.
string, or %NULL for invalid
license tokens, typically from as_spdx_license_tokenize()
Tokenizes the SPDX license string (or any simarly formatted string)
into parts. Any license parts of the string e.g. "LGPL-2.0+" are prefexed
with "@", the conjunctive replaced with "&", the disjunctive replaced
with "|" and the WITH operator for license exceptions replaced with "^".
Brackets are added as indervidual tokens and other strings are
appended into single tokens where possible.
array of strings, or %NULL for invalid
a license string, e.g. "LGPLv2+ and (QPL or GPLv2) and MIT"
Converts the text representation to an enumerated value.
a #AsSuggestedKind or %AS_SUGGESTED_KIND_UNKNOWN for unknown
the string.
Converts the enumerated value to an text representation.
string version of @kind
the %AsSuggestedKind.
An error quark.
Converts the text representation to an enumerated value.
a #AsTranslationKind or %AS_TRANSLATION_KIND_UNKNOWN for unknown
the string.
Converts the enumerated value to a text representation.
string version of @kind
the #AsTranslationKind.
Converts the text representation to an enumerated value.
a %AsUrgencyKind or %AS_URGENCY_KIND_UNKNOWN for unknown
the string.
Converts the enumerated value to an text representation.
string version of @urgency_kind
the %AsUrgencyKind.
Converts the text representation to an enumerated value.
a #AsUrlKind or %AS_URL_KIND_UNKNOWN for unknown
the string.
Converts the enumerated value to an text representation.
string version of @url_kind
the %AsUrlKind.
Builds an identifier string unique to the individual dataset using the supplied information.
Scope of the metadata as #AsComponentScope e.g. %AS_COMPONENT_SCOPE_SYSTEM
Bundling system providing this data, e.g. 'package' or 'flatpak'
Origin string, e.g. 'os' or 'gnome-apps-nightly'
AppStream component ID, e.g. 'org.freedesktop.appstream.cli'
Branch, e.g. '3-20' or 'master'
Checks two component data IDs for equality allowing globs to match.
%TRUE if the ID's should be considered equal.
a data ID
another data ID
Get the component-id part of the data-id.
The data-id.
Converts a data-id to a hash value.
This function implements the widely used DJB hash on the ID subset of the
data-id string.
It can be passed to g_hash_table_new() as the hash_func parameter,
when using non-NULL strings or unique_ids as keys in a GHashTable.
a hash value corresponding to the key
a data ID
Checks two data IDs for equality allowing globs to match, whilst also
allowing clients to whitelist sections that have to match.
%TRUE if the IDs should be considered equal.
a data ID
another data ID
a #AsDataIdMatchFlags bitfield, e.g. %AS_DATA_ID_MATCH_FLAG_ID
Checks if a data ID is valid i.e. has the correct number of
sections.
%TRUE if the ID is valid
a component data ID
An error quark.
Get a human-readable, translated name of the desktop environment
represented by the given ID.
A localized name of the DE, or %NULL if none available.
a desktop environment id.
Get a human-readable, translated name of the combination
of GUI environment and style. E.g. "plasma:dark" becomes "Plasma (Dark)".
A localized name of the environment style, or %NULL if none available.
a GUI environment style ID, e.g. "pantheon:dark"
Retrieve the raw search token weight for the given tag name that AppStream uses
internally for searching.
This can be used to implement separate, but compatible search logic.
The tag weight used in (fulltext) searches. 0 for lowest weight/unused.
A tag name in a component element, e.g. "name" or "summary" or "keyword"
Guess the #AsComponentScope that applies to a given path.
the #AsComponentScope
The filename to test.
Installs an AppStream MetaInfo, AppStream Metadata Catalog or AppStream Icon tarball file
to the right place on the filesystem.
Please note that this function does almost no validation and may guess missing values such
as icon sizes and origin names.
Ensure your metadata is good before installing it.
%TRUE for success, %FALSE if error is set
the #AsMetadataLocation, e.g. %AS_METADATA_LOCATION_CACHE
the full path of the file to install
the origin to use for the installation, or %NULL
the destdir to use, or %NULL
Searches the known list of registered XDG category names.
See https://specifications.freedesktop.org/menu-spec/menu-spec-1.0.html#category-registry
for a reference.
%TRUE if the category name is valid
a XDG category name, e.g. "ProjectManagement"
Checks if the submitted desktop environment ID is
known and valid.
%TRUE if the desktop-id is valid
a desktop environment id.
Checks if the given identifier is a valid, known GUI environment style.
%TRUE if the environment-style ID is is valid
a GUI environment style ID, e.g. "pantheon:dark"
Test if the given string is a valid platform triplet recognized by
AppStream.
%TRUE if triplet is valid.
a platform triplet.
Searches the known list of TLDs we allow for AppStream IDs.
This excludes internationalized names.
%TRUE if the TLD is valid
a top-level domain without dot, e.g. "de", "org", "name"
Calculates if one locale is compatible with another.
When doing the calculation the locale and language code is taken into
account if possible.
%TRUE if the locale is compatible.
a BCP47 or POSIX locale string, or %NULL
a BCP47 or POSIX locale string, or %NULL
Converts a POSIX locale string to the corresponding IETF BCP47 format.
If the given locale is already in BCP47 format, no change will be done.
A locale string, free with g_free()
Sorts all components in @cpts into the #AsCategory categories listed in @categories.
List of components.
List of categories to sort components into.
Whether to check for duplicates.
An error quark.
Compare alpha and numeric segments of two software versions,
considering @flags.
>>0 if a is newer than b;
0 if a and b are the same version;
<<0 if b is newer than a
First version number
Second version number
Flags, e.g. %AS_VERCMP_FLAG_NONE
Compare alpha and numeric segments of two software versions.
>>0 if a is newer than b;
0 if a and b are the same version;
<<0 if b is newer than a
First version number
Second version number
Compare two version numbers and check if the given version comparator matches.
%TRUE if the version comparison matches, %FALSE otherwise.
first version number
the comparison operator
second version number
the #AsVercmpFlags to use
Get the version of the AppStream library that is currently used
at runtime as a string.
a version number, e.g. "0.14.2"
Converts the text representation to an enumerated value.
a #AsVideoCodecKind, or %AS_VIDEO_CODEC_KIND_UNKNOWN for unknown.
the string.
Converts the enumerated value to an text representation.
string version of @codec
the #AsVideoCodecKind.
Converts the text representation to an enumerated value.
a #AsVideoContainerKind, or %AS_VIDEO_CONTAINER_KIND_UNKNOWN for unknown.
the string.
Converts the enumerated value to an text representation.
string version of @kind
the #AsVideoContainerKind.