virtual/imagemagick-tools: Add virtual for media-gfx/{image,graphics}magick

* Packages that do **not** link to either library and just consume the
  runtime command-line tools of either package should depend on the virtual
  in general. This reduces the complexity of the depgraph and makes central
  USE flag handling much easier.
* Packages that can link to either imagemagick or graphicsmagick need more
  delicate handling in order to be usable with subslots.
  1) Packages that **require** either imagemagick or graphicsmagick should
     use USE="graphicsmagick" to differentiate which one to use by specifying

	!graphicsmagick? ( media-gfx/imagemagick:= )
	graphicsmagick? ( media-gfx/graphicsmagick:= )

  2) Packages that **may** use either imagemagick or graphicsmagick, but don't
     **require** it, should additionally add USE="imagemagick" and specify

	imagemagick? (
		!graphicsmagick? ( media-gfx/imagemagick:= )
		graphicsmagick? ( media-gfx/graphicsmagick:= )
	)

  So that the semantics become:

    USE="imagemagick"     = "I want to build with optional imagemagick or graphicsmagick support"
    USE="-imagemagick"    = "I do NOT want optional support for imagemagick and/or graphicsmagick"

    USE="-graphicsmagick" = "I want to build against media-gfx/imagemagick"
    USE="graphicsmagick"  = "I want to build against media-gfx/graphicsmagick"

  This avoids package.use pollution due to setting REQUIRED_USE.

Bug: https://bugs.gentoo.org/show_bug.cgi?id=314431
Package-Manager: Portage-2.3.3, Repoman-2.3.1
Closes: https://github.com/gentoo/gentoo/pull/3907
This commit is contained in:
David Seifert
2017-02-11 20:43:11 +01:00
parent 04c3e329f0
commit e53d7fd2ce
2 changed files with 30 additions and 0 deletions
@@ -0,0 +1,22 @@
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
EAPI=6
DESCRIPTION="Virtual for imagemagick command line tools"
SLOT="0"
KEYWORDS="alpha amd64 arm hppa ia64 ppc ppc64 sparc x86"
IUSE="jpeg perl png svg tiff"
# This virtual is to be used **ONLY** for depending on the runtime
# tools of imagemagick/graphicsmagick. It should and cannot be used
# for linking against, as subslots are not transitively passed on.
# For linking, you will need to depend on the respective libraries
# in all consuming ebuilds and use appropriate sub-slot operators.
# See also: https://bugs.gentoo.org/show_bug.cgi?id=314431
RDEPEND="
|| (
media-gfx/imagemagick[jpeg?,perl?,png?,svg?,tiff?]
media-gfx/graphicsmagick[imagemagick,jpeg?,perl?,png?,svg?,tiff?]
)"
+8
View File
@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>graphics@gentoo.org</email>
<name>Gentoo Graphics Project</name>
</maintainer>
</pkgmetadata>