RPM Community Forums

Mailing List Message of <rpm-devel>

Support for multiple rpmdb's

From: Jeff Johnson <n3npq@mac.com>
Date: Tue 31 Jul 2007 - 17:45:53 CEST
Message-Id: <C32A58B3-A1F3-4D13-9F9B-1513BF905B44@mac.com>
It's likely time to plan to support multiple rpmdb databases,
and possibly with multiple implementations like Berkeley DB
and sqlite.

The specific usage case is for a integrated rpm depsolver. Ignoring
all the transport and import/export representation issues, the
underlying need is the ability to discover what package matches
a given requires.

Re-using the existing rpmdb code, particularly the iterator that
is used for all retrievals, makes lots of sense to me.

What that means is the iterator would need to add an additional loop
over multiple databases, and would need to supply additional information
about which rpmdb contains the header returned by the iterator.

There's the usual baggage configuring multiple paths, and attaching
attributes like RDONLY or RDWR, as well as identification of usage,
that will likely need doing.

So far, I've been planning to turn %_dbpath into a colon separated path
to multiple databases, the first of which is the gud old /var/lib/rpmdb
with RDWR.

There is also the existing %_solve_dbpath. There is  a need for a per- 
rpmts
database for headers passed to rpmtsAddInstallElement that could/should
be used to eliminate the nasty code with a largish in-memory  
footprint in
lib/rpmal.c.

But if other means to an "integrated dependency solver" for rpm-5.0 are
desired, it's likely time to warn me now ;-)

73 de Jeff
Received on Tue Jul 31 17:45:48 2007
Driven by Jeff Johnson and the RPM project team.
Hosted by OpenPKG and Ralf S. Engelschall.
Powered by FreeBSD and OpenPKG.