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 <[email protected]> flavor, containing: > On Sun, Jun 30, 2019 at 06:32:31PM -0600, we recorded a bogon-computron > collision of the <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 > > > > [email protected] > > > > 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 > > > [email protected] > > > 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 > > [email protected] > > 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 > [email protected] > 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 [email protected] http://xastir.org/mailman/listinfo/xastir
