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

Discussion:
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.