X-Git-Url: https://git.hcoop.net/jackhill/guix/guix.git/blobdiff_plain/4f70db97a040b35f125484ce8885766ca5807dd4..e0f983c0d55e301fc646d956039cc425ad18076d:/gnu/packages/spice.scm diff --git a/gnu/packages/spice.scm b/gnu/packages/spice.scm index 94e6aa8438..31c2ce0ebe 100644 --- a/gnu/packages/spice.scm +++ b/gnu/packages/spice.scm @@ -1,6 +1,8 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2016 David Craven -;;; Copyright © 2018 Tobias Geerinckx-Rice +;;; Copyright © 2018–2021 Tobias Geerinckx-Rice +;;; Copyright © 2019 Rutger Helling +;;; Copyright © 2019, 2020 Marius Bakke ;;; ;;; This file is part of GNU Guix. ;;; @@ -19,6 +21,8 @@ (define-module (gnu packages spice) #:use-module (gnu packages) + #:use-module (gnu packages autotools) + #:use-module (gnu packages base) #:use-module (gnu packages compression) #:use-module (gnu packages cyrus-sasl) #:use-module (gnu packages gl) @@ -29,15 +33,18 @@ #:use-module (gnu packages image) #:use-module (gnu packages libusb) #:use-module (gnu packages linux) + #:use-module (gnu packages nss) #: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 xorg) #:use-module (gnu packages xdisorg) #:use-module (gnu packages xiph) #:use-module (gnu packages xml) #:use-module (guix build-system gnu) + #:use-module (guix build-system meson) #:use-module (guix download) #:use-module (guix packages) #:use-module ((guix licenses) #:prefix license:) @@ -47,19 +54,22 @@ (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))) (native-inputs - `(("pkg-config" ,pkg-config))) + `(("autoconf" ,autoconf) + ("automake" ,automake) + ("libtool" ,libtool) + ("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 @@ -96,16 +106,26 @@ system to use the host GPU to accelerate 3D rendering.") (define-public spice-protocol (package (name "spice-protocol") - (version "0.12.14") + (version "0.14.3") (source (origin (method url-fetch) (uri (string-append "https://www.spice-space.org/download/releases/" - "spice-protocol-" version ".tar.bz2")) + "spice-protocol-" version ".tar.xz")) (sha256 (base32 - "170ckpgazvqv7hxy209myg67pqnd6c0gvr4ysbqgsfch6320nd90")))) - (build-system gnu-build-system) + "0yj8k7gcirrsf21w0q6146n5g4nzn2pqky4p90n5760m5ayfb1pr")))) + (build-system meson-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'install-documentation + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (doc (string-append out "/share/doc/" + ,name "-" ,version))) + (install-file "COPYING" doc) + #t)))))) (synopsis "Protocol headers for the SPICE protocol") (description "SPICE (the Simple Protocol for Independent Computing Environments) is a remote-display system built for virtual environments @@ -116,7 +136,7 @@ which allows users to view a desktop computing environment.") (define-public spice-gtk (package (name "spice-gtk") - (version "0.35") + (version "0.37") (source (origin (method url-fetch) (uri (string-append @@ -124,43 +144,62 @@ which allows users to view a desktop computing environment.") "spice-gtk-" version ".tar.bz2")) (sha256 (base32 - "11lymg467gvj5ys8k22ihnfbxjn4x34ygyzirpg2nphjwlyhgrml")))) + "1drvj8y35gnxbnrxsipwi15yh0vs9ixzv4wslz6r3lra8w3bfa0z")))) (build-system gnu-build-system) (propagated-inputs `(("gstreamer" ,gstreamer) - ("gst-libav" ,gst-libav) ("gst-plugins-base" ,gst-plugins-base) ("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) + ("libjpeg" ,libjpeg-turbo) ("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 'patch-la-files + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out")) + (libjpeg (assoc-ref inputs "libjpeg"))) + ;; Add an absolute reference for libjpeg in the .la files + ;; so it does not have to be propagated. + (substitute* (find-files (string-append out "/lib") "\\.la$") + (("-ljpeg") + (string-append "-L" libjpeg "/lib -ljpeg"))) + #t))) (add-after 'install 'wrap-spicy (lambda* (#:key inputs outputs #:allow-other-keys) @@ -177,7 +216,7 @@ which allows users to view a desktop computing environment.") (define-public spice (package (name "spice") - (version "0.14.1") + (version "0.14.3") (source (origin (method url-fetch) (uri (string-append @@ -185,7 +224,7 @@ which allows users to view a desktop computing environment.") "spice-server/spice-" version ".tar.bz2")) (sha256 (base32 - "068mb9l7wzk4k4c65bzvpw5fyyzh81rb6z81skgdxvh67pk5vb8y")))) + "05512vkfayw18ypg4acqbbpr72nsnsz9bj7k8c2wyrvnl3j4n7am")))) (build-system gnu-build-system) (propagated-inputs `(("openssl" ,openssl) @@ -195,6 +234,7 @@ which allows users to view a desktop computing environment.") `(("cyrus-sasl" ,cyrus-sasl) ("glib" ,glib) ("libjpeg-turbo" ,libjpeg-turbo) + ("libcacard" ,libcacard) ; smartcard support ("lz4" ,lz4) ("opus" ,opus) ("orc" ,orc) @@ -213,14 +253,10 @@ which allows users to view a desktop computing environment.") "--enable-automated-tests") ;; Several tests appear to be opening the same sockets concurrently. - #:parallel-tests? #f - - #:phases (modify-phases %standard-phases - (add-before 'check 'use-empty-ssl-cert-file - (lambda _ (setenv "SSL_CERT_FILE" "/dev/null") #t))))) + #: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 "https://www.spice-space.org") @@ -229,7 +265,7 @@ Internet and from a wide variety of machine architectures.") (define-public spice-vdagent (package (name "spice-vdagent") - (version "0.17.0") + (version "0.20.0") (source (origin (method url-fetch) (uri (string-append @@ -237,7 +273,7 @@ Internet and from a wide variety of machine architectures.") "spice-vdagent-" version ".tar.bz2")) (sha256 (base32 - "0gdkyylyg1hksg0i0anvznqfli2q39335fnrmcd6847frpc8njpi")))) + "0n9k2kna2gd1zi6jv45zsp2jlv439nz5l5jjijirxqaycwi74srf")))) (build-system gnu-build-system) (arguments `(#:configure-flags @@ -262,6 +298,7 @@ Internet and from a wide variety of machine architectures.") `(("alsa-lib" ,alsa-lib) ("dbus" ,dbus) ("glib" ,glib) + ("libdrm" ,libdrm) ("libpciaccess" ,libpciaccess) ("libx11" ,libx11) ("libxext" ,libxext) @@ -277,6 +314,51 @@ resolution scaling on graphical console window resize.") (home-page "https://www.spice-space.org") (license license:gpl3+))) +(define-public libcacard + (package + (name "libcacard") + (version "2.7.0") + (source (origin + (method url-fetch) + (uri (string-append + "https://gitlab.freedesktop.org/spice/libcacard/uploads/" + "56cb2499198e78e560a1d4c716cd8ab1" + "/libcacard-" version ".tar.xz")) + (sha256 + (base32 + "0vyvkk4b6xjwq1ccggql13c1x7g4y90clpkqw28257azgn2a1c8n")))) + (build-system gnu-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))))) + (propagated-inputs + `(("glib" ,glib) ; Requires: in the pkg-config file + ("nss" ,nss))) ; Requires.private: in the pkg-config + ; file + (native-inputs + `(("openssl" ,openssl) + ("nss" ,nss "bin") + ("opensc" ,opensc) + ("softhsm" ,softhsm) + ("gnutls" ,gnutls) + ("pkg-config" ,pkg-config) + ("which" ,which))) + (synopsis "Emulate and share smart cards with virtual machines") + (description + "The @acronym{CAC,Common Access Card} library can be used to emulate and +share smart cards from client system to local or remote virtual machines.") + (home-page "https://gitlab.freedesktop.org/spice/libcacard") + (license license:lgpl2.1+))) + (define-public virt-viewer (package (name "virt-viewer") @@ -292,9 +374,9 @@ resolution scaling on graphical console window resize.") (build-system gnu-build-system) (inputs `(("gtk+" ,gtk+) + ("gtk-vnc" ,gtk-vnc) ("libcap" ,libcap) ("libxml2" ,libxml2) - ("openssl" ,openssl) ("spice-gtk" ,spice-gtk))) (native-inputs `(("glib:bin" ,glib "bin")