[Pkg-gmagick-im-team] Bug#893030: imagemagick: make foreign dependencies on transitional -dev packages satisfiable

Helmut Grohne helmut at subdivi.de
Thu Mar 15 19:21:57 UTC 2018

Source: imagemagick
Version: 8:
Tags: patch
User: helmutg at debian.org
Usertags: rebootstrap
Control: affects -1 + src:dvdauthor src:rss-glx

Hi Bastien,

The affected packages have unsatisfiable cross Build-Depends, because
their transitive dependency on libmagickcore-dev, libmagickwand-dev or
libmagick++-dev is unsatisfiable. In general, Architecture: all packages
can never satisfy cross Build-Depends unless marked Multi-Arch: foreign.
In this case, such a marking would be fatal as we have seen in #856601.
The other major route, converting them to arch:any, is blocked by
#813455. That's bad.

So I think I came up with a workaround that works today. debian/control
says that these packages are transitional and you said on irc that they
will be provided by their dependency. So why not provide them today?
Those transitional packages are completely empty. By providing them (in
addition to producing them), upgrade continue to work, but since the
providing package is arch:any, we can satisfy cross Build-Depends. After
buster, you leave the Provides and just remove the transitional

The attached patch implements just that. What do you think?

-------------- next part --------------
diff --minimal -Nru imagemagick- imagemagick-
--- imagemagick-	2018-02-18 00:12:41.000000000 +0100
+++ imagemagick-	2018-03-15 20:15:22.000000000 +0100
@@ -1,3 +1,10 @@
+imagemagick (8: UNRELEASED; urgency=medium
+  * Non-maintainer upload.
+  * Provide transitional packages from arch:any packages. (Closes: #-1)
+ -- Helmut Grohne <helmut at subdivi.de>  Thu, 15 Mar 2018 20:15:22 +0100
 imagemagick (8: unstable; urgency=high
   * Upload to unstable (urgency high due to security issues).
diff --minimal -Nru imagemagick- imagemagick-
--- imagemagick-	2018-02-18 00:12:41.000000000 +0100
+++ imagemagick-	2018-03-15 20:15:19.000000000 +0100
@@ -285,7 +285,7 @@
 # remove breaks/replaces after jessie +2
 Replaces: libmagickcore-dev (<< 8:
 Breaks: libmagickcore-dev (<< 8:
-Provides: libmagickcore-6.defaultquantum-dev
+Provides: libmagickcore-6.defaultquantum-dev, libmagickcore-dev
 Description: low-level image manipulation library - development files (Q16)
  The MagickCore API is a low-level interface between the C programming language
  and the ImageMagick image processing libraries and is recommended for
@@ -329,7 +329,7 @@
  libmagickcore-6.q16-dev (= ${binary:Version}),
-Provides: libmagickwand-6.defaultquantum-dev
+Provides: libmagickwand-6.defaultquantum-dev, libmagickwand-dev
 Replaces: libmagickwand-dev (<< 8:
 Breaks: libmagickwand-dev (<< 8:
 Description: image manipulation library - development files (Q16)
@@ -370,7 +370,7 @@
  libmagickwand-6.q16-dev (= ${binary:Version}),
-Provides: libmagick++-6.defaultquantum-dev
+Provides: libmagick++-6.defaultquantum-dev, libmagick++-dev
 Replaces: libmagick++-dev (<< 8:
 Breaks: libmagick++-dev (<< 8:
 Description: C++ interface to ImageMagick - development files (Q16)

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