From e1a80940a50ef7631d71497f9ff41817098fa092 Mon Sep 17 00:00:00 2001 From: Evils Date: Mon, 22 May 2023 17:43:24 +0200 Subject: [PATCH] kicad: make KICAD7_TEMPLATE_DIR a single path workaround for the upstream issue of not searching a : separated path --- .../science/electronics/kicad/default.nix | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/pkgs/applications/science/electronics/kicad/default.nix b/pkgs/applications/science/electronics/kicad/default.nix index 50628a3e1f01..9b98a8231eb6 100644 --- a/pkgs/applications/science/electronics/kicad/default.nix +++ b/pkgs/applications/science/electronics/kicad/default.nix @@ -24,6 +24,7 @@ , with3d ? true , withI18n ? true , srcs ? { } +, symlinkJoin }: # The `srcs` parameter can be used to override the kicad source code @@ -136,6 +137,17 @@ stdenv.mkDerivation rec { ++ optionals (withScripting) [ python.pkgs.wrapPython ]; + # KICAD7_TEMPLATE_DIR only works with a single path (it does not handle : separated paths) + # but it's used to find both the templates and the symbol/footprint library tables + # https://gitlab.com/kicad/code/kicad/-/issues/14792 + template_dir = symlinkJoin { + name = "KiCad_template_dir"; + paths = with passthru.libraries; [ + "${templates}/share/kicad/template" + "${footprints}/share/kicad/template" + "${symbols}/share/kicad/template" + ]; + }; # We are emulating wrapGAppsHook, along with other variables to the wrapper makeWrapperArgs = with passthru.libraries; [ "--prefix XDG_DATA_DIRS : ${base}/share" @@ -150,9 +162,7 @@ stdenv.mkDerivation rec { "--set-default MOZ_DBUS_REMOTE 1" "--set-default KICAD7_FOOTPRINT_DIR ${footprints}/share/kicad/footprints" "--set-default KICAD7_SYMBOL_DIR ${symbols}/share/kicad/symbols" - "--set-default KICAD7_TEMPLATE_DIR ${templates}/share/kicad/template" - "--prefix KICAD7_TEMPLATE_DIR : ${symbols}/share/kicad/template" - "--prefix KICAD7_TEMPLATE_DIR : ${footprints}/share/kicad/template" + "--set-default KICAD7_TEMPLATE_DIR ${template_dir}" ] ++ optionals (with3d) [