diff options
Diffstat (limited to 'doc')
-rw-r--r-- | doc/contributing.texi | 114 | ||||
-rw-r--r-- | doc/guix-cookbook.texi | 83 | ||||
-rw-r--r-- | doc/guix.texi | 190 |
3 files changed, 235 insertions, 152 deletions
diff --git a/doc/contributing.texi b/doc/contributing.texi index 73d1cd2648..7bf350ee0d 100644 --- a/doc/contributing.texi +++ b/doc/contributing.texi @@ -130,14 +130,16 @@ more information. Then, run: @example -./configure --localstatedir=/var +./configure --localstatedir=/var --sysconfdir=/etc @end example @noindent ... where @file{/var} is the normal @code{localstatedir} value -(@pxref{The Store}, for information about this). Note that you will -probably not run @command{make install} at the end (you don't have to) -but it's still important to pass the right @code{localstatedir}. +(@pxref{The Store}, for information about this) and @file{/etc} is the +normal @code{sysconfdir} value. Note that you will probably not run +@command{make install} at the end (you don't have to) but it's still +important to pass the right @code{localstatedir} and @code{sysconfdir} +values, which get recorded in the @code{(guix config)} Guile module. Finally, you can build Guix and, if you feel so inclined, run the tests (@pxref{Running the Test Suite}): @@ -1395,28 +1397,8 @@ different name or email just for commits in this repository, you can use @command{git config --local}, or edit @file{.git/config} in the repository instead of @file{~/.gitconfig}. -We provide some default settings in @file{etc/git/gitconfig} which -modify how patches are generated, making them easier to read and apply. -These settings can be applied by manually copying them to -@file{.git/config} in your checkout, or by telling Git to include the -whole file: - -@example -git config --local include.path ../etc/git/gitconfig -@end example - -From then on, any changes to @file{etc/git/gitconfig} would -automatically take effect. - -Since the first patch in a series must be sent separately -(@pxref{Sending a Patch Series}), it can also be helpful to tell -@command{git format-patch} to handle the e-mail threading instead of -@command{git send-email}: - -@example -git config --local format.thread shallow -git config --local sendemail.thread no -@end example +Other important Git configuration will automatically be configured when +building the project (@pxref{Building from Git}). @node Sending a Patch Series @subsection Sending a Patch Series @@ -1439,10 +1421,12 @@ output of the @code{git} package, i.e. @code{git:send-email}. The following command will create a patch email from the latest commit, open it in your @var{EDITOR} or @var{VISUAL} for editing, and send it to -the Guix mailing list to be reviewed and merged: +the Guix mailing list to be reviewed and merged. Assuming you have +already configured Git according to @xref{Configuring Git}, you can +simply use: @example -$ git send-email -1 -a --base=auto --to=guix-patches@@gnu.org +$ git send-email --annotate -1 @end example @quotation Tip @@ -1453,31 +1437,26 @@ other than the @code{master} branch of @url{https://git.savannah.gnu.org/cgit/guix.git}. @example -git send-email -1 -a --base=auto \ - --subject-prefix='PATCH core-updates' \ - --to=guix-patches@@gnu.org +git send-email --annotate --subject-prefix='PATCH core-updates' -1 @end example @end quotation The patch email contains a three-dash separator line after the commit message. You may ``annotate'' the patch with explanatory text by adding it under this line. If you do not wish to annotate the email, you may -drop the @option{-a} flag (which is short for @option{--annotate}). - -The @option{--base=auto} flag automatically adds a note at the bottom -of the patch of the commit it was based on, making it easier for -maintainers to rebase and merge your patch. +drop the @option{--annotate} option. If you need to send a revised patch, don't resend it like this or send a ``fix'' patch to be applied on top of the last one; instead, use -@command{git commit -a} or @url{https://git-rebase.io, @command{git rebase}} -to modify the commit, and use the @email{@var{ISSUE_NUMBER}@@debbugs.gnu.org} -address and the @option{-v} flag with @command{git send-email}. +@command{git commit --amend} or @url{https://git-rebase.io, +@command{git rebase}} to modify the commit, and use the +@email{@var{ISSUE_NUMBER}@@debbugs.gnu.org} address and the @option{-v} +flag with @command{git send-email}. @example -$ git commit -a -$ git send-email -1 -a --base=auto -v@var{REVISION} \ - --to=@var{ISSUE_NUMBER}@@debbugs.gnu.org +$ git commit --amend +$ git send-email --annotate -v@var{REVISION} \ + --to=@var{ISSUE_NUMBER}@@debbugs.gnu.org -1 @end example @quotation Note @@ -1494,14 +1473,14 @@ reply to incoming bugs and patches, which contains the bug number. @unnumberedsubsubsec Notifying Teams @anchor{Notifying Teams} @cindex teams -The @file{etc/teams.scm} script may be used to notify all those who -may be interested in your patch of its existence (@pxref{Teams}). -Use @command{etc/teams.scm list-teams} to display all the teams, -decide which team(s) your patch relates to, and use -@command{etc/teams.scm cc} to output various @command{git send-email} -flags which will notify the appropriate team members, or use -@command{etc/teams.scm cc-members} to detect the appropriate teams -automatically. +If your git checkout has been correctly configured (@pxref{Configuring +Git}), the @command{git send-email} command will automatically notify +the appropriate team members, based on the scope of your changes. This +relies on the @file{etc/teams.scm} script, which can also be invoked +manually if you do not use the preferred @command{git send-email} +command to submit patches. To list the available actions of the script, +you can invoke it via the @command{etc/teams.scm help} command. For +more information regarding teams, see @xref{Teams}. @unnumberedsubsubsec Multiple Patches @anchor{Multiple Patches} @@ -1528,9 +1507,7 @@ We can now send @emph{just} the cover letter to the that we can send the rest of the patches to. @example -$ git send-email outgoing/0000-cover-letter.patch -a \ - --to=guix-patches@@gnu.org \ - $(etc/teams.scm cc-members ...) +$ git send-email outgoing/0000-cover-letter.patch --annotate $ rm outgoing/0000-cover-letter.patch # we don't want to resend it! @end example @@ -1542,9 +1519,7 @@ Once the Debbugs mailer has replied to your cover letter email, you can send the actual patches to the newly-created issue address. @example -$ git send-email outgoing/*.patch \ - --to=@var{ISSUE_NUMBER}@@debbugs.gnu.org \ - $(etc/teams.scm cc-members ...) +$ git send-email outgoing/*.patch --to=@var{ISSUE_NUMBER}@@debbugs.gnu.org $ rm -rf outgoing # we don't need these anymore @end example @@ -1553,14 +1528,13 @@ to send an amended patch series, since an issue already exists for the patchset. @example -$ git send-email -@var{NUMBER_COMMITS} \ - -v@var{REVISION} --base=auto \ +$ git send-email -@var{NUMBER_COMMITS} -v@var{REVISION} \ --to @var{ISSUE_NUMBER}@@debbugs.gnu.org @end example -If need be, you may use @option{--cover-letter -a} to send another cover -letter, e.g. for explaining what's changed since the last revision, and -these changes are necessary. +If need be, you may use @option{--cover-letter --annotate} to send +another cover letter, e.g. for explaining what's changed since the last +revision, and these changes are necessary. @node Teams @subsection Teams @@ -1587,7 +1561,8 @@ You can run the following command to have the @code{Mentors} team put in CC of a patch series: @example -$ git send-email --to @var{ISSUE_NUMBER}@@debbugs.gnu.org $(./etc/teams.scm cc mentors) *.patch +$ git send-email --to @var{ISSUE_NUMBER}@@debbugs.gnu.org \ + --header-cmd='etc/teams.scm cc-mentors-header-cmd' *.patch @end example The appropriate team or teams can also be inferred from the modified @@ -1596,7 +1571,7 @@ current Git repository to review, you can run: @example $ guix shell -D guix -[env]$ git send-email --to @var{ISSUE_NUMBER}@@debbugs.gnu.org $(./etc/teams.scm cc-members HEAD~2 HEAD) *.patch +[env]$ git send-email --to @var{ISSUE_NUMBER}@@debbugs.gnu.org -2 @end example @node Tracking Bugs and Patches @@ -1831,16 +1806,9 @@ To check that commits are signed with correct key, use: make authenticate @end example -You can prevent yourself from accidentally pushing unsigned or signed -with the wrong key commits to Savannah by using the pre-push Git hook -located at @file{etc/git/pre-push}: - -@example -cp etc/git/pre-push .git/hooks/pre-push -@end example - -It additionally calls @code{make check-channel-news} to be sure -@file{news.scm} file is correct. +To avoid accidentally pushing unsigned or signed with the wrong key +commits to Savannah, make sure to configure Git according to +@xref{Configuring Git}. @subsection Commit Policy diff --git a/doc/guix-cookbook.texi b/doc/guix-cookbook.texi index b9fb916f4a..2aae5a4871 100644 --- a/doc/guix-cookbook.texi +++ b/doc/guix-cookbook.texi @@ -628,30 +628,25 @@ The @code{use-modules} expression tells which of the modules we need in the file Modules are a collection of values and procedures. They are commonly called ``libraries'' or ``packages'' in other programming languages. -@node @samp{GUIX_PACKAGE_PATH} -@subsubsection @samp{GUIX_PACKAGE_PATH} +@node Channels +@subsubsection Channels -@emph{Note: Starting from Guix 0.16, the more flexible Guix @dfn{channels} are the -preferred way and supersede @samp{GUIX_PACKAGE_PATH}. See next section.} +@cindex channel +Guix and its package collection can be extended through @dfn{channels}. +A channel is a Git repository, public or not, containing @file{.scm} +files that provide packages (@pxref{Defining Packages,,, guix, GNU Guix +Reference Manual}) or services (@pxref{Defining Services,,, guix, GNU +Guix Reference Manual}). -It can be tedious to specify the file from the command line instead of simply -calling @code{guix package --install my-hello} as you would do with the official -packages. - -Guix makes it possible to streamline the process by adding as many ``package -declaration directories'' as you want. - -Create a directory, say @file{~/guix-packages} and add it to the @samp{GUIX_PACKAGE_PATH} -environment variable: +How would you go about creating a channel? First, create a directory +that will contain your @file{.scm} files, say @file{~/my-channel}: @example -$ mkdir ~/guix-packages -$ export GUIX_PACKAGE_PATH=~/guix-packages +mkdir ~/my-channel @end example -To add several directories, separate them with a colon (@code{:}). - -Our previous @samp{my-hello} needs some adjustments though: +Suppose you want to add the @samp{my-hello} package we saw previously; +it first needs some adjustments: @lisp (define-module (my-hello) @@ -692,9 +687,9 @@ package. If you want to use @code{define-public} in this use-case nonetheless, sure the file ends with an evaluation of @code{my-hello}: @lisp -; ... +;; ... (define-public my-hello - ; ... + ;; ... ) my-hello @@ -702,22 +697,50 @@ my-hello This last example is not very typical. -Now @samp{my-hello} should be part of the package collection like all other official -packages. You can verify this with: +Now how do you make that package visible to @command{guix} commands so +you can test your packages? You need to add the directory to the search +path using the @option{-L} command-line option, as in these examples: + +@example +guix show -L ~/my-channel my-hello +guix build -L ~/my-channel my-hello +@end example + +The final step is to turn @file{~/my-channel} into an actual channel, +making your package collection seamlessly available @i{via} any +@command{guix} command. To do that, you first need to make it a Git +repository: @example -$ guix package --show=my-hello +cd ~/my-channel +git init +git add my-hello.scm +git commit -m "First commit of my channel." @end example -@node Guix channels -@subsubsection Guix channels +And that's it, you have a channel! From there on, you can add this +channel to your channel configuration in +@file{~/.config/guix/channels.scm} (@pxref{Specifying Additional +Channels,,, guix, GNU Guix Reference Manual}); assuming you keep your +channel local for now, the @file{channels.scm} would look something like +this: + +@lisp +(append (list (channel + (name 'my-channel) + (url (string-append "file://" (getenv "HOME") + "/my-channel")))) + %default-channels) +@end lisp -Guix 0.16 features channels, which is very similar to @samp{GUIX_PACKAGE_PATH} but -provides better integration and provenance tracking. Channels are not -necessarily local, they can be maintained as a public Git repository for -instance. Of course, several channels can be used at the same time. +Next time you run @command{guix pull}, your channel will be picked up +and the packages it defines will be readily available to all the +@command{guix} commands, even if you do not pass @option{-L}. The +@command{guix describe} command will show that Guix is, indeed, using +both the @code{my-channel} and the @code{guix} channels. -@xref{Channels,,, guix, GNU Guix Reference Manual} for setup details. +@xref{Creating a Channel,,, guix, GNU Guix Reference Manual}, for +details. @node Direct checkout hacking @subsubsection Direct checkout hacking diff --git a/doc/guix.texi b/doc/guix.texi index 46e7fd3908..ef2b78baeb 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -49,7 +49,7 @@ Copyright @copyright{} 2017 humanitiesNerd@* Copyright @copyright{} 2017, 2021 Christine Lemmer-Webber@* Copyright @copyright{} 2017, 2018, 2019, 2020, 2021, 2022 Marius Bakke@* Copyright @copyright{} 2017, 2019, 2020, 2022 Hartmut Goebel@* -Copyright @copyright{} 2017, 2019, 2020, 2021, 2022 Maxim Cournoyer@* +Copyright @copyright{} 2017, 2019, 2020, 2021, 2022, 2023 Maxim Cournoyer@* Copyright @copyright{} 2017–2022 Tobias Geerinckx-Rice@* Copyright @copyright{} 2017 George Clemmer@* Copyright @copyright{} 2017 Andy Wingo@* @@ -180,7 +180,7 @@ Weblate} (@pxref{Translating Guix}). * Introduction:: What is Guix about? * Installation:: Installing Guix. * System Installation:: Installing the whole operating system. -* System Troubleshooting Tips:: When things don't go as planned. +* System Troubleshooting Tips:: When things don't go as planned. * Getting Started:: Your first steps. * Package Management:: Package installation, upgrade, etc. * Channels:: Customizing the package collection. @@ -210,8 +210,8 @@ Weblate} (@pxref{Translating Guix}). Introduction -* Managing Software the Guix Way:: What's special. -* GNU Distribution:: The packages and tools. +* Managing Software the Guix Way:: What's special. +* GNU Distribution:: The packages and tools. Installation @@ -241,15 +241,15 @@ System Installation * Installing Guix in a VM:: Guix System playground. * Building the Installation Image:: How this comes to be. -System Troubleshooting Tips - -* Chrooting into an existing system:: Fixing things from a chroot - Manual Installation -* Keyboard Layout and Networking and Partitioning:: Initial setup. +* Keyboard Layout and Networking and Partitioning:: Initial setup. * Proceeding with the Installation:: Installing. +System Troubleshooting Tips + +* Chrooting into an existing system:: + Package Management * Features:: How Guix will make your life brighter. @@ -293,7 +293,7 @@ Development * Invoking guix environment:: Setting up development environments. * Invoking guix pack:: Creating software bundles. * The GCC toolchain:: Working with languages supported by GCC. -* Invoking guix git authenticate:: Authenticating Git repositories. +* Invoking guix git authenticate:: Authenticating Git repositories. Programming Interface @@ -309,7 +309,7 @@ Programming Interface * Derivations:: Low-level interface to package derivations. * The Store Monad:: Purely functional interface to the store. * G-Expressions:: Manipulating build expressions. -* Invoking guix repl:: Programming Guix in Guile. +* Invoking guix repl:: Programming Guix in Guile * Using Guix Interactively:: Fine-grain interaction at the REPL. Defining Packages @@ -344,8 +344,9 @@ Invoking @command{guix build} * Debugging Build Failures:: Real life packaging experience. Foreign Architectures -* Cross-Compilation:: Cross-compiling for another architecture. -* Native Builds:: Targeting another architecture through native builds. + +* Cross-Compilation:: Cross-compiling for another architecture. +* Native Builds:: Targeting another architecture through native builds. System Configuration @@ -368,9 +369,9 @@ System Configuration * Running Guix in a VM:: How to run Guix System in a virtual machine. * Defining Services:: Adding new service definitions. -Home Environment Configuration +File Systems -* Invoking guix home:: Instantiating a home environment configuration. +* Btrfs file system:: Services @@ -388,12 +389,14 @@ Services * Mail Services:: IMAP, POP3, SMTP, and all that. * Messaging Services:: Messaging services. * Telephony Services:: Telephony services. +* File-Sharing Services:: File-sharing services. * Monitoring Services:: Monitoring services. * Kerberos Services:: Kerberos services. * LDAP Services:: LDAP services. * Web Services:: Web servers. * Certificate Services:: TLS certificates via Let's Encrypt. * DNS Services:: DNS daemons. +* VNC Services:: VNC daemons. * VPN Services:: VPN daemons. * Network File System:: NFS related services. * Samba Services:: Samba services. @@ -417,18 +420,45 @@ Defining Services * Shepherd Services:: A particular type of service. * Complex Configurations:: Defining bindings for complex configurations. +Home Configuration + +* Declaring the Home Environment:: Customizing your Home. +* Configuring the Shell:: Enabling home environment. +* Home Services:: Specifying home services. +* Invoking guix home:: Instantiating a home configuration. + +Home Services + +* Essential Home Services:: Environment variables, packages, on-* scripts. +* Shells: Shells Home Services. POSIX shells, Bash, Zsh. +* Mcron: Mcron Home Service. Scheduled User's Job Execution. +* Power Management: Power Management Home Services. Services for battery power. +* Shepherd: Shepherd Home Service. Managing User's Daemons. +* SSH: Secure Shell. Setting up the secure shell client. +* GPG: GNU Privacy Guard. Setting up GPG and related tools. +* Desktop: Desktop Home Services. Services for graphical environments. +* Guix: Guix Home Services. Services for Guix. +* Fonts: Fonts Home Services. Services for managing User's fonts. +* Sound: Sound Home Services. Dealing with audio. +* Messaging: Messaging Home Services. Services for managing messaging. +* Media: Media Home Services. Services for managing media. + Platforms * platform Reference:: Detail of platform declarations. * Supported Platforms:: Description of the supported platforms. -System Images +Creating System Images * image Reference:: Detail of image declarations. * Instantiate an Image:: How to instantiate an image record. * image-type Reference:: Detail of image types declaration. * Image Modules:: Definition of image modules. +@code{image} Reference + +* partition Reference:: + Installing Debugging Files * Separate Debug Info:: Installing 'debug' outputs. @@ -437,7 +467,7 @@ Installing Debugging Files Bootstrapping * Full-Source Bootstrap:: A Bootstrap worthy of GNU. -* Preparing to Use the Bootstrap Binaries:: Building that what matters most. +* Preparing to Use the Bootstrap Binaries:: Building that what matters most. @end detailmenu @end menu @@ -468,8 +498,8 @@ readily available through the @command{guix system} command, even if you're using a different distro underneath!}. @xref{GNU Distribution}. @menu -* Managing Software the Guix Way:: What's special. -* GNU Distribution:: The packages and tools. +* Managing Software the Guix Way:: What's special. +* GNU Distribution:: The packages and tools. @end menu @node Managing Software the Guix Way @@ -1016,14 +1046,21 @@ 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 +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}). +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 @@ -2407,7 +2444,7 @@ Guix System. This means that you can install additional packages, should you need it, using @command{guix package} (@pxref{Invoking guix package}). @menu -* Keyboard Layout and Networking and Partitioning:: Initial setup. +* Keyboard Layout and Networking and Partitioning:: Initial setup. * Proceeding with the Installation:: Installing. @end menu @@ -2905,6 +2942,10 @@ from there. Such technique is explained below. @cindex chroot, guix system @cindex chrooting, guix system @cindex repairing GRUB, via chroot +@menu +* Chrooting into an existing system:: +@end menu + @node Chrooting into an existing system @section Chrooting into an existing system @@ -5922,7 +5963,7 @@ easily distributed to users who do not run Guix. * Invoking guix environment:: Setting up development environments. * Invoking guix pack:: Creating software bundles. * The GCC toolchain:: Working with languages supported by GCC. -* Invoking guix git authenticate:: Authenticating Git repositories. +* Invoking guix git authenticate:: Authenticating Git repositories. @end menu @node Invoking guix shell @@ -10140,23 +10181,31 @@ phase before the @code{build} phase, called ;; other fields omitted (build-system gnu-build-system) (arguments - '(#:phases (modify-phases %standard-phases - (delete 'configure) - (add-before 'build 'set-prefix-in-makefile - (lambda* (#:key outputs #:allow-other-keys) - ;; Modify the makefile so that its - ;; 'PREFIX' variable points to "out". - (let ((out (assoc-ref outputs "out"))) - (substitute* "Makefile" - (("PREFIX =.*") - (string-append "PREFIX = " - out "\n"))))))))))) + (list + #:phases + #~(modify-phases %standard-phases + (delete 'configure) + (add-before 'build 'set-prefix-in-makefile + (lambda* (#:key inputs #:allow-other-keys) + ;; Modify the makefile so that its + ;; 'PREFIX' variable points to #$output and + ;; 'XMLLINT' points to the correct path. + (substitute* "Makefile" + (("PREFIX =.*") + (string-append "PREFIX = " #$output "\n")) + (("XMLLINT =.*") + (string-append "XMLLINT = " + (search-input-file inputs "/bin/xmllint") + "\n")))))))))) @end lisp The new phase that is inserted is written as an anonymous procedure, -introduced with @code{lambda*}; it honors the @code{outputs} parameter -we have seen before. @xref{Build Utilities}, for more about the helpers -used by this phase, and for more examples of @code{modify-phases}. +introduced with @code{lambda*}; it looks for the @file{xmllint} +executable under a @file{/bin} directory among the package's inputs +(@pxref{package Reference}). It also honors the @code{outputs} parameter +we have seen before. @xref{Build Utilities}, for more about +the helpers used by this phase, and for more examples of +@code{modify-phases}. @cindex code staging @cindex staging, of code @@ -12919,6 +12968,35 @@ guix build coreutils --with-patch=glibc=./glibc-frob.patch In this example, glibc itself as well as everything that leads to Coreutils in the dependency graph is rebuilt. +@cindex configure flags, changing them +@item --with-configure-flag=@var{package}=@var{flag} +Append @var{flag} to the configure flags of @var{package}, where +@var{package} is a spec such as @code{guile@@3.0} or @code{glibc}. The +build system of @var{package} must support the @code{#:configure-flags} +argument. + +For example, the command below builds GNU@tie{}Hello with the +configure flag @code{--disable-nls}: + +@example +guix build hello --with-configure-flag=hello=--disable-nls +@end example + +The following command passes an extra flag to @command{cmake} as it +builds @code{lapack}: + +@example +guix build lapack \ + --with-configure-flag=lapack=-DBUILD_COMPLEX=OFF +@end example + +@quotation Note +Under the hood, this option works by passing the +@samp{#:configure-flags} argument to the build system of the package of +interest (@pxref{Build Systems}). Most build systems support that +option but some do not. In that case, an error is raised. +@end quotation + @cindex upstream, latest version @item --with-latest=@var{package} @itemx --with-version=@var{package}=@var{version} @@ -16119,8 +16197,8 @@ requires emulation, using the QEMU program for instance. @end enumerate @menu -* Cross-Compilation:: Cross-compiling for another architecture. -* Native Builds:: Targeting another architecture through native builds. +* Cross-Compilation:: Cross-compiling for another architecture. +* Native Builds:: Targeting another architecture through native builds. @end menu @node Cross-Compilation @@ -17034,6 +17112,10 @@ operating system configuration. See the examples above. @end defun +@menu +* Btrfs file system:: +@end menu + @node Btrfs file system @subsection Btrfs file system @@ -37140,6 +37222,9 @@ for the hook and the value is the number of threads to run. @item @code{guile} (default: @code{guile-3.0-latest}) The Guile package with which to run the Guix Build Coordinator. +@item @code{extra-environment-variables} (default: @var{'()}) +Extra environment variables to set via the shepherd service. + @end table @end deftp @@ -37172,6 +37257,9 @@ will use the current system it's running on as the default. @item @code{max-parallel-builds} (default: @code{1}) The number of builds to perform in parallel. +@item @code{max-parallel-uploads} (default: @code{1}) +The number of uploads to perform in parallel. + @item @code{max-allocated-builds} (default: @code{#f}) The maximum number of builds this agent can be allocated. @@ -41709,9 +41797,9 @@ still in an experimental stage, though. @menu * Declaring the Home Environment:: Customizing your Home. -* Configuring the Shell:: Enabling home environment. -* Home Services:: Specifying home services. -* Invoking guix home:: Instantiating a home configuration. +* Configuring the Shell:: Enabling home environment. +* Home Services:: Specifying home services. +* Invoking guix home:: Instantiating a home configuration. @end menu @node Declaring the Home Environment @@ -43115,7 +43203,7 @@ This is the multicast address used by default by the two services above. @cindex znc The @uref{https://znc.in, ZNC bouncer} can be run as a daemon to manage -your IRC presence. With the @code{(gnu home services znc)} service, you +your IRC presence. With the @code{(gnu home services messaging)} service, you can configure ZNC to run upon login. You will have to provide a @file{~/.znc/configs/znc.conf} seperately. @@ -43727,10 +43815,10 @@ This chapter explains how to define customized system images and how to turn them into actual bootable images. @menu -* image Reference:: Detail of image declarations. -* Instantiate an Image:: How to instantiate an image record. -* image-type Reference:: Detail of image types declaration. -* Image Modules:: Definition of image modules. +* image Reference:: Detail of image declarations. +* Instantiate an Image:: How to instantiate an image record. +* image-type Reference:: Detail of image types declaration. +* Image Modules:: Definition of image modules. @end menu @node image Reference @@ -43821,6 +43909,10 @@ defaults to @code{true}. @end table @end deftp +@menu +* partition Reference:: +@end menu + @node partition Reference @subsection @code{partition} Reference @@ -44665,7 +44757,7 @@ Binaries}). @menu * Full-Source Bootstrap:: A Bootstrap worthy of GNU. -* Preparing to Use the Bootstrap Binaries:: Building that what matters most. +* Preparing to Use the Bootstrap Binaries:: Building that what matters most. @end menu @node Full-Source Bootstrap |