GO-MODULE(5) File Formats Manual GO-MODULE(5)

go-modulelang/go port module

This manual page documents the behavior of setting MODULES=lang/go in the ports(7) tree.

Adds Go toolchain support. Requires ALL_TARGET to be set to canonical Go import path of port. (Module sets it automatically for ports that use GH_ACCOUNT and GH_PROJECT macros.)

During execution of pre-configure target module moves source code from ${MODGO_SUBDIR} to ${WRKSRC}, subdirectory of ${MODGO_WORKSPACE} - specially-crafted Go workspace located at ${WRKDIR}/go. During do-build module calls “go install” with GOPATH set to ${MODGO_WORKSPACE}, runs its output through sed to prevent writes outside WRKDIR sandbox and sends output to sh(1). During do-install it copies executables from ${MODGO_WORKSPACE}/bin to ${PREFIX}/bin, and/or directories ${MODGO_WORKSPACE}/pkg and ${MODGO_WORKSPACE}/src to ${PREFIX}/go, depending on MODGO_TYPE contents.


Appends to CATEGORIES.


Type of port. May be any combination of:
ordinary binary, which should be installed to ${PREFIX}/bin,
library, which should come with source code.

Defaults to bin.

Path to Go workspace set up for port build process. Defaults to ${WRKDIR}/go. See Go documentation for details.
Path to Go source code within port's sources tarball. Defaults to ${WRKDIST}.
Commands setting up Go workspace for building ports. By default, happens during execution of pre-configure target.
Controls whether contents of MODGO_BUILD_DEPENDS are appended to port's BUILD_DEPENDS. Defaults to Yes.
Name of Go module as defined in the go.mod file contained in a project. If this is set, MODGO_MODULES, MODGO_MODFILES and MODGO_VERSION need to be defined as well. Setting this will also set ALL_TARGET. When MODGO_MODFILES is set, and a "cmd" directory is found in WRKSRC, "./cmd/..." is also built by do-build automatically.
Sets the specific version of a Go module to use. For example: v0.1.3.
List of modules and their specific versions that an application depends on.
List of go.mod files and their versions that are required for dependency resolution. These are required by Go to determine the full dependency graph.

Additionally defines MODGO_PACKAGES, MODGO_SOURCES and MODGO_TOOLS (paths for installed Go packages, sources and tools respectively), MODGO_CMD and MODGO_FLAGS (source code build command and flags passed as its arguments), MODGO_LDFLAGS, MODGO_BUILD_CMD and MODGO_TEST_CMD (commands for building and testing go packages; normally called with canonical Go package names as arguments), MODGO_{BUILD,INSTALL,TEST}_TARGET and MODGO_{BUILD,RUN}_DEPENDS.

This module adds one make(1) target:

Generate the MODGO_MODULES and the MODGO_MODFILES lists. If MODGO_VERSION is set to "latest", the latest known-to-Go version of a package will be used to build the list of modules. Similarly, if MODGO_VERSION is empty, the latest version will be fetched.


July 25, 2021 OpenBSD 7.5