2021-12-07 14:07:21 -05:00
|
|
|
variable "GO_VERSION" {
|
update to go1.20.11
go1.20.11 (released 2023-11-07) includes security fixes to the path/filepath
package, as well as bug fixes to the linker and the net/http package. See the
Go 1.20.11 milestone on our issue tracker for details:
- https://github.com/golang/go/issues?q=milestone%3AGo1.20.11+label%3ACherryPickApproved
- full diff: https://github.com/golang/go/compare/go1.20.10...go1.20.11
from the security mailing:
[security] Go 1.21.4 and Go 1.20.11 are released
Hello gophers,
We have just released Go versions 1.21.4 and 1.20.11, minor point releases.
These minor releases include 2 security fixes following the security policy:
- path/filepath: recognize `\??\` as a Root Local Device path prefix.
On Windows, a path beginning with `\??\` is a Root Local Device path equivalent
to a path beginning with `\\?\`. Paths with a `\??\` prefix may be used to
access arbitrary locations on the system. For example, the path `\??\c:\x`
is equivalent to the more common path c:\x.
The filepath package did not recognize paths with a `\??\` prefix as special.
Clean could convert a rooted path such as `\a\..\??\b` into
the root local device path `\??\b`. It will now convert this
path into `.\??\b`.
`IsAbs` did not report paths beginning with `\??\` as absolute.
It now does so.
VolumeName now reports the `\??\` prefix as a volume name.
`Join(`\`, `??`, `b`)` could convert a seemingly innocent
sequence of path elements into the root local device path
`\??\b`. It will now convert this to `\.\??\b`.
This is CVE-2023-45283 and https://go.dev/issue/63713.
- path/filepath: recognize device names with trailing spaces and superscripts
The `IsLocal` function did not correctly detect reserved names in some cases:
- reserved names followed by spaces, such as "COM1 ".
- "COM" or "LPT" followed by a superscript 1, 2, or 3.
`IsLocal` now correctly reports these names as non-local.
This is CVE-2023-45284 and https://go.dev/issue/63713.
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2023-12-05 19:41:18 -05:00
|
|
|
default = "1.20.11"
|
2021-12-07 14:07:21 -05:00
|
|
|
}
|
2021-03-03 02:03:02 -05:00
|
|
|
variable "VERSION" {
|
2023-03-27 06:07:47 -04:00
|
|
|
default = ""
|
2021-03-03 02:03:02 -05:00
|
|
|
}
|
|
|
|
variable "USE_GLIBC" {
|
2023-03-27 06:07:47 -04:00
|
|
|
default = ""
|
2021-03-03 02:03:02 -05:00
|
|
|
}
|
|
|
|
variable "STRIP_TARGET" {
|
2023-03-27 06:07:47 -04:00
|
|
|
default = ""
|
2021-03-03 02:03:02 -05:00
|
|
|
}
|
2021-11-17 11:18:15 -05:00
|
|
|
variable "IMAGE_NAME" {
|
|
|
|
default = "docker-cli"
|
|
|
|
}
|
2021-03-03 02:03:02 -05:00
|
|
|
|
2021-10-11 10:54:09 -04:00
|
|
|
# Sets the name of the company that produced the windows binary.
|
2022-03-27 04:09:50 -04:00
|
|
|
variable "PACKAGER_NAME" {
|
2021-10-11 10:54:09 -04:00
|
|
|
default = ""
|
|
|
|
}
|
|
|
|
|
2021-12-07 14:07:21 -05:00
|
|
|
target "_common" {
|
|
|
|
args = {
|
|
|
|
GO_VERSION = GO_VERSION
|
|
|
|
BUILDKIT_CONTEXT_KEEP_GIT_DIR = 1
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2022-06-06 12:33:11 -04:00
|
|
|
target "_platforms" {
|
|
|
|
platforms = [
|
|
|
|
"darwin/amd64",
|
|
|
|
"darwin/arm64",
|
|
|
|
"linux/amd64",
|
|
|
|
"linux/arm/v6",
|
|
|
|
"linux/arm/v7",
|
|
|
|
"linux/arm64",
|
|
|
|
"linux/ppc64le",
|
|
|
|
"linux/riscv64",
|
|
|
|
"linux/s390x",
|
|
|
|
"windows/amd64",
|
|
|
|
"windows/arm64"
|
|
|
|
]
|
|
|
|
}
|
|
|
|
|
2021-03-03 02:03:02 -05:00
|
|
|
group "default" {
|
|
|
|
targets = ["binary"]
|
|
|
|
}
|
|
|
|
|
|
|
|
target "binary" {
|
2021-12-07 14:07:21 -05:00
|
|
|
inherits = ["_common"]
|
2021-03-03 02:03:02 -05:00
|
|
|
target = "binary"
|
|
|
|
platforms = ["local"]
|
|
|
|
output = ["build"]
|
|
|
|
args = {
|
2023-03-24 16:06:20 -04:00
|
|
|
BASE_VARIANT = USE_GLIBC == "1" ? "bullseye" : "alpine"
|
2021-03-03 02:03:02 -05:00
|
|
|
VERSION = VERSION
|
2022-03-27 04:09:50 -04:00
|
|
|
PACKAGER_NAME = PACKAGER_NAME
|
2021-03-03 02:03:02 -05:00
|
|
|
GO_STRIP = STRIP_TARGET
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
target "dynbinary" {
|
|
|
|
inherits = ["binary"]
|
|
|
|
args = {
|
|
|
|
GO_LINKMODE = "dynamic"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2021-11-17 11:18:15 -05:00
|
|
|
target "plugins" {
|
2021-12-07 14:07:21 -05:00
|
|
|
inherits = ["_common"]
|
2021-11-17 11:18:15 -05:00
|
|
|
target = "plugins"
|
|
|
|
platforms = ["local"]
|
|
|
|
output = ["build"]
|
|
|
|
args = {
|
2023-03-24 16:06:20 -04:00
|
|
|
BASE_VARIANT = USE_GLIBC == "1" ? "bullseye" : "alpine"
|
2021-11-17 11:18:15 -05:00
|
|
|
VERSION = VERSION
|
|
|
|
GO_STRIP = STRIP_TARGET
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2021-03-03 02:03:02 -05:00
|
|
|
target "cross" {
|
2022-06-06 12:33:11 -04:00
|
|
|
inherits = ["binary", "_platforms"]
|
2021-03-03 02:03:02 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
target "dynbinary-cross" {
|
2022-06-06 12:33:11 -04:00
|
|
|
inherits = ["dynbinary", "_platforms"]
|
2021-03-03 02:03:02 -05:00
|
|
|
}
|
2021-08-05 02:44:16 -04:00
|
|
|
|
2021-11-17 11:18:15 -05:00
|
|
|
target "plugins-cross" {
|
2022-06-06 12:33:11 -04:00
|
|
|
inherits = ["plugins", "_platforms"]
|
2021-11-17 11:18:15 -05:00
|
|
|
}
|
|
|
|
|
2021-08-05 02:44:16 -04:00
|
|
|
target "lint" {
|
2021-12-07 14:07:21 -05:00
|
|
|
inherits = ["_common"]
|
2021-08-05 02:44:16 -04:00
|
|
|
dockerfile = "./dockerfiles/Dockerfile.lint"
|
|
|
|
target = "lint"
|
|
|
|
output = ["type=cacheonly"]
|
|
|
|
}
|
|
|
|
|
|
|
|
target "shellcheck" {
|
2021-12-07 14:07:21 -05:00
|
|
|
inherits = ["_common"]
|
2021-08-05 02:44:16 -04:00
|
|
|
dockerfile = "./dockerfiles/Dockerfile.shellcheck"
|
|
|
|
target = "shellcheck"
|
|
|
|
output = ["type=cacheonly"]
|
|
|
|
}
|
2021-11-17 11:18:15 -05:00
|
|
|
|
2021-12-16 15:15:53 -05:00
|
|
|
target "validate-vendor" {
|
2021-12-07 14:46:43 -05:00
|
|
|
inherits = ["_common"]
|
2021-12-16 15:15:53 -05:00
|
|
|
dockerfile = "./dockerfiles/Dockerfile.vendor"
|
|
|
|
target = "validate"
|
|
|
|
output = ["type=cacheonly"]
|
|
|
|
}
|
|
|
|
|
|
|
|
target "update-vendor" {
|
2021-12-07 14:46:43 -05:00
|
|
|
inherits = ["_common"]
|
2021-12-16 15:15:53 -05:00
|
|
|
dockerfile = "./dockerfiles/Dockerfile.vendor"
|
|
|
|
target = "update"
|
|
|
|
output = ["."]
|
|
|
|
}
|
|
|
|
|
|
|
|
target "mod-outdated" {
|
2021-12-07 14:46:43 -05:00
|
|
|
inherits = ["_common"]
|
2021-12-16 15:15:53 -05:00
|
|
|
dockerfile = "./dockerfiles/Dockerfile.vendor"
|
|
|
|
target = "outdated"
|
2022-06-05 10:25:05 -04:00
|
|
|
no-cache-filter = ["outdated"]
|
2021-12-16 15:15:53 -05:00
|
|
|
output = ["type=cacheonly"]
|
|
|
|
}
|
|
|
|
|
2021-12-20 19:44:40 -05:00
|
|
|
target "validate-authors" {
|
|
|
|
inherits = ["_common"]
|
|
|
|
dockerfile = "./dockerfiles/Dockerfile.authors"
|
|
|
|
target = "validate"
|
|
|
|
output = ["type=cacheonly"]
|
|
|
|
}
|
|
|
|
|
|
|
|
target "update-authors" {
|
|
|
|
inherits = ["_common"]
|
|
|
|
dockerfile = "./dockerfiles/Dockerfile.authors"
|
|
|
|
target = "update"
|
|
|
|
output = ["."]
|
|
|
|
}
|
|
|
|
|
2021-12-07 08:50:16 -05:00
|
|
|
target "test" {
|
|
|
|
target = "test"
|
|
|
|
output = ["type=cacheonly"]
|
|
|
|
}
|
|
|
|
|
|
|
|
target "test-coverage" {
|
|
|
|
target = "test-coverage"
|
|
|
|
output = ["build/coverage"]
|
|
|
|
}
|
|
|
|
|
2021-11-17 11:18:15 -05:00
|
|
|
target "e2e-image" {
|
|
|
|
target = "e2e"
|
|
|
|
output = ["type=docker"]
|
|
|
|
tags = ["${IMAGE_NAME}"]
|
|
|
|
args = {
|
2023-03-24 16:06:20 -04:00
|
|
|
BASE_VARIANT = USE_GLIBC == "1" ? "bullseye" : "alpine"
|
2021-11-17 11:18:15 -05:00
|
|
|
VERSION = VERSION
|
|
|
|
}
|
|
|
|
}
|
2023-03-27 06:53:56 -04:00
|
|
|
|
|
|
|
target "e2e-gencerts" {
|
|
|
|
inherits = ["_common"]
|
|
|
|
dockerfile = "./e2e/testdata/Dockerfile.gencerts"
|
|
|
|
output = ["./e2e/testdata"]
|
|
|
|
}
|