eclass/linux-mod.eclass: implement MODULES_OPTIONAL_USE_IUSE_DEFAULT.
authorRobin H. Johnson <robbat2@gentoo.org>
Thu, 18 Jan 2018 21:40:08 +0000 (13:40 -0800)
committerRobin H. Johnson <robbat2@gentoo.org>
Thu, 18 Jan 2018 21:42:01 +0000 (13:42 -0800)
Add IUSE default support for $MODULES_OPTIONAL_USE use flag variable.
Defaults to disabled, and individual packages will have it enabled
rather than tree-wide.

Bug: https://bugs.gentoo.org/635720
Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
eclass/linux-mod.eclass

index b3ea3e40f30fef299b1a7fb6e0e9e5c2ad2302e7..e310835bf77a76fdfb77deb5b2090ab3aecd5769 100644 (file)
 # A string containing the USE flag to use for making this eclass optional
 # The recommended non-empty value is 'modules'
 
+# @ECLASS-VARIABLE: MODULES_OPTIONAL_USE_IUSE_DEFAULT
+# @DESCRIPTION:
+# A boolean to control the IUSE default state for the MODULES_OPTIONAL_USE USE
+# flag. Default value is unset (false). True represented by 1 or 'on', other
+# values including unset treated as false.
+
 # @ECLASS-VARIABLE: KERNEL_DIR
 # @DESCRIPTION:
 # A string containing the directory of the target kernel sources. The default value is
 inherit eutils linux-info multilib
 EXPORT_FUNCTIONS pkg_setup pkg_preinst pkg_postinst src_install src_compile pkg_postrm
 
-IUSE="kernel_linux ${MODULES_OPTIONAL_USE}"
+case ${EAPI:-0} in
+       0) die "EAPI=${EAPI} is not supported due to lack of IUSE defaults" ;;
+esac
+
+case ${MODULES_OPTIONAL_USE_IUSE_DEFAULT:-n} in
+  [nNfF]*|[oO][fF]*|0|-) _modules_optional_use_iuse_default='' ;;
+  *) _modules_optional_use_iuse_default='+' ;;
+esac
+
+IUSE="kernel_linux ${MODULES_OPTIONAL_USE:+${_modules_optional_use_iuse_default}}${MODULES_OPTIONAL_USE}"
 SLOT="0"
 RDEPEND="${MODULES_OPTIONAL_USE}${MODULES_OPTIONAL_USE:+? (} kernel_linux? ( virtual/modutils ) ${MODULES_OPTIONAL_USE:+)}"
 DEPEND="${RDEPEND}