[Pkg-gmagick-im-team] Bug#1086784: imagemagick FTCBFS: multiple reasons

Helmut Grohne helmut at subdivi.de
Tue Nov 5 20:01:41 GMT 2024


Source: imagemagick
Version: 8:7.1.1.39+dfsg1-1
Tags: patch
User: debian-cross at lists.debian.org
Usertags: cross-satisfiability ftcbfs

Hi,

imagemagick fails to cross build from source for multiple reason.

The first stumbling block is the g++ dependency. Rather than figure out
why, I checked that it is satisfied in buster, so we can simply drop it.

It actually starts building then until it passes host architecture
compiler flags to the build archiecture compiler used for building
PerlMagick. For cross compiling Perl stuff, one should extend the Perl
include path with the cross configuration directory. This fixes the
PerlMagick part.

Then, converting the icons cache fails as the built convert cannot be
run. I propose adding a recursive build dependency conditional to cross
compilation and then using that rather than building imagemagick twice.

And with all of that, it actually cross builds. I'm attaching a patch
containing all of the mentioned changes for your convenience.

Helmut
-------------- next part --------------
diff --minimal -Nru imagemagick-7.1.1.39+dfsg1/debian/changelog imagemagick-7.1.1.39+dfsg1/debian/changelog
--- imagemagick-7.1.1.39+dfsg1/debian/changelog	2024-10-27 19:45:43.000000000 +0100
+++ imagemagick-7.1.1.39+dfsg1/debian/changelog	2024-11-05 17:21:45.000000000 +0100
@@ -1,3 +1,13 @@
+imagemagick (8:7.1.1.39+dfsg1-1.1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Fix FTCBFS: (Closes: #-1)
+    + Drop versioned g++ dependency satisfied in buster.
+    + Export PERL5LIB for cross building.
+    + Use the installed convert for generating the icons cache.
+
+ -- Helmut Grohne <helmut at subdivi.de>  Tue, 05 Nov 2024 17:21:45 +0100
+
 imagemagick (8:7.1.1.39+dfsg1-1) unstable; urgency=medium
 
   * New upstream version
diff --minimal -Nru imagemagick-7.1.1.39+dfsg1/debian/control imagemagick-7.1.1.39+dfsg1/debian/control
--- imagemagick-7.1.1.39+dfsg1/debian/control	2024-10-19 17:16:30.000000000 +0200
+++ imagemagick-7.1.1.39+dfsg1/debian/control	2024-11-05 17:21:45.000000000 +0100
@@ -11,8 +11,6 @@
  dpkg-dev (>= 1.22.5),
 # for improving build
  dh-exec,
-# ABI dump
- g++ (>= 4:7),
 # for linking compiling ...
  pkgconf, libltdl-dev,
 # for libtool does not link to depends lib
@@ -40,7 +38,9 @@
 # for libgomp symbols
  dpkg-dev (>= 1.17.6),
 # for perltest versioned due to name change
- fonts-tuffy (>= 20120614-3~)
+ fonts-tuffy (>= 20120614-3~),
+# for building icons cache
+ imagemagick <cross>,
 # for documentation
 Build-Depends-Indep: doxygen, doxygen-latex, graphviz,
 		     libxml2-utils,
diff --minimal -Nru imagemagick-7.1.1.39+dfsg1/debian/rules imagemagick-7.1.1.39+dfsg1/debian/rules
--- imagemagick-7.1.1.39+dfsg1/debian/rules	2024-08-20 11:23:17.000000000 +0200
+++ imagemagick-7.1.1.39+dfsg1/debian/rules	2024-11-05 17:21:45.000000000 +0100
@@ -43,9 +43,19 @@
 export MAGICK ?= ./magick.sh magick
 export CONVERT ?= $(MAGICK) convert
 VALGRIND_CONVERT ?= ./libtool --mode=execute valgrind $(CONVERT)
+ifneq (,$(filter cross,$(DEB_BUILD_PROFILES)))
+CROSS_CONVERT = convert
+else
+CROSS_CONVERT = $(CONVERT)
+endif
 CONVERT_FLAGS ?= -background none -define filter:blur=0.75 -filter Gaussian
 
 # perl path
+ifneq ($(DEB_BUILD_ARCH),$(DEB_HOST_ARCH))
+PERLVER := $(shell perl -MConfig -e 'print $$Config{version}')
+PERL5LIB := /usr/lib/$(DEB_HOST_MULTIARCH)/perl/cross-config-$(PERLVER)$(if $(PERL5LIB),:$(PERL5LIB))
+export PERL5LIB
+endif
 export DEB_PERL_ARCHLIB := $(shell perl -MConfig -e 'print $$Config{vendorarch}')
 
 
@@ -493,7 +503,7 @@
 		mkdir -p $(CURDIR)/debian/tmp-$*/usr/share/icons/hicolor/$$SIZE/apps/ ;\
 		cd $(CURDIR)/debian/build-quantum-$*; \
 		echo "Make icons for size $$SIZE..."; \
-		$(CONVERT) $(CURDIR)/debian/display-im$(IMVERSION).svg \
+		$(CROSS_CONVERT) $(CURDIR)/debian/display-im$(IMVERSION).svg \
 			   $(CONVERT_FLAGS) -resize $$SIZE \
 			   -gravity center -extent $$SIZE  \
 			   +set date:create +set date:modify -define png:exclude-chunk=time  \


More information about the Pkg-gmagick-im-team mailing list