From 623ebc615fe25691f436eece453735f8788ef708 Mon Sep 17 00:00:00 2001 From: sterni Date: Tue, 21 Jan 2025 21:04:40 +0100 Subject: [PATCH] feat(sterni/acme/plan9port): make my plumbing rules the default 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 Reviewed-by: sterni --- users/sterni/acme/plan9port/default.nix | 15 ++++++++++ users/sterni/acme/plumb/.skip-tree | 1 + users/sterni/acme/plumb/default.nix | 39 ------------------------- 3 files changed, 16 insertions(+), 39 deletions(-) create mode 100644 users/sterni/acme/plumb/.skip-tree delete mode 100644 users/sterni/acme/plumb/default.nix diff --git a/users/sterni/acme/plan9port/default.nix b/users/sterni/acme/plan9port/default.nix index 94002f35d..e13b19716 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 000000000..8b1378917 --- /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 0477e48e9..000000000 --- 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 - ''; -}