diff options
Diffstat (limited to 'gnu')
-rw-r--r-- | gnu/bootloader.scm | 53 | ||||
-rw-r--r-- | gnu/bootloader/grub.scm | 73 | ||||
-rw-r--r-- | gnu/packages/build-tools.scm | 34 | ||||
-rw-r--r-- | gnu/packages/crates-io.scm | 2 | ||||
-rw-r--r-- | gnu/packages/emacs-xyz.scm | 67 | ||||
-rw-r--r-- | gnu/packages/emulators.scm | 4 | ||||
-rw-r--r-- | gnu/packages/gnome.scm | 30 | ||||
-rw-r--r-- | gnu/packages/imagemagick.scm | 52 | ||||
-rw-r--r-- | gnu/packages/lisp-xyz.scm | 620 | ||||
-rw-r--r-- | gnu/packages/patches/qemu-build-info-manual.patch | 49 | ||||
-rw-r--r-- | gnu/packages/patches/qemu-fix-agent-paths.patch | 37 | ||||
-rw-r--r-- | gnu/packages/python-check.scm | 8 | ||||
-rw-r--r-- | gnu/packages/python-xyz.scm | 20 | ||||
-rw-r--r-- | gnu/packages/rust-apps.scm | 2 | ||||
-rw-r--r-- | gnu/packages/security-token.scm | 2 | ||||
-rw-r--r-- | gnu/packages/spice.scm | 14 | ||||
-rw-r--r-- | gnu/packages/virtualization.scm | 303 | ||||
-rw-r--r-- | gnu/packages/web.scm | 2 | ||||
-rw-r--r-- | gnu/services/virtualization.scm | 7 |
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 fbb0dc1206..0ea6ae1b84 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -886,6 +886,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. @@ -957,6 +958,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 @@ -1556,6 +1558,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. @@ -2033,6 +2036,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) @@ -2286,7 +2290,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 _ @@ -2330,7 +2335,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. @@ -2539,6 +2545,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" @@ -3133,6 +3140,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 @@ -5644,6 +5652,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") @@ -6492,6 +6501,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=" @@ -6753,7 +6763,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 @@ -7254,7 +7265,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 @@ -7368,6 +7380,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=" @@ -8580,6 +8593,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 @@ -8900,7 +8915,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 @@ -9492,6 +9508,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 @@ -9852,6 +9869,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 @@ -10775,6 +10793,7 @@ photo-booth-like software, such as Cheese.") "1y92glc0d6w323x2bdbc0gdh1jdffvkbv6cwlwm1rx0wgvv1svqh")))) (arguments `(#:glib-or-gtk? #t + #:meson ,meson-0.60 ;; Tests require GDK. #:tests? #f #:phases @@ -11734,6 +11753,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 5ee1d41f34..2358e7448d 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 59b4264285..dcade0a579 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 @@ -8072,14 +8072,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)) @@ -9379,15 +9379,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 2db387b0aa..6e94bfa534 100644 --- a/gnu/packages/security-token.scm +++ b/gnu/packages/security-token.scm @@ -310,7 +310,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 b687e4e3e7..dd9540a9cb 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -1938,7 +1938,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 |