From owner-dev-commits-doc-all@freebsd.org Thu Mar 4 16:33:46 2021 Return-Path: Delivered-To: dev-commits-doc-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id A8CCC551358 for ; Thu, 4 Mar 2021 16:33:46 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4DrxJV4SSDz4WlR; Thu, 4 Mar 2021 16:33:46 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 8C1182072A; Thu, 4 Mar 2021 16:33:46 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 124GXkBp063920; Thu, 4 Mar 2021 16:33:46 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 124GXka5063919; Thu, 4 Mar 2021 16:33:46 GMT (envelope-from git) Date: Thu, 4 Mar 2021 16:33:46 GMT Message-Id: <202103041633.124GXka5063919@gitrepo.freebsd.org> To: doc-committers@FreeBSD.org, dev-commits-doc-all@FreeBSD.org From: Dmitri Goutnik Subject: git: 9a1d65ec41 - main - porters-handbook: update Go porting notes for D28184 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: dmgk X-Git-Repository: doc X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 9a1d65ec41392a53d2b87c930a46a006153fdd1d Auto-Submitted: auto-generated X-BeenThere: dev-commits-doc-all@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for all branches of the doc repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 04 Mar 2021 16:33:46 -0000 The branch main has been updated by dmgk (ports committer): URL: https://cgit.FreeBSD.org/doc/commit/?id=9a1d65ec41392a53d2b87c930a46a006153fdd1d commit 9a1d65ec41392a53d2b87c930a46a006153fdd1d Author: Dmitri Goutnik AuthorDate: 2021-03-04 16:32:05 +0000 Commit: Dmitri Goutnik 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 <> 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= dmgk@FreeBSD.org +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 +.... + +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.