gnu: musescore: Update to 3.3.
[jackhill/guix/guix.git] / gnu / packages / spice.scm
CommitLineData
1d2c67c1
DC
1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2016 David Craven <david@craven.ch>
4f20e0a2 3;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
44ad1c16 4;;; Copyright © 2019 Rutger Helling <rhelling@mykolab.com>
a550da62 5;;; Copyright © 2019 Marius Bakke <mbakke@fastmail.com>
1d2c67c1
DC
6;;;
7;;; This file is part of GNU Guix.
8;;;
9;;; GNU Guix is free software; you can redistribute it and/or modify it
10;;; under the terms of the GNU General Public License as published by
11;;; the Free Software Foundation; either version 3 of the License, or (at
12;;; your option) any later version.
13;;;
14;;; GNU Guix is distributed in the hope that it will be useful, but
15;;; WITHOUT ANY WARRANTY; without even the implied warranty of
16;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17;;; GNU General Public License for more details.
18;;;
19;;; You should have received a copy of the GNU General Public License
20;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
21
22(define-module (gnu packages spice)
23 #:use-module (gnu packages)
bb28cf90 24 #:use-module (gnu packages compression)
5f2a7f4f 25 #:use-module (gnu packages cyrus-sasl)
2ef2654d 26 #:use-module (gnu packages gl)
bb28cf90
DC
27 #:use-module (gnu packages glib)
28 #:use-module (gnu packages gnome)
29 #:use-module (gnu packages gstreamer)
30 #:use-module (gnu packages gtk)
31 #:use-module (gnu packages image)
1d2c67c1 32 #:use-module (gnu packages libusb)
2ef2654d 33 #:use-module (gnu packages linux)
1d2c67c1 34 #:use-module (gnu packages pkg-config)
bb28cf90
DC
35 #:use-module (gnu packages pulseaudio)
36 #:use-module (gnu packages python)
37 #:use-module (gnu packages tls)
38 #:use-module (gnu packages xorg)
39 #:use-module (gnu packages xdisorg)
40 #:use-module (gnu packages xiph)
6144dff5 41 #:use-module (gnu packages xml)
1d2c67c1
DC
42 #:use-module (guix build-system gnu)
43 #:use-module (guix download)
44 #:use-module (guix packages)
45 #:use-module ((guix licenses) #:prefix license:)
46 #:use-module (guix utils))
47
48(define-public usbredir
41a659d2
MB
49 (package
50 (name "usbredir")
51 (home-page "https://spice-space.org")
52 (version "0.8.0")
53 (source (origin
54 (method url-fetch)
55 (uri (string-append home-page "/download/" name "/" name "-"
56 version ".tar.bz2"))
57 (sha256
58 (base32
59 "002yik1x7kn0427xahvnhjby2np14a6xqw7c3dx530n9h5d9rg47"))))
60 (build-system gnu-build-system)
61 (propagated-inputs
62 `(("libusb" ,libusb)))
63 (native-inputs
64 `(("pkg-config" ,pkg-config)))
65 (synopsis "Tools for sending USB device traffic over a network")
66 (description
67 "Usbredir is a network protocol for sending USB device traffic over a
68network connection. It can be used to redirect traffic from a USB device to a
69different (virtual) machine than the one to which the USB device is attached.")
70 (license (list license:gpl2+ license:lgpl2.0+ license:lgpl2.1+))))
2ef2654d
DC
71
72(define-public virglrenderer
73 (package
74 (name "virglrenderer")
8b20a4d1 75 (version "0.6.0")
2ef2654d
DC
76 (source (origin
77 (method url-fetch)
78 (uri (string-append
79 "https://www.freedesktop.org/software/virgl/"
80 "virglrenderer-" version ".tar.bz2"))
1e5b8bee 81 (patches (search-patches "virglrenderer-CVE-2017-6386.patch"))
2ef2654d
DC
82 (sha256
83 (base32
8b20a4d1 84 "06kf0q4l52gzx5p63l8850hff8pmhp7xv1hk8zgx2apbw18y6jd5"))))
2ef2654d
DC
85 (build-system gnu-build-system)
86 (inputs
87 `(("libepoxy" ,libepoxy)
88 ("mesa" ,mesa)
89 ("udev" ,eudev)))
90 (native-inputs
91 `(("pkg-config" ,pkg-config)))
92 (synopsis "Virtual 3D GPU library")
93 (description "A virtual 3D GPU library that enables a virtualized operating
94system to use the host GPU to accelerate 3D rendering.")
95 (home-page "https://virgil3d.github.io")
96 (license (list license:expat license:bsd-3))))
289e472f
DC
97
98(define-public spice-protocol
99 (package
100 (name "spice-protocol")
a550da62 101 (version "0.14.0")
289e472f
DC
102 (source (origin
103 (method url-fetch)
104 (uri (string-append
5e569d5c 105 "https://www.spice-space.org/download/releases/"
289e472f
DC
106 "spice-protocol-" version ".tar.bz2"))
107 (sha256
108 (base32
a550da62 109 "1b3f44c13pqsp7aabmcinfbmgl79038bp5548l5pjs16lcfam95n"))))
289e472f
DC
110 (build-system gnu-build-system)
111 (synopsis "Protocol headers for the SPICE protocol")
112 (description "SPICE (the Simple Protocol for Independent Computing
113Environments) is a remote-display system built for virtual environments
114which allows users to view a desktop computing environment.")
5e569d5c 115 (home-page "https://www.spice-space.org")
289e472f 116 (license (list license:bsd-3 license:lgpl2.1+))))
bb28cf90
DC
117
118(define-public spice-gtk
119 (package
120 (name "spice-gtk")
4f20e0a2 121 (version "0.37")
bb28cf90
DC
122 (source (origin
123 (method url-fetch)
124 (uri (string-append
f057755e 125 "https://spice-space.org/download/gtk/"
bb28cf90
DC
126 "spice-gtk-" version ".tar.bz2"))
127 (sha256
128 (base32
4f20e0a2 129 "1drvj8y35gnxbnrxsipwi15yh0vs9ixzv4wslz6r3lra8w3bfa0z"))))
bb28cf90
DC
130 (build-system gnu-build-system)
131 (propagated-inputs
132 `(("gstreamer" ,gstreamer)
133 ("gst-libav" ,gst-libav)
134 ("gst-plugins-base" ,gst-plugins-base)
135 ("gst-plugins-good" ,gst-plugins-good)
136 ("gst-plugins-bad" ,gst-plugins-bad)
ba9e2ee6 137 ("gst-plugins-ugly" ,gst-plugins-ugly)
4f20e0a2 138 ("spice-protocol" ,spice-protocol)
a2d2c0bf
MB
139
140 ;; These are required by the pkg-config files.
141 ("gtk+" ,gtk+)
142 ("pixman" ,pixman)
143 ("openssl" ,openssl)))
bb28cf90
DC
144 (inputs
145 `(("glib-networking" ,glib-networking)
c44dd0d6 146 ("gobject-introspection" ,gobject-introspection)
fbd2a245 147 ("json-glib" ,json-glib)
bb28cf90
DC
148 ("libepoxy" ,libepoxy)
149 ("libjpeg" ,libjpeg)
bb28cf90
DC
150 ("libxcb" ,libxcb)
151 ("lz4" ,lz4)
152 ("mesa" ,mesa)
bb28cf90
DC
153 ("pulseaudio" ,pulseaudio)
154 ("python" ,python)
bb28cf90 155 ("opus" ,opus)
bb28cf90
DC
156 ("usbredir" ,usbredir)))
157 (native-inputs
158 `(("glib:bin" ,glib "bin")
159 ("intltool" ,intltool)
160 ("pkg-config" ,pkg-config)))
161 (arguments
162 `(#:configure-flags
163 '("--enable-gstaudio"
164 "--enable-gstvideo"
c44dd0d6
AP
165 "--enable-pulse"
166 "--enable-introspection")
bb28cf90
DC
167 #:phases
168 (modify-phases %standard-phases
fbd2a245
MB
169 (add-before 'check 'disable-session-test
170 (lambda _
171 ;; XXX: Disable session tests, because they require USB support,
172 ;; which is not available in the build container.
173 (substitute* "tests/Makefile"
174 (("test-session\\$\\(EXEEXT\\) ") ""))
175 #t))
bb28cf90
DC
176 (add-after
177 'install 'wrap-spicy
178 (lambda* (#:key inputs outputs #:allow-other-keys)
179 (let ((out (assoc-ref outputs "out"))
180 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
181 (wrap-program (string-append out "/bin/spicy")
182 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
183 #t)))))
184 (synopsis "Gtk client and libraries for SPICE remote desktop servers")
185 (description "Gtk client and libraries for SPICE remote desktop servers.")
f057755e 186 (home-page "https://www.spice-space.org")
bb28cf90 187 (license (list license:lgpl2.1+ license:lgpl2.0+))))
3cbd37e4
DC
188
189(define-public spice
190 (package
191 (name "spice")
a0d44bb0 192 (version "0.14.2")
3cbd37e4
DC
193 (source (origin
194 (method url-fetch)
195 (uri (string-append
b142756d 196 "https://www.spice-space.org/download/releases/"
f6b7ccc9 197 "spice-server/spice-" version ".tar.bz2"))
3cbd37e4
DC
198 (sha256
199 (base32
a0d44bb0 200 "19r999py9v9c7md2bb8ysj809ag1hh6djl1ik8jcgx065s4b60xj"))))
3cbd37e4
DC
201 (build-system gnu-build-system)
202 (propagated-inputs
203 `(("openssl" ,openssl)
204 ("pixman" ,pixman)
205 ("spice-protocol" ,spice-protocol)))
206 (inputs
5f2a7f4f
DC
207 `(("cyrus-sasl" ,cyrus-sasl)
208 ("glib" ,glib)
9b81876f 209 ("libjpeg-turbo" ,libjpeg-turbo)
3cbd37e4
DC
210 ("lz4" ,lz4)
211 ("opus" ,opus)
b142756d 212 ("orc" ,orc)
3cbd37e4
DC
213 ("zlib" ,zlib)))
214 (native-inputs
215 `(("pkg-config" ,pkg-config)
216 ("python" ,python)
f6b7ccc9
MB
217 ("spice-gtk" ,spice-gtk)
218
219 ;; These are needed for the server listen tests.
220 ("glib-networking" ,glib-networking)
221 ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
3cbd37e4
DC
222 (arguments
223 `(#:configure-flags
f6b7ccc9
MB
224 '("--enable-lz4"
225 "--enable-automated-tests")
8504d192
LC
226
227 ;; Several tests appear to be opening the same sockets concurrently.
65211552 228 #:parallel-tests? #f))
3cbd37e4
DC
229 (synopsis "Server implementation of the SPICE protocol")
230 (description "SPICE is a remote display system built for virtual
36a4366d 231environments which allows you to view a computing @code{desktop} environment
3cbd37e4
DC
232not only on the machine where it is running, but from anywhere on the
233Internet and from a wide variety of machine architectures.")
d5ae997a 234 (home-page "https://www.spice-space.org")
3cbd37e4 235 (license (list license:lgpl2.1+ license:lgpl2.0+))))
33b0f4a4
DC
236
237(define-public spice-vdagent
238 (package
239 (name "spice-vdagent")
240 (version "0.17.0")
241 (source (origin
242 (method url-fetch)
243 (uri (string-append
244 "http://www.spice-space.org/download/releases/"
245 "spice-vdagent-" version ".tar.bz2"))
246 (sha256
247 (base32
248 "0gdkyylyg1hksg0i0anvznqfli2q39335fnrmcd6847frpc8njpi"))))
249 (build-system gnu-build-system)
250 (arguments
251 `(#:configure-flags
252 '("--localstatedir=/var")
253 #:phases
254 (modify-phases %standard-phases
255 (add-after 'unpack 'patch-makefile.in
256 (lambda _
257 (substitute* "Makefile.in"
258 (((string-append "\\$\\(mkdir_p\\) \\$\\(DESTDIR\\)"
259 "\\$\\(localstatedir\\)/run/spice-vdagentd"))
260 "-$(mkdir_p) $(DESTDIR)$(localstatedir)/run/spice-vdagentd"))
e02cd2b8
DC
261 #t))
262 (add-after 'unpack 'patch-spice-vdagent.desktop
263 (lambda* (#:key outputs #:allow-other-keys)
264 (substitute* "data/spice-vdagent.desktop"
3f995aaf 265 (("Exec=/usr/bin/spice-vdagent")
e02cd2b8
DC
266 (string-append "Exec=" (assoc-ref outputs "out")
267 "/bin/spice-vdagent")))
33b0f4a4
DC
268 #t)))))
269 (inputs
270 `(("alsa-lib" ,alsa-lib)
271 ("dbus" ,dbus)
272 ("glib" ,glib)
273 ("libpciaccess" ,libpciaccess)
274 ("libx11" ,libx11)
275 ("libxext" ,libxext)
276 ("libxfixes" ,libxfixes)
277 ("libxinerama" ,libxinerama)
278 ("libxrandr" ,libxrandr)
279 ("spice-protocol" ,spice-protocol)))
280 (native-inputs
281 `(("pkg-config" ,pkg-config)))
282 (synopsis "Spice agent for Linux")
283 (description "Spice-vdagent enables sharing the clipboard and guest display
284resolution scaling on graphical console window resize.")
d5ae997a 285 (home-page "https://www.spice-space.org")
33b0f4a4 286 (license license:gpl3+)))
6144dff5
DC
287
288(define-public virt-viewer
289 (package
290 (name "virt-viewer")
800248fe 291 (version "7.0")
6144dff5
DC
292 (source (origin
293 (method url-fetch)
294 (uri (string-append
295 "https://virt-manager.org/download/sources/virt-viewer/"
296 "virt-viewer-" version ".tar.gz"))
297 (sha256
298 (base32
800248fe 299 "00y9vi69sja4pkrfnvrkwsscm41bqrjzvp8aijb20pvg6ymczhj7"))))
6144dff5
DC
300 (build-system gnu-build-system)
301 (inputs
302 `(("gtk+" ,gtk+)
303 ("libcap" ,libcap)
304 ("libxml2" ,libxml2)
f54510d2 305 ("spice-gtk" ,spice-gtk)))
6144dff5
DC
306 (native-inputs
307 `(("glib:bin" ,glib "bin")
308 ("intltool" ,intltool)
309 ("pkg-config" ,pkg-config)))
310 (arguments
311 `(#:configure-flags
312 '("--with-spice-gtk")
313 #:phases
314 (modify-phases %standard-phases
315 (add-after
316 'install 'wrap-remote-viewer
317 (lambda* (#:key inputs outputs #:allow-other-keys)
318 (let ((out (assoc-ref outputs "out"))
319 (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
320 (wrap-program (string-append out "/bin/remote-viewer")
321 `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))))
322 #t)))))
323 (synopsis "Graphical console client for virtual machines")
324 (description "Graphical console client for virtual machines using SPICE or
325VNC.")
326 (home-page "https://virt-manager.org")
327 (license license:gpl2+)))