Skip to content

Commit

Permalink
Problem: GO_NO_VENDOR_CHECKS fix not included
Browse files Browse the repository at this point in the history
Solution:
- include the fix in nixpkgs
- remove the gomod2nix patch

update gomod2nix
  • Loading branch information
yihuang committed Jan 14, 2025
1 parent 5ebf305 commit 520e984
Show file tree
Hide file tree
Showing 6 changed files with 53 additions and 11 deletions.
11 changes: 5 additions & 6 deletions flake.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion flake.nix
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
flake = false;
};
gomod2nix = {
url = "github:obreitwi/gomod2nix/fix/go_mod_vendor";
url = "github:nix-community/gomod2nix";
inputs.nixpkgs.follows = "nixpkgs";
inputs.flake-utils.follows = "flake-utils";
};
Expand Down
3 changes: 1 addition & 2 deletions gomod2nix.toml

Large diffs are not rendered by default.

20 changes: 19 additions & 1 deletion nix/build_overlay.nix
Original file line number Diff line number Diff line change
@@ -1,5 +1,23 @@
# some basic overlays necessary for the build
final: super: {
final: super:
let
replaceLast =
newVal: l:
let
len = builtins.length l;
in
if len == 0 then [ ] else final.lib.lists.take (len - 1) l ++ [ newVal ];
in
{
go_1_23 = super.go_1_23.overrideAttrs (old: rec {
version = "1.23.4";
src = final.fetchurl {
url = "https://go.dev/dl/go${version}.src.tar.gz";
hash = "sha256-rTRaxCHpCBQpOpaZzKGd1SOCUcP2h5gLvK4oSVsmNTE=";
};
# https://github.com/NixOS/nixpkgs/pull/372367
patches = replaceLast ./go_no_vendor_checks-1.23.patch old.patches;
});
rocksdb = final.callPackage ./rocksdb.nix { };
golangci-lint = final.callPackage ./golangci-lint.nix { };
}
2 changes: 1 addition & 1 deletion nix/cronos-matrix.nix
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ let
| gzip -9 > $out
'';
bundle-win-exe = drv: callPackage ./bundle-win-exe.nix { cronosd = drv; };
matrix = lib.cartesianProductOfSets {
matrix = lib.cartesianProduct {
network = [
"mainnet"
"testnet"
Expand Down
26 changes: 26 additions & 0 deletions nix/go_no_vendor_checks-1.23.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
diff --git a/src/cmd/go/internal/modload/import.go b/src/cmd/go/internal/modload/import.go
index a3105b6b6d..0e10154a70 100644
--- a/src/cmd/go/internal/modload/import.go
+++ b/src/cmd/go/internal/modload/import.go
@@ -345,7 +345,7 @@ func importFromModules(ctx context.Context, path string, rs *Requirements, mg *M
// vendor/modules.txt does not exist or the user manually added directories to the vendor directory.
// Go 1.23 and later require vendored packages to be present in modules.txt to be imported.
_, ok := vendorPkgModule[path]
- if ok || (gover.Compare(MainModules.GoVersion(), gover.ExplicitModulesTxtImportVersion) < 0) {
+ if ok || (gover.Compare(MainModules.GoVersion(), gover.ExplicitModulesTxtImportVersion) < 0) || os.Getenv("GO_NO_VENDOR_CHECKS") == "1" {
mods = append(mods, vendorPkgModule[path])
dirs = append(dirs, dir)
roots = append(roots, vendorDir)
diff --git a/src/cmd/go/internal/modload/vendor.go b/src/cmd/go/internal/modload/vendor.go
index b2cb44100e..05bf3829d5 100644
--- a/src/cmd/go/internal/modload/vendor.go
+++ b/src/cmd/go/internal/modload/vendor.go
@@ -159,7 +159,7 @@ func checkVendorConsistency(indexes []*modFileIndex, modFiles []*modfile.File, m
panic(fmt.Errorf("not in workspace mode but number of indexes is %v, not 1", len(indexes)))
}
index := indexes[0]
- if gover.Compare(index.goVersion, "1.14") < 0 {
+ if gover.Compare(index.goVersion, "1.14") < 0 || (os.Getenv("GO_NO_VENDOR_CHECKS") == "1" && len(vendorMeta) == 0) {
// Go versions before 1.14 did not include enough information in
// vendor/modules.txt to check for consistency.
// If we know that we're on an earlier version, relax the consistency check.

0 comments on commit 520e984

Please sign in to comment.