Merge branch 'version-1.4.0'

This commit is contained in:
Ludovic Courtès 2022-12-19 00:40:33 +01:00
commit 12ca767702
No known key found for this signature in database
GPG Key ID: 090B11993D9AEBB5
16 changed files with 107 additions and 40 deletions

32
NEWS
View File

@ -80,9 +80,28 @@ Please send Guix bug reports to bug-guix@gnu.org.
*** The init RAM disk honors more arguments—e.g. root and rootflags
*** guix system image can now generate WSL images
*** The mcron task scheduler logs now contain the jobs exit statuses
*** Chromium extensions are now built in a deterministic fashion
*** The rsync service lets you specify individual “modules”
*** New services
anonip, bitmask, fail2ban, gitile, greetd, jami, lightdm, log-cleanup,
nar-herder, opendht, rasdaemon, samba, seatd, strongswan, wsdd
*** 5311 new packages
*** 6573 package updates
Noteworthy updates:
bash 5.1.8, binutils 2.37, clojure 1.11.1, cups 2.3.3op2, emacs 28.2,
enlightenment 0.25.4, gcc-toolchain 12.2.0, gdb 12.1, ghc 8.10.7,
gimp 2.10.32, glibc 2.33, gnome 42.4, gnupg 2.2.32, go 1.19.1, guile 3.0.8,
icecat 102.5.0-guix0-preview1, icedtea 3.19.0, inkscape 1.2.1, julia 1.6.7,
libreoffice 7.4.3.2, linux-libre 6.0.10, ocaml 4.14.0, octave 7.2.0,
openjdk 18, perl 5.34.0, python2 2.7.18, python 3.9.9, racket 8.7,
rust 1.60.0, r 4.2.2, sbcl 2.2.10, shepherd 0.9.3, xorg-server 21.1.4
** Programming interfaces
*** Package input fields can now plain package lists
*** Package input fields can now be plain package lists
*** G-expressions can now be used in build phases
*** New modify-inputs macro to ease customizing a list of package inputs
*** New this-package-input and this-package-native-input macros
@ -92,7 +111,7 @@ Please send Guix bug reports to bug-guix@gnu.org.
*** texlive-union is now deprecated in favor of texlive-updmap.cfg
*** New (guix cpu) module
*** New (guix least-authority) module
*** New (guix plaform) module
*** New (guix platform) module
*** New (guix read-print) module
It provides a comment-preserving reader and a comment-preserving
@ -103,11 +122,14 @@ pretty-printer smarter than (ice-9 pretty-print).
This build system lets you build Guix instances from channel specifications,
similar to how 'guix time-machine' would do it, as regular packages.
*** New pyproject-build-system
This is an extension of python-build-system with support for PEP-517 and
pyproject.toml files. It may eventually get merged back into
python-build-system.
*** New elm-build-system
*** New rebar-build-system
*** New services
anonip, bitmask, fail2ban, gitile, greetd, jami, lightdm, log-cleanup,
nar-herder, opendht, rasdaemon, samba, seatd, strongswan, wsdd
** Noteworthy bug fixes
*** Fall back to Software Heritage when cloning a channel

View File

@ -10,8 +10,8 @@
@include version.texi
@c Identifier of the OpenPGP key used to sign tarballs and such.
@set OPENPGP-SIGNING-KEY-ID 27D586A4F8900854329FF09F1260E46482E63562
@set OPENPGP-SIGNING-KEY-URL https://sv.gnu.org/people/viewgpg.php?user_id=127547
@set OPENPGP-SIGNING-KEY-ID 3CE464558A84FDC69DB40CFB090B11993D9AEBB5
@set OPENPGP-SIGNING-KEY-URL https://sv.gnu.org/people/viewgpg.php?user_id=15145
@c Base URL for downloads.
@set BASE-URL https://ftp.gnu.org/gnu/guix
@ -39452,7 +39452,7 @@ $ qemu-system-x86_64 \
-nic user,model=virtio-net-pci \
-enable-kvm -m 2048 \
-device virtio-blk,drive=myhd \
-drive if=none,file=/tmp/qemu-image,id=myhd
-drive if=none,file=guix-system-vm-image-@value{VERSION}.x86_64-linux.qcow2,id=myhd
@end example
Here is what each of these options means:
@ -39488,8 +39488,9 @@ better performance than if it were emulating a complete disk drive. See the
QEMU and KVM documentation for more info.
@item -drive if=none,file=/tmp/qemu-image,id=myhd
Use our QCOW image, the @file{/tmp/qemu-image} file, as the backing
store of the ``myhd'' drive.
Use our QCOW image, the
@file{guix-system-vm-image-@value{VERSION}.x86_64-linux.qcow2} file, as
the backing store of the ``myhd'' drive.
@end table
The default @command{run-vm.sh} script that is returned by an invocation of

