diff mbox series

[bug#50652,v2] gnu: Add mjpg-streamer.

Message ID hD6LlWVBC3R-cbxAiM8cz7I0jB3Sa5ylDtw0hKTMAoO33ko3LiG8m5CLpx5p14Cq8-rBEwIleZW4MWPF60w2O8JMpA-6TC9pVy5QgtT-eCI=@protonmail.com
State Accepted
Headers show
Series [bug#50652,v2] gnu: Add mjpg-streamer. | expand

Checks

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

Commit Message

phodina Sept. 18, 2021, 10:29 a.m. UTC
* gnu/packages/video.scm: (mjpg-streamer): New variable.

--
2.32.0

Comments

Ludovic Courtès Sept. 30, 2021, 9:19 p.m. UTC | #1
Hi,

phodina <phodina@protonmail.com> skribis:

> * gnu/packages/video.scm: (mjpg-streamer): New variable.

[...]

> +(define-public mjpg-streamer
> +  (let ((commit "310b29f4a94c46652b20c4b7b6e5cf24e532af39")
> +        (revision "1"))

Normally we only package releases.  If there’s a good reason to pick a
commit instead, please add a comment right above it so we know why.

> +    (package
> +      (name "mjpg-streamer")
> +      (version commit)

Please see
<https://guix.gnu.org/manual/en/html_node/Version-Numbers.html> on how
to construct version numbers for snapshots.

> +      (home-page "https://github.com/jacksonliam/mjpg-streamer")
> +      (license license:gpl2))))

Source headers such as
<https://github.com/jacksonliam/mjpg-streamer/blob/master/mjpg-streamer-experimental/plugins/input_control/dynctrl.c>
explicitly say “or any later version”, so it should be ‘license:gpl2+’.

Unfortunately
<https://github.com/jacksonliam/mjpg-streamer/tree/master/mjpg-streamer-experimental/www>
alone shows a .jar (binary file) and a bunch of “minified” (non-source)
JS files.

Our criterion is that it should be possible to build the package from
source, so we should remove at least all pre-built binary files and,
ideally, pre-built minified JS.  I invite you to give it a try and
report back, whether or not it succeeds.

Thanks,
Ludo’.
diff mbox series

Patch

diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index 1b9179c6a8..47b09b7ab6 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -53,6 +53,7 @@ 
 ;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;; Copyright © 2020 Hartmut Goebel <h.goebel@crazy-compilers.com>
 ;;; Copyright © 2021 Raghav Gururajan <rg@raghavgururajan.name>
+;;; Copyright © 2021 Petr Hodina <phodina@protonmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -447,6 +448,39 @@  library.")
     (home-page "http://libquicktime.sourceforge.net/")
     (license license:lgpl2.1+)))

+(define-public mjpg-streamer
+  (let ((commit "310b29f4a94c46652b20c4b7b6e5cf24e532af39")
+        (revision "1"))
+    (package
+      (name "mjpg-streamer")
+      (version commit)
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/jacksonliam/mjpg-streamer")
+                      (commit version)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "0y6xqx4pbdsiis6pqms9b91sba6ah414flrmlhrsmq9058nil755"))))
+      (build-system cmake-build-system)
+      (arguments
+       '(#:tests? #f                    ; no tests
+         #:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'chdir
+             (lambda* _
+               (chdir "mjpg-streamer-experimental"))))))
+      (inputs `(("libjpeg-turbo" ,libjpeg-turbo)))
+      (synopsis "Stream JPEG over IP network")
+      (description "Command line application that copies JPEG frames from one or
+more input plugins to multiple output plugins.  It can be used to stream JPEG
+files over an IP-based network from a webcam to various types of viewers such
+as Chrome, Firefox, Cambozola, VLC, mplayer, and other software capable of
+receiving MJPG streams.")
+      (home-page "https://github.com/jacksonliam/mjpg-streamer")
+      (license license:gpl2))))
+
 (define-public mjpegtools
   (package
     (name "mjpegtools")