summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
Diffstat (limited to 'doc')
-rw-r--r--doc/build.scm2
-rw-r--r--doc/contributing.texi200
-rw-r--r--doc/guix-cookbook.texi18
-rw-r--r--doc/guix.texi716
-rw-r--r--doc/htmlxref.cnf6
-rw-r--r--doc/images/bootstrap-graph.dot52
-rw-r--r--doc/images/bootstrap-packages.dot32
-rw-r--r--doc/images/coreutils-bag-graph.dot56
-rw-r--r--doc/images/coreutils-graph.dot18
-rw-r--r--doc/images/gcc-core-mesboot0-graph.dot28
-rw-r--r--doc/images/service-graph.dot16
-rw-r--r--doc/images/shepherd-graph.dot54
-rw-r--r--doc/local.mk105
13 files changed, 704 insertions, 599 deletions
diff --git a/doc/build.scm b/doc/build.scm
index 9ab2ca32d2..20d6624653 100644
--- a/doc/build.scm
+++ b/doc/build.scm
@@ -70,7 +70,7 @@
(define %cookbook-languages
;; Available translations for the 'guix-cookbook' text domain.
- '("de" "en" "fr" "sk"))
+ '("de" "en" "fr" "ko" "pt_BR" "sk"))
(define %languages
;; Available translations for the document being built.
diff --git a/doc/contributing.texi b/doc/contributing.texi
index f5b01f42fd..ad0f5a8ecd 100644
--- a/doc/contributing.texi
+++ b/doc/contributing.texi
@@ -20,7 +20,9 @@ on-line communication; they can use any name or pseudonym of their
choice.
@menu
+* Requirements:: Software needed to build and run Guix.
* Building from Git:: The latest and greatest.
+* Running the Test Suite:: Testing Guix.
* Running Guix Before It Is Installed:: Hacker tricks.
* The Perfect Setup:: The right tools.
* Alternative Setups:: Other possible tools that do the job.
@@ -36,6 +38,103 @@ choice.
* Translating Guix:: Make Guix speak your native language.
@end menu
+@node Requirements
+@section Requirements
+
+This section lists requirements when building Guix from source. The
+build procedure for Guix is the same as for other GNU software, and is
+not covered here. Please see the files @file{README} and @file{INSTALL}
+in the Guix source tree for additional details.
+
+@cindex official website
+GNU Guix is available for download from its website at
+@url{https://www.gnu.org/software/guix/}.
+
+GNU Guix depends on the following packages:
+
+@itemize
+@item @url{https://gnu.org/software/guile/, GNU Guile}, version 3.0.x,
+version 3.0.3 or later;
+@item @url{https://notabug.org/cwebber/guile-gcrypt, Guile-Gcrypt}, version
+0.1.0 or later;
+@item
+@uref{https://gitlab.com/gnutls/guile/, Guile-GnuTLS} (@pxref{Guile
+Preparations, how to install the GnuTLS bindings for Guile,,
+gnutls-guile, GnuTLS-Guile})@footnote{The Guile bindings to
+@uref{https://gnutls.org/, GnuTLS} were distributed as part of GnuTLS
+until version 3.7.8 included.};
+@item
+@uref{https://notabug.org/guile-sqlite3/guile-sqlite3, Guile-SQLite3}, version 0.1.0
+or later;
+@item @uref{https://notabug.org/guile-zlib/guile-zlib, Guile-zlib},
+version 0.1.0 or later;
+@item @uref{https://notabug.org/guile-lzlib/guile-lzlib, Guile-lzlib};
+@item @uref{https://www.nongnu.org/guile-avahi/, Guile-Avahi};
+@item
+@uref{https://gitlab.com/guile-git/guile-git, Guile-Git}, version 0.5.0
+or later;
+@item @uref{https://git-scm.com, Git} (yes, both!);
+@item @uref{https://savannah.nongnu.org/projects/guile-json/, Guile-JSON}
+4.3.0 or later;
+@item @url{https://www.gnu.org/software/make/, GNU Make}.
+@end itemize
+
+The following dependencies are optional:
+
+@itemize
+@item
+@c Note: We need at least 0.13.0 for #:nodelay.
+Support for build offloading (@pxref{Daemon Offload Setup}) and
+@command{guix copy} (@pxref{Invoking guix copy}) depends on
+@uref{https://github.com/artyom-poptsov/guile-ssh, Guile-SSH},
+version 0.13.0 or later.
+
+@item
+@uref{https://notabug.org/guile-zstd/guile-zstd, Guile-zstd}, for zstd
+compression and decompression in @command{guix publish} and for
+substitutes (@pxref{Invoking guix publish}).
+
+@item
+@uref{https://ngyro.com/software/guile-semver.html, Guile-Semver} for
+the @code{crate} importer (@pxref{Invoking guix import}).
+
+@item
+@uref{https://www.nongnu.org/guile-lib/doc/ref/htmlprag/, Guile-Lib} for
+the @code{go} importer (@pxref{Invoking guix import}) and for some of
+the ``updaters'' (@pxref{Invoking guix refresh}).
+
+@item
+When @url{http://www.bzip.org, libbz2} is available,
+@command{guix-daemon} can use it to compress build logs.
+@end itemize
+
+Unless @option{--disable-daemon} was passed to @command{configure}, the
+following packages are also needed:
+
+@itemize
+@item @url{https://gnupg.org/, GNU libgcrypt};
+@item @url{https://sqlite.org, SQLite 3};
+@item @url{https://gcc.gnu.org, GCC's g++}, with support for the
+C++11 standard.
+@end itemize
+
+@cindex state directory
+@cindex localstatedir
+@cindex system configuration directory
+@cindex sysconfdir
+When configuring Guix on a system that already has a Guix installation,
+be sure to specify the same state directory as the existing installation
+using the @option{--localstatedir} option of the @command{configure}
+script (@pxref{Directory Variables, @code{localstatedir},, standards,
+GNU Coding Standards}). Usually, this @var{localstatedir} option is set
+to the value @file{/var}. The @command{configure} script protects
+against unintended misconfiguration of @var{localstatedir} so you do not
+inadvertently corrupt your store (@pxref{The Store}). The configuration
+directory should also be configured by setting the @option{--sysconfdir}
+option to the @file{/etc} value, which is the location used by Guix to
+store for example the access control list of authorized machines and the
+definition of offload machines.
+
@node Building from Git
@section Building from Git
@@ -203,6 +302,107 @@ example, the @code{origin} record) has changed, and all of guix needs
to be recompiled to take that change into account. To do so, run
@command{make clean-go} followed by @command{make}.
+Should @command{make} fail with an Automake error message after
+updating, you need to repeat the steps outlined in this section,
+commencing with @command{./bootstrap}.
+
+@node Running the Test Suite
+@section Running the Test Suite
+
+@cindex test suite
+After a successful @command{configure} and @code{make} run, it is a good
+idea to run the test suite. It can help catch issues with the setup or
+environment, or bugs in Guix itself---and really, reporting test
+failures is a good way to help improve the software. To run the test
+suite, type:
+
+@example
+make check
+@end example
+
+Test cases can run in parallel: you can use the @code{-j} option of
+GNU@tie{}make to speed things up. The first run may take a few minutes
+on a recent machine; subsequent runs will be faster because the store
+that is created for test purposes will already have various things in
+cache.
+
+It is also possible to run a subset of the tests by defining the
+@code{TESTS} makefile variable as in this example:
+
+@example
+make check TESTS="tests/store.scm tests/cpio.scm"
+@end example
+
+By default, tests results are displayed at a file level. In order to
+see the details of every individual test cases, it is possible to define
+the @code{SCM_LOG_DRIVER_FLAGS} makefile variable as in this example:
+
+@example
+make check TESTS="tests/base64.scm" SCM_LOG_DRIVER_FLAGS="--brief=no"
+@end example
+
+The underlying SRFI 64 custom Automake test driver used for the 'check'
+test suite (located at @file{build-aux/test-driver.scm}) also allows
+selecting which test cases to run at a finer level, via its
+@option{--select} and @option{--exclude} options. Here's an example, to
+run all the test cases from the @file{tests/packages.scm} test file
+whose names start with ``transaction-upgrade-entry'':
+
+@example
+export SCM_LOG_DRIVER_FLAGS="--select=^transaction-upgrade-entry"
+make check TESTS="tests/packages.scm"
+@end example
+
+Those wishing to inspect the results of failed tests directly from the
+command line can add the @option{--errors-only=yes} option to the
+@code{SCM_LOG_DRIVER_FLAGS} makefile variable and set the @code{VERBOSE}
+Automake makefile variable, as in:
+
+@example
+make check SCM_LOG_DRIVER_FLAGS="--brief=no --errors-only=yes" VERBOSE=1
+@end example
+
+The @option{--show-duration=yes} option can be used to print the
+duration of the individual test cases, when used in combination with
+@option{--brief=no}:
+
+@example
+make check SCM_LOG_DRIVER_FLAGS="--brief=no --show-duration=yes"
+@end example
+
+@xref{Parallel Test Harness,,,automake,GNU Automake} for more
+information about the Automake Parallel Test Harness.
+
+Upon failure, please email @email{bug-guix@@gnu.org} and attach the
+@file{test-suite.log} file. Please specify the Guix version being used
+as well as version numbers of the dependencies (@pxref{Requirements}) in
+your message.
+
+Guix also comes with a whole-system test suite that tests complete
+Guix System instances. It can only run on systems where
+Guix is already installed, using:
+
+@example
+make check-system
+@end example
+
+@noindent
+or, again, by defining @code{TESTS} to select a subset of tests to run:
+
+@example
+make check-system TESTS="basic mcron"
+@end example
+
+These system tests are defined in the @code{(gnu tests @dots{})}
+modules. They work by running the operating systems under test with
+lightweight instrumentation in a virtual machine (VM). They can be
+computationally intensive or rather cheap, depending on whether
+substitutes are available for their dependencies (@pxref{Substitutes}).
+Some of them require a lot of storage space to hold VM images.
+
+Again in case of test failures, please send @email{bug-guix@@gnu.org}
+all the details.
+
@node Running Guix Before It Is Installed
@section Running Guix Before It Is Installed
diff --git a/doc/guix-cookbook.texi b/doc/guix-cookbook.texi
index e7ef5fa784..3bc63cba7a 100644
--- a/doc/guix-cookbook.texi
+++ b/doc/guix-cookbook.texi
@@ -64,9 +64,11 @@ its API, and related concepts.
@c how to join your own translation team and how to report issues with the
@c translation.
This manual is also available in French (@pxref{Top,,, guix-cookbook.fr,
-Livre de recettes de GNU Guix}), German (@pxref{Top,,,
-guix-cookbook.de, GNU-Guix-Kochbuch}) and Slovak (@pxref{Top,,,
-guix-cookbook.sk, Receptár GNU Guix}). If you would like to translate
+Livre de recettes de GNU Guix}), German (@pxref{Top,,, guix-cookbook.de,
+GNU-Guix-Kochbuch}), Korean (@pxref{Top,,, guix-cookbook.ko, GNU Guix 쿡북}),
+Brazilian Portuguese (@pxref{Top,,, guix-cookbook.pt_BR,
+Livro de Receitas do GNU Guix}) and Slovak (@pxref{Top,,, guix-cookbook.sk,
+Receptár GNU Guix}). If you would like to translate
this document in your native language, consider joining
@uref{https://translate.fedoraproject.org/projects/guix/documentation-cookbook,
Weblate} (@pxref{Translating Guix,,, guix, GNU Guix reference
@@ -2546,7 +2548,6 @@ is below. Save the resulting file as @file{guix-config.scm}.
(use-service-modules networking
ssh)
(use-package-modules admin
- certs
package-management
ssh
tls)
@@ -2584,8 +2585,7 @@ is below. Save the resulting file as @file{guix-config.scm}.
(home-directory "/home/janedoe"))
%base-user-accounts))
- (packages (cons* nss-certs ;for HTTPS access
- openssh-sans-x
+ (packages (cons* openssh-sans-x
%base-packages))
(services (cons*
@@ -2794,7 +2794,7 @@ here is a sample:
@lisp
(use-modules (gnu) (guix))
(use-service-modules networking ssh vpn virtualization sysctl admin mcron)
-(use-package-modules ssh certs tls tmux vpn virtualization)
+(use-package-modules ssh tls tmux vpn virtualization)
(operating-system
(host-name "kimsufi")
@@ -2846,7 +2846,7 @@ root ALL=(ALL) ALL
guix ALL=(ALL) NOPASSWD:ALL\n"))
;; Globally-installed packages.
- (packages (cons* tmux nss-certs gnutls wireguard-tools %base-packages))
+ (packages (cons* tmux gnutls wireguard-tools %base-packages))
(services
(cons*
(service static-networking-service-type
@@ -3803,7 +3803,7 @@ the guest.
@quotation Important
By default, a single MAC address is used for all guests, unless
-provided. Failing to provided different MAC addresses to each virtual
+provided. Failing to provide different MAC addresses to each virtual
machine making use of the bridge would cause networking issues.
@end quotation
diff --git a/doc/guix.texi b/doc/guix.texi
index 27dc9143fa..da696447c5 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -17,8 +17,8 @@
@set BASE-URL https://ftp.gnu.org/gnu/guix
@c The official substitute server used by default.
-@set SUBSTITUTE-SERVER-1 ci.guix.gnu.org
-@set SUBSTITUTE-SERVER-2 bordeaux.guix.gnu.org
+@set SUBSTITUTE-SERVER-1 bordeaux.guix.gnu.org
+@set SUBSTITUTE-SERVER-2 ci.guix.gnu.org
@set SUBSTITUTE-URLS https://@value{SUBSTITUTE-SERVER-1} https://@value{SUBSTITUTE-SERVER-2}
@copying
@@ -60,7 +60,7 @@ Copyright @copyright{} 2018, 2021, 2023 Oleg Pykhalov@*
Copyright @copyright{} 2018 Mike Gerwitz@*
Copyright @copyright{} 2018 Pierre-Antoine Rouby@*
Copyright @copyright{} 2018, 2019 Gábor Boskovits@*
-Copyright @copyright{} 2018, 2019, 2020, 2022, 2023 Florian Pelz@*
+Copyright @copyright{} 2018, 2019, 2020, 2022, 2023, 2024 Florian Pelz@*
Copyright @copyright{} 2018 Laura Lazzati@*
Copyright @copyright{} 2018 Alex Vong@*
Copyright @copyright{} 2019 Josh Holland@*
@@ -125,6 +125,8 @@ Copyright @copyright{} 2023 Saku Laesvuori@*
Copyright @copyright{} 2023 Graham James Addis@*
Copyright @copyright{} 2023 Tomas Volf@*
Copyright @copyright{} 2024 Herman Rimm@*
+Copyright @copyright{} 2024 Matthew Trzcinski@*
+Copyright @copyright{} 2024 Richard Sent@*
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 or
@@ -227,8 +229,6 @@ Introduction
Installation
* Binary Installation:: Getting Guix running in no time!
-* Requirements:: Software needed to build and run Guix.
-* Running the Test Suite:: Testing Guix.
* Setting Up the Daemon:: Preparing the build daemon's environment.
* Invoking guix-daemon:: Running the build daemon.
* Application Setup:: Application-specific setup.
@@ -358,7 +358,7 @@ Foreign Architectures
System Configuration
-* Getting Started with the System:: Your first steps.
+* Getting Started with the System:: Your first steps.
* Using the Configuration System:: Customizing your GNU system.
* operating-system Reference:: Detail of operating-system declarations.
* File Systems:: Configuring file system mounts.
@@ -691,20 +691,20 @@ to join! @xref{Contributing}, for information about how you can help.
@chapter Installation
@cindex installing Guix
+@cindex foreign distro
+@cindex Guix System
+You can install the package management tool Guix on top of an existing
+GNU/Linux or GNU/Hurd system@footnote{Hurd support is currently
+limited.}, referred to as a @dfn{foreign distro}. If, instead, you want
+to install the complete, standalone GNU system distribution,
+@dfn{Guix@tie{}System}, @pxref{System Installation}. This section is
+concerned only with the installation of Guix on a foreign distro.
-@quotation Note
-We recommend the use of this
-@uref{https://git.savannah.gnu.org/cgit/guix.git/plain/etc/guix-install.sh,
-shell installer script} to install Guix on top of a running GNU/Linux system,
-thereafter called a @dfn{foreign distro}.@footnote{This section is concerned
-with the installation of the package manager, which can be done on top of a
-running GNU/Linux system. If, instead, you want to install the complete GNU
-operating system, @pxref{System Installation}.} The script automates the
-download, installation, and initial configuration of Guix. It should be run
-as the root user.
+@quotation Important
+This section only applies to systems without Guix. Following it for
+existing Guix installations will overwrite important system files.
@end quotation
-@cindex foreign distro
@cindex directories related to foreign distro
When installed on a foreign distro, GNU@tie{}Guix complements the available
tools without interference. Its data lives exclusively in two directories,
@@ -714,15 +714,8 @@ such as @file{/etc}, are left untouched.
Once installed, Guix can be updated by running @command{guix pull}
(@pxref{Invoking guix pull}).
-If you prefer to perform the installation steps manually or want to tweak
-them, you may find the following subsections useful. They describe the
-software requirements of Guix, as well as how to install it manually and get
-ready to use it.
-
@menu
* Binary Installation:: Getting Guix running in no time!
-* Requirements:: Software needed to build and run Guix.
-* Running the Test Suite:: Testing Guix.
* Setting Up the Daemon:: Preparing the build daemon's environment.
* Invoking guix-daemon:: Running the build daemon.
* Application Setup:: Application-specific setup.
@@ -736,210 +729,69 @@ ready to use it.
@cindex installer script
This section describes how to install Guix from a self-contained tarball
providing binaries for Guix and for all its dependencies. This is often
-quicker than installing from source, which is described in the next
-sections. Binary installation requires a system using a Hurd or Linux
-kernel; the GNU@tie{}tar and Xz commands must also be available.
+quicker than installing from source, described later (@pxref{Building
+from Git}).
@quotation Important
This section only applies to systems without Guix. Following it for
existing Guix installations will overwrite important system files.
+@end quotation
-@c Note duplicated from the ``Installation'' node.
-We recommend the use of this
-@uref{https://git.savannah.gnu.org/cgit/guix.git/plain/etc/guix-install.sh,
-shell installer script}. The script automates the download, installation, and
-initial configuration steps described below. It should be run as the root
-user. As root, you can thus run this:
-
-@example
-cd /tmp
-wget https://git.savannah.gnu.org/cgit/guix.git/plain/etc/guix-install.sh
-chmod +x guix-install.sh
-./guix-install.sh
-@end example
+Some GNU/Linux distributions, such as Debian, Ubuntu, and openSUSE
+provide Guix through their own package managers. The version of Guix
+may be older than @value{VERSION} but you can update it afterwards by
+running @samp{guix pull}.
-If you're running Debian or a derivative such as Ubuntu, you can instead
-install the package (it might be a version older than @value{VERSION}
-but you can update it afterwards by running @samp{guix pull}):
+For Debian or a derivative such as Ubuntu, call:
@example
sudo apt install guix
@end example
-Likewise on openSUSE:
+Likewise, on openSUSE:
@example
sudo zypper install guix
@end example
-When you're done, @pxref{Application Setup} for extra configuration you
-might need, and @ref{Getting Started} for your first steps!
-@end quotation
-
-Installing goes along these lines:
-
-@enumerate
-@item
-@cindex downloading Guix binary
-Download the binary tarball from
-@indicateurl{@value{BASE-URL}/guix-binary-@value{VERSION}.x86_64-linux.tar.xz},
-where @code{x86_64-linux} can be replaced with @code{i686-linux} for an
-@code{i686} (32-bits) machine already running the kernel Linux, and so on
-(@pxref{GNU Distribution}).
-
-@c The following is somewhat duplicated in ``System Installation''.
-Make sure to download the associated @file{.sig} file and to verify the
-authenticity of the tarball against it, along these lines:
-
-@example
-$ wget @value{BASE-URL}/guix-binary-@value{VERSION}.x86_64-linux.tar.xz.sig
-$ gpg --verify guix-binary-@value{VERSION}.x86_64-linux.tar.xz.sig
-@end example
-
-If that command fails because you do not have the required public key,
-then run this command to import it:
-
-@example
-$ wget '@value{OPENPGP-SIGNING-KEY-URL}' \
- -qO - | gpg --import -
-@end example
-
-@noindent
-and rerun the @code{gpg --verify} command.
+The Guix project also provides a shell script, @file{guix-install.sh},
+which automates the binary installation process without use of a foreign
+distro package
+manager@footnote{@uref{https://git.savannah.gnu.org/cgit/guix.git/plain/etc/guix-install.sh}}.
+Use of @file{guix-install.sh} requires Bash, GnuPG, GNU@tie{}tar, wget,
+and Xz.
-Take note that a warning like ``This key is not certified with a trusted
-signature!'' is normal.
+The script guides you through the following:
-@c end authentication part
+@itemize
+@item Downloading and extracting the binary tarball
+@item Setting up the build daemon
+@item Making the ‘guix’ command available to non-root users
+@item Configuring substitute servers
+@end itemize
-@item
-Now, you need to become the @code{root} user. Depending on your distribution,
-you may have to run @code{su -} or @code{sudo -i}. As @code{root}, run:
+As root, run:
@example
# cd /tmp
-# tar --warning=no-timestamp -xf \
- /path/to/guix-binary-@value{VERSION}.x86_64-linux.tar.xz
-# mv var/guix /var/ && mv gnu /
-@end example
-
-This creates @file{/gnu/store} (@pxref{The Store}) and @file{/var/guix}.
-The latter contains a ready-to-use profile for @code{root} (see next
-step).
-
-Do @emph{not} unpack the tarball on a working Guix system since that
-would overwrite its own essential files.
-
-The @option{--warning=no-timestamp} option makes sure GNU@tie{}tar does
-not emit warnings about ``implausibly old time stamps'' (such
-warnings were triggered by GNU@tie{}tar 1.26 and older; recent
-versions are fine).
-They stem from the fact that all the
-files in the archive have their modification time set to 1 (which
-means January 1st, 1970). This is done on purpose to make sure the
-archive content is independent of its creation time, thus making it
-reproducible.
-
-@item
-Make the profile available under @file{~root/.config/guix/current}, which is
-where @command{guix pull} will install updates (@pxref{Invoking guix pull}):
-
-@example
-# mkdir -p ~root/.config/guix
-# ln -sf /var/guix/profiles/per-user/root/current-guix \
- ~root/.config/guix/current
+# wget https://git.savannah.gnu.org/cgit/guix.git/plain/etc/guix-install.sh
+# chmod +x guix-install.sh
+# ./guix-install.sh
@end example
-Source @file{etc/profile} to augment @env{PATH} and other relevant
-environment variables:
-
-@example
-# GUIX_PROFILE="`echo ~root`/.config/guix/current" ; \
- source $GUIX_PROFILE/etc/profile
-@end example
-
-@item
-Create the group and user accounts for build users as explained below
-(@pxref{Build Environment Setup}).
-
-@item
-Run the daemon, and set it to automatically start on boot.
-
-If your host distro uses the systemd init system, this can be achieved
-with these commands:
-
-@c Versions of systemd that supported symlinked service files are not
-@c yet widely deployed, so we should suggest that users copy the service
-@c files into place.
-@c
-@c See this thread for more information:
-@c https://lists.gnu.org/archive/html/guix-devel/2017-01/msg01199.html
-
-@example
-# cp ~root/.config/guix/current/lib/systemd/system/gnu-store.mount \
- ~root/.config/guix/current/lib/systemd/system/guix-daemon.service \
- /etc/systemd/system/
-# systemctl enable --now gnu-store.mount guix-daemon
-@end example
-
-You may also want to arrange for @command{guix gc} to run periodically:
-
-@example
-# cp ~root/.config/guix/current/lib/systemd/system/guix-gc.service \
- ~root/.config/guix/current/lib/systemd/system/guix-gc.timer \
- /etc/systemd/system/
-# systemctl enable --now guix-gc.timer
-@end example
-
-You may want to edit @file{guix-gc.service} to adjust the command line
-options to fit your needs (@pxref{Invoking guix gc}).
-
-If your host distro uses the Upstart init system:
-
-@example
-# initctl reload-configuration
-# cp ~root/.config/guix/current/lib/upstart/system/guix-daemon.conf \
- /etc/init/
-# start guix-daemon
-@end example
-
-Otherwise, you can still start the daemon manually with:
-
-@example
-# ~root/.config/guix/current/bin/guix-daemon \
- --build-users-group=guixbuild
-@end example
-
-@item
-Make the @command{guix} command available to other users on the machine,
-for instance with:
-
-@example
-# mkdir -p /usr/local/bin
-# cd /usr/local/bin
-# ln -s /var/guix/profiles/per-user/root/current-guix/bin/guix
-@end example
-
-It is also a good idea to make the Info version of this manual available
-there:
-
-@example
-# mkdir -p /usr/local/share/info
-# cd /usr/local/share/info
-# for i in /var/guix/profiles/per-user/root/current-guix/share/info/* ;
- do ln -s $i ; done
-@end example
-
-That way, assuming @file{/usr/local/share/info} is in the search path,
-running @command{info guix} will open this manual (@pxref{Other Info
-Directories,,, texinfo, GNU Texinfo}, for more details on changing the
-Info search path).
+@quotation Note
+By default, @file{guix-install.sh} will configure Guix to download
+pre-built package binaries, called @dfn{substitutes}
+(@pxref{Substitutes}), from the project's build farms. If you choose
+not to permit this, Guix will build @emph{everything} from source,
+making each installation and upgrade very expensive. @xref{On Trusting
+Binaries} for a discussion of why you may want to build packages from
+source.
-@item
@cindex substitutes, authorization thereof
To use substitutes from @code{@value{SUBSTITUTE-SERVER-1}},
-@code{@value{SUBSTITUTE-SERVER-2}} or a mirror (@pxref{Substitutes}),
-authorize them:
+@code{@value{SUBSTITUTE-SERVER-2}} or a mirror, you must authorize them.
+For example,
@example
# guix archive --authorize < \
@@ -947,28 +799,13 @@ authorize them:
# guix archive --authorize < \
~root/.config/guix/current/share/guix/@value{SUBSTITUTE-SERVER-2}.pub
@end example
-
-@quotation Note
-If you do not enable substitutes, Guix will end up building
-@emph{everything} from source on your machine, making each installation
-and upgrade very expensive. @xref{On Trusting Binaries}, for a
-discussion of reasons why one might want do disable substitutes.
@end quotation
-@item
-Each user may need to perform a few additional steps to make their Guix
-environment ready for use, @pxref{Application Setup}.
-@end enumerate
-
-Voilà, the installation is complete!
-
-You can confirm that Guix is working by installing a sample package into
-the root profile:
-
-@example
-# guix install hello
-@end example
+When you're done installing Guix, @pxref{Application Setup} for extra
+configuration you might need, and @ref{Getting Started} for your first
+steps!
+@quotation Note
The binary installation tarball can be (re)produced and verified simply
by running the following command in the Guix source tree:
@@ -985,200 +822,19 @@ guix pack -s @var{system} --localstatedir \
@end example
@xref{Invoking guix pack}, for more info on this handy tool.
+@end quotation
-@node Requirements
-@section Requirements
-
-This section lists requirements when building Guix from source. The
-build procedure for Guix is the same as for other GNU software, and is
-not covered here. Please see the files @file{README} and @file{INSTALL}
-in the Guix source tree for additional details.
-
-@cindex official website
-GNU Guix is available for download from its website at
-@url{https://www.gnu.org/software/guix/}.
-
-GNU Guix depends on the following packages:
-
-@itemize
-@item @url{https://gnu.org/software/guile/, GNU Guile}, version 3.0.x,
-version 3.0.3 or later;
-@item @url{https://notabug.org/cwebber/guile-gcrypt, Guile-Gcrypt}, version
-0.1.0 or later;
-@item
-@uref{https://gitlab.com/gnutls/guile/, Guile-GnuTLS} (@pxref{Guile
-Preparations, how to install the GnuTLS bindings for Guile,,
-gnutls-guile, GnuTLS-Guile})@footnote{The Guile bindings to
-@uref{https://gnutls.org/, GnuTLS} were distributed as part of GnuTLS
-until version 3.7.8 included.};
-@item
-@uref{https://notabug.org/guile-sqlite3/guile-sqlite3, Guile-SQLite3}, version 0.1.0
-or later;
-@item @uref{https://notabug.org/guile-zlib/guile-zlib, Guile-zlib},
-version 0.1.0 or later;
-@item @uref{https://notabug.org/guile-lzlib/guile-lzlib, Guile-lzlib};
-@item @uref{https://www.nongnu.org/guile-avahi/, Guile-Avahi};
-@item
-@uref{https://gitlab.com/guile-git/guile-git, Guile-Git}, version 0.5.0
-or later;
-@item @uref{https://git-scm.com, Git} (yes, both!);
-@item @uref{https://savannah.nongnu.org/projects/guile-json/, Guile-JSON}
-4.3.0 or later;
-@item @url{https://www.gnu.org/software/make/, GNU Make}.
-@end itemize
-
-The following dependencies are optional:
-
-@itemize
-@item
-@c Note: We need at least 0.13.0 for #:nodelay.
-Support for build offloading (@pxref{Daemon Offload Setup}) and
-@command{guix copy} (@pxref{Invoking guix copy}) depends on
-@uref{https://github.com/artyom-poptsov/guile-ssh, Guile-SSH},
-version 0.13.0 or later.
-
-@item
-@uref{https://notabug.org/guile-zstd/guile-zstd, Guile-zstd}, for zstd
-compression and decompression in @command{guix publish} and for
-substitutes (@pxref{Invoking guix publish}).
-
-@item
-@uref{https://ngyro.com/software/guile-semver.html, Guile-Semver} for
-the @code{crate} importer (@pxref{Invoking guix import}).
-
-@item
-@uref{https://www.nongnu.org/guile-lib/doc/ref/htmlprag/, Guile-Lib} for
-the @code{go} importer (@pxref{Invoking guix import}) and for some of
-the ``updaters'' (@pxref{Invoking guix refresh}).
-
-@item
-When @url{http://www.bzip.org, libbz2} is available,
-@command{guix-daemon} can use it to compress build logs.
-@end itemize
-
-Unless @option{--disable-daemon} was passed to @command{configure}, the
-following packages are also needed:
-
-@itemize
-@item @url{https://gnupg.org/, GNU libgcrypt};
-@item @url{https://sqlite.org, SQLite 3};
-@item @url{https://gcc.gnu.org, GCC's g++}, with support for the
-C++11 standard.
-@end itemize
-
-@cindex state directory
-@cindex localstatedir
-@cindex system configuration directory
-@cindex sysconfdir
-When configuring Guix on a system that already has a Guix installation,
-be sure to specify the same state directory as the existing installation
-using the @option{--localstatedir} option of the @command{configure}
-script (@pxref{Directory Variables, @code{localstatedir},, standards,
-GNU Coding Standards}). Usually, this @var{localstatedir} option is set
-to the value @file{/var}. The @command{configure} script protects
-against unintended misconfiguration of @var{localstatedir} so you do not
-inadvertently corrupt your store (@pxref{The Store}). The configuration
-directory should also be configured by setting the @option{--sysconfdir}
-option to the @file{/etc} value, which is the location used by Guix to
-store for example the access control list of authorized machines and the
-definition of offload machines.
-
-@node Running the Test Suite
-@section Running the Test Suite
-
-@cindex test suite
-After a successful @command{configure} and @code{make} run, it is a good
-idea to run the test suite. It can help catch issues with the setup or
-environment, or bugs in Guix itself---and really, reporting test
-failures is a good way to help improve the software. To run the test
-suite, type:
-
-@example
-make check
-@end example
-
-Test cases can run in parallel: you can use the @code{-j} option of
-GNU@tie{}make to speed things up. The first run may take a few minutes
-on a recent machine; subsequent runs will be faster because the store
-that is created for test purposes will already have various things in
-cache.
-
-It is also possible to run a subset of the tests by defining the
-@code{TESTS} makefile variable as in this example:
-
-@example
-make check TESTS="tests/store.scm tests/cpio.scm"
-@end example
-
-By default, tests results are displayed at a file level. In order to
-see the details of every individual test cases, it is possible to define
-the @code{SCM_LOG_DRIVER_FLAGS} makefile variable as in this example:
-
-@example
-make check TESTS="tests/base64.scm" SCM_LOG_DRIVER_FLAGS="--brief=no"
-@end example
-
-The underlying SRFI 64 custom Automake test driver used for the 'check'
-test suite (located at @file{build-aux/test-driver.scm}) also allows
-selecting which test cases to run at a finer level, via its
-@option{--select} and @option{--exclude} options. Here's an example, to
-run all the test cases from the @file{tests/packages.scm} test file
-whose names start with ``transaction-upgrade-entry'':
-
-@example
-export SCM_LOG_DRIVER_FLAGS="--select=^transaction-upgrade-entry"
-make check TESTS="tests/packages.scm"
-@end example
-
-Those wishing to inspect the results of failed tests directly from the
-command line can add the @option{--errors-only=yes} option to the
-@code{SCM_LOG_DRIVER_FLAGS} makefile variable and set the @code{VERBOSE}
-Automake makefile variable, as in:
-
-@example
-make check SCM_LOG_DRIVER_FLAGS="--brief=no --errors-only=yes" VERBOSE=1
-@end example
-
-The @option{--show-duration=yes} option can be used to print the
-duration of the individual test cases, when used in combination with
-@option{--brief=no}:
-
-@example
-make check SCM_LOG_DRIVER_FLAGS="--brief=no --show-duration=yes"
-@end example
-
-@xref{Parallel Test Harness,,,automake,GNU Automake} for more
-information about the Automake Parallel Test Harness.
-
-Upon failure, please email @email{bug-guix@@gnu.org} and attach the
-@file{test-suite.log} file. Please specify the Guix version being used
-as well as version numbers of the dependencies (@pxref{Requirements}) in
-your message.
-
-Guix also comes with a whole-system test suite that tests complete
-Guix System instances. It can only run on systems where
-Guix is already installed, using:
-
-@example
-make check-system
-@end example
-
-@noindent
-or, again, by defining @code{TESTS} to select a subset of tests to run:
+@cindex uninstalling Guix
+@cindex uninstallation, of Guix
+Should you eventually want to uninstall Guix, run the same script with
+the @option{--uninstall} flag:
@example
-make check-system TESTS="basic mcron"
+./guix-install.sh --uninstall
@end example
-These system tests are defined in the @code{(gnu tests @dots{})}
-modules. They work by running the operating systems under test with
-lightweight instrumentation in a virtual machine (VM). They can be
-computationally intensive or rather cheap, depending on whether
-substitutes are available for their dependencies (@pxref{Substitutes}).
-Some of them require a lot of storage space to hold VM images.
-
-Again in case of test failures, please send @email{bug-guix@@gnu.org}
-all the details.
+With @option{--uninstall}, the script irreversibly deletes all the Guix
+files, configuration, and services.
@node Setting Up the Daemon
@section Setting Up the Daemon
@@ -1193,8 +849,8 @@ goes through the daemon. For instance, command-line tools such as
daemon (@i{via} remote procedure calls) to instruct it what to do.
The following sections explain how to prepare the build daemon's
-environment. See also @ref{Substitutes}, for information on how to allow
-the daemon to download pre-built binaries.
+environment. See @ref{Substitutes} for how to allow the daemon to
+download pre-built binaries.
@menu
* Build Environment Setup:: Preparing the isolated build environment.
@@ -2893,7 +2549,7 @@ This builds a new system @dfn{generation} with the latest packages and
services.
Now, @pxref{Getting Started with the System}, and
-join us on @code{#guix} on the Libera Chat IRC network or on
+join us on @code{#guix} on the Libera.Chat IRC network or on
@email{guix-devel@@gnu.org} to share your experience!
@@ -4727,7 +4383,9 @@ the user's @file{~/.config/guix/channels.scm} file, unless @option{-q}
is passed;
@item
the system-wide @file{/etc/guix/channels.scm} file, unless @option{-q}
-is passed;
+is passed (on Guix System, this file can be declared in the operating
+system configuration, @pxref{guix-configuration-channels,
+@code{channels} field of @code{guix-configuration}});
@item
the built-in default channels specified in the @code{%default-channels}
variable.
@@ -5016,21 +4674,21 @@ opens the door to security vulnerabilities. @xref{Invoking guix pull,
@option{--allow-downgrades}}.
@end quotation
-Due to @command{guix time-machine} relying on the ``inferiors''
-mechanism (@pxref{Inferiors}), the oldest commit it can travel to is
-commit @samp{6298c3ff} (``v1.0.0''), dated May 1@sup{st}, 2019, which is
-the first release that included the inferiors mechanism. An error is
-returned when attempting to navigate to older commits.
+@c Keep this paragraph in sync with 'time-machine.scm'.
+@command{guix time-machine} raises an error when attempting to travel to
+commits older than ``v0.16.0'' (commit @samp{4a0b87f0}), dated
+Dec.@: 2018. This is one of the oldest commits supporting the channel
+mechanism that makes ``time travel'' possible.
@quotation Note
Although it should technically be possible to travel to such an old
commit, the ease to do so will largely depend on the availability of
binary substitutes. When traveling to a distant past, some packages may
not easily build from source anymore. One such example are old versions
-of Python 2 which had time bombs in its test suite, in the form of
-expiring SSL certificates. This particular problem can be worked around
-by setting the hardware clock to a value in the past before attempting
-the build.
+of OpenSSL whose tests would fail after a certain date. This particular
+problem can be worked around by running a @dfn{virtual build machine}
+with its clock set to the right time (@pxref{build-vm, Virtual Build
+Machines}).
@end quotation
The general syntax is:
@@ -5497,21 +5155,22 @@ $ wget -O - \
@cindex configuration file for channels
@cindex @command{guix pull}, configuration file
@cindex configuration of @command{guix pull}
-Guix and its package collection are updated by running @command{guix pull}
-(@pxref{Invoking guix pull}). By default @command{guix pull} downloads and
-deploys Guix itself from the official GNU@tie{}Guix repository. This can be
-customized by defining @dfn{channels} in the
-@file{~/.config/guix/channels.scm} file. A channel specifies a URL and branch
-of a Git repository to be deployed, and @command{guix pull} can be instructed
-to pull from one or more channels. In other words, channels can be used
-to @emph{customize} and to @emph{extend} Guix, as we will see below.
-Guix is able to take into account security concerns and deal with authenticated
-updates.
+Guix and its package collection are updated by running @command{guix
+pull}. By default @command{guix pull} downloads and deploys Guix itself
+from the official GNU@tie{}Guix repository. This can be customized by
+providing a file specifying the set of @dfn{channels} to pull from
+(@pxref{Invoking guix pull}). A channel
+specifies the URL and branch of a Git repository to be deployed, and
+@command{guix pull} can be instructed to pull from one or more channels.
+In other words, channels can be used to @emph{customize} and to
+@emph{extend} Guix, as we will see below. Guix is able to take into
+account security concerns and deal with authenticated updates.
@menu
* Specifying Additional Channels:: Extending the package collection.
* Using a Custom Guix Channel:: Using a customized Guix.
* Replicating Guix:: Running the @emph{exact same} Guix.
+* Customizing the System-Wide Guix:: Default channels on Guix System.
* Channel Authentication:: How Guix verifies what it fetches.
* Channels with Substitutes:: Using channels with available substitutes.
* Creating a Channel:: How to write your custom channel.
@@ -5669,6 +5328,64 @@ artifacts with very fine grain, and to reproduce software environments at
will---some sort of ``meta reproducibility'' capabilities, if you will.
@xref{Inferiors}, for another way to take advantage of these super powers.
+@node Customizing the System-Wide Guix
+@section Customizing the System-Wide Guix
+
+@cindex system-wide Guix, customization
+@cindex channels, for the default Guix
+If you're running Guix System or building system images with it, maybe
+you will want to customize the system-wide @command{guix} it
+provides---specifically, @file{/run/current-system/profile/bin/guix}.
+For example, you might want to provide additional channels or to pin its
+revision.
+
+This can be done using the @code{guix-for-channels} procedure, which
+returns a package for the given channels, and using it as part of your
+operating system configuration, as in this example:
+
+@lisp
+(use-modules (guix channels))
+
+(define my-channels
+ ;; Channels that should be available to
+ ;; /run/current-system/profile/bin/guix.
+ (append
+ (list (channel
+ (name 'guix-science)
+ (url "https://github.com/guix-science/guix-science")
+ (branch "master")))
+ %default-channels))
+
+(operating-system
+ ;; @dots{}
+ (services
+ ;; Change the package used by 'guix-service-type'.
+ (modify-services %base-services
+ (guix-service-type
+ config => (guix-configuration
+ (inherit config)
+ (channels my-channels)
+ (guix (guix-for-channels my-channels)))))))
+@end lisp
+
+The resulting operating system will have both the @code{guix} and the
+@code{guix-science} channels visible by default. The @code{channels}
+field of @code{guix-configuration} above further ensures that
+@file{/etc/guix/channels.scm}, which is used by @command{guix pull},
+specifies the same set of channels (@pxref{guix-configuration-channels,
+@code{channels} field of @code{guix-configuration}}).
+
+The @code{(gnu packages package-management)} module exports the
+@code{guix-for-channels} procedure, described below.
+
+@deffn {Procedure} guix-for-channels @var{channels}
+Return a package corresponding to @var{channels}.
+
+The result is a ``regular'' package, which can be used in
+@code{guix-configuration} as shown above or in any other place that
+expects a package.
+@end deffn
+
@node Channel Authentication
@section Channel Authentication
@@ -10455,7 +10172,10 @@ field (@pxref{Channels}); alternatively, its source can be a directory
name, in which case an additional @code{#:commit} argument must be
supplied to specify the commit being built (a hexadecimal string).
-The resulting package is a Guix instance of the given channel, similar
+Optionally, a @code{#:channels} argument specifying additional channels
+can be provided.
+
+The resulting package is a Guix instance of the given channel(s), similar
to how @command{guix time-machine} would build it.
@end defvar
@@ -12492,9 +12212,10 @@ The resulting file holds references to all the dependencies of @var{exp}
or a subset thereof.
@end deffn
-@deffn {Procedure} scheme-file name exp [#:splice? #f] [#:set-load-path? #t]
+@deffn {Procedure} scheme-file name exp [#:splice? #f] @
+ [#:guile #f] [#:set-load-path? #t]
Return an object representing the Scheme file @var{name} that contains
-@var{exp}.
+@var{exp}. @var{guile} is the Guile package used to produce that file.
This is the declarative counterpart of @code{gexp->file}.
@end deffn
@@ -16960,7 +16681,9 @@ The available targets are:
- powerpc64le-linux-gnu
- riscv64-linux-gnu
- x86_64-linux-gnu
+ - x86_64-linux-gnux32
- x86_64-w64-mingw32
+ - xtensa-ath9k-elf
@end example
Targets are specified as GNU triplets (@pxref{Specifying Target
@@ -17098,7 +16821,7 @@ instantiated. Then we show how this mechanism can be extended, for
instance to support new system services.
@menu
-* Getting Started with the System:: Your first steps.
+* Getting Started with the System:: Your first steps.
* Using the Configuration System:: Customizing your GNU system.
* operating-system Reference:: Detail of operating-system declarations.
* File Systems:: Configuring file system mounts.
@@ -17448,7 +17171,7 @@ the @code{(gnu packages)} module. For example:
(operating-system
;; ...
(packages (append (map specification->package+output
- '("nss-certs" "git" "git:send-email"))
+ '("git" "git:send-email"))
%base-packages)))
@end lisp
@@ -17666,6 +17389,7 @@ configuration (@pxref{Using the Configuration System}).
@table @asis
@item @code{kernel} (default: @code{linux-libre})
+@c footnote duplicated in @pxref{Installation}
The package object of the operating system kernel to
use@footnote{Currently only the Linux-libre kernel is fully supported.
Using GNU@tie{}mach with the GNU@tie{}Hurd is experimental and only
@@ -19748,7 +19472,8 @@ This data type represents the configuration of the Guix build daemon.
@table @asis
@item @code{guix} (default: @var{guix})
-The Guix package to use.
+The Guix package to use. @xref{Customizing the System-Wide Guix} to
+learn how to provide a package with a pre-configured set of channels.
@item @code{build-group} (default: @code{"guixbuild"})
Name of the group for build user accounts.
@@ -19825,6 +19550,20 @@ few seconds when enough entropy is available and is only done once; you
might want to turn it off for instance in a virtual machine that does
not need it and where the extra boot time is a problem.
+@anchor{guix-configuration-channels}
+@item @code{channels} (default: @code{%default-channels})
+List of channels to be specified in @file{/etc/guix/channels.scm}, which
+is what @command{guix pull} uses by default (@pxref{Invoking guix
+pull}).
+
+@quotation Note
+When reconfiguring a system, the existing @file{/etc/guix/channels.scm}
+file is backed up as @file{/etc/guix/channels.scm.bak} if it was
+determined to be a manually modified file. This is to facilitate
+migration from earlier versions, which allowed for in-place
+modifications to @file{/etc/guix/channels.scm}.
+@end quotation
+
@item @code{max-silent-time} (default: @code{3600})
@itemx @code{timeout} (default: @code{(* 3600 24)})
The number of seconds of silence and the number of seconds of activity,
@@ -26924,7 +26663,7 @@ Disable LOGIN command and all other plaintext authentications unless
SSL/TLS is used (LOGINDISABLED capability). Note that if the remote IP
matches the local IP (i.e.@: you're connecting from the same computer),
the connection is considered secure and plaintext authentication is
-allowed. See also ssl=required setting.
+allowed. See also the @samp{ssl=required} setting.
Defaults to @samp{#t}.
@end deftypevr
@@ -27064,7 +26803,7 @@ Defaults to @samp{#f}.
List of wanted authentication mechanisms. Supported mechanisms are:
@samp{plain}, @samp{login}, @samp{digest-md5}, @samp{cram-md5},
@samp{ntlm}, @samp{rpa}, @samp{apop}, @samp{anonymous}, @samp{gssapi},
-@samp{otp}, @samp{skey}, and @samp{gss-spnego}. NOTE: See also
+@samp{otp}, @samp{skey}, and @samp{gss-spnego}. See also the
@samp{disable-plaintext-auth} setting.
@end deftypevr
@@ -39631,6 +39370,44 @@ Extra command line options for @code{guix-data-service-process-jobs}.
@end table
@end deftp
+@anchor{guix-home-service-type}
+@subsubheading Guix Home Service
+
+The Guix Home service is a way to let Guix System deploy the home
+environment of one or more users (@pxref{Home Configuration}, for more
+on Guix Home). That way, the system configuration embeds declarations
+of the home environment of those users and can be used to deploy
+everything consistently at once, saving users the need to run
+@command{guix home reconfigure} independently.
+
+@defvar guix-home-service-type
+Service type for the Guix Home service. Its value must be a list of
+lists containing user and home environment pairs. The key of each pair
+is a string representing the user to deploy the configuration under and
+the value is a home-environment configuration.
+
+@lisp
+(use-modules (gnu home))
+
+(define my-home
+ (home-environment
+ @dots{}))
+
+(operating-system
+ (services (append (list (service guix-home-service-type
+ `(("alice" ,my-home))))
+ %base-services)))
+@end lisp
+
+This service can be extended by other services to add additional home
+environments, as in this example:
+
+@lisp
+(simple-service 'my-extra-home home-service-type
+ `(("bob" ,my-extra-home))))
+@end lisp
+@end defvar
+
@subsubheading Nar Herder
The @uref{https://git.cbaines.net/guix/nar-herder/about/,Nar Herder} is
a utility for managing a collection of nars.
@@ -39708,6 +39485,14 @@ days, @code{1m} means 1 month, and so on.
This allows the user's Guix to keep substitute information in cache for
@var{ttl}.
+@item @code{new-ttl} (default: @code{#f})
+If specified, this will override the @code{ttl} setting when used for
+the @code{Cache-Control} headers, but this value will be used when
+scheduling the removal of nars.
+
+Use this setting when the TTL is being reduced to avoid removing nars
+while clients still have cached narinfos.
+
@item @code{negative-ttl} (default: @code{#f})
Similarly produce @code{Cache-Control} HTTP headers to advertise the
time-to-live (TTL) of @emph{negative} lookups---missing store items, for
@@ -39757,6 +39542,21 @@ in /var/cache/nar-herder/nar/TYPE.
@item @code{directory-max-size} (default: @code{#f})
Maximum size in bytes of the directory.
+@item @code{unused-removal-duration} (default: @code{#f})
+If a cached nar isn't used for @code{unused-removal-duration}, it will
+be scheduled for removal.
+
+@var{unused-removal-duration} must denote a duration: @code{5d} means 5
+days, @code{1m} means 1 month, and so on.
+
+@item @code{ttl} (default: @code{#f})
+If specified this overrides the @code{ttl} used for narinfos when this
+cached compression is available.
+
+@item @code{new-ttl} (default: @code{#f})
+As with the @code{new-ttl} option for @code{nar-herder-configuration},
+this value will override the @code{ttl} when used for narinfo requests.
+
@end table
@end deftp
@@ -41225,7 +41025,7 @@ Reference}). Guix includes one such package, @code{nss-certs}, which
is a set of CA certificates provided as part of Mozilla's Network
Security Services.
-Note that it is @emph{not} part of @code{%base-packages}, so you need to
+This package is part of @code{%base-packages}, so there is no need to
explicitly add it. The @file{/etc/ssl/certs} directory, which is where
most applications and libraries look for certificates by default, points
to the certificates installed globally.
@@ -44481,6 +44281,12 @@ mechanism to create the XDG run-time directory and has the
like user Shepherd and its descendants will not start.
@end quotation
+If you're using Guix System, you can embed your home configuration in
+your system configuration such that @command{guix system reconfigure}
+will deploy both the system @emph{and} your home at once!
+@xref{guix-home-service-type, @code{guix-home-service-type}}, for how to
+do that.
+
@node Configuring the Shell
@section Configuring the Shell
This section is safe to skip if your shell or shells are managed by
@@ -46725,12 +46531,13 @@ guix time-machine \
You can think of it as some sort of built-in version control! Your
home is not just a binary artifact: @emph{it carries its own source}.
-@c @xref{Service Reference, @code{provenance-service-type}}, for more
-@c information on provenance tracking.
-@c @footnote{This action (and the related actions
-@c @code{switch-generation} and @code{roll-back}) are usable after the
-@c home environment is initialized.}.
+@quotation Note
+If you're using Guix System, @ref{guix-home-service-type,
+@code{guix-home-service-type}}, on how to embed your home configuration
+in your system configuration such that @command{guix system reconfigure}
+deploys both your system and your home.
+@end quotation
@item switch-generation
@cindex home generations
@@ -47061,6 +46868,11 @@ Platform targeting x86 CPU running GNU/Linux.
Platform targeting x86 64-bit CPU running GNU/Linux.
@end defvar
+@defvar x86_64-linux-x32
+Platform targeting x86 64-bit CPU running GNU/Linux with the run-time using
+the X32 ABI.
+@end defvar
+
@defvar i686-mingw
Platform targeting x86 CPU running Windows, with run-time support from
MinGW.
@@ -47086,6 +46898,11 @@ Platform targeting OpenRISC 1000 CPU without an operating system and without a
C standard library.
@end defvar
+@defvar xtensa-ath9k-elf
+Platform targeting Xtensa CPU used in the Qualcomm Atheros AR7010 and AR9271
+USB 802.11n @acronym{NICs, Network Interface Controllers}.
+@end defvar
+
@node System Images
@chapter Creating System Images
@@ -48125,7 +47942,12 @@ The graph below shows the resulting dependency graph for
@code{gcc-core-mesboot0}, the bootstrap compiler used for the
traditional bootstrap of the rest of the Guix System.
-@c ./pre-inst-env guix graph -e '(@@ (gnu packages commencement) gcc-core-mesboot0)' | sed -re 's,((bootstrap-seeds|guile-bootstrap).*shape =) box,\1 ellipse,' > doc/images/gcc-core-mesboot0-graph.dot
+@c ./pre-inst-env guix graph \
+@c -e '(@@ (gnu packages commencement) gcc-core-mesboot0)' \
+@c | sed -r \
+@c -e 's,((bootstrap-seeds|guile-bootstrap).*shape =) box,\1 ellipse,' \
+@c -e 's,fontname = sans,fontname = "dejavu sans",' \
+@c > doc/images/gcc-core-mesboot0-graph.dot
@image{images/gcc-core-mesboot0-graph,6in,,Dependency graph of gcc-core-mesboot0}
Work is ongoing to bring these bootstraps to the @code{arm-linux} and
diff --git a/doc/htmlxref.cnf b/doc/htmlxref.cnf
index d8a7aa12c9..73a53e9551 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 <ludo@gnu.org> for the GNU Guix manual.
-htmlxrefversion=2022-12-18.15; # UTC
+htmlxrefversion=2024-03-31.22; # UTC
# Copyright 2010-2020, 2022 Free Software Foundation, Inc.
#
@@ -436,6 +436,10 @@ GUIX_COOKBOOK = ${GUIX_ROOT}/cookbook
guix-cookbook.de node ${GUIX_COOKBOOK}/de/html_node/
guix-cookbook.fr mono ${GUIX_COOKBOOK}/fr/guix-cookbook.fr.html
guix-cookbook.fr node ${GUIX_COOKBOOK}/fr/html_node/
+ guix-cookbook.ko mono ${GUIX_COOKBOOK}/ko/guix-cookbook.ko.html
+ guix-cookbook.ko node ${GUIX_COOKBOOK}/ko/html_node/
+ guix-cookbook.pt_BR mono ${GUIX_COOKBOOK}/pt-br/guix-cookbook.pt_BR.html
+ guix-cookbook.pt_BR node ${GUIX_COOKBOOK}/pt-br/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
diff --git a/doc/images/bootstrap-graph.dot b/doc/images/bootstrap-graph.dot
index 06d7f29c7a..317ee25749 100644
--- a/doc/images/bootstrap-graph.dot
+++ b/doc/images/bootstrap-graph.dot
@@ -1,7 +1,7 @@
# Obtained by running "nix-store --graph" on the first GCC derivation.
digraph G {
-"/nix/store/x60397za40lx0n88f51a2csfdq5xvb19-gcc-bootstrap-0.drv" [label = "gcc-bootstrap-0.drv", fontname = Helvetica, shape = box, style = filled, fillcolor = "#ffffff"];
+"/nix/store/x60397za40lx0n88f51a2csfdq5xvb19-gcc-bootstrap-0.drv" [label = "gcc-bootstrap-0.drv", fontname = "dejavu sans", shape = box, style = filled, fillcolor = "#ffffff"];
"/nix/store/3iawic1z95112yfz5y9xdp66qbxxr8l1-tar" -> "/nix/store/x60397za40lx0n88f51a2csfdq5xvb19-gcc-bootstrap-0.drv" [color = "black"];
"/nix/store/4sv9xhcjap6byca130fzpzzjalb7iixv-glibc-bootstrap-0.drv" -> "/nix/store/x60397za40lx0n88f51a2csfdq5xvb19-gcc-bootstrap-0.drv" [color = "red"];
"/nix/store/8cc81w6m04csm52y247xj3gydrbz2niv-xz" -> "/nix/store/x60397za40lx0n88f51a2csfdq5xvb19-gcc-bootstrap-0.drv" [color = "green"];
@@ -11,8 +11,8 @@ digraph G {
"/nix/store/r3dsy5j2c16sv26raala6kahff7w18hb-gcc-bootstrap-0-guile-builder" -> "/nix/store/x60397za40lx0n88f51a2csfdq5xvb19-gcc-bootstrap-0.drv" [color = "black"];
"/nix/store/x9x1a86flhx15cams7235rfy5gc5cww1-guile-bootstrap-2.0.drv" -> "/nix/store/x60397za40lx0n88f51a2csfdq5xvb19-gcc-bootstrap-0.drv" [color = "red"];
"/nix/store/y4n7rzysx6qz3p0n91dw9qz5w93l6iqv-module-import-compiled.drv" -> "/nix/store/x60397za40lx0n88f51a2csfdq5xvb19-gcc-bootstrap-0.drv" [color = "green"];
-"/nix/store/3iawic1z95112yfz5y9xdp66qbxxr8l1-tar" [label = "tar", fontname = Helvetica, shape = box, style = filled, fillcolor = "#ffffff"];
-"/nix/store/4sv9xhcjap6byca130fzpzzjalb7iixv-glibc-bootstrap-0.drv" [label = "glibc-bootstrap-0.drv", fontname = Helvetica, shape = box, style = filled, fillcolor = "#ffffff"];
+"/nix/store/3iawic1z95112yfz5y9xdp66qbxxr8l1-tar" [label = "tar", fontname = "dejavu sans", shape = box, style = filled, fillcolor = "#ffffff"];
+"/nix/store/4sv9xhcjap6byca130fzpzzjalb7iixv-glibc-bootstrap-0.drv" [label = "glibc-bootstrap-0.drv", fontname = "dejavu sans", shape = box, style = filled, fillcolor = "#ffffff"];
"/nix/store/3iawic1z95112yfz5y9xdp66qbxxr8l1-tar" -> "/nix/store/4sv9xhcjap6byca130fzpzzjalb7iixv-glibc-bootstrap-0.drv" [color = "blue"];
"/nix/store/8cc81w6m04csm52y247xj3gydrbz2niv-xz" -> "/nix/store/4sv9xhcjap6byca130fzpzzjalb7iixv-glibc-bootstrap-0.drv" [color = "magenta"];
"/nix/store/8iivk9hpnps21yrbq3zzsxgzv9ixbhgh-glibc-bootstrap-0-guile-builder" -> "/nix/store/4sv9xhcjap6byca130fzpzzjalb7iixv-glibc-bootstrap-0.drv" [color = "burlywood"];
@@ -20,63 +20,63 @@ digraph G {
"/nix/store/wdwrkg02gn28bkpbxgdb2nv558v8s3ji-glibc-2.17.tar.xz.drv" -> "/nix/store/4sv9xhcjap6byca130fzpzzjalb7iixv-glibc-bootstrap-0.drv" [color = "red"];
"/nix/store/x9x1a86flhx15cams7235rfy5gc5cww1-guile-bootstrap-2.0.drv" -> "/nix/store/4sv9xhcjap6byca130fzpzzjalb7iixv-glibc-bootstrap-0.drv" [color = "green"];
"/nix/store/y4n7rzysx6qz3p0n91dw9qz5w93l6iqv-module-import-compiled.drv" -> "/nix/store/4sv9xhcjap6byca130fzpzzjalb7iixv-glibc-bootstrap-0.drv" [color = "blue"];
-"/nix/store/8cc81w6m04csm52y247xj3gydrbz2niv-xz" [label = "xz", fontname = Helvetica, shape = box, style = filled, fillcolor = "#ffffff"];
-"/nix/store/8iivk9hpnps21yrbq3zzsxgzv9ixbhgh-glibc-bootstrap-0-guile-builder" [label = "glibc-bootstrap-0-guile-builder", fontname = Helvetica, shape = box, style = filled, fillcolor = "#ffffff"];
+"/nix/store/8cc81w6m04csm52y247xj3gydrbz2niv-xz" [label = "xz", fontname = "dejavu sans", shape = box, style = filled, fillcolor = "#ffffff"];
+"/nix/store/8iivk9hpnps21yrbq3zzsxgzv9ixbhgh-glibc-bootstrap-0-guile-builder" [label = "glibc-bootstrap-0-guile-builder", fontname = "dejavu sans", shape = box, style = filled, fillcolor = "#ffffff"];
"/nix/store/3iawic1z95112yfz5y9xdp66qbxxr8l1-tar" -> "/nix/store/8iivk9hpnps21yrbq3zzsxgzv9ixbhgh-glibc-bootstrap-0-guile-builder" [color = "magenta"];
"/nix/store/8cc81w6m04csm52y247xj3gydrbz2niv-xz" -> "/nix/store/8iivk9hpnps21yrbq3zzsxgzv9ixbhgh-glibc-bootstrap-0-guile-builder" [color = "burlywood"];
-"/nix/store/96yx6013dhggr3mpg5ayxv8dm9mv2ghv-module-import.drv" [label = "module-import.drv", fontname = Helvetica, shape = box, style = filled, fillcolor = "#ffffff"];
+"/nix/store/96yx6013dhggr3mpg5ayxv8dm9mv2ghv-module-import.drv" [label = "module-import.drv", fontname = "dejavu sans", shape = box, style = filled, fillcolor = "#ffffff"];
"/nix/store/9zrdfvnrpljryr82an2n1mj6bh2przhn-module-import-guile-builder" -> "/nix/store/96yx6013dhggr3mpg5ayxv8dm9mv2ghv-module-import.drv" [color = "black"];
"/nix/store/mj7amprgvl2rgash1nr0v64apik8vc7f-utils.scm" -> "/nix/store/96yx6013dhggr3mpg5ayxv8dm9mv2ghv-module-import.drv" [color = "red"];
"/nix/store/x9x1a86flhx15cams7235rfy5gc5cww1-guile-bootstrap-2.0.drv" -> "/nix/store/96yx6013dhggr3mpg5ayxv8dm9mv2ghv-module-import.drv" [color = "green"];
-"/nix/store/9zrdfvnrpljryr82an2n1mj6bh2przhn-module-import-guile-builder" [label = "module-import-guile-builder", fontname = Helvetica, shape = box, style = filled, fillcolor = "#ffffff"];
+"/nix/store/9zrdfvnrpljryr82an2n1mj6bh2przhn-module-import-guile-builder" [label = "module-import-guile-builder", fontname = "dejavu sans", shape = box, style = filled, fillcolor = "#ffffff"];
"/nix/store/mj7amprgvl2rgash1nr0v64apik8vc7f-utils.scm" -> "/nix/store/9zrdfvnrpljryr82an2n1mj6bh2przhn-module-import-guile-builder" [color = "blue"];
-"/nix/store/fl9cwcczfdv73vq5sr0c4rd5hqzrgvac-gcc-4.7.2.tar.xz.drv" [label = "gcc-4.7.2.tar.xz.drv", fontname = Helvetica, shape = box, style = filled, fillcolor = "#ffffff"];
+"/nix/store/fl9cwcczfdv73vq5sr0c4rd5hqzrgvac-gcc-4.7.2.tar.xz.drv" [label = "gcc-4.7.2.tar.xz.drv", fontname = "dejavu sans", shape = box, style = filled, fillcolor = "#ffffff"];
"/nix/store/6kslnirvm26fij7wpjqbw617ri4gf5x5-gcc-4.7.2.tar.xz-guile-builder" -> "/nix/store/fl9cwcczfdv73vq5sr0c4rd5hqzrgvac-gcc-4.7.2.tar.xz.drv" [color = "magenta"];
"/nix/store/kvk5wp8c9rzvvrmq5fv5r58l78q8i6ch-module-import.drv" -> "/nix/store/fl9cwcczfdv73vq5sr0c4rd5hqzrgvac-gcc-4.7.2.tar.xz.drv" [color = "burlywood"];
"/nix/store/pzv319p3q7raiad7nq7fcdw9rafzp14k-module-import-compiled.drv" -> "/nix/store/fl9cwcczfdv73vq5sr0c4rd5hqzrgvac-gcc-4.7.2.tar.xz.drv" [color = "black"];
"/nix/store/x9x1a86flhx15cams7235rfy5gc5cww1-guile-bootstrap-2.0.drv" -> "/nix/store/fl9cwcczfdv73vq5sr0c4rd5hqzrgvac-gcc-4.7.2.tar.xz.drv" [color = "red"];
-"/nix/store/6kslnirvm26fij7wpjqbw617ri4gf5x5-gcc-4.7.2.tar.xz-guile-builder" [label = "gcc-4.7.2.tar.xz-guile-builder", fontname = Helvetica, shape = box, style = filled, fillcolor = "#ffffff"];
-"/nix/store/jaaqdl979wjirnbxz1jqsipg22nva5n4-bash" [label = "bash", fontname = Helvetica, shape = box, style = filled, fillcolor = "#ffffff"];
-"/nix/store/kvk5wp8c9rzvvrmq5fv5r58l78q8i6ch-module-import.drv" [label = "module-import.drv", fontname = Helvetica, shape = box, style = filled, fillcolor = "#ffffff"];
+"/nix/store/6kslnirvm26fij7wpjqbw617ri4gf5x5-gcc-4.7.2.tar.xz-guile-builder" [label = "gcc-4.7.2.tar.xz-guile-builder", fontname = "dejavu sans", shape = box, style = filled, fillcolor = "#ffffff"];
+"/nix/store/jaaqdl979wjirnbxz1jqsipg22nva5n4-bash" [label = "bash", fontname = "dejavu sans", shape = box, style = filled, fillcolor = "#ffffff"];
+"/nix/store/kvk5wp8c9rzvvrmq5fv5r58l78q8i6ch-module-import.drv" [label = "module-import.drv", fontname = "dejavu sans", shape = box, style = filled, fillcolor = "#ffffff"];
"/nix/store/abagrdbdndkd0y2dwk0nw1gw0g0rhl2z-ftp-client.scm" -> "/nix/store/kvk5wp8c9rzvvrmq5fv5r58l78q8i6ch-module-import.drv" [color = "green"];
"/nix/store/dwd2iwd1ban8a8rmx568dpgrbkkidfhw-download.scm" -> "/nix/store/kvk5wp8c9rzvvrmq5fv5r58l78q8i6ch-module-import.drv" [color = "blue"];
"/nix/store/mj7amprgvl2rgash1nr0v64apik8vc7f-utils.scm" -> "/nix/store/kvk5wp8c9rzvvrmq5fv5r58l78q8i6ch-module-import.drv" [color = "magenta"];
"/nix/store/x9x1a86flhx15cams7235rfy5gc5cww1-guile-bootstrap-2.0.drv" -> "/nix/store/kvk5wp8c9rzvvrmq5fv5r58l78q8i6ch-module-import.drv" [color = "burlywood"];
"/nix/store/yfixjx2gpvsi5dhkpdx5gj6gx0xdk1c8-module-import-guile-builder" -> "/nix/store/kvk5wp8c9rzvvrmq5fv5r58l78q8i6ch-module-import.drv" [color = "black"];
-"/nix/store/abagrdbdndkd0y2dwk0nw1gw0g0rhl2z-ftp-client.scm" [label = "ftp-client.scm", fontname = Helvetica, shape = box, style = filled, fillcolor = "#ffffff"];
-"/nix/store/dwd2iwd1ban8a8rmx568dpgrbkkidfhw-download.scm" [label = "download.scm", fontname = Helvetica, shape = box, style = filled, fillcolor = "#ffffff"];
-"/nix/store/mj7amprgvl2rgash1nr0v64apik8vc7f-utils.scm" [label = "utils.scm", fontname = Helvetica, shape = box, style = filled, fillcolor = "#ffffff"];
-"/nix/store/pzv319p3q7raiad7nq7fcdw9rafzp14k-module-import-compiled.drv" [label = "module-import-compiled.drv", fontname = Helvetica, shape = box, style = filled, fillcolor = "#ffffff"];
+"/nix/store/abagrdbdndkd0y2dwk0nw1gw0g0rhl2z-ftp-client.scm" [label = "ftp-client.scm", fontname = "dejavu sans", shape = box, style = filled, fillcolor = "#ffffff"];
+"/nix/store/dwd2iwd1ban8a8rmx568dpgrbkkidfhw-download.scm" [label = "download.scm", fontname = "dejavu sans", shape = box, style = filled, fillcolor = "#ffffff"];
+"/nix/store/mj7amprgvl2rgash1nr0v64apik8vc7f-utils.scm" [label = "utils.scm", fontname = "dejavu sans", shape = box, style = filled, fillcolor = "#ffffff"];
+"/nix/store/pzv319p3q7raiad7nq7fcdw9rafzp14k-module-import-compiled.drv" [label = "module-import-compiled.drv", fontname = "dejavu sans", shape = box, style = filled, fillcolor = "#ffffff"];
"/nix/store/98gzqlgpm4gxrpl5bzykpqbwrx8ckx8l-module-import-compiled-guile-builder" -> "/nix/store/pzv319p3q7raiad7nq7fcdw9rafzp14k-module-import-compiled.drv" [color = "red"];
"/nix/store/kvk5wp8c9rzvvrmq5fv5r58l78q8i6ch-module-import.drv" -> "/nix/store/pzv319p3q7raiad7nq7fcdw9rafzp14k-module-import-compiled.drv" [color = "green"];
"/nix/store/x9x1a86flhx15cams7235rfy5gc5cww1-guile-bootstrap-2.0.drv" -> "/nix/store/pzv319p3q7raiad7nq7fcdw9rafzp14k-module-import-compiled.drv" [color = "blue"];
-"/nix/store/98gzqlgpm4gxrpl5bzykpqbwrx8ckx8l-module-import-compiled-guile-builder" [label = "module-import-compiled-guile-builder", fontname = Helvetica, shape = box, style = filled, fillcolor = "#ffffff"];
-"/nix/store/r3dsy5j2c16sv26raala6kahff7w18hb-gcc-bootstrap-0-guile-builder" [label = "gcc-bootstrap-0-guile-builder", fontname = Helvetica, shape = box, style = filled, fillcolor = "#ffffff"];
+"/nix/store/98gzqlgpm4gxrpl5bzykpqbwrx8ckx8l-module-import-compiled-guile-builder" [label = "module-import-compiled-guile-builder", fontname = "dejavu sans", shape = box, style = filled, fillcolor = "#ffffff"];
+"/nix/store/r3dsy5j2c16sv26raala6kahff7w18hb-gcc-bootstrap-0-guile-builder" [label = "gcc-bootstrap-0-guile-builder", fontname = "dejavu sans", shape = box, style = filled, fillcolor = "#ffffff"];
"/nix/store/3iawic1z95112yfz5y9xdp66qbxxr8l1-tar" -> "/nix/store/r3dsy5j2c16sv26raala6kahff7w18hb-gcc-bootstrap-0-guile-builder" [color = "magenta"];
"/nix/store/8cc81w6m04csm52y247xj3gydrbz2niv-xz" -> "/nix/store/r3dsy5j2c16sv26raala6kahff7w18hb-gcc-bootstrap-0-guile-builder" [color = "burlywood"];
"/nix/store/jaaqdl979wjirnbxz1jqsipg22nva5n4-bash" -> "/nix/store/r3dsy5j2c16sv26raala6kahff7w18hb-gcc-bootstrap-0-guile-builder" [color = "black"];
-"/nix/store/wdwrkg02gn28bkpbxgdb2nv558v8s3ji-glibc-2.17.tar.xz.drv" [label = "glibc-2.17.tar.xz.drv", fontname = Helvetica, shape = box, style = filled, fillcolor = "#ffffff"];
+"/nix/store/wdwrkg02gn28bkpbxgdb2nv558v8s3ji-glibc-2.17.tar.xz.drv" [label = "glibc-2.17.tar.xz.drv", fontname = "dejavu sans", shape = box, style = filled, fillcolor = "#ffffff"];
"/nix/store/kvk5wp8c9rzvvrmq5fv5r58l78q8i6ch-module-import.drv" -> "/nix/store/wdwrkg02gn28bkpbxgdb2nv558v8s3ji-glibc-2.17.tar.xz.drv" [color = "red"];
"/nix/store/pzv319p3q7raiad7nq7fcdw9rafzp14k-module-import-compiled.drv" -> "/nix/store/wdwrkg02gn28bkpbxgdb2nv558v8s3ji-glibc-2.17.tar.xz.drv" [color = "green"];
"/nix/store/q7as3jddipj4g6si8lawrdbkjg0zcjvg-glibc-2.17.tar.xz-guile-builder" -> "/nix/store/wdwrkg02gn28bkpbxgdb2nv558v8s3ji-glibc-2.17.tar.xz.drv" [color = "blue"];
"/nix/store/x9x1a86flhx15cams7235rfy5gc5cww1-guile-bootstrap-2.0.drv" -> "/nix/store/wdwrkg02gn28bkpbxgdb2nv558v8s3ji-glibc-2.17.tar.xz.drv" [color = "magenta"];
-"/nix/store/q7as3jddipj4g6si8lawrdbkjg0zcjvg-glibc-2.17.tar.xz-guile-builder" [label = "glibc-2.17.tar.xz-guile-builder", fontname = Helvetica, shape = box, style = filled, fillcolor = "#ffffff"];
-"/nix/store/x9x1a86flhx15cams7235rfy5gc5cww1-guile-bootstrap-2.0.drv" [label = "guile-bootstrap-2.0.drv", fontname = Helvetica, shape = box, style = filled, fillcolor = "#ffffff"];
+"/nix/store/q7as3jddipj4g6si8lawrdbkjg0zcjvg-glibc-2.17.tar.xz-guile-builder" [label = "glibc-2.17.tar.xz-guile-builder", fontname = "dejavu sans", shape = box, style = filled, fillcolor = "#ffffff"];
+"/nix/store/x9x1a86flhx15cams7235rfy5gc5cww1-guile-bootstrap-2.0.drv" [label = "guile-bootstrap-2.0.drv", fontname = "dejavu sans", shape = box, style = filled, fillcolor = "#ffffff"];
"/nix/store/bplka3yqdg8prqq3zdxza6wxlkjdhr2g-build-bootstrap-guile.sh" -> "/nix/store/x9x1a86flhx15cams7235rfy5gc5cww1-guile-bootstrap-2.0.drv" [color = "burlywood"];
"/nix/store/jaaqdl979wjirnbxz1jqsipg22nva5n4-bash" -> "/nix/store/x9x1a86flhx15cams7235rfy5gc5cww1-guile-bootstrap-2.0.drv" [color = "black"];
-"/nix/store/bplka3yqdg8prqq3zdxza6wxlkjdhr2g-build-bootstrap-guile.sh" [label = "build-bootstrap-guile.sh", fontname = Helvetica, shape = box, style = filled, fillcolor = "#ffffff"];
+"/nix/store/bplka3yqdg8prqq3zdxza6wxlkjdhr2g-build-bootstrap-guile.sh" [label = "build-bootstrap-guile.sh", fontname = "dejavu sans", shape = box, style = filled, fillcolor = "#ffffff"];
"/nix/store/3iawic1z95112yfz5y9xdp66qbxxr8l1-tar" -> "/nix/store/bplka3yqdg8prqq3zdxza6wxlkjdhr2g-build-bootstrap-guile.sh" [color = "red"];
"/nix/store/4xv2y0m6zr2lgi8x8pcb3zxjqxsz69kj-mkdir" -> "/nix/store/bplka3yqdg8prqq3zdxza6wxlkjdhr2g-build-bootstrap-guile.sh" [color = "green"];
"/nix/store/8cc81w6m04csm52y247xj3gydrbz2niv-xz" -> "/nix/store/bplka3yqdg8prqq3zdxza6wxlkjdhr2g-build-bootstrap-guile.sh" [color = "blue"];
"/nix/store/c450lqvaaz3ngx9pfiiiw55rqq6ssfda-guile-2.0.7.tar.xz" -> "/nix/store/bplka3yqdg8prqq3zdxza6wxlkjdhr2g-build-bootstrap-guile.sh" [color = "magenta"];
-"/nix/store/4xv2y0m6zr2lgi8x8pcb3zxjqxsz69kj-mkdir" [label = "mkdir", fontname = Helvetica, shape = box, style = filled, fillcolor = "#ffffff"];
-"/nix/store/c450lqvaaz3ngx9pfiiiw55rqq6ssfda-guile-2.0.7.tar.xz" [label = "guile-2.0.7.tar.xz", fontname = Helvetica, shape = box, style = filled, fillcolor = "#ffffff"];
-"/nix/store/y4n7rzysx6qz3p0n91dw9qz5w93l6iqv-module-import-compiled.drv" [label = "module-import-compiled.drv", fontname = Helvetica, shape = box, style = filled, fillcolor = "#ffffff"];
+"/nix/store/4xv2y0m6zr2lgi8x8pcb3zxjqxsz69kj-mkdir" [label = "mkdir", fontname = "dejavu sans", shape = box, style = filled, fillcolor = "#ffffff"];
+"/nix/store/c450lqvaaz3ngx9pfiiiw55rqq6ssfda-guile-2.0.7.tar.xz" [label = "guile-2.0.7.tar.xz", fontname = "dejavu sans", shape = box, style = filled, fillcolor = "#ffffff"];
+"/nix/store/y4n7rzysx6qz3p0n91dw9qz5w93l6iqv-module-import-compiled.drv" [label = "module-import-compiled.drv", fontname = "dejavu sans", shape = box, style = filled, fillcolor = "#ffffff"];
"/nix/store/8jiqjlb6zxjys16ca7s6jvxcc620c71k-module-import-compiled-guile-builder" -> "/nix/store/y4n7rzysx6qz3p0n91dw9qz5w93l6iqv-module-import-compiled.drv" [color = "burlywood"];
"/nix/store/96yx6013dhggr3mpg5ayxv8dm9mv2ghv-module-import.drv" -> "/nix/store/y4n7rzysx6qz3p0n91dw9qz5w93l6iqv-module-import-compiled.drv" [color = "black"];
"/nix/store/x9x1a86flhx15cams7235rfy5gc5cww1-guile-bootstrap-2.0.drv" -> "/nix/store/y4n7rzysx6qz3p0n91dw9qz5w93l6iqv-module-import-compiled.drv" [color = "red"];
-"/nix/store/8jiqjlb6zxjys16ca7s6jvxcc620c71k-module-import-compiled-guile-builder" [label = "module-import-compiled-guile-builder", fontname = Helvetica, shape = box, style = filled, fillcolor = "#ffffff"];
-"/nix/store/yfixjx2gpvsi5dhkpdx5gj6gx0xdk1c8-module-import-guile-builder" [label = "module-import-guile-builder", fontname = Helvetica, shape = box, style = filled, fillcolor = "#ffffff"];
+"/nix/store/8jiqjlb6zxjys16ca7s6jvxcc620c71k-module-import-compiled-guile-builder" [label = "module-import-compiled-guile-builder", fontname = "dejavu sans", shape = box, style = filled, fillcolor = "#ffffff"];
+"/nix/store/yfixjx2gpvsi5dhkpdx5gj6gx0xdk1c8-module-import-guile-builder" [label = "module-import-guile-builder", fontname = "dejavu sans", shape = box, style = filled, fillcolor = "#ffffff"];
"/nix/store/abagrdbdndkd0y2dwk0nw1gw0g0rhl2z-ftp-client.scm" -> "/nix/store/yfixjx2gpvsi5dhkpdx5gj6gx0xdk1c8-module-import-guile-builder" [color = "green"];
"/nix/store/dwd2iwd1ban8a8rmx568dpgrbkkidfhw-download.scm" -> "/nix/store/yfixjx2gpvsi5dhkpdx5gj6gx0xdk1c8-module-import-guile-builder" [color = "blue"];
"/nix/store/mj7amprgvl2rgash1nr0v64apik8vc7f-utils.scm" -> "/nix/store/yfixjx2gpvsi5dhkpdx5gj6gx0xdk1c8-module-import-guile-builder" [color = "magenta"];
diff --git a/doc/images/bootstrap-packages.dot b/doc/images/bootstrap-packages.dot
index 8b2df068a8..579bbcd00f 100644
--- a/doc/images/bootstrap-packages.dot
+++ b/doc/images/bootstrap-packages.dot
@@ -1,5 +1,5 @@
digraph "Guix bag" {
- "/gnu/store/aymf6jlxxpwgr71rkiz24m646nqsyii6-glibc-intermediate-2.24.drv" [label = "glibc-intermediate-2.24", shape = box, fontname = Helvetica];
+ "/gnu/store/aymf6jlxxpwgr71rkiz24m646nqsyii6-glibc-intermediate-2.24.drv" [label = "glibc-intermediate-2.24", shape = box, fontname = "dejavu sans"];
"/gnu/store/aymf6jlxxpwgr71rkiz24m646nqsyii6-glibc-intermediate-2.24.drv" -> "/gnu/store/wx8ifbb7x22cl4998fyldsr24fcv18j3-texinfo-6.3.drv" [color = magenta];
"/gnu/store/aymf6jlxxpwgr71rkiz24m646nqsyii6-glibc-intermediate-2.24.drv" -> "/gnu/store/ccj3as3258l70lmphi48hs7n017wv75s-perl-boot0-5.24.0.drv" [color = magenta];
"/gnu/store/aymf6jlxxpwgr71rkiz24m646nqsyii6-glibc-intermediate-2.24.drv" -> "/gnu/store/w9adgzgdqkwz0w13zxf2fn363v9wcllc-gcc-cross-boot0-4.9.4.drv" [color = magenta];
@@ -16,7 +16,7 @@ digraph "Guix bag" {
"/gnu/store/aymf6jlxxpwgr71rkiz24m646nqsyii6-glibc-intermediate-2.24.drv" -> "/gnu/store/jxlg2pb4bhxjld9kimc0vgc1pvgifzag-gcc-bootstrap-0.drv" [color = magenta];
"/gnu/store/aymf6jlxxpwgr71rkiz24m646nqsyii6-glibc-intermediate-2.24.drv" -> "/gnu/store/pmvh852v0x1zbl4r37pcpdqnq6m3bwfk-bootstrap-binaries-0.drv" [color = magenta];
"/gnu/store/aymf6jlxxpwgr71rkiz24m646nqsyii6-glibc-intermediate-2.24.drv" -> "/gnu/store/5syba2bxhh8z79jhq83fzy8fxcx5xb4s-linux-libre-headers-4.4.18.drv" [color = magenta];
- "/gnu/store/wx8ifbb7x22cl4998fyldsr24fcv18j3-texinfo-6.3.drv" [label = "texinfo-6.3", shape = box, fontname = Helvetica];
+ "/gnu/store/wx8ifbb7x22cl4998fyldsr24fcv18j3-texinfo-6.3.drv" [label = "texinfo-6.3", shape = box, fontname = "dejavu sans"];
"/gnu/store/wx8ifbb7x22cl4998fyldsr24fcv18j3-texinfo-6.3.drv" -> "/gnu/store/1jpld53g41rzv2bmjp6v9mckmyw75vs3-make-boot0-4.2.1.drv" [color = cyan3];
"/gnu/store/wx8ifbb7x22cl4998fyldsr24fcv18j3-texinfo-6.3.drv" -> "/gnu/store/zpphawi07xidhfs2dja3w7hmnfp99j02-diffutils-boot0-3.5.drv" [color = cyan3];
"/gnu/store/wx8ifbb7x22cl4998fyldsr24fcv18j3-texinfo-6.3.drv" -> "/gnu/store/m4900ip34w4rcgn5620iqdi1wv198d9s-findutils-boot0-4.6.0.drv" [color = cyan3];
@@ -27,25 +27,25 @@ digraph "Guix bag" {
"/gnu/store/wx8ifbb7x22cl4998fyldsr24fcv18j3-texinfo-6.3.drv" -> "/gnu/store/pmvh852v0x1zbl4r37pcpdqnq6m3bwfk-bootstrap-binaries-0.drv" [color = cyan3];
"/gnu/store/wx8ifbb7x22cl4998fyldsr24fcv18j3-texinfo-6.3.drv" -> "/gnu/store/pmvh852v0x1zbl4r37pcpdqnq6m3bwfk-bootstrap-binaries-0.drv" [color = cyan3];
"/gnu/store/wx8ifbb7x22cl4998fyldsr24fcv18j3-texinfo-6.3.drv" -> "/gnu/store/ccj3as3258l70lmphi48hs7n017wv75s-perl-boot0-5.24.0.drv" [color = cyan3];
- "/gnu/store/1jpld53g41rzv2bmjp6v9mckmyw75vs3-make-boot0-4.2.1.drv" [label = "make-boot0-4.2.1", shape = box, fontname = Helvetica];
+ "/gnu/store/1jpld53g41rzv2bmjp6v9mckmyw75vs3-make-boot0-4.2.1.drv" [label = "make-boot0-4.2.1", shape = box, fontname = "dejavu sans"];
"/gnu/store/1jpld53g41rzv2bmjp6v9mckmyw75vs3-make-boot0-4.2.1.drv" -> "/gnu/store/wda0p45jlbzg6w9j8zxw2sd11n2a4pbv-glibc-bootstrap-0.drv" [color = dimgrey];
"/gnu/store/1jpld53g41rzv2bmjp6v9mckmyw75vs3-make-boot0-4.2.1.drv" -> "/gnu/store/jxlg2pb4bhxjld9kimc0vgc1pvgifzag-gcc-bootstrap-0.drv" [color = dimgrey];
"/gnu/store/1jpld53g41rzv2bmjp6v9mckmyw75vs3-make-boot0-4.2.1.drv" -> "/gnu/store/wv8sf8h4n9s5cdya223iy2wp3alr92x8-binutils-bootstrap-0.drv" [color = dimgrey];
"/gnu/store/1jpld53g41rzv2bmjp6v9mckmyw75vs3-make-boot0-4.2.1.drv" -> "/gnu/store/pmvh852v0x1zbl4r37pcpdqnq6m3bwfk-bootstrap-binaries-0.drv" [color = dimgrey];
"/gnu/store/1jpld53g41rzv2bmjp6v9mckmyw75vs3-make-boot0-4.2.1.drv" -> "/gnu/store/pmvh852v0x1zbl4r37pcpdqnq6m3bwfk-bootstrap-binaries-0.drv" [color = dimgrey];
- "/gnu/store/wda0p45jlbzg6w9j8zxw2sd11n2a4pbv-glibc-bootstrap-0.drv" [label = "glibc-bootstrap-0", shape = box, fontname = Helvetica];
- "/gnu/store/jxlg2pb4bhxjld9kimc0vgc1pvgifzag-gcc-bootstrap-0.drv" [label = "gcc-bootstrap-0", shape = box, fontname = Helvetica];
+ "/gnu/store/wda0p45jlbzg6w9j8zxw2sd11n2a4pbv-glibc-bootstrap-0.drv" [label = "glibc-bootstrap-0", shape = box, fontname = "dejavu sans"];
+ "/gnu/store/jxlg2pb4bhxjld9kimc0vgc1pvgifzag-gcc-bootstrap-0.drv" [label = "gcc-bootstrap-0", shape = box, fontname = "dejavu sans"];
"/gnu/store/jxlg2pb4bhxjld9kimc0vgc1pvgifzag-gcc-bootstrap-0.drv" -> "/gnu/store/wda0p45jlbzg6w9j8zxw2sd11n2a4pbv-glibc-bootstrap-0.drv" [color = darkseagreen];
- "/gnu/store/wv8sf8h4n9s5cdya223iy2wp3alr92x8-binutils-bootstrap-0.drv" [label = "binutils-bootstrap-0", shape = box, fontname = Helvetica];
- "/gnu/store/pmvh852v0x1zbl4r37pcpdqnq6m3bwfk-bootstrap-binaries-0.drv" [label = "bootstrap-binaries-0", shape = box, fontname = Helvetica];
- "/gnu/store/zpphawi07xidhfs2dja3w7hmnfp99j02-diffutils-boot0-3.5.drv" [label = "diffutils-boot0-3.5", shape = box, fontname = Helvetica];
+ "/gnu/store/wv8sf8h4n9s5cdya223iy2wp3alr92x8-binutils-bootstrap-0.drv" [label = "binutils-bootstrap-0", shape = box, fontname = "dejavu sans"];
+ "/gnu/store/pmvh852v0x1zbl4r37pcpdqnq6m3bwfk-bootstrap-binaries-0.drv" [label = "bootstrap-binaries-0", shape = box, fontname = "dejavu sans"];
+ "/gnu/store/zpphawi07xidhfs2dja3w7hmnfp99j02-diffutils-boot0-3.5.drv" [label = "diffutils-boot0-3.5", shape = box, fontname = "dejavu sans"];
"/gnu/store/zpphawi07xidhfs2dja3w7hmnfp99j02-diffutils-boot0-3.5.drv" -> "/gnu/store/1jpld53g41rzv2bmjp6v9mckmyw75vs3-make-boot0-4.2.1.drv" [color = blue];
"/gnu/store/zpphawi07xidhfs2dja3w7hmnfp99j02-diffutils-boot0-3.5.drv" -> "/gnu/store/wda0p45jlbzg6w9j8zxw2sd11n2a4pbv-glibc-bootstrap-0.drv" [color = blue];
"/gnu/store/zpphawi07xidhfs2dja3w7hmnfp99j02-diffutils-boot0-3.5.drv" -> "/gnu/store/jxlg2pb4bhxjld9kimc0vgc1pvgifzag-gcc-bootstrap-0.drv" [color = blue];
"/gnu/store/zpphawi07xidhfs2dja3w7hmnfp99j02-diffutils-boot0-3.5.drv" -> "/gnu/store/wv8sf8h4n9s5cdya223iy2wp3alr92x8-binutils-bootstrap-0.drv" [color = blue];
"/gnu/store/zpphawi07xidhfs2dja3w7hmnfp99j02-diffutils-boot0-3.5.drv" -> "/gnu/store/pmvh852v0x1zbl4r37pcpdqnq6m3bwfk-bootstrap-binaries-0.drv" [color = blue];
"/gnu/store/zpphawi07xidhfs2dja3w7hmnfp99j02-diffutils-boot0-3.5.drv" -> "/gnu/store/pmvh852v0x1zbl4r37pcpdqnq6m3bwfk-bootstrap-binaries-0.drv" [color = blue];
- "/gnu/store/m4900ip34w4rcgn5620iqdi1wv198d9s-findutils-boot0-4.6.0.drv" [label = "findutils-boot0-4.6.0", shape = box, fontname = Helvetica];
+ "/gnu/store/m4900ip34w4rcgn5620iqdi1wv198d9s-findutils-boot0-4.6.0.drv" [label = "findutils-boot0-4.6.0", shape = box, fontname = "dejavu sans"];
"/gnu/store/m4900ip34w4rcgn5620iqdi1wv198d9s-findutils-boot0-4.6.0.drv" -> "/gnu/store/1jpld53g41rzv2bmjp6v9mckmyw75vs3-make-boot0-4.2.1.drv" [color = blue];
"/gnu/store/m4900ip34w4rcgn5620iqdi1wv198d9s-findutils-boot0-4.6.0.drv" -> "/gnu/store/zpphawi07xidhfs2dja3w7hmnfp99j02-diffutils-boot0-3.5.drv" [color = blue];
"/gnu/store/m4900ip34w4rcgn5620iqdi1wv198d9s-findutils-boot0-4.6.0.drv" -> "/gnu/store/wda0p45jlbzg6w9j8zxw2sd11n2a4pbv-glibc-bootstrap-0.drv" [color = blue];
@@ -53,14 +53,14 @@ digraph "Guix bag" {
"/gnu/store/m4900ip34w4rcgn5620iqdi1wv198d9s-findutils-boot0-4.6.0.drv" -> "/gnu/store/wv8sf8h4n9s5cdya223iy2wp3alr92x8-binutils-bootstrap-0.drv" [color = blue];
"/gnu/store/m4900ip34w4rcgn5620iqdi1wv198d9s-findutils-boot0-4.6.0.drv" -> "/gnu/store/pmvh852v0x1zbl4r37pcpdqnq6m3bwfk-bootstrap-binaries-0.drv" [color = blue];
"/gnu/store/m4900ip34w4rcgn5620iqdi1wv198d9s-findutils-boot0-4.6.0.drv" -> "/gnu/store/pmvh852v0x1zbl4r37pcpdqnq6m3bwfk-bootstrap-binaries-0.drv" [color = blue];
- "/gnu/store/nwzyr3xskw0ms8cndffsfvhvm5xz96pc-file-boot0-5.28.drv" [label = "file-boot0-5.28", shape = box, fontname = Helvetica];
+ "/gnu/store/nwzyr3xskw0ms8cndffsfvhvm5xz96pc-file-boot0-5.28.drv" [label = "file-boot0-5.28", shape = box, fontname = "dejavu sans"];
"/gnu/store/nwzyr3xskw0ms8cndffsfvhvm5xz96pc-file-boot0-5.28.drv" -> "/gnu/store/1jpld53g41rzv2bmjp6v9mckmyw75vs3-make-boot0-4.2.1.drv" [color = darkgoldenrod];
"/gnu/store/nwzyr3xskw0ms8cndffsfvhvm5xz96pc-file-boot0-5.28.drv" -> "/gnu/store/wda0p45jlbzg6w9j8zxw2sd11n2a4pbv-glibc-bootstrap-0.drv" [color = darkgoldenrod];
"/gnu/store/nwzyr3xskw0ms8cndffsfvhvm5xz96pc-file-boot0-5.28.drv" -> "/gnu/store/jxlg2pb4bhxjld9kimc0vgc1pvgifzag-gcc-bootstrap-0.drv" [color = darkgoldenrod];
"/gnu/store/nwzyr3xskw0ms8cndffsfvhvm5xz96pc-file-boot0-5.28.drv" -> "/gnu/store/wv8sf8h4n9s5cdya223iy2wp3alr92x8-binutils-bootstrap-0.drv" [color = darkgoldenrod];
"/gnu/store/nwzyr3xskw0ms8cndffsfvhvm5xz96pc-file-boot0-5.28.drv" -> "/gnu/store/pmvh852v0x1zbl4r37pcpdqnq6m3bwfk-bootstrap-binaries-0.drv" [color = darkgoldenrod];
"/gnu/store/nwzyr3xskw0ms8cndffsfvhvm5xz96pc-file-boot0-5.28.drv" -> "/gnu/store/pmvh852v0x1zbl4r37pcpdqnq6m3bwfk-bootstrap-binaries-0.drv" [color = darkgoldenrod];
- "/gnu/store/ccj3as3258l70lmphi48hs7n017wv75s-perl-boot0-5.24.0.drv" [label = "perl-boot0-5.24.0", shape = box, fontname = Helvetica];
+ "/gnu/store/ccj3as3258l70lmphi48hs7n017wv75s-perl-boot0-5.24.0.drv" [label = "perl-boot0-5.24.0", shape = box, fontname = "dejavu sans"];
"/gnu/store/ccj3as3258l70lmphi48hs7n017wv75s-perl-boot0-5.24.0.drv" -> "/gnu/store/1jpld53g41rzv2bmjp6v9mckmyw75vs3-make-boot0-4.2.1.drv" [color = peachpuff4];
"/gnu/store/ccj3as3258l70lmphi48hs7n017wv75s-perl-boot0-5.24.0.drv" -> "/gnu/store/zpphawi07xidhfs2dja3w7hmnfp99j02-diffutils-boot0-3.5.drv" [color = peachpuff4];
"/gnu/store/ccj3as3258l70lmphi48hs7n017wv75s-perl-boot0-5.24.0.drv" -> "/gnu/store/m4900ip34w4rcgn5620iqdi1wv198d9s-findutils-boot0-4.6.0.drv" [color = peachpuff4];
@@ -70,7 +70,7 @@ digraph "Guix bag" {
"/gnu/store/ccj3as3258l70lmphi48hs7n017wv75s-perl-boot0-5.24.0.drv" -> "/gnu/store/wv8sf8h4n9s5cdya223iy2wp3alr92x8-binutils-bootstrap-0.drv" [color = peachpuff4];
"/gnu/store/ccj3as3258l70lmphi48hs7n017wv75s-perl-boot0-5.24.0.drv" -> "/gnu/store/pmvh852v0x1zbl4r37pcpdqnq6m3bwfk-bootstrap-binaries-0.drv" [color = peachpuff4];
"/gnu/store/ccj3as3258l70lmphi48hs7n017wv75s-perl-boot0-5.24.0.drv" -> "/gnu/store/pmvh852v0x1zbl4r37pcpdqnq6m3bwfk-bootstrap-binaries-0.drv" [color = peachpuff4];
- "/gnu/store/w9adgzgdqkwz0w13zxf2fn363v9wcllc-gcc-cross-boot0-4.9.4.drv" [label = "gcc-cross-boot0-4.9.4", shape = box, fontname = Helvetica];
+ "/gnu/store/w9adgzgdqkwz0w13zxf2fn363v9wcllc-gcc-cross-boot0-4.9.4.drv" [label = "gcc-cross-boot0-4.9.4", shape = box, fontname = "dejavu sans"];
"/gnu/store/w9adgzgdqkwz0w13zxf2fn363v9wcllc-gcc-cross-boot0-4.9.4.drv" -> "/gnu/store/v1v7jp438hc5rpgriwpjp04x049vh0g4-binutils-cross-boot0-2.27.drv" [color = darkseagreen];
"/gnu/store/w9adgzgdqkwz0w13zxf2fn363v9wcllc-gcc-cross-boot0-4.9.4.drv" -> "/gnu/store/wda0p45jlbzg6w9j8zxw2sd11n2a4pbv-glibc-bootstrap-0.drv" [color = darkseagreen];
"/gnu/store/w9adgzgdqkwz0w13zxf2fn363v9wcllc-gcc-cross-boot0-4.9.4.drv" -> "/gnu/store/1jpld53g41rzv2bmjp6v9mckmyw75vs3-make-boot0-4.2.1.drv" [color = darkseagreen];
@@ -81,7 +81,7 @@ digraph "Guix bag" {
"/gnu/store/w9adgzgdqkwz0w13zxf2fn363v9wcllc-gcc-cross-boot0-4.9.4.drv" -> "/gnu/store/wv8sf8h4n9s5cdya223iy2wp3alr92x8-binutils-bootstrap-0.drv" [color = darkseagreen];
"/gnu/store/w9adgzgdqkwz0w13zxf2fn363v9wcllc-gcc-cross-boot0-4.9.4.drv" -> "/gnu/store/pmvh852v0x1zbl4r37pcpdqnq6m3bwfk-bootstrap-binaries-0.drv" [color = darkseagreen];
"/gnu/store/w9adgzgdqkwz0w13zxf2fn363v9wcllc-gcc-cross-boot0-4.9.4.drv" -> "/gnu/store/pmvh852v0x1zbl4r37pcpdqnq6m3bwfk-bootstrap-binaries-0.drv" [color = darkseagreen];
- "/gnu/store/v1v7jp438hc5rpgriwpjp04x049vh0g4-binutils-cross-boot0-2.27.drv" [label = "binutils-cross-boot0-2.27", shape = box, fontname = Helvetica];
+ "/gnu/store/v1v7jp438hc5rpgriwpjp04x049vh0g4-binutils-cross-boot0-2.27.drv" [label = "binutils-cross-boot0-2.27", shape = box, fontname = "dejavu sans"];
"/gnu/store/v1v7jp438hc5rpgriwpjp04x049vh0g4-binutils-cross-boot0-2.27.drv" -> "/gnu/store/1jpld53g41rzv2bmjp6v9mckmyw75vs3-make-boot0-4.2.1.drv" [color = dimgrey];
"/gnu/store/v1v7jp438hc5rpgriwpjp04x049vh0g4-binutils-cross-boot0-2.27.drv" -> "/gnu/store/zpphawi07xidhfs2dja3w7hmnfp99j02-diffutils-boot0-3.5.drv" [color = dimgrey];
"/gnu/store/v1v7jp438hc5rpgriwpjp04x049vh0g4-binutils-cross-boot0-2.27.drv" -> "/gnu/store/m4900ip34w4rcgn5620iqdi1wv198d9s-findutils-boot0-4.6.0.drv" [color = dimgrey];
@@ -91,12 +91,12 @@ digraph "Guix bag" {
"/gnu/store/v1v7jp438hc5rpgriwpjp04x049vh0g4-binutils-cross-boot0-2.27.drv" -> "/gnu/store/wv8sf8h4n9s5cdya223iy2wp3alr92x8-binutils-bootstrap-0.drv" [color = dimgrey];
"/gnu/store/v1v7jp438hc5rpgriwpjp04x049vh0g4-binutils-cross-boot0-2.27.drv" -> "/gnu/store/pmvh852v0x1zbl4r37pcpdqnq6m3bwfk-bootstrap-binaries-0.drv" [color = dimgrey];
"/gnu/store/v1v7jp438hc5rpgriwpjp04x049vh0g4-binutils-cross-boot0-2.27.drv" -> "/gnu/store/pmvh852v0x1zbl4r37pcpdqnq6m3bwfk-bootstrap-binaries-0.drv" [color = dimgrey];
- "/gnu/store/72snmrnjphwjxffknjhzm3xg38wd08al-ld-wrapper-x86_64-guix-linux-gnu-0.drv" [label = "ld-wrapper-x86_64-guix-linux-gnu-0", shape = box, fontname = Helvetica];
+ "/gnu/store/72snmrnjphwjxffknjhzm3xg38wd08al-ld-wrapper-x86_64-guix-linux-gnu-0.drv" [label = "ld-wrapper-x86_64-guix-linux-gnu-0", shape = box, fontname = "dejavu sans"];
"/gnu/store/72snmrnjphwjxffknjhzm3xg38wd08al-ld-wrapper-x86_64-guix-linux-gnu-0.drv" -> "/gnu/store/v1v7jp438hc5rpgriwpjp04x049vh0g4-binutils-cross-boot0-2.27.drv" [color = dimgrey];
"/gnu/store/72snmrnjphwjxffknjhzm3xg38wd08al-ld-wrapper-x86_64-guix-linux-gnu-0.drv" -> "/gnu/store/af19ma2vm3qhvh3rw6cdivyp98s18bj3-guile-bootstrap-2.0.drv" [color = dimgrey];
"/gnu/store/72snmrnjphwjxffknjhzm3xg38wd08al-ld-wrapper-x86_64-guix-linux-gnu-0.drv" -> "/gnu/store/pmvh852v0x1zbl4r37pcpdqnq6m3bwfk-bootstrap-binaries-0.drv" [color = dimgrey];
- "/gnu/store/af19ma2vm3qhvh3rw6cdivyp98s18bj3-guile-bootstrap-2.0.drv" [label = "guile-bootstrap-2.0", shape = box, fontname = Helvetica];
- "/gnu/store/5syba2bxhh8z79jhq83fzy8fxcx5xb4s-linux-libre-headers-4.4.18.drv" [label = "linux-libre-headers-4.4.18", shape = box, fontname = Helvetica];
+ "/gnu/store/af19ma2vm3qhvh3rw6cdivyp98s18bj3-guile-bootstrap-2.0.drv" [label = "guile-bootstrap-2.0", shape = box, fontname = "dejavu sans"];
+ "/gnu/store/5syba2bxhh8z79jhq83fzy8fxcx5xb4s-linux-libre-headers-4.4.18.drv" [label = "linux-libre-headers-4.4.18", shape = box, fontname = "dejavu sans"];
"/gnu/store/5syba2bxhh8z79jhq83fzy8fxcx5xb4s-linux-libre-headers-4.4.18.drv" -> "/gnu/store/ccj3as3258l70lmphi48hs7n017wv75s-perl-boot0-5.24.0.drv" [color = blue];
"/gnu/store/5syba2bxhh8z79jhq83fzy8fxcx5xb4s-linux-libre-headers-4.4.18.drv" -> "/gnu/store/1jpld53g41rzv2bmjp6v9mckmyw75vs3-make-boot0-4.2.1.drv" [color = blue];
"/gnu/store/5syba2bxhh8z79jhq83fzy8fxcx5xb4s-linux-libre-headers-4.4.18.drv" -> "/gnu/store/zpphawi07xidhfs2dja3w7hmnfp99j02-diffutils-boot0-3.5.drv" [color = blue];
diff --git a/doc/images/coreutils-bag-graph.dot b/doc/images/coreutils-bag-graph.dot
index 7c90db65d4..4b5d20c8f4 100644
--- a/doc/images/coreutils-bag-graph.dot
+++ b/doc/images/coreutils-bag-graph.dot
@@ -1,5 +1,5 @@
digraph "Guix bag-emerged" {
- "/gnu/store/yv2r96w2dvbb0sjrf9f2imybpnyd616b-coreutils-8.25.drv" [label = "coreutils-8.25", shape = box, fontname = Helvetica];
+ "/gnu/store/yv2r96w2dvbb0sjrf9f2imybpnyd616b-coreutils-8.25.drv" [label = "coreutils-8.25", shape = box, fontname = "dejavu sans"];
"/gnu/store/yv2r96w2dvbb0sjrf9f2imybpnyd616b-coreutils-8.25.drv" -> "/gnu/store/jxcx1jcvzxb17dc69sfwb352vgwyr108-perl-5.24.0.drv" [color = cyan3];
"/gnu/store/yv2r96w2dvbb0sjrf9f2imybpnyd616b-coreutils-8.25.drv" -> "/gnu/store/7ijl8lybdx95kndajavdrpz05jdiwy9g-tar-1.29.drv" [color = cyan3];
"/gnu/store/yv2r96w2dvbb0sjrf9f2imybpnyd616b-coreutils-8.25.drv" -> "/gnu/store/0ykf3p023pzfcg2bw8ahjc7cvmc12zjq-gzip-1.8.drv" [color = cyan3];
@@ -23,7 +23,7 @@ digraph "Guix bag-emerged" {
"/gnu/store/yv2r96w2dvbb0sjrf9f2imybpnyd616b-coreutils-8.25.drv" -> "/gnu/store/ywmblv73pqa8lqqz368g46ysz65pnm0v-acl-2.2.52.drv" [color = cyan3];
"/gnu/store/yv2r96w2dvbb0sjrf9f2imybpnyd616b-coreutils-8.25.drv" -> "/gnu/store/7gqg2kmrm1bjgphnd70ps5c11gqml571-gmp-6.1.1.drv" [color = cyan3];
"/gnu/store/yv2r96w2dvbb0sjrf9f2imybpnyd616b-coreutils-8.25.drv" -> "/gnu/store/ijv3y5l1fbbzwb77lc867r1qbsf147i8-libcap-2.24.drv" [color = cyan3];
- "/gnu/store/jxcx1jcvzxb17dc69sfwb352vgwyr108-perl-5.24.0.drv" [label = "perl-5.24.0", shape = box, fontname = Helvetica];
+ "/gnu/store/jxcx1jcvzxb17dc69sfwb352vgwyr108-perl-5.24.0.drv" [label = "perl-5.24.0", shape = box, fontname = "dejavu sans"];
"/gnu/store/jxcx1jcvzxb17dc69sfwb352vgwyr108-perl-5.24.0.drv" -> "/gnu/store/7ijl8lybdx95kndajavdrpz05jdiwy9g-tar-1.29.drv" [color = blue];
"/gnu/store/jxcx1jcvzxb17dc69sfwb352vgwyr108-perl-5.24.0.drv" -> "/gnu/store/0ykf3p023pzfcg2bw8ahjc7cvmc12zjq-gzip-1.8.drv" [color = blue];
"/gnu/store/jxcx1jcvzxb17dc69sfwb352vgwyr108-perl-5.24.0.drv" -> "/gnu/store/xx3hiqhqn0d94zz7b46hgggwsz3wjiiw-bzip2-1.0.6.drv" [color = blue];
@@ -43,26 +43,26 @@ digraph "Guix bag-emerged" {
"/gnu/store/jxcx1jcvzxb17dc69sfwb352vgwyr108-perl-5.24.0.drv" -> "/gnu/store/hv3dl3my12mq0gkwvckmnqccnckn39l0-gcc-4.9.4.drv" [color = blue];
"/gnu/store/jxcx1jcvzxb17dc69sfwb352vgwyr108-perl-5.24.0.drv" -> "/gnu/store/qbfynm50snyn31w2c3paiw2n6wvzksg8-glibc-2.24.drv" [color = blue];
"/gnu/store/jxcx1jcvzxb17dc69sfwb352vgwyr108-perl-5.24.0.drv" -> "/gnu/store/ir0lq2x7h64g2z5mlqvnlysjk2bc9xka-glibc-utf8-locales-2.24.drv" [color = blue];
- "/gnu/store/7ijl8lybdx95kndajavdrpz05jdiwy9g-tar-1.29.drv" [label = "tar-1.29", shape = box, fontname = Helvetica];
- "/gnu/store/0ykf3p023pzfcg2bw8ahjc7cvmc12zjq-gzip-1.8.drv" [label = "gzip-1.8", shape = box, fontname = Helvetica];
- "/gnu/store/xx3hiqhqn0d94zz7b46hgggwsz3wjiiw-bzip2-1.0.6.drv" [label = "bzip2-1.0.6", shape = box, fontname = Helvetica];
- "/gnu/store/kz8rzasivw4aflsv4rll3m539xybf226-xz-5.2.2.drv" [label = "xz-5.2.2", shape = box, fontname = Helvetica];
- "/gnu/store/3pwrlsd23k2h104akxfj3cxhqcp973g9-file-5.28.drv" [label = "file-5.28", shape = box, fontname = Helvetica];
- "/gnu/store/f1ww5vh5abnvr8b24llipm5dl89s5lq2-diffutils-3.5.drv" [label = "diffutils-3.5", shape = box, fontname = Helvetica];
- "/gnu/store/0cbgdhhyh7hsgwq1x54n9vnq99rfjch9-patch-2.7.5.drv" [label = "patch-2.7.5", shape = box, fontname = Helvetica];
- "/gnu/store/8xjnm44dfwwxp90hxq6zhb6qvia7rb3l-sed-4.2.2.drv" [label = "sed-4.2.2", shape = box, fontname = Helvetica];
- "/gnu/store/54wjl6dp6rp47r67f4nyfqyv8nh456yc-findutils-4.6.0.drv" [label = "findutils-4.6.0", shape = box, fontname = Helvetica];
- "/gnu/store/k951w49yw74ikg19l4mmlwfrq9w7a7zd-gawk-4.1.4.drv" [label = "gawk-4.1.4", shape = box, fontname = Helvetica];
- "/gnu/store/n48xdjkvhlhj5mgdzy59n0dpb9vn0v78-grep-2.25.drv" [label = "grep-2.25", shape = box, fontname = Helvetica];
- "/gnu/store/i52csyja3036ns0zj6z85lkgz3wfyym7-coreutils-8.25.drv" [label = "coreutils-8.25", shape = box, fontname = Helvetica];
- "/gnu/store/nv4mnbz3mpd4gv80djk7762wyvxpccqk-make-4.2.1.drv" [label = "make-4.2.1", shape = box, fontname = Helvetica];
- "/gnu/store/2c60vlcvpj5dvmgklajkp7cpynhcqixr-bash-4.4.0.drv" [label = "bash-4.4.0", shape = box, fontname = Helvetica];
- "/gnu/store/zhc5c4s0xvzizpgpq2za6x84vxv57iy6-ld-wrapper-0.drv" [label = "ld-wrapper-0", shape = box, fontname = Helvetica];
- "/gnu/store/9k1js0kalh4s6q4hf0rgg2n0zdyrwi69-binutils-2.27.drv" [label = "binutils-2.27", shape = box, fontname = Helvetica];
- "/gnu/store/hv3dl3my12mq0gkwvckmnqccnckn39l0-gcc-4.9.4.drv" [label = "gcc-4.9.4", shape = box, fontname = Helvetica];
- "/gnu/store/qbfynm50snyn31w2c3paiw2n6wvzksg8-glibc-2.24.drv" [label = "glibc-2.24", shape = box, fontname = Helvetica];
- "/gnu/store/ir0lq2x7h64g2z5mlqvnlysjk2bc9xka-glibc-utf8-locales-2.24.drv" [label = "glibc-utf8-locales-2.24", shape = box, fontname = Helvetica];
- "/gnu/store/ywmblv73pqa8lqqz368g46ysz65pnm0v-acl-2.2.52.drv" [label = "acl-2.2.52", shape = box, fontname = Helvetica];
+ "/gnu/store/7ijl8lybdx95kndajavdrpz05jdiwy9g-tar-1.29.drv" [label = "tar-1.29", shape = box, fontname = "dejavu sans"];
+ "/gnu/store/0ykf3p023pzfcg2bw8ahjc7cvmc12zjq-gzip-1.8.drv" [label = "gzip-1.8", shape = box, fontname = "dejavu sans"];
+ "/gnu/store/xx3hiqhqn0d94zz7b46hgggwsz3wjiiw-bzip2-1.0.6.drv" [label = "bzip2-1.0.6", shape = box, fontname = "dejavu sans"];
+ "/gnu/store/kz8rzasivw4aflsv4rll3m539xybf226-xz-5.2.2.drv" [label = "xz-5.2.2", shape = box, fontname = "dejavu sans"];
+ "/gnu/store/3pwrlsd23k2h104akxfj3cxhqcp973g9-file-5.28.drv" [label = "file-5.28", shape = box, fontname = "dejavu sans"];
+ "/gnu/store/f1ww5vh5abnvr8b24llipm5dl89s5lq2-diffutils-3.5.drv" [label = "diffutils-3.5", shape = box, fontname = "dejavu sans"];
+ "/gnu/store/0cbgdhhyh7hsgwq1x54n9vnq99rfjch9-patch-2.7.5.drv" [label = "patch-2.7.5", shape = box, fontname = "dejavu sans"];
+ "/gnu/store/8xjnm44dfwwxp90hxq6zhb6qvia7rb3l-sed-4.2.2.drv" [label = "sed-4.2.2", shape = box, fontname = "dejavu sans"];
+ "/gnu/store/54wjl6dp6rp47r67f4nyfqyv8nh456yc-findutils-4.6.0.drv" [label = "findutils-4.6.0", shape = box, fontname = "dejavu sans"];
+ "/gnu/store/k951w49yw74ikg19l4mmlwfrq9w7a7zd-gawk-4.1.4.drv" [label = "gawk-4.1.4", shape = box, fontname = "dejavu sans"];
+ "/gnu/store/n48xdjkvhlhj5mgdzy59n0dpb9vn0v78-grep-2.25.drv" [label = "grep-2.25", shape = box, fontname = "dejavu sans"];
+ "/gnu/store/i52csyja3036ns0zj6z85lkgz3wfyym7-coreutils-8.25.drv" [label = "coreutils-8.25", shape = box, fontname = "dejavu sans"];
+ "/gnu/store/nv4mnbz3mpd4gv80djk7762wyvxpccqk-make-4.2.1.drv" [label = "make-4.2.1", shape = box, fontname = "dejavu sans"];
+ "/gnu/store/2c60vlcvpj5dvmgklajkp7cpynhcqixr-bash-4.4.0.drv" [label = "bash-4.4.0", shape = box, fontname = "dejavu sans"];
+ "/gnu/store/zhc5c4s0xvzizpgpq2za6x84vxv57iy6-ld-wrapper-0.drv" [label = "ld-wrapper-0", shape = box, fontname = "dejavu sans"];
+ "/gnu/store/9k1js0kalh4s6q4hf0rgg2n0zdyrwi69-binutils-2.27.drv" [label = "binutils-2.27", shape = box, fontname = "dejavu sans"];
+ "/gnu/store/hv3dl3my12mq0gkwvckmnqccnckn39l0-gcc-4.9.4.drv" [label = "gcc-4.9.4", shape = box, fontname = "dejavu sans"];
+ "/gnu/store/qbfynm50snyn31w2c3paiw2n6wvzksg8-glibc-2.24.drv" [label = "glibc-2.24", shape = box, fontname = "dejavu sans"];
+ "/gnu/store/ir0lq2x7h64g2z5mlqvnlysjk2bc9xka-glibc-utf8-locales-2.24.drv" [label = "glibc-utf8-locales-2.24", shape = box, fontname = "dejavu sans"];
+ "/gnu/store/ywmblv73pqa8lqqz368g46ysz65pnm0v-acl-2.2.52.drv" [label = "acl-2.2.52", shape = box, fontname = "dejavu sans"];
"/gnu/store/ywmblv73pqa8lqqz368g46ysz65pnm0v-acl-2.2.52.drv" -> "/gnu/store/nw68wjvbw505klgpsavq7dk195wg8ffj-gettext-minimal-0.19.8.1.drv" [color = darkgoldenrod];
"/gnu/store/ywmblv73pqa8lqqz368g46ysz65pnm0v-acl-2.2.52.drv" -> "/gnu/store/jxcx1jcvzxb17dc69sfwb352vgwyr108-perl-5.24.0.drv" [color = darkgoldenrod];
"/gnu/store/ywmblv73pqa8lqqz368g46ysz65pnm0v-acl-2.2.52.drv" -> "/gnu/store/7ijl8lybdx95kndajavdrpz05jdiwy9g-tar-1.29.drv" [color = darkgoldenrod];
@@ -85,7 +85,7 @@ digraph "Guix bag-emerged" {
"/gnu/store/ywmblv73pqa8lqqz368g46ysz65pnm0v-acl-2.2.52.drv" -> "/gnu/store/qbfynm50snyn31w2c3paiw2n6wvzksg8-glibc-2.24.drv" [color = darkgoldenrod];
"/gnu/store/ywmblv73pqa8lqqz368g46ysz65pnm0v-acl-2.2.52.drv" -> "/gnu/store/ir0lq2x7h64g2z5mlqvnlysjk2bc9xka-glibc-utf8-locales-2.24.drv" [color = darkgoldenrod];
"/gnu/store/ywmblv73pqa8lqqz368g46ysz65pnm0v-acl-2.2.52.drv" -> "/gnu/store/gplx9i7c01f2r6qvm6d5w60iam73zmin-attr-2.4.47.drv" [color = darkgoldenrod];
- "/gnu/store/nw68wjvbw505klgpsavq7dk195wg8ffj-gettext-minimal-0.19.8.1.drv" [label = "gettext-minimal-0.19.8.1", shape = box, fontname = Helvetica];
+ "/gnu/store/nw68wjvbw505klgpsavq7dk195wg8ffj-gettext-minimal-0.19.8.1.drv" [label = "gettext-minimal-0.19.8.1", shape = box, fontname = "dejavu sans"];
"/gnu/store/nw68wjvbw505klgpsavq7dk195wg8ffj-gettext-minimal-0.19.8.1.drv" -> "/gnu/store/7ijl8lybdx95kndajavdrpz05jdiwy9g-tar-1.29.drv" [color = dimgrey];
"/gnu/store/nw68wjvbw505klgpsavq7dk195wg8ffj-gettext-minimal-0.19.8.1.drv" -> "/gnu/store/0ykf3p023pzfcg2bw8ahjc7cvmc12zjq-gzip-1.8.drv" [color = dimgrey];
"/gnu/store/nw68wjvbw505klgpsavq7dk195wg8ffj-gettext-minimal-0.19.8.1.drv" -> "/gnu/store/xx3hiqhqn0d94zz7b46hgggwsz3wjiiw-bzip2-1.0.6.drv" [color = dimgrey];
@@ -106,7 +106,7 @@ digraph "Guix bag-emerged" {
"/gnu/store/nw68wjvbw505klgpsavq7dk195wg8ffj-gettext-minimal-0.19.8.1.drv" -> "/gnu/store/qbfynm50snyn31w2c3paiw2n6wvzksg8-glibc-2.24.drv" [color = dimgrey];
"/gnu/store/nw68wjvbw505klgpsavq7dk195wg8ffj-gettext-minimal-0.19.8.1.drv" -> "/gnu/store/ir0lq2x7h64g2z5mlqvnlysjk2bc9xka-glibc-utf8-locales-2.24.drv" [color = dimgrey];
"/gnu/store/nw68wjvbw505klgpsavq7dk195wg8ffj-gettext-minimal-0.19.8.1.drv" -> "/gnu/store/4dql1pzyivg87jwyfmmkwc6jll1vnizc-expat-2.2.0.drv" [color = dimgrey];
- "/gnu/store/4dql1pzyivg87jwyfmmkwc6jll1vnizc-expat-2.2.0.drv" [label = "expat-2.2.0", shape = box, fontname = Helvetica];
+ "/gnu/store/4dql1pzyivg87jwyfmmkwc6jll1vnizc-expat-2.2.0.drv" [label = "expat-2.2.0", shape = box, fontname = "dejavu sans"];
"/gnu/store/4dql1pzyivg87jwyfmmkwc6jll1vnizc-expat-2.2.0.drv" -> "/gnu/store/7ijl8lybdx95kndajavdrpz05jdiwy9g-tar-1.29.drv" [color = darkviolet];
"/gnu/store/4dql1pzyivg87jwyfmmkwc6jll1vnizc-expat-2.2.0.drv" -> "/gnu/store/0ykf3p023pzfcg2bw8ahjc7cvmc12zjq-gzip-1.8.drv" [color = darkviolet];
"/gnu/store/4dql1pzyivg87jwyfmmkwc6jll1vnizc-expat-2.2.0.drv" -> "/gnu/store/xx3hiqhqn0d94zz7b46hgggwsz3wjiiw-bzip2-1.0.6.drv" [color = darkviolet];
@@ -126,7 +126,7 @@ digraph "Guix bag-emerged" {
"/gnu/store/4dql1pzyivg87jwyfmmkwc6jll1vnizc-expat-2.2.0.drv" -> "/gnu/store/hv3dl3my12mq0gkwvckmnqccnckn39l0-gcc-4.9.4.drv" [color = darkviolet];
"/gnu/store/4dql1pzyivg87jwyfmmkwc6jll1vnizc-expat-2.2.0.drv" -> "/gnu/store/qbfynm50snyn31w2c3paiw2n6wvzksg8-glibc-2.24.drv" [color = darkviolet];
"/gnu/store/4dql1pzyivg87jwyfmmkwc6jll1vnizc-expat-2.2.0.drv" -> "/gnu/store/ir0lq2x7h64g2z5mlqvnlysjk2bc9xka-glibc-utf8-locales-2.24.drv" [color = darkviolet];
- "/gnu/store/gplx9i7c01f2r6qvm6d5w60iam73zmin-attr-2.4.47.drv" [label = "attr-2.4.47", shape = box, fontname = Helvetica];
+ "/gnu/store/gplx9i7c01f2r6qvm6d5w60iam73zmin-attr-2.4.47.drv" [label = "attr-2.4.47", shape = box, fontname = "dejavu sans"];
"/gnu/store/gplx9i7c01f2r6qvm6d5w60iam73zmin-attr-2.4.47.drv" -> "/gnu/store/nw68wjvbw505klgpsavq7dk195wg8ffj-gettext-minimal-0.19.8.1.drv" [color = peachpuff4];
"/gnu/store/gplx9i7c01f2r6qvm6d5w60iam73zmin-attr-2.4.47.drv" -> "/gnu/store/7ijl8lybdx95kndajavdrpz05jdiwy9g-tar-1.29.drv" [color = peachpuff4];
"/gnu/store/gplx9i7c01f2r6qvm6d5w60iam73zmin-attr-2.4.47.drv" -> "/gnu/store/0ykf3p023pzfcg2bw8ahjc7cvmc12zjq-gzip-1.8.drv" [color = peachpuff4];
@@ -148,7 +148,7 @@ digraph "Guix bag-emerged" {
"/gnu/store/gplx9i7c01f2r6qvm6d5w60iam73zmin-attr-2.4.47.drv" -> "/gnu/store/qbfynm50snyn31w2c3paiw2n6wvzksg8-glibc-2.24.drv" [color = peachpuff4];
"/gnu/store/gplx9i7c01f2r6qvm6d5w60iam73zmin-attr-2.4.47.drv" -> "/gnu/store/ir0lq2x7h64g2z5mlqvnlysjk2bc9xka-glibc-utf8-locales-2.24.drv" [color = peachpuff4];
"/gnu/store/gplx9i7c01f2r6qvm6d5w60iam73zmin-attr-2.4.47.drv" -> "/gnu/store/jxcx1jcvzxb17dc69sfwb352vgwyr108-perl-5.24.0.drv" [color = peachpuff4];
- "/gnu/store/7gqg2kmrm1bjgphnd70ps5c11gqml571-gmp-6.1.1.drv" [label = "gmp-6.1.1", shape = box, fontname = Helvetica];
+ "/gnu/store/7gqg2kmrm1bjgphnd70ps5c11gqml571-gmp-6.1.1.drv" [label = "gmp-6.1.1", shape = box, fontname = "dejavu sans"];
"/gnu/store/7gqg2kmrm1bjgphnd70ps5c11gqml571-gmp-6.1.1.drv" -> "/gnu/store/d1n7i55s1zcwzi21pnsxhamk3b1zf61d-m4-1.4.17.drv" [color = darkgoldenrod];
"/gnu/store/7gqg2kmrm1bjgphnd70ps5c11gqml571-gmp-6.1.1.drv" -> "/gnu/store/7ijl8lybdx95kndajavdrpz05jdiwy9g-tar-1.29.drv" [color = darkgoldenrod];
"/gnu/store/7gqg2kmrm1bjgphnd70ps5c11gqml571-gmp-6.1.1.drv" -> "/gnu/store/0ykf3p023pzfcg2bw8ahjc7cvmc12zjq-gzip-1.8.drv" [color = darkgoldenrod];
@@ -169,7 +169,7 @@ digraph "Guix bag-emerged" {
"/gnu/store/7gqg2kmrm1bjgphnd70ps5c11gqml571-gmp-6.1.1.drv" -> "/gnu/store/hv3dl3my12mq0gkwvckmnqccnckn39l0-gcc-4.9.4.drv" [color = darkgoldenrod];
"/gnu/store/7gqg2kmrm1bjgphnd70ps5c11gqml571-gmp-6.1.1.drv" -> "/gnu/store/qbfynm50snyn31w2c3paiw2n6wvzksg8-glibc-2.24.drv" [color = darkgoldenrod];
"/gnu/store/7gqg2kmrm1bjgphnd70ps5c11gqml571-gmp-6.1.1.drv" -> "/gnu/store/ir0lq2x7h64g2z5mlqvnlysjk2bc9xka-glibc-utf8-locales-2.24.drv" [color = darkgoldenrod];
- "/gnu/store/d1n7i55s1zcwzi21pnsxhamk3b1zf61d-m4-1.4.17.drv" [label = "m4-1.4.17", shape = box, fontname = Helvetica];
+ "/gnu/store/d1n7i55s1zcwzi21pnsxhamk3b1zf61d-m4-1.4.17.drv" [label = "m4-1.4.17", shape = box, fontname = "dejavu sans"];
"/gnu/store/d1n7i55s1zcwzi21pnsxhamk3b1zf61d-m4-1.4.17.drv" -> "/gnu/store/7ijl8lybdx95kndajavdrpz05jdiwy9g-tar-1.29.drv" [color = cyan3];
"/gnu/store/d1n7i55s1zcwzi21pnsxhamk3b1zf61d-m4-1.4.17.drv" -> "/gnu/store/0ykf3p023pzfcg2bw8ahjc7cvmc12zjq-gzip-1.8.drv" [color = cyan3];
"/gnu/store/d1n7i55s1zcwzi21pnsxhamk3b1zf61d-m4-1.4.17.drv" -> "/gnu/store/xx3hiqhqn0d94zz7b46hgggwsz3wjiiw-bzip2-1.0.6.drv" [color = cyan3];
@@ -189,7 +189,7 @@ digraph "Guix bag-emerged" {
"/gnu/store/d1n7i55s1zcwzi21pnsxhamk3b1zf61d-m4-1.4.17.drv" -> "/gnu/store/hv3dl3my12mq0gkwvckmnqccnckn39l0-gcc-4.9.4.drv" [color = cyan3];
"/gnu/store/d1n7i55s1zcwzi21pnsxhamk3b1zf61d-m4-1.4.17.drv" -> "/gnu/store/qbfynm50snyn31w2c3paiw2n6wvzksg8-glibc-2.24.drv" [color = cyan3];
"/gnu/store/d1n7i55s1zcwzi21pnsxhamk3b1zf61d-m4-1.4.17.drv" -> "/gnu/store/ir0lq2x7h64g2z5mlqvnlysjk2bc9xka-glibc-utf8-locales-2.24.drv" [color = cyan3];
- "/gnu/store/ijv3y5l1fbbzwb77lc867r1qbsf147i8-libcap-2.24.drv" [label = "libcap-2.24", shape = box, fontname = Helvetica];
+ "/gnu/store/ijv3y5l1fbbzwb77lc867r1qbsf147i8-libcap-2.24.drv" [label = "libcap-2.24", shape = box, fontname = "dejavu sans"];
"/gnu/store/ijv3y5l1fbbzwb77lc867r1qbsf147i8-libcap-2.24.drv" -> "/gnu/store/jxcx1jcvzxb17dc69sfwb352vgwyr108-perl-5.24.0.drv" [color = blue];
"/gnu/store/ijv3y5l1fbbzwb77lc867r1qbsf147i8-libcap-2.24.drv" -> "/gnu/store/7ijl8lybdx95kndajavdrpz05jdiwy9g-tar-1.29.drv" [color = blue];
"/gnu/store/ijv3y5l1fbbzwb77lc867r1qbsf147i8-libcap-2.24.drv" -> "/gnu/store/0ykf3p023pzfcg2bw8ahjc7cvmc12zjq-gzip-1.8.drv" [color = blue];
diff --git a/doc/images/coreutils-graph.dot b/doc/images/coreutils-graph.dot
index 920e5f2358..ffb62c922d 100644
--- a/doc/images/coreutils-graph.dot
+++ b/doc/images/coreutils-graph.dot
@@ -1,24 +1,24 @@
digraph "Guix package" {
- "72851008" [label = "coreutils-8.25", shape = box, fontname = Helvetica];
+ "72851008" [label = "coreutils-8.25", shape = box, fontname = "dejavu sans"];
"72851008" -> "49728512" [color = darkseagreen];
"72851008" -> "74872512" [color = darkseagreen];
"72851008" -> "53180864" [color = darkseagreen];
"72851008" -> "75199232" [color = darkseagreen];
- "49728512" [label = "perl-5.24.0", shape = box, fontname = Helvetica];
- "74872512" [label = "acl-2.2.52", shape = box, fontname = Helvetica];
+ "49728512" [label = "perl-5.24.0", shape = box, fontname = "dejavu sans"];
+ "74872512" [label = "acl-2.2.52", shape = box, fontname = "dejavu sans"];
"74872512" -> "74873280" [color = red];
"74872512" -> "49728512" [color = red];
"74872512" -> "74872704" [color = red];
- "74873280" [label = "gettext-minimal-0.19.8.1", shape = box, fontname = Helvetica];
+ "74873280" [label = "gettext-minimal-0.19.8.1", shape = box, fontname = "dejavu sans"];
"74873280" -> "41550784" [color = cyan3];
- "41550784" [label = "expat-2.2.0", shape = box, fontname = Helvetica];
- "74872704" [label = "attr-2.4.47", shape = box, fontname = Helvetica];
+ "41550784" [label = "expat-2.2.0", shape = box, fontname = "dejavu sans"];
+ "74872704" [label = "attr-2.4.47", shape = box, fontname = "dejavu sans"];
"74872704" -> "74873280" [color = cyan3];
"74872704" -> "49728512" [color = cyan3];
- "53180864" [label = "gmp-6.1.1", shape = box, fontname = Helvetica];
+ "53180864" [label = "gmp-6.1.1", shape = box, fontname = "dejavu sans"];
"53180864" -> "50262784" [color = darkgoldenrod];
- "50262784" [label = "m4-1.4.17", shape = box, fontname = Helvetica];
- "75199232" [label = "libcap-2.24", shape = box, fontname = Helvetica];
+ "50262784" [label = "m4-1.4.17", shape = box, fontname = "dejavu sans"];
+ "75199232" [label = "libcap-2.24", shape = box, fontname = "dejavu sans"];
"75199232" -> "49728512" [color = blue];
"75199232" -> "74872704" [color = blue];
diff --git a/doc/images/gcc-core-mesboot0-graph.dot b/doc/images/gcc-core-mesboot0-graph.dot
index ef4e3a441e..de20dbe223 100644
--- a/doc/images/gcc-core-mesboot0-graph.dot
+++ b/doc/images/gcc-core-mesboot0-graph.dot
@@ -1,5 +1,5 @@
digraph "Guix package" {
- "139803511371136" [label = "gcc-core-mesboot0@2.95.3", shape = box, fontname = sans];
+ "139803511371136" [label = "gcc-core-mesboot0@2.95.3", shape = box, fontname = "dejavu sans"];
"139803511371136" -> "139803511371312" [color = red];
"139803511371136" -> "139803511372016" [color = red];
"139803511371136" -> "139803511371488" [color = red];
@@ -9,7 +9,7 @@ digraph "Guix package" {
"139803511371136" -> "139803511373600" [color = red];
"139803511371136" -> "139803507105968" [color = red];
"139803511371136" -> "139803749199472" [color = red];
- "139803511371312" [label = "binutils-mesboot0@2.20.1a", shape = box, fontname = sans];
+ "139803511371312" [label = "binutils-mesboot0@2.20.1a", shape = box, fontname = "dejavu sans"];
"139803511371312" -> "139803511372016" [color = dimgrey];
"139803511371312" -> "139803511371488" [color = dimgrey];
"139803511371312" -> "139803511371664" [color = dimgrey];
@@ -18,57 +18,57 @@ digraph "Guix package" {
"139803511371312" -> "139803511373600" [color = dimgrey];
"139803511371312" -> "139803507105968" [color = dimgrey];
"139803511371312" -> "139803749199472" [color = dimgrey];
- "139803511372016" [label = "gzip-mesboot@1.2.4", shape = box, fontname = sans];
+ "139803511372016" [label = "gzip-mesboot@1.2.4", shape = box, fontname = "dejavu sans"];
"139803511372016" -> "139803511372192" [color = magenta];
"139803511372016" -> "139803507105792" [color = magenta];
"139803511372016" -> "139803511373600" [color = magenta];
"139803511372016" -> "139803507105968" [color = magenta];
"139803511372016" -> "139803749199472" [color = magenta];
- "139803511372192" [label = "tcc-boot0@0.9.26-1136-g5bba73cc", shape = box, fontname = sans];
+ "139803511372192" [label = "tcc-boot0@0.9.26-1136-g5bba73cc", shape = box, fontname = "dejavu sans"];
"139803511372192" -> "139803511372368" [color = magenta];
"139803511372192" -> "139803511372544" [color = magenta];
"139803511372192" -> "139803507105792" [color = magenta];
"139803511372192" -> "139803511373600" [color = magenta];
"139803511372192" -> "139803507105968" [color = magenta];
"139803511372192" -> "139803749199472" [color = magenta];
- "139803511372368" [label = "mes-boot@0.24", shape = box, fontname = sans];
+ "139803511372368" [label = "mes-boot@0.24", shape = box, fontname = "dejavu sans"];
"139803511372368" -> "139803511372544" [color = darkviolet];
"139803511372368" -> "139803507105792" [color = darkviolet];
"139803511372368" -> "139803511373600" [color = darkviolet];
"139803511372368" -> "139803507105968" [color = darkviolet];
"139803511372368" -> "139803749199472" [color = darkviolet];
- "139803511372544" [label = "stage0-posix@1.4", shape = box, fontname = sans];
+ "139803511372544" [label = "stage0-posix@1.4", shape = box, fontname = "dejavu sans"];
"139803511372544" -> "139803511373072" [color = peachpuff4];
"139803511372544" -> "139803507105792" [color = peachpuff4];
"139803511372544" -> "139803511373600" [color = peachpuff4];
"139803511372544" -> "139803507105968" [color = peachpuff4];
"139803511372544" -> "139803749199472" [color = peachpuff4];
- "139803511373072" [label = "bootstrap-seeds@1.0.0", shape = ellipse, fontname = sans];
+ "139803511373072" [label = "bootstrap-seeds@1.0.0", shape = ellipse, fontname = "dejavu sans"];
"139803511373072" -> "139803507105968" [color = cyan3];
- "139803507105968" [label = "bootar@1b", shape = box, fontname = sans];
+ "139803507105968" [label = "bootar@1b", shape = box, fontname = "dejavu sans"];
"139803507105968" -> "139803749199472" [color = dimgrey];
- "139803749199472" [label = "guile-bootstrap@2.0", shape = ellipse, fontname = sans];
- "139803507105792" [label = "gash-boot@0.3.0", shape = box, fontname = sans];
+ "139803749199472" [label = "guile-bootstrap@2.0", shape = ellipse, fontname = "dejavu sans"];
+ "139803507105792" [label = "gash-boot@0.3.0", shape = box, fontname = "dejavu sans"];
"139803507105792" -> "139803507105968" [color = darkviolet];
"139803507105792" -> "139803749199472" [color = darkviolet];
- "139803511373600" [label = "gash-utils-boot@0.2.0", shape = box, fontname = sans];
+ "139803511373600" [label = "gash-utils-boot@0.2.0", shape = box, fontname = "dejavu sans"];
"139803511373600" -> "139803507105968" [color = red];
"139803511373600" -> "139803507105792" [color = red];
"139803511373600" -> "139803749199472" [color = red];
- "139803511371488" [label = "patch-mesboot@2.5.9", shape = box, fontname = sans];
+ "139803511371488" [label = "patch-mesboot@2.5.9", shape = box, fontname = "dejavu sans"];
"139803511371488" -> "139803511371840" [color = darkseagreen];
"139803511371488" -> "139803511372192" [color = darkseagreen];
"139803511371488" -> "139803507105792" [color = darkseagreen];
"139803511371488" -> "139803511373600" [color = darkseagreen];
"139803511371488" -> "139803507105968" [color = darkseagreen];
"139803511371488" -> "139803749199472" [color = darkseagreen];
- "139803511371840" [label = "make-mesboot0@3.80", shape = box, fontname = sans];
+ "139803511371840" [label = "make-mesboot0@3.80", shape = box, fontname = "dejavu sans"];
"139803511371840" -> "139803511372192" [color = blue];
"139803511371840" -> "139803507105792" [color = blue];
"139803511371840" -> "139803511373600" [color = blue];
"139803511371840" -> "139803507105968" [color = blue];
"139803511371840" -> "139803749199472" [color = blue];
- "139803511371664" [label = "tcc-boot@0.9.27", shape = box, fontname = sans];
+ "139803511371664" [label = "tcc-boot@0.9.27", shape = box, fontname = "dejavu sans"];
"139803511371664" -> "139803511371840" [color = peachpuff4];
"139803511371664" -> "139803511372192" [color = peachpuff4];
"139803511371664" -> "139803507105792" [color = peachpuff4];
diff --git a/doc/images/service-graph.dot b/doc/images/service-graph.dot
index b7b617abbc..8de91f1adc 100644
--- a/doc/images/service-graph.dot
+++ b/doc/images/service-graph.dot
@@ -1,12 +1,12 @@
digraph "Service Type Dependencies" {
- shepherd [shape = box, fontname = Helvetica];
- pam [shape = box, fontname = Helvetica];
- etc [shape = box, fontname = Helvetica];
- profile [shape = box, fontname = Helvetica];
- accounts [shape = box, fontname = Helvetica];
- activation [shape = box, fontname = Helvetica];
- boot [shape = box, fontname = Helvetica];
- system [shape = house, fontname = Helvetica];
+ shepherd [shape = box, fontname = "dejavu sans"];
+ pam [shape = box, fontname = "dejavu sans"];
+ etc [shape = box, fontname = "dejavu sans"];
+ profile [shape = box, fontname = "dejavu sans"];
+ accounts [shape = box, fontname = "dejavu sans"];
+ activation [shape = box, fontname = "dejavu sans"];
+ boot [shape = box, fontname = "dejavu sans"];
+ system [shape = house, fontname = "dejavu sans"];
lshd -> shepherd;
lshd -> pam;
udev -> shepherd;
diff --git a/doc/images/shepherd-graph.dot b/doc/images/shepherd-graph.dot
index 35b2794689..06b028701b 100644
--- a/doc/images/shepherd-graph.dot
+++ b/doc/images/shepherd-graph.dot
@@ -1,7 +1,7 @@
digraph "Guix shepherd-service" {
- "user-file-systems" [label = "user-file-systems", shape = box, fontname = Helvetica];
+ "user-file-systems" [label = "user-file-systems", shape = box, fontname = "dejavu sans"];
"user-processes" -> "user-file-systems" [color = cyan3];
- "user-processes" [label = "user-processes", shape = box, fontname = Helvetica];
+ "user-processes" [label = "user-processes", shape = box, fontname = "dejavu sans"];
"nscd" -> "user-processes" [color = magenta];
"guix-daemon" -> "user-processes" [color = blue];
"urandom-seed" -> "user-processes" [color = dimgrey];
@@ -13,45 +13,45 @@ digraph "Guix shepherd-service" {
"term-tty2" -> "user-processes" [color = darkviolet];
"term-tty1" -> "user-processes" [color = peachpuff4];
"networking" -> "user-processes" [color = dimgrey];
- "nscd" [label = "nscd", shape = box, fontname = Helvetica];
- "guix-daemon" [label = "guix-daemon", shape = box, fontname = Helvetica];
- "urandom-seed" [label = "urandom-seed", shape = box, fontname = Helvetica];
- "syslogd" [label = "syslogd", shape = box, fontname = Helvetica];
+ "nscd" [label = "nscd", shape = box, fontname = "dejavu sans"];
+ "guix-daemon" [label = "guix-daemon", shape = box, fontname = "dejavu sans"];
+ "urandom-seed" [label = "urandom-seed", shape = box, fontname = "dejavu sans"];
+ "syslogd" [label = "syslogd", shape = box, fontname = "dejavu sans"];
"ssh-daemon" -> "syslogd" [color = darkgoldenrod];
- "ssh-daemon" [label = "ssh-daemon", shape = box, fontname = Helvetica];
- "term-tty6" [label = "term-tty6", shape = box, fontname = Helvetica];
+ "ssh-daemon" [label = "ssh-daemon", shape = box, fontname = "dejavu sans"];
+ "term-tty6" [label = "term-tty6", shape = box, fontname = "dejavu sans"];
"console-font-tty6" -> "term-tty6" [color = darkgoldenrod];
- "console-font-tty6" [label = "console-font-tty6", shape = box, fontname = Helvetica];
- "term-tty5" [label = "term-tty5", shape = box, fontname = Helvetica];
+ "console-font-tty6" [label = "console-font-tty6", shape = box, fontname = "dejavu sans"];
+ "term-tty5" [label = "term-tty5", shape = box, fontname = "dejavu sans"];
"console-font-tty5" -> "term-tty5" [color = dimgrey];
- "console-font-tty5" [label = "console-font-tty5", shape = box, fontname = Helvetica];
- "term-tty4" [label = "term-tty4", shape = box, fontname = Helvetica];
+ "console-font-tty5" [label = "console-font-tty5", shape = box, fontname = "dejavu sans"];
+ "term-tty4" [label = "term-tty4", shape = box, fontname = "dejavu sans"];
"console-font-tty4" -> "term-tty4" [color = darkviolet];
- "console-font-tty4" [label = "console-font-tty4", shape = box, fontname = Helvetica];
- "term-tty3" [label = "term-tty3", shape = box, fontname = Helvetica];
+ "console-font-tty4" [label = "console-font-tty4", shape = box, fontname = "dejavu sans"];
+ "term-tty3" [label = "term-tty3", shape = box, fontname = "dejavu sans"];
"console-font-tty3" -> "term-tty3" [color = peachpuff4];
- "console-font-tty3" [label = "console-font-tty3", shape = box, fontname = Helvetica];
- "term-tty2" [label = "term-tty2", shape = box, fontname = Helvetica];
+ "console-font-tty3" [label = "console-font-tty3", shape = box, fontname = "dejavu sans"];
+ "term-tty2" [label = "term-tty2", shape = box, fontname = "dejavu sans"];
"console-font-tty2" -> "term-tty2" [color = darkseagreen];
- "console-font-tty2" [label = "console-font-tty2", shape = box, fontname = Helvetica];
- "term-tty1" [label = "term-tty1", shape = box, fontname = Helvetica];
+ "console-font-tty2" [label = "console-font-tty2", shape = box, fontname = "dejavu sans"];
+ "term-tty1" [label = "term-tty1", shape = box, fontname = "dejavu sans"];
"console-font-tty1" -> "term-tty1" [color = cyan3];
- "console-font-tty1" [label = "console-font-tty1", shape = box, fontname = Helvetica];
- "networking" [label = "networking", shape = box, fontname = Helvetica];
+ "console-font-tty1" [label = "console-font-tty1", shape = box, fontname = "dejavu sans"];
+ "networking" [label = "networking", shape = box, fontname = "dejavu sans"];
"ssh-daemon" -> "networking" [color = darkgoldenrod];
- "root-file-system" [label = "root-file-system", shape = box, fontname = Helvetica];
+ "root-file-system" [label = "root-file-system", shape = box, fontname = "dejavu sans"];
"file-system-/dev/pts" -> "root-file-system" [color = peachpuff4];
"file-system-/dev/shm" -> "root-file-system" [color = darkgoldenrod];
"file-system-/gnu/store" -> "root-file-system" [color = blue];
"user-processes" -> "root-file-system" [color = cyan3];
"udev" -> "root-file-system" [color = darkseagreen];
- "file-system-/dev/pts" [label = "file-system-/dev/pts", shape = box, fontname = Helvetica];
+ "file-system-/dev/pts" [label = "file-system-/dev/pts", shape = box, fontname = "dejavu sans"];
"user-processes" -> "file-system-/dev/pts" [color = cyan3];
- "file-system-/dev/shm" [label = "file-system-/dev/shm", shape = box, fontname = Helvetica];
+ "file-system-/dev/shm" [label = "file-system-/dev/shm", shape = box, fontname = "dejavu sans"];
"user-processes" -> "file-system-/dev/shm" [color = cyan3];
- "file-system-/gnu/store" [label = "file-system-/gnu/store", shape = box, fontname = Helvetica];
+ "file-system-/gnu/store" [label = "file-system-/gnu/store", shape = box, fontname = "dejavu sans"];
"user-processes" -> "file-system-/gnu/store" [color = cyan3];
- "udev" [label = "udev", shape = box, fontname = Helvetica];
+ "udev" [label = "udev", shape = box, fontname = "dejavu sans"];
"term-tty6" -> "udev" [color = magenta];
"term-tty5" -> "udev" [color = red];
"term-tty4" -> "udev" [color = darkgoldenrod];
@@ -59,13 +59,13 @@ digraph "Guix shepherd-service" {
"term-tty2" -> "udev" [color = darkviolet];
"term-tty1" -> "udev" [color = peachpuff4];
"networking" -> "udev" [color = dimgrey];
- "host-name" [label = "host-name", shape = box, fontname = Helvetica];
+ "host-name" [label = "host-name", shape = box, fontname = "dejavu sans"];
"term-tty6" -> "host-name" [color = magenta];
"term-tty5" -> "host-name" [color = red];
"term-tty4" -> "host-name" [color = darkgoldenrod];
"term-tty3" -> "host-name" [color = dimgrey];
"term-tty2" -> "host-name" [color = darkviolet];
"term-tty1" -> "host-name" [color = peachpuff4];
- "loopback" [label = "loopback", shape = box, fontname = Helvetica];
+ "loopback" [label = "loopback", shape = box, fontname = "dejavu sans"];
}
diff --git a/doc/local.mk b/doc/local.mk
index 97f0c3a92a..130f40ece9 100644
--- a/doc/local.mk
+++ b/doc/local.mk
@@ -5,6 +5,8 @@
# Copyright © 2016 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
# Copyright © 2016, 2018 Mathieu Lirzin <mthl@gnu.org>
# Copyright © 2018, 2021 Julien Lepiller <julien@lepiller.eu>
+# Copyright © 2019 Timothy Sample <samplet@ngyro.com>
+# Copyright © 2024 Janneke Nieuwenhuizen <janneke@gnu.org>
#
# This file is part of GNU Guix.
#
@@ -23,7 +25,7 @@
# If adding a language, update the following variables, and info_TEXINFOS.
MANUAL_LANGUAGES = de es fr pt_BR ru zh_CN
-COOKBOOK_LANGUAGES = de fr ko sk
+COOKBOOK_LANGUAGES = de fr ko pt_BR sk
# Arg1: A list of languages codes.
# Arg2: The file name stem.
@@ -42,6 +44,7 @@ info_TEXINFOS = %D%/guix.texi \
%D%/guix-cookbook.de.texi \
%D%/guix-cookbook.fr.texi \
%D%/guix-cookbook.ko.texi \
+ %D%/guix-cookbook.pt_BR.texi \
%D%/guix-cookbook.sk.texi
%C%_guix_TEXINFOS = \
@@ -141,20 +144,25 @@ DOT_OPTIONS = \
-Nfontsize=9 -Nheight=.1 -Nwidth=.1
.dot.png:
- $(AM_V_DOT)$(DOT) -Tpng $(DOT_OPTIONS) < "$<" > "$(srcdir)/$@.tmp"; \
- mv "$(srcdir)/$@.tmp" "$(srcdir)/$@"
+ $(AM_V_DOT)$(DOT) -Tpng $(DOT_OPTIONS) < "$<" > "$(srcdir)/$@.tmp"
+ $(AM_V_at)mv "$(srcdir)/$@.tmp" "$(srcdir)/$@"
.dot.pdf:
- $(AM_V_DOT)$(DOT) -Tpdf $(DOT_OPTIONS) < "$<" > "$(srcdir)/$@.tmp"; \
- mv "$(srcdir)/$@.tmp" "$(srcdir)/$@"
+ $(AM_V_DOT)set -e; export TZ=UTC0; \
+ $(DOT) -Tpdf $(DOT_OPTIONS) < "$<" > "$(srcdir)/$@.tmp"
+ $(AM_V_at)sed -ri \
+ -e 's,(/CreationDate \(D:).*\),\119700101000000),' \
+ "$(srcdir)/$@.tmp"
+ $(AM_V_at)mv "$(srcdir)/$@.tmp" "$(srcdir)/$@"
.dot.eps:
- $(AM_V_DOT)$(DOT) -Teps $(DOT_OPTIONS) < "$<" > "$(srcdir)/$@.tmp"; \
- mv "$(srcdir)/$@.tmp" "$(srcdir)/$@"
+ $(AM_V_DOT)$(DOT) -Teps $(DOT_OPTIONS) < "$<" > "$(srcdir)/$@.tmp"
+ $(AM_v_at)! grep -q %%CreationDate "$(srcdir)/$@.tmp"
+ $(AM_V_at)mv "$(srcdir)/$@.tmp" "$@"
.png.eps:
- $(AM_V_GEN)convert "$<" "$@-tmp.eps"; \
- mv "$@-tmp.eps" "$@"
+ $(AM_V_GEN)convert "$<" "$@-tmp.eps"
+ $(AM_V_at)mv "$@-tmp.eps" "$@"
# We cannot add new dependencies to `%D%/guix.pdf' & co. (info "(automake)
# Extending"). Using the `-local' rules is imperfect, because they may be
@@ -222,6 +230,9 @@ gen_man = \
$(HELP2MANFLAGS)
HELP2MANFLAGS = --source=GNU --info-page=$(PACKAGE_TARNAME)
+# help2man reproducibility
+SOURCE_DATE_EPOCH = $(shell git show HEAD --format=%ct --no-patch 2>/dev/null || echo 1)
+export SOURCE_DATE_EPOCH
$(srcdir)/%D%/guix.1: scripts/guix.in $(sub_commands_mans)
-$(AM_V_HELP2MAN)$(gen_man) --output="$@" `basename "$@" .1`
@@ -231,10 +242,9 @@ $(srcdir)/%D%/guix.1: scripts/guix.in $(sub_commands_mans)
# prerequisite is solely meant to force these docs to be made only after all
# Guile modules have been compiled. We also need the guix script to exist.
$(srcdir)/%D%/guix-%.1: guix/scripts/%.scm $(GOBJECTS) scripts/guix
- -@case '$?' in \
- *$<*) $(AM_V_P) && set -x || echo " HELP2MAN $@"; \
- $(gen_man) --output="$@" "guix $*";; \
- *) : ;; \
+ -@case '$?' in \
+ *$<*) $(AM_V_HELP2MAN:@%=%)$(gen_man) --output="$@" "guix $*";; \
+ *) : ;; \
esac
if BUILD_DAEMON
@@ -247,3 +257,72 @@ $(srcdir)/%D%/guix-daemon.1: guix-daemon$(EXEEXT)
endif
endif
+
+# Reproducible tarball
+
+# Define a rule to build `version[LANG].texi' reproducibly using metadata from
+# Git rather than using metadata from the filesystem.
+define version.texi-from-git
+$(srcdir)/doc/stamp-$(1): $(srcdir)/$(2) $(top_srcdir)/configure
+ $$(AM_V_GEN)set -e; \
+ export LANG=C LANGUAGE=C LC_ALL=C LC_TIME=C; \
+ export TZ=UTC0; \
+ timestamp="$$$$(git log --pretty=format:%ct -n1 -- "$$<" \
+ 2>/dev/null \
+ || echo $$(SOURCE_DATE_EPOCH))" \
+ dmy=$$$$(date --date="@$$$$timestamp" "+%-d %B %Y"); \
+ my=$$$$(date --date="@$$$$timestamp" "+%B %Y"); \
+ { echo "@set UPDATED $$$$dmy"; \
+ echo "@set UPDATED-MONTH $$$$my"; \
+ echo "@set EDITION $$$(VERSION)"; \
+ echo "@set VERSION $$$(VERSION)"; } > "$$@-t"; \
+ mv "$$@-t" "$$@"; \
+ cp -p "$$@" "$$(srcdir)/doc/version$(3).texi"
+endef
+
+# Generate rules for stamp-vti and stamp-N that create version.texi and
+# version-LANG.texi to override the Autotools versions that use timestamps
+# embedded in the file-system. These are expected to generate warnings:
+#
+# Makefile:7376: warning: overriding recipe for target 'doc/stamp-vti'
+# Makefile:5098: warning: ignoring old recipe for target 'doc/stamp-vti'
+i:=0
+$(eval $(call version.texi-from-git,vti,doc/guix.texi,))
+$(foreach lang, $(MANUAL_LANGUAGES), \
+ $(eval i=$(shell echo $$(($(i)+1)))) \
+ $(eval $(call version.texi-from-git,$(i),po/doc/guix-manual.$(lang).po,-$(lang))))
+
+DIST_CONFIGURE_FLAGS = \
+ --localstatedir=/var \
+ --sysconfdir=/etc
+
+# Delete all Autotools-generated files and rerun configure to ensure
+# a clean cache and distributing reproducible versions.
+auto-clean: maintainer-clean-vti doc-clean
+ rm -f ABOUT-NLS INSTALL
+ rm -f aclocal.m4 configure libtool Makefile.in
+ if test -e .git; then \
+ git clean -fdx -- '.am*' build-aux m4 po; \
+ else \
+ rm -rf .am*; \
+ $(MAKE) -C po/guix maintainer-clean; \
+ $(MAKE) -C po/packages maintainer-clean; \
+ fi
+ rm -f guile
+ rm -f guix-daemon nix/nix-daemon/guix_daemon-guix-daemon.o
+# Automake fails if guix-cookbook-LANG.texi stubs are missing; running
+# autoreconf -vif is not enough.
+ ./bootstrap
+# The dependency chain for the guix-cookbook-LANG.texi was cut on purpose;
+# they must be deleted to ensure a rebuild.
+ rm -f $(filter-out %D%/guix.texi %D%/guix-cookbook.texi, $(info_TEXINFOS))
+ ./configure $(DIST_CONFIGURE_FLAGS)
+
+# Delete all generated doc files to ensure a clean cache and distributing
+# reproducible versions.
+doc-clean:
+ rm -f $(srcdir)/doc/*.1
+ rm -f $(srcdir)/doc/stamp*
+ rm -f $(DOT_FILES:%.dot=%.png)
+ rm -f $(DOT_VECTOR_GRAPHICS)
+ rm -f doc/images/coreutils-size-map.eps