[Xastir] Proposal: Pitch ImageMagick and require GraphicsMagick instead.
Tom Russo
russo at bogodyn.org
Fri Jan 1 12:33:31 EST 2010
After a recent upgrade of ImageMagick, many new "deprecated" warnings have
been showing up. Even the most basic function, "InitializeMagick," is now
a deprecated part of the API.
Maintaining support in Xastir for all the various versions of ImageMagick that
have broken API time and again has lead to code that is unbelievably ugly.
Throughout map_geo.c there are tests of the preprocessor symbol MagickLibVersion
where we check to see which broken API we have to deal with, and then do
different things depending on how old or new ImageMagick is.
Now, some distros are starting to ship ImageMagick with the "HDRI"
(High Dynamic Range Image) option turned on. Even the ImageMagick documentation
calls this an "experimental" feature. It causes the data type of the Quantum
(pixel value) to be a double instead of an integer, breaking our bit-fiddling
and requiring that we hack in additional special cases --- special cases
that will almost certainly be broken again when the "experiment" calls for
a change in API.
I say it's time that we declare ImageMagick too unstable an external library
for us to support. GraphicsMagick, the stable fork of ImageMagick, has been
much better and provides all the features we actually use. Now that the
8-bit quantum bug in Xastir is fixed, GraphicsMagick is a viable alternative
for all platforms.
I propose that following our next stable release (which should happen very
soon), support for ImageMagick be dropped completely. The code for maintaining
backward compatibility with all old versions of ImageMagick would be removed.
Configure macros for probing ImageMagick would be removed. All features
currently requiring either ImageMagick or GraphicsMagick would change to
requiring GraphicsMagick.
I think it is high time that we did this, as ImageMagick has been a thorn in
our sides ever since it was introduced as a dependency for Xastir.
Ideally, even GraphicsMagick should not be required --- what we use of that
library is so small a set that there should be something less elaborate that
would serve the purpose. But for now, GraphicsMagick is at least stable and
functional, and doesn't require bizarre coding circumlocutions just to keep
it going.
Discussion?
--
Tom Russo KM5VY SAR502 DM64ux http://www.swcp.com/~russo/
Tijeras, NM QRPL#1592 K2#398 SOC#236 http://kevan.org/brain.cgi?DDTNM
In some cultures what I do would be considered normal.
-- Ineffective daily affirmation
More information about the Xastir
mailing list