[Rpm-metadata] RFE: auto processing of XML files in repodata/ ?

Piete Brooks Piete.Brooks--rpmmetadata at cl.cam.ac.uk
Sat Jan 19 14:07:49 UTC 2008

Executive summary: Could createrepo be configured in some way to add any XML 
files which it finds in the old repomd.xml file and/or repodata/ directory, 
e.g. triggered by a command line flag, or finding them in the old repomd.xml 
file and/or repodata/ directory?

I'm looking into writing a newbie guide on how to setup a repository for 
Fedora 9's "presto" delta RPMs.
It wants to have a "prestodelta.xml" included in repomd.xml.
This can be done using modifyrepo once the XML has been created.
However, whenever createrepo is run, modifyrepo has to be run again.

Complication 0: calling modifyrepo after each createrepo leave an "untidy" 
window when the data is not as it should be. Doing everything within 
createrepo make it atomic.

Complication 1: modifyrepo appears to require a .xml file, and generate a 
.xml.gz file. Could it be told either to use the .xml file ASIS (as its "-g" 
flag does) rather than generate a new .xml.gz, or be able to be given a 
.xml.gz file as input?

Complication 2: I thought repodata/ was a good place to put prestodelta.xml, 
but when createrepo is run subsequently, it complains about it being left in 
.oldrepo/ (or whatever it's called)

Complication 3: I also use groups-common.xml, which I have to remember to add 
to the createrepo command line [ note that unlike adding it using modifyrepo, 
the .xml file is used ASIS, and is not gzipped ] - it would be good if it 
could automate that (by the file being in the old repomd.xml file and/or 
repodata/ directory)

SO: my suggestion is that createrepo be amended so that it "just works", 
auto-detecting that groups-common.xml, prestodelta.xml, deltas.xml, etc are 
needed, and adding them to repomd.xml.

My preferences in decreasing order of preference are:

1) include any .xml[.gz] file which is mentioned in the old repomd.xml
2) include any .xml[.gz] file in the old repodata/
3) do (1) or (2) if a command line flag is passed to createrepo (-a ?)
4) have a built in list of files to look for and auto process
5) allow a list of files which should be looked for, on the command line
6) allow a list of files which should be processed to be passed on the cmd line

I'm hoping that (1) would not break any existing setups, but if this is felt 
not to be backwards compatible, work down until a suitable one is found.


More information about the Rpm-metadata mailing list