From 0cf272590d23434f9e96693755b9342ba84f4c5e Mon Sep 17 00:00:00 2001 From: Bobbe Date: Thu, 18 Jun 2026 16:52:59 +0200 Subject: [PATCH] klipper-firmware: build bossac flash binary conditionally --- pkgs/servers/klipper/klipper-firmware.nix | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/pkgs/servers/klipper/klipper-firmware.nix b/pkgs/servers/klipper/klipper-firmware.nix index 6ab6beac9ac3..67c0fc842631 100644 --- a/pkgs/servers/klipper/klipper-firmware.nix +++ b/pkgs/servers/klipper/klipper-firmware.nix @@ -20,11 +20,16 @@ args@{ # are used by flash scripts # find those with `rg '\[\"lib'` inside of klipper repo let + needsBossac = + let + lines = lib.strings.splitString "\n" (builtins.readFile firmwareConfig); + in + builtins.any (line: builtins.match "[^#\r\n]*CONFIG_MACH_ATSAMD?=y.*" line != null) lines; flashBinaries = [ - "lib/bossac/bin/bossac" "lib/hidflash/hid-flash" "lib/rp2040_flash/rp2040_flash" - ]; + ] + ++ lib.optional needsBossac "lib/bossac/bin/bossac"; in stdenv.mkDerivation { pname = "klipper-firmware-${mcu}"; @@ -41,8 +46,8 @@ stdenv.mkDerivation { avrdude stm32flash pkg-config - wxwidgets_3_2 # Required for bossac - ]; + ] + ++ lib.optional needsBossac wxwidgets_3_2; configurePhase = '' cp ${firmwareConfig} ./.config