diff options
82 files changed, 2046 insertions, 695 deletions
diff --git a/doc/contributing.texi b/doc/contributing.texi index 6a2564b07d..02c7c5ae59 100644 --- a/doc/contributing.texi +++ b/doc/contributing.texi @@ -225,8 +225,7 @@ $ ./pre-inst-env guile -c '(use-modules (guix utils)) (pk (%current-system))' @noindent @cindex REPL @cindex read-eval-print loop -@dots{} and for a REPL (@pxref{Using Guile Interactively,,, guile, Guile -Reference Manual}): +@dots{} and for a REPL (@pxref{Using Guix Interactively}): @example $ ./pre-inst-env guile @@ -279,8 +278,8 @@ prepared Guile object (@file{.go}) files. You can run @command{make} automatically as you work using @command{watchexec} from the @code{watchexec} package. For example, -to build again each time you update a package file, you can run -@samp{watchexec -w gnu/packages make -j4}. +to build again each time you update a package file, run +@samp{watchexec -w gnu/packages -- make -j4}. @node The Perfect Setup @section The Perfect Setup @@ -292,7 +291,7 @@ Manual}). First, you need more than an editor, you need wonderful @url{https://nongnu.org/geiser/, Geiser}. To set that up, run: @example -guix package -i emacs guile emacs-geiser emacs-geiser-guile +guix install emacs guile emacs-geiser emacs-geiser-guile @end example Geiser allows for interactive and incremental development from within diff --git a/doc/guix.texi b/doc/guix.texi index a7ac74b416..3c5864ec1a 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -299,6 +299,7 @@ Programming Interface * The Store Monad:: Purely functional interface to the store. * G-Expressions:: Manipulating build expressions. * Invoking guix repl:: Programming Guix in Guile. +* Using Guix Interactively:: Fine-grain interaction at the REPL. Defining Packages @@ -7100,6 +7101,7 @@ package definitions. * The Store Monad:: Purely functional interface to the store. * G-Expressions:: Manipulating build expressions. * Invoking guix repl:: Programming Guix in Guile +* Using Guix Interactively:: Fine-grain interaction at the REPL. @end menu @node Package Modules @@ -10860,8 +10862,9 @@ So, to exit the monad and get the desired effect, one must use @end lisp Note that the @code{(guix monad-repl)} module extends the Guile REPL with -new ``meta-commands'' to make it easier to deal with monadic procedures: -@code{run-in-store}, and @code{enter-store-monad}. The former is used +new ``commands'' to make it easier to deal with monadic procedures: +@code{run-in-store}, and @code{enter-store-monad} (@pxref{Using Guix +Interactively}). The former is used to ``run'' a single monadic value through the store: @example @@ -10886,6 +10889,9 @@ scheme@@(guile-user)> Note that non-monadic values cannot be returned in the @code{store-monad} REPL. +Other meta-commands are available at the REPL, such as @code{,build} to +build a file-like object (@pxref{Using Guix Interactively}). + The main syntactic forms to deal with monads in general are provided by the @code{(guix monads)} module and are described below. @@ -11778,7 +11784,8 @@ lines at the top of the script: @code{!#} @end example -Without a file name argument, a Guile REPL is started: +Without a file name argument, a Guile REPL is started, allowing for +interactive use (@pxref{Using Guix Interactively}): @example $ guix repl @@ -11834,6 +11841,132 @@ Inhibit loading of the @file{~/.guile} file. By default, that configuration file is loaded when spawning a @code{guile} REPL. @end table +@node Using Guix Interactively +@section Using Guix Interactively + +@cindex interactive use +@cindex REPL, read-eval-print loop +The @command{guix repl} command gives you access to a warm and friendly +@dfn{read-eval-print loop} (REPL) (@pxref{Invoking guix repl}). If +you're getting into Guix programming---defining your own packages, +writing manifests, defining services for Guix System or Guix Home, +etc.---you will surely find it convenient to toy with ideas at the REPL. + +If you use Emacs, the most convenient way to do that is with Geiser +(@pxref{The Perfect Setup}), but you do not have to use Emacs to enjoy +the REPL@. When using @command{guix repl} or @command{guile} in the +terminal, we recommend using Readline for completion and Colorized to +get colorful output. To do that, you can run: + +@example +guix install guile guile-readline guile-colorized +@end example + +@noindent +... and then create a @file{.guile} file in your home directory containing +this: + +@lisp +(use-modules (ice-9 readline) (ice-9 colorized)) + +(activate-readline) +(activate-colorized) +@end lisp + +The REPL lets you evaluate Scheme code; you type a Scheme expression at +the prompt, and the REPL prints what it evaluates to: + +@example +$ guix repl +scheme@@(guix-user)> (+ 2 3) +$1 = 5 +scheme@@(guix-user)> (string-append "a" "b") +$2 = "ab" +@end example + +It becomes interesting when you start fiddling with Guix at the REPL. +The first thing you'll want to do is to ``import'' the @code{(guix)} +module, which gives access to the main part of the programming +interface, and perhaps a bunch of useful Guix modules. You could type +@code{(use-modules (guix))}, which is valid Scheme code to import a +module (@pxref{Using Guile Modules,,, guile, GNU Guile Reference +Manual}), but the REPL provides the @code{use} @dfn{command} as a +shorthand notation (@pxref{REPL Commands,,, guile, GNU Guile Reference +Manual}): + +@example +scheme@@(guix-user)> ,use (guix) +scheme@@(guix-user)> ,use (gnu packages base) +@end example + +Notice that REPL commands are introduced by a leading comma. A REPL +command like @code{use} is not valid Scheme code; it's interpreted +specially by the REPL. + +Guix extends the Guile REPL with additional commands for convenience. +Among those, the @code{build} command comes in handy: it ensures that +the given file-like object is built, building it if needed, and returns +its output file name(s). In the example below, we build the +@code{coreutils} and @code{grep} packages, as well as a ``computed +file'' (@pxref{G-Expressions, @code{computed-file}}), and we use the +@code{scandir} procedure to list the files in Grep's @code{/bin} +directory: + +@example +scheme@@(guix-user)> ,build coreutils +$1 = "/gnu/store/@dots{}-coreutils-8.32-debug" +$2 = "/gnu/store/@dots{}-coreutils-8.32" +scheme@@(guix-user)> ,build grep +$3 = "/gnu/store/@dots{}-grep-3.6" +scheme@@(guix-user)> ,build (computed-file "x" #~(mkdir #$output)) +building /gnu/store/@dots{}-x.drv... +$4 = "/gnu/store/@dots{}-x" +scheme@@(guix-user)> ,use(ice-9 ftw) +scheme@@(guix-user)> (scandir (string-append $3 "/bin")) +$5 = ("." ".." "egrep" "fgrep" "grep") +@end example + +At a lower-level, a useful command is @code{lower}: it takes a file-like +object and ``lowers'' it into a derivation (@pxref{Derivations}) or a +store file: + +@example +scheme@@(guix-user)> ,lower grep +$6 = #<derivation /gnu/store/@dots{}-grep-3.6.drv => /gnu/store/@dots{}-grep-3.6 7f0e639115f0> +scheme@@(guix-user)> ,lower (plain-file "x" "Hello!") +$7 = "/gnu/store/@dots{}-x" +@end example + +The full list of REPL commands can be seen by typing @code{,help guix} +and is given below for reference. + +@deffn {REPL command} build @var{object} +Lower @var{object} and build it if it's not already built, returning its +output file name(s). +@end deffn + +@deffn {REPL command} lower @var{object} +Lower @var{object} into a derivation or store file name and return it. +@end deffn + +@deffn {REPL command} verbosity @var{level} +Change build verbosity to @var{level}. + +This is similar to the @option{--verbosity} command-line option +(@pxref{Common Build Options}): level 0 means total silence, level 1 +shows build events only, and higher levels print build logs. +@end deffn + +@deffn {REPL command} run-in-store @var{exp} +Run @var{exp}, a monadic expresssion, through the store monad. +@xref{The Store Monad}, for more information. +@end deffn + +@deffn {REPL command} enter-store-monad +Enter a new REPL to evaluate monadic expressions (@pxref{The Store +Monad}). You can quit this ``inner'' REPL by typing @code{,q}. +@end deffn + @c ********************************************************************* @node Utilities @chapter Utilities @@ -37648,6 +37781,13 @@ bootloader boot menu: Describe the running system generation: its file name, the kernel and bootloader used, etc., as well as provenance information when available. +The @code{--list-installed} flag is available, with the same +syntax that is used in @command{guix package --list-installed} +(@pxref{Invoking guix package}). When the flag is used, +the description will include a list of packages that are currently +installed in the system profile, with optional filtering based on a +regular expression. + @quotation Note The @emph{running} system generation---referred to by @file{/run/current-system}---is not necessarily the @emph{current} @@ -37675,6 +37815,11 @@ generations that are up to 10 days old: $ guix system list-generations 10d @end example +The @code{--list-installed} flag may also be specified, with the same +syntax that is used in @command{guix package --list-installed}. This +may be helpful if trying to determine when a package was added to the +system. + @end table The @command{guix system} command has even more to offer! The following @@ -39663,6 +39808,23 @@ contents of the extensions will be added to the end of the corresponding Bash configuration files (@pxref{Bash Startup Files,,, bash, The GNU Bash Reference Manual}. +For example, here is how you would define a service that extends the +Bash service such that @file{~/.bash_profile} defines an additional +environment variable, @env{PS1}: + +@lisp +(define bash-fancy-prompt-service + (simple-service 'bash-fancy-prompt + home-bash-service-type + (home-bash-extension + (environment-variables + '(("PS1" . "\\u \\wλ ")))))) +@end lisp + +You would then add @code{bash-fancy-prompt-service} to the list in the +@code{services} field of your @code{home-environment}. The reference of +@code{home-bash-extension} follows. + @deftp {Data Type} home-bash-extension Available @code{home-bash-extension} fields are: @@ -40345,6 +40507,17 @@ install anything. Describe the current home generation: its file name, as well as provenance information when available. +To show installed packages in the current home generation's profile, the +@code{--list-installed} flag is provided, with the same syntax that is +used in @command{guix package --list-installed} (@pxref{Invoking guix +package}). For instance, the following command shows a table of all the +packages with ``emacs'' in their name that are installed in the current +home generation's profile: + +@example +guix home describe --list-installed=emacs +@end example + @item list-generations List a summary of each generation of the home environment available on disk, in a human-readable way. This is similar to the @@ -40357,9 +40530,14 @@ generations displayed. For instance, the following command displays generations that are up to 10 days old: @example -$ guix home list-generations 10d +guix home list-generations 10d @end example +The @code{--list-installed} flag may also be specified, with the same +syntax that is used in @command{guix home describe}. This may be +helpful if trying to determine when a package was added to the home +profile. + @item import Generate a @dfn{home environment} from the packages in the default profile and configuration files found in the user's home directory. The @@ -40787,6 +40965,16 @@ package, you can try and import it (@pxref{Invoking guix import}): guix import texlive @var{package} @end example +Additional options include: + +@table @code +@item --recursive +@itemx -r +Traverse the dependency graph of the given upstream package recursively +and generate package expressions for all those packages that are not yet +in Guix. +@end table + @quotation Note @TeX{} Live packaging is still very much work in progress, but you can help! @xref{Contributing}, for more information. diff --git a/gnu/build/chromium-extension.scm b/gnu/build/chromium-extension.scm index 8ca5251957..28449a1e1d 100644 --- a/gnu/build/chromium-extension.scm +++ b/gnu/build/chromium-extension.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2020, 2021 Marius Bakke <marius@gnu.org> +;;; Copyright © 2022 Nicolas Graves <ngraves@ngraves.fr> ;;; ;;; This file is part of GNU Guix. ;;; @@ -19,10 +20,9 @@ (define-module (gnu build chromium-extension) #:use-module (guix gexp) #:use-module (guix packages) - #:use-module (gnu packages chromium) #:use-module (gnu packages gnupg) #:use-module (gnu packages tls) - #:use-module (gnu packages xorg) + #:use-module (gnu packages node-xyz) #:use-module (guix build-system trivial) #:export (make-chromium-extension)) @@ -69,24 +69,14 @@ in PACKAGE-OUTPUT of PACKAGE. The extension will be signed with SIGNING-KEY." (string-append name "-" version ".crx") (with-imported-modules '((guix build utils)) #~(begin - ;; This is not great. We pull Xorg and Chromium just to Zip and - ;; sign an extension. This should be implemented with something - ;; lighter. (TODO: where is the CRXv3 documentation..?) (use-modules (guix build utils)) - (let ((chromium #$(file-append ungoogled-chromium "/bin/chromium")) - (xvfb #$(file-append xorg-server "/bin/Xvfb")) + (let ((crx3 #+(file-append node-crx3 "/bin/crx3")) (packdir (string-append (getcwd) "/extension"))) (mkdir packdir) (copy-recursively (ungexp package package-output) packdir ;; Ensure consistent file modification times. #:keep-mtime? #t) - (system (string-append xvfb " :1 &")) - (setenv "DISPLAY" ":1") - (sleep 2) ;give Xorg some time to initialize... - (invoke chromium - "--user-data-dir=chromium-profile" - (string-append "--pack-extension=" packdir) - (string-append "--pack-extension-key=" #$signing-key)) + (invoke crx3 "--keyPath" #$signing-key packdir) (copy-file (string-append packdir ".crx") #$output)))) #:local-build? #t)) diff --git a/gnu/home/services.scm b/gnu/home/services.scm index 5ee3357792..b05ec53e2a 100644 --- a/gnu/home/services.scm +++ b/gnu/home/services.scm @@ -46,6 +46,7 @@ home-run-on-change-service-type home-provenance-service-type + environment-variable-shell-definitions home-files-directory xdg-configuration-files-directory xdg-data-files-directory @@ -169,6 +170,34 @@ packages, configuration files, activation script, and so on."))) configuration files that the user has declared in their @code{home-environment} record."))) +(define (environment-variable-shell-definitions variables) + "Return a gexp that evaluates to a list of POSIX shell statements defining +VARIABLES, a list of environment variable name/value pairs. The returned code +ensures variable values are properly quoted." + #~(let ((shell-quote + (lambda (value) + ;; Double-quote VALUE, leaving dollar sign as is. + (let ((quoted (list->string + (string-fold-right + (lambda (chr lst) + (case chr + ((#\" #\\) + (append (list chr #\\) lst)) + (else (cons chr lst)))) + '() + value)))) + (string-append "\"" quoted "\""))))) + (string-append + #$@(map (match-lambda + ((key . #f) + "") + ((key . #t) + #~(string-append "export " #$key "\n")) + ((key . value) + #~(string-append "export " #$key "=" + (shell-quote #$value) "\n"))) + variables)))) + (define (environment-variables->setup-environment-script vars) "Return a file that can be sourced by a POSIX compliant shell which initializes the environment. The file will source the home @@ -181,7 +210,7 @@ If value is @code{#f} variable will be omitted. If value is @code{#t} variable will be just exported. For any other, value variable will be set to the @code{value} and exported." - (define (warn-about-duplicate-defenitions) + (define (warn-about-duplicate-definitions) (fold (lambda (x acc) (when (equal? (car x) (car acc)) @@ -192,15 +221,18 @@ exported." (sort vars (lambda (a b) (string<? (car a) (car b)))))) - (warn-about-duplicate-defenitions) + (warn-about-duplicate-definitions) (with-monad %store-monad (return `(("setup-environment" ;; TODO: It's necessary to source ~/.guix-profile too ;; on foreign distros - ,(apply mixed-text-file "setup-environment" - "\ + ,(computed-file "setup-environment" + #~(call-with-output-file #$output + (lambda (port) + (set-port-encoding! port "UTF-8") + (display "\ HOME_ENVIRONMENT=$HOME/.guix-home GUIX_PROFILE=\"$HOME_ENVIRONMENT/profile\" PROFILE_FILE=\"$HOME_ENVIRONMENT/profile/etc/profile\" @@ -227,17 +259,10 @@ case $XCURSOR_PATH in *) export XCURSOR_PATH=$HOME_ENVIRONMENT/profile/share/icons:$XCURSOR_PATH ;; esac -" - - (append-map - (match-lambda - ((key . #f) - '()) - ((key . #t) - (list "export " key "\n")) - ((key . value) - (list "export " key "=" value "\n"))) - vars))))))) +" port) + (display + #$(environment-variable-shell-definitions vars) + port))))))))) (define home-environment-variables-service-type (service-type (name 'home-environment-variables) diff --git a/gnu/home/services/shells.scm b/gnu/home/services/shells.scm index dda80736b1..172e58a9ff 100644 --- a/gnu/home/services/shells.scm +++ b/gnu/home/services/shells.scm @@ -111,16 +111,7 @@ service type can be extended with a list of file-like objects."))) (define (serialize-boolean field-name val) "") (define (serialize-posix-env-vars field-name val) - #~(string-append - #$@(map - (match-lambda - ((key . #f) - "") - ((key . #t) - #~(string-append "export " #$key "\n")) - ((key . value) - #~(string-append "export " #$key "=" #$value "\n"))) - val))) + (environment-variable-shell-definitions val)) ;;; @@ -192,9 +183,9 @@ another process for example).")) (mixed-text-file "zprofile" "\ -# Setups system and user profiles and related variables +# Set up the system, user profile, and related variables. source /etc/profile -# Setups home environment profile +# Set up the home environment profile. source ~/.profile # It's only necessary if zsh is a login shell, otherwise profiles will @@ -443,9 +434,9 @@ alias grep='grep --color=auto'\n") ,(mixed-text-file "bash_profile" "\ -# Setups system and user profiles and related variables +# Set up the system, user profile, and related variables. # /etc/profile will be sourced by bash automatically -# Setups home environment profile +# Set up the home environment profile. if [ -f ~/.profile ]; then source ~/.profile; fi # Honor per-interactive-shell startup file diff --git a/gnu/local.mk b/gnu/local.mk index 6baae4fa8d..2bcf966101 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -17,7 +17,7 @@ # Copyright © 2017, 2020 Mathieu Othacehe <m.othacehe@gmail.com> # Copyright © 2017, 2018, 2019 Gábor Boskovits <boskovits@gmail.com> # Copyright © 2018 Amirouche Boubekki <amirouche@hypermove.net> -# Copyright © 2018, 2019, 2020, 2021 Oleg Pykhalov <go.wigust@gmail.com> +# Copyright © 2018, 2019, 2020, 2021, 2022 Oleg Pykhalov <go.wigust@gmail.com> # Copyright © 2018 Stefan Stefanović <stefanx2ovic@gmail.com> # Copyright © 2018, 2020, 2021, 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com> # Copyright © 2019, 2020, 2021, 2022 Guillaume Le Vaillant <glv@posteo.net> @@ -967,6 +967,7 @@ dist_patch_DATA = \ %D%/packages/patches/cmh-support-fplll.patch \ %D%/packages/patches/coda-use-system-libs.patch \ %D%/packages/patches/collectd-5.11.0-noinstallvar.patch \ + %D%/packages/patches/containerd-create-pid-file.patch \ %D%/packages/patches/combinatorial-blas-awpm.patch \ %D%/packages/patches/combinatorial-blas-io-fix.patch \ %D%/packages/patches/cool-retro-term-wctype.patch \ @@ -1390,7 +1391,6 @@ dist_patch_DATA = \ %D%/packages/patches/libcroco-CVE-2020-12825.patch \ %D%/packages/patches/libcyaml-libyaml-compat.patch \ %D%/packages/patches/libexpected-nofetch.patch \ - %D%/packages/patches/libgeotiff-adapt-test-script-for-proj-6.2.patch \ %D%/packages/patches/libgit2-mtime-0.patch \ %D%/packages/patches/libgnome-encoding.patch \ %D%/packages/patches/libgnomeui-utf8.patch \ diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index 88cb8fded9..7a37cdda61 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -2278,24 +2278,23 @@ network, which causes enabled computers to power on.") (define-public dmidecode (package (name "dmidecode") - (version "3.3") + (version "3.4") (source (origin (method url-fetch) (uri (string-append "mirror://savannah/dmidecode/dmidecode-" version ".tar.xz")) (sha256 - (base32 "0m8lzg9rf1qssasiix672bxk5qwms90561g8hfkkhk31h2kkgiw2")))) + (base32 "04i2ahvqinkrnzfsbswplv9wff36xf9b3snvriwrjz26v18sijs3")))) (build-system gnu-build-system) (arguments - `(#:tests? #f ; no 'check' target - #:make-flags - (list (string-append "CC=" ,(cc-for-target)) - (string-append "prefix=" - (assoc-ref %outputs "out"))) - #:phases - (modify-phases %standard-phases - (delete 'configure)))) ; no configure script + (list #:tests? #f ; no 'check' target + #:make-flags + #~(list (string-append "CC=" #$(cc-for-target)) + (string-append "prefix=" #$output)) + #:phases + #~(modify-phases %standard-phases + (delete 'configure)))) ; no configure script (home-page "https://www.nongnu.org/dmidecode/") (synopsis "Read hardware information from the BIOS") (description @@ -2635,6 +2634,9 @@ various ways that may be running with too much privilege.") (base32 "1mlc25sd5rgj5xmzcllci47inmfdw7cp185fday6hc9rwqkqmnaw")))) (build-system gnu-build-system) + (arguments + (list #:make-flags + #~(list "BUILD_INFO=\"(Guix)\""))) (inputs (list libcap-ng)) (home-page "https://www.smartmontools.org/") (synopsis "S.M.A.R.T. harddisk control and monitoring tools") @@ -4194,7 +4196,7 @@ Python loading in HPC environments.") (let ((real-name "inxi")) (package (name "inxi-minimal") - (version "3.3.15-1") + (version "3.3.19-1") (source (origin (method git-fetch) @@ -4203,7 +4205,7 @@ Python loading in HPC environments.") (commit version))) (file-name (git-file-name real-name version)) (sha256 - (base32 "02zy94bd6ayfl9y7ka6gk32q254k49cbq3a6wgi31r2fcvybyrf7")))) + (base32 "0g5m43cj4534gb181zy1hwjz5il88xibf8psxw8a4s6jnaq1zdlk")))) (build-system trivial-build-system) (inputs `(("bash" ,bash-minimal) diff --git a/gnu/packages/aidc.scm b/gnu/packages/aidc.scm index 5482261a59..5e77ae3c5a 100644 --- a/gnu/packages/aidc.scm +++ b/gnu/packages/aidc.scm @@ -2,7 +2,7 @@ ;;; Copyright © 2014 John Darringon <jmd@gnu.org> ;;; Copyright © 2016, 2020, 2021 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2017 Hartmut Goebel <h.goebel@crazy-compilers.com> -;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2018, 2019, 2022 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2019 Guillaume Le Vaillant <glv@posteo.net> ;;; Copyright © 2020 Leo Famulari <leo@famulari.name> ;;; @@ -23,6 +23,7 @@ (define-module (gnu packages aidc) #:use-module (gnu packages) + #:use-module (guix gexp) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) #:use-module (guix download) @@ -148,7 +149,7 @@ characters, and is highly robust.") (define-public libdmtx (package (name "libdmtx") - (version "0.7.5") + (version "0.7.7") (source (origin (method git-fetch) @@ -157,11 +158,11 @@ characters, and is highly robust.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0wk3fkxzf9ip75v8ia54v6ywx72ajp5s6777j4ay8barpbv869rj")))) + (base32 "0s95gplvb6x7gnl48yn7ywa9r15lfm8k2m60wm9i7w75ay4bq32i")))) (build-system gnu-build-system) (arguments - ;; XXX Test suite is broken: https://github.com/dmtx/libdmtx/issues/22 - `(#:tests? #f)) + (list #:configure-flags + #~(list "--disable-static"))) (native-inputs (list autoconf automake libtool pkg-config)) (home-page "https://github.com/dmtx") diff --git a/gnu/packages/algebra.scm b/gnu/packages/algebra.scm index 6823531cc0..95fbdb5e36 100644 --- a/gnu/packages/algebra.scm +++ b/gnu/packages/algebra.scm @@ -325,7 +325,7 @@ precision.") (define-public giac (package (name "giac") - (version "1.7.0-51") + (version "1.9.0-19") (source (origin (method url-fetch) @@ -337,7 +337,7 @@ precision.") "~parisse/debian/dists/stable/main/source/" "giac_" version ".tar.gz")) (sha256 - (base32 "0wgqa2nxpv652348fxpchx5zvaj6ssc403jxwsdp5ky9pdpap2zs")))) + (base32 "1zl3wpw4mwsc2zm2mnxnajxql0df68mlfyivbkk4i300wjfqkdvb")))) (build-system gnu-build-system) (arguments (list diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index bab9d66a2d..262994c998 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -5841,7 +5841,7 @@ and DSD streams.") (define-public qpwgraph (package (name "qpwgraph") - (version "0.3.2") + (version "0.3.4") (source (origin (method git-fetch) (uri (git-reference @@ -5850,7 +5850,7 @@ and DSD streams.") (file-name (git-file-name name version)) (sha256 (base32 - "1zja4klvzbfwi14ihiahl8zm869h0c1yrpfkzvixxjcps372hh07")))) + "1xqmlbqj6ny4cpclzr8xyy6d6i392h9f1vmlbasp6xfy5b0yya94")))) (build-system cmake-build-system) (arguments `(#:tests? #f)) ;; no tests diff --git a/gnu/packages/bioconductor.scm b/gnu/packages/bioconductor.scm index 38c309caa4..31484799b2 100644 --- a/gnu/packages/bioconductor.scm +++ b/gnu/packages/bioconductor.scm @@ -2940,6 +2940,25 @@ measures for Affymetrix Oligonucleotide Arrays.") (properties `((upstream-name . "AffyCompatible"))) (build-system r-build-system) + (arguments + (list + #:phases + `(modify-phases %standard-phases + (add-after 'unpack 'make-reproducible + (lambda _ + ;; Order DTD elements before generating R code from them. + (substitute* "R/methods-AffyCompatible.R" + (("dtd <- .*" m) + (string-append m " +elements <- dtd$elements +ordered <- elements[order(names(elements))]\n")) + (("elt in dtd\\$elements") + "elt in ordered")) + ;; Use a predictable directory name for code generation. + (mkdir-p "/tmp/NetAffxResourcePrototype") + (substitute* "R/DataClasses.R" + (("directory=tempdir\\(\\)") + "directory=\"/tmp/NetAffxResourcePrototype\""))))))) (propagated-inputs (list r-biostrings r-rcurl r-xml)) (home-page "https://bioconductor.org/packages/AffyCompatible/") diff --git a/gnu/packages/c.scm b/gnu/packages/c.scm index b1f68c706b..1630a40d17 100644 --- a/gnu/packages/c.scm +++ b/gnu/packages/c.scm @@ -15,6 +15,7 @@ ;;; Copyright © 2021 Foo Chuan Wei <chuanwei.foo@hotmail.com> ;;; Copyright © 2022 (unmatched parenthesis <paren@disroot.org> ;;; Copyright © 2022 Artyom V. Poptsov <poptsov.artyom@gmail.com> +;;; Copyright © 2022 Ekaitz Zarraga <ekaitz@elenq.tech> ;;; ;;; This file is part of GNU Guix. ;;; @@ -112,58 +113,64 @@ (license license:expat)))) (define-public tcc - (package - (name "tcc") ;aka. "tinycc" - (version "0.9.27") - (source (origin - (method url-fetch) - (uri (string-append "mirror://savannah/tinycc/tcc-" - version ".tar.bz2")) - (sha256 - (base32 - "177bdhwzrnqgyrdv1dwvpd04fcxj68s5pm1dzwny6359ziway8yy")))) - (build-system gnu-build-system) - (native-inputs (list perl texinfo)) - (arguments - `(#:configure-flags (list (string-append "--elfinterp=" - (assoc-ref %build-inputs "libc") - ,(glibc-dynamic-linker)) - (string-append "--crtprefix=" - (assoc-ref %build-inputs "libc") - "/lib") - (string-append "--sysincludepaths=" - (assoc-ref %build-inputs "libc") - "/include:" - (assoc-ref %build-inputs - "kernel-headers") - "/include:{B}/include") - (string-append "--libpaths=" - (assoc-ref %build-inputs "libc") - "/lib") - ,@(if (string-prefix? "armhf-linux" - (or (%current-target-system) - (%current-system))) - `("--triplet=arm-linux-gnueabihf") - '())) - #:test-target "test")) - (native-search-paths - (list (search-path-specification - (variable "CPATH") - (files '("include"))) - (search-path-specification - (variable "LIBRARY_PATH") - (files '("lib" "lib64"))))) - ;; Fails to build on MIPS: "Unsupported CPU" - (supported-systems (delete "mips64el-linux" %supported-systems)) - (synopsis "Tiny and fast C compiler") - (description - "TCC, also referred to as \"TinyCC\", is a small and fast C compiler + ;; There's currently no release fixing <https://issues.guix.gnu.org/52140>. + (let ((revision "1") + (commit "a83b28568596afd8792fd58d1a5bd157fc6b6634")) + (package + (name "tcc") ;aka. "tinycc" + (version (git-version "0.9.27" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "git://repo.or.cz/tinycc.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "01znw86fg73x3k0clafica4b6glbhz69p588kvp766i0zgvs68dh")))) + (build-system gnu-build-system) + (native-inputs (list perl texinfo)) + (arguments + `(#:configure-flags (list (string-append "--elfinterp=" + (assoc-ref %build-inputs + "libc") + ,(glibc-dynamic-linker)) + (string-append "--crtprefix=" + (assoc-ref %build-inputs + "libc") "/lib") + (string-append "--sysincludepaths=" + (assoc-ref %build-inputs + "libc") "/include:" + (assoc-ref %build-inputs + "kernel-headers") + "/include:{B}/include") + (string-append "--libpaths=" + (assoc-ref %build-inputs + "libc") "/lib") + ,@(if (string-prefix? "armhf-linux" + (or (%current-target-system) + (%current-system))) + `("--triplet=arm-linux-gnueabihf") + '())) + #:test-target "test")) + (native-search-paths + (list (search-path-specification + (variable "CPATH") + (files '("include"))) + (search-path-specification + (variable "LIBRARY_PATH") + (files '("lib" "lib64"))))) + ;; Fails to build on MIPS: "Unsupported CPU" + (supported-systems (delete "mips64el-linux" %supported-systems)) + (synopsis "Tiny and fast C compiler") + (description + "TCC, also referred to as \"TinyCC\", is a small and fast C compiler written in C. It supports ANSI C with GNU and extensions and most of the C99 standard.") - (home-page "http://www.tinycc.org/") - ;; An attempt to re-licence tcc under the Expat licence is underway but not - ;; (if ever) complete. See the RELICENSING file for more information. - (license license:lgpl2.1+))) + (home-page "http://www.tinycc.org/") + ;; An attempt to re-licence tcc under the Expat licence is underway but not + ;; (if ever) complete. See the RELICENSING file for more information. + (license license:lgpl2.1+)))) (define-public pcc (package diff --git a/gnu/packages/calendar.scm b/gnu/packages/calendar.scm index 66723d7378..715d158241 100644 --- a/gnu/packages/calendar.scm +++ b/gnu/packages/calendar.scm @@ -2,7 +2,7 @@ ;;; Copyright © 2015 David Thompson <davet@gnu.org> ;;; Copyright © 2015, 2016, 2017 Leo Famulari <leo@famulari.name> ;;; Copyright © 2016 Kei Kebreau <kkebreau@posteo.net> -;;; Copyright © 2016, 2017, 2020 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2016, 2017, 2020, 2022 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016 Troy Sankey <sankeytms@gmail.com> ;;; Copyright © 2016, 2021 Stefan Reichoer <stefan@xsteve.at> ;;; Copyright © 2018, 2019, 2021 Tobias Geerinckx-Rice <me@tobias.gr> @@ -179,13 +179,13 @@ data units.") (define-public khal (package (name "khal") - (version "0.10.4") + (version "0.10.5") (source (origin (method url-fetch) (uri (pypi-uri "khal" version)) (sha256 (base32 - "17qj1n2l39pnzk4vjrmql90z7908nivnzcc2g9nj1h31k859inrz")))) + "0xhcrx7lcjk126i2xgqmgb199vd4hxsq34mkdmhdh9ia62nbgvsf")))) (build-system python-build-system) (arguments `(#:tests? #f ; The test suite is unreliable. See <https://bugs.gnu.org/44197> @@ -198,8 +198,7 @@ data units.") (invoke "make" "--directory=doc/" "man") (install-file "doc/build/man/khal.1" - (string-append (assoc-ref outputs "out") "/share/man/man1")) - #t))))) + (string-append (assoc-ref outputs "out") "/share/man/man1"))))))) (native-inputs (list python-setuptools-scm ;; Required to build manpage diff --git a/gnu/packages/chicken.scm b/gnu/packages/chicken.scm index d611c1762e..b87b8118f1 100644 --- a/gnu/packages/chicken.scm +++ b/gnu/packages/chicken.scm @@ -109,6 +109,26 @@ useful list processing procedures for construction, examining, destructuring and manipulating lists and pairs.") (license license:bsd-3))) +(define-public chicken-srfi-13 + (package + (name "chicken-srfi-13") + (version "0.3.2") + (source (origin + (method url-fetch) + (uri (egg-uri "srfi-13" version)) + (sha256 + (base32 + "18clbmaampaxivwx9bya9fxnkzqbczhlz0kbs9bfapm77mxkwclc")))) + (build-system chicken-build-system) + (arguments '(#:egg-name "srfi-13")) + (native-inputs (list chicken-test)) + (propagated-inputs (list chicken-srfi-14)) + (home-page "https://wiki.call-cc.org/egg/srfi-13") + (synopsis "SRFI-13 string library for Chicken scheme") + (description "This package provides the SRFI-13 string library for Chicken +scheme.") + (license license:bsd-3))) + (define-public chicken-srfi-14 (package (name "chicken-srfi-14") @@ -278,3 +298,34 @@ with integers.") "This package provides a simple testing utility for CHICKEN Scheme.") (license license:bsd-3))) +(define-public chicken-crypto-tools + (package + (name "chicken-crypto-tools") + (version "1.4") + (source (origin + (method url-fetch) + (uri (egg-uri "crypto-tools" version)) + (sha256 + (base32 + "0ajf0qfnhp99f4x1dll2fhlxrsxamgrrwyksc7rrym77xmv8f1pd")))) + (build-system chicken-build-system) + (arguments '(#:egg-name "crypto-tools")) + (home-page "https://wiki.call-cc.org/egg/crypto-tools") + (synopsis "Useful cryptographic primitives") + (description "The crypto-tools egg implements useful cryptographic +primitives. More specifically, provided are: + +@itemize +@item binary blobs +@itemize +@item marshallers to and from hex strings +@item blob xor +@item blob padding using either PKCS#5 or ISO7816-4 +@end itemize +@item Block cipher modes of operation +@itemize +@item CBC with or without incorporated encrypted IV in the ciphertext +@item CTR with or without incorporated IV in the ciphertext +@end itemize +@end itemize") + (license license:bsd-3))) diff --git a/gnu/packages/chromium.scm b/gnu/packages/chromium.scm index 968a76ff5c..4f21335502 100644 --- a/gnu/packages/chromium.scm +++ b/gnu/packages/chromium.scm @@ -316,7 +316,7 @@ ;; run the Blink performance tests, just remove everything to save ~70MiB. '("third_party/blink/perf_tests")) -(define %chromium-version "103.0.5060.114") +(define %chromium-version "103.0.5060.134") (define %ungoogled-revision (string-append %chromium-version "-1")) (define %debian-revision "debian/102.0.5005.61-1") @@ -328,7 +328,7 @@ (file-name (git-file-name "ungoogled-chromium" %ungoogled-revision)) (sha256 (base32 - "11i7d480q21vcd9p14rc7rb408xwlg2nkj88dq0sfj2rz60lzy0a")))) + "00mpmyaa8bqxf1f4vhk1waxhjbhcwab8m1x1vf341al64f6bmr1r")))) (define %debian-origin (origin @@ -477,7 +477,7 @@ %chromium-version ".tar.xz")) (sha256 (base32 - "0rarcd2q1ggl10cw3vwjk7j9aka7i129a0qv8qr7751vy083as3p")) + "0wdmy15602qxrb403p8yyx69k7py85fbawdsgap1l6z4h4j2g2p4")) (modules '((guix build utils))) (snippet (force ungoogled-chromium-snippet)))) (build-system gnu-build-system) diff --git a/gnu/packages/clojure.scm b/gnu/packages/clojure.scm index e6eb749501..c8157bfdcd 100644 --- a/gnu/packages/clojure.scm +++ b/gnu/packages/clojure.scm @@ -170,6 +170,7 @@ designs.") `(#:install-plan '(("deps.edn" "lib/clojure/") ("example-deps.edn" "lib/clojure/") + ("tools.edn" "lib/clojure/") ("exec.jar" "lib/clojure/libexec/") ("clojure" "bin/") ("clj" "bin/")) diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm index 820ff7281f..60b06c0901 100644 --- a/gnu/packages/commencement.scm +++ b/gnu/packages/commencement.scm @@ -13,6 +13,7 @@ ;;; Copyright © 2021 Chris Marusich <cmmarusich@gmail.com> ;;; Copyright © 2021 Julien Lepiller <julien@lepiller.eu> ;;; Copyright © 2022 Ricardo Wurmus <rekado@elephly.net> +;;; Copyright © 2022 Ekaitz Zarraga <ekaitz@elenq.tech> ;;; ;;; This file is part of GNU Guix. ;;; @@ -808,7 +809,13 @@ $MES -e '(mescc)' module/mescc.scm -- \"$@\" (inherit tcc-boot0) (name "tcc-boot") (version "0.9.27") - (source (package-source tcc)) + (source (origin + (method url-fetch) + (uri (string-append "mirror://savannah/tinycc/tcc-" + version ".tar.bz2")) + (sha256 + (base32 + "177bdhwzrnqgyrdv1dwvpd04fcxj68s5pm1dzwny6359ziway8yy")))) (build-system gnu-build-system) (inputs '()) (propagated-inputs '()) diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm index d5bd3abf0f..5b31b0ad52 100644 --- a/gnu/packages/compression.scm +++ b/gnu/packages/compression.scm @@ -2648,7 +2648,7 @@ to their original, binary CD format.") (define-public libdeflate (package (name "libdeflate") - (version "1.10") + (version "1.12") (source (origin (method git-fetch) (uri (git-reference @@ -2657,19 +2657,19 @@ to their original, binary CD format.") (file-name (git-file-name name version)) (sha256 (base32 - "0v5qh1cz787xj86l15x6brkkaw0jbxhqj5f85275q0l945qazvwm")))) + "16n9232zjavcp5wp17cx0gh2v7gipxpncsha05j3ybajfs7g88jv")))) (build-system gnu-build-system) (arguments - `(#:make-flags - (list (string-append "CC=" ,(cc-for-target)) - (string-append "PREFIX=" (assoc-ref %outputs "out"))) - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'skip-static-library-installation - (lambda _ - (substitute* "Makefile" - (("install .*\\$\\(STATIC_LIB\\).*") "")))) - (delete 'configure)))) + (list #:make-flags + #~(list (string-append "CC=" #$(cc-for-target)) + (string-append "PREFIX=" #$output)) + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'skip-static-library-installation + (lambda _ + (substitute* "Makefile" + (("install .*\\$\\(STATIC_LIB\\).*") "")))) + (delete 'configure)))) ; no configure script (inputs (list zlib)) (home-page "https://github.com/ebiggers/libdeflate") diff --git a/gnu/packages/diffoscope.scm b/gnu/packages/diffoscope.scm index 529f73cc77..2dc3cfad0f 100644 --- a/gnu/packages/diffoscope.scm +++ b/gnu/packages/diffoscope.scm @@ -5,6 +5,7 @@ ;;; Copyright © 2018 Julien Lepiller <julien@lepiller.eu> ;;; Copyright © 2018, 2019 Rutger Helling <rhelling@mykolab.com> ;;; Copyright © 2019 Vagrant Cascadian <vagrant@reproducible-builds.org> +;;; Copyright © 2022 Efraim Flashner <efraim@flashner.co.il> ;;; ;;; This file is part of GNU Guix. ;;; @@ -74,7 +75,7 @@ (define-public diffoscope (package (name "diffoscope") - (version "217") + (version "219") (source (origin (method git-fetch) @@ -83,7 +84,7 @@ (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "0vbyg8lm5ddrdkhahcs70rhdmz42blppzliryghxcyyxs7g3gzq5")) + (base32 "0n6dn53paxi1316fnv5abw5rlvpfd2kpfn3b08wfzrcb6chsx7br")) (patches (search-patches "diffoscope-fix-llvm-test.patch")))) (build-system python-build-system) @@ -176,10 +177,15 @@ ;; XXX: Must be the same version as python-magic uses; ;; remove when 'file' is updated. - file-next + file-next) - fpc - gettext-minimal + (match (%current-system) + ;; fpc is only available on x86 currently. + ((or "x86_64-linux" "i686-linux") + (list fpc)) + (_ '())) + + (list gettext-minimal ghostscript `(,giflib "bin") gnumeric diff --git a/gnu/packages/docker.scm b/gnu/packages/docker.scm index ae4ee419af..184280b38f 100644 --- a/gnu/packages/docker.scm +++ b/gnu/packages/docker.scm @@ -6,7 +6,7 @@ ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de> ;;; Copyright © 2020 Katherine Cox-Buday <cox.katherine.e@gmail.com> ;;; Copyright © 2020 Jesse Dowell <jessedowell@gmail.com> -;;; Copyright © 2021 Oleg Pykhalov <go.wigust@gmail.com> +;;; Copyright © 2021, 2022 Oleg Pykhalov <go.wigust@gmail.com> ;;; Copyright © 2022 Pierre Langlois <pierre.langlois@gmx.com> ;;; ;;; This file is part of GNU Guix. @@ -184,7 +184,9 @@ Python without keeping their credentials in a Docker configuration file.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1vsl747i3wyy68j4lp4nprwxadbyga8qxlrk892afcd2990zp5mr")))) + (base32 "1vsl747i3wyy68j4lp4nprwxadbyga8qxlrk892afcd2990zp5mr")) + (patches + (search-patches "containerd-create-pid-file.patch")))) (build-system go-build-system) (arguments (let ((make-flags #~(list (string-append "VERSION=" #$version) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 7abd3cf1f5..312cb58b28 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -278,8 +278,6 @@ "-o" "geiser.info" "geiser.texi"))))))) (native-inputs (list texinfo)) - (propagated-inputs - (list emacs-project emacs-transient)) (home-page "https://www.nongnu.org/geiser/") (synopsis "Collection of Emacs modes for Scheme hacking") (description @@ -1010,7 +1008,7 @@ libgit2 bindings for Emacs, intended to boost the performance of Magit.") (inputs (list git perl)) (propagated-inputs - (list emacs-dash emacs-transient emacs-with-editor)) + (list emacs-dash emacs-with-editor)) (home-page "https://magit.vc/") (synopsis "Emacs interface for the Git version control system") (description @@ -1035,8 +1033,7 @@ rebasing, and other common Git operations.") (base32 "1v1y4fir1plz4kj0cvkcd29wibli4dw7vp4fmbxq4df76d8iy8yd")))) (build-system emacs-build-system) - (propagated-inputs (list emacs-dash emacs-with-editor emacs-magit - emacs-transient)) + (propagated-inputs (list emacs-dash emacs-with-editor emacs-magit)) (home-page "https://github.com/magit/magit-svn") (synopsis "Git-SVN extension to Magit") (description @@ -1091,8 +1088,7 @@ process, passing on the arguments as command line arguments.") (sha256 (base32 "1amr2c08mq1nnn6k66mgz4rzyni4np7gxm96g4qyla2cbfbachgk")))) (build-system emacs-build-system) - (propagated-inputs - (list emacs-magit emacs-transient)) + (propagated-inputs (list emacs-magit)) (home-page "https://github.com/magit/magit-annex/") (synopsis "Git-annex support for Magit") (description @@ -4650,8 +4646,6 @@ saving won't move point back to the beginning of the buffer.") (base32 "1pz4l1xnq6s67w5yq9107vm8dg7rqf8n9dmbn90jys97c722g70n")))) (build-system emacs-build-system) - (propagated-inputs - (list emacs-transient)) (home-page "https://gitlab.com/pidu/git-timemachine") (synopsis "Step through historic versions of Git-controlled files") (description "This package enables you to step through historic versions @@ -5075,7 +5069,7 @@ result.") (emacs-substitute-sexps file ("(defcustom rg-executable" "rg")))))))) (propagated-inputs - (list emacs-s emacs-transient emacs-wgrep ripgrep)) + (list emacs-s emacs-wgrep ripgrep)) (home-page "https://rgel.readthedocs.io/en/latest/") (synopsis "Search tool based on @code{ripgrep}") (description @@ -5598,16 +5592,16 @@ displays the priority part of a heading as your preferred string value.") (define-public emacs-org-fragtog (package (name "emacs-org-fragtog") - (version "0.4.1") + (version "0.4.2") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/io12/org-fragtog.git") + (url "https://github.com/io12/org-fragtog") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "1912nlnk5v20szlmxr6y7chvms294z0p0hzdfgi8i3c7yrz7lmsj")))) + (base32 "1xag0pdphigk0ilrj2hacai3p6xgl27jji08aa1zlhq7p3rbay7m")))) (build-system emacs-build-system) (propagated-inputs (list emacs-org)) @@ -7527,6 +7521,32 @@ to a key in your preferred mode.") SuperCollider is a platform for audio synthesis and algorithmic composition.") (license license:gpl2+)))) +(define-public emacs-soothe-theme + ;; There is no named branch. + (let ((commit "0786fe70c6c1b4ddcfb932fdc6862b9611cfc09b") + (revision "0")) + (package + (name "emacs-soothe-theme") + (version (git-version "20141027.2233" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/emacsfodder/emacs-soothe-theme") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "10gh1hvxq9gm29r6qzlnva7vjidd7n4kih4z2ihyvbvy9za20xqw")))) + (build-system emacs-build-system) + (home-page "https://github.com/emacsfodder/emacs-soothe-theme") + (synopsis "Colorful, but muted theme for Emacs, dark background with light text") + (description + "Soothe theme is an amalgam of muted color tones and highlighted +backgrounds. It has builtin support for Rainbow delimiters, Org mode, +Whitespace mode, ECB, Flyspell, Ido, Linum, highlight indentation, Show Paren +mode.") + (license license:gpl3)))) + (define-public emacs-company-auctex (let ((commit "48c42c58ce2f0e693301b0cb2d085055410c1b25") (revision "1")) @@ -13250,7 +13270,7 @@ a DONE state.") (base32 "00q7aym0kl03j9m66pivgy0snxcjjg402049b2wdy18kgyypfvx8")))) (build-system emacs-build-system) - (propagated-inputs (list emacs-transient emacs-evil)) + (propagated-inputs (list emacs-evil)) (home-page "https://github.com/ChanderG/toodoo.el") (synopsis "Magit-like interface for a Todo workflow built on top of Org") (description "This package provides a minor mode for fast and easy management of Todos @@ -15503,14 +15523,14 @@ one if it fails.") (define-public emacs-eldoc (package (name "emacs-eldoc") - (version "1.12.0") + (version "1.13.0") (source (origin (method url-fetch) (uri (string-append "https://elpa.gnu.org/packages/eldoc-" version ".tar")) (sha256 - (base32 "1npggpisqnfkc3gx7dr3pjnif7gf571z7s9g7n6vnb213353qskk")))) + (base32 "0c05dzrs7vrhibj46jpz625482ah6xywji7way6wcvwc711y74fz")))) (build-system emacs-build-system) (home-page "http://elpa.gnu.org/packages/eldoc.html") (synopsis "Show function arglist or variable docstring in echo area") @@ -16129,7 +16149,7 @@ multiplexer.") (define-public emacs-plz (package (name "emacs-plz") - (version "0.1") + (version "0.2") (source (origin (method git-fetch) @@ -16138,7 +16158,7 @@ multiplexer.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "0psdjmj1r4g57vhm6c4hajmma72jk893fk820fbjgjwqihr1bxx9")))) + (base32 "170pbqiywk1zyhd0ig4f25qnjf7r1gwy0c6h343bcnl6qxvkvlv2")))) (build-system emacs-build-system) (inputs (list curl)) (home-page "https://github.com/alphapapa/plz.el") @@ -18761,7 +18781,6 @@ interactive commands and functions, such as @code{completing-read}.") emacs-org-super-agenda emacs-ov emacs-peg - emacs-transient emacs-ts emacs-s)) (native-inputs @@ -23352,7 +23371,7 @@ can be queued at any time.") (inputs (list youtube-dl)) (propagated-inputs - (list emacs-async emacs-transient)) + (list emacs-async emacs-dash)) (home-page "https://gitlab.com/tuedachu/ytdl") (synopsis "Emacs interface for youtube-dl") (description @@ -25058,8 +25077,7 @@ constant expressions.") emacs-docker-tramp emacs-json-mode emacs-s - emacs-tablist - emacs-transient)) + emacs-tablist)) (arguments `(#:tests? #false)) ;no tests (build-system emacs-build-system) (home-page "https://github.com/Silex/docker.el") @@ -25439,7 +25457,7 @@ to Metals.") (define-public emacs-lsp-ui (package (name "emacs-lsp-ui") - (version "8.0.0") + (version "8.0.1") (source (origin (method git-fetch) (uri (git-reference @@ -25448,7 +25466,7 @@ to Metals.") (file-name (git-file-name name version)) (sha256 (base32 - "00yirx6qzlb8fv8rd53zaw93nw72z3br40rb16scdqj1v20qsp47")))) + "1pd5lvjlmd6zq64py21yi5zxhcza9g5q48ngfivv7fi7pf3vsv00")))) (build-system emacs-build-system) (propagated-inputs (list emacs-dash emacs-lsp-mode emacs-markdown-mode emacs-flycheck)) @@ -25676,7 +25694,6 @@ commands (a prefix and a suffix) we prefer to call it just a \"transient\".") emacs-let-alist emacs-magit emacs-markdown-mode - emacs-transient emacs-yaml)) (home-page "https://github.com/magit/forge/") (synopsis "Access Git forges from Magit") @@ -25698,8 +25715,7 @@ comfort of Magit and the rest of Emacs.") (sha256 (base32 "1lfnh1glg6al677m7ci0x8g5wjdhjxlfl3nv1f1ppsw4dpnwsj9b")))) - (propagated-inputs - (list emacs-hydra emacs-transient)) + (propagated-inputs (list emacs-hydra)) (build-system emacs-build-system) (home-page "https://github.com/jojojames/matcha/") (synopsis "Collection of hydras with a generic interface to launch them") @@ -26065,8 +26081,7 @@ output.") (base32 "16cjmrzflf2i1w01973sl944xrfanakba8sb4dpwi79d92xp03xy")))) (build-system emacs-build-system) - (propagated-inputs - (list emacs-vdiff emacs-magit emacs-transient)) + (propagated-inputs (list emacs-vdiff emacs-magit)) (home-page "https://github.com/justbur/emacs-vdiff-magit/") (synopsis "Frontend for diffing based on vimdiff") (description "This package permits comparisons of two or three buffers @@ -26655,7 +26670,7 @@ all of your projects, then override or add variables on a per-project basis.") (inputs (list calibre)) (propagated-inputs - (list emacs-dash emacs-esxml emacs-s emacs-transient)) + (list emacs-dash emacs-esxml emacs-s)) (home-page "https://github.com/chenyanming/calibredb.el") (synopsis "Yet another calibre client for Emacs") (description "This package integrates calibre into Emacs. @@ -27409,7 +27424,7 @@ it forcibly (define-public emacs-elpher (package (name "emacs-elpher") - (version "3.4.1") + (version "3.4.2") (source (origin (method git-fetch) @@ -27418,7 +27433,7 @@ it forcibly (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0dv71zc95m5sa4824vk3d1xk726nh2v50i0yp6w3ydfzzsfph6j6")))) + (base32 "1c6pid2ip2c2lpww42wxgq4qflx1m8vxilyva03h8xzgr39kwq64")))) (build-system emacs-build-system) (arguments (list @@ -27824,7 +27839,7 @@ contains a track position, playback will start at the specified position.") (define-public emacs-org-jira (package (name "emacs-org-jira") - (version "4.3.2") + (version "4.3.3") (source (origin (method git-fetch) @@ -27834,7 +27849,7 @@ contains a track position, playback will start at the specified position.") (file-name (git-file-name name version)) (sha256 (base32 - "1hsfkkm3ykdf7n8a6k0mpzilhjpy7vllwrl2s4rfb9mhnaq5yb8y")))) + "0awfz4c70pxfj401p4h4j1lxic4pqpgigkldy9wvdkcyhqbphswj")))) (build-system emacs-build-system) (propagated-inputs (list emacs-request emacs-s emacs-dash emacs-org)) @@ -28567,8 +28582,7 @@ for the Telegram messaging platform."))) (inputs '()) (native-inputs '()) (propagated-inputs - (list emacs-alert emacs-all-the-icons emacs-dashboard emacs-telega - emacs-transient)) + (list emacs-alert emacs-all-the-icons emacs-dashboard emacs-telega)) (synopsis "Contributed packages to Telega") (description "Telega-contrib is a collection of third-party contributed packages to Telega."))) @@ -30445,8 +30459,6 @@ you use some other configuration.") (sha256 (base32 "0yv38bqdp6b614lbj4v408vv5mlic3vs1v7266xrfxm1cm903apj")))) (build-system emacs-build-system) - (propagated-inputs - (list emacs-transient)) (home-page "https://github.com/TatriX/tshell") (synopsis "Experimental buffer-oriented Emacs shell") (description @@ -30774,8 +30786,8 @@ and allows for an arbitrary number of leader keys.") (license license:gpl3+)))) (define-public emacs-spaceleader - (let ((commit "35368b03c094399c487cce93ab5b7ac725bd04f5") - (revision "0")) + (let ((commit "5d88d120494623d6777d464ec40ff4bb7d6b1d57") + (revision "1")) (package (name "emacs-spaceleader") (version (git-version "0.0.3" revision commit)) @@ -30787,7 +30799,7 @@ and allows for an arbitrary number of leader keys.") (commit commit))) (file-name (git-file-name name version)) (sha256 - (base32 "1lg51y59z6igqjw3vgyjc5zw32j11xhzw8y0svlx3ry415b0lnls")))) + (base32 "1prnjf7zs49z5a8qwhn8d0qnp60b3l0xhjkqg6v237acvk2axixr")))) (build-system emacs-build-system) (propagated-inputs (list emacs-dash @@ -31077,8 +31089,7 @@ rules about where space should be left to separate words and parentheses.") (sha256 (base32 "0b9hf20iah3ym2d4kz67k0kb48dq0442zxw4zmc03zg3sxfdxh0x")))) (build-system emacs-build-system) - (propagated-inputs - (list emacs-dash emacs-transient)) + (propagated-inputs (list emacs-dash)) (home-page "https://github.com/MaximeWack/seriesTracker") (synopsis "Keep track of the TV shows you watch from Emacs") (description @@ -31693,7 +31704,7 @@ Fennel code within Emacs.") (define-public emacs-org-modern (package (name "emacs-org-modern") - (version "0.3") + (version "0.4") (source (origin (method git-fetch) @@ -31701,7 +31712,7 @@ Fennel code within Emacs.") (url "https://github.com/minad/org-modern") (commit version))) (sha256 - (base32 "187fxw2rg0kw1d2binpa32ckp67r4v10j6ypr077g9qn6nkmyvvn")) + (base32 "0af9dzp9n3882kvsp3q4008hffq1mp9hjl964mlp5j8vay3x7qbz")) (file-name (git-file-name name version)))) (build-system emacs-build-system) (home-page "https://github.com/minad/org-modern") diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm index 4d23242a33..6eefd14d7e 100644 --- a/gnu/packages/engineering.scm +++ b/gnu/packages/engineering.scm @@ -35,6 +35,7 @@ ;;; Copyright © 2022 Greg Hogan <code@greghogan.com> ;;; Copyright © 2022 Artyom V. Poptsov <poptsov.artyom@gmail.com> ;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com> +;;; Copyright © 2022 Felix Gruber <felgru@posteo.net> ;;; ;;; This file is part of GNU Guix. ;;; @@ -2857,20 +2858,23 @@ data structures and to operate on them.") (license license:gpl3+))) (define-public pcb2gcode + ;; Take some additional commits after v2.4.0 to fix build against + ;; geos 3.10.1. + (let ((commit "ae41f9fe41e57ee5d0cced6c3b3c8aea9c3f5392")) (package (name "pcb2gcode") - (version "2.1.0") + (version (git-version "2.4.0" "1" commit)) (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/pcb2gcode/pcb2gcode") - (commit (string-append "v" version)) + (commit commit) (recursive? #t))) (file-name (git-file-name name version)) (sha256 (base32 - "0nzglcyh6ban27cc73j4l7w7r9k38qivq0jz8iwnci02pfalw4ry")))) + "1r1qmvpn5ffi2xpq2gigwsk8kn79s4s2ywfvicwf8i7rzwhkdf17")))) (build-system gnu-build-system) (inputs (list boost @@ -2887,7 +2891,7 @@ data structures and to operate on them.") and drilling of PCBs. It takes Gerber files as input and outputs G-code files for the milling of PCBs. It also includes an autoleveller for the automatic dynamic calibration of the milling depth.") - (license license:gpl3+))) + (license license:gpl3+)))) (define-public syscall-intercept ;; Upstream provides no tag. Also, last version update is 4 years old. diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm index 96dfc34075..89f5fc055c 100644 --- a/gnu/packages/finance.scm +++ b/gnu/packages/finance.scm @@ -29,6 +29,7 @@ ;;; Copyright © 2022 Kyle Meyer <kyle@kyleam.com> ;;; Copyright © 2022 Aleksandr Vityazev <avityazev@posteo.org> ;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com> +;;; Copyright © 2022 Philip McGrath <philip@philipmcgrath.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -62,6 +63,7 @@ #:use-module (guix deprecation) #:use-module (guix gexp) #:use-module (guix utils) + #:use-module (srfi srfi-26) #:use-module (gnu packages) #:use-module (gnu packages aidc) #:use-module (gnu packages autotools) @@ -1350,6 +1352,126 @@ information.") (home-page "https://grisbi.org") (license license:gpl2+))) +(define-public gbonds + ;; The last "upstream" commit is from about 2008, but the Debian maintainers + ;; have effectively become the upstream with an extensive series of patches. + ;; However, the patches are stored "unapplied", and some enhancements (like + ;; a decade's worth of new data files) rely on the Debian packaging tools, + ;; so building normally even from the patched sources would miss them. + ;; Here, we do all of the patching in the origin, so that the result of + ;; `guix build --source` is actually useable for building without Guix. + (let ((revision "1") + (commit "3054ee2f90cc7c03ed6b131177d09701c7a4fced")) + (package + (name "gbonds") + (version (git-version "2.0.3" revision commit)) + (source + (let ((unapplied + (origin + (method git-fetch) + (uri (git-reference + (url "https://salsa.debian.org/debian/gbonds.git") + (commit commit))) + (sha256 + (base32 + "1sqzzfymzxbnq6cjs5wvjbnvcrkdlimlmj2h7mlcaa9qqdpsgfki")) + (file-name (git-file-name name version))))) + (origin + (inherit unapplied) + (patches + ;; The order matters. + (map (cut file-append unapplied "/debian/patches/" <>) + '("desktop-file" + "POTFILES" + "POTFILES.missing" + "commands-compile" + "egg-recent-model-compile" + "gbonds-name-case" + "copyright-update" + "website-url" + "link-libm" + "xmldocs" + "configure-compiler-warnings" + "omf" + "desktop-file-keywords" + "replace-g_strcasecmp" + "gtk3-port" + "gsettings-port" + "no-rarian-compat" + "extern-gb_prefs" + "use-treasury-api.patch"))) + (snippet + #~(begin + (use-modules (guix build utils) + (srfi srfi-26)) + + ;; Remove generated files, which have not been patched. + (for-each (lambda (pth) + (when (file-exists? pth) + (delete-file pth))) + `(;; Things `make maintainer-clean` would do. + "gbonds.spec" + "src/marshal.c" + "src/marshal.h" + ;; Things upstream's distclean missed. + "intltool-extract" + "intltool-merge" + "intltool-update" + ;; Autotools generated files. + "aclocal.m4" + "config.guess" + "config.h.in" + "config.log" + "config.sub" + "configure" + "depcomp" + "intltool-extract.in" + "intltool-merge.in" + "intltool-update.in" + "ltmain.sh" + ,@(find-files "." "^Makefile\\.in$"))) + + ;; Arrange for `make install` to handle the additional + ;; redemption data files added in the Debian packaging. + (let* ((new-redemption-data-files + (find-files "debian" "^sb[[:digit:]]+\\.asc$")) + (names + (map (cut substring <> (string-length "debian/")) + new-redemption-data-files))) + (for-each rename-file + new-redemption-data-files + (map (cut string-append "data/" <>) + names)) + (substitute* "data/Makefile.am" + (("redemption_DATA = \\\\") + (apply string-append + "redemption_DATA = \\" + (map (cut string-append "\n\t" <> " \\") + names)))))))))) + (outputs '("out" "debug")) + (inputs (list gtk+ + glib + json-glib + libxml2 + libsoup-minimal-2 + cairo + pango)) + (native-inputs (list autoconf + automake + intltool + libtool + patch + pkg-config)) + (build-system glib-or-gtk-build-system) + (home-page "http://gbonds.sourceforge.net") + (synopsis "@acronym{U.S.} Savings Bond inventory program for GNOME") + (description + "GBonds is a @acronym{U.S.} Savings Bond inventory program for the +GNOME desktop environment. It allows you to track the current redemption +value and performance of your @acronym{U.S.} Savings Bonds and keep a valuable +record of the bonds you own.") + (license license:gpl2+)))) + (define-public trezord-udev-rules (let ((commit "bff7fdfe436c727982cc553bdfb29a9021b423b0") (revision "0")) diff --git a/gnu/packages/fribidi.scm b/gnu/packages/fribidi.scm index 1a371f2111..d3a6169b0b 100644 --- a/gnu/packages/fribidi.scm +++ b/gnu/packages/fribidi.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014 Marek Benc <merkur32@gmail.com> -;;; Copyright © 2016, 2019, 2020 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2016, 2019, 2020, 2022 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; ;;; This file is part of GNU Guix. @@ -97,4 +97,6 @@ or right-to-left ordering as necessary.") to visual-Hebrew output. This is useful for reading Hebrew mail messages, viewing Hebrew texts, etc. It was written for Hebrew but Arabic (or other BiDi languages) should work equally well.") + (properties + '((release-monitoring-url . "https://deb.debian.org/debian/pool/main/b/bidiv"))) (license gpl2+))) diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 713f9339b2..d55a2ee867 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -1103,46 +1103,6 @@ cows can think too: all you have to do is run @command{cowthink}. If you're tired of cows, a variety of other ASCII-art messengers are available.") (license license:gpl3+))) -(define-public lolcat - (let ((commit "35dca3d0a381496d7195cd78f5b24aa7b62f2154") - (revision "0")) - (package - (name "lolcat") - (version (git-version "1.0" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/jaseg/lolcat") - (commit commit))) - (sha256 - (base32 - "0jjbkqcc2ikjxd1xgdyv4rb0vsw218181h89f2ywg29ffs3ypd8g")) - (file-name (git-file-name name version)))) - (build-system gnu-build-system) - (arguments - `(#:tests? #f ; no check target - #:make-flags - (list ,(string-append "CC=" (cc-for-target))) - #:phases - (modify-phases %standard-phases - (delete 'bootstrap) - (delete 'configure) - (replace 'install - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (dest (string-append out "/bin"))) - (mkdir-p dest) - (install-file "lolcat" dest) - (install-file "censor" dest) - #t)))))) - (home-page "https://github.com/jaseg/lolcat") - (synopsis "Rainbow coloring effect for text console display") - (description "@command{lolcat} concatenates files and streams like -regular @command{cat}, but it also adds terminal escape codes between -characters and lines resulting in a rainbow effect.") - (license license:wtfpl2)))) - (define-public falltergeist (package (name "falltergeist") diff --git a/gnu/packages/geo.scm b/gnu/packages/geo.scm index 024a9dd883..a05b86219e 100644 --- a/gnu/packages/geo.scm +++ b/gnu/packages/geo.scm @@ -216,7 +216,7 @@ OpenStreetMap written in C using eXpat, Cairo and GLib.") (define-public geos (package (name "geos") - (version "3.8.1") + (version "3.10.2") (source (origin (method url-fetch) (uri (string-append "http://download.osgeo.org/geos/geos-" @@ -224,8 +224,8 @@ OpenStreetMap written in C using eXpat, Cairo and GLib.") ".tar.bz2")) (sha256 (base32 - "1xqpmr10xi0n9sj47fbwc89qb0yr9imh4ybk0jsxpffy111syn22")))) - (build-system gnu-build-system) + "05apyh6dvv15fax4xvxa0kr622h4y08w9p3274mlqsrqmjcwbfsh")))) + (build-system cmake-build-system) (arguments `(#:phases (modify-phases %standard-phases (add-after @@ -233,11 +233,10 @@ OpenStreetMap written in C using eXpat, Cairo and GLib.") (lambda _ (substitute* '("tests/xmltester/testrunner.sh" "tests/geostest/testrunner.sh") - (("/bin/sh") (which "sh"))) - #t))))) + (("/bin/sh") (which "sh")))))))) (inputs (list glib)) - (home-page "https://geos.osgeo.org/") + (home-page "https://libgeos.org/") (synopsis "Geometry Engine for Geographic Information Systems") (description "GEOS provides a spatial object model and fundamental geometric @@ -342,18 +341,14 @@ and driving.") (define-public libgeotiff (package (name "libgeotiff") - (version "1.5.1") + (version "1.7.1") (source (origin (method url-fetch) (uri (string-append "http://download.osgeo.org/geotiff/libgeotiff/libgeotiff-" version ".tar.gz")) - (patches (search-patches - ;; See libgeotiff 1.5.1 issue - ;; https://github.com/OSGeo/libgeotiff/issues/22 - "libgeotiff-adapt-test-script-for-proj-6.2.patch")) (sha256 - (base32 "0b31mlzcv5b1y7jdvb7p0pa3xradrg3x5g32ym911lbhq4rrgsgr")) + (base32 "1mjmgv48x51ppax5dnb6lq7z600czxll53bx6jbzqwd4m93i7aq5")) (modules '((guix build utils))) (snippet '(begin @@ -2213,7 +2208,7 @@ orienteering sport.") (license license:gpl3+))) (define-public grass - (let* ((version "7.8.6") + (let* ((version "7.8.7") (majorminor (string-join (list-head (string-split version #\.) 2) "")) (grassxx (string-append "grass" majorminor))) (package @@ -2225,7 +2220,7 @@ orienteering sport.") (uri (string-append "https://grass.osgeo.org/" grassxx "/source/grass-" version ".tar.gz")) (sha256 - (base32 "1glk74ly3j0x8ymn4jp73s6y8qv7p3g5nv4gvb6l9qqplyq1fpnq")))) + (base32 "0sbz0ba9p963phvd0gmvfqq1fg4ixpipzcjbf20ys86qavjppzsg")))) (build-system gnu-build-system) (inputs `(("bzip2" ,bzip2) @@ -2336,7 +2331,7 @@ visualization.") (define-public saga (package (name "saga") - (version "7.9.0") + (version "8.2.1") (source (origin (method url-fetch) @@ -2344,8 +2339,8 @@ visualization.") (version-major version) "/SAGA%20-%20" version "/saga-" version ".tar.gz")) (sha256 - (base32 "1n051yxxkylly0k9rlkx2ih3j2lf9d4csg00sm7161r7nhjvggd1")))) - (build-system gnu-build-system) + (base32 "008izjs6gvj09abxf16ssl1xy0ay3ljq4jswbggp6wiiq459minv")))) + (build-system cmake-build-system) (native-inputs (list pkg-config swig)) (inputs @@ -2365,7 +2360,12 @@ visualization.") vigra wxwidgets)) (arguments - '(#:configure-flags '("--enable-python"))) + '(#:tests? #f + #:phases + (modify-phases %standard-phases + (add-before 'configure 'cd-to-source-dir + (lambda _ + (chdir "saga-gis")))))) (synopsis "System for Automated Geoscientific Analyses") (description "SAGA (System for Automated Geoscientific Analyses) is a Geographic @@ -2486,12 +2486,14 @@ growing set of geoscientific methods.") "PyQgsLayoutHtml" "PyQgsLayoutLegend" "PyQgsLayoutMapGrid" + "PyQgsMapClippingUtils" "PyQgsMapLayer" "PyQgsMetadataBase" "PyQgsOGRProvider" "PyQgsOGRProviderGpkg" "PyQgsOapifProvider" "PyQgsPalLabelingLayout" + "PyQgsProcessingInPlace" "PyQgsProject" "PyQgsProviderConnectionGpkg" "PyQgsProviderConnectionPostgres" @@ -2528,6 +2530,7 @@ growing set of geoscientific methods.") "qgis_layoutlabeltest" "qgis_layoutmanualtabletest" "qgis_layoutmapgridtest" + "qgis_layoutmapoverviewtest" "qgis_layoutmaptest" "qgis_layoutmultiframetest" "qgis_layoutpicturetest" @@ -2535,6 +2538,7 @@ growing set of geoscientific methods.") "qgis_layouttest" "qgis_mapdevicepixelratiotest" "qgis_maprendererjobtest" + "qgis_meshcontourstest" "qgis_ogrproviderguitest" "qgis_painteffecttest" "qgis_pallabelingtest" @@ -2548,7 +2552,8 @@ growing set of geoscientific methods.") "qgis_svgmarkertest" "qgis_taskmanagertest" "qgis_wcsprovidertest" - "qgis_ziplayertest") + "qgis_ziplayertest" + "TestQgsRandomMarkerSymbolLayer") "|"))))) (add-after 'install 'wrap-python (assoc-ref python:%standard-phases 'wrap)) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 0ce96d41de..96ec260dec 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -4373,6 +4373,44 @@ the GObject type system and has additional code generation routines that make targeting the GNOME stack simple.") (license license:lgpl2.1+))) +(define-public vala-next + (package + (inherit vala) + (version "0.56.2") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnome/sources/vala/" + (version-major+minor version) "/" + "vala-" version ".tar.xz")) + (sha256 + (base32 + "0k0jj3xwjq222x0hbqqy5bykhgk1f1wsb85bqcdgsnbqn6dn3jb6")))) + (arguments + (list + #:configure-flags #~(list "CC=gcc" "--enable-coverage") + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'use-gcc-by-default + (lambda _ + (substitute* "codegen/valaccodecompiler.c" + (("cc_command = \"cc\"") + "cc_command = \"gcc\"")))) + (add-after 'unpack 'patch-docbook-xml + (lambda* (#:key inputs #:allow-other-keys) + (with-directory-excursion "doc/manual" + (substitute* '("manual.xml" "version.xml.in") + (("http://www.oasis-open.org/docbook/xml/4.4/") + (search-input-directory inputs "xml/dtd/docbook")))))) + (add-before 'check 'pre-check + (lambda _ + (substitute* "valadoc/tests/libvaladoc/tests-extra-environment.sh" + (("export PKG_CONFIG_PATH=" m) + (string-append m "$PKG_CONFIG_PATH:"))))) + ;; Wrapping the binaries breaks vala's behavior adaptations based on + ;; the file name of the program executed (vala: compile and execute, + ;; valac: compile into a binary). + (delete 'glib-or-gtk-wrap)))))) + ;;; An older variant kept to build libsoup-minimal-2. (define-public vala-0.52 (package/inherit vala diff --git a/gnu/packages/gps.scm b/gnu/packages/gps.scm index a18b93c179..853361bd61 100644 --- a/gnu/packages/gps.scm +++ b/gnu/packages/gps.scm @@ -138,7 +138,7 @@ between two other data points.") (define-public gama (package (name "gama") - (version "2.19") + (version "2.21") (source (origin (method url-fetch) @@ -146,7 +146,7 @@ between two other data points.") version ".tar.gz")) (sha256 (base32 - "0lh3abvyq07igi44mmjif3nwy6iig0j1jq6rrxkrvkhhm5q98b1q")) + "0xncq4cgzn5mgwxw515xa0rhazf28y4cnpwg67kbibya7zx2iqw7")) (modules '((guix build utils))) (snippet '(begin diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm index dd537c9d10..a1503602ad 100644 --- a/gnu/packages/gstreamer.scm +++ b/gnu/packages/gstreamer.scm @@ -841,7 +841,9 @@ model to base your own plug-in on, here it is.") ("libgme" ,libgme) ("libgudev" ,libgudev) ("libkate" ,libkate) - ("libmfx" ,mediasdk) + ,@(if (target-x86?) + `(("libmfx" ,mediasdk)) + '()) ("libmms" ,libmms) ("libmodplug" ,libmodplug) ("libmpcdec" ,libmpcdec) @@ -887,7 +889,9 @@ model to base your own plug-in on, here it is.") ("soundtouch" ,soundtouch) ("spandsp" ,spandsp) ("srt" ,srt) - ("svthevcenc" ,svt-hevc) + ,@(if (target-x86?) + `(("svthevcenc" ,svt-hevc)) + '()) ("tinyalsa" ,tinyalsa) ("transcode" ,transcode) ("usrsctp" ,usrsctp) diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm index 2456509b97..0717acf83b 100644 --- a/gnu/packages/guile-xyz.scm +++ b/gnu/packages/guile-xyz.scm @@ -42,6 +42,7 @@ ;;; Copyright © 2022 Maxime Devos <maximedevos@telenet.be> ;;; Copyright © 2022 Zhu Zihao <all_but_last@163.com> ;;; Copyright © 2022 Antero Mejr <antero@mailbox.org> +;;; Copyright © 2022 Taiju HIGASHI <higashi@taiju.info> ;;; ;;; This file is part of GNU Guix. ;;; @@ -1614,7 +1615,7 @@ for MySQL.") (define-public guile-config (package (name "guile-config") - (version "0.4.2") + (version "0.5.1") (source (origin (method git-fetch) @@ -1623,7 +1624,7 @@ for MySQL.") (commit version))) (file-name (git-file-name name version)) (sha256 (base32 - "09028ylbddjdp3d67zdjz3pnsjqz6zs2bfck5rr3dfaa0qjap40n")))) + "0s708k6qnk9155bjrcy1f1v7lqhlpaj4mjip46sr3iw85hca92wz")))) (build-system gnu-build-system) (native-inputs (list autoconf automake pkg-config texinfo)) @@ -1652,16 +1653,16 @@ above command-line parameters.") (define-public guile-hall (package (name "guile-hall") - (version "0.3.1") + (version "0.4.1") (source (origin (method git-fetch) (uri (git-reference (url "https://gitlab.com/a-sassmannshausen/guile-hall") (commit version))) - (file-name "guile-hall-0.3.1-checkout") + (file-name (git-file-name name version)) (sha256 - (base32 "1s24nigdra6rvclvy15l2aw00c3aq9vv8qwxylzs60darbl36206")))) + (base32 "0yrrik1v1xbik5h5q7w2cxrx6gvkmcdm32dl36i7xqdq8pr8sh2d")))) (build-system gnu-build-system) (arguments `(#:modules @@ -4041,8 +4042,8 @@ according to Bitorrent BEP003.") (license license:gpl3+))) (define-public guile-irc - (let ((commit "375d3bde9c6ae7ccc9d7cc65817966b6fda8f26a") - (revision "0")) + (let ((commit "7d08ce6fdcb87ac668c5d3bfd5584247805507bb") + (revision "1")) (package (name "guile-irc") (version (git-version "0.3.0" revision commit)) @@ -4054,12 +4055,12 @@ according to Bitorrent BEP003.") (file-name (git-file-name name version)) (sha256 (base32 - "113lcckcywrz9060w1c3fnvr8d7crdsjgsv4h47hgmr1slgadl4y")))) + "1jx8704200l29ndg9bfyamgxrzknya0f0vwb2sxhd0k3b8r94avw")))) (build-system gnu-build-system) (arguments `(#:configure-flags '("--enable-gnutls=yes"))) (native-inputs - (list autoconf automake texinfo)) + (list autoconf automake texinfo pkg-config)) (inputs (list gnutls guile-3.0)) (home-page "https://github.com/rekado/guile-irc") diff --git a/gnu/packages/hardware.scm b/gnu/packages/hardware.scm index ecff498156..27567bb38e 100644 --- a/gnu/packages/hardware.scm +++ b/gnu/packages/hardware.scm @@ -319,7 +319,7 @@ operability and find drivers.") (define-public hwinfo (package (name "hwinfo") - (version "21.81") + (version "21.82") (home-page "https://github.com/openSUSE/hwinfo") (source (origin @@ -330,7 +330,7 @@ operability and find drivers.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "0iyx1fb66s6b5ai4agw91nvl9wwk7z8g6y475vry3wv80dngzc43")) + (base32 "1ih6vrgh64408cijywy9by2snynkw91p3h0ry5pzk3lyqsl0wnlh")) (modules '((guix build utils))) (snippet diff --git a/gnu/packages/image-viewers.scm b/gnu/packages/image-viewers.scm index 1db169535e..8d4d2351c3 100644 --- a/gnu/packages/image-viewers.scm +++ b/gnu/packages/image-viewers.scm @@ -162,7 +162,7 @@ YouTube videos without requiring API and opens/downloads them using mpv/ytdl.") (define-public feh (package (name "feh") - (version "3.8") + (version "3.9") (home-page "https://feh.finalrewind.org/") (source (origin (method url-fetch) @@ -170,16 +170,19 @@ YouTube videos without requiring API and opens/downloads them using mpv/ytdl.") name "-" version ".tar.bz2")) (sha256 (base32 - "1a9bsq5j9sl2drzkab0hdhnamalpaszw9mz2prz6scrr5dak8g3z")))) + "185wwqd60r2rk6lzcvd6sl58589qfqrfnf7lqd6friyj84n9cjc6")))) (build-system gnu-build-system) (arguments - `(#:phases (modify-phases %standard-phases (delete 'configure)) - #:test-target "test" - #:make-flags - (list ,(string-append "CC=" (cc-for-target)) - (string-append "PREFIX=" (assoc-ref %outputs "out")) - "exif=1" - "inotify=1"))) + (list #:phases + #~(modify-phases %standard-phases + (delete 'configure)) ; no configure script + #:test-target "test" + #:make-flags + #~(list (string-append "CC=" #$(cc-for-target)) + (string-append "PREFIX=" #$output) + "exif=1" + "inotify=1" + "magic=1"))) (native-inputs (list perl perl-test-command)) (inputs (list curl diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm index 7f5625acf5..ea510142f8 100644 --- a/gnu/packages/image.scm +++ b/gnu/packages/image.scm @@ -1812,7 +1812,7 @@ parsing, viewing, modifying, and saving this metadata.") (define-public flameshot (package (name "flameshot") - (version "0.10.2") + (version "12.1.0") (source (origin (method git-fetch) @@ -1822,7 +1822,7 @@ parsing, viewing, modifying, and saving this metadata.") (file-name (git-file-name name version)) (sha256 (base32 - "07n98pp5i6i51g7a4vqwbd6xarihzl7r714r2knvw2zn5mlj55dd")))) + "1p7gqs5vqzbddlgl38lbanchwb14m6lx8f2cn2c5p0vyqwvqqv52")))) (build-system qt-build-system) (native-inputs (list qttools)) diff --git a/gnu/packages/irc.scm b/gnu/packages/irc.scm index 8c484efb2d..5fc69cab3b 100644 --- a/gnu/packages/irc.scm +++ b/gnu/packages/irc.scm @@ -194,21 +194,20 @@ Conferencing} and @acronym{ICB, Internet Citizen's Band}.") (define-public weechat (package (name "weechat") - (version "3.5") + (version "3.6") (source (origin (method url-fetch) (uri (string-append "https://weechat.org/files/src/weechat-" version ".tar.xz")) (sha256 (base32 - "030p1264rrbr5sbyww85xq0cm5zzdmnpz89y9z90ppcfxi64x47a")))) + "1ppj676gwh67krq92xnfkmh3qnwbz8d51djsscxw013x7cdxg1cx")))) (build-system cmake-build-system) (outputs '("out" "doc")) (native-inputs `(("gettext-minimal" ,gettext-minimal) ("pkg-config" ,pkg-config) - ,@(if (or (target-x86-64?) - (target-x86-32?)) + ,@(if (target-x86?) `(("ruby-asciidoctor" ,ruby-asciidoctor)) '()) ;; For tests. @@ -231,16 +230,14 @@ Conferencing} and @acronym{ICB, Internet Citizen's Band}.") (arguments `(#:configure-flags (list "-DENABLE_PHP=OFF" - ,@(if (or (target-x86-64?) - (target-x86-32?)) + ,@(if (target-x86?) '("-DENABLE_MAN=ON" "-DENABLE_DOC=ON") '()) "-DENABLE_TESTS=ON") ; ‘make test’ fails otherwise #:phases (modify-phases %standard-phases - ,@(if (or (target-x86-64?) - (target-x86-32?)) + ,@(if (target-x86?) '((add-after 'install 'move-doc (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) diff --git a/gnu/packages/jami.scm b/gnu/packages/jami.scm index 160d0f560b..b8210bcc1e 100644 --- a/gnu/packages/jami.scm +++ b/gnu/packages/jami.scm @@ -181,7 +181,7 @@ "--enable-muxer=h263" "--enable-muxer=h264" "--enable-muxer=hevc" -; "--enable-muxer=matroska" + "--enable-muxer=matroska" "--enable-muxer=webm" "--enable-muxer=ogg" "--enable-muxer=pcm_s16be" diff --git a/gnu/packages/kde-multimedia.scm b/gnu/packages/kde-multimedia.scm index 752f6b499c..265dcef625 100644 --- a/gnu/packages/kde-multimedia.scm +++ b/gnu/packages/kde-multimedia.scm @@ -29,6 +29,7 @@ #:use-module (guix gexp) #:use-module (gnu packages) #:use-module (gnu packages audio) + #:use-module (gnu packages bash) #:use-module (gnu packages compression) #:use-module (gnu packages cdrom) #:use-module (gnu packages docbook) @@ -373,6 +374,16 @@ variety of formats.") (("\"(dvdcss)\"" _ library) (string-append "\"" libdvdcss "/lib/" library "\"")))) #t)) + (add-before 'configure 'fix-cmake-taglib + (lambda _ + ;; Use the CMake variables provided by FindTaglib from + ;; extra-cmake-modules, instead of bundled FindTaglib.cmake: + (substitute* + '("plugins/decoder/mp3/CMakeLists.txt" + "plugins/decoder/flac/CMakeLists.txt" + "plugins/project/audiometainforenamer/CMakeLists.txt") + (("TAGLIB_INCLUDES") "Taglib_INCLUDE_DIRS") + (("TAGLIB_LIBRARIES") "Taglib_LIBRARIES")))) (add-after 'qt-wrap 'wrap-path (lambda* (#:key inputs outputs #:allow-other-keys) ;; Set paths to backend programs. @@ -380,12 +391,14 @@ variety of formats.") `("PATH" ":" prefix ,(map (lambda (input) (string-append (assoc-ref inputs input) "/bin")) - '("cdrdao" "dvd+rw-tools" "libburn" "sox")))) + '("cdrdao" "cdrtools" "dvd+rw-tools" "libburn" "sox")))) #t))))) (native-inputs (list extra-cmake-modules pkg-config kdoctools)) (inputs - (list cdrdao + (list bash-minimal + cdrdao + cdrtools dvd+rw-tools ffmpeg flac diff --git a/gnu/packages/kde-utils.scm b/gnu/packages/kde-utils.scm index 2b3a0dd15e..ec3470aa0a 100644 --- a/gnu/packages/kde-utils.scm +++ b/gnu/packages/kde-utils.scm @@ -496,14 +496,14 @@ remind you to take a break now and then.") (define-public smb4k (package (name "smb4k") - (version "3.0.6") + (version "3.1.3") (source (origin (method url-fetch) (uri (string-append "https://sourceforge.net/projects/smb4k/files/" - version "/smb4k-" version ".tar.xz/download")) + version "/smb4k-" version ".tar.xz")) (sha256 - (base32 "0hz6nfd845bykf78s4g2qs77szl96gy6g8rpg44pqd39a0k0xbh7")))) + (base32 "0prw0aq16nz9ns4d50mc6fbaw9pbcyh8p698izylhd4i0nr1dd9d")))) (build-system qt-build-system) (native-inputs (list extra-cmake-modules kdoctools)) @@ -515,6 +515,7 @@ remind you to take a break now and then.") kcoreaddons kcrash kdbusaddons + kdnssd ki18n kiconthemes kio diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 7637a514aa..3efbb1e2d0 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -352,7 +352,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." ;; The current "stable" kernels. That is, the most recently released major ;; versions that are still supported upstream. -(define-public linux-libre-5.18-version "5.18.10") +(define-public linux-libre-5.18-version "5.18.12") (define-public linux-libre-5.18-gnu-revision "gnu") (define deblob-scripts-5.18 (linux-libre-deblob-scripts @@ -362,7 +362,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." (base32 "0vjpn8iw9yg39sr6jfhzyvivf159h9zfgnjamwa283zfll0h0a53"))) (define-public linux-libre-5.18-pristine-source (let ((version linux-libre-5.18-version) - (hash (base32 "1qyyfdfp8qn8a6brgly0h72jvz9s0wp2pjyrcpknzvmqvc0kv7pr"))) + (hash (base32 "09wmgfrnv1df6jg9v3svwhvnxl0j6h4f240p903xlmgj884lvds0"))) (make-linux-libre-source version (%upstream-linux-source version hash) @@ -371,7 +371,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." ;; The "longterm" kernels — the older releases with long-term upstream support. ;; Here are the support timelines: ;; <https://www.kernel.org/category/releases.html> -(define-public linux-libre-5.15-version "5.15.53") +(define-public linux-libre-5.15-version "5.15.55") (define-public linux-libre-5.15-gnu-revision "gnu") (define deblob-scripts-5.15 (linux-libre-deblob-scripts @@ -381,12 +381,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." (base32 "129qlhwdv2mfb85gbvq03kkbdfp73b444rryr4rrbvi0jmq4cp24"))) (define-public linux-libre-5.15-pristine-source (let ((version linux-libre-5.15-version) - (hash (base32 "01vvyw6sjkkjs7l4cy04yv19d9f3wmpy5gqfm763y7q58dr73apk"))) + (hash (base32 "1k7x7fp675wglfd357n7hjidnm3j8zj3gcymyazg6fkcid8bvxhy"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-5.15))) -(define-public linux-libre-5.10-version "5.10.129") +(define-public linux-libre-5.10-version "5.10.131") (define-public linux-libre-5.10-gnu-revision "gnu1") (define deblob-scripts-5.10 (linux-libre-deblob-scripts @@ -396,12 +396,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." (base32 "1981axxswghza3iadp94q54y8w30h9w9vyq4cbjiiv9alvbv0pb8"))) (define-public linux-libre-5.10-pristine-source (let ((version linux-libre-5.10-version) - (hash (base32 "1zlw89m7wpy02rnk8mizng43i77hrkwzl280sivqz1c05c2jzrxa"))) + (hash (base32 "1ki11mvl3dky7iih90znr47vr66dxnlwrqwg2jkk1hqn5i243i4b"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-5.10))) -(define-public linux-libre-5.4-version "5.4.204") +(define-public linux-libre-5.4-version "5.4.206") (define-public linux-libre-5.4-gnu-revision "gnu1") (define deblob-scripts-5.4 (linux-libre-deblob-scripts @@ -411,12 +411,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." (base32 "1vnjbdyssa7dwyjl9kg35alwvf7yh597cl74yr1wy2gk5bc9paw6"))) (define-public linux-libre-5.4-pristine-source (let ((version linux-libre-5.4-version) - (hash (base32 "0ivsfdw55mysihylk5n46r7limf1rqddipap17mkfnyq345b3hgx"))) + (hash (base32 "1asvc7y1f938icspxx39n6y6r0w9mp0k9vik84rsx1hzzv0db41c"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-5.4))) -(define-public linux-libre-4.19-version "4.19.251") +(define-public linux-libre-4.19-version "4.19.252") (define-public linux-libre-4.19-gnu-revision "gnu1") (define deblob-scripts-4.19 (linux-libre-deblob-scripts @@ -426,12 +426,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." (base32 "00i91lx938nqlgy63hiricqd0fnbbf26vgya9c5lb7m1f4x324im"))) (define-public linux-libre-4.19-pristine-source (let ((version linux-libre-4.19-version) - (hash (base32 "1x6ag81wzcynfa4l819mamk9k11fxgq5m1gain93avparjnwi1rp"))) + (hash (base32 "0ac7k6x9h8gqi37n8d4fyi52h4cmzyy8f5vfv1aiihww4kvzca7v"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-4.19))) -(define-public linux-libre-4.14-version "4.14.287") +(define-public linux-libre-4.14-version "4.14.288") (define-public linux-libre-4.14-gnu-revision "gnu1") (define deblob-scripts-4.14 (linux-libre-deblob-scripts @@ -441,12 +441,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." (base32 "00i91lx938nqlgy63hiricqd0fnbbf26vgya9c5lb7m1f4x324im"))) (define-public linux-libre-4.14-pristine-source (let ((version linux-libre-4.14-version) - (hash (base32 "05pnz2wch5b430j82sjqhxyfbpln4p1569avj2qkk62x4164kdbq"))) + (hash (base32 "0yyzxyz66mfngx3ll3pl43413xb67iyxddzh3lpzqcfg7d0rxfwz"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-4.14))) -(define-public linux-libre-4.9-version "4.9.322") +(define-public linux-libre-4.9-version "4.9.323") (define-public linux-libre-4.9-gnu-revision "gnu1") (define deblob-scripts-4.9 (linux-libre-deblob-scripts @@ -456,7 +456,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." (base32 "0bib3641dbcqdkx3anna3caxnsg3nw9cnmhcklq0s93g3m57041h"))) (define-public linux-libre-4.9-pristine-source (let ((version linux-libre-4.9-version) - (hash (base32 "02g4lkiq6y5i6vrrk2i9h6dxka6mfjpk9dz3517adw5qf79ph6b2"))) + (hash (base32 "1h96ai9w5q2axhliw85aymdsg8py9y6gl8big5r2gwkbls6h7pa3"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-4.9))) @@ -4756,14 +4756,14 @@ isolation or root privileges.") (define-public hdparm (package (name "hdparm") - (version "9.63") + (version "9.64") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/hdparm/hdparm/" "hdparm-" version ".tar.gz")) (sha256 (base32 - "14cni5r116k07zqj0565byjhv6gf3ns6hd8jkjl7fn5sxgm5sy3h")))) + "16l5mc6dpqkzhwsljyzks05pq89l2lw09qkx50ks1zn3a5lranri")))) (build-system gnu-build-system) (arguments (list #:make-flags @@ -7803,26 +7803,27 @@ available in the kernel Linux.") (define-public cpuid (package (name "cpuid") - (version "20220224") + (version "20220620") (source (origin (method url-fetch) (uri (string-append "http://www.etallen.com/cpuid/cpuid-" version ".src.tar.gz")) (sha256 (base32 - "178zv8jclzg3hqm3g5bpjnsp898rbbxfq6ydavw49vla24mdw6aa")))) + "06nb69vlv1szdzq1dp784pgbr9z2py050v1hlrn4rr56jp0a2nci")))) (build-system gnu-build-system) (arguments - `(#:make-flags - (list (string-append "CC=" ,(cc-for-target))) - #:tests? #f ; no tests - #:phases (modify-phases %standard-phases - (delete 'configure) ; no configure script - (add-before 'install 'fix-makefile - (lambda* (#:key outputs #:allow-other-keys) - (substitute* "Makefile" - (("\\$\\(BUILDROOT\\)/usr") - (assoc-ref outputs "out")))))))) + (list #:make-flags + #~(list (string-append "CC=" #$(cc-for-target))) + #:tests? #f ; no tests + #:phases + #~(modify-phases %standard-phases + (delete 'configure) ; no configure script + (add-before 'install 'fix-makefile + (lambda* (#:key outputs #:allow-other-keys) + (substitute* "Makefile" + (("\\$\\(BUILDROOT\\)/usr") + (assoc-ref outputs "out")))))))) (inputs (list perl)) (supported-systems '("i686-linux" "x86_64-linux")) (home-page "http://www.etallen.com/cpuid.html") diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm index 129b99e485..2f6d22fe7d 100644 --- a/gnu/packages/lisp-xyz.scm +++ b/gnu/packages/lisp-xyz.scm @@ -17839,6 +17839,74 @@ to setup.") (define-public cl-posix-mqueue (sbcl-package->cl-source-package sbcl-cl-posix-mqueue)) +(define-public sbcl-glop + (let ((commit "45e722ab4a0cd2944d550bf790206b3326041e38") + (revision "1")) + (package + (name "sbcl-glop") + (version (git-version "0.1.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/lispgames/glop") + (commit commit))) + (file-name (git-file-name "glop" version)) + (sha256 + (base32 "1nm35kvigflfjlmsa8zwdajc61f02fh4sq08jv0wnqylhx8yg2bv")))) + (build-system asdf-build-system/sbcl) + (arguments + (list #:test-asd-file "glop-test.asd" + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'patch-lib-paths + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "src/x11/xcomposite.lisp" + (("libXcomposite.so") + (search-input-file inputs "/lib/libXcomposite.so"))) + (substitute* "src/x11/xlib.lisp" + (("libX11") + (string-drop-right + (search-input-file inputs "/lib/libX11.so") 3))) + (substitute* "src/utils.lisp" + (("libX11") + (string-drop-right + (search-input-file inputs "/lib/libX11.so") 3))) + (substitute* "src/utils.lisp" + (("libGL.so") + (search-input-file inputs "/lib/libGL.so.1"))) + (substitute* "src/x11/glx.lisp" + (("libGL.so") + (search-input-file inputs "/lib/libGL.so"))) + (substitute* "src/x11/display-ctrl.lisp" + (("libXrandr") + (string-drop-right + (search-input-file inputs "/lib/libXrandr.so") 3)))))))) + (native-inputs + (list sbcl-cl-opengl)) + (inputs + (list libx11 + libxcomposite + libxrandr + mesa + sbcl-cffi + sbcl-split-sequence + sbcl-trivial-garbage)) + (home-page "https://github.com/lispgames/glop") + (synopsis "Direct FFI bindings for OpenGL window and context management") + (description + "This package provides Common Lisp bindings to create OpenGL window and +context manipulation code as well as system input handling. Direct FFI +bindings to system functions are used so no third party C lib is required +except system libraries.") + (license license:expat)))) + +(define-public ecl-glop + (sbcl-package->ecl-package sbcl-glop)) + +(define-public cl-glop + (sbcl-package->cl-source-package sbcl-glop)) + (define-public sbcl-sdl2 (let ((commit "bb2aa2a41cf799e3bb1ddf50de41fe389c6db668") (revision "1")) @@ -22675,3 +22743,39 @@ between Lisp objects and some binary (i.e. octet-based) representation.") (define-public ecl-binary-types (sbcl-package->ecl-package sbcl-binary-types)) + +(define-public sbcl-trivial-custom-debugger + (let ((commit "a560594a673bbcd88136af82086107ee5ff9ca81")) + (package + (name "sbcl-trivial-custom-debugger") + (version (git-version "1.0.0" "1" commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/phoe/trivial-custom-debugger") + (commit commit))) + (file-name (git-file-name "trivial-custom-debugger" version)) + (sha256 + (base32 "1iri5wsp9sc1f5q934cj87zd79r5dc8fda0gl7x1pz95v0wx28yk")))) + (build-system asdf-build-system/sbcl) + (native-inputs + (list sbcl-parachute)) + (home-page "https://github.com/phoe/trivial-custom-debugger/") + (synopsis "Allow arbitrary functions as the standard Lisp debugger") + (description + "This is a portability library that allows one to fully override the +standard debugger provided by their Common Lisp system for situations where +binding @code{*debugger-hook*} is not enough -- most notably, for +@code{break}.") + (license license:expat)))) + +(define-public cl-trivial-custom-debugger + (sbcl-package->cl-source-package sbcl-trivial-custom-debugger)) + +(define-public ecl-trivial-custom-debugger + (package + (inherit (sbcl-package->ecl-package sbcl-trivial-custom-debugger)) + (arguments + ;; Tests fail on ECL: https://github.com/phoe/trivial-custom-debugger/issues/3 + '(#:tests? #f)))) diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index 83a04f7301..6a84f47468 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -2953,23 +2953,21 @@ This is the certified version of the Open Cascade Technology (OCCT) library.") (define-public gmsh (package (name "gmsh") - (version "4.9.5") + (version "4.10.5") (source (origin - (method git-fetch) - (uri (git-reference - (url "https://gitlab.onelab.info/gmsh/gmsh.git") - (commit - (string-append "gmsh_" - (string-replace-substring version "." "_"))))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0asd9p64ng5l2zk5glc33x3ynnvdpndlflg3q9mr0jxr7y9x0lrm")) - (modules '((guix build utils))) - (snippet - '(begin - (delete-file-recursively "contrib/metis") - #t)))) + (method git-fetch) + (uri (git-reference + (url "https://gitlab.onelab.info/gmsh/gmsh.git") + (commit + (string-append "gmsh_" + (string-replace-substring version "." "_"))))) + (file-name (git-file-name name version)) + (sha256 + (base32 "08p39yjgf3lbnjg90skpmsq9n1a9pmwppdmy5s94dc6sq2nfr7xl")) + (modules '((guix build utils))) + (snippet + '(delete-file-recursively "contrib/metis")))) (build-system cmake-build-system) (propagated-inputs (list fltk @@ -2984,9 +2982,9 @@ This is the certified version of the Open Cascade Technology (OCCT) library.") metis opencascade-occt)) (inputs - `(("fontconfig" ,fontconfig) - ("libxft" ,libxft) - ("python" ,python))) + (list fontconfig + libxft + python)) (arguments `(#:configure-flags `("-DENABLE_SYSTEM_CONTRIB:BOOL=ON" "-DENABLE_BUILD_SHARED:BOOL=ON" @@ -3014,8 +3012,7 @@ This is the certified version of the Open Cascade Technology (OCCT) library.") "/lib/libgmsh.so"))) (substitute* "api/gmsh.py" (("find_library\\(\"gmsh\"\\)") - (simple-format #f "\"~a\"" libgmsh)))) - #t))))) + (simple-format #f "\"~a\"" libgmsh))))))))) (home-page "http://gmsh.info/") (synopsis "3D finite element grid generator") (description "Gmsh is a 3D finite element grid generator with a built-in diff --git a/gnu/packages/monitoring.scm b/gnu/packages/monitoring.scm index 1544efb614..1694f94b98 100644 --- a/gnu/packages/monitoring.scm +++ b/gnu/packages/monitoring.scm @@ -10,6 +10,7 @@ ;;; Copyright © 2021, 2022 Marius Bakke <marius@gnu.org> ;;; Copyright © 2021 Stefan Reichör <stefan@xsteve.at> ;;; Copyright © 2021 Raphaël Mélotte <raphael.melotte@mind.be> +;;; Copyright © 2022 Paul A. Patience <paul@apatience.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -682,3 +683,63 @@ processes which keep waking up the disk unnecessarily and thus prevent some power saving.") (home-page "https://github.com/martinpitt/fatrace") (license license:gpl3+))) + +(define-public pw + (package + (name "pw") + (version "2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://www.kylheku.com/git/pw") + (commit (string-append "pw-" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1xn3qnzz48xan78cp83hfrcifrxx9lgnm14134qhyr5wvj7dk246")))) + (build-system gnu-build-system) + (arguments + (list #:tests? #f ; There are no tests + #:make-flags + #~(list (string-append "CC=" #$(cc-for-target)) + (string-append "DESTDIR=" #$output)) + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'fix-makefile + (lambda _ + (substitute* "Makefile" + (("/share/man/man1 \\\\") "/share/man/man1; \\")))) + (delete 'configure) + (add-before 'install 'make-install-dirs + (lambda _ + (mkdir-p (string-append #$output "/bin")) + (mkdir-p (string-append #$output "/share/man/man1")) + (mkdir-p (string-append #$output "/share/man/man5"))))))) + (home-page "https://www.kylheku.com/cgit/pw/") + (synopsis "Monitor recent lines of output from pipe") + (description + "@command{pw} is Pipe Watch, a utility that continuously reads lines of +text from a pipe or pipe-like source, passes them through a FIFO buffer, and +maintains a display based on the occasional sampling of the contents of the +FIFO buffer, with useful features such as triggering and filtering. + +With @command{pw} you can: + +@itemize +@item Interactively apply and remove filters on-the-fly, without interrupting +the source. + +@item Make recurring patterns in the stream appear to ``freeze'' on the +screen, using triggers. + +@item Prevent the overwhelming amount of output from a program from flooding +the terminal, while consuming all of that output so that the program isn't +blocked. @command{pw} can pause its display updates entirely. + +@item Juggle multiple shell background jobs that produce output, yet execute +indefinitely without blocking. When @command{pw} runs as part of a shell +background job, it continues to consume input, process filters and take +snapshots, without displaying anything. When put into the foreground again, +display resumes. +@end itemize") + (license license:bsd-2))) diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index 5bc5724370..697fae8fc0 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -5374,7 +5374,7 @@ at @code{musicbrainz.org}.") (define-public clyrics (package (name "clyrics") - (version "0.12") + (version "0.13") (source (origin (method git-fetch) @@ -5383,7 +5383,7 @@ at @code{musicbrainz.org}.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "1l9iqz6vxrrxapv7s110g360bqxksir4dcqd8w0l4lhmnfmz3vnk")))) + (base32 "0py31linlbphl18wxj5v00gggvxp9djg466mjncf5wpa147hs8r3")))) (build-system trivial-build-system) (inputs (list bash ; for the wrapped program diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm index b26ef100f6..9101aac472 100644 --- a/gnu/packages/networking.scm +++ b/gnu/packages/networking.scm @@ -3106,14 +3106,14 @@ eight bytes) tools (define-public asio (package (name "asio") - (version "1.20.0") + (version "1.22.2") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/asio/asio/" version " (Stable)/asio-" version ".tar.bz2")) (sha256 - (base32 "0335kyxdnwnp96sh9p3jq1s87qnfmp5l7hzlcdxbbwfzrb9p8hr0")))) + (base32 "0v5w9j4a02j2rkc7mrdj3ms0kfpqbgq2ipkixlz2l0p8xs0vfsvp")))) (build-system gnu-build-system) (inputs (list boost openssl)) @@ -3472,16 +3472,16 @@ and targeted primarily for asynchronous processing of HTTP-requests.") (define-public opendht (package (name "opendht") - (version "2.3.4") + (version "2.4.9") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/savoirfairelinux/opendht") - (commit version))) + (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 - "0gp1wdpk50y0pcvlhqfw9vpms8lsrjvv63x4dh40axsvf2ix9lkj")))) + "150yxlhn8ykhck7gr1i2bppbqpfyhk0cscn5z7vyn94y5fnqkxsb")))) (outputs '("out" "tools" "debug")) (build-system gnu-build-system) (arguments @@ -3491,7 +3491,6 @@ and targeted primarily for asynchronous processing of HTTP-requests.") #:modules '(((guix build python-build-system) #:prefix python:) (guix build gnu-build-system) (guix build utils)) - #:tests? #f ;tests require networking #:configure-flags #~(list "--enable-tests" "--enable-proxy-server" @@ -3500,6 +3499,15 @@ and targeted primarily for asynchronous processing of HTTP-requests.") "--enable-proxy-client") #:phases #~(modify-phases %standard-phases + (add-after 'unpack 'disable-problematic-tests + (lambda _ + ;; The dhtrunnertester test suite includes 'testListen', which + ;; is sensitive to the performance/load of the machine it runs + ;; on, introducing nondeterminism (see: + ;; https://github.com/savoirfairelinux/opendht/issues/626). + (substitute* "tests/Makefile.am" + (("tests/dhtrunnertester.(h|cpp)$" all) + (string-append "# " all))))) (add-after 'unpack 'fix-python-installation-prefix ;; Specify the installation prefix for the compiled Python module ;; that would otherwise attempt to installs itself to Python's own @@ -3515,6 +3523,10 @@ and targeted primarily for asynchronous processing of HTTP-requests.") (("extra_link_args=\\[(.*)\\]" _ args) (string-append "extra_link_args=[" args ", '-Wl,-rpath=" #$output "/lib']"))))) + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (invoke "tests/opendht_unit_tests")))) (add-after 'install 'move-and-wrap-tools (lambda* (#:key inputs outputs #:allow-other-keys) (let* ((tools (assoc-ref outputs "tools")) @@ -3531,15 +3543,15 @@ and targeted primarily for asynchronous processing of HTTP-requests.") `("GUIX_PYTHONPATH" prefix (,site-packages))))))))) (inputs (list bash-minimal fmt readline)) (propagated-inputs - (list msgpack ;included in several installed headers - restinio ;included in opendht/http.h + (list msgpack ;included in several installed headers + restinio ;included in opendht/http.h ;; The following are listed in the 'Requires.private' field of ;; opendht.pc: argon2 gnutls jsoncpp nettle - openssl)) ;required for the DHT proxy + openssl)) ;required for the DHT proxy (native-inputs (list autoconf automake diff --git a/gnu/packages/node-xyz.scm b/gnu/packages/node-xyz.scm index 9dcb5c3d16..b14b407e19 100644 --- a/gnu/packages/node-xyz.scm +++ b/gnu/packages/node-xyz.scm @@ -4,6 +4,7 @@ ;;; Copyright © 2021 Noisytoot <noisytoot@disroot.org> ;;; Copyright © 2021 Charles <charles.b.jackson@protonmail.com> ;;; Copyright © 2021 Philip McGrath <philip@philipmcgrath.com> +;;; Copyright © 2022 Nicolas Graves <ngraves@ngraves.fr> ;;; ;;; This file is part of GNU Guix. ;;; @@ -56,6 +57,34 @@ architecture supporting plugins.") (license license:expat))) +(define-public node-buffer-crc32 + (package + (name "node-buffer-crc32") + (version "0.2.13") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/brianloveswords/buffer-crc32") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "09qx2mnd898190m50mc0rhyvbm7d677sxz9bn09qmqkz6fnsddgf")))) + (build-system node-build-system) + (arguments + '(#:tests? #f + #:phases (modify-phases %standard-phases + (replace 'configure + (lambda _ + (invoke "npm" "--offline" "--ignore-scripts" "install" + "--production")))))) + (home-page "https://github.com/brianloveswords/buffer-crc32") + (synopsis "CRC32 implementation in Javascript") + (description + "This package provides a CRC32 algorithm that works with binary data +and fancy character sets, signed or unsigned data and has tests, for Node.") + (license license:expat))) + (define-public node-color-name (package (name "node-color-name") @@ -77,6 +106,43 @@ architecture supporting plugins.") "This package provides a JSON list with color names and their values.") (license license:expat))) +(define-public node-crx3 + (package + (name "node-crx3") + (version "1.1.3") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ahwayakchih/crx3") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1snqyw8c3s9p2clhqh1172z0rs1was36sfxkk6acgpar32c2rwzw")))) + (build-system node-build-system) + (arguments + '(#:tests? #f + #:phases (modify-phases %standard-phases + (add-after 'unpack 'replace-mri-by-minimist + (lambda _ + (substitute* "package.json" + (("\"mri\": \"\\^1\\.1\\.6\",") + "\"minimist\": \"^1.2.6\",")) + (substitute* "lib/configuration.js" + (("mri") + "minimist")))) + (replace 'configure + (lambda _ + (invoke "npm" "--offline" "--ignore-scripts" "install" + "--production")))))) + (inputs (list node-minimist node-pbf node-yazl)) + (home-page "https://github.com/ahwayakchih/crx3") + (synopsis "Create CRXv3 browser extensions with Javascript") + (description + "This package creates web extension files (CRXv3) for Chromium versions +64.0.3242 and above and all other browsers supporting the file format and API.") + (license license:bsd-3))) + (define-public node-env-variable (package (name "node-env-variable") @@ -176,6 +242,33 @@ user-land JavaScript.") random number generator.") (license license:bsd-3))) +(define-public node-minimist + (package + (name "node-minimist") + (version "1.2.6") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/substack/minimist") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0mxj40mygbiy530wskc8l28wxb6fv3f8vrhpwjgprymhpgbaac7d")))) + (build-system node-build-system) + (arguments + '(#:tests? #f + #:phases (modify-phases %standard-phases + (replace 'configure + (lambda _ + (invoke "npm" "--offline" "--ignore-scripts" "install" + "--production")))))) + (home-page "https://github.com/substack/minimist") + (synopsis "Parse CLI arguments in Javascript") + (description "This package can scan for CLI flags and arguments in +Javascript.") + (license license:expat))) + (define-public node-oop ;; No releases, last commit was February 2013. (let ((commit "f9d87cda0958886955c14a0a716e57021ed295dc") @@ -201,6 +294,94 @@ random number generator.") while being as light-weight and simple as possible.") (license license:expat)))) +(define-public node-pbf + (package + (name "node-pbf") + (version "3.2.1") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/mapbox/pbf") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1r8xs787ix79yr0vrwrizdml9h7cmxjrzhvnhkj784ac5f8nv5j7")))) + (build-system node-build-system) + (arguments + '(#:tests? #f + #:phases (modify-phases %standard-phases + (replace 'configure + (lambda _ + (invoke "npm" "--offline" "--ignore-scripts" "install" + "--production")))))) + (inputs (list node-ieee754 node-resolve-protobuf-schema)) + (home-page "https://github.com/mapbox/pbf") + (synopsis "Decode and encode protocol buffers in Javascript") + (description + "This package is a low-level, fast and lightweight JavaScript library +for decoding and encoding protocol buffers, a compact binary format for +structured data serialization. Works both in Node and the browser. +It supports lazy decoding and detailed customization of the reading/writing +code.") + (license license:bsd-3))) + +(define-public node-protocol-buffers-schema + (package + (name "node-protocol-buffers-schema") + (version "3.6.0") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/mafintosh/protocol-buffers-schema") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0lnckxj14jzsnfxdd5kmlwrac43c214bv8i2g5rdldymlpxzrz1v")))) + (build-system node-build-system) + (arguments + '(#:tests? #f + #:phases (modify-phases %standard-phases + (replace 'configure + (lambda _ + (invoke "npm" "--offline" "--ignore-scripts" "install" + "--production")))))) + (home-page "https://github.com/mafintosh/protocol-buffers-schema") + (synopsis "Protocol buffers schema parser written in Javascript") + (description "This package provides a protocol buffers schema parser +written in Javascript.") + (license license:expat))) + +(define-public node-resolve-protobuf-schema + (package + (name "node-resolve-protobuf-schema") + (version "2.1.0") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/mafintosh/resolve-protobuf-schema") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0zxavr0b2yz9xzp6zlsg5g09i0a6zqb24j12rdvfgph6wd4mzk40")))) + (build-system node-build-system) + (arguments + '(#:tests? #f + #:phases (modify-phases %standard-phases + (replace 'configure + (lambda _ + (invoke "npm" "--offline" "--ignore-scripts" "install" + "--production")))))) + (inputs (list node-protocol-buffers-schema)) + (home-page "https://github.com/mafintosh/resolve-protobuf-schema") + (synopsis "Resolve protobuf imports") + (description + "This package can read a protobuf schema from the disk, parse it and +resolve all imports.") + (license license:expat))) + (define-public node-stack-trace ;; There have been improvements since the last release. (let ((commit "4fd379ee78965ce7ce8820b436f1b1b590d5dbcf") @@ -365,6 +546,33 @@ Subsequent calls will either return the cached previous value or throw an error if desired.") (license license:isc))) +(define-public node-ieee754 + (package + (name "node-ieee754") + (version "1.2.1") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/feross/ieee754") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "19rlg59lavnwsvbblhvrqwinz2wzqlxhddqpwrc3cyqkscjgza7i")))) + (build-system node-build-system) + (arguments + '(#:tests? #f + #:phases (modify-phases %standard-phases + (replace 'configure + (lambda _ + (invoke "npm" "--offline" "--ignore-scripts" "install" + "--production")))))) + (home-page "https://github.com/feross/ieee754") + (synopsis "Read/write IEEE754 floating point numbers in Javascript") + (description "This package can read and write IEEE754 floating point +numbers from/to a Buffer or array-like object in Javascript.") + (license license:bsd-3))) + (define-public node-inherits (package (name "node-inherits") @@ -1303,3 +1511,38 @@ connection."))) accessing serial ports. This package is the recommended entry point for most projects. It combines a high-level Node.js stream interface with a useful default set of parsers and bindings."))) + +(define-public node-yazl + (package + (name "node-yazl") + (version "2.5.1") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/thejoshwolfe/yazl") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1lhwqqnvazpi4xw81ldpx0ky0h1j5rcx3br480q2bnzj21cm109n")))) + (build-system node-build-system) + (arguments + '(#:tests? #f + #:phases (modify-phases %standard-phases + (replace 'configure + (lambda _ + (invoke "npm" "--offline" "--ignore-scripts" "install" + "--production")))))) + (inputs (list node-buffer-crc32)) + (home-page "https://github.com/thejoshwolfe/yazl") + (synopsis "Yet another zip library for node") + (description + "This package provides a zip library for Node. It follows the +following principles: +@enumerate +@item Don't block the JavaScript thread. Use and provide async APIs. +@item Keep memory usage under control. Don't attempt to buffer entire +files in RAM at once. +@item Prefer to open input files one at a time than all at once. +@end enumerate") + (license license:expat))) diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index c91132ad5b..750e675e39 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -1302,18 +1302,18 @@ allow for great power and flexibility. (define-public gwl (package (name "gwl") - (version "0.4.0") + (version "0.5.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/gwl/gwl-" version ".tar.gz")) (sha256 (base32 - "0sgaaq430l3dqmqqiikfb0ilxnd2cq28626y18kxx5c781qwpys9")))) + "09r22gqgaj2mxvlwvfach5j1n66y3yggmzc6d2gxq7lyywbcvjvs")))) (build-system gnu-build-system) (arguments `(#:parallel-build? #false ; for reproducibility #:make-flags - '("GUILE_AUTO_COMPILE=0"))) + '("GUILE_AUTO_COMPILE=0" "GWL_SKIP_INTEGRATION_TESTS=1"))) (native-inputs (list autoconf automake pkg-config texinfo graphviz)) (inputs @@ -1342,8 +1342,8 @@ environments.") (license (list license:gpl3+ license:agpl3+ license:silofl1.1)))) (define-public guix-build-coordinator - (let ((commit "a7bbf9da27120839c22cc40abc6fad651df0a762") - (revision "58")) + (let ((commit "cc884efa7ee8a481cd3dae1b93d27454ac8dfcd2") + (revision "59")) (package (name "guix-build-coordinator") (version (git-version "0" revision commit)) @@ -1354,7 +1354,7 @@ environments.") (commit commit))) (sha256 (base32 - "1ryw2hpasq24zzaiz8dwn2krkb0vj3391plzfarjpvsk4058jhd5")) + "03yz8if282mvkgqn0pxlqj0h3nyjfag7a835v9s98nkqfbj1ixcl")) (file-name (string-append name "-" version "-checkout")))) (build-system gnu-build-system) (arguments diff --git a/gnu/packages/patches/containerd-create-pid-file.patch b/gnu/packages/patches/containerd-create-pid-file.patch new file mode 100644 index 0000000000..668ffcd9e9 --- /dev/null +++ b/gnu/packages/patches/containerd-create-pid-file.patch @@ -0,0 +1,31 @@ +Copyright © 2022 Oleg Pykhalov <go.wigust@gmail.com> + +Create a PID file after containerd is ready to serve requests. + +Fixes <https://issues.guix.gnu.org/38432>. + +--- a/cmd/containerd/command/notify_linux.go 1970-01-01 03:00:01.000000000 +0300 ++++ b/cmd/containerd/command/notify_linux.go 2022-07-02 04:42:35.553753495 +0300 +@@ -22,15 +22,22 @@ + sd "github.com/coreos/go-systemd/v22/daemon" + + "github.com/containerd/containerd/log" ++ ++ "os" ++ "strconv" + ) + + // notifyReady notifies systemd that the daemon is ready to serve requests + func notifyReady(ctx context.Context) error { ++ pidFile, _ := os.Create("/run/containerd/containerd.pid") ++ defer pidFile.Close() ++ pidFile.WriteString(strconv.FormatInt(int64(os.Getpid()), 10)) + return sdNotify(ctx, sd.SdNotifyReady) + } + + // notifyStopping notifies systemd that the daemon is about to be stopped + func notifyStopping(ctx context.Context) error { ++ os.Remove("/run/containerd/containerd.pid") + return sdNotify(ctx, sd.SdNotifyStopping) + } + diff --git a/gnu/packages/patches/libgeotiff-adapt-test-script-for-proj-6.2.patch b/gnu/packages/patches/libgeotiff-adapt-test-script-for-proj-6.2.patch deleted file mode 100644 index 746610c095..0000000000 --- a/gnu/packages/patches/libgeotiff-adapt-test-script-for-proj-6.2.patch +++ /dev/null @@ -1,63 +0,0 @@ -From 678ffd97db2d63cf6856428bea65a93e069f812f Mon Sep 17 00:00:00 2001 -From: Even Rouault <even.rouault@spatialys.com> -Date: Wed, 4 Sep 2019 16:11:37 +0200 -Subject: [PATCH 1/2] Adapt test script for PROJ 6.2 EPSG database (fixes #22) - ---- - libgeotiff/test/testlistgeo | 8 +++++++- - libgeotiff/test/testlistgeo_out.dist | 4 ++-- - 2 files changed, 9 insertions(+), 3 deletions(-) - -diff --git a/libgeotiff/test/testlistgeo b/libgeotiff/test/testlistgeo -index 7fb4a2f..571f5d0 100755 ---- a/test/testlistgeo -+++ b/test/testlistgeo -@@ -210,10 +210,15 @@ echo "Testing listgeo equidistant_cylindrical.tif" >> ${OUT} - $EXE ${DATA_DIR}/equidistant_cylindrical.tif >>${OUT} - echo "" >>${OUT} - -+# Normalize for results depending on the exact version of PROJ / EPSG database -+sed "s/ETRS89-extended/ETRS89/g" < ${OUT} > ${OUT}.tmp -+mv ${OUT}.tmp ${OUT} -+ -+sed "s/ETRS89-extended/ETRS89/g" < ${TEST_CLI_DIR}/testlistgeo_out.dist > testlistgeo_out.dist.tmp - - # do 'diff' with distribution results - echo "diff ${OUT} with testlistgeo_out.dist" --diff -u ${OUT} ${TEST_CLI_DIR}/testlistgeo_out.dist -+diff -u ${OUT} testlistgeo_out.dist.tmp - if [ $? -ne 0 ] ; then - echo "" - echo "PROBLEMS HAVE OCCURRED" -@@ -224,6 +229,7 @@ else - echo "TEST OK" - echo "test file ${OUT} removed" - echo -+ rm testlistgeo_out.dist.tmp - /bin/rm -f ${OUT} - exit 0 - fi -diff --git a/libgeotiff/test/testlistgeo_out.dist b/libgeotiff/test/testlistgeo_out.dist -index 68a948c..c157f00 100644 ---- a/test/testlistgeo_out.dist -+++ b/test/testlistgeo_out.dist -@@ -1738,11 +1738,11 @@ Geotiff_Information: - Keyed_Information: - GTModelTypeGeoKey (Short,1): ModelTypeProjected - GTRasterTypeGeoKey (Short,1): RasterPixelIsArea -- ProjectedCSTypeGeoKey (Short,1): Code-3035 (ETRS89 / LAEA Europe) -+ ProjectedCSTypeGeoKey (Short,1): Code-3035 (ETRS89-extended / LAEA Europe) - End_Of_Keys. - End_Of_Geotiff. - --PCS = 3035 (ETRS89 / LAEA Europe) -+PCS = 3035 (ETRS89-extended / LAEA Europe) - Projection = 19986 (Europe Equal Area 2001) - Projection Method: CT_LambertAzimEqualArea - ProjCenterLatGeoKey: 52.000000 ( 52d 0' 0.00"N) - -From 15af10648c4cb7b4c55cbe08caaf9884c1d156d9 Mon Sep 17 00:00:00 2001 -From: Even Rouault <even.rouault@spatialys.com> -Date: Wed, 4 Sep 2019 19:13:11 +0200 -Subject: [PATCH 2/2] appveyor.yml: build vcpkg from source to fix issue with - VS2015 diff --git a/gnu/packages/plotutils.scm b/gnu/packages/plotutils.scm index 569e44a958..56d3c4e282 100644 --- a/gnu/packages/plotutils.scm +++ b/gnu/packages/plotutils.scm @@ -269,14 +269,14 @@ colors, styles, options and details.") (define-public asymptote (package (name "asymptote") - (version "2.80") + (version "2.81") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/asymptote/" version "/asymptote-" version ".src.tgz")) (sha256 - (base32 "0mhpvsjgw8av5rgkqlb0m8njc4fsfw5ddlx5121iyn29vjbx0rk2")) + (base32 "0wq0xnkxb8rsphmgls5f38ll61j8i0plh7cr1n0kldvpr14bm3kn")) (modules '((guix build utils))) (snippet ;; Remove bundled RapidJSON. diff --git a/gnu/packages/python-science.scm b/gnu/packages/python-science.scm index 428ce48b53..57c9325f49 100644 --- a/gnu/packages/python-science.scm +++ b/gnu/packages/python-science.scm @@ -1183,7 +1183,7 @@ aggregated sum and more.") (define-public python-pyvista (package (name "python-pyvista") - (version "0.34.0") + (version "0.35.1") (source ;; The PyPI tarball does not contain the tests. ;; (However, we don't yet actually run the tests.) @@ -1194,7 +1194,7 @@ aggregated sum and more.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0f2x2wvi5pkpv5h3jrnx8zxnaj51navfqp2fdna1l9rpjgjjf94g")))) + (base32 "1rwwn8a4j3i22il6dxr2qzrnnz3n1gjbpa2p8gfzrjmzp5lzzk81")))) (build-system python-build-system) (propagated-inputs (list python-appdirs diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm index dab6bda0ed..3239086dc3 100644 --- a/gnu/packages/python-web.scm +++ b/gnu/packages/python-web.scm @@ -73,16 +73,20 @@ #:use-module (guix packages) #:use-module (guix download) #:use-module (guix git-download) + #:use-module (guix build-system copy) #:use-module (guix build-system python) #:use-module (guix gexp) #:use-module (guix utils) #:use-module (gnu packages) #:use-module (gnu packages base) + #:use-module (gnu packages bash) #:use-module (gnu packages check) #:use-module (gnu packages compression) #:use-module (gnu packages curl) #:use-module (gnu packages databases) #:use-module (gnu packages django) + #:use-module (gnu packages freedesktop) + #:use-module (gnu packages gnupg) #:use-module (gnu packages graphviz) #:use-module (gnu packages groff) #:use-module (gnu packages libevent) @@ -2955,6 +2959,76 @@ with python-requests.") adapter for use with the Requests library.") (license license:asl2.0))) +(define-public python-msal + (package + (name "python-msal") + (version "1.18.0") + (home-page + "https://github.com/AzureAD/microsoft-authentication-library-for-python") + (source (origin + (method git-fetch) + ;; Pypi does not have tests. + (uri (git-reference (url home-page) (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "02d9vlvp08q1yffgn7a0y19451py1jly67q5ld6m2d9xidbrvac1")))) + (build-system python-build-system) + (arguments + ;; Tests (all?) rely on network access and only some can be disabled by + ;; setting the environment variable TRAVIS_TAG. + (list #:tests? #f)) + (native-inputs (list python-mock)) + (propagated-inputs (list python-cryptography python-pyjwt python-requests)) + (synopsis "Microsoft Authentication Library (MSAL) for Python") + (description + "The Microsoft Authentication Library for Python enables applications to +integrate with the Microsoft identity platform. It allows you to sign in +users or apps with Microsoft identities (Azure AD, Microsoft Accounts and +Azure AD B2C accounts) and obtain tokens to call Microsoft APIs such as +Microsoft Graph or your own APIs registered with the Microsoft identity +platform. It is built using industry standard OAuth2 and OpenID Connect +protocols.") + (license license:expat))) + +(define-public oauth2ms + (let ((commit "a1ef0cabfdea57e9309095954b90134604e21c08") + (revision "0")) + (package + (name "oauth2ms") + (version (git-version "0.0.0" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/harishkrupo/oauth2ms") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0dqi6n4npdrvb42r672n4sl1jl8z5lsk554fwiiihpj0faa9dx64")))) + (build-system copy-build-system) + (arguments + (list #:install-plan #~`(("oauth2ms" "bin/oauth2ms") + ("." #$(string-append "share/doc/" name "-" + version "/") + #:include-regexp ("\\.org$"))) + #:phases #~(modify-phases %standard-phases + (add-after 'install 'wrap-pythonpath + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((path (getenv "GUIX_PYTHONPATH"))) + (wrap-program (string-append #$output + "/bin/oauth2ms") + `("GUIX_PYTHONPATH" ":" prefix + (,path))))))))) + (inputs (list bash-minimal python python-gnupg python-msal python-pyxdg)) + (home-page "https://github.com/harishkrupo/oauth2ms") + (synopsis "XOAUTH2 compatible Microsoft Office 365 token fetcher") + (description + "Oauth2ms can be used to fetch OAuth 2.0 tokens from the Microsoft Identity +endpoint. Additionally, it can encode the token in the XOAUTH2 format to be +used as authentication in IMAP mail servers.") + (license license:asl2.0)))) + (define-public python-oauthlib (package (name "python-oauthlib") diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index a9371dccd2..fcac915282 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -5562,7 +5562,10 @@ include_dirs = ~:*~a/include~%" #$(this-package-input "openblas")))))) ;; instead of /bin/sh. (substitute* "numpy/distutils/exec_command.py" (("'/bin/sh'") - (format #f "~s" (search-input-file inputs "bin/bash")))))) + (format #f "~s" (search-input-file inputs "bin/bash")))) + ;; Don't try to call '/bin/true' specifically. + (substitute* "numpy/core/tests/test_cpu_features.py" + (("/bin/true") (search-input-file inputs "bin/true"))))) (replace 'check (lambda* (#:key tests? outputs inputs #:allow-other-keys) (when tests? @@ -16223,7 +16226,11 @@ graphviz.") "test__doctests.py" "test__all__.py" "test___config.py" - "test__execmodules.py"))) + "test__execmodules.py" + ;; This test contains 'test_unlink', which + ;; fails on i686 (see: + ;; https://github.com/gevent/gevent/issues/1558). + "test__core_stat.py"))) (call-with-output-file "skipped_tests.txt" (lambda (port) (format port "~a~%" @@ -30086,6 +30093,26 @@ profile. It supports: Currently, Linux is the only platform supported by this library.") (license license:expat))) +(define-public python-clrprint + (package + (name "python-clrprint") + (version "2.0.1") + (source (origin + (method url-fetch) + (uri (pypi-uri "clrprint" version)) + (sha256 + (base32 + "0xfn8d1by2w7pjiji887qljk1avn4fylbnz1mj28gysm5g0zvy43")))) + (build-system python-build-system) + (arguments '(#:tests? #f)) ;there are no tests + (propagated-inputs (list python-colorama python-termcolor)) + (home-page "https://github.com/AbhijithAJ/clrprint") + (synopsis "Print colorful output in the terminal") + (description "@code{clrprint} is developed to print colorful output in the +terminal. It has red, blue, green, yellow, purple and black/white (default) +colors.") + (license license:expat))) + (define-public python-musical-scales (package (name "python-musical-scales") @@ -30155,3 +30182,24 @@ GeoPackage Binary") GeoJSON to WKT/WKB (Well-Known Text/Binary) or GeoPackage Binary, and vice versa. Extended WKB/WKT are also supported.") (license license:asl2.0))) + +(define-public python-bsdiff4 + (package + (name "python-bsdiff4") + (version "1.2.2") + (home-page "https://github.com/ilanschnell/bsdiff4") + (source (origin + (method git-fetch) + (uri (git-reference + (url home-page) + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1fa0vkmbr0a9xifq7i5gfcf7ifn739i1fdij8awynm299fsqvvhx")))) + (build-system python-build-system) + (synopsis "Binary diff and patch using the BSDIFF4 format") + (description "This package provides a Python library for the @code{bsdiff} +binary diff utility. It also provides two command-line tools, @code{bsdiff4} +and @code{bspatch4}.") + (license license:bsd-2))) diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm index 762c63cace..beba03936a 100644 --- a/gnu/packages/qt.scm +++ b/gnu/packages/qt.scm @@ -19,7 +19,7 @@ ;;; Copyright © 2020 TomZ <tomz@freedommail.ch> ;;; Copyright © 2020 Jonathan Brielmaier <jonathan.brielmaier@web.de> ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de> -;;; Copyright © 2020, 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com> +;;; Copyright © 2020, 2021, 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2021 Brendan Tildesley <mail@brendan.scot> ;;; Copyright © 2021, 2022 Guillaume Le Vaillant <glv@posteo.net> ;;; Copyright © 2021 Nicolò Balzarotti <nicolo@nixo.xyz> @@ -55,6 +55,7 @@ #:use-module (guix deprecation) #:use-module (guix utils) #:use-module (gnu packages) + #:use-module (gnu packages bash) #:use-module (gnu packages base) #:use-module (gnu packages bison) #:use-module (gnu packages cmake) @@ -84,6 +85,7 @@ #:use-module (gnu packages linux) #:use-module (gnu packages llvm) #:use-module (gnu packages maths) + #:use-module (gnu packages markup) #:use-module (gnu packages networking) #:use-module (gnu packages ninja) #:use-module (gnu packages node) @@ -552,13 +554,13 @@ developers using C++ or QML, a CSS & JavaScript like language.") (define-public qtbase (package/inherit qtbase-5 (name "qtbase") - (version "6.1.1") + (version "6.3.1") (source (origin (inherit (package-source qtbase-5)) (uri (qt5-urls name version)) (sha256 (base32 - "1wizrfiw6h8bk99brbdpdli40vsk6yqchs66f1r083hp0ygsma11")) + "00sfya41ihqb0zwg6wf1kiy02iymj6mk584hhk2c4s94khfl4r0a")) (modules '((guix build utils))) (snippet ;; corelib uses bundled harfbuzz, md4, md5, sha3 @@ -577,8 +579,6 @@ developers using C++ or QML, a CSS & JavaScript like language.") ;; enough) or a functional network. It's also quite expensive to ;; build and run. ((#:tests? _ #f) #f) - ;; ((#:cmake _) - ;; cmake) ;requires a CMake >= 3.18.4 ((#:configure-flags _ ''()) `(let ((out (assoc-ref %outputs "out"))) (list "-GNinja" ;the build fails otherwise @@ -604,6 +604,7 @@ developers using C++ or QML, a CSS & JavaScript like language.") ;; cases such as for those below. "-DFEATURE_system_pcre2=ON" "-DFEATURE_system_sqlite=ON" + "-DFEATURE_system_xcb_xinput=ON" ;; Don't use the precompiled headers. "-DBUILD_WITH_PCH=OFF" ;; Drop special machine instructions that do not have runtime @@ -620,67 +621,79 @@ developers using C++ or QML, a CSS & JavaScript like language.") "-DFEATURE_mips_dsp=OFF" "-DFEATURE_mips_dspr2=OFF"))) ((#:phases phases) - `(modify-phases ,phases - (delete 'patch-bin-sh) - (delete 'patch-xdg-open) - (add-after 'patch-paths 'patch-more-paths - (lambda _ - (substitute* "src/gui/platform/unix/qgenericunixservices.cpp" - (("\"xdg-open\"") - (format #f "~s" (which "xdg-open")))) - (substitute* '("mkspecs/features/qt_functions.prf" - "qmake/library/qmakebuiltins.cpp") - (("/bin/sh") - (which "sh"))))) - (replace 'configure - (assoc-ref %standard-phases 'configure)) - (replace 'build - (lambda* (#:key parallel-build? #:allow-other-keys) - (apply invoke "cmake" "--build" "." - (if parallel-build? - `("--parallel" ,(number->string (parallel-job-count))) - '())))) - (replace 'install - (lambda _ - (invoke "cmake" "--install" "."))) - (replace 'patch-mkspecs - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (archdata (string-append out "/lib/qt6")) - (mkspecs (string-append archdata "/mkspecs")) - (qt_config.prf (string-append - mkspecs "/features/qt_config.prf"))) - ;; For each Qt module, let `qmake' uses search paths in the - ;; module directory instead of all in QT_INSTALL_PREFIX. - (substitute* qt_config.prf - (("\\$\\$\\[QT_INSTALL_HEADERS\\]") - "$$clean_path($$replace(dir, mkspecs/modules, ../../include/qt6))") - (("\\$\\$\\[QT_INSTALL_LIBS\\]") - "$$clean_path($$replace(dir, mkspecs/modules, ../../lib))") - (("\\$\\$\\[QT_HOST_LIBS\\]") - "$$clean_path($$replace(dir, mkspecs/modules, ../../lib))") - (("\\$\\$\\[QT_INSTALL_BINS\\]") - "$$clean_path($$replace(dir, mkspecs/modules, ../../bin))")) - - ;; Searches Qt tools in the current PATH instead of QT_HOST_BINS. - (substitute* (string-append mkspecs "/features/qt_functions.prf") - (("cmd = \\$\\$\\[QT_HOST_BINS\\]/\\$\\$2") - "cmd = $$system(which $${2}.pl 2>/dev/null || which $${2})")) - - ;; Resolve qmake spec files within qtbase by absolute paths. - (substitute* - (map (lambda (file) - (string-append mkspecs "/features/" file)) - '("device_config.prf" "moc.prf" "qt_build_config.prf" - "qt_config.prf")) - (("\\$\\$\\[QT_HOST_DATA/get\\]") archdata) - (("\\$\\$\\[QT_HOST_DATA/src\\]") archdata))))))))) + #~(modify-phases #$phases + (delete 'patch-bin-sh) + (delete 'patch-xdg-open) + (add-after 'patch-paths 'patch-more-paths + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "src/gui/platform/unix/qgenericunixservices.cpp" + (("\"xdg-open\"") + (format #f "~s" (search-input-file inputs "bin/xdg-open")))) + (substitute* '("mkspecs/features/qt_functions.prf" + "qmake/library/qmakebuiltins.cpp") + (("/bin/sh") + (search-input-file inputs "bin/bash"))) + (substitute* "src/corelib/CMakeLists.txt" + (("/bin/ls") + (search-input-file inputs "bin/ls"))))) + (replace 'configure + (assoc-ref %standard-phases 'configure)) + (replace 'build + (lambda* (#:key parallel-build? #:allow-other-keys) + (apply invoke "cmake" "--build" "." + (if parallel-build? + `("--parallel" ,(number->string (parallel-job-count))) + '())))) + (replace 'install + (lambda _ + (invoke "cmake" "--install" "."))) + (replace 'patch-mkspecs + (lambda* (#:key outputs #:allow-other-keys) + (let* ((archdata (search-input-directory outputs "lib/qt6")) + (mkspecs (search-input-directory outputs + "lib/qt6/mkspecs")) + (qt_config.prf + (search-input-file + outputs "lib/qt6/mkspecs/features/qt_config.prf")) + (qt_functions.prf + (search-input-file + outputs "lib/qt6/mkspecs/features/qt_functions.prf"))) + ;; For each Qt module, let `qmake' uses search paths in the + ;; module directory instead of all in QT_INSTALL_PREFIX. + (substitute* qt_config.prf + (("\\$\\$\\[QT_INSTALL_HEADERS\\]") + "$$clean_path($$replace(dir, mkspecs/modules, ../../include/qt6))") + (("\\$\\$\\[QT_INSTALL_LIBS\\]") + "$$clean_path($$replace(dir, mkspecs/modules, ../../lib))") + (("\\$\\$\\[QT_HOST_LIBS\\]") + "$$clean_path($$replace(dir, mkspecs/modules, ../../lib))") + (("\\$\\$\\[QT_INSTALL_BINS\\]") + "$$clean_path($$replace(dir, mkspecs/modules, ../../bin))")) + + ;; Searches Qt tools in the current PATH instead of QT_HOST_BINS. + (substitute* qt_functions.prf + (("cmd = \\$\\$\\[QT_HOST_BINS\\]/\\$\\$2") + "cmd = $$system(which $${2}.pl 2>/dev/null || which $${2})")) + + ;; Resolve qmake spec files within qtbase by absolute paths. + (substitute* + (map (lambda (file) + (search-input-file + outputs + (string-append "lib/qt6/mkspecs/features/" file))) + '("device_config.prf" "moc.prf" "qt_build_config.prf" + "qt_config.prf")) + (("\\$\\$\\[QT_HOST_DATA/get\\]") archdata) + (("\\$\\$\\[QT_HOST_DATA/src\\]") archdata))))))))) (native-inputs - `(("gtk+" ,gtk+) ;for GTK theme support - ("ninja" ,ninja) - ("wayland-protocols" ,wayland-protocols) - ("xorg-server" ,xorg-server-for-tests) - ,@(package-native-inputs qtbase-5))) + (modify-inputs (package-native-inputs qtbase-5) + (prepend gtk ;for GTK theme support + ninja wayland-protocols))) + (inputs + (modify-inputs (package-inputs qtbase-5) + (prepend bash-minimal libxcb md4c) + (replace "gtk+" gtk) ;use latest gtk + (replace "postgresql" postgresql))) ;use latest postgresql (native-search-paths (list (search-path-specification (variable "QMAKEPATH") diff --git a/gnu/packages/slang.scm b/gnu/packages/slang.scm index c8de04667f..f335dc1a39 100644 --- a/gnu/packages/slang.scm +++ b/gnu/packages/slang.scm @@ -2,7 +2,7 @@ ;;; Copyright © 2015 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2015 Eric Bavier <bavier@member.fsf.org> -;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2018, 2019, 2022 Tobias Geerinckx-Rice <me@tobias.gr> ;;; ;;; This file is part of GNU Guix. ;;; @@ -22,6 +22,7 @@ (define-module (gnu packages slang) #:use-module (guix packages) #:use-module (guix download) + #:use-module (guix gexp) #:use-module (guix utils) #:use-module (guix build-system gnu) #:use-module ((guix licenses) #:prefix license:) @@ -47,31 +48,29 @@ "06p379fqn6w38rdpqi98irxi2bf4llb0rja3dlgkqz7nqh7kp7pw")) (modules '((guix build utils))) (snippet - '(begin - (substitute* "src/Makefile.in" - (("/bin/ln") "ln")) - #t)))) + #~(begin + (substitute* "src/Makefile.in" + (("/bin/ln") "ln")))))) (build-system gnu-build-system) (arguments - '(#:parallel-tests? #f - #:parallel-build? #f ; there's at least one race - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'reduce-array-test-size - ;; Reduce the size of the array, otherwise the array.sl/array.slc - ;; tests fails with "Unable to create a multi-dimensional array of - ;; the desired size" on 32 bit systems. - (lambda _ - (substitute* "src/test/array.sl" - (("10000,10000,10000,10000,10000,10000") - "10,10,10,10,10,10")))) - (add-before 'configure 'substitute-before-config - (lambda* (#:key inputs #:allow-other-keys) - (let ((ncurses (assoc-ref inputs "ncurses"))) - (substitute* "configure" - (("MISC_TERMINFO_DIRS=\"\"") - (string-append "MISC_TERMINFO_DIRS=" - "\"" ncurses "/share/terminfo" "\""))))))))) + (list #:parallel-tests? #f + #:parallel-build? #f ; race to build/use elfobj + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'reduce-array-test-size + ;; Fix array.sl/array.slc failure on 32-bit systems ("Unable to + ;; to create a multi-dimensional array of the desired size"). + (lambda _ + (substitute* "src/test/array.sl" + (("10000,10000,10000,10000,10000,10000") + "10,10,10,10,10,10")))) + (add-before 'configure 'fix-configure-script + ;; Don't try to link to the long-obsolete (and gone) -ltermcap. + (lambda _ + (substitute* "configure" + (("(MISC_TERMINFO_DIRS)=.*" _ variable) + (format #f "~a=\"~a/share/terminfo\"\n" variable + #$(this-package-input "ncurses"))))))))) (inputs (list readline zlib libpng pcre ncurses)) (home-page "https://www.jedsoft.org/slang/") @@ -87,6 +86,51 @@ interpreter, it may also be used in a stand-alone fashion through the use of slsh, which is part of the S-Lang distribution.") (license license:gpl2+))) +(define-public most + (package + (name "most") + (version "5.1.0") + (source + (origin + (method url-fetch) + (uri (string-append "http://www.jedsoft.org/releases/most/most-" + version ".tar.gz")) + (sha256 + (base32 "008537ns659pw2aag15imwjrxj73j26aqq90h285is6kz8gmv06v")) + (modules '((guix build utils))) + (snippet + #~(begin + (substitute* "src/Makefile.in" + (("/bin/cp") "cp")))))) + (build-system gnu-build-system) + (arguments + (list #:configure-flags + #~(list (string-append "--with-slang=" + #$(this-package-input "slang"))) + #:tests? #f ; no test suite + #:phases + #~(modify-phases %standard-phases + (add-before 'configure 'fix-configure-script + ;; Don't try to link to the long-obsolete (and gone) -ltermcap. + (lambda _ + (substitute* "configure" + (("(MISC_TERMINFO_DIRS)=.*" _ variable) + (format #f "~a=\"~a/share/terminfo\"\n" variable + #$(this-package-input "ncurses"))))))))) + (inputs + (list ncurses slang)) + (home-page "https://www.jedsoft.org/most/") + (synopsis + "@dfn{Pager} (terminal text viewer) with multiple windows and filters") + (description + "Most is a paging text viewer. It displays the contents of a file or the +output of a command on the terminal, one screenful at a time, and lets you +scroll up and down to (re)view the entire text. + +You can open multiple windows within @command{most} to view different files, or +to inspect different parts of the same file, at the same time.") + (license license:gpl2+))) + (define-public newt (package (name "newt") diff --git a/gnu/packages/sqlite.scm b/gnu/packages/sqlite.scm index c894f563a8..c6b1b63173 100644 --- a/gnu/packages/sqlite.scm +++ b/gnu/packages/sqlite.scm @@ -113,10 +113,10 @@ is in the public domain.") (define-public sqlite-next (package (inherit sqlite) - (version "3.37.0") + (version "3.39.1") (source (origin (method url-fetch) - (uri (sqlite-uri version 2021)) + (uri (sqlite-uri version 2022)) (sha256 (base32 - "1xvrfh2r5x5pljlvakym3zrhml2dvsr8dd8xsb3nzcylsi8lc6kk")))))) + "1i0wjd1mig720q1gk9jkpw6h0mialbrlkfh8w8lans0czakygj47")))))) diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index 47e015da71..ddcd0043c4 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -11034,3 +11034,51 @@ settings to typeset Dutch documents.") Finnish in @code{babel}. It provides all the necessary macros, definitions and settings to typeset Finnish documents.") (license license:lppl1.3c+)))) + +(define-public texlive-generic-babel-norsk + (package + (name "texlive-generic-babel-norsk") + (version (number->string %texlive-revision)) + (source (origin + (method svn-fetch) + (uri (texlive-ref "generic" "babel-norsk")) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "1yf538l2isxgmab8jslxxx5fbdk4njf147n4raf5vyw3l4slxm6m")))) + (build-system texlive-build-system) + (arguments '(#:tex-directory "generic/babel-norsk")) + (home-page "https://www.ctan.org/pkg/babel-norsk") + (synopsis "Babel support for Norwegian") + (description + "The package provides the language definition file for support of +Norwegian in @code{babel}. Some shortcuts are defined, as well as translations +to Norsk of standard “LaTeX names”.") + (license license:lppl1.3+))) + +(define-public texlive-babel-danish + (let ((template (simple-texlive-package + "texlive-babel-danish" + (list "/source/generic/babel-danish/") + (base32 + "00dryb078fqckqjnxa2riq478j6d5i28j5cclv4bw7dn5naa3lz7")))) + (package + (inherit template) + (arguments + (substitute-keyword-arguments (package-arguments template) + ((#:tex-directory _ '()) + "generic/babel-danish") + ((#:build-targets _ '()) + ''("danish.ins")) ; TODO: use dtx and build documentation + ((#:phases phases) + `(modify-phases ,phases + (add-after 'unpack 'chdir + (lambda _ + (chdir "source/generic/babel-danish"))))))) + (home-page "https://www.ctan.org/pkg/babel-danish") + (synopsis "Babel support for Danish") + (description + "This package provides the language definition file for support of +Danish in @code{babel}. It provides all the necessary macros, definitions and +settings to typeset Danish documents.") + (license license:lppl1.3c+)))) diff --git a/gnu/packages/text-editors.scm b/gnu/packages/text-editors.scm index 30fc375176..0c8531cc4d 100644 --- a/gnu/packages/text-editors.scm +++ b/gnu/packages/text-editors.scm @@ -167,7 +167,7 @@ based command language.") (define-public kakoune (package (name "kakoune") - (version "2021.08.28") + (version "2021.11.08") (source (origin (method url-fetch) @@ -175,7 +175,7 @@ based command language.") "releases/download/v" version "/" "kakoune-" version ".tar.bz2")) (sha256 - (base32 "1jvn4b9rma5jjvg3xz8nf224pbq3ry570j6qvc834wn5v3gxfvkg")))) + (base32 "1x5mvmpf0rgmr2xdw5wjn4hr6qd8yvj0zx588fi324x1knfqhc5a")))) (build-system gnu-build-system) (arguments `(#:make-flags @@ -191,14 +191,9 @@ based command language.") (substitute* "src/shell_manager.cc" (("if \\(m_shell.empty\\(\\)\\)" line) (string-append "m_shell = \"" (which "sh") - "\";\n " line))) - #t)) - (delete 'configure) ; no configure script - ;; kakoune requires us to be in the src/ directory to build. - (add-before 'build 'chdir - (lambda _ (chdir "src") #t))))) - (native-inputs - (list asciidoc pkg-config ruby)) + "\";\n " line))))) + (delete 'configure)))) ; no configure script + (native-inputs (list pkg-config)) (synopsis "Vim-inspired code editor") (description "Kakoune is a code editor heavily inspired by Vim, as such most of its diff --git a/gnu/packages/toys.scm b/gnu/packages/toys.scm index 4fa6966ca9..fb2f367490 100644 --- a/gnu/packages/toys.scm +++ b/gnu/packages/toys.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2017, 2018, 2020–2022 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2019 Jesse Gibbons <jgibbons2357+guix@gmail.com> ;;; Copyright © 2019, 2020, 2021 Timotej Lazar <timotej.lazar@araneo.si> +;;; Copyright © 2019 Liliana Marie Prikler <liliana.prikler@gmail.com> ;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2021 Leo Famulari <leo@famulari.name> ;;; @@ -38,6 +39,46 @@ #:use-module (guix packages) #:use-module (guix utils)) +(define-public lolcat + (let ((commit "35dca3d0a381496d7195cd78f5b24aa7b62f2154") + (revision "0")) + (package + (name "lolcat") + (version (git-version "1.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/jaseg/lolcat") + (commit commit))) + (sha256 + (base32 + "0jjbkqcc2ikjxd1xgdyv4rb0vsw218181h89f2ywg29ffs3ypd8g")) + (file-name (git-file-name name version)))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; no check target + #:make-flags + (list ,(string-append "CC=" (cc-for-target))) + #:phases + (modify-phases %standard-phases + (delete 'bootstrap) + (delete 'configure) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (dest (string-append out "/bin"))) + (mkdir-p dest) + (install-file "lolcat" dest) + (install-file "censor" dest) + #t)))))) + (home-page "https://github.com/jaseg/lolcat") + (synopsis "Rainbow coloring effect for text console display") + (description "@command{lolcat} concatenates files and streams like +regular @command{cat}, but it also adds terminal escape codes between +characters and lines resulting in a rainbow effect.") + (license license:wtfpl2)))) + (define-public oneko (package (name "oneko") diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index 2d838ea1c4..612f69597f 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -2439,7 +2439,7 @@ from Subversion to any supported Distributed Version Control System (DVCS).") (define-public tig (package (name "tig") - (version "2.5.5") + (version "2.5.6") (source (origin (method url-fetch) (uri (string-append @@ -2447,7 +2447,12 @@ from Subversion to any supported Distributed Version Control System (DVCS).") version "/tig-" version ".tar.gz")) (sha256 (base32 - "04skfsw5wkf6p47lis7x4xyfbpjik3id1km75q0fd2g8xa5jrfi4")))) + "0pwn7mlfnd5ngcbagjs9vsr7jgmia8676p0i91vvfl4v6qrmzfsh")) + (modules '((guix build utils))) + (snippet + '(begin + ;; TODO: Delete and rebuild doc/*.(1|5|7). + (for-each delete-file (find-files "doc" "\\.html$")))))) (build-system gnu-build-system) (native-inputs (list asciidoc xmlto)) @@ -2458,7 +2463,17 @@ from Subversion to any supported Distributed Version Control System (DVCS).") (modify-phases %standard-phases (add-after 'install 'install-doc (lambda _ - (invoke "make" "install-doc")))) + (invoke "make" "install-doc"))) + (add-after 'install 'install-completions + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (share (string-append out "/share"))) + (mkdir-p (string-append share "/bash-completion/completions")) + (mkdir-p (string-append share "/zsh/site-functions")) + (copy-file "contrib/tig-completion.bash" + (string-append share "/bash-completion/completions/tig")) + (copy-file "contrib/tig-completion.zsh" + (string-append share "/zsh/site-functions/_tig")))))) #:test-target "test" #:tests? #f)) ; tests require access to /dev/tty (home-page "https://jonas.github.io/tig/") @@ -2678,20 +2693,25 @@ by rclone usable with git-annex.") (define-public fossil (package (name "fossil") - (version "2.17") + (version "2.18") (source (origin (method url-fetch) (uri (string-append "https://www.fossil-scm.org/home/tarball/" - "f48180f2ff3169651a725396d4f7d667c99a92873b9c3df7eee2f144be7a0721" + "84f25d7eb10c0714109d69bb2809abfa8b4b5c3d73b151a5b10df724dacd46d8" "/fossil-src-" version ".tar.gz")) + ;; XXX: Currently the above hash must be manually updated. (sha256 - (base32 "1gvx6xzrw1a8snlq9qmr6099r44ifghg0h0fw4jazqmmyxriqzsw")) + (base32 "0cq7677p84nnbfvk2dsh3c3y900gslw3zaw8iipfq932vmf1s31h")) (modules '((guix build utils))) (snippet '(begin - (delete-file-recursively "compat") #t)))) + (delete-file-recursively "compat") + ;; Disable obsolete SQLite feature check; remove for 2.19. + (substitute* "tools/sqlcompattest.c" + ((".*\"ENABLE_JSON1\".*") + "")))))) (build-system gnu-build-system) (native-inputs (list tcl ;for configuration only @@ -2728,6 +2748,9 @@ by rclone usable with git-annex.") "Fossil is a distributed source control management system which supports access and administration over HTTP CGI or via a built-in HTTP server. It has a built-in wiki, built-in file browsing, built-in tickets system, etc.") + (properties + '((release-monitoring-url + . "https://fossil-scm.org/home/uv/latest-release.md"))) (license (list license:public-domain ;src/miniz.c, src/shell.c license:bsd-2)))) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 3097aca7e3..68ab7c7143 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -333,6 +333,7 @@ the SVT-HEVC encoder, it is possible to spread video encoding processing across multiple Intel's Xeon processors to achieve a real advantage of processing efficiency.") (home-page "https://01.org/svt") + (supported-systems '("x86_64-linux" "i686-linux")) (license (license:non-copyleft "file:///LICENSE.md")))) (define-public mediasdk @@ -375,6 +376,7 @@ efficiency.") (description "MediaSDK provides a plain C API to access hardware-accelerated video decode, encode and filtering on Intel's Gen graphics hardware platforms.") (home-page "http://mediasdk.intel.com/") + (supported-systems '("x86_64-linux" "i686-linux")) (license (license:non-copyleft "file:///LICENSE")))) (define-public schroedinger @@ -691,13 +693,17 @@ touchscreen devices and the ability to apply filters to their input events.") (("\\(A52DIR\\)/include") "(A52DIR)/include/a52dec") (("LIBS = " match) - (string-append match "-la52 "))) - #t)) + (string-append match "-la52 "))))) + (add-after 'unpack 'preseed-cflags + (lambda _ + (setenv "CFLAGS" + (string-append "-D_FILE_OFFSET_BITS=64 " + "-D_LARGEFILE_SOURCE " + "-D_LARGEFILE64_SOURCE")))) (add-before 'install 'create-destination-directory (lambda* (#:key outputs #:allow-other-keys) (let* ((out (string-append (assoc-ref outputs "out")))) - (mkdir-p (string-append out "/bin")) - #t)))))) + (mkdir-p (string-append out "/bin")))))))) (native-inputs (list nasm)) (inputs @@ -4915,7 +4921,7 @@ video from a Wayland session.") (define-public gaupol (package (name "gaupol") - (version "1.9") + (version "1.11") (source (origin (method git-fetch) (uri (git-reference @@ -4924,7 +4930,7 @@ video from a Wayland session.") (file-name (git-file-name name version)) (sha256 (base32 - "1mmjg8nwhif2hmmp8i11643izwzdf839brqdai3ksfg0qkh8rnxk")))) + "01qbhhycmy26b2mw2jlri321k478jhp7y0jzlcv87iaq05qr4pc8")))) (build-system python-build-system) (native-inputs `(("gettext" ,gettext-minimal) diff --git a/gnu/packages/vpn.scm b/gnu/packages/vpn.scm index a1c3ab7736..af6be7257d 100644 --- a/gnu/packages/vpn.scm +++ b/gnu/packages/vpn.scm @@ -1163,7 +1163,7 @@ public keys and can roam across IP addresses.") (define-public xl2tpd (package (name "xl2tpd") - (version "1.3.16") + (version "1.3.17") (source (origin (method git-fetch) (uri (git-reference @@ -1172,7 +1172,7 @@ public keys and can roam across IP addresses.") (file-name (git-file-name name version)) (sha256 (base32 - "0is5ccrvijz0pfm45pfrlbb9y8231yz3c4zqs8mkgakl9rxajy6l")))) + "06aiidwygywaa1jn8m2pw8l3vnsc2bjnacbjmlsdy1cqgr1f5cc9")))) (build-system gnu-build-system) (arguments (list diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index f8742cd120..9342873bc0 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -381,14 +381,14 @@ the same, being completely separated from the Internet.") ;; Track the ‘mainline’ branch. Upstream considers it more reliable than ;; ’stable’ and recommends that “in general you deploy the NGINX mainline ;; branch at all times” (https://www.nginx.com/blog/nginx-1-6-1-7-released/) - (version "1.21.6") + (version "1.23.0") (source (origin (method url-fetch) (uri (string-append "https://nginx.org/download/nginx-" version ".tar.gz")) (sha256 (base32 - "1bh52jqqcaj5wlh2kvhxr00jhk2hnk8k97ki4pwyj4c8920p1p36")))) + "1lacv4gb72n7f93smy098y122aaz9bxdxxkjksgbwwljbfiwl2l2")))) (build-system gnu-build-system) (inputs (list libxml2 libxslt openssl pcre zlib)) (arguments @@ -476,9 +476,9 @@ and as a proxy to reduce the load on back-end HTTP or mail servers.") (define-public nginx-documentation ;; This documentation should be relevant for the current nginx package. - (let ((version "1.21.6") - (revision 2829) - (changeset "1ecf0e0526da")) + (let ((version "1.23.0") + (revision 2862) + (changeset "cf7551842617")) (package (name "nginx-documentation") (version (simple-format #f "~A-~A-~A" version revision changeset)) @@ -490,7 +490,7 @@ and as a proxy to reduce the load on back-end HTTP or mail servers.") (file-name (string-append name "-" version)) (sha256 (base32 - "1r3y9wv4bhji5b16ljb557llf6ih3z2mzgwbia79h7223468w3fg")))) + "1qfrcakj6dzdypn01dngjqvsi4b4fsbpxziy5m2x1rs1z6gv7ia3")))) (build-system gnu-build-system) (arguments '(#:tests? #f ; no test suite @@ -4652,8 +4652,8 @@ CDF, Atom 0.3, and Atom 1.0 feeds.") license:freebsd-doc)))) ; documentation (define-public guix-data-service - (let ((commit "39487cd7e6df7f50f21af15b26f9ec616709f21d") - (revision "32")) + (let ((commit "ee73d2cc9857533020535eb8e1ad856e04fb5152") + (revision "33")) (package (name "guix-data-service") (version (string-append "0.0.1-" revision "." (string-take commit 7))) @@ -4665,7 +4665,7 @@ CDF, Atom 0.3, and Atom 1.0 feeds.") (file-name (git-file-name name version)) (sha256 (base32 - "0xynndlx711spak3s5lzzip8x9bccrzrs5vlrm6jj2ppgrrjsc8h")))) + "0rmx728md50nlka61f4gma58avplyaf32k71hazprijdqii2vkgf")))) (build-system gnu-build-system) (arguments '(#:modules ((guix build utils) diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm index 8fef7de77b..f27f8af8d4 100644 --- a/gnu/packages/wm.scm +++ b/gnu/packages/wm.scm @@ -2715,6 +2715,63 @@ which do not support it.") (description "wlogout is a logout menu for Wayland environments.") (license license:expat))) +(define-public berry + (package + (name "berry") + (version "0.1.11") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/jlervin/berry") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1qyq3g0m7rb9gpk1i5kfy9nr8sqivjiilbi4g0nw4d400rblvkbj")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; There are no tests. + #:make-flags + ,#~(list (string-append "CC=" #$(cc-for-target)) + (string-append "prefix=" #$output) + (string-append "CFLAGS=" + "-I" (assoc-ref %build-inputs "freetype") + "/include/freetype2")) + #:phases + (modify-phases %standard-phases + (delete 'configure) + (add-after 'build 'install-xsession + (lambda* (#:key outputs #:allow-other-keys) + (let* ((output (assoc-ref outputs "out")) + (xsessions (string-append output "/share/xsessions"))) + (mkdir-p xsessions) + (with-output-to-file (string-append xsessions "/berry.desktop") + (lambda _ + (format #t + "\ +[Desktop Entry]~@ +Name=berry~@ +Comment=Berry Window Manager~@ +Exec=~a/bin/berry~@ +TryExec=~@*~a/bin/berry~@ +Icon=~@ +Type=Application~%" + output))))))))) + (native-inputs + (list pkg-config)) + (inputs + (list freetype + fontconfig + libxext + libx11 + libxft + libxinerama)) + (home-page "https://berrywm.org/") + (synopsis "Healthy, byte-sized window manager") + (description + "@code{berry} is a healthy, bite-sized window manager written in C using XLib.") + (license license:expat))) + (define-public avizo (package (name "avizo") diff --git a/gnu/packages/xfce.scm b/gnu/packages/xfce.scm index 323ecd3042..19bb18923b 100644 --- a/gnu/packages/xfce.scm +++ b/gnu/packages/xfce.scm @@ -302,7 +302,7 @@ upstream occasionally.") (define-public exo (package (name "exo") - (version "4.16.3") + (version "4.16.4") (source (origin (method url-fetch) (uri (string-append "https://archive.xfce.org/src/xfce/" @@ -310,7 +310,7 @@ upstream occasionally.") "exo-" version ".tar.bz2")) (sha256 (base32 - "1rpsp37n5l3qxinv37rz5l4rvja7yaf8hqsy81jhlgz27wygybbj")))) + "1jifknw0chyaismj94mrx9pbhnd7ridm25bn1d15q7lgwxkhr9c2")))) (build-system gnu-build-system) (native-inputs (list pkg-config intltool)) @@ -579,7 +579,7 @@ applications, and includes a search bar to search for applications.") (define-public xfce4-xkb-plugin (package (name "xfce4-xkb-plugin") - (version "0.8.2") + (version "0.8.3") (source (origin (method url-fetch) (uri (string-append "https://archive.xfce.org/src/panel-plugins/" @@ -587,7 +587,7 @@ applications, and includes a search bar to search for applications.") name "-" version ".tar.bz2")) (sha256 (base32 - "0rvrz464y7ji989zvi2v85kg47444nqsdq9rv6k8dkbkdwzy2jxv")))) + "11s9s0634g9rf5hcj6nga6hsv71wcq9c7ym6nsis077gfmwfkgzh")))) (build-system gnu-build-system) (native-inputs (list intltool pkg-config)) @@ -693,7 +693,7 @@ allows you to shut down the computer from Xfce.") (define-public xfce4-settings (package (name "xfce4-settings") - (version "4.16.2") + (version "4.16.3") (source (origin (method url-fetch) (uri (string-append "https://archive.xfce.org/src/xfce/" @@ -701,7 +701,7 @@ allows you to shut down the computer from Xfce.") name "-" version ".tar.bz2")) (sha256 (base32 - "0zixl1yiksavp3a824hqczxx5q3l09f0ng37gxl5wlv0111cpmsd")) + "0r4fmcmqzik9a1cflm3jck40pmbbgn8viffygq5jq54fdp9fd6gj")) (patches (search-patches "xfce4-settings-defaults.patch")))) (build-system gnu-build-system) (arguments @@ -1155,7 +1155,7 @@ inhibit interface which allows applications to prevent automatic sleep.") (define-public ristretto (package (name "ristretto") - (version "0.12.2") + (version "0.12.3") (source (origin (method url-fetch) (uri (string-append "https://archive.xfce.org/src/apps/ristretto/" @@ -1163,7 +1163,7 @@ inhibit interface which allows applications to prevent automatic sleep.") "ristretto-" version ".tar.bz2")) (sha256 (base32 - "0sfrvb19xkiphcp2ddqxgvh9hbramlm6qi7sv99s407c4acqdvhf")))) + "0gizrn49ayamb1sqfxi3mdxas9dz4dw1sv3iyji718az48hp13w6")))) (build-system gnu-build-system) (native-inputs (list intltool desktop-file-utils @@ -1305,7 +1305,7 @@ of data to either CD/DVD/BD.") (define-public mousepad (package (name "mousepad") - (version "0.5.9") + (version "0.5.10") (source (origin (method url-fetch) (uri (string-append "https://archive.xfce.org/src/apps/mousepad/" @@ -1313,7 +1313,7 @@ of data to either CD/DVD/BD.") version ".tar.bz2")) (sha256 (base32 - "0wzlcwhvpnig6123k83fsmrfjq5x1pqncxmnd8k2fmzccz0sh27i")))) + "1b9bal9wxmgpff6r7k48gnkd0vla7xljmiahjq6mdrdyaa6z7fkf")))) (build-system gnu-build-system) (arguments '(#:configure-flags '(;; Use the GSettings keyfile backend rather than @@ -2070,7 +2070,7 @@ for the Xfce panel. It supports several features, such as: (define-public xfce4-wavelan-plugin (package (name "xfce4-wavelan-plugin") - (version "0.6.2") + (version "0.6.3") (source (origin (method url-fetch) (uri (string-append "https://archive.xfce.org/src/panel-plugins/" @@ -2079,7 +2079,7 @@ for the Xfce panel. It supports several features, such as: "/xfce4-wavelan-plugin-" version ".tar.bz2")) (sha256 (base32 - "07a8nmc60in48licjj0gmwm77vb8divh1lb7jnib35n5a1ka6ypa")))) + "0azpv0s3r4ag3gp0bsfvq0jgzycx6ivdsw5p0ga7425pdksw5h31")))) (build-system gnu-build-system) (native-inputs (list intltool pkg-config)) diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index 6a424b71d2..c3e38314ce 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -5132,7 +5132,7 @@ by the Xorg server.") (define-public xorg-server (package (name "xorg-server") - (version "21.1.2") + (version "21.1.4") (source (origin (method url-fetch) @@ -5140,7 +5140,7 @@ by the Xorg server.") "/xserver/xorg-server-" version ".tar.xz")) (sha256 (base32 - "1c4dgvpv3kib8rhw37b00vc056nlb1z66c2lwzs4prz8kxmg82y2")) + "11y5w6z3rz3i4jyv0wc3scd2jh3bsmcklq0fm7a5invywj7bxi2w")) (patches (list ;; See: diff --git a/gnu/services/docker.scm b/gnu/services/docker.scm index 846ebe8334..741bab5a8c 100644 --- a/gnu/services/docker.scm +++ b/gnu/services/docker.scm @@ -98,6 +98,8 @@ loop-back communications.") ;; For finding containerd-shim binary. #:environment-variables (list (string-append "PATH=" #$containerd "/bin")) + #:pid-file "/run/containerd/containerd.pid" + #:pid-file-timeout 300 #:log-file "/var/log/containerd.log")) (stop #~(make-kill-destructor))))) @@ -135,7 +137,8 @@ loop-back communications.") '("--userland-proxy=false")) (if #$enable-iptables? "--iptables" - "--iptables=false")) + "--iptables=false") + "--containerd" "/run/containerd/containerd.sock") #:environment-variables (list #$@environment-variables) #:pid-file "/var/run/docker.pid" diff --git a/gnu/services/guix.scm b/gnu/services/guix.scm index 338e027245..dac1e5841a 100644 --- a/gnu/services/guix.scm +++ b/gnu/services/guix.scm @@ -652,8 +652,6 @@ ca-certificates.crt file in the system profile." #:user #$user #:group #$group #:pid-file "/var/run/guix-data-service/pid" - ;; Allow time for migrations to run - #:pid-file-timeout 120 #:environment-variables `(,(string-append "GUIX_LOCPATH=" #$glibc-utf8-locales "/lib/locale") diff --git a/gnu/services/networking.scm b/gnu/services/networking.scm index a9560db66b..b555c46040 100644 --- a/gnu/services/networking.scm +++ b/gnu/services/networking.scm @@ -918,9 +918,7 @@ applications in communication. It is used by Jami, for example."))) (lambda (port) (display "\ ### These lines were generated from your system configuration: -User tor DataDirectory /var/lib/tor -PidFile /var/run/tor/tor.pid Log notice syslog\n" port) (when (eq? 'unix '#$socks-socket-type) (display "\ @@ -960,7 +958,25 @@ HiddenServicePort ~a ~a~%" "Return a <shepherd-service> running Tor." (match config (($ <tor-configuration> tor) - (let ((torrc (tor-configuration->torrc config))) + (let* ((torrc (tor-configuration->torrc config)) + (tor (least-authority-wrapper + (file-append tor "/bin/tor") + #:name "tor" + #:mappings (list (file-system-mapping + (source "/var/lib/tor") + (target source) + (writable? #t)) + (file-system-mapping + (source "/dev/log") ;for syslog + (target source)) + (file-system-mapping + (source "/var/run/tor") + (target source) + (writable? #t)) + (file-system-mapping + (source torrc) + (target source))) + #:namespaces (delq 'net %namespaces)))) (with-imported-modules (source-module-closure '((gnu build shepherd) (gnu system file-systems))) @@ -974,22 +990,15 @@ HiddenServicePort ~a ~a~%" (modules '((gnu build shepherd) (gnu system file-systems))) - (start #~(make-forkexec-constructor/container - (list #$(file-append tor "/bin/tor") "-f" #$torrc) - - #:log-file "/var/log/tor.log" - #:mappings (list (file-system-mapping - (source "/var/lib/tor") - (target source) - (writable? #t)) - (file-system-mapping - (source "/dev/log") ;for syslog - (target source)) - (file-system-mapping - (source "/var/run/tor") - (target source) - (writable? #t))) - #:pid-file "/var/run/tor/tor.pid")) + ;; XXX: #:pid-file won't work because the wrapped 'tor' + ;; program would print its PID within the user namespace + ;; instead of its actual PID outside. There's no inetd or + ;; systemd socket activation support either (there's + ;; 'sd_notify' though), so we're stuck with that. + (start #~(make-forkexec-constructor + (list #$tor "-f" #$torrc) + #:user "tor" #:group "tor" + #:log-file "/var/log/tor.log")) (stop #~(make-kill-destructor)) (documentation "Run the Tor anonymous network overlay.")))))))) diff --git a/gnu/system.scm b/gnu/system.scm index ba1b7b5152..a94f0a9a1f 100644 --- a/gnu/system.scm +++ b/gnu/system.scm @@ -1222,6 +1222,7 @@ deprecated; use 'setuid-program' instead~%")) (file-append sudo "/bin/sudo") (file-append sudo "/bin/sudoedit") (file-append fuse "/bin/fusermount") + (file-append fuse-3 "/bin/fusermount3") ;; To allow mounts with the "user" option, "mount" and "umount" must ;; be setuid-root. diff --git a/gnu/tests/guix.scm b/gnu/tests/guix.scm index a4c3e35e5d..ad0980a10c 100644 --- a/gnu/tests/guix.scm +++ b/gnu/tests/guix.scm @@ -222,14 +222,23 @@ host all all ::1/128 trust")))))) ((pid) (number? pid)))))) marionette)) + ;; The service starts immediately but replies with status 500 until + ;; initialization is complete, so keep trying for a while. + (define (try-http-get attempts) + (let ((status + (let-values (((response text) + (http-get #$(simple-format + #f "http://localhost:~A/healthcheck" + forwarded-port)))) + (response-code response)))) + (if (or (= status 200) (<= attempts 1)) + status + (begin (sleep 5) + (try-http-get (- attempts 1)))))) + (test-equal "http-get" 200 - (let-values - (((response text) - (http-get #$(simple-format - #f "http://localhost:~A/healthcheck" forwarded-port) - #:decode-body? #t))) - (response-code response))) + (try-http-get 12)) (test-end)))) diff --git a/guix/import/egg.scm b/guix/import/egg.scm index 0b88020554..52196583c4 100644 --- a/guix/import/egg.scm +++ b/guix/import/egg.scm @@ -85,11 +85,6 @@ (define %eggs-home-page (make-parameter "https://wiki.call-cc.org/egg")) -(define (egg-source-url name version) - "Return the URL to the source tarball for version VERSION of the CHICKEN egg -NAME." - `(egg-uri ,name version)) - (define (egg-name->guix-name name) "Return the package name for CHICKEN egg NAME." (string-append package-name-prefix name)) @@ -196,7 +191,7 @@ not work." (let* ((version* (or (assoc-ref egg-content 'version) (find-latest-version name))) (version (if (list? version*) (first version*) version*)) - (source-url (if source #f (egg-source-url name version))) + (source-url (if source #f `(egg-uri ,name version))) (tarball (if source #f (with-store store @@ -342,7 +337,7 @@ not work." "Return an @code{<upstream-source>} for the latest release of PACKAGE." (let* ((egg-name (guix-package->egg-name package)) (version (find-latest-version egg-name)) - (source-url (egg-source-url egg-name version))) + (source-url (egg-uri egg-name version))) (upstream-source (package (package-name package)) (version version) diff --git a/guix/import/pypi.scm b/guix/import/pypi.scm index 392fc9700b..4760fc3dae 100644 --- a/guix/import/pypi.scm +++ b/guix/import/pypi.scm @@ -161,9 +161,11 @@ or #f if there isn't any." (define (python->package-name name) "Given the NAME of a package on PyPI, return a Guix-compliant name for the package." - (if (string-prefix? "python-" name) - (snake-case name) - (string-append "python-" (snake-case name)))) + (cond + ((string-prefix? "python-" name) (snake-case name)) + ((or (string=? "trytond" name) + (string-prefix? "trytond-" name)) (snake-case name)) + (else (string-append "python-" (snake-case name))))) (define (guix-package->pypi-name package) "Given a Python PACKAGE built from pypi.org, return the name of the diff --git a/guix/import/texlive.scm b/guix/import/texlive.scm index c741555928..116bd1f66a 100644 --- a/guix/import/texlive.scm +++ b/guix/import/texlive.scm @@ -246,7 +246,7 @@ of those files are returned that are unexpectedly installed." ;; entries with the same prefix. (lambda (x y) (every equal? x y))))) -(define (tlpdb->package name package-database) +(define (tlpdb->package name version package-database) (and-let* ((data (assoc-ref package-database name)) (dirs (files->directories (map (lambda (dir) @@ -255,7 +255,9 @@ of those files are returned that are unexpectedly installed." (or (assoc-ref data 'runfiles) (list)) (or (assoc-ref data 'srcfiles) (list)))))) (name (guix-name name)) - (version (number->string %texlive-revision)) + ;; TODO: we're ignoring the VERSION argument because that + ;; information is distributed across %texlive-tag and + ;; %texlive-revision. (ref (svn-multi-reference (url (string-append "svn://www.tug.org/texlive/tags/" %texlive-tag "/Master/texmf-dist")) @@ -276,6 +278,9 @@ of those files are returned that are unexpectedly installed." (force-output port) (get-hash)))) ,@(if (assoc-ref data 'srcfiles) '() '(#:trivial? #true)))) + ;; package->definition in (guix import utils) expects to see a + ;; version field. + (version ,version) ,@(or (and=> (assoc-ref data 'depend) (lambda (inputs) `((propagated-inputs @@ -297,13 +302,18 @@ of those files are returned that are unexpectedly installed." (define texlive->guix-package (memoize - (lambda* (name #:key repo version (package-database tlpdb)) + (lambda* (name #:key + repo + (version (number->string %texlive-revision)) + (package-database tlpdb)) "Find the metadata for NAME in the tlpdb and return the `package' s-expression corresponding to that package, or #f on failure." - (tlpdb->package name (package-database))))) + (tlpdb->package name version (package-database))))) -(define (texlive-recursive-import name) +(define* (texlive-recursive-import name #:key repo version) (recursive-import name + #:repo repo + #:version version #:repo->guix-package texlive->guix-package #:guix-name guix-name)) diff --git a/guix/import/utils.scm b/guix/import/utils.scm index 26eebfece5..668b8c8083 100644 --- a/guix/import/utils.scm +++ b/guix/import/utils.scm @@ -341,6 +341,8 @@ APPEND-VERSION?/string is a string, append this string." (match guix-package ((or ('package ('name name) ('version version) . rest) + ('package ('inherit ('simple-texlive-package name . _)) + ('version version) . rest) ('let _ ('package ('name name) ('version version) . rest))) `(define-public ,(string->symbol diff --git a/guix/monad-repl.scm b/guix/monad-repl.scm index aefabdeebb..8a6053edd5 100644 --- a/guix/monad-repl.scm +++ b/guix/monad-repl.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2014, 2015, 2016, 2022 Ludovic Courtès <ludo@gnu.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -21,6 +21,12 @@ #:use-module (guix monads) #:use-module (guix utils) #:use-module (guix packages) + #:use-module (guix status) + #:autoload (guix gexp) (lower-object) + #:use-module ((guix derivations) + #:select (derivation? + derivation->output-paths built-derivations)) + #:use-module (ice-9 match) #:use-module (ice-9 pretty-print) #:use-module (system repl repl) #:use-module (system repl common) @@ -69,16 +75,58 @@ #:guile-for-build guile) 'store-monad))) +(define %build-verbosity + ;; Current build verbosity level. + 1) + +(define* (evaluate/print-with-store mvalue #:key build?) + "Run monadic value MVALUE in the store monad and print its value." + (with-store store + (set-build-options store + #:print-build-trace #t + #:print-extended-build-trace? #t + #:multiplexed-build-output? #t) + (with-status-verbosity %build-verbosity + (let* ((guile (or (%guile-for-build) + (default-guile-derivation store))) + (values (run-with-store store + (if build? + (mlet %store-monad ((obj mvalue)) + (if (derivation? obj) + (mbegin %store-monad + (built-derivations (list obj)) + (return + (match (derivation->output-paths obj) + (((_ . files) ...) files)))) + (return (list obj)))) + (mlet %store-monad ((obj mvalue)) + (return (list obj)))) + #:guile-for-build guile))) + (for-each (lambda (value) + (run-hook before-print-hook value) + (pretty-print value)) + values))))) + (define-meta-command ((run-in-store guix) repl (form)) "run-in-store EXP Run EXP through the store monad." - (with-store store - (let* ((guile (or (%guile-for-build) - (default-guile-derivation store))) - (value (run-with-store store (repl-eval repl form) - #:guile-for-build guile))) - (run-hook before-print-hook value) - (pretty-print value)))) + (evaluate/print-with-store (repl-eval repl form))) + +(define-meta-command ((verbosity guix) repl (level)) + "verbosity LEVEL +Change build verbosity to LEVEL." + (set! %build-verbosity (repl-eval repl level))) + +(define-meta-command ((lower guix) repl (form)) + "lower OBJECT +Lower OBJECT into a derivation or store file and return it." + (evaluate/print-with-store (lower-object (repl-eval repl form)))) + +(define-meta-command ((build guix) repl (form)) + "build OBJECT +Lower OBJECT and build it, returning its output file name(s)." + (evaluate/print-with-store (lower-object (repl-eval repl form)) + #:build? #t)) (define-meta-command ((enter-store-monad guix) repl) "enter-store-monad diff --git a/guix/scripts/home.scm b/guix/scripts/home.scm index 0f5c3388a1..4add7e7c69 100644 --- a/guix/scripts/home.scm +++ b/guix/scripts/home.scm @@ -4,6 +4,7 @@ ;;; Copyright © 2021 Pierre Langlois <pierre.langlois@gmx.com> ;;; Copyright © 2021 Oleg Pykhalov <go.wigust@gmail.com> ;;; Copyright © 2022 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2022 Antero Mejr <antero@mailbox.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -143,6 +144,11 @@ Some ACTIONS support additional ARGS.\n")) use BACKEND for 'extension-graph' and 'shepherd-graph'")) (newline) (display (G_ " + -I, --list-installed[=REGEXP] + for 'describe' or 'list-generations', list installed + packages matching REGEXP")) + (newline) + (display (G_ " -h, --help display this help and exit")) (display (G_ " -V, --version display version information and exit")) @@ -183,6 +189,9 @@ Some ACTIONS support additional ARGS.\n")) (option '("graph-backend") #t #f (lambda (opt name arg result) (alist-cons 'graph-backend arg result))) + (option '(#\I "list-installed") #f #t + (lambda (opt name arg result) + (alist-cons 'list-installed (or arg "") result))) ;; Container options. (option '(#\N "network") #f #f @@ -569,17 +578,20 @@ Run @command{guix home reconfigure ~a/home-configuration.scm} to effectively deploy the home environment described by these files.\n") destination)))) ((describe) - (match (generation-number %guix-home) - (0 - (leave (G_ "no home environment generation, nothing to describe~%"))) - (generation - (display-home-environment-generation generation)))) + (let ((list-installed-regex (assoc-ref opts 'list-installed))) + (match (generation-number %guix-home) + (0 + (leave (G_ "no home environment generation, nothing to describe~%"))) + (generation + (display-home-environment-generation + generation #:list-installed-regex list-installed-regex))))) ((list-generations) - (let ((pattern (match args + (let ((list-installed-regex (assoc-ref opts 'list-installed)) + (pattern (match args (() #f) ((pattern) pattern) (x (leave (G_ "wrong number of arguments~%")))))) - (list-generations pattern))) + (list-generations pattern #:list-installed-regex list-installed-regex))) ((switch-generation) (let ((pattern (match args ((pattern) pattern) @@ -748,9 +760,11 @@ description matches REGEXPS sorted by relevance, and their score." (define* (display-home-environment-generation number - #:optional (profile %guix-home)) - "Display a summary of home-environment generation NUMBER in a -human-readable format." + #:optional (profile %guix-home) + #:key (list-installed-regex #f)) + "Display a summary of home-environment generation NUMBER in a human-readable +format. List packages in that home environment that match +LIST-INSTALLED-REGEX." (define (display-channel channel) (format #t " ~a:~%" (channel-name channel)) (format #t (G_ " repository URL: ~a~%") (channel-url channel)) @@ -782,24 +796,36 @@ human-readable format." (format #t (G_ " configuration file: ~a~%") (if (supports-hyperlinks?) (file-hyperlink config-file) - config-file)))))) - -(define* (list-generations pattern #:optional (profile %guix-home)) - "Display in a human-readable format all the home environment -generations matching PATTERN, a string. When PATTERN is #f, display -all the home environment generations." + config-file))) + (when list-installed-regex + (format #t (G_ " packages:\n")) + (pretty-print-table (list-installed + list-installed-regex + (list (string-append generation "/profile"))) + #:left-pad 4))))) + +(define* (list-generations pattern #:optional (profile %guix-home) + #:key (list-installed-regex #f)) + "Display in a human-readable format all the home environment generations +matching PATTERN, a string. When PATTERN is #f, display all the home +environment generations. List installed packages that match +LIST-INSTALLED-REGEX." (cond ((not (file-exists? profile)) ; XXX: race condition (raise (condition (&profile-not-found-error (profile profile))))) ((not pattern) - (for-each display-home-environment-generation (profile-generations profile))) + (for-each (cut display-home-environment-generation <> + #:list-installed-regex list-installed-regex) + (profile-generations profile))) ((matching-generations pattern profile) => (lambda (numbers) (if (null-list? numbers) (exit 1) - (leave-on-EPIPE - (for-each display-home-environment-generation numbers))))))) + (leave-on-EPIPE (for-each + (cut display-home-environment-generation <> + #:list-installed-regex list-installed-regex) + numbers))))))) ;;; diff --git a/guix/scripts/import/texlive.scm b/guix/scripts/import/texlive.scm index c5dcc07ea1..203386e31c 100644 --- a/guix/scripts/import/texlive.scm +++ b/guix/scripts/import/texlive.scm @@ -22,11 +22,13 @@ #:use-module (guix utils) #:use-module (guix scripts) #:use-module (guix import texlive) + #:use-module (guix import utils) #:use-module (guix scripts import) #:use-module (srfi srfi-1) #:use-module (srfi srfi-11) #:use-module (srfi srfi-37) #:use-module (srfi srfi-41) + #:use-module (srfi srfi-71) #:use-module (ice-9 match) #:use-module (ice-9 format) #:export (guix-import-texlive)) @@ -58,6 +60,9 @@ Import and convert the Texlive package for PACKAGE-NAME.\n")) (option '(#\V "version") #f #f (lambda args (show-version-and-exit "guix import texlive"))) + (option '(#\r "recursive") #f #f + (lambda (opt name arg result) + (alist-cons 'recursive #t result))) %standard-import-options)) @@ -78,12 +83,20 @@ Import and convert the Texlive package for PACKAGE-NAME.\n")) (_ #f)) (reverse opts)))) (match args - ((name) - (let ((sexp (texlive->guix-package name))) - (unless sexp - (leave (G_ "failed to import package '~a'~%") - name)) - sexp)) + ((spec) + (let ((name version (package-name->name+version spec))) + (if (assoc-ref opts 'recursive) + ;; Recursive import + (with-error-handling + (map package->definition + (filter identity (texlive-recursive-import name + #:version version)))) + ;; Single import + (let ((sexp (texlive->guix-package name #:version version))) + (unless sexp + (leave (G_ "failed to download description for package '~a'~%") + name)) + sexp)))) (() (leave (G_ "too few arguments~%"))) ((many ...) diff --git a/guix/scripts/package.scm b/guix/scripts/package.scm index 99a6cfaa29..7d92598efa 100644 --- a/guix/scripts/package.scm +++ b/guix/scripts/package.scm @@ -11,6 +11,7 @@ ;;; Copyright © 2020 Simon Tournier <zimon.toutoune@gmail.com> ;;; Copyright © 2018 Steve Sprang <scs@stevesprang.com> ;;; Copyright © 2022 Josselin Poiret <dev@jpoiret.xyz> +;;; Copyright © 2022 Antero Mejr <antero@mailbox.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -67,6 +68,7 @@ delete-generations delete-matching-generations guix-package + list-installed search-path-environment-variables manifest-entry-version-prefix @@ -773,6 +775,22 @@ doesn't need it." (add-indirect-root store absolute)) +(define (list-installed regexp profiles) + "Write to the current output port the list of packages matching REGEXP in +PROFILES." + (let* ((regexp (and regexp (make-regexp* regexp regexp/icase))) + (manifest (concatenate-manifests + (map profile-manifest profiles))) + (installed (manifest-entries manifest))) + (leave-on-EPIPE + (let ((rows (filter-map + (match-lambda + (($ <manifest-entry> name version output path _) + (and (regexp-exec regexp name) + (list name (or version "?") output path)))) + installed))) + rows)))) + ;;; ;;; Queries and actions. @@ -824,19 +842,8 @@ processed, #f otherwise." #t) (('list-installed regexp) - (let* ((regexp (and regexp (make-regexp* regexp regexp/icase))) - (manifest (concatenate-manifests - (map profile-manifest profiles))) - (installed (manifest-entries manifest))) - (leave-on-EPIPE - (let ((rows (filter-map - (match-lambda - (($ <manifest-entry> name version output path _) - (and (regexp-exec regexp name) - (list name (or version "?") output path)))) - installed))) - ;; Show most recently installed packages last. - (pretty-print-table (reverse rows))))) + ;; Show most recently installed packages last. + (pretty-print-table (reverse (list-installed regexp profiles))) #t) (('list-available regexp) diff --git a/guix/scripts/shell.scm b/guix/scripts/shell.scm index 004ed7af2e..c115a00320 100644 --- a/guix/scripts/shell.scm +++ b/guix/scripts/shell.scm @@ -390,6 +390,11 @@ return #f and #f." ;; If the user already specified a profile, there's nothing more to ;; cache. (values #f #f)) + ((('export-manifest? . #t) . _) + ;; When exporting a manifest, compute it anew so that '-D' packages + ;; lead to 'package-development-manifest' expressions rather than an + ;; expanded list of inputs. + (values #f #f)) ((('system . system) . rest) (loop rest system file specs)) ((_ . rest) (loop rest system file specs))))) diff --git a/guix/scripts/system.scm b/guix/scripts/system.scm index b9084a401c..bfde0a88ca 100644 --- a/guix/scripts/system.scm +++ b/guix/scripts/system.scm @@ -50,7 +50,8 @@ #:use-module (guix channels) #:use-module (guix scripts build) #:autoload (guix scripts package) (delete-generations - delete-matching-generations) + delete-matching-generations + list-installed) #:autoload (guix scripts pull) (channel-commit-hyperlink) #:autoload (guix graph) (export-graph node-type graph-backend-name lookup-backend) @@ -480,8 +481,10 @@ list of services." ;;; (define* (display-system-generation number - #:optional (profile %system-profile)) - "Display a summary of system generation NUMBER in a human-readable format." + #:optional (profile %system-profile) + #:key (list-installed-regex #f)) + "Display a summary of system generation NUMBER in a human-readable format. +List packages in that system that match LIST-INSTALLED-REGEX." (define (display-channel channel) (format #t " ~a:~%" (channel-name channel)) (format #t (G_ " repository URL: ~a~%") (channel-url channel)) @@ -544,23 +547,35 @@ list of services." (format #t (G_ " configuration file: ~a~%") (if (supports-hyperlinks?) (file-hyperlink config-file) - config-file)))))) - -(define* (list-generations pattern #:optional (profile %system-profile)) + config-file))) + (when list-installed-regex + (format #t (G_ " packages:\n")) + (pretty-print-table (list-installed + list-installed-regex + (list (string-append generation "/profile"))) + #:left-pad 4))))) + +(define* (list-generations pattern #:optional (profile %system-profile) + #:key (list-installed-regex #f)) "Display in a human-readable format all the system generations matching -PATTERN, a string. When PATTERN is #f, display all the system generations." +PATTERN, a string. When PATTERN is #f, display all the system generations. +List installed packages that match LIST-INSTALLED-REGEX." (cond ((not (file-exists? profile)) ; XXX: race condition (raise (condition (&profile-not-found-error (profile profile))))) ((not pattern) - (for-each display-system-generation (profile-generations profile))) + (for-each (cut display-system-generation <> + #:list-installed-regex list-installed-regex) + (profile-generations profile))) ((matching-generations pattern profile) => (lambda (numbers) (if (null-list? numbers) (exit 1) (leave-on-EPIPE - (for-each display-system-generation numbers))))))) + (for-each (cut display-system-generation <> + #:list-installed-regex list-installed-regex) + numbers))))))) ;;; @@ -1032,6 +1047,11 @@ Some ACTIONS support additional ARGS.\n")) use BACKEND for 'extension-graphs' and 'shepherd-graph'")) (newline) (display (G_ " + -I, --list-installed[=REGEXP] + for 'describe' and 'list-generations', list installed + packages matching REGEXP")) + (newline) + (display (G_ " -h, --help display this help and exit")) (display (G_ " -V, --version display version information and exit")) @@ -1135,6 +1155,9 @@ Some ACTIONS support additional ARGS.\n")) (option '("graph-backend") #t #f (lambda (opt name arg result) (alist-cons 'graph-backend arg result))) + (option '(#\I "list-installed") #f #t + (lambda (opt name arg result) + (alist-cons 'list-installed (or arg "") result))) %standard-build-options)) (define %default-options @@ -1322,25 +1345,29 @@ argument list and OPTS is the option alist." ;; The following commands do not need to use the store, and they do not need ;; an operating system configuration file. ((list-generations) - (let ((pattern (match args + (let ((list-installed-regex (assoc-ref opts 'list-installed)) + (pattern (match args (() #f) ((pattern) pattern) (x (leave (G_ "wrong number of arguments~%")))))) - (list-generations pattern))) + (list-generations pattern #:list-installed-regex list-installed-regex))) ((describe) ;; Describe the running system, which is not necessarily the current ;; generation. /run/current-system might point to ;; /var/guix/profiles/system-N-link, or it might point directly to ;; /gnu/store/…-system. Try both. - (match (generation-number "/run/current-system" %system-profile) - (0 - (match (generation-number %system-profile) - (0 - (leave (G_ "no system generation, nothing to describe~%"))) - (generation - (display-system-generation generation)))) - (generation - (display-system-generation generation)))) + (let ((list-installed-regex (assoc-ref opts 'list-installed))) + (match (generation-number "/run/current-system" %system-profile) + (0 + (match (generation-number %system-profile) + (0 + (leave (G_ "no system generation, nothing to describe~%"))) + (generation + (display-system-generation + generation #:list-installed-regex list-installed-regex)))) + (generation + (display-system-generation + generation #:list-installed-regex list-installed-regex))))) ((search) (apply (resolve-subcommand "search") args)) ((edit) diff --git a/guix/upstream.scm b/guix/upstream.scm index 9b49d1641f..cbfd1aa609 100644 --- a/guix/upstream.scm +++ b/guix/upstream.scm @@ -251,13 +251,17 @@ correspond to the same version." #:warn warn-about-load-error))) (define %updaters - ;; The list of publically-known updaters. - (delay (fold-module-public-variables (lambda (obj result) - (if (upstream-updater? obj) - (cons obj result) - result)) - '() - (importer-modules)))) + ;; The list of publically-known updaters, alphabetically sorted. + (delay + (sort (fold-module-public-variables (lambda (obj result) + (if (upstream-updater? obj) + (cons obj result) + result)) + '() + (importer-modules)) + (lambda (updater1 updater2) + (string<? (symbol->string (upstream-updater-name updater1)) + (symbol->string (upstream-updater-name updater2))))))) ;; Tests need to mock this variable so mark it as "non-declarative". (set! %updaters %updaters) diff --git a/guix/utils.scm b/guix/utils.scm index 745da98a79..329ef62dde 100644 --- a/guix/utils.scm +++ b/guix/utils.scm @@ -1124,11 +1124,11 @@ according to THRESHOLD, then #f is returned." ;;; Prettified output. ;;; -(define* (pretty-print-table rows #:key (max-column-width 20)) +(define* (pretty-print-table rows #:key (max-column-width 20) (left-pad 0)) "Print ROWS in neat columns. All rows should be lists of strings and each row should have the same length. The columns are separated by a tab character, and aligned using spaces. The maximum width of each column is -bound by MAX-COLUMN-WIDTH." +bound by MAX-COLUMN-WIDTH. Each row is prefixed with LEFT-PAD spaces." (let* ((number-of-columns-to-pad (if (null? rows) 0 (1- (length (first rows))))) @@ -1143,7 +1143,7 @@ bound by MAX-COLUMN-WIDTH." (map (cut min <> max-column-width) column-widths))) (fmt (string-append (string-join column-formats "\t") "\t~a"))) - (for-each (cut format #t "~?~%" fmt <>) rows))) + (for-each (cut format #t "~v_~?~%" left-pad fmt <>) rows))) ;;; Local Variables: ;;; eval: (put 'call-with-progress-reporter 'scheme-indent-function 1) diff --git a/tests/guix-home.sh b/tests/guix-home.sh index 8a7048a9ca..1d1acbfd6e 100644 --- a/tests/guix-home.sh +++ b/tests/guix-home.sh @@ -79,9 +79,15 @@ trap 'chmod -Rf +w "$test_directory"; rm -rf "$test_directory"' EXIT (guix-defaults? #t) (bashrc (list (local-file "dot-bashrc"))))) + (simple-service 'add-environment-variable + home-environment-variables-service-type + '(("TODAY" . "26 messidor"))) + (simple-service 'home-bash-service-extension-test home-bash-service-type (home-bash-extension + (environment-variables + '(("PS1" . "$GUIX_ENVIRONMENT λ "))) (bashrc (list (plain-file @@ -138,6 +144,8 @@ EOF # dot-bashrc test file for guix home # the content of bashrc-test-config.sh" grep -q "the content of ~/.config/test.conf" "${HOME}/.config/test.conf" + grep '^export PS1="\$GUIX_ENVIRONMENT λ "$' "${HOME}/.bash_profile" + ( . "${HOME}/.guix-home/setup-environment"; test "$TODAY" = "26 messidor" ) # This one should still be here. grep "stay around" "$HOME/.config/random-file" |