From Bugzilla Helper: User-Agent: Mozilla/4.72 [en] (X11; U; OSF1 V5.0 alpha) configure for rpm 4.0.2 and a couple of the lib/db* files are coded such that they work fine on Red Hat systems, where the DB 3.x header file is in db3/db.h, but on other systems where that probably just gets installed under ${prefix}/include/db.h, db3.c and dbconfig.c won't compile, because they blindly try include db3/db.h if USE_DB3 is defined. A slightly more portable way of doing this is check for db3/db.h, and if it's not found, then check for just db.h. If that is found, check it to see if it defines the DB_VERSION_MAJOR as 3. If it does, then define a couple symbols so that db3.c and dbconfig.c know that they can include just db.h and get the stuff they need. Reproducible: Always Steps to Reproduce: DB 3.x on any non-Red Hat system: ./configure ; make ; make install followed by: ./configure; make with rpm 4.0.2 The URL contains a patch I've coded up that does what I mention in the description above. Note that patch also contains one other tune-up -- don't force configure's notion of a proper PATH when searching for various tools for any platform other than linux.
rpm is gonna swallow a copy of Berkeley DB, there's simply too many issues to be dealt with building against a j-random db installation. Meanwhile, thanks for the patch. You might also be interested in looking at rpm top of stack. There's a --repackage option as in rpm -Uvv --repackage <your packages here> that puts the old bits back into packages in (configurably) /var/tmp. There'll be a full blown --apply/--commit/--rollback methodology Real Soon Now.
rpm-4.0.3 has swallowed db-3.3.4, will not have support for db1, so this problem is moot.