Subject: Re: [bug#41759] [PATCH] gnu: Add v4l2loopback-linux-module.

From: Tobias Geerinckx-Rice <[email-masked]>
Date: Mon, 08 Jun 2020 10:37:41 +0200

Morgan,

[email-masked] 写道：
> +  (package
> +    (name "v4l2loopback-linux-module")
> +    (version "0.12.5")
> +    (source (origin
> +              (method git-fetch)
> +              (uri (git-reference
> +                    (url 
> "https://github.com/umlaeute/v4l2loopback.git")
> +                    (commit (string-append "v" version))))
> +              (file-name (git-file-name name version))
> +              (sha256
> +               (base32
> + 
> "1qi4l6yam8nrlmc3zwkrz9vph0xsj1cgmkqci4652mbpbzigg7vn"))))
> +    (build-system linux-module-build-system)
> +    (arguments
> +     `(#:phases
> +       (modify-phases %standard-phases
> +         (replace 'check
> +           (lambda _
> +             (invoke "make"
> +                     "--directory=./tests"
> +                     (string-append "CC=" 
> ,(cc-for-target))))))))

This only builds the ‘test_dqbuf’ executable, but doesn't run it. 
Trying to fails with:

  usage: tests/test_dqbuf <videodevice>

i.e. it needs the kernel module to be loaded as we discussed on 
IRC.  That's the norm for kernel drivers.  For obvious reasons, 
loading them in the build environment isn't an option.

(Computers are magic and one could virtualise a kernel, similar to 
what we do with Xvfb for X11 tests, but it would work only for 
drivers that don't require any hardware and excuse me the word 
‘overkill’ is knocking at the door.)

> +    (home-page "https://github.com/umlaeute/v4l2loopback")
> +    (synopsis "Linux kernel module that allows you to create 
> \"virtual video devices\"")

Life hack: s/that allows you//

> +    (description "This module allows you to create \"virtual 
> video devices\"
> +normal (v4l2) applications will read these devices as if they 
> were ordinary
> +video devices, but the video will not be read from e.g. a 
> capture card but
> +instead it is generated by another application. this allows you 
> for instance
> +to apply some nifty video effects on your Jitsi video... it 
> also allows some
> +more serious things (e.g. using it to add streaming 
> capabilities to an
> +application by the means of hooking GStreamer into the loopback 
> devices).")

Double-spacing between sentences is mandatory in Texinfo, because 
we are all boomers.

I was just about to push with the edits below, but… OK.  Done 
separately as fdcd193744dbb92d3478c8e4e6c4f4336a872831 et al.

Thanks!

T G-R

diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 3a8d45e20b..c40b33a0a9 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -1150,23 +1150,17 @@ supported under @file{/sys/class/backlight/}.")
                (base32
                 "1qi4l6yam8nrlmc3zwkrz9vph0xsj1cgmkqci4652mbpbzigg7vn"))))
     (build-system linux-module-build-system)
-    (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (replace 'check
-           (lambda _
-             (invoke "make"
-                     "--directory=./tests"
-                     (string-append "CC=" ,(cc-for-target))))))))
     (home-page "https://github.com/umlaeute/v4l2loopback")
-    (synopsis "Linux kernel module that allows you to create \"virtual video devices\"")
-    (description "This module allows you to create \"virtual video devices\"
-normal (v4l2) applications will read these devices as if they were ordinary
-video devices, but the video will not be read from e.g. a capture card but
-instead it is generated by another application. this allows you for instance
-to apply some nifty video effects on your Jitsi video... it also allows some
-more serious things (e.g. using it to add streaming capabilities to an
-application by the means of hooking GStreamer into the loopback devices).")
+    (synopsis "Linux kernel module to create virtual V4L2 video devices")
+    (description
+     "This Linux module creates virtual video devices.  @acronym{V4L2, Video
+for Linux 2} applications will treat these as ordinary video devices but read
+video data generated by another application, instead of a hardware device such
+as a capture card.
+
+This lets you apply nifty effects to your Jitsi video, for example, but also
+allows some more serious things like adding streaming capabilities to an
+application by hooking GStreamer into the loopback device.")
     (license license:gpl2+)))