nixpkgs/pkgs/by-name/mo/monado/package.nix
Sefa Eyeoglu ab1436b980
monado: backport cylinder aspect ratio fix
Resolves issues with wayvr
See https://github.com/NixOS/nixpkgs/pull/489154#issuecomment-4018732528

Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2026-03-08 17:42:23 +01:00

176 lines
3.9 KiB
Nix

{
lib,
stdenv,
fetchFromGitLab,
fetchpatch,
writeText,
bluez,
cjson,
cmake,
config,
dbus,
doxygen,
eigen,
elfutils,
glslang,
gst_all_1,
hidapi,
libbsd,
libdrm,
libffi,
libGL,
libjpeg,
librealsense,
libsurvive,
libunwind,
libusb1,
libuv,
libuvc,
libv4l,
libxau,
libxcb,
libxdmcp,
libxext,
libxrandr,
nix-update-script,
onnxruntime,
opencv4,
openvr,
orc,
pcre2,
pkg-config,
python3,
SDL2,
shaderc,
tracy,
udev,
vulkan-headers,
vulkan-loader,
wayland,
wayland-protocols,
wayland-scanner,
zlib,
zstd,
nixosTests,
cudaPackages,
enableCuda ? config.cudaSupport,
# Set as 'false' to build monado without service support, i.e. allow VR
# applications linking against libopenxr_monado.so to use OpenXR standalone
# instead of via the monado-service program. For more information see:
# https://gitlab.freedesktop.org/monado/monado/-/blob/master/doc/targets.md#xrt_feature_service-disabled
serviceSupport ? true,
tracingSupport ? false,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "monado";
version = "25.1.0";
src = fetchFromGitLab {
domain = "gitlab.freedesktop.org";
owner = "monado";
repo = "monado";
tag = "v${finalAttrs.version}";
hash = "sha256-hUSm76PV+FhvzhiYMUbGcNDQMK1TZCPYh1PNADJmdSU=";
};
patches = [
# Resolves issues with wayvr
# See https://github.com/NixOS/nixpkgs/pull/489154#issuecomment-4018732528
(fetchpatch {
name = "monado-cylinder-aspectRatio.patch";
url = "https://gitlab.freedesktop.org/monado/monado/-/commit/69834fe93b84640170f8efa54b4700e5e0dc03c1.diff";
hash = "sha256-6lD4j7CMQk52btfxD8hOm0GWZaOxSgc1jel9hyXqktA=";
})
];
nativeBuildInputs = [
cmake
doxygen
glslang
pkg-config
python3
];
# known disabled drivers/features:
# - DRIVER_DEPTHAI - Needs depthai-core https://github.com/luxonis/depthai-core (See https://github.com/NixOS/nixpkgs/issues/292618)
# - DRIVER_ILLIXR - needs ILLIXR headers https://github.com/ILLIXR/ILLIXR (See https://github.com/NixOS/nixpkgs/issues/292661)
# - DRIVER_ULV2 - Needs proprietary Leapmotion SDK https://api.leapmotion.com/documentation/v2/unity/devguide/Leap_SDK_Overview.html (See https://github.com/NixOS/nixpkgs/issues/292624)
# - DRIVER_ULV5 - Needs proprietary Leapmotion SDK https://api.leapmotion.com/documentation/v2/unity/devguide/Leap_SDK_Overview.html (See https://github.com/NixOS/nixpkgs/issues/292624)
buildInputs = [
bluez
cjson
dbus
eigen
elfutils
gst_all_1.gst-plugins-base
gst_all_1.gstreamer
hidapi
libbsd
libdrm
libffi
libGL
libjpeg
librealsense
libsurvive
libunwind
libusb1
libuv
libuvc
libv4l
libxau
libxcb
libxdmcp
libxext
libxrandr
onnxruntime
opencv4
openvr
orc
pcre2
SDL2
shaderc
udev
vulkan-headers
vulkan-loader
wayland
wayland-protocols
wayland-scanner
zlib
zstd
]
++ lib.optionals tracingSupport [
tracy
]
++ lib.optionals enableCuda [
cudaPackages.cuda_nvcc
cudaPackages.cuda_cudart
];
cmakeFlags = [
(lib.cmakeBool "XRT_FEATURE_SERVICE" serviceSupport)
(lib.cmakeBool "XRT_HAVE_TRACY" tracingSupport)
(lib.cmakeBool "XRT_FEATURE_TRACING" tracingSupport)
(lib.cmakeBool "XRT_OPENXR_INSTALL_ABSOLUTE_RUNTIME_PATH" true)
];
# Help openxr-loader find this runtime
setupHook = writeText "setup-hook" ''
export XDG_CONFIG_DIRS=@out@/etc/xdg''${XDG_CONFIG_DIRS:+:''${XDG_CONFIG_DIRS}}
'';
passthru = {
updateScript = nix-update-script { };
tests.basic-service = nixosTests.monado;
};
meta = {
description = "Open source XR runtime";
homepage = "https://monado.freedesktop.org/";
license = lib.licenses.boost;
maintainers = with lib.maintainers; [ Scrumplex ];
platforms = lib.platforms.linux;
mainProgram = "monado-cli";
};
})