bazel-deps: 2019-02-01 -> 2019-07-11, mark as broken

Also drop preInstall cleanup for dependencies. The reason is while it's more
thorough than default cleanup in buildBazelPackage if such a problem happens we
should fix buildBazelPackage instead. Perhaps even move this (awesome!) snippet
there but it's very slow-running so we'd rather attempt to fix it in other
ways.

Anyway after an update at least .deps build, checked with `nix-build -A --check`.
This commit is contained in:
Nikolay Amiantov 2019-07-25 15:56:37 +03:00 committed by Profpatsch
parent 969aec30b6
commit 7b828532b9

View File

@ -2,7 +2,7 @@
buildBazelPackage rec {
name = "bazel-deps-${version}";
version = "2019-02-01";
version = "2019-07-11";
meta = with stdenv.lib; {
homepage = "https://github.com/johnynek/bazel-deps";
@ -10,13 +10,14 @@ buildBazelPackage rec {
license = licenses.mit;
maintainers = [ maintainers.uri-canva ];
platforms = platforms.all;
broken = true; # global variable '_common_attrs_for_plugin_bootstrapping' is referenced before assignment.
};
src = fetchFromGitHub {
owner = "johnynek";
repo = "bazel-deps";
rev = "6585033409e09028852403ec15ec0c77851234be";
sha256 = "0hypf7mcbpx2djqm92k82vn1k6pbnv564xbnazx8nw60f6ns0x87";
rev = "48fdf7f8bcf3aadfa07f9f7e6f0c9f4247cb0f58";
sha256 = "0wpn5anfgq5wfljfhpn8gbgdmgcp0claffjgqcnv5dh70ch7i0gi";
};
bazelTarget = "//src/scala/com/github/johnynek/bazel_deps:parseproject_deploy.jar";
@ -24,49 +25,7 @@ buildBazelPackage rec {
buildInputs = [ git makeWrapper ];
fetchAttrs = {
preInstall = ''
# Remove all built in external workspaces, Bazel will recreate them when building
rm -rf $bazelOut/external/{bazel_tools,\@bazel_tools.marker,embedded_jdk,\@embedded_jdk.marker,local_*,\@local_*}
# For each external workspace, remove all files that aren't referenced by Bazel
# Many of these files are non-hermetic (for example .git/refs/remotes/origin/HEAD)
files_to_delete=()
for workspace in $(find $bazelOut/external -maxdepth 2 -name "WORKSPACE" -print0 | xargs -0L1 dirname); do
workspaceOut="$NIX_BUILD_TOP/workspaces/$(basename workspace)/output"
workspaceUserRoot="$NIX_BUILD_TOP/workspaces/$(basename workspace)/tmp"
rm -rf $workspace/.git
if ! targets_and_files=$(cd "$workspace" && bazel --output_base="$workspaceOut" --output_user_root="$workspaceUserRoot" query '//...:*' 2> /dev/null | sort -u); then
continue
fi
if ! targets=$(cd "$workspace" && bazel --output_base="$workspaceOut" --output_user_root="$workspaceUserRoot" query '//...:all' 2> /dev/null | sort -u); then
continue
fi
mapfile -t referenced_files < <(comm -23 <(printf '%s' "$targets_and_files") <(printf '%s' "$targets") | sed -e 's,^//:,,g' | sed -e 's,^//,,g' | sed -e 's,:,/,g')
referenced_files+=( "WORKSPACE" )
for referenced_file in "''${referenced_files[@]}"; do
# Some of the referenced files are symlinks to non-referenced files.
# The symlink targets have deterministic contents, but non-deterministic
# paths. Copy them to the referenced path, which is deterministic.
if target=$(readlink "$workspace/$referenced_file"); then
rm "$workspace/$referenced_file"
cp -a "$target" "$workspace/$referenced_file"
fi
done
mapfile -t workspace_files_to_delete < <(find "$workspace" -type f -or -type l | sort -u | comm -23 - <(printf "$workspace/%s\n" "''${referenced_files[@]}" | sort -u))
for workspace_file_to_delete in "''${workspace_files_to_delete[@]}"; do
files_to_delete+=("$workspace_file_to_delete")
done
# We're running bazel in many different workspaces in a loop. Letting the
# daemon shut down on its own would leave several daemons alive at the
# same time, using up a lot of memory. Shut them down explicitly instead.
bazel --output_base="$workspaceOut" --output_user_root="$workspaceUserRoot" shutdown 2> /dev/null
done
for file_to_delete in "''${files_to_delete[@]}"; do
rm "$file_to_delete"
done
find . -type d -empty -delete
'';
sha256 = "1yirrzhhrsmbgd27fg709plhrhyi8pzwqv84yg72sd3799kswh9m";
sha256 = "1r5qxsbw2cgww7vcg5psh7404l3jcxpvc0ndgl3k8vj1x8y93nkf";
};
buildAttrs = {