[Xastir] mac osx 10.4.8 Xastir 1.8.5 working here, mostly.
Tom Russo
russo at bogodyn.org
Thu Dec 21 10:16:29 EST 2006
On Thu, Dec 21, 2006 at 07:44:17AM -0700, we recorded a bogon-computron collision of the <wm5z at comcast.net> flavor, containing:
> >I think I prefer the "add as needed" to the "expose unhappy
> >incompatibilities" approach. But I think that the 4.x API is more likely
> >to be stable enough for now that it probably is six of one and half-a-dozen
> >of the other. Looking more carefully at the map_cache code, the API change
> >that was incompatible in early versions of 4.x was between 4.0 and 4.1, not
> >between 4.1 and 4.2. So it's been pretty stable for four or five minor
> >versions, and it's probably OK to assume it'll stay stable until 5.x, at
> >which time it'll probably be completely unstable again.
> >
> Wouldn't it be better for xastir to report "incomputable version" and
> then recommend the Wiki site for a fix? Might be one way to do it.
Well, it might be difficult. Ideally, the configure probe should search
for the presence of the functions we need to have in the bdb library, and
report that they're not found. That's what we're doing now, but searching
all over the place for the library first.
As long as it's possible to tell the differnce between compatible and
incompatible versions at configure time, what you suggest is OK, and
is in fact what's already happening to a degree.
An example of such an incompatibility is between versions 3.x and 4.x, where a
function we need doesn't exist in the former --- if one were simply to
add "db3.x" directories to the huge list of directories we search in, it's
fail because the function isn't there even though the library exists.
But db4.0 has that function, it just takes different arguments than it does in
all subsequent versions -- something that is more difficult to check in
autoconf (not impossible, but not doable with the stock macros, as they
only probe for the existence of functions in a library, not their prototypes).
Were there no special case ifdefs in map_cache to handle 4.0, the configure
script would scream along thinking everything is copacetic. In this
particular case, if there were no special case ifdef it is likely that xastir
would compile and link just fine (maybe with warnings about incompatible
function prototype or something), but then bomb when run because the arguments
passed to the function would be wrong.
Who knows how we'd detect an incompatibility in versions that don't exist
yet. Best not to probe for things we don't know to work, and add new
versions after carefully checking as they get released. Better still to remove
dependence on unstable libraries, but that's actual work for someone with
time to do it.
--
Tom Russo KM5VY SAR502 DM64ux http://www.swcp.com/~russo/
Tijeras, NM QRPL#1592 K2#398 SOC#236 AHTB#1 http://kevan.org/brain.cgi?DDTNM
"And, isn't sanity really just a one-trick pony anyway? I mean all you get is
one trick, rational thinking, but when you're good and crazy, oooh, oooh,
oooh, the sky is the limit!" --- The Tick
More information about the Xastir
mailing list