All notable changes to this project will be documented in this file.
- Synced with PDK.
- Synced with PDK.
Certain Go tarballs (see below) had files owned by non-root users:
❯ curl -SsL https://go.dev/dl/go1.20.14.darwin-amd64.tar.gz | tar -tzvf - | head -3
drwxr-xr-x 0 0 0 0 Feb 2 10:19 go/
-rw-r--r-- 0 gopher wheel 1339 Feb 2 10:09 go/CONTRIBUTING.md
-rw-r--r-- 0 gopher wheel 1479 Feb 2 10:09 go/LICENSE
In this case, the non-root user in question mapped to the first user created on the macOS system (UID 501).
When running as root, previous versions of dp-golang would preserve file
ownership when extracting the tarball, even if owner
was set to something
else. This meant that files, such as the go
binary, ended up being writable
by a non-root user.
This version of dp-golang enables tar
’s --no-same-owner
and
--no-same-permissions
flags, which cause files to be extracted as the user
running Puppet, or as the user/group specified in the Puppet code.
GitHub security advisory: GHSA-8h8m-h98f-vv84
- Go for macOS version 1.4.3 through 1.21rc3, inclusive.
- go1.4-bootstrap-20170518.tar.gz
- go1.4-bootstrap-20170531.tar.gz
As part of the security fix mentioned above, it became necessary to be more agressive about ensuring that the owner and group of files in the installation are correct. dp-golang now deletes and recreates any Go installation it finds that has a file or directory with the wrong owner or group.
- Synced with PDK.
- Updated automatic PR checks to run acceptance tests with both Puppet 7 and Puppet 8 (Puppet 6 is still supported by this module, but unfortunately the acceptance test framework does not support it).
- Updated metadata to support puppet/archive 7.0.0.
- Synced with PDK.
- Added a section about development status (stable; no features planned) to README.md.
- Synced with PDK.
No functional changes. This release is solely to keep the released module from
getting too far out of sync with git after multiple pdk update
s.
- Fix in-page anchor link in README.md.
- Added more links to REFERENCE.md from README.md to make it easier to find reference documentation.
- Anchor links seem to be broken on the Forge, so we now update links to REFERENCE.md and other markdown files to point to GitHub when making a release.
- The Hiera example in README.md referenced the deprecated
golang::version
instead ofgolang::ensure
.
- Added option of
ensure => latest
to automatically keep Go installations at the latest stable version. - Added
golang::installation
to allow multiple installs of standard Go packages from https://go.dev/dl on the same system. Installations can be owned by any user. - Added
golang::from_tarball
to explicitly install from a binary tarball. - Added
golang::linked_binaries
link binaries from a Go installation into abin
directory.
- Use
Stdlib::HTTPUrl
data type for URL parameters.
- Updated minimum Puppet version to match puppet/archive. Archive version 4.0.0 requires Puppet 5.5.8 or higher, so this module must as well.
- The
$version
parameter ongolang
is now deprecated. Pass the version to$ensure
instead. - The
$source
parameter ongolang
is now deprecated. Usegolang::from_tarball
instead.
- Added
ensure
parameter to allow uninstalling Go.
- Used pre-release version of Puppet Strings to (mostly) fix parameter default values in REFERENCE.md.
- Latest Go version (1.19.1) installed by default.
- Updated change log.
- Latest Go version (1.18.3) installed by default.
- Updated to use the current Go domain (golang.org → go.dev).
- Metadata updated to support the most recent version of puppet/archive.
- Latest Go version (1.16.7) installed by default.
- The
godoc
binary no longer ships in the Go package, so this no longer links it into/usr/local/bin
by default. Note: this does not remove the link if it already exists. - Metadata updated to support the most recent version of puppet/archive.
- #2: support convenient installation on Raspberry Pi 2B and 3B.
- #2: default to the correct 64-bit ARM binary on 64 bit ARM, e.g. on the Raspberry Pi 4.
- Latest Go version (1.13.6) installed by default.
- #2: support convenient installation on Raspberry Pi 4.