[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