From 537a3e0ff4e6bb7ecf38fb8887b9d43cf3085092 Mon Sep 17 00:00:00 2001 From: Jose Quaresma Date: Wed, 26 Jun 2024 11:07:51 +0100 Subject: go: upgrade 1.22.3 -> 1.22.4 Include fixes for CVE-2024-24790 Upgrade to latest 1.22.x release [1]: $ git --no-pager log --oneline go1.22.3..go1.22.4 ace5bb40d0 (tag: go1.22.4) [release-branch.go1.22] go1.22.4 12d5810cdb [release-branch.go1.22] net/netip: check if address is v6 mapped in Is methods 745657509e [release-branch.go1.22] os: RemoveAll: fix symlink race for unix 95389d3d9d [release-branch.go1.22] runtime: x_cgo_getstackbound: initialize pthread attr cf501ac0c5 [release-branch.go1.22] archive/zip: treat truncated EOCDR comment as an error cb55d1a0c8 [release-branch.go1.22] cmd/link: add runtime.text.N symbols to macho symbol table in dynlink mode 3c96ae0870 [release-branch.go1.22] runtime: update large object stats before freeSpan in sweep 6b89e7dc5a [release-branch.go1.22] cmd/compile: initialize posBaseMap correctly 185457da9b [release-branch.go1.22] crypto/x509: remove TestPlatformVerifierLegacy tests 3a84293118 [release-branch.go1.22] cmd/compile: avoid past-the-end pointer when zeroing 362dcedfdb [release-branch.go1.22] cmd/go/testdata/script: add darwin skips for selected buildrepro tests d4a81ec7ee [release-branch.go1.22] cmd/go/testdata/script: clear path in gotoolchain_issue66175 dc8976dd0b [release-branch.go1.22] cmd/compile: don't combine loads in generated equality functions 00e6815208 [release-branch.go1.22] cmd/go: download 1.X.0 instead of 1.X during toolchain upgrade. [1] https://github.com/golang/go/compare/go1.22.3...go1.22.4 (From OE-Core rev: ba176de9bd8681c00d4388945fc9c9cc1807591c) Signed-off-by: Jose Quaresma Signed-off-by: Alexandre Belloni (cherry picked from commit cf139dfec080152a66a9c42bfb9bfca6789909be) Signed-off-by: Steve Sakoman --- meta/recipes-devtools/go/go-1.22.3.inc | 18 ------- meta/recipes-devtools/go/go-1.22.4.inc | 18 +++++++ .../recipes-devtools/go/go-binary-native_1.22.3.bb | 50 ------------------- .../recipes-devtools/go/go-binary-native_1.22.4.bb | 50 +++++++++++++++++++ .../go/go-cross-canadian_1.22.3.bb | 2 - .../go/go-cross-canadian_1.22.4.bb | 2 + meta/recipes-devtools/go/go-cross_1.22.3.bb | 2 - meta/recipes-devtools/go/go-cross_1.22.4.bb | 2 + meta/recipes-devtools/go/go-crosssdk_1.22.3.bb | 2 - meta/recipes-devtools/go/go-crosssdk_1.22.4.bb | 2 + meta/recipes-devtools/go/go-native_1.22.3.bb | 58 ---------------------- meta/recipes-devtools/go/go-native_1.22.4.bb | 58 ++++++++++++++++++++++ meta/recipes-devtools/go/go-runtime_1.22.3.bb | 3 -- meta/recipes-devtools/go/go-runtime_1.22.4.bb | 3 ++ meta/recipes-devtools/go/go_1.22.3.bb | 18 ------- meta/recipes-devtools/go/go_1.22.4.bb | 18 +++++++ 16 files changed, 153 insertions(+), 153 deletions(-) delete mode 100644 meta/recipes-devtools/go/go-1.22.3.inc create mode 100644 meta/recipes-devtools/go/go-1.22.4.inc delete mode 100644 meta/recipes-devtools/go/go-binary-native_1.22.3.bb create mode 100644 meta/recipes-devtools/go/go-binary-native_1.22.4.bb delete mode 100644 meta/recipes-devtools/go/go-cross-canadian_1.22.3.bb create mode 100644 meta/recipes-devtools/go/go-cross-canadian_1.22.4.bb delete mode 100644 meta/recipes-devtools/go/go-cross_1.22.3.bb create mode 100644 meta/recipes-devtools/go/go-cross_1.22.4.bb delete mode 100644 meta/recipes-devtools/go/go-crosssdk_1.22.3.bb create mode 100644 meta/recipes-devtools/go/go-crosssdk_1.22.4.bb delete mode 100644 meta/recipes-devtools/go/go-native_1.22.3.bb create mode 100644 meta/recipes-devtools/go/go-native_1.22.4.bb delete mode 100644 meta/recipes-devtools/go/go-runtime_1.22.3.bb create mode 100644 meta/recipes-devtools/go/go-runtime_1.22.4.bb delete mode 100644 meta/recipes-devtools/go/go_1.22.3.bb create mode 100644 meta/recipes-devtools/go/go_1.22.4.bb (limited to 'meta/recipes-devtools') diff --git a/meta/recipes-devtools/go/go-1.22.3.inc b/meta/recipes-devtools/go/go-1.22.3.inc deleted file mode 100644 index 34703bc1fa..0000000000 --- a/meta/recipes-devtools/go/go-1.22.3.inc +++ /dev/null @@ -1,18 +0,0 @@ -require go-common.inc - -FILESEXTRAPATHS:prepend := "${FILE_DIRNAME}/go:" - -LIC_FILES_CHKSUM = "file://LICENSE;md5=5d4950ecb7b26d2c5e4e7b4e0dd74707" - -SRC_URI += "\ - file://0001-cmd-go-make-content-based-hash-generation-less-pedan.patch \ - file://0002-cmd-go-Allow-GOTOOLDIR-to-be-overridden-in-the-envir.patch \ - file://0003-ld-add-soname-to-shareable-objects.patch \ - file://0004-make.bash-override-CC-when-building-dist-and-go_boot.patch \ - file://0005-cmd-dist-separate-host-and-target-builds.patch \ - file://0006-cmd-go-make-GOROOT-precious-by-default.patch \ - file://0007-exec.go-filter-out-build-specific-paths-from-linker-.patch \ - file://0008-src-cmd-dist-buildgo.go-do-not-hardcode-host-compile.patch \ - file://0009-go-Filter-build-paths-on-staticly-linked-arches.patch \ -" -SRC_URI[main.sha256sum] = "80648ef34f903193d72a59c0dff019f5f98ae0c9aa13ade0b0ecbff991a76f68" diff --git a/meta/recipes-devtools/go/go-1.22.4.inc b/meta/recipes-devtools/go/go-1.22.4.inc new file mode 100644 index 0000000000..44897daba4 --- /dev/null +++ b/meta/recipes-devtools/go/go-1.22.4.inc @@ -0,0 +1,18 @@ +require go-common.inc + +FILESEXTRAPATHS:prepend := "${FILE_DIRNAME}/go:" + +LIC_FILES_CHKSUM = "file://LICENSE;md5=5d4950ecb7b26d2c5e4e7b4e0dd74707" + +SRC_URI += "\ + file://0001-cmd-go-make-content-based-hash-generation-less-pedan.patch \ + file://0002-cmd-go-Allow-GOTOOLDIR-to-be-overridden-in-the-envir.patch \ + file://0003-ld-add-soname-to-shareable-objects.patch \ + file://0004-make.bash-override-CC-when-building-dist-and-go_boot.patch \ + file://0005-cmd-dist-separate-host-and-target-builds.patch \ + file://0006-cmd-go-make-GOROOT-precious-by-default.patch \ + file://0007-exec.go-filter-out-build-specific-paths-from-linker-.patch \ + file://0008-src-cmd-dist-buildgo.go-do-not-hardcode-host-compile.patch \ + file://0009-go-Filter-build-paths-on-staticly-linked-arches.patch \ +" +SRC_URI[main.sha256sum] = "fed720678e728a7ca30ba8d1ded1caafe27d16028fab0232b8ba8e22008fb784" diff --git a/meta/recipes-devtools/go/go-binary-native_1.22.3.bb b/meta/recipes-devtools/go/go-binary-native_1.22.3.bb deleted file mode 100644 index b67d97608d..0000000000 --- a/meta/recipes-devtools/go/go-binary-native_1.22.3.bb +++ /dev/null @@ -1,50 +0,0 @@ -# This recipe is for bootstrapping our go-cross from a prebuilt binary of Go from golang.org. - -SUMMARY = "Go programming language compiler (upstream binary for bootstrap)" -HOMEPAGE = " http://golang.org/" -LICENSE = "BSD-3-Clause" -LIC_FILES_CHKSUM = "file://LICENSE;md5=5d4950ecb7b26d2c5e4e7b4e0dd74707" - -PROVIDES = "go-native" - -# Checksums available at https://go.dev/dl/ -SRC_URI = "https://dl.google.com/go/go${PV}.${BUILD_GOOS}-${BUILD_GOARCH}.tar.gz;name=go_${BUILD_GOTUPLE}" -SRC_URI[go_linux_amd64.sha256sum] = "8920ea521bad8f6b7bc377b4824982e011c19af27df88a815e3586ea895f1b36" -SRC_URI[go_linux_arm64.sha256sum] = "6c33e52a5b26e7aa021b94475587fce80043a727a54ceb0eee2f9fc160646434" -SRC_URI[go_linux_ppc64le.sha256sum] = "04b7b05283de30dd2da20bf3114b2e22cc727938aed3148babaf35cc951051ac" - -UPSTREAM_CHECK_URI = "https://golang.org/dl/" -UPSTREAM_CHECK_REGEX = "go(?P\d+(\.\d+)+)\.linux" - -CVE_PRODUCT = "golang:go" - -S = "${WORKDIR}/go" - -inherit goarch native - -do_compile() { - : -} - -make_wrapper() { - rm -f ${D}${bindir}/$1 - cat <${D}${bindir}/$1 -#!/bin/bash -here=\`dirname \$0\` -export GOROOT="${GOROOT:-\`readlink -f \$here/../lib/go\`}" -\$here/../lib/go/bin/$1 "\$@" -END - chmod +x ${D}${bindir}/$1 -} - -do_install() { - find ${S} -depth -type d -name testdata -exec rm -rf {} + - - install -d ${D}${bindir} ${D}${libdir}/go - cp --preserve=mode,timestamps -R ${S}/ ${D}${libdir}/ - - for f in ${S}/bin/* - do - make_wrapper `basename $f` - done -} diff --git a/meta/recipes-devtools/go/go-binary-native_1.22.4.bb b/meta/recipes-devtools/go/go-binary-native_1.22.4.bb new file mode 100644 index 0000000000..61da51be3a --- /dev/null +++ b/meta/recipes-devtools/go/go-binary-native_1.22.4.bb @@ -0,0 +1,50 @@ +# This recipe is for bootstrapping our go-cross from a prebuilt binary of Go from golang.org. + +SUMMARY = "Go programming language compiler (upstream binary for bootstrap)" +HOMEPAGE = " http://golang.org/" +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://LICENSE;md5=5d4950ecb7b26d2c5e4e7b4e0dd74707" + +PROVIDES = "go-native" + +# Checksums available at https://go.dev/dl/ +SRC_URI = "https://dl.google.com/go/go${PV}.${BUILD_GOOS}-${BUILD_GOARCH}.tar.gz;name=go_${BUILD_GOTUPLE}" +SRC_URI[go_linux_amd64.sha256sum] = "ba79d4526102575196273416239cca418a651e049c2b099f3159db85e7bade7d" +SRC_URI[go_linux_arm64.sha256sum] = "a8e177c354d2e4a1b61020aca3562e27ea3e8f8247eca3170e3fa1e0c2f9e771" +SRC_URI[go_linux_ppc64le.sha256sum] = "a3e5834657ef92523f570f798fed42f1f87bc18222a16815ec76b84169649ec4" + +UPSTREAM_CHECK_URI = "https://golang.org/dl/" +UPSTREAM_CHECK_REGEX = "go(?P\d+(\.\d+)+)\.linux" + +CVE_PRODUCT = "golang:go" + +S = "${WORKDIR}/go" + +inherit goarch native + +do_compile() { + : +} + +make_wrapper() { + rm -f ${D}${bindir}/$1 + cat <${D}${bindir}/$1 +#!/bin/bash +here=\`dirname \$0\` +export GOROOT="${GOROOT:-\`readlink -f \$here/../lib/go\`}" +\$here/../lib/go/bin/$1 "\$@" +END + chmod +x ${D}${bindir}/$1 +} + +do_install() { + find ${S} -depth -type d -name testdata -exec rm -rf {} + + + install -d ${D}${bindir} ${D}${libdir}/go + cp --preserve=mode,timestamps -R ${S}/ ${D}${libdir}/ + + for f in ${S}/bin/* + do + make_wrapper `basename $f` + done +} diff --git a/meta/recipes-devtools/go/go-cross-canadian_1.22.3.bb b/meta/recipes-devtools/go/go-cross-canadian_1.22.3.bb deleted file mode 100644 index 7ac9449e47..0000000000 --- a/meta/recipes-devtools/go/go-cross-canadian_1.22.3.bb +++ /dev/null @@ -1,2 +0,0 @@ -require go-cross-canadian.inc -require go-${PV}.inc diff --git a/meta/recipes-devtools/go/go-cross-canadian_1.22.4.bb b/meta/recipes-devtools/go/go-cross-canadian_1.22.4.bb new file mode 100644 index 0000000000..7ac9449e47 --- /dev/null +++ b/meta/recipes-devtools/go/go-cross-canadian_1.22.4.bb @@ -0,0 +1,2 @@ +require go-cross-canadian.inc +require go-${PV}.inc diff --git a/meta/recipes-devtools/go/go-cross_1.22.3.bb b/meta/recipes-devtools/go/go-cross_1.22.3.bb deleted file mode 100644 index 80b5a03f6c..0000000000 --- a/meta/recipes-devtools/go/go-cross_1.22.3.bb +++ /dev/null @@ -1,2 +0,0 @@ -require go-cross.inc -require go-${PV}.inc diff --git a/meta/recipes-devtools/go/go-cross_1.22.4.bb b/meta/recipes-devtools/go/go-cross_1.22.4.bb new file mode 100644 index 0000000000..80b5a03f6c --- /dev/null +++ b/meta/recipes-devtools/go/go-cross_1.22.4.bb @@ -0,0 +1,2 @@ +require go-cross.inc +require go-${PV}.inc diff --git a/meta/recipes-devtools/go/go-crosssdk_1.22.3.bb b/meta/recipes-devtools/go/go-crosssdk_1.22.3.bb deleted file mode 100644 index 1857c8a577..0000000000 --- a/meta/recipes-devtools/go/go-crosssdk_1.22.3.bb +++ /dev/null @@ -1,2 +0,0 @@ -require go-crosssdk.inc -require go-${PV}.inc diff --git a/meta/recipes-devtools/go/go-crosssdk_1.22.4.bb b/meta/recipes-devtools/go/go-crosssdk_1.22.4.bb new file mode 100644 index 0000000000..1857c8a577 --- /dev/null +++ b/meta/recipes-devtools/go/go-crosssdk_1.22.4.bb @@ -0,0 +1,2 @@ +require go-crosssdk.inc +require go-${PV}.inc diff --git a/meta/recipes-devtools/go/go-native_1.22.3.bb b/meta/recipes-devtools/go/go-native_1.22.3.bb deleted file mode 100644 index ddf25b2c9b..0000000000 --- a/meta/recipes-devtools/go/go-native_1.22.3.bb +++ /dev/null @@ -1,58 +0,0 @@ -# This recipe builds a native Go (written in Go) by first building an old Go 1.4 -# (written in C). However this old Go does not support all hosts platforms. - -require go-${PV}.inc - -inherit native - -SRC_URI += "https://dl.google.com/go/go1.4-bootstrap-20171003.tar.gz;name=bootstrap;subdir=go1.4" -SRC_URI[bootstrap.sha256sum] = "f4ff5b5eb3a3cae1c993723f3eab519c5bae18866b5e5f96fe1102f0cb5c3e52" - -export GOOS = "${BUILD_GOOS}" -export GOARCH = "${BUILD_GOARCH}" -CC = "${@d.getVar('BUILD_CC').strip()}" - -GOMAKEARGS ?= "--no-banner" - -do_configure() { - cd ${WORKDIR}/go1.4/go/src - CGO_ENABLED=0 GOROOT=${WORKDIR}/go1.4/go ./make.bash -} - -do_compile() { - export GOROOT_FINAL="${libdir_native}/go" - export GOROOT_BOOTSTRAP="${WORKDIR}/go1.4/go" - - cd src - ./make.bash ${GOMAKEARGS} - cd ${B} -} -do_compile[cleandirs] += "${GOTMPDIR} ${B}/bin" - -make_wrapper() { - rm -f ${D}${bindir}/$2$3 - cat <${D}${bindir}/$2$3 -#!/bin/bash -here=\`dirname \$0\` -export GOROOT="${GOROOT:-\`readlink -f \$here/../lib/go\`}" -\$here/../lib/go/bin/$1 "\$@" -END - chmod +x ${D}${bindir}/$2 -} - -do_install() { - install -d ${D}${libdir}/go - cp --preserve=mode,timestamps -R ${B}/pkg ${D}${libdir}/go/ - install -d ${D}${libdir}/go/src - (cd ${S}/src; for d in *; do \ - [ -d $d ] && cp -a ${S}/src/$d ${D}${libdir}/go/src/; \ - done) - find ${D}${libdir}/go/src -depth -type d -name testdata -exec rm -rf {} \; - install -d ${D}${bindir} ${D}${libdir}/go/bin - for f in ${B}/bin/* - do - base=`basename $f` - install -m755 $f ${D}${libdir}/go/bin - make_wrapper $base $base - done -} diff --git a/meta/recipes-devtools/go/go-native_1.22.4.bb b/meta/recipes-devtools/go/go-native_1.22.4.bb new file mode 100644 index 0000000000..ddf25b2c9b --- /dev/null +++ b/meta/recipes-devtools/go/go-native_1.22.4.bb @@ -0,0 +1,58 @@ +# This recipe builds a native Go (written in Go) by first building an old Go 1.4 +# (written in C). However this old Go does not support all hosts platforms. + +require go-${PV}.inc + +inherit native + +SRC_URI += "https://dl.google.com/go/go1.4-bootstrap-20171003.tar.gz;name=bootstrap;subdir=go1.4" +SRC_URI[bootstrap.sha256sum] = "f4ff5b5eb3a3cae1c993723f3eab519c5bae18866b5e5f96fe1102f0cb5c3e52" + +export GOOS = "${BUILD_GOOS}" +export GOARCH = "${BUILD_GOARCH}" +CC = "${@d.getVar('BUILD_CC').strip()}" + +GOMAKEARGS ?= "--no-banner" + +do_configure() { + cd ${WORKDIR}/go1.4/go/src + CGO_ENABLED=0 GOROOT=${WORKDIR}/go1.4/go ./make.bash +} + +do_compile() { + export GOROOT_FINAL="${libdir_native}/go" + export GOROOT_BOOTSTRAP="${WORKDIR}/go1.4/go" + + cd src + ./make.bash ${GOMAKEARGS} + cd ${B} +} +do_compile[cleandirs] += "${GOTMPDIR} ${B}/bin" + +make_wrapper() { + rm -f ${D}${bindir}/$2$3 + cat <${D}${bindir}/$2$3 +#!/bin/bash +here=\`dirname \$0\` +export GOROOT="${GOROOT:-\`readlink -f \$here/../lib/go\`}" +\$here/../lib/go/bin/$1 "\$@" +END + chmod +x ${D}${bindir}/$2 +} + +do_install() { + install -d ${D}${libdir}/go + cp --preserve=mode,timestamps -R ${B}/pkg ${D}${libdir}/go/ + install -d ${D}${libdir}/go/src + (cd ${S}/src; for d in *; do \ + [ -d $d ] && cp -a ${S}/src/$d ${D}${libdir}/go/src/; \ + done) + find ${D}${libdir}/go/src -depth -type d -name testdata -exec rm -rf {} \; + install -d ${D}${bindir} ${D}${libdir}/go/bin + for f in ${B}/bin/* + do + base=`basename $f` + install -m755 $f ${D}${libdir}/go/bin + make_wrapper $base $base + done +} diff --git a/meta/recipes-devtools/go/go-runtime_1.22.3.bb b/meta/recipes-devtools/go/go-runtime_1.22.3.bb deleted file mode 100644 index 63464a1501..0000000000 --- a/meta/recipes-devtools/go/go-runtime_1.22.3.bb +++ /dev/null @@ -1,3 +0,0 @@ -require go-${PV}.inc -require go-runtime.inc - diff --git a/meta/recipes-devtools/go/go-runtime_1.22.4.bb b/meta/recipes-devtools/go/go-runtime_1.22.4.bb new file mode 100644 index 0000000000..63464a1501 --- /dev/null +++ b/meta/recipes-devtools/go/go-runtime_1.22.4.bb @@ -0,0 +1,3 @@ +require go-${PV}.inc +require go-runtime.inc + diff --git a/meta/recipes-devtools/go/go_1.22.3.bb b/meta/recipes-devtools/go/go_1.22.3.bb deleted file mode 100644 index 46f5fbc6be..0000000000 --- a/meta/recipes-devtools/go/go_1.22.3.bb +++ /dev/null @@ -1,18 +0,0 @@ -require go-${PV}.inc -require go-target.inc - -inherit linuxloader - -CGO_LDFLAGS:append = " -no-pie" - -export GO_LDSO = "${@get_linuxloader(d)}" -export CC_FOR_TARGET = "gcc" -export CXX_FOR_TARGET = "g++" - -# mips/rv64 doesn't support -buildmode=pie, so skip the QA checking for mips/riscv32 and its -# variants. -python() { - if 'mips' in d.getVar('TARGET_ARCH') or 'riscv32' in d.getVar('TARGET_ARCH'): - d.appendVar('INSANE_SKIP:%s' % d.getVar('PN'), " textrel") -} - diff --git a/meta/recipes-devtools/go/go_1.22.4.bb b/meta/recipes-devtools/go/go_1.22.4.bb new file mode 100644 index 0000000000..46f5fbc6be --- /dev/null +++ b/meta/recipes-devtools/go/go_1.22.4.bb @@ -0,0 +1,18 @@ +require go-${PV}.inc +require go-target.inc + +inherit linuxloader + +CGO_LDFLAGS:append = " -no-pie" + +export GO_LDSO = "${@get_linuxloader(d)}" +export CC_FOR_TARGET = "gcc" +export CXX_FOR_TARGET = "g++" + +# mips/rv64 doesn't support -buildmode=pie, so skip the QA checking for mips/riscv32 and its +# variants. +python() { + if 'mips' in d.getVar('TARGET_ARCH') or 'riscv32' in d.getVar('TARGET_ARCH'): + d.appendVar('INSANE_SKIP:%s' % d.getVar('PN'), " textrel") +} + -- cgit v1.2.3-54-g00ecf