From 450e4f91169a0c588106b53d89eee988e194c8fe Mon Sep 17 00:00:00 2001 From: Austin Horstman Date: Sun, 7 Jun 2026 18:38:51 -0500 Subject: [PATCH 1/2] yabai: disable parallel building Upstream's Makefile declares clean-build and bin/yabai as independent prerequisites of all/install. With parallel make, clean-build can remove ./bin while clang is linking bin/yabai, causing ld to fail with errno=2. This was hit by Hydra and nix-darwin with -j2/-j3. Upstream's Homebrew HEAD formula also builds from source with make -j1 install, so keep nixpkgs building from source and serialize make. --- pkgs/by-name/ya/yabai/package.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pkgs/by-name/ya/yabai/package.nix b/pkgs/by-name/ya/yabai/package.nix index 0362cb72cf12..d20e3750a533 100644 --- a/pkgs/by-name/ya/yabai/package.nix +++ b/pkgs/by-name/ya/yabai/package.nix @@ -34,7 +34,8 @@ stdenv.mkDerivation (finalAttrs: { apple-sdk_15 ]; - enableParallelBuilding = true; + # Upstream Makefile races clean-build against linking under parallel make. + enableParallelBuilding = false; installPhase = '' runHook preInstall From 3e76a1b13ed20dba86e306c3b8d20a82559bc0ff Mon Sep 17 00:00:00 2001 From: Austin Horstman Date: Sun, 7 Jun 2026 18:48:11 -0500 Subject: [PATCH 2/2] yabai: remove Mach-O UUIDs Darwin ld emits LC_UUID by default. yabai also embeds the scripting-addition payload and loader binaries into the final executable, so UUIDs from those intermediate Mach-O files make rebuilds differ. Pass -Wl,-no_uuid through the existing clang substitution so the main binary and embedded OSAX binaries are deterministic. --- pkgs/by-name/ya/yabai/package.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/by-name/ya/yabai/package.nix b/pkgs/by-name/ya/yabai/package.nix index d20e3750a533..13cf79193ff1 100644 --- a/pkgs/by-name/ya/yabai/package.nix +++ b/pkgs/by-name/ya/yabai/package.nix @@ -65,6 +65,7 @@ stdenv.mkDerivation (finalAttrs: { "-isystem ${lib.getDev cups}/include" "-F$(SDKROOT)/System/Library/Frameworks" "-L$(SDKROOT)/usr/lib" + "-Wl,-no_uuid" ]; in ''