diff mbox series

[bug#46500] gnu: Add monado

Message ID CAJsg1E_Sjf4rfP-Sc_pw+SNau1WC2jhnfdqgOrygrADg-_8JbQ@mail.gmail.com
State Accepted
Headers show
Series [bug#46500] gnu: Add monado | expand

Checks

Context Check Description
cbaines/applying patch fail View Laminar job
cbaines/issue success View issue

Commit Message

Andy Tai Feb. 14, 2021, 2:12 a.m. UTC
* gnu/packages/graphics.scm (monado): New variable
---
 gnu/packages/graphics.scm | 46 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 46 insertions(+)

+    (license (license:x11-style
"https://gitlab.freedesktop.org/monado/monado/-/blob/master/LICENSE"))))
+

Comments

Leo Famulari Feb. 20, 2021, 11:52 p.m. UTC | #1
On Sat, Feb 13, 2021 at 06:12:01PM -0800, Andy Tai wrote:
> * gnu/packages/graphics.scm (monado): New variable

Thanks for the patch!

You had asked in #46666 about how to make the review process go more
quickly. We definitely aim for it to be fast and efficient for
contributors, but there are a lot of patches (good!) and reviewers can
get tired. When that happens to me, I start to focus my reviewing energy
on patches that I think will be easy, which means ready-to-push, or on
patches for things I find interesting. I think that's human nature. It
would be better if patches were reviewed more systematically.

My goal when reviewing is to push contributions to guix.git and close
patch tickets.

The linter found a couple issues:

------
$ guix environment guix -- ./pre-inst-env guix lint monado
gnu/packages/graphics.scm:1953:5: monado@21.0.0: sentences in description should be followed by two spaces; possible infractions at 191, 285
gnu/packages/graphics.scm:1943:0: monado@21.0.0: parentheses feel lonely, move to the previous or next line
gnu/packages/graphics.scm:1948:0: monado@21.0.0: parentheses feel lonely, move to the previous or next line
gnu/packages/graphics.scm:1924:16: monado@21.0.0: source not archived on Software Heritage
------

I noticed the parentheses thing before linting, and some extra blank
lines before and after the new package, too. These problems are
effectively cosmetic but, when I see them, I guess that there might be
some other problems that can't be caught with a simple linter, and I get
discouraged from putting more effort into it. So, definitely run the
linter. Don't hesitate to ask for help if you don't understand how to
use it or what it says.

I applied the patch on the current master branch and built it. It fails
in the install phase like this:

