From 09b984b77d060e6fd37833541b828f73238cf2be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Wed, 14 Dec 2022 09:50:38 +0100 Subject: [PATCH 01/13] doc: Verify the release with my own OpenPGP key. * doc/guix.texi (OPENPGP-SIGNING-KEY-ID, OPENPGP-SIGNING-KEY-URL): Switch to my key. --- doc/guix.texi | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index e547d469f4..84bfa390f7 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -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 From 2cf16f2c31e5e124754ec8c400f22ad9fe4a506b Mon Sep 17 00:00:00 2001 From: Bruno Victal Date: Tue, 29 Nov 2022 21:21:59 +0000 Subject: [PATCH 02/13] doc: Fix formatting for 'computed-file'. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * doc/guix.texi (G-Expressions): Fix formatting for 'computed-file'. Signed-off-by: Ludovic Courtès --- doc/guix.texi | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 84bfa390f7..2fc73b8f3e 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -11706,8 +11706,7 @@ This is the declarative counterpart of @code{text-file}. @end deffn @deffn {Scheme Procedure} computed-file @var{name} @var{gexp} @ - [#:local-build? #t] - [#:options '()] + [#:local-build? #t] [#:options '()] Return an object representing the store item @var{name}, a file or directory computed by @var{gexp}. When @var{local-build?} is true (the default), the derivation is built locally. @var{options} is a list of From 047ae5c3458d03bea4926e6cc1760bcfce1e2ab4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Thu, 15 Dec 2022 00:12:43 +0100 Subject: [PATCH 03/13] doc: Use VM image file name consistently. Previously, what "/tmp/qemu-image" refers to could be unclear at first. * doc/guix.texi (Running Guix in a VM): Use the original image file name instead of /tmp/qemu-image. * po/doc/guix-manual.de.po, po/doc/guix-manual.es.po, po/doc/guix-manual.fr.po, po/doc/guix-manual.pt_BR.po, po/doc/guix-manual.ru.po, po/doc/guix-manual.zh_CN.po: Adjust accordingly. --- doc/guix.texi | 7 ++++--- po/doc/guix-manual.de.po | 4 ++-- po/doc/guix-manual.es.po | 4 ++-- po/doc/guix-manual.fr.po | 4 ++-- po/doc/guix-manual.pt_BR.po | 4 ++-- po/doc/guix-manual.ru.po | 4 ++-- po/doc/guix-manual.zh_CN.po | 4 ++-- 7 files changed, 16 insertions(+), 15 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 2fc73b8f3e..784114f0bb 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -39223,7 +39223,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: @@ -39259,8 +39259,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 diff --git a/po/doc/guix-manual.de.po b/po/doc/guix-manual.de.po index e8b2de6943..b33bce32e9 100644 --- a/po/doc/guix-manual.de.po +++ b/po/doc/guix-manual.de.po @@ -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 \n" "Language-Team: German \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 diff --git a/po/doc/guix-manual.es.po b/po/doc/guix-manual.es.po index ec048f03e3..a7441941b9 100644 --- a/po/doc/guix-manual.es.po +++ b/po/doc/guix-manual.es.po @@ -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 \n" "Language-Team: Spanish \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 diff --git a/po/doc/guix-manual.fr.po b/po/doc/guix-manual.fr.po index bec07beebf..aed8e16128 100644 --- a/po/doc/guix-manual.fr.po +++ b/po/doc/guix-manual.fr.po @@ -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 \n" "Language-Team: French \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 diff --git a/po/doc/guix-manual.pt_BR.po b/po/doc/guix-manual.pt_BR.po index bfe3e98eb1..0372dc2c13 100644 --- a/po/doc/guix-manual.pt_BR.po +++ b/po/doc/guix-manual.pt_BR.po @@ -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 \n" "Language-Team: Portuguese (Brazil) \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 diff --git a/po/doc/guix-manual.ru.po b/po/doc/guix-manual.ru.po index 2efbce94c1..9738d516c6 100644 --- a/po/doc/guix-manual.ru.po +++ b/po/doc/guix-manual.ru.po @@ -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 \n" "Language-Team: Russian \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 diff --git a/po/doc/guix-manual.zh_CN.po b/po/doc/guix-manual.zh_CN.po index 7e53f0f41d..f5abe54b11 100644 --- a/po/doc/guix-manual.zh_CN.po +++ b/po/doc/guix-manual.zh_CN.po @@ -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 \n" "Language-Team: Chinese (Simplified) \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 From b1aef25453067004279c4267cf25e8d6d365890d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Thu, 15 Dec 2022 23:54:10 +0100 Subject: [PATCH 04/13] install: Make sure uvesafb can be loaded. Fixes . Reported by pelzflorian (Florian Pelz) . Previously, the 'modprobe' executable would try and fail to load the module from /lib/modules/*. Set 'LINUX_MODULE_DIRECTORY' to make sure 'modprobe' looks for the module in the right place. * gnu/system/install.scm (uvesafb-shepherd-service)[modprobe]: New variable. In 'start' method, invoke it instead of KMOD/bin/modprobe. --- gnu/system/install.scm | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/gnu/system/install.scm b/gnu/system/install.scm index f6f1923121..3dd9e0e87b 100644 --- a/gnu/system/install.scm +++ b/gnu/system/install.scm @@ -284,13 +284,24 @@ (define %nscd-minimal-caches ;; 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: + ;; . + (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")))) From 239bfe2ec1fa3b4305500211e6cade6e4bda2a62 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sat, 17 Dec 2022 19:15:50 +0100 Subject: [PATCH 05/13] Update NEWS. --- NEWS | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/NEWS b/NEWS index c35f1266cf..3d89138fa0 100644 --- a/NEWS +++ b/NEWS @@ -80,9 +80,10 @@ 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 ** 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 +93,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,6 +104,12 @@ 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 From 2d4d26769d6a3be1b21302b0bb2bd099fd55ccf8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sat, 17 Dec 2022 12:25:47 +0100 Subject: [PATCH 06/13] daemon: Make "opening file" error messages distinguishable. * nix/libstore/build.cc (DerivationGoal::openLogFile): Customize "opening file" error message. * nix/libutil/hash.cc (hashFile): Likewise. * nix/libutil/util.cc (readFile, writeFile): Likewise. --- nix/libstore/build.cc | 2 +- nix/libutil/hash.cc | 2 +- nix/libutil/util.cc | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/nix/libstore/build.cc b/nix/libstore/build.cc index 10a6093bd5..c5383bc756 100644 --- a/nix/libstore/build.cc +++ b/nix/libstore/build.cc @@ -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))) diff --git a/nix/libutil/hash.cc b/nix/libutil/hash.cc index 7853acdd49..9ba604eb85 100644 --- a/nix/libutil/hash.cc +++ b/nix/libutil/hash.cc @@ -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; diff --git a/nix/libutil/util.cc b/nix/libutil/util.cc index 4d3780e3c2..82eac72120 100644 --- a/nix/libutil/util.cc +++ b/nix/libutil/util.cc @@ -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); } From a8f9579348aae58b68b25004cfd28aa7407db802 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sat, 17 Dec 2022 22:39:37 +0100 Subject: [PATCH 07/13] Update NEWS. --- NEWS | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/NEWS b/NEWS index 3d89138fa0..47545f6bae 100644 --- a/NEWS +++ b/NEWS @@ -81,6 +81,24 @@ Please send Guix bug reports to bug-guix@gnu.org. *** ‘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 be plain package lists @@ -112,9 +130,6 @@ This is an extension of ‘python-build-system’ with support for PEP-517 and *** 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 From 9b6703eabee07068328a5e489deb3d532f242daa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sat, 17 Dec 2022 23:36:02 +0100 Subject: [PATCH 08/13] installer: final: Stop guix-daemon before accessing store database. As part of fixing , make sure /var/guix/db.sqlite is only copied while guix-daemon is stopped. * gnu/installer/final.scm (call-with-mnt-container): Add FIXME comment. (install-system): Copy DATABASE-FILE and SAVED-DATABASE only when 'guix-daemon' is stopped. Add logging lines. --- gnu/installer/final.scm | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/gnu/installer/final.scm b/gnu/installer/final.scm index 044f79372b..f5601d8649 100644 --- a/gnu/installer/final.scm +++ b/gnu/installer/final.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2018, 2020 Mathieu Othacehe -;;; Copyright © 2019, 2020 Ludovic Courtès +;;; Copyright © 2019, 2020, 2022 Ludovic Courtès ;;; ;;; This file is part of GNU Guix. ;;; @@ -114,6 +114,8 @@ (define (call-with-mnt-container thunk) ;; 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 @@ (define (assert-exit x) ;; 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,17 @@ (define (assert-exit x) (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. + (installer-log-line "restoring store database from '~a'" + saved-database) (copy-file saved-database database-file) + (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)))))))) From 495c50008be91429ebea3805e161a1e385a2a572 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sun, 18 Dec 2022 00:35:21 +0100 Subject: [PATCH 09/13] installer: final: Delete SQLite WAL and shm files upon completion. Previously, db.sqlite-{wal,shm} could be left behind after stopping guix-daemon. When resuming installation, SQLite could end up behaving as if transactions visible in the WAL file had been committed, in spite of having restored SAVED-DATABASE. Fixes . Reported by pelzflorian (Florian Pelz) . * gnu/installer/final.scm (install-system): Before restarting guix-daemon, delete db.sqlite-{wal,shm}. --- gnu/installer/final.scm | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/gnu/installer/final.scm b/gnu/installer/final.scm index f5601d8649..069426a3b8 100644 --- a/gnu/installer/final.scm +++ b/gnu/installer/final.scm @@ -221,10 +221,18 @@ (define (assert-exit x) ;; alive. (stop-service 'guix-daemon) - ;; Restore the database and restart it. + ;; 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 .) (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. From d7d049fdcd80e27a42b31766890f589f482a4f23 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sun, 18 Dec 2022 13:08:04 +0100 Subject: [PATCH 10/13] services: kmsconf: Load GNU Freefont. This provides glyphs for additional fonts such as Amharic that were otherwise missing. Fixes . Reported by Wolf . * gnu/services/base.scm (kmscon-service-type): In 'start' method, pass #:environment-variables to set 'XDG_DATA_DIRS'. --- gnu/services/base.scm | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/gnu/services/base.scm b/gnu/services/base.scm index 2b1974d77e..565e8d9e98 100644 --- a/gnu/services/base.scm +++ b/gnu/services/base.scm @@ -72,6 +72,7 @@ (define-module (gnu services base) #: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) @@ -2487,7 +2488,15 @@ (define kmscon-command (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)."))) From b77b4c7c3a5ac180f5aed0983be50ffbe6832f87 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sun, 18 Dec 2022 15:53:43 +0100 Subject: [PATCH 11/13] doc: Add guile-netlink to 'htmlxref.cnf'. * doc/htmlxref.cnf: Add guile-netlink. --- doc/htmlxref.cnf | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/doc/htmlxref.cnf b/doc/htmlxref.cnf index 21efbe2ddc..d961c91c56 100644 --- a/doc/htmlxref.cnf +++ b/doc/htmlxref.cnf @@ -1,7 +1,7 @@ # htmlxref.cnf - reference file for free Texinfo manuals on the web. # Modified by Ludovic Courtès for the GNU Guix manual. -htmlxrefversion=2022-08-04.13; # UTC +htmlxrefversion=2022-12-18.14; # 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/ From 8e2f32cee982d42a79e53fc1e9aa7b8ff0514714 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sun, 18 Dec 2022 16:01:32 +0100 Subject: [PATCH 12/13] doc: Update URLs for the manual and cookbook translations. * doc/htmlxref.cnf: Update URLs for "guix" and "guix-cookbook". --- doc/htmlxref.cnf | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/doc/htmlxref.cnf b/doc/htmlxref.cnf index d961c91c56..d8a7aa12c9 100644 --- a/doc/htmlxref.cnf +++ b/doc/htmlxref.cnf @@ -1,7 +1,7 @@ # htmlxref.cnf - reference file for free Texinfo manuals on the web. # Modified by Ludovic Courtès for the GNU Guix manual. -htmlxrefversion=2022-12-18.14; # UTC +htmlxrefversion=2022-12-18.15; # UTC # Copyright 2010-2020, 2022 Free Software Foundation, Inc. # @@ -422,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 @@ -430,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/ From 989a3916dc8967bcb7275f10452f89bc6c3389cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sun, 18 Dec 2022 16:30:58 +0100 Subject: [PATCH 13/13] gnu: guix: Update to 1.4.0. --- gnu/packages/package-management.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index 5a09b1fcf8..5ab6f60763 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -164,8 +164,8 @@ (define-public guix ;; 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 @@ (define-public guix (commit commit))) (sha256 (base32 - "0np4fw5kq882nrkfgsvvwgcxqwvm6bzn3dbdf8p48nr7mfrm3rz9")) + "042mipw2bp9lc75m9g5q6rdifrp8483cmk57kwrdps0i3vd590dl")) (file-name (string-append "guix-" version "-checkout")))) (build-system gnu-build-system) (arguments