Package: graphicsmagick-libmagick-dev-compat Severity: normal Hi,
having a look at src:r-cran-magick, it currently Build-Depends on libmagick++-dev. Since graphicsmagick-libmagick-dev-compat provides libmagick++-dev it can happen that this dependency is satisfied by the virtual package provided by graphicsmagick-libmagick-dev-compat. This in turn leads to a build failure reported as #995302 because src:r-cran-magick fails to build from source if graphicsmagick is used to compile the source instead of imagemagick. The solution that fixed the bug was to add a Build-Conflicts with graphicsmagick-libmagick-dev-compat as well as libgraphicsmagick1-dev. But this made me wonder: are there other packages in the archive that might draw in graphicsmagick via graphicsmagick-libmagick-dev-compat instead of imagemagick and then fail to build from source? Of the source packages that have libmagick++-dev or libmagick-dev in their build dependency installation closure we can identify the following groups: 1. packages that explicitly build with graphicsmagick instead of imagemagick - cimg The Provides is not useful here, because the source package declares graphicsmagick explicitly 2. packages that explicitly build with imagemagick instead of graphicsmagick - converseen - inkscape - pythonmagick - synfigstudio The Provides is not useful here, because the source package declares imagemagick explicitly 3. packages that FTBFS anyway and thus cannot be tested - digikam - gnunet - k3d - performous - pfstools - synfig - libextractor Irrelevant here, because we cannot compile them in unstable right now. 4. packages that just depend on libmagick++-dev and work with either: - dvdauthor - pstoedit - vdr-plugin-skinenigmang - zbar The Provides is not useful here because those packages build fine with the real package from src:imagemagick 5. packages that don't use either but only have libmagick++-dev or libmagick-dev in their closure because of libzbar-dev - gnome-authenticator - megapixels - nitrokey-authenticator - otpclient - pyzbar - gst-plugins-bad1.0 Irrelevant, because those packages don't use imagemagick but just zbar. 6. packages that explicitly depend on graphicsmagick-libmagick-dev-compat - drawtiming - tango-icon-theme - xine-lib-1.2 The Provides is not useful here either because those packages explicitly build depend on graphicsmagick-libmagick-dev-compat 7. packages that explicitly conflict with graphicsmagick - diffoscope - digikam - dx - firefox - gem - r-cran-magick The Provides is harmful here because packages have to explicitly declare a Conflicts relationship so that graphicsmagick is not installed instead of imagemagick. So in summary, all uses of libmagick++-dev or libmagick-dev either do not benefit from the Provides relationship or are actively harmed by it. What is the rationale for the Provides. Why is it useful? Thanks! cheers, josch