[Mageia-bugsquad] Bug 2157 - Switch to "standard" rpm metadata for package repositories in Mageia 2

Marja van Waes marja11 at xs4all.nl
Thu Oct 27 17:52:27 CEST 2011

What to do with this bug?

Mageia 2 spec #034
also seehttps://mageia.org/wiki/doku.php?id=iso2:technical_specification

Mageia repositories currently have a media_info dir which contains a
line-oriented 'synthesis' file, plus some XML files with additional
information like package descriptions, and a hdlist which AFAIK is not
used by urpmi.

Fedora and opensuse repositories do not use this format for metadata but
instead have a repodata dir containing a 'primary' and other XML files,
which are all listed in a 'rpomd.xml' file.

The two schemes are similar which is not very surprising because the
requirements are the same. Most package managers with rpm support can use
the repomd style but urpmi can't. Only a few package managers support
synthesis style metadata. Switching to this 'standard' repository metadata
would give people more choice: use other package managers (e.g. yum or zypper)
in mageia and use urpmi on other distros. In the long term this should help
make urpmi easier to maintain: the "standard" metadata is a bit easier to
urpmi will be more a standard tool: behavior can easily be compared to other
package managers, test suites may be shared.

Some not very useful index size numbers for mga cauldron x86_64 core/release :
1.7M    synthesis.hdlist.cz
1M      info.xml.lzma
5,6M    changelog.xml.lzma
8,7M    files.xml.lzma

4,4M    primary.xml.gz
3,4M    other.xml.gz
11M     filelists.xml.gz (8,8M when compressed with xz)

- no negative impact for people who use the default package tools
- basic support for other package managers (yum, zypper, apt) in mageia 2
   (better support where packagekit uses the package manager the user has
   chosen is not part of this spec but could be a follow-up feature)

the plan is:
- modify urpmi to only support repomd metadata
- add repomd metadata to the cauldron repository while keeping synthesis
- upload the new urpmi
- after either the mga2 or mga3 release:
   drop synthesis/hdlist metadata from cauldron

so there will be 1 or 2 stable releases that carry both types of
repository metadata. The build infrastructure needs to support this of
course. This adds some complexity and uses extra space on the mirrors.

Things that need to be changed:
- urpmi perl code
- maybe a fast xml reader in C, like yum has ?
- rpmdrake/installer ?
- build system

Open questions:
- Is there anything I missed, unique urpmi features that will be broken by
   such a change, other expected problems?
- A volunteer is needed for writing the needed perl code for perl-URPM etc.,
   otherwise the change won't happen.

More information about the Mageia-bugsquad mailing list