Change:
Problem. On , attempting to install (; ) yields: Forked monado code (against latest/bleeding edge commit) yields a more informative compilation error. I forked monado in , and slightly altered this nix expression to get it to compile. The relevant files: The compilation error then becomes more subtantial/informative: [ 89%] Building C object [ 89%] Building C object [ 89%] Linking CXX static library libstprober.a [ 89%] Built target stprober [ 90%] Linking CXX static library libdrvpsmv.a /build/monado/src/xrt/drivers/survive/survivedriver.c: In function 'processbuttonevent': /build/monado/src/xrt/drivers/survive/survivedriver.c:623:51: error: 'const struct SurviveSimpleButtonEvent' has no member named 'time' 623 | timepointns ts = survivetimecodetomonotonic(e-time); | ^~ /build/monado/src/xrt/drivers/survive/survivedriver.c: At top level: /build/monado/src/xrt/drivers/survive/survivedriver.c:728:52: warning: 'struct SurviveSimpleConfigEvent' declared inside parameter list will not be visible outside of this definition or declaration 728 | adddevice(struct survivesystem ss, const struct SurviveSimpleConfigEvent e); | ^~ /build/monado/src/xrt/drivers/survive/survivedriver.c: In function 'processposeevent': /build/monado/src/xrt/drivers/survive/survivedriver.c:733:21: error: invalid use of undefined type 'const struct SurviveSimplePoseUpdatedEvent' 733 | posetorelation(&e-pose, &e-velocity, &survive-lastrelation); | ^~ /build/monado/src/xrt/drivers/survive/survivedriver.c:733:31: error: invalid use of undefined type 'const struct SurviveSimplePoseUpdatedEvent' 733 | posetorelation(&e-pose, &e-velocity, &survive-lastrelation); | ^~ /build/monado/src/xrt/drivers/survive/survivedriver.c:734:61: error: invalid use of undefined type 'const struct SurviveSimplePoseUpdatedEvent' 734 | survive-lastrelationts = survivetimecodetomonotonic(e-time); | ^~ /build/monado/src/xrt/drivers/survive/survivedriver.c: In function 'processevent': /build/monado/src/xrt/drivers/survive/survivedriver.c:760:7: error: 'SurviveSimpleEventTypeConfigEvent' undeclared (first use in this function); did you mean 'SurviveSimpleEventTypeButtonEvent'? 760 | case SurviveSimpleEventTypeConfigEvent: { | ^^ /build/monado/src/xrt/drivers/survive/survivedriver.c:768:7: error: 'SurviveSimpleEventTypePoseUpdateEvent' undeclared (first use in this function); did you mean 'SurviveSimpleEventTypeButtonEvent'? 768 | case SurviveSimpleEventTypePoseUpdateEvent: { | ^~ | SurviveSimpleEventTypeButtonEvent /build/monado/src/xrt/drivers/survive/survivedriver.c:769:51: error: implicit declaration of function 'survivesimplegetposeupdatedevent'; did you mean 'survivesimplegetbuttonevent'? [8;;;;] 769 | const struct SurviveSimplePoseUpdatedEvent e = survivesimplegetposeupdatedevent(event); | ^ | survivesimplegetbuttonevent /build/monado/src/xrt/drivers/survive/survivedriver.c:769:51: error: initialization of 'const struct SurviveSimplePoseUpdatedEvent ' from 'int' makes pointer from integer without a cast [8;;;;] /build/monado/src/xrt/drivers/survive/survivedriver.c:771:67: error: invalid use of undefined type 'const struct SurviveSimplePoseUpdatedEvent' 771 | struct survivedevice eventdevice = getdevicebyobject(ss, e-object); | ^~ /build/monado/src/xrt/drivers/survive/survivedriver.c:777:37: error: passing argument 2 of 'processposeevent' from incompatible pointer type [8;;;;] 777 | processposeevent(eventdevice, e); | ^ | const struct SurviveSimplePoseUpdatedEvent /build/monado/src/xrt/drivers/survive/survivedriver.c:731:97: note: expected 'const struct SurviveSimplePoseUpdatedEvent ' but argument is of type 'const struct SurviveSimplePoseUpdatedEvent ' 731 | processposeevent(struct survivedevice survive, const struct SurviveSimplePoseUpdatedEvent e) | /build/monado/src/xrt/drivers/survive/survivedriver.c:1157:1: error: conflicting types for 'adddevice' 1157 | adddevice(struct survivesystem ss, const struct SurviveSimpleConfigEvent e) | ^ /build/monado/src/xrt/drivers/survive/survivedriver.c: In function 'adddevice': /build/monado/src/xrt/drivers/survive/survivedriver.c:1159:37: error: invalid use of undefined type 'const struct SurviveSimpleConfigEvent' 1159 | struct SurviveSimpleObject sso = e-object; | ^~ /build/monado/src/xrt/drivers/survive/survivedriver.c:1165:27: error: implicit declaration of function 'survivesimplejsonconfig'; did you mean 'survivesimpleisrunning'? [8;;;;] 1165 | char confstr = (char )survivesimplejsonconfig(sso); | ^~ | survivesimpleisrunning /build/monado/src/xrt/drivers/survive/survivedriver.c:1165:19: warning: cast to pointer from integer of different size [8;;;;] 1165 | char confstr = (char )survivesimplejsonconfig(sso); | ^ [ 90%] Built target drvpsmv /build/monado/src/xrt/drivers/survive/survivedriver.c: In function 'addconnecteddevices': /build/monado/src/xrt/drivers/survive/survivedriver.c:1230:28: error: 'SurviveSimpleEventTypeConfigEvent' undeclared (first use in this function); did you mean 'SurviveSimpleEventTypeButtonEvent'? 1230 | if (event.eventtype == SurviveSimpleEventTypeConfigEvent) { | ^~ | survivesimplewaitforupdate /build/monado/src/xrt/drivers/survive/survivedriver.c: In function 'survivedeviceautoprobe': /build/monado/src/xrt/drivers/survive/survivedriver.c:1376:7: warning: variable 'foundcontrollers' set but not used [8;;;;] 1376 | bool foundcontrollers = false; | ^ /build/monado/src/xrt/drivers/survive/survivedriver.c:1157:1: warning: 'adddevice' defined but not used [8;;;;] 1157 | adddevice(struct survivesystem ss, const struct SurviveSimpleConfigEvent e) | ^~~~ cc1: some warnings being treated as errors make[2]: [ ] Error 1 make[1]: [CMakeFiles/Makefile2:1397: ] Error 2 make[1]: Waiting for unfinished jobs.... [ 90%] Linking CXX static library libdrvvive.a [ 90%] Built target drvvive [ 90%] Linking CXX static library libdrveuroc.a [ 90%] Built target drveuroc [ 91%] Linking CXX static library libstgui.a [ 91%] Built target stgui make: * [Makefile:149: all] Error 2 builder for '/nix/store/7al08y308l1p8nm9svgyl455bnhg90c2-monado-' failed with exit code 2 error: build of '/nix/store/7al08y308l1p8nm9svgyl455bnhg90c2-monado-' failed This first error is also reproduced if we download the monado source pinned at v21, and run it against the nix expressions linked to above: Maintainers. Metadata. $ nix-shell -p nix-info --run "nix-info -m" system: host os: multi-user?: sandbox: version: channels(george): channels(root): nixpkgs:
Not sure why you pinged me but this looks like an error which could be caused by a library or gcc update.
Looks like it was fixed in April, but there's been no release since then. The recent vulkan headers bump must have done this.
PR with the proposed fix in

Discussion:
{ lib , stdenv , fetchFromGitLab <ins> , fetchpatch </ins> , writeText , cmake , doxygen

sha256 = "07zxs96i3prjqww1f68496cl2xxqaidx32lpfyy0pn5am4c297zc"; }; <ins> patches = [ # https://github.com/NixOS/nixpkgs/issues/137245 # Fix warning after Vulkan 1.2.174 VK_NULL_HANDLE change (fetchpatch { url = "https://gitlab.freedesktop.org/monado/monado/-/commit/c47775a95d8e139a2f234063793eb6726f830510.patch"; sha256 = "093ymvi9ifpk4vyjcwhhci9cnscxwbv5f80xdbppcqa0j92nmkmp"; }) ]; </ins> nativeBuildInputs = [ cmake doxygen