Package: libmagickcore-6.q16-dev
Version: 8:6.9.10.14+dfsg-5
Severity: serious
Justification: missing dependency
Control: affects -1 + src:gem

libmagickcore-6.q16-dev does not depend on libmagickcore-6-arch-config.
It does depend on libmagickcore-6-headers, which depends on
libmagickcore-6-arch-config, but libmagickcore-6-headers is Multi-Arch:
foreign. So you get some libmagickcore-6-arch-config and not necessarily
one with matching architecture. The dependency is too weak.

When building gem, this can become fatal:

| /bin/bash ../../libtool  --tag=CXX   --mode=compile aarch64-linux-gnu-g++ 
-DHAVE_CONFIG_H -I. -I../../src  -I../../src -Wdate-time -D_FORTIFY_SOURCE=2 
-DGEM_VERSION_CODENAME='""Debian/1:0.93.3-18""' -DPD -I/usr/include/pd -fopenmp 
-DMAGICKCORE_HDRI_ENABLE=0 -DMAGICKCORE_QUANTUM_DEPTH=16 -fopenmp 
-DMAGICKCORE_HDRI_ENABLE=0 -DMAGICKCORE_QUANTUM_DEPTH=16 -fopenmp 
-DMAGICKCORE_HDRI_ENABLE=0 -DMAGICKCORE_QUANTUM_DEPTH=16 
-I/usr/include/aarch64-linux-gnu//ImageMagick-6 -I/usr/include/ImageMagick-6 
-I/usr/include/aarch64-linux-gnu//ImageMagick-6 -I/usr/include/ImageMagick-6 
-I/usr/include/aarch64-linux-gnu//ImageMagick-6 -I/usr/include/ImageMagick-6  
-g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat 
-Werror=format-security -freg-struct-return -O3 -falign-loops -falign-functions 
-falign-jumps -funroll-loops -ffast-math -c -o 
gem_imageMAGICK_la-imageMAGICK.lo `test -f 'imageMAGICK.cpp' || echo 
'./'`imageMAGICK.cpp
| libtool: compile:  aarch64-linux-gnu-g++ -DHAVE_CONFIG_H -I. -I../../src 
-I../../src -Wdate-time -D_FORTIFY_SOURCE=2 
-DGEM_VERSION_CODENAME=\"\"Debian/1:0.93.3-18\"\" -DPD -I/usr/include/pd 
-fopenmp -DMAGICKCORE_HDRI_ENABLE=0 -DMAGICKCORE_QUANTUM_DEPTH=16 -fopenmp 
-DMAGICKCORE_HDRI_ENABLE=0 -DMAGICKCORE_QUANTUM_DEPTH=16 -fopenmp 
-DMAGICKCORE_HDRI_ENABLE=0 -DMAGICKCORE_QUANTUM_DEPTH=16 
-I/usr/include/aarch64-linux-gnu//ImageMagick-6 -I/usr/include/ImageMagick-6 
-I/usr/include/aarch64-linux-gnu//ImageMagick-6 -I/usr/include/ImageMagick-6 
-I/usr/include/aarch64-linux-gnu//ImageMagick-6 -I/usr/include/ImageMagick-6 -g 
-O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat 
-Werror=format-security -freg-struct-return -O3 -falign-loops -falign-functions 
-falign-jumps -funroll-loops -ffast-math -c imageMAGICK.cpp  -fPIC -DPIC -o 
.libs/gem_imageMAGICK_la-imageMAGICK.o
| In file included from /usr/include/ImageMagick-6/Magick++/Include.h:14,
|                  from /usr/include/ImageMagick-6/Magick++.h:10,
|                  from imageMAGICK.cpp:21:
| /usr/include/ImageMagick-6/magick/magick-config.h:21:10: fatal error: 
magick/magick-baseconfig.h: No such file or directory
|  #include "magick/magick-baseconfig.h"
|           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
| compilation terminated.
| make[3]: *** [Makefile:613: gem_imageMAGICK_la-imageMAGICK.lo] Error 1
| make[3]: Leaving directory '/<<PKGBUILDDIR>>/plugins/imageMAGICK'
| make[2]: *** [Makefile:489: all-recursive] Error 1
| make[2]: Leaving directory '/<<PKGBUILDDIR>>/plugins'
| make[1]: *** [Makefile:598: all-recursive] Error 1
| make[1]: Leaving directory '/<<PKGBUILDDIR>>'
| dh_auto_build: make -j1 returned exit code 2
| make: *** [debian/rules:82: binary-arch] Error 2
| dpkg-buildpackage: error: debian/rules binary-arch subprocess returned exit 
status 2

The dependency from libmagickcore-6-headers on
libmagickcore-6-arch-config should be removed. It is always too week and
needs to be lifted to a higher level.

What can be done though is flipping the dependency. Have
libmagickcore-6-arch-config depend on libmagickcore-6-headers and then
replace any dependency on libmagickcore-6-headers with one on
libmagickcore-6-arch-config. That should be fine, because both packages
are considered implementation detail and do not have any reverse
dependencies outside imagemagick.

Helmut

Reply via email to