about summary refs log tree commit diff
diff options
context:
space:
mode:
authorsterni <sternenseemann@systemli.org>2025-01-21T20·04+0100
committerclbot <clbot@tvl.fyi>2025-01-21T20·19+0000
commit623ebc615fe25691f436eece453735f8788ef708 (patch)
tree3f658e2dbfb1c617529ea530c73c5ec6960a7277
parent9743fbf6b79f3a0afc826a8e881d7d7998482867 (diff)
feat(sterni/acme/plan9port): make my plumbing rules the default r/9123
To avoid the need for two different versions of plan9port in the CI
pipeline, just move the plumbing sanity check into installCheckPhase.
For local iteration you'd have a plumber running anyways, so the short
build time of the plumb derivation isn't really a necessity.

Change-Id: Ib0ba5fa2d8107530fb7d1144cf7395f4f5a3cd12
Reviewed-on: https://cl.tvl.fyi/c/depot/+/13035
Tested-by: BuildkiteCI
Autosubmit: sterni <sternenseemann@systemli.org>
Reviewed-by: sterni <sternenseemann@systemli.org>
-rw-r--r--users/sterni/acme/plan9port/default.nix15
-rw-r--r--users/sterni/acme/plumb/.skip-tree1
-rw-r--r--users/sterni/acme/plumb/default.nix39
3 files changed, 16 insertions, 39 deletions
diff --git a/users/sterni/acme/plan9port/default.nix b/users/sterni/acme/plan9port/default.nix
index 94002f35d79a..e13b19716d15 100644
--- a/users/sterni/acme/plan9port/default.nix
+++ b/users/sterni/acme/plan9port/default.nix
@@ -18,6 +18,9 @@ pkgs.plan9port.overrideAttrs (old: {
   patches = old.patches or [ ] ++ patchesFromDir ./.;
   postPatch = old.postPatch or "" + ''
     ${mkbqnkeyboard'} lib/keyboard
+
+    cp --reflink=auto ${./../plumb}/* plumb/
+    mv plumb/sterni.plumbing plumb/initial.plumbing
   '';
 
   nativeBuildInputs = old.nativeBuildInputs or [ ] ++ [
@@ -31,4 +34,16 @@ pkgs.plan9port.overrideAttrs (old: {
         --set PLAN9 "$out/plan9"
     done
   '';
+
+  doInstallCheck = true;
+  installCheckPhase = old.installCheckPhase or "" + ''
+    export NAMESPACE="$(mktemp -d)"
+    "$out/bin/9" plumber -f &
+    pid="$!"
+    until [[ -e "$NAMESPACE/plumb" ]]; do
+      sleep 0.1
+    done
+    "$out/bin/9" 9p write plumb/rules < ${./../plumb}/sterni.plumbing
+    kill "$pid"
+  '';
 })
diff --git a/users/sterni/acme/plumb/.skip-tree b/users/sterni/acme/plumb/.skip-tree
new file mode 100644
index 000000000000..8b137891791f
--- /dev/null
+++ b/users/sterni/acme/plumb/.skip-tree
@@ -0,0 +1 @@
+
diff --git a/users/sterni/acme/plumb/default.nix b/users/sterni/acme/plumb/default.nix
deleted file mode 100644
index 0477e48e9a03..000000000000
--- a/users/sterni/acme/plumb/default.nix
+++ /dev/null
@@ -1,39 +0,0 @@
-{ pkgs, lib, ... }:
-
-pkgs.stdenvNoCC.mkDerivation {
-  name = "sterni-plumb";
-
-  src = builtins.path {
-    path = ./.;
-    filter = path: _: !(lib.hasSuffix "default.nix" path);
-  };
-
-  dontConfigure = true;
-  dontBuild = true;
-
-  # The write will fail if there's something wrong with the rules,
-  # though it only detects some problems.
-  checkPhase = ''
-    runHook preInstall
-    export NAMESPACE="$(mktemp -d)"
-    9 plumber -f &
-    pid="$!"
-    until [[ -e "$NAMESPACE/plumb" ]]; do
-      sleep 0.1
-    done
-    9 9p write plumb/rules < sterni.plumbing
-    kill "$pid"
-    runHook postInstall
-  '';
-  doCheck = true;
-  checkInputs = [
-    pkgs.plan9port
-  ];
-
-  installPhase = ''
-    runHook preInstall
-    mkdir -p "$out"
-    mv * "$out/"
-    runHook postInstall
-  '';
-}