From owner-svn-doc-head@freebsd.org Tue Aug 13 17:49:50 2019 Return-Path: Delivered-To: svn-doc-head@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 8745EB70DB; Tue, 13 Aug 2019 17:49:50 +0000 (UTC) (envelope-from tobik@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) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 467Kwt2ssPz496G; Tue, 13 Aug 2019 17:49:50 +0000 (UTC) (envelope-from tobik@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4417D1B0E3; Tue, 13 Aug 2019 17:49:50 +0000 (UTC) (envelope-from tobik@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x7DHnowA094536; Tue, 13 Aug 2019 17:49:50 GMT (envelope-from tobik@FreeBSD.org) Received: (from tobik@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x7DHnn95094535; Tue, 13 Aug 2019 17:49:49 GMT (envelope-from tobik@FreeBSD.org) Message-Id: <201908131749.x7DHnn95094535@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: tobik set sender to tobik@FreeBSD.org using -f From: Tobias Kortkamp Date: Tue, 13 Aug 2019 17:49:49 +0000 (UTC) To: doc-committers@freebsd.org, svn-doc-all@freebsd.org, svn-doc-head@freebsd.org Subject: svn commit: r53306 - in head/en_US.ISO8859-1/books/porters-handbook: special uses X-SVN-Group: doc-head X-SVN-Commit-Author: tobik X-SVN-Commit-Paths: in head/en_US.ISO8859-1/books/porters-handbook: special uses X-SVN-Commit-Revision: 53306 X-SVN-Commit-Repository: doc MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-doc-head@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the doc tree for head List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Aug 2019 17:49:50 -0000 Author: tobik (ports committer) Date: Tue Aug 13 17:49:49 2019 New Revision: 53306 URL: https://svnweb.freebsd.org/changeset/doc/53306 Log: Porter's Handbook: Add an example on how to create a USES=go port Submitted by: tobik Reviewed by: Dmitri Goutnik , mat Approved by: mat Differential Revision: https://reviews.freebsd.org/D21243 Modified: head/en_US.ISO8859-1/books/porters-handbook/special/chapter.xml head/en_US.ISO8859-1/books/porters-handbook/uses/chapter.xml Modified: head/en_US.ISO8859-1/books/porters-handbook/special/chapter.xml ============================================================================== --- head/en_US.ISO8859-1/books/porters-handbook/special/chapter.xml Tue Aug 13 16:49:10 2019 (r53305) +++ head/en_US.ISO8859-1/books/porters-handbook/special/chapter.xml Tue Aug 13 17:49:49 2019 (r53306) @@ -1211,6 +1211,114 @@ byteorder-1.2.2 Unlicense/MIT MESON_ARGS= -Dfoo=enabled + + + Building <application>Go</application> applications + + For ports that use Go, + define USES=go. Refer to for a list of variables that can be + set to control the build process. + + + Creating a Port for a Go Modules Based + Application + + Creating a Go based port is a five stage process. + First we need to provide a ports template that fetches the + application distribution file: + + PORTNAME= ghq +DISTVERSIONPREFIX= v +DISTVERSION= 0.12.5 +CATEGORIES= devel + +MAINTAINER= tobik@FreeBSD.org +COMMENT= Remote repository management made easy + +USES= go:modules +USE_GITHUB= yes +GH_ACCOUNT= motemen + +.include <bsd.port.mk> + + Generate an initial + distinfo: + + &prompt.user; make makesum +===> License MIT accepted by the user +=> motemen-ghq-v0.12.5_GH0.tar.gz doesn't seem to exist in /usr/ports/distfiles/. +=> Attempting to fetch https://codeload.github.com/motemen/ghq/tar.gz/v0.12.5?dummy=/motemen-ghq-v0.12.5_GH0.tar.gz +fetch: https://codeload.github.com/motemen/ghq/tar.gz/v0.12.5?dummy=/motemen-ghq-v0.12.5_GH0.tar.gz: size of remote file is not known +motemen-ghq-v0.12.5_GH0.tar.gz 32 kB 177 kBps 00s + + Now the distribution file is ready to use and we can + extract the required Go module dependencies. This step + requires having + ports-mgmt/modules2tuple + installed: + + &prompt.user; make gomod-vendor +[...] +GH_TUPLE= \ + Songmu:gitconfig:v0.0.2:songmu_gitconfig/vendor/github.com/Songmu/gitconfig \ + daviddengcn:go-colortext:186a3d44e920:daviddengcn_go_colortext/vendor/github.com/daviddengcn/go-colortext \ + go-yaml:yaml:v2.2.2:go_yaml_yaml/vendor/gopkg.in/yaml.v2 \ + golang:net:3ec191127204:golang_net/vendor/golang.org/x/net \ + golang:sync:112230192c58:golang_sync/vendor/golang.org/x/sync \ + golang:xerrors:3ee3066db522:golang_xerrors/vendor/golang.org/x/xerrors \ + motemen:go-colorine:45d19169413a:motemen_go_colorine/vendor/github.com/motemen/go-colorine \ + urfave:cli:v1.20.0:urfave_cli/vendor/github.com/urfave/cli + + The output of this command needs to be pasted directly + into the Makefile: + + PORTNAME= ghq +DISTVERSIONPREFIX= v +DISTVERSION= 0.12.5 +CATEGORIES= devel + +MAINTAINER= tobik@FreeBSD.org +COMMENT= Remote repository management made easy + +USES= go:modules +USE_GITHUB= yes +GH_ACCOUNT= motemen +GH_TUPLE= Songmu:gitconfig:v0.0.2:songmu_gitconfig/vendor/github.com/Songmu/gitconfig \ + daviddengcn:go-colortext:186a3d44e920:daviddengcn_go_colortext/vendor/github.com/daviddengcn/go-colortext \ + go-yaml:yaml:v2.2.2:go_yaml_yaml/vendor/gopkg.in/yaml.v2 \ + golang:net:3ec191127204:golang_net/vendor/golang.org/x/net \ + golang:sync:112230192c58:golang_sync/vendor/golang.org/x/sync \ + golang:xerrors:3ee3066db522:golang_xerrors/vendor/golang.org/x/xerrors \ + motemen:go-colorine:45d19169413a:motemen_go_colorine/vendor/github.com/motemen/go-colorine \ + urfave:cli:v1.20.0:urfave_cli/vendor/github.com/urfave/cli + +.include <bsd.port.mk> + + distinfo needs to be regenerated to + contain all the distribution files: + + &prompt.user; make makesum +=> Songmu-gitconfig-v0.0.2_GH0.tar.gz doesn't seem to exist in /usr/ports/distfiles/. +=> Attempting to fetch https://codeload.github.com/Songmu/gitconfig/tar.gz/v0.0.2?dummy=/Songmu-gitconfig-v0.0.2_GH0.tar.gz +fetch: https://codeload.github.com/Songmu/gitconfig/tar.gz/v0.0.2?dummy=/Songmu-gitconfig-v0.0.2_GH0.tar.gz: size of remote file is not known +Songmu-gitconfig-v0.0.2_GH0.tar.gz 5662 B 936 kBps 00s +=> daviddengcn-go-colortext-186a3d44e920_GH0.tar.gz doesn't seem to exist in /usr/ports/distfiles/. +=> Attempting to fetch https://codeload.github.com/daviddengcn/go-colortext/tar.gz/186a3d44e920?dummy=/daviddengcn-go-colortext-186a3d44e920_GH0.tar.gz +fetch: https://codeload.github.com/daviddengcn/go-colortext/tar.gz/186a3d44e920?dummy=/daviddengcn-go-colortext-186a3d44e920_GH0.tar.gz: size of remote file is not known +daviddengcn-go-colortext-186a3d44e920_GH0.tar. 4534 B 1098 kBps 00s +[...] + + The port is now ready for a test build and further + adjustments like creating a plist, writing a description, + adding license information, options, etc. as normal. + + If you are not testing your port in a clean environment + like with Poudriere, remember to + run make clean before any testing. + + + Modified: head/en_US.ISO8859-1/books/porters-handbook/uses/chapter.xml ============================================================================== --- head/en_US.ISO8859-1/books/porters-handbook/uses/chapter.xml Tue Aug 13 16:49:10 2019 (r53305) +++ head/en_US.ISO8859-1/books/porters-handbook/uses/chapter.xml Tue Aug 13 17:49:49 2019 (r53306) @@ -1237,6 +1237,8 @@ USE_GNOME= gnomemenus3:build intlhack + + See for usage examples.