[Date Prev][Date Next] [Chronological] [Thread] [Top]

Re: success building on FreeBSD 3.x using DB2 port

At 05:26 PM 4/30/99 -0400, Charles Owens wrote:
>I've managed to get openldap to build and run happily using FreeBSD's
>supplied port of the Sleepcat db2 library (despite what the auto-FAQ
>says on this subject *) but it's kind of a hack.  If anyone knows how to
>do this more cleanly, please holler.  I'd eventually like to get this to
>the openldap FreeBSD port maintainer so it can just happen automatically
>for us.

Actually, you should bitch at the FreeBSD BerkeleyDB port maintainer
for renaming the library!  Do they really think that every dependent
application will make this change?  

Yes, but I avoid badly packaged ports.  (Just like I avoid badly
packaged RPMs).

>Anyway, this is what I did (I'm assuming you know how to use the FreeBSD
>ports collection):

The reason I didn't suggest this approach is that if user later
remove the port, the symlink would be left behind.  This might
cause problems with linking (against the distribution -ldb)
or installation of a corrected port.

However, you are welcomed to add this information to the
FAQ answer.  I just suggest you add a comment to the user
that the symlink should be manually removed if the port/package
is ever deinstalled.

>3. Download and untar openldap 1.2.1 (I didn't use the FreeBSD port
>because its not quite up to date)

Neither is the FreeBSD BerkeleyDB port.

>That's it!  Without my hack (step 2), configure doesn't find the new DB2
>library.  It seems to be only interested in examining a lib named
>libdb.a .   I tried also setting (in step 4)  LIBS="-ldb2" , but it
>didn't help.

I would think:
  env CPPFLAGS="-I/usr/local/include -I/usr/local/include/db2" \
	LDFLAGS="-L/usr/local/lib" LIBS="-ldb2" ./configure

would work.  Anyways, that would have the nasty side effect
of linking everything with -ldb2.

>I see various ways configure could be hacked to get around this, but
>what's the proper way?

To have the FreeBSD BerkeleyDB port updated not to rename the
library.  Otherwise each and every package that uses BerkeleyDB
would have to be modified.