Subject: Re: [bug#46500] [PATCH] gnu: Add monado

From: Leo Famulari <[email-masked]>
Date: Sat, 20 Feb 2021 18:52:13 -0500

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: [email-masked]: sentences in description should be followed by two spaces; possible infractions at 191, 285
gnu/packages/graphics.scm:1943:0: [email-masked]: parentheses feel lonely, move to the previous or next line
gnu/packages/graphics.scm:1948:0: [email-masked]: parentheses feel lonely, move to the previous or next line
gnu/packages/graphics.scm:1924:16: [email-masked]: 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".