[Rpm-metadata] adding more information to repo metadata
Jeff Johnson
n3npq at mac.com
Mon Oct 3 12:36:59 EDT 2005
On Oct 3, 2005, at 6:25 AM, Florian La Roche wrote:
> 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.
>
> greetings,
>
> 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.
This is purely a representational issue since
Missing Epoch: and Epoch:0 are to be treated identically.
> - 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.
Only those bits whose values are guaranteed were exposed in rpm-
metadata.
Furthermore, the values were mapped into a different representation.
Exposing internal rpmlib values as an integer is simply stupid.
\
> - 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.
RPMSENSE_PREREQ is not needed for any purpose (yes there is
a difference in handling loops) since all Requires: used as tsort
relations.
Define "need" please. I know of no case where any additional information
to qualify dependencies is necessary or desirable.
> - 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).
>
I have suggested several times that repos generate file lists self-
consistently
within a repo, rather than using a rule based on paths.
The suggestion was deemed too much work.
73 de Jeff
More information about the Rpm-metadata
mailing list