summary refs log tree commit diff
diff options
context:
space:
mode:
authorAustin Seipp <aseipp@pobox.com>2023-08-13 23:19:01 -0500
committerAustin Seipp <aseipp@pobox.com>2023-08-14 00:24:09 -0500
commit6e287913f7b1ef537c97aa301b67c34ea46b640f (patch)
tree57bd8d22313e9ff78e3f9bafc8cb77545cb28102
parente85b6933d543dc98a5f80525150ed048209f5e73 (diff)
downloadnixpkgs-6e287913f7b1ef537c97aa301b67c34ea46b640f.tar
nixpkgs-6e287913f7b1ef537c97aa301b67c34ea46b640f.tar.gz
nixpkgs-6e287913f7b1ef537c97aa301b67c34ea46b640f.tar.bz2
nixpkgs-6e287913f7b1ef537c97aa301b67c34ea46b640f.tar.lz
nixpkgs-6e287913f7b1ef537c97aa301b67c34ea46b640f.tar.xz
nixpkgs-6e287913f7b1ef537c97aa301b67c34ea46b640f.tar.zst
nixpkgs-6e287913f7b1ef537c97aa301b67c34ea46b640f.zip
buck2: include prelude source in .prelude passthru
Signed-off-by: Austin Seipp <aseipp@pobox.com>
-rw-r--r--pkgs/development/tools/build-managers/buck2/default.nix15
-rw-r--r--pkgs/development/tools/build-managers/buck2/hashes.json1
-rwxr-xr-xpkgs/development/tools/build-managers/buck2/update.sh15
3 files changed, 29 insertions, 2 deletions
diff --git a/pkgs/development/tools/build-managers/buck2/default.nix b/pkgs/development/tools/build-managers/buck2/default.nix
index 6becdfc280d..17637f69790 100644
--- a/pkgs/development/tools/build-managers/buck2/default.nix
+++ b/pkgs/development/tools/build-managers/buck2/default.nix
@@ -30,13 +30,24 @@ let
     aarch64-linux  = "aarch64-unknown-linux-musl";
   }."${stdenv.hostPlatform.system}" or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
 
+  allHashes = builtins.fromJSON (builtins.readFile ./hashes.json);
+
+  # our version of buck2; this should be a git tag
   buck2-version = "2023-08-01";
   src =
     let
-      allHashes = builtins.fromJSON (builtins.readFile ./hashes.json);
       hash = allHashes."${stdenv.hostPlatform.system}";
       url = "https://github.com/facebook/buck2/releases/download/${buck2-version}/buck2-${suffix}.zst";
     in fetchurl { inherit url hash; };
+
+  # compatible version of buck2 prelude; a git revision in the buck2-prelude repository
+  buck2-prelude = "acf49faaa61fd6ad9facd9e1418eed514bbb2ec8";
+  prelude-src =
+    let
+      hash = allHashes."_prelude";
+      url = "https://github.com/facebook/buck2-prelude/archive/${buck2-prelude}.tar.gz";
+    in fetchurl { inherit url hash; };
+
 in
 stdenv.mkDerivation rec {
   pname = "buck2";
@@ -58,6 +69,8 @@ stdenv.mkDerivation rec {
   '';
 
   passthru = {
+    prelude = prelude-src;
+
     updateScript = ./update.sh;
     tests = testers.testVersion {
       package = buck2;
diff --git a/pkgs/development/tools/build-managers/buck2/hashes.json b/pkgs/development/tools/build-managers/buck2/hashes.json
index 69a7a0f72f3..b4b1c3f73d4 100644
--- a/pkgs/development/tools/build-managers/buck2/hashes.json
+++ b/pkgs/development/tools/build-managers/buck2/hashes.json
@@ -1,4 +1,5 @@
 { "_comment": "@generated by pkgs/development/tools/build-managers/buck2/update.sh"
+, "_prelude": "sha256-SkCsVymQL/i8tUvKoLVtOQRYRm3zuF+WOFnbCggQwes="
 , "x86_64-linux": "sha256-wZULK2FPZ4GtQ5MMQmgfmtbMHJ7sPbue2RdVY0dmRuE="
 , "x86_64-darwin": "sha256-FmayArw2gswKjAEv0AzpFZNiXNx3GmJnPwH9g+Y/BGU="
 , "aarch64-linux": "sha256-3M1dRIFU0CwoVCbmq3oghhz51wW37melzt9hdIHqzzY="
diff --git a/pkgs/development/tools/build-managers/buck2/update.sh b/pkgs/development/tools/build-managers/buck2/update.sh
index c10774c15ec..8e142dd1c97 100755
--- a/pkgs/development/tools/build-managers/buck2/update.sh
+++ b/pkgs/development/tools/build-managers/buck2/update.sh
@@ -9,7 +9,11 @@ VERSION=$(curl -s https://api.github.com/repos/facebook/buck2/releases \
              (select ((.prerelease == true) and (.name != "latest"))) |
              first
            ) | .name')
+PRELUDE_HASH=$(curl -sLo - "https://github.com/facebook/buck2/releases/download/${VERSION}/prelude_hash")
+PRELUDE_DL_URL="https://github.com/facebook/buck2-prelude/archive/${PRELUDE_HASH}.tar.gz"
+
 echo "Latest buck2 prerelease: $VERSION"
+echo "Compatible buck2-prelude hash: $PRELUDE_HASH"
 
 ARCHS=(
     "x86_64-linux:x86_64-unknown-linux-musl"
@@ -22,7 +26,12 @@ NFILE=pkgs/development/tools/build-managers/buck2/default.nix
 HFILE=pkgs/development/tools/build-managers/buck2/hashes.json
 rm -f "$HFILE" && touch "$HFILE"
 
+PRELUDE_SHA256HASH="$(nix-prefetch-url --type sha256 "$PRELUDE_DL_URL")"
+PRELUDE_SRIHASH="$(nix hash to-sri --type sha256 "$PRELUDE_SHA256HASH")"
+
 printf "{ \"_comment\": \"@generated by pkgs/development/tools/build-managers/buck2/update.sh\"\n" >> "$HFILE"
+printf ", \"_prelude\": \"$PRELUDE_SRIHASH\"\n" >> "$HFILE"
+
 for arch in "${ARCHS[@]}"; do
     IFS=: read -r arch_name arch_target <<< "$arch"
     sha256hash="$(nix-prefetch-url --type sha256 "https://github.com/facebook/buck2/releases/download/${VERSION}/buck2-${arch_target}.zst")"
@@ -35,4 +44,8 @@ sed -i \
   's/buck2-version\s*=\s*".*";/buck2-version = "'"$VERSION"'";/' \
   "$NFILE"
 
-echo "Done; wrote $HFILE and updated version"
+sed -i \
+  's/buck2-prelude\s*=\s*".*";/buck2-prelude = "'"$PRELUDE_HASH"'";/' \
+  "$NFILE"
+
+echo "Done; wrote $HFILE and updated version in $NFILE."