A repository component describes a remote archive of digital content, usually other software or additional data (e.g. themes, icons, books, music, ...). Upon installation of a component of this type, the repective repository is added to the system and activated, letting the user access the new content.
The metadata described in this document is built upon the generic component metadata (see Section 2.1, “Generic Component”).
All tags valid for a generic component are valid for a repository
component as well.
In order to add metadata about a software repository, projects can provide one or more metainfo files
in /usr/share/metainfo/%{id}.metainfo.xml
.
The basic structure for a generic component as described at Section 2.1.3, “XML Specification” applies.
Note that the XML root must have the type
property set to repository
, while in a generic component this
property can be omitted. This clearly identified this metainfo document as describing a repository.
The following list describes tags for repository
upstream metadata and provides some additional information about the values
the tags are expected to have.
If no information is given about a tag, refer to the respective tag in Section 2.1, “Generic Component”.
For repositories, the <id/>
tag value must follow the AppStream ID naming conventions (it should be a reverse-DNS name).
The <metadata_license/>
tag as described in <metadata_license/> must be present.
A name
must be present for repositories. See <name/> for a detailed description of this tag.
A summary
must be present for repositories. See <summary/> for a detailed description of this tag.
This tag is refers to the ID of the component this repository is added to, similarly to how components of
type addon
work.
Adding an extends
tag ensures the respective repository is tied to its main component,
e.g. a source for firmware downloads is tied to the firmware update service, or a repository for a
site-specific package manager is tied to the tool that can actually install pieces from the repository.
The <extends/>
tag may be specified multiple times.
It is recommended to add a GDPR (https://www.eugdpr.org/) compliant privacy statement to repository
components, in case any personal data is acquired when the repository is accessed.
The agreement
tag allows to add a privacy statement and other agreements easily. Refer to the <agreement/> tag
as described for generic components for information on how to use agreements in AppStream.
For a component of type repository
, the following tags are required and must always be present: <id/>,
<metadata_license/>, <name/>, <summary/>.