Commit graph

151 commits

Author SHA1 Message Date
bsiegert
ea642613fd Update go112 to 1.12.10.
Commit ok'd by wiz@ for PMC.

Go 1.12.10:

net/http (through net/textproto) used to accept and normalize invalid
HTTP/1.1 headers with a space before the colon, in violation of RFC 7230. If
a Go server is used behind an uncommon reverse proxy that accepts and
forwards but doesn't normalize such invalid headers, the reverse proxy and
the server can interpret the headers differently. This can lead to filter
bypasses or request smuggling, the latter if requests from separate clients
are multiplexed onto the same upstream connection by the proxy. Such invalid
headers are now rejected by Go servers, and passed without normalization to
Go client applications.

The issue is CVE-2019-16276 and Go issue golang.org/issue/34540.

Go 1.12.9:

go1.12.9 (released 2019/08/15) includes fixes to the linker, and the os and
math/big packages. See the Go 1.12.9 milestone on our issue tracker for
details.
2019-09-26 18:36:46 +00:00
dbj
ae7dff7f19 lang/go: on osx 10.9 and earlier, use go110
go 1.11 removed support for osx 10.8 and 10.9
https://github.com/golang/go/issues/23122
2019-09-17 04:39:20 +00:00
rillig
6fdd655b2d lang/go: update _VARGROUPS in go-package.mk, small refactoring 2019-09-10 20:19:54 +00:00
rillig
ca0e8e3ca1 lang/go: extend _VARGROUPS section in go-dep.mk 2019-09-10 20:01:06 +00:00
bsiegert
d9b2ddcd40 go112: update to 1.12.8 (security release).
net/http: Denial of Service vulnerabilities in the HTTP/2 implementation

net/http and golang.org/x/net/http2 servers that accept direct connections from
untrusted clients could be remotely made to allocate an unlimited amount of
memory, until the program crashes. Servers will now close connections if the
send queue accumulates too many control messages.

The issues are CVE-2019-9512 and CVE-2019-9514, and Go issue golang.org/issue/33606.
Thanks to Jonathan Looney from Netflix for discovering and reporting these issues.

This is also fixed in version v0.0.0-20190813141303-74dc4d7220e7 of
golang.org/x/net/http2.

net/url: parsing validation issue

url.Parse would accept URLs with malformed hosts, such that the Host field
could have arbitrary suffixes that would appear in neither Hostname() nor
Port(), allowing authorization bypasses in certain applications. Note that URLs
with invalid, not numeric ports will now return an error from url.Parse.

The issue is CVE-2019-14809 and Go issue golang.org/issue/29098.
Thanks to Julian Hector and Nikolai Krein from Cure53, and Adi Cohen (adico.me)
for discovering and reporting this issue.
2019-08-14 15:42:52 +00:00
bsiegert
a5773b6b72 go111: update to 1.11.13 (security release).
net/http: Denial of Service vulnerabilities in the HTTP/2 implementation

net/http and golang.org/x/net/http2 servers that accept direct connections from
untrusted clients could be remotely made to allocate an unlimited amount of
memory, until the program crashes. Servers will now close connections if the
send queue accumulates too many control messages.

The issues are CVE-2019-9512 and CVE-2019-9514, and Go issue golang.org/issue/33606.
Thanks to Jonathan Looney from Netflix for discovering and reporting these issues.

This is also fixed in version v0.0.0-20190813141303-74dc4d7220e7 of
golang.org/x/net/http2.

net/url: parsing validation issue

url.Parse would accept URLs with malformed hosts, such that the Host field
could have arbitrary suffixes that would appear in neither Hostname() nor
Port(), allowing authorization bypasses in certain applications. Note that URLs
with invalid, not numeric ports will now return an error from url.Parse.

The issue is CVE-2019-14809 and Go issue golang.org/issue/29098.
Thanks to Julian Hector and Nikolai Krein from Cure53, and Adi Cohen (adico.me)
for discovering and reporting this issue.
2019-08-14 15:17:41 +00:00
bsiegert
62f5a9586a Update go112 to 1.12.7.
This fixes a nasty code-generation bug, among other things:

