[GRASS5] ./configure --with-dbm on Debain/Testing

Glynn Clements glynn.clements at virgin.net
Sat Aug 23 11:41:59 EDT 2003


Hamish wrote:

> > > Debian has recently changed around their GNU DBM packages a bit; the
> > > libgdbm-dev package now provides dmb.h.
> ...
> > > http://bugs.debian.org/libgdbm-dev reports a ndbm compatability bug,
> > > if that might have anything to do with it.
> ...
> > Yep. It appears that Debian have decided to put the DBM functions into
> > a library called libgdbm_compat which, AFAICT, is a name used only by
> > Debian.
> 
> The maintainer's comments from that bug report:
> "libgdbm isn't meant to be linked to libgdbm_compat; that was the whole
> point of separating gdbm_compat out, so that applications using the
> modern (relatively, at least) gdbm interfacte wouldn't have to also
> have the added baggage of the legacy dbm interface."
> http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=200799

Yes, I read that.

> > I don't know whether:
> > 
> > a) this package includes a symlink (e.g. libdbm -> libgdbm_compat), so
> > that existing packages will continue to work, or
> 
> package's file list:
> http://packages.debian.org/cgi-bin/search_contents.pl?searchmode=filelist&word=libgdbm-dev&version=testing
> 
> $ ls -l /usr/lib/libgdbm*
> /usr/lib/libgdbm.a
> /usr/lib/libgdbm_compat.a
> /usr/lib/libgdbm_compat.la
> /usr/lib/libgdbm_compat.so -> libgdbm_compat.so.3.0.0
> /usr/lib/libgdbm_compat.so.3 -> libgdbm_compat.so.3.0.0
> /usr/lib/libgdbm_compat.so.3.0.0
> /usr/lib/libgdbm.la
> /usr/lib/libgdbm.so -> libgdbm.so.3.0.0
> /usr/lib/libgdbm.so.1 -> libgdbm.so.1.7.3
> /usr/lib/libgdbm.so.1.7.3
> /usr/lib/libgdbm.so.2 -> libgdbm.so.1.7.3
> /usr/lib/libgdbm.so.3 -> libgdbm.so.3.0.0
> /usr/lib/libgdbm.so.3.0.0
> 
> so that would be no,

Well, I was thinking along the lines of:

	/usr/lib/libdbm.so -> libgdbm_compat.so
or:
	/usr/lib/libndbm.so -> libgdbm_compat.so

In which case you would be able to get the DBM routines by using -ldbm
or -lndbm, which are traditional names for the library. Both of those
names are currently checked by the configure script.

> > b) they expect the rest of us to modify our configure scripts to
> > accomodate their change.
> > 
> > While b) seems pretty far-fetched, this *is* Debian, so it isn't
> > entirely out of the question. If it is b) then the Debian folks can
> > distribute their own modified GRASS package.
> 
> It seems it is a more general GDBM switch.
> 
> >From the upstream NEWS:
> CHANGES from 1.8 to 1.8.1
>   1.  Lots of bug fixes, including a data corruption bug.
>   2.  Updated to current autoconf and libtool.
>   3.  Moved the dbm/ndbm compatibility routines to libgdbm_compat.
> 
> 
> >From the upstream changelog:
> Wed Sep 25 15:19:00 PDT 2002    Jason Downs (downsj downsj.com)
> 
>         * Makefile.in: Remove the dbm and ndbm routines from the main
>           library, moving them to gdbm_compat.  install-compat now
>           installs the compat headers and the library.  Increment the
>           MAJOR number of the shared library due to the removal of
>           the compat functions.

The point is that the NDBM (new DBM) interface (which is what GRASS
uses) has been around for years, traditionally in one of libdbm,
libndbm or libgdbm. libdbm is the name of the original library, but
some systems have a libdbm which includes both DBM and NDBM functions. 
libndbm is the original name of the NDBM library (similar
functionality to DBM, but allows access to multiple tables).

libgdbm is (unsurprisingly) the GNU version, which includes both DBM
and NDBM functions, as well as a new set of functions (i.e. the GDBM
interface). At least it did, until Debian decided that they were going
to be different to every other Unix system from the last couple of
decades. But that's Debian's problem, not ours.

-- 
Glynn Clements <glynn.clements at virgin.net>




More information about the grass-dev mailing list