Bug#1086937: pfstools: build against imagemagick 7
Emilio Pozuelo Monfort
pochu at debian.org
Mon Nov 11 08:39:07 GMT 2024
On 09/11/2024 17:51, Andreas Metzler wrote:
> 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/.
A simple pkg-config call gives the correct includes, e.g.:
pkg-config --cflags Magick++
-I/usr/include/x86_64-linux-gnu/ImageMagick-7 -I/usr/include/ImageMagick-7
-fopenmp -DMAGICKCORE_HDRI_ENABLE=0 -DMAGICKCORE_QUANTUM_DEPTH=16
-DMAGICKCORE_CHANNEL_MASK_DEPTH=32
I'm not sure what cmake is doing.
Cheers,
Emilio
More information about the Pkg-phototools-devel
mailing list