go1.12.6 (released 2019/06/11) includes fixes to the compiler, the linker,
the go command, and the crypto/x509, net/http, and os packages.
See the Go 1.12.6 milestone on our issue tracker for details.

go1.12.7 (released 2019/07/08) includes fixes to cgo, the compiler,
and the linker. See the Go 1.12.7 milestone on our issue tracker for details.
2019-07-14 15:19:55 +00:00
bsiegert
8b27b87d8f Update go111 to 1.11.12.
go1.11.11 (released 2019/06/11) includes a fix to the crypto/x509 package.
See the Go 1.11.11 milestone on our issue tracker for details.

go1.11.12 (released 2019/07/08) includes fixes to the compiler and the linker.
See the Go 1.11.12 milestone on our issue tracker for details.
2019-07-14 12:25:18 +00:00
bsiegert
121bb17bb9 Update go112 to 1.12.5.
This release includes fixes to the compiler, the linker, the go command,
the runtime, and the os package.

Same as for go111, remove the pkg/bootstrap tree from the package.
2019-05-27 15:16:38 +00:00
bsiegert
8d21d6b52a Update go111 to 1.11.10.
This release includes fixes to the compiler, the linker, the go command, the
runtime, and the os package.

While here, remove pkg/bootstrap from the package, as it is only used
for bootstrapping.
2019-05-27 14:33:10 +00:00
jperkin
ce8d9dd117 go: Introduce support for GO_DEPS.
This supports packages that require a large number of go-based dependencies,
treating them as additional distfiles and built inline as part of the package
build.  The print-go-deps target is helpful to generate the list of GO_DEPS
required for each package by parsing the Gopkg.lock file in the extracted
sources.

Thanks to rillig@ for various suggestions and comments.
2019-05-15 18:00:03 +00:00
bsiegert
8bef37bf4f Update go112 to 1.12.4.
go1.12.2 (released 2019/04/05) includes fixes to the compiler, the go command,
the runtime, and the doc, net, net/http/httputil, and os packages. See the Go
1.12.2 milestone on our issue tracker for details.

go1.12.3 (released 2019/04/08) was accidentally released without its intended
fix. It is identical to go1.12.2, except for its version number. The intended
fix is in go1.12.4.

go1.12.4 (released 2019/04/11) fixes an issue where using the prebuilt binary
releases on older versions of GNU/Linux led to failures when linking programs
that used cgo. Only Linux users who hit this issue need to update.
2019-04-16 18:30:27 +00:00
bsiegert
bdd557a569 Update go111 to 1.11.9.
go1.11.7 (released 2019/04/05) includes fixes to the runtime and the net
packages. See the Go 1.11.7 milestone on our issue tracker for details.

go1.11.8 (released 2019/04/08) was accidentally released without its intended
fix. It is identical to go1.11.7, except for its version number. The intended
fix is in go1.11.9.

go1.11.9 (released 2019/04/11) fixes an issue where using the prebuilt binary
releases on older versions of GNU/Linux led to failures when linking programs
that used cgo. Only Linux users who hit this issue need to update.
2019-04-16 18:13:49 +00:00
bsiegert
82da7adaba Update go112 to 1.12.1.
go1.12.1 (released 2019/03/14) includes fixes to cgo, the compiler, the go
command, and the fmt, net/smtp, os, path/filepath, sync, and text/template
packages. See the Go 1.12.1 milestone on our issue tracker for details.
2019-03-16 08:27:56 +00:00
bsiegert
4222d9a920 Update go111 to 1.11.6.
go1.11.6 (released 2019/03/14) includes fixes to cgo, the compiler, linker,
runtime, go command, and the crypto/x509, encoding/json, net, and net/url
packages. See the Go 1.11.6 milestone on our issue tracker for details.
2019-03-16 08:19:00 +00:00
bsiegert
85e8388726 go: switch default version to 1.12.
This means all builds of packages written in Go use 1.12.
2019-03-09 10:00:44 +00:00
bsiegert
68d32f31e2 Add a package for Go 1.12.
Some of the highlights include opt-in support for TLS 1.3, improved modules
support (in preparation for being the default in Go 1.13), support for
windows/arm, and improved macOS & iOS forwards compatibility.

