git: 9a1d65ec41 - main - porters-handbook: update Go porting notes for D28184
Dmitri Goutnik <[email protected]>
| Newsgroups | gmane.os.freebsd.devel.cvs.doc |
|---|---|
| Message-ID | <[email protected]> |
The branch main has been updated by dmgk (ports committer): URL: https://cgit.FreeBSD.org/doc/commit/?id=9a1d65ec41392a53d2b87c930a46a006153fdd1d commit 9a1d65ec41392a53d2b87c930a46a006153fdd1d Author: Dmitri Goutnik <[email protected]> AuthorDate: 2021-03-04 16:32:05 +0000 Commit: Dmitri Goutnik <[email protected]> CommitDate: 2021-03-04 16:32:05 +0000 porters-handbook: update Go porting notes for D28184 Approved by: crees (doc) Differential Revision: https://reviews.freebsd.org/D28789 --- .../en/books/porters-handbook/special/chapter.adoc | 25 ++++++++++++++++++++++ .../en/books/porters-handbook/uses/chapter.adoc | 3 +++ 2 files changed, 28 insertions(+) diff --git a/documentation/content/en/books/porters-handbook/special/chapter.adoc b/documentation/content/en/books/porters-handbook/special/chapter.adoc index 696cf509a0..62400a9a8e 100644 --- a/documentation/content/en/books/porters-handbook/special/chapter.adoc +++ b/documentation/content/en/books/porters-handbook/special/chapter.adoc @@ -713,6 +713,31 @@ For ports that use Go, define `USES=go`. Refer to <<uses-go,`go`>> for a list of .Creating a Port for a Go Modules Based Application [example] ==== +In most cases, it is sufficient to set `GO_MODULE` variable to the value specified by `module` directive in `go.mod`: + +[.programlisting] +.... +PORTNAME= hey +PORTVERSION= 0.1.4 +DISTVERSIONPREFIX= v +CATEGORIES= benchmarks + +MAINTAINER= [email protected] +COMMENT= Tiny program that sends some load to a web application + +LICENSE= APACHE20 +LICENSE_FILE= ${WRKSRC}/LICENSE + +USES= go:modules +GO_MODULE= github.com/rakyll/hey + +PLIST_FILES= bin/hey + +.include <bsd.port.mk> +.... + +If the "easy" way is not adequate or more control over dependencies is needed, the full porting process is described below. + Creating a Go based port is a five stage process. First we need to provide a ports template that fetches the application distribution file: [.programlisting] diff --git a/documentation/content/en/books/porters-handbook/uses/chapter.adoc b/documentation/content/en/books/porters-handbook/uses/chapter.adoc index 3dafe3c57c..91d71fbf04 100644 --- a/documentation/content/en/books/porters-handbook/uses/chapter.adoc +++ b/documentation/content/en/books/porters-handbook/uses/chapter.adoc @@ -519,6 +519,9 @@ Sets default values and targets used to build Go software. A build dependency on The build process is controlled by several variables: +`GO_MODULE`:: +The name of the application module as specified by `module` directive in `go.mod`. In most cases, this is the only requred variable for ports that use Go modules. + `GO_PKGNAME`:: The name of the Go package when building in GOPATH mode. This is the directory that will be created in `${GOPATH}/src`. If not set explicitly and `GH_SUBDIR` or `GL_SUBDIR` is present, `GO_PKGNAME` will be inferred from it. It is not needed when building in modules-aware mode. _______________________________________________ [email protected] mailing list https://lists.freebsd.org/mailman/listinfo/dev-commits-doc-all To unsubscribe, send any mail to "[email protected]"