about summary refs log tree commit diff
path: root/nixpkgs/pkgs/build-support/go/module.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/build-support/go/module.nix')
-rw-r--r--nixpkgs/pkgs/build-support/go/module.nix6
1 files changed, 6 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/build-support/go/module.nix b/nixpkgs/pkgs/build-support/go/module.nix
index b79d4a008466..53287c7182ba 100644
--- a/nixpkgs/pkgs/build-support/go/module.nix
+++ b/nixpkgs/pkgs/build-support/go/module.nix
@@ -41,6 +41,8 @@ let
       # Not needed with buildGoModule
     , goPackagePath ? ""
 
+    , ldflags ? [ ]
+
       # needed for buildFlags{,Array} warning
     , buildFlags ? ""
     , buildFlagsArray ? ""
@@ -156,6 +158,9 @@ let
         GOFLAGS = lib.optionals (!proxyVendor) [ "-mod=vendor" ] ++ lib.optionals (!allowGoReference) [ "-trimpath" ];
         inherit CGO_ENABLED enableParallelBuilding GO111MODULE GOTOOLCHAIN;
 
+        # If not set to an explicit value, set the buildid empty for reproducibility.
+        ldflags = ldflags ++ lib.optionals (!lib.any (lib.hasPrefix "-buildid=") ldflags) [ "-buildid=" ];
+
         configurePhase = args.configurePhase or (''
           runHook preConfigure
 
@@ -305,6 +310,7 @@ let
     lib.warnIf (args' ? vendorSha256) "`vendorSha256` is deprecated. Use `vendorHash` instead"
     lib.warnIf (buildFlags != "" || buildFlagsArray != "")
       "Use the `ldflags` and/or `tags` attributes instead of `buildFlags`/`buildFlagsArray`"
+    lib.warnIf (builtins.elem "-buildid=" ldflags) "`-buildid=` is set by default as ldflag by buildGoModule"
       package;
 in
   buildGoPackage