See https://blog.golang.org/go1.12.

In pkgsrc, this is _not_ the default version for Go package builds just yet.
2019-03-09 09:29:30 +00:00
bsiegert
93be231526 Update go110 to 1.10.8 (security).
This release addresses a recently supported security issue. This DoS
vulnerability in the crypto/elliptic implementations of the P-521 and P-384
elliptic curves may let an attacker craft inputs that consume excessive
amounts of CPU.

These inputs might be delivered via TLS handshakes, X.509 certificates, JWT
tokens, ECDH shares or ECDSA signatures. In some cases, if an ECDH private
key is reused more than once, the attack can also lead to key recovery.

The issue is CVE-2019-6486 and Go issue golang.org/issue/29903.
See the Go issue for more details.
2019-01-24 09:33:08 +00:00
bsiegert
b959602dbc Update go111 to 1.11.5 (security).
This release addresses a recently supported security issue. This DoS
vulnerability in the crypto/elliptic implementations of the P-521 and P-384
elliptic curves may let an attacker craft inputs that consume excessive
amounts of CPU.

These inputs might be delivered via TLS handshakes, X.509 certificates, JWT
tokens, ECDH shares or ECDSA signatures. In some cases, if an ECDH private
key is reused more than once, the attack can also lead to key recovery.

The issue is CVE-2019-6486 and Go issue golang.org/issue/29903.
See the Go issue for more details.
2019-01-24 09:26:21 +00:00
jperkin
2559bc3d80 go: Actually bump to 1.11.4. Unbreaks build. 2018-12-20 17:38:23 +00:00
bsiegert
eddec14fa2 Update go110 to 1.10.7 (security fix).
These releases include fixes to cgo, the compiler, linker, runtime,
documentation, go command, and the net/http and go/types packages.
They include a fix to a bug introduced in Go 1.11.3 and Go 1.10.6
that broke "go get" for import path patterns containing "...".

View the release notes for more information:
    https://golang.org/doc/devel/release.html#go1.10.minor
2018-12-15 10:23:32 +00:00
rillig
858c6cfd69 mk/misc: make configuration for show-all targets more configurable
Up to now, there was a central list of variable name patterns that
defined whether a variable was printed as a sorted list, as a list or as
a single value.

Now each variable group decides on its own which of the variables are
printed in which way, using the usual glob patterns. This is more
flexible since different files sometimes differ in their naming
conventions.

Two variable groups are added: license (for everything related to
LICENSE) and go (for lang/go).
2018-11-30 18:38:19 +00:00
jperkin
5e4ac5f54f lang: Re-enable lang/go as a meta package.
This allows users to simply install a "go" package and pull in the latest
version available for their host operating system without having to figure
out the name for the correct suffixed package.
2018-11-21 11:25:00 +00:00
jperkin
6db6f6b0af *: Add CTF_SUPPORTED/CTF_FILES_SKIP where necessary. 2018-11-12 14:40:20 +00:00
jperkin
6e0ea6abb7 go: Set STRIP_DEBUG_SUPPORTED=no
Stripping golang binaries renders them useless.
2018-11-12 13:48:45 +00:00
bsiegert
a01eefdeea This file was missing from the previous commit.
go111-1.11.2.
2018-11-04 18:22:47 +00:00
bsiegert
34f88d7602 Update go110 to 1.10.5.
go1.10.5 (released 2018/11/02) includes fixes to the go command, linker,
runtime and the database/sql package. See the Go 1.10.5 milestone on our issue
tracker for details.
2018-11-04 12:36:09 +00:00
leot
0dcdf0f37d go: Improve PRINT_PLIST_AWK patterns and avoid possible double definition
- Move GO_PLATFORM definition in lang/go/version.mk in order that also lang/go*
  packages can (re)use it
- Change PRINT_PLIST_AWK pattern that replace all ${GO_PLATFORM} and apply it
  only when ${GO_PLATFORM} is a directory (between two "/").  There are only
  3 exceptions to that in lang/go14.
  Move it to version.mk so lang/go* PLIST can be mostly automatically
  generated.

