aboutsummaryrefslogtreecommitdiff
path: root/gnu
diff options
context:
space:
mode:
authorMarius Bakke <marius@gnu.org>2022-09-09 23:04:13 +0200
committerMarius Bakke <marius@gnu.org>2022-09-09 23:04:13 +0200
commit9ef33dce949214d018774a4ff82f069b1a5e1f0f (patch)
tree232590cdca27fc7c0a047d1903db7dbd0a6b1f40 /gnu
parent5fcbbe37c08dbe913d62523695a19357a08e2701 (diff)
parent8fbd8c82455e6f1bbbe623965b2452f8f8a01242 (diff)
downloadguix-9ef33dce949214d018774a4ff82f069b1a5e1f0f.tar
guix-9ef33dce949214d018774a4ff82f069b1a5e1f0f.tar.gz
Merge branch 'staging' into core-updates
Diffstat (limited to 'gnu')
-rw-r--r--gnu/bootloader.scm53
-rw-r--r--gnu/bootloader/grub.scm73
-rw-r--r--gnu/packages/build-tools.scm34
-rw-r--r--gnu/packages/crates-io.scm2
-rw-r--r--gnu/packages/emacs-xyz.scm67
-rw-r--r--gnu/packages/emulators.scm4
-rw-r--r--gnu/packages/gnome.scm30
-rw-r--r--gnu/packages/imagemagick.scm52
-rw-r--r--gnu/packages/lisp-xyz.scm620
-rw-r--r--gnu/packages/patches/qemu-build-info-manual.patch49
-rw-r--r--gnu/packages/patches/qemu-fix-agent-paths.patch37
-rw-r--r--gnu/packages/python-check.scm8
-rw-r--r--gnu/packages/python-xyz.scm20
-rw-r--r--gnu/packages/rust-apps.scm2
-rw-r--r--gnu/packages/security-token.scm2
-rw-r--r--gnu/packages/spice.scm14
-rw-r--r--gnu/packages/virtualization.scm303
-rw-r--r--gnu/packages/web.scm2
-rw-r--r--gnu/services/virtualization.scm7
19 files changed, 1044 insertions, 335 deletions
diff --git a/gnu/bootloader.scm b/gnu/bootloader.scm
index 77c05e8946..da65b9d5d5 100644
--- a/gnu/bootloader.scm
+++ b/gnu/bootloader.scm
@@ -34,6 +34,8 @@
#:use-module (guix diagnostics)
#:use-module (guix i18n)
#:use-module (srfi srfi-1)
+ #:use-module (srfi srfi-34)
+ #:use-module (srfi srfi-35)
#:use-module (ice-9 match)
#:export (menu-entry
menu-entry?
@@ -46,6 +48,7 @@
menu-entry-multiboot-kernel
menu-entry-multiboot-arguments
menu-entry-multiboot-modules
+ menu-entry-chain-loader
menu-entry->sexp
sexp->menu-entry
@@ -104,8 +107,27 @@
(multiboot-arguments menu-entry-multiboot-arguments
(default '())) ; list of string-valued gexps
(multiboot-modules menu-entry-multiboot-modules
- (default '()))) ; list of multiboot commands, where
+ (default '())) ; list of multiboot commands, where
; a command is a list of <string>
+ (chain-loader menu-entry-chain-loader
+ (default #f))) ; string, path of efi file
+
+(define (report-menu-entry-error menu-entry)
+ (raise
+ (condition
+ (&message
+ (message
+ (format #f (G_ "invalid menu-entry: ~a") menu-entry)))
+ (&fix-hint
+ (hint
+ (G_ "Please chose only one of:
+@enumerate
+@item direct boot by specifying fields @code{linux},
+@code{linux-arguments} and @code{linux-modules},
+@item multiboot by specifying fields @code{multiboot-kernel},
+@code{multiboot-arguments} and @code{multiboot-modules},
+@item chain-loader by specifying field @code{chain-loader}.
+@end enumerate"))))))
(define (menu-entry->sexp entry)
"Return ENTRY serialized as an sexp."
@@ -117,8 +139,9 @@
`(label ,(file-system-label->string label)))
(_ device)))
(match entry
- (($ <menu-entry> label device mount-point linux linux-arguments initrd #f
- ())
+ (($ <menu-entry> label device mount-point
+ (? identity linux) linux-arguments (? identity initrd)
+ #f () () #f)
`(menu-entry (version 0)
(label ,label)
(device ,(device->sexp device))
@@ -127,14 +150,23 @@
(linux-arguments ,linux-arguments)
(initrd ,initrd)))
(($ <menu-entry> label device mount-point #f () #f
- multiboot-kernel multiboot-arguments multiboot-modules)
+ (? identity multiboot-kernel) multiboot-arguments
+ multiboot-modules #f)
`(menu-entry (version 0)
(label ,label)
(device ,(device->sexp device))
(device-mount-point ,mount-point)
(multiboot-kernel ,multiboot-kernel)
(multiboot-arguments ,multiboot-arguments)
- (multiboot-modules ,multiboot-modules)))))
+ (multiboot-modules ,multiboot-modules)))
+ (($ <menu-entry> label device mount-point #f () #f #f () ()
+ (? identity chain-loader))
+ `(menu-entry (version 0)
+ (label ,label)
+ (device ,(device->sexp device))
+ (device-mount-point ,mount-point)
+ (chain-loader ,chain-loader)))
+ (_ (report-menu-entry-error entry))))
(define (sexp->menu-entry sexp)
"Turn SEXP, an sexp as returned by 'menu-entry->sexp', into a <menu-entry>
@@ -171,7 +203,16 @@ record."
(device-mount-point mount-point)
(multiboot-kernel multiboot-kernel)
(multiboot-arguments multiboot-arguments)
- (multiboot-modules multiboot-modules)))))
+ (multiboot-modules multiboot-modules)))
+ (('menu-entry ('version 0)
+ ('label label) ('device device)
+ ('device-mount-point mount-point)
+ ('chain-loader chain-loader) _ ...)
+ (menu-entry
+ (label label)
+ (device (sexp->device device))
+ (device-mount-point mount-point)
+ (chain-loader chain-loader)))))
;;;
diff --git a/gnu/bootloader/grub.scm b/gnu/bootloader/grub.scm
index 4f18c9b518..7283257354 100644
--- a/gnu/bootloader/grub.scm
+++ b/gnu/bootloader/grub.scm
@@ -374,44 +374,57 @@ when booting a root file system on a Btrfs subvolume."
(let ((label (menu-entry-label entry))
(linux (menu-entry-linux entry))
(device (menu-entry-device entry))
- (device-mount-point (menu-entry-device-mount-point entry)))
- (if linux
- (let ((arguments (menu-entry-linux-arguments entry))
- (linux (normalize-file linux
- device-mount-point
- store-directory-prefix))
- (initrd (normalize-file (menu-entry-initrd entry)
- device-mount-point
- store-directory-prefix)))
- ;; Here DEVICE is the store and DEVICE-MOUNT-POINT is its mount point.
- ;; Use the right file names for LINUX and INITRD in case
- ;; DEVICE-MOUNT-POINT is not "/", meaning that the store is on a
- ;; separate partition.
-
- ;; When BTRFS-SUBVOLUME-FILE-NAME is defined, prepend it the linux and
- ;; initrd paths, to allow booting from a Btrfs subvolume.
- #~(format port "menuentry ~s {
+ (device-mount-point (menu-entry-device-mount-point entry))
+ (multiboot-kernel (menu-entry-multiboot-kernel entry))
+ (chain-loader (menu-entry-chain-loader entry)))
+ (cond
+ (linux
+ (let ((arguments (menu-entry-linux-arguments entry))
+ (linux (normalize-file linux
+ device-mount-point
+ store-directory-prefix))
+ (initrd (normalize-file (menu-entry-initrd entry)
+ device-mount-point
+ store-directory-prefix)))
+ ;; Here DEVICE is the store and DEVICE-MOUNT-POINT is its mount point.
+ ;; Use the right file names for LINUX and INITRD in case
+ ;; DEVICE-MOUNT-POINT is not "/", meaning that the store is on a
+ ;; separate partition.
+
+ ;; When BTRFS-SUBVOLUME-FILE-NAME is defined, prepend it the linux and
+ ;; initrd paths, to allow booting from a Btrfs subvolume.
+ #~(format port "menuentry ~s {
~a
linux ~a ~a
initrd ~a
}~%"
- #$label
- #$(grub-root-search device linux)
- #$linux (string-join (list #$@arguments))
- #$initrd))
- (let ((kernel (menu-entry-multiboot-kernel entry))
- (arguments (menu-entry-multiboot-arguments entry))
- (modules (menu-entry-multiboot-modules entry))
- (root-index 1)) ; XXX EFI will need root-index 2
- #~(format port "
+ #$label
+ #$(grub-root-search device linux)
+ #$linux (string-join (list #$@arguments))
+ #$initrd)))
+ (multiboot-kernel
+ (let ((kernel (menu-entry-multiboot-kernel entry))
+ (arguments (menu-entry-multiboot-arguments entry))
+ (modules (menu-entry-multiboot-modules entry))
+ (root-index 1)) ; XXX EFI will need root-index 2
+ #~(format port "
menuentry ~s {
multiboot ~a root=device:hd0s~a~a~a
}~%"
+ #$label
+ #$kernel
+ #$root-index (string-join (list #$@arguments) " " 'prefix)
+ (string-join (map string-join '#$modules)
+ "\n module " 'prefix))))
+ (chain-loader
+ #~(format port "
+menuentry ~s {
+ ~a
+ chainloader ~a
+}~%"
#$label
- #$kernel
- #$root-index (string-join (list #$@arguments) " " 'prefix)
- (string-join (map string-join '#$modules)
- "\n module " 'prefix))))))
+ #$(grub-root-search device chain-loader)
+ #$chain-loader)))))
(define (crypto-devices)
(define (crypto-device->cryptomount dev)
diff --git a/gnu/packages/build-tools.scm b/gnu/packages/build-tools.scm
index 1a7cfae3d1..b5b9d501f9 100644
--- a/gnu/packages/build-tools.scm
+++ b/gnu/packages/build-tools.scm
@@ -263,10 +263,10 @@ files and generates build instructions for the Ninja build system.")
;; X11 license.
(license (list license:bsd-3 license:x11)))))
-(define-public meson
+(define-public meson-0.63
(package
(name "meson")
- (version "0.60.3")
+ (version "0.63.2")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/mesonbuild/meson/"
@@ -274,9 +274,7 @@ files and generates build instructions for the Ninja build system.")
version ".tar.gz"))
(sha256
(base32
- "13mrrizg4vl6n5k7fz6amyafnn3i097dcarr552qc0ca6nlmzjl7"))
- (patches (search-patches
- "meson-allow-dirs-outside-of-prefix.patch"))))
+ "1gwba75z47m2hv3w08gw8sgqgbknjr7rj1qwr510bgknxwbjy8hn"))))
(build-system python-build-system)
(arguments
`(;; FIXME: Tests require many additional inputs and patching many
@@ -309,11 +307,10 @@ files}, are written in a custom domain-specific language (@dfn{DSL}) that
resembles Python.")
(license license:asl2.0)))
-;;; This older Meson variant is kept for now for gtkmm and others that may
-;;; have problems with 0.60.
-(define-public meson-0.59
- (package/inherit meson
- (version "0.59.4")
+(define-public meson-0.60
+ (package
+ (inherit meson-0.63)
+ (version "0.60.3")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/mesonbuild/meson/"
@@ -321,14 +318,16 @@ resembles Python.")
version ".tar.gz"))
(sha256
(base32
- "117cm8794h291lca1wljz1pwnzidgbvrpg3mw3np6ksma368hyd7"))
+ "13mrrizg4vl6n5k7fz6amyafnn3i097dcarr552qc0ca6nlmzjl7"))
(patches (search-patches
"meson-allow-dirs-outside-of-prefix.patch"))))))
-(define-public meson-0.63
+;;; This older Meson variant is kept for now for gtkmm and others that may
+;;; have problems with 0.60.
+(define-public meson-0.59
(package
- (inherit meson)
- (version "0.63.1")
+ (inherit meson-0.60)
+ (version "0.59.4")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/mesonbuild/meson/"
@@ -336,7 +335,12 @@ resembles Python.")
version ".tar.gz"))
(sha256
(base32
- "1sb5rdra5zc6c3ni8x65zs7r7vsnbarammf5440zzmhkf8li7zh6"))))))
+ "117cm8794h291lca1wljz1pwnzidgbvrpg3mw3np6ksma368hyd7"))
+ (patches (search-patches
+ "meson-allow-dirs-outside-of-prefix.patch"))))))
+
+;; TODO: Bump this in the next rebuild cycle.
+(define-public meson meson-0.60)
(define-public premake4
(package
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index e4182499a4..7688efb69d 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -46062,6 +46062,8 @@ in your code.")
(("rust-unicode-ident" ,rust-unicode-ident-1))
#:cargo-development-inputs
(("rust-quote" ,rust-quote-1))))
+ ;; This is necessary for downstream packages such as rust-wayland-scanner
+ (inputs (list rust-unicode-ident-1))
(home-page "https://github.com/dtolnay/proc-macro2")
(synopsis "Stable implementation of the upcoming new `proc_macro` API")
(description "This package provides a stable implementation of the upcoming new
diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index 2af9fd945b..508418ee92 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -522,6 +522,31 @@ repositories through the
server}. The main advantage compared to @code{vc-hg} is speed.")
(license license:gpl3+)))
+(define-public emacs-telephone-line
+ (let ((commit "6f3455a365912e8f0c45a2240ea79507dee45ade")
+ (revision "0"))
+ (package
+ (name "emacs-telephone-line")
+ (version (git-version "0.5" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri
+ (git-reference
+ (url "https://github.com/dbordak/telephone-line")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1hnd6wnc52sc0ckriqnhaz64pyjk027y0dpcmh2zhpd27i8d4hmq"))))
+ (build-system emacs-build-system)
+ (home-page "https://github.com/dbordak/telephone-line")
+ (synopsis "Implementation of Powerline for Emacs")
+ (description
+ "Telephone Line is a new implementation of Powerline for Emacs with
+optional baked-in Evil support, antialiased separators, and an easy
+configuration language which makes it trivial to write your own themes.")
+ (license license:gpl3+))))
+
(define-public emacs-terminal-here
(package
(name "emacs-terminal-here")
@@ -2680,7 +2705,7 @@ shine on top of your cursor so you know where it is.")
(define-public emacs-counsel-bbdb
(package
(name "emacs-counsel-bbdb")
- (version "0.0.4")
+ (version "0.0.5")
(source
(origin
(method git-fetch)
@@ -2689,9 +2714,9 @@ shine on top of your cursor so you know where it is.")
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "0bki658mvlchqf3prkzxz4217a95cxm58c1qmf84yp2n8h6gd0d8"))))
+ (base32 "1jrj7hx6y518np3xcnarbj0c43lglcf9gww3fhfqp7lzxl9hvi8s"))))
(build-system emacs-build-system)
- (propagated-inputs (list emacs-ivy))
+ (propagated-inputs (list emacs-bbdb emacs-ivy))
(home-page "https://github.com/redguardtoo/counsel-bbdb")
(synopsis "Ivy interface for BBDB")
(description "This Ivy extension enables the use of @code{ivy-mode} to input
@@ -3306,7 +3331,7 @@ be regarded as @code{emacs-company-quickhelp} for @code{emacs-corfu}.")
(define-public emacs-cape
(package
(name "emacs-cape")
- (version "0.8")
+ (version "0.9")
(source
(origin
(method git-fetch)
@@ -3315,7 +3340,7 @@ be regarded as @code{emacs-company-quickhelp} for @code{emacs-corfu}.")
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "0zv3hcnarwyhj4hhfk9kz4gzshks10vd5zfsmpv5nlbhvwp69j3p"))))
+ (base32 "09lzzhx438s9wlpmiyyx9bbb2hlscf415f080bkz6gyw4nsdh0g4"))))
(build-system emacs-build-system)
(home-page "https://github.com/minad/cape")
(synopsis "Completion at point extensions for Emacs")
@@ -6698,14 +6723,14 @@ user.")
(define-public emacs-subed
(package
(name "emacs-subed")
- (version "1.0.7")
+ (version "1.0.8")
(source (origin
(method url-fetch)
(uri (string-append "https://elpa.nongnu.org/nongnu/subed-"
version ".tar"))
(sha256
(base32
- "0js48yar8xgj3wjmlkv3k5208q1zvv74sg4lhk6asiy4cq3pqjia"))))
+ "05dx4ywma7n73d0cihf4v8ayihm7gmfqpzvdycq4yk0zkxb958z1"))))
(arguments
(list
#:tests? #t
@@ -8871,7 +8896,7 @@ built-in custom themes.")
(define-public emacs-gruvbox-theme
(package
(name "emacs-gruvbox-theme")
- (version "1.30.0")
+ (version "1.30.1")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -8880,7 +8905,7 @@ built-in custom themes.")
(file-name (git-file-name name version))
(sha256
(base32
- "1dzaivis9cpqzb53qmkmhijr5l4hl2l3yr2412jxrz2jmqi3q4c5"))))
+ "0dgjf86i8179l1nsjyc20chysqmy8yhphpd5lzv2ypx79l4z3jka"))))
(build-system emacs-build-system)
(propagated-inputs
(list emacs-autothemer))
@@ -9230,7 +9255,7 @@ style, or as multiple word prefixes.")
(define-public emacs-consult
(package
(name "emacs-consult")
- (version "0.18")
+ (version "0.19")
(source
(origin
(method git-fetch)
@@ -9238,7 +9263,7 @@ style, or as multiple word prefixes.")
(url "https://github.com/minad/consult")
(commit version)))
(sha256
- (base32 "0sy4rn1vjk1g50r8z14hzj8lds6s7ij2zkjqfi6mfash5il75wnq"))
+ (base32 "1lb7ci1kkgv07c4hcfxisr5zjx68hq15bqf4x3bhmnn13x38j7jw"))
(file-name (git-file-name name version))))
(build-system emacs-build-system)
(propagated-inputs (list emacs-compat))
@@ -9393,7 +9418,7 @@ expansion and overwriting the marked region with a new snippet completion.")
(define-public emacs-marginalia
(package
(name "emacs-marginalia")
- (version "0.13")
+ (version "0.14")
(source
(origin
(method git-fetch)
@@ -9402,7 +9427,7 @@ expansion and overwriting the marked region with a new snippet completion.")
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "1qk6j7l39z92h4kvvbwcs85ilyx3d6y0l8zm33iar2pjnyks1kq3"))))
+ (base32 "1gbcjw447vxd3ivfjgnya2ix3w791kvbika1v9bzj8s7i996fb6f"))))
(build-system emacs-build-system)
(home-page "https://github.com/minad/marginalia")
(synopsis "Marginalia in the minibuffer completions")
@@ -15136,7 +15161,7 @@ in Emacs.")
(define-public emacs-php-mode
(package
(name "emacs-php-mode")
- (version "1.24.0")
+ (version "1.24.1")
(source
(origin
(method git-fetch)
@@ -15145,7 +15170,7 @@ in Emacs.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "0bs9q62bd7885c39v7x1qz3w1fhpmpdgm72xwsk2yygw0ii425nn"))))
+ (base32 "06xgmlbvqhkrnk6390mdbpjij34msxxwzqmagi6zpwpsf38mn6qf"))))
(build-system emacs-build-system)
(arguments
`(#:phases
@@ -15217,13 +15242,13 @@ containing words from the Rime project.")
(define-public emacs-pyim
(package
(name "emacs-pyim")
- (version "5.2.3")
+ (version "5.2.4")
(source
(origin
(method url-fetch)
(uri (string-append "https://elpa.gnu.org/packages/pyim-" version ".tar"))
(sha256
- (base32 "189r0qkd8nv5zjg2ljbzbj086jb8xbl4yd1jliz4azaprv8fhqv0"))))
+ (base32 "1dzl4xaf31nyjb5hnwwf29i75x0i8dakpmmagbn4ks5hi3jl2ig0"))))
(build-system emacs-build-system)
(propagated-inputs
(list emacs-async emacs-popup emacs-posframe emacs-xr))
@@ -19046,7 +19071,7 @@ according to a parsing expression grammar.")
(define-public emacs-eldev
(package
(name "emacs-eldev")
- (version "1.2.1")
+ (version "1.2.2")
(source
(origin
(method git-fetch)
@@ -19055,7 +19080,7 @@ according to a parsing expression grammar.")
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "1zf3vrk9yw4f4fj31g3vphjd3rhr2hv3q2crkdsgi7z5xlb8frds"))))
+ (base32 "0d6wbfim0q81sm5m45fjc6n0v6nk32qrgas5nzrs0vslym4bfxna"))))
(build-system emacs-build-system)
(arguments
(list
@@ -20153,14 +20178,14 @@ or expressions with SVG rounded box labels that are fully customizable.")
(define-public emacs-kind-icon
(package
(name "emacs-kind-icon")
- (version "0.1.6")
+ (version "0.1.7")
(source
(origin
(method url-fetch)
(uri (string-append "https://elpa.gnu.org/packages/kind-icon-"
version ".tar"))
(sha256
- (base32 "0ac53qrz217b054z51244r7whvjmyrq4941ld0bgl9crssrhb588"))))
+ (base32 "02imi2qj329yrqvs23d4z7fv8bbaz0fvya6zdswb38blpdri4cn1"))))
(build-system emacs-build-system)
(propagated-inputs (list emacs-svg-lib))
(home-page "https://github.com/jdtsmith/kind-icon")
diff --git a/gnu/packages/emulators.scm b/gnu/packages/emulators.scm
index 92af9adced..85912caf7f 100644
--- a/gnu/packages/emulators.scm
+++ b/gnu/packages/emulators.scm
@@ -773,7 +773,7 @@ and Game Boy Color games.")
(define-public sameboy
(package
(name "sameboy")
- (version "0.15")
+ (version "0.15.5")
(source
(origin
(method git-fetch)
@@ -782,7 +782,7 @@ and Game Boy Color games.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "0rhl9khc5pxbikjsq4aha5cpqfxf3bnxalc94idd4haw0zf892q9"))))
+ (base32 "0ly9x6cch0wdcnsp0qmrdl6r2h8805jp8hwji3fwswj8rlhxkpa7"))))
(build-system gnu-build-system)
(native-inputs
(list rgbds pkg-config))
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 6cde000802..76deba554c 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -884,6 +884,7 @@ tomorrow, the rest of the week and for special occasions.")
(build-system meson-build-system)
(arguments
`(#:glib-or-gtk? #t
+ #:meson ,meson-0.60
#:configure-flags
(list "-Ddogtail=false" ; Not available
;; Required for RUNPATH validation.
@@ -955,6 +956,7 @@ cloud integration is offered through GNOME Online Accounts.")
(build-system meson-build-system)
(arguments
`(#:glib-or-gtk? #t
+ #:meson ,meson-0.60
#:phases
(modify-phases %standard-phases
(add-after 'install 'wrap-gnome-music
@@ -1557,6 +1559,7 @@ tour of all gnome components and allows the user to set them up.")
(build-system meson-build-system)
(arguments
`(#:glib-or-gtk? #t
+ #:meson ,meson-0.60
#:configure-flags
`("-Dsystemduserunitdir=/tmp/empty"
;; Enable nautilus extension for file sharing.
@@ -2034,6 +2037,7 @@ to other formats.")
(build-system meson-build-system)
(arguments
`(#:glib-or-gtk? #t
+ #:meson ,meson-0.60
#:phases (modify-phases %standard-phases
(add-after 'install 'wrap
(lambda* (#:key outputs #:allow-other-keys)
@@ -2287,7 +2291,8 @@ The gnome-about program helps find which version of GNOME is installed.")
"0hpyi0sz3gcqqs9lkwyk8b6hr39m3n27432x98kxr436jj37dk6j"))))
(build-system meson-build-system)
(arguments
- `(#:phases
+ `(#:meson ,meson-0.60
+ #:phases
(modify-phases %standard-phases
(add-after 'unpack 'patch-post-install-script
(lambda _
@@ -2331,7 +2336,8 @@ the font would look under various sizes.")
"00fsf82ycac8qi0kkiq759p6jrn63pyz4ksn4wnq7m4ax94zq289"))))
(build-system meson-build-system)
(arguments
- '(#:phases
+ `(#:meson ,meson-0.60
+ #:phases
(modify-phases %standard-phases
;; These fail because /var/lib/dbus/machine-id is not present in the
;; build environment.
@@ -2540,6 +2546,7 @@ forgotten when the session ends.")
(build-system meson-build-system)
(arguments
`(#:glib-or-gtk? #t
+ #:meson ,meson-0.60
#:build-type "release"
#:configure-flags
'("-Dnautilus=false"
@@ -3134,6 +3141,7 @@ API add-ons to make GTK+ widgets OpenGL-capable.")
(build-system meson-build-system)
(arguments
(list
+ #:meson meson-0.60
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'skip-gtk-update-icon-cache
@@ -5554,6 +5562,7 @@ services for numerous locations.")
(build-system meson-build-system)
(arguments
`(#:glib-or-gtk? #t
+ #:meson ,meson-0.60
#:configure-flags
(list (string-append "-Dudev_dir="
(assoc-ref %outputs "out") "/lib/udev")
@@ -6402,6 +6411,7 @@ supports playlists, song ratings, and any codecs installed through gstreamer.")
(build-system meson-build-system)
(arguments
`(#:glib-or-gtk? #t
+ #:meson ,meson-0.60
#:configure-flags
;; Otherwise, the RUNPATH will lack the final 'eog' path component.
(list (string-append "-Dc_link_args=-Wl,-rpath="
@@ -6663,7 +6673,8 @@ USB transfers with your high-level application or system daemon.")
(build-system meson-build-system)
;; TODO: Fix icons in home screen, About dialogue, and scan menu.
(arguments
- `(#:glib-or-gtk? #t))
+ `(#:glib-or-gtk? #t
+ #:meson ,meson-0.60))
(native-inputs
(list gettext-minimal
itstool
@@ -7161,7 +7172,8 @@ such as gzip tarballs.")
(base32
"02z0xr6sv9ibl7awbw9j4y05hf4jk1zgvsbbmh7n27hhjvsvc8pl"))))
(arguments
- `(#:glib-or-gtk? #t
+ `(#:meson ,meson-0.60
+ #:glib-or-gtk? #t
#:phases
(modify-phases %standard-phases
(add-after 'install 'wrap-gnome-session
@@ -7276,6 +7288,7 @@ javascript engine and the GObject introspection framework.")
(build-system meson-build-system)
(arguments
`(#:glib-or-gtk? #t
+ #:meson ,meson-0.60
#:configure-flags
;; Otherwise, the RUNPATH will lack the final path component.
(list (string-append "-Dc_link_args=-Wl,-rpath="
@@ -8488,6 +8501,8 @@ usage and information about running processes.")
(base32
"1a9ynlwwkb3wpg293ym517vmrkk63y809mmcv9a21k5yr199x53c"))))
(build-system meson-build-system)
+ (arguments
+ (list #:meson meson-0.60))
(native-inputs
`(("glib:bin" ,glib "bin") ; for gdbus-codegen, etc.
("gtk+" ,gtk+ "bin") ; gtk-update-icon-cache
@@ -8808,7 +8823,8 @@ like switching to windows and launching applications.")
(base32 "0jmr6igyzcj2wmx5v5ywaazvdz3hx6a6rys26yb4l4s71l281bvs"))))
(build-system meson-build-system)
(arguments
- `(#:glib-or-gtk? #t)) ; To wrap binaries and/or compile schemas
+ `(#:meson ,meson-0.60
+ #:glib-or-gtk? #t)) ; To wrap binaries and/or compile schemas
(native-inputs
(append
;; GJS depends on Rust, which is x86_64-only so far, so remove the GJS
@@ -9400,6 +9416,7 @@ associations for GNOME.")
libhandy))
(arguments
`(#:glib-or-gtk? #t
+ #:meson ,meson-0.60
#:phases
,#~(modify-phases %standard-phases
(add-after 'unpack 'fix-service-file
@@ -9760,6 +9777,7 @@ desktop. It supports world clock, stop watch, alarms, and count down timer.")
(build-system meson-build-system)
(arguments
`(#:glib-or-gtk? #t
+ #:meson ,meson-0.60
;; gnome-calendar has to be installed before the tests can be run
;; https://bugzilla.gnome.org/show_bug.cgi?id=788224
#:tests? #f
@@ -10683,6 +10701,7 @@ photo-booth-like software, such as Cheese.")
"1y92glc0d6w323x2bdbc0gdh1jdffvkbv6cwlwm1rx0wgvv1svqh"))))
(arguments
`(#:glib-or-gtk? #t
+ #:meson ,meson-0.60
;; Tests require GDK.
#:tests? #f
#:phases
@@ -11642,6 +11661,7 @@ integrate seamlessly with the GNOME desktop.")
(build-system meson-build-system)
(arguments
`(#:glib-or-gtk? #t
+ #:meson ,meson-0.60
#:configure-flags (list "-Drdp=false"
(string-append "-Dc_link_args=-Wl,-rpath="
(assoc-ref %outputs "out")
diff --git a/gnu/packages/imagemagick.scm b/gnu/packages/imagemagick.scm
index 06ed80cbac..6f6fa63c64 100644
--- a/gnu/packages/imagemagick.scm
+++ b/gnu/packages/imagemagick.scm
@@ -27,6 +27,7 @@
(define-module (gnu packages imagemagick)
#:use-module (guix packages)
+ #:use-module (guix gexp)
#:use-module (guix build-system gnu)
#:use-module (guix build-system perl)
#:use-module (guix download)
@@ -212,7 +213,7 @@ script.")
(define-public graphicsmagick
(package
(name "graphicsmagick")
- (version "1.3.36")
+ (version "1.3.38")
(source
(origin
(method url-fetch)
@@ -225,33 +226,34 @@ script.")
"/GraphicsMagick-" version ".tar.xz")))
(sha256
(base32
- "0ilg6fkppb4avzais1dvi3qf6ln7v3mzj7gjm83w7pwwfpg3ynsx"))))
+ "0x96wcspcqmkcy7jagfifgq2iamcf0ql9swvn6f2n79mb7dxj36n"))))
(build-system gnu-build-system)
(arguments
- `(#:configure-flags
- (list "--with-frozenpaths"
- "--enable-shared=yes"
- "--with-x=yes"
- "--with-quantum-depth=16" ; required by Octave
- "--enable-quantum-library-names"
- (string-append "--with-gs-font-dir="
- (assoc-ref %build-inputs "font-ghostscript")
- "/share/fonts/type1/ghostscript"))))
+ (list
+ #:configure-flags
+ #~(list "--with-frozenpaths"
+ "--enable-shared=yes"
+ "--with-x=yes"
+ "--with-quantum-depth=16" ;required by Octave
+ "--enable-quantum-library-names"
+ (string-append "--with-gs-font-dir="
+ (search-input-directory
+ %build-inputs "share/fonts/type1/ghostscript")))))
(inputs
- `(("graphviz" ,graphviz)
- ("ghostscript" ,ghostscript)
- ("font-ghostscript" ,font-ghostscript)
- ("lcms" ,lcms)
- ("libx11" ,libx11)
- ("libxml2" ,libxml2)
- ("libtiff" ,libtiff)
- ("libpng" ,libpng)
- ("libjpeg" ,libjpeg-turbo)
- ("libwebp" ,libwebp)
- ("freetype" ,freetype)
- ("bzip2" ,bzip2)
- ("xz" ,xz)
- ("zlib" ,zlib)))
+ (list bzip2
+ font-ghostscript
+ freetype
+ ghostscript
+ graphviz
+ lcms
+ libjpeg-turbo
+ libpng
+ libtiff
+ libwebp
+ libxml2
+ libx11
+ xz
+ zlib))
(native-inputs
(list pkg-config))
(outputs '("out" ; 13 MiB
diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm
index c7f2c8bc63..e533aa2a0f 100644
--- a/gnu/packages/lisp-xyz.scm
+++ b/gnu/packages/lisp-xyz.scm
@@ -117,6 +117,42 @@
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-19))
+(define-public sbcl-alexandria-plus
+ (let ((commit "adafb09838a84895bedb119f8253b89b6a04a2c5")
+ (revision "0"))
+ (package
+ (name "sbcl-alexandria-plus")
+ ;; Version is stated in the ASD file.
+ (version (git-version "1.1.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/Symbolics/alexandria-plus")
+ (commit commit)))
+ (file-name (git-file-name "cl-alexandria-plus" version))
+ (sha256
+ (base32 "1w9r19610h599303gqlx2x5n8mmdynss2gyl7xilg5h6v8z3hkfl"))))
+ (build-system asdf-build-system/sbcl)
+ (arguments
+ '(#:asd-systems '("alexandria+")))
+ (native-inputs
+ (list sbcl-parachute))
+ (inputs
+ (list sbcl-alexandria))
+ (home-page "https://symbolics.github.io/alexandria-plus/")
+ (synopsis "Conservative set of extensions to Alexandria utilities")
+ (description
+ "@code{cl-alexandria-plus} is a conservative set of extensions to
+@code{cl-alexandria} utilities.")
+ (license license:ms-pl))))
+
+(define-public cl-alexandria-plus
+ (sbcl-package->cl-source-package sbcl-alexandria-plus))
+
+(define-public ecl-alexandria-plus
+ (sbcl-package->ecl-package sbcl-alexandria-plus))
+
(define-public sbcl-alexandria
(package
(name "sbcl-alexandria")
@@ -22794,6 +22830,37 @@ functionality similar to what was originally found in @code{sdl2kit}.
(define-public ecl-glkit
(sbcl-package->ecl-package sbcl-glkit))
+(define-public sbcl-doplus
+ (package
+ (name "sbcl-doplus")
+ (version "1.1.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/alessiostalla/doplus")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name "cl-doplus" version))
+ (sha256
+ (base32 "1yvda9psw9m08d3bzdb8a2drvhrnr07a0rhza5ibk30v1dkwfw7c"))))
+ (build-system asdf-build-system/sbcl)
+ (native-inputs
+ (list sbcl-fiveam))
+ (inputs
+ (list sbcl-parse-declarations sbcl-fset))
+ (arguments
+ '(#:asd-systems '("doplus" "doplus-fset")))
+ (synopsis "Iteration macro for Common Lisp")
+ (description "@code{doplus} is an iteration macro for Common Lisp.")
+ (home-page "https://github.com/alessiostalla/doplus")
+ (license license:gpl3+)))
+
+(define-public cl-doplus
+ (sbcl-package->cl-source-package sbcl-doplus))
+
+(define-public ecl-doplus
+ (sbcl-package->ecl-package sbcl-doplus))
+
(define-public sbcl-trees
(let ((commit "7b06048af0248c4302088c758208276f9faf2beb"))
(package
@@ -22890,6 +22957,41 @@ operator in portable Common Lisp.")
(define-public ecl-amb
(sbcl-package->ecl-package sbcl-amb))
+(define-public sbcl-quicklisp-stats
+ (let ((commit "953b45c2212ae513d48a611d3dd09c846a6102cd")
+ (revision "0"))
+ (package
+ (name "sbcl-quicklisp-stats")
+ (version (git-version "0.0.1" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/phoe/quicklisp-stats")
+ (commit commit)))
+ (file-name (git-file-name "cl-quicklisp-stats" version))
+ (sha256
+ (base32 "0v8dgmlgd283n1g486q4sj2mghgdvgywg2nqp43nnrfc04mkvgc0"))))
+ (build-system asdf-build-system/sbcl)
+ (inputs
+ (list sbcl-alexandria
+ sbcl-drakma
+ sbcl-split-sequence))
+ (arguments
+ `(#:tests? #f)) ; There are no tests.
+ (synopsis "Fetches and operates on Quicklisp download statistics")
+ (description
+ "@code{cl-quicklisp-stats} is a system that fetches and performs basic
+operations on the Quicklisp download statistics.")
+ (home-page "https://github.com/phoe/quicklisp-stats/")
+ (license license:expat))))
+
+(define-public cl-quicklisp-stats
+ (sbcl-package->cl-source-package sbcl-quicklisp-stats))
+
+(define-public ecl-quicklisp-stats
+ (sbcl-package->ecl-package sbcl-quicklisp-stats))
+
(define-public sbcl-sketch
;; No release in years.
(let ((commit "4cc00b08e202c7adda41391463096cf9df1705c3"))
@@ -23254,6 +23356,524 @@ especially in a multi-threaded context.")
(define-public ecl-ndebug
(sbcl-package->ecl-package sbcl-ndebug))
+(define-public sbcl-canonicalized-initargs
+ (package
+ (name "sbcl-canonicalized-initargs")
+ (version "2.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/Hexstream/canonicalized-initargs")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name "cl-canonicalized-initargs" version))
+ (sha256
+ (base32 "0jmmjw86x9mmlfla4kdmdqf1fjrj0p2fmv1lc4k555mcf67mj2fq"))))
+ (build-system asdf-build-system/sbcl)
+ (native-inputs
+ (list sbcl-parachute))
+ (inputs
+ (list sbcl-cesdi
+ sbcl-closer-mop
+ sbcl-compatible-metaclasses
+ sbcl-enhanced-defclass
+ sbcl-enhanced-typep))
+ (home-page
+ "https://www.hexstreamsoft.com/libraries/canonicalized-initargs/")
+ (synopsis "Standard way to canonicalize slot values")
+ (description
+ "This package provides a standard way to canonicalize slot values.")
+ (license license:unlicense)))
+
+(define-public cl-canonicalized-initargs
+ (sbcl-package->cl-source-package sbcl-canonicalized-initargs))
+
+(define-public ecl-canonicalized-initargs
+ (sbcl-package->ecl-package sbcl-canonicalized-initargs))
+
+(define-public sbcl-enhanced-typep
+ (package
+ (name "sbcl-enhanced-typep")
+ (version "1.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/Hexstream/enhanced-typep")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name "cl-enhanced-typep" version))
+ (sha256
+ (base32 "0b22gddkbxnhmi71wa2h51495737lrvsqxnri7g1qdsl1hraml21"))))
+ (build-system asdf-build-system/sbcl)
+ (native-inputs
+ (list sbcl-enhanced-boolean sbcl-parachute))
+ (home-page "https://www.hexstreamsoft.com/libraries/enhanced-typep/")
+ (synopsis "Enhanced version of typep")
+ (description
+ "This package provides an enhanced version of @code{typep} that is exactly
+like the one in the Lisp spec, except it can also accept a single type argument,
+in which case it returns the appropriate closure.")
+ (license license:unlicense)))
+
+(define-public cl-enhanced-typep
+ (sbcl-package->cl-source-package sbcl-enhanced-typep))
+
+(define-public ecl-enhanced-typep
+ (sbcl-package->ecl-package sbcl-enhanced-typep))
+
+(define-public sbcl-enhanced-defclass
+ (package
+ (name "sbcl-enhanced-defclass")
+ (version "2.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/Hexstream/enhanced-defclass")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name "cl-enhanced-defclass" version))
+ (sha256
+ (base32 "142s5c3pl3x7xdawzsj8pdxiqp4wh6fcajf4la5msvnxgf66d8wg"))))
+ (build-system asdf-build-system/sbcl)
+ (native-inputs
+ (list sbcl-parachute))
+ (inputs
+ (list sbcl-cesdi
+ sbcl-closer-mop
+ sbcl-compatible-metaclasses
+ sbcl-enhanced-eval-when
+ sbcl-object-class
+ sbcl-shared-preferences
+ sbcl-simple-guess))
+ (home-page "https://www.hexstreamsoft.com/libraries/enhanced-defclass/")
+ (synopsis "Extensible implementation of defclass")
+ (description
+ "This package provides an extensible implementation of defclass that can
+accurately control the expansion according to the metaclass and automatically
+detect the suitable metaclass by analyzing the @code{defclass} form.")
+ (license license:unlicense)))
+
+(define-public cl-enhanced-defclass
+ (sbcl-package->cl-source-package sbcl-enhanced-defclass))
+
+(define-public ecl-enhanced-defclass
+ (sbcl-package->ecl-package sbcl-enhanced-defclass))
+
+(define-public sbcl-object-class
+ (package
+ (name "sbcl-object-class")
+ (version "1.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/Hexstream/object-class")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name "cl-object-class" version))
+ (sha256
+ (base32 "0qagmd2mxbr8b60l0y3jccj0maxjchds96p935pd3q805ry50683"))))
+ (build-system asdf-build-system/sbcl)
+ (native-inputs
+ (list sbcl-parachute))
+ (inputs
+ (list sbcl-closer-mop
+ sbcl-compatible-metaclasses
+ sbcl-enhanced-find-class))
+ (home-page "https://www.hexstreamsoft.com/libraries/object-class/")
+ (synopsis "Cluster special subclasses of the standard-object")
+ (description
+ "This package ensures that special subclasses of standard-object cluster
+right in front of standard-object in the class precedence list.")
+ (license license:unlicense)))
+
+(define-public cl-object-class
+ (sbcl-package->cl-source-package sbcl-object-class))
+
+(define-public ecl-object-class
+ (sbcl-package->ecl-package sbcl-object-class))
+
+(define-public sbcl-shared-preferences
+ (package
+ (name "sbcl-shared-preferences")
+ (version "1.1.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/Hexstream/shared-preferences")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name "cl-shared-preferences" version))
+ (sha256
+ (base32 "12m4kaba2lxndkjw30a6y2rq16fflh5016lp74l7pf3v0y3j1ydf"))))
+ (build-system asdf-build-system/sbcl)
+ (native-inputs
+ (list sbcl-parachute))
+ (inputs
+ (list sbcl-inheriting-readers
+ sbcl-trivial-garbage))
+ (home-page "https://www.hexstreamsoft.com/libraries/shared-preferences/")
+ (synopsis "Flexible specification of package-local preferences")
+ (description
+ "This package allows flexible specification of package-local preferences.")
+ (license license:unlicense)))
+
+(define-public cl-shared-preferences
+ (sbcl-package->cl-source-package sbcl-shared-preferences))
+
+(define-public ecl-shared-preferences
+ (sbcl-package->ecl-package sbcl-shared-preferences))
+
+(define-public sbcl-inheriting-readers
+ (package
+ (name "sbcl-inheriting-readers")
+ (version "1.0.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/Hexstream/inheriting-readers")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name "cl-inheriting-readers" version))
+ (sha256
+ (base32 "0km3mq6vx1q9qv6j3r4sqqcsdbnb5jar66bl0mzzpaacfvzbx68p"))))
+ (build-system asdf-build-system/sbcl)
+ (native-inputs
+ (list sbcl-parachute))
+ (inputs
+ (list sbcl-class-options
+ sbcl-closer-mop
+ sbcl-compatible-metaclasses))
+ (home-page "https://www.hexstreamsoft.com/libraries/inheriting-readers/")
+ (synopsis "Simple yet powerful value inheritance scheme")
+ (description
+ "This package provides a simple yet powerful value inheritance scheme.")
+ (license license:unlicense)))
+
+(define-public cl-inheriting-readers
+ (sbcl-package->cl-source-package sbcl-inheriting-readers))
+
+(define-public ecl-inheriting-readers
+ (sbcl-package->ecl-package sbcl-inheriting-readers))
+
+(define-public sbcl-simple-guess
+ (let ((commit "34744e3200a96e6aba285d70f91cdbd6c25508a6")
+ (revision "0"))
+ (package
+ (name "sbcl-simple-guess")
+ (version (git-version "1.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/Hexstream/simple-guess")
+ (commit commit)))
+ (file-name (git-file-name "cl-simple-guess" version))
+ (sha256
+ (base32 "0404vj7ln97x7rn9ypbw4rshs56nnpyjnh1z9k03s039s5q3kpv0"))))
+ (build-system asdf-build-system/sbcl)
+ (native-inputs
+ (list sbcl-fakenil sbcl-parachute))
+ (inputs
+ (list sbcl-cesdi
+ sbcl-closer-mop
+ sbcl-compatible-metaclasses
+ sbcl-evaled-when))
+ (home-page "https://www.hexstreamsoft.com/libraries/simple-guess/")
+ (synopsis "Extensible protocol for computing a guess using advisors")
+ (description
+ "This package defines a simple extensible protocol for computing a guess
+using advisors.")
+ (license license:unlicense))))
+
+(define-public cl-simple-guess
+ (sbcl-package->cl-source-package sbcl-simple-guess))
+
+(define-public ecl-simple-guess
+ (sbcl-package->ecl-package sbcl-simple-guess))
+
+(define-public sbcl-fakenil
+ (package
+ (name "sbcl-fakenil")
+ (version "1.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/Hexstream/fakenil")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name "cl-fakenil" version))
+ (sha256
+ (base32 "0ipqax3sgcs1dsgxz8d2pmfg324k6l35pn0nz89w5jl02fia61l3"))))
+ (build-system asdf-build-system/sbcl)
+ (native-inputs
+ (list sbcl-parachute))
+ (home-page "https://www.hexstreamsoft.com/libraries/fakenil/")
+ (synopsis "Provides a canonical stand-in for NIL")
+ (description
+ "This package provides a canonical stand-in for NIL for contexts where
+NIL means no value.")
+ (license license:unlicense)))
+
+(define-public cl-fakenil
+ (sbcl-package->cl-source-package sbcl-fakenil))
+
+(define-public ecl-fakenil
+ (sbcl-package->ecl-package sbcl-fakenil))
+
+(define-public sbcl-evaled-when
+ (let ((commit "c59f8ab20b846cac81d4be80d056a3d65676e8eb")
+ (revision "0"))
+ (package
+ (name "sbcl-evaled-when")
+ (version (git-version "1.0" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/Hexstream/evaled-when")
+ (commit commit)))
+ (file-name (git-file-name "cl-evaled-when" version))
+ (sha256
+ (base32 "07g1a50aairvsj57issb18si5a9r3skpbk05nlixmlj0mva3gkl3"))))
+ (build-system asdf-build-system/sbcl)
+ (native-inputs
+ (list sbcl-enhanced-boolean sbcl-parachute))
+ (inputs
+ (list sbcl-trivial-cltl2))
+ (home-page "https://www.hexstreamsoft.com/libraries/evaled-when/")
+ (synopsis "Extract and replicate the compile-time side-effects of forms")
+ (description
+ "This package provides a way of extracting and replicating the
+compile-time side-effects of forms.")
+ (license license:unlicense))))
+
+(define-public cl-evaled-when
+ (sbcl-package->cl-source-package sbcl-evaled-when))
+
+(define-public ecl-evaled-when
+ (sbcl-package->ecl-package sbcl-evaled-when))
+
+(define-public sbcl-enhanced-eval-when
+ (package
+ (name "sbcl-enhanced-eval-when")
+ (version "1.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/Hexstream/enhanced-eval-when")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name "cl-enhanced-eval-when" version))
+ (sha256
+ (base32 "1ws1v297plcbqmcvckg7vqzzgnrwfyx5kd7281r1wrhc26998rx2"))))
+ (build-system asdf-build-system/sbcl)
+ ;; https://github.com/Hexstream/enhanced-eval-when/issues/1
+ (arguments
+ (list #:tests? #f)) ; There are no tests in version 1.0.
+ (home-page "https://www.hexstreamsoft.com/libraries/enhanced-eval-when/")
+ (synopsis "Shortcuts for EVAL-WHEN")
+ (description
+ "This package provides an enhanced @code{EVAL-WHEN} macro that supports a
+shorthand for @code{(eval-when (:compile-toplevel :load-toplevel :execute) ...)},
+addressing concerns about verbosity.")
+ (license license:unlicense)))
+
+(define-public cl-enhanced-eval-when
+ (sbcl-package->cl-source-package sbcl-enhanced-eval-when))
+
+(define-public ecl-enhanced-eval-when
+ (sbcl-package->ecl-package sbcl-enhanced-eval-when))
+
+(define-public sbcl-enhanced-boolean
+ (package
+ (name "sbcl-enhanced-boolean")
+ (version "1.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/Hexstream/enhanced-boolean")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name "cl-enhanced-boolean" version))
+ (sha256
+ (base32 "17l18lz07fk2kg835vs6c3189d230n1rm9vghk3ls4i356gbq0gy"))))
+ (build-system asdf-build-system/sbcl)
+ (native-inputs
+ (list sbcl-parachute))
+ (home-page "https://www.hexstreamsoft.com/libraries/enhanced-boolean/")
+ (synopsis "Convert generalized booleans to booleans")
+ (description
+ "This package provides a canonical way of converting generalized booleans
+to booleans.")
+ (license license:unlicense)))
+
+(define-public cl-enhanced-boolean
+ (sbcl-package->cl-source-package sbcl-enhanced-boolean))
+
+(define-public ecl-enhanced-boolean
+ (sbcl-package->ecl-package sbcl-enhanced-boolean))
+
+(define-public sbcl-cesdi
+ (package
+ (name "sbcl-cesdi")
+ (version "1.0.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/Hexstream/cesdi")
+ (commit version)))
+ (file-name (git-file-name "cl-cesdi" version))
+ (sha256
+ (base32 "02f2pz5rw79ljkkx1ywh8nkpjj4g3z3s1lyvzqb8krbnx11wl0q9"))))
+ (build-system asdf-build-system/sbcl)
+ (native-inputs
+ (list sbcl-parachute))
+ (inputs
+ (list sbcl-closer-mop))
+ (home-page "https://www.hexstreamsoft.com/libraries/cesdi/")
+ (synopsis "Ergonomic initialization of effective slot definition objects")
+ (description
+ "This package provides a @code{compute-effective-slot-definition-initargs}
+generic function that allows for more ergonomic initialization of effective slot
+definition objects.")
+ (license license:unlicense)))
+
+(define-public cl-cesdi
+ (sbcl-package->cl-source-package sbcl-cesdi))
+
+(define-public ecl-cesdi
+ (sbcl-package->ecl-package sbcl-cesdi))
+
+(define-public sbcl-compatible-metaclasses
+ (package
+ (name "sbcl-compatible-metaclasses")
+ (version "1.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/Hexstream/compatible-metaclasses")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name "cl-compatible-metaclasses" version))
+ (sha256
+ (base32 "17cf74j400cl6sjslfhkv13lir85k705v63mx3dd4y6dl5hvsdh6"))))
+ (build-system asdf-build-system/sbcl)
+ (native-inputs
+ (list sbcl-parachute))
+ (inputs
+ (list sbcl-class-options
+ sbcl-closer-mop
+ sbcl-enhanced-find-class))
+ (home-page "https://www.hexstreamsoft.com/libraries/compatible-metaclasses/")
+ (synopsis "Simplifies class mixins by validating superclasses")
+ (description
+ "This library validates superclasses according to a simple substitution
+model, thereby greatly simplifying the definition of class mixins.")
+ (license license:unlicense)))
+
+(define-public cl-compatible-metaclasses
+ (sbcl-package->cl-source-package sbcl-compatible-metaclasses))
+
+(define-public ecl-compatible-metaclasses
+ (sbcl-package->ecl-package sbcl-compatible-metaclasses))
+
+(define-public sbcl-class-options
+ (package
+ (name "sbcl-class-options")
+ (version "1.0.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/Hexstream/class-options")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name "cl-class-options" version))
+ (sha256
+ (base32 "1dkgr1vbrsra44jznzz2bvdf8nlpdrrkjcqrfs8aa7axksda3bqk"))))
+ (build-system asdf-build-system/sbcl)
+ (native-inputs
+ (list sbcl-enhanced-boolean sbcl-parachute))
+ (inputs
+ (list sbcl-closer-mop sbcl-enhanced-find-class))
+ (home-page "https://www.hexstreamsoft.com/libraries/class-options/")
+ (synopsis "Accessing defining class and its options during modification")
+ (description
+ "This package provides easy access to the defining class and its options
+during initialization or reinitialization of its subcomponents.")
+ (license license:unlicense)))
+
+(define-public cl-class-options
+ (sbcl-package->cl-source-package sbcl-class-options))
+
+(define-public ecl-class-options
+ (sbcl-package->ecl-package sbcl-class-options))
+
+(define-public sbcl-enhanced-find-class
+ (package
+ (name "sbcl-enhanced-find-class")
+ (version "1.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/Hexstream/enhanced-find-class")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name "cl-enhanced-find-class" version))
+ (sha256
+ (base32 "1pf1mxb238zrmvgm9s0456s1x0m317ls23ls1d987riw69y3w9vx"))))
+ (build-system asdf-build-system/sbcl)
+ (native-inputs
+ (list sbcl-parachute))
+ (inputs
+ (list sbcl-closer-mop))
+ (home-page "https://www.hexstreamsoft.com/libraries/enhanced-find-class/")
+ (synopsis "Canonical way of converting class designators to classes")
+ (description
+ "This package provides a canonical way of converting class designators
+to classes.")
+ (license license:unlicense)))
+
+(define-public cl-enhanced-find-class
+ (sbcl-package->cl-source-package sbcl-enhanced-find-class))
+
+(define-public ecl-enhanced-find-class
+ (sbcl-package->ecl-package sbcl-enhanced-find-class))
+
+(define-public sbcl-definitions-systems
+ (package
+ (name "sbcl-definitions-systems")
+ (version "2.0.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/Hexstream/definitions-systems")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name "cl-definitions-systems" version))
+ (sha256
+ (base32 "009392mj0qdq4jy0dw5r41schnygwj286759yvyg7xja30a0psfq"))))
+ (build-system asdf-build-system/sbcl)
+ (native-inputs
+ (list sbcl-parachute))
+ (inputs
+ (list sbcl-canonicalized-initargs
+ sbcl-enhanced-defclass
+ sbcl-enhanced-find-class
+ sbcl-shared-preferences))
+ (home-page "https://www.hexstreamsoft.com/libraries/definitions-systems/")
+ (synopsis "Unified extensible way of processing named definitions")
+ (description
+ "@code{definitions-systems} provides a simple unified extensible way of
+processing named definitions.")
+ (license license:unlicense)))
+
+(define-public cl-definitions-systems
+ (sbcl-package->cl-source-package sbcl-definitions-systems))
+
+(define-public ecl-definitions-systems
+ (sbcl-package->ecl-package sbcl-definitions-systems))
+
(define-public sbcl-smug
(let ((commit "647a2428df297e1dd183ba7c19574bdb1320ae79")
(revision "0"))
diff --git a/gnu/packages/patches/qemu-build-info-manual.patch b/gnu/packages/patches/qemu-build-info-manual.patch
index 945c48a0e2..ff28266aaa 100644
--- a/gnu/packages/patches/qemu-build-info-manual.patch
+++ b/gnu/packages/patches/qemu-build-info-manual.patch
@@ -8,53 +8,14 @@ manual. The Texinfo format allows for more structure and info readers
provide more advanced navigation capabilities compared to manpages
readers.
-* configure (infodir): Add an --infodir option, which allows
-configuring the directory under which the info manuals are installed.
* docs/meson.build (texi, info): New targets.
Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
-diff --git a/configure b/configure
---- a/configure
-+++ b/configure
-@@ -951,6 +951,8 @@ for opt do
- static="yes"
- QEMU_PKG_CONFIG_FLAGS="--static $QEMU_PKG_CONFIG_FLAGS"
- ;;
-+ --infodir=*) infodir="$optarg"
-+ ;;
- --mandir=*) mandir="$optarg"
- ;;
- --bindir=*) bindir="$optarg"
-@@ -978,7 +980,7 @@ for opt do
- --host=*|--build=*|\
- --disable-dependency-tracking|\
- --sbindir=*|--sharedstatedir=*|\
-- --oldincludedir=*|--datarootdir=*|--infodir=*|\
-+ --oldincludedir=*|--datarootdir=*|\
- --htmldir=*|--dvidir=*|--pdfdir=*|--psdir=*)
- # These switches are silently ignored, for compatibility with
- # autoconf-generated configure scripts. This allows QEMU's
-@@ -1599,6 +1601,7 @@ else
- fi
- mandir="${mandir:-$prefix/share/man}"
- datadir="${datadir:-$prefix/share}"
-+infodir="${infodir:-$datadir/info}"
- docdir="${docdir:-$prefix/share/doc}"
- sysconfdir="${sysconfdir:-$prefix/etc}"
- local_statedir="${local_statedir:-$prefix/var}"
-@@ -1736,6 +1739,7 @@ Advanced options (experts only):
- --with-git-submodules=validate fail if git submodules are not up to date
- --with-git-submodules=ignore do not update or check git submodules (default if no .git dir)
- --static enable static build [$static]
-+ --infodir=PATH install info manual in PATH
- --mandir=PATH install man pages in PATH
- --datadir=PATH install firmware in PATH/$qemu_suffix
- --localedir=PATH install translation in PATH/$qemu_suffix
diff --git a/docs/meson.build b/docs/meson.build
--- a/docs/meson.build
+++ b/docs/meson.build
-@@ -104,4 +104,25 @@ if build_docs
+@@ -92,4 +92,25 @@ if build_docs
alias_target('sphinxdocs', sphinxdocs)
alias_target('html', sphinxdocs)
alias_target('man', sphinxmans)
@@ -83,7 +44,7 @@ diff --git a/docs/meson.build b/docs/meson.build
diff --git a/meson.build b/meson.build
--- a/meson.build
+++ b/meson.build
-@@ -35,6 +35,7 @@ endif
+@@ -37,6 +37,7 @@ endif
qemu_confdir = get_option('sysconfdir') / get_option('qemu_suffix')
qemu_datadir = get_option('datadir') / get_option('qemu_suffix')
qemu_docdir = get_option('docdir') / get_option('qemu_suffix')
@@ -91,11 +52,11 @@ diff --git a/meson.build b/meson.build
qemu_moddir = get_option('libdir') / get_option('qemu_suffix')
qemu_desktopdir = get_option('datadir') / 'applications'
-@@ -2433,6 +2434,7 @@ else
+@@ -3698,6 +3699,7 @@ else
summary_info += {'local state directory': 'queried at runtime'}
endif
- summary_info += {'Doc directory': get_option('docdir')}
-+summary_info += {'Info directory': get_option('infodir')}
+ summary_info += {'Doc directory': get_option('prefix') / get_option('docdir')}
++summary_info += {'Info directory': get_option('prefix') / get_option('infodir')}
summary_info += {'Build directory': meson.current_build_dir()}
summary_info += {'Source path': meson.current_source_dir()}
summary_info += {'GIT submodules': config_host['GIT_SUBMODULES']}
diff --git a/gnu/packages/patches/qemu-fix-agent-paths.patch b/gnu/packages/patches/qemu-fix-agent-paths.patch
index bae62fadbf..0c29890206 100644
--- a/gnu/packages/patches/qemu-fix-agent-paths.patch
+++ b/gnu/packages/patches/qemu-fix-agent-paths.patch
@@ -4,7 +4,6 @@ after the patch from the Nix package:
https://github.com/NixOS/nixpkgs/blob/master/pkgs/applications/virtualization/qemu/fix-qemu-ga.patch
diff --git a/qga/commands-posix.c b/qga/commands-posix.c
-index 75dbaab..b416b03 100644
--- a/qga/commands-posix.c
+++ b/qga/commands-posix.c
@@ -84,6 +84,7 @@ static void ga_wait_child(pid_t pid, int *status, Error **errp)
@@ -15,33 +14,33 @@ index 75dbaab..b416b03 100644
Error *local_err = NULL;
pid_t pid;
int status;
-@@ -91,10 +92,13 @@ void qmp_guest_shutdown(bool has_mode, const char *mode, Error **errp)
+@@ -101,10 +102,13 @@ void qmp_guest_shutdown(bool has_mode, const char *mode, Error **errp)
slog("guest-shutdown called, mode: %s", mode);
if (!has_mode || strcmp(mode, "powerdown") == 0) {
- shutdown_flag = "-P";
+ shutdown_flag = powerdown_flag;
+ command = "shutdown";
} else if (strcmp(mode, "halt") == 0) {
- shutdown_flag = "-H";
+ shutdown_flag = halt_flag;
+ command = "halt";
} else if (strcmp(mode, "reboot") == 0) {
- shutdown_flag = "-r";
+ shutdown_flag = reboot_flag;
+ command = "reboot";
} else {
error_setg(errp,
"mode is invalid (valid values are: halt|powerdown|reboot");
-@@ -109,6 +113,11 @@ void qmp_guest_shutdown(bool has_mode, const char *mode, Error **errp)
- reopen_fd_to_null(1);
- reopen_fd_to_null(2);
-
+@@ -123,6 +127,11 @@ void qmp_guest_shutdown(bool has_mode, const char *mode, Error **errp)
+ execl("/sbin/shutdown", "shutdown", shutdown_flag, "-g0", "-y",
+ "hypervisor initiated shutdown", (char *)NULL);
+ #else
+ /* try Guix’s shutdown/halt/reboot first */
+ char *path = g_strdup_printf("/run/current-system/profile/sbin/%s", command);
-+ execle(path, command, (char *)NULL, environ);
++ execl(path, command, (char *)NULL);
+ g_free(path);
+
- execle("/sbin/shutdown", "shutdown", "-h", shutdown_flag, "+0",
- "hypervisor initiated shutdown", (char *)NULL, environ);
- _exit(EXIT_FAILURE);
-@@ -158,10 +167,12 @@ void qmp_guest_set_time(bool has_time, int64_t time_ns, Error **errp)
+ execl("/sbin/shutdown", "shutdown", "-h", shutdown_flag, "+0",
+ "hypervisor initiated shutdown", (char *)NULL);
+ #endif
+@@ -159,10 +168,12 @@ void qmp_guest_set_time(bool has_time, int64_t time_ns, Error **errp)
Error *local_err = NULL;
struct timeval tv;
static const char hwclock_path[] = "/sbin/hwclock";
@@ -55,12 +54,12 @@ index 75dbaab..b416b03 100644
}
if (!hwclock_available) {
-@@ -207,6 +218,8 @@ void qmp_guest_set_time(bool has_time, int64_t time_ns, Error **errp)
+@@ -208,6 +219,8 @@ void qmp_guest_set_time(bool has_time, int64_t time_ns, Error **errp)
/* Use '/sbin/hwclock -w' to set RTC from the system time,
* or '/sbin/hwclock -s' to set the system time from RTC. */
-+ execle(hwclock_path_guix, "hwclock", has_time ? "-w" : "-s",
-+ NULL, environ);
- execle(hwclock_path, "hwclock", has_time ? "-w" : "-s",
- NULL, environ);
++ execl(hwclock_path_guix, "hwclock", has_time ? "-w" : "-s",
++ NULL);
+ execl(hwclock_path, "hwclock", has_time ? "-w" : "-s", NULL);
_exit(EXIT_FAILURE);
+ } else if (pid < 0) {
diff --git a/gnu/packages/python-check.scm b/gnu/packages/python-check.scm
index 9930b8c8ec..77ddaf00b0 100644
--- a/gnu/packages/python-check.scm
+++ b/gnu/packages/python-check.scm
@@ -1249,19 +1249,21 @@ for the @code{pytest} framework.")
(define-public python-pytest-benchmark
(package
(name "python-pytest-benchmark")
- (version "3.2.3")
+ (version "3.4.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "pytest-benchmark" version))
(sha256
(base32
- "0a4mpb4j73dsyk47hd1prrjpfk4r458s102cn80rf253jg818hxd"))))
+ "0ivvrnhax2xr62grlgw4hlyjmmjp6nc35431j7c82nny2bwn7qj0"))))
(build-system python-build-system)
+ (arguments
+ '(#:test-target "check"))
(propagated-inputs
(list python-py-cpuinfo))
(native-inputs
- (list python-pathlib2 python-pytest))
+ (list python-pytest))
(home-page "https://github.com/ionelmc/pytest-benchmark")
(synopsis "Pytest fixture for benchmarking code")
(description
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 2afb4a4ca7..82eb42dffa 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -1204,13 +1204,13 @@ access the technical and tag data for video and audio files.")
(define-public python-psutil
(package
(name "python-psutil")
- (version "5.9.0")
+ (version "5.9.2")
(source
(origin
(method url-fetch)
(uri (pypi-uri "psutil" version))
(sha256
- (base32 "09fa4vfhansixvxd3lv664xcrbnfdyfn53hm2wr0rf3bsvdl5646"))))
+ (base32 "0p1bf6ndcssqh0ic828ggwhzhm67mzj3ffq6043v0fvc1fhn3f7y"))))
(build-system python-build-system)
(arguments
;; FIXME: some tests do not return and time out. Some tests fail because
@@ -8077,14 +8077,14 @@ functions like pickle, json or PyYAML module.")
(define-public python-pathlib2
(package
(name "python-pathlib2")
- (version "2.3.6")
+ (version "2.3.7.post1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "pathlib2" version))
(sha256
(base32
- "0psyg60vk8wca473djrh0v9gb853z8wcawi8im5dyg00amawp2vx"))))
+ "0hf62d0lsf37vnr5fxqp5rfn85njgsr45j4rw71w10wbi6nyvq4z"))))
(build-system python-build-system)
(propagated-inputs
(list python-scandir python-six))
@@ -9384,15 +9384,23 @@ the GObject Introspection bindings to libnotify for non-GTK applications.")
(define-public python-beautifulsoup4
(package
(name "python-beautifulsoup4")
- (version "4.10.0")
+ (version "4.11.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "beautifulsoup4" version))
(sha256
(base32
- "14c8z4gh9bi38agx9ls8ym5rscc02pc6f6hmliaqk08xa8yd4fn2"))))
+ "14v68cpfzckfz63n9hnbsm271jvzvxscyijz83mhha7gcmdsb6md"))))
(build-system python-build-system)
+ (arguments
+ '(#:phases (modify-phases %standard-phases
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (invoke "pytest" "-vv")))))))
+ (native-inputs
+ (list python-pytest))
(propagated-inputs
(list python-soupsieve python-html5lib python-lxml))
(home-page
diff --git a/gnu/packages/rust-apps.scm b/gnu/packages/rust-apps.scm
index 7d84516c83..b89eff4eb0 100644
--- a/gnu/packages/rust-apps.scm
+++ b/gnu/packages/rust-apps.scm
@@ -1659,7 +1659,7 @@ support for Rust.")
(native-inputs
(list pkg-config))
(inputs
- (list curl libgit2-1.3 libssh2 openssl zlib))
+ (list curl libgit2-1.3 libssh2 openssl-1.1 zlib))
(home-page "https://github.com/lu-zero/cargo-c")
(synopsis "Build and install C-compatible libraries")
(description
diff --git a/gnu/packages/security-token.scm b/gnu/packages/security-token.scm
index 204fd19d4a..d89714b577 100644
--- a/gnu/packages/security-token.scm
+++ b/gnu/packages/security-token.scm
@@ -312,7 +312,7 @@ website for more information about Yubico and the YubiKey.")
(string-append
"DEFAULT_PCSC_PROVIDER=\"" libpcsclite "\"")))))))))
(inputs
- (list readline openssl pcsc-lite ccid))
+ (list readline openssl-1.1 pcsc-lite ccid))
(native-inputs
(list libxslt docbook-xsl pkg-config))
(home-page "https://github.com/OpenSC/OpenSC/wiki")
diff --git a/gnu/packages/spice.scm b/gnu/packages/spice.scm
index b0bf2bc939..5d505b0ee2 100644
--- a/gnu/packages/spice.scm
+++ b/gnu/packages/spice.scm
@@ -2,7 +2,7 @@
;;; Copyright © 2016 David Craven <david@craven.ch>
;;; 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>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -47,6 +47,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))
@@ -149,7 +150,7 @@ which allows users to view a desktop computing environment.")
;; These are required by the pkg-config files.
gtk+
pixman
- openssl))
+ openssl-1.1))
(inputs
`(("glib-networking" ,glib-networking)
("gobject-introspection" ,gobject-introspection)
@@ -221,7 +222,7 @@ which allows users to view a desktop computing environment.")
"1xd0xffw0g5vvwbq4ksmm3jjfq45f9dw20xpmi82g1fj9f7wy85k"))))
(build-system gnu-build-system)
(propagated-inputs
- (list openssl pixman spice-protocol))
+ (list openssl-1.1 pixman spice-protocol))
(inputs
(list cyrus-sasl
glib
@@ -340,6 +341,13 @@ resolution scaling on graphical console window resize.")
(base32
"1rrjlclm6ad63gah1fa4yfwrz4z6vgq2yrybbvzvvdbxrgl4vgzv"))))
(build-system meson-build-system)
+ (arguments
+ (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
(list glib ; Requires: in the pkg-config file
nss ; Requires.private: in the pkg-config
diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm
index 73e6f89166..2860894bbd 100644
--- a/gnu/packages/virtualization.scm
+++ b/gnu/packages/virtualization.scm
@@ -158,7 +158,7 @@
(define-public qemu
(package
(name "qemu")
- (version "6.2.0")
+ (version "7.1.0")
(source
(origin
(method url-fetch)
@@ -166,7 +166,7 @@
version ".tar.xz"))
(sha256
(base32
- "0iavlsy9hin8k38230j8lfmyipx3965zljls1dp34mmc8n75vqb8"))
+ "1rmvrgqjhrvcmchnz170dxvrrf14n6nm39y8ivrprmfydd9lwqx0"))
(patches (search-patches "qemu-build-info-manual.patch"
"qemu-fix-agent-paths.patch"))
(modules '((guix build utils)))
@@ -177,154 +177,155 @@
(outputs '("out" "static" "doc")) ;5.3 MiB of HTML docs
(build-system gnu-build-system)
(arguments
- ;; FIXME: Disable tests on i686 to work around
- ;; <https://bugs.gnu.org/40527>.
- `(#:tests? ,(or (%current-target-system)
- (not (string=? "i686-linux" (%current-system))))
- #:configure-flags
- (let ((gcc (search-input-file %build-inputs "/bin/gcc"))
- (out (assoc-ref %outputs "out")))
- (list (string-append "--cc=" gcc)
- ;; Some architectures insist on using HOST_CC.
- (string-append "--host-cc=" gcc)
- (string-append "--prefix=" out)
- "--sysconfdir=/etc"
- (string-append "--smbd=" out "/libexec/samba-wrapper")
- "--disable-debug-info" ;for space considerations
- ;; The binaries need to be linked against -lrt.
- (string-append "--extra-ldflags=-lrt")))
- ;; Make build and test output verbose to facilitate investigation upon failure.
- #:make-flags '("V=1")
- #:modules ((srfi srfi-1)
+ (list
+ ;; FIXME: Disable tests on i686 to work around
+ ;; <https://bugs.gnu.org/40527>.
+ #:tests? (or (%current-target-system)
+ (not (string=? "i686-linux" (%current-system))))
+ #:configure-flags
+ #~(let ((gcc (search-input-file %build-inputs "/bin/gcc"))
+ (out #$output))
+ (list (string-append "--cc=" gcc)
+ ;; Some architectures insist on using HOST_CC.
+ (string-append "--host-cc=" gcc)
+ (string-append "--prefix=" out)
+ "--sysconfdir=/etc"
+ (string-append "--smbd=" out "/libexec/samba-wrapper")
+ "--disable-debug-info" ;for space considerations
+ ;; The binaries need to be linked against -lrt.
+ (string-append "--extra-ldflags=-lrt")))
+ ;; Make build and test output verbose to facilitate investigation upon failure.
+ #:make-flags #~'("V=1")
+ #:modules `((srfi srfi-1)
(srfi srfi-26)
(ice-9 ftw)
(ice-9 match)
,@%gnu-build-system-modules)
- #:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'extend-test-time-outs
- (lambda _
- ;; These tests can time out on heavily-loaded and/or slow storage.
- (substitute* (cons* "tests/qemu-iotests/common.qemu"
- (find-files "tests/qemu-iotests" "^[0-9]+$"))
- (("QEMU_COMM_TIMEOUT=[0-9]+" match)
- (string-append match "9")))))
- (add-after 'unpack 'disable-unusable-tests
- (lambda _
- (substitute* "tests/unit/meson.build"
- ;; Comment out the test-qga test, which needs /sys and
- ;; fails within the build environment.
- (("tests.*test-qga.*$" all)
- (string-append "# " all))
- ;; Comment out the test-char test, which needs networking and
- ;; fails within the build environment.
- ((".*'test-char':.*" all)
- (string-append "# " all)))))
- ,@(if (target-riscv64?)
- `((add-after 'unpack 'disable-some-tests
- (lambda _
- ;; qemu.qmp.QMPConnectError: Unexpected empty reply from server
- (delete-file "tests/qemu-iotests/040")
- (delete-file "tests/qemu-iotests/041")
- (delete-file "tests/qemu-iotests/256")
-
- ;; No 'PCI' bus found for device 'virtio-scsi-pci'
- (delete-file "tests/qemu-iotests/127")
- (delete-file "tests/qemu-iotests/267"))))
- '())
- (add-after 'patch-source-shebangs 'patch-embedded-shebangs
- (lambda* (#:key native-inputs inputs #:allow-other-keys)
- ;; Ensure the executables created by these source files reference
- ;; /bin/sh from the store so they work inside the build container.
- (substitute* '("block/cloop.c" "migration/exec.c"
- "net/tap.c" "tests/qtest/libqtest.c"
- "tests/qtest/vhost-user-blk-test.c")
- (("/bin/sh") (search-input-file inputs "/bin/sh")))
- (substitute* "tests/qemu-iotests/testenv.py"
- (("#!/usr/bin/env python3")
- (string-append "#!" (search-input-file (or native-inputs inputs)
- "/bin/python3"))))))
- (add-before 'configure 'fix-optionrom-makefile
- (lambda _
- ;; Work around the inability of the rules defined in this
- ;; Makefile to locate the firmware files (e.g.: No rule to make
- ;; target 'multiboot.bin') by extending the VPATH.
- (substitute* "pc-bios/optionrom/Makefile"
- (("^VPATH = \\$\\(SRC_DIR\\)")
- "VPATH = $(SRC_DIR):$(TOPSRC_DIR)/pc-bios"))))
- ;; XXX ./configure is being re-run at beginning of build phase...
- (replace 'configure
- (lambda* (#:key inputs outputs configure-flags #:allow-other-keys)
- ;; The `configure' script doesn't understand some of the
- ;; GNU options. Thus, add a new phase that's compatible.
- (let ((out (assoc-ref outputs "out")))
- (setenv "SHELL" (which "bash"))
- ;; Ensure config.status gets the correct shebang off the bat.
- ;; The build system gets confused if we change it later and
- ;; attempts to re-run the whole configuration, and fails.
- (substitute* "configure"
- (("#!/bin/sh")
- (string-append "#!" (which "sh"))))
- (mkdir-p "b/qemu")
- (chdir "b/qemu")
- (apply invoke "../../configure" configure-flags))))
- ;; Configure, build and install QEMU user-emulation static binaries.
- (add-after 'configure 'configure-user-static
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (let* ((gcc (search-input-file inputs "/bin/gcc"))
- (static (assoc-ref outputs "static"))
- ;; This is the common set of configure flags; it is
- ;; duplicated here to isolate this phase from manipulations
- ;; to the #:configure-flags build argument, as done in
- ;; derived packages such as qemu-minimal.
- (configure-flags (list (string-append "--cc=" gcc)
- (string-append "--host-cc=" gcc)
- "--sysconfdir=/etc"
- "--disable-debug-info")))
- (mkdir-p "../user-static")
- (with-directory-excursion "../user-static"
- (apply invoke "../../configure"
- "--static"
- "--disable-docs" ;already built
- "--disable-system"
- "--enable-linux-user"
- (string-append "--prefix=" static)
- configure-flags)))))
- (add-after 'build 'build-user-static
- (lambda args
- (with-directory-excursion "../user-static"
- (apply (assoc-ref %standard-phases 'build) args))))
- (add-after 'install 'install-user-static
- (lambda* (#:key outputs #:allow-other-keys)
- (let* ((static (assoc-ref outputs "static"))
- (bin (string-append static "/bin")))
- (with-directory-excursion "../user-static"
- (for-each (cut install-file <> bin)
- (append-map (cut find-files <> "^qemu-" #:stat stat)
- (scandir "."
- (cut string-suffix?
- "-linux-user" <>))))))))
- ;; Create a wrapper for Samba. This allows QEMU to use Samba without
- ;; pulling it in as an input. Note that you need to explicitly install
- ;; Samba in your Guix profile for Samba support.
- (add-after 'install 'create-samba-wrapper
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (libexec (string-append out "/libexec")))
- (call-with-output-file "samba-wrapper"
- (lambda (port)
- (format port "#!/bin/sh
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'extend-test-time-outs
+ (lambda _
+ ;; These tests can time out on heavily-loaded and/or slow storage.
+ (substitute* (cons* "tests/qemu-iotests/common.qemu"
+ (find-files "tests/qemu-iotests" "^[0-9]+$"))
+ (("QEMU_COMM_TIMEOUT=[0-9]+" match)
+ (string-append match "9")))))
+ (add-after 'unpack 'disable-unusable-tests
+ (lambda _
+ (substitute* "tests/unit/meson.build"
+ ;; Comment out the test-qga test, which needs /sys and
+ ;; fails within the build environment.
+ (("tests.*test-qga.*$" all)
+ (string-append "# " all))
+ ;; Comment out the test-char test, which needs networking and
+ ;; fails within the build environment.
+ ((".*'test-char':.*" all)
+ (string-append "# " all)))))
+ #$@(if (target-riscv64?)
+ '((add-after 'unpack 'disable-some-tests
+ (lambda _
+ ;; qemu.qmp.QMPConnectError:
+ ;; Unexpected empty reply from server
+ (delete-file "tests/qemu-iotests/040")
+ (delete-file "tests/qemu-iotests/041")
+ (delete-file "tests/qemu-iotests/256")
+
+ ;; No 'PCI' bus found for device 'virtio-scsi-pci'
+ (delete-file "tests/qemu-iotests/127")
+ (delete-file "tests/qemu-iotests/267"))))
+ '())
+ (add-after 'patch-source-shebangs 'patch-embedded-shebangs
+ (lambda* (#:key native-inputs inputs #:allow-other-keys)
+ ;; Ensure the executables created by these source files reference
+ ;; /bin/sh from the store so they work inside the build container.
+ (substitute* '("block/cloop.c" "migration/exec.c"
+ "net/tap.c" "tests/qtest/libqtest.c"
+ "tests/qtest/vhost-user-blk-test.c")
+ (("/bin/sh") (search-input-file inputs "/bin/sh")))
+ (substitute* "tests/qemu-iotests/testenv.py"
+ (("#!/usr/bin/env python3")
+ (string-append "#!" (search-input-file (or native-inputs inputs)
+ "/bin/python3"))))))
+ (add-before 'configure 'fix-optionrom-makefile
+ (lambda _
+ ;; Work around the inability of the rules defined in this
+ ;; Makefile to locate the firmware files (e.g.: No rule to make
+ ;; target 'multiboot.bin') by extending the VPATH.
+ (substitute* "pc-bios/optionrom/Makefile"
+ (("^VPATH = \\$\\(SRC_DIR\\)")
+ "VPATH = $(SRC_DIR):$(TOPSRC_DIR)/pc-bios"))))
+ ;; XXX ./configure is being re-run at beginning of build phase...
+ (replace 'configure
+ (lambda* (#:key inputs configure-flags #:allow-other-keys)
+ ;; The `configure' script doesn't understand some of the
+ ;; GNU options. Thus, add a new phase that's compatible.
+ (setenv "SHELL" (which "bash"))
+ ;; Ensure config.status gets the correct shebang off the bat.
+ ;; The build system gets confused if we change it later and
+ ;; attempts to re-run the whole configuration, and fails.
+ (substitute* "configure"
+ (("#!/bin/sh")
+ (string-append "#!" (which "sh"))))
+ (mkdir-p "b/qemu")
+ (chdir "b/qemu")
+ (apply invoke "../../configure" configure-flags)))
+ ;; Configure, build and install QEMU user-emulation static binaries.
+ (add-after 'configure 'configure-user-static
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((static (assoc-ref outputs "static"))
+ (gcc (search-input-file inputs "/bin/gcc"))
+ ;; This is the common set of configure flags; it is
+ ;; duplicated here to isolate this phase from manipulations
+ ;; to the #:configure-flags build argument, as done in
+ ;; derived packages such as qemu-minimal.
+ (configure-flags (list (string-append "--cc=" gcc)
+ (string-append "--host-cc=" gcc)
+ "--sysconfdir=/etc"
+ "--disable-debug-info")))
+ (mkdir-p "../user-static")
+ (with-directory-excursion "../user-static"
+ (apply invoke "../../configure"
+ "--static"
+ "--disable-docs" ;already built
+ "--disable-system"
+ "--enable-linux-user"
+ (string-append "--prefix=" static)
+ configure-flags)))))
+ (add-after 'build 'build-user-static
+ (lambda args
+ (with-directory-excursion "../user-static"
+ (apply (assoc-ref %standard-phases 'build) args))))
+ (add-after 'install 'install-user-static
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((static (assoc-ref outputs "static"))
+ (bin (string-append static "/bin")))
+ (with-directory-excursion "../user-static"
+ (for-each (cut install-file <> bin)
+ (append-map (cut find-files <> "^qemu-" #:stat stat)
+ (scandir "."
+ (cut string-suffix?
+ "-linux-user" <>))))))))
+ ;; Create a wrapper for Samba. This allows QEMU to use Samba without
+ ;; pulling it in as an input. Note that you need to explicitly install
+ ;; Samba in your Guix profile for Samba support.
+ (add-after 'install 'create-samba-wrapper
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let ((libexec (string-append #$output "/libexec")))
+ (call-with-output-file "samba-wrapper"
+ (lambda (port)
+ (format port "#!/bin/sh
exec smbd $@")))
- (chmod "samba-wrapper" #o755)
- (install-file "samba-wrapper" libexec))))
- (add-after 'install 'move-html-doc
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (doc (assoc-ref outputs "doc"))
- (qemu-doc (string-append doc "/share/doc/qemu-" ,version)))
- (mkdir-p qemu-doc)
- (rename-file (string-append out "/share/doc/qemu")
- (string-append qemu-doc "/html"))))))))
+ (chmod "samba-wrapper" #o755)
+ (install-file "samba-wrapper" libexec))))
+ (add-after 'install 'move-html-doc
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((out #$output)
+ (doc #$output:doc)
+ (qemu-doc (string-append doc "/share/doc/qemu-"
+ #$(package-version this-package))))
+ (mkdir-p qemu-doc)
+ (rename-file (string-append out "/share/doc/qemu")
+ (string-append qemu-doc "/html"))))))))
(inputs
(list alsa-lib
bash-minimal
@@ -405,7 +406,7 @@ server and embedded PowerPC, and S390 guests.")
"Machine emulator and virtualizer (without GUI) for the host architecture")
(arguments
(substitute-keyword-arguments (package-arguments qemu)
- ((#:configure-flags configure-flags '(list))
+ ((#:configure-flags configure-flags #~'())
;; Restrict to the host's architecture.
(let* ((system (or (%current-target-system)
(%current-system)))
@@ -436,12 +437,12 @@ server and embedded PowerPC, and S390 guests.")
"--target-list=riscv32-softmmu,riscv64-softmmu")
(else ; An empty list actually builds all the targets.
'()))))
- `(cons ,target-list-arg ,configure-flags)))
+ #~(cons #$target-list-arg #$configure-flags)))
((#:phases phases)
- `(modify-phases ,phases
- (delete 'configure-user-static)
- (delete 'build-user-static)
- (delete 'install-user-static)))))
+ #~(modify-phases #$phases
+ (delete 'configure-user-static)
+ (delete 'build-user-static)
+ (delete 'install-user-static)))))
;; Remove dependencies on optional libraries, notably GUI libraries.
(native-inputs (filter (lambda (input)
diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index 445c33d01f..e2ae3626e7 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -1948,7 +1948,7 @@ from streaming URLs. It is a command-line wrapper for the libquvi library.")
(base32 "1k47gbgpp52049andr28y28nbwh9m36bbb0g8p0aka3pqlhjv72l"))))
(build-system scons-build-system)
(propagated-inputs
- (list apr apr-util openssl))
+ (list apr apr-util openssl-1.1))
(inputs
(list ;; TODO: Fix build with gss.
;;("gss" ,gss)
diff --git a/gnu/services/virtualization.scm b/gnu/services/virtualization.scm
index 406752b35c..8b480e1bd3 100644
--- a/gnu/services/virtualization.scm
+++ b/gnu/services/virtualization.scm
@@ -3,6 +3,7 @@
;;; Copyright © 2018, 2020-2022 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2020,2021 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2021 Timotej Lazar <timotej.lazar@araneo.si>
+;;; Copyright © 2022 Oleg Pykhalov <go.wigust@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -470,13 +471,15 @@ potential infinite waits blocking libvirt."))
(define (libvirt-shepherd-service config)
(let* ((config-file (libvirt-conf-file config))
- (libvirt (libvirt-configuration-libvirt config)))
+ (libvirt (libvirt-configuration-libvirt config))
+ (listen-tcp? (libvirt-configuration-listen-tcp? config)))
(list (shepherd-service
(documentation "Run the libvirt daemon.")
(provision '(libvirtd))
(start #~(make-forkexec-constructor
(list (string-append #$libvirt "/sbin/libvirtd")
- "-f" #$config-file)
+ "-f" #$config-file
+ #$@(if listen-tcp? '("--listen") '()))
;; For finding qemu and ip binaries.
#:environment-variables
(list (string-append