go-module.eclass: Add GO_OPTIONAL flag

Following the pattern found in other eclasses, add GO_OPTIONAL to the
go-module eclass. This allows inheriting the eclass without pulling
its dependencies or exporting the unpack function.
See, e.g., bug #775779 for the motivation.

Signed-off-by: Florian Schmaus <flow@gentoo.org>
Signed-off-by: William Hubbs <williamh@gentoo.org>
This commit is contained in:
Florian Schmaus
2021-11-21 11:57:49 +01:00
committed by William Hubbs
parent 1ccf51ab3d
commit d00a720e44

View File

@@ -1,4 +1,4 @@
# Copyright 2019-2020 Gentoo Authors
# Copyright 2019-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
# @ECLASS: go-module.eclass
@@ -55,13 +55,17 @@ if [[ -z ${_GO_MODULE} ]]; then
_GO_MODULE=1
BDEPEND=">=dev-lang/go-1.12"
if [[ ! ${GO_OPTIONAL} ]]; then
BDEPEND=">=dev-lang/go-1.12"
# Workaround for pkgcheck false positive: https://github.com/pkgcore/pkgcheck/issues/214
# MissingUnpackerDep: version ...: missing BDEPEND="app-arch/unzip"
# Added here rather than to each affected package, so it can be cleaned up just
# once when pkgcheck is improved.
BDEPEND+=" app-arch/unzip"
# Workaround for pkgcheck false positive: https://github.com/pkgcore/pkgcheck/issues/214
# MissingUnpackerDep: version ...: missing BDEPEND="app-arch/unzip"
# Added here rather than to each affected package, so it can be cleaned up just
# once when pkgcheck is improved.
BDEPEND+=" app-arch/unzip"
EXPORT_FUNCTIONS src_unpack
fi
# Force go to build in module mode.
# In this mode the GOPATH environment variable is ignored.
@@ -83,8 +87,6 @@ QA_FLAGS_IGNORED='.*'
# Go packages should not be stripped with strip(1).
RESTRICT+=" strip"
EXPORT_FUNCTIONS src_unpack
# @ECLASS-VARIABLE: EGO_SUM
# @DESCRIPTION:
# This is an array based on the go.sum content from inside the target package.
@@ -147,6 +149,17 @@ EXPORT_FUNCTIONS src_unpack
# directory structure.
declare -A -g _GOMODULE_GOSUM_REVERSE_MAP
# @ECLASS-VARIABLE: GO_OPTIONAL
# @DEFAULT_UNSET
# @PRE_INHERIT
# @DESCRIPTION:
# If set to a non-null value before inherit, then the Go part of the
# ebuild will be considered optional. No dependencies will be added and
# no phase functions will be exported.
#
# If you enable GO_OPTIONAL, you have to set BDEPEND on >=dev-lang/go-1.12
# for your package and call go-module_src_unpack manually.
# @FUNCTION: go-module_set_globals
# @DESCRIPTION:
# Convert the information in EGO_SUM for other usage in the ebuild.