These changes should help to avoid (most) manual editing of
lang/go*/PLIST.

Discussed with and thanks to <bsiegert>!
2018-10-26 13:49:23 +00:00
bsiegert
4d3929e1d2 Correct definition of GOTOOLDIR, remove PREFIX.
GOTOOLDIR was not updated to use the versioned go directories.
2018-10-14 18:15:34 +00:00
bsiegert
89df8ad024 Update go111 to 1.11.1.
go1.11.1 (released 2018/10/01) includes fixes to the compiler, documentation,
go command, runtime, and the crypto/x509, encoding/json, go/types, net,
net/http, and reflect packages. See the Go 1.11.1 milestone on our issue
tracker for details.

Also correct the PLIST and use ln -sf instead of ln -s.
2018-10-02 18:19:56 +00:00
bsiegert
685842da4d Remove lang/go.
Replacements: the versioned lang/go19, lang/go110 and lang/go111.

Nothing in pkgsrc directly depends on this anymore. There are a few
stragglers in wip, which will be fixed.
2018-09-23 20:05:29 +00:00
bsiegert
7064d10572 Move most of the version selection logic into version.mk.
Provide a new variable, GO_PACKAGE_DEP, with the correct dependency on
the user-selected Go version, to be used for fixing syncthing and friends.
2018-09-22 19:44:21 +00:00
bsiegert
b3aec47289 Use lang/go111, not lang/go, for package builds.
This moves builds of packages using Go off the unversioned lang/go package
and onto Go 1.11 or Go 1.9 (on NetBSD 6) by default.

There is a new, user-settable variable GO_VERSION_DEFAULT.

NOTE: not all Go packages completely implement this yet. For example,
net/syncthing does its own thing. This will be fixed.
2018-09-21 20:35:56 +00:00
bsiegert
714330096e Add a versioned Go 1.10 package as lang/go110.
This uses a similar approach as go111. Its revision is one higher than
the existing lang/go.

Next steps:
 - make builds use this for dependent packages
 - delete lang/go to complete the move
2018-09-18 20:52:11 +00:00
bsiegert
7fee8b0dd5 Add Go 1.11 as lang/go111.
This installs the go tool as go111; all the supporting files go under
$PREFIX/go111, so it does not conflict with other Go versions. Go packages
in pkgsrc do not use it to build yet.

Changes:

There are many changes and improvements to the toolchain, runtime, and
libraries, but two features stand out as being especially exciting: modules
and WebAssembly support.

This release adds preliminary support for a new concept called "modules," an
alternative to GOPATH with integrated support for versioning and package
distribution. Module support is considered experimental, and there are still
a few rough edges to smooth out, so please make liberal use of the issue
tracker.