View File

@ -1,7 +1,7 @@
# htmlxref.cnf - reference file for free Texinfo manuals on the web.
# Modified by Ludovic Courtès <ludo@gnu.org> for the GNU Guix manual.
htmlxrefversion=2022-08-04.13; # UTC
htmlxrefversion=2022-12-18.15; # UTC
# Copyright 2010-2020, 2022 Free Software Foundation, Inc.
#
@ -409,6 +409,8 @@ GUILE_GNOME = ${GS}/guile-gnome/docs
guile-gtk node ${GS}/guile-gtk/docs/guile-gtk/
guile-netlink mono https://git.lepiller.eu/guile-netlink/manual/manual.html
guile-rpc mono ${GS}/guile-rpc/manual/guile-rpc.html
guile-rpc node ${GS}/guile-rpc/manual/html_node/
@ -420,6 +422,8 @@ GUIX = ${GUIX_ROOT}/manual
guix.es node ${GUIX}/es/html_node/
guix.fr mono ${GUIX}/fr/guix.fr.html
guix.fr node ${GUIX}/fr/html_node/
guix.pt_BR mono ${GUIX}/pt-br/guix.pt_BR.html
guix.pt_BR node ${GUIX}/pt-br/html_node/
guix.ru mono ${GUIX}/ru/guix.ru.html
guix.ru node ${GUIX}/ru/html_node/
guix.zh_CN mono ${GUIX}/zh-cn/guix.zh_CN.html
@ -428,10 +432,12 @@ GUIX = ${GUIX_ROOT}/manual
guix node ${GUIX}/en/html_node/
GUIX_COOKBOOK = ${GUIX_ROOT}/cookbook
guix-cookbook.de mono ${GUIX_COOKBOOK}/de/guix-cookbook.html
guix-cookbook.de mono ${GUIX_COOKBOOK}/de/guix-cookbook.de.html
guix-cookbook.de node ${GUIX_COOKBOOK}/de/html_node/
guix-cookbook.fr mono ${GUIX_COOKBOOK}/fr/guix-cookbook.html
guix-cookbook.fr mono ${GUIX_COOKBOOK}/fr/guix-cookbook.fr.html
guix-cookbook.fr node ${GUIX_COOKBOOK}/fr/html_node/
guix-cookbook.sk mono ${GUIX_COOKBOOK}/sk/guix-cookbook.sk.html
guix-cookbook.sk node ${GUIX_COOKBOOK}/sk/html_node/
guix-cookbook mono ${GUIX_COOKBOOK}/en/guix-cookbook.html
guix-cookbook node ${GUIX_COOKBOOK}/en/html_node/

View File

