buildGo{Package,Module}: set trimpath in GOFLAGS
Also drop removeReferencesTo `-trimpath` removes all file system paths from the compiled executable, this should improve reproducibility.
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
{ go, cacert, git, lib, removeReferencesTo, stdenv, vend }:
|
||||
{ go, cacert, git, lib, stdenv, vend }:
|
||||
|
||||
{ name ? "${args'.pname}-${args'.version}"
|
||||
, src
|
||||
@@ -43,10 +43,6 @@ with builtins;
|
||||
let
|
||||
args = removeAttrs args' [ "overrideModAttrs" "vendorSha256" "disabled" ];
|
||||
|
||||
removeReferences = [ ] ++ lib.optional (!allowGoReference) go;
|
||||
|
||||
removeExpr = refs: ''remove-references-to ${lib.concatMapStrings (ref: " -t ${ref}") refs}'';
|
||||
|
||||
go-modules = if vendorSha256 != null then go.stdenv.mkDerivation (let modArgs = {
|
||||
|
||||
name = "${name}-go-modules";
|
||||
@@ -121,12 +117,12 @@ let
|
||||
) // overrideModAttrs modArgs) else "";
|
||||
|
||||
package = go.stdenv.mkDerivation (args // {
|
||||
nativeBuildInputs = [ removeReferencesTo go ] ++ nativeBuildInputs;
|
||||
nativeBuildInputs = [ go ] ++ nativeBuildInputs;
|
||||
|
||||
inherit (go) GOOS GOARCH;
|
||||
|
||||
GO111MODULE = "on";
|
||||
GOFLAGS = "-mod=vendor";
|
||||
GOFLAGS = [ "-mod=vendor" ] ++ lib.optionals (!allowGoReference) [ "-trimpath" ];
|
||||
|
||||
configurePhase = args.configurePhase or ''
|
||||
runHook preConfigure
|
||||
@@ -229,10 +225,6 @@ let
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
preFixup = (args.preFixup or "") + ''
|
||||
find $out/{bin,libexec,lib} -type f 2>/dev/null | xargs -r ${removeExpr removeReferences} || true
|
||||
'';
|
||||
|
||||
strictDeps = true;
|
||||
|
||||
disallowedReferences = lib.optional (!allowGoReference) go;
|
||||
|
||||
Reference in New Issue
Block a user