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
.
2.13.2. File specification
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”.
-
<id/>
For repositories, the <id/>
tag value must follow the AppStream ID naming conventions (it should be a reverse-DNS name).
- <metadata_license/>
- <name/>
A
name
must be present for repositories. See
<name/> for a detailed description of this tag.
- <summary/>
A
summary
must be present for repositories. See
<summary/> for a detailed description of this tag.
-
<extends/>
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.
-
<agreement/>
It is recommended to add a
GDPR 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.