[Xastir] libdb error?

Tom Russo russo at bogodyn.org
Wed Jan 16 09:59:08 EST 2013


On Tue, Jan 15, 2013 at 08:45:09PM -0700, we recorded a bogon-computron collision of the <jdtidw7ret at gmail.com> flavor, containing:
> After building Xastir in mint 14 I get errors in my terminal and the only
> map that displays is worldhi. I also have the libdb being the wrong
> version. The only version in mint repo is 5.1.6

Xastir's source code is explicitly written to work only with version 4.x of 
Berkeley DB.  It may be the case that it could be modified in some small way
to work with 5.x, but so far nobody has stepped up to do that work.  There
was a long thread here a month or two ago about that.  In that thread I pointed
out what the real problem is here, and suggested that folks who are experiencing
it could try a few things out.  So far as I know, nobody has done it.

Basically, the map caching code has ifdefs that ONLY pick up versions of BDB
with major version 4, or detect version 3 and issue an error message.  If 
these were rewritten so that they detected versions > 4, and the code were
tested to make sure it still works with version 5 (and fixed if it doesn't),
then it could be made to work.  

Unfortuately, since the configure script checks to see if "-ldb" works and
the associated library contains a particular BDB function, and the 
Linux BDB 5.x packages make a symlink between libdb-5*.so and libdb.so, 
configure thinks it can use the library.  But the code itself has all these
ifdefs that make it *ignore* versions above 4 and error out for versions
below 4.

If anyone who is using BDB 5.x and xastir built from source cares to do the 
work then we'd gladly accept the code modifications.  But neither Curt nor I
seem to have the time to look into it (I have no system with bdb 5.x on it,
and no time at all to work on xastir these days).  I *think* the only thing
that would be necessary would be to change all the ifdefs so that the place
where it checks majorversion=4 and minorversion>=1 to check (majorversion=4 
and minorversion>=1)OR(majorversion>4).  The relevant ifdefs are scattered
in several places in map_cache.c.

If that works, great --- the 4.x and 5.x APIs are close enough.  If it doesn't,
someone will have to figure out what's changed and rework the map caching
code.

Remember that map caching is ONLY used for on-line maps other than OSM (the
old tiger stuff, and all the terraserver maps).  OSM maps use a different 
caching scheme that doesn't depend on BDB.

> TBD: I don't think we can deal with colorspace != RGB

This may be an issue with how your imagemagick is compiled.  ImageMagick has
a tendency to change their API in incompatible ways all the time, and it
sometimes breaks Xastir.  I know of at least two things on the horizon that
are going to force us to update our ImageMagick usage, and there's a third issue
where lots of distros are building IM with HDRI support --- something
that Xastir can't live with at all (though that should not be your issue, 
because when *that* happens Xastir won't even build).  Try installing 
GraphicsMagick and rebuilding Xastir, and see if it goes away.

If you're already using GM instead of IM, I don't know why you're getting that
error.  Which maps are you trying to render?

-- 
Tom Russo    KM5VY   SAR502   DM64ux          http://www.swcp.com/~russo/
Tijeras, NM  QRPL#1592 K2#398  SOC#236        http://kevan.org/brain.cgi?DDTNM
 echo "prpv_a'rfg_cnf_har_cvcr" | sed -e 's/_/ /g' | tr [a-m][n-z] [n-z][a-m]

 





More information about the Xastir mailing list