[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