Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.gentoo.dev > #70431

[gentoo-dev] [PATCH 2/4] go-module.eclass: Support EAPI 9 with new src_configure phase function

From James Le Cuirot <chewi@gentoo.org>
Newsgroups linux.gentoo.dev
Subject [gentoo-dev] [PATCH 2/4] go-module.eclass: Support EAPI 9 with new src_configure phase function
Date 2026-04-20 13:50 +0200
Message-ID <MLVix-gCfC-11@gated-at.bofh.it> (permalink)
References <MLVix-gCfC-3@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


src_configure now calls go-env_set_compile_environment(), which was
previously called during src_unpack. This was problematic because it
would set up flag variables before any flag filtering was typically done
in src_configure.

Closes: https://bugs.gentoo.org/963401
Signed-off-by: James Le Cuirot <chewi@gentoo.org>
---
 eclass/go-env.eclass    |  2 +-
 eclass/go-module.eclass | 26 ++++++++++++++++++++------
 2 files changed, 21 insertions(+), 7 deletions(-)

diff --git a/eclass/go-env.eclass b/eclass/go-env.eclass
index 4f3067538928..f5c84c3abbb0 100644
--- a/eclass/go-env.eclass
+++ b/eclass/go-env.eclass
@@ -11,7 +11,7 @@
 # @DESCRIPTION:
 # This eclass includes helper functions for setting up the build environment for
 # Go ebuilds. Intended to be called by other Go eclasses in an early build
-# stage, e.g. src_unpack.
+# stage, e.g. src_configure.
 
 # @ECLASS_VARIABLE: GOMAXPROCS
 # @USER_VARIABLE
diff --git a/eclass/go-module.eclass b/eclass/go-module.eclass
index 5294f50d8ad8..1d7b6044d802 100644
--- a/eclass/go-module.eclass
+++ b/eclass/go-module.eclass
@@ -7,7 +7,7 @@
 # @AUTHOR:
 # William Hubbs <williamh@gentoo.org>
 # Robin H. Johnson <robbat2@gentoo.org>
-# @SUPPORTED_EAPIS: 7 8
+# @SUPPORTED_EAPIS: 7 8 9
 # @BLURB: basic eclass for building software written as go modules
 # @DESCRIPTION:
 # This eclass provides basic settings and functions needed by all software
@@ -61,7 +61,7 @@
 # @CODE
 
 case ${EAPI} in
-	7|8) ;;
+	7|8|9) ;;
 	*) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;;
 esac
 
@@ -182,7 +182,7 @@ declare -A -g _GOMODULE_GOSUM_REVERSE_MAP
 # If set to a non-null value before inherit, the Go part of the
 # ebuild will be considered optional. No dependencies will be added and
 # no phase functions will be exported. You will need to set BDEPEND and
-# call go-module_src_unpack in your ebuild.
+# call go-module_src_unpack and go-module_src_configure in your ebuild.
 
 # @FUNCTION: ego
 # @USAGE: [<args>...]
@@ -347,12 +347,11 @@ go-module_setup_proxy() {
 
 # @FUNCTION: go-module_src_unpack
 # @DESCRIPTION:
-# Sets up GOFLAGS for the system and then unpacks based on the following rules:
+# Unpacks based on the following rules:
 # 1. If EGO_SUM is set, unpack the base tarball(s) and set up the
 #    local go proxy.  This mode is deprecated.
 # 2. Otherwise, if EGO_VENDOR is set, bail out, as this functionality was removed.
 # 3. Otherwise, call 'ego mod verify' and then do a normal unpack.
-# Set compile env via go-env.
 go-module_src_unpack() {
 	if [[ "${#EGO_SUM[@]}" -gt 0 ]]; then
 		eqawarn "QA Notice: This ebuild uses EGO_SUM which is deprecated"
@@ -372,7 +371,9 @@ go-module_src_unpack() {
 		fi
 	fi
 
-	go-env_set_compile_environment
+	case ${EAPI} in
+		7|8) go-env_set_compile_environment ;;
+	esac
 }
 
 # @FUNCTION: _go-module_src_unpack_gosum
@@ -501,8 +502,21 @@ go-module_live_vendor() {
 	popd >& /dev/null || die
 }
 
+# @FUNCTION: go-module_src_configure
+# @DESCRIPTION:
+# Sets up the environment to build Go code for the target system. If manually
+# calling this from your own src_configure, do it between handling build flags
+# and invoking another build system.
+go-module_src_configure() {
+	go-env_set_compile_environment
+}
+
 fi
 
 if [[ ! ${GO_OPTIONAL} ]]; then
 	EXPORT_FUNCTIONS src_unpack
+	case ${EAPI} in
+		7|8) ;;
+		*) EXPORT_FUNCTIONS src_configure ;;
+	esac
 fi
-- 
2.53.0

Back to linux.gentoo.dev | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

[gentoo-dev] [PATCH 1/4] go-env.eclass: Support EAPI 9 James Le Cuirot <chewi@gentoo.org> - 2026-04-20 13:50 +0200
  [gentoo-dev] [PATCH 2/4] go-module.eclass: Support EAPI 9 with new src_configure phase function James Le Cuirot <chewi@gentoo.org> - 2026-04-20 13:50 +0200
  [gentoo-dev] [PATCH 4/4] go-env.eclass: Create named go run wrapper rather than using -exec James Le Cuirot <chewi@gentoo.org> - 2026-04-20 14:00 +0200

csiph-web