@@ -42,9 +42,11 @@ in stdenv.mkDerivation (fBuildAttrs // {
4242 inherit name bazelFlags bazelBuildFlags bazelFetchFlags bazelTarget;
4343
4444 deps = stdenv.mkDerivation (fFetchAttrs // {
45− name = "${name}-deps";
45+ name = "${name}-deps.tar.gz";
4646 inherit bazelFlags bazelBuildFlags bazelFetchFlags bazelTarget;
4747
48+ impureEnvVars = lib.fetchers.proxyImpureEnvVars;
49+
4850 nativeBuildInputs = fFetchAttrs.nativeBuildInputs or [] ++ [ bazel ];
4951
5052 preHook = fFetchAttrs.preHook or "" + ''
@@ -120,9 +122,9 @@ in stdenv.mkDerivation (fBuildAttrs // {
120122 ln -sf "$new_target" "$symlink"
121123 done
122124
123− cp -r $bazelOut/external $out
125+ echo '${bazel.name}' > $bazelOut/external/.nix-bazel-version
124126
125− echo '${bazel.name}' > $out/.nix-bazel-version
127+ (cd $bazelOut/ && tar czf $out --sort=name --mtime='@1' --owner=0 --group=0 --numeric-owner external/)
126128
127129 runHook postInstall
128130 '';
@@ -130,7 +132,6 @@ in stdenv.mkDerivation (fBuildAttrs // {
130132 dontFixup = true;
131133 allowedRequisites = [];
132134
133− outputHashMode = "recursive";
134135 outputHashAlgo = "sha256";
135136 outputHash = fetchAttrs.sha256;
136137 });
@@ -146,14 +147,15 @@ in stdenv.mkDerivation (fBuildAttrs // {
146147 preConfigure = ''
147148 mkdir -p "$bazelOut"
148149
149− test "${bazel.name}" = "$(<$deps/.nix-bazel-version)" || {
150+ (cd $bazelOut && tar xfz $deps)
151+
152+ test "${bazel.name}" = "$(<$bazelOut/external/.nix-bazel-version)" || {
150153 echo "fixed output derivation was built for a different bazel version" >&2
151− echo " got: $(<$deps/.nix-bazel-version)" >&2
154+ echo " got: $(<$bazelOut/external/.nix-bazel-version)" >&2
152155 echo "expected: ${bazel.name}" >&2
153156 exit 1
154157 }
155158
156− cp -r $deps $bazelOut/external
157159 chmod -R +w $bazelOut
158160 find $bazelOut -type l | while read symlink; do
159161 ln -sf $(readlink "$symlink" | sed "s,NIX_BUILD_TOP,$NIX_BUILD_TOP,") "$symlink"