gnu: r-zellkonverter: Update to 1.6.5.
[jackhill/guix/guix.git] / gnu / packages / spice.scm
index 4b4c673..2be724c 100644 (file)
@@ -1,8 +1,9 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2016 David Craven <david@craven.ch>
-;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2019 Rutger Helling <rhelling@mykolab.com>
-;;; Copyright © 2019, 2020 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2019, 2020, 2022 Marius Bakke <marius@gnu.org>
+;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
 
 (define-module (gnu packages spice)
   #:use-module (gnu packages)
+  #:use-module (gnu packages autotools)
   #:use-module (gnu packages base)
+  #:use-module (gnu packages bash)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages cyrus-sasl)
   #:use-module (gnu packages gl)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnome)
+  #:use-module (gnu packages gettext)
   #:use-module (gnu packages gstreamer)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages image)
   #:use-module (gnu packages libusb)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages nss)
+  #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages pulseaudio)
   #:use-module (gnu packages python)
   #:use-module (gnu packages security-token)
   #:use-module (gnu packages tls)
+  #:use-module (gnu packages virtualization)
   #:use-module (gnu packages xorg)
   #:use-module (gnu packages xdisorg)
   #:use-module (gnu packages xiph)
@@ -46,6 +52,7 @@
   #:use-module (guix build-system meson)
   #:use-module (guix download)
   #:use-module (guix packages)
+  #:use-module (guix gexp)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix utils))
 
   (package
     (name "usbredir")
     (home-page "https://spice-space.org")
-    (version "0.8.0")
+    (version "0.9.0")
     (source (origin
               (method url-fetch)
               (uri (string-append home-page "/download/" name "/" name "-"
-                                  version ".tar.bz2"))
+                                  version ".tar.xz"))
               (sha256
                (base32
-                "002yik1x7kn0427xahvnhjby2np14a6xqw7c3dx530n9h5d9rg47"))))
+                "19jnpzlanq0a1m5lmlcsp50wxf7icxvpvclx7hnf0zxw8azngqd3"))))
     (build-system gnu-build-system)
     (propagated-inputs
-     `(("libusb" ,libusb)))
+     (list libusb))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     (list autoconf automake libtool 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
@@ -88,11 +95,9 @@ different (virtual) machine than the one to which the USB device is attached.")
                 "06kf0q4l52gzx5p63l8850hff8pmhp7xv1hk8zgx2apbw18y6jd5"))))
     (build-system gnu-build-system)
     (inputs
-      `(("libepoxy" ,libepoxy)
-        ("mesa" ,mesa)
-        ("udev" ,eudev)))
+      (list libepoxy mesa eudev))
     (native-inputs
-      `(("pkg-config" ,pkg-config)))
+      (list pkg-config))
     (synopsis "Virtual 3D GPU library")
     (description "A virtual 3D GPU library that enables a virtualized operating
 system to use the host GPU to accelerate 3D rendering.")
@@ -102,7 +107,7 @@ system to use the host GPU to accelerate 3D rendering.")
 (define-public spice-protocol
   (package
     (name "spice-protocol")
-    (version "0.14.2")
+    (version "0.14.3")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -110,7 +115,7 @@ system to use the host GPU to accelerate 3D rendering.")
                 "spice-protocol-" version ".tar.xz"))
               (sha256
                (base32
-                "1sgi9ksb781qs47pdbw0bmnyg8dgayn5xrzj6vzdy043nv466flg"))))
+                "0yj8k7gcirrsf21w0q6146n5g4nzn2pqky4p90n5760m5ayfb1pr"))))
     (build-system meson-build-system)
     (arguments
      `(#:phases
@@ -143,15 +148,14 @@ which allows users to view a desktop computing environment.")
                 "1drvj8y35gnxbnrxsipwi15yh0vs9ixzv4wslz6r3lra8w3bfa0z"))))
     (build-system gnu-build-system)
     (propagated-inputs
-      `(("gstreamer" ,gstreamer)
-        ("gst-plugins-base" ,gst-plugins-base)
-        ("gst-plugins-good" ,gst-plugins-good)
-        ("spice-protocol" ,spice-protocol)
-
-        ;; These are required by the pkg-config files.
-        ("gtk+" ,gtk+)
-        ("pixman" ,pixman)
-        ("openssl" ,openssl)))
+      (list gstreamer
+            gst-plugins-base
+            gst-plugins-good
+            spice-protocol
+            ;; These are required by the pkg-config files.
+            gtk+
+            pixman
+            openssl-1.1))
     (inputs
       `(("glib-networking" ,glib-networking)
         ("gobject-introspection" ,gobject-introspection)
@@ -212,7 +216,7 @@ which allows users to view a desktop computing environment.")
 (define-public spice
   (package
     (name "spice")
-    (version "0.14.3")
+    (version "0.15.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -220,34 +224,39 @@ which allows users to view a desktop computing environment.")
                 "spice-server/spice-" version ".tar.bz2"))
               (sha256
                (base32
-                "05512vkfayw18ypg4acqbbpr72nsnsz9bj7k8c2wyrvnl3j4n7am"))))
+                "1xd0xffw0g5vvwbq4ksmm3jjfq45f9dw20xpmi82g1fj9f7wy85k"))))
     (build-system gnu-build-system)
     (propagated-inputs
-      `(("openssl" ,openssl)
-        ("pixman" ,pixman)
-        ("spice-protocol" ,spice-protocol)))
+      (list openssl-1.1 pixman spice-protocol))
     (inputs
-      `(("cyrus-sasl" ,cyrus-sasl)
-        ("glib" ,glib)
-        ("libjpeg-turbo" ,libjpeg-turbo)
-        ("libcacard" ,libcacard)        ; smartcard support
-        ("lz4" ,lz4)
-        ("opus" ,opus)
-        ("orc" ,orc)
-        ("zlib" ,zlib)))
+      (list cyrus-sasl
+            glib
+            libjpeg-turbo
+            libcacard ; smartcard support
+            lz4
+            opus
+            orc
+            zlib))
     (native-inputs
-      `(("pkg-config" ,pkg-config)
-        ("python" ,python)
-        ("spice-gtk" ,spice-gtk)
-
-        ;; These are needed for the server listen tests.
-        ("glib-networking" ,glib-networking)
-        ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
+      (list pkg-config
+            python
+            spice-gtk
+            ;; These are needed for the server listen tests.
+            glib-networking
+            gsettings-desktop-schemas))
     (arguments
       `(#:configure-flags
         '("--enable-lz4"
           "--enable-automated-tests")
 
+        #:phases
+        (modify-phases %standard-phases
+          ;; XXX: Otherwise the server listen tests fails with
+          ;;   Failed to create /homeless-shelter/.config/glib-2.0/settings
+          (add-before 'check 'set-XDG_CONFIG_HOME
+            (lambda _
+              (setenv "XDG_CONFIG_HOME" "/tmp"))))
+
         ;; Several tests appear to be opening the same sockets concurrently.
         #:parallel-tests? #f))
     (synopsis "Server implementation of the SPICE protocol")
@@ -261,7 +270,7 @@ Internet and from a wide variety of machine architectures.")
 (define-public spice-vdagent
   (package
     (name "spice-vdagent")
-    (version "0.17.0")
+    (version "0.21.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -269,11 +278,16 @@ Internet and from a wide variety of machine architectures.")
                 "spice-vdagent-" version ".tar.bz2"))
               (sha256
                (base32
-                "0gdkyylyg1hksg0i0anvznqfli2q39335fnrmcd6847frpc8njpi"))))
+                "0n8jlc1pv6mkry161y656b1nk9hhhminjq6nymzmmyjl7k95ymzx"))
+              (patches
+               (search-patches "spice-vdagent-glib-2.68.patch"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags
        '("--localstatedir=/var")
+       ;; The test-session-info test fails for unknown reasons (see:
+       ;; https://gitlab.freedesktop.org/spice/linux/vd_agent/-/issues/24).
+       #:make-flags '("XFAIL_TESTS=tests/test-session-info")
        #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'patch-makefile.in
@@ -281,28 +295,37 @@ Internet and from a wide variety of machine architectures.")
              (substitute* "Makefile.in"
                (((string-append "\\$\\(mkdir_p\\) \\$\\(DESTDIR\\)"
                                 "\\$\\(localstatedir\\)/run/spice-vdagentd"))
-                 "-$(mkdir_p) $(DESTDIR)$(localstatedir)/run/spice-vdagentd"))
-             #t))
+                 "-$(mkdir_p) $(DESTDIR)$(localstatedir)/run/spice-vdagentd"))))
          (add-after 'unpack 'patch-spice-vdagent.desktop
            (lambda* (#:key outputs #:allow-other-keys)
             (substitute* "data/spice-vdagent.desktop"
               (("Exec=/usr/bin/spice-vdagent")
                (string-append "Exec=" (assoc-ref outputs "out")
-                              "/bin/spice-vdagent")))
-             #t)))))
+                              "/bin/spice-vdagent")))))
+         (add-after 'unpack 'fix-test-termination
+           (lambda _
+             ;; The termination tests depend on finding the socket file name
+             ;; in the spice-vdagent command line it launched, but by default
+             ;; ps truncates its output, which causes the test to fail (see:
+             ;; https://gitlab.freedesktop.org/spice/linux/vd_agent/-/merge_requests/36).
+             (substitute* "tests/test-termination.c"
+               (("ps -ef")
+                "ps -efww")))))))
     (inputs
-      `(("alsa-lib" ,alsa-lib)
-        ("dbus" ,dbus)
-        ("glib" ,glib)
-        ("libpciaccess" ,libpciaccess)
-        ("libx11" ,libx11)
-        ("libxext" ,libxext)
-        ("libxfixes" ,libxfixes)
-        ("libxinerama" ,libxinerama)
-        ("libxrandr" ,libxrandr)
-        ("spice-protocol" ,spice-protocol)))
+      (list alsa-lib
+            dbus
+            glib
+            gtk+
+            libdrm
+            libpciaccess
+            libx11
+            libxext
+            libxfixes
+            libxinerama
+            libxrandr
+            spice-protocol))
     (native-inputs
-      `(("pkg-config" ,pkg-config)))
+     (list pkg-config procps))             ;tests use 'ps'
     (synopsis "Spice agent for Linux")
     (description "Spice-vdagent enables sharing the clipboard and guest display
 resolution scaling on graphical console window resize.")
@@ -312,41 +335,35 @@ resolution scaling on graphical console window resize.")
 (define-public libcacard
   (package
     (name "libcacard")
-    (version "2.7.0")
+    (version "2.8.1")
     (source (origin
               (method url-fetch)
               (uri (string-append
                     "https://gitlab.freedesktop.org/spice/libcacard/uploads/"
-                    "56cb2499198e78e560a1d4c716cd8ab1"
+                    "13b249e695a0d9aa7cb501b1a85ebab1"
                     "/libcacard-" version ".tar.xz"))
               (sha256
                (base32
-                "0vyvkk4b6xjwq1ccggql13c1x7g4y90clpkqw28257azgn2a1c8n"))))
-    (build-system gnu-build-system)
+                "1rrjlclm6ad63gah1fa4yfwrz4z6vgq2yrybbvzvvdbxrgl4vgzv"))))
+    (build-system meson-build-system)
     (arguments
-     '(#:tests? #f                      ; TODO Tests require gnutls built with
-                                        ; p11-kit
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'patch-tests
-           (lambda* (#:key inputs #:allow-other-keys)
-             (substitute* "tests/setup-softhsm2.sh"
-               (("\\/usr\\/lib64\\/pkcs11\\/libsofthsm2\\.so")
-                (string-append (assoc-ref inputs "softhsm")
-                               "/lib/softhsm/libsofthsm2.so")))
-             #t)))))
+     (list #:configure-flags
+           ;; XXX: For some reason NSS is not automatically added on RUNPATH
+           ;; with newer versions of Meson (after 0.60).
+           #~(list (string-append "-Dc_link_args=-Wl,-rpath="
+                                  (search-input-directory
+                                   %build-inputs "lib/nss")))))
     (propagated-inputs
-     `(("glib" ,glib)                   ; Requires: in the pkg-config file
-       ("nss" ,nss)))                   ; Requires.private: in the pkg-config
-                                        ; file
+     (list glib ; Requires: in the pkg-config file
+           nss ; Requires.private: in the pkg-config
+           pcsc-lite))       ; file
     (native-inputs
-     `(("openssl" ,openssl)
-       ("nss" ,nss "bin")
-       ("opensc" ,opensc)
-       ("softhsm" ,softhsm)
-       ("gnutls" ,gnutls)
-       ("pkg-config" ,pkg-config)
-       ("which" ,which)))
+     (list openssl
+           `(,nss "bin")
+           opensc
+           gnutls
+           pkg-config
+           which))
     (synopsis "Emulate and share smart cards with virtual machines")
     (description
      "The @acronym{CAC,Common Access Card} library can be used to emulate and
@@ -357,38 +374,32 @@ share smart cards from client system to local or remote virtual machines.")
 (define-public virt-viewer
   (package
     (name "virt-viewer")
-    (version "7.0")
+    (version "11.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
-                "https://virt-manager.org/download/sources/virt-viewer/"
-                "virt-viewer-" version ".tar.gz"))
+                    "https://virt-manager.org/download/sources/virt-viewer/"
+                    "virt-viewer-" version ".tar.xz"))
               (sha256
                (base32
-                "00y9vi69sja4pkrfnvrkwsscm41bqrjzvp8aijb20pvg6ymczhj7"))))
-    (build-system gnu-build-system)
-    (inputs
-      `(("gtk+" ,gtk+)
-        ("libcap" ,libcap)
-        ("libxml2" ,libxml2)
-        ("spice-gtk" ,spice-gtk)))
+                "1l5bv6x6j21l487mk3n93ai121gg62n6b069r2jpf72cbhra4gx4"))))
+    (build-system meson-build-system)
     (native-inputs
-      `(("glib:bin" ,glib "bin")
-        ("intltool" ,intltool)
-        ("pkg-config" ,pkg-config)))
-    (arguments
-      `(#:configure-flags
-        '("--with-spice-gtk")
-        #:phases
-         (modify-phases %standard-phases
-           (add-after
-            'install 'wrap-remote-viewer
-            (lambda* (#:key inputs outputs #:allow-other-keys)
-              (let ((out             (assoc-ref outputs "out"))
-                    (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
-                (wrap-program (string-append out "/bin/remote-viewer")
-                  `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
-              #t)))))
+     (list `(,glib "bin")
+           gettext-minimal
+           perl                         ;for pod2man
+           pkg-config
+           python))
+    (inputs
+     (list bash-completion
+           gtk+
+           gtk-vnc
+           libcap
+           libgovirt
+           libvirt-glib
+           libxml2
+           spice-gtk
+           vte))
     (synopsis "Graphical console client for virtual machines")
     (description "Graphical console client for virtual machines using SPICE or
 VNC.")