I’m trying to bump the version in nixpkgs to 1.10.23 on nixpkgs/master
boring diff
diff --git a/pkgs/applications/blockchains/go-ethereum/default.nix b/pkgs/applications/blockchains/go-ethereum/default.nix
index 7766158193d..20d63da39a1 100644
--- a/pkgs/applications/blockchains/go-ethereum/default.nix
+++ b/pkgs/applications/blockchains/go-ethereum/default.nix
@@ -9,16 +9,16 @@ let
in buildGoModule rec {
pname = "go-ethereum";
- version = "1.10.21";
+ version = "1.10.23";
src = fetchFromGitHub {
owner = "ethereum";
repo = pname;
rev = "v${version}";
- sha256 = "sha256-qaM1I3ytMZN+5v/Oj47n3Oc21Jk7DtjfWA/xDprbn/M=";
+ sha256 = "sha256-1fEmtbHKrjuyIVrGr/vTudZ99onkNjEMvyBJt4I8KK4=";
};
- vendorSha256 = "sha256-Dj+xN8lr98LJyYr2FwJ7yUIJkUeUrr1fkcbj4hShJI0=";
+ vendorSha256 = "sha256-ZO6KG0M4LXJUF1udpYMrjXlBefBbnzkK2CV87sRgUF4=";
doCheck = false;
And the error I get is puzzling:
go-ethereum> # github.com/urfave/cli/v2
go-ethereum> vendor/github.com/urfave/cli/v2/sliceflag.go:15:12: type parameter requires go1.18 or later (-lang was set to go1.16; check go.mod)
go-ethereum> vendor/github.com/urfave/cli/v2/sliceflag.go:15:29: type instantiation requires go1.18 or later (-lang was set to go1.16; check go.mod)
go-ethereum> vendor/github.com/urfave/cli/v2/sliceflag.go:15:44: predeclared any requires go1.18 or later (-lang was set to go1.16; check go.mod)
go-ethereum> vendor/github.com/urfave/cli/v2/sliceflag.go:25:18: type parameter requires go1.18 or later (-lang was set to go1.16; check go.mod)
go-ethereum> vendor/github.com/urfave/cli/v2/sliceflag.go:25:20: predeclared any requires go1.18 or later (-lang was set to go1.16; check go.mod)
go-ethereum> vendor/github.com/urfave/cli/v2/sliceflag.go:44:29: type instantiation requires go1.18 or later (-lang was set to go1.16; check go.mod)
go-ethereum> vendor/github.com/urfave/cli/v2/sliceflag.go:48:30: type instantiation requires go1.18 or later (-lang was set to go1.16; check go.mod)
go-ethereum> vendor/github.com/urfave/cli/v2/sliceflag.go:52:28: type instantiation requires go1.18 or later (-lang was set to go1.16; check go.mod)
go-ethereum> vendor/github.com/urfave/cli/v2/sliceflag.go:56:26: type instantiation requires go1.18 or later (-lang was set to go1.16; check go.mod)
go-ethereum> vendor/github.com/urfave/cli/v2/sliceflag.go:215:24: type parameter requires go1.18 or later (-lang was set to go1.16; check go.mod)
go-ethereum> vendor/github.com/urfave/cli/v2/sliceflag.go:56:26: too many errors
Note that the package builds fine when using buildGo117Module
.
So this seems to be an issue with the fact that Go 1.18 introduces generics, the urfav/cli
package uses them, but that somehow the nix build isn’t picking up or correctly exposing the go version, resulting in the build failing. Also note that the 1.16 version is probably a red herring, and that the go directive is simply missing somewhere, since:
As of the Go 1.17 release, if the
go
directive is missing,go 1.16
is assumed.
I am not sure if this error affects other packages built with 1.18.
Also note that upstream builds the package with go 1.18.5.