RPM Community Forums

Mailing List Message of <rpm-users>

Re: What's the createrepo equivalent in rpm5 ?

From: Matthew Dawkins <mattydaw@gmail.com>
Date: Wed 23 Feb 2011 - 19:30:22 CET
Message-ID: <AANLkTi=0RiNbjnNtC6tgwdYyyho55TKppOZNt=PyoAVf@mail.gmail.com>
On Wed, Feb 23, 2011 at 11:20 AM, Jeff Johnson <n3npq@mac.com> wrote:

> On Feb 23, 2011, at 12:37 PM, Sriram Narayanan wrote:
> > Should we consider createrepo or does rpm5 provide something that's
> equivalent ?
> >
> Depends on what you want.
> There is a rpmrepo client-side tool that will create both rpm-metadata
> XML used by many depsolvers as well as the sqlite schema in the database
> format currently used by yum.
> > Would this be usable by yum ?
> >
> The output of rpmrepo was identical to what was in use by yum when
> implemented bck in 2008. Since then yum has changed some minor file naming
> conventions and otherwise altered the "standard" (but actually de facto)
> rpm-metadata format slightly.
> Wouldn't be hard to fix, is on my todo++ list, but there's been zero
> interest in using rpmrepo so far, hence its a low priority.
> The major features to rpmrepo are
>        1) client-side rather than server-side. This basically means
>        that rpmrepo can generate markup on the local client in any
>        format needed, thereby uncoupling from whatever incompaitibilities
>        are introduced on servers by "feeping creaturism" with later
>        yum versions.
>        2) faster (~20%) than createrepo when I last checked, largely
> because
>        in C not in python.
>        3) integrated support on the rpm CLI. E.g
>                rpm -qp --yum:primary.xml *.rpm
>        can be done any time one wishes, and generates rpm-metadata
>        in XML for whatever "*.rpm" constitutes a package repository
> collection.
> Note carefully that rpm-metadata markup is poorly designed and includes
> compute intensive elements like package file digests that largely make
> benchmark (or other comparisons) irrelevant. E.g. a very minor change
> to the markup to use pre-computed header+payload or header-only digests
> would speed up createrepo/rpmrepo by 1-2 orders of magnitude no matter
> what language was chosen for an implementation.
> hth
> 73 de Jeff

Unity Linux uses the following combination, smart+rpm5+(createrepo+yum).

We tried using rpmrepo, but it doesn't support some time saving features
like createrepo --update the last time I we checked. Yum is only needed by
createrepo, otherwise we use smart for our package manager.

Received on Wed Feb 23 19:36:06 2011
Driven by Jeff Johnson and the RPM project team.
Hosted by OpenPKG and Ralf S. Engelschall.
Powered by FreeBSD and OpenPKG.