From 83cf8b0cf89b2e3bb6a6ee9869f5cebc50563748 Mon Sep 17 00:00:00 2001 From: "William A. Kennington III" Date: Sat, 29 Aug 2015 12:55:52 -0700 Subject: goPackages: Split into multiple derivations This should reduce the closure size for end users who only need go binaries as well as reduce the size of closures hydra builders consume. --- pkgs/development/go-modules/generic/default.nix | 27 +++++++++++++------------ 1 file changed, 14 insertions(+), 13 deletions(-) (limited to 'pkgs/development/go-modules') diff --git a/pkgs/development/go-modules/generic/default.nix b/pkgs/development/go-modules/generic/default.nix index 7842df6b58f8..de4f0803c34a 100644 --- a/pkgs/development/go-modules/generic/default.nix +++ b/pkgs/development/go-modules/generic/default.nix @@ -129,19 +129,17 @@ go.stdenv.mkDerivation ( runHook preInstall mkdir -p $out - - if [ -z "$dontInstallSrc" ]; then - pushd "$NIX_BUILD_TOP/go" - while read f; do - echo "$f" | grep -q '^./\(src\|pkg/[^/]*\)/${goPackagePath}' || continue - mkdir -p "$(dirname "$out/share/go/$f")" - cp "$NIX_BUILD_TOP/go/$f" "$out/share/go/$f" - done < <(find . -type f) - popd - fi - + pushd "$NIX_BUILD_TOP/go" + while read f; do + echo "$f" | grep -q '^./\(src\|pkg/[^/]*\)/${goPackagePath}' || continue + mkdir -p "$(dirname "$out/share/go/$f")" + cp "$NIX_BUILD_TOP/go/$f" "$out/share/go/$f" + done < <(find . -type f) + popd + + mkdir $bin dir="$NIX_BUILD_TOP/go/bin" - [ -e "$dir" ] && cp -r $dir $out + [ -e "$dir" ] && cp -r $dir $bin runHook postInstall ''; @@ -151,7 +149,7 @@ go.stdenv.mkDerivation ( cat $file ${removeExpr removeReferences} > $file.tmp mv $file.tmp $file chmod +x $file - done < <(find $out/bin -type f 2>/dev/null) + done < <(find $bin/bin -type f 2>/dev/null) ''; disallowedReferences = lib.optional (!allowGoReference) go @@ -161,6 +159,9 @@ go.stdenv.mkDerivation ( enableParallelBuilding = enableParallelBuilding; + # I prefer to call this dev but propagatedBuildInputs expects $out to exist + outputs = [ "out" "bin" ]; + meta = { # Add default meta information platforms = lib.platforms.all; -- cgit 1.4.1