Go 1.11 also adds an experimental port to WebAssembly (js/wasm). This allows
programmers to compile Go programs to a binary format compatible with four
major web browsers.
2018-09-18 16:22:14 +00:00
minskim
3c98ee4bc1 lang/go: Improve PRINT_PLIST_AWK for Go packages
Go packages create ${PREFIX}/bin and ${PREFIX}/gopkg even when they
don't install anything in them. This change sets PRINT_PLIST_AWK to
ignore such empty directories.
2018-09-15 00:31:11 +00:00
fhajny
ef5b267717 lang/go: Add SYS_IOCTL on SunOS. Bump PKGREVISION. 2018-09-14 09:24:30 +00:00
leot
9bb7fe2aa4 lang/go/go-package: Honor MAKE_ENV and set GOCACHE under WRKDIR
Previously GOCACHE was not passed as environment variable and hence
during the build of packages the cache was stored in `${GO} env
GOCACHE' (${XDG_CACHE_HOME} if defined or ${HOME}/.cache).

Pass GOCACHE so that all cached file will ends up under ${WRKDIR}.

While here also pass both GOPATH and GOCACHE via MAKE_ENV.

Thanks to Antonio Huete Jimenez for spotting this problem!

Discussed and ok by <bsiegert>, thanks!
2018-08-29 10:11:57 +00:00
bsiegert
37c8d07863 Update Go to 1.10.4.
go1.10.4 (released 2018/08/24) includes fixes to the go command, linker, and
the net/http, mime/multipart, ld/macho, bytes, and strings packages. See the
Go 1.10.4 milestone on our issue tracker for details.

pkgsrc note: After the import of Go 1.11, this package will be renamed to
lang/go110.
2018-08-27 15:01:09 +00:00
wiz
93b46879c7 Recursive bump for perl5-5.28.0 2018-08-22 09:43:40 +00:00
bsiegert
3f01f7bfa0 Update go19 to 1.9.7, latest on that branch.
go1.9.5 (released 2018/03/28) includes fixes to the compiler, go command, and
net/http/pprof package. See the Go 1.9.5 milestone on our issue tracker for
details.

go1.9.6 (released 2018/05/01) includes fixes to the compiler and go command.
See the Go 1.9.6 milestone on our issue tracker for details.

go1.9.7 (released 2018/06/05) includes fixes to the go command, and the
crypto/x509, and strings packages. In particular, it adds minimal support to
the go command for the vgo transition. See the Go 1.9.7 milestone on our issue
tracker for details.
2018-07-08 18:40:40 +00:00
bsiegert
120fee35c4 Forgot this in the last commit. Add GO19_VERSION. 2018-07-08 18:00:56 +00:00
bsiegert
d979c8c930 Move definition of $GO to version.mk.
We have some packages, like mongodb-tools, that cannot include go-package.mk
but need to call the go tool.
2018-07-08 13:53:42 +00:00
bsiegert
0d0cd33b44 Use the non-symlinked go tool for package builds.
Otherwise, you will not be able to build Go code in pkgsrc if you do not
have pkg_alternatives installed.

Introduce a variable (user-settable for now) GOVERSSUFFIX.
$GO is now the Go tool with full path.

leot@ convinced me to go full Python (e.g. one directory per major version,
GO_VERSION_ACCEPTED etc.) but that will be another series of commits.
2018-07-08 12:55:00 +00:00
bsiegert
20a88905fd Install bin/go via pkg_alternatives. Bump revision.
BREAKING CHANGE: If you do not have pkg_alternatives installed, then you
will not get a "go" tool in the PATH, and builds of packages using Go may
fail. (This will be fixed in the next commit.)
2018-07-08 09:27:31 +00:00
bsiegert
c6cbc3d7b5 Update Go to 1.10.3.
go1.10.3 (released 2018/06/05) includes fixes to the go command, and the
crypto/tls, crypto/x509, and strings packages. In particular, it adds minimal
support to the go command for the vgo transition. See the Go 1.10.3 milestone
on our issue tracker for details.
2018-06-12 17:37:59 +00:00
leot
ba0f38d8c1 go/go-package.mk: Avoid to print (all) entries in print-PLIST unconditionally
Previously all lines (matching or not /${GO_PLATFORM}/) were printed
unconditionally and could interfere with other PRINT_PLIST_AWKs used by always
printing every line in `print-PLIST' phase.

Avoid that by limiting the pattern of PRINT_PLIST_AWK in go-package.mk.
2018-06-05 15:42:20 +00:00
bsiegert
ab9bb2c4fe Update Go to 1.10.2.
As far as I can see, only non-security-relevant bugfixes.

go1.10.2 (released 2018/05/01) includes fixes to the compiler, linker, and go
command. See the Go 1.10.2 milestone on our issue tracker for details.
2018-05-04 18:07:40 +00:00
bsiegert
f7894db877 Update Go to 1.10.1.
This fixes a security issue (https://github.com/golang/go/issues/23867).
Also:
These releases include fixes to the compiler, runtime, go command, and the
archive/zip, crypto/tls, crypto/x509, encoding/json, net, net/http, and
net/http/pprof packages.

ok wiz@ for committing during freeze
2018-03-30 11:52:18 +00:00
ryoon
51b6c83d2e Fix RELRO packaging 2018-03-05 12:42:50 +00:00