summaryrefslogtreecommitdiff
path: root/etc
diff options
context:
space:
mode:
authorMaxim Cournoyer <maxim.cournoyer@gmail.com>2022-01-25 22:07:13 -0500
committerMaxim Cournoyer <maxim.cournoyer@gmail.com>2022-01-25 22:07:13 -0500
commit1a5302435ff0d2822b823f5a6fe01faa7a85c629 (patch)
treeac7810c88b560532f22d2bab2e59609cd7305c21 /etc
parent3ff2ac4980dacf10087e4b42bd9fbc490591900c (diff)
parent070b8a893febd6e7d8b2b7c8c4dcebacf7845aa9 (diff)
Merge branch 'master' into staging.
With "conflicts" solved (all in favor of master except git) in: gnu/local.mk gnu/packages/databases.scm gnu/packages/glib.scm gnu/packages/gnome.scm gnu/packages/gnupg.scm gnu/packages/gnuzilla.scm gnu/packages/graphics.scm gnu/packages/gstreamer.scm gnu/packages/gtk.scm gnu/packages/linux.scm gnu/packages/machine-learning.scm gnu/packages/networking.scm gnu/packages/polkit.scm gnu/packages/pulseaudio.scm gnu/packages/rpc.scm gnu/packages/rust.scm gnu/packages/version-control.scm gnu/packages/w3m.scm
Diffstat (limited to 'etc')
-rwxr-xr-xetc/committer.scm.in7
-rw-r--r--etc/completion/bash/guix88
-rw-r--r--etc/completion/zsh/_guix1
-rw-r--r--etc/disarchive-manifest.scm2
-rw-r--r--etc/git/gitconfig5
-rw-r--r--etc/guix-daemon.cil.in3
-rwxr-xr-xetc/guix-install.sh20
-rwxr-xr-xetc/indent-code.el120
-rw-r--r--etc/news.scm396
-rw-r--r--etc/release-manifest.scm9
-rw-r--r--etc/snippets/text-mode/guix-commit-message-update-package2
11 files changed, 480 insertions, 173 deletions
diff --git a/etc/committer.scm.in b/etc/committer.scm.in
index 1ad83e37d7..5a57d51577 100755
--- a/etc/committer.scm.in
+++ b/etc/committer.scm.in
@@ -215,7 +215,12 @@ corresponding to the top-level definition containing the staged changes."
"Print ChangeLog commit message for changes between OLD and NEW."
(define (get-values expr field)
(match ((sxpath `(// ,field quasiquote *)) expr)
- (() '())
+ (()
+ ;; New-style plain lists
+ (match ((sxpath `(// ,field list *)) expr)
+ ((inner) inner)
+ (_ '())))
+ ;; Old-style labelled inputs
((first . rest)
(map cadadr first))))
(define (listify items)
diff --git a/etc/completion/bash/guix b/etc/completion/bash/guix
index a9386e7794..6b1b70aac1 100644
--- a/etc/completion/bash/guix
+++ b/etc/completion/bash/guix
@@ -1,5 +1,5 @@
# GNU Guix --- Functional package management for GNU
-# Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
+# Copyright © 2015-2022 Ludovic Courtès <ludo@gnu.org>
# Copyright © 2021 Tobias Geerinck-Rice <me@tobias.gr>
#
# This file is part of GNU Guix.
@@ -28,11 +28,12 @@ _guix_complete_command ()
if [ -z "$_guix_commands" ]
then
# Cache the list of commands to speed things up.
- _guix_commands="$(guix --help 2> /dev/null \
+ _guix_commands="$(${COMP_WORDS[0]} --help 2> /dev/null \
| grep '^ ' \
| sed '-es/^ *\([a-z-]\+\).*$/\1/g')"
fi
- COMPREPLY=($(compgen -W "$_guix_commands" -- "$word_at_point"))
+
+ COMPREPLY+=($(compgen -W "$_guix_commands" -- "$word_at_point"))
}
_guix_complete_subcommand ()
@@ -41,7 +42,7 @@ _guix_complete_subcommand ()
local subcommands="$(${COMP_WORDS[0]} $command --help 2> /dev/null \
| grep '^ [a-z]' \
| sed -e's/^ \+\([a-z-]\+\).*$/\1/g')"
- COMPREPLY=($(compgen -W "$subcommands" -- "${COMP_WORDS[$COMP_CWORD]}"))
+ COMPREPLY+=($(compgen -W "$subcommands" -- "${COMP_WORDS[$COMP_CWORD]}"))
}
_guix_complete_available_package ()
@@ -54,7 +55,7 @@ _guix_complete_available_package ()
_guix_available_packages="$(${COMP_WORDS[0]} package -A 2> /dev/null \
| cut -f1)"
fi
- COMPREPLY=($(compgen -W "$_guix_available_packages" -- "$prefix"))
+ COMPREPLY+=($(compgen -W "$_guix_available_packages" -- "$prefix"))
}
_guix_complete_installed_package ()
@@ -64,22 +65,28 @@ _guix_complete_installed_package ()
local prefix="$1"
local packages="$(${COMP_WORDS[0]} package -I "^$prefix" 2> /dev/null \
| cut -f1)"
- COMPREPLY=($(compgen -W "$packages" -- "$prefix"))
+ COMPREPLY+=($(compgen -W "$packages" -- "$prefix"))
}
_guix_complete_option ()
{
local command="${COMP_WORDS[$1]}"
local subcommand="${COMP_WORDS[$(($1 + 1))]}"
- if _guix_is_option "$subcommand"
+
+ if [ $1 -eq 0 ]
+ then
+ command=""
+ subcommand=""
+ elif _guix_is_option "$subcommand"
then
subcommand=""
fi
+
local options="$(${COMP_WORDS[0]} $command $subcommand --help 2> /dev/null \
| grep '^ \+-' \
| sed -e's/^.*--\([a-zA-Z0-9_-]\+\)\(=\?\).*/--\1\2/g')"
compopt -o nospace
- COMPREPLY=($(compgen -W "$options" -- "$2"))
+ COMPREPLY+=($(compgen -W "$options" -- "$2"))
}
_guix_is_option ()
@@ -171,10 +178,22 @@ _guix_complete_file ()
COMPREPLY=()
}
+_guix_complete_available_package_or_store_file ()
+{
+ _guix_complete_available_package "$@"
+
+ # The current _guix_complete_file implementation doesn't compose (append to
+ # COMPREPLY), so we suggest file names only if no package names matched.
+ if [[ -z "$COMPREPLY" ]]
+ then
+ _guix_complete_file # TODO: restrict to store files
+ fi
+}
+
_guix_complete_pid ()
{
local pids="$(cd /proc; echo [0-9]*)"
- COMPREPLY=($(compgen -W "$pids" -- "$1"))
+ COMPREPLY+=($(compgen -W "$pids" -- "$1"))
}
_guix_complete ()
@@ -203,7 +222,7 @@ _guix_complete ()
if [[ "$word" = "--" ]]
then
case "$command" in
- environment)
+ environment|shell)
break
;;
time-machine)
@@ -216,6 +235,7 @@ _guix_complete ()
case $COMP_CWORD in
$command_index)
_guix_complete_command
+ _guix_complete_option 0 "$word_at_point"
;;
*)
if [[ "$command" = "package" ]]
@@ -237,15 +257,7 @@ _guix_complete ()
else
_guix_complete_available_package "$word_at_point"
fi
- elif [[ "$command" = "remove" ]]
- then
- if _guix_is_dash_L || _guix_is_dash_m || _guix_is_dash_p
- then
- _guix_complete_file
- else
- _guix_complete_installed_package "$word_at_point"
- fi
- elif [[ "$command" = "upgrade" ]]
+ elif [[ "$command" = "upgrade" || "$command" = "remove" ]]
then
if _guix_is_dash_L || _guix_is_dash_m || _guix_is_dash_p
then
@@ -259,26 +271,33 @@ _guix_complete ()
then
_guix_complete_file
else
- _guix_complete_available_package "$word_at_point"
+ _guix_complete_available_package_or_store_file "$word_at_point"
fi
- elif [[ "$command" = "environment" ]]
+ elif [[ "$command" = "environment" || "$command" = "shell" ]]
then
- if _guix_is_dash_L || _guix_is_dash_m || _guix_is_dash_p || _guix_is_dash_l
- then
- _guix_complete_file
+ if _guix_is_dash_f && [[ "$command" = "shell" ]]
+ then
+ # The otherwise identical ‘guix environment’ lacks the ‘-f’ option.
+ _guix_complete_file
+ elif _guix_is_dash_L || _guix_is_dash_m || _guix_is_dash_p || _guix_is_dash_l
+ then
+ _guix_complete_file
elif _guix_is_option "$word_at_point"
then
_guix_complete_option "$command_index" "$word_at_point"
else
_guix_complete_available_package "$word_at_point"
fi
- elif [[ "$command" = "download" ]]
+ elif [[ "$command" = "download" || "$command" = "gc" || "$command" = "hash" ]]
+ then
+ _guix_complete_file
+ elif [[ "$command" = "size" ]]
then
- _guix_complete_file
- elif [[ "$command" = "system" ]]
+ _guix_complete_available_package_or_store_file "$word_at_point"
+ elif [[ "$command" = "system" || "$command" = "home" ]]
then
- case $COMP_CWORD in
- 2) _guix_complete_subcommand;;
+ case $((COMP_CWORD - command_index)) in
+ 1) _guix_complete_subcommand;;
*) _guix_complete_file;; # TODO: restrict to *.scm
esac
elif [[ "$command" = "pull" ]]
@@ -297,22 +316,21 @@ _guix_complete ()
fi
elif [[ "$command" = "container" ]]
then
- case $COMP_CWORD in
- 2) _guix_complete_subcommand;;
- 3) _guix_complete_pid "$word_at_point";;
+ case $((COMP_CWORD - command_index)) in
+ 1) _guix_complete_subcommand;;
+ 2) _guix_complete_pid "$word_at_point";;
*) _guix_complete_file;;
esac
elif [[ "$command" = "import" ]]
then
_guix_complete_subcommand
- elif [[ "$command" = "hash" || "$command" = "gc" ]]
- then
- _guix_complete_file
elif [[ "$command" = "weather" ]]
then
if _guix_is_dash_m
then
_guix_complete_file
+ else
+ _guix_complete_available_package "$word_at_point"
fi
else
_guix_complete_available_package "$word_at_point"
diff --git a/etc/completion/zsh/_guix b/etc/completion/zsh/_guix
index bbc13c6ca1..9b1f16c664 100644
--- a/etc/completion/zsh/_guix
+++ b/etc/completion/zsh/_guix
@@ -58,6 +58,7 @@ _guix_list_available_packages()
if ( [[ ${+_guix_available_packages} -eq 0 ]] || _cache_invalid GUIX_AVAILABLE_PACKAGES ) \
&& ! _retrieve_cache GUIX_AVAILABLE_PACKAGES; then
_guix_available_packages=(${${(f)"$(guix package -A | cut -f1)"}})
+ _guix_available_packages=("${_guix_available_packages[@]// /}")
_store_cache GUIX_AVAILABLE_PACKAGES _guix_available_packages
fi
}
diff --git a/etc/disarchive-manifest.scm b/etc/disarchive-manifest.scm
index 5cc59f5e2a..60edee8eac 100644
--- a/etc/disarchive-manifest.scm
+++ b/etc/disarchive-manifest.scm
@@ -108,5 +108,5 @@ an empty directory if ORIGIN could not be disassembled."
(manifest
(list (manifest-entry
(name "disarchive-collection")
- (version (length origins))
+ (version (number->string (length origins)))
(item (disarchive-collection origins))))))
diff --git a/etc/git/gitconfig b/etc/git/gitconfig
new file mode 100644
index 0000000000..c9ebdc8fa8
--- /dev/null
+++ b/etc/git/gitconfig
@@ -0,0 +1,5 @@
+[diff "scheme"]
+ xfuncname = "^(\\(define.*)$"
+
+[diff "texinfo"]
+ xfuncname = "^@node[[:space:]]+([^,]+).*$"
diff --git a/etc/guix-daemon.cil.in b/etc/guix-daemon.cil.in
index c9f4e3186d..2ba02d1655 100644
--- a/etc/guix-daemon.cil.in
+++ b/etc/guix-daemon.cil.in
@@ -302,6 +302,9 @@
(allow guix_daemon_t
guix_daemon_conf_t
(lnk_file (create getattr rename unlink read)))
+ (allow guix_daemon_t
+ guix_daemon_conf_t
+ (sock_file (write)))
(allow guix_daemon_t net_conf_t
(file (getattr open read)))
(allow guix_daemon_t net_conf_t
diff --git a/etc/guix-install.sh b/etc/guix-install.sh
index b0d4a8b95e..cd1a1c34c1 100755
--- a/etc/guix-install.sh
+++ b/etc/guix-install.sh
@@ -345,11 +345,11 @@ sys_create_store()
mv "${tmp_path}/gnu" /
_msg "${INF}Linking the root user's profile"
- mkdir -p "~root/.config/guix"
+ mkdir -p ~root/.config/guix
ln -sf /var/guix/profiles/per-user/root/current-guix \
- "~root/.config/guix/current"
+ ~root/.config/guix/current
- GUIX_PROFILE="~root/.config/guix/current"
+ GUIX_PROFILE=~root/.config/guix/current
# shellcheck disable=SC1090
source "${GUIX_PROFILE}/etc/profile"
_msg "${PAS}activated root profile at ${GUIX_PROFILE}"
@@ -405,7 +405,7 @@ sys_enable_guix_daemon()
case "$INIT_SYS" in
upstart)
{ initctl reload-configuration;
- cp "~root/.config/guix/current/lib/upstart/system/guix-daemon.conf" \
+ cp ~root/.config/guix/current/lib/upstart/system/guix-daemon.conf \
/etc/init/ &&
configure_substitute_discovery /etc/init/guix-daemon.conf &&
start guix-daemon; } &&
@@ -415,15 +415,15 @@ sys_enable_guix_daemon()
{ # systemd .mount units must be named after the target directory.
# Here we assume a hard-coded name of /gnu/store.
# XXX Work around <https://issues.guix.gnu.org/41356> until next release.
- if [ -f "~root/.config/guix/current/lib/systemd/system/gnu-store.mount" ]; then
- cp "~root/.config/guix/current/lib/systemd/system/gnu-store.mount" \
+ if [ -f ~root/.config/guix/current/lib/systemd/system/gnu-store.mount ]; then
+ cp ~root/.config/guix/current/lib/systemd/system/gnu-store.mount \
/etc/systemd/system/;
chmod 664 /etc/systemd/system/gnu-store.mount;
systemctl daemon-reload &&
systemctl enable gnu-store.mount;
fi
- cp "~root/.config/guix/current/lib/systemd/system/guix-daemon.service" \
+ cp ~root/.config/guix/current/lib/systemd/system/guix-daemon.service \
/etc/systemd/system/;
chmod 664 /etc/systemd/system/guix-daemon.service;
@@ -447,7 +447,7 @@ sys_enable_guix_daemon()
;;
sysv-init)
{ mkdir -p /etc/init.d;
- cp "~root/.config/guix/current/etc/init.d/guix-daemon" \
+ cp ~root/.config/guix/current/etc/init.d/guix-daemon \
/etc/init.d/guix-daemon;
chmod 775 /etc/init.d/guix-daemon;
@@ -460,7 +460,7 @@ sys_enable_guix_daemon()
;;
openrc)
{ mkdir -p /etc/init.d;
- cp "~root/.config/guix/current/etc/openrc/guix-daemon" \
+ cp ~root/.config/guix/current/etc/openrc/guix-daemon \
/etc/init.d/guix-daemon;
chmod 775 /etc/init.d/guix-daemon;
@@ -492,7 +492,7 @@ sys_authorize_build_farms()
if prompt_yes_no "Permit downloading pre-built package binaries from the \
project's build farm? (yes/no)"; then
guix archive --authorize \
- < "~root/.config/guix/current/share/guix/ci.guix.gnu.org.pub" \
+ < ~root/.config/guix/current/share/guix/ci.guix.gnu.org.pub \
&& _msg "${PAS}Authorized public key for ci.guix.gnu.org"
else
_msg "${INF}Skipped authorizing build farm public keys"
diff --git a/etc/indent-code.el b/etc/indent-code.el
deleted file mode 100755
index bdea8ee8bf..0000000000
--- a/etc/indent-code.el
+++ /dev/null
@@ -1,120 +0,0 @@
-:;exec emacs --batch --quick --load="$0" --funcall=main "$@"
-;;; indent-code.el --- Run Emacs to indent a package definition.
-
-;; Copyright © 2017 Alex Kost <alezost@gmail.com>
-;; Copyright © 2017 Ludovic Courtès <ludo@gnu.org>
-;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
-;; Copyright © 2020 Tobias Geerinckx-Rice <me@tobias.gr>
-
-;; This file is part of GNU Guix.
-
-;; GNU Guix is free software; you can redistribute it and/or modify
-;; it under the terms of the GNU General Public License as published by
-;; the Free Software Foundation, either version 3 of the License, or
-;; (at your option) any later version.
-
-;; GNU Guix is distributed in the hope that it will be useful,
-;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-;; GNU General Public License for more details.
-
-;; You should have received a copy of the GNU General Public License
-;; along with this program. If not, see <http://www.gnu.org/licenses/>.
-
-;;; Commentary:
-
-;; This scripts indents the given file or package definition in the specified
-;; file using Emacs.
-
-;;; Code:
-
-;; Load Scheme indentation rules from ".dir-locals.el".
-(with-temp-buffer
- (scheme-mode)
- (let ((default-directory (file-name-as-directory load-file-name))
- (enable-local-variables :all))
- (hack-dir-local-variables)
- (hack-local-variables-apply)))
-
-;; Add indentation info for Scheme constructs that are not Guix-specific.
-;; This is normally provided by Geiser but this file is for people who may not
-;; be running Geiser, so we just copy it here (from 'geiser-syntax.el').
-(defmacro guix-syntax--scheme-indent (&rest pairs)
- `(progn ,@(mapcar (lambda (p)
- `(put ',(car p) 'scheme-indent-function ',(cadr p)))
- pairs)))
-
-(guix-syntax--scheme-indent
- (and-let* 1)
- (case-lambda 0)
- (catch defun)
- (class defun)
- (dynamic-wind 0)
- (guard 1)
- (let*-values 1)
- (let-values 1)
- (let/ec 1)
- (letrec* 1)
- (match 1)
- (match-lambda 0)
- (match-lambda* 0)
- (match-let scheme-let-indent)
- (match-let* 1)
- (match-letrec 1)
- (opt-lambda 1)
- (parameterize 1)
- (parameterize* 1)
- (receive 2)
- (require-extension 0)
- (syntax-case 2)
- (test-approximate 1)
- (test-assert 1)
- (test-eq 1)
- (test-equal 1)
- (test-eqv 1)
- (test-group-with-cleanup 1)
- (test-runner-on-bad-count! 1)
- (test-runner-on-bad-end-name! 1)
- (test-runner-on-final! 1)
- (test-runner-on-group-begin! 1)
- (test-runner-on-group-end! 1)
- (test-runner-on-test-begin! 1)
- (test-runner-on-test-end! 1)
- (test-with-runner 1)
- (unless 1)
- (when 1)
- (while 1)
- (with-exception-handler 1)
- (with-syntax 1))
-
-
-(defun main ()
- (pcase command-line-args-left
- (`(,file-name ,package-name)
- ;; Indent the definition of PACKAGE-NAME in FILE-NAME.
- (find-file file-name)
- (goto-char (point-min))
- (if (re-search-forward (concat "^(define\\(\\|-public\\) +"
- package-name)
- nil t)
- (let ((indent-tabs-mode nil))
- (beginning-of-defun)
- (mark-sexp)
- (untabify (point) (mark))
- (indent-sexp)
- (save-buffer)
- (message "Done!"))
- (error "Package '%s' not found in '%s'"
- package-name file-name)))
- (`(,file-name)
- ;; Indent all of FILE-NAME.
- (find-file file-name)
- (let ((indent-tabs-mode nil))
- (untabify (point-min) (point-max))
- (indent-region (point-min) (point-max))
- (save-buffer)
- (message "Done!")))
- (x
- (error "Usage: indent-code.el FILE [PACKAGE]"))))
-
-;;; indent-code.el ends here
diff --git a/etc/news.scm b/etc/news.scm
index 47b4437426..7e6da61c71 100644
--- a/etc/news.scm
+++ b/etc/news.scm
@@ -1,11 +1,11 @@
;; GNU Guix news, for use by 'guix pull'.
;;
-;; Copyright © 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
+;; Copyright © 2019-2022 Ludovic Courtès <ludo@gnu.org>
;; Copyright © 2019–2021 Tobias Geerinckx-Rice <me@tobias.gr>
;; Copyright © 2019, 2020 Miguel Ángel Arruga Vivas <rosen644835@gmail.com>
;; Copyright © 2019, 2020 Konrad Hinsen <konrad.hinsen@fastmail.net>
;; Copyright © 2019, 2020, 2021 Julien Lepiller <julien@lepiller.eu>
-;; Copyright © 2019, 2020, 2021 Florian Pelz <pelzflorian@pelzflorian.de>
+;; Copyright © 2019–2022 Florian Pelz <pelzflorian@pelzflorian.de>
;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
;; Copyright © 2020, 2021 Mathieu Othacehe <m.othacehe@gmail.com>
;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
@@ -16,6 +16,7 @@
;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be>
;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz>
;; Copyright © 2021 Andrew Tropin <andrew@trop.in>
+;; Copyright © 2021 Jonathan Brielmaier <jonathan.brielmaier@web.de>
;;
;; Copying and distribution of this file, with or without modification, are
;; permitted in any medium without royalty provided the copyright notice and
@@ -23,7 +24,312 @@
(channel-news
(version 0)
-(entry (commit "a2324d8b56eabf8117bca220a507cc791edffd2e")
+
+ (entry (commit "c4fe13c294cc1e31dd8a49ce3981f603fb169e0a")
+ (title
+ (en "@command{guix style} can format package definitions")
+ (de "@command{guix style} kann Paketdefinitionen formatieren")
+ (fr "@command{guix style} peut mettre en forme les définitions de paquets"))
+ (body
+ (en "The recently-introduced @command{guix style} command can now be
+used to automatically format package definitions according to the Guix
+project's formatting guidelines. If you contribute packages to Guix or to a
+third-party channel, you may find it useful.
+
+The new @option{--styling} option can currently be passed one of the following
+@dfn{styling rules}: @code{format}, to format package definitions, or
+@code{inputs}, to remove labels from package inputs. Omitting
+@option{--styling} is equivalent to passing @samp{--styling=format};
+previously it was equivalent to @samp{--styling=inputs}.
+
+Run @code{info \"(guix) Invoking guix style\"}, for more info.")
+ (de "Der kürzlich eingeführte Befehl @command{guix style} kann jetzt
+benutzt werden, um Paketdefinitionen automatisch nach den
+Formatierungsrichtlinien des Guix-Projekts zu formatieren. Wenn Sie Pakete zu
+Guix oder zu einem Drittanbieterkanal beitragen, könnte Ihnen das helfen.
+
+Für die neue Befehlszeilenoption @option{--styling} können Sie derzeit eine
+der folgenden @dfn{Stilregeln} angeben: @code{format}, wodurch
+Paketdefinitionen formatiert werden, oder @code{inputs}, wodurch die
+Bezeichnungen aus Paketeingaben entfernt werden. Wenn Sie {--styling}
+weglassen, passiert das Gleiche wie wenn Sie @samp{--styling=format} angeben;
+früher war es das Gleiche wie @samp{--styling=inputs}.
+
+Führen Sie @command{info \"(guix) Invoking guix style\"} aus, um mehr
+Informationen zu erhalten.")
+ (fr "La commande @command{guix style}, récemment introduite, peut
+désormais être utilisée pour mettre en forme des définitions de paquets
+suivant les règles de style du projet Guix. Si vous contribuez des paquets à
+Guix ou à un canal tiers, cela peut vous être utile.
+
+La nouvelle option @option{--style} peut pour le moment recevoir une des deux
+@dfn{règles de style} suivantes : @code{format}, pour mettre en forme les
+définitions de paquet, ou @code{inputs}, pour retirer les étiquettes des
+champs @code{inputs} des paquets. Omettre @option{--styling} revient à passer
+@samp{--styling=format} ; auparavant c'était équivalent à
+@samp{--styling=inputs}.
+
+Lancer @command{info \"(guix.fr) Invoquer guix style\"}, pour plus
+d'informations.")))
+
+ (entry (commit "d090e9c37d693f5a0f381482c17fb03462cb6a48")
+ (title
+ (en "New @option{--tune} option for CPU micro-architecture tuning")
+ (de "Neue Option @option{--tune} ermöglicht mikroarchitekturspezifische Optimierungen")
+ (fr "Nouvelle option @option{--tune} pour optimiser pour une
+micro-architecture"))
+ (body
+ (en "The new @option{--tune} package transformation option instructs
+Guix to tune relevant packages for the micro-architecture of the host CPU.
+This lets the compiler use single-instruction/multiple-data (SIMD)
+instructions beyond the baseline instruction set architecture (ISA), which can
+noticeably improve performance in some cases such as linear algebra code.
+
+As an example, here is how you would install the GNU Astronomy Utilities
+against an optimized variant of the GNU Scientific Library (GSL):
+
+@example
+guix install gnuastro --tune
+@end example
+
+Run @command{info \"(guix) Package Transformation Options\"} for more
+information.")
+ (de "Die neue Paketumwandlungsoption @option{--tune} lässt Guix die
+betroffenen Pakete an die im Prozessor dieses Rechners benutzte
+Mikroarchitektur anpassen. Dadurch kann der Compiler Befehle für
+Single-Instruction/Multiple-Data (SIMD) einsetzen, die über den gemeinsamen
+Befehlssatz hinausgehen. Das kann in manchen Fällen die Leistung beträchtlich
+steigern, etwa für Berechnungen der linearen Algebra.
+
+Zum Beispiel würden Sie so die GNU-Astronomieprogramme unter Nutzung einer
+optimierten Variante der GNU Scientific Library (GSL) installieren:
+
+@example
+guix install gnuastro --tune
+@end example
+
+Führen Sie für mehr Informationen @command{info \"(guix.de)
+Paketumwandlungsoptionen\"} aus.")
+ (fr "La nouvelle option de transformation de paquets @option{--tune}
+demande à Guix d'optimiser les paquets pour lesquels c'est pertinent pour la
+micro-architecture du processeur hôte. Cela permet au compilateur d'utiliser
+des instructions vectorielles (SIMD) en plus des instructions de base de
+l'architecture, ce qui peut sensiblement améliorer les performance dans
+certains cas tels que pour du code d'algèbre linéaire.
+
+Par exemple, voici comment installer les Utilitaires d'astronomie GNU de
+manière à ce qu'ils utilisent une variante optimisée de la Bibliothèque
+scientifique GNU (GSL) :
+
+@example
+guix install gnuastro --tune
+@end example
+
+Lancer @command{info \"(guix.fr) Options de transformation de paquets\"} pour
+plus d'informations.")))
+
+ (entry (commit "ea2fd313d52dc62593b478acf5c3e7ea052c45de")
+ (title
+ (en "@samp{integer expected from stream}? Update your Guix daemon")
+ (de "@samp{integer expected from stream}? Aktualisieren Sie Ihren Guix-Daemon")
+ (nl "@samp{integer expected from stream}? Werk je Guix daemon bij"))
+ (body
+ (en "We recently fixed a bug where substitution would fail with
+@samp{error: integer expected from stream}. Be sure to update your system's
+Guix package that provides the @command{guix-daemon} if you haven't done so
+recently. Run @command{info \"(guix) Upgrading Guix\"} for instructions.")
+ (de "Unlängst haben wir einen Fehler behoben, dass die Substitution
+mit der Fehlermeldung @samp{error: integer expected from stream}
+fehlschlägt. Bitte aktualisieren Sie daher Ihr systemweites Guix-Paket, das
+@command{guix-daemon} zur Verfügung stellt, wenn es noch nicht geschehen
+ist. Führen Sie @command{info \"(guix.de) Aktualisieren von Guix\"} aus für
+genaue Anweisungen.")
+ (nl "Onlangs herstelden we een fout waarbij substitutie mislukt met
+een @samp{error: integer expected from stream}. Werk zeker je systeemwijde
+Guix-pakket bij, dat de @command{guix-daemon} levert, als dat nog niet is
+gebeurd. Voer @command{info \"(guix) Upgrading Guix\"} uit voor meer uitleg.")))
+
+ (entry (commit "223f1b1eb3707f1d3ef91200dd616ee6c8b77db0")
+ (title
+ (en "Improved static networking support on Guix System")
+ (de "Bessere Unterstützung für statische Netzwerkanbindungen auf Guix System")
+ (fr "Meilleure prise en charge des réseaux statiques sur Guix System"))
+ (body
+ (en "Support for declarative static networking setup on Guix System
+has been improved. It now allows you to list IPv4 and IPv6 addresses in
+routes in a flexible way, similar to what you would do with the @command{ip}
+command, but in a declarative fashion, as in this example:
+
+@lisp
+;; Static networking for one NIC, IPv4-only.
+(service static-networking-service-type
+ (list (static-networking
+ (addresses
+ (list (network-address
+ (device \"eno1\")
+ (value \"10.0.2.15/24\"))))
+ (routes
+ (list (network-route
+ (destination \"default\")
+ (gateway \"10.0.2.2\"))))
+ (name-servers '(\"10.0.2.3\")))))
+@end lisp
+
+The @code{static-networking-service} procedure remains available but is
+deprecated. Run @command{info \"(guix) Networking Setup\"} for more
+information.")
+ (de "Die deklarative Konfiguration für statische Netzwerkanbindungen
+auf Guix System wurde verbessert. Sie können jetzt die IPv4- und
+IPv6-Adressen in Routen flexibel auflisten, ähnlich wie Sie es mit dem
+@command{ip}-Befehl tun würden, aber auf deklarative Weise wie in diesem
+Beispiel:
+
+@lisp
+;; Statische Netzwerkkonfiguration mit einer Netzwerkkarte, nur IPv4.
+(service static-networking-service-type
+ (list (static-networking
+ (addresses
+ (list (network-address
+ (device \"eno1\")
+ (value \"10.0.2.15/24\"))))
+ (routes
+ (list (network-route
+ (destination \"default\")
+ (gateway \"10.0.2.2\"))))
+ (name-servers '(\"10.0.2.3\")))))
+@end lisp
+
+Die Prozedur @code{static-networking-service} gibt es noch, aber sie gilt als
+veraltet. Führen Sie @command{info \"(guix) Networking Setup\"} aus für
+weitere Informationen.")
+ (fr "La configuration déclarative et statique du réseau est mieux
+prise en charge sur Guix System. Il est maintenant possible d'énumérer des
+adresses IPv6 et IPv4 et les chemins avec plus de flexibilité, un peu comme ce
+qu'on peut faire avec la commande @command{ip} mais de manière déclarative,
+comme dans cet exemple :
+
+@lisp
+;; Réseau statique à une seule interface, IPv4 seulement.
+(service static-networking-service-type
+ (list (static-networking
+ (addresses
+ (list (network-address
+ (device \"eno1\")
+ (value \"10.0.2.15/24\"))))
+ (routes
+ (list (network-route
+ (destination \"default\")
+ (gateway \"10.0.2.2\"))))
+ (name-servers '(\"10.0.2.3\")))))
+@end lisp
+
+La procédure @code{static-networking-service} reste disponible mais elle est
+obsolète. Lancer @command{info \"(guix) Networking Setup\"} pour plus
+d'informations.")))
+
+ (entry (commit "52cb5cf5b852117b5151a67af187d80764849ad3")
+ (title
+ (en "Icedove 91: profile folder moved to @file{~/.thunderbird}")
+ (de "Icedove 91: Profilordner jetzt unter @file{~/.thunderbird}"))
+ (body
+ (en "Icedove 91 expects your profile folder under @file{~/.thunderbird}.
+You need to manually copy your Icedove profiles from @file{~/.icedove} to
+@file{~./thunderbird}. It may be required to start Icedove with
+@option{--ProfileManager} for the first time after the migration.")
+ (de "Icedove 91 erwartet Ihren Profilordner unter @file{~/.thunderbird}.
+Dafür müssen sie Ihre Icedove-Profile von @file{~/.icedove} nach
+@file{~/.thunderbird} kopieren. Eventuell muss Icedove das erste Mal nach der
+Migration mit @option{--ProfileManager} gestartet werden.")))
+
+ (entry (commit "746584e0ca200e7bf51b139ceb36c19ea81d6ef1")
+ (title
+ (en "New @command{guix shell} command supersedes @command{guix
+environment}")
+ (de "Neuer Befehl @command{guix shell} löst @command{guix
+environment} ab")
+ (fr "Nouvelle commande @command{guix shell} en remplacement de
+@command{guix environment}"))
+ (body
+ (en "A new @command{guix shell} command is now available. It is
+similar to @command{guix environment}, but with a more convenient interface
+(@command{guix environment} is deprecated but will remain available until May,
+1st 2023). The main difference compared to @command{guix environment} is that
+the \"ad hoc\" mode is the default. Thus, to create an interactive
+environment containing Python, NumPy, and SciPy, you would run:
+
+@example
+guix shell python python-numpy python-scipy
+@end example
+
+To get a development environment for, say, Inkscape, pass the @option{-D}
+flag:
+
+@example
+guix shell -D inkscape
+@end example
+
+Another difference is that running @command{guix shell} without arguments
+loads @file{manifest.scm} or @file{guix.scm} for the current directory or an
+ancestor, provided you allowed it. The command maintains a cache to speed up
+access to such environments.
+
+Run @command{info \"(guix) Invoking guix shell\"} for more information.")
+ (de "Ein neuer Befehl @command{guix shell} ist ab jetzt
+verfügbar. Er ähnelt @command{guix environment}, ist aber leichter zu
+benutzen (@command{guix environment} gilt als veraltet, bleibt aber
+bis zum 1.@: Mai 2023 verfügbar). Der größte Unterschied ist, dass das
+Verhalten mit @option{--ad-hoc} nun der Normalfall ist. D.h.@: um eine
+interaktive Umgebung mit Python, NumPy und SciPy zu bekommen, lautet
+der Befehl:
+
+@example
+guix shell python python-numpy python-scipy
+@end example
+
+Wenn Sie eine Entwicklungsumgebung für, sagen wir, Inkscape schaffen
+wollen, übergeben Sie die Option @option{-D}:
+
+@example
+guix shell -D inkscape
+@end example
+
+Noch ein Unterschied ist, dass wenn Sie @command{guix shell} ohne
+Argumente ausführen, @file{manifest.scm} oder @file{guix.scm} aus dem
+aktuellen Arbeitsverzeichnis oder einem übergeordneten Verzeichnis
+geladen wird, wenn Sie die Berechtigung dazu erteilt haben. Für den
+Befehl wird ein Zwischenspeicher vorgehalten, damit Sie schneller auf
+solche Umgebungen zugreifen können.
+
+Führen Sie @command{info \"(guix) Invoking guix shell\"} aus, um mehr
+zu erfahren.")
+ (fr "Une nouvelle commande, @command{guix shell}, est maintenant
+disponible. Elle est similaire à @command{guix environment}, mais avec une
+interface plus pratique (@command{guix environment} est désuet mais restera
+disponible jusqu'au 1er mai 2023). La principale différence par rapport à
+@command{guix environment} est que le mode par défaut est le mode \"ad hoc\".
+Pour créer un environnement interactif contenant Python, NumPy et SciPy, il
+faut donc lancer :
+
+@example
+guix shell python python-numpy python-scipy
+@end example
+
+Pour obtenir un environnement de développement pour Inkscape, par exemple,
+passer l'option @option{-D} :
+
+@example
+guix shell -D inkscape
+@end example
+
+Une autre différence est qu'en lançant @command{guix shell} sans argument, le
+fichier @file{manifest.scm} ou @file{guix.scm} du répertoire courant ou d'un
+parent est automatiquement chargé, à condition de l'avoir autorisé. La
+commande garde un cache pour accélérer l'accès à ces environnements.
+
+Lancer @command{info \"(guix.fr) Invoquer guix shell\"} pour plus
+d'informations.")))
+
+ (entry (commit "a2324d8b56eabf8117bca220a507cc791edffd2e")
(title
(en "Guix Home is a part of GNU Guix")
(de "Guix Home ist jetzt Teil von GNU Guix")
@@ -155,6 +461,90 @@ Ce recours à Software Heritage fonctionne aussi pour les autres clones Git que
Guix peut faire, comme lorsqu'on utilise @option{--with-commit} et les options
de transformation de paquet similaires.")))
+ (entry (commit "db4681a4c17d282a661552f2f57e5c453d02e414")
+ (title
+ (en "@code{gdm-service-type} now supports Wayland")
+ (de "@code{gdm-service-type} bietet nun Unterstützung für Wayland")
+ (fr "@code{gdm-service-type} prend maintenant en charge Wayland"))
+ (body
+ (en "@code{gdm-service-type} has been updated to support being launched
+as a Wayland client, and to launch Wayland sessions. The @code{wayland?} boolean
+field in @code{gdm-configuration} controls whether GDM starts in Wayland or X
+mode. See @command{info \"(guix) X Window\"} for more information.
+
+Wayland mode for GDM will soon become the default in Guix, so if your
+hardware doesn't support Wayland (Nvidia users are the most concerned here),
+please consider disabling it now.")
+ (de "@code{gdm-service-type} wurde um Unterstützung dafür
+aktualisiert, als Wayland-Client gestartet zu werden und Wayland-Sitzungen zu
+starten. Der Boolesche Wert im Feld @code{wayland?} in
+@code{gdm-configuration} bestimmt, ob GDM im Wayland- oder X-Modus gestartet
+wird. Siehe @command{info \"(guix.de) X Window\"} für weitere Informationen.
+
+Bald wird der Wayland-Modus für GDM die Vorgabeeinstellung in Guix werden,
+daher sollten Sie, wenn Ihre Hardware kein Wayland unterstützt (Nvidia-Nutzer
+betrifft dies am ehesten), ihn jetzt ausdrücklich abschalten.")
+ (fr "@code{gdm-service-type} a été mis à jour et peut maintenant être
+lancé comme client Wayland, ainsi que lancer des sessions Wayland. Le champ
+booléen @code{wayland?} de @code{gdm-configuration} contrôle le mode dans lequel
+GDM est lancé (Wayland ou X). Pour plus d'informations, voir
+@command{info \"(guix) X Window\"} (en anglais).
+
+GDM sera bientôt lancé en mode Wayland par défaut sur Guix, donc si votre matériel
+ne le prend pas en charge (les utilisateur·ices de cartes Nvidia sont les plus
+concerné·es), merci de le désactiver dès maintenant.")))
+
+ (entry (commit "f23803af2018a148fb088f2516d79c20d6bf95f0")
+ (title
+ (en "Input labels can now be omitted in package definitions")
+ (de "Eingaben in Paketdefinitionen brauchen keine Bezeichnungen mehr"))
+ (body
+ (en "If you have written package definitions before, you may know
+that package inputs required a bit of boilerplate: each input needs to have an
+associated label (a string), which you can refer to in ``build-side code''.
+
+Input labels are now unnecessary, meaning that you can write code like:
+
+@lisp
+(package
+ ;; @dots{}
+ (inputs (list libunistring libffi libgc)))
+@end lisp
+
+Notice that the @code{inputs} field is simplified compared to the ``old
+style''. When needed, you can now use g-expressions (gexps) to refer to
+another package in build-side code. Additionally, the new
+@code{modify-inputs} macro facilitates common operations on inputs---deleting,
+replacing, adding inputs.
+
+To ease transition to the ``new style'', a new @command{guix style} command is
+provided. Run @command{info \"(guix) Invoking guix style\"} for more info.")
+ (de "Wenn Sie bereits Paketdefinitionen verfasst haben,
+erinnern Sie sich vielleicht, dass Sie für Paketeingaben manches
+doppelt schreiben mussten: Jede Eingabe wird assoziiert mit einer
+Bezeichnung (als Zeichenkette), auf die Sie sich in
+„erstellungsseitigem Code“ beziehen können.
+
+Diese Eingabebezeichnungen sind @emph{nicht} mehr nötig. Sie können
+jetzt solchen Code schreiben:
+
+@lisp
+(package
+ ;; …
+ (inputs (list libunistring libffi libgc)))
+@end lisp
+
+Achten Sie auf das gegenüber früher vereinfachte @code{inputs}-Feld.
+Wenn nötig können Sie in erstellungsseitigem Code G-Ausdrücke (gexps)
+benutzen, um andere Pakete zu referenzieren. Des Weiteren erleichtert
+das Makro @code{modify-inputs} geläufige Operationen auf Eingaben —
+das Löschen, Ersetzen, Hinzufügen von Eingaben.
+
+Um den Übergang zum „neuen Stil“ zu erleichtern, steht ein neuer
+Befehl @command{guix style} zur Verfügung. Führen Sie @command{info
+\"(guix) Invoking guix style\"} aus, um mehr Informationen zu
+erhalten.")))
+
(entry (commit "82daab42811a2e3c7684ebdf12af75ff0fa67b99")
(title
(en "New @samp{deb} format for the @command{guix pack} command")
diff --git a/etc/release-manifest.scm b/etc/release-manifest.scm
index 4375c9bf8b..e7e64efda4 100644
--- a/etc/release-manifest.scm
+++ b/etc/release-manifest.scm
@@ -125,8 +125,13 @@ TARGET."
(define %system-manifest
(manifest
(append-map (lambda (system)
- (map (cut package->manifest-entry* <> system)
- %system-packages))
+ ;; Some of %SYSTEM-PACKAGES are currently unsupported on some
+ ;; systems--e.g., GNOME on non-x86_64, due to Rust. Filter
+ ;; them out.
+ (filter-map (lambda (package)
+ (and (supported-package? package system)
+ (package->manifest-entry* package system)))
+ %system-packages))
'("x86_64-linux" "i686-linux")))) ;Guix System
(define %cross-manifest
diff --git a/etc/snippets/text-mode/guix-commit-message-update-package b/etc/snippets/text-mode/guix-commit-message-update-package
index f187419aa2..b08df74a0b 100644
--- a/etc/snippets/text-mode/guix-commit-message-update-package
+++ b/etc/snippets/text-mode/guix-commit-message-update-package
@@ -8,7 +8,7 @@ gnu: ${1:`(with-temp-buffer
(magit-git-wash #'magit-diff-wash-diffs
"diff" "--staged")
(goto-char (point-min))
- (when (re-search-forward "(define-public \\(\\S-+\\)" nil 'noerror)
+ (when (re-search-forward "^[ ]*(define-public \\(\\S-+\\)" nil 'noerror)
(match-string-no-properties 1)))`}: Update to ${2:`(with-temp-buffer
(magit-git-wash #'magit-diff-wash-diffs
"diff" "--staged")