%global forgeurl https://gitlab.freedesktop.org/monado/monado %global date 20231223 %global commit 542fb6a10f7a1d55b7050e4b52717f2e8c9465e7 %global shortcommit %(c=%{commit}; echo ${c:0:7}) %global _description %{expand: Monado is an open source XR runtime delivering immersive experiences such as VR and AR on mobile, PC/desktop, and any other device. Monado aims to be a complete and conforming implementation of the OpenXR API made by Khronos.} Name: monado Version: 21.0.0^%{date}git%{shortcommit} Release: %autorelease Summary: OpenXR runtime License: MIT URL: https://monado.dev/ Source0: %{forgeurl}/-/archive/%{commit}/%{name}-%{commit}.tar.gz BuildRequires: cmake BuildRequires: doxygen BuildRequires: gcc-c++ BuildRequires: glslang BuildRequires: glslc BuildRequires: python3 BuildRequires: sed # Needs packaging: # * Sanitizers - https://github.com/arsenm/sanitizers-cmake # * survive # * kimera_vio # * basalt # * ONNXRuntime # * LeapV2 - not opensource # * depthai BuildRequires: bluez-libs-devel BuildRequires: cjson-devel BuildRequires: dbus-devel BuildRequires: eigen3-devel BuildRequires: ffmpeg-free-devel BuildRequires: gstreamer1-devel BuildRequires: gstreamer1-plugins-base-devel BuildRequires: hidapi-devel BuildRequires: libbsd-devel BuildRequires: libdrm-devel BuildRequires: libEGL-devel BuildRequires: libGL-devel BuildRequires: libjpeg-devel BuildRequires: librealsense-devel BuildRequires: libusb1-devel BuildRequires: libuvc-devel BuildRequires: libv4l-devel BuildRequires: libxcb-devel BuildRequires: libX11-devel BuildRequires: libXrandr-devel BuildRequires: opencv-devel BuildRequires: openhmd-devel BuildRequires: openvr-devel BuildRequires: percetto-devel BuildRequires: SDL2-devel BuildRequires: systemd-devel BuildRequires: vulkan-loader-devel BuildRequires: wayland-devel BuildRequires: wayland-protocols-devel BuildRequires: zlib-devel Requires: openxr Recommends: xr-hardware %description %_description %package streamvr Summary: SteamVR plugin for Monado Requires: %{name} = %{version}-%{release} %description streamvr %_description This package provides a StreamVR plugin for Monado. It enables the use of Monado’s VR hardware drivers with Valve’s SteamVR runtime. %package devel Summary: Development headers and libraries for %{name} Requires: %{name}%{?_isa} = %{version}-%{release} %description devel %_description This package contains development headers and libraries for %{name}. %package doc Summary: Developer documentation for %{name} BuildArch: noarch %description doc %_description This package contains developer documentation for %{name}. %prep %autosetup -n %{name}-%{commit} # Relocate the SteamVR plugin to libexec as it contains binaries sed -i 's:/share:/libexec:' src/xrt/targets/steamvr_drv/CMakeLists.txt %build %cmake -DBUILD_DOC=ON %cmake_build %install %cmake_install install -Ddpm0755 %{buildroot}%{_sysconfdir}/xdg/openxr/1 ln -s ../../../..%{_datadir}/openxr/1/openxr_%{name}.json \ %{buildroot}%{_sysconfdir}/xdg/openxr/1/active_runtime.json %check %ctest %post %systemd_user_post %{name}.service %{name}.socket %preun %systemd_user_preun %{name}.service %{name}.socket %files %license LICENSE %doc README.md %{_bindir}/monado-cli %{_bindir}/monado-ctl %{_bindir}/monado-gui %{_bindir}/monado-service %{_datadir}/openxr/1/openxr_%{name}.json %{_libdir}/libmonado.so %{_libdir}/libopenxr_monado.so %{_userunitdir}/%{name}.service %{_userunitdir}/%{name}.socket # TODO: these should be owned by openxr %dir %{_sysconfdir}/xdg/openxr %dir %{_sysconfdir}/xdg/openxr/1 %config(noreplace) %{_sysconfdir}/xdg/openxr/1/active_runtime.json %files streamvr %{_libexecdir}/steamvr-monado/ %files devel %{_includedir}/%{name}/ %files doc %license LICENSE %doc %{_vpath_builddir}/doc/html %changelog %autochangelog