XML Package Metadata

Creating rpm xml-metadata repositories

This page is all about createrepo and how it generates the metadata necessary for a package repository. This repository format is supported by apt, red-carpet(zen), smart, up2date, Yast and yum.

Downloads

All packages and releases are available from: http://linux.duke.edu/createrepo/download/

Anonymous SCM Access Access

To pull from git do the following

         git clone http://linux.duke.edu/createrepo/git/createrepo.git
        

To update once you've gotten it.

        git pull
        

Web based Source Access - GitWeb

Git Web is available from: http://devel.linux.duke.edu/gitweb/

Committer Access

If you're a committer your access is using ssh. You can access the git trees via:


     git clone ssh://login.linux.duke.edu/home/groups/createrepo/git/createrepo.git

     

Explanations

The files break down as follows:

repomd.xml
this is the file that describes the other metadata files. It is like an index file to point to the other files. It contains timestamps and checksums for the other files. This lets a client download this one, small file and know if anything else has changed. This also means that cryptographically (ex: gpg) signing this one file can ensure repository integrity.
primary.xml[.gz]
this file stores the primary metadata information. This includes information such as:
  • name, epoch, version, release, architecture
  • file size, file location, description, summary, format, checksums header byte-ranges, etc.
  • dependencies, provides, conflicts, obsoletes, suggests, recommends
  • file lists for the package for CERTAIN files - specifically files matching: /etc*, *bin/*, /usr/lib/sendmail [1]
  • it also includes a 'format' element which allows for format specific information to be stored. The formats known about right now are deb and rpm
filelists.xml.[gz]
this file stores the complete file and directory listings for the packages. The package is identified by: name, epoch, version, release, architecture and package checksum id.
other.xml.[gz]
this file currently only stores the changelog data from packages. However, this file could be used for any other additional metadata that could be useful for clients.
groups.xml.[gz]
- this file is tentatively described. The intention is for a common package-groups specification as well. There is still some sections for this format that need to be fleshed out.

Mailing List

Mailing list: https://lists.dulug.duke.edu/mailman/listinfo/rpm-metadata