Commit Graph

178 Commits

Author SHA1 Message Date
Zachinquarantine
577db2edf7
build: add support for Ubuntu 22.10 (Kinetic Kudu) (#26379)
Adds uploads to Kinetic in Launchpad, and removes the upload for 21.10 impish (not supported since July)
2022-12-27 02:52:29 -05:00
Jakub Freebit
4984c4e63f
build: make ios work again (#26052) 2022-10-27 11:23:11 +03:00
Marius Kjærstad
1d0c4e27bf
build: upgrade -dlgo version to Go 1.19.2 2022-10-26 14:49:12 +02:00
Felix Lange
65f3c1b46f
internal/version: use gitCommit injection in version handling code (#25851)
This changes the CI build to store the git commit and date into package
internal/version instead of package main. Doing this essentially merges our
two ways of tracking the go-ethereum version into a single place, achieving
two objectives:

- Bad block reports, which use version.Info(), will now have the git commit
  information even when geth is built in an environment such as
  launchpad.net where git access is unavailable.

- For geth builds created by `go build ./cmd/geth` (i.e. not using `go run
  build/ci.go install`), git information stored by the go tool is now used
  in the p2p node name as well as in `geth version` and `geth
  version-check`.
2022-09-23 14:08:25 +02:00
Felix Lange
b628d72766
build: upgrade to go 1.19 (#25726)
This changes the CI / release builds to use the latest Go version. It also
upgrades golangci-lint to a newer version compatible with Go 1.19.

In Go 1.19, godoc has gained official support for links and lists. The
syntax for code blocks in doc comments has changed and now requires a
leading tab character. gofmt adapts comments to the new syntax
automatically, so there are a lot of comment re-formatting changes in this
PR. We need to apply the new format in order to pass the CI lint stage with
Go 1.19.

With the linter upgrade, I have decided to disable 'gosec' - it produces
too many false-positive warnings. The 'deadcode' and 'varcheck' linters
have also been removed because golangci-lint warns about them being
unmaintained. 'unused' provides similar coverage and we already have it
enabled, so we don't lose much with this change.
2022-09-10 13:25:40 +02:00
uji
6d882a51e0
build: fix ignored errors (#25591) 2022-08-30 14:40:15 +02:00
Justin Traglia
2c5648d891
all: fix some typos (#25551)
* Fix some typos

* Fix some mistakes

* Revert 4byte.json

* Fix an incorrect fix

* Change files to fails
2022-08-19 09:00:21 +03:00
0xe3b0c4
c0cc6f6362
build: add static linking support (#25492)
This adds support for building statically-linked executables using ci.go.

Static linking is enabled by default in Docker builds, making it possible to
use the geth executable in any Docker image, regardless of the Linux
distribution the Dockerfile is based on.

Co-authored-by: Felix Lange <fjl@twurst.com>
2022-08-10 10:30:59 +02:00
Marius Kjærstad
93eabcaa4e
build: upgrade -dlgo version to Go 1.18.5 2022-08-01 18:21:58 +02:00
Marius Kjærstad
9f9657850f
build: upgrade -dlgo version to Go 1.18.4 2022-07-12 23:19:41 +02:00
Marius Kjærstad
ed7a80f7fd
build: upgrade -dlgo version to Go 1.18.3 2022-07-06 00:12:39 +02:00
Felix Lange
63b2d49b5b
build: upgrade to golangci-lint v1.46.2 (#25202)
This upgrade is required to fix lint issues with urfave/cli/v2, which
uses generics when built with Go 1.18
2022-06-29 20:49:04 +02:00
willian.eth
52ed3570c4
cmd: migrate to urfave/cli/v2 (#24751)
This change updates our urfave/cli dependency to the v2 branch of the library.
There are some Go API changes in cli v2:

- Flag values can now be accessed using the methods ctx.Bool,
  ctx.Int, ctx.String, ... regardless of whether the flag is 'local' or
  'global'.

- v2 has built-in support for flag categories. Our home-grown category
  system is removed and the categories of flags are assigned as part of
  the flag definition.

For users, there is only one observable difference with cli v2: flags must now
strictly appear before regular arguments. For example, the following command is
now invalid:

   geth account import mykey.json --password file.txt

Instead, the command must be invoked as follows:

   geth account import --password file.txt mykey.json
2022-06-27 18:22:36 +02:00
Håvard Anda Estensen
07508ac0e9
all: replace uses of ioutil with io and os (#24869) 2022-05-16 11:59:35 +02:00
Martin Holst Swende
c164aed1d1
build: ppa build for jammy (ubuntu 22.04) 2022-05-04 11:41:24 +02:00
Evgeny Kolyakov
8d84a701a5
build: fix formatted logs (#24807)
Changed `log.Fatal` to `log.Fatalf()` as it has a parameter...
2022-05-04 00:37:37 +03:00
s7v7nislands
5a584c2133
all: use common.FileExist for checking file existence (#24748) 2022-04-27 11:48:02 +02:00
Marius Kjærstad
9f7bcb9d76
build: upgrade -dlgo version to Go 1.18.1 (#24689)
* build: upgrade -dlgo version to Go 1.18.1

* build: upgrade -dlgo version for macOS to Go 1.18.1
2022-04-14 08:45:04 +03:00
ucwong
d4d288e3f1
build: add imports for go generate tools (#24682)
This adds a tools.go file to import all command packages used for
go:generate. Doing so makes it possible to execute go-based code
generators using 'go run', locking in the tool version using go.mod.

Co-authored-by: Felix Lange <fjl@twurst.com>
2022-04-12 20:24:02 +02:00
Martin Holst Swende
6a44bf6826
build: upgrade to golangci-lint v1.45.2 (#24586) 2022-03-25 13:46:33 +01:00
Péter Szilágyi
be7eb8ae17
build, Dockerfile: bump Go to 1.18 2022-03-16 08:27:16 +02:00
ligi
a6bf2487d1
build: fix linter install on windows (#24523) 2022-03-15 10:24:45 +01:00
uji
8fddf27a98
internal/build: switch azure sdk from Azure/azure-storage-blob-go to Azure/azure-sdk-for-go/sdk/storage/azblob. (#24473)
* go.mod: update azure-storage-blob-go

update Azure/azure-storage-blob-go from v0.7.0 to v0.14.0.
relation #24396.

* internal/build: fix for breaking changes of azure-storage-blob-go

fix for breaking changes of update Azure/azure-storage-blob-go from v0.7.0 to v0.14.0.
relation #24396.

* internal/build: switch azure sdk from Azure/azure-storage-blob-go to Azure/azure-sdk-for-go/sdk/storage/azblob.

* internal/build refactor appending BlobItems

* internal/build: fix azure blobstore client to include container id

Co-authored-by: Péter Szilágyi <peterke@gmail.com>
2022-03-02 13:05:14 +02:00
Felix Lange
06aaeed1a6
build: add Ubuntu 21.10 PPA target (#24418)
Also specify EOL dates of all listed releases.
2022-02-17 18:35:33 +01:00
Martin Holst Swende
4335bbbf0a
build: disable Ubuntu Hirsuite (#24408)
This Ubuntu release has reached EOL and Launchpad does not
accept uploads for it anymore.
2022-02-16 17:38:21 +01:00
ligi
a5c0cfb451
build: fix lint on ARM (#24311)
* build: append GOARM to arm lint download URL

otherwise it fails with:

downloading from https://github.com/golangci/golangci-lint/releases/download/v1.42.0/golangci-lint-1.42.0-linux-arm.tar.gz
ci.go:347: download error: status 404

* build: increase timeout for lint

Otherwise it times out on a pi

* Increase timeout even further

saw longer build times
2022-01-31 14:17:18 +02:00
Felix Lange
b8edc04ce3
build: upgrade -dlgo version to Go 1.17.5 (#24144) 2021-12-22 15:31:41 +01:00
jwasinger
48dc34b8d9
build: remove xgo cross-builds (#23800)
xgo is not maintained at this time, so none of these builds work.

Closes #23784
2021-10-25 16:49:44 +02:00
Marius van der Wijden
da3da7c0e7
ci: enable race tests as cron job on travis (#23480) 2021-10-11 19:37:18 +02:00
Guillaume Ballet
8b6e018401
build: increase C thread stack size on linux (#23676)
* build: increase thread stack size when running alpine linux

* review feedback: force a stack size of 8M on all linux distribs

* fix missing extldflags
2021-10-11 15:48:41 +02:00
Felix Lange
2fe0c65f4b
build: upgrade -dlgo version to 1.17.2 (#23698)
Go 1.17.2 fixes some miscompilation issues on amd64 and a runtime issue with timers.
While the upgrade is not strictly necessary for go-ethereum right now, it is still good
to be up-to-date.
2021-10-08 17:23:25 +02:00
Felix Lange
d584e39862
build: stop publishing deb packages for Ubuntu 20.10 Groovy Gorilla (#23470)
Support for this Ubuntu release has ended on July 22 2021 and
Launchpad no longer accepts uploads for it.
2021-08-25 21:57:31 +02:00
Felix Lange
efee85378e
build, .travis.yml: upgrade to Go 1.17 (#23464) 2021-08-25 14:22:33 +02:00
Felix Lange
45f34430fd
build: upgrade to golangci-lint v1.42.0 (#23461)
The new linter version is built with go 1.17 and thus includes the go vet
check for mismatched +build and go:build lines.

Fortunately, no new warnings are reported with this update.
2021-08-25 13:21:09 +02:00
Péter Szilágyi
c27bd3481e
build: fix docker tag to include v prefix in version string 2021-08-10 17:49:52 +03:00
baptiste-b-pegasys
3526f69047
all: remove term "whitelist" in comments and log messages (#23294) 2021-07-29 17:36:15 +02:00
Péter Szilágyi
0f2347d070
travis, Dockerfile, build: docker build and multi-arch publish combo 2021-06-21 19:17:59 +03:00
Péter Szilágyi
e9f99d1c91
travis, build: add support for multi-arch docker images 2021-06-18 15:30:00 +03:00
Péter Szilágyi
90ffcfde89
travis, build: own docker builder and hub pusher 2021-06-17 11:04:57 +03:00
Marius Kjærstad
7ab7acfded
build: upgrade -dlgo version to Go 1.16.4 (#22848) 2021-05-10 12:18:42 +02:00
Felix Lange
973ad66b49
build: fix iOS framework build (#22813)
This fixes a regression introduced in #22804.
2021-05-04 21:45:45 +02:00
Felix Lange
effaf18523
build: improve cross compilation setup (#22804)
This PR cleans up the CI build system and fixes a couple of issues.

- The go tool launcher code has been moved to internal/build. With the new
  toolchain functions, the environment of the host Go (i.e. the one that built
  ci.go) and the target Go (i.e. the toolchain downloaded by -dlgo) are isolated
  more strictly. This is important to make cross compilation and -dlgo work
  correctly in more cases.
- The -dlgo option now skips the download and uses the host Go if the running Go
  version matches dlgoVersion exactly.
- The 'test' command now supports -dlgo, -cc and -arch. Running unit tests with
  foreign GOARCH is occasionally useful. For example, it can be used to run
  32-bit tests on Windows. It can also be used to run darwin/amd64 tests on
  darwin/arm64 using Rosetta 2.
- The 'aar', 'xcode' and 'xgo' commands now use a slightly different method to
  install external tools. They previously used `go get`, but this comes with the
  annoying side effect of modifying go.mod. They now use `go install` instead,
  which is the recommended way of installing tools without modifying the local
  module.
- The old build warning about outdated Go version has been removed because we're
  much better at keeping backwards compatibility now.
2021-05-04 13:01:20 +02:00
Felix Lange
a0a99e610d
build: upgrade -dlgo version to Go 1.16.3 (#22746) 2021-04-27 12:43:47 +02:00
Felix Lange
a3f0da1ac4
build: upgrade to golangci-lint v1.39.0 (#22696)
* build: upgrade to golangci-lint v1.39.0

* consensus/ethash: fix go vet warning regarding reflect.SliceHeader

* eth/catalyst: fix lint issue

* consensus/ethash: fix bug in memoryMapFile
2021-04-27 11:49:06 +03:00
Péter Szilágyi
5b95453ef2
build: add support for Ubuntu Hirsute Hippo 2021-03-04 13:57:02 +02:00
Péter Szilágyi
de61da99c4
build: fix PPA failure due to updated debsrc 2021-03-04 13:06:23 +02:00
Péter Szilágyi
c5023e1dc5
travis, appveyor, build: bump Go to 1.16 2021-02-19 16:03:17 +02:00
Felix Lange
1d1f5fea4a
build: upgrade to Go 1.15.6 (#21986) 2020-12-11 09:02:55 +01:00
Felix Lange
f935b1d542
crypto/signify, build: fix archive signing with signify (#21977)
This fixes some issues in crypto/signify and makes release signing work.

The archive signing step in ci.go used getenvBase64, which decodes the key data.
This is incorrect here because crypto/signify already base64-decodes the key.
2020-12-09 15:43:36 +01:00
Guillaume Ballet
fa572cd297
crypto: signing builds with signify/minisign (#21798)
* internal/build: implement signify's signing func
* Add signify to the ci utility
* fix output file format
* Add unit test for signify
* holiman's + travis' feedback
* internal/build: verify signify's output
* crypto: move signify to common dir
* use go-minisign to verify binaries
* more holiman feedback
* crypto, ci: support minisign output
* only accept one-line trusted comments
* configurable untrusted comments
* code cleanup in tests
* revert to use ed25519 from the stdlib
* bug: fix for empty untrusted comments
* write timestamp as comment if trusted comment isn't present
* rename line checker to commentHasManyLines
* crypto: added signify fuzzer (#6)
* crypto: added signify fuzzer
* stuff
* crypto: updated signify fuzzer to fuzz comments
* crypto: repro signify crashes
* rebased fuzzer on build-signify branch
* hide fuzzer behind gofuzz build flag
* extract key data inside a single function
* don't treat \r as a newline
* travis: fix signing command line
* do not use an external binary in tests
* crypto: move signify to crypto/signify
* travis: fix formatting issue
* ci: fix linter build after package move

Co-authored-by: Marius van der Wijden <m.vanderwijden@live.de>
2020-11-27 12:13:54 +01:00