From 173882e9f604e3a9a5fd02e93d3263d6a408fd5b Mon Sep 17 00:00:00 2001 From: Martin Holst Swende Date: Fri, 6 Oct 2023 08:59:44 +0200 Subject: [PATCH 1/2] build: upgrade to golang 1.21.2 --- build/checksums.txt | 28 ++++++++++++++-------------- build/ci.go | 2 +- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/build/checksums.txt b/build/checksums.txt index 17fb6dce2766..7d0de2a7e63b 100644 --- a/build/checksums.txt +++ b/build/checksums.txt @@ -4,20 +4,20 @@ 24bac679f3a2d8240d8e08e7f6a70b70c2dabf673317d924cf1d1887b9fe1f81 fixtures.tar.gz # https://go.dev/dl/ -bfa36bf75e9a1e9cbbdb9abcf9d1707e479bd3a07880a8ae3564caee5711cb99 go1.21.1.src.tar.gz -809f5b0ef4f7dcdd5f51e9630a5b2e5a1006f22a047126d61560cdc365678a19 go1.21.1.darwin-amd64.tar.gz -ffd40391a1e995855488b008ad9326ff8c2e81803a6e80894401003bae47fcf1 go1.21.1.darwin-arm64.tar.gz -9919a9a4dc82371aba3da5b7c830bcb6249fc1502cd26d959eb340a60e41ee01 go1.21.1.freebsd-386.tar.gz -2571f10f6047e04d87c1f5986a05e5e8f7b511faf98803ef12b66d563845d2a1 go1.21.1.freebsd-amd64.tar.gz -b93850666cdadbd696a986cf7b03111fe99db8c34a9aaa113d7c96d0081e1901 go1.21.1.linux-386.tar.gz -b3075ae1ce5dab85f89bc7905d1632de23ca196bd8336afd93fa97434cfa55ae go1.21.1.linux-amd64.tar.gz -7da1a3936a928fd0b2602ed4f3ef535b8cd1990f1503b8d3e1acc0fa0759c967 go1.21.1.linux-arm64.tar.gz -f3716a43f59ae69999841d6007b42c9e286e8d8ce470656fb3e70d7be2d7ca85 go1.21.1.linux-armv6l.tar.gz -eddf018206f8a5589bda75252b72716d26611efebabdca5d0083ec15e9e41ab7 go1.21.1.linux-ppc64le.tar.gz -a83b3e8eb4dbf76294e773055eb51397510ff4d612a247bad9903560267bba6d go1.21.1.linux-s390x.tar.gz -170256c820f466f29d64876f25f4dfa4029ed9902a0a9095d8bd603aecf4d83b go1.21.1.windows-386.zip -10a4f5b63215d11d1770453733dbcbf024f3f74872f84e28d7ea59f0250316c6 go1.21.1.windows-amd64.zip -41135ce6e0ced4bc1e459cb96bd4090c9dc2062e24179c3f337d855af9b560ef go1.21.1.windows-arm64.zip +45e59de173baec39481854490d665b726cec3e5b159f6b4172e5ec7780b2c201 go1.21.2.src.tar.gz +31db09a0ebaf89a3efa15a84cc67d4a8b60ae4aace9e6818e453d72be64f76bd go1.21.2.darwin-amd64.tar.gz +7534d79f1955b57971092a91d2ce683fc49352c6130e2c9411357031c05437a4 go1.21.2.darwin-arm64.tar.gz +3ac3c5e1ec1f42e8394ae0803c2ca5570ddc4026d82ddf9010a8bdd24e419a54 go1.21.2.freebsd-386.tar.gz +63a0c772ba671b11a1da2df69424be051cfb3ea61017b28a32d41492e4114826 go1.21.2.freebsd-amd64.tar.gz +e2ccb4121a328c3fa297c6d653cc0a625a06935313c2367f8e026c3af56869c5 go1.21.2.linux-386.tar.gz +f5414a770e5e11c6e9674d4cd4dd1f4f630e176d1828d3427ea8ca4211eee90d go1.21.2.linux-amd64.tar.gz +23e208ca44a3cb46cd4308e48a27c714ddde9c8c34f2e4211dbca95b6d456554 go1.21.2.linux-arm64.tar.gz +8727d842176a2bfd9edf307ed5411c39a69e2c6a748098987be361e8e0c36b46 go1.21.2.linux-armv6l.tar.gz +429ae21664ee12fdddc9a04fd0646879da34d81fe3fd316d57250e7fd50e7c6b go1.21.2.linux-ppc64le.tar.gz +544c867180bf3384396b0906a7f14f4dc26bb7e78d4b05a8b45557b1b0ce0376 go1.21.2.linux-s390x.tar.gz +499357f6dbf61aa3acd5a0277130b11eae871c4da49f3a6cddcdf6f6ccb434a7 go1.21.2.windows-386.zip +2cd46db02477f33559a4ebf8a176c22879b43fdcfddb1542a23876054f26a83f go1.21.2.windows-amd64.zip +46cf055567c4ace410f0bb9937374c5c7e22e9194ad43635c953ca4238f471f0 go1.21.2.windows-arm64.zip # https://github.com/golangci/golangci-lint/releases fba08acc4027f69f07cef48fbff70b8a7ecdfaa1c2aba9ad3fb31d60d9f5d4bc golangci-lint-1.51.1-darwin-amd64.tar.gz diff --git a/build/ci.go b/build/ci.go index 400c8bdd6874..57d30925e1cb 100644 --- a/build/ci.go +++ b/build/ci.go @@ -139,7 +139,7 @@ var ( // This is the version of Go that will be downloaded by // // go run ci.go install -dlgo - dlgoVersion = "1.21.1" + dlgoVersion = "1.21.2" // This is the version of Go that will be used to bootstrap the PPA builder. // From 9716c8ed2e6ad718c11232edbc33bd0898fec3a8 Mon Sep 17 00:00:00 2001 From: Martin Holst Swende Date: Fri, 6 Oct 2023 09:33:36 +0200 Subject: [PATCH 2/2] build: verify checksums via tool --- build/checksums.txt | 5 ++++- build/ci.go | 6 ++++++ internal/build/gotool.go | 29 +++++++++++++++++++++++++++++ 3 files changed, 39 insertions(+), 1 deletion(-) diff --git a/build/checksums.txt b/build/checksums.txt index 7d0de2a7e63b..9f4d7c1c1e31 100644 --- a/build/checksums.txt +++ b/build/checksums.txt @@ -1,6 +1,7 @@ # This file contains sha256 checksums of optional build dependencies. # https://github.com/ethereum/execution-spec-tests/releases +# https://github.com/ethereum/execution-spec-tests/releases/download/v1.0.2/ 24bac679f3a2d8240d8e08e7f6a70b70c2dabf673317d924cf1d1887b9fe1f81 fixtures.tar.gz # https://go.dev/dl/ @@ -19,7 +20,8 @@ f5414a770e5e11c6e9674d4cd4dd1f4f630e176d1828d3427ea8ca4211eee90d go1.21.2.linux 2cd46db02477f33559a4ebf8a176c22879b43fdcfddb1542a23876054f26a83f go1.21.2.windows-amd64.zip 46cf055567c4ace410f0bb9937374c5c7e22e9194ad43635c953ca4238f471f0 go1.21.2.windows-arm64.zip -# https://github.com/golangci/golangci-lint/releases +# https://github.com/golangci/golangci-lint/releases/ +# https://github.com/golangci/golangci-lint/releases/download/v1.51.1/ fba08acc4027f69f07cef48fbff70b8a7ecdfaa1c2aba9ad3fb31d60d9f5d4bc golangci-lint-1.51.1-darwin-amd64.tar.gz 75b8f0ff3a4e68147156be4161a49d4576f1be37a0b506473f8c482140c1e7f2 golangci-lint-1.51.1-darwin-arm64.tar.gz e06b3459aaed356e1667580be00b05f41f3b2e29685d12cdee571c23e1edb414 golangci-lint-1.51.1-freebsd-386.tar.gz @@ -48,4 +50,5 @@ bce02f7232723cb727755ee11f168a700a00896a25d37f87c4b173bce55596b4 golangci-lint- cf6403f84707ce8c98664736772271bc8874f2e760c2fd0f00cf3e85963507e9 golangci-lint-1.51.1-windows-armv7.zip # This is the builder on PPA that will build Go itself (inception-y), don't modify! +# https://go.dev/dl/ d7f0013f82e6d7f862cc6cb5c8cdb48eef5f2e239b35baa97e2f1a7466043767 go1.19.6.src.tar.gz diff --git a/build/ci.go b/build/ci.go index 57d30925e1cb..77d91898ef66 100644 --- a/build/ci.go +++ b/build/ci.go @@ -192,6 +192,8 @@ func main() { doWindowsInstaller(os.Args[2:]) case "purge": doPurge(os.Args[2:]) + case "sanitycheck": + doSanityCheck() default: log.Fatal("unknown command ", os.Args[1]) } @@ -1099,3 +1101,7 @@ func doPurge(cmdline []string) { log.Fatal(err) } } + +func doSanityCheck() { + build.DownloadAndVerifyChecksums(build.MustLoadChecksums("build/checksums.txt")) +} diff --git a/internal/build/gotool.go b/internal/build/gotool.go index 296ba8c36ecb..f914d86c856c 100644 --- a/internal/build/gotool.go +++ b/internal/build/gotool.go @@ -126,3 +126,32 @@ func DownloadGo(csdb *ChecksumDB, version string) string { } return goroot } + +// DownloadAndVerifyChecksums downloads all files and checks that they match +// the checksum given in checksums.txt. +// This task can be used to sanity-check new checksums. +func DownloadAndVerifyChecksums(csdb *ChecksumDB) { + var ( + base = "" + ucache = os.TempDir() + ) + for _, l := range csdb.allChecksums { + if strings.HasPrefix(l, "# https://") { + base = l[2:] + continue + } + if strings.HasPrefix(l, "#") { + continue + } + hashFile := strings.Split(l, " ") + if len(hashFile) != 2 { + continue + } + file := hashFile[1] + url := base + file + dst := filepath.Join(ucache, file) + if err := csdb.DownloadFile(url, dst); err != nil { + log.Print(err) + } + } +}