Bug#1086937: pfstools: build against imagemagick 7

Andreas Metzler ametzler at bebt.de
Sat Nov 9 16:51:25 GMT 2024


On 2024-11-07 pochu at debian.org wrote:
> Source: pfstools
> Severity: serious

> Hi,

> pfstools is still built against imagemagick 6, but we're transitioning
> to imagemagick 7, see [1].

> Your package may be build-depending on imagemagick 6 binaries (e.g.
> libmagickwand-6.q16-dev), in which case it should switch to the new
> binary packages, or generic ones if possible.

> If your package build-depends on unversioned packages (e.g.
> libmagick++-dev) then most likely it failed to build against the
> new version, and will need fixes for ImageMagick 7. See the buildd
> status for logs [2].
[...]

Hello Emilio,

pfstools FTBFS against imagemagick 7 with

In file included from /usr/include/ImageMagick-7/Magick++/Include.h:16,
                 from /usr/include/ImageMagick-7/Magick++.h:12,
                 from /tmp/PFSTOOLS/pfstools/src/fileformat/pfsinimgmagick.cpp:3
0:
/usr/include/ImageMagick-7/MagickCore/magick-config.h:25:10: fatal error: Magick
Core/magick-baseconfig.h: No such file or directory
   25 | #include "MagickCore/magick-baseconfig.h"
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


And afaict this looks like a either a bug in cmake-data 3.30.5-1 or the
imagemagick 7 debian package uses different paths than cmake's
/usr/share/cmake-3.30/Modules/FindImageMagick.cmake expects.


The issue is that 
find_package(ImageMagick COMPONENTS Magick++ MagickCore)
fails to locate "the ImageMagick arch-specific include dir" with v7.

Using cmake -Wdev --log-level=TRACE --log-context --debug-find
we find:
----------
CMake Debug Log at /usr/share/cmake-3.30/Modules/FindImageMagick.cmake:131 (find_path):
  find_path called with the following settings:

    VAR: ImageMagick_Magick++_ARCH_INCLUDE_DIR
    NAMES: "magick/magick-baseconfig.h"
    Documentation: Path to the ImageMagick arch-specific include dir.
    Framework
      Only Search Frameworks: 0
      Search Frameworks Last: 0
      Search Frameworks First: 0
    AppBundle
      Only Search AppBundle: 0
      Search AppBundle Last: 0
      Search AppBundle First: 0
    NO_DEFAULT_PATH Enabled

  find_path considered the following locations:

    /usr/include/ImageMagick-7/ImageMagick/magick/magick-baseconfig.h
    /usr/include/ImageMagick-7/ImageMagick-6/magick/magick-baseconfig.h
    /usr/include/ImageMagick-7/ImageMagick-7/magick/magick-baseconfig.h
    /usr/include/ImageMagick-7/magick/magick-baseconfig.h
    /usr/include/x86_64-linux-gnu/ImageMagick-7/ImageMagick/magick/magick-baseconfig.h
    /usr/include/x86_64-linux-gnu/ImageMagick-7/ImageMagick-6/magick/magick-baseconfig.h
    /usr/include/x86_64-linux-gnu/ImageMagick-7/ImageMagick-7/magick/magick-baseconfig.h
    /usr/include/x86_64-linux-gnu/ImageMagick-7/magick/magick-baseconfig.h

  The item was not found.
----------

With imagemagick 7 magick-baseconfig.h was moved from 
/usr/include/x86_64-linux-gnu/ImageMagick-6/magick/magick-baseconfig.h
to
/usr/include/x86_64-linux-gnu/ImageMagick-7/MagickCore/magick-baseconfig.h
and FindImageMagick.cmake only looks in magick/ not in MagickCore/.

cu Andreas



More information about the Pkg-phototools-devel mailing list