summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarius Bakke <marius@gnu.org>2022-07-21 23:52:47 +0200
committerMarius Bakke <marius@gnu.org>2022-07-21 23:52:47 +0200
commitabea091dbef2d44e6eb46bd2413bdf917e14d095 (patch)
tree28f6c61dbda0acb52678944b121b66a6f50a3709
parent3b20467807c32aeac56bbbe22ffb8823f68e282b (diff)
parent3f171587bc6a47bb056f3e699e17e05f5832aea5 (diff)
Merge branch 'master' into staging
-rw-r--r--doc/contributing.texi9
-rw-r--r--doc/guix.texi196
-rw-r--r--gnu/build/chromium-extension.scm18
-rw-r--r--gnu/home/services.scm55
-rw-r--r--gnu/home/services/shells.scm19
-rw-r--r--gnu/local.mk4
-rw-r--r--gnu/packages/admin.scm26
-rw-r--r--gnu/packages/aidc.scm11
-rw-r--r--gnu/packages/algebra.scm4
-rw-r--r--gnu/packages/audio.scm4
-rw-r--r--gnu/packages/bioconductor.scm19
-rw-r--r--gnu/packages/c.scm107
-rw-r--r--gnu/packages/calendar.scm9
-rw-r--r--gnu/packages/chicken.scm51
-rw-r--r--gnu/packages/chromium.scm6
-rw-r--r--gnu/packages/clojure.scm1
-rw-r--r--gnu/packages/commencement.scm9
-rw-r--r--gnu/packages/compression.scm24
-rw-r--r--gnu/packages/diffoscope.scm16
-rw-r--r--gnu/packages/docker.scm6
-rw-r--r--gnu/packages/emacs-xyz.scm101
-rw-r--r--gnu/packages/engineering.scm12
-rw-r--r--gnu/packages/finance.scm122
-rw-r--r--gnu/packages/fribidi.scm4
-rw-r--r--gnu/packages/games.scm40
-rw-r--r--gnu/packages/geo.scm43
-rw-r--r--gnu/packages/gnome.scm38
-rw-r--r--gnu/packages/gps.scm4
-rw-r--r--gnu/packages/gstreamer.scm8
-rw-r--r--gnu/packages/guile-xyz.scm19
-rw-r--r--gnu/packages/hardware.scm4
-rw-r--r--gnu/packages/image-viewers.scm21
-rw-r--r--gnu/packages/image.scm4
-rw-r--r--gnu/packages/irc.scm13
-rw-r--r--gnu/packages/jami.scm2
-rw-r--r--gnu/packages/kde-multimedia.scm17
-rw-r--r--gnu/packages/kde-utils.scm7
-rw-r--r--gnu/packages/linux.scm57
-rw-r--r--gnu/packages/lisp-xyz.scm104
-rw-r--r--gnu/packages/maths.scm37
-rw-r--r--gnu/packages/monitoring.scm61
-rw-r--r--gnu/packages/music.scm4
-rw-r--r--gnu/packages/networking.scm30
-rw-r--r--gnu/packages/node-xyz.scm243
-rw-r--r--gnu/packages/package-management.scm12
-rw-r--r--gnu/packages/patches/containerd-create-pid-file.patch31
-rw-r--r--gnu/packages/patches/libgeotiff-adapt-test-script-for-proj-6.2.patch63
-rw-r--r--gnu/packages/plotutils.scm4
-rw-r--r--gnu/packages/python-science.scm4
-rw-r--r--gnu/packages/python-web.scm74
-rw-r--r--gnu/packages/python-xyz.scm52
-rw-r--r--gnu/packages/qt.scm143
-rw-r--r--gnu/packages/slang.scm92
-rw-r--r--gnu/packages/sqlite.scm6
-rw-r--r--gnu/packages/tex.scm48
-rw-r--r--gnu/packages/text-editors.scm15
-rw-r--r--gnu/packages/toys.scm41
-rw-r--r--gnu/packages/version-control.scm37
-rw-r--r--gnu/packages/video.scm18
-rw-r--r--gnu/packages/vpn.scm4
-rw-r--r--gnu/packages/web.scm18
-rw-r--r--gnu/packages/wm.scm57
-rw-r--r--gnu/packages/xfce.scm24
-rw-r--r--gnu/packages/xorg.scm4
-rw-r--r--gnu/services/docker.scm5
-rw-r--r--gnu/services/guix.scm2
-rw-r--r--gnu/services/networking.scm47
-rw-r--r--gnu/system.scm1
-rw-r--r--gnu/tests/guix.scm21
-rw-r--r--guix/import/egg.scm9
-rw-r--r--guix/import/pypi.scm8
-rw-r--r--guix/import/texlive.scm20
-rw-r--r--guix/import/utils.scm2
-rw-r--r--guix/monad-repl.scm64
-rw-r--r--guix/scripts/home.scm64
-rw-r--r--guix/scripts/import/texlive.scm25
-rw-r--r--guix/scripts/package.scm33
-rw-r--r--guix/scripts/shell.scm5
-rw-r--r--guix/scripts/system.scm67
-rw-r--r--guix/upstream.scm18
-rw-r--r--guix/utils.scm6
-rw-r--r--tests/guix-home.sh8
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"