[Rpm-metadata] adding more information to repo metadata
Florian La Roche
laroche at redhat.com
Mon Oct 3 06:25:32 EDT 2005
I've added the below text to http://people.redhat.com/laroche/pyrpm/README.html
Adding the "flag" part of dependencies also as integer into the repodata would
make it more complete and useful for new tasks.
Florian La Roche
Notes about the Repo-Metadata
The following things should be noted about the repo metadata. yum is using
the repodata only within the resolver part, then downloads the rpm headers
and passes all the headers on to rpmlib to verify again if the resolver
of rpmlib is ok as well as doing e.g. the installation ordering part
within rpmlib. If the repodata would be more complete, more steps could
be done only based on the repodata being available:
- Even if no epoch is specified, the metadata still specifies this as "0".
For most code paths this is no problem as for all comparisons of version
data, a missing epoch is the same as a "0" epoch. This should not be
a huge problem and would be only a cleanup item for the repodata.
- For dependency information the `flag` part is only partially copied into
the repodata. Just adding the `flag` information as integer would make
sure all information is present in any case. Extending the repodata to
have `intflag` added alongside the old information would be good.
- Repo data adds a "pre" flag if the RPMSENSE_PREREQ flag is set. That
information is actually not complete to identify install prereq and
we need the more complete flag information as requested above to
be able todo correct installation ordering based on repodata.
- There is a fixed regex string which specifies the filelist information
for the primary.xml file. In addition also all files are listed if
they appear in any file requires from the same repository. This means that
you need to download the full filelist once you work on more than one
repository and you have file requirements outside of the fixed regex list.
(Detecting the need for full filelists could be done per-repo to give
a quite good detection algorithm.) Only possible path for this is to
identify problems for several repos where the full filelists need to be
downloaded and to add such a requirement into that repo or otherwise
add a command line option to add such additional requirements (which
should then get also written into the repodata).
More information about the Rpm-metadata