--- eutils.eclass 2014-01-22 20:55:21.822523248 -0500 +++ eutils.eclass.patched 2014-01-22 21:27:23.434584399 -0500 @@ -1730,3 +1730,29 @@ check_license() { die "you no longer need this as portage supports ACCEPT_LICENSE itself"; } fi + +# @FUNCTION: optfeature +# @USAGE: [other atoms] +# @DESCRIPTION: +# Print out a message suggesting an optional package (or packages) which +# provide the described functionality +# +# The following snippet would suggest app-misc/foo for optional foo support, +# and app-misc/bar or app-misc/baz[bar] for optional bar support. +# @CODE: +# optfeature "foo support" app-misc/foo +# optfeature "bar support" app-misc/bar app-misc/baz[bar] +# +optfeature() { + debug-print-function ${FUNCNAME} "$@" + local desc=$1 + shift + while (( $# )); do + if ! has_version "$1"; then + elog " $1 for ${desc}" + else + break + fi + shift + done +}