aboutsummaryrefslogtreecommitdiff
path: root/etc
diff options
context:
space:
mode:
Diffstat (limited to 'etc')
-rwxr-xr-xetc/committer.scm.in25
-rwxr-xr-xetc/git/post-merge3
-rwxr-xr-xetc/git/pre-push4
-rw-r--r--etc/guix-daemon.conf.in2
-rw-r--r--etc/guix-daemon.service.in3
-rwxr-xr-xetc/guix-install.sh81
-rw-r--r--etc/init.d/guix-daemon.in4
-rw-r--r--etc/manifests/disarchive.scm (renamed from etc/disarchive-manifest.scm)2
-rw-r--r--etc/manifests/hurd.scm (renamed from etc/hurd-manifest.scm)0
-rw-r--r--etc/manifests/kernels.scm (renamed from etc/kernels-manifest.scm)0
-rw-r--r--etc/manifests/release.scm (renamed from etc/release-manifest.scm)12
-rw-r--r--etc/manifests/source.scm (renamed from etc/source-manifest.scm)13
-rw-r--r--etc/manifests/system-tests.scm (renamed from etc/system-tests.scm)0
-rw-r--r--etc/manifests/time-travel.scm (renamed from etc/time-travel-manifest.scm)0
-rw-r--r--etc/manifests/ungraft.scm49
-rw-r--r--etc/manifests/upgrade.scm140
-rw-r--r--etc/news.scm495
-rw-r--r--etc/snippets/tempel/scheme-mode.eld (renamed from etc/snippets/tempel/scheme-mode)2
-rw-r--r--etc/snippets/tempel/text-mode.eld (renamed from etc/snippets/tempel/text-mode)2
-rwxr-xr-xetc/teams.scm90
-rw-r--r--etc/teams/rust/rusty-packages.scm46
21 files changed, 908 insertions, 65 deletions
diff --git a/etc/committer.scm.in b/etc/committer.scm.in
index 0705b29fd9..9b128c8f1e 100755
--- a/etc/committer.scm.in
+++ b/etc/committer.scm.in
@@ -3,7 +3,7 @@
!#
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2020, 2021 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2020, 2021, 2022, 2023 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2021 Sarah Morgensen <iskarian@mgsn.dev>
;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz>
;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
@@ -255,10 +255,18 @@ corresponding to the top-level definition containing the staged changes."
(define* (change-commit-message file-name old new #:optional (port (current-output-port)))
"Print ChangeLog commit message for changes between OLD and NEW."
(define (get-values expr field)
- (match ((xpath:sxpath `(// ,field quasiquote *)) expr)
+ (match ((xpath:node-or
+ (xpath:sxpath `(*any* *any* package ,field quasiquote *))
+ ;; For let binding
+ (xpath:sxpath `(*any* *any* (*any*) package ,field quasiquote *)))
+ (cons '*TOP* expr))
(()
;; New-style plain lists
- (match ((xpath:sxpath `(// ,field list *)) expr)
+ (match ((xpath:node-or
+ (xpath:sxpath `(*any* *any* package ,field list *))
+ ;; For let binding
+ (xpath:sxpath `(*any* *any* (*any*) package ,field list *)))
+ (cons '*TOP* expr))
((inner) inner)
(_ '())))
;; Old-style labelled inputs
@@ -275,7 +283,11 @@ corresponding to the top-level definition containing the staged changes."
(define variable-name
(second old))
(define version
- (and=> ((xpath:sxpath '(// version *any*)) new)
+ (and=> ((xpath:node-or
+ (xpath:sxpath '(*any* *any* package version *any*))
+ ;; For let binding
+ (xpath:sxpath '(*any* *any* (*any*) package version *any*)))
+ (cons '*TOP* new))
first))
(format port
"gnu: ~a: Update to ~a.~%~%* ~a (~a): Update to ~a.~%"
@@ -289,8 +301,9 @@ corresponding to the top-level definition containing the staged changes."
(format port
"[~a]: ~a~%" field
(break-string
- (match (list (map symbol->string removed)
- (map symbol->string added))
+ ;; A dependency can be a list of (pkg output).
+ (match (list (map object->string removed)
+ (map object->string added))
((() added)
(format #f "Add ~a."
(listify added)))
diff --git a/etc/git/post-merge b/etc/git/post-merge
new file mode 100755
index 0000000000..f2ad37d35c
--- /dev/null
+++ b/etc/git/post-merge
@@ -0,0 +1,3 @@
+#!/bin/sh
+# Authenticate the repo upon 'git pull' and similar.
+exec guix git authenticate
diff --git a/etc/git/pre-push b/etc/git/pre-push
index 59671b0d58..325b23854b 100755
--- a/etc/git/pre-push
+++ b/etc/git/pre-push
@@ -32,7 +32,9 @@ do
# Only use the hook when pushing to Savannah.
case "$2" in
*.gnu.org*)
- exec make authenticate check-channel-news
+ set -e
+ make check-channel-news
+ exec guix git authenticate
exit 127
;;
*)
diff --git a/etc/guix-daemon.conf.in b/etc/guix-daemon.conf.in
index fb681d1f80..aa368d6272 100644
--- a/etc/guix-daemon.conf.in
+++ b/etc/guix-daemon.conf.in
@@ -7,4 +7,4 @@ start on runlevel [2345]
stop on runlevel [016]
-exec @localstatedir@/guix/profiles/per-user/root/current-guix/bin/guix-daemon --build-users-group=guixbuild --discover=no
+exec @localstatedir@/guix/profiles/per-user/root/current-guix/bin/guix-daemon --build-users-group=guixbuild --discover=no --substitute-urls='@GUIX_SUBSTITUTE_URLS@'
diff --git a/etc/guix-daemon.service.in b/etc/guix-daemon.service.in
index 5e75379b5e..5c43d9b7f1 100644
--- a/etc/guix-daemon.service.in
+++ b/etc/guix-daemon.service.in
@@ -7,7 +7,8 @@ Description=Build daemon for GNU Guix
[Service]
ExecStart=@localstatedir@/guix/profiles/per-user/root/current-guix/bin/guix-daemon \
- --build-users-group=guixbuild --discover=no
+ --build-users-group=guixbuild --discover=no \
+ --substitute-urls='@GUIX_SUBSTITUTE_URLS@'
Environment='GUIX_LOCPATH=@localstatedir@/guix/profiles/per-user/root/guix-profile/lib/locale' LC_ALL=en_US.utf8
StandardOutput=journal
StandardError=journal
diff --git a/etc/guix-install.sh b/etc/guix-install.sh
index 72b456ee7a..f07b2741bb 100755
--- a/etc/guix-install.sh
+++ b/etc/guix-install.sh
@@ -14,6 +14,8 @@
# Copyright © 2023 Andrew Tropin <andrew@trop.in>
# Copyright © 2020 David A. Redick <david.a.redick@gmail.com>
# Copyright © 2024 Janneke Nieuwenhuizen <janneke@gnu.org>
+# Copyright © 2024 Tomas Volf <~@wolfsden.cz>
+# Copyright © 2024 Richard Sent <richard@freakingpenguin.com>
#
# This file is part of GNU Guix.
#
@@ -80,6 +82,12 @@ REQUIRE=(
"xz"
)
+# Add variables using form FOO_INIT_REQUIRE when init system FOO dependencies
+# should be checked.
+SYSV_INIT_REQUIRE=(
+ "daemonize"
+)
+
PAS=$'[ \033[32;1mPASS\033[0m ] '
ERR=$'[ \033[31;1mFAIL\033[0m ] '
WAR=$'[ \033[33;1mWARN\033[0m ] '
@@ -147,6 +155,18 @@ chk_require()
_msg "${PAS}verification of required commands completed"
}
+add_init_sys_require()
+{ # Add the elements of FOO_INIT_SYS to REQUIRE
+ local init_require="${INIT_SYS}_REQUIRE[@]"
+ if [[ ! -z "$init_require" ]]; then
+ # Have to add piecemeal because ${!foo[@]} performs direct array key
+ # expansion, not indirect plain array expansion.
+ for r in "${!init_require}"; do
+ REQUIRE+=("$r")
+ done
+ fi
+}
+
chk_gpg_keyring()
{ # Check whether the Guix release signing public key is present.
_debug "--- [ ${FUNCNAME[0]} ] ---"
@@ -216,7 +236,7 @@ chk_init_sys()
_msg "${INF}init system is: sysv-init"
INIT_SYS="sysv-init"
return 0
- elif [[ $(openrc --version 2>/dev/null) =~ \(OpenRC\) ]]; then
+ elif [[ $(openrc --version 2>/dev/null) =~ \(OpenRC ]]; then
_msg "${INF}init system is: OpenRC"
INIT_SYS="openrc"
return 0
@@ -390,8 +410,8 @@ sys_delete_store()
_msg "${INF}removing /gnu"
rm -rf /gnu
- _msg "${INF}removing ${ROOT_HOME}/.config/guix"
- rm -rf ${ROOT_HOME}/.config/guix
+ _msg "${INF}removing ~root/.config/guix"
+ rm -rf ~root/.config/guix
}
sys_create_build_user()
@@ -431,11 +451,15 @@ sys_create_build_user()
sys_delete_build_user()
{
for i in $(seq -w 1 10); do
- userdel -f guixbuilder${i}
+ if id -u "guixbuilder${i}" &>/dev/null; then
+ userdel -f guixbuilder${i}
+ fi
done
_msg "${INF}delete group guixbuild"
- groupdel -f guixbuild
+ if getent group guixbuild &>/dev/null; then
+ groupdel -f guixbuild
+ fi
}
sys_enable_guix_daemon()
@@ -549,14 +573,16 @@ sys_delete_guix_daemon()
;;
systemd)
- _msg "${INF}disabling guix-daemon"
- systemctl disable guix-daemon
- _msg "${INF}stopping guix-daemon"
- systemctl stop guix-daemon
- _msg "${INF}removing guix-daemon"
- rm -f /etc/systemd/system/guix-daemon.service
+ if [ -f /etc/systemd/system/guix-daemon.service ]; then
+ _msg "${INF}disabling guix-daemon"
+ systemctl disable guix-daemon
+ _msg "${INF}stopping guix-daemon"
+ systemctl stop guix-daemon
+ _msg "${INF}removing guix-daemon"
+ rm -f /etc/systemd/system/guix-daemon.service
+ fi
- if [ -x /etc/systemd/system/gnu-store.mount ]; then
+ if [ -f /etc/systemd/system/gnu-store.mount ]; then
_msg "${INF}disabling gnu-store.mount"
systemctl disable gnu-store.mount
_msg "${INF}stopping gnu-store.mount"
@@ -574,7 +600,7 @@ sys_delete_guix_daemon()
;;
NA|*)
_msg "${ERR}unsupported init system; disable, stop and remove the daemon manually:"
- echo " ${ROOT_HOME}/.config/guix/current/bin/guix-daemon --build-users-group=guixbuild"
+ echo " ~root/.config/guix/current/bin/guix-daemon --build-users-group=guixbuild"
;;
esac
@@ -613,6 +639,7 @@ sys_create_init_profile()
cat <<"EOF" > /etc/profile.d/zzz-guix.sh
# Explicitly initialize XDG base directory variables to ease compatibility
# with Guix System: see <https://issues.guix.gnu.org/56050#3>.
+export XCURSOR_PATH="${XCURSOR_PATH:-/usr/local/share/icons:/usr/share/icons}"
export XDG_DATA_HOME="${XDG_DATA_HOME:-$HOME/.local/share}"
export XDG_CONFIG_HOME="${XDG_CONFIG_HOME:-$HOME/.config}"
export XDG_STATE_HOME="${XDG_STATE_HOME:-$HOME/.local/state}"
@@ -624,22 +651,23 @@ export XDG_CACHE_HOME="${XDG_CACHE_HOME:-$HOME/.cache}"
# _GUIX_PROFILE: `guix pull` profile
_GUIX_PROFILE="$HOME/.config/guix/current"
export PATH="$_GUIX_PROFILE/bin${PATH:+:}$PATH"
-# Export INFOPATH so that the updated info pages can be found
-# and read by both /usr/bin/info and/or $GUIX_PROFILE/bin/info
-# When INFOPATH is unset, add a trailing colon so that Emacs
-# searches 'Info-default-directory-list'.
-export INFOPATH="$_GUIX_PROFILE/share/info:$INFOPATH"
# GUIX_PROFILE: User's default profile and home profile
GUIX_PROFILE="$HOME/.guix-profile"
[ -f "$GUIX_PROFILE/etc/profile" ] && . "$GUIX_PROFILE/etc/profile"
-[ -L "$GUIX_PROFILE" ] || \
-GUIX_LOCPATH="$GUIX_PROFILE/lib/locale:${GUIX_LOCPATH:+:}$GUIX_LOCPATH"
+[ -L "$GUIX_PROFILE" ] && \
+GUIX_LOCPATH="$GUIX_PROFILE/lib/locale${GUIX_LOCPATH:+:}$GUIX_LOCPATH"
+
+# Export INFOPATH so that the updated info pages can be found
+# and read by both /usr/bin/info and/or $GUIX_PROFILE/bin/info
+# When INFOPATH is unset, add a trailing colon so that Emacs
+# searches 'Info-default-directory-list'.
+export INFOPATH="$_GUIX_PROFILE/share/info:$GUIX_PROFILE/share/info:$INFOPATH"
GUIX_PROFILE="$HOME/.guix-home/profile"
[ -f "$GUIX_PROFILE/etc/profile" ] && . "$GUIX_PROFILE/etc/profile"
-[ -L "$GUIX_PROFILE" ] || \
-GUIX_LOCPATH="$GUIX_PROFILE/lib/locale:${GUIX_LOCPATH:+:}$GUIX_LOCPATH"
+[ -L "$GUIX_PROFILE" ] && \
+GUIX_LOCPATH="$GUIX_PROFILE/lib/locale${GUIX_LOCPATH:+:}$GUIX_LOCPATH"
export GUIX_LOCPATH
@@ -721,9 +749,9 @@ sys_delete_init_profile()
sys_delete_user_profiles()
{
- _msg "${INF}removing ${ROOT_HOME}/.guix-profile"
- rm -f ${ROOT_HOME}/.guix-profile
- rm -rf ${ROOT_HOME}/.cache/guix
+ _msg "${INF}removing ~root/.guix-profile"
+ rm -f ~root/.guix-profile
+ rm -rf ~root/.cache/guix
_msg "${INF}removing .guix-profile, .cache/guix and .config/guix of all /home users"
for user in `ls -1 /home`; do
@@ -791,9 +819,10 @@ main_install()
_msg "Starting installation ($(date))"
chk_term
+ chk_init_sys
+ add_init_sys_require
chk_require "${REQUIRE[@]}"
chk_gpg_keyring
- chk_init_sys
chk_sys_arch
chk_sys_nscd
diff --git a/etc/init.d/guix-daemon.in b/etc/init.d/guix-daemon.in
index b7d4bb72bb..913210a543 100644
--- a/etc/init.d/guix-daemon.in
+++ b/etc/init.d/guix-daemon.in
@@ -36,7 +36,9 @@ start)
-E LC_ALL=en_US.utf8 \
-p "/var/run/guix-daemon.pid" \
@localstatedir@/guix/profiles/per-user/root/current-guix/bin/guix-daemon \
- --build-users-group=guixbuild --discover=no
+ --build-users-group=guixbuild --discover=no \
+ --substitute-urls='@GUIX_SUBSTITUTE_URLS@'
+
fi
;;
stop)
diff --git a/etc/disarchive-manifest.scm b/etc/manifests/disarchive.scm
index 3dbfa356df..a7f71414b6 100644
--- a/etc/disarchive-manifest.scm
+++ b/etc/manifests/disarchive.scm
@@ -24,7 +24,7 @@
(guix base16)
(gnu packages))
-(include "source-manifest.scm")
+(include "source.scm")
(define (tarball-origin? origin)
(match (origin-actual-file-name origin)
diff --git a/etc/hurd-manifest.scm b/etc/manifests/hurd.scm
index cb6b82d5f8..cb6b82d5f8 100644
--- a/etc/hurd-manifest.scm
+++ b/etc/manifests/hurd.scm
diff --git a/etc/kernels-manifest.scm b/etc/manifests/kernels.scm
index bacb222d64..bacb222d64 100644
--- a/etc/kernels-manifest.scm
+++ b/etc/manifests/kernels.scm
diff --git a/etc/release-manifest.scm b/etc/manifests/release.scm
index 773910ac80..b003f216ff 100644
--- a/etc/release-manifest.scm
+++ b/etc/manifests/release.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2020-2022 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2020-2022, 2024 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2023 Andreas Enge <andreas@enge.fr>
;;;
@@ -145,6 +145,16 @@ TARGET."
"x86_64-linux-gnu"
"i686-linux-gnu"
+ ;; Ignore obsolete systems, as in (gnu ci).
+ "mips64el-linux-gnu"
+ "powerpc-linux-gnu"
+ "powerpc64-linux-gnu"
+
+ ;; Ignore bare-metal targets.
+ "avr"
+ "or1k-elf"
+ "xtensa-ath9k-elf"
+
;; XXX: Important bits like libsigsegv and libffi don't
;; support RISCV at the moment, so don't require RISCV
;; support.
diff --git a/etc/source-manifest.scm b/etc/manifests/source.scm
index f96a5da6f7..3e1ae07959 100644
--- a/etc/source-manifest.scm
+++ b/etc/manifests/source.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2021 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2021, 2024 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -25,17 +25,6 @@
(guix packages) (guix profiles)
(gnu packages))
-(define (all-packages)
- "Return the list of all the packages, public or private, omitting only
-superseded packages."
- (fold-packages (lambda (package lst)
- (match (package-replacement package)
- (#f (cons package lst))
- (replacement
- (append (list replacement package) lst))))
- '()
- #:select? (negate package-superseded)))
-
(define (upstream-origin source)
"Return SOURCE without any patches or snippet."
(origin (inherit source)
diff --git a/etc/system-tests.scm b/etc/manifests/system-tests.scm
index 221a63bb7f..221a63bb7f 100644
--- a/etc/system-tests.scm
+++ b/etc/manifests/system-tests.scm
diff --git a/etc/time-travel-manifest.scm b/etc/manifests/time-travel.scm
index 039ca89889..039ca89889 100644
--- a/etc/time-travel-manifest.scm
+++ b/etc/manifests/time-travel.scm
diff --git a/etc/manifests/ungraft.scm b/etc/manifests/ungraft.scm
new file mode 100644
index 0000000000..3e42b98ece
--- /dev/null
+++ b/etc/manifests/ungraft.scm
@@ -0,0 +1,49 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2024 Ludovic Courtès <ludo@gnu.org>
+;;;
+;;; 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 GNU Guix. If not, see <http://www.gnu.org/licenses/>.
+
+;; This manifest "ungrafts" all the currently grafted packages and returns
+;; said packages and all their dependents.
+
+(use-modules (guix diagnostics)
+ (guix i18n)
+ (guix packages)
+ (guix profiles)
+ (guix store)
+ ((guix scripts build) #:select (dependents))
+ ((gnu packages) #:select (all-packages))
+ (srfi srfi-1))
+
+(define (grafted-packages)
+ (info (G_ "enumerating grafted packages...~%"))
+ (let ((result (filter package-replacement (all-packages))))
+ (info (G_ "found ~d grafted packages:~{ ~a~}~%")
+ (length result) (map package-full-name result))
+ result))
+
+(manifest
+ (with-store store
+ (let* ((grafted (grafted-packages))
+ (ungraft-all (package-input-rewriting
+ (map (lambda (package)
+ `(,package . ,(package-replacement package)))
+ grafted))))
+ (map (lambda (package)
+ (manifest-entry
+ (inherit (package->manifest-entry (ungraft-all package)))
+ (name (string-append (package-name package) "-ungrafted"))))
+ (dependents store grafted)))))
diff --git a/etc/manifests/upgrade.scm b/etc/manifests/upgrade.scm
new file mode 100644
index 0000000000..03a7d6d319
--- /dev/null
+++ b/etc/manifests/upgrade.scm
@@ -0,0 +1,140 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2024 Ludovic Courtès <ludo@gnu.org>
+;;;
+;;; 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 GNU Guix. If not, see <http://www.gnu.org/licenses/>.
+
+;; This manifest computes upgrades of key packages using updaters from (guix
+;; upstream) and supporting code for the 'with-latest' transformation.
+
+(use-modules (guix memoization)
+ (guix monads)
+ (guix graph)
+ (guix packages)
+ (guix profiles)
+ (guix store)
+ (guix transformations)
+ (guix upstream)
+ ((guix scripts build) #:select (dependents))
+ ((guix scripts graph) #:select (%bag-node-type))
+ ((guix import github) #:select (%github-api))
+ (guix build-system gnu)
+ (guix build-system cmake)
+ ((gnu packages)
+ #:select (all-packages specification->package))
+
+ (gnu packages backup)
+ (gnu packages curl)
+ (gnu packages freedesktop)
+ (gnu packages gnupg)
+ (gnu packages ssh)
+ (gnu packages tls)
+ (gnu packages xorg)
+
+ (ice-9 match)
+ (srfi srfi-1))
+
+;; Bypass the GitHub updater: we'd need an API token or we would hit the rate
+;; limit.
+(%github-api "http://example.org")
+
+(define security-packages
+ (list xorg-server
+ elogind
+
+ openssl
+ gnutls
+ curl
+ curl-ssh
+
+ libarchive
+ libssh
+
+ ;; Since there are several libgit2 versions, pick the latest one and
+ ;; compute the upgrade against that one.
+ (specification->package "libgit2")
+
+ ;; GnuPG.
+ libassuan
+ libgpg-error
+ libgcrypt
+ libksba
+ npth
+ gnupg
+ gpgme
+ pinentry))
+
+(define latest-version
+ (mlambdaq (package)
+ (package-with-upstream-version package
+ ;; Preserve patches and snippets to get
+ ;; exactly the same as what we'd have with
+ ;; 'guix refresh -u PACKAGE'.
+ #:preserve-patches? #t
+
+ ;; XXX: Disable source code authentication:
+ ;; this requires a local keyring, populated
+ ;; from key servers, but key servers may be
+ ;; unreliable or may lack the upstream
+ ;; keys. Leave it up to packagers to
+ ;; actually authenticate code and make sure
+ ;; it matches what this manifest computed.
+ #:authenticate? #f)))
+
+(define individual-security-upgrades
+ ;; Upgrades of individual packages with their direct dependents built
+ ;; against that upgrade.
+ (manifest
+ (with-store store
+ (append-map (lambda (package)
+ (let* ((name (package-name package))
+ (newest (latest-version package))
+ (update (package-input-rewriting
+ `((,package . ,newest)))))
+ (map (lambda (package)
+ (manifest-entry
+ (inherit (package->manifest-entry
+ (update package)))
+ (name (string-append (package-name package)
+ "-with-latest-" name))))
+ (dependents store (list package) 1))))
+ security-packages))))
+
+(define joint-security-upgrades
+ ;; All of SECURITY-PACKAGES updated at once, together with their dependents.
+ (manifest
+ (with-store store
+ (let ((update-all (package-input-rewriting
+ (map (lambda (package)
+ `(,package . ,(latest-version package)))
+ security-packages))))
+ (map (lambda (package)
+ (manifest-entry
+ (inherit (package->manifest-entry
+ (update-all package)))
+ (name (string-append (package-name package) "-full-upgrade"))))
+ (dependents store security-packages 2))))))
+
+;; Install a UTF-8 locale so that file names in Git checkouts are interpreted
+;; as UTF-8 (the libgit2 source tree contains non-ASCII file names, for
+;; instance). XXX: This works around the fact that 'cuirass register' and
+;; thus 'cuirass evaluate' may not be running with a UTF-8 locale.
+(unless (string-suffix? ".UTF-8" (setlocale LC_ALL))
+ (or (false-if-exception (setlocale LC_ALL "C.UTF-8"))
+ (false-if-exception (setlocale LC_ALL "en_US.UTF-8"))
+ (format (current-error-port) "warning: failed to install UTF-8 locale~%")))
+
+(concatenate-manifests
+ (list individual-security-upgrades joint-security-upgrades))
diff --git a/etc/news.scm b/etc/news.scm
index 0be432f872..0628b0fdb4 100644
--- a/etc/news.scm
+++ b/etc/news.scm
@@ -1,7 +1,7 @@
;; GNU Guix news, for use by 'guix pull'.
;;
;; Copyright © 2019-2024 Ludovic Courtès <ludo@gnu.org>
-;; Copyright © 2019–2021 Tobias Geerinckx-Rice <me@tobias.gr>
+;; Copyright © 2019–2021, 2024 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, 2023 Julien Lepiller <julien@lepiller.eu>
@@ -23,6 +23,10 @@
;; Copyright © 2024 Hilton Chain <hako@ultrarare.space>
;; Copyright © 2024 Liliana Marie Prikler <liliana.prikler@gmail.com>
;; Copyright © 2024 Vivien Kraus <vivien@planete-kraus.eu>
+;; Copyright © 2024 Guillaume Le Vaillant <glv@posteo.net>
+;; Copyright © 2024 Zheng Junjie <873216071@qq.com>
+;; Copyright © 2024 Nicolas Graves <ngraves@ngraves.fr>
+;; Copyright © 2024 Sebastian Dümcke <code@sam-d.com>
;;
;; Copying and distribution of this file, with or without modification, are
;; permitted in any medium without royalty provided the copyright notice and
@@ -30,6 +34,495 @@
(channel-news
(version 0)
+ (entry (commit "ccf72d5074b0c5ba793e686cbb1d6eaad39824bf")
+ (title
+ (de "Neues Format @samp{appimage} für den Befehl @command{guix pack}")
+ (en "New @samp{AppImage} format for the @command{guix pack} command")
+ (fr "Nouveau format @samp{AppImage} pour la commande @command{guix pack}"))
+ (body
+ (de "@command{guix pack} kann nun AppImage-Dateien erstellen. Das
+AppImage-Dateiformat erlaubt es, in einer einzelnen Datei Software zu verteilen. Die
+AppImage-Datei lässt sich ohne besondere Benutzerrechte ausführen. Hier ist
+ein Beispiel:
+
+@example
+guix pack --format=appimage --entry-point=bin/hello hello
+@end example
+
+Siehe @command{info \"(guix.de) Aufruf von guix pack\"} für mehr
+Informationen.")
+ (en "@command{guix pack} can now produce AppImage a single file,
+self-contained software archive. AppImage files are easily distributed and can
+be run with user privileges. Here is an example for the @code{hello} package:
+
+@example
+guix pack --format=appimage --entry-point=bin/hello hello
+@end example
+
+See @command{info \"(guix) Invoking guix pack\"} for more information.")
+ (fr "@command{guix pack} peut désormais produire un fichier
+AppImage. AppImage est une manière de distribuer les logiciels en un seul
+fichier, qui peut être executé avec des droits d’utilisateur. Voici un
+exemple pour le paquet @code{hello} :
+
+@example
+guix pack --format=appimage --entry-point=bin/hello hello
+@end example
+
+Consultez @command{info \"(guix.fr) Invoquer guix pack\"} pour plus
+d’informations.")))
+
+ (entry (commit "b93434e656eba4260df82158a96c295000d3ff44")
+ (title (en "PostgreSQL service upgrade")
+ (de "PostgreSQL-Dienst aktualisiert")
+ (fr "Mise à jour du service PostgreSQL"))
+ (body
+ (en "\
+This news entry concerns users of the @code{postgresql-service-type}.
+
+The default PostgreSQL used in @code{postgresql-configuration} has been
+deprecated, and will be removed in a few months. However, the value of the
+default @code{postgresql-configuration-postgresql} can't be directly changed
+to a newer major version of PostgreSQL, because switching to a major version
+currently requires a manual update of the database.
+
+Because of this, the default value of postgresql-configuration-postgresql has
+been unset. Current users of the service will have to set it manually. If it
+was unset, use @code{postgresql-10} and plan an upgrade in the next month to a
+supported version of PostgreSQL. To upgrade, you will need to either dump
+your database using your previous version of PostgreSQL and reload it in the
+new version or use the @command{pg_upgrade} application. See
+@url{https://www.postgresql.org/docs/current/upgrading.html} for more info.")
+ (de "\
+Diese Neuigkeit betrifft Nutzer des @code{postgresql-service-type}.
+
+Die in @code{postgresql-configuration} bisher vorgegebene Version von
+PostgreSQL gilt als veraltet und wird in ein paar Monaten entfernt werden.
+Allerdings können wir den Vorgabewert von
+@code{postgresql-configuration-postgresql} nicht einfach für Sie auf eine
+neuere große Version ändern, weil bei so einem Wechsel die Datenbank derzeit
+manuell aktualisiert werden muss.
+
+Aus diesem Grund wurde der Vorgabewert von
+@code{postgresql-configuration-postgresql} von nun an entfernt. Aktuelle
+Nutzer des Dienstes müssen sie selbst setzen. Wenn kein Wert gesetzt war,
+sollten Sie @code{postgresql-10} eintragen und dabei einplanen, dass Sie es
+kommenden Monat auf eine unterstützte Version von PostgreSQL aktualisieren
+müssen. Zum Aktualisieren werden Sie entweder mit der vorherigen Version von
+PostgreSQL ein Dump Ihrer Datenbank exportieren, das Sie dann in der neuen
+Version laden, oder Sie benutzen dafür die Anwendung @command{pg_upgrade}.
+Siehe @url{https://www.postgresql.org/docs/current/upgrading.html} für weitere
+Informationen.")
+ (fr "\
+Ce message concerne les utilisateurs du service-type PostgreSQL.
+
+La précédente version par défaut de PostgreSQL utilisée dans
+@code{postgresqsl-configuration} est obsolète et sera supprimée dans quelques
+mois. Cependant, la valeur de la configuration par défaut
+@code{postgresql-configuration-postgresql} ne peut pas être changée
+directement pour une version majeure prise en charge de PostgreSQL, car le
+passage à une nouvelle version majeure nécessite actuellement une mise à jour
+manuelle de la base de données.
+
+Pour cette raison, la valeur par défaut de
+@code{postgresql-configuration-postgresql} a été supprimée et les utilisateurs
+actuels du service doivent la configurer manuellement. Si elle n’était pas
+définie, utilisez @code{postgresql-10} et prévoyez une mise à jour dans le
+mois à venir vers une version plus récente de PostgreSQL. Pour effectuer la
+mise à jour, vous devrez soit exporter votre base de données sous une version
+de PostgreSQL puis la réimporter sous une nouvelle version, soit utiliser
+l'application @command{pg_upgrade}. Pour plus d'informations, consultez
+@url{https://www.postgresql.org/docs/current/upgrading.html}.")))
+
+ (entry (commit "cfc85eb0c67a5cf10a3fbe2531b926cbb8c62489")
+ (title
+ (en "Linux-libre 6.10 removed due to end of upstream support")
+ (de "Linux-libre 6.10 wurde entfernt"))
+ (body
+ (en "The linux-libre 6.10 kernel series has reached the end of
+ its life, and is no longer supported upstream. For this
+ reason, it has been removed from GNU Guix.")
+ (de "Die @code{linux-libre} 6.10-Versionsreihe hat ihr
+Supportende erreicht und wird nicht mehr unterstützt („end of life“). Daher ist die
+Versionsreihe aus GNU Guix entfernt worden.")))
+
+ (entry (commit "5966e0fdc78771c562e0f484a22f381a77908be0")
+ (title
+ (en "Daemon vulnerability allowing takeover of build users fixed")
+ (de "Schwachstelle im Daemon behoben, durch die Übernahme von Erstellungsbenutzern möglich ist"))
+ (body
+ (en "A vulnerability allowing a local user to execute arbitrary code
+as any of the build users has been identified and fixed. Most notably, this
+allows any local user to alter the result of any local build, even if it
+happens inside a container. The only requirements to exploit this
+vulnerability are the ability to start a derivation build and the ability to
+run arbitrary code with access to the store in the root PID namespace on the
+machine that build occurs on. This largely limits the vulnerability to
+multi-user systems.
+
+This vulnerability is caused by the fact that @command{guix-daemon} does not
+change ownership and permissions on the outputs of failed builds when it moves
+them to the store, and is also caused by there being a window of time between
+when it moves outputs of successful builds to the store and when it changes
+their ownership and permissions. Because of this, a build can create a binary
+with both setuid and setgid bits set and have it become visible to the outside
+world once the build ends. At that point any process that can access the
+store can execute it and gain the build user's privileges. From there any
+process owned by that build user can be manipulated via procfs and signals at
+will, allowing the attacker to control the output of its builds.
+
+You are advised to upgrade @command{guix-daemon}. Run @command{info \"(guix)
+Upgrading Guix\"}, for info on how to do that. Additionally, if there is any
+risk that a builder may have already created these setuid binaries (for
+example on accident), run @command{guix gc} to remove all failed build
+outputs.
+
+See @uref{https://issues.guix.gnu.org/73919} for more information on this
+vulnerability.")
+ (de "Eine Sicherheitslücke, durch die ein lokaler Benutzer beliebigen
+Code als jeder der Erstellungsbenutzer ausführen kann, wurde gefunden und
+behoben. Diese hat zur Folge, dass jeder lokale Benutzer das Ergebnis jeder
+lokalen Erstellung verändern kann, selbst wenn sie in einem Container isoliert
+stattfindet. Um die Lücke auszunutzen, wird nur vorausgesetzt, dass er
+Ableitungen erstellen lassen kann und beliebigen Code mit Store-Zugriff im
+Wurzel-PID-Namensraum auf der Maschine laufen lassen kann, wo die Erstellung
+abläuft. Somit sind vor allem Mehrbenutzersysteme betroffen.
+
+Ursache der Lücke ist, dass @command{guix-daemon} Besitzer und Berechtigungen
+der Ausgaben einer fehlgeschlagenen Erstellung nicht ändert, wenn er sie in den
+Store verschiebt. Auch bei erfolgreichen Erstellungen gibt es ein Zeitfenster
+nachdem Ausgaben in den Store gelangen und bevor ihr Besitzer und
+Berechtigungen angeglichen werden. So kann eine Erstellung eine Binärdatei
+erzeugen, bei der die Bits für setuid und setgid gesetzt sind, die dann für die
+Außenwelt sichtbar wird, wenn die Erstellung fertig ist. Ab dann kann jeder
+Prozess mit Zugriff auf den Store diese ausführen und die Berechtigungen des
+Erstellungsbenutzers erlangen, so dass jeder Prozess im Besitz des
+Erstellungsbenutzers über procfs und Signale beeinflussbar ist und der
+Angreifer Kontrolle darüber hat, welche Ausgabe Erstellungen haben.
+
+Wir raten Ihnen, @command{guix-daemon} zu aktualisieren. Führen Sie
+@command{info \"(guix.de) Aktualisieren von Guix\"} aus für Erklärungen, wie
+Sie ihn aktualisieren können. Wenn zudem Gefahr besteht, dass ein
+Erstellungsprogramm bereits setuid-gesetzte Binärdateien angelegt hat (etwa
+versehentlich), führen Sie @command{guix gc} aus, um alle fehlgeschlagenen
+Erstellungsausgaben zu entfernen.
+
+Siehe @uref{https://issues.guix.gnu.org/73919} für weitere Details zu dieser
+Sicherheitslücke.")))
+
+ (entry (commit "2fae63df2138b74d30e120364f0f272871595862")
+ (title
+ (en "Core packages updated")
+ (de "Kernpakete aktualisiert")
+ (fr "Logiciels fondamentaux mis à jour"))
+ (body
+ (en "Core packages have been updated, in particular those that
+are used to build every other package in the distribution. Noteworthy
+upgrades include:
+
+@itemize
+@item @code{glibc} 2.39 (was 2.35);
+@item @code{gcc} 11.4.0 as the default compiler (was 11.3.0);
+@item @code{binutils} 2.41 (was 2.38);
+@item @code{make} 4.4.1 (was 4.3);
+@item TeX@tie{}Live 2024.2 (was 20230313; note that due to the new
+versioning scheme, @command{guix upgrade} will consider the new packages
+as ``older'' than the previous ones so you may need to use
+@command{guix install} to upgrade them).
+@end itemize
+
+Additional improvements were made to build systems and related packages and
+tools:
+
+@itemize
+@item
+the @code{glibc} package now includes the @code{C.UTF-8} locale,
+suitable for use when a UTF-8 locale is necessary regardless of
+any language or regional convention;
+@item
+origins that include patches are now repacked with zstd instead of xz,
+which uses less CPU power and memory, both when compressing and when
+decompressing;
+@item
+performance issues with the modular TeX@tie{}Live package set have
+been fixed.
+@end itemize
+
+If you encounter any problem, please check
+@url{https://issues.guix.gnu.org} for existing reports and resolutions;
+email @email{bug-guix@@gnu.org} to report new bugs.")
+ (de "Pakete, die den Kern der Distribution ausmachen, wurden
+aktualisiert, insbesondere solche Pakete, aus denen heraus alle anderen Pakete
+der Distribution erstellt werden. Zu den nennenswerten Neuerungen gehören:
+
+@itemize
+@item @code{glibc} 2.39 (war 2.35),
+@item @code{gcc} 11.4.0 ist der voreingestellte Compiler (war 11.3.0),
+@item @code{binutils} 2.41 (war 2.38),
+@item @code{make} 4.4.1 (war 4.3),
+@item TeX@tie{}Live 2024.2 (war 20230313; das bedeutet, dass wegen der neuen
+Versionsbezeichnungen @command{guix upgrade} die neuen Pakete für „älter“ als
+die vorherigen hält und eine Aktualisierung unter Umständen nur zulässt, indem
+Sie @command{guix install} benutzen).
+@end itemize
+
+Weitere Verbesserungen wurden an Erstellungssystemen und zugehörigen Paketen
+und Werkzeugen vorgenommen:
+
+@itemize
+@item
+Zu dem Paket @code{glibc} gehört jetzt die Locale für @code{C.UTF-8}, die
+geeignet ist, wenn eine UTF-8-Locale gebraucht wird, aber Sprache und regionale
+Konventionen unwichtig sind.
+@item
+Paketursprünge mit Patches werden jetzt in Archive mit zstd anstelle von xz
+neu gepackt, wodurch weniger Rechenzeit und Speicher beim Komprimieren und
+Dekomprimieren nötig sind.
+@item
+Performance-Probleme mit den modularen Paketsatz von TeX@tie{}Live wurden
+behoben.
+@end itemize
+
+Wenn Sie Probleme feststellen, schauen Sie bitte auf
+@url{https://issues.guix.gnu.org} nach bisherigen Fehlerberichten und Lösungen
+und schicken Sie eine E-Mail an @email{bug-guix@@gnu.org}, um neue Fehler zu
+melden.")
+ (fr "Les logiciels fondamentaux on été mis à jour, en particulier
+ceux qui servent à construire tous les autres logiciels de la distribution.
+Les mises à jour notables sont :
+
+@itemize
+@item @code{glibc} 2.39 (au lieu de 2.35) ;
+@item @code{gcc} 11.4.0 comme compilateur par défaut (au lieu de 11.3.0) ;
+@item @code{binutils} 2.41 (au lieu de 2.38) ;
+@item @code{make} 4.4.1 (au lieu de 4.3) ;
+@item TeX@tie{}Live 2024.2 (au lieu de 20230313 ; compte tenu du changement de
+numérotation des versions, @command{guix upgrade} va croire que les nouveaux
+paquets sont « plus vieux » que les précédents et il faudra donc utiliser
+@command{guix install} pour les mettre à jour).
+@end itemize
+
+Les systèmes de construction ainsi que les paquets et outils connexes ont été
+améliorés :
+
+@itemize
+@item
+le paquet @code{glibc} inclut dorénavant la locale @code{C.UTF-8} qui convient
+chaque fois qu'on a besoin d'une locale UTF-8 indépendemment d'un langage ou
+de conventions régionales ;
+@item
+les origines qui incluent des @i{patches} sont maintenant recompressées avec
+zstd au lieu de xz, ce qui demande moins de temps de calcul et de mémoire, à
+la fois en compression et en décompression ;
+@item
+des problèmes de performance avec les paquets TeX@tie{}Live modulaires ont été
+résolus.
+@end itemize
+
+En cas de difficultés, merci de jeter un œil à
+@url{https://issues.guix.gnu.org} pour voir la liste des problèmes qui ont été
+remontés et les éventuelles solutions ; envoyer un courrier à
+@email{bug-guix@@gnu.org} pour faire remonter de nouveaux bogues.")))
+
+ (entry (commit "fc35b9fa6d6ed3583d4f3fc9214f657022d49678")
+ (title
+ (en "Linux-libre 6.9 removed due to end of upstream support")
+ (de "Linux-libre 6.9 wurde entfernt"))
+ (body
+ (en "The linux-libre 6.9 kernel series has reached the end of
+ its life, and is no longer supported upstream. For this
+ reason, it has been removed from GNU Guix.")
+ (de "Die @code{linux-libre} 6.9-Versionsreihe hat ihr
+Supportende erreicht und wird nicht mehr unterstützt („end of life“). Daher ist die
+Versionsreihe aus GNU Guix entfernt worden.")))
+
+ (entry (commit "4e58dfee6c7456d1e662f66041b8a157efe8710a")
+ (title
+ (en "More capable @code{privileged-programs} replace @code{setuid-programs}")
+ (de "Befähigtere @code{privileged-programs} ersetzen @code{setuid-programs}")
+ (nl "Capabelere @code{privileged-programs} vervangen @code{setuid-programs}"))
+ (body
+ (en "Where the kernel supports it, Guix System can now assign
+POSIX@tie{}@dfn{capabilities} to trusted executables. Capabilities offer a
+more granular alternative to the traditional setuid and setgid permissions,
+which remain available.
+
+To reflect this, @code{(gnu system setuid)} has been renamed to @code{(gnu
+system privilege)}. @code{privileged-programs} replaces @code{setuid-programs}
+as @code{operating-system} field and defaults to
+@code{%default-privileged-programs}. The executables themselves have moved from
+@file{/run/setuid-programs} to @file{/run/privileged/bin}.")
+ (de "Wo der Kernel dies unterstützt, kann Guix System nun
+POSIX-@dfn{Capabilities} an die Anwendungen vergeben, denen besonders vertraut
+wird. Capabilities bieten eine feinmaschigere Alternative zu den klassischen
+setuid- und setgid-Berechtigungen, die auch verfügbar bleiben.
+
+Um dies deutlich zu machen, heißt @code{(gnu system setuid)} nun @code{(gnu
+system privilege)}. Das Feld @code{privileged-programs} ersetzt
+@code{setuid-programs} in jedem @code{operating-system}-Objekt und sein
+Vorgabewert ist @code{%default-privileged-programs}. Die ausführbaren Dateien
+wurden von @file{/run/setuid-programs} nach @file{/run/privileged/bin}
+verschoben.")
+ (nl "Waar de kernel dit toelaat kan Guix System nu
+POSIX@tie{}@dfn{capabilities} toewijzen aan vertrouwde uitvoerbare bestanden.
+``Capabilities'' zijn een fijnmaziger alternatief voor de klassieke setuid- en
+setgid-rechten, die ook beschikbaar blijven.
+
+Om dit duidelijk te maken heet @code{(gnu system setuid)} nu @code{(gnu system
+privilege)}. @code{privileged-programs} vervangt @code{setuid-programs} als
+veld in het @code{operating-system} en heeft @code{%default-privileged-programs}
+als standaardwaarde. De uitvoerbare bestanden verhuizen van
+@file{/run/setuid-programs} naar @file{/run/privileged/bin}.")))
+ (entry (commit "26638b8e8129aa755586d017677b4cf076bafda6")
+ (title
+ (en "The containerd service is separated from @code{docker-service-type}")
+ (ru "Сервис containerd отделен от @code{docker-service-type}")
+ (de "containerd-Dienst wurde vom @code{docker-service-type} getrennt"))
+ (body
+ (en "containerd service has been decoupled from the
+@code{docker-service-type}. Moving forward, users are required to specify
+containerd settings manually for their configurations. The
+@code{containerd-service-type} service need to be added to a system
+configuration, otherwise a message about not any service provides
+@code{containerd} will be displayed during @code{guix system reconfigure}.
+
+Run @command{info \"(guix) Miscellaneous Services\"} for more info.")
+ (ru "Сервис containerd был отделен от @code{docker-service-type}.
+Впредь пользователям потребуется указывать параметры containerd вручную для
+своих конфигураций. Сервис @code{containerd-service-type} должен быть
+добавлен в конфигурацию системы, в противном случае будет отображено сообщение
+о том, что ни один сервис не предоставляет поддержку для @code{containerd} во
+время выполнения команды @code{guix system reconfigure}.
+
+Смотрите @command{info \"(guix.ru) Разнообразные службы\"} для получения более
+детальных сведений.")
+ (de "Es gibt einen eigenen containerd-Dienst losgelöst von
+@code{docker-service-type}. In Zukunft müssen Nutzer dort manuelle
+Einstellungen für containerd vornehmen. Der Dienst
+@code{containerd-service-type} muss zur Systemkonfiguration hinzugefügt
+werden, sonst wird durch @code{guix system reconfigure} eine Meldung
+gezeigt, dass kein Dienst @code{containerd} zur Verfügung stellt.
+
+Siehe @command{info \"(guix.de) Verschiedene Dienste\"} für genauere
+Informationen.")))
+
+ (entry (commit "ee7e5e00bf2b9257e67d785b37efddb008c5da37")
+ (title
+ (en "Plasma updated to version 6.1.2")
+ (de "Plasma auf Version 6.1.2 aktualisiert")
+ (fr "Plasma passe à la version 6.1.2")
+ (zh "Plasma 更新到 6.1.2 版本"))
+ (body
+ (en "Plasma updated to 6.1.2, KDE Frameworks updated to 6.3.0, and
+other KDE package updates.
+
+With Plasma updates, SDDM has QT6 enabled by default. If you want to still use a
+Qt5 theme, you need to set the field @code{sddm} in @code{sddm-configuration} to
+@code{sddm-qt5}.")
+ (de "Plasma wurde auf 6.1.2 aktualisiert, KDE Frameworks wurde
+auf 6.3.0 aktualisiert und andere KDE-Pakete wurden aktualisiert.
+
+Mit der Aktualisierung von Plasma ist in SDDM die Version qt6
+vorgegeben. Wenn Sie ein Qt5-Thema benutzen möchten, müssen Sie
+in der @code{sddm-configuration} das Feld @code{sddm} auf
+@code{sddm-qt5} setzen.")
+ (fr "Plasma passe à la version 6.1.2, KDE Frameworks à la 6.3.0, et
+ d’autres logiciels KDE sont mis à jour.
+
+ Avec ces mises à jour de Plasma, sddm utilise Qt 6 par défaut. Pour
+ utiliser un thème Qt 5, il faut mettre le champ @code{sddm} de
+ @code{sddm-configuration} à @code{sddm-qt5}.")
+ (zh "Plasma 更新到 6.1.2, KDE Frameworks 更新到 6.3.0, 及其他 KDE 软件包更新。
+
+随着 Plasma 更新, SDDM 默认启用 Qt6, 如果您还想使用 Qt5 主题, 需要将 @code{sddm-configuration} 中的
+@code{sddm} 字段设置为 @code{sddm-qt5}.")))
+
+ (entry (commit "a46908620fac09bd8ccd0f587a27e86035d3b1d7")
+ (title
+ (en "@code{stumpwm:lib} removed")
+ (de "@code{stumpwm:lib} wurde entfernt")
+ (fr "@code{stumpwm:lib} supprimé"))
+ (body
+ (en "The @code{lib} output of the @code{stumpwm} package has been
+removed. If you have some personal package definitions depending on
+@code{stumpwm:lib}, they should be updated to depend on @code{stumpwm}
+instead.")
+ (de "Die Ausgabe @code{lib} des Pakets @code{stumpwm} gibt es nicht
+mehr. Wenn Sie eigene Paketdefinitionen haben, die von @code{stumpwm:lib}
+abhängen, müssen sie angepasst werden, um stattdessen von @code{stumpwm}
+abzuhängen.")
+ (fr "La sortie @code{lib} du paquet @code{stumpwm} a été supprimée.
+Si vous avez des définitions de paquets personnels dépendantes de
+@code{stumpwm:lib}, elle doivent être modifiées pour dépendre de
+@code{stumpwm} à la place.")))
+
+ (entry (commit "6fad0fd1c32db2cb25447b694f08d5c7836536ad")
+ (title
+ (en "Linux-libre 6.8 removed due to end of upstream support")
+ (de "Linux-libre 6.8 wurde entfernt"))
+ (body
+ (en "The linux-libre 6.8 kernel series has reached the end of
+ its life, and is no longer supported upstream. For this
+ reason, it has been removed from GNU Guix.")
+ (de "Die @code{linux-libre} 6.8-Versionsreihe hat ihr
+Supportende erreicht und wird nicht mehr unterstützt („end of life“). Daher ist die
+Versionsreihe aus GNU Guix entfernt worden.")))
+
+ (entry (commit "8d1d98a3aa3448b9d983e4bd64243a938b96e8ab")
+ (title
+ (en "@command{guix git authenticate} usage simplified")
+ (de "@command{guix git authenticate} ist leichter nutzbar")
+ (fr "@command{guix git authenticate} simplifiée"))
+ (body
+ (en "Usage of the @command{guix git authenticate} command has been
+simplified. The command is useful to channel authors and to developers
+willing to validate the provenance of their code.
+
+On your first use, @command{guix git authenticate} will now record the commit
+and signer (the @dfn{introduction}) in the @file{.git/config} file of your
+repository so that you don't have to pass them on the command line in
+subsequent runs. It will also install pre-push and post-merge hooks,
+unless preexisting hooks are found.
+
+Run @command{info \"(guix) Invoking guix authenticate\"} for more info.")
+ (de "Der Befehl @command{guix git authenticate} kann jetzt einfacher
+benutzt werden. Mit dem Befehl können Kanalautoren und Entwickler die
+Provenienz ihres Codes überprüfen.
+
+Beim ersten Gebrauch speichert @command{guix git authenticate} Commit und
+Unterzeichner (wie in der @dfn{Kanaleinführung}) in der Datei
+@file{.git/config} Ihres Repositorys, so dass Sie sie bei späteren
+Ausführungen nicht mehr auf der Befehlszeile angeben müssen. Auch werden
+Git-Hooks für pre-push und post-merge installiert, wenn es bisher keine
+Hooks dieser Art gibt.
+
+Führen Sie @command{info \"(guix.de) Aufruf von guix git authenticate\"}
+aus, wenn Sie mehr wissen wollen.")
+ (fr "L'utilisation de la commande @command{guix git authenticate} a
+été simplifiée. Cette commande est utile aux auteur·rices de canaux et aux
+développeur·euses souhaitant pouvoir valider l'origine de leur code.
+
+À la première utilisation, @command{guix git authenticate} enregistre
+désormais le commit et signataire (l'@dfn{introduction}) dans le fichier
+@file{.git/config} du dépôt, ce qui permet de ne pas avoir à les spécifier sur
+la ligne de commande les fois suivantes. La commande installe aussi des
+crochets « pre-push » et « post-merge », sauf si des crochets préexistants
+sont trouvés.
+
+Lancer @command{info \"(guix.fr) Invoquer guix git authenticate\"} pour en
+savoir plus.")))
+
+ (entry (commit "238a74c7dfd1469af064b445abcee38fd7408d5b")
+ (title
+ (en "Linux-libre 6.7 removed due to end of upstream support")
+ (de "Linux-libre 6.7 wurde entfernt"))
+ (body
+ (en "The linux-libre 6.7 kernel series has reached the end of
+ its life, and is no longer supported upstream. For this
+ reason, it has been removed from GNU Guix.")
+ (de "Die @code{linux-libre} 6.7-Versionsreihe hat ihr
+Supportende erreicht und wird nicht mehr unterstützt („end of life“). Daher ist die
+Versionsreihe aus GNU Guix entfernt worden.")))
(entry (commit "67a3a83170c038d2eb084d3f53a7ea7b033aea74")
(title
diff --git a/etc/snippets/tempel/scheme-mode b/etc/snippets/tempel/scheme-mode.eld
index 249f4ce8e3..21a5dd6dee 100644
--- a/etc/snippets/tempel/scheme-mode
+++ b/etc/snippets/tempel/scheme-mode.eld
@@ -1,5 +1,3 @@
--*- mode: lisp-data -*-
-
scheme-mode
(package...
diff --git a/etc/snippets/tempel/text-mode b/etc/snippets/tempel/text-mode.eld
index c635b7ee6f..397221b846 100644
--- a/etc/snippets/tempel/text-mode
+++ b/etc/snippets/tempel/text-mode.eld
@@ -1,5 +1,3 @@
--*- mode: lisp-data -*-
-
text-mode :when (bound-and-true-p git-commit-mode)
(add\ "gnu: Add "
diff --git a/etc/teams.scm b/etc/teams.scm
index d537e83efc..6b492f1d4b 100755
--- a/etc/teams.scm
+++ b/etc/teams.scm
@@ -183,6 +183,36 @@ and the r-build-system."
"Everything related to the Sugar Desktop and learning environment."
#:scope (list "gnu/packages/sugar.scm")))
+(define-team sysadmin
+ (team 'sysadmin
+ #:name "Sysadmin team"
+ #:description
+ "Networking, server clustering, high availability."
+ #:scope (list "gnu/packages/admin.scm"
+ "gnu/packages/acl.scm"
+ "gnu/packages/adns.scm"
+ "gnu/packages/antivirus.scm"
+ "gnu/packages/apparmor.scm"
+ "gnu/packages/authentication.scm"
+ "gnu/packages/cluster.scm"
+ "gnu/packages/configuration-management"
+ "gnu/packages/databases.scm"
+ "gnu/packages/distributed.scm"
+ "gnu/packages/dns.scm"
+ "gnu/packages/high-availability.scm"
+ "gnu/packages/kerberos.scm"
+ "gnu/packages/logging.scm"
+ "gnu/packages/monitoring.scm"
+ "gnu/packages/nfs.scm"
+ "gnu/packages/openldap.scm"
+ "gnu/packages/openstack.scm"
+ "gnu/packages/prometheus.scm"
+ "gnu/packages/selinux.scm"
+ "gnu/packages/storage.scm"
+ "gnu/packages/task-runners.scm"
+ "gnu/packages/terraform.scm"
+ "gnu/packages/virtualization.scm")))
+
(define-team telephony
(team 'telephony
#:name "Telephony team"
@@ -434,6 +464,16 @@ asdf-build-system."
(make-regexp* "^guix/scripts/")
(make-regexp* "^guix/store/"))))
+(define-team documentation
+ (team 'documentation
+ #:name "Documentation"
+ #:description "Documentation: the manual and cookbook."
+ #:scope (list (make-regexp* "\\.texi$")
+ "doc/build.scm"
+ "gnu/system/examples/bare-bones.tmpl"
+ "gnu/system/examples/lightweight-desktop.tmpl"
+ "gnu/system/examples/desktop.tmpl")))
+
(define-team core-packages
(team 'core-packages
#:name "Core packages"
@@ -444,7 +484,9 @@ asdf-build-system."
"gnu/packages/cross-base.scm"
"gnu/packages/gcc.scm"
"gnu/packages/guile.scm"
+ "gnu/packages/ld-wrapper.in"
"gnu/packages/make-bootstrap.scm"
+ "gnu/packages/multiprecision.scm"
"guix/build/gnu-build-system.scm"
"guix/build/utils.scm"
"guix/build-system/gnu.scm")))
@@ -453,7 +495,8 @@ asdf-build-system."
(team 'games
#:name "Games and Toys"
#:description "Packaging programs for amusement."
- #:scope (list "gnu/packages/games.scm"
+ #:scope (list "gnu/packages/emulators.scm"
+ "gnu/packages/games.scm"
"gnu/packages/game-development.scm"
"gnu/packages/minetest.scm"
"gnu/packages/esolangs.scm" ; granted, rather niche
@@ -500,11 +543,12 @@ asdf-build-system."
(team 'mozilla
#:name "Mozilla"
#:description
- "Taking care about Icecat and Icedove, built from Mozilla Firefox
-and Thunderbird."
+ "Taking care of Icedove and Web Browsers based on Mozilla Thunderbird
+and Firefox."
#:scope (list "gnu/build/icecat-extension.scm"
"gnu/packages/browser-extensions.scm"
"gnu/packages/gnuzilla.scm"
+ "gnu/packages/librewolf.scm"
"gnu/packages/tor-browsers.scm")))
(define-team racket
@@ -566,6 +610,15 @@ GLib/GIO, GTK, GStreamer and Webkit."
"guix/build/zig-build-system.scm"
"guix/build-system/zig.scm")))
+(define-team hurd
+ (team 'hurd
+ #:name "Team for the Hurd"
+ #:scope (list "gnu/system/hurd.scm"
+ "gnu/system/images/hurd.scm"
+ "gnu/build/hurd-boot.scm"
+ "gnu/services/hurd.scm"
+ "gnu/packages/hurd.scm")))
+
(define-member (person "Eric Bavier"
"bavier@posteo.net")
@@ -581,11 +634,12 @@ GLib/GIO, GTK, GStreamer and Webkit."
(define-member (person "Ludovic Courtès"
"ludo@gnu.org")
- core home bootstrap core-packages installer mentors)
+ core home bootstrap core-packages installer
+ documentation mentors)
(define-member (person "Andreas Enge"
"andreas@enge.fr")
- lxqt science tex)
+ bootstrap core-packages lxqt science tex)
(define-member (person "Tanguy Le Carrour"
"tanguy@bioneland.org")
@@ -593,7 +647,7 @@ GLib/GIO, GTK, GStreamer and Webkit."
(define-member (person "Tobias Geerinckx-Rice"
"me@tobias.gr")
- core kernel mentors)
+ core mentors)
(define-member (person "Leo Famulari"
"leo@famulari.name")
@@ -633,7 +687,7 @@ GLib/GIO, GTK, GStreamer and Webkit."
(define-member (person "Ricardo Wurmus"
"rekado@elephly.net")
- core mentors r sugar tex)
+ r sugar)
(define-member (person "Christopher Baines"
"guix@cbaines.net")
@@ -657,7 +711,7 @@ GLib/GIO, GTK, GStreamer and Webkit."
(define-member (person "Simon Tournier"
"zimon.toutoune@gmail.com")
- julia core mentors)
+ julia core mentors r)
(define-member (person "宋文武"
"iyzsong@envs.net")
@@ -677,7 +731,7 @@ GLib/GIO, GTK, GStreamer and Webkit."
(define-member (person "Maxim Cournoyer"
"maxim.cournoyer@gmail.com")
- gnome qt telephony)
+ documentation gnome qt telephony)
(define-member (person "Katherine Cox-Buday"
"cox.katherine.e+guix@gmail.com")
@@ -705,7 +759,7 @@ GLib/GIO, GTK, GStreamer and Webkit."
(define-member (person "Sharlatan Hellseher"
"sharlatanus@gmail.com")
- go lisp python science)
+ go lisp python science sysadmin)
(define-member (person "Vivien Kraus"
"vivien@planete-kraus.eu")
@@ -723,6 +777,22 @@ GLib/GIO, GTK, GStreamer and Webkit."
"adam.faiz@disroot.org")
games)
+(define-member (person "Laurent Gatto"
+ "laurent.gatto@gmail.com")
+ r)
+
+(define-member (person "Nicolas Goaziou"
+ "guix@nicolasgoaziou.fr")
+ tex)
+
+(define-member (person "André Batista"
+ "nandre@riseup.net")
+ mozilla)
+
+(define-member (person "Janneke Nieuwenhuizen"
+ "janneke@gnu.org")
+ bootstrap core-packages home hurd installer)
+
(define (find-team name)
(or (hash-ref %teams (string->symbol name))
diff --git a/etc/teams/rust/rusty-packages.scm b/etc/teams/rust/rusty-packages.scm
new file mode 100644
index 0000000000..07928b1c74
--- /dev/null
+++ b/etc/teams/rust/rusty-packages.scm
@@ -0,0 +1,46 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2024 Efraim Flashner <efraim@flashner.co.il>
+;;;
+;;; 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 GNU Guix. If not, see <http://www.gnu.org/licenses/>.
+
+;;; This file returns a manifest of packages built using the cargo-build-system
+;;; which are NOT prefixed with 'rust-' and the packages which use rust itself
+;;; as an input. This is a short list of packages which can be checked to see
+;;; if a rust update has gone smoothly. It is used to assist continuous
+;;; integration of the rust-team branch.
+
+(use-modules (guix packages)
+ (guix profiles)
+ (guix build-system)
+ (srfi srfi-1))
+
+(manifest
+ (map package->manifest-entry
+ (fold-packages
+ (lambda (package lst)
+ (if (or
+ (and (eq? (build-system-name (package-build-system package))
+ (quote cargo))
+ (not (string-prefix? "rust-" (package-name package))))
+ (any
+ (lambda (pkg)
+ (member (specification->package "rust") pkg))
+ (append (package-native-inputs package)
+ (package-propagated-inputs package)
+ (package-inputs package))))
+ (cons package lst)
+ lst))
+ (list))))