[Xastir] GraphicsMagick include issue on Gentoo

Tom Russo russo at bogodyn.org
Sun Jun 30 18:22:14 PDT 2019


Fixed in commit 7b6ecce5.

On Sun, Jun 30, 2019 at 07:03:16PM -0600, we recorded a bogon-computron collision of the <russo at bogodyn.org> flavor, containing:
> It appears that the call to DestroyImagePixels, which is supposed to 
> deallocate memory associated with the pixel cache, was added to Xastir
> as part of an effort to "release memory consistently for exit points" in 
> commit 4210671c3 from 2007, but it may be inappropriately used here.
> 
> It appears it was an attempt to free any memory created by GetImagePixels,
> but this does not look like it was supposed to be correct way to do that 
> (in fact, one is not supposed to do it directly).  DestroyImagePixels
> is only supposed to be called by the DestroyImage function, which is public.
> 
> The function "draw_geo_image_map" (which is a huge function) has many, many
> exit points, and it appears that almost all of them correctly call
> DestroyImage on the image anyway.  So this call to DestroyImagePixels
> certainly improper and should never have been put where it is.
> 
> I am removing the function call and the kludge that made us include
> private declarations.  Watch for the fix in a git push soon.
> 
> On Sun, Jun 30, 2019 at 06:37:12PM -0600, we recorded a bogon-computron collision of the <russo at bogodyn.org> flavor, containing:
> > On Sun, Jun 30, 2019 at 06:32:31PM -0600, we recorded a bogon-computron collision of the <russo at bogodyn.org> flavor, containing:
> > > Lo, and behold, on June 20th, the GraphicsMagick package on my system was
> > > updated to 1.3.32, and I had last built Xastir with the previous version,
> > > 1.3.31.  Today, building Xastir crashes with the same error you get.
> > > 
> > > I will look into whether it is still necessary to have MAGICK_IMPLEMENTATION
> > > defined.  Taking it out is supposed to fix the compilation error, but I have 
> > > no idea if it preserves the function of map_geo.c.
> > 
> > Removing the MAGICK_IMPLEMENTATION definition does indeed allow us to compile,
> > but reintroduces the very warning this definition was put in place to silence.
> > 
> > We'll simply need to figure out why DestroyImagePixels ever needed to be called,
> > and replace it with whatever non-private function should be called instead.
> > 
> > In the meantime, you can probably get by by just commenting out line 136 of
> > map_geo.c, which is "#define MAGICK_IMPLEMENTATION".  You will get a warning
> > about an implicit declaration of DestroyImagePixels, but it should at least
> > let you compile.
> > 
> > I'm googling like mad to figure out what DestroyImagePixels does and trying
> > to figure out why it needs to be called by Xastir at all.
> > 
> > > On Sun, Jun 30, 2019 at 06:26:07PM -0600, we recorded a bogon-computron collision of the <russo at bogodyn.org> flavor, containing:
> > > > Other OSen are experiencing this:
> > > > 
> > > > https://bugzilla.redhat.com/show_bug.cgi?id=1722840
> > > > https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=924329#18
> > > > 
> > > > The problem is that Xastir's map_geo.c is defining "MAGICK_IMPLEMENTATION" in
> > > > order to (inappropriately) access private interfaces, which the version of 
> > > > Magick you have  has in fact moved to a private header that is no longer
> > > > installed with the package.
> > > > 
> > > > Apparently this hack was added in 2010 to Xastir to silence warnings about
> > > > misuse of private interfaces, instead of removing the use of DestroyImagePixels.
> > > > 
> > > > Some work will have to be done to figure out *why* DestroyImagePixels was
> > > > being used in map_geo.c, and to replace it with calls to public interfaces
> > > > of Magick.
> > > > 
> > > > On Sun, Jun 30, 2019 at 04:12:27PM -0700, we recorded a bogon-computron collision of the <davidf4 at mindspring.com> flavor, containing:
> > > > > Hello All,
> > > > > 
> > > > > I just did a git pull, bootstrap, configure, make clean, and make on my 32
> > > > > bit Gentoo VM (and my 64 bit VM so not byte size dependent)..... and now my
> > > > > compiles fail with:
> > > > > 
> > > > >   CC       map_geo.o
> > > > > In file included from /usr/include/GraphicsMagick/magick/analyze.h:18,
> > > > >                  from /usr/include/GraphicsMagick/magick/api.h:55,
> > > > >                  from map_geo.c:137:
> > > > > /usr/include/GraphicsMagick/magick/image.h:1108:10: fatal error:
> > > > > magick/image-private.h: No such file or directory
> > > > >  #include "magick/image-private.h"
> > > > >           ^~~~~~~~~~~~~~~~~~~~~~~~
> > > > > compilation terminated.
> > > > > make[3]: *** [Makefile:634: map_geo.o] Error 1
> > > > > make[3]: Leaving directory '/home/dflood/src/Xastir/src'
> > > > > make[2]: *** [Makefile:656: all-recursive] Error 1
> > > > > make[2]: Leaving directory '/home/dflood/src/Xastir/src'
> > > > > make[1]: *** [Makefile:744: all-recursive] Error 1
> > > > > make[1]: Leaving directory '/home/dflood/src/Xastir'
> > > > > make: *** [Makefile:426: all] Error 2
> > > > > 
> > > > > Here's what ./configure tells me:
> > > > > 
> > > > > xastir 2.1.3 has been configured to use the following
> > > > > options and external libraries:
> > > > > 
> > > > > MINIMUM OPTIONS:
> > > > >   ShapeLib (Vector maps) .................... : yes
> > > > > 
> > > > > RECOMMENDED OPTIONS:
> > > > >   Xpm / Snapshots ........................... : yes
> > > > >   GraphicsMagick/ImageMagick (Raster maps) .. : yes (GraphicsMagick)
> > > > >   pcre (Shapefile customization) ............ : yes
> > > > >   dbfawk (Shapefile customization) .......... : yes
> > > > >   Berkeley DB map caching-Raster map speedups : yes
> > > > >   internet map retrieval .................... : yes (libcurl)
> > > > > 
> > > > > FOR THE ADVENTUROUS:
> > > > >   AX25 (Linux Kernel I/O Drivers) ........... : no
> > > > >   libproj (USGS Topos & Aerial Photos) ...... : yes
> > > > >   GeoTiff (USGS Topos & Aerial Photos) ...... : yes
> > > > >   Festival (Text-to-speech) ................. : no
> > > > >   GPSMan/gpsmanshp (GPS downloads) .......... : no
> > > > > 
> > > > > xastir will be installed in /usr/local/bin.
> > > > > 
> > > > > Here's my output of gm -version
> > > > > 
> > > > > GraphicsMagick 1.3.32 2019-06-15 Q8 http://www.GraphicsMagick.org/
> > > > > Copyright (C) 2002-2019 GraphicsMagick Group.
> > > > > Additional copyrights and licenses apply to this software.
> > > > > See http://www.GraphicsMagick.org/www/Copyright.html for details.
> > > > > 
> > > > > Feature Support:
> > > > >   Native Thread Safe       no
> > > > >   Large Files (> 32 bit)   yes
> > > > >   Large Memory (> 32 bit)  no
> > > > >   BZIP                     yes
> > > > >   DPS                      no
> > > > >   FlashPix                 no
> > > > >   FreeType                 yes
> > > > >   Ghostscript (Library)    no
> > > > >   JBIG                     no
> > > > >   JPEG-2000                no
> > > > >   JPEG                     yes
> > > > >   Little CMS               yes
> > > > >   Loadable Modules         no
> > > > >   Solaris mtmalloc         no
> > > > >   OpenMP                   yes (201511 "4.5")
> > > > >   PNG                      yes
> > > > >   TIFF                     yes
> > > > >   TRIO                     no
> > > > >   Solaris umem             no
> > > > >   WebP                     no
> > > > >   WMF                      no
> > > > >   X11                      yes
> > > > >   XML                      yes
> > > > >   ZLIB                     yes
> > > > > 
> > > > > Host type: i686-pc-linux-gnu
> > > > > 
> > > > > Configured using the command:
> > > > >   ./configure  '--prefix=/usr' '--build=i686-pc-linux-gnu'
> > > > > '--host=i686-pc-linux-gnu' '--mandir=/usr/share/man'
> > > > > '--infodir=/usr/share/info' '--datadir=/usr/share' '--sysconfdir=/etc'
> > > > > '--localstatedir=/var/lib' '--disable-dependency-tracking'
> > > > > '--disable-silent-rules' '--docdir=/usr/share/doc/graphicsmagick-1.3.32'
> > > > > '--htmldir=/usr/share/doc/graphicsmagick-1.3.32/html' '--with-sysroot=/'
> > > > > '--libdir=/usr/lib' '--enable-openmp' '--enable-largefile' '--enable-shared'
> > > > > '--disable-static' '--disable-prof' '--disable-gcov'
> > > > > '--disable-magick-compat' '--without-threads' '--without-modules'
> > > > > '--with-quantum-depth=8' '--without-frozenpaths' '--with-magick-plus-plus'
> > > > > '--with-perl' '--with-perl-options=INSTALLDIRS=vendor' '--with-bzlib'
> > > > > '--without-dps' '--without-fpx' '--without-jbig' '--without-webp'
> > > > > '--with-jpeg' '--without-jp2' '--with-lcms2' '--without-lzma' '--with-png'
> > > > > '--with-tiff' '--with-ttf' '--without-wmf'
> > > > > '--with-fontpath=/usr/share/fonts'
> > > > > '--with-gs-font-dir=/usr/share/fonts/urw-fonts'
> > > > > '--with-windows-font-dir=/usr/
> > > > > 
> > > > > Final Build Parameters:
> > > > >   CC       = i686-pc-linux-gnu-gcc
> > > > >   CFLAGS   = -fopenmp -O2 -march=i686 -pipe -Wall
> > > > >   CPPFLAGS = -I/usr/include/freetype2 -I/usr/include/libxml2
> > > > >   CXX      = i686-pc-linux-gnu-g++
> > > > >   CXXFLAGS = -O2 -march=i686 -pipe
> > > > >   LDFLAGS  = -Wl,-O1 -Wl,--as-needed
> > > > >   LIBS     = -llcms2 -ltiff -lfreetype -ljpeg -lpng16 -lXext -lSM -lICE
> > > > > -lX11 -lbz2 -lxml2 -lz -lm
> > > > > 
> > > > > I did find a ref to this error and Xastir in one of the Debian email lists
> > > > > from March...
> > > > > 
> > > > > http://debian.2.n7.nabble.com/Re-Bug-924329-xastir-FTBFS-magick-image-privat
> > > > > e-h-No-such-file-or-directory-td4492878.html
> > > > > 
> > > > > David Flood
> > > > > KD7MYC
> > > > > 
> > > > > 
> > > > > 
> > > > > 
> > > > > _______________________________________________
> > > > > Xastir mailing list
> > > > > Xastir at lists.xastir.org
> > > > > http://xastir.org/mailman/listinfo/xastir
> > > > 
> > > > -- 
> > > > Tom Russo    KM5VY
> > > > Tijeras, NM  
> > > > 
> > > >  echo "prpv_a'rfg_cnf_har_cvcr" | sed -e 's/_/ /g' | tr [a-m][n-z] [n-z][a-m]
> > > > 
> > > > _______________________________________________
> > > > Xastir mailing list
> > > > Xastir at lists.xastir.org
> > > > http://xastir.org/mailman/listinfo/xastir
> > > 
> > > -- 
> > > Tom Russo    KM5VY
> > > Tijeras, NM  
> > > 
> > >  echo "prpv_a'rfg_cnf_har_cvcr" | sed -e 's/_/ /g' | tr [a-m][n-z] [n-z][a-m]
> > > 
> > > _______________________________________________
> > > Xastir mailing list
> > > Xastir at lists.xastir.org
> > > http://xastir.org/mailman/listinfo/xastir
> > 
> > -- 
> > Tom Russo    KM5VY
> > Tijeras, NM  
> > 
> >  echo "prpv_a'rfg_cnf_har_cvcr" | sed -e 's/_/ /g' | tr [a-m][n-z] [n-z][a-m]
> > 
> > _______________________________________________
> > Xastir mailing list
> > Xastir at lists.xastir.org
> > http://xastir.org/mailman/listinfo/xastir
> 
> -- 
> Tom Russo    KM5VY
> Tijeras, NM  
> 
>  echo "prpv_a'rfg_cnf_har_cvcr" | sed -e 's/_/ /g' | tr [a-m][n-z] [n-z][a-m]
> 
> _______________________________________________
> Xastir mailing list
> Xastir at lists.xastir.org
> http://xastir.org/mailman/listinfo/xastir

-- 
Tom Russo    KM5VY
Tijeras, NM  

 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