------
starting phase `install'
[1/14] Generating u_git_tag.c with a custom command.
[2/6] Generating driver_resources_copy with a custom command.
DIRECTORY ../monado-v21.0.0/src/xrt/targets/steamvr_drv/resources /tmp/guix-build-monado-21.0.0.drv-0/build/steamvr-monado/resources
Copying asset ../monado-v21.0.0/src/xrt/targets/steamvr_drv/resources to /tmp/guix-build-monado-21.0.0.drv-0/build/steamvr-monado/resources
[3/6] Generating driver_manifest_copy with a custom command.
FILE ../monado-v21.0.0/src/xrt/targets/steamvr_drv/driver.vrdrivermanifest /tmp/guix-build-monado-21.0.0.drv-0/build/steamvr-monado/driver.vrdrivermanifest
Copying asset ../monado-v21.0.0/src/xrt/targets/steamvr_drv/driver.vrdrivermanifest to /tmp/guix-build-monado-21.0.0.drv-0/build/steamvr-monado/driver.vrdrivermanifest
[4/6] Generating driver_input_profiles_generate with a custom command.
[5/6] Generating plugin_copy with a custom command.
Copying plugin src/xrt/targets/steamvr_drv/driver_monado.so to /tmp/guix-build-monado-21.0.0.drv-0/build/steamvr-monado/bin/linux64/driver_monado.so
[5/6] Installing files.
+ sysconfdir=/etc
+ manifest=/gnu/store/9598lvcgad60xfid8qxpm0w4p8g9ldr6-monado-21.0.0/share/openxr/1/openxr_monado.json
+ xrversion=1
+ runtime_path=/etc/xdg/openxr/1/active_runtime.json
+ mkdir -p /etc/xdg/openxr/1
mkdir: cannot create directory ‘/etc/xdg’: Permission denied
[...]
------

Can you look into that?

> +    (synopsis "The open source OpenXR runtime")
> +    (description
> +     "Monado is an open source XR runtime delivering immersive
> experiences such as VR
> +and AR on mobile, PC/desktop, and any other device(because gosh darn peoplecome
> +up with a lot of weird hardware). Monado aims to be a complete and conforming
> +implementation of the OpenXR API made by Khronos. The project
> currently is being
> +developed for GNU/Linux and aims to support other operating systems in the near
> +future.")

Guix only includes free software so we usually don't describe packages
as "open source" or "free software". I appreciate the colloquial
language in the parentheses but I would remove it.

We actually have a style guide in the manual:

https://guix.gnu.org/manual/en/html_node/Synopses-and-Descriptions.html

> +    (license (license:x11-style
> "https://gitlab.freedesktop.org/monado/monado/-/blob/master/LICENSE"))))

This looks like the "Boost Software License".
diff mbox series

Patch

diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm
index 7cb4aecec2..5b8621c390 100644
--- a/gnu/packages/graphics.scm
+++ b/gnu/packages/graphics.scm
@@ -24,6 +24,7 @@ 
 ;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;; Copyright © 2020 Gabriel Arazas <foo.dogsquared@gmail.com>
 ;;; Copyright © 2021 Antoine Côté <antoine.cote@posteo.net>
+;;; Copyright © 2021 Andy Tai <atai@atai.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -74,6 +75,7 @@ 
   #:use-module (gnu packages imagemagick)
   #:use-module (gnu packages jemalloc)
   #:use-module (gnu packages kde-frameworks)
+  #:use-module (gnu packages libusb)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages lua)
   #:use-module (gnu packages maths)
@@ -97,6 +99,7 @@ 
   #:use-module (gnu packages tbb)
   #:use-module (gnu packages upnp)
   #:use-module (gnu packages video)
+  #:use-module (gnu packages vulkan)
   #:use-module (gnu packages xiph)
   #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg)
@@ -1914,3 +1917,46 @@  Some feature highlights:
 @item Automatic port forwarding with UPnP
 @end itemize\n")
       (license license:gpl3+))))
+
+
+(define-public monado
+  (package
+    (name "monado")
+    (version "21.0.0")
+        (source (origin
+              (method url-fetch)
+              (uri (string-append "https://gitlab.freedesktop.org/" name "/"
+                                  name "/-/archive/v" version "/"
+                                  name "-v" version ".tar.bz2"))
+              (sha256
+               (base32
+                "0n04k7a8b0i8ga0kbzh7qxmvni1ijawgk98s83519vxg4d0yyjbq"))))
+    (build-system meson-build-system)
+    (inputs
+      `(("ffmpeg" ,ffmpeg)
+        ("glslang" ,glslang)
+        ("libudev" ,eudev)
+        ("libusb" ,libusb)
+        ("libxcb" ,libxcb)
+        ("libxrandr" ,libxrandr)
+        ("opengl" ,mesa)
+        ("v4l" ,v4l-utils)
+        ("vulkan-loader" ,vulkan-loader)
+        ))
+    (native-inputs
+     `(("eigen" ,eigen)
+       ("pkg-config" ,pkg-config)
+       ("vulkan-headers" ,vulkan-headers)
+        ))
+
+    (home-page "https://monado.freedesktop.org/")
+    (synopsis "The open source OpenXR runtime")
+    (description
+     "Monado is an open source XR runtime delivering immersive
experiences such as VR
+and AR on mobile, PC/desktop, and any other device(because gosh darn peoplecome
+up with a lot of weird hardware). Monado aims to be a complete and conforming
+implementation of the OpenXR API made by Khronos. The project
currently is being
+developed for GNU/Linux and aims to support other operating systems in the near
+future.")