diff options
author | Maxim Cournoyer <maxim.cournoyer@gmail.com> | 2022-01-25 22:07:13 -0500 |
---|---|---|
committer | Maxim Cournoyer <maxim.cournoyer@gmail.com> | 2022-01-25 22:07:13 -0500 |
commit | 1a5302435ff0d2822b823f5a6fe01faa7a85c629 (patch) | |
tree | ac7810c88b560532f22d2bab2e59609cd7305c21 /etc | |
parent | 3ff2ac4980dacf10087e4b42bd9fbc490591900c (diff) | |
parent | 070b8a893febd6e7d8b2b7c8c4dcebacf7845aa9 (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-x | etc/committer.scm.in | 7 | ||||
-rw-r--r-- | etc/completion/bash/guix | 88 | ||||
-rw-r--r-- | etc/completion/zsh/_guix | 1 | ||||
-rw-r--r-- | etc/disarchive-manifest.scm | 2 | ||||
-rw-r--r-- | etc/git/gitconfig | 5 | ||||
-rw-r--r-- | etc/guix-daemon.cil.in | 3 | ||||
-rwxr-xr-x | etc/guix-install.sh | 20 | ||||
-rwxr-xr-x | etc/indent-code.el | 120 | ||||
-rw-r--r-- | etc/news.scm | 396 | ||||
-rw-r--r-- | etc/release-manifest.scm | 9 | ||||
-rw-r--r-- | etc/snippets/text-mode/guix-commit-message-update-package | 2 |
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") |