RPM Community Forums

Mailing List Message of <rpm-users>

Re: ./rpmdb.h:433: error: expected specifier-qualifier-list before 'DB_SEQUENCE'

From: Jeff Johnson <n3npq@mac.com>
Date: Mon 27 Jun 2011 - 16:00:07 CEST
Message-id: <72038ADA-51AF-4E31-BF44-CA5944AF25C4@mac.com>

On Jun 27, 2011, at 9:02 AM, Miller, Vincent (Rick) wrote:

> I had a similar issue.  Turned out it was unable to locate the Berkley DB
> header, db.h.  The maintainer, Jeff, says that RPM5's include looks like
> #include <db51/db.h>.
> 

I should explain the reasoning here:

Berekely DB has _ALWAYS_ had issues when upgrading. In fact
embedding internally, not attempting to use a system version
of Berkeley DB, has been recommended for more than a decade.

RPM embedded Berkeley DB for many years for exactly that reason.

What happened instead is that distros ignored what was in
the released RPM tar ball, and continue to attempt to use
an external version of Berkeley DB.

SO in spite of reservations (I have been releasing RPM for 13 years now),
I have gone along with the de facto distro policy of using the
system Berkeley DB and stopped distributing a "know good"
version of Berkeley DB embedded in RPM.

Not distributing Berkeley DB with RPM opens a whopping amount
of build breakage, and also adds a combinatorial failure
to QA testing during releases that @rpm5.org does not have
the resources to address.

So @rpm5.org releases target a single (usually the latest, RPM + db-5.2.x
is high on my todo++ stack currently) version of Berkeley DB.

Meanwhile what RPM needs from Berkeley DB is rather modest:
	Any version of Berkeley DB back to db-4.5.x will Just Work.
if you succeed in building.

There is no simple solution that I see to the above: either more resources @rpm5.org
are needed (which is unlikely to happen), or users are going to have
to patch the released version to accommodate their own specific build needs.

The necessary changes are not all that hard:

	There are two places that
		#include <db51/db.h>
	is used that need to be changed. Its the "db51/" portion
	of the include that causes build failures.

And there are these 3 approaches to building RPM:

	1) install db-5.1.x into
		/usr/include/db51/db.h
		/usr/lib/libdb-5.1.*

	2) patch RPM to use a different version of Berkeley DB

	3) re-add Berkeley DB db-5.1.x internal to RPM.

@rpm5.org cannot dictate which of those approaches end-users wish to choose in RPM.

hth

73 de Jeff
Received on Mon Jun 27 16:00:37 2011
Driven by Jeff Johnson and the RPM project team.
Hosted by OpenPKG and Ralf S. Engelschall.
Powered by FreeBSD and OpenPKG.