gnu: deutex: Update to 5.2.1.
[jackhill/guix/guix.git] / gnu / packages / spice.scm
index 10f7c6b..edc6135 100644 (file)
@@ -1,5 +1,8 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2016 David Craven <david@craven.ch>
+;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2019 Rutger Helling <rhelling@mykolab.com>
+;;; Copyright © 2019 Marius Bakke <mbakke@fastmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -18,7 +21,6 @@
 
 (define-module (gnu packages spice)
   #:use-module (gnu packages)
-  #:use-module (gnu packages autotools) ; remove after updating usbredir to 0.7.1+
   #:use-module (gnu packages compression)
   #:use-module (gnu packages cyrus-sasl)
   #:use-module (gnu packages gl)
   #:use-module (gnu packages xml)
   #:use-module (guix build-system gnu)
   #:use-module (guix download)
-  #:use-module (guix git-download) ; remove after updating usbredir to 0.7.1+
   #:use-module (guix packages)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix utils))
 
 (define-public usbredir
-  (let ((commit "ac80a5971c6318d73d5fba4b5f13d3a9389558c9")
-        (revision "1"))          ;Guix package revision
-    (package
-      (name "usbredir")
-      (version (string-append "0.7.1-" revision "."
-                              (string-take commit 7)))
-      ;(version "0.7.1")
-      ;(source (origin
-      ;          (method url-fetch)
-      ;          (uri (string-append
-      ;            "http://spice-space.org/download/usbredir/"
-      ;            "usbredir-" version ".tar.bz2"))
-      ;          (sha256
-      ;           (base32
-      ;            "1wsnmk4wjpdhbn1zaxg6bmyxspcki2zgy0am9lk037rnl4krwzj0"))))
-      ; FIXME: usbredir 0.7.1 release doesn't build on 32 bit systems.
-      ;        issue is fixed in HEAD
-      ;        remove 'autogen phase and autoconf, automake, libtool inputs
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                        (url "https://anongit.freedesktop.org/git/spice/usbredir.git")
-                        (commit commit)))
-                (sha256
-                 (base32
-                  "052fywgi72j68dr5ybldncg4vk8iqfrh58la7iazyxxpph9aag1g"))))
-      (build-system gnu-build-system)
-      (propagated-inputs
-        `(("libusb" ,libusb)))
-      (native-inputs
-        `(("pkg-config" ,pkg-config)
-          ("autoconf" ,autoconf)
-          ("automake" ,automake)
-          ("libtool" ,libtool)))
-      (arguments
-       `(#:phases
-         (modify-phases %standard-phases
-           (add-after 'unpack 'autogen
-             (lambda _
-               (zero? (system* "autoreconf" "-vfi")))))))
-      (synopsis "Tools for sending USB device traffic over a network")
-      (description "Usbredir is a network protocol for sending USB device traffic
-  over a network connection.  It can be used to redirect traffic from a USB device
-  to a different (virtual) machine than the one to which the USB device is
-  attached.")
-      (home-page "https://www.spice-space.org")
-      (license (list license:gpl2+ license:lgpl2.0+ license:lgpl2.1+)))))
+  (package
+    (name "usbredir")
+    (home-page "https://spice-space.org")
+    (version "0.8.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append home-page "/download/" name "/" name "-"
+                                  version ".tar.bz2"))
+              (sha256
+               (base32
+                "002yik1x7kn0427xahvnhjby2np14a6xqw7c3dx530n9h5d9rg47"))))
+    (build-system gnu-build-system)
+    (propagated-inputs
+     `(("libusb" ,libusb)))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (synopsis "Tools for sending USB device traffic over a network")
+    (description
+     "Usbredir is a network protocol for sending USB device traffic over a
+network connection.  It can be used to redirect traffic from a USB device to a
+different (virtual) machine than the one to which the USB device is attached.")
+    (license (list license:gpl2+ license:lgpl2.0+ license:lgpl2.1+))))
 
 (define-public virglrenderer
   (package
@@ -122,7 +98,7 @@ system to use the host GPU to accelerate 3D rendering.")
 (define-public spice-protocol
   (package
     (name "spice-protocol")
-    (version "0.12.13")
+    (version "0.14.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -130,7 +106,7 @@ system to use the host GPU to accelerate 3D rendering.")
                 "spice-protocol-" version ".tar.bz2"))
               (sha256
                (base32
-                "0cwrgkp558mblcf4vrhacb3iizz12khsrrl82w38w9nj0ar13vl9"))))
+                "1b3f44c13pqsp7aabmcinfbmgl79038bp5548l5pjs16lcfam95n"))))
     (build-system gnu-build-system)
     (synopsis "Protocol headers for the SPICE protocol")
     (description "SPICE (the Simple Protocol for Independent Computing
@@ -142,7 +118,7 @@ which allows users to view a desktop computing environment.")
 (define-public spice-gtk
   (package
     (name "spice-gtk")
-    (version "0.33")
+    (version "0.37")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -150,7 +126,7 @@ which allows users to view a desktop computing environment.")
                 "spice-gtk-" version ".tar.bz2"))
               (sha256
                (base32
-                "0fdgx9k4vgmasp8i2n0swrkapq8f212igcg7wsgvr3mbhsvk7bvx"))))
+                "1drvj8y35gnxbnrxsipwi15yh0vs9ixzv4wslz6r3lra8w3bfa0z"))))
     (build-system gnu-build-system)
     (propagated-inputs
       `(("gstreamer" ,gstreamer)
@@ -159,34 +135,46 @@ which allows users to view a desktop computing environment.")
         ("gst-plugins-good" ,gst-plugins-good)
         ("gst-plugins-bad" ,gst-plugins-bad)
         ("gst-plugins-ugly" ,gst-plugins-ugly)
-        ("spice-protocol" ,spice-protocol)))
+        ("spice-protocol" ,spice-protocol)
+
+        ;; These are required by the pkg-config files.
+        ("gtk+" ,gtk+)
+        ("pixman" ,pixman)
+        ("openssl" ,openssl)))
     (inputs
       `(("glib-networking" ,glib-networking)
         ("gobject-introspection" ,gobject-introspection)
-        ("gtk+" ,gtk+)
+        ("json-glib" ,json-glib)
         ("libepoxy" ,libepoxy)
         ("libjpeg" ,libjpeg)
         ("libxcb" ,libxcb)
         ("lz4" ,lz4)
         ("mesa" ,mesa)
-        ("pixman" ,pixman)
         ("pulseaudio" ,pulseaudio)
         ("python" ,python)
-        ("openssl" ,openssl)
         ("opus" ,opus)
         ("usbredir" ,usbredir)))
     (native-inputs
       `(("glib:bin" ,glib "bin")
         ("intltool" ,intltool)
-        ("pkg-config" ,pkg-config)))
+        ("pkg-config" ,pkg-config)
+        ("vala" ,vala)))
     (arguments
       `(#:configure-flags
         '("--enable-gstaudio"
           "--enable-gstvideo"
           "--enable-pulse"
+          "--enable-vala"
           "--enable-introspection")
         #:phases
          (modify-phases %standard-phases
+           (add-before 'check 'disable-session-test
+             (lambda _
+               ;; XXX: Disable session tests, because they require USB support,
+               ;; which is not available in the build container.
+               (substitute* "tests/Makefile"
+                 (("test-session\\$\\(EXEEXT\\) ") ""))
+               #t))
            (add-after
             'install 'wrap-spicy
             (lambda* (#:key inputs outputs #:allow-other-keys)
@@ -203,15 +191,15 @@ which allows users to view a desktop computing environment.")
 (define-public spice
   (package
     (name "spice")
-    (version "0.14.0")
+    (version "0.14.2")
     (source (origin
               (method url-fetch)
               (uri (string-append
                 "https://www.spice-space.org/download/releases/"
-                "spice-" version ".tar.bz2"))
+                "spice-server/spice-" version ".tar.bz2"))
               (sha256
                (base32
-                "0j5q7cp5p95jk8fp48gz76rz96lifimdsx1wnpmfal0nnnar9nrs"))))
+                "19r999py9v9c7md2bb8ysj809ag1hh6djl1ik8jcgx065s4b60xj"))))
     (build-system gnu-build-system)
     (propagated-inputs
       `(("openssl" ,openssl)
@@ -228,18 +216,24 @@ which allows users to view a desktop computing environment.")
     (native-inputs
       `(("pkg-config" ,pkg-config)
         ("python" ,python)
-        ("spice-gtk" ,spice-gtk)))
+        ("spice-gtk" ,spice-gtk)
+
+        ;; These are needed for the server listen tests.
+        ("glib-networking" ,glib-networking)
+        ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
     (arguments
       `(#:configure-flags
-        '("--disable-celt051" ; Disable support for unpackaged audio codec
-          "--enable-lz4"
-          "--enable-automated-tests")))
+        '("--enable-lz4"
+          "--enable-automated-tests")
+
+        ;; Several tests appear to be opening the same sockets concurrently.
+        #:parallel-tests? #f))
     (synopsis "Server implementation of the SPICE protocol")
     (description "SPICE is a remote display system built for virtual
-environments which allows you to view a computing 'desktop' environment
+environments which allows you to view a computing @code{desktop} environment
 not only on the machine where it is running, but from anywhere on the
 Internet and from a wide variety of machine architectures.")
-    (home-page "http://www.spice-space.org")
+    (home-page "https://www.spice-space.org")
     (license (list license:lgpl2.1+ license:lgpl2.0+))))
 
 (define-public spice-vdagent
@@ -270,7 +264,7 @@ Internet and from a wide variety of machine architectures.")
          (add-after 'unpack 'patch-spice-vdagent.desktop
            (lambda* (#:key outputs #:allow-other-keys)
             (substitute* "data/spice-vdagent.desktop"
-              (("Exec=/usr/bin/spice-vdagent\n")
+              (("Exec=/usr/bin/spice-vdagent")
                (string-append "Exec=" (assoc-ref outputs "out")
                               "/bin/spice-vdagent")))
              #t)))))
@@ -290,13 +284,13 @@ Internet and from a wide variety of machine architectures.")
     (synopsis "Spice agent for Linux")
     (description "Spice-vdagent enables sharing the clipboard and guest display
 resolution scaling on graphical console window resize.")
-    (home-page "http://www.spice-space.org")
+    (home-page "https://www.spice-space.org")
     (license license:gpl3+)))
 
 (define-public virt-viewer
   (package
     (name "virt-viewer")
-    (version "5.0")
+    (version "7.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -304,13 +298,12 @@ resolution scaling on graphical console window resize.")
                 "virt-viewer-" version ".tar.gz"))
               (sha256
                (base32
-                "0blbp1wkw8ahss9va0bmcz2yx18j0mvm6fzrzhh2ly3sja5ysb8b"))))
+                "00y9vi69sja4pkrfnvrkwsscm41bqrjzvp8aijb20pvg6ymczhj7"))))
     (build-system gnu-build-system)
     (inputs
       `(("gtk+" ,gtk+)
         ("libcap" ,libcap)
         ("libxml2" ,libxml2)
-        ("openssl" ,openssl)
         ("spice-gtk" ,spice-gtk)))
     (native-inputs
       `(("glib:bin" ,glib "bin")