@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2018, 2020 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2019, 2020 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2019, 2020, 2022 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -114,6 +114,8 @@ it can interact with the rest of the system."
;; Catch SIGINT and kill the container process.
(sigaction SIGINT
(lambda (signum)
;: FIXME: Use of SIGKILL prevents the dynamic-wind exit handler of
;; THUNK to run.
(false-if-exception
(kill pid SIGKILL))))
@ -196,14 +198,16 @@ or #f. Return #t on success and #f on failure."
;; the loaded cow-store locale files will prevent umounting.
(install-locale locale)
;; Save the database, so that it can be restored once the
;; cow-store is umounted.
;; Stop the daemon and save the database, so that it can be
;; restored once the cow-store is umounted.
(stop-service 'guix-daemon)
(copy-file database-file saved-database)
(installer-log-line "mounting copy-on-write store")
(mount-cow-store (%installer-target-dir) backing-directory))
(lambda ()
;; We need to drag the guix-daemon to the container MNT
;; namespace, so that it can operate on the cow-store.
(stop-service 'guix-daemon)
(start-service 'guix-daemon (list (number->string (getpid))))
(setvbuf (current-output-port) 'none)
@ -213,11 +217,25 @@ or #f. Return #t on success and #f on failure."
(set! ret (run-command install-command #:tty? #t)))
(lambda ()
;; Restart guix-daemon so that it does no keep the MNT namespace
;; Stop guix-daemon so that it does no keep the MNT namespace
;; alive.
(restart-service 'guix-daemon)
(stop-service 'guix-daemon)
;; Restore the database and restart it. As part of restoring the
;; database, remove the WAL and shm files in case they were left
;; behind after guix-daemon was stopped. Failing to do so,
;; sqlite might behave as if transactions that appear in the WAL
;; file were committed. (See <https://www.sqlite.org/wal.html>.)
(installer-log-line "restoring store database from '~a'"
saved-database)
(copy-file saved-database database-file)
(for-each (lambda (suffix)
(false-if-exception
(delete-file (string-append database-file suffix))))
'("-wal" "-shm"))
(start-service 'guix-daemon)
;; Finally umount the cow-store and exit the container.
(installer-log-line "unmounting copy-on-write store")
(unmount-cow-store (%installer-target-dir) backing-directory)
(assert-exit ret))))))))

View File

@ -164,8 +164,8 @@
;; Latest version of Guix, which may or may not correspond to a release.
;; Note: the 'update-guix-package.scm' script expects this definition to
;; start precisely like this.
(let ((version "1.4.0rc2")
(commit "7866294e32f1e758d06fce4e1b1035eca3a7d772")
(let ((version "1.4.0")
(commit "8e2f32cee982d42a79e53fc1e9aa7b8ff0514714")
(revision 0))
(package
(name "guix")
@ -182,7 +182,7 @@
(commit commit)))
(sha256
(base32
"0np4fw5kq882nrkfgsvvwgcxqwvm6bzn3dbdf8p48nr7mfrm3rz9"))
"042mipw2bp9lc75m9g5q6rdifrp8483cmk57kwrdps0i3vd590dl"))
(file-name (string-append "guix-" version "-checkout"))))
(build-system gnu-build-system)
(arguments

View File

@ -72,6 +72,7 @@
#:select (dosfstools))
#:use-module ((gnu packages file-systems)
#:select (bcachefs-tools exfat-utils jfsutils zfs))
#:use-module (gnu packages fonts)
#:use-module (gnu packages terminals)
#:use-module ((gnu packages wm) #:select (sway))
#:use-module ((gnu build file-systems)
@ -2489,7 +2490,15 @@ notably to select, copy, and paste text. The default options use the
(documentation "kmscon virtual terminal")
(requirement '(user-processes udev dbus-system))
(provision (list (symbol-append 'term- (string->symbol virtual-terminal))))
(start #~(make-forkexec-constructor #$kmscon-command))
(start #~(make-forkexec-constructor
#$kmscon-command
;; The installer needs to be able to display glyphs from
;; various scripts, so give it access to freefont.
;; TODO: Make this configurable.
#:environment-variables
(list (string-append "XDG_DATA_DIRS="
#$font-gnu-freefont "/share"))))
(stop #~(make-kill-destructor)))))
(description "Start the @command{kmscon} virtual terminal emulator for the
Linux @dfn{kernel mode setting} (KMS).")))

View File

@ -284,13 +284,24 @@ templates under @file{/etc/configuration}.")))
;; appropriate options. The GUI installer needs it when the machine does not
;; support Kernel Mode Setting. Otherwise kmscon is missing /dev/fb0.
(define (uvesafb-shepherd-service _)
(define modprobe
(program-file "modprobe-wrapper"
#~(begin
;; Use a wrapper because shepherd 0.9.3 won't let us
;; pass environment variables to the child process:
;; <https://issues.guix.gnu.org/60106>.
(setenv "LINUX_MODULE_DIRECTORY"
"/run/booted-system/kernel/lib/modules")
(apply execl #$(file-append kmod "/bin/modprobe")
"modprobe" (cdr (command-line))))))
(list (shepherd-service
(documentation "Load the uvesafb kernel module if needed.")
(provision '(maybe-uvesafb))
(requirement '(file-systems))
(start #~(lambda ()
(or (file-exists? "/dev/fb0")
(invoke #+(file-append kmod "/bin/modprobe")
(invoke #+modprobe
"uvesafb"
(string-append "v86d=" #$v86d "/sbin/v86d")
"mode_option=1024x768"))))

View File

@ -2576,7 +2576,7 @@ Path DerivationGoal::openLogFile()
closeOnExec(fd);
if (!(fLogFile = fdopen(fd.borrow(), "w")))
throw SysError(format("opening file `%1%'") % logFileName);
throw SysError(format("opening log file `%1%'") % logFileName);
int err;
if (!(bzLogFile = BZ2_bzWriteOpen(&err, fLogFile, 9, 0, 0)))

View File

@ -244,7 +244,7 @@ Hash hashFile(HashType ht, const Path & path)
start(ht, ctx);
AutoCloseFD fd = open(path.c_str(), O_RDONLY);
if (fd == -1) throw SysError(format("opening file `%1%'") % path);
if (fd == -1) throw SysError(format("computing hash of file `%1%'") % path);
unsigned char buf[8192];
ssize_t n;

View File

@ -264,7 +264,7 @@ string readFile(const Path & path, bool drain)
{
AutoCloseFD fd = open(path.c_str(), O_RDONLY);
if (fd == -1)
throw SysError(format("opening file `%1%'") % path);
throw SysError(format("reading file `%1%'") % path);
return drain ? drainFD(fd) : readFile(fd);
}
@ -273,7 +273,7 @@ void writeFile(const Path & path, const string & s)
{
AutoCloseFD fd = open(path.c_str(), O_WRONLY | O_TRUNC | O_CREAT, 0666);
if (fd == -1)
throw SysError(format("opening file '%1%'") % path);
throw SysError(format("writing file '%1%'") % path);
writeFull(fd, s);
}

View File

@ -13,7 +13,7 @@ msgstr ""
"Project-Id-Version: guix-manual 1.2.0-pre3\n"
"Report-Msgid-Bugs-To: bug-guix@gnu.org\n"
"POT-Creation-Date: 2022-12-02 03:18+0000\n"
"PO-Revision-Date: 2022-12-03 17:33+0000\n"
"PO-Revision-Date: 2022-12-15 00:11+0100\n"
"Last-Translator: Florian Pelz <pelzflorian@pelzflorian.de>\n"
"Language-Team: German <https://translate.fedoraproject.org/projects/guix/documentation-manual/de/>\n"
"Language: de\n"
@ -73899,7 +73899,7 @@ msgstr "-drive if=none,file=/tmp/qemu-image,id=myhd"
#. type: table
#: guix-git/doc/guix.texi:39296
msgid "Use our QCOW image, the @file{/tmp/qemu-image} file, as the backing store of the ``myhd'' drive."
msgid "Use our QCOW image, the @file{guix-system-vm-image-@value{VERSION}.x86_64-linux.qcow2} file, as the backing store of the ``myhd'' drive."
msgstr "Unser QCOW-Abbild in der Datei @file{/tmp/qemu-image} soll als Inhalt des „myhd“-Laufwerks herhalten."
#. type: Plain text

View File

@ -55,7 +55,7 @@ msgstr ""
"Project-Id-Version: guix-manual 1.2.0-pre3\n"
"Report-Msgid-Bugs-To: bug-guix@gnu.org\n"
"POT-Creation-Date: 2022-12-02 03:18+0000\n"
"PO-Revision-Date: 2022-11-04 11:27+0000\n"
"PO-Revision-Date: 2022-12-15 00:11+0100\n"
"Last-Translator: Julien Lepiller <fedora-account@lepiller.eu>\n"
"Language-Team: Spanish <https://translate.fedoraproject.org/projects/guix/documentation-manual/es/>\n"
"Language: es\n"
@ -77483,7 +77483,7 @@ msgstr "-drive if=none,file=/tmp/imagen-qemu,id=midisco"
#. type: table
#: guix-git/doc/guix.texi:39296
msgid "Use our QCOW image, the @file{/tmp/qemu-image} file, as the backing store of the ``myhd'' drive."
msgid "Use our QCOW image, the @file{guix-system-vm-image-@value{VERSION}.x86_64-linux.qcow2} file, as the backing store of the ``myhd'' drive."
msgstr "Usa nuestra imagen QCOW, el archivo @file{/tmp/imagen-qemu}, como almacenamiento físico para la unidad ``midisco''."
#. type: Plain text

View File

@ -46,7 +46,7 @@ msgstr ""
"Project-Id-Version: guix-manual 1.2.0-pre3\n"
"Report-Msgid-Bugs-To: bug-guix@gnu.org\n"
"POT-Creation-Date: 2022-12-02 03:18+0000\n"
"PO-Revision-Date: 2022-12-03 17:33+0000\n"
"PO-Revision-Date: 2022-12-15 00:11+0100\n"
"Last-Translator: Julien Lepiller <fedora-account@lepiller.eu>\n"
"Language-Team: French <https://translate.fedoraproject.org/projects/guix/documentation-manual/fr/>\n"
"Language: fr\n"
@ -74054,7 +74054,7 @@ msgstr "-drive if=none,file=/tmp/qemu-image,id=myhd"
#. type: table
#: guix-git/doc/guix.texi:39296
msgid "Use our QCOW image, the @file{/tmp/qemu-image} file, as the backing store of the ``myhd'' drive."
msgid "Use our QCOW image, the @file{guix-system-vm-image-@value{VERSION}.x86_64-linux.qcow2} file, as the backing store of the ``myhd'' drive."
msgstr "Utilise notre image QCOW, le fichier @file{/tmp/qemu-image}, comme stockage pour le lecteur « myhd »."
#. type: Plain text

View File

@ -10,7 +10,7 @@ msgstr ""
"Project-Id-Version: guix manual checkout\n"
"Report-Msgid-Bugs-To: bug-guix@gnu.org\n"
"POT-Creation-Date: 2022-12-02 03:18+0000\n"
"PO-Revision-Date: 2022-01-25 15:16+0000\n"
"PO-Revision-Date: 2022-12-15 00:11+0100\n"
"Last-Translator: Fábio Rodrigues Ribeiro <farribeiro@gmail.com>\n"
"Language-Team: Portuguese (Brazil) <https://translate.fedoraproject.org/projects/guix/documentation-manual/pt_BR/>\n"
"Language: pt_BR\n"
@ -71324,7 +71324,7 @@ msgstr ""
#. type: table
#: guix-git/doc/guix.texi:39296
msgid "Use our QCOW image, the @file{/tmp/qemu-image} file, as the backing store of the ``myhd'' drive."
msgid "Use our QCOW image, the @file{guix-system-vm-image-@value{VERSION}.x86_64-linux.qcow2} file, as the backing store of the ``myhd'' drive."
msgstr ""
#. type: Plain text

View File

@ -16,7 +16,7 @@ msgstr ""
"Project-Id-Version: guix-manual 1.2.0-pre2\n"
"Report-Msgid-Bugs-To: bug-guix@gnu.org\n"
"POT-Creation-Date: 2022-12-02 03:18+0000\n"
"PO-Revision-Date: 2021-12-11 23:16+0000\n"
"PO-Revision-Date: 2022-12-15 00:11+0100\n"
"Last-Translator: Nikolay Korotkiy <sikmir@disroot.org>\n"
"Language-Team: Russian <https://translate.fedoraproject.org/projects/guix/documentation-manual/ru/>\n"
"Language: ru\n"
@ -72867,7 +72867,7 @@ msgstr ""
#. type: table
#: guix-git/doc/guix.texi:39296
msgid "Use our QCOW image, the @file{/tmp/qemu-image} file, as the backing store of the ``myhd'' drive."
msgid "Use our QCOW image, the @file{guix-system-vm-image-@value{VERSION}.x86_64-linux.qcow2} file, as the backing store of the ``myhd'' drive."
msgstr ""
#. type: Plain text

View File

@ -16,7 +16,7 @@ msgstr ""
"Project-Id-Version: guix-manual 1.0.1-pre1\n"
"Report-Msgid-Bugs-To: bug-guix@gnu.org\n"
"POT-Creation-Date: 2022-12-02 03:18+0000\n"
"PO-Revision-Date: 2022-09-22 13:19+0000\n"
"PO-Revision-Date: 2022-12-15 00:11+0100\n"
"Last-Translator: Yang Yulin <yylteam@icloud.com>\n"
"Language-Team: Chinese (Simplified) <https://translate.fedoraproject.org/projects/guix/documentation-manual/zh_CN/>\n"
"Language: zh_CN\n"
@ -71148,7 +71148,7 @@ msgstr ""
#. type: table
#: guix-git/doc/guix.texi:39296
msgid "Use our QCOW image, the @file{/tmp/qemu-image} file, as the backing store of the ``myhd'' drive."
msgid "Use our QCOW image, the @file{guix-system-vm-image-@value{VERSION}.x86_64-linux.qcow2} file, as the backing store of the ``myhd'' drive."
msgstr ""
#. type: Plain text