External links

How to extend rpm-md metadata with non standard data

Create a separate xml file and a resource type, and insert it into repomd.xml index. If the type is not known, clients should ignore it.

Data to be appended to primary.xml data (packages)

The convention is to use a $foodata.xml file. Enclose the attributes in a 'package' tag referencing the package the attributes should be appended. This is right now done using pkgid attribute. However clients are free to do the matching using name, arch and ver.

rpmmd already defines some extensions over primary, like otherdata (other.xml).

Extra data not directly related to packages

The convention is to use $fooinfo.xml file. The format can be as you need it. One example of this extensions are updateinfo.xml (which has extra information about updates, but not appended to the package data) and deltainfo.xml which contains information related to deltarpm availability (which is information associated with the repository but not directly with each package ).

Current Extensions

For information on how to easily add extension data to a repository created using "createrepo" tool. See the enhancerepo tool.

Outdated Metadata Hint

It is the "expire" tag.

Imagine Joe user has an update repo pointing to a mirror directly (no redirector). The mirror goes out of sync (however it is still reachable). He does not receive any warning, and meanwhile the main repo has lot of updates.

The server has a hint on how often the metadata is regenerated due to a change. The client could detect this and hint the user that the metadata has not been updated since long time.

The value is only a hint. The user should be able to disable or alter it.

The generated timestamp is calculated as the newer timestamp of all the data resources.

If the timestamp + expire < now, then the repo might be outdated (this is only a hint)

The expire value should be overridable in zypp.conf as a global, or per repository in the .repo file.