aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFelix Palmen <zirias@FreeBSD.org>2023-04-03 10:27:51 +0000
committerFelix Palmen <zirias@FreeBSD.org>2023-04-30 11:10:39 +0000
commitbe67c1c353cabc6b17698f85efa4e5dce70b8e31 (patch)
tree62bf4e09d692921a5a19481884f84dbc0af9dbc6
parent0ef660f00d793e8555ab98c3730dae124e017400 (diff)
downloadports-be67c1c353cabc6b17698f85efa4e5dce70b8e31.tar.gz
ports-be67c1c353cabc6b17698f85efa4e5dce70b8e31.zip
Mk/Uses/magick.mk: Fix DEFAULT_VERSION handling
Handle fallback for version and flavor separately, also add several sanity checks. This fixes creating broken *_DEPENDS for ports using it without arguments when a -nox11 version is requested in DEFAULT_VERSIONS like e.g. this resulting from "imagemagick=7-nox11": libMagick++-7-nox11.so:graphics/ImageMagick7-nox11 Approved by: tcberner (mentor) Differential Revision: https://reviews.freebsd.org/D39424
-rw-r--r--CHANGES15
-rw-r--r--Mk/Uses/magick.mk57
-rw-r--r--Mk/bsd.default-versions.mk6
3 files changed, 60 insertions, 18 deletions
diff --git a/CHANGES b/CHANGES
index 2c65d5dbbe11..6d6da021c969 100644
--- a/CHANGES
+++ b/CHANGES
@@ -10,6 +10,21 @@ in the release notes and/or placed into UPDATING.
All ports committers are allowed to commit to this file.
+20230430:
+AUTHOR: zirias@FreeBSD.org
+
+ USES=magick has been updated based on flavorized ports.
+
+ A new argument 'x11' is available to specifically depend on the flavor
+ with X11 support. Fallback to DEFAULT_VERSIONS now happens
+ independently for the version (currently 6 or 7) and the flavor
+ (currently x11 or nox11).
+
+ Only use arguments for version or flavor if your port really requires
+ it. Also, there is no need to add options for selecting the -nox11
+ flavor any more, as the user setting in DEFAULT_VERSIONS will be
+ honored.
+
20230111:
AUTHOR: vishwin@FreeBSD.org
diff --git a/Mk/Uses/magick.mk b/Mk/Uses/magick.mk
index 1b1531d3bfce..08802d7ccebd 100644
--- a/Mk/Uses/magick.mk
+++ b/Mk/Uses/magick.mk
@@ -2,29 +2,33 @@
#
# Feature: magick
# Usage: USES=magick:ARGS
-# Valid ARGS: [version],[kinds],[flavor]
+# Valid ARGS: [version],[flavor],[kinds]
#
# version The chooseable versions are <none>, 6 and 7.
-# USES=magick -- depend on ${IMAGEMAGICK_DEFAULT} (default)
+# USES=magick -- depend on version from DEFAULT_VERSIONS
# USES=magick:6 -- depend on ImageMagick6
# USES=magick:7 -- depend on ImageMagick7
#
-# flavor The flavors are <none> and nox11
-# USES=magick -- depend on the default flavor (default)
+# flavor The flavors are <none>, x11 and nox11
+# USES=magick -- depend on flavor from DEFAULT_VERSIONS
+# USES=magick:x11 -- depend on the x11 flavor
# USES=magick:nox11 -- depend on the nox11 flavor
#
# kinds The dependency kinds are <none>, lib, build, run and test
-# USES=magick -- add a LIB_DEPENDS (default)
-# USES=magick:lib -- add a LIB_DEPENDS
-# USES=magick:build -- add a BUILD_DEPENDS
-# USES=magick:run -- add a RUN_DEPENDS
-# USES=magick:test -- add a TEST_DEPENDS
-# USES=build,run -- add a BUILD_- and RUN_DEPENDS
+# USES=magick -- add a LIB_DEPENDS (default)
+# USES=magick:lib -- add a LIB_DEPENDS
+# USES=magick:build -- add a BUILD_DEPENDS
+# USES=magick:run -- add a RUN_DEPENDS
+# USES=magick:test -- add a TEST_DEPENDS
+# USES=magick:build,run -- add a BUILD_- and RUN_DEPENDS
#
-# In short, on a default ports tree
+# In short, on a default ports tree without custom DEFAULT_VERSIONS
# USES=magick
# is equivalent to
-# USES=magick:7,lib
+# USES=magick:7,x11,lib
+#
+# Make sure to only add arguments strictly needed, as [version] and [flavor]
+# will override user configuration in DEFAULT_VERSIONS.
#
# MAINTAINER: tcberner@FreeBSD.org
#
@@ -47,21 +51,31 @@ IGNORE= Incorrect USES=magick:${magick_ARGS} - multiple versions defined
. endfor
# Fallback to the default version
. if empty(_magick_version)
-_magick_version= ${IMAGEMAGICK_DEFAULT}
+_magick_version= ${IMAGEMAGICK_DEFAULT:C/-.*//}
+. endif
+. if !${_magick_versions:M${_magick_version}}
+IGNORE= Invalid version of ImageMagick: "${_magick_version}"
. endif
#=== Flavor selection ===
-_magick_flavors= nox11
+_magick_flavors= x11 nox11
_magick_flavor= #
. for _flavor in ${_magick_flavors:O:u}
. if ${magick_ARGS:M${_flavor}}
. if empty(_magick_flavor)
-_magick_flavor= -${_flavor}
+_magick_flavor= ${_flavor}
. else
IGNORE= Incorrect USES=magick:${magick_ARGS} - multiple flavors defined
. endif
. endif
. endfor
+# Fallback to the default flavor
+. if empty(_magick_flavor) && ${IMAGEMAGICK_DEFAULT:M*-*}
+_magick_flavor= ${IMAGEMAGICK_DEFAULT:C/.*-//}
+. endif
+. if !empty(_magick_flavor) && !${_magick_flavors:M${_magick_flavor}}
+IGNORE= Invalid flavor of ImageMagick: "${_magick_flavor}"
+. endif
#=== Dependency selection ===
_magick_depends= lib build run test
@@ -75,10 +89,19 @@ _magick_depend+= ${_depend}
_magick_depend= lib
. endif
+#=== Check for invalid arguments ===
+_magick_unknown_args:= ${magick_ARGS:N${_magick_version}:N${_magick_flavor}}
+. for _depend in ${_magick_depend}
+_magick_unknown_args:= ${_magick_unknown_args:N${_depend}}
+. endfor
+. if !empty(_magick_unknown_args)
+IGNORE= Invalid USES=magick - unsupported argument(s): ${_magick_unknown_args}
+. endif
+
#=== Dependency setup ===
-_MAGICK_PORT= graphics/ImageMagick${_magick_version}${_magick_flavor}
+_MAGICK_PORT= graphics/ImageMagick${_magick_version}${_magick_flavor:%=@%}
_MAGICK_LIB= libMagick++-${_magick_version}.so
-_MAGICK_PKG= ImageMagick${_magick_version}${_magick_flavor}
+_MAGICK_PKG= ImageMagick${_magick_version}${_magick_flavor:Mnox11:%=-%}
_MAGICK_BUILD_DEPENDS= ${_MAGICK_PKG}>=${_magick_version}:${_MAGICK_PORT}
_MAGICK_LIB_DEPENDS= ${_MAGICK_LIB}:${_MAGICK_PORT}
diff --git a/Mk/bsd.default-versions.mk b/Mk/bsd.default-versions.mk
index 918791917d77..184508438602 100644
--- a/Mk/bsd.default-versions.mk
+++ b/Mk/bsd.default-versions.mk
@@ -59,7 +59,11 @@ GHOSTSCRIPT_DEFAULT?= agpl
GL_DEFAULT?= mesa-libs
# Possible values: 1.18, 1.19, 1.20, 1.21-devel
GO_DEFAULT?= 1.20
-# Possible values: 6, 6-nox11, 7, 7-nox11
+# Possible versions: 6, 7
+# Possible flavors: x11, nox11
+# (defaults to x11 when not specified)
+# Format: version[-flavor]
+# Examples: 6-nox11, 7
IMAGEMAGICK_DEFAULT?= 7
# Possible values: 7, 8, 11, 17, 18
JAVA_DEFAULT?= 8