X-Git-Url: https://git.hcoop.net/jackhill/guix/guix.git/blobdiff_plain/27c2917ac4e18ec0e1e9bb369d3e5e71ec4b5b61..ffe714b5f441ca22d69ecef34bdbb8e61bf758c4:/gnu/packages/spice.scm diff --git a/gnu/packages/spice.scm b/gnu/packages/spice.scm index 77939bc8a8..4aff8dbf56 100644 --- a/gnu/packages/spice.scm +++ b/gnu/packages/spice.scm @@ -1,7 +1,8 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2016 David Craven -;;; Copyright © 2018 Tobias Geerinckx-Rice +;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice ;;; Copyright © 2019 Rutger Helling +;;; Copyright © 2019, 2020 Marius Bakke ;;; ;;; This file is part of GNU Guix. ;;; @@ -20,6 +21,7 @@ (define-module (gnu packages spice) #:use-module (gnu packages) + #:use-module (gnu packages base) #:use-module (gnu packages compression) #:use-module (gnu packages cyrus-sasl) #:use-module (gnu packages gl) @@ -30,15 +32,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:) @@ -97,16 +102,26 @@ system to use the host GPU to accelerate 3D rendering.") (define-public spice-protocol (package (name "spice-protocol") - (version "0.12.15") + (version "0.14.2") (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 - "06b461i4jv741in8617jjpfk28wk7zs9p7841njkf4sbm8xv4kcb")))) - (build-system gnu-build-system) + "1sgi9ksb781qs47pdbw0bmnyg8dgayn5xrzj6vzdy043nv466flg")))) + (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 @@ -114,26 +129,10 @@ which allows users to view a desktop computing environment.") (home-page "https://www.spice-space.org") (license (list license:bsd-3 license:lgpl2.1+)))) -;; TODO: Package lookingglass doesn't build with spice-protocol 0.12.15. Remove -;; below once that is fixed. -(define-public spice-protocol-0.12.14 - (package - (inherit spice-protocol) - (name "spice-protocol") - (version "0.12.14") - (source (origin - (method url-fetch) - (uri (string-append - "https://www.spice-space.org/download/releases/" - "spice-protocol-" version ".tar.bz2")) - (sha256 - (base32 - "170ckpgazvqv7hxy209myg67pqnd6c0gvr4ysbqgsfch6320nd90")))))) - (define-public spice-gtk (package (name "spice-gtk") - (version "0.35") + (version "0.37") (source (origin (method url-fetch) (uri (string-append @@ -141,7 +140,7 @@ 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) @@ -150,34 +149,56 @@ 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) + ("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) @@ -194,7 +215,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 @@ -202,7 +223,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) @@ -212,6 +233,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) @@ -233,7 +255,7 @@ which allows users to view a desktop computing environment.") #: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") @@ -290,6 +312,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") @@ -307,7 +374,6 @@ resolution scaling on graphical console window resize.") `(("gtk+" ,gtk+) ("libcap" ,libcap) ("libxml2" ,libxml2) - ("openssl" ,openssl) ("spice-gtk" ,spice-gtk))) (native-inputs `(("glib:bin" ,glib "bin")