Files
nixpkgs/pkgs/development/compilers/go/go_no_vendor_checks-1.27.patch
Leon Klingele 67a70befab go_1_27: init at 1.27rc1
https://go.dev/doc/go1.27

fix: vet

The "nixpkgs-vet"[^0] CI job was failing before.

    - Attribute `pkgs.go_1_27` is a new top-level package using `pkgs.callPackage ./pkgs/development/compilers/go/1.27.nix { /* ... */ }`.
      Please define it in pkgs/by-name/go/go_1_27/package.nix instead.
      See `pkgs/by-name/README.md` for more details.
      Since the second `callPackage` argument is `{ }`, no manual `callPackage` in pkgs/top-level/all-packages.nix is needed anymore.
     (https://github.com/NixOS/nixpkgs-vet/wiki/NPV-162)
    This PR introduces additional instances of discouraged patterns as listed above. Please fix them before merging.
    error: Cannot build '/nix/store/69y050xrdffqxils57mrqw43cf90i0xf-nixpkgs-vet.drv'.
           Reason: builder failed with exit code 1.
           Output paths:
             /nix/store/kxrknx65q0abw9m5mhpcivwhggpwm7l3-nixpkgs-vet
           Last 6 log lines:
           > - Attribute `pkgs.go_1_27` is a new top-level package using `pkgs.callPackage ./pkgs/development/compilers/go/1.27.nix { /* ... */ }`.
           >   Please define it in pkgs/by-name/go/go_1_27/package.nix instead.
           >   See `pkgs/by-name/README.md` for more details.
           >   Since the second `callPackage` argument is `{ }`, no manual `callPackage` in pkgs/top-level/all-packages.nix is needed anymore.
           >  (https://github.com/NixOS/nixpkgs-vet/wiki/NPV-162)
           > This PR introduces additional instances of discouraged patterns as listed above. Please fix them before merging.
           For full logs, run:
             nix log /nix/store/69y050xrdffqxils57mrqw43cf90i0xf-nixpkgs-vet.drv
    To run locally: ./ci/nixpkgs-vet.sh master https://github.com/NixOS/nixpkgs.git
    If you're having trouble, ping @NixOS/nixpkgs-vet

Moving 1.27.nix into `pkgs/by-name/go/go_1_27/package.nix` is impractical because
the file references many sibling files in `pkgs/development/compilers/go/` (patches,
bootstrap files, etc.)

Follow `pkgs/by-name/README.md` and use `inherit` to please the vet linter.

[^0]: https://github.com/NixOS/nixpkgs/actions/runs/27820342521/job/82331726385?pr=533254#step:6:210
2026-06-23 10:39:49 +02:00

27 lines
1.8 KiB
Diff

diff --git a/src/cmd/go/internal/modload/import.go b/src/cmd/go/internal/modload/import.go
index 98f17ccff15b3378c44350615e19226b5b8ee68f..964f86a6dd25ed0c25a923ae4e946da8a2eff713 100644
--- a/src/cmd/go/internal/modload/import.go
+++ b/src/cmd/go/internal/modload/import.go
@@ -350,7 +350,7 @@ func importFromModules(ld *Loader, ctx context.Context, path string, rs *Require
// 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(ld.MainModules.GoVersion(ld), gover.ExplicitModulesTxtImportVersion) < 0) {
+ if ok || (gover.Compare(ld.MainModules.GoVersion(ld), 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 577e8f67769e0e92958ebcb684b3afa124014b64..ea7a45d90bcfb1dade2178e222b85ff52dee75b5 100644
--- a/src/cmd/go/internal/modload/vendor.go
+++ b/src/cmd/go/internal/modload/vendor.go
@@ -159,7 +159,7 @@ func checkVendorConsistency(ld *Loader, indexes []*modFileIndex, modFiles []*mod
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.