Tags 966904 +patch
thanks

The issue is that Magick++.h (indirectly) includes assert.h inside a namespace.

Note that generally only the first include of a header actually does anything 
due to the presense of include gaurds.
Therefore if assert.h is included before Magick++.h then everything is fine, 
the symbols from assert.h are correctly
included in the global namespace. OTOH if the first include of assert.h is the 
one from Magick++.h then the symbols
from assert.h are defined in the MagickCore namespace which breaks stuff.

I would argue that is a bug in imagemagick and have filed bugs in both Debian 
and upstream as
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=969128 and 
https://github.com/ImageMagick/ImageMagick6/issues/95

Nevertheless this can be worked around fairly easily in pfstools by re-ordering 
the includes so that pfs.h
(which includes assert.h) is included before Magick++.h . I have done so in 
Raspbian bullseye-staging

The patch for the upstream code can be found at
https://github.com/raspbian-packages/pfstools/blob/bullseye-staging/debian/patches/reorder-includes-imagemagick.patch
a debdiff should appear soon at  https://debdiffs.raspbian.org/main/p/pfstools

I may or may not NMU this in Debian later.

Reply via email to