Change:
<ins> { lib, stdenv, fetchFromGitLab, cmake, libGLU, libGL, zlib, wxGTK , libX11, gettext, glew, glm, cairo, curl, openssl, boost, pkgconfig , doxygen, pcre, libpthreadstubs, libXdmcp, fetchpatch, lndir, callPackages , pname ? "kicad" , stable ? true , baseName ? "kicad" , versions ? { } , oceSupport ? false, opencascade , withOCCT ? true, opencascade-occt , ngspiceSupport ? true, libngspice , scriptingSupport ? true, swig, python, pythonPackages, wxPython , debug ? false, valgrind , withI18n ? true }: assert ngspiceSupport -> libngspice != null; with lib; let versionConfig = versions.${baseName}; baseVersion = "${versions.${baseName}.kicadVersion.version}"; # oce on aarch64 fails a test withOCE = oceSupport && !stdenv.isAarch64; withOCC = (withOCCT && !withOCE) || (oceSupport && stdenv.isAarch64); kicad-libraries = callPackages ./libraries.nix versionConfig.libVersion; in stdenv.mkDerivation rec { inherit pname; version = "base-${baseVersion}"; src = fetchFromGitLab ( { group = "kicad"; owner = "code"; repo = "kicad"; rev = baseVersion; } // versionConfig.kicadVersion.src ); # quick fix for #72248 # should be removed if a a more permanent fix is published patches = [ ( fetchpatch { url = "https://github.com/johnbeard/kicad/commit/dfb1318a3989e3d6f9f2ac33c924ca5030ea273b.patch"; sha256 = "00ifd3fas8lid8svzh1w67xc8kyx89qidp7gm633r014j3kjkgcd"; } ) ]; # tagged releases don't have "unknown" # kicad nightlies use git describe --dirty # nix removes .git, so its approximated here postPatch = '' substituteInPlace CMakeModules/KiCadVersion.cmake  --replace "unknown" ${builtins.substring 0 10 src.rev} ''; makeFlags = optional (debug) [ "CFLAGS+=-Og" "CFLAGS+=-ggdb" ]; cmakeFlags = optionals (scriptingSupport) [ "-DKICAD_SCRIPTING=ON" "-DKICAD_SCRIPTING_MODULES=ON" "-DKICAD_SCRIPTING_PYTHON3=ON" "-DKICAD_SCRIPTING_WXPYTHON_PHOENIX=ON" ] ++ optional (!scriptingSupport) "-DKICAD_SCRIPTING=OFF" ++ optional (ngspiceSupport) "-DKICAD_SPICE=ON" ++ optional (!withOCE) "-DKICAD_USE_OCE=OFF" ++ optional (!withOCC) "-DKICAD_USE_OCC=OFF" ++ optionals (withOCE) [ "-DKICAD_USE_OCE=ON" "-DOCE_DIR=${opencascade}" ] ++ optionals (withOCC) [ "-DKICAD_USE_OCC=ON" "-DOCC_INCLUDE_DIR=${opencascade-occt}/include/opencascade" ] ++ optionals (debug) [ "-DCMAKE_BUILD_TYPE=Debug" "-DKICAD_STDLIB_DEBUG=ON" "-DKICAD_USE_VALGRIND=ON" ] ; nativeBuildInputs = [ cmake doxygen pkgconfig lndir ]; buildInputs = [ libGLU libGL zlib libX11 wxGTK pcre libXdmcp gettext glew glm libpthreadstubs cairo curl openssl boost ] ++ optionals (scriptingSupport) [ swig python wxPython ] ++ optional (ngspiceSupport) libngspice ++ optional (withOCE) opencascade ++ optional (withOCC) opencascade-occt ++ optional (debug) valgrind ; # debug builds fail all but the python test # 5.1.x fails the eeschema test doInstallCheck = !debug && !stable; installCheckTarget = "test"; dontStrip = debug; postInstall = optional (withI18n) '' mkdir -p $out/share lndir ${kicad-libraries.i18n}/share $out/share ''; meta = { description = "Just the built source without the libraries"; longDescription = '' Just the build products, optionally with the i18n linked in the libraries are passed via an env var in the wrapper, default.nix ''; homepage = "https://www.kicad-pcb.org/"; license = licenses.agpl3; maintainers = with maintainers; [ evils kiwi berce ]; platforms = with platforms; linux; }; } </ins>

Discussion:
Describe the bug As originally reported by on IRC: Kicad's pcbnew segfaults without indication of reason, when searching for a footprint. To Reproduce Steps to reproduce the behaviour: -Footprint -click in the workspace -search for "dip 14" (this term seems very reliable in inducing the issue, but is not guaranteed to work every time) a segmentation fault. Expected behaviour Search should return a list of footprints matching the term, with a preview of the top result. Additional context on IRC was unable to reproduce the issue on the same package (same hash) Metadata Maintainer information: i am unsure what to fill in here CC though they seem inactive, they're listed as the maintainer Things tried Fix all the warnings that occurred between starting pcbnew and the segmentation fault Use python3 Tried wxGTK31 (introduced another issue but didn't solve this one) Added a debug build option and had a look at it with all . I also tried kicad from nix on debian, this fails as well, but immediately on starting pcbnew, with a bunch of fontconfig warnings and errors followed by and segmentation fault, this is probably a separate issue. And i asked on IRC #kicad, someone else reported having this issue on debian10 when using xfwm. (i use )
I have (at this time) only one thing to add. If you manage to place a footprint successfully, either by not searching and instead scrolling through the list to the one you want, or if it happens to be a rare time it doesn't crash while searching; I don't think I've had any experiences where it did not crash on the next action, give or take. I'm quite confident I've never been able to place 2. If I have I wasn't able to save before it did crash, that's for sure :<
I've submitted a . I'm not sure this will fix your issue, but might be worth giving it a shot.
thanks for letting me know it unfortunately does not fix this issue

I'm trying to add some 3D models to my footprints, but they do not show up in the 3D viewer. I've tried a custom model as well as the ones installed with KiCAD. I don't see any messages on stdout or stderr other than: the footprint editor a footprint that has an associated model that the 3D model doesn't render
I'm also seeing this. It appears the issue is that 3D model importation is implemented via plugins which are shared libraries. These are found in . However, the code which searches for these plugins () makes assumptions which don't hold for NixOS. Thus, the search attempt fails, as shown by strace: A temporary workaround is as follows, which uses the user-local search path: This hack will need fixing whenever kicad is updated, of course. cc
This had been fixed in 5.1.0: We should close this issue after having updated the package and tested.
This should work now with the new package. Edit: see PR .
you may need to so it'll update the paths there on the next start (or do so manually)