On Jun 9, 2011, at 3:30 PM, Sriram Narayanan wrote: > On Fri, Jun 10, 2011 at 12:37 AM, Jeff Johnson <n3...@mac.com> 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. >
todo++ >>> /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:anonym...@rpm5.org:/v/rpm/cvs get distro/db51 U distro/db51/db-1.85-errno.patch U distro/db51/db-4.5.20-jni-include-dir.patch U distro/db51/db-4.6.21-1.85-compat.patch U distro/db51/db51.spec U distro/db51/patch.1.1 U distro/db51/patch.1.2 U distro/db51/patch.1.3 U distro/db51/patch.1.4 Add the upstream db-5.1.25 and you should be good to go. 73 de Jeff
smime.p7s
Description: S/MIME cryptographic signature