[Rpm-maint] Teach rpm-4.4.2 how to avoid the __db* version time stamp (fwd)

Panu Matilainen pmatilai at laiskiainen.org
Tue Jun 5 07:05:35 UTC 2007

Haven't tested this (yet), but might be worth considering...

Since it doesn't check whether the locks are stale or not (that I think
requires a newer bdb than what's in there is a possibility of 
nuking somebody elses active locks:
1) when trying to access rpmdb within a chroot from inside and outside of
    the chroot simultaneously
2) if you have two different rpm versions on your (real) system accessing
    the rpmdb

There are so many ways one can mess up a chroot environment from the 
outside, 1) is mostly a non-issue. As of 2) it's probably just getting 
what you bargained for :)


 	- Panu -

---------- Forwarded message ----------
Date: Mon, 4 Jun 2007 21:29:53 -0400
From: Jeff Johnson <n3npq at mac.com>
Reply-To: rpm-devel at rpm5.org
To: rpm-devel at rpm5.org
Subject: Teach rpm-4.4.2 how to avoid the __db* version time stamp

rpm-4.4.2 and earlier has always had a problem
accessing rpmdb's with different versions.

The problem shows up (at least) on build machines, which
often have multiple versions of rpm installed in chroot's.

I know that Dag has seen the problem many many times, because
he's told me so.

I've also had to do similar fixing (usually by using common
Berekely DB in all rpm versions) to keep my former employer's
build systems functioning. EINVAL checking is easier than porting
Berkeley DB for those who are able to upgrade rpm.

The attached (untested, but the fixing is easy enough to eyeball) patch
against the rpm-4_4_2-release branch @rpm5.org removes __db* files if EINVAL
(the old way) or DB_VERSION_MISMATCH (the new way) is returned
by dbenv->open().

If someone could apply to the rpm.org code base, test, and then send
along to <rpm-maint at lists.dulug.duke.edu>, I'd appreciate.


73 de Jeff
-------------- next part --------------
A non-text attachment was scrubbed...
Name: rpm-4.4.2-mismatch.patch
Type: application/octet-stream
Size: 2148 bytes
Url : http://lists.rpm.org/pipermail/rpm-maint/attachments/20070605/776fec7b/attachment-0001.obj 

More information about the Rpm-maint mailing list