On Jun 9, 2011, at 3:30 PM, Sriram Narayanan wrote:
> On Fri, Jun 10, 2011 at 12:37 AM, Jeff Johnson <firstname.lastname@example.org> wrote:
>> On Jun 9, 2011, at 2:59 PM, Sriram Narayanan wrote:
>>> I have bdb 5.1.19 installed at /workspace/altopt/ (with sub folders
>>> being include, bin, lib, etc).
>> Note that there is a ABI breakage between db-5.1.19 -> db-5.1.25. You
>> might want to start using db-5.1.25 to avoid later pain.
>> ABI breakage == you MUST recompile everything linked against
>> db-5.1.19 in order to move to db-5.1.25 or you WILL segfault.
> Ok, I can definitely move to 5.1.25. However, the INSTALL document
> mentions 5.1.19, you may want to correct that.
>>> /workspace/altopt/include contains db.h and dbsql.h
>>> Here's a snippet of what I use to autogen and configure the rpm build process:
>>> /bin/sh ./autogen.sh
>>> ./configure CPPFLAGS="-I/workspace/altopt/include -I/usr/include"
>>> LDFLAGS="-L/workspace/altopt/lib -L/usr/gnu/lib -L/lib" \
>>> --prefix=/workspace/altopt \
>>> --enable-shared \
>>> --with-db=external \
>>> --with-dbsql=external \
>>> --without-db-tools-integrated \
>>> --with-zlib \
>>> --with-bzip2 \
>>> --with-xz \
>>> And yet I see that ./configure looks for a subfolder db51 and tries to
>>> use that. This is resulting in the build not finding the DB_SEQUENCE
>>> data structure, resulting in a build failure.
>>> What else should I set such that the external DB is picked up ?
>> Yes. There are two places (iirc) that
>> #include <db51/db.h>
>> are hard wired.
>> Create a symlink on some include path to where ever you built Berkeley DB
>> is one easy way to avoid.
>> The other is to patch rpm (grep "db51" */*.[ch])
>> to do something else instead.
>> Yet another is to untar db-5.1.X into the top level directory, do
>> mv db-5.1.x db
>> and build --with-db=internal (there's also --with-dbsql=internal needed).
> The directory structure that the rpmbuild expects (at least db51/db.h)
> is different from what db-5.1.19 provides.
Yes. If built internally, then the build ends up with ./db3/db.h being included.
You *might* need
ln -s db3 db51 in the to[p level directory.
> What is your folder structure for bdb ?
> Also, which version are you testing with ?
I use this db51.spec and packaging (or some modest variant thereof).
I test against db-5.1.25 (but can/have used db-5.1.19, I switched
when Mandriva cooker swithced).
falmouth:tmp jbj$ cvs -d :pserver:email@example.com:/v/rpm/cvs get distro/db51
Add the upstream db-5.1.25 and you should be good to go.
73 de Jeff
Received on Thu Jun 9 21:41:42 2011
- application/pkcs7-signature attachment: smime.p7s