# SOME DESCRIPTIVE TITLE
# Copyright (C) YEAR the authors of Guix (msgids)
# This file is distributed under the same license as the guix manual package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: guix-manual 1.2.0-pre3\n"
"Report-Msgid-Bugs-To: bug-guix@gnu.org\n"
"POT-Creation-Date: 2020-11-05 17:27+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"

#. #-#-#-#-#  contributing.pot (guix manual 1.2.0-pre3)  #-#-#-#-#
#. type: chapter
#. #-#-#-#-#  guix.pot (guix manual 1.2.0-pre3)  #-#-#-#-#
#. type: menuentry
#: doc/contributing.texi:1 doc/contributing.texi:2 doc/guix.texi:162
#, no-wrap
msgid "Contributing"
msgstr ""

#. type: Plain text
#: doc/contributing.texi:9
msgid ""
"This project is a cooperative effort, and we need your help to make it grow! "
"Please get in touch with us on @email{guix-devel@@gnu.org} and @code{#guix} "
"on the Freenode IRC network.  We welcome ideas, bug reports, patches, and "
"anything that may be helpful to the project.  We particularly welcome help "
"on packaging (@pxref{Packaging Guidelines})."
msgstr ""

#. type: cindex
#: doc/contributing.texi:10
#, no-wrap
msgid "code of conduct, of contributors"
msgstr ""

#. type: cindex
#: doc/contributing.texi:11
#, no-wrap
msgid "contributor covenant"
msgstr ""

#. type: Plain text
#: doc/contributing.texi:17
msgid ""
"We want to provide a warm, friendly, and harassment-free environment, so "
"that anyone can contribute to the best of their abilities.  To this end our "
"project uses a ``Contributor Covenant'', which was adapted from @url{https://"
"contributor-covenant.org/}.  You can find a local version in the @file{CODE-"
"OF-CONDUCT} file in the source tree."
msgstr ""

#. type: Plain text
#: doc/contributing.texi:21
msgid ""
"Contributors are not required to use their legal name in patches and on-line "
"communication; they can use any name or pseudonym of their choice."
msgstr ""

#. type: section
#: doc/contributing.texi:32 doc/contributing.texi:34 doc/contributing.texi:35
#, no-wrap
msgid "Building from Git"
msgstr ""

#. type: menuentry
#: doc/contributing.texi:32
msgid "The latest and greatest."
msgstr ""

#. type: section
#: doc/contributing.texi:32 doc/contributing.texi:160 doc/contributing.texi:161
#, no-wrap
msgid "Running Guix Before It Is Installed"
msgstr ""

#. type: menuentry
#: doc/contributing.texi:32
msgid "Hacker tricks."
msgstr ""

#. type: section
#: doc/contributing.texi:32 doc/contributing.texi:233 doc/contributing.texi:234
#, no-wrap
msgid "The Perfect Setup"
msgstr ""

#. type: menuentry
#: doc/contributing.texi:32
msgid "The right tools."
msgstr ""

#. type: section
#: doc/contributing.texi:32 doc/contributing.texi:324 doc/contributing.texi:325
#, no-wrap
msgid "Packaging Guidelines"
msgstr ""

#. type: menuentry
#: doc/contributing.texi:32
msgid "Growing the distribution."
msgstr ""

#. type: section
#: doc/contributing.texi:32 doc/contributing.texi:823 doc/contributing.texi:824
#, no-wrap
msgid "Coding Style"
msgstr ""

#. type: menuentry
#: doc/contributing.texi:32
msgid "Hygiene of the contributor."
msgstr ""

#. type: section
#: doc/contributing.texi:32 doc/contributing.texi:921 doc/contributing.texi:922
#, no-wrap
msgid "Submitting Patches"
msgstr ""

#. type: menuentry
#: doc/contributing.texi:32
msgid "Share your work."
msgstr ""

#. type: section
#: doc/contributing.texi:32 doc/contributing.texi:1146
#: doc/contributing.texi:1147
#, no-wrap
msgid "Tracking Bugs and Patches"
msgstr ""

#. type: menuentry
#: doc/contributing.texi:32
msgid "Using Debbugs."
msgstr ""

#. type: section
#: doc/contributing.texi:32 doc/contributing.texi:1197
#: doc/contributing.texi:1198
#, no-wrap
msgid "Commit Access"
msgstr ""

#. type: menuentry
#: doc/contributing.texi:32
msgid "Pushing to the official repository."
msgstr ""

#. type: section
#: doc/contributing.texi:32 doc/contributing.texi:1338
#: doc/contributing.texi:1339
#, no-wrap
msgid "Updating the Guix Package"
msgstr ""

#. type: menuentry
#: doc/contributing.texi:32
msgid "Updating the Guix package definition."
msgstr ""

#. type: Plain text
#: doc/contributing.texi:39
msgid ""
"If you want to hack Guix itself, it is recommended to use the latest version "
"from the Git repository:"
msgstr ""

#. type: example
#: doc/contributing.texi:42
#, no-wrap
msgid "git clone https://git.savannah.gnu.org/git/guix.git\n"
msgstr ""

#. type: cindex
#: doc/contributing.texi:44
#, no-wrap
msgid "authentication, of a Guix checkout"
msgstr ""

#. type: Plain text
#: doc/contributing.texi:49
msgid ""
"How do you ensure that you obtained a genuine copy of the repository? To do "
"that, run @command{guix git authenticate}, passing it the commit and OpenPGP "
"fingerprint of the @dfn{channel introduction} (@pxref{Invoking guix git "
"authenticate}):"
msgstr ""

#. type: example
#: doc/contributing.texi:56
#, no-wrap
msgid ""
"git fetch origin keyring:keyring\n"
"guix git authenticate 9edb3f66fd807b096b48283debdcddccfea34bad \\\n"
"  \"BBB0 2DDF 2CEA F6A8 0D1D  E643 A2A0 6DF2 A33A 54FA\"\n"
msgstr ""

#. type: Plain text
#: doc/contributing.texi:61
msgid ""
"This command completes with exit code zero on success; it prints an error "
"message and exits with a non-zero code otherwise."
msgstr ""

#. type: Plain text
#: doc/contributing.texi:68
msgid ""
"As you can see, there is a chicken-and-egg problem: you first need to have "
"Guix installed.  Typically you would install Guix System (@pxref{System "
"Installation}) or Guix on top of another distro (@pxref{Binary "
"Installation}); in either case, you would verify the OpenPGP signature on "
"the installation medium.  This ``bootstraps'' the trust chain."
msgstr ""

#. type: Plain text
#: doc/contributing.texi:73
msgid ""
"The easiest way to set up a development environment for Guix is, of course, "
"by using Guix! The following command starts a new shell where all the "
"dependencies and appropriate environment variables are set up to hack on "
"Guix:"
msgstr ""

#. type: example
#: doc/contributing.texi:76
#, no-wrap
msgid "guix environment guix --pure\n"
msgstr ""

#. type: Plain text
#: doc/contributing.texi:79
msgid "@xref{Invoking guix environment}, for more information on that command."
msgstr ""

#. type: Plain text
#: doc/contributing.texi:83
msgid ""
"If you are unable to use Guix when building Guix from a checkout, the "
"following are the required packages in addition to those mentioned in the "
"installation instructions (@pxref{Requirements})."
msgstr ""

#. type: item
#: doc/contributing.texi:85
#, no-wrap
msgid "@url{https://gnu.org/software/autoconf/, GNU Autoconf};"
msgstr ""

#. type: item
#: doc/contributing.texi:86
#, no-wrap
msgid "@url{https://gnu.org/software/automake/, GNU Automake};"
msgstr ""

#. type: item
#: doc/contributing.texi:87
#, no-wrap
msgid "@url{https://gnu.org/software/gettext/, GNU Gettext};"
msgstr ""

#. type: item
#: doc/contributing.texi:88
#, no-wrap
msgid "@url{https://gnu.org/software/texinfo/, GNU Texinfo};"
msgstr ""

#. type: item
#: doc/contributing.texi:89
#, no-wrap
msgid "@url{https://www.graphviz.org/, Graphviz};"
msgstr ""

#. type: item
#: doc/contributing.texi:90
#, no-wrap
msgid "@url{https://www.gnu.org/software/help2man/, GNU Help2man (optional)}."
msgstr ""

#. type: Plain text
#: doc/contributing.texi:95
msgid ""
"On Guix, extra dependencies can be added by instead running @command{guix "
"environment} with @option{--ad-hoc}:"
msgstr ""

#. type: example
#: doc/contributing.texi:98
#, no-wrap
msgid "guix environment guix --pure --ad-hoc help2man git strace\n"
msgstr ""

#. type: Plain text
#: doc/contributing.texi:102
msgid ""
"Run @command{./bootstrap} to generate the build system infrastructure using "
"Autoconf and Automake.  If you get an error like this one:"
msgstr ""

#. type: example
#: doc/contributing.texi:105
#, no-wrap
msgid "configure.ac:46: error: possibly undefined macro: PKG_CHECK_MODULES\n"
msgstr ""

#. type: Plain text
#: doc/contributing.texi:114
msgid ""
"it probably means that Autoconf couldn’t find @file{pkg.m4}, which is "
"provided by pkg-config.  Make sure that @file{pkg.m4} is available.  The "
"same holds for the @file{guile.m4} set of macros provided by Guile.  For "
"instance, if you installed Automake in @file{/usr/local}, it wouldn’t look "
"for @file{.m4} files in @file{/usr/share}.  In that case, you have to invoke "
"the following command:"
msgstr ""

#. type: example
#: doc/contributing.texi:117
#, no-wrap
msgid "export ACLOCAL_PATH=/usr/share/aclocal\n"
msgstr ""

#. type: Plain text
#: doc/contributing.texi:121
msgid ""
"@xref{Macro Search Path,,, automake, The GNU Automake Manual}, for more "
"information."
msgstr ""

#. type: Plain text
#: doc/contributing.texi:128
msgid ""
"Then, run @command{./configure} as usual.  Make sure to pass @code{--"
"localstatedir=@var{directory}} where @var{directory} is the "
"@code{localstatedir} value used by your current installation (@pxref{The "
"Store}, for information about this), usually @file{/var}.  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}."
msgstr ""

#. type: Plain text
#: doc/contributing.texi:133
msgid ""
"Finally, you have to invoke @code{make check} to run tests (@pxref{Running "
"the Test Suite}).  If anything fails, take a look at installation "
"instructions (@pxref{Installation})  or send a message to the @email{guix-"
"devel@@gnu.org, mailing list}."
msgstr ""

#. type: Plain text
#: doc/contributing.texi:136
msgid ""
"From there on, you can authenticate all the commits included in your "
"checkout by running:"
msgstr ""

#. type: example
#: doc/contributing.texi:139
#, no-wrap
msgid "make authenticate\n"
msgstr ""

#. type: Plain text
#: doc/contributing.texi:142
msgid ""
"The first run takes a couple of minutes, but subsequent runs are faster."
msgstr ""

#. type: Plain text
#: doc/contributing.texi:148
msgid ""
"Or, when your configuration for your local Git repository doesn't match the "
"default one, you can provide the reference for the @code{keyring} branch "
"through the variable @code{GUIX_GIT_KEYRING}.  The following example assumes "
"that you have a Git remote called @samp{myremote} pointing to the official "
"repository:"
msgstr ""

#. type: example
#: doc/contributing.texi:151
#, no-wrap
msgid "make authenticate GUIX_GIT_KEYRING=myremote/keyring\n"
msgstr ""

#. type: quotation
#: doc/contributing.texi:153 doc/contributing.texi:1264 doc/guix.texi:547
#: doc/guix.texi:596 doc/guix.texi:1667 doc/guix.texi:1914 doc/guix.texi:2125
#: doc/guix.texi:2346 doc/guix.texi:2547 doc/guix.texi:3613 doc/guix.texi:4349
#: doc/guix.texi:4363 doc/guix.texi:4445 doc/guix.texi:4675 doc/guix.texi:5494
#: doc/guix.texi:5740 doc/guix.texi:5861 doc/guix.texi:5913 doc/guix.texi:8459
#: doc/guix.texi:8529 doc/guix.texi:10193 doc/guix.texi:10233
#: doc/guix.texi:10450 doc/guix.texi:10462 doc/guix.texi:12627
#: doc/guix.texi:13202 doc/guix.texi:13958 doc/guix.texi:14923
#: doc/guix.texi:16967 doc/guix.texi:17117 doc/guix.texi:23774
#: doc/guix.texi:27081 doc/guix.texi:29038 doc/guix.texi:30452
#: doc/guix.texi:30686 doc/guix.texi:30856 doc/guix.texi:30987
#: doc/guix.texi:31089 doc/guix.texi:31185
#, no-wrap
msgid "Note"
msgstr ""

#. type: quotation
#: doc/contributing.texi:157
msgid ""
"You are advised to run @command{make authenticate} after every @command{git "
"pull} invocation.  This ensures you keep receiving valid changes to the "
"repository."
msgstr ""

#. type: Plain text
#: doc/contributing.texi:167
msgid ""
"In order to keep a sane working environment, you will find it useful to test "
"the changes made in your local source tree checkout without actually "
"installing them.  So that you can distinguish between your ``end-user'' hat "
"and your ``motley'' costume."
msgstr ""

#. type: Plain text
#: doc/contributing.texi:177
msgid ""
"To that end, all the command-line tools can be used even if you have not run "
"@code{make install}.  To do that, you first need to have an environment with "
"all the dependencies available (@pxref{Building from Git}), and then simply "
"prefix each command with @command{./pre-inst-env} (the @file{pre-inst-env} "
"script lives in the top build tree of Guix; it is generated by @command{./"
"configure}).  As an example, here is how you would build the @code{hello} "
"package as defined in your working tree (this assumes @command{guix-daemon} "
"is already running on your system; it's OK if it's a different version):"
msgstr ""

#. type: example
#: doc/contributing.texi:180
#, no-wrap
msgid "$ ./pre-inst-env guix build hello\n"
msgstr ""

#. type: Plain text
#: doc/contributing.texi:184
msgid "Similarly, an example for a Guile session using the Guix modules:"
msgstr ""

#. type: example
#: doc/contributing.texi:187
#, no-wrap
msgid ""
"$ ./pre-inst-env guile -c '(use-modules (guix utils)) (pk (%current-system))'\n"
"\n"
msgstr ""

#. type: example
#: doc/contributing.texi:189
#, no-wrap
msgid ";;; (\"x86_64-linux\")\n"
msgstr ""

#. type: cindex
#: doc/contributing.texi:192
#, no-wrap
msgid "REPL"
msgstr ""

#. type: cindex
#: doc/contributing.texi:193
#, no-wrap
msgid "read-eval-print loop"
msgstr ""

#. type: Plain text
#: doc/contributing.texi:196
msgid ""
"@dots{} and for a REPL (@pxref{Using Guile Interactively,,, guile, Guile "
"Reference Manual}):"
msgstr ""

#. type: example
#: doc/contributing.texi:211
#, no-wrap
msgid ""
"$ ./pre-inst-env guile\n"
"scheme@@(guile-user)> ,use(guix)\n"
"scheme@@(guile-user)> ,use(gnu)\n"
"scheme@@(guile-user)> (define snakes\n"
"                       (fold-packages\n"
"                         (lambda (package lst)\n"
"                           (if (string-prefix? \"python\"\n"
"                                               (package-name package))\n"
"                               (cons package lst)\n"
"                               lst))\n"
"                         '()))\n"
"scheme@@(guile-user)> (length snakes)\n"
"$1 = 361\n"
msgstr ""

#. type: Plain text
#: doc/contributing.texi:219
msgid ""
"If you are hacking on the daemon and its supporting code or if @command{guix-"
"daemon} is not already running on your system, you can launch it straight "
"from the build tree@footnote{The @option{-E} flag to @command{sudo} "
"guarantees that @code{GUILE_LOAD_PATH} is correctly set such that "
"@command{guix-daemon} and the tools it uses can find the Guile modules they "
"need.}:"
msgstr ""

#. type: example
#: doc/contributing.texi:222
#, no-wrap
msgid "$ sudo -E ./pre-inst-env guix-daemon --build-users-group=guixbuild\n"
msgstr ""

#. type: Plain text
#: doc/contributing.texi:226
msgid ""
"The @command{pre-inst-env} script sets up all the environment variables "
"necessary to support this, including @env{PATH} and @env{GUILE_LOAD_PATH}."
msgstr ""

#. type: Plain text
#: doc/contributing.texi:231
msgid ""
"Note that @command{./pre-inst-env guix pull} does @emph{not} upgrade the "
"local source tree; it simply updates the @file{~/.config/guix/current} "
"symlink (@pxref{Invoking guix pull}).  Run @command{git pull} instead if you "
"want to upgrade your local source tree."
msgstr ""

#. type: Plain text
#: doc/contributing.texi:241
msgid ""
"The Perfect Setup to hack on Guix is basically the perfect setup used for "
"Guile hacking (@pxref{Using Guile in Emacs,,, guile, Guile Reference "
"Manual}).  First, you need more than an editor, you need @url{https://www."
"gnu.org/software/emacs, Emacs}, empowered by the wonderful @url{https://"
"nongnu.org/geiser/, Geiser}.  To set that up, run:"
msgstr ""

#. type: example
#: doc/contributing.texi:244
#, no-wrap
msgid "guix package -i emacs guile emacs-geiser\n"
msgstr ""

#. type: Plain text
#: doc/contributing.texi:253
msgid ""
"Geiser allows for interactive and incremental development from within Emacs: "
"code compilation and evaluation from within buffers, access to on-line "
"documentation (docstrings), context-sensitive completion, @kbd{M-.} to jump "
"to an object definition, a REPL to try out your code, and more "
"(@pxref{Introduction,,, geiser, Geiser User Manual}).  For convenient Guix "
"development, make sure to augment Guile’s load path so that it finds source "
"files from your checkout:"
msgstr ""

#. type: lisp
#: doc/contributing.texi:258
#, no-wrap
msgid ""
";; @r{Assuming the Guix checkout is in ~/src/guix.}\n"
"(with-eval-after-load 'geiser-guile\n"
"  (add-to-list 'geiser-guile-load-path \"~/src/guix\"))\n"
msgstr ""

#. type: Plain text
#: doc/contributing.texi:266
msgid ""
"To actually edit the code, Emacs already has a neat Scheme mode.  But in "
"addition to that, you must not miss @url{https://www.emacswiki.org/emacs/"
"ParEdit, Paredit}.  It provides facilities to directly operate on the syntax "
"tree, such as raising an s-expression or wrapping it, swallowing or "
"rejecting the following s-expression, etc."
msgstr ""

#. type: cindex
#: doc/contributing.texi:267
#, no-wrap
msgid "code snippets"
msgstr ""

#. type: cindex
#: doc/contributing.texi:268
#, no-wrap
msgid "templates"
msgstr ""

#. type: cindex
#: doc/contributing.texi:269
#, no-wrap
msgid "reducing boilerplate"
msgstr ""

#. type: Plain text
#: doc/contributing.texi:276
msgid ""
"We also provide templates for common git commit messages and package "
"definitions in the @file{etc/snippets} directory.  These templates can be "
"used with @url{https://joaotavora.github.io/yasnippet/, YASnippet} to expand "
"short trigger strings to interactive text snippets.  You may want to add the "
"snippets directory to the @var{yas-snippet-dirs} variable in Emacs."
msgstr ""

#. type: lisp
#: doc/contributing.texi:281
#, no-wrap
msgid ""
";; @r{Assuming the Guix checkout is in ~/src/guix.}\n"
"(with-eval-after-load 'yasnippet\n"
"  (add-to-list 'yas-snippet-dirs \"~/src/guix/etc/snippets\"))\n"
msgstr ""

#. type: Plain text
#: doc/contributing.texi:289
msgid ""
"The commit message snippets depend on @url{https://magit.vc/, Magit} to "
"display staged files.  When editing a commit message type @code{add} "
"followed by @kbd{TAB} to insert a commit message template for adding a "
"package; type @code{update} followed by @kbd{TAB} to insert a template for "
"updating a package; type @code{https} followed by @kbd{TAB} to insert a "
"template for changing the home page URI of a package to HTTPS."
msgstr ""

#. type: Plain text
#: doc/contributing.texi:295
msgid ""
"The main snippet for @code{scheme-mode} is triggered by typing "
"@code{package...} followed by @kbd{TAB}.  This snippet also inserts the "
"trigger string @code{origin...}, which can be expanded further.  The "
"@code{origin} snippet in turn may insert other trigger strings ending on "
"@code{...}, which also can be expanded further."
msgstr ""

#. type: cindex
#: doc/contributing.texi:296
#, no-wrap
msgid "insert or update copyright"
msgstr ""

#. type: code{#1}
#: doc/contributing.texi:297
#, no-wrap
msgid "M-x guix-copyright"
msgstr ""

#. type: code{#1}
#: doc/contributing.texi:298
#, no-wrap
msgid "M-x copyright-update"
msgstr ""

#. type: Plain text
#: doc/contributing.texi:302
msgid ""
"We additionally provide insertion and automatic update of a copyright in "
"@file{etc/copyright.el}.  You may want to set your full name, mail, and load "
"a file."
msgstr ""

#. type: lisp
#: doc/contributing.texi:308
#, no-wrap
msgid ""
"(setq user-full-name \"Alice Doe\")\n"
"(setq user-mail-address \"alice@@mail.org\")\n"
";; @r{Assuming the Guix checkout is in ~/src/guix.}\n"
"(load-file \"~/src/guix/etc/copyright.el\")\n"
msgstr ""

#. type: Plain text
#: doc/contributing.texi:311
msgid ""
"To insert a copyright at the current line invoke @code{M-x guix-copyright}."
msgstr ""

#. type: Plain text
#: doc/contributing.texi:313
msgid ""
"To update a copyright you need to specify a @code{copyright-names-regexp}."
msgstr ""

#. type: lisp
#: doc/contributing.texi:317
#, no-wrap
msgid ""
"(setq copyright-names-regexp\n"
"      (format \"%s <%s>\" user-full-name user-mail-address))\n"
msgstr ""

#. type: Plain text
#: doc/contributing.texi:323
msgid ""
"You can check if your copyright is up to date by evaluating @code{M-x "
"copyright-update}.  If you want to do it automatically after each buffer "
"save then add @code{(add-hook 'after-save-hook 'copyright-update)} in Emacs."
msgstr ""

#. type: cindex
#: doc/contributing.texi:327
#, no-wrap
msgid "packages, creating"
msgstr ""

#. type: Plain text
#: doc/contributing.texi:331
msgid ""
"The GNU distribution is nascent and may well lack some of your favorite "
"packages.  This section describes how you can help make the distribution "
"grow."
msgstr ""

#. type: Plain text
#: doc/contributing.texi:339
msgid ""
"Free software packages are usually distributed in the form of @dfn{source "
"code tarballs}---typically @file{tar.gz} files that contain all the source "
"files.  Adding a package to the distribution means essentially two things: "
"adding a @dfn{recipe} that describes how to build the package, including a "
"list of other packages required to build it, and adding @dfn{package "
"metadata} along with that recipe, such as a description and licensing "
"information."
msgstr ""

#. type: Plain text
#: doc/contributing.texi:348
msgid ""
"In Guix all this information is embodied in @dfn{package definitions}.  "
"Package definitions provide a high-level view of the package.  They are "
"written using the syntax of the Scheme programming language; in fact, for "
"each package we define a variable bound to the package definition, and "
"export that variable from a module (@pxref{Package Modules}).  However, in-"
"depth Scheme knowledge is @emph{not} a prerequisite for creating packages.  "
"For more information on package definitions, @pxref{Defining Packages}."
msgstr ""

#. type: Plain text
#: doc/contributing.texi:354
msgid ""
"Once a package definition is in place, stored in a file in the Guix source "
"tree, it can be tested using the @command{guix build} command "
"(@pxref{Invoking guix build}).  For example, assuming the new package is "
"called @code{gnew}, you may run this command from the Guix build tree "
"(@pxref{Running Guix Before It Is Installed}):"
msgstr ""

#. type: example
#: doc/contributing.texi:357
#, no-wrap
msgid "./pre-inst-env guix build gnew --keep-failed\n"
msgstr ""

#. type: Plain text
#: doc/contributing.texi:363
msgid ""
"Using @code{--keep-failed} makes it easier to debug build failures since it "
"provides access to the failed build tree.  Another useful command-line "
"option when debugging is @code{--log-file}, to access the build log."
msgstr ""

#. type: Plain text
#: doc/contributing.texi:368
msgid ""
"If the package is unknown to the @command{guix} command, it may be that the "
"source file contains a syntax error, or lacks a @code{define-public} clause "
"to export the package variable.  To figure it out, you may load the module "
"from Guile to get more information about the actual error:"
msgstr ""

#. type: example
#: doc/contributing.texi:371
#, no-wrap
msgid "./pre-inst-env guile -c '(use-modules (gnu packages gnew))'\n"
msgstr ""

#. type: Plain text
#: doc/contributing.texi:378
msgid ""
"Once your package builds correctly, please send us a patch "
"(@pxref{Submitting Patches}).  Well, if you need help, we will be happy to "
"help you too.  Once the patch is committed in the Guix repository, the new "
"package automatically gets built on the supported platforms by "
"@url{@value{SUBSTITUTE-URL}, our continuous integration system}."
msgstr ""

#. type: cindex
#: doc/contributing.texi:379
#, no-wrap
msgid "substituter"
msgstr ""

#. type: Plain text
#: doc/contributing.texi:386
msgid ""
"Users can obtain the new package definition simply by running @command{guix "
"pull} (@pxref{Invoking guix pull}).  When @code{@value{SUBSTITUTE-SERVER}} "
"is done building the package, installing the package automatically downloads "
"binaries from there (@pxref{Substitutes}).  The only place where human "
"intervention is needed is to review and apply the patch."
msgstr ""

#. type: subsection
#: doc/contributing.texi:399 doc/contributing.texi:401
#: doc/contributing.texi:402
#, no-wrap
msgid "Software Freedom"
msgstr ""

#. type: menuentry
#: doc/contributing.texi:399
msgid "What may go into the distribution."
msgstr ""

#. type: subsection
#: doc/contributing.texi:399 doc/contributing.texi:429
#: doc/contributing.texi:430
#, no-wrap
msgid "Package Naming"
msgstr ""

#. type: menuentry
#: doc/contributing.texi:399
msgid "What's in a name?"
msgstr ""

#. type: subsection
#: doc/contributing.texi:399 doc/contributing.texi:454
#: doc/contributing.texi:455
#, no-wrap
msgid "Version Numbers"
msgstr ""

#. type: menuentry
#: doc/contributing.texi:399
msgid "When the name is not enough."
msgstr ""

#. type: subsection
#: doc/contributing.texi:399 doc/contributing.texi:545
#: doc/contributing.texi:546
#, no-wrap
msgid "Synopses and Descriptions"
msgstr ""

#. type: menuentry
#: doc/contributing.texi:399
msgid "Helping users find the right package."
msgstr ""

#. type: subsection
#: doc/contributing.texi:399 doc/contributing.texi:624
#: doc/contributing.texi:625
#, no-wrap
msgid "Snippets versus Phases"
msgstr ""

#. type: menuentry
#: doc/contributing.texi:399
msgid "Whether to use a snippet, or a build phase."
msgstr ""

#. type: subsection
#: doc/contributing.texi:399 doc/contributing.texi:639
#: doc/contributing.texi:640
#, no-wrap
msgid "Python Modules"
msgstr ""

#. type: menuentry
#: doc/contributing.texi:399
msgid "A touch of British comedy."
msgstr ""

#. type: subsection
#: doc/contributing.texi:399 doc/contributing.texi:715
#: doc/contributing.texi:716
#, no-wrap
msgid "Perl Modules"
msgstr ""

#. type: menuentry
#: doc/contributing.texi:399
msgid "Little pearls."
msgstr ""

#. type: subsection
#: doc/contributing.texi:399 doc/contributing.texi:731
#: doc/contributing.texi:732
#, no-wrap
msgid "Java Packages"
msgstr ""

#. type: menuentry
#: doc/contributing.texi:399
msgid "Coffee break."
msgstr ""

#. type: subsection
#: doc/contributing.texi:399 doc/contributing.texi:751
#: doc/contributing.texi:752
#, no-wrap
msgid "Rust Crates"
msgstr ""

#. type: menuentry
#: doc/contributing.texi:399
msgid "Beware of oxidation."
msgstr ""

#. type: subsection
#: doc/contributing.texi:399 doc/contributing.texi:785
#: doc/contributing.texi:786
#, no-wrap
msgid "Fonts"
msgstr ""

#. type: menuentry
#: doc/contributing.texi:399
msgid "Fond of fonts."
msgstr ""

#. type: cindex
#: doc/contributing.texi:405
#, no-wrap
msgid "free software"
msgstr ""

#. type: Plain text
#: doc/contributing.texi:413
msgid ""
"The GNU operating system has been developed so that users can have freedom "
"in their computing.  GNU is @dfn{free software}, meaning that users have the "
"@url{https://www.gnu.org/philosophy/free-sw.html,four essential freedoms}: "
"to run the program, to study and change the program in source code form, to "
"redistribute exact copies, and to distribute modified versions.  Packages "
"found in the GNU distribution provide only software that conveys these four "
"freedoms."
msgstr ""

#. type: Plain text
#: doc/contributing.texi:419
msgid ""
"In addition, the GNU distribution follow the @url{https://www.gnu.org/"
"distros/free-system-distribution-guidelines.html,free software distribution "
"guidelines}.  Among other things, these guidelines reject non-free firmware, "
"recommendations of non-free software, and discuss ways to deal with "
"trademarks and patents."
msgstr ""

#. type: Plain text
#: doc/contributing.texi:427
msgid ""
"Some otherwise free upstream package sources contain a small and optional "
"subset that violates the above guidelines, for instance because this subset "
"is itself non-free code.  When that happens, the offending items are removed "
"with appropriate patches or code snippets in the @code{origin} form of the "
"package (@pxref{Defining Packages}).  This way, @code{guix build --source} "
"returns the ``freed'' source rather than the unmodified upstream source."
msgstr ""

#. type: cindex
#: doc/contributing.texi:432
#, no-wrap
msgid "package name"
msgstr ""

#. type: Plain text
#: doc/contributing.texi:440
msgid ""
"A package has actually two names associated with it: First, there is the "
"name of the @emph{Scheme variable}, the one following @code{define-public}.  "
"By this name, the package can be made known in the Scheme code, for instance "
"as input to another package.  Second, there is the string in the @code{name} "
"field of a package definition.  This name is used by package management "
"commands such as @command{guix package} and @command{guix build}."
msgstr ""

#. type: Plain text
#: doc/contributing.texi:445
msgid ""
"Both are usually the same and correspond to the lowercase conversion of the "
"project name chosen upstream, with underscores replaced with hyphens.  For "
"instance, GNUnet is available as @code{gnunet}, and SDL_net as @code{sdl-"
"net}."
msgstr ""

#. type: Plain text
#: doc/contributing.texi:450
msgid ""
"We do not add @code{lib} prefixes for library packages, unless these are "
"already part of the official project name.  But @pxref{Python Modules} and "
"@ref{Perl Modules} for special rules concerning modules for the Python and "
"Perl languages."
msgstr ""

#. type: Plain text
#: doc/contributing.texi:452
msgid "Font package names are handled differently, @pxref{Fonts}."
msgstr ""

#. type: cindex
#: doc/contributing.texi:457
#, no-wrap
msgid "package version"
msgstr ""

#. type: Plain text
#: doc/contributing.texi:466
msgid ""
"We usually package only the latest version of a given free software "
"project.  But sometimes, for instance for incompatible library versions, two "
"(or more) versions of the same package are needed.  These require different "
"Scheme variable names.  We use the name as defined in @ref{Package Naming} "
"for the most recent version; previous versions use the same name, suffixed "
"by @code{-} and the smallest prefix of the version number that may "
"distinguish the two versions."
msgstr ""

#. type: Plain text
#: doc/contributing.texi:469
msgid ""
"The name inside the package definition is the same for all versions of a "
"package and does not contain any version number."
msgstr ""

#. type: Plain text
#: doc/contributing.texi:471
msgid ""
"For instance, the versions 2.24.20 and 3.9.12 of GTK+ may be packaged as "
"follows:"
msgstr ""

#. type: lisp
#: doc/contributing.texi:483
#, no-wrap
msgid ""
"(define-public gtk+\n"
"  (package\n"
"    (name \"gtk+\")\n"
"    (version \"3.9.12\")\n"
"    ...))\n"
"(define-public gtk+-2\n"
"  (package\n"
"    (name \"gtk+\")\n"
"    (version \"2.24.20\")\n"
"    ...))\n"
msgstr ""

#. type: Plain text
#: doc/contributing.texi:485
msgid "If we also wanted GTK+ 3.8.2, this would be packaged as"
msgstr ""

#. type: lisp
#: doc/contributing.texi:491
#, no-wrap
msgid ""
"(define-public gtk+-3.8\n"
"  (package\n"
"    (name \"gtk+\")\n"
"    (version \"3.8.2\")\n"
"    ...))\n"
msgstr ""

#. type: cindex
#: doc/contributing.texi:495
#, no-wrap
msgid "version number, for VCS snapshots"
msgstr ""

#. type: Plain text
#: doc/contributing.texi:501
msgid ""
"Occasionally, we package snapshots of upstream's version control system "
"(VCS) instead of formal releases.  This should remain exceptional, because "
"it is up to upstream developers to clarify what the stable release is.  Yet, "
"it is sometimes necessary.  So, what should we put in the @code{version} "
"field?"
msgstr ""

#. type: Plain text
#: doc/contributing.texi:509
msgid ""
"Clearly, we need to make the commit identifier of the VCS snapshot visible "
"in the version string, but we also need to make sure that the version string "
"is monotonically increasing so that @command{guix package --upgrade} can "
"determine which version is newer.  Since commit identifiers, notably with "
"Git, are not monotonically increasing, we add a revision number that we "
"increase each time we upgrade to a newer snapshot.  The resulting version "
"string looks like this:"
msgstr ""

#. type: example
#: doc/contributing.texi:518
#, no-wrap
msgid ""
"2.0.11-3.cabba9e\n"
"  ^    ^    ^\n"
"  |    |    `-- upstream commit ID\n"
"  |    |\n"
"  |    `--- Guix package revision\n"
"  |\n"
"latest upstream version\n"
msgstr ""

#. type: Plain text
#: doc/contributing.texi:527
msgid ""
"It is a good idea to strip commit identifiers in the @code{version} field "
"to, say, 7 digits.  It avoids an aesthetic annoyance (assuming aesthetics "
"have a role to play here) as well as problems related to OS limits such as "
"the maximum shebang length (127 bytes for the Linux kernel).  It is best to "
"use the full commit identifiers in @code{origin}s, though, to avoid "
"ambiguities.  A typical package definition may look like this:"
msgstr ""

#. type: lisp
#: doc/contributing.texi:543
#, no-wrap
msgid ""
"(define my-package\n"
"  (let ((commit \"c3f29bc928d5900971f65965feaae59e1272a3f7\")\n"
"        (revision \"1\"))          ;Guix package revision\n"
"    (package\n"
"      (version (git-version \"0.9\" revision commit))\n"
"      (source (origin\n"
"                (method git-fetch)\n"
"                (uri (git-reference\n"
"                      (url \"git://example.org/my-package.git\")\n"
"                      (commit commit)))\n"
"                (sha256 (base32 \"1mbikn@dots{}\"))\n"
"                (file-name (git-file-name name version))))\n"
"      ;; @dots{}\n"
"      )))\n"
msgstr ""

#. type: cindex
#: doc/contributing.texi:548
#, no-wrap
msgid "package description"
msgstr ""

#. type: cindex
#: doc/contributing.texi:549
#, no-wrap
msgid "package synopsis"
msgstr ""

#. type: Plain text
#: doc/contributing.texi:556
msgid ""
"As we have seen before, each package in GNU@tie{}Guix includes a synopsis "
"and a description (@pxref{Defining Packages}).  Synopses and descriptions "
"are important: They are what @command{guix package --search} searches, and a "
"crucial piece of information to help users determine whether a given package "
"suits their needs.  Consequently, packagers should pay attention to what "
"goes into them."
msgstr ""

#. type: Plain text
#: doc/contributing.texi:564
msgid ""
"Synopses must start with a capital letter and must not end with a period.  "
"They must not start with ``a'' or ``the'', which usually does not bring "
"anything; for instance, prefer ``File-frobbing tool'' over ``A tool that "
"frobs files''.  The synopsis should say what the package is---e.g., ``Core "
"GNU utilities (file, text, shell)''---or what it is used for---e.g., the "
"synopsis for GNU@tie{}grep is ``Print lines matching a pattern''."
msgstr ""

#. type: Plain text
#: doc/contributing.texi:574
msgid ""
"Keep in mind that the synopsis must be meaningful for a very wide audience.  "
"For example, ``Manipulate alignments in the SAM format'' might make sense "
"for a seasoned bioinformatics researcher, but might be fairly unhelpful or "
"even misleading to a non-specialized audience.  It is a good idea to come up "
"with a synopsis that gives an idea of the application domain of the "
"package.  In this example, this might give something like ``Manipulate "
"nucleotide sequence alignments'', which hopefully gives the user a better "
"idea of whether this is what they are looking for."
msgstr ""

#. type: Plain text
#: doc/contributing.texi:582
msgid ""
"Descriptions should take between five and ten lines.  Use full sentences, "
"and avoid using acronyms without first introducing them.  Please avoid "
"marketing phrases such as ``world-leading'', ``industrial-strength'', and "
"``next-generation'', and avoid superlatives like ``the most advanced''---"
"they are not helpful to users looking for a package and may even sound "
"suspicious.  Instead, try to be factual, mentioning use cases and features."
msgstr ""

#. type: cindex
#: doc/contributing.texi:583
#, no-wrap
msgid "Texinfo markup, in package descriptions"
msgstr ""

#. type: Plain text
#: doc/contributing.texi:592
msgid ""
"Descriptions can include Texinfo markup, which is useful to introduce "
"ornaments such as @code{@@code} or @code{@@dfn}, bullet lists, or hyperlinks "
"(@pxref{Overview,,, texinfo, GNU Texinfo}).  However you should be careful "
"when using some characters for example @samp{@@} and curly braces which are "
"the basic special characters in Texinfo (@pxref{Special Characters,,, "
"texinfo, GNU Texinfo}).  User interfaces such as @command{guix package --"
"show} take care of rendering it appropriately."
msgstr ""

#. type: Plain text
#: doc/contributing.texi:598
msgid ""
"Synopses and descriptions are translated by volunteers @uref{https://"
"translationproject.org/domain/guix-packages.html, at the Translation "
"Project} so that as many users as possible can read them in their native "
"language.  User interfaces search them and display them in the language "
"specified by the current locale."
msgstr ""

#. type: Plain text
#: doc/contributing.texi:603
msgid ""
"To allow @command{xgettext} to extract them as translatable strings, "
"synopses and descriptions @emph{must be literal strings}.  This means that "
"you cannot use @code{string-append} or @code{format} to construct these "
"strings:"
msgstr ""

#. type: lisp
#: doc/contributing.texi:609
#, no-wrap
msgid ""
"(package\n"
"  ;; @dots{}\n"
"  (synopsis \"This is translatable\")\n"
"  (description (string-append \"This is \" \"*not*\" \" translatable.\")))\n"
msgstr ""

#. type: Plain text
#: doc/contributing.texi:617
msgid ""
"Translation is a lot of work so, as a packager, please pay even more "
"attention to your synopses and descriptions as every change may entail "
"additional work for translators.  In order to help them, it is possible to "
"make recommendations or instructions visible to them by inserting special "
"comments like this (@pxref{xgettext Invocation,,, gettext, GNU Gettext}):"
msgstr ""

#. type: lisp
#: doc/contributing.texi:622
#, no-wrap
msgid ""
";; TRANSLATORS: \"X11 resize-and-rotate\" should not be translated.\n"
"(description \"ARandR is designed to provide a simple visual front end\n"
"for the X11 resize-and-rotate (RandR) extension. @dots{}\")\n"
msgstr ""

#. type: cindex
#: doc/contributing.texi:627
#, no-wrap
msgid "snippets, when to use"
msgstr ""

#. type: Plain text
#: doc/contributing.texi:638
msgid ""
"The boundary between using an origin snippet versus a build phase to modify "
"the sources of a package can be elusive.  Origin snippets are typically used "
"to remove unwanted files such as bundled libraries, nonfree sources, or to "
"apply simple substitutions.  The source derived from an origin should "
"produce a source that can be used to build the package on any system that "
"the upstream package supports (i.e., act as the corresponding source).  In "
"particular, origin snippets must not embed store items in the sources; such "
"patching should rather be done using build phases.  Refer to the "
"@code{origin} record documentation for more information (@pxref{origin "
"Reference})."
msgstr ""

#. type: cindex
#: doc/contributing.texi:642
#, no-wrap
msgid "python"
msgstr ""

#. type: Plain text
#: doc/contributing.texi:648
msgid ""
"We currently package Python 2 and Python 3, under the Scheme variable names "
"@code{python-2} and @code{python} as explained in @ref{Version Numbers}.  To "
"avoid confusion and naming clashes with other programming languages, it "
"seems desirable that the name of a package for a Python module contains the "
"word @code{python}."
msgstr ""

#. type: Plain text
#: doc/contributing.texi:655
msgid ""
"Some modules are compatible with only one version of Python, others with "
"both.  If the package Foo is compiled with Python 3, we name it @code{python-"
"foo}.  If it is compiled with Python 2, we name it @code{python2-foo}.  "
"Packages should be added when they are necessary; we don't add Python 2 "
"variants of the package unless we are going to use them."
msgstr ""

#. type: Plain text
#: doc/contributing.texi:661
msgid ""
"If a project already contains the word @code{python}, we drop this; for "
"instance, the module python-dateutil is packaged under the names "
"@code{python-dateutil} and @code{python2-dateutil}.  If the project name "
"starts with @code{py} (e.g.@: @code{pytz}), we keep it and prefix it as "
"described above."
msgstr ""

#. type: subsubsection
#: doc/contributing.texi:662
#, no-wrap
msgid "Specifying Dependencies"
msgstr ""

#. type: cindex
#: doc/contributing.texi:663
#, no-wrap
msgid "inputs, for Python packages"
msgstr ""

#. type: Plain text
#: doc/contributing.texi:668
msgid ""
"Dependency information for Python packages is usually available in the "
"package source tree, with varying degrees of accuracy: in the @file{setup."
"py} file, in @file{requirements.txt}, or in @file{tox.ini}."
msgstr ""

#. type: Plain text
#: doc/contributing.texi:674
msgid ""
"Your mission, when writing a recipe for a Python package, is to map these "
"dependencies to the appropriate type of ``input'' (@pxref{package Reference, "
"inputs}).  Although the @code{pypi} importer normally does a good job "
"(@pxref{Invoking guix import}), you may want to check the following check "
"list to determine which dependency goes where."
msgstr ""

#. type: itemize
#: doc/contributing.texi:682
msgid ""
"We currently package Python 2 with @code{setuptools} and @code{pip} "
"installed like Python 3.4 has per default.  Thus you don't need to specify "
"either of these as an input.  @command{guix lint} will warn you if you do."
msgstr ""

#. type: itemize
#: doc/contributing.texi:688
msgid ""
"Python dependencies required at run time go into @code{propagated-inputs}.  "
"They are typically defined with the @code{install_requires} keyword in "
"@file{setup.py}, or in the @file{requirements.txt} file."
msgstr ""

#. type: itemize
#: doc/contributing.texi:696
msgid ""
"Python packages required only at build time---e.g., those listed with the "
"@code{setup_requires} keyword in @file{setup.py}---or only for testing---e."
"g., those in @code{tests_require}---go into @code{native-inputs}.  The "
"rationale is that (1) they do not need to be propagated because they are not "
"needed at run time, and (2) in a cross-compilation context, it's the "
"``native'' input that we'd want."
msgstr ""

#. type: itemize
#: doc/contributing.texi:700
msgid ""
"Examples are the @code{pytest}, @code{mock}, and @code{nose} test "
"frameworks.  Of course if any of these packages is also required at run-"
"time, it needs to go to @code{propagated-inputs}."
msgstr ""

#. type: itemize
#: doc/contributing.texi:705
msgid ""
"Anything that does not fall in the previous categories goes to "
"@code{inputs}, for example programs or C libraries required for building "
"Python packages containing C extensions."
msgstr ""

#. type: itemize
#: doc/contributing.texi:711
msgid ""
"If a Python package has optional dependencies (@code{extras_require}), it is "
"up to you to decide whether to add them or not, based on their usefulness/"
"overhead ratio (@pxref{Submitting Patches, @command{guix size}})."
msgstr ""

#. type: cindex
#: doc/contributing.texi:718
#, no-wrap
msgid "perl"
msgstr ""

#. type: Plain text
#: doc/contributing.texi:729
msgid ""
"Perl programs standing for themselves are named as any other package, using "
"the lowercase upstream name.  For Perl packages containing a single class, "
"we use the lowercase class name, replace all occurrences of @code{::} by "
"dashes and prepend the prefix @code{perl-}.  So the class @code{XML::Parser} "
"becomes @code{perl-xml-parser}.  Modules containing several classes keep "
"their lowercase upstream name and are also prepended by @code{perl-}.  Such "
"modules tend to have the word @code{perl} somewhere in their name, which "
"gets dropped in favor of the prefix.  For instance, @code{libwww-perl} "
"becomes @code{perl-libwww}."
msgstr ""

#. type: cindex
#: doc/contributing.texi:734
#, no-wrap
msgid "java"
msgstr ""

#. type: Plain text
#: doc/contributing.texi:737
msgid ""
"Java programs standing for themselves are named as any other package, using "
"the lowercase upstream name."
msgstr ""

#. type: Plain text
#: doc/contributing.texi:743
msgid ""
"To avoid confusion and naming clashes with other programming languages, it "
"is desirable that the name of a package for a Java package is prefixed with "
"@code{java-}.  If a project already contains the word @code{java}, we drop "
"this; for instance, the package @code{ngsjava} is packaged under the name "
"@code{java-ngs}."
msgstr ""

#. type: Plain text
#: doc/contributing.texi:749
msgid ""
"For Java packages containing a single class or a small class hierarchy, we "
"use the lowercase class name, replace all occurrences of @code{.} by dashes "
"and prepend the prefix @code{java-}.  So the class @code{apache.commons.cli} "
"becomes package @code{java-apache-commons-cli}."
msgstr ""

#. type: cindex
#: doc/contributing.texi:754
#, no-wrap
msgid "rust"
msgstr ""

#. type: Plain text
#: doc/contributing.texi:757
msgid ""
"Rust programs standing for themselves are named as any other package, using "
"the lowercase upstream name."
msgstr ""

#. type: Plain text
#: doc/contributing.texi:761
msgid ""
"To prevent namespace collisions we prefix all other Rust packages with the "
"@code{rust-} prefix.  The name should be changed to lowercase as appropriate "
"and dashes should remain in place."
msgstr ""

#. type: Plain text
#: doc/contributing.texi:767
msgid ""
"In the rust ecosystem it is common for multiple incompatible versions of a "
"package to be used at any given time, so all packages should have a "
"versioned suffix.  If a package has passed version 1.0.0 then just the major "
"version number is sufficient (e.g.@: @code{rust-clap-2}), otherwise the "
"version suffix should contain both the major and minor version (e.g.@: "
"@code{rust-rand-0.6})."
msgstr ""

#. type: Plain text
#: doc/contributing.texi:777
msgid ""
"Because of the difficulty in reusing rust packages as pre-compiled inputs "
"for other packages the Cargo build system (@pxref{Build Systems, @code{cargo-"
"build-system}}) presents the @code{#:cargo-inputs} and @code{cargo-"
"development-inputs} keywords as build system arguments.  It would be helpful "
"to think of these as similar to @code{propagated-inputs} and @code{native-"
"inputs}.  Rust @code{dependencies} and @code{build-dependencies} should go "
"in @code{#:cargo-inputs}, and @code{dev-dependencies} should go in @code{#:"
"cargo-development-inputs}.  If a Rust package links to other libraries then "
"the standard placement in @code{inputs} and the like should be used."
msgstr ""

#. type: Plain text
#: doc/contributing.texi:783
msgid ""
"Care should be taken to ensure the correct version of dependencies are used; "
"to this end we try to refrain from skipping the tests or using @code{#:skip-"
"build?} when possible.  Of course this is not always possible, as the "
"package may be developed for a different Operating System, depend on "
"features from the Nightly Rust compiler, or the test suite may have "
"atrophied since it was released."
msgstr ""

#. type: cindex
#: doc/contributing.texi:788 doc/guix.texi:1784
#, no-wrap
msgid "fonts"
msgstr ""

#. type: Plain text
#: doc/contributing.texi:794
msgid ""
"For fonts that are in general not installed by a user for typesetting "
"purposes, or that are distributed as part of a larger software package, we "
"rely on the general packaging rules for software; for instance, this applies "
"to the fonts delivered as part of the X.Org system or fonts that are part of "
"TeX Live."
msgstr ""

#. type: Plain text
#: doc/contributing.texi:798
msgid ""
"To make it easier for a user to search for fonts, names for other packages "
"containing only fonts are constructed as follows, independently of the "
"upstream package name."
msgstr ""

#. type: Plain text
#: doc/contributing.texi:806
msgid ""
"The name of a package containing only one font family starts with "
"@code{font-}; it is followed by the foundry name and a dash @code{-} if the "
"foundry is known, and the font family name, in which spaces are replaced by "
"dashes (and as usual, all upper case letters are transformed to lower "
"case).  For example, the Gentium font family by SIL is packaged under the "
"name @code{font-sil-gentium}."
msgstr ""

#. type: Plain text
#: doc/contributing.texi:815
msgid ""
"For a package containing several font families, the name of the collection "
"is used in the place of the font family name.  For instance, the Liberation "
"fonts consist of three families, Liberation Sans, Liberation Serif and "
"Liberation Mono.  These could be packaged separately under the names "
"@code{font-liberation-sans} and so on; but as they are distributed together "
"under a common name, we prefer to package them together as @code{font-"
"liberation}."
msgstr ""

#. type: Plain text
#: doc/contributing.texi:821
msgid ""
"In the case where several formats of the same font family or font collection "
"are packaged separately, a short form of the format, prepended by a dash, is "
"added to the package name.  We use @code{-ttf} for TrueType fonts, @code{-"
"otf} for OpenType fonts and @code{-type1} for PostScript Type 1 fonts."
msgstr ""

#. type: Plain text
#: doc/contributing.texi:829
msgid ""
"In general our code follows the GNU Coding Standards (@pxref{Top,,, "
"standards, GNU Coding Standards}).  However, they do not say much about "
"Scheme, so here are some additional rules."
msgstr ""

#. type: subsection
#: doc/contributing.texi:835 doc/contributing.texi:837
#: doc/contributing.texi:838
#, no-wrap
msgid "Programming Paradigm"
msgstr ""

#. type: menuentry
#: doc/contributing.texi:835
msgid "How to compose your elements."
msgstr ""

#. type: subsection
#: doc/contributing.texi:835 doc/contributing.texi:844
#: doc/contributing.texi:845
#, no-wrap
msgid "Modules"
msgstr ""

#. type: menuentry
#: doc/contributing.texi:835
msgid "Where to store your code?"
msgstr ""

#. type: subsection
#: doc/contributing.texi:835 doc/contributing.texi:855
#: doc/contributing.texi:856
#, no-wrap
msgid "Data Types and Pattern Matching"
msgstr ""

#. type: menuentry
#: doc/contributing.texi:835
msgid "Implementing data structures."
msgstr ""

#. type: subsection
#: doc/contributing.texi:835 doc/contributing.texi:869
#: doc/contributing.texi:870
#, no-wrap
msgid "Formatting Code"
msgstr ""

#. type: menuentry
#: doc/contributing.texi:835
msgid "Writing conventions."
msgstr ""

#. type: Plain text
#: doc/contributing.texi:843
msgid ""
"Scheme code in Guix is written in a purely functional style.  One exception "
"is code that involves input/output, and procedures that implement low-level "
"concepts, such as the @code{memoize} procedure."
msgstr ""

#. type: Plain text
#: doc/contributing.texi:851
msgid ""
"Guile modules that are meant to be used on the builder side must live in the "
"@code{(guix build @dots{})} name space.  They must not refer to other Guix "
"or GNU modules.  However, it is OK for a ``host-side'' module to use a build-"
"side module."
msgstr ""

#. type: Plain text
#: doc/contributing.texi:854
msgid ""
"Modules that deal with the broader GNU system should be in the @code{(gnu "
"@dots{})} name space rather than @code{(guix @dots{})}."
msgstr ""

#. type: Plain text
#: doc/contributing.texi:863
msgid ""
"The tendency in classical Lisp is to use lists to represent everything, and "
"then to browse them ``by hand'' using @code{car}, @code{cdr}, @code{cadr}, "
"and co.  There are several problems with that style, notably the fact that "
"it is hard to read, error-prone, and a hindrance to proper type error "
"reports."
msgstr ""

#. type: Plain text
#: doc/contributing.texi:868
msgid ""
"Guix code should define appropriate data types (for instance, using "
"@code{define-record-type*}) rather than abuse lists.  In addition, it should "
"use pattern matching, via Guile’s @code{(ice-9 match)} module, especially "
"when matching lists."
msgstr ""

#. type: cindex
#: doc/contributing.texi:872
#, no-wrap
msgid "formatting code"
msgstr ""

#. type: cindex
#: doc/contributing.texi:873
#, no-wrap
msgid "coding style"
msgstr ""

#. type: Plain text
#: doc/contributing.texi:880
msgid ""
"When writing Scheme code, we follow common wisdom among Scheme programmers.  "
"In general, we follow the @url{https://mumble.net/~campbell/scheme/style."
"txt, Riastradh's Lisp Style Rules}.  This document happens to describe the "
"conventions mostly used in Guile’s code too.  It is very thoughtful and well "
"written, so please do read it."
msgstr ""

#. type: Plain text
#: doc/contributing.texi:887
msgid ""
"Some special forms introduced in Guix, such as the @code{substitute*} macro, "
"have special indentation rules.  These are defined in the @file{.dir-locals."
"el} file, which Emacs automatically uses.  Also note that Emacs-Guix "
"provides @code{guix-devel-mode} mode that indents and highlights Guix code "
"properly (@pxref{Development,,, emacs-guix, The Emacs-Guix Reference "
"Manual})."
msgstr ""

#. type: cindex
#: doc/contributing.texi:888
#, no-wrap
msgid "indentation, of code"
msgstr ""

#. type: cindex
#: doc/contributing.texi:889
#, no-wrap
msgid "formatting, of code"
msgstr ""

#. type: Plain text
#: doc/contributing.texi:892
msgid ""
"If you do not use Emacs, please make sure to let your editor knows these "
"rules.  To automatically indent a package definition, you can also run:"
msgstr ""

#. type: example
#: doc/contributing.texi:895
#, no-wrap
msgid "./etc/indent-code.el gnu/packages/@var{file}.scm @var{package}\n"
msgstr ""

#. type: Plain text
#: doc/contributing.texi:901
msgid ""
"This automatically indents the definition of @var{package} in @file{gnu/"
"packages/@var{file}.scm} by running Emacs in batch mode.  To indent a whole "
"file, omit the second argument:"
msgstr ""

#. type: example
#: doc/contributing.texi:904
#, no-wrap
msgid "./etc/indent-code.el gnu/services/@var{file}.scm\n"
msgstr ""

#. type: cindex
#: doc/contributing.texi:906
#, no-wrap
msgid "Vim, Scheme code editing"
msgstr ""

#. type: Plain text
#: doc/contributing.texi:912
msgid ""
"If you are editing code with Vim, we recommend that you run @code{:set "
"autoindent} so that your code is automatically indented as you type.  "
"Additionally, @uref{https://www.vim.org/scripts/script.php?script_id=3998, "
"@code{paredit.vim}} may help you deal with all these parentheses."
msgstr ""

#. type: Plain text
#: doc/contributing.texi:916
msgid ""
"We require all top-level procedures to carry a docstring.  This requirement "
"can be relaxed for simple private procedures in the @code{(guix build "
"@dots{})} name space, though."
msgstr ""

#. type: Plain text
#: doc/contributing.texi:919
msgid ""
"Procedures should not have more than four positional parameters.  Use "
"keyword parameters for procedures that take more than four parameters."
msgstr ""

#. type: Plain text
#: doc/contributing.texi:930
msgid ""
"Development is done using the Git distributed version control system.  Thus, "
"access to the repository is not strictly necessary.  We welcome "
"contributions in the form of patches as produced by @code{git format-patch} "
"sent to the @email{guix-patches@@gnu.org} mailing list.  Seasoned Guix "
"developers may also want to look at the section on commit access "
"(@pxref{Commit Access})."
msgstr ""

#. type: Plain text
#: doc/contributing.texi:937
msgid ""
"This mailing list is backed by a Debbugs instance, which allows us to keep "
"track of submissions (@pxref{Tracking Bugs and Patches}).  Each message sent "
"to that mailing list gets a new tracking number assigned; people can then "
"follow up on the submission by sending email to @code{@var{NNN}@@debbugs.gnu."
"org}, where @var{NNN} is the tracking number (@pxref{Sending a Patch "
"Series})."
msgstr ""

#. type: Plain text
#: doc/contributing.texi:941
msgid ""
"Please write commit logs in the ChangeLog format (@pxref{Change Logs,,, "
"standards, GNU Coding Standards}); you can check the commit history for "
"examples."
msgstr ""

#. type: Plain text
#: doc/contributing.texi:944
msgid ""
"Before submitting a patch that adds or modifies a package definition, please "
"run through this check list:"
msgstr ""

#. type: enumerate
#: doc/contributing.texi:951
msgid ""
"If the authors of the packaged software provide a cryptographic signature "
"for the release tarball, make an effort to verify the authenticity of the "
"archive.  For a detached GPG signature file this would be done with the "
"@code{gpg --verify} command."
msgstr ""

#. type: enumerate
#: doc/contributing.texi:955
msgid ""
"Take some time to provide an adequate synopsis and description for the "
"package.  @xref{Synopses and Descriptions}, for some guidelines."
msgstr ""

#. type: enumerate
#: doc/contributing.texi:960
msgid ""
"Run @code{guix lint @var{package}}, where @var{package} is the name of the "
"new or modified package, and fix any errors it reports (@pxref{Invoking guix "
"lint})."
msgstr ""

#. type: enumerate
#: doc/contributing.texi:964
msgid ""
"Make sure the package builds on your platform, using @code{guix build "
"@var{package}}."
msgstr ""

#. type: enumerate
#: doc/contributing.texi:971
msgid ""
"We recommend you also try building the package on other supported "
"platforms.  As you may not have access to actual hardware platforms, we "
"recommend using the @code{qemu-binfmt-service-type} to emulate them.  In "
"order to enable it, add the following service to the list of services in "
"your @code{operating-system} configuration:"
msgstr ""

#. type: lisp
#: doc/contributing.texi:977
#, no-wrap
msgid ""
"(service qemu-binfmt-service-type\n"
" (qemu-binfmt-configuration\n"
"   (platforms (lookup-qemu-platforms \"arm\" \"aarch64\"))\n"
"   (guix-support? #t)))\n"
msgstr ""

#. type: enumerate
#: doc/contributing.texi:980
msgid "Then reconfigure your system."
msgstr ""

#. type: enumerate
#: doc/contributing.texi:985
msgid ""
"You can then build packages for different platforms by specifying the "
"@code{--system} option.  For example, to build the \"hello\" package for the "
"armhf, aarch64, or mips64 architectures, you would run the following "
"commands, respectively:"
msgstr ""

#. type: example
#: doc/contributing.texi:988
#, no-wrap
msgid ""
"guix build --system=armhf-linux --rounds=2 hello\n"
"guix build --system=aarch64-linux --rounds=2 hello\n"
msgstr ""

#. type: cindex
#: doc/contributing.texi:991
#, no-wrap
msgid "bundling"
msgstr ""

#. type: enumerate
#: doc/contributing.texi:994
msgid ""
"Make sure the package does not use bundled copies of software already "
"available as separate packages."
msgstr ""

#. type: enumerate
#: doc/contributing.texi:1003
msgid ""
"Sometimes, packages include copies of the source code of their dependencies "
"as a convenience for users.  However, as a distribution, we want to make "
"sure that such packages end up using the copy we already have in the "
"distribution, if there is one.  This improves resource usage (the dependency "
"is built and stored only once), and allows the distribution to make "
"transverse changes such as applying security updates for a given software "
"package in a single place and have them affect the whole system---something "
"that bundled copies prevent."
msgstr ""

#. type: enumerate
#: doc/contributing.texi:1012
msgid ""
"Take a look at the profile reported by @command{guix size} (@pxref{Invoking "
"guix size}).  This will allow you to notice references to other packages "
"unwillingly retained.  It may also help determine whether to split the "
"package (@pxref{Packages with Multiple Outputs}), and which optional "
"dependencies should be used.  In particular, avoid adding @code{texlive} as "
"a dependency: because of its extreme size, use @code{texlive-tiny} or "
"@code{texlive-union} instead."
msgstr ""

#. type: enumerate
#: doc/contributing.texi:1017
msgid ""
"For important changes, check that dependent package (if applicable) are not "
"affected by the change; @code{guix refresh --list-dependent @var{package}} "
"will help you do that (@pxref{Invoking guix refresh})."
msgstr ""

#. type: cindex
#: doc/contributing.texi:1019
#, no-wrap
msgid "branching strategy"
msgstr ""

#. type: cindex
#: doc/contributing.texi:1020
#, no-wrap
msgid "rebuild scheduling strategy"
msgstr ""

#. type: enumerate
#: doc/contributing.texi:1023
msgid ""
"Depending on the number of dependent packages and thus the amount of "
"rebuilding induced, commits go to different branches, along these lines:"
msgstr ""

#. type: item
#: doc/contributing.texi:1025
#, no-wrap
msgid "300 dependent packages or less"
msgstr ""

#. type: table
#: doc/contributing.texi:1027
msgid "@code{master} branch (non-disruptive changes)."
msgstr ""

#. type: item
#: doc/contributing.texi:1028
#, no-wrap
msgid "between 300 and 1,800 dependent packages"
msgstr ""

#. type: table
#: doc/contributing.texi:1033
msgid ""
"@code{staging} branch (non-disruptive changes).  This branch is intended to "
"be merged in @code{master} every 6 weeks or so.  Topical changes (e.g., an "
"update of the GNOME stack) can instead go to a specific branch (say, "
"@code{gnome-updates})."
msgstr ""

#. type: item
#: doc/contributing.texi:1034
#, no-wrap
msgid "more than 1,800 dependent packages"
msgstr ""

#. type: table
#: doc/contributing.texi:1038
msgid ""
"@code{core-updates} branch (may include major and potentially disruptive "
"changes).  This branch is intended to be merged in @code{master} every 6 "
"months or so."
msgstr ""

#. type: enumerate
#: doc/contributing.texi:1045
msgid ""
"All these branches are @uref{@value{SUBSTITUTE-URL}, tracked by our build "
"farm} and merged into @code{master} once everything has been successfully "
"built.  This allows us to fix issues before they hit users, and to reduce "
"the window during which pre-built binaries are not available."
msgstr ""

#. type: enumerate
#: doc/contributing.texi:1052
msgid ""
"Generally, branches other than @code{master} are considered @emph{frozen} if "
"there has been a recent evaluation, or there is a corresponding @code{-next} "
"branch.  Please ask on the mailing list or IRC if unsure where to place a "
"patch."
msgstr ""

#. type: cindex
#: doc/contributing.texi:1054
#, no-wrap
msgid "determinism, of build processes"
msgstr ""

#. type: cindex
#: doc/contributing.texi:1055
#, no-wrap
msgid "reproducible builds, checking"
msgstr ""

#. type: enumerate
#: doc/contributing.texi:1059
msgid ""
"Check whether the package's build process is deterministic.  This typically "
"means checking whether an independent build of the package yields the exact "
"same result that you obtained, bit for bit."
msgstr ""

#. type: enumerate
#: doc/contributing.texi:1062
msgid ""
"A simple way to do that is by building the same package several times in a "
"row on your machine (@pxref{Invoking guix build}):"
msgstr ""

#. type: example
#: doc/contributing.texi:1065
#, no-wrap
msgid "guix build --rounds=2 my-package\n"
msgstr ""

#. type: enumerate
#: doc/contributing.texi:1069
msgid ""
"This is enough to catch a class of common non-determinism issues, such as "
"timestamps or randomly-generated output in the build result."
msgstr ""

#. type: enumerate
#: doc/contributing.texi:1079
msgid ""
"Another option is to use @command{guix challenge} (@pxref{Invoking guix "
"challenge}).  You may run it once the package has been committed and built "
"by @code{@value{SUBSTITUTE-SERVER}} to check whether it obtains the same "
"result as you did.  Better yet: Find another machine that can build it and "
"run @command{guix publish}.  Since the remote build machine is likely "
"different from yours, this can catch non-determinism issues related to the "
"hardware---e.g., use of different instruction set extensions---or to the "
"operating system kernel---e.g., reliance on @code{uname} or @file{/proc} "
"files."
msgstr ""

#. type: enumerate
#: doc/contributing.texi:1085
msgid ""
"When writing documentation, please use gender-neutral wording when referring "
"to people, such as @uref{https://en.wikipedia.org/wiki/Singular_they, "
"singular ``they''@comma{} ``their''@comma{} ``them''}, and so forth."
msgstr ""

#. type: enumerate
#: doc/contributing.texi:1089
msgid ""
"Verify that your patch contains only one set of related changes.  Bundling "
"unrelated changes together makes reviewing harder and slower."
msgstr ""

#. type: enumerate
#: doc/contributing.texi:1092
msgid ""
"Examples of unrelated changes include the addition of several packages, or a "
"package update along with fixes to that package."
msgstr ""

#. type: enumerate
#: doc/contributing.texi:1097
msgid ""
"Please follow our code formatting rules, possibly running the @command{etc/"
"indent-code.el} script to do that automatically for you (@pxref{Formatting "
"Code})."
msgstr ""

#. type: enumerate
#: doc/contributing.texi:1105
msgid ""
"When possible, use mirrors in the source URL (@pxref{Invoking guix "
"download}).  Use reliable URLs, not generated ones.  For instance, GitHub "
"archives are not necessarily identical from one generation to the next, so "
"in this case it's often better to clone the repository.  Don't use the "
"@command{name} field in the URL: it is not very useful and if the name "
"changes, the URL will probably be wrong."
msgstr ""

#. type: enumerate
#: doc/contributing.texi:1109
msgid ""
"Check if Guix builds (@pxref{Building from Git}) and address the warnings, "
"especially those about use of undefined symbols."
msgstr ""

#. type: enumerate
#: doc/contributing.texi:1112
msgid ""
"Make sure your changes do not break Guix and simulate a @code{guix pull} "
"with:"
msgstr ""

#. type: example
#: doc/contributing.texi:1114
#, no-wrap
msgid "guix pull --url=/path/to/your/checkout --profile=/tmp/guix.master\n"
msgstr ""

#. type: Plain text
#: doc/contributing.texi:1127
msgid ""
"When posting a patch to the mailing list, use @samp{[PATCH] @dots{}} as a "
"subject, if your patch is to be applied on a branch other than "
"@code{master}, say @code{core-updates}, specify it in the subject like "
"@samp{[PATCH core-updates] @dots{}}.  You may use your email client or the "
"@command{git send-email} command (@pxref{Sending a Patch Series}).  We "
"prefer to get patches in plain text messages, either inline or as MIME "
"attachments.  You are advised to pay attention if your email client changes "
"anything like line breaks or indentation which could potentially break the "
"patches."
msgstr ""

#. type: Plain text
#: doc/contributing.texi:1130
msgid ""
"When a bug is resolved, please close the thread by sending an email to "
"@email{@var{NNN}-done@@debbugs.gnu.org}."
msgstr ""

#. type: anchor{#1}
#: doc/contributing.texi:1131 doc/contributing.texi:1133
#, no-wrap
msgid "Sending a Patch Series"
msgstr ""

#. type: cindex
#: doc/contributing.texi:1133
#, no-wrap
msgid "patch series"
msgstr ""

#. type: code{#1}
#: doc/contributing.texi:1134
#, no-wrap
msgid "git send-email"
msgstr ""

#. type: code{#1}
#: doc/contributing.texi:1135
#, no-wrap
msgid "git-send-email"
msgstr ""

#. type: Plain text
#: doc/contributing.texi:1145
msgid ""
"When sending a patch series (e.g., using @code{git send-email}), please "
"first send one message to @email{guix-patches@@gnu.org}, and then send "
"subsequent patches to @email{@var{NNN}@@debbugs.gnu.org} to make sure they "
"are kept together.  See @uref{https://debbugs.gnu.org/Advanced.html, the "
"Debbugs documentation} for more information.  You can install @command{git "
"send-email} with @command{guix install git:send-email}."
msgstr ""

#. type: cindex
#: doc/contributing.texi:1149
#, no-wrap
msgid "bug reports, tracking"
msgstr ""

#. type: cindex
#: doc/contributing.texi:1150
#, no-wrap
msgid "patch submissions, tracking"
msgstr ""

#. type: cindex
#: doc/contributing.texi:1151
#, no-wrap
msgid "issue tracking"
msgstr ""

#. type: cindex
#: doc/contributing.texi:1152
#, no-wrap
msgid "Debbugs, issue tracking system"
msgstr ""

#. type: Plain text
#: doc/contributing.texi:1159
msgid ""
"Bug reports and patch submissions are currently tracked using the Debbugs "
"instance at @uref{https://bugs.gnu.org}.  Bug reports are filed against the "
"@code{guix} ``package'' (in Debbugs parlance), by sending email to "
"@email{bug-guix@@gnu.org}, while patch submissions are filed against the "
"@code{guix-patches} package by sending email to @email{guix-patches@@gnu."
"org} (@pxref{Submitting Patches})."
msgstr ""

#. type: Plain text
#: doc/contributing.texi:1162
msgid ""
"A web interface (actually @emph{two} web interfaces!) are available to "
"browse issues:"
msgstr ""

#. type: itemize
#: doc/contributing.texi:1171
msgid ""
"@url{https://issues.guix.gnu.org} provides a pleasant interface@footnote{The "
"web interface at @url{https://issues.guix.gnu.org} is powered by Mumi, a "
"nice piece of software written in Guile, and you can help! See @url{https://"
"git.elephly.net/gitweb.cgi?p=software/mumi.git}.} to browse bug reports and "
"patches, and to participate in discussions;"
msgstr ""

#. type: itemize
#: doc/contributing.texi:1173
msgid "@url{https://bugs.gnu.org/guix} lists bug reports;"
msgstr ""

#. type: itemize
#: doc/contributing.texi:1175
msgid "@url{https://bugs.gnu.org/guix-patches} lists patch submissions."
msgstr ""

#. type: Plain text
#: doc/contributing.texi:1180
msgid ""
"To view discussions related to issue number @var{n}, go to "
"@indicateurl{https://issues.guix.gnu.org/@var{n}} or @indicateurl{https://"
"bugs.gnu.org/@var{n}}."
msgstr ""

#. type: Plain text
#: doc/contributing.texi:1183
msgid ""
"If you use Emacs, you may find it more convenient to interact with issues "
"using @file{debbugs.el}, which you can install with:"
msgstr ""

#. type: example
#: doc/contributing.texi:1186
#, no-wrap
msgid "guix install emacs-debbugs\n"
msgstr ""

#. type: Plain text
#: doc/contributing.texi:1189
msgid "For example, to list all open issues on @code{guix-patches}, hit:"
msgstr ""

#. type: example
#: doc/contributing.texi:1192
#, no-wrap
msgid "@kbd{C-u} @kbd{M-x} debbugs-gnu @kbd{RET} @kbd{RET} guix-patches @kbd{RET} n y\n"
msgstr ""

#. type: Plain text
#: doc/contributing.texi:1196
msgid ""
"@xref{Top,,, debbugs-ug, Debbugs User Guide}, for more information on this "
"nifty tool!"
msgstr ""

#. type: cindex
#: doc/contributing.texi:1200
#, no-wrap
msgid "commit access, for developers"
msgstr ""

#. type: Plain text
#: doc/contributing.texi:1204
msgid ""
"For frequent contributors, having write access to the repository is "
"convenient.  When you deem it necessary, consider applying for commit access "
"by following these steps:"
msgstr ""

#. type: enumerate
#: doc/contributing.texi:1213
msgid ""
"Find three committers who would vouch for you.  You can view the list of "
"committers at @url{https://savannah.gnu.org/project/memberlist.php?"
"group=guix}.  Each of them should email a statement to @email{guix-"
"maintainers@@gnu.org} (a private alias for the collective of maintainers), "
"signed with their OpenPGP key."
msgstr ""

#. type: enumerate
#: doc/contributing.texi:1219
msgid ""
"Committers are expected to have had some interactions with you as a "
"contributor and to be able to judge whether you are sufficiently familiar "
"with the project's practices.  It is @emph{not} a judgment on the value of "
"your work, so a refusal should rather be interpreted as ``let's try again "
"later''."
msgstr ""

#. type: enumerate
#: doc/contributing.texi:1226
msgid ""
"Send @email{guix-maintainers@@gnu.org} a message stating your intent, "
"listing the three committers who support your application, signed with the "
"OpenPGP key you will use to sign commits, and giving its fingerprint (see "
"below).  See @uref{https://emailselfdefense.fsf.org/en/}, for an "
"introduction to public-key cryptography with GnuPG."
msgstr ""

#. type: enumerate
#: doc/contributing.texi:1232
msgid ""
"Set up GnuPG such that it never uses the SHA1 hash algorithm for digital "
"signatures, which is known to be unsafe since 2019, for instance by adding "
"the following line to @file{~/.gnupg/gpg.conf} (@pxref{GPG Esoteric "
"Options,,, gnupg, The GNU Privacy Guard Manual}):"
msgstr ""

#. type: example
#: doc/contributing.texi:1235
#, no-wrap
msgid "digest-algo sha512\n"
msgstr ""

#. type: enumerate
#: doc/contributing.texi:1240
msgid ""
"Maintainers ultimately decide whether to grant you commit access, usually "
"following your referrals' recommendation."
msgstr ""

#. type: cindex
#: doc/contributing.texi:1242
#, no-wrap
msgid "OpenPGP, signed commits"
msgstr ""

#. type: enumerate
#: doc/contributing.texi:1247
msgid ""
"If and once you've been given access, please send a message to @email{guix-"
"devel@@gnu.org} to say so, again signed with the OpenPGP key you will use to "
"sign commits (do that before pushing your first commit).  That way, everyone "
"can notice and ensure you control that OpenPGP key."
msgstr ""

#. type: quotation
#: doc/contributing.texi:1248
#, no-wrap
msgid "Important"
msgstr ""

#. type: quotation
#: doc/contributing.texi:1250
msgid "Before you can push for the first time, maintainers must:"
msgstr ""

#. type: enumerate
#: doc/contributing.texi:1254
msgid "add your OpenPGP key to the @code{keyring} branch;"
msgstr ""

#. type: enumerate
#: doc/contributing.texi:1257
msgid ""
"add your OpenPGP fingerprint to the @file{.guix-authorizations} file of the "
"branch(es) you will commit to."
msgstr ""

#. type: enumerate
#: doc/contributing.texi:1262
msgid "Make sure to read the rest of this section and... profit!"
msgstr ""

#. type: quotation
#: doc/contributing.texi:1268
msgid ""
"Maintainers are happy to give commit access to people who have been "
"contributing for some time and have a track record---don't be shy and don't "
"underestimate your work!"
msgstr ""

#. type: quotation
#: doc/contributing.texi:1272
msgid ""
"However, note that the project is working towards a more automated patch "
"review and merging system, which, as a consequence, may lead us to have "
"fewer people with commit access to the main repository.  Stay tuned!"
msgstr ""

#. type: Plain text
#: doc/contributing.texi:1277
msgid ""
"If you get commit access, please make sure to follow the policy below "
"(discussions of the policy can take place on @email{guix-devel@@gnu.org})."
msgstr ""

#. type: Plain text
#: doc/contributing.texi:1282
msgid ""
"Non-trivial patches should always be posted to @email{guix-patches@@gnu.org} "
"(trivial patches include fixing typos, etc.).  This mailing list fills the "
"patch-tracking database (@pxref{Tracking Bugs and Patches})."
msgstr ""

#. type: Plain text
#: doc/contributing.texi:1291
msgid ""
"For patches that just add a new package, and a simple one, it's OK to "
"commit, if you're confident (which means you successfully built it in a "
"chroot setup, and have done a reasonable copyright and license auditing).  "
"Likewise for package upgrades, except upgrades that trigger a lot of "
"rebuilds (for example, upgrading GnuTLS or GLib).  We have a mailing list "
"for commit notifications (@email{guix-commits@@gnu.org}), so people can "
"notice.  Before pushing your changes, make sure to run @code{git pull --"
"rebase}."
msgstr ""

#. type: Plain text
#: doc/contributing.texi:1297
msgid ""
"All commits that are pushed to the central repository on Savannah must be "
"signed with an OpenPGP key, and the public key should be uploaded to your "
"user account on Savannah and to public key servers, such as @code{keys."
"openpgp.org}.  To configure Git to automatically sign commits, run:"
msgstr ""

#. type: example
#: doc/contributing.texi:1301
#, no-wrap
msgid ""
"git config commit.gpgsign true\n"
"git config user.signingkey CABBA6EA1DC0FF33\n"
msgstr ""

#. type: Plain text
#: doc/contributing.texi:1306
msgid ""
"You can prevent yourself from accidentally pushing unsigned commits to "
"Savannah by using the pre-push Git hook called located at @file{etc/git/pre-"
"push}:"
msgstr ""

#. type: example
#: doc/contributing.texi:1309
#, no-wrap
msgid "cp etc/git/pre-push .git/hooks/pre-push\n"
msgstr ""

#. type: Plain text
#: doc/contributing.texi:1315
msgid ""
"When pushing a commit on behalf of somebody else, please add a @code{Signed-"
"off-by} line at the end of the commit log message---e.g., with @command{git "
"am --signoff}.  This improves tracking of who did what."
msgstr ""

#. type: Plain text
#: doc/contributing.texi:1319
msgid ""
"When adding channel news entries (@pxref{Channels, Writing Channel News}), "
"make sure they are well-formed by running the following command right before "
"pushing:"
msgstr ""

#. type: example
#: doc/contributing.texi:1322
#, no-wrap
msgid "make check-channel-news\n"
msgstr ""

#. type: Plain text
#: doc/contributing.texi:1328
msgid ""
"For anything else, please post to @email{guix-patches@@gnu.org} and leave "
"time for a review, without committing anything (@pxref{Submitting "
"Patches}).  If you didn’t receive any reply after two weeks, and if you're "
"confident, it's OK to commit."
msgstr ""

#. type: Plain text
#: doc/contributing.texi:1331
msgid ""
"That last part is subject to being adjusted, allowing individuals to commit "
"directly on non-controversial changes on parts they’re familiar with."
msgstr ""

#. type: Plain text
#: doc/contributing.texi:1337
msgid ""
"One last thing: the project keeps moving forward because committers not only "
"push their own awesome changes, but also offer some of their time "
"@emph{reviewing} and pushing other people's changes.  As a committer, you're "
"welcome to use your expertise and commit rights to help other contributors, "
"too!"
msgstr ""

#. type: cindex
#: doc/contributing.texi:1341
#, no-wrap
msgid "update-guix-package, updating the guix package"
msgstr ""

#. type: Plain text
#: doc/contributing.texi:1347
msgid ""
"It is sometimes desirable to update the @code{guix} package itself (the "
"package defined in @code{(gnu packages package-management)}), for example to "
"make new daemon features available for use by the @code{guix-service-type} "
"service type.  In order to simplify this task, the following command can be "
"used:"
msgstr ""

#. type: example
#: doc/contributing.texi:1350
#, no-wrap
msgid "make update-guix-package\n"
msgstr ""

#. type: Plain text
#: doc/contributing.texi:1357
msgid ""
"The @code{update-guix-package} make target will use the last known "
"@emph{commit} corresponding to @code{HEAD} in your Guix checkout, compute "
"the hash of the Guix sources corresponding to that commit and update the "
"@code{commit}, @code{revision} and hash of the @code{guix} package "
"definition."
msgstr ""

#. type: Plain text
#: doc/contributing.texi:1361
msgid ""
"To validate that the updated @code{guix} package hashes are correct and that "
"it can be built successfully, the following command can be run from the "
"directory of your Guix checkout:"
msgstr ""

#. type: example
#: doc/contributing.texi:1364
#, no-wrap
msgid "./pre-inst-env guix build guix\n"
msgstr ""

#. type: Plain text
#: doc/contributing.texi:1369
msgid ""
"To guard against accidentally updating the @code{guix} package to a commit "
"that others can't refer to, a check is made that the commit used has already "
"been pushed to the Savannah-hosted Guix git repository."
msgstr ""

#. type: Plain text
#: doc/contributing.texi:1372
msgid ""
"This check can be disabled, @emph{at your own peril}, by setting the "
"@code{GUIX_ALLOW_ME_TO_USE_PRIVATE_COMMIT} environment variable."
msgstr ""

#. type: Plain text
#: doc/contributing.texi:1375
msgid ""
"To build the resulting 'guix' package when using a private commit, the "
"following command can be used:"
msgstr ""

#. type: example
#: doc/contributing.texi:1378
#, no-wrap
msgid "./pre-inst-env guix build guix --with-git-url=guix=$PWD\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:7
msgid "@documentencoding UTF-8"
msgstr ""

#. type: title
#: doc/guix.texi:7 doc/guix.texi:112
#, no-wrap
msgid "GNU Guix Reference Manual"
msgstr ""

#. type: include
#: doc/guix.texi:10
#, no-wrap
msgid "version.texi"
msgstr ""

#. type: copying
#: doc/guix.texi:85
msgid ""
"Copyright @copyright{} 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 "
"Ludovic Courtès@* Copyright @copyright{} 2013, 2014, 2016 Andreas Enge@* "
"Copyright @copyright{} 2013 Nikita Karetnikov@* Copyright @copyright{} 2014, "
"2015, 2016 Alex Kost@* Copyright @copyright{} 2015, 2016 Mathieu Lirzin@* "
"Copyright @copyright{} 2014 Pierre-Antoine Rault@* Copyright @copyright{} "
"2015 Taylan Ulrich Bayırlı/Kammer@* Copyright @copyright{} 2015, 2016, 2017, "
"2019, 2020 Leo Famulari@* Copyright @copyright{} 2015, 2016, 2017, 2018, "
"2019, 2020 Ricardo Wurmus@* Copyright @copyright{} 2016 Ben Woodcroft@* "
"Copyright @copyright{} 2016, 2017, 2018 Chris Marusich@* Copyright "
"@copyright{} 2016, 2017, 2018, 2019, 2020 Efraim Flashner@* Copyright "
"@copyright{} 2016 John Darrington@* Copyright @copyright{} 2016, 2017 Nikita "
"Gillmann@* Copyright @copyright{} 2016, 2017, 2018, 2019, 2020 Jan "
"Nieuwenhuizen@* Copyright @copyright{} 2016, 2017, 2018, 2019, 2020 Julien "
"Lepiller@* Copyright @copyright{} 2016 Alex ter Weele@* Copyright "
"@copyright{} 2016, 2017, 2018, 2019 Christopher Baines@* Copyright "
"@copyright{} 2017, 2018, 2019 Clément Lassieur@* Copyright @copyright{} "
"2017, 2018, 2020 Mathieu Othacehe@* Copyright @copyright{} 2017 Federico "
"Beffa@* Copyright @copyright{} 2017, 2018 Carlo Zancanaro@* Copyright "
"@copyright{} 2017 Thomas Danckaert@* Copyright @copyright{} 2017 "
"humanitiesNerd@* Copyright @copyright{} 2017 Christopher Allan Webber@* "
"Copyright @copyright{} 2017, 2018, 2019, 2020 Marius Bakke@* Copyright "
"@copyright{} 2017, 2019, 2020 Hartmut Goebel@* Copyright @copyright{} 2017, "
"2019, 2020 Maxim Cournoyer@* Copyright @copyright{} 2017, 2018, 2019, 2020 "
"Tobias Geerinckx-Rice@* Copyright @copyright{} 2017 George Clemmer@* "
"Copyright @copyright{} 2017 Andy Wingo@* Copyright @copyright{} 2017, 2018, "
"2019, 2020 Arun Isaac@* Copyright @copyright{} 2017 nee@* Copyright "
"@copyright{} 2018 Rutger Helling@* Copyright @copyright{} 2018 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 Florian Pelz@* Copyright "
"@copyright{} 2018 Laura Lazzati@* Copyright @copyright{} 2018 Alex Vong@* "
"Copyright @copyright{} 2019 Josh Holland@* Copyright @copyright{} 2019, 2020 "
"Diego Nicola Barbato@* Copyright @copyright{} 2019 Ivan Petkov@* Copyright "
"@copyright{} 2019 Jakob L. Kreuze@* Copyright @copyright{} 2019 Kyle "
"Andrews@* Copyright @copyright{} 2019 Alex Griffin@* Copyright @copyright{} "
"2019 Guillaume Le Vaillant@* Copyright @copyright{} 2020 Leo Prikler@* "
"Copyright @copyright{} 2019, 2020 Simon Tournier@* Copyright @copyright{} "
"2020 Wiktor Żelazny@* Copyright @copyright{} 2020 Damien Cassou@* Copyright "
"@copyright{} 2020 Jakub Kądziołka@* Copyright @copyright{} 2020 Jack Hill@* "
"Copyright @copyright{} 2020 Naga Malleswari@* Copyright @copyright{} 2020 "
"Brice Waegeneire@* Copyright @copyright{} 2020 R Veera Kumar@* Copyright "
"@copyright{} 2020 Pierre Langlois@* Copyright @copyright{} 2020 pinoaffe@* "
"Copyright @copyright{} 2020 André Batista@* Copyright @copyright{} 2020 "
"Alexandru-Sergiu Marton@*"
msgstr ""

#. type: copying
#: doc/guix.texi:92
msgid ""
"Permission is granted to copy, distribute and/or modify this document under "
"the terms of the GNU Free Documentation License, Version 1.3 or any later "
"version published by the Free Software Foundation; with no Invariant "
"Sections, no Front-Cover Texts, and no Back-Cover Texts.  A copy of the "
"license is included in the section entitled ``GNU Free Documentation "
"License''."
msgstr ""

#. type: dircategory
#: doc/guix.texi:94
#, no-wrap
msgid "System administration"
msgstr ""

#. type: menuentry
#: doc/guix.texi:102
msgid "Guix: (guix)"
msgstr ""

#. type: menuentry
#: doc/guix.texi:102
msgid "Manage installed software and system configuration."
msgstr ""

#. type: menuentry
#: doc/guix.texi:102
msgid "guix package: (guix)Invoking guix package"
msgstr ""

#. type: menuentry
#: doc/guix.texi:102
msgid "Installing, removing, and upgrading packages."
msgstr ""

#. type: menuentry
#: doc/guix.texi:102
msgid "guix gc: (guix)Invoking guix gc"
msgstr ""

#. type: menuentry
#: doc/guix.texi:102
msgid "Reclaiming unused disk space."
msgstr ""

#. type: menuentry
#: doc/guix.texi:102
msgid "guix pull: (guix)Invoking guix pull"
msgstr ""

#. type: menuentry
#: doc/guix.texi:102
msgid "Update the list of available packages."
msgstr ""

#. type: menuentry
#: doc/guix.texi:102
msgid "guix system: (guix)Invoking guix system"
msgstr ""

#. type: menuentry
#: doc/guix.texi:102
msgid "Manage the operating system configuration."
msgstr ""

#. type: menuentry
#: doc/guix.texi:102
msgid "guix deploy: (guix)Invoking guix deploy"
msgstr ""

#. type: menuentry
#: doc/guix.texi:102
msgid "Manage operating system configurations for remote hosts."
msgstr ""

#. type: dircategory
#: doc/guix.texi:104
#, no-wrap
msgid "Software development"
msgstr ""

#. type: menuentry
#: doc/guix.texi:109
msgid "guix environment: (guix)Invoking guix environment"
msgstr ""

#. type: menuentry
#: doc/guix.texi:109
msgid "Building development environments with Guix."
msgstr ""

#. type: menuentry
#: doc/guix.texi:109
msgid "guix build: (guix)Invoking guix build"
msgstr ""

#. type: menuentry
#: doc/guix.texi:109
msgid "Building packages."
msgstr ""

#. type: menuentry
#: doc/guix.texi:109
msgid "guix pack: (guix)Invoking guix pack"
msgstr ""

#. type: menuentry
#: doc/guix.texi:109
msgid "Creating binary bundles."
msgstr ""

#. type: subtitle
#: doc/guix.texi:113
#, no-wrap
msgid "Using the GNU Guix Functional Package Manager"
msgstr ""

#. type: author
#: doc/guix.texi:114
#, no-wrap
msgid "The GNU Guix Developers"
msgstr ""

#. type: titlepage
#: doc/guix.texi:120
msgid "Edition @value{EDITION} @* @value{UPDATED} @*"
msgstr ""

#. type: node
#: doc/guix.texi:127
#, no-wrap
msgid "Top"
msgstr ""

#. type: top
#: doc/guix.texi:128
#, no-wrap
msgid "GNU Guix"
msgstr ""

#. type: Plain text
#: doc/guix.texi:132
msgid ""
"This document describes GNU Guix version @value{VERSION}, a functional "
"package management tool written for the GNU system."
msgstr ""

#. type: Plain text
#: doc/guix.texi:144
msgid ""
"This manual is also available in Simplified Chinese (@pxref{Top,,, guix."
"zh_CN, GNU Guix参考手册}), French (@pxref{Top,,, guix.fr, Manuel de "
"référence de GNU Guix}), German (@pxref{Top,,, guix.de, Referenzhandbuch zu "
"GNU Guix}), Spanish (@pxref{Top,,, guix.es, Manual de referencia de GNU "
"Guix}), and Russian (@pxref{Top,,, guix.ru, Руководство GNU Guix}).  If you "
"would like to translate it in your native language, consider joining the "
"@uref{https://translationproject.org/domain/guix-manual.html, Translation "
"Project}."
msgstr ""

#. type: chapter
#: doc/guix.texi:162 doc/guix.texi:172 doc/guix.texi:372 doc/guix.texi:373
#, no-wrap
msgid "Introduction"
msgstr ""

#. type: menuentry
#: doc/guix.texi:162
msgid "What is Guix about?"
msgstr ""

#. type: chapter
#: doc/guix.texi:162 doc/guix.texi:177 doc/guix.texi:542 doc/guix.texi:543
#, no-wrap
msgid "Installation"
msgstr ""

#. type: menuentry
#: doc/guix.texi:162
msgid "Installing Guix."
msgstr ""

#. type: chapter
#: doc/guix.texi:162 doc/guix.texi:193 doc/guix.texi:1903 doc/guix.texi:1904
#, no-wrap
msgid "System Installation"
msgstr ""

#. type: menuentry
#: doc/guix.texi:162
msgid "Installing the whole operating system."
msgstr ""

#. type: chapter
#: doc/guix.texi:162 doc/guix.texi:2647 doc/guix.texi:2648
#, no-wrap
msgid "Getting Started"
msgstr ""

#. type: menuentry
#: doc/guix.texi:162
msgid "Your first steps."
msgstr ""

#. type: chapter
#: doc/guix.texi:162 doc/guix.texi:210 doc/guix.texi:2851 doc/guix.texi:2852
#, no-wrap
msgid "Package Management"
msgstr ""

#. type: menuentry
#: doc/guix.texi:162
msgid "Package installation, upgrade, etc."
msgstr ""

#. type: chapter
#: doc/guix.texi:162 doc/guix.texi:233 doc/guix.texi:4854 doc/guix.texi:4855
#, no-wrap
msgid "Channels"
msgstr ""

#. type: menuentry
#: doc/guix.texi:162
msgid "Customizing the package collection."
msgstr ""

#. type: chapter
#: doc/guix.texi:162 doc/guix.texi:246 doc/guix.texi:5357 doc/guix.texi:5358
#, no-wrap
msgid "Development"
msgstr ""

#. type: menuentry
#: doc/guix.texi:162
msgid "Guix-aided software development."
msgstr ""

#. type: chapter
#: doc/guix.texi:162 doc/guix.texi:253 doc/guix.texi:6177 doc/guix.texi:6178
#, no-wrap
msgid "Programming Interface"
msgstr ""

#. type: menuentry
#: doc/guix.texi:162
msgid "Using Guix in Scheme."
msgstr ""

#. type: chapter
#: doc/guix.texi:162 doc/guix.texi:272 doc/guix.texi:9832 doc/guix.texi:9833
#, no-wrap
msgid "Utilities"
msgstr ""

#. type: menuentry
#: doc/guix.texi:162
msgid "Package management commands."
msgstr ""

#. type: chapter
#: doc/guix.texi:162 doc/guix.texi:297 doc/guix.texi:12862 doc/guix.texi:12863
#, no-wrap
msgid "System Configuration"
msgstr ""

#. type: menuentry
#: doc/guix.texi:162
msgid "Configuring the operating system."
msgstr ""

#. type: chapter
#: doc/guix.texi:162 doc/guix.texi:32163 doc/guix.texi:32164
#, no-wrap
msgid "Documentation"
msgstr ""

#. type: menuentry
#: doc/guix.texi:162
msgid "Browsing software user manuals."
msgstr ""

#. type: chapter
#: doc/guix.texi:162 doc/guix.texi:359 doc/guix.texi:32227 doc/guix.texi:32228
#, no-wrap
msgid "Installing Debugging Files"
msgstr ""

#. type: menuentry
#: doc/guix.texi:162
msgid "Feeding the debugger."
msgstr ""

#. type: chapter
#: doc/guix.texi:162 doc/guix.texi:32368 doc/guix.texi:32369
#, no-wrap
msgid "Security Updates"
msgstr ""

#. type: menuentry
#: doc/guix.texi:162
msgid "Deploying security fixes quickly."
msgstr ""

#. type: chapter
#: doc/guix.texi:162 doc/guix.texi:364 doc/guix.texi:32483 doc/guix.texi:32484
#, no-wrap
msgid "Bootstrapping"
msgstr ""

#. type: menuentry
#: doc/guix.texi:162
msgid "GNU/Linux built from scratch."
msgstr ""

#. type: node
#: doc/guix.texi:162 doc/guix.texi:32770
#, no-wrap
msgid "Porting"
msgstr ""

#. type: menuentry
#: doc/guix.texi:162
msgid "Targeting another platform or kernel."
msgstr ""

#. type: menuentry
#: doc/guix.texi:162
msgid "Your help needed!"
msgstr ""

#. type: chapter
#: doc/guix.texi:167 doc/guix.texi:32818 doc/guix.texi:32819
#, no-wrap
msgid "Acknowledgments"
msgstr ""

#. type: menuentry
#: doc/guix.texi:167
msgid "Thanks!"
msgstr ""

#. type: appendix
#: doc/guix.texi:167 doc/guix.texi:32840 doc/guix.texi:32841
#, no-wrap
msgid "GNU Free Documentation License"
msgstr ""

#. type: menuentry
#: doc/guix.texi:167
msgid "The license of this manual."
msgstr ""

#. type: unnumbered
#: doc/guix.texi:167 doc/guix.texi:32846 doc/guix.texi:32847
#, no-wrap
msgid "Concept Index"
msgstr ""

#. type: menuentry
#: doc/guix.texi:167
msgid "Concepts."
msgstr ""

#. type: unnumbered
#: doc/guix.texi:167 doc/guix.texi:32850 doc/guix.texi:32851
#, no-wrap
msgid "Programming Index"
msgstr ""

#. type: menuentry
#: doc/guix.texi:167
msgid "Data types, functions, and variables."
msgstr ""

#. type: menuentry
#: doc/guix.texi:170
msgid "--- The Detailed Node Listing ---"
msgstr ""

#. type: section
#: doc/guix.texi:175 doc/guix.texi:399 doc/guix.texi:401 doc/guix.texi:402
#, no-wrap
msgid "Managing Software the Guix Way"
msgstr ""

#. type: menuentry
#: doc/guix.texi:175 doc/guix.texi:399
msgid "What's special."
msgstr ""

#. type: section
#: doc/guix.texi:175 doc/guix.texi:399 doc/guix.texi:456 doc/guix.texi:457
#, no-wrap
msgid "GNU Distribution"
msgstr ""

#. type: menuentry
#: doc/guix.texi:175 doc/guix.texi:399
msgid "The packages and tools."
msgstr ""

#. type: section
#: doc/guix.texi:185 doc/guix.texi:582 doc/guix.texi:584 doc/guix.texi:585
#, no-wrap
msgid "Binary Installation"
msgstr ""

#. type: menuentry
#: doc/guix.texi:185 doc/guix.texi:582
msgid "Getting Guix running in no time!"
msgstr ""

#. type: section
#: doc/guix.texi:185 doc/guix.texi:582 doc/guix.texi:802 doc/guix.texi:803
#, no-wrap
msgid "Requirements"
msgstr ""

#. type: menuentry
#: doc/guix.texi:185 doc/guix.texi:582
msgid "Software needed to build and run Guix."
msgstr ""

#. type: section
#: doc/guix.texi:185 doc/guix.texi:582 doc/guix.texi:879 doc/guix.texi:880
#, no-wrap
msgid "Running the Test Suite"
msgstr ""

#. type: menuentry
#: doc/guix.texi:185 doc/guix.texi:582
msgid "Testing Guix."
msgstr ""

#. type: section
#: doc/guix.texi:185 doc/guix.texi:187 doc/guix.texi:582 doc/guix.texi:944
#: doc/guix.texi:945
#, no-wrap
msgid "Setting Up the Daemon"
msgstr ""

#. type: menuentry
#: doc/guix.texi:185 doc/guix.texi:582
msgid "Preparing the build daemon's environment."
msgstr ""

#. type: node
#: doc/guix.texi:185 doc/guix.texi:582 doc/guix.texi:1409
#, no-wrap
msgid "Invoking guix-daemon"
msgstr ""

#. type: menuentry
#: doc/guix.texi:185 doc/guix.texi:582
msgid "Running the build daemon."
msgstr ""

#. type: section
#: doc/guix.texi:185 doc/guix.texi:582 doc/guix.texi:1681 doc/guix.texi:1682
#, no-wrap
msgid "Application Setup"
msgstr ""

#. type: menuentry
#: doc/guix.texi:185 doc/guix.texi:582
msgid "Application-specific setup."
msgstr ""

#. type: section
#: doc/guix.texi:185 doc/guix.texi:582 doc/guix.texi:1866 doc/guix.texi:1867
#, no-wrap
msgid "Upgrading Guix"
msgstr ""

#. type: menuentry
#: doc/guix.texi:185 doc/guix.texi:582
msgid "Upgrading Guix and its build daemon."
msgstr ""

#. type: subsection
#: doc/guix.texi:191 doc/guix.texi:964 doc/guix.texi:966 doc/guix.texi:967
#, no-wrap
msgid "Build Environment Setup"
msgstr ""

#. type: menuentry
#: doc/guix.texi:191 doc/guix.texi:964
msgid "Preparing the isolated build environment."
msgstr ""

#. type: node
#: doc/guix.texi:191 doc/guix.texi:964 doc/guix.texi:1085
#, no-wrap
msgid "Daemon Offload Setup"
msgstr ""

#. type: menuentry
#: doc/guix.texi:191 doc/guix.texi:964
msgid "Offloading builds to remote machines."
msgstr ""

#. type: subsection
#: doc/guix.texi:191 doc/guix.texi:964 doc/guix.texi:1323 doc/guix.texi:1324
#, no-wrap
msgid "SELinux Support"
msgstr ""

#. type: menuentry
#: doc/guix.texi:191 doc/guix.texi:964
msgid "Using an SELinux policy for the daemon."
msgstr ""

#. type: section
#: doc/guix.texi:203 doc/guix.texi:1359 doc/guix.texi:1937 doc/guix.texi:1939
#: doc/guix.texi:1940
#, no-wrap
msgid "Limitations"
msgstr ""

#. type: menuentry
#: doc/guix.texi:203 doc/guix.texi:1937
msgid "What you can expect."
msgstr ""

#. type: section
#: doc/guix.texi:203 doc/guix.texi:1937 doc/guix.texi:1968 doc/guix.texi:1969
#, no-wrap
msgid "Hardware Considerations"
msgstr ""

#. type: menuentry
#: doc/guix.texi:203 doc/guix.texi:1937
msgid "Supported hardware."
msgstr ""

#. type: section
#: doc/guix.texi:203 doc/guix.texi:1937 doc/guix.texi:2003 doc/guix.texi:2004
#, no-wrap
msgid "USB Stick and DVD Installation"
msgstr ""

#. type: menuentry
#: doc/guix.texi:203 doc/guix.texi:1937
msgid "Preparing the installation medium."
msgstr ""

#. type: section
#: doc/guix.texi:203 doc/guix.texi:1937 doc/guix.texi:2108 doc/guix.texi:2109
#, no-wrap
msgid "Preparing for Installation"
msgstr ""

#. type: menuentry
#: doc/guix.texi:203 doc/guix.texi:1937
msgid "Networking, partitioning, etc."
msgstr ""

#. type: section
#: doc/guix.texi:203 doc/guix.texi:1937 doc/guix.texi:2131 doc/guix.texi:2132
#, no-wrap
msgid "Guided Graphical Installation"
msgstr ""

#. type: menuentry
#: doc/guix.texi:203 doc/guix.texi:1937
msgid "Easy graphical installation."
msgstr ""

#. type: section
#: doc/guix.texi:203 doc/guix.texi:205 doc/guix.texi:1937 doc/guix.texi:2162
#: doc/guix.texi:2163
#, no-wrap
msgid "Manual Installation"
msgstr ""

#. type: menuentry
#: doc/guix.texi:203 doc/guix.texi:1937
msgid "Manual installation for wizards."
msgstr ""

#. type: section
#: doc/guix.texi:203 doc/guix.texi:1937 doc/guix.texi:2530 doc/guix.texi:2531
#, no-wrap
msgid "After System Installation"
msgstr ""

#. type: menuentry
#: doc/guix.texi:203 doc/guix.texi:1937
msgid "When installation succeeded."
msgstr ""

#. type: node
#: doc/guix.texi:203 doc/guix.texi:1937 doc/guix.texi:2564
#, no-wrap
msgid "Installing Guix in a VM"
msgstr ""

#. type: menuentry
#: doc/guix.texi:203 doc/guix.texi:1937
msgid "Guix System playground."
msgstr ""

#. type: section
#: doc/guix.texi:203 doc/guix.texi:1937 doc/guix.texi:2615 doc/guix.texi:2616
#, no-wrap
msgid "Building the Installation Image"
msgstr ""

#. type: menuentry
#: doc/guix.texi:203 doc/guix.texi:1937
msgid "How this comes to be."
msgstr ""

#. type: node
#: doc/guix.texi:208 doc/guix.texi:2180 doc/guix.texi:2182
#, no-wrap
msgid "Keyboard Layout and Networking and Partitioning"
msgstr ""

#. type: menuentry
#: doc/guix.texi:208 doc/guix.texi:2180
msgid "Initial setup."
msgstr ""

#. type: subsection
#: doc/guix.texi:208 doc/guix.texi:2180 doc/guix.texi:2442 doc/guix.texi:2443
#, no-wrap
msgid "Proceeding with the Installation"
msgstr ""

#. type: menuentry
#: doc/guix.texi:208 doc/guix.texi:2180
msgid "Installing."
msgstr ""

#. type: section
#: doc/guix.texi:221 doc/guix.texi:2883 doc/guix.texi:2885 doc/guix.texi:2886
#, no-wrap
msgid "Features"
msgstr ""

#. type: menuentry
#: doc/guix.texi:221 doc/guix.texi:2883
msgid "How Guix will make your life brighter."
msgstr ""

#. type: node
#: doc/guix.texi:221 doc/guix.texi:2883 doc/guix.texi:2975
#, no-wrap
msgid "Invoking guix package"
msgstr ""

#. type: menuentry
#: doc/guix.texi:221 doc/guix.texi:2883
msgid "Package installation, removal, etc."
msgstr ""

#. type: section
#: doc/guix.texi:221 doc/guix.texi:223 doc/guix.texi:2883 doc/guix.texi:3544
#: doc/guix.texi:3545
#, no-wrap
msgid "Substitutes"
msgstr ""

#. type: menuentry
#: doc/guix.texi:221 doc/guix.texi:2883
msgid "Downloading pre-built binaries."
msgstr ""

#. type: section
#: doc/guix.texi:221 doc/guix.texi:2883 doc/guix.texi:3875 doc/guix.texi:3876
#, no-wrap
msgid "Packages with Multiple Outputs"
msgstr ""

#. type: menuentry
#: doc/guix.texi:221 doc/guix.texi:2883
msgid "Single source package, multiple outputs."
msgstr ""

#. type: node
#: doc/guix.texi:221 doc/guix.texi:2883 doc/guix.texi:3929
#, no-wrap
msgid "Invoking guix gc"
msgstr ""

#. type: menuentry
#: doc/guix.texi:221 doc/guix.texi:2883
msgid "Running the garbage collector."
msgstr ""

#. type: node
#: doc/guix.texi:221 doc/guix.texi:2883 doc/guix.texi:4139
#, no-wrap
msgid "Invoking guix pull"
msgstr ""

#. type: menuentry
#: doc/guix.texi:221 doc/guix.texi:2883
msgid "Fetching the latest Guix and distribution."
msgstr ""

#. type: node
#: doc/guix.texi:221 doc/guix.texi:2883 doc/guix.texi:4386
#, no-wrap
msgid "Invoking guix time-machine"
msgstr ""

#. type: menuentry
#: doc/guix.texi:221 doc/guix.texi:2883
msgid "Running an older revision of Guix."
msgstr ""

#. type: section
#: doc/guix.texi:221 doc/guix.texi:2883 doc/guix.texi:4441 doc/guix.texi:4442
#, no-wrap
msgid "Inferiors"
msgstr ""

#. type: menuentry
#: doc/guix.texi:221 doc/guix.texi:2883
msgid "Interacting with another revision of Guix."
msgstr ""

#. type: node
#: doc/guix.texi:221 doc/guix.texi:2883 doc/guix.texi:4569
#, no-wrap
msgid "Invoking guix describe"
msgstr ""

#. type: menuentry
#: doc/guix.texi:221 doc/guix.texi:2883
msgid "Display information about your Guix revision."
msgstr ""

#. type: node
#: doc/guix.texi:221 doc/guix.texi:2883 doc/guix.texi:4664
#, no-wrap
msgid "Invoking guix archive"
msgstr ""

#. type: menuentry
#: doc/guix.texi:221 doc/guix.texi:2883
msgid "Exporting and importing store files."
msgstr ""

#. type: subsection
#: doc/guix.texi:231 doc/guix.texi:3568 doc/guix.texi:3570 doc/guix.texi:3571
#, no-wrap
msgid "Official Substitute Server"
msgstr ""

#. type: menuentry
#: doc/guix.texi:231 doc/guix.texi:3568
msgid "One particular source of substitutes."
msgstr ""

#. type: subsection
#: doc/guix.texi:231 doc/guix.texi:3568 doc/guix.texi:3599 doc/guix.texi:3600
#, no-wrap
msgid "Substitute Server Authorization"
msgstr ""

#. type: menuentry
#: doc/guix.texi:231 doc/guix.texi:3568
msgid "How to enable or disable substitutes."
msgstr ""

#. type: subsection
#: doc/guix.texi:231 doc/guix.texi:3568 doc/guix.texi:3668 doc/guix.texi:3669
#, no-wrap
msgid "Getting Substitutes from Other Servers"
msgstr ""

#. type: menuentry
#: doc/guix.texi:231 doc/guix.texi:3568
msgid "Substitute diversity."
msgstr ""

#. type: subsection
#: doc/guix.texi:231 doc/guix.texi:3568 doc/guix.texi:3770 doc/guix.texi:3771
#, no-wrap
msgid "Substitute Authentication"
msgstr ""

#. type: menuentry
#: doc/guix.texi:231 doc/guix.texi:3568
msgid "How Guix verifies substitutes."
msgstr ""

#. type: subsection
#: doc/guix.texi:231 doc/guix.texi:3568 doc/guix.texi:3805 doc/guix.texi:3806
#, no-wrap
msgid "Proxy Settings"
msgstr ""

#. type: menuentry
#: doc/guix.texi:231 doc/guix.texi:3568
msgid "How to get substitutes via proxy."
msgstr ""

#. type: subsection
#: doc/guix.texi:231 doc/guix.texi:3568 doc/guix.texi:3817 doc/guix.texi:3818
#, no-wrap
msgid "Substitution Failure"
msgstr ""

#. type: menuentry
#: doc/guix.texi:231 doc/guix.texi:3568
msgid "What happens when substitution fails."
msgstr ""

#. type: subsection
#: doc/guix.texi:231 doc/guix.texi:3568 doc/guix.texi:3845 doc/guix.texi:3846
#, no-wrap
msgid "On Trusting Binaries"
msgstr ""

#. type: menuentry
#: doc/guix.texi:231 doc/guix.texi:3568
msgid "How can you trust that binary blob?"
msgstr ""

#. type: section
#: doc/guix.texi:244 doc/guix.texi:4884 doc/guix.texi:4886 doc/guix.texi:4887
#, no-wrap
msgid "Specifying Additional Channels"
msgstr ""

#. type: menuentry
#: doc/guix.texi:244 doc/guix.texi:4884
msgid "Extending the package collection."
msgstr ""

#. type: section
#: doc/guix.texi:244 doc/guix.texi:4884 doc/guix.texi:4936 doc/guix.texi:4937
#, no-wrap
msgid "Using a Custom Guix Channel"
msgstr ""

#. type: menuentry
#: doc/guix.texi:244 doc/guix.texi:4884
msgid "Using a customized Guix."
msgstr ""

#. type: section
#: doc/guix.texi:244 doc/guix.texi:4884 doc/guix.texi:4958 doc/guix.texi:4959
#, no-wrap
msgid "Replicating Guix"
msgstr ""

#. type: menuentry
#: doc/guix.texi:244 doc/guix.texi:4884
msgid "Running the @emph{exact same} Guix."
msgstr ""

#. type: section
#: doc/guix.texi:244 doc/guix.texi:4884 doc/guix.texi:4999 doc/guix.texi:5000
#, no-wrap
msgid "Channel Authentication"
msgstr ""

#. type: menuentry
#: doc/guix.texi:244 doc/guix.texi:4884
msgid "How Guix verifies what it fetches."
msgstr ""

#. type: section
#: doc/guix.texi:244 doc/guix.texi:4884 doc/guix.texi:5039 doc/guix.texi:5040
#, no-wrap
msgid "Creating a Channel"
msgstr ""

#. type: menuentry
#: doc/guix.texi:244 doc/guix.texi:4884
msgid "How to write your custom channel."
msgstr ""

#. type: section
#: doc/guix.texi:244 doc/guix.texi:4884 doc/guix.texi:5106 doc/guix.texi:5107
#, no-wrap
msgid "Package Modules in a Sub-directory"
msgstr ""

#. type: menuentry
#: doc/guix.texi:244 doc/guix.texi:4884
msgid "Specifying the channel's package modules location."
msgstr ""

#. type: section
#: doc/guix.texi:244 doc/guix.texi:4884 doc/guix.texi:5120 doc/guix.texi:5121
#, no-wrap
msgid "Declaring Channel Dependencies"
msgstr ""

#. type: menuentry
#: doc/guix.texi:244 doc/guix.texi:4884
msgid "How to depend on other channels."
msgstr ""

#. type: section
#: doc/guix.texi:244 doc/guix.texi:4884 doc/guix.texi:5162 doc/guix.texi:5163
#, no-wrap
msgid "Specifying Channel Authorizations"
msgstr ""

#. type: menuentry
#: doc/guix.texi:244 doc/guix.texi:4884
msgid "Defining channel authors authorizations."
msgstr ""

#. type: section
#: doc/guix.texi:244 doc/guix.texi:4884 doc/guix.texi:5263 doc/guix.texi:5264
#, no-wrap
msgid "Primary URL"
msgstr ""

#. type: menuentry
#: doc/guix.texi:244 doc/guix.texi:4884
msgid "Distinguishing mirror to original."
msgstr ""

#. type: section
#: doc/guix.texi:244 doc/guix.texi:4884 doc/guix.texi:5286 doc/guix.texi:5287
#, no-wrap
msgid "Writing Channel News"
msgstr ""

#. type: menuentry
#: doc/guix.texi:244 doc/guix.texi:4884
msgid "Communicating information to channel's users."
msgstr ""

#. type: node
#: doc/guix.texi:251 doc/guix.texi:5376 doc/guix.texi:5378
#, no-wrap
msgid "Invoking guix environment"
msgstr ""

#. type: menuentry
#: doc/guix.texi:251 doc/guix.texi:5376
msgid "Setting up development environments."
msgstr ""

#. type: node
#: doc/guix.texi:251 doc/guix.texi:5376 doc/guix.texi:5732
#, no-wrap
msgid "Invoking guix pack"
msgstr ""

#. type: menuentry
#: doc/guix.texi:251 doc/guix.texi:5376
msgid "Creating software bundles."
msgstr ""

#. type: section
#: doc/guix.texi:251 doc/guix.texi:5376 doc/guix.texi:6089 doc/guix.texi:6090
#, no-wrap
msgid "The GCC toolchain"
msgstr ""

#. type: menuentry
#: doc/guix.texi:251 doc/guix.texi:5376
msgid "Working with languages supported by GCC."
msgstr ""

#. type: node
#: doc/guix.texi:251 doc/guix.texi:5376 doc/guix.texi:6115
#, no-wrap
msgid "Invoking guix git authenticate"
msgstr ""

#. type: menuentry
#: doc/guix.texi:251 doc/guix.texi:5376
msgid "Authenticating Git repositories."
msgstr ""

#. type: section
#: doc/guix.texi:265 doc/guix.texi:6217 doc/guix.texi:6219 doc/guix.texi:6220
#, no-wrap
msgid "Package Modules"
msgstr ""

#. type: menuentry
#: doc/guix.texi:265 doc/guix.texi:6217
msgid "Packages from the programmer's viewpoint."
msgstr ""

#. type: section
#: doc/guix.texi:265 doc/guix.texi:267 doc/guix.texi:6217 doc/guix.texi:6281
#: doc/guix.texi:6282
#, no-wrap
msgid "Defining Packages"
msgstr ""

#. type: menuentry
#: doc/guix.texi:265 doc/guix.texi:6217
msgid "Defining new packages."
msgstr ""

#. type: section
#: doc/guix.texi:265 doc/guix.texi:6217 doc/guix.texi:6837 doc/guix.texi:6838
#, no-wrap
msgid "Defining Package Variants"
msgstr ""

#. type: menuentry
#: doc/guix.texi:265 doc/guix.texi:6217
msgid "Customizing packages."
msgstr ""

#. type: section
#: doc/guix.texi:265 doc/guix.texi:6217 doc/guix.texi:7069 doc/guix.texi:7070
#, no-wrap
msgid "Build Systems"
msgstr ""

#. type: menuentry
#: doc/guix.texi:265 doc/guix.texi:6217
msgid "Specifying how packages are built."
msgstr ""

#. type: subsection
#: doc/guix.texi:265 doc/guix.texi:6217 doc/guix.texi:7994 doc/guix.texi:7995
#: doc/guix.texi:8360
#, no-wrap
msgid "Build Phases"
msgstr ""

#. type: menuentry
#: doc/guix.texi:265 doc/guix.texi:6217
msgid "Phases of the build process of a package."
msgstr ""

#. type: section
#: doc/guix.texi:265 doc/guix.texi:6217 doc/guix.texi:8150 doc/guix.texi:8151
#, no-wrap
msgid "Build Utilities"
msgstr ""

#. type: menuentry
#: doc/guix.texi:265 doc/guix.texi:6217
msgid "Helpers for your package definitions and more."
msgstr ""

#. type: section
#: doc/guix.texi:265 doc/guix.texi:6217 doc/guix.texi:8437 doc/guix.texi:8438
#, no-wrap
msgid "The Store"
msgstr ""

#. type: menuentry
#: doc/guix.texi:265 doc/guix.texi:6217
msgid "Manipulating the package store."
msgstr ""

#. type: section
#: doc/guix.texi:265 doc/guix.texi:6217 doc/guix.texi:8590 doc/guix.texi:8591
#, no-wrap
msgid "Derivations"
msgstr ""

#. type: menuentry
#: doc/guix.texi:265 doc/guix.texi:6217
msgid "Low-level interface to package derivations."
msgstr ""

#. type: section
#: doc/guix.texi:265 doc/guix.texi:6217 doc/guix.texi:8784 doc/guix.texi:8785
#, no-wrap
msgid "The Store Monad"
msgstr ""

#. type: menuentry
#: doc/guix.texi:265 doc/guix.texi:6217
msgid "Purely functional interface to the store."
msgstr ""

#. type: section
#: doc/guix.texi:265 doc/guix.texi:6217 doc/guix.texi:9103 doc/guix.texi:9104
#, no-wrap
msgid "G-Expressions"
msgstr ""

#. type: menuentry
#: doc/guix.texi:265 doc/guix.texi:6217
msgid "Manipulating build expressions."
msgstr ""

#. type: node
#: doc/guix.texi:265 doc/guix.texi:6217 doc/guix.texi:9732
#, no-wrap
msgid "Invoking guix repl"
msgstr ""

#. type: menuentry
#: doc/guix.texi:265
msgid "Programming Guix in Guile."
msgstr ""

#. type: node
#: doc/guix.texi:270 doc/guix.texi:6484 doc/guix.texi:6487
#, no-wrap
msgid "package Reference"
msgstr ""

#. type: menuentry
#: doc/guix.texi:270 doc/guix.texi:6484
msgid "The package data type."
msgstr ""

#. type: node
#: doc/guix.texi:270 doc/guix.texi:6484 doc/guix.texi:6658
#, no-wrap
msgid "origin Reference"
msgstr ""

#. type: menuentry
#: doc/guix.texi:270 doc/guix.texi:6484
msgid "The origin data type."
msgstr ""

#. type: node
#: doc/guix.texi:288 doc/guix.texi:9856 doc/guix.texi:9858
#, no-wrap
msgid "Invoking guix build"
msgstr ""

#. type: menuentry
#: doc/guix.texi:288 doc/guix.texi:9856
msgid "Building packages from the command line."
msgstr ""

#. type: node
#: doc/guix.texi:288 doc/guix.texi:9856 doc/guix.texi:10637
#, no-wrap
msgid "Invoking guix edit"
msgstr ""

#. type: menuentry
#: doc/guix.texi:288 doc/guix.texi:9856
msgid "Editing package definitions."
msgstr ""

#. type: node
#: doc/guix.texi:288 doc/guix.texi:9856 doc/guix.texi:10667
#, no-wrap
msgid "Invoking guix download"
msgstr ""

#. type: menuentry
#: doc/guix.texi:288 doc/guix.texi:9856
msgid "Downloading a file and printing its hash."
msgstr ""

#. type: node
#: doc/guix.texi:288 doc/guix.texi:9856 doc/guix.texi:10725
#, no-wrap
msgid "Invoking guix hash"
msgstr ""

#. type: menuentry
#: doc/guix.texi:288 doc/guix.texi:9856
msgid "Computing the cryptographic hash of a file."
msgstr ""

#. type: node
#: doc/guix.texi:288 doc/guix.texi:9856 doc/guix.texi:10797
#, no-wrap
msgid "Invoking guix import"
msgstr ""

#. type: menuentry
#: doc/guix.texi:288 doc/guix.texi:9856
msgid "Importing package definitions."
msgstr ""

#. type: node
#: doc/guix.texi:288 doc/guix.texi:9856 doc/guix.texi:11226
#, no-wrap
msgid "Invoking guix refresh"
msgstr ""

#. type: menuentry
#: doc/guix.texi:288 doc/guix.texi:9856
msgid "Updating package definitions."
msgstr ""

#. type: node
#: doc/guix.texi:288 doc/guix.texi:9856 doc/guix.texi:11549
#, no-wrap
msgid "Invoking guix lint"
msgstr ""

#. type: menuentry
#: doc/guix.texi:288 doc/guix.texi:9856
msgid "Finding errors in package definitions."
msgstr ""

#. type: node
#: doc/guix.texi:288 doc/guix.texi:9856 doc/guix.texi:11718
#, no-wrap
msgid "Invoking guix size"
msgstr ""

#. type: menuentry
#: doc/guix.texi:288 doc/guix.texi:9856
msgid "Profiling disk usage."
msgstr ""

#. type: node
#: doc/guix.texi:288 doc/guix.texi:9856 doc/guix.texi:11862
#, no-wrap
msgid "Invoking guix graph"
msgstr ""

#. type: menuentry
#: doc/guix.texi:288 doc/guix.texi:9856
msgid "Visualizing the graph of packages."
msgstr ""

#. type: node
#: doc/guix.texi:288 doc/guix.texi:9856 doc/guix.texi:12129
#, no-wrap
msgid "Invoking guix publish"
msgstr ""

#. type: menuentry
#: doc/guix.texi:288 doc/guix.texi:9856
msgid "Sharing substitutes."
msgstr ""

#. type: node
#: doc/guix.texi:288 doc/guix.texi:9856 doc/guix.texi:12377
#, no-wrap
msgid "Invoking guix challenge"
msgstr ""

#. type: menuentry
#: doc/guix.texi:288 doc/guix.texi:9856
msgid "Challenging substitute servers."
msgstr ""

#. type: node
#: doc/guix.texi:288 doc/guix.texi:9856 doc/guix.texi:12560
#, no-wrap
msgid "Invoking guix copy"
msgstr ""

#. type: menuentry
#: doc/guix.texi:288 doc/guix.texi:9856
msgid "Copying to and from a remote store."
msgstr ""

#. type: node
#: doc/guix.texi:288 doc/guix.texi:9856 doc/guix.texi:12623
#, no-wrap
msgid "Invoking guix container"
msgstr ""

#. type: menuentry
#: doc/guix.texi:288 doc/guix.texi:9856
msgid "Process isolation."
msgstr ""

#. type: node
#: doc/guix.texi:288 doc/guix.texi:9856 doc/guix.texi:12677
#, no-wrap
msgid "Invoking guix weather"
msgstr ""

#. type: menuentry
#: doc/guix.texi:288 doc/guix.texi:9856
msgid "Assessing substitute availability."
msgstr ""

#. type: node
#: doc/guix.texi:288 doc/guix.texi:9856 doc/guix.texi:12806
#, no-wrap
msgid "Invoking guix processes"
msgstr ""

#. type: menuentry
#: doc/guix.texi:288 doc/guix.texi:9856
msgid "Listing client processes."
msgstr ""

#. type: section
#: doc/guix.texi:290 doc/guix.texi:9859
#, no-wrap
msgid "Invoking @command{guix build}"
msgstr ""

#. type: subsection
#: doc/guix.texi:295 doc/guix.texi:9910 doc/guix.texi:9912 doc/guix.texi:9913
#, no-wrap
msgid "Common Build Options"
msgstr ""

#. type: menuentry
#: doc/guix.texi:295 doc/guix.texi:9910
msgid "Build options for most commands."
msgstr ""

#. type: subsection
#: doc/guix.texi:295 doc/guix.texi:9910 doc/guix.texi:10066 doc/guix.texi:10067
#, no-wrap
msgid "Package Transformation Options"
msgstr ""

#. type: menuentry
#: doc/guix.texi:295 doc/guix.texi:9910
msgid "Creating variants of packages."
msgstr ""

#. type: subsection
#: doc/guix.texi:295 doc/guix.texi:9910 doc/guix.texi:10326 doc/guix.texi:10327
#, no-wrap
msgid "Additional Build Options"
msgstr ""

#. type: menuentry
#: doc/guix.texi:295 doc/guix.texi:9910
msgid "Options specific to 'guix build'."
msgstr ""

#. type: subsection
#: doc/guix.texi:295 doc/guix.texi:9910 doc/guix.texi:10557 doc/guix.texi:10558
#, no-wrap
msgid "Debugging Build Failures"
msgstr ""

#. type: menuentry
#: doc/guix.texi:295 doc/guix.texi:9910
msgid "Real life packaging experience."
msgstr ""

#. type: section
#: doc/guix.texi:315 doc/guix.texi:12905 doc/guix.texi:12907
#: doc/guix.texi:12908
#, no-wrap
msgid "Using the Configuration System"
msgstr ""

#. type: menuentry
#: doc/guix.texi:315 doc/guix.texi:12905
msgid "Customizing your GNU system."
msgstr ""

#. type: node
#: doc/guix.texi:315 doc/guix.texi:12905 doc/guix.texi:13147
#, no-wrap
msgid "operating-system Reference"
msgstr ""

#. type: menuentry
#: doc/guix.texi:315 doc/guix.texi:12905
msgid "Detail of operating-system declarations."
msgstr ""

#. type: section
#: doc/guix.texi:315 doc/guix.texi:12905 doc/guix.texi:13398
#: doc/guix.texi:13399
#, no-wrap
msgid "File Systems"
msgstr ""

#. type: menuentry
#: doc/guix.texi:315 doc/guix.texi:12905
msgid "Configuring file system mounts."
msgstr ""

#. type: section
#: doc/guix.texi:315 doc/guix.texi:12905 doc/guix.texi:13721
#: doc/guix.texi:13722
#, no-wrap
msgid "Mapped Devices"
msgstr ""

#. type: menuentry
#: doc/guix.texi:315 doc/guix.texi:12905
msgid "Block device extra processing."
msgstr ""

#. type: section
#: doc/guix.texi:315 doc/guix.texi:12905 doc/guix.texi:13842
#: doc/guix.texi:13843
#, no-wrap
msgid "User Accounts"
msgstr ""

#. type: menuentry
#: doc/guix.texi:315 doc/guix.texi:12905
msgid "Specifying user accounts."
msgstr ""

#. type: section
#: doc/guix.texi:315 doc/guix.texi:2189 doc/guix.texi:12905 doc/guix.texi:14018
#: doc/guix.texi:14019
#, no-wrap
msgid "Keyboard Layout"
msgstr ""

#. type: menuentry
#: doc/guix.texi:315 doc/guix.texi:12905
msgid "How the system interprets key strokes."
msgstr ""

#. type: section
#: doc/guix.texi:315 doc/guix.texi:1689 doc/guix.texi:12905 doc/guix.texi:14164
#: doc/guix.texi:14165
#, no-wrap
msgid "Locales"
msgstr ""

#. type: menuentry
#: doc/guix.texi:315 doc/guix.texi:12905
msgid "Language and cultural convention settings."
msgstr ""

#. type: section
#: doc/guix.texi:315 doc/guix.texi:317 doc/guix.texi:12905 doc/guix.texi:14304
#: doc/guix.texi:14305
#, no-wrap
msgid "Services"
msgstr ""

#. type: menuentry
#: doc/guix.texi:315 doc/guix.texi:12905
msgid "Specifying system services."
msgstr ""

#. type: section
#: doc/guix.texi:315 doc/guix.texi:12905 doc/guix.texi:29901
#: doc/guix.texi:29902
#, no-wrap
msgid "Setuid Programs"
msgstr ""

#. type: menuentry
#: doc/guix.texi:315 doc/guix.texi:12905
msgid "Programs running with root privileges."
msgstr ""

#. type: section
#: doc/guix.texi:315 doc/guix.texi:1838 doc/guix.texi:12905 doc/guix.texi:29947
#: doc/guix.texi:29948
#, no-wrap
msgid "X.509 Certificates"
msgstr ""

#. type: menuentry
#: doc/guix.texi:315 doc/guix.texi:12905
msgid "Authenticating HTTPS servers."
msgstr ""

#. type: section
#: doc/guix.texi:315 doc/guix.texi:1732 doc/guix.texi:12905 doc/guix.texi:30010
#: doc/guix.texi:30011
#, no-wrap
msgid "Name Service Switch"
msgstr ""

#. type: menuentry
#: doc/guix.texi:315 doc/guix.texi:12905
msgid "Configuring libc's name service switch."
msgstr ""

#. type: section
#: doc/guix.texi:315 doc/guix.texi:12905 doc/guix.texi:30148
#: doc/guix.texi:30149
#, no-wrap
msgid "Initial RAM Disk"
msgstr ""

#. type: menuentry
#: doc/guix.texi:315 doc/guix.texi:12905
msgid "Linux-Libre bootstrapping."
msgstr ""

#. type: section
#: doc/guix.texi:315 doc/guix.texi:12905 doc/guix.texi:30323
#: doc/guix.texi:30324
#, no-wrap
msgid "Bootloader Configuration"
msgstr ""

#. type: menuentry
#: doc/guix.texi:315 doc/guix.texi:12905
msgid "Configuring the boot loader."
msgstr ""

#. type: node
#: doc/guix.texi:315 doc/guix.texi:12905 doc/guix.texi:30617
#, no-wrap
msgid "Invoking guix system"
msgstr ""

#. type: menuentry
#: doc/guix.texi:315 doc/guix.texi:12905
msgid "Instantiating a system configuration."
msgstr ""

#. type: node
#: doc/guix.texi:315 doc/guix.texi:12905 doc/guix.texi:31175
#, no-wrap
msgid "Invoking guix deploy"
msgstr ""

#. type: menuentry
#: doc/guix.texi:315 doc/guix.texi:12905
msgid "Deploying a system configuration to a remote host."
msgstr ""

#. type: node
#: doc/guix.texi:315 doc/guix.texi:12905 doc/guix.texi:31381
#, no-wrap
msgid "Running Guix in a VM"
msgstr ""

#. type: menuentry
#: doc/guix.texi:315 doc/guix.texi:12905
msgid "How to run Guix System in a virtual machine."
msgstr ""

#. type: section
#: doc/guix.texi:315 doc/guix.texi:352 doc/guix.texi:12905 doc/guix.texi:31511
#: doc/guix.texi:31512
#, no-wrap
msgid "Defining Services"
msgstr ""

#. type: menuentry
#: doc/guix.texi:315 doc/guix.texi:12905
msgid "Adding new service definitions."
msgstr ""

#. type: subsection
#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:14388
#: doc/guix.texi:14389
#, no-wrap
msgid "Base Services"
msgstr ""

#. type: menuentry
#: doc/guix.texi:350 doc/guix.texi:14386
msgid "Essential system services."
msgstr ""

#. type: subsection
#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:15263
#: doc/guix.texi:15264
#, no-wrap
msgid "Scheduled Job Execution"
msgstr ""

#. type: menuentry
#: doc/guix.texi:350 doc/guix.texi:14386
msgid "The mcron service."
msgstr ""

#. type: subsection
#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:15400
#: doc/guix.texi:15401
#, no-wrap
msgid "Log Rotation"
msgstr ""

#. type: menuentry
#: doc/guix.texi:350 doc/guix.texi:14386
msgid "The rottlog service."
msgstr ""

#. type: subsection
#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:15513
#: doc/guix.texi:15514
#, no-wrap
msgid "Networking Services"
msgstr ""

#. type: menuentry
#: doc/guix.texi:350 doc/guix.texi:14386
msgid "Network setup, SSH daemon, etc."
msgstr ""

#. type: subsection
#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:16851
#: doc/guix.texi:16852
#, no-wrap
msgid "Unattended Upgrades"
msgstr ""

#. type: menuentry
#: doc/guix.texi:350 doc/guix.texi:14386
msgid "Automated system upgrades."
msgstr ""

#. type: subsection
#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:16985
#: doc/guix.texi:16986
#, no-wrap
msgid "X Window"
msgstr ""

#. type: menuentry
#: doc/guix.texi:350 doc/guix.texi:14386
msgid "Graphical display."
msgstr ""

#. type: subsection
#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:17363
#: doc/guix.texi:17364
#, no-wrap
msgid "Printing Services"
msgstr ""

#. type: menuentry
#: doc/guix.texi:350 doc/guix.texi:14386
msgid "Local and remote printer support."
msgstr ""

#. type: subsection
#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:18215
#: doc/guix.texi:18216
#, no-wrap
msgid "Desktop Services"
msgstr ""

#. type: menuentry
#: doc/guix.texi:350 doc/guix.texi:14386
msgid "D-Bus and desktop services."
msgstr ""

#. type: subsection
#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:18692
#: doc/guix.texi:18693
#, no-wrap
msgid "Sound Services"
msgstr ""

#. type: menuentry
#: doc/guix.texi:350 doc/guix.texi:14386
msgid "ALSA and Pulseaudio services."
msgstr ""

#. type: subsection
#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:18832
#: doc/guix.texi:18833
#, no-wrap
msgid "Database Services"
msgstr ""

#. type: menuentry
#: doc/guix.texi:350 doc/guix.texi:14386
msgid "SQL databases, key-value stores, etc."
msgstr ""

#. type: subsection
#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:19095
#: doc/guix.texi:19096
#, no-wrap
msgid "Mail Services"
msgstr ""

#. type: menuentry
#: doc/guix.texi:350 doc/guix.texi:14386
msgid "IMAP, POP3, SMTP, and all that."
msgstr ""

#. type: subsection
#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:20887
#: doc/guix.texi:20888
#, no-wrap
msgid "Messaging Services"
msgstr ""

#. type: menuentry
#: doc/guix.texi:350 doc/guix.texi:14386
msgid "Messaging services."
msgstr ""

#. type: subsection
#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:21390
#: doc/guix.texi:21391
#, no-wrap
msgid "Telephony Services"
msgstr ""

#. type: menuentry
#: doc/guix.texi:350 doc/guix.texi:14386
msgid "Telephony services."
msgstr ""

#. type: subsection
#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:21595
#: doc/guix.texi:21596
#, no-wrap
msgid "Monitoring Services"
msgstr ""

#. type: menuentry
#: doc/guix.texi:350 doc/guix.texi:14386
msgid "Monitoring services."
msgstr ""

#. type: subsection
#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:22100
#: doc/guix.texi:22101
#, no-wrap
msgid "Kerberos Services"
msgstr ""

#. type: menuentry
#: doc/guix.texi:350 doc/guix.texi:14386
msgid "Kerberos services."
msgstr ""

#. type: subsection
#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:22226
#: doc/guix.texi:22227
#, no-wrap
msgid "LDAP Services"
msgstr ""

#. type: menuentry
#: doc/guix.texi:350 doc/guix.texi:14386
msgid "LDAP services."
msgstr ""

#. type: subsection
#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:22705
#: doc/guix.texi:22706
#, no-wrap
msgid "Web Services"
msgstr ""

#. type: menuentry
#: doc/guix.texi:350 doc/guix.texi:14386
msgid "Web servers."
msgstr ""

#. type: subsection
#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:23819
#: doc/guix.texi:23820
#, no-wrap
msgid "Certificate Services"
msgstr ""

#. type: menuentry
#: doc/guix.texi:350 doc/guix.texi:14386
msgid "TLS certificates via Let's Encrypt."
msgstr ""

#. type: subsection
#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:23992
#: doc/guix.texi:23993
#, no-wrap
msgid "DNS Services"
msgstr ""

#. type: menuentry
#: doc/guix.texi:350 doc/guix.texi:14386
msgid "DNS daemons."
msgstr ""

#. type: subsection
#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:24739
#: doc/guix.texi:24740
#, no-wrap
msgid "VPN Services"
msgstr ""

#. type: menuentry
#: doc/guix.texi:350 doc/guix.texi:14386
msgid "VPN daemons."
msgstr ""

#. type: subsection
#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:25119
#: doc/guix.texi:25120
#, no-wrap
msgid "Network File System"
msgstr ""

#. type: menuentry
#: doc/guix.texi:350 doc/guix.texi:14386
msgid "NFS related services."
msgstr ""

#. type: subsection
#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:25315
#: doc/guix.texi:25316
#, no-wrap
msgid "Continuous Integration"
msgstr ""

#. type: menuentry
#: doc/guix.texi:350 doc/guix.texi:14386
msgid "The Cuirass service."
msgstr ""

#. type: subsection
#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:25446
#: doc/guix.texi:25447
#, no-wrap
msgid "Power Management Services"
msgstr ""

#. type: menuentry
#: doc/guix.texi:350 doc/guix.texi:14386
msgid "Extending battery life."
msgstr ""

#. type: subsection
#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:25980
#: doc/guix.texi:25981
#, no-wrap
msgid "Audio Services"
msgstr ""

#. type: menuentry
#: doc/guix.texi:350 doc/guix.texi:14386
msgid "The MPD."
msgstr ""

#. type: subsection
#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:26099
#: doc/guix.texi:26100
#, no-wrap
msgid "Virtualization Services"
msgstr ""

#. type: menuentry
#: doc/guix.texi:350 doc/guix.texi:14386
msgid "Virtualization services."
msgstr ""

#. type: subsection
#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:27721
#: doc/guix.texi:27722
#, no-wrap
msgid "Version Control Services"
msgstr ""

#. type: menuentry
#: doc/guix.texi:350 doc/guix.texi:14386
msgid "Providing remote access to Git repositories."
msgstr ""

#. type: subsection
#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:28913
#: doc/guix.texi:28914
#, no-wrap
msgid "Game Services"
msgstr ""

#. type: menuentry
#: doc/guix.texi:350 doc/guix.texi:14386
msgid "Game servers."
msgstr ""

#. type: subsection
#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:28945
#: doc/guix.texi:28946
#, no-wrap
msgid "PAM Mount Service"
msgstr ""

#. type: menuentry
#: doc/guix.texi:350 doc/guix.texi:14386
msgid "Service to mount volumes when logging in."
msgstr ""

#. type: subsection
#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:29028
#: doc/guix.texi:29029
#, no-wrap
msgid "Guix Services"
msgstr ""

#. type: menuentry
#: doc/guix.texi:350 doc/guix.texi:14386
msgid "Services relating specifically to Guix."
msgstr ""

#. type: subsection
#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:29245
#: doc/guix.texi:29246
#, no-wrap
msgid "Linux Services"
msgstr ""

#. type: menuentry
#: doc/guix.texi:350 doc/guix.texi:14386
msgid "Services tied to the Linux kernel."
msgstr ""

#. type: subsection
#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:29392
#: doc/guix.texi:29393
#, no-wrap
msgid "Hurd Services"
msgstr ""

#. type: menuentry
#: doc/guix.texi:350 doc/guix.texi:14386
msgid "Services specific for a Hurd System."
msgstr ""

#. type: subsection
#: doc/guix.texi:350 doc/guix.texi:14386 doc/guix.texi:29434
#: doc/guix.texi:29435
#, no-wrap
msgid "Miscellaneous Services"
msgstr ""

#. type: menuentry
#: doc/guix.texi:350 doc/guix.texi:14386
msgid "Other services."
msgstr ""

#. type: subsection
#: doc/guix.texi:357 doc/guix.texi:31523 doc/guix.texi:31525
#: doc/guix.texi:31526
#, no-wrap
msgid "Service Composition"
msgstr ""

#. type: menuentry
#: doc/guix.texi:357 doc/guix.texi:31523
msgid "The model for composing services."
msgstr ""

#. type: subsection
#: doc/guix.texi:357 doc/guix.texi:31523 doc/guix.texi:31581
#: doc/guix.texi:31582
#, no-wrap
msgid "Service Types and Services"
msgstr ""

#. type: menuentry
#: doc/guix.texi:357 doc/guix.texi:31523
msgid "Types and services."
msgstr ""

#. type: subsection
#: doc/guix.texi:357 doc/guix.texi:31523 doc/guix.texi:31718
#: doc/guix.texi:31719
#, no-wrap
msgid "Service Reference"
msgstr ""

#. type: menuentry
#: doc/guix.texi:357 doc/guix.texi:31523
msgid "API reference."
msgstr ""

#. type: subsection
#: doc/guix.texi:357 doc/guix.texi:31523 doc/guix.texi:32009
#: doc/guix.texi:32010
#, no-wrap
msgid "Shepherd Services"
msgstr ""

#. type: menuentry
#: doc/guix.texi:357 doc/guix.texi:31523
msgid "A particular type of service."
msgstr ""

#. type: section
#: doc/guix.texi:362 doc/guix.texi:32244 doc/guix.texi:32246
#: doc/guix.texi:32247
#, no-wrap
msgid "Separate Debug Info"
msgstr ""

#. type: menuentry
#: doc/guix.texi:362 doc/guix.texi:32244
msgid "Installing 'debug' outputs."
msgstr ""

#. type: section
#: doc/guix.texi:362 doc/guix.texi:32244 doc/guix.texi:32305
#: doc/guix.texi:32306
#, no-wrap
msgid "Rebuilding Debug Info"
msgstr ""

#. type: menuentry
#: doc/guix.texi:362 doc/guix.texi:32244
msgid "Building missing debug info."
msgstr ""

#. type: node
#: doc/guix.texi:367 doc/guix.texi:32517 doc/guix.texi:32519
#, no-wrap
msgid "Reduced Binary Seed Bootstrap"
msgstr ""

#. type: menuentry
#: doc/guix.texi:367 doc/guix.texi:32517
msgid "A Bootstrap worthy of GNU."
msgstr ""

#. type: section
#: doc/guix.texi:367 doc/guix.texi:32517 doc/guix.texi:32594
#: doc/guix.texi:32595
#, no-wrap
msgid "Preparing to Use the Bootstrap Binaries"
msgstr ""

#. type: menuentry
#: doc/guix.texi:367 doc/guix.texi:32517
msgid "Building that what matters most."
msgstr ""

#. type: cindex
#: doc/guix.texi:375
#, no-wrap
msgid "purpose"
msgstr ""

#. type: Plain text
#: doc/guix.texi:383
msgid ""
"GNU Guix@footnote{``Guix'' is pronounced like ``geeks'', or ``ɡiːks'' using "
"the international phonetic alphabet (IPA).} is a package management tool for "
"and distribution of the GNU system.  Guix makes it easy for unprivileged "
"users to install, upgrade, or remove software packages, to roll back to a "
"previous package set, to build packages from source, and generally assists "
"with the creation and maintenance of software environments."
msgstr ""

#. type: cindex
#: doc/guix.texi:384 doc/guix.texi:459
#, no-wrap
msgid "Guix System"
msgstr ""

#. type: cindex
#: doc/guix.texi:385
#, no-wrap
msgid "GuixSD, now Guix System"
msgstr ""

#. type: cindex
#: doc/guix.texi:386
#, no-wrap
msgid "Guix System Distribution, now Guix System"
msgstr ""

#. type: Plain text
#: doc/guix.texi:395
msgid ""
"You can install GNU@tie{}Guix on top of an existing GNU/Linux system where "
"it complements the available tools without interference "
"(@pxref{Installation}), or you can use it as a standalone operating system "
"distribution, @dfn{Guix@tie{}System}@footnote{We used to refer to Guix "
"System as ``Guix System Distribution'' or ``GuixSD''.  We now consider it "
"makes more sense to group everything under the ``Guix'' banner since, after "
"all, Guix System is readily available through the @command{guix system} "
"command, even if you're using a different distro underneath!}.  @xref{GNU "
"Distribution}."
msgstr ""

#. type: cindex
#: doc/guix.texi:404
#, no-wrap
msgid "user interfaces"
msgstr ""

#. type: Plain text
#: doc/guix.texi:410
msgid ""
"Guix provides a command-line package management interface (@pxref{Package "
"Management}), tools to help with software development (@pxref{Development}), "
"command-line utilities for more advanced usage, (@pxref{Utilities}), as well "
"as Scheme programming interfaces (@pxref{Programming Interface})."
msgstr ""

#. type: cindex
#: doc/guix.texi:410
#, no-wrap
msgid "build daemon"
msgstr ""

#. type: Plain text
#: doc/guix.texi:414
msgid ""
"Its @dfn{build daemon} is responsible for building packages on behalf of "
"users (@pxref{Setting Up the Daemon}) and for downloading pre-built binaries "
"from authorized sources (@pxref{Substitutes})."
msgstr ""

#. type: cindex
#: doc/guix.texi:415
#, no-wrap
msgid "extensibility of the distribution"
msgstr ""

#. type: cindex
#: doc/guix.texi:416 doc/guix.texi:6241
#, no-wrap
msgid "customization, of packages"
msgstr ""

#. type: Plain text
#: doc/guix.texi:425
msgid ""
"Guix includes package definitions for many GNU and non-GNU packages, all of "
"which @uref{https://www.gnu.org/philosophy/free-sw.html, respect the user's "
"computing freedom}.  It is @emph{extensible}: users can write their own "
"package definitions (@pxref{Defining Packages}) and make them available as "
"independent package modules (@pxref{Package Modules}).  It is also "
"@emph{customizable}: users can @emph{derive} specialized package definitions "
"from existing ones, including from the command line (@pxref{Package "
"Transformation Options})."
msgstr ""

#. type: cindex
#: doc/guix.texi:426
#, no-wrap
msgid "functional package management"
msgstr ""

#. type: cindex
#: doc/guix.texi:427
#, no-wrap
msgid "isolation"
msgstr ""

#. type: Plain text
#: doc/guix.texi:442
msgid ""
"Under the hood, Guix implements the @dfn{functional package management} "
"discipline pioneered by Nix (@pxref{Acknowledgments}).  In Guix, the package "
"build and installation process is seen as a @emph{function}, in the "
"mathematical sense.  That function takes inputs, such as build scripts, a "
"compiler, and libraries, and returns an installed package.  As a pure "
"function, its result depends solely on its inputs---for instance, it cannot "
"refer to software or scripts that were not explicitly passed as inputs.  A "
"build function always produces the same result when passed a given set of "
"inputs.  It cannot alter the environment of the running system in any way; "
"for instance, it cannot create, modify, or delete files outside of its build "
"and installation directories.  This is achieved by running build processes "
"in isolated environments (or @dfn{containers}), where only their explicit "
"inputs are visible."
msgstr ""

#. type: cindex
#: doc/guix.texi:443 doc/guix.texi:8440
#, no-wrap
msgid "store"
msgstr ""

#. type: Plain text
#: doc/guix.texi:450
msgid ""
"The result of package build functions is @dfn{cached} in the file system, in "
"a special directory called @dfn{the store} (@pxref{The Store}).  Each "
"package is installed in a directory of its own in the store---by default "
"under @file{/gnu/store}.  The directory name contains a hash of all the "
"inputs used to build that package; thus, changing an input yields a "
"different directory name."
msgstr ""

#. type: Plain text
#: doc/guix.texi:454
msgid ""
"This approach is the foundation for the salient features of Guix: support "
"for transactional package upgrade and rollback, per-user installation, and "
"garbage collection of packages (@pxref{Features})."
msgstr ""

#. type: Plain text
#: doc/guix.texi:469
msgid ""
"Guix comes with a distribution of the GNU system consisting entirely of free "
"software@footnote{The term ``free'' here refers to the @url{https://www.gnu."
"org/philosophy/free-sw.html,freedom provided to users of that software}.}.  "
"The distribution can be installed on its own (@pxref{System Installation}), "
"but it is also possible to install Guix as a package manager on top of an "
"installed GNU/Linux system (@pxref{Installation}).  When we need to "
"distinguish between the two, we refer to the standalone distribution as "
"Guix@tie{}System."
msgstr ""

#. type: Plain text
#: doc/guix.texi:475
msgid ""
"The distribution provides core GNU packages such as GNU libc, GCC, and "
"Binutils, as well as many GNU and non-GNU applications.  The complete list "
"of available packages can be browsed @url{https://www.gnu.org/software/guix/"
"packages,on-line} or by running @command{guix package} (@pxref{Invoking guix "
"package}):"
msgstr ""

#. type: example
#: doc/guix.texi:478
#, no-wrap
msgid "guix package --list-available\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:484
msgid ""
"Our goal is to provide a practical 100% free software distribution of Linux-"
"based and other variants of GNU, with a focus on the promotion and tight "
"integration of GNU components, and an emphasis on programs and tools that "
"help users exert that freedom."
msgstr ""

#. type: Plain text
#: doc/guix.texi:486
msgid "Packages are currently available on the following platforms:"
msgstr ""

#. type: item
#: doc/guix.texi:489 doc/guix.texi:2012
#, no-wrap
msgid "x86_64-linux"
msgstr ""

#. type: table
#: doc/guix.texi:491
msgid "Intel/AMD @code{x86_64} architecture, Linux-Libre kernel."
msgstr ""

#. type: item
#: doc/guix.texi:492 doc/guix.texi:2015
#, no-wrap
msgid "i686-linux"
msgstr ""

#. type: table
#: doc/guix.texi:494
msgid "Intel 32-bit architecture (IA32), Linux-Libre kernel."
msgstr ""

#. type: item
#: doc/guix.texi:495
#, no-wrap
msgid "armhf-linux"
msgstr ""

#. type: table
#: doc/guix.texi:499
msgid ""
"ARMv7-A architecture with hard float, Thumb-2 and NEON, using the EABI hard-"
"float application binary interface (ABI), and Linux-Libre kernel."
msgstr ""

#. type: item
#: doc/guix.texi:500
#, no-wrap
msgid "aarch64-linux"
msgstr ""

#. type: table
#: doc/guix.texi:502
msgid "little-endian 64-bit ARMv8-A processors, Linux-Libre kernel."
msgstr ""

#. type: item
#: doc/guix.texi:503
#, no-wrap
msgid "i586-gnu"
msgstr ""

#. type: table
#: doc/guix.texi:506
msgid ""
"@uref{https://hurd.gnu.org, GNU/Hurd} on the Intel 32-bit architecture "
"(IA32)."
msgstr ""

#. type: table
#: doc/guix.texi:512
msgid ""
"This configuration is experimental and under development.  The easiest way "
"for you to give it a try is by setting up an instance of @code{hurd-vm-"
"service-type} on your GNU/Linux machine (@pxref{transparent-emulation-qemu, "
"@code{hurd-vm-service-type}}).  @xref{Contributing}, on how to help!"
msgstr ""

#. type: item
#: doc/guix.texi:513
#, no-wrap
msgid "mips64el-linux (deprecated)"
msgstr ""

#. type: table
#: doc/guix.texi:519
msgid ""
"little-endian 64-bit MIPS processors, specifically the Loongson series, n32 "
"ABI, and Linux-Libre kernel.  This configuration is no longer fully "
"supported; in particular, there is no ongoing work to ensure that this "
"architecture still works. Should someone decide they wish to revive this "
"architecture then the code is still available."
msgstr ""

#. type: Plain text
#: doc/guix.texi:529
msgid ""
"With Guix@tie{}System, you @emph{declare} all aspects of the operating "
"system configuration and Guix takes care of instantiating the configuration "
"in a transactional, reproducible, and stateless fashion (@pxref{System "
"Configuration}).  Guix System uses the Linux-libre kernel, the Shepherd "
"initialization system (@pxref{Introduction,,, shepherd, The GNU Shepherd "
"Manual}), the well-known GNU utilities and tool chain, as well as the "
"graphical environment or system services of your choice."
msgstr ""

#. type: Plain text
#: doc/guix.texi:532
msgid ""
"Guix System is available on all the above platforms except @code{mips64el-"
"linux}."
msgstr ""

#. type: Plain text
#: doc/guix.texi:536
msgid ""
"For information on porting to other architectures or kernels, "
"@pxref{Porting}."
msgstr ""

#. type: Plain text
#: doc/guix.texi:539
msgid ""
"Building this distribution is a cooperative effort, and you are invited to "
"join! @xref{Contributing}, for information about how you can help."
msgstr ""

#. type: cindex
#: doc/guix.texi:545
#, no-wrap
msgid "installing Guix"
msgstr ""

#. type: quotation
#: doc/guix.texi:557
msgid ""
"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."
msgstr ""

#. type: cindex
#: doc/guix.texi:559 doc/guix.texi:1684
#, no-wrap
msgid "foreign distro"
msgstr ""

#. type: cindex
#: doc/guix.texi:560
#, no-wrap
msgid "directories related to foreign distro"
msgstr ""

#. type: Plain text
#: doc/guix.texi:565
msgid ""
"When installed on a foreign distro, GNU@tie{}Guix complements the available "
"tools without interference.  Its data lives exclusively in two directories, "
"usually @file{/gnu/store} and @file{/var/guix}; other files on your system, "
"such as @file{/etc}, are left untouched."
msgstr ""

#. type: Plain text
#: doc/guix.texi:568
msgid ""
"Once installed, Guix can be updated by running @command{guix pull} "
"(@pxref{Invoking guix pull})."
msgstr ""

#. type: Plain text
#: doc/guix.texi:573
msgid ""
"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."
msgstr ""

#. type: cindex
#: doc/guix.texi:587
#, no-wrap
msgid "installing Guix from binaries"
msgstr ""

#. type: cindex
#: doc/guix.texi:588
#, no-wrap
msgid "installer script"
msgstr ""

#. type: Plain text
#: doc/guix.texi:594
msgid ""
"This section describes how to install Guix on an arbitrary system 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.  The only requirement is to have GNU@tie{}"
"tar and Xz."
msgstr ""

#. type: quotation
#: doc/guix.texi:602
msgid ""
"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:"
msgstr ""

#. type: example
#: doc/guix.texi:608
#, no-wrap
msgid ""
"cd /tmp\n"
"wget https://git.savannah.gnu.org/cgit/guix.git/plain/etc/guix-install.sh\n"
"chmod +x guix-install.sh\n"
"./guix-install.sh\n"
msgstr ""

#. type: quotation
#: doc/guix.texi:612
msgid ""
"When you're done, @pxref{Application Setup} for extra configuration you "
"might need, and @ref{Getting Started} for your first steps!"
msgstr ""

#. type: Plain text
#: doc/guix.texi:615
msgid "Installing goes along these lines:"
msgstr ""

#. type: cindex
#: doc/guix.texi:618
#, no-wrap
msgid "downloading Guix binary"
msgstr ""

#. type: enumerate
#: doc/guix.texi:624
msgid ""
"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})."
msgstr ""

#. type: enumerate
#: doc/guix.texi:628
msgid ""
"Make sure to download the associated @file{.sig} file and to verify the "
"authenticity of the tarball against it, along these lines:"
msgstr ""

#. type: example
#: doc/guix.texi:632
#, no-wrap
msgid ""
"$ wget @value{BASE-URL}/guix-binary-@value{VERSION}.x86_64-linux.tar.xz.sig\n"
"$ gpg --verify guix-binary-@value{VERSION}.x86_64-linux.tar.xz.sig\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:636 doc/guix.texi:2030
msgid ""
"If that command fails because you do not have the required public key, then "
"run this command to import it:"
msgstr ""

#. type: example
#: doc/guix.texi:640 doc/guix.texi:2034
#, no-wrap
msgid ""
"$ wget @value{OPENPGP-SIGNING-KEY-URL} \\\n"
"      -qO - | gpg --import -\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:644 doc/guix.texi:2038
msgid "and rerun the @code{gpg --verify} command."
msgstr ""

#. type: Plain text
#: doc/guix.texi:647 doc/guix.texi:2041
msgid ""
"Take note that a warning like ``This key is not certified with a trusted "
"signature!'' is normal."
msgstr ""

#. type: enumerate
#: doc/guix.texi:653
msgid ""
"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:"
msgstr ""

#. type: example
#: doc/guix.texi:659
#, no-wrap
msgid ""
"# cd /tmp\n"
"# tar --warning=no-timestamp -xf \\\n"
"     /path/to/guix-binary-@value{VERSION}.x86_64-linux.tar.xz\n"
"# mv var/guix /var/ && mv gnu /\n"
msgstr ""

#. type: enumerate
#: doc/guix.texi:664
msgid ""
"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)."
msgstr ""

#. type: enumerate
#: doc/guix.texi:667
msgid ""
"Do @emph{not} unpack the tarball on a working Guix system since that would "
"overwrite its own essential files."
msgstr ""

#. type: enumerate
#: doc/guix.texi:677
msgid ""
"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."
msgstr ""

#. type: enumerate
#: doc/guix.texi:681
msgid ""
"Make the profile available under @file{~root/.config/guix/current}, which is "
"where @command{guix pull} will install updates (@pxref{Invoking guix pull}):"
msgstr ""

#. type: example
#: doc/guix.texi:686
#, no-wrap
msgid ""
"# mkdir -p ~root/.config/guix\n"
"# ln -sf /var/guix/profiles/per-user/root/current-guix \\\n"
"         ~root/.config/guix/current\n"
msgstr ""

#. type: enumerate
#: doc/guix.texi:690
msgid ""
"Source @file{etc/profile} to augment @env{PATH} and other relevant "
"environment variables:"
msgstr ""

#. type: example
#: doc/guix.texi:694
#, no-wrap
msgid ""
"# GUIX_PROFILE=\"`echo ~root`/.config/guix/current\" ; \\\n"
"  source $GUIX_PROFILE/etc/profile\n"
msgstr ""

#. type: enumerate
#: doc/guix.texi:699
msgid ""
"Create the group and user accounts for build users as explained below "
"(@pxref{Build Environment Setup})."
msgstr ""

#. type: enumerate
#: doc/guix.texi:702
msgid "Run the daemon, and set it to automatically start on boot."
msgstr ""

#. type: enumerate
#: doc/guix.texi:705
msgid ""
"If your host distro uses the systemd init system, this can be achieved with "
"these commands:"
msgstr ""

#. type: example
#: doc/guix.texi:718
#, no-wrap
msgid ""
"# cp ~root/.config/guix/current/lib/systemd/system/gnu-store.mount \\\n"
"     ~root/.config/guix/current/lib/systemd/system/guix-daemon.service \\\n"
"     /etc/systemd/system/\n"
"# systemctl enable --now gnu-store.mount guix-daemon\n"
msgstr ""

#. type: itemize
#: doc/guix.texi:721 doc/guix.texi:12367
msgid "If your host distro uses the Upstart init system:"
msgstr ""

#. type: example
#: doc/guix.texi:727
#, no-wrap
msgid ""
"# initctl reload-configuration\n"
"# cp ~root/.config/guix/current/lib/upstart/system/guix-daemon.conf \\\n"
"     /etc/init/\n"
"# start guix-daemon\n"
msgstr ""

#. type: enumerate
#: doc/guix.texi:730
msgid "Otherwise, you can still start the daemon manually with:"
msgstr ""

#. type: example
#: doc/guix.texi:734
#, no-wrap
msgid ""
"# ~root/.config/guix/current/bin/guix-daemon \\\n"
"       --build-users-group=guixbuild\n"
msgstr ""

#. type: enumerate
#: doc/guix.texi:739
msgid ""
"Make the @command{guix} command available to other users on the machine, for "
"instance with:"
msgstr ""

#. type: example
#: doc/guix.texi:744
#, no-wrap
msgid ""
"# mkdir -p /usr/local/bin\n"
"# cd /usr/local/bin\n"
"# ln -s /var/guix/profiles/per-user/root/current-guix/bin/guix\n"
msgstr ""

#. type: enumerate
#: doc/guix.texi:748
msgid ""
"It is also a good idea to make the Info version of this manual available "
"there:"
msgstr ""

#. type: example
#: doc/guix.texi:754
#, no-wrap
msgid ""
"# mkdir -p /usr/local/share/info\n"
"# cd /usr/local/share/info\n"
"# for i in /var/guix/profiles/per-user/root/current-guix/share/info/* ;\n"
"  do ln -s $i ; done\n"
msgstr ""

#. type: enumerate
#: doc/guix.texi:760
msgid ""
"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)."
msgstr ""

#. type: cindex
#: doc/guix.texi:762 doc/guix.texi:3603 doc/guix.texi:14912
#, no-wrap
msgid "substitutes, authorization thereof"
msgstr ""

#. type: enumerate
#: doc/guix.texi:765
msgid ""
"To use substitutes from @code{@value{SUBSTITUTE-SERVER}} or one of its "
"mirrors (@pxref{Substitutes}), authorize them:"
msgstr ""

#. type: example
#: doc/guix.texi:769
#, no-wrap
msgid ""
"# guix archive --authorize < \\\n"
"     ~root/.config/guix/current/share/guix/@value{SUBSTITUTE-SERVER}.pub\n"
msgstr ""

#. type: enumerate
#: doc/guix.texi:774
msgid ""
"Each user may need to perform a few additional steps to make their Guix "
"environment ready for use, @pxref{Application Setup}."
msgstr ""

#. type: Plain text
#: doc/guix.texi:777
msgid "Voilà, the installation is complete!"
msgstr ""

#. type: Plain text
#: doc/guix.texi:780
msgid ""
"You can confirm that Guix is working by installing a sample package into the "
"root profile:"
msgstr ""

#. type: example
#: doc/guix.texi:783
#, no-wrap
msgid "# guix install hello\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:787
msgid ""
"The binary installation tarball can be (re)produced and verified simply by "
"running the following command in the Guix source tree:"
msgstr ""

#. type: example
#: doc/guix.texi:790
#, no-wrap
msgid "make guix-binary.@var{system}.tar.xz\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:794
msgid "...@: which, in turn, runs:"
msgstr ""

#. type: example
#: doc/guix.texi:798
#, no-wrap
msgid ""
"guix pack -s @var{system} --localstatedir \\\n"
"  --profile-name=current-guix guix\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:801
msgid "@xref{Invoking guix pack}, for more info on this handy tool."
msgstr ""

#. type: Plain text
#: doc/guix.texi:809
msgid ""
"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."
msgstr ""

#. type: cindex
#: doc/guix.texi:810
#, no-wrap
msgid "official website"
msgstr ""

#. type: Plain text
#: doc/guix.texi:813
msgid ""
"GNU Guix is available for download from its website at @url{https://www.gnu."
"org/software/guix/}."
msgstr ""

#. type: Plain text
#: doc/guix.texi:815
msgid "GNU Guix depends on the following packages:"
msgstr ""

#. type: item
#: doc/guix.texi:817
#, no-wrap
msgid "@url{https://gnu.org/software/guile/, GNU Guile}, version 3.0.x or"
msgstr ""

#. type: itemize
#: doc/guix.texi:819
msgid "2.2.x;"
msgstr ""

#. type: item
#: doc/guix.texi:819
#, no-wrap
msgid "@url{https://notabug.org/cwebber/guile-gcrypt, Guile-Gcrypt}, version"
msgstr ""

#. type: itemize
#: doc/guix.texi:821
msgid "0.1.0 or later;"
msgstr ""

#. type: itemize
#: doc/guix.texi:825
msgid ""
"@uref{https://gnutls.org/, GnuTLS}, specifically its Guile bindings "
"(@pxref{Guile Preparations, how to install the GnuTLS bindings for Guile,, "
"gnutls-guile, GnuTLS-Guile});"
msgstr ""

#. type: itemize
#: doc/guix.texi:828
msgid ""
"@uref{https://notabug.org/guile-sqlite3/guile-sqlite3, Guile-SQLite3}, "
"version 0.1.0 or later;"
msgstr ""

#. type: item
#: doc/guix.texi:828
#, no-wrap
msgid "@uref{https://notabug.org/guile-zlib/guile-zlib, Guile-zlib};"
msgstr ""

#. type: item
#: doc/guix.texi:829
#, no-wrap
msgid "@uref{https://notabug.org/guile-lzlib/guile-lzlib, Guile-lzlib};"
msgstr ""

#. type: itemize
#: doc/guix.texi:834
msgid ""
"@uref{https://gitlab.com/guile-git/guile-git, Guile-Git}, version 0.3.0 or "
"later;"
msgstr ""

#. type: item
#: doc/guix.texi:834
#, no-wrap
msgid "@uref{https://savannah.nongnu.org/projects/guile-json/, Guile-JSON}"
msgstr ""

#. type: itemize
#: doc/guix.texi:836
msgid "4.3.0 or later;"
msgstr ""

#. type: item
#: doc/guix.texi:836
#, no-wrap
msgid "@url{https://www.gnu.org/software/make/, GNU Make}."
msgstr ""

#. type: Plain text
#: doc/guix.texi:840
msgid "The following dependencies are optional:"
msgstr ""

#. type: itemize
#: doc/guix.texi:848
msgid ""
"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."
msgstr ""

#. type: itemize
#: doc/guix.texi:853
msgid ""
"When @url{https://www.nongnu.org/lzip/lzlib.html, lzlib} is available, lzlib "
"substitutes can be used and @command{guix publish} can compress substitutes "
"with lzlib."
msgstr ""

#. type: itemize
#: doc/guix.texi:857
msgid ""
"When @url{http://www.bzip.org, libbz2} is available, @command{guix-daemon} "
"can use it to compress build logs."
msgstr ""

#. type: Plain text
#: doc/guix.texi:861
msgid ""
"Unless @option{--disable-daemon} was passed to @command{configure}, the "
"following packages are also needed:"
msgstr ""

#. type: item
#: doc/guix.texi:863
#, no-wrap
msgid "@url{https://gnupg.org/, GNU libgcrypt};"
msgstr ""

#. type: item
#: doc/guix.texi:864
#, no-wrap
msgid "@url{https://sqlite.org, SQLite 3};"
msgstr ""

#. type: item
#: doc/guix.texi:865
#, no-wrap
msgid "@url{https://gcc.gnu.org, GCC's g++}, with support for the"
msgstr ""

#. type: itemize
#: doc/guix.texi:867
msgid "C++11 standard."
msgstr ""

#. type: cindex
#: doc/guix.texi:869
#, no-wrap
msgid "state directory"
msgstr ""

#. type: Plain text
#: doc/guix.texi:878
msgid ""
"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})."
msgstr ""

#. type: cindex
#: doc/guix.texi:882
#, no-wrap
msgid "test suite"
msgstr ""

#. type: Plain text
#: doc/guix.texi:888
msgid ""
"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:"
msgstr ""

#. type: example
#: doc/guix.texi:891
#, no-wrap
msgid "make check\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:898
msgid ""
"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."
msgstr ""

#. type: Plain text
#: doc/guix.texi:901
msgid ""
"It is also possible to run a subset of the tests by defining the "
"@code{TESTS} makefile variable as in this example:"
msgstr ""

#. type: example
#: doc/guix.texi:904
#, no-wrap
msgid "make check TESTS=\"tests/store.scm tests/cpio.scm\"\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:909
msgid ""
"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:"
msgstr ""

#. type: example
#: doc/guix.texi:912
#, no-wrap
msgid "make check TESTS=\"tests/base64.scm\" SCM_LOG_DRIVER_FLAGS=\"--brief=no\"\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:918
msgid ""
"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."
msgstr ""

#. type: Plain text
#: doc/guix.texi:922
msgid ""
"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:"
msgstr ""

#. type: example
#: doc/guix.texi:925
#, no-wrap
msgid "make check-system\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:929
msgid "or, again, by defining @code{TESTS} to select a subset of tests to run:"
msgstr ""

#. type: example
#: doc/guix.texi:932
#, no-wrap
msgid "make check-system TESTS=\"basic mcron\"\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:940
msgid ""
"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."
msgstr ""

#. type: Plain text
#: doc/guix.texi:943
msgid ""
"Again in case of test failures, please send @email{bug-guix@@gnu.org} all "
"the details."
msgstr ""

#. type: cindex
#: doc/guix.texi:947
#, no-wrap
msgid "daemon"
msgstr ""

#. type: Plain text
#: doc/guix.texi:955
msgid ""
"Operations such as building a package or running the garbage collector are "
"all performed by a specialized process, the @dfn{build daemon}, on behalf of "
"clients.  Only the daemon may access the store and its associated database.  "
"Thus, any operation that manipulates the store goes through the daemon.  For "
"instance, command-line tools such as @command{guix package} and "
"@command{guix build} communicate with the daemon (@i{via} remote procedure "
"calls) to instruct it what to do."
msgstr ""

#. type: Plain text
#: doc/guix.texi:959
msgid ""
"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."
msgstr ""

#. type: cindex
#: doc/guix.texi:969 doc/guix.texi:1426
#, no-wrap
msgid "build environment"
msgstr ""

#. type: Plain text
#: doc/guix.texi:977
msgid ""
"In a standard multi-user setup, Guix and its daemon---the @command{guix-"
"daemon} program---are installed by the system administrator; @file{/gnu/"
"store} is owned by @code{root} and @command{guix-daemon} runs as "
"@code{root}.  Unprivileged users may use Guix tools to build packages or "
"otherwise access the store, and the daemon will do it on their behalf, "
"ensuring that the store is kept in a consistent state, and allowing built "
"packages to be shared among users."
msgstr ""

#. type: cindex
#: doc/guix.texi:978
#, no-wrap
msgid "build users"
msgstr ""

#. type: Plain text
#: doc/guix.texi:989
msgid ""
"When @command{guix-daemon} runs as @code{root}, you may not want package "
"build processes themselves to run as @code{root} too, for obvious security "
"reasons.  To avoid that, a special pool of @dfn{build users} should be "
"created for use by build processes started by the daemon.  These build users "
"need not have a shell and a home directory: they will just be used when the "
"daemon drops @code{root} privileges in build processes.  Having several such "
"users allows the daemon to launch distinct build processes under separate "
"UIDs, which guarantees that they do not interfere with each other---an "
"essential feature since builds are regarded as pure functions "
"(@pxref{Introduction})."
msgstr ""

#. type: Plain text
#: doc/guix.texi:992
msgid ""
"On a GNU/Linux system, a build user pool may be created like this (using "
"Bash syntax and the @code{shadow} commands):"
msgstr ""

#. type: example
#: doc/guix.texi:1004
#, no-wrap
msgid ""
"# groupadd --system guixbuild\n"
"# for i in `seq -w 1 10`;\n"
"  do\n"
"    useradd -g guixbuild -G guixbuild           \\\n"
"            -d /var/empty -s `which nologin`    \\\n"
"            -c \"Guix build user $i\" --system    \\\n"
"            guixbuilder$i;\n"
"  done\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:1014
msgid ""
"The number of build users determines how many build jobs may run in "
"parallel, as specified by the @option{--max-jobs} option (@pxref{Invoking "
"guix-daemon, @option{--max-jobs}}).  To use @command{guix system vm} and "
"related commands, you may need to add the build users to the @code{kvm} "
"group so they can access @file{/dev/kvm}, using @code{-G guixbuild,kvm} "
"instead of @code{-G guixbuild} (@pxref{Invoking guix system})."
msgstr ""

#. type: Plain text
#: doc/guix.texi:1023
msgid ""
"The @code{guix-daemon} program may then be run as @code{root} with the "
"following command@footnote{If your machine uses the systemd init system, "
"dropping the @file{@var{prefix}/lib/systemd/system/guix-daemon.service} file "
"in @file{/etc/systemd/system} will ensure that @command{guix-daemon} is "
"automatically started.  Similarly, if your machine uses the Upstart init "
"system, drop the @file{@var{prefix}/lib/upstart/system/guix-daemon.conf} "
"file in @file{/etc/init}.}:"
msgstr ""

#. type: example
#: doc/guix.texi:1026 doc/guix.texi:1419
#, no-wrap
msgid "# guix-daemon --build-users-group=guixbuild\n"
msgstr ""

#. type: cindex
#: doc/guix.texi:1028 doc/guix.texi:1424
#, no-wrap
msgid "chroot"
msgstr ""

#. type: Plain text
#: doc/guix.texi:1033
msgid ""
"This way, the daemon starts build processes in a chroot, under one of the "
"@code{guixbuilder} users.  On GNU/Linux, by default, the chroot environment "
"contains nothing but:"
msgstr ""

#. type: itemize
#: doc/guix.texi:1041
msgid ""
"a minimal @code{/dev} directory, created mostly independently from the host "
"@code{/dev}@footnote{``Mostly'', because while the set of files that appear "
"in the chroot's @code{/dev} is fixed, most of these files can only be "
"created if the host has them.};"
msgstr ""

#. type: itemize
#: doc/guix.texi:1045
msgid ""
"the @code{/proc} directory; it only shows the processes of the container "
"since a separate PID name space is used;"
msgstr ""

#. type: itemize
#: doc/guix.texi:1049
msgid ""
"@file{/etc/passwd} with an entry for the current user and an entry for user "
"@file{nobody};"
msgstr ""

#. type: itemize
#: doc/guix.texi:1052
msgid "@file{/etc/group} with an entry for the user's group;"
msgstr ""

#. type: itemize
#: doc/guix.texi:1056
msgid ""
"@file{/etc/hosts} with an entry that maps @code{localhost} to "
"@code{127.0.0.1};"
msgstr ""

#. type: itemize
#: doc/guix.texi:1059
msgid "a writable @file{/tmp} directory."
msgstr ""

#. type: Plain text
#: doc/guix.texi:1068
msgid ""
"You can influence the directory where the daemon stores build trees @i{via} "
"the @env{TMPDIR} environment variable.  However, the build tree within the "
"chroot is always called @file{/tmp/guix-build-@var{name}.drv-0}, where "
"@var{name} is the derivation name---e.g., @code{coreutils-8.24}.  This way, "
"the value of @env{TMPDIR} does not leak inside build environments, which "
"avoids discrepancies in cases where build processes capture the name of "
"their build tree."
msgstr ""

#. type: vindex
#: doc/guix.texi:1069 doc/guix.texi:3808
#, no-wrap
msgid "http_proxy"
msgstr ""

#. type: vindex
#: doc/guix.texi:1070 doc/guix.texi:3809
#, no-wrap
msgid "https_proxy"
msgstr ""

#. type: Plain text
#: doc/guix.texi:1075
msgid ""
"The daemon also honors the @env{http_proxy} and @env{https_proxy} "
"environment variables for HTTP and HTTPS downloads it performs, be it for "
"fixed-output derivations (@pxref{Derivations}) or for substitutes "
"(@pxref{Substitutes})."
msgstr ""

#. type: Plain text
#: doc/guix.texi:1083
msgid ""
"If you are installing Guix as an unprivileged user, it is still possible to "
"run @command{guix-daemon} provided you pass @option{--disable-chroot}.  "
"However, build processes will not be isolated from one another, and not from "
"the rest of the system.  Thus, build processes may interfere with each "
"other, and may access programs, libraries, and other files available on the "
"system---making it much harder to view them as @emph{pure} functions."
msgstr ""

#. type: subsection
#: doc/guix.texi:1086
#, no-wrap
msgid "Using the Offload Facility"
msgstr ""

#. type: cindex
#: doc/guix.texi:1088 doc/guix.texi:1485
#, no-wrap
msgid "offloading"
msgstr ""

#. type: cindex
#: doc/guix.texi:1089
#, no-wrap
msgid "build hook"
msgstr ""

#. type: Plain text
#: doc/guix.texi:1108
msgid ""
"When desired, the build daemon can @dfn{offload} derivation builds to other "
"machines running Guix, using the @code{offload} @dfn{build hook}"
"@footnote{This feature is available only when @uref{https://github.com/"
"artyom-poptsov/guile-ssh, Guile-SSH} is present.}.  When that feature is "
"enabled, a list of user-specified build machines is read from @file{/etc/"
"guix/machines.scm}; every time a build is requested, for instance via "
"@code{guix build}, the daemon attempts to offload it to one of the machines "
"that satisfy the constraints of the derivation, in particular its system "
"types---e.g., @code{x86_64-linux}.  A single machine can have multiple "
"system types, either because its architecture natively supports it, via "
"emulation (@pxref{transparent-emulation-qemu, Transparent Emulation with "
"QEMU}), or both.  Missing prerequisites for the build are copied over SSH to "
"the target machine, which then proceeds with the build; upon success the "
"output(s) of the build are copied back to the initial machine.  The offload "
"facility comes with a basic scheduler that attempts to select the best "
"machine.  The best machine is chosen among the available machines based on "
"criteria such as:"
msgstr ""

#. type: enumerate
#: doc/guix.texi:1114
msgid ""
"The availability of a build slot.  A build machine can have as many build "
"slots (connections) as the value of the @code{parallel-builds} field of its "
"@code{build-machine} object."
msgstr ""

#. type: enumerate
#: doc/guix.texi:1118
msgid ""
"Its relative speed, as defined via the @code{speed} field of its @code{build-"
"machine} object."
msgstr ""

#. type: enumerate
#: doc/guix.texi:1123
msgid ""
"Its load.  The normalized machine load must be lower than a threshold value, "
"configurable via the @code{overload-threshold} field of its @code{build-"
"machine} object."
msgstr ""

#. type: enumerate
#: doc/guix.texi:1126
msgid "Disk space availability.  More than a 100 MiB must be available."
msgstr ""

#. type: Plain text
#: doc/guix.texi:1129
msgid "The @file{/etc/guix/machines.scm} file typically looks like this:"
msgstr ""

#. type: lisp
#: doc/guix.texi:1137
#, no-wrap
msgid ""
"(list (build-machine\n"
"        (name \"eightysix.example.org\")\n"
"        (systems (list \"x86_64-linux\" \"i686-linux\"))\n"
"        (host-key \"ssh-ed25519 AAAAC3Nza@dots{}\")\n"
"        (user \"bob\")\n"
"        (speed 2.))     ;incredibly fast!\n"
"\n"
msgstr ""

#. type: lisp
#: doc/guix.texi:1146
#, no-wrap
msgid ""
"      (build-machine\n"
"        (name \"armeight.example.org\")\n"
"        (systems (list \"aarch64-linux\"))\n"
"        (host-key \"ssh-rsa AAAAB3Nza@dots{}\")\n"
"        (user \"alice\")\n"
"        (private-key\n"
"         (string-append (getenv \"HOME\")\n"
"                        \"/.ssh/identity-for-guix\"))))\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:1152
msgid ""
"In the example above we specify a list of two build machines, one for the "
"@code{x86_64} and @code{i686} architectures and one for the @code{aarch64} "
"architecture."
msgstr ""

#. type: Plain text
#: doc/guix.texi:1161
msgid ""
"In fact, this file is---not surprisingly!---a Scheme file that is evaluated "
"when the @code{offload} hook is started.  Its return value must be a list of "
"@code{build-machine} objects.  While this example shows a fixed list of "
"build machines, one could imagine, say, using DNS-SD to return a list of "
"potential build machines discovered in the local network "
"(@pxref{Introduction, Guile-Avahi,, guile-avahi, Using Avahi in Guile Scheme "
"Programs}).  The @code{build-machine} data type is detailed below."
msgstr ""

#. type: deftp
#: doc/guix.texi:1162
#, no-wrap
msgid "{Data Type} build-machine"
msgstr ""

#. type: deftp
#: doc/guix.texi:1165
msgid ""
"This data type represents build machines to which the daemon may offload "
"builds.  The important fields are:"
msgstr ""

#. type: item
#: doc/guix.texi:1168 doc/guix.texi:6497 doc/guix.texi:13888
#: doc/guix.texi:13982 doc/guix.texi:14223 doc/guix.texi:16129
#: doc/guix.texi:21576 doc/guix.texi:22161 doc/guix.texi:22773
#: doc/guix.texi:23125 doc/guix.texi:23166 doc/guix.texi:27232
#: doc/guix.texi:27252 doc/guix.texi:29621 doc/guix.texi:29638
#: doc/guix.texi:30127 doc/guix.texi:31831 doc/guix.texi:32107
#, no-wrap
msgid "name"
msgstr ""

#. type: table
#: doc/guix.texi:1170
msgid "The host name of the remote machine."
msgstr ""

#. type: item
#: doc/guix.texi:1171
#, no-wrap
msgid "systems"
msgstr ""

#. type: table
#: doc/guix.texi:1174
msgid ""
"The system types the remote machine supports---e.g., @code{(list \"x86_64-"
"linux\" \"i686-linux\")}."
msgstr ""

#. type: code{#1}
#: doc/guix.texi:1175 doc/guix.texi:16139
#, no-wrap
msgid "user"
msgstr ""

#. type: table
#: doc/guix.texi:1179
msgid ""
"The user account to use when connecting to the remote machine over SSH.  "
"Note that the SSH key pair must @emph{not} be passphrase-protected, to allow "
"non-interactive logins."
msgstr ""

#. type: item
#: doc/guix.texi:1180
#, no-wrap
msgid "host-key"
msgstr ""

#. type: table
#: doc/guix.texi:1184
msgid ""
"This must be the machine's SSH @dfn{public host key} in OpenSSH format.  "
"This is used to authenticate the machine when we connect to it.  It is a "
"long string that looks like this:"
msgstr ""

#. type: example
#: doc/guix.texi:1187
#, no-wrap
msgid "ssh-ed25519 AAAAC3NzaC@dots{}mde+UhL hint@@example.org\n"
msgstr ""

#. type: table
#: doc/guix.texi:1192
msgid ""
"If the machine is running the OpenSSH daemon, @command{sshd}, the host key "
"can be found in a file such as @file{/etc/ssh/ssh_host_ed25519_key.pub}."
msgstr ""

#. type: table
#: doc/guix.texi:1197
msgid ""
"If the machine is running the SSH daemon of GNU@tie{}lsh, @command{lshd}, "
"the host key is in @file{/etc/lsh/host-key.pub} or a similar file.  It can "
"be converted to the OpenSSH format using @command{lsh-export-key} "
"(@pxref{Converting keys,,, lsh, LSH Manual}):"
msgstr ""

#. type: example
#: doc/guix.texi:1201
#, no-wrap
msgid ""
"$ lsh-export-key --openssh < /etc/lsh/host-key.pub\n"
"ssh-rsa AAAAB3NzaC1yc2EAAAAEOp8FoQAAAQEAs1eB46LV@dots{}\n"
msgstr ""

#. type: deftp
#: doc/guix.texi:1206
msgid "A number of optional fields may be specified:"
msgstr ""

#. type: item
#: doc/guix.texi:1209 doc/guix.texi:31331
#, no-wrap
msgid "@code{port} (default: @code{22})"
msgstr ""

#. type: table
#: doc/guix.texi:1211
msgid "Port number of SSH server on the machine."
msgstr ""

#. type: item
#: doc/guix.texi:1212
#, no-wrap
msgid "@code{private-key} (default: @file{~root/.ssh/id_rsa})"
msgstr ""

#. type: table
#: doc/guix.texi:1215
msgid ""
"The SSH private key file to use when connecting to the machine, in OpenSSH "
"format.  This key must not be protected with a passphrase."
msgstr ""

#. type: table
#: doc/guix.texi:1218
msgid ""
"Note that the default value is the private key @emph{of the root account}.  "
"Make sure it exists if you use the default."
msgstr ""

#. type: item
#: doc/guix.texi:1219
#, no-wrap
msgid "@code{compression} (default: @code{\"zlib@@openssh.com,zlib\"})"
msgstr ""

#. type: itemx
#: doc/guix.texi:1220
#, no-wrap
msgid "@code{compression-level} (default: @code{3})"
msgstr ""

#. type: table
#: doc/guix.texi:1222
msgid "The SSH-level compression methods and compression level requested."
msgstr ""

#. type: table
#: doc/guix.texi:1225
msgid ""
"Note that offloading relies on SSH compression to reduce bandwidth usage "
"when transferring files to and from build machines."
msgstr ""

#. type: item
#: doc/guix.texi:1226
#, no-wrap
msgid "@code{daemon-socket} (default: @code{\"/var/guix/daemon-socket/socket\"})"
msgstr ""

#. type: table
#: doc/guix.texi:1229
msgid ""
"File name of the Unix-domain socket @command{guix-daemon} is listening to on "
"that machine."
msgstr ""

#. type: item
#: doc/guix.texi:1230
#, no-wrap
msgid "@code{overload-threshold} (default: @code{0.6})"
msgstr ""

#. type: table
#: doc/guix.texi:1236
msgid ""
"The load threshold above which a potential offload machine is disregarded by "
"the offload scheduler.  The value roughly translates to the total processor "
"usage of the build machine, ranging from 0.0 (0%) to 1.0 (100%).  It can "
"also be disabled by setting @code{overload-threshold} to @code{#f}."
msgstr ""

#. type: item
#: doc/guix.texi:1237
#, no-wrap
msgid "@code{parallel-builds} (default: @code{1})"
msgstr ""

#. type: table
#: doc/guix.texi:1239
msgid "The number of builds that may run in parallel on the machine."
msgstr ""

#. type: item
#: doc/guix.texi:1240
#, no-wrap
msgid "@code{speed} (default: @code{1.0})"
msgstr ""

#. type: table
#: doc/guix.texi:1243
msgid ""
"A ``relative speed factor''.  The offload scheduler will tend to prefer "
"machines with a higher speed factor."
msgstr ""

#. type: item
#: doc/guix.texi:1244
#, no-wrap
msgid "@code{features} (default: @code{'()})"
msgstr ""

#. type: table
#: doc/guix.texi:1249
msgid ""
"A list of strings denoting specific features supported by the machine.  An "
"example is @code{\"kvm\"} for machines that have the KVM Linux modules and "
"corresponding hardware support.  Derivations can request features by name, "
"and they will be scheduled on matching build machines."
msgstr ""

#. type: Plain text
#: doc/guix.texi:1255
msgid ""
"The @command{guix} command must be in the search path on the build "
"machines.  You can check whether this is the case by running:"
msgstr ""

#. type: example
#: doc/guix.texi:1258
#, no-wrap
msgid "ssh build-machine guix repl --version\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:1265
msgid ""
"There is one last thing to do once @file{machines.scm} is in place.  As "
"explained above, when offloading, files are transferred back and forth "
"between the machine stores.  For this to work, you first need to generate a "
"key pair on each machine to allow the daemon to export signed archives of "
"files from the store (@pxref{Invoking guix archive}):"
msgstr ""

#. type: example
#: doc/guix.texi:1268 doc/guix.texi:31259
#, no-wrap
msgid "# guix archive --generate-key\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:1273
msgid ""
"Each build machine must authorize the key of the master machine so that it "
"accepts store items it receives from the master:"
msgstr ""

#. type: example
#: doc/guix.texi:1276
#, no-wrap
msgid "# guix archive --authorize < master-public-key.txt\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:1280
msgid ""
"Likewise, the master machine must authorize the key of each build machine."
msgstr ""

#. type: Plain text
#: doc/guix.texi:1286
msgid ""
"All the fuss with keys is here to express pairwise mutual trust relations "
"between the master and the build machines.  Concretely, when the master "
"receives files from a build machine (and @i{vice versa}), its build daemon "
"can make sure they are genuine, have not been tampered with, and that they "
"are signed by an authorized key."
msgstr ""

#. type: cindex
#: doc/guix.texi:1287
#, no-wrap
msgid "offload test"
msgstr ""

#. type: Plain text
#: doc/guix.texi:1290
msgid ""
"To test whether your setup is operational, run this command on the master "
"node:"
msgstr ""

#. type: example
#: doc/guix.texi:1293
#, no-wrap
msgid "# guix offload test\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:1299
msgid ""
"This will attempt to connect to each of the build machines specified in "
"@file{/etc/guix/machines.scm}, make sure Guile and the Guix modules are "
"available on each machine, attempt to export to the machine and import from "
"it, and report any error in the process."
msgstr ""

#. type: Plain text
#: doc/guix.texi:1302
msgid ""
"If you want to test a different machine file, just specify it on the command "
"line:"
msgstr ""

#. type: example
#: doc/guix.texi:1305
#, no-wrap
msgid "# guix offload test machines-qualif.scm\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:1309
msgid ""
"Last, you can test the subset of the machines whose name matches a regular "
"expression like this:"
msgstr ""

#. type: example
#: doc/guix.texi:1312
#, no-wrap
msgid "# guix offload test machines.scm '\\.gnu\\.org$'\n"
msgstr ""

#. type: cindex
#: doc/guix.texi:1314
#, no-wrap
msgid "offload status"
msgstr ""

#. type: Plain text
#: doc/guix.texi:1317
msgid ""
"To display the current load of all build hosts, run this command on the main "
"node:"
msgstr ""

#. type: example
#: doc/guix.texi:1320
#, no-wrap
msgid "# guix offload status\n"
msgstr ""

#. type: cindex
#: doc/guix.texi:1326
#, no-wrap
msgid "SELinux, daemon policy"
msgstr ""

#. type: cindex
#: doc/guix.texi:1327
#, no-wrap
msgid "mandatory access control, SELinux"
msgstr ""

#. type: cindex
#: doc/guix.texi:1328
#, no-wrap
msgid "security, guix-daemon"
msgstr ""

#. type: Plain text
#: doc/guix.texi:1334
msgid ""
"Guix includes an SELinux policy file at @file{etc/guix-daemon.cil} that can "
"be installed on a system where SELinux is enabled, in order to label Guix "
"files and to specify the expected behavior of the daemon.  Since Guix System "
"does not provide an SELinux base policy, the daemon policy cannot be used on "
"Guix System."
msgstr ""

#. type: subsubsection
#: doc/guix.texi:1335
#, no-wrap
msgid "Installing the SELinux policy"
msgstr ""

#. type: cindex
#: doc/guix.texi:1336
#, no-wrap
msgid "SELinux, policy installation"
msgstr ""

#. type: Plain text
#: doc/guix.texi:1338
msgid "To install the policy run this command as root:"
msgstr ""

#. type: example
#: doc/guix.texi:1341
#, no-wrap
msgid "semodule -i etc/guix-daemon.cil\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:1345
msgid ""
"Then relabel the file system with @code{restorecon} or by a different "
"mechanism provided by your system."
msgstr ""

#. type: Plain text
#: doc/guix.texi:1350
msgid ""
"Once the policy is installed, the file system has been relabeled, and the "
"daemon has been restarted, it should be running in the @code{guix_daemon_t} "
"context.  You can confirm this with the following command:"
msgstr ""

#. type: example
#: doc/guix.texi:1353
#, no-wrap
msgid "ps -Zax | grep guix-daemon\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:1358
msgid ""
"Monitor the SELinux log files as you run a command like @code{guix build "
"hello} to convince yourself that SELinux permits all necessary operations."
msgstr ""

#. type: cindex
#: doc/guix.texi:1360
#, no-wrap
msgid "SELinux, limitations"
msgstr ""

#. type: Plain text
#: doc/guix.texi:1365
msgid ""
"This policy is not perfect.  Here is a list of limitations or quirks that "
"should be considered when deploying the provided SELinux policy for the Guix "
"daemon."
msgstr ""

#. type: enumerate
#: doc/guix.texi:1372
msgid ""
"@code{guix_daemon_socket_t} isn’t actually used.  None of the socket "
"operations involve contexts that have anything to do with "
"@code{guix_daemon_socket_t}.  It doesn’t hurt to have this unused label, but "
"it would be preferrable to define socket rules for only this label."
msgstr ""

#. type: enumerate
#: doc/guix.texi:1383
msgid ""
"@code{guix gc} cannot access arbitrary links to profiles.  By design, the "
"file label of the destination of a symlink is independent of the file label "
"of the link itself.  Although all profiles under $localstatedir are "
"labelled, the links to these profiles inherit the label of the directory "
"they are in.  For links in the user’s home directory this will be "
"@code{user_home_t}.  But for links from the root user’s home directory, or "
"@file{/tmp}, or the HTTP server’s working directory, etc, this won’t work.  "
"@code{guix gc} would be prevented from reading and following these links."
msgstr ""

#. type: enumerate
#: doc/guix.texi:1388
msgid ""
"The daemon’s feature to listen for TCP connections might no longer work.  "
"This might require extra rules, because SELinux treats network sockets "
"differently from files."
msgstr ""

#. type: enumerate
#: doc/guix.texi:1399
msgid ""
"Currently all files with a name matching the regular expression @code{/gnu/"
"store/.+-(guix-.+|profile)/bin/guix-daemon} are assigned the label "
"@code{guix_daemon_exec_t}; this means that @emph{any} file with that name in "
"any profile would be permitted to run in the @code{guix_daemon_t} domain.  "
"This is not ideal.  An attacker could build a package that provides this "
"executable and convince a user to install and run it, which lifts it into "
"the @code{guix_daemon_t} domain.  At that point SELinux could not prevent it "
"from accessing files that are allowed for processes in that domain."
msgstr ""

#. type: enumerate
#: doc/guix.texi:1407
msgid ""
"We could generate a much more restrictive policy at installation time, so "
"that only the @emph{exact} file name of the currently installed @code{guix-"
"daemon} executable would be labelled with @code{guix_daemon_exec_t}, instead "
"of using a broad regular expression.  The downside is that root would have "
"to install or upgrade the policy at installation time whenever the Guix "
"package that provides the effectively running @code{guix-daemon} executable "
"is upgraded."
msgstr ""

#. type: section
#: doc/guix.texi:1410
#, no-wrap
msgid "Invoking @command{guix-daemon}"
msgstr ""

#. type: Plain text
#: doc/guix.texi:1416
msgid ""
"The @command{guix-daemon} program implements all the functionality to access "
"the store.  This includes launching build processes, running the garbage "
"collector, querying the availability of a build result, etc.  It is normally "
"run as @code{root} like this:"
msgstr ""

#. type: Plain text
#: doc/guix.texi:1423
msgid "For details on how to set it up, @pxref{Setting Up the Daemon}."
msgstr ""

#. type: cindex
#: doc/guix.texi:1425
#, no-wrap
msgid "container, build environment"
msgstr ""

#. type: cindex
#: doc/guix.texi:1427 doc/guix.texi:2937 doc/guix.texi:3789 doc/guix.texi:12380
#, no-wrap
msgid "reproducible builds"
msgstr ""

#. type: Plain text
#: doc/guix.texi:1439
msgid ""
"By default, @command{guix-daemon} launches build processes under different "
"UIDs, taken from the build group specified with @option{--build-users-"
"group}.  In addition, each build process is run in a chroot environment that "
"only contains the subset of the store that the build process depends on, as "
"specified by its derivation (@pxref{Programming Interface, derivation}), "
"plus a set of specific system directories.  By default, the latter contains "
"@file{/dev} and @file{/dev/pts}.  Furthermore, on GNU/Linux, the build "
"environment is a @dfn{container}: in addition to having its own file system "
"tree, it has a separate mount name space, its own PID name space, network "
"name space, etc.  This helps achieve reproducible builds (@pxref{Features})."
msgstr ""

#. type: Plain text
#: doc/guix.texi:1445
msgid ""
"When the daemon performs a build on behalf of the user, it creates a build "
"directory under @file{/tmp} or under the directory specified by its "
"@env{TMPDIR} environment variable.  This directory is shared with the "
"container for the duration of the build, though within the container, the "
"build tree is always called @file{/tmp/guix-build-@var{name}.drv-0}."
msgstr ""

#. type: Plain text
#: doc/guix.texi:1449
msgid ""
"The build directory is automatically deleted upon completion, unless the "
"build failed and the client specified @option{--keep-failed} "
"(@pxref{Invoking guix build, @option{--keep-failed}})."
msgstr ""

#. type: Plain text
#: doc/guix.texi:1455
msgid ""
"The daemon listens for connections and spawns one sub-process for each "
"session started by a client (one of the @command{guix} sub-commands).  The "
"@command{guix processes} command allows you to get an overview of the "
"activity on your system by viewing each of the active sessions and clients.  "
"@xref{Invoking guix processes}, for more information."
msgstr ""

#. type: Plain text
#: doc/guix.texi:1457
msgid "The following command-line options are supported:"
msgstr ""

#. type: item
#: doc/guix.texi:1459
#, no-wrap
msgid "--build-users-group=@var{group}"
msgstr ""

#. type: table
#: doc/guix.texi:1462
msgid ""
"Take users from @var{group} to run build processes (@pxref{Setting Up the "
"Daemon, build users})."
msgstr ""

#. type: item
#: doc/guix.texi:1463 doc/guix.texi:9972
#, no-wrap
msgid "--no-substitutes"
msgstr ""

#. type: cindex
#: doc/guix.texi:1464 doc/guix.texi:2949 doc/guix.texi:3547
#, no-wrap
msgid "substitutes"
msgstr ""

#. type: table
#: doc/guix.texi:1468 doc/guix.texi:9976
msgid ""
"Do not use substitutes for build products.  That is, always build things "
"locally instead of allowing downloads of pre-built binaries "
"(@pxref{Substitutes})."
msgstr ""

#. type: table
#: doc/guix.texi:1472
msgid ""
"When the daemon runs with @option{--no-substitutes}, clients can still "
"explicitly enable substitution @i{via} the @code{set-build-options} remote "
"procedure call (@pxref{The Store})."
msgstr ""

#. type: anchor{#1}
#: doc/guix.texi:1474
msgid "daemon-substitute-urls"
msgstr ""

#. type: item
#: doc/guix.texi:1474 doc/guix.texi:9959 doc/guix.texi:11822
#: doc/guix.texi:12526 doc/guix.texi:12751
#, no-wrap
msgid "--substitute-urls=@var{urls}"
msgstr ""

#. type: table
#: doc/guix.texi:1478
msgid ""
"Consider @var{urls} the default whitespace-separated list of substitute "
"source URLs.  When this option is omitted, @indicateurl{https://"
"@value{SUBSTITUTE-SERVER}} is used."
msgstr ""

#. type: table
#: doc/guix.texi:1481
msgid ""
"This means that substitutes may be downloaded from @var{urls}, as long as "
"they are signed by a trusted signature (@pxref{Substitutes})."
msgstr ""

#. type: table
#: doc/guix.texi:1484
msgid ""
"@xref{Getting Substitutes from Other Servers}, for more information on how "
"to configure the daemon to get substitutes from other servers."
msgstr ""

#. type: item
#: doc/guix.texi:1486 doc/guix.texi:9995
#, no-wrap
msgid "--no-offload"
msgstr ""

#. type: table
#: doc/guix.texi:1490 doc/guix.texi:9999
msgid ""
"Do not use offload builds to other machines (@pxref{Daemon Offload Setup}).  "
"That is, always build things locally instead of offloading builds to remote "
"machines."
msgstr ""

#. type: item
#: doc/guix.texi:1491
#, no-wrap
msgid "--cache-failures"
msgstr ""

#. type: table
#: doc/guix.texi:1493
msgid "Cache build failures.  By default, only successful builds are cached."
msgstr ""

#. type: table
#: doc/guix.texi:1498
msgid ""
"When this option is used, @command{guix gc --list-failures} can be used to "
"query the set of store items marked as failed; @command{guix gc --clear-"
"failures} removes store items from the set of cached failures.  "
"@xref{Invoking guix gc}."
msgstr ""

#. type: item
#: doc/guix.texi:1499 doc/guix.texi:10024
#, no-wrap
msgid "--cores=@var{n}"
msgstr ""

#. type: itemx
#: doc/guix.texi:1500 doc/guix.texi:10025
#, no-wrap
msgid "-c @var{n}"
msgstr ""

#. type: table
#: doc/guix.texi:1503
msgid ""
"Use @var{n} CPU cores to build each derivation; @code{0} means as many as "
"available."
msgstr ""

#. type: table
#: doc/guix.texi:1507
msgid ""
"The default value is @code{0}, but it may be overridden by clients, such as "
"the @option{--cores} option of @command{guix build} (@pxref{Invoking guix "
"build})."
msgstr ""

#. type: table
#: doc/guix.texi:1511
msgid ""
"The effect is to define the @env{NIX_BUILD_CORES} environment variable in "
"the build process, which can then use it to exploit internal parallelism---"
"for instance, by running @code{make -j$NIX_BUILD_CORES}."
msgstr ""

#. type: item
#: doc/guix.texi:1512 doc/guix.texi:10029
#, no-wrap
msgid "--max-jobs=@var{n}"
msgstr ""

#. type: itemx
#: doc/guix.texi:1513 doc/guix.texi:10030
#, no-wrap
msgid "-M @var{n}"
msgstr ""

#. type: table
#: doc/guix.texi:1518
msgid ""
"Allow at most @var{n} build jobs in parallel.  The default value is "
"@code{1}.  Setting it to @code{0} means that no builds will be performed "
"locally; instead, the daemon will offload builds (@pxref{Daemon Offload "
"Setup}), or simply fail."
msgstr ""

#. type: item
#: doc/guix.texi:1519 doc/guix.texi:10000
#, no-wrap
msgid "--max-silent-time=@var{seconds}"
msgstr ""

#. type: table
#: doc/guix.texi:1522 doc/guix.texi:10003
msgid ""
"When the build or substitution process remains silent for more than "
"@var{seconds}, terminate it and report a build failure."
msgstr ""

#. type: table
#: doc/guix.texi:1524 doc/guix.texi:1533
msgid "The default value is @code{0}, which disables the timeout."
msgstr ""

#. type: table
#: doc/guix.texi:1527
msgid ""
"The value specified here can be overridden by clients (@pxref{Common Build "
"Options, @option{--max-silent-time}})."
msgstr ""

#. type: item
#: doc/guix.texi:1528 doc/guix.texi:10007
#, no-wrap
msgid "--timeout=@var{seconds}"
msgstr ""

#. type: table
#: doc/guix.texi:1531 doc/guix.texi:10010
msgid ""
"Likewise, when the build or substitution process lasts for more than "
"@var{seconds}, terminate it and report a build failure."
msgstr ""

#. type: table
#: doc/guix.texi:1536
msgid ""
"The value specified here can be overridden by clients (@pxref{Common Build "
"Options, @option{--timeout}})."
msgstr ""

#. type: item
#: doc/guix.texi:1537
#, no-wrap
msgid "--rounds=@var{N}"
msgstr ""

#. type: table
#: doc/guix.texi:1542
msgid ""
"Build each derivation @var{n} times in a row, and raise an error if "
"consecutive build results are not bit-for-bit identical.  Note that this "
"setting can be overridden by clients such as @command{guix build} "
"(@pxref{Invoking guix build})."
msgstr ""

#. type: table
#: doc/guix.texi:1546 doc/guix.texi:9994 doc/guix.texi:10499
msgid ""
"When used in conjunction with @option{--keep-failed}, the differing output "
"is kept in the store, under @file{/gnu/store/@dots{}-check}.  This makes it "
"easy to look for differences between the two results."
msgstr ""

#. type: item
#: doc/guix.texi:1547
#, no-wrap
msgid "--debug"
msgstr ""

#. type: table
#: doc/guix.texi:1549
msgid "Produce debugging output."
msgstr ""

#. type: table
#: doc/guix.texi:1553
msgid ""
"This is useful to debug daemon start-up issues, but then it may be "
"overridden by clients, for example the @option{--verbosity} option of "
"@command{guix build} (@pxref{Invoking guix build})."
msgstr ""

#. type: item
#: doc/guix.texi:1554
#, no-wrap
msgid "--chroot-directory=@var{dir}"
msgstr ""

#. type: table
#: doc/guix.texi:1556
msgid "Add @var{dir} to the build chroot."
msgstr ""

#. type: table
#: doc/guix.texi:1562
msgid ""
"Doing this may change the result of build processes---for instance if they "
"use optional dependencies found in @var{dir} when it is available, and not "
"otherwise.  For that reason, it is not recommended to do so.  Instead, make "
"sure that each derivation declares all the inputs that it needs."
msgstr ""

#. type: item
#: doc/guix.texi:1563
#, no-wrap
msgid "--disable-chroot"
msgstr ""

#. type: table
#: doc/guix.texi:1565
msgid "Disable chroot builds."
msgstr ""

#. type: table
#: doc/guix.texi:1570
msgid ""
"Using this option is not recommended since, again, it would allow build "
"processes to gain access to undeclared dependencies.  It is necessary, "
"though, when @command{guix-daemon} is running under an unprivileged user "
"account."
msgstr ""

#. type: item
#: doc/guix.texi:1571
#, no-wrap
msgid "--log-compression=@var{type}"
msgstr ""

#. type: table
#: doc/guix.texi:1574
msgid ""
"Compress build logs according to @var{type}, one of @code{gzip}, "
"@code{bzip2}, or @code{none}."
msgstr ""

#. type: table
#: doc/guix.texi:1578
msgid ""
"Unless @option{--lose-logs} is used, all the build logs are kept in the "
"@var{localstatedir}.  To save space, the daemon automatically compresses "
"them with Bzip2 by default."
msgstr ""

#. type: item
#: doc/guix.texi:1579
#, no-wrap
msgid "--disable-deduplication"
msgstr ""

#. type: cindex
#: doc/guix.texi:1580 doc/guix.texi:4127
#, no-wrap
msgid "deduplication"
msgstr ""

#. type: table
#: doc/guix.texi:1582
msgid "Disable automatic file ``deduplication'' in the store."
msgstr ""

#. type: table
#: doc/guix.texi:1589
msgid ""
"By default, files added to the store are automatically ``deduplicated'': if "
"a newly added file is identical to another one found in the store, the "
"daemon makes the new file a hard link to the other file.  This can "
"noticeably reduce disk usage, at the expense of slightly increased input/"
"output load at the end of a build process.  This option disables this "
"optimization."
msgstr ""

#. type: item
#: doc/guix.texi:1590
#, no-wrap
msgid "--gc-keep-outputs[=yes|no]"
msgstr ""

#. type: table
#: doc/guix.texi:1593
msgid ""
"Tell whether the garbage collector (GC) must keep outputs of live "
"derivations."
msgstr ""

#. type: cindex
#: doc/guix.texi:1594 doc/guix.texi:3940
#, no-wrap
msgid "GC roots"
msgstr ""

#. type: cindex
#: doc/guix.texi:1595 doc/guix.texi:3941
#, no-wrap
msgid "garbage collector roots"
msgstr ""

#. type: table
#: doc/guix.texi:1601
msgid ""
"When set to @code{yes}, the GC will keep the outputs of any live derivation "
"available in the store---the @file{.drv} files.  The default is @code{no}, "
"meaning that derivation outputs are kept only if they are reachable from a "
"GC root.  @xref{Invoking guix gc}, for more on GC roots."
msgstr ""

#. type: item
#: doc/guix.texi:1602
#, no-wrap
msgid "--gc-keep-derivations[=yes|no]"
msgstr ""

#. type: table
#: doc/guix.texi:1605
msgid ""
"Tell whether the garbage collector (GC) must keep derivations corresponding "
"to live outputs."
msgstr ""

#. type: table
#: doc/guix.texi:1611
msgid ""
"When set to @code{yes}, as is the case by default, the GC keeps "
"derivations---i.e., @file{.drv} files---as long as at least one of their "
"outputs is live.  This allows users to keep track of the origins of items in "
"their store.  Setting it to @code{no} saves a bit of disk space."
msgstr ""

#. type: table
#: doc/guix.texi:1620
msgid ""
"In this way, setting @option{--gc-keep-derivations} to @code{yes} causes "
"liveness to flow from outputs to derivations, and setting @option{--gc-keep-"
"outputs} to @code{yes} causes liveness to flow from derivations to outputs.  "
"When both are set to @code{yes}, the effect is to keep all the build "
"prerequisites (the sources, compiler, libraries, and other build-time tools) "
"of live objects in the store, regardless of whether these prerequisites are "
"reachable from a GC root.  This is convenient for developers since it saves "
"rebuilds or downloads."
msgstr ""

#. type: item
#: doc/guix.texi:1621
#, no-wrap
msgid "--impersonate-linux-2.6"
msgstr ""

#. type: table
#: doc/guix.texi:1624
msgid ""
"On Linux-based systems, impersonate Linux 2.6.  This means that the kernel's "
"@command{uname} system call will report 2.6 as the release number."
msgstr ""

#. type: table
#: doc/guix.texi:1627
msgid ""
"This might be helpful to build programs that (usually wrongfully) depend on "
"the kernel version number."
msgstr ""

#. type: item
#: doc/guix.texi:1628
#, no-wrap
msgid "--lose-logs"
msgstr ""

#. type: table
#: doc/guix.texi:1631
msgid ""
"Do not keep build logs.  By default they are kept under "
"@file{@var{localstatedir}/guix/log}."
msgstr ""

#. type: item
#: doc/guix.texi:1632 doc/guix.texi:4368 doc/guix.texi:5636 doc/guix.texi:6007
#: doc/guix.texi:10443 doc/guix.texi:11849 doc/guix.texi:12100
#: doc/guix.texi:12756 doc/guix.texi:30230 doc/guix.texi:31006
#, no-wrap
msgid "--system=@var{system}"
msgstr ""

#. type: table
#: doc/guix.texi:1636
msgid ""
"Assume @var{system} as the current system type.  By default it is the "
"architecture/kernel pair found at configure time, such as @code{x86_64-"
"linux}."
msgstr ""

#. type: item
#: doc/guix.texi:1637 doc/guix.texi:9805
#, no-wrap
msgid "--listen=@var{endpoint}"
msgstr ""

#. type: table
#: doc/guix.texi:1642
msgid ""
"Listen for connections on @var{endpoint}.  @var{endpoint} is interpreted as "
"the file name of a Unix-domain socket if it starts with @code{/} (slash "
"sign).  Otherwise, @var{endpoint} is interpreted as a host name or host name "
"and port to listen to.  Here are a few examples:"
msgstr ""

#. type: item
#: doc/guix.texi:1644
#, no-wrap
msgid "--listen=/gnu/var/daemon"
msgstr ""

#. type: table
#: doc/guix.texi:1647
msgid ""
"Listen for connections on the @file{/gnu/var/daemon} Unix-domain socket, "
"creating it if needed."
msgstr ""

#. type: item
#: doc/guix.texi:1648
#, no-wrap
msgid "--listen=localhost"
msgstr ""

#. type: cindex
#: doc/guix.texi:1649 doc/guix.texi:8489
#, no-wrap
msgid "daemon, remote access"
msgstr ""

#. type: cindex
#: doc/guix.texi:1650 doc/guix.texi:8490
#, no-wrap
msgid "remote access to the daemon"
msgstr ""

#. type: cindex
#: doc/guix.texi:1651 doc/guix.texi:8491
#, no-wrap
msgid "daemon, cluster setup"
msgstr ""

#. type: cindex
#: doc/guix.texi:1652 doc/guix.texi:8492
#, no-wrap
msgid "clusters, daemon setup"
msgstr ""

#. type: table
#: doc/guix.texi:1655
msgid ""
"Listen for TCP connections on the network interface corresponding to "
"@code{localhost}, on port 44146."
msgstr ""

#. type: item
#: doc/guix.texi:1656
#, no-wrap
msgid "--listen=128.0.0.42:1234"
msgstr ""

#. type: table
#: doc/guix.texi:1659
msgid ""
"Listen for TCP connections on the network interface corresponding to "
"@code{128.0.0.42}, on port 1234."
msgstr ""

#. type: table
#: doc/guix.texi:1666
msgid ""
"This option can be repeated multiple times, in which case @command{guix-"
"daemon} accepts connections on all the specified endpoints.  Users can tell "
"client commands what endpoint to connect to by setting the "
"@env{GUIX_DAEMON_SOCKET} environment variable (@pxref{The Store, "
"@env{GUIX_DAEMON_SOCKET}})."
msgstr ""

#. type: quotation
#: doc/guix.texi:1673
msgid ""
"The daemon protocol is @emph{unauthenticated and unencrypted}.  Using "
"@option{--listen=@var{host}} is suitable on local networks, such as "
"clusters, where only trusted nodes may connect to the build daemon.  In "
"other cases where remote access to the daemon is needed, we recommend using "
"Unix-domain sockets along with SSH."
msgstr ""

#. type: table
#: doc/guix.texi:1678
msgid ""
"When @option{--listen} is omitted, @command{guix-daemon} listens for "
"connections on the Unix-domain socket located at @file{@var{localstatedir}/"
"guix/daemon-socket/socket}."
msgstr ""

#. type: Plain text
#: doc/guix.texi:1688
msgid ""
"When using Guix on top of GNU/Linux distribution other than Guix System---a "
"so-called @dfn{foreign distro}---a few additional steps are needed to get "
"everything in place.  Here are some of them."
msgstr ""

#. type: anchor{#1}
#: doc/guix.texi:1692
msgid "locales-and-locpath"
msgstr ""

#. type: cindex
#: doc/guix.texi:1692
#, no-wrap
msgid "locales, when not on Guix System"
msgstr ""

#. type: vindex
#: doc/guix.texi:1693 doc/guix.texi:14207
#, no-wrap
msgid "LOCPATH"
msgstr ""

#. type: vindex
#: doc/guix.texi:1694
#, no-wrap
msgid "GUIX_LOCPATH"
msgstr ""

#. type: Plain text
#: doc/guix.texi:1699
msgid ""
"Packages installed @i{via} Guix will not use the locale data of the host "
"system.  Instead, you must first install one of the locale packages "
"available with Guix and then define the @env{GUIX_LOCPATH} environment "
"variable:"
msgstr ""

#. type: example
#: doc/guix.texi:1703
#, no-wrap
msgid ""
"$ guix install glibc-locales\n"
"$ export GUIX_LOCPATH=$HOME/.guix-profile/lib/locale\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:1709
msgid ""
"Note that the @code{glibc-locales} package contains data for all the locales "
"supported by the GNU@tie{}libc and weighs in at around 917@tie{}MiB.  "
"Alternatively, the @code{glibc-utf8-locales} is smaller but limited to a few "
"UTF-8 locales."
msgstr ""

#. type: Plain text
#: doc/guix.texi:1713
msgid ""
"The @env{GUIX_LOCPATH} variable plays a role similar to @env{LOCPATH} "
"(@pxref{Locale Names, @env{LOCPATH},, libc, The GNU C Library Reference "
"Manual}).  There are two important differences though:"
msgstr ""

#. type: enumerate
#: doc/guix.texi:1720
msgid ""
"@env{GUIX_LOCPATH} is honored only by the libc in Guix, and not by the libc "
"provided by foreign distros.  Thus, using @env{GUIX_LOCPATH} allows you to "
"make sure the programs of the foreign distro will not end up loading "
"incompatible locale data."
msgstr ""

#. type: enumerate
#: doc/guix.texi:1727
msgid ""
"libc suffixes each entry of @env{GUIX_LOCPATH} with @code{/X.Y}, where "
"@code{X.Y} is the libc version---e.g., @code{2.22}.  This means that, should "
"your Guix profile contain a mixture of programs linked against different "
"libc version, each libc version will only try to load locale data in the "
"right format."
msgstr ""

#. type: Plain text
#: doc/guix.texi:1731
msgid ""
"This is important because the locale data format used by different libc "
"versions may be incompatible."
msgstr ""

#. type: cindex
#: doc/guix.texi:1734
#, no-wrap
msgid "name service switch, glibc"
msgstr ""

#. type: cindex
#: doc/guix.texi:1735
#, no-wrap
msgid "NSS (name service switch), glibc"
msgstr ""

#. type: cindex
#: doc/guix.texi:1736
#, no-wrap
msgid "nscd (name service caching daemon)"
msgstr ""

#. type: cindex
#: doc/guix.texi:1737
#, no-wrap
msgid "name service caching daemon (nscd)"
msgstr ""

#. type: Plain text
#: doc/guix.texi:1744
msgid ""
"When using Guix on a foreign distro, we @emph{strongly recommend} that the "
"system run the GNU C library's @dfn{name service cache daemon}, "
"@command{nscd}, which should be listening on the @file{/var/run/nscd/socket} "
"socket.  Failing to do that, applications installed with Guix may fail to "
"look up host names or user accounts, or may even crash.  The next paragraphs "
"explain why."
msgstr ""

#. type: file{#1}
#: doc/guix.texi:1745
#, no-wrap
msgid "nsswitch.conf"
msgstr ""

#. type: Plain text
#: doc/guix.texi:1750
msgid ""
"The GNU C library implements a @dfn{name service switch} (NSS), which is an "
"extensible mechanism for ``name lookups'' in general: host name resolution, "
"user accounts, and more (@pxref{Name Service Switch,,, libc, The GNU C "
"Library Reference Manual})."
msgstr ""

#. type: cindex
#: doc/guix.texi:1751
#, no-wrap
msgid "Network information service (NIS)"
msgstr ""

#. type: cindex
#: doc/guix.texi:1752
#, no-wrap
msgid "NIS (Network information service)"
msgstr ""

#. type: Plain text
#: doc/guix.texi:1761
msgid ""
"Being extensible, the NSS supports @dfn{plugins}, which provide new name "
"lookup implementations: for example, the @code{nss-mdns} plugin allow "
"resolution of @code{.local} host names, the @code{nis} plugin allows user "
"account lookup using the Network information service (NIS), and so on.  "
"These extra ``lookup services'' are configured system-wide in @file{/etc/"
"nsswitch.conf}, and all the programs running on the system honor those "
"settings (@pxref{NSS Configuration File,,, libc, The GNU C Reference "
"Manual})."
msgstr ""

#. type: Plain text
#: doc/guix.texi:1771
msgid ""
"When they perform a name lookup---for instance by calling the "
"@code{getaddrinfo} function in C---applications first try to connect to the "
"nscd; on success, nscd performs name lookups on their behalf.  If the nscd "
"is not running, then they perform the name lookup by themselves, by loading "
"the name lookup services into their own address space and running it.  These "
"name lookup services---the @file{libnss_*.so} files---are @code{dlopen}'d, "
"but they may come from the host system's C library, rather than from the C "
"library the application is linked against (the C library coming from Guix)."
msgstr ""

#. type: Plain text
#: doc/guix.texi:1776
msgid ""
"And this is where the problem is: if your application is linked against "
"Guix's C library (say, glibc 2.24) and tries to load NSS plugins from "
"another C library (say, @code{libnss_mdns.so} for glibc 2.22), it will "
"likely crash or have its name lookups fail unexpectedly."
msgstr ""

#. type: Plain text
#: doc/guix.texi:1781
msgid ""
"Running @command{nscd} on the system, among other advantages, eliminates "
"this binary incompatibility problem because those @code{libnss_*.so} files "
"are loaded in the @command{nscd} process, not in applications themselves."
msgstr ""

#. type: subsection
#: doc/guix.texi:1782
#, no-wrap
msgid "X11 Fonts"
msgstr ""

#. type: Plain text
#: doc/guix.texi:1792
msgid ""
"The majority of graphical applications use Fontconfig to locate and load "
"fonts and perform X11-client-side rendering.  The @code{fontconfig} package "
"in Guix looks for fonts in @file{$HOME/.guix-profile} by default.  Thus, to "
"allow graphical applications installed with Guix to display fonts, you have "
"to install fonts with Guix as well.  Essential font packages include "
"@code{gs-fonts}, @code{font-dejavu}, and @code{font-gnu-freefont}."
msgstr ""

#. type: code{#1}
#: doc/guix.texi:1793
#, no-wrap
msgid "fc-cache"
msgstr ""

#. type: cindex
#: doc/guix.texi:1794
#, no-wrap
msgid "font cache"
msgstr ""

#. type: Plain text
#: doc/guix.texi:1798
msgid ""
"Once you have installed or removed fonts, or when you notice an application "
"that does not find fonts, you may need to install Fontconfig and to force an "
"update of its font cache by running:"
msgstr ""

#. type: example
#: doc/guix.texi:1802
#, no-wrap
msgid ""
"guix install fontconfig\n"
"fc-cache -rv\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:1810
msgid ""
"To display text written in Chinese languages, Japanese, or Korean in "
"graphical applications, consider installing @code{font-adobe-source-han-"
"sans} or @code{font-wqy-zenhei}.  The former has multiple outputs, one per "
"language family (@pxref{Packages with Multiple Outputs}).  For instance, the "
"following command installs fonts for Chinese languages:"
msgstr ""

#. type: example
#: doc/guix.texi:1813
#, no-wrap
msgid "guix install font-adobe-source-han-sans:cn\n"
msgstr ""

#. type: code{#1}
#: doc/guix.texi:1815
#, no-wrap
msgid "xterm"
msgstr ""

#. type: Plain text
#: doc/guix.texi:1819
msgid ""
"Older programs such as @command{xterm} do not use Fontconfig and instead "
"rely on server-side font rendering.  Such programs require to specify a full "
"name of a font using XLFD (X Logical Font Description), like this:"
msgstr ""

#. type: example
#: doc/guix.texi:1822
#, no-wrap
msgid "-*-dejavu sans-medium-r-normal-*-*-100-*-*-*-*-*-1\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:1826
msgid ""
"To be able to use such full names for the TrueType fonts installed in your "
"Guix profile, you need to extend the font path of the X server:"
msgstr ""

#. type: example
#: doc/guix.texi:1831
#, no-wrap
msgid "xset +fp $(dirname $(readlink -f ~/.guix-profile/share/fonts/truetype/fonts.dir))\n"
msgstr ""

#. type: code{#1}
#: doc/guix.texi:1833
#, no-wrap
msgid "xlsfonts"
msgstr ""

#. type: Plain text
#: doc/guix.texi:1836
msgid ""
"After that, you can run @code{xlsfonts} (from @code{xlsfonts} package)  to "
"make sure your TrueType fonts are listed there."
msgstr ""

#. type: code{#1}
#: doc/guix.texi:1840 doc/guix.texi:29968
#, no-wrap
msgid "nss-certs"
msgstr ""

#. type: Plain text
#: doc/guix.texi:1843
msgid ""
"The @code{nss-certs} package provides X.509 certificates, which allow "
"programs to authenticate Web servers accessed over HTTPS."
msgstr ""

#. type: Plain text
#: doc/guix.texi:1848
msgid ""
"When using Guix on a foreign distro, you can install this package and define "
"the relevant environment variables so that packages know where to look for "
"certificates.  @xref{X.509 Certificates}, for detailed information."
msgstr ""

#. type: subsection
#: doc/guix.texi:1849
#, no-wrap
msgid "Emacs Packages"
msgstr ""

#. type: code{#1}
#: doc/guix.texi:1851
#, no-wrap
msgid "emacs"
msgstr ""

#. type: Plain text
#: doc/guix.texi:1857
msgid ""
"When you install Emacs packages with Guix, the Elisp files are placed under "
"the @file{share/emacs/site-lisp/} directory of the profile in which they are "
"installed.  The Elisp libraries are made available to Emacs through the "
"@env{EMACSLOADPATH} environment variable, which is set when installing Emacs "
"itself."
msgstr ""

#. type: Plain text
#: doc/guix.texi:1864
msgid ""
"Additionally, autoload definitions are automatically evaluated at the "
"initialization of Emacs, by the Guix-specific @code{guix-emacs-autoload-"
"packages} procedure.  If, for some reason, you want to avoid auto-loading "
"the Emacs packages installed with Guix, you can do so by running Emacs with "
"the @option{--no-site-file} option (@pxref{Init File,,, emacs, The GNU Emacs "
"Manual})."
msgstr ""

#. type: cindex
#: doc/guix.texi:1869
#, no-wrap
msgid "Upgrading Guix, on a foreign distro"
msgstr ""

#. type: Plain text
#: doc/guix.texi:1872
msgid "To upgrade Guix, run:"
msgstr ""

#. type: example
#: doc/guix.texi:1875 doc/guix.texi:2745
#, no-wrap
msgid "guix pull\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:1878
msgid "@xref{Invoking guix pull}, for more information."
msgstr ""

#. type: cindex
#: doc/guix.texi:1879
#, no-wrap
msgid "upgrading Guix for the root user, on a foreign distro"
msgstr ""

#. type: cindex
#: doc/guix.texi:1880
#, no-wrap
msgid "upgrading the Guix daemon, on a foreign distro"
msgstr ""

#. type: cindex
#: doc/guix.texi:1881
#, no-wrap
msgid "@command{guix pull} for the root user, on a foreign distro"
msgstr ""

#. type: Plain text
#: doc/guix.texi:1884
msgid "On a foreign distro, you can upgrade the build daemon by running:"
msgstr ""

#. type: example
#: doc/guix.texi:1887
#, no-wrap
msgid "sudo -i guix pull\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:1892
msgid ""
"followed by (assuming your distro uses the systemd service management tool):"
msgstr ""

#. type: example
#: doc/guix.texi:1895
#, no-wrap
msgid "systemctl restart guix-daemon.service\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:1899
msgid ""
"On Guix System, upgrading the daemon is achieved by reconfiguring the system "
"(@pxref{Invoking guix system, @code{guix system reconfigure}})."
msgstr ""

#. type: cindex
#: doc/guix.texi:1906
#, no-wrap
msgid "installing Guix System"
msgstr ""

#. type: cindex
#: doc/guix.texi:1907
#, no-wrap
msgid "Guix System, installation"
msgstr ""

#. type: Plain text
#: doc/guix.texi:1912
msgid ""
"This section explains how to install Guix System on a machine.  Guix, as a "
"package manager, can also be installed on top of a running GNU/Linux system, "
"@pxref{Installation}."
msgstr ""

#. type: quotation
#: doc/guix.texi:1921
msgid ""
"You are reading this documentation with an Info reader.  For details on how "
"to use it, hit the @key{RET} key (``return'' or ``enter'') on the link that "
"follows: @pxref{Top, Info reader,, info-stnd, Stand-alone GNU Info}.  Hit "
"@kbd{l} afterwards to come back here."
msgstr ""

#. type: quotation
#: doc/guix.texi:1924
msgid ""
"Alternatively, run @command{info info} in another tty to keep the manual "
"available."
msgstr ""

#. type: Plain text
#: doc/guix.texi:1945
msgid ""
"We consider Guix System to be ready for a wide range of ``desktop'' and "
"server use cases.  The reliability guarantees it provides---transactional "
"upgrades and rollbacks, reproducibility---make it a solid foundation."
msgstr ""

#. type: Plain text
#: doc/guix.texi:1948
msgid ""
"Nevertheless, before you proceed with the installation, be aware of the "
"following noteworthy limitations applicable to version @value{VERSION}:"
msgstr ""

#. type: itemize
#: doc/guix.texi:1952
msgid "Support for the Logical Volume Manager (LVM) is missing."
msgstr ""

#. type: itemize
#: doc/guix.texi:1956
msgid ""
"More and more system services are provided (@pxref{Services}), but some may "
"be missing."
msgstr ""

#. type: itemize
#: doc/guix.texi:1961
msgid ""
"GNOME, Xfce, LXDE, and Enlightenment are available (@pxref{Desktop "
"Services}), as well as a number of X11 window managers.  However, KDE is "
"currently missing."
msgstr ""

#. type: Plain text
#: doc/guix.texi:1966
msgid ""
"More than a disclaimer, this is an invitation to report issues (and success "
"stories!), and to join us in improving it.  @xref{Contributing}, for more "
"info."
msgstr ""

#. type: cindex
#: doc/guix.texi:1971
#, no-wrap
msgid "hardware support on Guix System"
msgstr ""

#. type: Plain text
#: doc/guix.texi:1980
msgid ""
"GNU@tie{}Guix focuses on respecting the user's computing freedom.  It builds "
"around the kernel Linux-libre, which means that only hardware for which free "
"software drivers and firmware exist is supported.  Nowadays, a wide range of "
"off-the-shelf hardware is supported on GNU/Linux-libre---from keyboards to "
"graphics cards to scanners and Ethernet controllers.  Unfortunately, there "
"are still areas where hardware vendors deny users control over their own "
"computing, and such hardware is not supported on Guix System."
msgstr ""

#. type: cindex
#: doc/guix.texi:1981
#, no-wrap
msgid "WiFi, hardware support"
msgstr ""

#. type: Plain text
#: doc/guix.texi:1990
msgid ""
"One of the main areas where free drivers or firmware are lacking is WiFi "
"devices.  WiFi devices known to work include those using Atheros chips "
"(AR9271 and AR7010), which corresponds to the @code{ath9k} Linux-libre "
"driver, and those using Broadcom/AirForce chips (BCM43xx with Wireless-Core "
"Revision 5), which corresponds to the @code{b43-open} Linux-libre driver.  "
"Free firmware exists for both and is available out-of-the-box on Guix "
"System, as part of @code{%base-firmware} (@pxref{operating-system Reference, "
"@code{firmware}})."
msgstr ""

#. type: cindex
#: doc/guix.texi:1991
#, no-wrap
msgid "RYF, Respects Your Freedom"
msgstr ""

#. type: Plain text
#: doc/guix.texi:1997
msgid ""
"The @uref{https://www.fsf.org/, Free Software Foundation} runs @uref{https://"
"www.fsf.org/ryf, @dfn{Respects Your Freedom}} (RYF), a certification program "
"for hardware products that respect your freedom and your privacy and ensure "
"that you have control over your device.  We encourage you to check the list "
"of RYF-certified devices."
msgstr ""

#. type: Plain text
#: doc/guix.texi:2001
msgid ""
"Another useful resource is the @uref{https://www.h-node.org/, H-Node} web "
"site.  It contains a catalog of hardware devices with information about "
"their support in GNU/Linux."
msgstr ""

#. type: Plain text
#: doc/guix.texi:2010
msgid ""
"An ISO-9660 installation image that can be written to a USB stick or burnt "
"to a DVD can be downloaded from @indicateurl{@value{BASE-URL}/guix-system-"
"install-@value{VERSION}.x86_64-linux.iso.xz}, where you can replace "
"@code{x86_64-linux} with one of:"
msgstr ""

#. type: table
#: doc/guix.texi:2014
msgid "for a GNU/Linux system on Intel/AMD-compatible 64-bit CPUs;"
msgstr ""

#. type: table
#: doc/guix.texi:2017
msgid "for a 32-bit GNU/Linux system on Intel-compatible CPUs."
msgstr ""

#. type: Plain text
#: doc/guix.texi:2022
msgid ""
"Make sure to download the associated @file{.sig} file and to verify the "
"authenticity of the image against it, along these lines:"
msgstr ""

#. type: example
#: doc/guix.texi:2026
#, no-wrap
msgid ""
"$ wget @value{BASE-URL}/guix-system-install-@value{VERSION}.x86_64-linux.iso.xz.sig\n"
"$ gpg --verify guix-system-install-@value{VERSION}.x86_64-linux.iso.xz.sig\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:2046
msgid ""
"This image contains the tools necessary for an installation.  It is meant to "
"be copied @emph{as is} to a large-enough USB stick or DVD."
msgstr ""

#. type: unnumberedsubsec
#: doc/guix.texi:2047
#, no-wrap
msgid "Copying to a USB Stick"
msgstr ""

#. type: Plain text
#: doc/guix.texi:2050
msgid "To copy the image to a USB stick, follow these steps:"
msgstr ""

#. type: enumerate
#: doc/guix.texi:2054 doc/guix.texi:2079
msgid "Decompress the image using the @command{xz} command:"
msgstr ""

#. type: example
#: doc/guix.texi:2057 doc/guix.texi:2082
#, no-wrap
msgid "xz -d guix-system-install-@value{VERSION}.x86_64-linux.iso.xz\n"
msgstr ""

#. type: enumerate
#: doc/guix.texi:2063
msgid ""
"Insert a USB stick of 1@tie{}GiB or more into your machine, and determine "
"its device name.  Assuming that the USB stick is known as @file{/dev/sdX}, "
"copy the image with:"
msgstr ""

#. type: example
#: doc/guix.texi:2067
#, no-wrap
msgid ""
"dd if=guix-system-install-@value{VERSION}.x86_64-linux.iso of=/dev/sdX status=progress\n"
"sync\n"
msgstr ""

#. type: enumerate
#: doc/guix.texi:2070
msgid "Access to @file{/dev/sdX} usually requires root privileges."
msgstr ""

#. type: unnumberedsubsec
#: doc/guix.texi:2072
#, no-wrap
msgid "Burning on a DVD"
msgstr ""

#. type: Plain text
#: doc/guix.texi:2075
msgid "To copy the image to a DVD, follow these steps:"
msgstr ""

#. type: enumerate
#: doc/guix.texi:2088
msgid ""
"Insert a blank DVD into your machine, and determine its device name.  "
"Assuming that the DVD drive is known as @file{/dev/srX}, copy the image with:"
msgstr ""

#. type: example
#: doc/guix.texi:2091
#, no-wrap
msgid "growisofs -dvd-compat -Z /dev/srX=guix-system-install-@value{VERSION}.x86_64-linux.iso\n"
msgstr ""

#. type: enumerate
#: doc/guix.texi:2094
msgid "Access to @file{/dev/srX} usually requires root privileges."
msgstr ""

#. type: unnumberedsubsec
#: doc/guix.texi:2096
#, no-wrap
msgid "Booting"
msgstr ""

#. type: Plain text
#: doc/guix.texi:2103
msgid ""
"Once this is done, you should be able to reboot the system and boot from the "
"USB stick or DVD.  The latter usually requires you to get in the BIOS or "
"UEFI boot menu, where you can choose to boot from the USB stick.  In order "
"to boot from Libreboot, switch to the command mode by pressing the @kbd{c} "
"key and type @command{search_grub usb}."
msgstr ""

#. type: Plain text
#: doc/guix.texi:2106
msgid ""
"@xref{Installing Guix in a VM}, if, instead, you would like to install Guix "
"System in a virtual machine (VM)."
msgstr ""

#. type: Plain text
#: doc/guix.texi:2116
msgid ""
"Once you have booted, you can use the guided graphical installer, which "
"makes it easy to get started (@pxref{Guided Graphical Installation}).  "
"Alternatively, if you are already familiar with GNU/Linux and if you want "
"more control than what the graphical installer provides, you can choose the "
"``manual'' installation process (@pxref{Manual Installation})."
msgstr ""

#. type: Plain text
#: doc/guix.texi:2124
msgid ""
"The graphical installer is available on TTY1.  You can obtain root shells on "
"TTYs 3 to 6 by hitting @kbd{ctrl-alt-f3}, @kbd{ctrl-alt-f4}, etc.  TTY2 "
"shows this documentation and you can reach it with @kbd{ctrl-alt-f2}.  "
"Documentation is browsable using the Info reader commands (@pxref{Top,,, "
"info-stnd, Stand-alone GNU Info}).  The installation system runs the GPM "
"mouse daemon, which allows you to select text with the left mouse button and "
"to paste it with the middle button."
msgstr ""

#. type: quotation
#: doc/guix.texi:2129
msgid ""
"Installation requires access to the Internet so that any missing "
"dependencies of your system configuration can be downloaded.  See the "
"``Networking'' section below."
msgstr ""

#. type: Plain text
#: doc/guix.texi:2136
msgid ""
"The graphical installer is a text-based user interface.  It will guide you, "
"with dialog boxes, through the steps needed to install GNU@tie{}Guix System."
msgstr ""

#. type: Plain text
#: doc/guix.texi:2141
msgid ""
"The first dialog boxes allow you to set up the system as you use it during "
"the installation: you can choose the language, keyboard layout, and set up "
"networking, which will be used during the installation.  The image below "
"shows the networking dialog."
msgstr ""

#. type: Plain text
#: doc/guix.texi:2143
msgid ""
"@image{images/installer-network,5in,, networking setup with the graphical "
"installer}"
msgstr ""

#. type: Plain text
#: doc/guix.texi:2148
msgid ""
"Later steps allow you to partition your hard disk, as shown in the image "
"below, to choose whether or not to use encrypted file systems, to enter the "
"host name and root password, and to create an additional account, among "
"other things."
msgstr ""

#. type: Plain text
#: doc/guix.texi:2150
msgid ""
"@image{images/installer-partitions,5in,, partitioning with the graphical "
"installer}"
msgstr ""

#. type: Plain text
#: doc/guix.texi:2153
msgid ""
"Note that, at any time, the installer allows you to exit the current "
"installation step and resume at a previous step, as show in the image below."
msgstr ""

#. type: Plain text
#: doc/guix.texi:2155
msgid "@image{images/installer-resume,5in,, resuming the installation process}"
msgstr ""

#. type: Plain text
#: doc/guix.texi:2160
msgid ""
"Once you're done, the installer produces an operating system configuration "
"and displays it (@pxref{Using the Configuration System}).  At that point you "
"can hit ``OK'' and installation will proceed.  On success, you can reboot "
"into the new system and enjoy.  @xref{After System Installation}, for what's "
"next!"
msgstr ""

#. type: Plain text
#: doc/guix.texi:2170
msgid ""
"This section describes how you would ``manually'' install GNU@tie{}Guix "
"System on your machine.  This option requires familiarity with GNU/Linux, "
"with the shell, and with common administration tools.  If you think this is "
"not for you, consider using the guided graphical installer (@pxref{Guided "
"Graphical Installation})."
msgstr ""

#. type: Plain text
#: doc/guix.texi:2176
msgid ""
"The installation system provides root shells on TTYs 3 to 6; press @kbd{ctrl-"
"alt-f3}, @kbd{ctrl-alt-f4}, and so on to reach them.  It includes many "
"common tools needed to install the system.  But it is also a full-blown Guix "
"System, which means that you can install additional packages, should you "
"need it, using @command{guix package} (@pxref{Invoking guix package})."
msgstr ""

#. type: subsection
#: doc/guix.texi:2183
#, no-wrap
msgid "Keyboard Layout, Networking, and Partitioning"
msgstr ""

#. type: Plain text
#: doc/guix.texi:2188
msgid ""
"Before you can install the system, you may want to adjust the keyboard "
"layout, set up networking, and partition your target hard disk.  This "
"section will guide you through this."
msgstr ""

#. type: cindex
#: doc/guix.texi:2191 doc/guix.texi:14021
#, no-wrap
msgid "keyboard layout"
msgstr ""

#. type: Plain text
#: doc/guix.texi:2195
msgid ""
"The installation image uses the US qwerty keyboard layout.  If you want to "
"change it, you can use the @command{loadkeys} command.  For example, the "
"following command selects the Dvorak keyboard layout:"
msgstr ""

#. type: example
#: doc/guix.texi:2198
#, no-wrap
msgid "loadkeys dvorak\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:2203
msgid ""
"See the files under @file{/run/current-system/profile/share/keymaps} for a "
"list of available keyboard layouts.  Run @command{man loadkeys} for more "
"information."
msgstr ""

#. type: subsubsection
#: doc/guix.texi:2204
#, no-wrap
msgid "Networking"
msgstr ""

#. type: Plain text
#: doc/guix.texi:2207
msgid ""
"Run the following command to see what your network interfaces are called:"
msgstr ""

#. type: example
#: doc/guix.texi:2210
#, no-wrap
msgid "ifconfig -a\n"
msgstr ""

#. type: table
#: doc/guix.texi:2214 doc/guix.texi:2236
msgid "@dots{} or, using the GNU/Linux-specific @command{ip} command:"
msgstr ""

#. type: example
#: doc/guix.texi:2217
#, no-wrap
msgid "ip address\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:2224
msgid ""
"Wired interfaces have a name starting with @samp{e}; for example, the "
"interface corresponding to the first on-board Ethernet controller is called "
"@samp{eno1}.  Wireless interfaces have a name starting with @samp{w}, like "
"@samp{w1p2s0}."
msgstr ""

#. type: item
#: doc/guix.texi:2226
#, no-wrap
msgid "Wired connection"
msgstr ""

#. type: table
#: doc/guix.texi:2229
msgid ""
"To configure a wired network run the following command, substituting "
"@var{interface} with the name of the wired interface you want to use."
msgstr ""

#. type: example
#: doc/guix.texi:2232
#, no-wrap
msgid "ifconfig @var{interface} up\n"
msgstr ""

#. type: example
#: doc/guix.texi:2239
#, no-wrap
msgid "ip link set @var{interface} up\n"
msgstr ""

#. type: item
#: doc/guix.texi:2241
#, no-wrap
msgid "Wireless connection"
msgstr ""

#. type: cindex
#: doc/guix.texi:2242 doc/guix.texi:15600
#, no-wrap
msgid "wireless"
msgstr ""

#. type: cindex
#: doc/guix.texi:2243 doc/guix.texi:15601
#, no-wrap
msgid "WiFi"
msgstr ""

#. type: table
#: doc/guix.texi:2248
msgid ""
"To configure wireless networking, you can create a configuration file for "
"the @command{wpa_supplicant} configuration tool (its location is not "
"important) using one of the available text editors such as @command{nano}:"
msgstr ""

#. type: example
#: doc/guix.texi:2251
#, no-wrap
msgid "nano wpa_supplicant.conf\n"
msgstr ""

#. type: table
#: doc/guix.texi:2256
msgid ""
"As an example, the following stanza can go to this file and will work for "
"many wireless networks, provided you give the actual SSID and passphrase for "
"the network you are connecting to:"
msgstr ""

#. type: example
#: doc/guix.texi:2263
#, no-wrap
msgid ""
"network=@{\n"
"  ssid=\"@var{my-ssid}\"\n"
"  key_mgmt=WPA-PSK\n"
"  psk=\"the network's secret passphrase\"\n"
"@}\n"
msgstr ""

#. type: table
#: doc/guix.texi:2268
msgid ""
"Start the wireless service and run it in the background with the following "
"command (substitute @var{interface} with the name of the network interface "
"you want to use):"
msgstr ""

#. type: example
#: doc/guix.texi:2271
#, no-wrap
msgid "wpa_supplicant -c wpa_supplicant.conf -i @var{interface} -B\n"
msgstr ""

#. type: table
#: doc/guix.texi:2274
msgid "Run @command{man wpa_supplicant} for more information."
msgstr ""

#. type: cindex
#: doc/guix.texi:2276
#, no-wrap
msgid "DHCP"
msgstr ""

#. type: Plain text
#: doc/guix.texi:2279
msgid ""
"At this point, you need to acquire an IP address.  On a network where IP "
"addresses are automatically assigned @i{via} DHCP, you can run:"
msgstr ""

#. type: example
#: doc/guix.texi:2282
#, no-wrap
msgid "dhclient -v @var{interface}\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:2285
msgid "Try to ping a server to see if networking is up and running:"
msgstr ""

#. type: example
#: doc/guix.texi:2288
#, no-wrap
msgid "ping -c 3 gnu.org\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:2292
msgid ""
"Setting up network access is almost always a requirement because the image "
"does not contain all the software and tools that may be needed."
msgstr ""

#. type: cindex
#: doc/guix.texi:2293
#, no-wrap
msgid "proxy, during system installation"
msgstr ""

#. type: Plain text
#: doc/guix.texi:2296
msgid ""
"If you need HTTP and HTTPS access to go through a proxy, run the following "
"command:"
msgstr ""

#. type: example
#: doc/guix.texi:2299
#, no-wrap
msgid "herd set-http-proxy guix-daemon @var{URL}\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:2304
msgid ""
"where @var{URL} is the proxy URL, for example @code{http://example.org:8118}."
msgstr ""

#. type: cindex
#: doc/guix.texi:2305
#, no-wrap
msgid "installing over SSH"
msgstr ""

#. type: Plain text
#: doc/guix.texi:2308
msgid ""
"If you want to, you can continue the installation remotely by starting an "
"SSH server:"
msgstr ""

#. type: example
#: doc/guix.texi:2311
#, no-wrap
msgid "herd start ssh-daemon\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:2315
msgid ""
"Make sure to either set a password with @command{passwd}, or configure "
"OpenSSH public key authentication before logging in."
msgstr ""

#. type: subsubsection
#: doc/guix.texi:2316
#, no-wrap
msgid "Disk Partitioning"
msgstr ""

#. type: Plain text
#: doc/guix.texi:2320
msgid ""
"Unless this has already been done, the next step is to partition, and then "
"format the target partition(s)."
msgstr ""

#. type: Plain text
#: doc/guix.texi:2325
msgid ""
"The installation image includes several partitioning tools, including Parted "
"(@pxref{Overview,,, parted, GNU Parted User Manual}), @command{fdisk}, and "
"@command{cfdisk}.  Run it and set up your disk with the partition layout you "
"want:"
msgstr ""

#. type: example
#: doc/guix.texi:2328
#, no-wrap
msgid "cfdisk\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:2334
msgid ""
"If your disk uses the GUID Partition Table (GPT) format and you plan to "
"install BIOS-based GRUB (which is the default), make sure a BIOS Boot "
"Partition is available (@pxref{BIOS installation,,, grub, GNU GRUB manual})."
msgstr ""

#. type: cindex
#: doc/guix.texi:2335
#, no-wrap
msgid "EFI, installation"
msgstr ""

#. type: cindex
#: doc/guix.texi:2336
#, no-wrap
msgid "UEFI, installation"
msgstr ""

#. type: cindex
#: doc/guix.texi:2337
#, no-wrap
msgid "ESP, EFI system partition"
msgstr ""

#. type: Plain text
#: doc/guix.texi:2341
msgid ""
"If you instead wish to use EFI-based GRUB, a FAT32 @dfn{EFI System "
"Partition} (ESP) is required.  This partition can be mounted at @file{/boot/"
"efi} for instance and must have the @code{esp} flag set.  E.g., for "
"@command{parted}:"
msgstr ""

#. type: example
#: doc/guix.texi:2344
#, no-wrap
msgid "parted /dev/sda set 1 esp on\n"
msgstr ""

#. type: vindex
#: doc/guix.texi:2347 doc/guix.texi:30367
#, no-wrap
msgid "grub-bootloader"
msgstr ""

#. type: vindex
#: doc/guix.texi:2348 doc/guix.texi:30361
#, no-wrap
msgid "grub-efi-bootloader"
msgstr ""

#. type: quotation
#: doc/guix.texi:2355
msgid ""
"Unsure whether to use EFI- or BIOS-based GRUB? If the directory @file{/sys/"
"firmware/efi} exists in the installation image, then you should probably "
"perform an EFI installation, using @code{grub-efi-bootloader}.  Otherwise "
"you should use the BIOS-based GRUB, known as @code{grub-bootloader}.  "
"@xref{Bootloader Configuration}, for more info on bootloaders."
msgstr ""

#. type: Plain text
#: doc/guix.texi:2363
msgid ""
"Once you are done partitioning the target hard disk drive, you have to "
"create a file system on the relevant partition(s)@footnote{Currently Guix "
"System only supports ext4, btrfs, and JFS file systems.  In particular, code "
"that reads file system UUIDs and labels only works for these file system "
"types.}.  For the ESP, if you have one and assuming it is @file{/dev/sda1}, "
"run:"
msgstr ""

#. type: example
#: doc/guix.texi:2366
#, no-wrap
msgid "mkfs.fat -F32 /dev/sda1\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:2373
msgid ""
"For the root file system, ext4 is the most widely used format.  Other file "
"systems, such as Btrfs, support compression, which is reported to nicely "
"complement file deduplication that the daemon performs independently of the "
"file system (@pxref{Invoking guix-daemon, deduplication})."
msgstr ""

#. type: Plain text
#: doc/guix.texi:2380
msgid ""
"Preferably, assign file systems a label so that you can easily and reliably "
"refer to them in @code{file-system} declarations (@pxref{File Systems}).  "
"This is typically done using the @code{-L} option of @command{mkfs.ext4} and "
"related commands.  So, assuming the target root partition lives at @file{/"
"dev/sda2}, a file system with the label @code{my-root} can be created with:"
msgstr ""

#. type: example
#: doc/guix.texi:2383
#, no-wrap
msgid "mkfs.ext4 -L my-root /dev/sda2\n"
msgstr ""

#. type: cindex
#: doc/guix.texi:2385 doc/guix.texi:13055
#, no-wrap
msgid "encrypted disk"
msgstr ""

#. type: Plain text
#: doc/guix.texi:2392
msgid ""
"If you are instead planning to encrypt the root partition, you can use the "
"Cryptsetup/LUKS utilities to do that (see @inlinefmtifelse{html, "
"@uref{https://linux.die.net/man/8/cryptsetup, @code{man cryptsetup}}, "
"@code{man cryptsetup}} for more information).  Assuming you want to store "
"the root partition on @file{/dev/sda2}, the command sequence would be along "
"these lines:"
msgstr ""

#. type: example
#: doc/guix.texi:2397
#, no-wrap
msgid ""
"cryptsetup luksFormat /dev/sda2\n"
"cryptsetup open --type luks /dev/sda2 my-partition\n"
"mkfs.ext4 -L my-root /dev/mapper/my-partition\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:2402
msgid ""
"Once that is done, mount the target file system under @file{/mnt} with a "
"command like (again, assuming @code{my-root} is the label of the root file "
"system):"
msgstr ""

#. type: example
#: doc/guix.texi:2405
#, no-wrap
msgid "mount LABEL=my-root /mnt\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:2411
msgid ""
"Also mount any other file systems you would like to use on the target system "
"relative to this path.  If you have opted for @file{/boot/efi} as an EFI "
"mount point for example, mount it at @file{/mnt/boot/efi} now so it is found "
"by @code{guix system init} afterwards."
msgstr ""

#. type: Plain text
#: doc/guix.texi:2416
msgid ""
"Finally, if you plan to use one or more swap partitions (@pxref{Memory "
"Concepts, swap space,, libc, The GNU C Library Reference Manual}), make sure "
"to initialize them with @command{mkswap}.  Assuming you have one swap "
"partition on @file{/dev/sda3}, you would run:"
msgstr ""

#. type: example
#: doc/guix.texi:2420
#, no-wrap
msgid ""
"mkswap /dev/sda3\n"
"swapon /dev/sda3\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:2428
msgid ""
"Alternatively, you may use a swap file.  For example, assuming that in the "
"new system you want to use the file @file{/swapfile} as a swap file, you "
"would run@footnote{This example will work for many types of file systems (e."
"g., ext4).  However, for copy-on-write file systems (e.g., btrfs), the "
"required steps may be different.  For details, see the manual pages for "
"@command{mkswap} and @command{swapon}.}:"
msgstr ""

#. type: example
#: doc/guix.texi:2436
#, no-wrap
msgid ""
"# This is 10 GiB of swap space.  Adjust \"count\" to change the size.\n"
"dd if=/dev/zero of=/mnt/swapfile bs=1MiB count=10240\n"
"# For security, make the file readable and writable only by root.\n"
"chmod 600 /mnt/swapfile\n"
"mkswap /mnt/swapfile\n"
"swapon /mnt/swapfile\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:2441
msgid ""
"Note that if you have encrypted the root partition and created a swap file "
"in its file system as described above, then the encryption also protects the "
"swap file, just like any other file in that file system."
msgstr ""

#. type: Plain text
#: doc/guix.texi:2447
msgid ""
"With the target partitions ready and the target root mounted on @file{/mnt}, "
"we're ready to go.  First, run:"
msgstr ""

#. type: example
#: doc/guix.texi:2450
#, no-wrap
msgid "herd start cow-store /mnt\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:2457
msgid ""
"This makes @file{/gnu/store} copy-on-write, such that packages added to it "
"during the installation phase are written to the target disk on @file{/mnt} "
"rather than kept in memory.  This is necessary because the first phase of "
"the @command{guix system init} command (see below) entails downloads or "
"builds to @file{/gnu/store} which, initially, is an in-memory file system."
msgstr ""

#. type: Plain text
#: doc/guix.texi:2468
msgid ""
"Next, you have to edit a file and provide the declaration of the operating "
"system to be installed.  To that end, the installation system comes with "
"three text editors.  We recommend GNU nano (@pxref{Top,,, nano, GNU nano "
"Manual}), which supports syntax highlighting and parentheses matching; other "
"editors include GNU Zile (an Emacs clone), and nvi (a clone of the original "
"BSD @command{vi} editor).  We strongly recommend storing that file on the "
"target root file system, say, as @file{/mnt/etc/config.scm}.  Failing to do "
"that, you will have lost your configuration file once you have rebooted into "
"the newly-installed system."
msgstr ""

#. type: Plain text
#: doc/guix.texi:2475
msgid ""
"@xref{Using the Configuration System}, for an overview of the configuration "
"file.  The example configurations discussed in that section are available "
"under @file{/etc/configuration} in the installation image.  Thus, to get "
"started with a system configuration providing a graphical display server (a "
"``desktop'' system), you can run something along these lines:"
msgstr ""

#. type: example
#: doc/guix.texi:2480
#, no-wrap
msgid ""
"# mkdir /mnt/etc\n"
"# cp /etc/configuration/desktop.scm /mnt/etc/config.scm\n"
"# nano /mnt/etc/config.scm\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:2484
msgid ""
"You should pay attention to what your configuration file contains, and in "
"particular:"
msgstr ""

#. type: itemize
#: doc/guix.texi:2495
msgid ""
"Make sure the @code{bootloader-configuration} form refers to the target you "
"want to install GRUB on.  It should mention @code{grub-bootloader} if you "
"are installing GRUB in the legacy way, or @code{grub-efi-bootloader} for "
"newer UEFI systems.  For legacy systems, the @code{target} field names a "
"device, like @code{/dev/sda}; for UEFI systems it names a path to a mounted "
"EFI partition, like @code{/boot/efi}; do make sure the path is currently "
"mounted and a @code{file-system} entry is specified in your configuration."
msgstr ""

#. type: itemize
#: doc/guix.texi:2501
msgid ""
"Be sure that your file system labels match the value of their respective "
"@code{device} fields in your @code{file-system} configuration, assuming your "
"@code{file-system} configuration uses the @code{file-system-label} procedure "
"in its @code{device} field."
msgstr ""

#. type: itemize
#: doc/guix.texi:2505
msgid ""
"If there are encrypted or RAID partitions, make sure to add a @code{mapped-"
"devices} field to describe them (@pxref{Mapped Devices})."
msgstr ""

#. type: Plain text
#: doc/guix.texi:2510
msgid ""
"Once you are done preparing the configuration file, the new system must be "
"initialized (remember that the target root file system is mounted under "
"@file{/mnt}):"
msgstr ""

#. type: example
#: doc/guix.texi:2513
#, no-wrap
msgid "guix system init /mnt/etc/config.scm /mnt\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:2520
msgid ""
"This copies all the necessary files and installs GRUB on @file{/dev/sdX}, "
"unless you pass the @option{--no-bootloader} option.  For more information, "
"@pxref{Invoking guix system}.  This command may trigger downloads or builds "
"of missing packages, which can take some time."
msgstr ""

#. type: Plain text
#: doc/guix.texi:2528
msgid ""
"Once that command has completed---and hopefully succeeded!---you can run "
"@command{reboot} and boot into the new system.  The @code{root} password in "
"the new system is initially empty; other users' passwords need to be "
"initialized by running the @command{passwd} command as @code{root}, unless "
"your configuration specifies otherwise (@pxref{user-account-password, user "
"account passwords}).  @xref{After System Installation}, for what's next!"
msgstr ""

#. type: Plain text
#: doc/guix.texi:2535
msgid ""
"Success, you've now booted into Guix System! From then on, you can update "
"the system whenever you want by running, say:"
msgstr ""

#. type: example
#: doc/guix.texi:2539
#, no-wrap
msgid ""
"guix pull\n"
"sudo guix system reconfigure /etc/config.scm\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:2545
msgid ""
"This builds a new system generation with the latest packages and services "
"(@pxref{Invoking guix system}).  We recommend doing that regularly so that "
"your system includes the latest security updates (@pxref{Security Updates})."
msgstr ""

#. type: cindex
#: doc/guix.texi:2548
#, no-wrap
msgid "sudo vs. @command{guix pull}"
msgstr ""

#. type: quotation
#: doc/guix.texi:2552
msgid ""
"Note that @command{sudo guix} runs your user's @command{guix} command and "
"@emph{not} root's, because @command{sudo} leaves @env{PATH} unchanged.  To "
"explicitly run root's @command{guix}, type @command{sudo -i guix @dots{}}."
msgstr ""

#. type: quotation
#: doc/guix.texi:2557
msgid ""
"The difference matters here, because @command{guix pull} updates the "
"@command{guix} command and package definitions only for the user it is ran "
"as.  This means that if you choose to use @command{guix system reconfigure} "
"in root's login shell, you'll need to @command{guix pull} separately."
msgstr ""

#. type: Plain text
#: doc/guix.texi:2562
msgid ""
"Now, @pxref{Getting Started}, and join us on @code{#guix} on the Freenode "
"IRC network or on @email{guix-devel@@gnu.org} to share your experience!"
msgstr ""

#. type: section
#: doc/guix.texi:2565
#, no-wrap
msgid "Installing Guix in a Virtual Machine"
msgstr ""

#. type: cindex
#: doc/guix.texi:2567
#, no-wrap
msgid "virtual machine, Guix System installation"
msgstr ""

#. type: cindex
#: doc/guix.texi:2568
#, no-wrap
msgid "virtual private server (VPS)"
msgstr ""

#. type: cindex
#: doc/guix.texi:2569
#, no-wrap
msgid "VPS (virtual private server)"
msgstr ""

#. type: Plain text
#: doc/guix.texi:2573
msgid ""
"If you'd like to install Guix System in a virtual machine (VM) or on a "
"virtual private server (VPS) rather than on your beloved machine, this "
"section is for you."
msgstr ""

#. type: Plain text
#: doc/guix.texi:2576
msgid ""
"To boot a @uref{https://qemu.org/,QEMU} VM for installing Guix System in a "
"disk image, follow these steps:"
msgstr ""

#. type: enumerate
#: doc/guix.texi:2581
msgid ""
"First, retrieve and decompress the Guix system installation image as "
"described previously (@pxref{USB Stick and DVD Installation})."
msgstr ""

#. type: enumerate
#: doc/guix.texi:2585
msgid ""
"Create a disk image that will hold the installed system.  To make a qcow2-"
"formatted disk image, use the @command{qemu-img} command:"
msgstr ""

#. type: example
#: doc/guix.texi:2588
#, no-wrap
msgid "qemu-img create -f qcow2 guix-system.img 50G\n"
msgstr ""

#. type: enumerate
#: doc/guix.texi:2592
msgid ""
"The resulting file will be much smaller than 50 GB (typically less than 1 "
"MB), but it will grow as the virtualized storage device is filled up."
msgstr ""

#. type: enumerate
#: doc/guix.texi:2595
msgid "Boot the USB installation image in an VM:"
msgstr ""

#. type: example
#: doc/guix.texi:2601
#, no-wrap
msgid ""
"qemu-system-x86_64 -m 1024 -smp 1 -enable-kvm \\\n"
"  -nic user,model=virtio-net-pci -boot menu=on,order=d \\\n"
"  -drive file=guix-system.img \\\n"
"  -drive media=cdrom,file=guix-system-install-@value{VERSION}.@var{system}.iso\n"
msgstr ""

#. type: enumerate
#: doc/guix.texi:2605
msgid ""
"@code{-enable-kvm} is optional, but significantly improves performance, "
"@pxref{Running Guix in a VM}."
msgstr ""

#. type: enumerate
#: doc/guix.texi:2609
msgid ""
"You're now root in the VM, proceed with the installation process.  "
"@xref{Preparing for Installation}, and follow the instructions."
msgstr ""

#. type: Plain text
#: doc/guix.texi:2614
msgid ""
"Once installation is complete, you can boot the system that's on your "
"@file{guix-system.img} image.  @xref{Running Guix in a VM}, for how to do "
"that."
msgstr ""

#. type: cindex
#: doc/guix.texi:2618
#, no-wrap
msgid "installation image"
msgstr ""

#. type: Plain text
#: doc/guix.texi:2621
msgid ""
"The installation image described above was built using the @command{guix "
"system} command, specifically:"
msgstr ""

#. type: example
#: doc/guix.texi:2624
#, no-wrap
msgid "guix system disk-image -t iso9660 gnu/system/install.scm\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:2629
msgid ""
"Have a look at @file{gnu/system/install.scm} in the source tree, and see "
"also @ref{Invoking guix system} for more information about the installation "
"image."
msgstr ""

#. type: section
#: doc/guix.texi:2630
#, no-wrap
msgid "Building the Installation Image for ARM Boards"
msgstr ""

#. type: Plain text
#: doc/guix.texi:2634
msgid ""
"Many ARM boards require a specific variant of the @uref{https://www.denx.de/"
"wiki/U-Boot/, U-Boot} bootloader."
msgstr ""

#. type: Plain text
#: doc/guix.texi:2638
msgid ""
"If you build a disk image and the bootloader is not available otherwise (on "
"another boot drive etc), it's advisable to build an image that includes the "
"bootloader, specifically:"
msgstr ""

#. type: example
#: doc/guix.texi:2641
#, no-wrap
msgid "guix system disk-image --system=armhf-linux -e '((@@ (gnu system install) os-with-u-boot) (@@ (gnu system install) installation-os) \"A20-OLinuXino-Lime2\")'\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:2645
msgid ""
"@code{A20-OLinuXino-Lime2} is the name of the board.  If you specify an "
"invalid board, a list of possible boards will be printed."
msgstr ""

#. type: Plain text
#: doc/guix.texi:2655
msgid ""
"Presumably, you've reached this section because either you have installed "
"Guix on top of another distribution (@pxref{Installation}), or you've "
"installed the standalone Guix System (@pxref{System Installation}).  It's "
"time for you to get started using Guix and this section aims to help you do "
"that and give you a feel of what it's like."
msgstr ""

#. type: Plain text
#: doc/guix.texi:2659
msgid ""
"Guix is about installing software, so probably the first thing you'll want "
"to do is to actually look for software.  Let's say you're looking for a text "
"editor, you can run:"
msgstr ""

#. type: example
#: doc/guix.texi:2662
#, no-wrap
msgid "guix search text editor\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:2669
msgid ""
"This command shows you a number of matching @dfn{packages}, each time "
"showing the package's name, version, a description, and additional info.  "
"Once you've found out the one you want to use, let's say Emacs (ah ha!), you "
"can go ahead and install it (run this command as a regular user, @emph{no "
"need for root privileges}!):"
msgstr ""

#. type: example
#: doc/guix.texi:2672
#, no-wrap
msgid "guix install emacs\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:2678
msgid ""
"You've installed your first package, congrats! In the process, you've "
"probably noticed that Guix downloaded pre-built binaries; or, if you "
"explicitly chose to @emph{not} use pre-built binaries, then probably Guix is "
"still building software (@pxref{Substitutes}, for more info)."
msgstr ""

#. type: Plain text
#: doc/guix.texi:2681
msgid ""
"Unless you're using Guix System, the @command{guix install} command must "
"have printed this hint:"
msgstr ""

#. type: example
#: doc/guix.texi:2684
#, no-wrap
msgid ""
"hint: Consider setting the necessary environment variables by running:\n"
"\n"
msgstr ""

#. type: example
#: doc/guix.texi:2687
#, no-wrap
msgid ""
"     GUIX_PROFILE=\"$HOME/.guix-profile\"\n"
"     . \"$GUIX_PROFILE/etc/profile\"\n"
"\n"
msgstr ""

#. type: example
#: doc/guix.texi:2689
#, no-wrap
msgid "Alternately, see `guix package --search-paths -p \"$HOME/.guix-profile\"'.\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:2703
msgid ""
"Indeed, you must now tell your shell where @command{emacs} and other "
"programs installed with Guix are to be found.  Pasting the two lines above "
"will do just that: it will add @code{$HOME/.guix-profile/bin}---which is "
"where the installed package is---to the @code{PATH} environment variable.  "
"You can paste these two lines in your shell so they take effect right away, "
"but more importantly you should add them to @file{~/.bash_profile} (or "
"equivalent file if you do not use Bash) so that environment variables are "
"set next time you spawn a shell.  You only need to do this once and other "
"search paths environment variables will be taken care of similarly---e.g., "
"if you eventually install @code{python} and Python libraries, "
"@code{PYTHONPATH} will be defined."
msgstr ""

#. type: Plain text
#: doc/guix.texi:2706
msgid ""
"You can go on installing packages at your will.  To list installed packages, "
"run:"
msgstr ""

#. type: example
#: doc/guix.texi:2709
#, no-wrap
msgid "guix package --list-installed\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:2714
msgid ""
"To remove a package, you would unsurprisingly run @command{guix remove}.  A "
"distinguishing feature is the ability to @dfn{roll back} any operation you "
"made---installation, removal, upgrade---by simply typing:"
msgstr ""

#. type: example
#: doc/guix.texi:2717
#, no-wrap
msgid "guix package --roll-back\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:2722
msgid ""
"This is because each operation is in fact a @dfn{transaction} that creates a "
"new @dfn{generation}.  These generations and the difference between them can "
"be displayed by running:"
msgstr ""

#. type: example
#: doc/guix.texi:2725
#, no-wrap
msgid "guix package --list-generations\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:2728
msgid "Now you know the basics of package management!"
msgstr ""

#. type: quotation
#: doc/guix.texi:2729 doc/guix.texi:2788
#, no-wrap
msgid "Going further"
msgstr ""

#. type: quotation
#: doc/guix.texi:2737
msgid ""
"@xref{Package Management}, for more about package management.  You may like "
"@dfn{declarative} package management with @command{guix package --manifest}, "
"managing separate @dfn{profiles} with @option{--profile}, deleting old "
"generations, collecting garbage, and other nifty features that will come in "
"handy as you become more familiar with Guix.  If you are a developer, "
"@pxref{Development} for additional tools.  And if you're curious, "
"@pxref{Features}, to peek under the hood."
msgstr ""

#. type: Plain text
#: doc/guix.texi:2742
msgid ""
"Once you've installed a set of packages, you will want to periodically "
"@emph{upgrade} them to the latest and greatest version.  To do that, you "
"will first pull the latest revision of Guix and its package collection:"
msgstr ""

#. type: Plain text
#: doc/guix.texi:2752
msgid ""
"The end result is a new @command{guix} command, under @file{~/.config/guix/"
"current/bin}.  Unless you're on Guix System, the first time you run "
"@command{guix pull}, be sure to follow the hint that the command prints and, "
"similar to what we saw above, paste these two lines in your terminal and "
"@file{.bash_profile}:"
msgstr ""

#. type: example
#: doc/guix.texi:2756
#, no-wrap
msgid ""
"GUIX_PROFILE=\"$HOME/.config/guix/current/etc/profile\"\n"
". \"$GUIX_PROFILE/etc/profile\"\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:2760
msgid "You must also instruct your shell to point to this new @command{guix}:"
msgstr ""

#. type: example
#: doc/guix.texi:2763
#, no-wrap
msgid "hash guix\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:2767
msgid ""
"At this point, you're running a brand new Guix.  You can thus go ahead and "
"actually upgrade all the packages you previously installed:"
msgstr ""

#. type: example
#: doc/guix.texi:2770
#, no-wrap
msgid "guix upgrade\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:2776
msgid ""
"As you run this command, you will see that binaries are downloaded (or "
"perhaps some packages are built), and eventually you end up with the "
"upgraded packages.  Should one of these upgraded packages not be to your "
"liking, remember you can always roll back!"
msgstr ""

#. type: Plain text
#: doc/guix.texi:2779
msgid ""
"You can display the exact revision of Guix you're currently using by running:"
msgstr ""

#. type: example
#: doc/guix.texi:2782
#, no-wrap
msgid "guix describe\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:2787
msgid ""
"The information it displays is @emph{all it takes to reproduce the exact "
"same Guix}, be it at a different point in time or on a different machine."
msgstr ""

#. type: quotation
#: doc/guix.texi:2793
msgid ""
"@xref{Invoking guix pull}, for more information.  @xref{Channels}, on how to "
"specify additional @dfn{channels} to pull packages from, how to replicate "
"Guix, and more.  You may also find @command{time-machine} handy "
"(@pxref{Invoking guix time-machine})."
msgstr ""

#. type: Plain text
#: doc/guix.texi:2798
msgid ""
"If you installed Guix System, one of the first things you'll want to do is "
"to upgrade your system.  Once you've run @command{guix pull} to get the "
"latest Guix, you can upgrade the system like this:"
msgstr ""

#. type: example
#: doc/guix.texi:2801
#, no-wrap
msgid "sudo guix system reconfigure /etc/config.scm\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:2810
msgid ""
"Upon completion, the system runs the latest versions of its software "
"packages.  When you eventually reboot, you'll notice a sub-menu in the "
"bootloader that reads ``Old system generations'': it's what allows you to "
"boot @emph{an older generation of your system}, should the latest generation "
"be ``broken'' or otherwise unsatisfying.  Just like for packages, you can "
"always @emph{roll back} to a previous generation @emph{of the whole system}:"
msgstr ""

#. type: example
#: doc/guix.texi:2813
#, no-wrap
msgid "sudo guix system roll-back\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:2820
msgid ""
"There are many things you'll probably want to tweak on your system: adding "
"new user accounts, adding new system services, fiddling with the "
"configuration of those services, etc.  The system configuration is "
"@emph{entirely} described in the @file{/etc/config.scm} file.  @xref{Using "
"the Configuration System}, to learn how to change it."
msgstr ""

#. type: Plain text
#: doc/guix.texi:2822
msgid "Now you know enough to get started!"
msgstr ""

#. type: quotation
#: doc/guix.texi:2823
#, no-wrap
msgid "Resources"
msgstr ""

#. type: quotation
#: doc/guix.texi:2826
msgid ""
"The rest of this manual provides a reference for all things Guix.  Here are "
"some additional resources you may find useful:"
msgstr ""

#. type: itemize
#: doc/guix.texi:2831
msgid ""
"@xref{Top,,, guix-cookbook, The GNU Guix Cookbook}, for a list of ``how-to'' "
"style of recipes for a variety of applications."
msgstr ""

#. type: itemize
#: doc/guix.texi:2836
msgid ""
"The @uref{https://guix.gnu.org/guix-refcard.pdf, GNU Guix Reference Card} "
"lists in two pages most of the commands and options you'll ever need."
msgstr ""

#. type: itemize
#: doc/guix.texi:2841
msgid ""
"The web site contains @uref{https://guix.gnu.org/en/videos/, instructional "
"videos} covering topics such as everyday use of Guix, how to get help, and "
"how to become a contributor."
msgstr ""

#. type: itemize
#: doc/guix.texi:2845
msgid ""
"@xref{Documentation}, to learn how to access documentation on your computer."
msgstr ""

#. type: quotation
#: doc/guix.texi:2848
msgid ""
"We hope you will enjoy Guix as much as the community enjoys building it!"
msgstr ""

#. type: cindex
#: doc/guix.texi:2854
#, no-wrap
msgid "packages"
msgstr ""

#. type: Plain text
#: doc/guix.texi:2859
msgid ""
"The purpose of GNU Guix is to allow users to easily install, upgrade, and "
"remove software packages, without having to know about their build "
"procedures or dependencies.  Guix also goes beyond this obvious set of "
"features."
msgstr ""

#. type: Plain text
#: doc/guix.texi:2867
msgid ""
"This chapter describes the main features of Guix, as well as the package "
"management tools it provides.  Along with the command-line interface "
"described below (@pxref{Invoking guix package, @code{guix package}}), you "
"may also use the Emacs-Guix interface (@pxref{Top,,, emacs-guix, The Emacs-"
"Guix Reference Manual}), after installing @code{emacs-guix} package (run "
"@kbd{M-x guix-help} command to start with it):"
msgstr ""

#. type: example
#: doc/guix.texi:2870
#, no-wrap
msgid "guix install emacs-guix\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:2891
msgid ""
"Here we assume you've already made your first steps with Guix "
"(@pxref{Getting Started}) and would like to get an overview about what's "
"going on under the hood."
msgstr ""

#. type: Plain text
#: doc/guix.texi:2895
msgid ""
"When using Guix, each package ends up in the @dfn{package store}, in its own "
"directory---something that resembles @file{/gnu/store/xxx-package-1.2}, "
"where @code{xxx} is a base32 string."
msgstr ""

#. type: Plain text
#: doc/guix.texi:2900
msgid ""
"Instead of referring to these directories, users have their own "
"@dfn{profile}, which points to the packages that they actually want to use.  "
"These profiles are stored within each user's home directory, at @code{$HOME/."
"guix-profile}."
msgstr ""

#. type: Plain text
#: doc/guix.texi:2908
msgid ""
"For example, @code{alice} installs GCC 4.7.2.  As a result, @file{/home/"
"alice/.guix-profile/bin/gcc} points to @file{/gnu/store/@dots{}-gcc-4.7.2/"
"bin/gcc}.  Now, on the same machine, @code{bob} had already installed GCC "
"4.8.0.  The profile of @code{bob} simply continues to point to @file{/gnu/"
"store/@dots{}-gcc-4.8.0/bin/gcc}---i.e., both versions of GCC coexist on the "
"same system without any interference."
msgstr ""

#. type: Plain text
#: doc/guix.texi:2912
msgid ""
"The @command{guix package} command is the central tool to manage packages "
"(@pxref{Invoking guix package}).  It operates on the per-user profiles, and "
"can be used @emph{with normal user privileges}."
msgstr ""

#. type: cindex
#: doc/guix.texi:2913 doc/guix.texi:2992
#, no-wrap
msgid "transactions"
msgstr ""

#. type: Plain text
#: doc/guix.texi:2920
msgid ""
"The command provides the obvious install, remove, and upgrade operations.  "
"Each invocation is actually a @emph{transaction}: either the specified "
"operation succeeds, or nothing happens.  Thus, if the @command{guix package} "
"process is terminated during the transaction, or if a power outage occurs "
"during the transaction, then the user's profile remains in its previous "
"state, and remains usable."
msgstr ""

#. type: Plain text
#: doc/guix.texi:2928
msgid ""
"In addition, any package transaction may be @emph{rolled back}.  So, if, for "
"example, an upgrade installs a new version of a package that turns out to "
"have a serious bug, users may roll back to the previous instance of their "
"profile, which was known to work well.  Similarly, the global system "
"configuration on Guix is subject to transactional upgrades and roll-back "
"(@pxref{Using the Configuration System})."
msgstr ""

#. type: Plain text
#: doc/guix.texi:2935
msgid ""
"All packages in the package store may be @emph{garbage-collected}.  Guix can "
"determine which packages are still referenced by user profiles, and remove "
"those that are provably no longer referenced (@pxref{Invoking guix gc}).  "
"Users may also explicitly remove old generations of their profile so that "
"the packages they refer to can be collected."
msgstr ""

#. type: cindex
#: doc/guix.texi:2936 doc/guix.texi:4572
#, no-wrap
msgid "reproducibility"
msgstr ""

#. type: Plain text
#: doc/guix.texi:2948
msgid ""
"Guix takes a @dfn{purely functional} approach to package management, as "
"described in the introduction (@pxref{Introduction}).  Each @file{/gnu/"
"store} package directory name contains a hash of all the inputs that were "
"used to build that package---compiler, libraries, build scripts, etc.  This "
"direct correspondence allows users to make sure a given package installation "
"matches the current state of their distribution.  It also helps maximize "
"@dfn{build reproducibility}: thanks to the isolated build environments that "
"are used, a given build is likely to yield bit-identical files when "
"performed on different machines (@pxref{Invoking guix-daemon, container})."
msgstr ""

#. type: Plain text
#: doc/guix.texi:2959
msgid ""
"This foundation allows Guix to support @dfn{transparent binary/source "
"deployment}.  When a pre-built binary for a @file{/gnu/store} item is "
"available from an external source---a @dfn{substitute}, Guix just downloads "
"it and unpacks it; otherwise, it builds the package from source, locally "
"(@pxref{Substitutes}).  Because build results are usually bit-for-bit "
"reproducible, users do not have to trust servers that provide substitutes: "
"they can force a local build and @emph{challenge} providers (@pxref{Invoking "
"guix challenge})."
msgstr ""

#. type: Plain text
#: doc/guix.texi:2965
msgid ""
"Control over the build environment is a feature that is also useful for "
"developers.  The @command{guix environment} command allows developers of a "
"package to quickly set up the right development environment for their "
"package, without having to manually install the dependencies of the package "
"into their profile (@pxref{Invoking guix environment})."
msgstr ""

#. type: cindex
#: doc/guix.texi:2966
#, no-wrap
msgid "replication, of software environments"
msgstr ""

#. type: cindex
#: doc/guix.texi:2967
#, no-wrap
msgid "provenance tracking, of software artifacts"
msgstr ""

#. type: Plain text
#: doc/guix.texi:2974
msgid ""
"All of Guix and its package definitions is version-controlled, and "
"@command{guix pull} allows you to ``travel in time'' on the history of Guix "
"itself (@pxref{Invoking guix pull}).  This makes it possible to replicate a "
"Guix instance on a different machine or at a later point in time, which in "
"turn allows you to @emph{replicate complete software environments}, while "
"retaining precise @dfn{provenance tracking} of the software."
msgstr ""

#. type: section
#: doc/guix.texi:2976
#, no-wrap
msgid "Invoking @command{guix package}"
msgstr ""

#. type: cindex
#: doc/guix.texi:2978
#, no-wrap
msgid "installing packages"
msgstr ""

#. type: cindex
#: doc/guix.texi:2979
#, no-wrap
msgid "removing packages"
msgstr ""

#. type: cindex
#: doc/guix.texi:2980
#, no-wrap
msgid "package installation"
msgstr ""

#. type: cindex
#: doc/guix.texi:2981
#, no-wrap
msgid "package removal"
msgstr ""

#. type: Plain text
#: doc/guix.texi:2987
msgid ""
"The @command{guix package} command is the tool that allows users to install, "
"upgrade, and remove packages, as well as rolling back to previous "
"configurations.  It operates only on the user's own profile, and works with "
"normal user privileges (@pxref{Features}).  Its syntax is:"
msgstr ""

#. type: example
#: doc/guix.texi:2990
#, no-wrap
msgid "guix package @var{options}\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:2997
msgid ""
"Primarily, @var{options} specifies the operations to be performed during the "
"transaction.  Upon completion, a new profile is created, but previous "
"@dfn{generations} of the profile remain available, should the user want to "
"roll back."
msgstr ""

#. type: Plain text
#: doc/guix.texi:3000
msgid ""
"For example, to remove @code{lua} and install @code{guile} and @code{guile-"
"cairo} in a single transaction:"
msgstr ""

#. type: example
#: doc/guix.texi:3003
#, no-wrap
msgid "guix package -r lua -i guile guile-cairo\n"
msgstr ""

#. type: cindex
#: doc/guix.texi:3005
#, no-wrap
msgid "aliases, for @command{guix package}"
msgstr ""

#. type: Plain text
#: doc/guix.texi:3007
msgid "For your convenience, we also provide the following aliases:"
msgstr ""

#. type: itemize
#: doc/guix.texi:3011
msgid "@command{guix search} is an alias for @command{guix package -s},"
msgstr ""

#. type: itemize
#: doc/guix.texi:3013
msgid "@command{guix install} is an alias for @command{guix package -i},"
msgstr ""

#. type: itemize
#: doc/guix.texi:3015
msgid "@command{guix remove} is an alias for @command{guix package -r},"
msgstr ""

#. type: itemize
#: doc/guix.texi:3017
msgid "@command{guix upgrade} is an alias for @command{guix package -u},"
msgstr ""

#. type: itemize
#: doc/guix.texi:3019
msgid "and @command{guix show} is an alias for @command{guix package --show=}."
msgstr ""

#. type: Plain text
#: doc/guix.texi:3024
msgid ""
"These aliases are less expressive than @command{guix package} and provide "
"fewer options, so in some cases you'll probably want to use @command{guix "
"package} directly."
msgstr ""

#. type: Plain text
#: doc/guix.texi:3029
msgid ""
"@command{guix package} also supports a @dfn{declarative approach} whereby "
"the user specifies the exact set of packages to be available and passes it "
"@i{via} the @option{--manifest} option (@pxref{profile-manifest, @option{--"
"manifest}})."
msgstr ""

#. type: cindex
#: doc/guix.texi:3030
#, no-wrap
msgid "profile"
msgstr ""

#. type: Plain text
#: doc/guix.texi:3036
msgid ""
"For each user, a symlink to the user's default profile is automatically "
"created in @file{$HOME/.guix-profile}.  This symlink always points to the "
"current generation of the user's default profile.  Thus, users can add "
"@file{$HOME/.guix-profile/bin} to their @env{PATH} environment variable, and "
"so on."
msgstr ""

#. type: cindex
#: doc/guix.texi:3036 doc/guix.texi:3266
#, no-wrap
msgid "search paths"
msgstr ""

#. type: Plain text
#: doc/guix.texi:3041
msgid ""
"If you are not using Guix System, consider adding the following lines to "
"your @file{~/.bash_profile} (@pxref{Bash Startup Files,,, bash, The GNU Bash "
"Reference Manual}) so that newly-spawned shells get all the right "
"environment variable definitions:"
msgstr ""

#. type: example
#: doc/guix.texi:3045
#, no-wrap
msgid ""
"GUIX_PROFILE=\"$HOME/.guix-profile\" ; \\\n"
"source \"$HOME/.guix-profile/etc/profile\"\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:3056
msgid ""
"In a multi-user setup, user profiles are stored in a place registered as a "
"@dfn{garbage-collector root}, which @file{$HOME/.guix-profile} points to "
"(@pxref{Invoking guix gc}).  That directory is normally "
"@code{@var{localstatedir}/guix/profiles/per-user/@var{user}}, where "
"@var{localstatedir} is the value passed to @code{configure} as @option{--"
"localstatedir}, and @var{user} is the user name.  The @file{per-user} "
"directory is created when @command{guix-daemon} is started, and the "
"@var{user} sub-directory is created by @command{guix package}."
msgstr ""

#. type: Plain text
#: doc/guix.texi:3058
msgid "The @var{options} can be among the following:"
msgstr ""

#. type: item
#: doc/guix.texi:3061
#, no-wrap
msgid "--install=@var{package} @dots{}"
msgstr ""

#. type: itemx
#: doc/guix.texi:3062
#, no-wrap
msgid "-i @var{package} @dots{}"
msgstr ""

#. type: table
#: doc/guix.texi:3064
msgid "Install the specified @var{package}s."
msgstr ""

#. type: table
#: doc/guix.texi:3069
msgid ""
"Each @var{package} may specify either a simple package name, such as "
"@code{guile}, or a package name followed by an at-sign and version number, "
"such as @code{guile@@1.8.8} or simply @code{guile@@1.8} (in the latter case, "
"the newest version prefixed by @code{1.8} is selected)."
msgstr ""

#. type: table
#: doc/guix.texi:3077
msgid ""
"If no version number is specified, the newest available version will be "
"selected.  In addition, @var{package} may contain a colon, followed by the "
"name of one of the outputs of the package, as in @code{gcc:doc} or "
"@code{binutils@@2.22:lib} (@pxref{Packages with Multiple Outputs}).  "
"Packages with a corresponding name (and optionally version) are searched for "
"among the GNU distribution modules (@pxref{Package Modules})."
msgstr ""

#. type: cindex
#: doc/guix.texi:3078
#, no-wrap
msgid "propagated inputs"
msgstr ""

#. type: table
#: doc/guix.texi:3084
msgid ""
"Sometimes packages have @dfn{propagated inputs}: these are dependencies that "
"automatically get installed along with the required package (@pxref{package-"
"propagated-inputs, @code{propagated-inputs} in @code{package} objects}, for "
"information about propagated inputs in package definitions)."
msgstr ""

#. type: anchor{#1}
#: doc/guix.texi:3091
msgid "package-cmd-propagated-inputs"
msgstr ""

#. type: table
#: doc/guix.texi:3091
msgid ""
"An example is the GNU MPC library: its C header files refer to those of the "
"GNU MPFR library, which in turn refer to those of the GMP library.  Thus, "
"when installing MPC, the MPFR and GMP libraries also get installed in the "
"profile; removing MPC also removes MPFR and GMP---unless they had also been "
"explicitly installed by the user."
msgstr ""

#. type: table
#: doc/guix.texi:3096
msgid ""
"Besides, packages sometimes rely on the definition of environment variables "
"for their search paths (see explanation of @option{--search-paths} below).  "
"Any missing or possibly incorrect environment variable definitions are "
"reported here."
msgstr ""

#. type: item
#: doc/guix.texi:3097
#, no-wrap
msgid "--install-from-expression=@var{exp}"
msgstr ""

#. type: itemx
#: doc/guix.texi:3098
#, no-wrap
msgid "-e @var{exp}"
msgstr ""

#. type: table
#: doc/guix.texi:3100
msgid "Install the package @var{exp} evaluates to."
msgstr ""

#. type: table
#: doc/guix.texi:3105
msgid ""
"@var{exp} must be a Scheme expression that evaluates to a @code{<package>} "
"object.  This option is notably useful to disambiguate between same-named "
"variants of a package, with expressions such as @code{(@@ (gnu packages "
"base) guile-final)}."
msgstr ""

#. type: table
#: doc/guix.texi:3109
msgid ""
"Note that this option installs the first output of the specified package, "
"which may be insufficient when needing a specific output of a multiple-"
"output package."
msgstr ""

#. type: item
#: doc/guix.texi:3110
#, no-wrap
msgid "--install-from-file=@var{file}"
msgstr ""

#. type: itemx
#: doc/guix.texi:3111 doc/guix.texi:10341
#, no-wrap
msgid "-f @var{file}"
msgstr ""

#. type: table
#: doc/guix.texi:3113
msgid "Install the package that the code within @var{file} evaluates to."
msgstr ""

#. type: table
#: doc/guix.texi:3116 doc/guix.texi:5569
msgid ""
"As an example, @var{file} might contain a definition like this "
"(@pxref{Defining Packages}):"
msgstr ""

#. type: include
#: doc/guix.texi:3118 doc/guix.texi:10349
#, no-wrap
msgid "package-hello.scm"
msgstr ""

#. type: table
#: doc/guix.texi:3125
msgid ""
"Developers may find it useful to include such a @file{guix.scm} file in the "
"root of their project source tree that can be used to test development "
"snapshots and create reproducible development environments (@pxref{Invoking "
"guix environment})."
msgstr ""

#. type: table
#: doc/guix.texi:3130
msgid ""
"The @var{file} may also contain a JSON representation of one or more package "
"definitions.  Running @code{guix package -f} on @file{hello.json} with the "
"following contents would result in installing the package @code{greeter} "
"after building @code{myhello}:"
msgstr ""

#. type: example
#: doc/guix.texi:3133 doc/guix.texi:10359
#, no-wrap
msgid "@verbatiminclude package-hello.json\n"
msgstr ""

#. type: item
#: doc/guix.texi:3135
#, no-wrap
msgid "--remove=@var{package} @dots{}"
msgstr ""

#. type: itemx
#: doc/guix.texi:3136
#, no-wrap
msgid "-r @var{package} @dots{}"
msgstr ""

#. type: table
#: doc/guix.texi:3138
msgid "Remove the specified @var{package}s."
msgstr ""

#. type: table
#: doc/guix.texi:3143
msgid ""
"As for @option{--install}, each @var{package} may specify a version number "
"and/or output name in addition to the package name.  For instance, @samp{-r "
"glibc:debug} would remove the @code{debug} output of @code{glibc}."
msgstr ""

#. type: item
#: doc/guix.texi:3144
#, no-wrap
msgid "--upgrade[=@var{regexp} @dots{}]"
msgstr ""

#. type: itemx
#: doc/guix.texi:3145
#, no-wrap
msgid "-u [@var{regexp} @dots{}]"
msgstr ""

#. type: cindex
#: doc/guix.texi:3146
#, no-wrap
msgid "upgrading packages"
msgstr ""

#. type: table
#: doc/guix.texi:3150
msgid ""
"Upgrade all the installed packages.  If one or more @var{regexp}s are "
"specified, upgrade only installed packages whose name matches a "
"@var{regexp}.  Also see the @option{--do-not-upgrade} option below."
msgstr ""

#. type: table
#: doc/guix.texi:3155
msgid ""
"Note that this upgrades package to the latest version of packages found in "
"the distribution currently installed.  To update your distribution, you "
"should regularly run @command{guix pull} (@pxref{Invoking guix pull})."
msgstr ""

#. type: cindex
#: doc/guix.texi:3156
#, no-wrap
msgid "package transformations, upgrades"
msgstr ""

#. type: table
#: doc/guix.texi:3161
msgid ""
"When upgrading, package transformations that were originally applied when "
"creating the profile are automatically re-applied (@pxref{Package "
"Transformation Options}).  For example, assume you first installed Emacs "
"from the tip of its development branch with:"
msgstr ""

#. type: example
#: doc/guix.texi:3164
#, no-wrap
msgid "guix install emacs-next --with-branch=emacs-next=master\n"
msgstr ""

#. type: table
#: doc/guix.texi:3169
msgid ""
"Next time you run @command{guix upgrade}, Guix will again pull the tip of "
"the Emacs development branch and build @code{emacs-next} from that checkout."
msgstr ""

#. type: table
#: doc/guix.texi:3174
msgid ""
"Note that transformation options such as @option{--with-branch} and "
"@option{--with-source} depend on external state; it is up to you to ensure "
"that they work as expected.  You can also discard a transformations that "
"apply to a package by running:"
msgstr ""

#. type: example
#: doc/guix.texi:3177
#, no-wrap
msgid "guix install @var{package}\n"
msgstr ""

#. type: item
#: doc/guix.texi:3179
#, no-wrap
msgid "--do-not-upgrade[=@var{regexp} @dots{}]"
msgstr ""

#. type: table
#: doc/guix.texi:3184
msgid ""
"When used together with the @option{--upgrade} option, do @emph{not} upgrade "
"any packages whose name matches a @var{regexp}.  For example, to upgrade all "
"packages in the current profile except those containing the substring "
"``emacs'':"
msgstr ""

#. type: example
#: doc/guix.texi:3187
#, no-wrap
msgid "$ guix package --upgrade . --do-not-upgrade emacs\n"
msgstr ""

#. type: anchor{#1}
#: doc/guix.texi:3189
#, no-wrap
msgid "profile-manifest"
msgstr ""

#. type: item
#: doc/guix.texi:3189 doc/guix.texi:5574 doc/guix.texi:5993 doc/guix.texi:11346
#: doc/guix.texi:12762
#, no-wrap
msgid "--manifest=@var{file}"
msgstr ""

#. type: itemx
#: doc/guix.texi:3190 doc/guix.texi:5575 doc/guix.texi:5994 doc/guix.texi:11347
#, no-wrap
msgid "-m @var{file}"
msgstr ""

#. type: cindex
#: doc/guix.texi:3191
#, no-wrap
msgid "profile declaration"
msgstr ""

#. type: cindex
#: doc/guix.texi:3192
#, no-wrap
msgid "profile manifest"
msgstr ""

#. type: table
#: doc/guix.texi:3196
msgid ""
"Create a new generation of the profile from the manifest object returned by "
"the Scheme code in @var{file}.  This option can be repeated several times, "
"in which case the manifests are concatenated."
msgstr ""

#. type: table
#: doc/guix.texi:3202
msgid ""
"This allows you to @emph{declare} the profile's contents rather than "
"constructing it through a sequence of @option{--install} and similar "
"commands.  The advantage is that @var{file} can be put under version "
"control, copied to different machines to reproduce the same profile, and so "
"on."
msgstr ""

#. type: table
#: doc/guix.texi:3206
msgid ""
"@var{file} must return a @dfn{manifest} object, which is roughly a list of "
"packages:"
msgstr ""

#. type: findex
#: doc/guix.texi:3207
#, no-wrap
msgid "packages->manifest"
msgstr ""

#. type: lisp
#: doc/guix.texi:3210
#, no-wrap
msgid ""
"(use-package-modules guile emacs)\n"
"\n"
msgstr ""

#. type: lisp
#: doc/guix.texi:3216
#, no-wrap
msgid ""
"(packages->manifest\n"
" (list emacs\n"
"       guile-2.0\n"
"       ;; Use a specific package output.\n"
"       (list guile-2.0 \"debug\")))\n"
msgstr ""

#. type: findex
#: doc/guix.texi:3218
#, no-wrap
msgid "specifications->manifest"
msgstr ""

#. type: table
#: doc/guix.texi:3225
msgid ""
"In this example we have to know which modules define the @code{emacs} and "
"@code{guile-2.0} variables to provide the right @code{use-package-modules} "
"line, which can be cumbersome.  We can instead provide regular package "
"specifications and let @code{specifications->manifest} look up the "
"corresponding package objects, like this:"
msgstr ""

#. type: lisp
#: doc/guix.texi:3229
#, no-wrap
msgid ""
"(specifications->manifest\n"
" '(\"emacs\" \"guile@@2.2\" \"guile@@2.2:debug\"))\n"
msgstr ""

#. type: item
#: doc/guix.texi:3231 doc/guix.texi:4293
#, no-wrap
msgid "--roll-back"
msgstr ""

#. type: cindex
#: doc/guix.texi:3232 doc/guix.texi:4294 doc/guix.texi:30789
#, no-wrap
msgid "rolling back"
msgstr ""

#. type: cindex
#: doc/guix.texi:3233 doc/guix.texi:4295
#, no-wrap
msgid "undoing transactions"
msgstr ""

#. type: cindex
#: doc/guix.texi:3234 doc/guix.texi:4296
#, no-wrap
msgid "transactions, undoing"
msgstr ""

#. type: table
#: doc/guix.texi:3237
msgid ""
"Roll back to the previous @dfn{generation} of the profile---i.e., undo the "
"last transaction."
msgstr ""

#. type: table
#: doc/guix.texi:3240
msgid ""
"When combined with options such as @option{--install}, roll back occurs "
"before any other actions."
msgstr ""

#. type: table
#: doc/guix.texi:3244
msgid ""
"When rolling back from the first generation that actually contains installed "
"packages, the profile is made to point to the @dfn{zeroth generation}, which "
"contains no files apart from its own metadata."
msgstr ""

#. type: table
#: doc/guix.texi:3248
msgid ""
"After having rolled back, installing, removing, or upgrading packages "
"overwrites previous future generations.  Thus, the history of the "
"generations in a profile is always linear."
msgstr ""

#. type: item
#: doc/guix.texi:3249 doc/guix.texi:4300
#, no-wrap
msgid "--switch-generation=@var{pattern}"
msgstr ""

#. type: itemx
#: doc/guix.texi:3250 doc/guix.texi:4301
#, no-wrap
msgid "-S @var{pattern}"
msgstr ""

#. type: cindex
#: doc/guix.texi:3251 doc/guix.texi:3480 doc/guix.texi:4302 doc/guix.texi:30747
#, no-wrap
msgid "generations"
msgstr ""

#. type: table
#: doc/guix.texi:3253 doc/guix.texi:4304
msgid "Switch to a particular generation defined by @var{pattern}."
msgstr ""

#. type: table
#: doc/guix.texi:3259 doc/guix.texi:4310
msgid ""
"@var{pattern} may be either a generation number or a number prefixed with ``"
"+'' or ``-''.  The latter means: move forward/backward by a specified number "
"of generations.  For example, if you want to return to the latest generation "
"after @option{--roll-back}, use @option{--switch-generation=+1}."
msgstr ""

#. type: table
#: doc/guix.texi:3264
msgid ""
"The difference between @option{--roll-back} and @option{--switch-"
"generation=-1} is that @option{--switch-generation} will not make a zeroth "
"generation, so if a specified generation does not exist, the current "
"generation will not be changed."
msgstr ""

#. type: item
#: doc/guix.texi:3265
#, no-wrap
msgid "--search-paths[=@var{kind}]"
msgstr ""

#. type: table
#: doc/guix.texi:3271
msgid ""
"Report environment variable definitions, in Bash syntax, that may be needed "
"in order to use the set of installed packages.  These environment variables "
"are used to specify @dfn{search paths} for files used by some of the "
"installed packages."
msgstr ""

#. type: table
#: doc/guix.texi:3279
msgid ""
"For example, GCC needs the @env{CPATH} and @env{LIBRARY_PATH} environment "
"variables to be defined so it can look for headers and libraries in the "
"user's profile (@pxref{Environment Variables,,, gcc, Using the GNU Compiler "
"Collection (GCC)}).  If GCC and, say, the C library are installed in the "
"profile, then @option{--search-paths} will suggest setting these variables "
"to @file{@var{profile}/include} and @file{@var{profile}/lib}, respectively."
msgstr ""

#. type: table
#: doc/guix.texi:3282
msgid ""
"The typical use case is to define these environment variables in the shell:"
msgstr ""

#. type: example
#: doc/guix.texi:3285
#, no-wrap
msgid "$ eval `guix package --search-paths`\n"
msgstr ""

#. type: table
#: doc/guix.texi:3291
msgid ""
"@var{kind} may be one of @code{exact}, @code{prefix}, or @code{suffix}, "
"meaning that the returned environment variable definitions will either be "
"exact settings, or prefixes or suffixes of the current value of these "
"variables.  When omitted, @var{kind} defaults to @code{exact}."
msgstr ""

#. type: table
#: doc/guix.texi:3294
msgid ""
"This option can also be used to compute the @emph{combined} search paths of "
"several profiles.  Consider this example:"
msgstr ""

#. type: example
#: doc/guix.texi:3299
#, no-wrap
msgid ""
"$ guix package -p foo -i guile\n"
"$ guix package -p bar -i guile-json\n"
"$ guix package -p foo -p bar --search-paths\n"
msgstr ""

#. type: table
#: doc/guix.texi:3304
msgid ""
"The last command above reports about the @env{GUILE_LOAD_PATH} variable, "
"even though, taken individually, neither @file{foo} nor @file{bar} would "
"lead to that recommendation."
msgstr ""

#. type: item
#: doc/guix.texi:3306 doc/guix.texi:4330 doc/guix.texi:4659
#, no-wrap
msgid "--profile=@var{profile}"
msgstr ""

#. type: itemx
#: doc/guix.texi:3307 doc/guix.texi:4331 doc/guix.texi:4660
#, no-wrap
msgid "-p @var{profile}"
msgstr ""

#. type: table
#: doc/guix.texi:3309
msgid "Use @var{profile} instead of the user's default profile."
msgstr ""

#. type: table
#: doc/guix.texi:3314
msgid ""
"@var{profile} must be the name of a file that will be created upon "
"completion.  Concretely, @var{profile} will be a mere symbolic link "
"(``symlink'') pointing to the actual profile where packages are installed:"
msgstr ""

#. type: example
#: doc/guix.texi:3320
#, no-wrap
msgid ""
"$ guix install hello -p ~/code/my-profile\n"
"@dots{}\n"
"$ ~/code/my-profile/bin/hello\n"
"Hello, world!\n"
msgstr ""

#. type: table
#: doc/guix.texi:3324
msgid ""
"All it takes to get rid of the profile is to remove this symlink and its "
"siblings that point to specific generations:"
msgstr ""

#. type: example
#: doc/guix.texi:3327
#, no-wrap
msgid "$ rm ~/code/my-profile ~/code/my-profile-*-link\n"
msgstr ""

#. type: item
#: doc/guix.texi:3329
#, no-wrap
msgid "--list-profiles"
msgstr ""

#. type: table
#: doc/guix.texi:3331
msgid "List all the user's profiles:"
msgstr ""

#. type: example
#: doc/guix.texi:3338
#, no-wrap
msgid ""
"$ guix package --list-profiles\n"
"/home/charlie/.guix-profile\n"
"/home/charlie/code/my-profile\n"
"/home/charlie/code/devel-profile\n"
"/home/charlie/tmp/test\n"
msgstr ""

#. type: table
#: doc/guix.texi:3341
msgid "When running as root, list all the profiles of all the users."
msgstr ""

#. type: cindex
#: doc/guix.texi:3342
#, no-wrap
msgid "collisions, in a profile"
msgstr ""

#. type: cindex
#: doc/guix.texi:3343
#, no-wrap
msgid "colliding packages in profiles"
msgstr ""

#. type: cindex
#: doc/guix.texi:3344
#, no-wrap
msgid "profile collisions"
msgstr ""

#. type: item
#: doc/guix.texi:3345
#, no-wrap
msgid "--allow-collisions"
msgstr ""

#. type: table
#: doc/guix.texi:3347
msgid "Allow colliding packages in the new profile.  Use at your own risk!"
msgstr ""

#. type: table
#: doc/guix.texi:3351
msgid ""
"By default, @command{guix package} reports as an error @dfn{collisions} in "
"the profile.  Collisions happen when two or more different versions or "
"variants of a given package end up in the profile."
msgstr ""

#. type: item
#: doc/guix.texi:3352 doc/guix.texi:4373 doc/guix.texi:6079
#, no-wrap
msgid "--bootstrap"
msgstr ""

#. type: table
#: doc/guix.texi:3355
msgid ""
"Use the bootstrap Guile to build the profile.  This option is only useful to "
"distribution developers."
msgstr ""

#. type: Plain text
#: doc/guix.texi:3361
msgid ""
"In addition to these actions, @command{guix package} supports the following "
"options to query the current state of a profile, or the availability of "
"packages:"
msgstr ""

#. type: item
#: doc/guix.texi:3364
#, no-wrap
msgid "--search=@var{regexp}"
msgstr ""

#. type: itemx
#: doc/guix.texi:3365
#, no-wrap
msgid "-s @var{regexp}"
msgstr ""

#. type: anchor{#1}
#: doc/guix.texi:3367
msgid "guix-search"
msgstr ""

#. type: cindex
#: doc/guix.texi:3367
#, no-wrap
msgid "searching for packages"
msgstr ""

#. type: table
#: doc/guix.texi:3373
msgid ""
"List the available packages whose name, synopsis, or description matches "
"@var{regexp} (in a case-insensitive fashion), sorted by relevance.  Print "
"all the metadata of matching packages in @code{recutils} format (@pxref{Top, "
"GNU recutils databases,, recutils, GNU recutils manual})."
msgstr ""

#. type: table
#: doc/guix.texi:3376
msgid ""
"This allows specific fields to be extracted using the @command{recsel} "
"command, for instance:"
msgstr ""

#. type: example
#: doc/guix.texi:3382
#, no-wrap
msgid ""
"$ guix package -s malloc | recsel -p name,version,relevance\n"
"name: jemalloc\n"
"version: 4.5.0\n"
"relevance: 6\n"
"\n"
msgstr ""

#. type: example
#: doc/guix.texi:3386
#, no-wrap
msgid ""
"name: glibc\n"
"version: 2.25\n"
"relevance: 1\n"
"\n"
msgstr ""

#. type: example
#: doc/guix.texi:3390
#, no-wrap
msgid ""
"name: libgc\n"
"version: 7.6.0\n"
"relevance: 1\n"
msgstr ""

#. type: table
#: doc/guix.texi:3394
msgid ""
"Similarly, to show the name of all the packages available under the terms of "
"the GNU@tie{}LGPL version 3:"
msgstr ""

#. type: example
#: doc/guix.texi:3398
#, no-wrap
msgid ""
"$ guix package -s \"\" | recsel -p name -e 'license ~ \"LGPL 3\"'\n"
"name: elfutils\n"
"\n"
msgstr ""

#. type: example
#: doc/guix.texi:3401
#, no-wrap
msgid ""
"name: gmp\n"
"@dots{}\n"
msgstr ""

#. type: table
#: doc/guix.texi:3407
msgid ""
"It is also possible to refine search results using several @code{-s} flags "
"to @command{guix package}, or several arguments to @command{guix search}.  "
"For example, the following command returns a list of board games (this time "
"using the @command{guix search} alias):"
msgstr ""

#. type: example
#: doc/guix.texi:3412
#, no-wrap
msgid ""
"$ guix search '\\<board\\>' game | recsel -p name\n"
"name: gnubg\n"
"@dots{}\n"
msgstr ""

#. type: table
#: doc/guix.texi:3418
msgid ""
"If we were to omit @code{-s game}, we would also get software packages that "
"deal with printed circuit boards; removing the angle brackets around "
"@code{board} would further add packages that have to do with keyboards."
msgstr ""

#. type: table
#: doc/guix.texi:3422
msgid ""
"And now for a more elaborate example.  The following command searches for "
"cryptographic libraries, filters out Haskell, Perl, Python, and Ruby "
"libraries, and prints the name and synopsis of the matching packages:"
msgstr ""

#. type: example
#: doc/guix.texi:3426
#, no-wrap
msgid ""
"$ guix search crypto library | \\\n"
"    recsel -e '! (name ~ \"^(ghc|perl|python|ruby)\")' -p name,synopsis\n"
msgstr ""

#. type: table
#: doc/guix.texi:3431
msgid ""
"@xref{Selection Expressions,,, recutils, GNU recutils manual}, for more "
"information on @dfn{selection expressions} for @code{recsel -e}."
msgstr ""

#. type: item
#: doc/guix.texi:3432
#, no-wrap
msgid "--show=@var{package}"
msgstr ""

#. type: table
#: doc/guix.texi:3436
msgid ""
"Show details about @var{package}, taken from the list of available packages, "
"in @code{recutils} format (@pxref{Top, GNU recutils databases,, recutils, "
"GNU recutils manual})."
msgstr ""

#. type: example
#: doc/guix.texi:3441
#, no-wrap
msgid ""
"$ guix package --show=python | recsel -p name,version\n"
"name: python\n"
"version: 2.7.6\n"
"\n"
msgstr ""

#. type: example
#: doc/guix.texi:3444
#, no-wrap
msgid ""
"name: python\n"
"version: 3.3.5\n"
msgstr ""

#. type: table
#: doc/guix.texi:3448
msgid ""
"You may also specify the full name of a package to only get details about a "
"specific version of it (this time using the @command{guix show} alias):"
msgstr ""

#. type: example
#: doc/guix.texi:3452
#, no-wrap
msgid ""
"$ guix show python@@3.4 | recsel -p name,version\n"
"name: python\n"
"version: 3.4.3\n"
msgstr ""

#. type: item
#: doc/guix.texi:3456
#, no-wrap
msgid "--list-installed[=@var{regexp}]"
msgstr ""

#. type: itemx
#: doc/guix.texi:3457
#, no-wrap
msgid "-I [@var{regexp}]"
msgstr ""

#. type: table
#: doc/guix.texi:3461
msgid ""
"List the currently installed packages in the specified profile, with the "
"most recently installed packages shown last.  When @var{regexp} is "
"specified, list only installed packages whose name matches @var{regexp}."
msgstr ""

#. type: table
#: doc/guix.texi:3467
msgid ""
"For each installed package, print the following items, separated by tabs: "
"the package name, its version string, the part of the package that is "
"installed (for instance, @code{out} for the default output, @code{include} "
"for its headers, etc.), and the path of this package in the store."
msgstr ""

#. type: item
#: doc/guix.texi:3468
#, no-wrap
msgid "--list-available[=@var{regexp}]"
msgstr ""

#. type: itemx
#: doc/guix.texi:3469
#, no-wrap
msgid "-A [@var{regexp}]"
msgstr ""

#. type: table
#: doc/guix.texi:3473
msgid ""
"List packages currently available in the distribution for this system "
"(@pxref{GNU Distribution}).  When @var{regexp} is specified, list only "
"available packages whose name matches @var{regexp}."
msgstr ""

#. type: table
#: doc/guix.texi:3477
msgid ""
"For each package, print the following items separated by tabs: its name, its "
"version string, the parts of the package (@pxref{Packages with Multiple "
"Outputs}), and the source location of its definition."
msgstr ""

#. type: item
#: doc/guix.texi:3478 doc/guix.texi:4286
#, no-wrap
msgid "--list-generations[=@var{pattern}]"
msgstr ""

#. type: itemx
#: doc/guix.texi:3479 doc/guix.texi:4287
#, no-wrap
msgid "-l [@var{pattern}]"
msgstr ""

#. type: table
#: doc/guix.texi:3485
msgid ""
"Return a list of generations along with their creation dates; for each "
"generation, show the installed packages, with the most recently installed "
"packages shown last.  Note that the zeroth generation is never shown."
msgstr ""

#. type: table
#: doc/guix.texi:3490
msgid ""
"For each installed package, print the following items, separated by tabs: "
"the name of a package, its version string, the part of the package that is "
"installed (@pxref{Packages with Multiple Outputs}), and the location of this "
"package in the store."
msgstr ""

#. type: table
#: doc/guix.texi:3493
msgid ""
"When @var{pattern} is used, the command returns only matching generations.  "
"Valid patterns include:"
msgstr ""

#. type: item
#: doc/guix.texi:3495
#, no-wrap
msgid "@emph{Integers and comma-separated integers}.  Both patterns denote"
msgstr ""

#. type: itemize
#: doc/guix.texi:3498
msgid ""
"generation numbers.  For instance, @option{--list-generations=1} returns the "
"first one."
msgstr ""

#. type: itemize
#: doc/guix.texi:3501
msgid ""
"And @option{--list-generations=1,8,2} outputs three generations in the "
"specified order.  Neither spaces nor trailing commas are allowed."
msgstr ""

#. type: item
#: doc/guix.texi:3502
#, no-wrap
msgid "@emph{Ranges}.  @option{--list-generations=2..9} prints the"
msgstr ""

#. type: itemize
#: doc/guix.texi:3505
msgid ""
"specified generations and everything in between.  Note that the start of a "
"range must be smaller than its end."
msgstr ""

#. type: itemize
#: doc/guix.texi:3509
msgid ""
"It is also possible to omit the endpoint.  For example, @option{--list-"
"generations=2..}, returns all generations starting from the second one."
msgstr ""

#. type: item
#: doc/guix.texi:3510
#, no-wrap
msgid "@emph{Durations}.  You can also get the last @emph{N}@tie{}days, weeks,"
msgstr ""

#. type: itemize
#: doc/guix.texi:3514
msgid ""
"or months by passing an integer along with the first letter of the "
"duration.  For example, @option{--list-generations=20d} lists generations "
"that are up to 20 days old."
msgstr ""

#. type: item
#: doc/guix.texi:3516 doc/guix.texi:4311
#, no-wrap
msgid "--delete-generations[=@var{pattern}]"
msgstr ""

#. type: itemx
#: doc/guix.texi:3517 doc/guix.texi:4312
#, no-wrap
msgid "-d [@var{pattern}]"
msgstr ""

#. type: table
#: doc/guix.texi:3520 doc/guix.texi:4315
msgid ""
"When @var{pattern} is omitted, delete all generations except the current one."
msgstr ""

#. type: table
#: doc/guix.texi:3526 doc/guix.texi:4321
msgid ""
"This command accepts the same patterns as @option{--list-generations}.  When "
"@var{pattern} is specified, delete the matching generations.  When "
"@var{pattern} specifies a duration, generations @emph{older} than the "
"specified duration match.  For instance, @option{--delete-generations=1m} "
"deletes generations that are more than one month old."
msgstr ""

#. type: table
#: doc/guix.texi:3529
msgid ""
"If the current generation matches, it is @emph{not} deleted.  Also, the "
"zeroth generation is never deleted."
msgstr ""

#. type: table
#: doc/guix.texi:3532 doc/guix.texi:4326
msgid ""
"Note that deleting generations prevents rolling back to them.  Consequently, "
"this command must be used with care."
msgstr ""

#. type: Plain text
#: doc/guix.texi:3543
msgid ""
"Finally, since @command{guix package} may actually start build processes, it "
"supports all the common build options (@pxref{Common Build Options}).  It "
"also supports package transformation options, such as @option{--with-source} "
"(@pxref{Package Transformation Options}).  However, note that package "
"transformations are lost when upgrading; to preserve transformations across "
"upgrades, you should define your own package variant in a Guile module and "
"add it to @env{GUIX_PACKAGE_PATH} (@pxref{Defining Packages})."
msgstr ""

#. type: cindex
#: doc/guix.texi:3548
#, no-wrap
msgid "pre-built binaries"
msgstr ""

#. type: Plain text
#: doc/guix.texi:3554
msgid ""
"Guix supports transparent source/binary deployment, which means that it can "
"either build things locally, or download pre-built items from a server, or "
"both.  We call these pre-built items @dfn{substitutes}---they are "
"substitutes for local build results.  In many cases, downloading a "
"substitute is much faster than building things locally."
msgstr ""

#. type: Plain text
#: doc/guix.texi:3559
msgid ""
"Substitutes can be anything resulting from a derivation build "
"(@pxref{Derivations}).  Of course, in the common case, they are pre-built "
"package binaries, but source tarballs, for instance, which also result from "
"derivation builds, can be available as substitutes."
msgstr ""

#. type: cindex
#: doc/guix.texi:3573
#, no-wrap
msgid "build farm"
msgstr ""

#. type: Plain text
#: doc/guix.texi:3583
msgid ""
"The @code{@value{SUBSTITUTE-SERVER}} server is a front-end to an official "
"build farm that builds packages from Guix continuously for some "
"architectures, and makes them available as substitutes.  This is the default "
"source of substitutes; it can be overridden by passing the @option{--"
"substitute-urls} option either to @command{guix-daemon} (@pxref{daemon-"
"substitute-urls,, @code{guix-daemon --substitute-urls}})  or to client tools "
"such as @command{guix package} (@pxref{client-substitute-urls,, client "
"@option{--substitute-urls} option})."
msgstr ""

#. type: Plain text
#: doc/guix.texi:3589
msgid ""
"Substitute URLs can be either HTTP or HTTPS.  HTTPS is recommended because "
"communications are encrypted; conversely, using HTTP makes all "
"communications visible to an eavesdropper, who could use the information "
"gathered to determine, for instance, whether your system has unpatched "
"security vulnerabilities."
msgstr ""

#. type: Plain text
#: doc/guix.texi:3598
msgid ""
"Substitutes from the official build farm are enabled by default when using "
"Guix System (@pxref{GNU Distribution}).  However, they are disabled by "
"default when using Guix on a foreign distribution, unless you have "
"explicitly enabled them via one of the recommended installation steps "
"(@pxref{Installation}).  The following paragraphs describe how to enable or "
"disable substitutes for the official build farm; the same procedure can also "
"be used to enable substitutes for any other substitute server."
msgstr ""

#. type: cindex
#: doc/guix.texi:3602
#, no-wrap
msgid "security"
msgstr ""

#. type: cindex
#: doc/guix.texi:3604
#, no-wrap
msgid "access control list (ACL), for substitutes"
msgstr ""

#. type: cindex
#: doc/guix.texi:3605
#, no-wrap
msgid "ACL (access control list), for substitutes"
msgstr ""

#. type: Plain text
#: doc/guix.texi:3612
msgid ""
"To allow Guix to download substitutes from @code{@value{SUBSTITUTE-SERVER}} "
"or a mirror thereof, you must add its public key to the access control list "
"(ACL) of archive imports, using the @command{guix archive} command "
"(@pxref{Invoking guix archive}).  Doing so implies that you trust "
"@code{@value{SUBSTITUTE-SERVER}} to not be compromised and to serve genuine "
"substitutes."
msgstr ""

#. type: quotation
#: doc/guix.texi:3616
msgid ""
"If you are using Guix System, you can skip this section: Guix System "
"authorizes substitutes from @code{@value{SUBSTITUTE-SERVER}} by default."
msgstr ""

#. type: Plain text
#: doc/guix.texi:3624
msgid ""
"The public key for @code{@value{SUBSTITUTE-SERVER}} is installed along with "
"Guix, in @code{@var{prefix}/share/guix/@value{SUBSTITUTE-SERVER}.pub}, where "
"@var{prefix} is the installation prefix of Guix.  If you installed Guix from "
"source, make sure you checked the GPG signature of @file{guix-"
"@value{VERSION}.tar.gz}, which contains this public key file.  Then, you can "
"run something like this:"
msgstr ""

#. type: example
#: doc/guix.texi:3627
#, no-wrap
msgid "# guix archive --authorize < @var{prefix}/share/guix/@value{SUBSTITUTE-SERVER}.pub\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:3631
msgid ""
"Once this is in place, the output of a command like @code{guix build} should "
"change from something like:"
msgstr ""

#. type: example
#: doc/guix.texi:3640
#, no-wrap
msgid ""
"$ guix build emacs --dry-run\n"
"The following derivations would be built:\n"
"   /gnu/store/yr7bnx8xwcayd6j95r2clmkdl1qh688w-emacs-24.3.drv\n"
"   /gnu/store/x8qsh1hlhgjx6cwsjyvybnfv2i37z23w-dbus-1.6.4.tar.gz.drv\n"
"   /gnu/store/1ixwp12fl950d15h2cj11c73733jay0z-alsa-lib-1.0.27.1.tar.bz2.drv\n"
"   /gnu/store/nlma1pw0p603fpfiqy7kn4zm105r5dmw-util-linux-2.21.drv\n"
"@dots{}\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:3644
msgid "to something like:"
msgstr ""

#. type: example
#: doc/guix.texi:3653
#, no-wrap
msgid ""
"$ guix build emacs --dry-run\n"
"112.3 MB would be downloaded:\n"
"   /gnu/store/pk3n22lbq6ydamyymqkkz7i69wiwjiwi-emacs-24.3\n"
"   /gnu/store/2ygn4ncnhrpr61rssa6z0d9x22si0va3-libjpeg-8d\n"
"   /gnu/store/71yz6lgx4dazma9dwn2mcjxaah9w77jq-cairo-1.12.16\n"
"   /gnu/store/7zdhgp0n1518lvfn8mb96sxqfmvqrl7v-libxrender-0.9.7\n"
"@dots{}\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:3660
msgid ""
"The text changed from ``The following derivations would be built'' to "
"``112.3 MB would be downloaded''.  This indicates that substitutes from "
"@code{@value{SUBSTITUTE-SERVER}} are usable and will be downloaded, when "
"possible, for future builds."
msgstr ""

#. type: cindex
#: doc/guix.texi:3661
#, no-wrap
msgid "substitutes, how to disable"
msgstr ""

#. type: Plain text
#: doc/guix.texi:3667
msgid ""
"The substitute mechanism can be disabled globally by running @code{guix-"
"daemon} with @option{--no-substitutes} (@pxref{Invoking guix-daemon}).  It "
"can also be disabled temporarily by passing the @option{--no-substitutes} "
"option to @command{guix package}, @command{guix build}, and other command-"
"line tools."
msgstr ""

#. type: cindex
#: doc/guix.texi:3671
#, no-wrap
msgid "substitute servers, adding more"
msgstr ""

#. type: Plain text
#: doc/guix.texi:3678
msgid ""
"Guix can look up and fetch substitutes from several servers.  This is useful "
"when you are using packages from additional channels for which the official "
"server does not have substitutes but another server provides them.  Another "
"situation where this is useful is when you would prefer to download from "
"your organization's substitute server, resorting to the official server only "
"as a fallback or dismissing it altogether."
msgstr ""

#. type: Plain text
#: doc/guix.texi:3683
msgid ""
"You can give Guix a list of substitute server URLs and it will check them in "
"the specified order.  You also need to explicitly authorize the public keys "
"of substitute servers to instruct Guix to accept the substitutes they sign."
msgstr ""

#. type: Plain text
#: doc/guix.texi:3690
msgid ""
"On Guix System, this is achieved by modifying the configuration of the "
"@code{guix} service.  Since the @code{guix} service is part of the default "
"lists of services, @code{%base-services} and @code{%desktop-services}, you "
"can use @code{modify-services} to change its configuration and add the URLs "
"and substitute keys that you want (@pxref{Service Reference, @code{modify-"
"services}})."
msgstr ""

#. type: Plain text
#: doc/guix.texi:3695
msgid ""
"As an example, suppose you want to fetch substitutes from @code{guix.example."
"org} and to authorize the signing key of that server, in addition to the "
"default @code{@value{SUBSTITUTE-SERVER}}.  The resulting operating system "
"configuration will look something like:"
msgstr ""

#. type: lisp
#: doc/guix.texi:3712
#, no-wrap
msgid ""
"(operating-system\n"
"  ;; @dots{}\n"
"  (services\n"
"    ;; Assume we're starting from '%desktop-services'.  Replace it\n"
"    ;; with the list of services you're actually using.\n"
"    (modify-services %desktop-services\n"
"      (guix-service-type config =>\n"
"                        (guix-configuration\n"
"                          (inherit config)\n"
"                          (substitute-urls\n"
"                            (append (list \"https://guix.example.org\")\n"
"                                    %default-substitute-urls))\n"
"                          (authorized-keys\n"
"                            (append (list (local-file \"./key.pub\"))\n"
"                                    %default-authorized-guix-keys)))))))\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:3719
msgid ""
"This assumes that the file @file{key.pub} contains the signing key of "
"@code{guix.example.org}.  With this change in place in your operating system "
"configuration file (say @file{/etc/config.scm}), you can reconfigure and "
"restart the @code{guix-daemon} service or reboot so the changes take effect:"
msgstr ""

#. type: example
#: doc/guix.texi:3723
#, no-wrap
msgid ""
"$ sudo guix system reconfigure /etc/config.scm\n"
"$ sudo herd restart guix-daemon\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:3727
msgid ""
"If you're running Guix on a ``foreign distro'', you would instead take the "
"following steps to get substitutes from additional servers:"
msgstr ""

#. type: enumerate
#: doc/guix.texi:3736
msgid ""
"Edit the service configuration file for @code{guix-daemon}; when using "
"systemd, this is normally @file{/etc/systemd/system/guix-daemon.service}.  "
"Add the @option{--substitute-urls} option on the @command{guix-daemon} "
"command line and list the URLs of interest (@pxref{daemon-substitute-urls, "
"@code{guix-daemon --substitute-urls}}):"
msgstr ""

#. type: example
#: doc/guix.texi:3739
#, no-wrap
msgid "@dots{} --substitute-urls='https://guix.example.org https://@value{SUBSTITUTE-SERVER}'\n"
msgstr ""

#. type: enumerate
#: doc/guix.texi:3743
msgid "Restart the daemon.  For systemd, it goes like this:"
msgstr ""

#. type: example
#: doc/guix.texi:3747
#, no-wrap
msgid ""
"systemctl daemon-reload\n"
"systemctl restart guix-daemon.service\n"
msgstr ""

#. type: enumerate
#: doc/guix.texi:3751
msgid "Authorize the key of the new server (@pxref{Invoking guix archive}):"
msgstr ""

#. type: example
#: doc/guix.texi:3754
#, no-wrap
msgid "guix archive --authorize < key.pub\n"
msgstr ""

#. type: enumerate
#: doc/guix.texi:3758
msgid ""
"Again this assumes @file{key.pub} contains the public key that @code{guix."
"example.org} uses to sign substitutes."
msgstr ""

#. type: Plain text
#: doc/guix.texi:3765
msgid ""
"Now you're all set! Substitutes will be preferably taken from @code{https://"
"guix.example.org}, using @code{@value{SUBSTITUTE-SERVER}} as a fallback.  Of "
"course you can list as many substitute servers as you like, with the caveat "
"that substitute lookup can be slowed down if too many servers need to be "
"contacted."
msgstr ""

#. type: Plain text
#: doc/guix.texi:3769
msgid ""
"Note that there are also situations where one may want to add the URL of a "
"substitute server @emph{without} authorizing its key.  @xref{Substitute "
"Authentication}, to understand this fine point."
msgstr ""

#. type: cindex
#: doc/guix.texi:3773
#, no-wrap
msgid "digital signatures"
msgstr ""

#. type: Plain text
#: doc/guix.texi:3777
msgid ""
"Guix detects and raises an error when attempting to use a substitute that "
"has been tampered with.  Likewise, it ignores substitutes that are not "
"signed, or that are not signed by one of the keys listed in the ACL."
msgstr ""

#. type: Plain text
#: doc/guix.texi:3783
msgid ""
"There is one exception though: if an unauthorized server provides "
"substitutes that are @emph{bit-for-bit identical} to those provided by an "
"authorized server, then the unauthorized server becomes eligible for "
"downloads.  For example, assume we have chosen two substitute servers with "
"this option:"
msgstr ""

#. type: example
#: doc/guix.texi:3786
#, no-wrap
msgid "--substitute-urls=\"https://a.example.org https://b.example.org\"\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:3797
msgid ""
"If the ACL contains only the key for @samp{b.example.org}, and if @samp{a."
"example.org} happens to serve the @emph{exact same} substitutes, then Guix "
"will download substitutes from @samp{a.example.org} because it comes first "
"in the list and can be considered a mirror of @samp{b.example.org}.  In "
"practice, independent build machines usually produce the same binaries, "
"thanks to bit-reproducible builds (see below)."
msgstr ""

#. type: Plain text
#: doc/guix.texi:3804
msgid ""
"When using HTTPS, the server's X.509 certificate is @emph{not} validated (in "
"other words, the server is not authenticated), contrary to what HTTPS "
"clients such as Web browsers usually do.  This is because Guix authenticates "
"substitute information itself, as explained above, which is what we care "
"about (whereas X.509 certificates are about authenticating bindings between "
"domain names and public keys)."
msgstr ""

#. type: Plain text
#: doc/guix.texi:3816
msgid ""
"Substitutes are downloaded over HTTP or HTTPS.  The @env{http_proxy} and "
"@env{https_proxy} environment variables can be set in the environment of "
"@command{guix-daemon} and are honored for downloads of substitutes.  Note "
"that the value of those environment variables in the environment where "
"@command{guix build}, @command{guix package}, and other client commands are "
"run has @emph{absolutely no effect}."
msgstr ""

#. type: Plain text
#: doc/guix.texi:3825
msgid ""
"Even when a substitute for a derivation is available, sometimes the "
"substitution attempt will fail.  This can happen for a variety of reasons: "
"the substitute server might be offline, the substitute may recently have "
"been deleted, the connection might have been interrupted, etc."
msgstr ""

#. type: Plain text
#: doc/guix.texi:3839
msgid ""
"When substitutes are enabled and a substitute for a derivation is available, "
"but the substitution attempt fails, Guix will attempt to build the "
"derivation locally depending on whether or not @option{--fallback} was given "
"(@pxref{fallback-option,, common build option @option{--fallback}}).  "
"Specifically, if @option{--fallback} was omitted, then no local build will "
"be performed, and the derivation is considered to have failed.  However, if "
"@option{--fallback} was given, then Guix will attempt to build the "
"derivation locally, and the success or failure of the derivation depends on "
"the success or failure of the local build.  Note that when substitutes are "
"disabled or no substitute is available for the derivation in question, a "
"local build will @emph{always} be performed, regardless of whether or not "
"@option{--fallback} was given."
msgstr ""

#. type: Plain text
#: doc/guix.texi:3844
msgid ""
"To get an idea of how many substitutes are available right now, you can try "
"running the @command{guix weather} command (@pxref{Invoking guix weather}).  "
"This command provides statistics on the substitutes provided by a server."
msgstr ""

#. type: cindex
#: doc/guix.texi:3848
#, no-wrap
msgid "trust, of pre-built binaries"
msgstr ""

#. type: Plain text
#: doc/guix.texi:3858
msgid ""
"Today, each individual's control over their own computing is at the mercy of "
"institutions, corporations, and groups with enough power and determination "
"to subvert the computing infrastructure and exploit its weaknesses.  While "
"using @code{@value{SUBSTITUTE-SERVER}} substitutes can be convenient, we "
"encourage users to also build on their own, or even run their own build "
"farm, such that @code{@value{SUBSTITUTE-SERVER}} is less of an interesting "
"target.  One way to help is by publishing the software you build using "
"@command{guix publish} so that others have one more choice of server to "
"download substitutes from (@pxref{Invoking guix publish})."
msgstr ""

#. type: Plain text
#: doc/guix.texi:3870
msgid ""
"Guix has the foundations to maximize build reproducibility "
"(@pxref{Features}).  In most cases, independent builds of a given package or "
"derivation should yield bit-identical results.  Thus, through a diverse set "
"of independent package builds, we can strengthen the integrity of our "
"systems.  The @command{guix challenge} command aims to help users assess "
"substitute servers, and to assist developers in finding out about non-"
"deterministic package builds (@pxref{Invoking guix challenge}).  Similarly, "
"the @option{--check} option of @command{guix build} allows users to check "
"whether previously-installed substitutes are genuine by rebuilding them "
"locally (@pxref{build-check, @command{guix build --check}})."
msgstr ""

#. type: Plain text
#: doc/guix.texi:3874
msgid ""
"In the future, we want Guix to have support to publish and retrieve binaries "
"to/from other users, in a peer-to-peer fashion.  If you would like to "
"discuss this project, join us on @email{guix-devel@@gnu.org}."
msgstr ""

#. type: cindex
#: doc/guix.texi:3878
#, no-wrap
msgid "multiple-output packages"
msgstr ""

#. type: cindex
#: doc/guix.texi:3879
#, no-wrap
msgid "package outputs"
msgstr ""

#. type: cindex
#: doc/guix.texi:3880
#, no-wrap
msgid "outputs"
msgstr ""

#. type: Plain text
#: doc/guix.texi:3890
msgid ""
"Often, packages defined in Guix have a single @dfn{output}---i.e., the "
"source package leads to exactly one directory in the store.  When running "
"@command{guix install glibc}, one installs the default output of the GNU "
"libc package; the default output is called @code{out}, but its name can be "
"omitted as shown in this command.  In this particular case, the default "
"output of @code{glibc} contains all the C header files, shared libraries, "
"static libraries, Info documentation, and other supporting files."
msgstr ""

#. type: Plain text
#: doc/guix.texi:3898
msgid ""
"Sometimes it is more appropriate to separate the various types of files "
"produced from a single source package into separate outputs.  For instance, "
"the GLib C library (used by GTK+ and related packages)  installs more than "
"20 MiB of reference documentation as HTML pages.  To save space for users "
"who do not need it, the documentation goes to a separate output, called "
"@code{doc}.  To install the main GLib output, which contains everything but "
"the documentation, one would run:"
msgstr ""

#. type: example
#: doc/guix.texi:3901
#, no-wrap
msgid "guix install glib\n"
msgstr ""

#. type: item
#: doc/guix.texi:3903 doc/guix.texi:32085 doc/guix.texi:32110
#, no-wrap
msgid "documentation"
msgstr ""

#. type: Plain text
#: doc/guix.texi:3905
msgid "The command to install its documentation is:"
msgstr ""

#. type: example
#: doc/guix.texi:3908
#, no-wrap
msgid "guix install glib:doc\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:3919
msgid ""
"Some packages install programs with different ``dependency footprints''.  "
"For instance, the WordNet package installs both command-line tools and "
"graphical user interfaces (GUIs).  The former depend solely on the C "
"library, whereas the latter depend on Tcl/Tk and the underlying X "
"libraries.  In this case, we leave the command-line tools in the default "
"output, whereas the GUIs are in a separate output.  This allows users who do "
"not need the GUIs to save space.  The @command{guix size} command can help "
"find out about such situations (@pxref{Invoking guix size}).  @command{guix "
"graph} can also be helpful (@pxref{Invoking guix graph})."
msgstr ""

#. type: Plain text
#: doc/guix.texi:3927
msgid ""
"There are several such multiple-output packages in the GNU distribution.  "
"Other conventional output names include @code{lib} for libraries and "
"possibly header files, @code{bin} for stand-alone programs, and @code{debug} "
"for debugging information (@pxref{Installing Debugging Files}).  The outputs "
"of a packages are listed in the third column of the output of @command{guix "
"package --list-available} (@pxref{Invoking guix package})."
msgstr ""

#. type: section
#: doc/guix.texi:3930
#, no-wrap
msgid "Invoking @command{guix gc}"
msgstr ""

#. type: cindex
#: doc/guix.texi:3932
#, no-wrap
msgid "garbage collector"
msgstr ""

#. type: cindex
#: doc/guix.texi:3933
#, no-wrap
msgid "disk space"
msgstr ""

#. type: Plain text
#: doc/guix.texi:3939
msgid ""
"Packages that are installed, but not used, may be @dfn{garbage-collected}.  "
"The @command{guix gc} command allows users to explicitly run the garbage "
"collector to reclaim space from the @file{/gnu/store} directory.  It is the "
"@emph{only} way to remove files from @file{/gnu/store}---removing files or "
"directories manually may break it beyond repair!"
msgstr ""

#. type: Plain text
#: doc/guix.texi:3950
msgid ""
"The garbage collector has a set of known @dfn{roots}: any file under @file{/"
"gnu/store} reachable from a root is considered @dfn{live} and cannot be "
"deleted; any other file is considered @dfn{dead} and may be deleted.  The "
"set of garbage collector roots (``GC roots'' for short)  includes default "
"user profiles; by default, the symlinks under @file{/var/guix/gcroots} "
"represent these GC roots.  New GC roots can be added with @command{guix "
"build --root}, for example (@pxref{Invoking guix build}).  The @command{guix "
"gc --list-roots} command lists them."
msgstr ""

#. type: Plain text
#: doc/guix.texi:3956
msgid ""
"Prior to running @code{guix gc --collect-garbage} to make space, it is often "
"useful to remove old generations from user profiles; that way, old package "
"builds referenced by those generations can be reclaimed.  This is achieved "
"by running @code{guix package --delete-generations} (@pxref{Invoking guix "
"package})."
msgstr ""

#. type: Plain text
#: doc/guix.texi:3960
msgid ""
"Our recommendation is to run a garbage collection periodically, or when you "
"are short on disk space.  For instance, to guarantee that at least 5@tie{}GB "
"are available on your disk, simply run:"
msgstr ""

#. type: example
#: doc/guix.texi:3963
#, no-wrap
msgid "guix gc -F 5G\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:3972
msgid ""
"It is perfectly safe to run as a non-interactive periodic job "
"(@pxref{Scheduled Job Execution}, for how to set up such a job).  Running "
"@command{guix gc} with no arguments will collect as much garbage as it can, "
"but that is often inconvenient: you may find yourself having to rebuild or "
"re-download software that is ``dead'' from the GC viewpoint but that is "
"necessary to build other pieces of software---e.g., the compiler tool chain."
msgstr ""

#. type: Plain text
#: doc/guix.texi:3978
msgid ""
"The @command{guix gc} command has three modes of operation: it can be used "
"to garbage-collect any dead files (the default), to delete specific files "
"(the @option{--delete} option), to print garbage-collector information, or "
"for more advanced queries.  The garbage collection options are as follows:"
msgstr ""

#. type: item
#: doc/guix.texi:3980
#, no-wrap
msgid "--collect-garbage[=@var{min}]"
msgstr ""

#. type: itemx
#: doc/guix.texi:3981
#, no-wrap
msgid "-C [@var{min}]"
msgstr ""

#. type: table
#: doc/guix.texi:3985
msgid ""
"Collect garbage---i.e., unreachable @file{/gnu/store} files and sub-"
"directories.  This is the default operation when no option is specified."
msgstr ""

#. type: table
#: doc/guix.texi:3990
msgid ""
"When @var{min} is given, stop once @var{min} bytes have been collected.  "
"@var{min} may be a number of bytes, or it may include a unit as a suffix, "
"such as @code{MiB} for mebibytes and @code{GB} for gigabytes (@pxref{Block "
"size, size specifications,, coreutils, GNU Coreutils})."
msgstr ""

#. type: table
#: doc/guix.texi:3992
msgid "When @var{min} is omitted, collect all the garbage."
msgstr ""

#. type: item
#: doc/guix.texi:3993
#, no-wrap
msgid "--free-space=@var{free}"
msgstr ""

#. type: itemx
#: doc/guix.texi:3994
#, no-wrap
msgid "-F @var{free}"
msgstr ""

#. type: table
#: doc/guix.texi:3998
msgid ""
"Collect garbage until @var{free} space is available under @file{/gnu/store}, "
"if possible; @var{free} denotes storage space, such as @code{500MiB}, as "
"described above."
msgstr ""

#. type: table
#: doc/guix.texi:4001
msgid ""
"When @var{free} or more is already available in @file{/gnu/store}, do "
"nothing and exit immediately."
msgstr ""

#. type: item
#: doc/guix.texi:4002
#, no-wrap
msgid "--delete-generations[=@var{duration}]"
msgstr ""

#. type: itemx
#: doc/guix.texi:4003
#, no-wrap
msgid "-d [@var{duration}]"
msgstr ""

#. type: table
#: doc/guix.texi:4007
msgid ""
"Before starting the garbage collection process, delete all the generations "
"older than @var{duration}, for all the user profiles; when run as root, this "
"applies to all the profiles @emph{of all the users}."
msgstr ""

#. type: table
#: doc/guix.texi:4011
msgid ""
"For example, this command deletes all the generations of all your profiles "
"that are older than 2 months (except generations that are current), and then "
"proceeds to free space until at least 10 GiB are available:"
msgstr ""

#. type: example
#: doc/guix.texi:4014
#, no-wrap
msgid "guix gc -d 2m -F 10G\n"
msgstr ""

#. type: item
#: doc/guix.texi:4016
#, no-wrap
msgid "--delete"
msgstr ""

#. type: itemx
#: doc/guix.texi:4017
#, no-wrap
msgid "-D"
msgstr ""

#. type: table
#: doc/guix.texi:4021
msgid ""
"Attempt to delete all the store files and directories specified as "
"arguments.  This fails if some of the files are not in the store, or if they "
"are still live."
msgstr ""

#. type: item
#: doc/guix.texi:4022
#, no-wrap
msgid "--list-failures"
msgstr ""

#. type: table
#: doc/guix.texi:4024
msgid "List store items corresponding to cached build failures."
msgstr ""

#. type: table
#: doc/guix.texi:4028
msgid ""
"This prints nothing unless the daemon was started with @option{--cache-"
"failures} (@pxref{Invoking guix-daemon, @option{--cache-failures}})."
msgstr ""

#. type: item
#: doc/guix.texi:4029
#, no-wrap
msgid "--list-roots"
msgstr ""

#. type: table
#: doc/guix.texi:4032
msgid ""
"List the GC roots owned by the user; when run as root, list @emph{all} the "
"GC roots."
msgstr ""

#. type: item
#: doc/guix.texi:4033
#, no-wrap
msgid "--list-busy"
msgstr ""

#. type: table
#: doc/guix.texi:4036
msgid ""
"List store items in use by currently running processes.  These store items "
"are effectively considered GC roots: they cannot be deleted."
msgstr ""

#. type: item
#: doc/guix.texi:4037
#, no-wrap
msgid "--clear-failures"
msgstr ""

#. type: table
#: doc/guix.texi:4039
msgid "Remove the specified store items from the failed-build cache."
msgstr ""

#. type: table
#: doc/guix.texi:4042
msgid ""
"Again, this option only makes sense when the daemon is started with "
"@option{--cache-failures}.  Otherwise, it does nothing."
msgstr ""

#. type: item
#: doc/guix.texi:4043
#, no-wrap
msgid "--list-dead"
msgstr ""

#. type: table
#: doc/guix.texi:4046
msgid ""
"Show the list of dead files and directories still present in the store---i."
"e., files and directories no longer reachable from any root."
msgstr ""

#. type: item
#: doc/guix.texi:4047
#, no-wrap
msgid "--list-live"
msgstr ""

#. type: table
#: doc/guix.texi:4049
msgid "Show the list of live store files and directories."
msgstr ""

#. type: Plain text
#: doc/guix.texi:4053
msgid "In addition, the references among existing store files can be queried:"
msgstr ""

#. type: item
#: doc/guix.texi:4056
#, no-wrap
msgid "--references"
msgstr ""

#. type: itemx
#: doc/guix.texi:4057
#, no-wrap
msgid "--referrers"
msgstr ""

#. type: cindex
#: doc/guix.texi:4058 doc/guix.texi:11867
#, no-wrap
msgid "package dependencies"
msgstr ""

#. type: table
#: doc/guix.texi:4061
msgid ""
"List the references (respectively, the referrers) of store files given as "
"arguments."
msgstr ""

#. type: item
#: doc/guix.texi:4062
#, no-wrap
msgid "--requisites"
msgstr ""

#. type: itemx
#: doc/guix.texi:4063 doc/guix.texi:5879
#, no-wrap
msgid "-R"
msgstr ""

#. type: item
#: doc/guix.texi:4064 doc/guix.texi:11723 doc/guix.texi:11751
#: doc/guix.texi:11832
#, no-wrap
msgid "closure"
msgstr ""

#. type: table
#: doc/guix.texi:4069
msgid ""
"List the requisites of the store files passed as arguments.  Requisites "
"include the store files themselves, their references, and the references of "
"these, recursively.  In other words, the returned list is the "
"@dfn{transitive closure} of the store files."
msgstr ""

#. type: table
#: doc/guix.texi:4073
msgid ""
"@xref{Invoking guix size}, for a tool to profile the size of the closure of "
"an element.  @xref{Invoking guix graph}, for a tool to visualize the graph "
"of references."
msgstr ""

#. type: item
#: doc/guix.texi:4074
#, no-wrap
msgid "--derivers"
msgstr ""

#. type: item
#: doc/guix.texi:4075 doc/guix.texi:6193 doc/guix.texi:11586
#: doc/guix.texi:11976
#, no-wrap
msgid "derivation"
msgstr ""

#. type: table
#: doc/guix.texi:4078
msgid ""
"Return the derivation(s) leading to the given store items "
"(@pxref{Derivations})."
msgstr ""

#. type: table
#: doc/guix.texi:4080
msgid "For example, this command:"
msgstr ""

#. type: example
#: doc/guix.texi:4083
#, no-wrap
msgid "guix gc --derivers `guix package -I ^emacs$ | cut -f4`\n"
msgstr ""

#. type: table
#: doc/guix.texi:4088
msgid ""
"returns the @file{.drv} file(s) leading to the @code{emacs} package "
"installed in your profile."
msgstr ""

#. type: table
#: doc/guix.texi:4092
msgid ""
"Note that there may be zero matching @file{.drv} files, for instance because "
"these files have been garbage-collected.  There can also be more than one "
"matching @file{.drv} due to fixed-output derivations."
msgstr ""

#. type: Plain text
#: doc/guix.texi:4096
msgid ""
"Lastly, the following options allow you to check the integrity of the store "
"and to control disk usage."
msgstr ""

#. type: item
#: doc/guix.texi:4099
#, no-wrap
msgid "--verify[=@var{options}]"
msgstr ""

#. type: cindex
#: doc/guix.texi:4100
#, no-wrap
msgid "integrity, of the store"
msgstr ""

#. type: cindex
#: doc/guix.texi:4101
#, no-wrap
msgid "integrity checking"
msgstr ""

#. type: table
#: doc/guix.texi:4103
msgid "Verify the integrity of the store."
msgstr ""

#. type: table
#: doc/guix.texi:4106
msgid ""
"By default, make sure that all the store items marked as valid in the "
"database of the daemon actually exist in @file{/gnu/store}."
msgstr ""

#. type: table
#: doc/guix.texi:4109
msgid ""
"When provided, @var{options} must be a comma-separated list containing one "
"or more of @code{contents} and @code{repair}."
msgstr ""

#. type: table
#: doc/guix.texi:4115
msgid ""
"When passing @option{--verify=contents}, the daemon computes the content "
"hash of each store item and compares it against its hash in the database.  "
"Hash mismatches are reported as data corruptions.  Because it traverses "
"@emph{all the files in the store}, this command can take a long time, "
"especially on systems with a slow disk drive."
msgstr ""

#. type: cindex
#: doc/guix.texi:4116
#, no-wrap
msgid "repairing the store"
msgstr ""

#. type: cindex
#: doc/guix.texi:4117 doc/guix.texi:10502
#, no-wrap
msgid "corruption, recovering from"
msgstr ""

#. type: table
#: doc/guix.texi:4125
msgid ""
"Using @option{--verify=repair} or @option{--verify=contents,repair} causes "
"the daemon to try to repair corrupt store items by fetching substitutes for "
"them (@pxref{Substitutes}).  Because repairing is not atomic, and thus "
"potentially dangerous, it is available only to the system administrator.  A "
"lightweight alternative, when you know exactly which items in the store are "
"corrupt, is @command{guix build --repair} (@pxref{Invoking guix build})."
msgstr ""

#. type: item
#: doc/guix.texi:4126
#, no-wrap
msgid "--optimize"
msgstr ""

#. type: table
#: doc/guix.texi:4130
msgid ""
"Optimize the store by hard-linking identical files---this is "
"@dfn{deduplication}."
msgstr ""

#. type: table
#: doc/guix.texi:4136
msgid ""
"The daemon performs deduplication after each successful build or archive "
"import, unless it was started with @option{--disable-deduplication} "
"(@pxref{Invoking guix-daemon, @option{--disable-deduplication}}).  Thus, "
"this option is primarily useful when the daemon was running with @option{--"
"disable-deduplication}."
msgstr ""

#. type: section
#: doc/guix.texi:4140
#, no-wrap
msgid "Invoking @command{guix pull}"
msgstr ""

#. type: cindex
#: doc/guix.texi:4142
#, no-wrap
msgid "upgrading Guix"
msgstr ""

#. type: cindex
#: doc/guix.texi:4143
#, no-wrap
msgid "updating Guix"
msgstr ""

#. type: command{#1}
#: doc/guix.texi:4144
#, no-wrap
msgid "guix pull"
msgstr ""

#. type: cindex
#: doc/guix.texi:4145
#, no-wrap
msgid "pull"
msgstr ""

#. type: cindex
#: doc/guix.texi:4146
#, no-wrap
msgid "security, @command{guix pull}"
msgstr ""

#. type: cindex
#: doc/guix.texi:4147
#, no-wrap
msgid "authenticity, of code obtained with @command{guix pull}"
msgstr ""

#. type: Plain text
#: doc/guix.texi:4157
msgid ""
"Packages are installed or upgraded to the latest version available in the "
"distribution currently available on your local machine.  To update that "
"distribution, along with the Guix tools, you must run @command{guix pull}: "
"the command downloads the latest Guix source code and package descriptions, "
"and deploys it.  Source code is downloaded from a @uref{https://git-scm.com, "
"Git} repository, by default the official GNU@tie{}Guix repository, though "
"this can be customized.  @command{guix pull} ensures that the code it "
"downloads is @emph{authentic} by verifying that commits are signed by Guix "
"developers."
msgstr ""

#. type: Plain text
#: doc/guix.texi:4160
msgid ""
"Specifically, @command{guix pull} downloads code from the @dfn{channels} "
"(@pxref{Channels}) specified by one of the followings, in this order:"
msgstr ""

#. type: enumerate
#: doc/guix.texi:4164
msgid "the @option{--channels} option;"
msgstr ""

#. type: enumerate
#: doc/guix.texi:4166
msgid "the user's @file{~/.config/guix/channels.scm} file;"
msgstr ""

#. type: enumerate
#: doc/guix.texi:4168
msgid "the system-wide @file{/etc/guix/channels.scm} file;"
msgstr ""

#. type: enumerate
#: doc/guix.texi:4171
msgid ""
"the built-in default channels specified in the @code{%default-channels} "
"variable."
msgstr ""

#. type: Plain text
#: doc/guix.texi:4178
msgid ""
"On completion, @command{guix package} will use packages and package versions "
"from this just-retrieved copy of Guix.  Not only that, but all the Guix "
"commands and Scheme modules will also be taken from that latest version.  "
"New @command{guix} sub-commands added by the update also become available."
msgstr ""

#. type: Plain text
#: doc/guix.texi:4184
msgid ""
"Any user can update their Guix copy using @command{guix pull}, and the "
"effect is limited to the user who ran @command{guix pull}.  For instance, "
"when user @code{root} runs @command{guix pull}, this has no effect on the "
"version of Guix that user @code{alice} sees, and vice versa."
msgstr ""

#. type: Plain text
#: doc/guix.texi:4190
msgid ""
"The result of running @command{guix pull} is a @dfn{profile} available under "
"@file{~/.config/guix/current} containing the latest Guix.  Thus, make sure "
"to add it to the beginning of your search path so that you use the latest "
"version, and similarly for the Info manual (@pxref{Documentation}):"
msgstr ""

#. type: example
#: doc/guix.texi:4194
#, no-wrap
msgid ""
"export PATH=\"$HOME/.config/guix/current/bin:$PATH\"\n"
"export INFOPATH=\"$HOME/.config/guix/current/share/info:$INFOPATH\"\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:4198
msgid ""
"The @option{--list-generations} or @option{-l} option lists past generations "
"produced by @command{guix pull}, along with details about their provenance:"
msgstr ""

#. type: example
#: doc/guix.texi:4206
#, no-wrap
msgid ""
"$ guix pull -l\n"
"Generation 1\tJun 10 2018 00:18:18\n"
"  guix 65956ad\n"
"    repository URL: https://git.savannah.gnu.org/git/guix.git\n"
"    branch: origin/master\n"
"    commit: 65956ad3526ba09e1f7a40722c96c6ef7c0936fe\n"
"\n"
msgstr ""

#. type: example
#: doc/guix.texi:4216
#, no-wrap
msgid ""
"Generation 2\tJun 11 2018 11:02:49\n"
"  guix e0cc7f6\n"
"    repository URL: https://git.savannah.gnu.org/git/guix.git\n"
"    branch: origin/master\n"
"    commit: e0cc7f669bec22c37481dd03a7941c7d11a64f1d\n"
"  2 new packages: keepalived, libnfnetlink\n"
"  6 packages upgraded: emacs-nix-mode@@2.0.4,\n"
"    guile2.0-guix@@0.14.0-12.77a1aac, guix@@0.14.0-12.77a1aac,\n"
"    heimdal@@7.5.0, milkytracker@@1.02.00, nix@@2.0.4\n"
"\n"
msgstr ""

#. type: example
#: doc/guix.texi:4224
#, no-wrap
msgid ""
"Generation 3\tJun 13 2018 23:31:07\t(current)\n"
"  guix 844cc1c\n"
"    repository URL: https://git.savannah.gnu.org/git/guix.git\n"
"    branch: origin/master\n"
"    commit: 844cc1c8f394f03b404c5bb3aee086922373490c\n"
"  28 new packages: emacs-helm-ls-git, emacs-helm-mu, @dots{}\n"
"  69 packages upgraded: borg@@1.1.6, cheese@@3.28.0, @dots{}\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:4228
msgid ""
"@xref{Invoking guix describe, @command{guix describe}}, for other ways to "
"describe the current status of Guix."
msgstr ""

#. type: Plain text
#: doc/guix.texi:4233
msgid ""
"This @code{~/.config/guix/current} profile works exactly like the profiles "
"created by @command{guix package} (@pxref{Invoking guix package}). That is, "
"you can list generations, roll back to the previous generation---i.e., the "
"previous Guix---and so on:"
msgstr ""

#. type: example
#: doc/guix.texi:4239
#, no-wrap
msgid ""
"$ guix pull --roll-back\n"
"switched from generation 3 to 2\n"
"$ guix pull --delete-generations=1\n"
"deleting /var/guix/profiles/per-user/charlie/current-guix-1-link\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:4243
msgid ""
"You can also use @command{guix package} (@pxref{Invoking guix package})  to "
"manage the profile by naming it explicitly:"
msgstr ""

#. type: example
#: doc/guix.texi:4248
#, no-wrap
msgid ""
"$ guix package -p ~/.config/guix/current --roll-back\n"
"switched from generation 3 to 2\n"
"$ guix package -p ~/.config/guix/current --delete-generations=1\n"
"deleting /var/guix/profiles/per-user/charlie/current-guix-1-link\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:4252
msgid ""
"The @command{guix pull} command is usually invoked with no arguments, but it "
"supports the following options:"
msgstr ""

#. type: item
#: doc/guix.texi:4254 doc/guix.texi:4412
#, no-wrap
msgid "--url=@var{url}"
msgstr ""

#. type: itemx
#: doc/guix.texi:4255 doc/guix.texi:4413
#, no-wrap
msgid "--commit=@var{commit}"
msgstr ""

#. type: itemx
#: doc/guix.texi:4256 doc/guix.texi:4414
#, no-wrap
msgid "--branch=@var{branch}"
msgstr ""

#. type: table
#: doc/guix.texi:4260
msgid ""
"Download code for the @code{guix} channel from the specified @var{url}, at "
"the given @var{commit} (a valid Git commit ID represented as a hexadecimal "
"string), or @var{branch}."
msgstr ""

#. type: cindex
#: doc/guix.texi:4261 doc/guix.texi:4858
#, no-wrap
msgid "@file{channels.scm}, configuration file"
msgstr ""

#. type: cindex
#: doc/guix.texi:4262 doc/guix.texi:4859
#, no-wrap
msgid "configuration file for channels"
msgstr ""

#. type: table
#: doc/guix.texi:4266
msgid ""
"These options are provided for convenience, but you can also specify your "
"configuration in the @file{~/.config/guix/channels.scm} file or using the "
"@option{--channels} option (see below)."
msgstr ""

#. type: item
#: doc/guix.texi:4267 doc/guix.texi:4419
#, no-wrap
msgid "--channels=@var{file}"
msgstr ""

#. type: itemx
#: doc/guix.texi:4268 doc/guix.texi:4420
#, no-wrap
msgid "-C @var{file}"
msgstr ""

#. type: table
#: doc/guix.texi:4274
msgid ""
"Read the list of channels from @var{file} instead of @file{~/.config/guix/"
"channels.scm} or @file{/etc/guix/channels.scm}.  @var{file} must contain "
"Scheme code that evaluates to a list of channel objects.  @xref{Channels}, "
"for more information."
msgstr ""

#. type: cindex
#: doc/guix.texi:4275
#, no-wrap
msgid "channel news"
msgstr ""

#. type: item
#: doc/guix.texi:4276
#, no-wrap
msgid "--news"
msgstr ""

#. type: itemx
#: doc/guix.texi:4277 doc/guix.texi:5654 doc/guix.texi:31059
#, no-wrap
msgid "-N"
msgstr ""

#. type: table
#: doc/guix.texi:4281
msgid ""
"Display the list of packages added or upgraded since the previous "
"generation, as well as, occasionally, news written by channel authors for "
"their users (@pxref{Channels, Writing Channel News})."
msgstr ""

#. type: table
#: doc/guix.texi:4285
msgid ""
"The package information is the same as displayed upon @command{guix pull} "
"completion, but without ellipses; it is also similar to the output of "
"@command{guix pull -l} for the last generation (see below)."
msgstr ""

#. type: table
#: doc/guix.texi:4292
msgid ""
"List all the generations of @file{~/.config/guix/current} or, if "
"@var{pattern} is provided, the subset of generations that match "
"@var{pattern}.  The syntax of @var{pattern} is the same as with @code{guix "
"package --list-generations} (@pxref{Invoking guix package})."
msgstr ""

#. type: table
#: doc/guix.texi:4299
msgid ""
"Roll back to the previous @dfn{generation} of @file{~/.config/guix/"
"current}---i.e., undo the last transaction."
msgstr ""

#. type: table
#: doc/guix.texi:4323
msgid "If the current generation matches, it is @emph{not} deleted."
msgstr ""

#. type: table
#: doc/guix.texi:4329
msgid ""
"@xref{Invoking guix describe}, for a way to display information about the "
"current generation only."
msgstr ""

#. type: table
#: doc/guix.texi:4333
msgid "Use @var{profile} instead of @file{~/.config/guix/current}."
msgstr ""

#. type: item
#: doc/guix.texi:4334 doc/guix.texi:9950
#, no-wrap
msgid "--dry-run"
msgstr ""

#. type: itemx
#: doc/guix.texi:4335 doc/guix.texi:9951 doc/guix.texi:11705
#, no-wrap
msgid "-n"
msgstr ""

#. type: table
#: doc/guix.texi:4338
msgid ""
"Show which channel commit(s) would be used and what would be built or "
"substituted but do not actually do it."
msgstr ""

#. type: item
#: doc/guix.texi:4339 doc/guix.texi:31078
#, no-wrap
msgid "--allow-downgrades"
msgstr ""

#. type: table
#: doc/guix.texi:4342
msgid ""
"Allow pulling older or unrelated revisions of channels than those currently "
"in use."
msgstr ""

#. type: cindex
#: doc/guix.texi:4343
#, no-wrap
msgid "downgrade attacks, protection against"
msgstr ""

#. type: table
#: doc/guix.texi:4348
msgid ""
"By default, @command{guix pull} protects against so-called ``downgrade "
"attacks'' whereby the Git repository of a channel would be reset to an "
"earlier or unrelated revision of itself, potentially leading you to install "
"older, known-vulnerable versions of software packages."
msgstr ""

#. type: quotation
#: doc/guix.texi:4352 doc/guix.texi:31092
msgid ""
"Make sure you understand its security implications before using @option{--"
"allow-downgrades}."
msgstr ""

#. type: item
#: doc/guix.texi:4354
#, no-wrap
msgid "--disable-authentication"
msgstr ""

#. type: table
#: doc/guix.texi:4356
msgid "Allow pulling channel code without authenticating it."
msgstr ""

#. type: cindex
#: doc/guix.texi:4357 doc/guix.texi:5003
#, no-wrap
msgid "authentication, of channel code"
msgstr ""

#. type: table
#: doc/guix.texi:4362
msgid ""
"By default, @command{guix pull} authenticates code downloaded from channels "
"by verifying that its commits are signed by authorized developers, and "
"raises an error if this is not the case.  This option instructs it to not "
"perform any such verification."
msgstr ""

#. type: quotation
#: doc/guix.texi:4366
msgid ""
"Make sure you understand its security implications before using @option{--"
"disable-authentication}."
msgstr ""

#. type: itemx
#: doc/guix.texi:4369 doc/guix.texi:5637 doc/guix.texi:6008 doc/guix.texi:10444
#: doc/guix.texi:11850 doc/guix.texi:12101 doc/guix.texi:12757
#: doc/guix.texi:31007
#, no-wrap
msgid "-s @var{system}"
msgstr ""

#. type: table
#: doc/guix.texi:4372 doc/guix.texi:6011
msgid ""
"Attempt to build for @var{system}---e.g., @code{i686-linux}---instead of the "
"system type of the build host."
msgstr ""

#. type: table
#: doc/guix.texi:4376
msgid ""
"Use the bootstrap Guile to build the latest Guix.  This option is only "
"useful to Guix developers."
msgstr ""

#. type: Plain text
#: doc/guix.texi:4382
msgid ""
"The @dfn{channel} mechanism allows you to instruct @command{guix pull} which "
"repository and branch to pull from, as well as @emph{additional} "
"repositories containing package modules that should be deployed.  "
"@xref{Channels}, for more information."
msgstr ""

#. type: Plain text
#: doc/guix.texi:4385
msgid ""
"In addition, @command{guix pull} supports all the common build options "
"(@pxref{Common Build Options})."
msgstr ""

#. type: section
#: doc/guix.texi:4387
#, no-wrap
msgid "Invoking @command{guix time-machine}"
msgstr ""

#. type: command{#1}
#: doc/guix.texi:4389
#, no-wrap
msgid "guix time-machine"
msgstr ""

#. type: cindex
#: doc/guix.texi:4390 doc/guix.texi:4961
#, no-wrap
msgid "pinning, channels"
msgstr ""

#. type: cindex
#: doc/guix.texi:4391 doc/guix.texi:4573 doc/guix.texi:4962
#, no-wrap
msgid "replicating Guix"
msgstr ""

#. type: cindex
#: doc/guix.texi:4392 doc/guix.texi:4963
#, no-wrap
msgid "reproducibility, of Guix"
msgstr ""

#. type: Plain text
#: doc/guix.texi:4400
msgid ""
"The @command{guix time-machine} command provides access to other revisions "
"of Guix, for example to install older versions of packages, or to reproduce "
"a computation in an identical environment.  The revision of Guix to be used "
"is defined by a commit or by a channel description file created by "
"@command{guix describe} (@pxref{Invoking guix describe})."
msgstr ""

#. type: Plain text
#: doc/guix.texi:4402 doc/guix.texi:5392 doc/guix.texi:6131 doc/guix.texi:9747
#: doc/guix.texi:9870 doc/guix.texi:10735 doc/guix.texi:10812
#: doc/guix.texi:11680 doc/guix.texi:12154 doc/guix.texi:12511
#: doc/guix.texi:12600 doc/guix.texi:12639 doc/guix.texi:12736
msgid "The general syntax is:"
msgstr ""

#. type: example
#: doc/guix.texi:4405
#, no-wrap
msgid "guix time-machine @var{options}@dots{} -- @var{command} @var {arg}@dots{}\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:4410
msgid ""
"where @var{command} and @var{arg}@dots{} are passed unmodified to the "
"@command{guix} command of the specified revision.  The @var{options} that "
"define this revision are the same as for @command{guix pull} "
"(@pxref{Invoking guix pull}):"
msgstr ""

#. type: table
#: doc/guix.texi:4418
msgid ""
"Use the @code{guix} channel from the specified @var{url}, at the given "
"@var{commit} (a valid Git commit ID represented as a hexadecimal string), or "
"@var{branch}."
msgstr ""

#. type: table
#: doc/guix.texi:4424
msgid ""
"Read the list of channels from @var{file}.  @var{file} must contain Scheme "
"code that evaluates to a list of channel objects.  @xref{Channels} for more "
"information."
msgstr ""

#. type: Plain text
#: doc/guix.texi:4428
msgid ""
"As for @command{guix pull}, the absence of any options means that the latest "
"commit on the master branch will be used. The command"
msgstr ""

#. type: example
#: doc/guix.texi:4431
#, no-wrap
msgid "guix time-machine -- build hello\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:4436
msgid ""
"will thus build the package @code{hello} as defined in the master branch, "
"which is in general a newer revision of Guix than you have installed.  Time "
"travel works in both directions!"
msgstr ""

#. type: Plain text
#: doc/guix.texi:4440
msgid ""
"Note that @command{guix time-machine} can trigger builds of channels and "
"their dependencies, and these are controlled by the standard build options "
"(@pxref{Common Build Options})."
msgstr ""

#. type: quotation
#: doc/guix.texi:4448
msgid ""
"The functionality described here is a ``technology preview'' as of version "
"@value{VERSION}.  As such, the interface is subject to change."
msgstr ""

#. type: cindex
#: doc/guix.texi:4450 doc/guix.texi:9784
#, no-wrap
msgid "inferiors"
msgstr ""

#. type: cindex
#: doc/guix.texi:4451
#, no-wrap
msgid "composition of Guix revisions"
msgstr ""

#. type: Plain text
#: doc/guix.texi:4456
msgid ""
"Sometimes you might need to mix packages from the revision of Guix you're "
"currently running with packages available in a different revision of Guix.  "
"Guix @dfn{inferiors} allow you to achieve that by composing different Guix "
"revisions in arbitrary ways."
msgstr ""

#. type: cindex
#: doc/guix.texi:4457 doc/guix.texi:4522
#, no-wrap
msgid "inferior packages"
msgstr ""

#. type: Plain text
#: doc/guix.texi:4463
msgid ""
"Technically, an ``inferior'' is essentially a separate Guix process "
"connected to your main Guix process through a REPL (@pxref{Invoking guix "
"repl}).  The @code{(guix inferior)} module allows you to create inferiors "
"and to communicate with them.  It also provides a high-level interface to "
"browse and manipulate the packages that an inferior provides---@dfn{inferior "
"packages}."
msgstr ""

#. type: Plain text
#: doc/guix.texi:4473
msgid ""
"When combined with channels (@pxref{Channels}), inferiors provide a simple "
"way to interact with a separate revision of Guix.  For example, let's assume "
"you want to install in your profile the current @code{guile} package, along "
"with the @code{guile-json} as it existed in an older revision of Guix---"
"perhaps because the newer @code{guile-json} has an incompatible API and you "
"want to run your code against the old API@.  To do that, you could write a "
"manifest for use by @code{guix package --manifest} (@pxref{Invoking guix "
"package}); in that manifest, you would create an inferior for that old Guix "
"revision you care about, and you would look up the @code{guile-json} package "
"in the inferior:"
msgstr ""

#. type: lisp
#: doc/guix.texi:4477
#, no-wrap
msgid ""
"(use-modules (guix inferior) (guix channels)\n"
"             (srfi srfi-1))   ;for 'first'\n"
"\n"
msgstr ""

#. type: lisp
#: doc/guix.texi:4486
#, no-wrap
msgid ""
"(define channels\n"
"  ;; This is the old revision from which we want to\n"
"  ;; extract guile-json.\n"
"  (list (channel\n"
"         (name 'guix)\n"
"         (url \"https://git.savannah.gnu.org/git/guix.git\")\n"
"         (commit\n"
"          \"65956ad3526ba09e1f7a40722c96c6ef7c0936fe\"))))\n"
"\n"
msgstr ""

#. type: lisp
#: doc/guix.texi:4490
#, no-wrap
msgid ""
"(define inferior\n"
"  ;; An inferior representing the above revision.\n"
"  (inferior-for-channels channels))\n"
"\n"
msgstr ""

#. type: lisp
#: doc/guix.texi:4496
#, no-wrap
msgid ""
";; Now create a manifest with the current \"guile\" package\n"
";; and the old \"guile-json\" package.\n"
"(packages->manifest\n"
" (list (first (lookup-inferior-packages inferior \"guile-json\"))\n"
"       (specification->package \"guile\")))\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:4501
msgid ""
"On its first run, @command{guix package --manifest} might have to build the "
"channel you specified before it can create the inferior; subsequent runs "
"will be much faster because the Guix revision will be cached."
msgstr ""

#. type: Plain text
#: doc/guix.texi:4504
msgid ""
"The @code{(guix inferior)} module provides the following procedures to open "
"an inferior:"
msgstr ""

#. type: deffn
#: doc/guix.texi:4505
#, no-wrap
msgid "{Scheme Procedure} inferior-for-channels @var{channels} @"
msgstr ""

#. type: deffn
#: doc/guix.texi:4510
msgid ""
"[#:cache-directory] [#:ttl] Return an inferior for @var{channels}, a list of "
"channels.  Use the cache at @var{cache-directory}, where entries can be "
"reclaimed after @var{ttl} seconds.  This procedure opens a new connection to "
"the build daemon."
msgstr ""

#. type: deffn
#: doc/guix.texi:4513
msgid ""
"As a side effect, this procedure may build or substitute binaries for "
"@var{channels}, which can take time."
msgstr ""

#. type: deffn
#: doc/guix.texi:4515
#, no-wrap
msgid "{Scheme Procedure} open-inferior @var{directory} @"
msgstr ""

#. type: deffn
#: doc/guix.texi:4520
msgid ""
"[#:command \"bin/guix\"] Open the inferior Guix in @var{directory}, running "
"@code{@var{directory}/@var{command} repl} or equivalent.  Return @code{#f} "
"if the inferior could not be launched."
msgstr ""

#. type: Plain text
#: doc/guix.texi:4525
msgid ""
"The procedures listed below allow you to obtain and manipulate inferior "
"packages."
msgstr ""

#. type: deffn
#: doc/guix.texi:4526
#, no-wrap
msgid "{Scheme Procedure} inferior-packages @var{inferior}"
msgstr ""

#. type: deffn
#: doc/guix.texi:4528
msgid "Return the list of packages known to @var{inferior}."
msgstr ""

#. type: deffn
#: doc/guix.texi:4530
#, no-wrap
msgid "{Scheme Procedure} lookup-inferior-packages @var{inferior} @var{name} @"
msgstr ""

#. type: deffn
#: doc/guix.texi:4535
msgid ""
"[@var{version}] Return the sorted list of inferior packages matching "
"@var{name} in @var{inferior}, with highest version numbers first.  If "
"@var{version} is true, return only packages with a version number prefixed "
"by @var{version}."
msgstr ""

#. type: deffn
#: doc/guix.texi:4537
#, no-wrap
msgid "{Scheme Procedure} inferior-package? @var{obj}"
msgstr ""

#. type: deffn
#: doc/guix.texi:4539
msgid "Return true if @var{obj} is an inferior package."
msgstr ""

#. type: deffn
#: doc/guix.texi:4541
#, no-wrap
msgid "{Scheme Procedure} inferior-package-name @var{package}"
msgstr ""

#. type: deffnx
#: doc/guix.texi:4542
#, no-wrap
msgid "{Scheme Procedure} inferior-package-version @var{package}"
msgstr ""

#. type: deffnx
#: doc/guix.texi:4543
#, no-wrap
msgid "{Scheme Procedure} inferior-package-synopsis @var{package}"
msgstr ""

#. type: deffnx
#: doc/guix.texi:4544
#, no-wrap
msgid "{Scheme Procedure} inferior-package-description @var{package}"
msgstr ""

#. type: deffnx
#: doc/guix.texi:4545
#, no-wrap
msgid "{Scheme Procedure} inferior-package-home-page @var{package}"
msgstr ""

#. type: deffnx
#: doc/guix.texi:4546
#, no-wrap
msgid "{Scheme Procedure} inferior-package-location @var{package}"
msgstr ""

#. type: deffnx
#: doc/guix.texi:4547
#, no-wrap
msgid "{Scheme Procedure} inferior-package-inputs @var{package}"
msgstr ""

#. type: deffnx
#: doc/guix.texi:4548
#, no-wrap
msgid "{Scheme Procedure} inferior-package-native-inputs @var{package}"
msgstr ""

#. type: deffnx
#: doc/guix.texi:4549
#, no-wrap
msgid "{Scheme Procedure} inferior-package-propagated-inputs @var{package}"
msgstr ""

#. type: deffnx
#: doc/guix.texi:4550
#, no-wrap
msgid "{Scheme Procedure} inferior-package-transitive-propagated-inputs @var{package}"
msgstr ""

#. type: deffnx
#: doc/guix.texi:4551
#, no-wrap
msgid "{Scheme Procedure} inferior-package-native-search-paths @var{package}"
msgstr ""

#. type: deffnx
#: doc/guix.texi:4552
#, no-wrap
msgid "{Scheme Procedure} inferior-package-transitive-native-search-paths @var{package}"
msgstr ""

#. type: deffnx
#: doc/guix.texi:4553
#, no-wrap
msgid "{Scheme Procedure} inferior-package-search-paths @var{package}"
msgstr ""

#. type: deffn
#: doc/guix.texi:4558
msgid ""
"These procedures are the counterpart of package record accessors "
"(@pxref{package Reference}).  Most of them work by querying the inferior "
"@var{package} comes from, so the inferior must still be live when you call "
"these procedures."
msgstr ""

#. type: Plain text
#: doc/guix.texi:4568
msgid ""
"Inferior packages can be used transparently like any other package or file-"
"like object in G-expressions (@pxref{G-Expressions}).  They are also "
"transparently handled by the @code{packages->manifest} procedure, which is "
"commonly use in manifests (@pxref{Invoking guix package, the @option{--"
"manifest} option of @command{guix package}}).  Thus you can insert an "
"inferior package pretty much anywhere you would insert a regular package: in "
"manifests, in the @code{packages} field of your @code{operating-system} "
"declaration, and so on."
msgstr ""

#. type: section
#: doc/guix.texi:4570
#, no-wrap
msgid "Invoking @command{guix describe}"
msgstr ""

#. type: Plain text
#: doc/guix.texi:4581
msgid ""
"Often you may want to answer questions like: ``Which revision of Guix am I "
"using?'' or ``Which channels am I using?'' This is useful information in "
"many situations: if you want to @emph{replicate} an environment on a "
"different machine or user account, if you want to report a bug or to "
"determine what change in the channels you are using caused it, or if you "
"want to record your system state for reproducibility purposes.  The "
"@command{guix describe} command answers these questions."
msgstr ""

#. type: Plain text
#: doc/guix.texi:4585
msgid ""
"When run from a @command{guix pull}ed @command{guix}, @command{guix "
"describe} displays the channel(s) that it was built from, including their "
"repository URL and commit IDs (@pxref{Channels}):"
msgstr ""

#. type: example
#: doc/guix.texi:4593
#, no-wrap
msgid ""
"$ guix describe\n"
"Generation 10\tSep 03 2018 17:32:44\t(current)\n"
"  guix e0fa68c\n"
"    repository URL: https://git.savannah.gnu.org/git/guix.git\n"
"    branch: master\n"
"    commit: e0fa68c7718fffd33d81af415279d6ddb518f727\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:4602
msgid ""
"If you're familiar with the Git version control system, this is similar in "
"spirit to @command{git describe}; the output is also similar to that of "
"@command{guix pull --list-generations}, but limited to the current "
"generation (@pxref{Invoking guix pull, the @option{--list-generations} "
"option}).  Because the Git commit ID shown above unambiguously refers to a "
"snapshot of Guix, this information is all it takes to describe the revision "
"of Guix you're using, and also to replicate it."
msgstr ""

#. type: Plain text
#: doc/guix.texi:4605
msgid ""
"To make it easier to replicate Guix, @command{guix describe} can also be "
"asked to return a list of channels instead of the human-readable description "
"above:"
msgstr ""

#. type: example
#: doc/guix.texi:4618
#, no-wrap
msgid ""
"$ guix describe -f channels\n"
"(list (channel\n"
"        (name 'guix)\n"
"        (url \"https://git.savannah.gnu.org/git/guix.git\")\n"
"        (commit\n"
"          \"e0fa68c7718fffd33d81af415279d6ddb518f727\")\n"
"        (introduction\n"
"          (make-channel-introduction\n"
"            \"9edb3f66fd807b096b48283debdcddccfea34bad\"\n"
"            (openpgp-fingerprint\n"
"              \"BBB0 2DDF 2CEA F6A8 0D1D  E643 A2A0 6DF2 A33A 54FA\")))))\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:4627
msgid ""
"You can save this to a file and feed it to @command{guix pull -C} on some "
"other machine or at a later point in time, which will instantiate @emph{this "
"exact Guix revision} (@pxref{Invoking guix pull, the @option{-C} option}).  "
"From there on, since you're able to deploy the same revision of Guix, you "
"can just as well @emph{replicate a complete software environment}.  We "
"humbly think that this is @emph{awesome}, and we hope you'll like it too!"
msgstr ""

#. type: Plain text
#: doc/guix.texi:4630
msgid ""
"The details of the options supported by @command{guix describe} are as "
"follows:"
msgstr ""

#. type: item
#: doc/guix.texi:4632 doc/guix.texi:5838
#, no-wrap
msgid "--format=@var{format}"
msgstr ""

#. type: itemx
#: doc/guix.texi:4633 doc/guix.texi:5839
#, no-wrap
msgid "-f @var{format}"
msgstr ""

#. type: table
#: doc/guix.texi:4635
msgid "Produce output in the specified @var{format}, one of:"
msgstr ""

#. type: item
#: doc/guix.texi:4637
#, no-wrap
msgid "human"
msgstr ""

#. type: table
#: doc/guix.texi:4639
msgid "produce human-readable output;"
msgstr ""

#. type: cindex
#: doc/guix.texi:4639 doc/guix.texi:4857
#, no-wrap
msgid "channels"
msgstr ""

#. type: table
#: doc/guix.texi:4643
msgid ""
"produce a list of channel specifications that can be passed to @command{guix "
"pull -C} or installed as @file{~/.config/guix/channels.scm} (@pxref{Invoking "
"guix pull});"
msgstr ""

#. type: item
#: doc/guix.texi:4643
#, no-wrap
msgid "channels-sans-intro"
msgstr ""

#. type: table
#: doc/guix.texi:4649
msgid ""
"like @code{channels}, but omit the @code{introduction} field; use it to "
"produce a channel specification suitable for Guix version 1.1.0 or earlier---"
"the @code{introduction} field has to do with channel authentication "
"(@pxref{Channels, Channel Authentication}) and is not supported by these "
"older versions;"
msgstr ""

#. type: item
#: doc/guix.texi:4649 doc/guix.texi:10991
#, no-wrap
msgid "json"
msgstr ""

#. type: cindex
#: doc/guix.texi:4650
#, no-wrap
msgid "JSON"
msgstr ""

#. type: table
#: doc/guix.texi:4652
msgid "produce a list of channel specifications in JSON format;"
msgstr ""

#. type: item
#: doc/guix.texi:4652
#, no-wrap
msgid "recutils"
msgstr ""

#. type: table
#: doc/guix.texi:4654
msgid "produce a list of channel specifications in Recutils format."
msgstr ""

#. type: item
#: doc/guix.texi:4656
#, no-wrap
msgid "--list-formats"
msgstr ""

#. type: table
#: doc/guix.texi:4658
msgid "Display available formats for @option{--format} option."
msgstr ""

#. type: table
#: doc/guix.texi:4662
msgid "Display information about @var{profile}."
msgstr ""

#. type: section
#: doc/guix.texi:4665
#, no-wrap
msgid "Invoking @command{guix archive}"
msgstr ""

#. type: command{#1}
#: doc/guix.texi:4667
#, no-wrap
msgid "guix archive"
msgstr ""

#. type: cindex
#: doc/guix.texi:4668
#, no-wrap
msgid "archive"
msgstr ""

#. type: Plain text
#: doc/guix.texi:4674
msgid ""
"The @command{guix archive} command allows users to @dfn{export} files from "
"the store into a single archive, and to later @dfn{import} them on a machine "
"that runs Guix.  In particular, it allows store files to be transferred from "
"one machine to the store on another machine."
msgstr ""

#. type: quotation
#: doc/guix.texi:4678
msgid ""
"If you're looking for a way to produce archives in a format suitable for "
"tools other than Guix, @pxref{Invoking guix pack}."
msgstr ""

#. type: cindex
#: doc/guix.texi:4680
#, no-wrap
msgid "exporting store items"
msgstr ""

#. type: Plain text
#: doc/guix.texi:4682
msgid "To export store files as an archive to standard output, run:"
msgstr ""

#. type: example
#: doc/guix.texi:4685
#, no-wrap
msgid "guix archive --export @var{options} @var{specifications}...\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:4692
msgid ""
"@var{specifications} may be either store file names or package "
"specifications, as for @command{guix package} (@pxref{Invoking guix "
"package}).  For instance, the following command creates an archive "
"containing the @code{gui} output of the @code{git} package and the main "
"output of @code{emacs}:"
msgstr ""

#. type: example
#: doc/guix.texi:4695
#, no-wrap
msgid "guix archive --export git:gui /gnu/store/...-emacs-24.3 > great.nar\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:4700
msgid ""
"If the specified packages are not built yet, @command{guix archive} "
"automatically builds them.  The build process may be controlled with the "
"common build options (@pxref{Common Build Options})."
msgstr ""

#. type: Plain text
#: doc/guix.texi:4703
msgid ""
"To transfer the @code{emacs} package to a machine connected over SSH, one "
"would run:"
msgstr ""

#. type: example
#: doc/guix.texi:4706
#, no-wrap
msgid "guix archive --export -r emacs | ssh the-machine guix archive --import\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:4711
msgid ""
"Similarly, a complete user profile may be transferred from one machine to "
"another like this:"
msgstr ""

#. type: example
#: doc/guix.texi:4715
#, no-wrap
msgid ""
"guix archive --export -r $(readlink -f ~/.guix-profile) | \\\n"
"  ssh the-machine guix archive --import\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:4725
msgid ""
"However, note that, in both examples, all of @code{emacs} and the profile as "
"well as all of their dependencies are transferred (due to @option{-r}), "
"regardless of what is already available in the store on the target machine.  "
"The @option{--missing} option can help figure out which items are missing "
"from the target store.  The @command{guix copy} command simplifies and "
"optimizes this whole process, so this is probably what you should use in "
"this case (@pxref{Invoking guix copy})."
msgstr ""

#. type: cindex
#: doc/guix.texi:4726
#, no-wrap
msgid "nar, archive format"
msgstr ""

#. type: cindex
#: doc/guix.texi:4727
#, no-wrap
msgid "normalized archive (nar)"
msgstr ""

#. type: cindex
#: doc/guix.texi:4728
#, no-wrap
msgid "nar bundle, archive format"
msgstr ""

#. type: Plain text
#: doc/guix.texi:4733
msgid ""
"Each store item is written in the @dfn{normalized archive} or @dfn{nar} "
"format (described below), and the output of @command{guix archive --export} "
"(and input of @command{guix archive --import}) is a @dfn{nar bundle}."
msgstr ""

#. type: Plain text
#: doc/guix.texi:4743
msgid ""
"The nar format is comparable in spirit to `tar', but with differences that "
"make it more appropriate for our purposes.  First, rather than recording all "
"Unix metadata for each file, the nar format only mentions the file type "
"(regular, directory, or symbolic link); Unix permissions and owner/group are "
"dismissed.  Second, the order in which directory entries are stored always "
"follows the order of file names according to the C locale collation order.  "
"This makes archive production fully deterministic."
msgstr ""

#. type: Plain text
#: doc/guix.texi:4747
msgid ""
"That nar bundle format is essentially the concatenation of zero or more nars "
"along with metadata for each store item it contains: its file name, "
"references, corresponding derivation, and a digital signature."
msgstr ""

#. type: Plain text
#: doc/guix.texi:4753
msgid ""
"When exporting, the daemon digitally signs the contents of the archive, and "
"that digital signature is appended.  When importing, the daemon verifies the "
"signature and rejects the import in case of an invalid signature or if the "
"signing key is not authorized."
msgstr ""

#. type: Plain text
#: doc/guix.texi:4755
msgid "The main options are:"
msgstr ""

#. type: item
#: doc/guix.texi:4757
#, no-wrap
msgid "--export"
msgstr ""

#. type: table
#: doc/guix.texi:4760
msgid ""
"Export the specified store files or packages (see below).  Write the "
"resulting archive to the standard output."
msgstr ""

#. type: table
#: doc/guix.texi:4763
msgid ""
"Dependencies are @emph{not} included in the output, unless @option{--"
"recursive} is passed."
msgstr ""

#. type: itemx
#: doc/guix.texi:4764 doc/guix.texi:10768 doc/guix.texi:10870
#: doc/guix.texi:10895 doc/guix.texi:11096 doc/guix.texi:11137
#: doc/guix.texi:11184 doc/guix.texi:11209
#, no-wrap
msgid "-r"
msgstr ""

#. type: item
#: doc/guix.texi:4765 doc/guix.texi:10767 doc/guix.texi:10869
#: doc/guix.texi:10894 doc/guix.texi:11095 doc/guix.texi:11136
#: doc/guix.texi:11183 doc/guix.texi:11208 doc/guix.texi:11260
#, no-wrap
msgid "--recursive"
msgstr ""

#. type: table
#: doc/guix.texi:4770
msgid ""
"When combined with @option{--export}, this instructs @command{guix archive} "
"to include dependencies of the given items in the archive.  Thus, the "
"resulting archive is self-contained: it contains the closure of the exported "
"store items."
msgstr ""

#. type: item
#: doc/guix.texi:4771
#, no-wrap
msgid "--import"
msgstr ""

#. type: table
#: doc/guix.texi:4776
msgid ""
"Read an archive from the standard input, and import the files listed therein "
"into the store.  Abort if the archive has an invalid digital signature, or "
"if it is signed by a public key not among the authorized keys (see @option{--"
"authorize} below)."
msgstr ""

#. type: item
#: doc/guix.texi:4777
#, no-wrap
msgid "--missing"
msgstr ""

#. type: table
#: doc/guix.texi:4781
msgid ""
"Read a list of store file names from the standard input, one per line, and "
"write on the standard output the subset of these files missing from the "
"store."
msgstr ""

#. type: item
#: doc/guix.texi:4782
#, no-wrap
msgid "--generate-key[=@var{parameters}]"
msgstr ""

#. type: cindex
#: doc/guix.texi:4783
#, no-wrap
msgid "signing, archives"
msgstr ""

#. type: table
#: doc/guix.texi:4790
msgid ""
"Generate a new key pair for the daemon.  This is a prerequisite before "
"archives can be exported with @option{--export}.  This operation is usually "
"instantaneous but it can take time if the system's entropy pool needs to be "
"refilled.  On Guix System, @code{guix-service-type} takes care of generating "
"this key pair the first boot."
msgstr ""

#. type: table
#: doc/guix.texi:4800
msgid ""
"The generated key pair is typically stored under @file{/etc/guix}, in "
"@file{signing-key.pub} (public key) and @file{signing-key.sec} (private key, "
"which must be kept secret).  When @var{parameters} is omitted, an ECDSA key "
"using the Ed25519 curve is generated, or, for Libgcrypt versions before "
"1.6.0, it is a 4096-bit RSA key.  Alternatively, @var{parameters} can "
"specify @code{genkey} parameters suitable for Libgcrypt (@pxref{General "
"public-key related Functions, @code{gcry_pk_genkey},, gcrypt, The Libgcrypt "
"Reference Manual})."
msgstr ""

#. type: item
#: doc/guix.texi:4801
#, no-wrap
msgid "--authorize"
msgstr ""

#. type: cindex
#: doc/guix.texi:4802
#, no-wrap
msgid "authorizing, archives"
msgstr ""

#. type: table
#: doc/guix.texi:4806
msgid ""
"Authorize imports signed by the public key passed on standard input.  The "
"public key must be in ``s-expression advanced format''---i.e., the same "
"format as the @file{signing-key.pub} file."
msgstr ""

#. type: table
#: doc/guix.texi:4813
msgid ""
"The list of authorized keys is kept in the human-editable file @file{/etc/"
"guix/acl}.  The file contains @url{https://people.csail.mit.edu/rivest/Sexp."
"txt, ``advanced-format s-expressions''} and is structured as an access-"
"control list in the @url{https://theworld.com/~cme/spki.txt, Simple Public-"
"Key Infrastructure (SPKI)}."
msgstr ""

#. type: item
#: doc/guix.texi:4814
#, no-wrap
msgid "--extract=@var{directory}"
msgstr ""

#. type: itemx
#: doc/guix.texi:4815
#, no-wrap
msgid "-x @var{directory}"
msgstr ""

#. type: table
#: doc/guix.texi:4819
msgid ""
"Read a single-item archive as served by substitute servers "
"(@pxref{Substitutes}) and extract it to @var{directory}.  This is a low-"
"level operation needed in only very narrow use cases; see below."
msgstr ""

#. type: table
#: doc/guix.texi:4822
msgid ""
"For example, the following command extracts the substitute for Emacs served "
"by @code{@value{SUBSTITUTE-SERVER}} to @file{/tmp/emacs}:"
msgstr ""

#. type: example
#: doc/guix.texi:4827
#, no-wrap
msgid ""
"$ wget -O - \\\n"
"  https://@value{SUBSTITUTE-SERVER}/nar/gzip/@dots{}-emacs-24.5 \\\n"
"  | gunzip | guix archive -x /tmp/emacs\n"
msgstr ""

#. type: table
#: doc/guix.texi:4834
msgid ""
"Single-item archives are different from multiple-item archives produced by "
"@command{guix archive --export}; they contain a single store item, and they "
"do @emph{not} embed a signature.  Thus this operation does @emph{no} "
"signature verification and its output should be considered unsafe."
msgstr ""

#. type: table
#: doc/guix.texi:4838
msgid ""
"The primary purpose of this operation is to facilitate inspection of archive "
"contents coming from possibly untrusted substitute servers (@pxref{Invoking "
"guix challenge})."
msgstr ""

#. type: item
#: doc/guix.texi:4839
#, no-wrap
msgid "--list"
msgstr ""

#. type: itemx
#: doc/guix.texi:4840 doc/guix.texi:11083 doc/guix.texi:11130
#, no-wrap
msgid "-t"
msgstr ""

#. type: table
#: doc/guix.texi:4844
msgid ""
"Read a single-item archive as served by substitute servers "
"(@pxref{Substitutes}) and print the list of files it contains, as in this "
"example:"
msgstr ""

#. type: example
#: doc/guix.texi:4849
#, no-wrap
msgid ""
"$ wget -O - \\\n"
"  https://@value{SUBSTITUTE-SERVER}/nar/lzip/@dots{}-emacs-26.3 \\\n"
"  | lzip -d | guix archive -t\n"
msgstr ""

#. type: cindex
#: doc/guix.texi:4860
#, no-wrap
msgid "@command{guix pull}, configuration file"
msgstr ""

#. type: cindex
#: doc/guix.texi:4861
#, no-wrap
msgid "configuration of @command{guix pull}"
msgstr ""

#. type: Plain text
#: doc/guix.texi:4872
msgid ""
"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."
msgstr ""

#. type: cindex
#: doc/guix.texi:4889
#, no-wrap
msgid "extending the package collection (channels)"
msgstr ""

#. type: cindex
#: doc/guix.texi:4890
#, no-wrap
msgid "variant packages (channels)"
msgstr ""

#. type: Plain text
#: doc/guix.texi:4894
msgid ""
"You can specify @emph{additional channels} to pull from. To use a channel, "
"write @code{~/.config/guix/channels.scm} to instruct @command{guix pull} to "
"pull from it @emph{in addition} to the default Guix channel(s):"
msgstr ""

#. type: vindex
#: doc/guix.texi:4895
#, no-wrap
msgid "%default-channels"
msgstr ""

#. type: lisp
#: doc/guix.texi:4902
#, no-wrap
msgid ""
";; Add variant packages to those Guix provides.\n"
"(cons (channel\n"
"        (name 'variant-packages)\n"
"        (url \"https://example.org/variant-packages.git\"))\n"
"      %default-channels)\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:4912
msgid ""
"Note that the snippet above is (as always!)@: Scheme code; we use "
"@code{cons} to add a channel the list of channels that the variable "
"@code{%default-channels} is bound to (@pxref{Pairs, @code{cons} and lists,, "
"guile, GNU Guile Reference Manual}).  With this file in place, @command{guix "
"pull} builds not only Guix but also the package modules from your own "
"repository.  The result in @file{~/.config/guix/current} is the union of "
"Guix with your own package modules:"
msgstr ""

#. type: example
#: doc/guix.texi:4927
#, no-wrap
msgid ""
"$ guix pull --list-generations\n"
"@dots{}\n"
"Generation 19\tAug 27 2018 16:20:48\n"
"  guix d894ab8\n"
"    repository URL: https://git.savannah.gnu.org/git/guix.git\n"
"    branch: master\n"
"    commit: d894ab8e9bfabcefa6c49d9ba2e834dd5a73a300\n"
"  variant-packages dd3df5e\n"
"    repository URL: https://example.org/variant-packages.git\n"
"    branch: master\n"
"    commit: dd3df5e2c8818760a8fc0bd699e55d3b69fef2bb\n"
"  11 new packages: variant-gimp, variant-emacs-with-cool-features, @dots{}\n"
"  4 packages upgraded: emacs-racket-mode@@0.0.2-2.1b78827, @dots{}\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:4935
msgid ""
"The output of @command{guix pull} above shows that Generation@tie{}19 "
"includes both Guix and packages from the @code{variant-personal-packages} "
"channel.  Among the new and upgraded packages that are listed, some like "
"@code{variant-gimp} and @code{variant-emacs-with-cool-features} might come "
"from @code{variant-packages}, while others come from the Guix default "
"channel."
msgstr ""

#. type: Plain text
#: doc/guix.texi:4944
msgid ""
"The channel called @code{guix} specifies where Guix itself---its command-"
"line tools as well as its package collection---should be downloaded.  For "
"instance, suppose you want to update from another copy of the Guix "
"repository at @code{example.org}, and specifically the @code{super-hacks} "
"branch, you can write in @code{~/.config/guix/channels.scm} this "
"specification:"
msgstr ""

#. type: lisp
#: doc/guix.texi:4951
#, no-wrap
msgid ""
";; Tell 'guix pull' to use another repo.\n"
"(list (channel\n"
"        (name 'guix)\n"
"        (url \"https://example.org/another-guix.git\")\n"
"        (branch \"super-hacks\")))\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:4957
msgid ""
"From there on, @command{guix pull} will fetch code from the @code{super-"
"hacks} branch of the repository at @code{example.org}.  The authentication "
"concern is addressed below ((@pxref{Channel Authentication})."
msgstr ""

#. type: Plain text
#: doc/guix.texi:4968
msgid ""
"The @command{guix pull --list-generations} output above shows precisely "
"which commits were used to build this instance of Guix.  We can thus "
"replicate it, say, on another machine, by providing a channel specification "
"in @file{~/.config/guix/channels.scm} that is ``pinned'' to these commits:"
msgstr ""

#. type: lisp
#: doc/guix.texi:4979
#, no-wrap
msgid ""
";; Deploy specific commits of my channels of interest.\n"
"(list (channel\n"
"       (name 'guix)\n"
"       (url \"https://git.savannah.gnu.org/git/guix.git\")\n"
"       (commit \"6298c3ffd9654d3231a6f25390b056483e8f407c\"))\n"
"      (channel\n"
"       (name 'variant-packages)\n"
"       (url \"https://example.org/variant-packages.git\")\n"
"       (commit \"dd3df5e2c8818760a8fc0bd699e55d3b69fef2bb\")))\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:4986
msgid ""
"The @command{guix describe --format=channels} command can even generate this "
"list of channels directly (@pxref{Invoking guix describe}).  The resulting "
"file can be used with the -C options of @command{guix pull} (@pxref{Invoking "
"guix pull}) or @command{guix time-machine} (@pxref{Invoking guix time-"
"machine})."
msgstr ""

#. type: Plain text
#: doc/guix.texi:4993
msgid ""
"At this point the two machines run the @emph{exact same Guix}, with access "
"to the @emph{exact same packages}.  The output of @command{guix build gimp} "
"on one machine will be exactly the same, bit for bit, as the output of the "
"same command on the other machine.  It also means both machines have access "
"to all the source code of Guix and, transitively, to all the source code of "
"every package it defines."
msgstr ""

#. type: Plain text
#: doc/guix.texi:4998
msgid ""
"This gives you super powers, allowing you to track the provenance of binary "
"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."
msgstr ""

#. type: anchor{#1}
#: doc/guix.texi:5003
msgid "channel-authentication"
msgstr ""

#. type: Plain text
#: doc/guix.texi:5009
msgid ""
"The @command{guix pull} and @command{guix time-machine} commands "
"@dfn{authenticate} the code retrieved from channels: they make sure each "
"commit that is fetched is signed by an authorized developer.  The goal is to "
"protect from unauthorized modifications to the channel that would lead users "
"to run malicious code."
msgstr ""

#. type: Plain text
#: doc/guix.texi:5014
msgid ""
"As a user, you must provide a @dfn{channel introduction} in your channels "
"file so that Guix knows how to authenticate its first commit.  A channel "
"specification, including its introduction, looks something along these lines:"
msgstr ""

#. type: lisp
#: doc/guix.texi:5024
#, no-wrap
msgid ""
"(channel\n"
"  (name 'some-channel)\n"
"  (url \"https://example.org/some-channel.git\")\n"
"  (introduction\n"
"   (make-channel-introduction\n"
"    \"6f0d8cc0d88abb59c324b2990bfee2876016bb86\"\n"
"    (openpgp-fingerprint\n"
"     \"CABB A931 C0FF EEC6 900D  0CFB 090B 1199 3D9A EBB5\"))))\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:5030
msgid ""
"The specification above shows the name and URL of the channel.  The call to "
"@code{make-channel-introduction} above specifies that authentication of this "
"channel starts at commit @code{6f0d8cc@dots{}}, which is signed by the "
"OpenPGP key with fingerprint @code{CABB A931@dots{}}."
msgstr ""

#. type: Plain text
#: doc/guix.texi:5036
msgid ""
"For the main channel, called @code{guix}, you automatically get that "
"information from your Guix installation.  For other channels, include the "
"channel introduction provided by the channel authors in your @file{channels."
"scm} file.  Make sure you retrieve the channel introduction from a trusted "
"source since that is the root of your trust."
msgstr ""

#. type: Plain text
#: doc/guix.texi:5038
msgid "If you're curious about the authentication mechanics, read on!"
msgstr ""

#. type: cindex
#: doc/guix.texi:5042
#, no-wrap
msgid "personal packages (channels)"
msgstr ""

#. type: cindex
#: doc/guix.texi:5043
#, no-wrap
msgid "channels, for personal packages"
msgstr ""

#. type: Plain text
#: doc/guix.texi:5051
msgid ""
"Let's say you have a bunch of custom package variants or personal packages "
"that you think would make little sense to contribute to the Guix project, "
"but would like to have these packages transparently available to you at the "
"command line.  You would first write modules containing those package "
"definitions (@pxref{Package Modules}), maintain them in a Git repository, "
"and then you and anyone else can use it as an additional channel to get "
"packages from.  Neat, no?"
msgstr ""

#. type: quotation
#: doc/guix.texi:5055 doc/guix.texi:13173 doc/guix.texi:18777
#: doc/guix.texi:18784
#, no-wrap
msgid "Warning"
msgstr ""

#. type: quotation
#: doc/guix.texi:5059
msgid ""
"Before you, dear user, shout---``woow this is @emph{soooo coool}!''---and "
"publish your personal channel to the world, we would like to share a few "
"words of caution:"
msgstr ""

#. type: itemize
#: doc/guix.texi:5067
msgid ""
"Before publishing a channel, please consider contributing your package "
"definitions to Guix proper (@pxref{Contributing}).  Guix as a project is "
"open to free software of all sorts, and packages in Guix proper are readily "
"available to all Guix users and benefit from the project's quality assurance "
"process."
msgstr ""

#. type: itemize
#: doc/guix.texi:5076
msgid ""
"When you maintain package definitions outside Guix, we, Guix developers, "
"consider that @emph{the compatibility burden is on you}.  Remember that "
"package modules and package definitions are just Scheme code that uses "
"various programming interfaces (APIs).  We want to remain free to change "
"these APIs to keep improving Guix, possibly in ways that break your "
"channel.  We never change APIs gratuitously, but we will @emph{not} commit "
"to freezing APIs either."
msgstr ""

#. type: itemize
#: doc/guix.texi:5080
msgid ""
"Corollary: if you're using an external channel and that channel breaks, "
"please @emph{report the issue to the channel authors}, not to the Guix "
"project."
msgstr ""

#. type: quotation
#: doc/guix.texi:5087
msgid ""
"You've been warned! Having said this, we believe external channels are a "
"practical way to exert your freedom to augment Guix' package collection and "
"to share your improvements, which are basic tenets of @uref{https://www.gnu."
"org/philosophy/free-sw.html, free software}.  Please email us at @email{guix-"
"devel@@gnu.org} if you'd like to discuss this."
msgstr ""

#. type: Plain text
#: doc/guix.texi:5099
msgid ""
"To create a channel, create a Git repository containing your own package "
"modules and make it available.  The repository can contain anything, but a "
"useful channel will contain Guile modules that export packages.  Once you "
"start using a channel, Guix will behave as if the root directory of that "
"channel's Git repository has been added to the Guile load path (@pxref{Load "
"Paths,,, guile, GNU Guile Reference Manual}).  For example, if your channel "
"contains a file at @file{my-packages/my-tools.scm} that defines a Guile "
"module, then the module will be available under the name @code{(my-packages "
"my-tools)}, and you will be able to use it like any other module "
"(@pxref{Modules,,, guile, GNU Guile Reference Manual})."
msgstr ""

#. type: Plain text
#: doc/guix.texi:5104
msgid ""
"As a channel author, consider bundling authentication material with your "
"channel so that users can authenticate it.  @xref{Channel Authentication}, "
"and @ref{Specifying Channel Authorizations}, for info on how to do it."
msgstr ""

#. type: cindex
#: doc/guix.texi:5109
#, no-wrap
msgid "subdirectory, channels"
msgstr ""

#. type: Plain text
#: doc/guix.texi:5113
msgid ""
"As a channel author, you may want to keep your channel modules in a sub-"
"directory.  If your modules are in the sub-directory @file{guix}, you must "
"add a meta-data file @file{.guix-channel} that contains:"
msgstr ""

#. type: lisp
#: doc/guix.texi:5118
#, no-wrap
msgid ""
"(channel\n"
"  (version 0)\n"
"  (directory \"guix\"))\n"
msgstr ""

#. type: cindex
#: doc/guix.texi:5123
#, no-wrap
msgid "dependencies, channels"
msgstr ""

#. type: cindex
#: doc/guix.texi:5124
#, no-wrap
msgid "meta-data, channels"
msgstr ""

#. type: Plain text
#: doc/guix.texi:5129
msgid ""
"Channel authors may decide to augment a package collection provided by other "
"channels.  They can declare their channel to be dependent on other channels "
"in a meta-data file @file{.guix-channel}, which is to be placed in the root "
"of the channel repository."
msgstr ""

#. type: Plain text
#: doc/guix.texi:5131
msgid "The meta-data file should contain a simple S-expression like this:"
msgstr ""

#. type: lisp
#: doc/guix.texi:5139
#, no-wrap
msgid ""
"(channel\n"
" (version 0)\n"
" (dependencies\n"
"  (channel\n"
"   (name 'some-collection)\n"
"   (url \"https://example.org/first-collection.git\")\n"
"\n"
msgstr ""

#. type: lisp
#: doc/guix.texi:5151
#, no-wrap
msgid ""
"   ;; The 'introduction' bit below is optional: you would\n"
"   ;; provide it for dependencies that can be authenticated.\n"
"   (introduction\n"
"    (channel-introduction\n"
"      (version 0)\n"
"      (commit \"a8883b58dc82e167c96506cf05095f37c2c2c6cd\")\n"
"      (signer \"CABB A931 C0FF EEC6 900D  0CFB 090B 1199 3D9A EBB5\"))))\n"
"  (channel\n"
"   (name 'some-other-collection)\n"
"   (url \"https://example.org/second-collection.git\")\n"
"   (branch \"testing\"))))\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:5157
msgid ""
"In the above example this channel is declared to depend on two other "
"channels, which will both be fetched automatically.  The modules provided by "
"the channel will be compiled in an environment where the modules of all "
"these declared channels are available."
msgstr ""

#. type: Plain text
#: doc/guix.texi:5161
msgid ""
"For the sake of reliability and maintainability, you should avoid "
"dependencies on channels that you don't control, and you should aim to keep "
"the number of dependencies to a minimum."
msgstr ""

#. type: cindex
#: doc/guix.texi:5165
#, no-wrap
msgid "channel authorizations"
msgstr ""

#. type: anchor{#1}
#: doc/guix.texi:5179
msgid "channel-authorizations"
msgstr ""

#. type: Plain text
#: doc/guix.texi:5179
msgid ""
"As we saw above, Guix ensures the source code it pulls from channels comes "
"from authorized developers.  As a channel author, you need to specify the "
"list of authorized developers in the @file{.guix-authorizations} file in the "
"channel's Git repository.  The authentication rule is simple: each commit "
"must be signed by a key listed in the @file{.guix-authorizations} file of "
"its parent commit(s)@footnote{Git commits form a @dfn{directed acyclic "
"graph} (DAG).  Each commit can have zero or more parents; ``regular'' "
"commits have one parent and merge commits have two parent commits.  Read "
"@uref{https://eagain.net/articles/git-for-computer-scientists/, @i{Git for "
"Computer Scientists}} for a great overview.} The @file{.guix-authorizations} "
"file looks like this:"
msgstr ""

#. type: lisp
#: doc/guix.texi:5182
#, no-wrap
msgid ""
";; Example '.guix-authorizations' file.\n"
"\n"
msgstr ""

#. type: lisp
#: doc/guix.texi:5185
#, no-wrap
msgid ""
"(authorizations\n"
" (version 0)               ;current file format version\n"
"\n"
msgstr ""

#. type: lisp
#: doc/guix.texi:5192
#, no-wrap
msgid ""
" ((\"AD17 A21E F8AE D8F1 CC02  DBD9 F8AE D8F1 765C 61E3\"\n"
"   (name \"alice\"))\n"
"  (\"2A39 3FFF 68F4 EF7A 3D29  12AF 68F4 EF7A 22FB B2D5\"\n"
"   (name \"bob\"))\n"
"  (\"CABB A931 C0FF EEC6 900D  0CFB 090B 1199 3D9A EBB5\"\n"
"   (name \"charlie\"))))\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:5196
msgid ""
"Each fingerprint is followed by optional key/value pairs, as in the example "
"above.  Currently these key/value pairs are ignored."
msgstr ""

#. type: Plain text
#: doc/guix.texi:5201
msgid ""
"This authentication rule creates a chicken-and-egg issue: how do we "
"authenticate the first commit? Related to that: how do we deal with channels "
"whose repository history contains unsigned commits and lack @file{.guix-"
"authorizations}? And how do we fork existing channels?"
msgstr ""

#. type: cindex
#: doc/guix.texi:5202
#, no-wrap
msgid "channel introduction"
msgstr ""

#. type: Plain text
#: doc/guix.texi:5209
msgid ""
"Channel introductions answer these questions by describing the first commit "
"of a channel that should be authenticated.  The first time a channel is "
"fetched with @command{guix pull} or @command{guix time-machine}, the command "
"looks up the introductory commit and verifies that it is signed by the "
"specified OpenPGP key.  From then on, it authenticates commits according to "
"the rule above."
msgstr ""

#. type: Plain text
#: doc/guix.texi:5216
msgid ""
"Additionally, your channel must provide all the OpenPGP keys that were ever "
"mentioned in @file{.guix-authorizations}, stored as @file{.key} files, which "
"can be either binary or ``ASCII-armored''.  By default, those @file{.key} "
"files are searched for in the branch named @code{keyring} but you can "
"specify a different branch name in @code{.guix-channel} like so:"
msgstr ""

#. type: lisp
#: doc/guix.texi:5221
#, no-wrap
msgid ""
"(channel\n"
"  (version 0)\n"
"  (keyring-reference \"my-keyring-branch\"))\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:5225
msgid ""
"To summarize, as the author of a channel, there are three things you have to "
"do to allow users to authenticate your code:"
msgstr ""

#. type: enumerate
#: doc/guix.texi:5231
msgid ""
"Export the OpenPGP keys of past and present committers with @command{gpg --"
"export} and store them in @file{.key} files, by default in a branch named "
"@code{keyring} (we recommend making it an @dfn{orphan branch})."
msgstr ""

#. type: enumerate
#: doc/guix.texi:5236
msgid ""
"Introduce an initial @file{.guix-authorizations} in the channel's "
"repository.  Do that in a signed commit (@pxref{Commit Access}, for "
"information on how to sign Git commits.)"
msgstr ""

#. type: enumerate
#: doc/guix.texi:5242
msgid ""
"Advertise the channel introduction, for instance on your channel's web "
"page.  The channel introduction, as we saw above, is the commit/key pair---i."
"e., the commit that introduced @file{.guix-authorizations}, and the "
"fingerprint of the OpenPGP used to sign it."
msgstr ""

#. type: Plain text
#: doc/guix.texi:5247
msgid ""
"Before pushing to your public Git repository, you can run @command{guix git-"
"authenticate} to verify that you did sign all the commits you are about to "
"push with an authorized key:"
msgstr ""

#. type: example
#: doc/guix.texi:5250
#, no-wrap
msgid "guix git authenticate @var{commit} @var{signer}\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:5255
msgid ""
"where @var{commit} and @var{signer} are your channel introduction.  "
"@xref{Invoking guix git authenticate}, for details."
msgstr ""

#. type: Plain text
#: doc/guix.texi:5262
msgid ""
"Publishing a signed channel requires discipline: any mistake, such as an "
"unsigned commit or a commit signed by an unauthorized key, will prevent "
"users from pulling from your channel---well, that's the whole point of "
"authentication! Pay attention to merges in particular: merge commits are "
"considered authentic if and only if they are signed by a key present in the "
"@file{.guix-authorizations} file of @emph{both} branches."
msgstr ""

#. type: cindex
#: doc/guix.texi:5266
#, no-wrap
msgid "primary URL, channels"
msgstr ""

#. type: Plain text
#: doc/guix.texi:5269
msgid ""
"Channel authors can indicate the primary URL of their channel's Git "
"repository in the @file{.guix-channel} file, like so:"
msgstr ""

#. type: lisp
#: doc/guix.texi:5274
#, no-wrap
msgid ""
"(channel\n"
"  (version 0)\n"
"  (url \"https://example.org/guix.git\"))\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:5281
msgid ""
"This allows @command{guix pull} to determine whether it is pulling code from "
"a mirror of the channel; when that is the case, it warns the user that the "
"mirror might be stale and displays the primary URL.  That way, users cannot "
"be tricked into fetching code from a stale mirror that does not receive "
"security updates."
msgstr ""

#. type: Plain text
#: doc/guix.texi:5285
msgid ""
"This feature only makes sense for authenticated repositories, such as the "
"official @code{guix} channel, for which @command{guix pull} ensures the code "
"it fetches is authentic."
msgstr ""

#. type: cindex
#: doc/guix.texi:5289
#, no-wrap
msgid "news, for channels"
msgstr ""

#. type: Plain text
#: doc/guix.texi:5293
msgid ""
"Channel authors may occasionally want to communicate to their users "
"information about important changes in the channel.  You'd send them all an "
"email, but that's not convenient."
msgstr ""

#. type: Plain text
#: doc/guix.texi:5298
msgid ""
"Instead, channels can provide a @dfn{news file}; when the channel users run "
"@command{guix pull}, that news file is automatically read and @command{guix "
"pull --news} can display the announcements that correspond to the new "
"commits that have been pulled, if any."
msgstr ""

#. type: Plain text
#: doc/guix.texi:5301
msgid ""
"To do that, channel authors must first declare the name of the news file in "
"their @file{.guix-channel} file:"
msgstr ""

#. type: lisp
#: doc/guix.texi:5306
#, no-wrap
msgid ""
"(channel\n"
"  (version 0)\n"
"  (news-file \"etc/news.txt\"))\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:5310
msgid ""
"The news file itself, @file{etc/news.txt} in this example, must look "
"something like this:"
msgstr ""

#. type: lisp
#: doc/guix.texi:5323
#, no-wrap
msgid ""
"(channel-news\n"
"  (version 0)\n"
"  (entry (tag \"the-bug-fix\")\n"
"         (title (en \"Fixed terrible bug\")\n"
"                (fr \"Oh la la\"))\n"
"         (body (en \"@@emph@{Good news@}!  It's fixed!\")\n"
"               (eo \"Certe ĝi pli bone funkcias nun!\")))\n"
"  (entry (commit \"bdcabe815cd28144a2d2b4bc3c5057b051fa9906\")\n"
"         (title (en \"Added a great package\")\n"
"                (ca \"Què vol dir guix?\"))\n"
"         (body (en \"Don't miss the @@code@{hello@} package!\"))))\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:5330
msgid ""
"While the news file is using the Scheme syntax, avoid naming it with a "
"@file{.scm} extension or else it will get picked up when building the "
"channel and yield an error since it is not a valid module.  Alternatively, "
"you can move the channel module to a subdirectory and store the news file in "
"another directory."
msgstr ""

#. type: Plain text
#: doc/guix.texi:5335
msgid ""
"The file consists of a list of @dfn{news entries}.  Each entry is associated "
"with a commit or tag: it describes changes made in this commit, possibly in "
"preceding commits as well.  Users see entries only the first time they "
"obtain the commit the entry refers to."
msgstr ""

#. type: Plain text
#: doc/guix.texi:5341
msgid ""
"The @code{title} field should be a one-line summary while @code{body} can be "
"arbitrarily long, and both can contain Texinfo markup (@pxref{Overview,,, "
"texinfo, GNU Texinfo}).  Both the title and body are a list of language tag/"
"message tuples, which allows @command{guix pull} to display news in the "
"language that corresponds to the user's locale."
msgstr ""

#. type: Plain text
#: doc/guix.texi:5347
msgid ""
"If you want to translate news using a gettext-based workflow, you can "
"extract translatable strings with @command{xgettext} (@pxref{xgettext "
"Invocation,,, gettext, GNU Gettext Utilities}).  For example, assuming you "
"write news entries in English first, the command below creates a PO file "
"containing the strings to translate:"
msgstr ""

#. type: example
#: doc/guix.texi:5350
#, no-wrap
msgid "xgettext -o news.po -l scheme -ken etc/news.txt\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:5354
msgid ""
"To sum up, yes, you could use your channel as a blog.  But beware, this is "
"@emph{not quite} what your users might expect."
msgstr ""

#. type: cindex
#: doc/guix.texi:5360
#, no-wrap
msgid "software development"
msgstr ""

#. type: Plain text
#: doc/guix.texi:5364
msgid ""
"If you are a software developer, Guix provides tools that you should find "
"helpful---independently of the language you're developing in.  This is what "
"this chapter is about."
msgstr ""

#. type: Plain text
#: doc/guix.texi:5370
msgid ""
"The @command{guix environment} command provides a convenient way to set up "
"@dfn{development environments} containing all the dependencies and tools "
"necessary to work on the software package of your choice.  The @command{guix "
"pack} command allows you to create @dfn{application bundles} that can be "
"easily distributed to users who do not run Guix."
msgstr ""

#. type: section
#: doc/guix.texi:5379
#, no-wrap
msgid "Invoking @command{guix environment}"
msgstr ""

#. type: cindex
#: doc/guix.texi:5381
#, no-wrap
msgid "reproducible build environments"
msgstr ""

#. type: cindex
#: doc/guix.texi:5382
#, no-wrap
msgid "development environments"
msgstr ""

#. type: command{#1}
#: doc/guix.texi:5383
#, no-wrap
msgid "guix environment"
msgstr ""

#. type: cindex
#: doc/guix.texi:5384
#, no-wrap
msgid "environment, package build environment"
msgstr ""

#. type: Plain text
#: doc/guix.texi:5390
msgid ""
"The purpose of @command{guix environment} is to assist hackers in creating "
"reproducible development environments without polluting their package "
"profile.  The @command{guix environment} tool takes one or more packages, "
"builds all of their inputs, and creates a shell environment to use them."
msgstr ""

#. type: example
#: doc/guix.texi:5395
#, no-wrap
msgid "guix environment @var{options} @var{package}@dots{}\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:5399
msgid ""
"The following example spawns a new shell set up for the development of "
"GNU@tie{}Guile:"
msgstr ""

#. type: example
#: doc/guix.texi:5402
#, no-wrap
msgid "guix environment guile\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:5419
msgid ""
"If the needed dependencies are not built yet, @command{guix environment} "
"automatically builds them.  The environment of the new shell is an augmented "
"version of the environment that @command{guix environment} was run in.  It "
"contains the necessary search paths for building the given package added to "
"the existing environment variables.  To create a ``pure'' environment, in "
"which the original environment variables have been unset, use the @option{--"
"pure} option@footnote{Users sometimes wrongfully augment environment "
"variables such as @env{PATH} in their @file{~/.bashrc} file.  As a "
"consequence, when @command{guix environment} launches it, Bash may read "
"@file{~/.bashrc}, thereby introducing ``impurities'' in these environment "
"variables.  It is an error to define such environment variables in @file{."
"bashrc}; instead, they should be defined in @file{.bash_profile}, which is "
"sourced only by log-in shells.  @xref{Bash Startup Files,,, bash, The GNU "
"Bash Reference Manual}, for details on Bash start-up files.}."
msgstr ""

#. type: vindex
#: doc/guix.texi:5420
#, no-wrap
msgid "GUIX_ENVIRONMENT"
msgstr ""

#. type: Plain text
#: doc/guix.texi:5426
msgid ""
"@command{guix environment} defines the @env{GUIX_ENVIRONMENT} variable in "
"the shell it spawns; its value is the file name of the profile of this "
"environment.  This allows users to, say, define a specific prompt for "
"development environments in their @file{.bashrc} (@pxref{Bash Startup "
"Files,,, bash, The GNU Bash Reference Manual}):"
msgstr ""

#. type: example
#: doc/guix.texi:5432
#, no-wrap
msgid ""
"if [ -n \"$GUIX_ENVIRONMENT\" ]\n"
"then\n"
"    export PS1=\"\\u@@\\h \\w [dev]\\$ \"\n"
"fi\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:5436
msgid "...@: or to browse the profile:"
msgstr ""

#. type: example
#: doc/guix.texi:5439
#, no-wrap
msgid "$ ls \"$GUIX_ENVIRONMENT/bin\"\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:5445
msgid ""
"Additionally, more than one package may be specified, in which case the "
"union of the inputs for the given packages are used.  For example, the "
"command below spawns a shell where all of the dependencies of both Guile and "
"Emacs are available:"
msgstr ""

#. type: example
#: doc/guix.texi:5448
#, no-wrap
msgid "guix environment guile emacs\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:5453
msgid ""
"Sometimes an interactive shell session is not desired.  An arbitrary command "
"may be invoked by placing the @code{--} token to separate the command from "
"the rest of the arguments:"
msgstr ""

#. type: example
#: doc/guix.texi:5456
#, no-wrap
msgid "guix environment guile -- make -j4\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:5462
msgid ""
"In other situations, it is more convenient to specify the list of packages "
"needed in the environment.  For example, the following command runs "
"@command{python} from an environment containing Python@tie{}2.7 and NumPy:"
msgstr ""

#. type: example
#: doc/guix.texi:5465
#, no-wrap
msgid "guix environment --ad-hoc python2-numpy python-2.7 -- python\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:5476
msgid ""
"Furthermore, one might want the dependencies of a package and also some "
"additional packages that are not build-time or runtime dependencies, but are "
"useful when developing nonetheless.  Because of this, the @option{--ad-hoc} "
"flag is positional.  Packages appearing before @option{--ad-hoc} are "
"interpreted as packages whose dependencies will be added to the "
"environment.  Packages appearing after are interpreted as packages that will "
"be added to the environment directly.  For example, the following command "
"creates a Guix development environment that additionally includes Git and "
"strace:"
msgstr ""

#. type: example
#: doc/guix.texi:5479
#, no-wrap
msgid "guix environment --pure guix --ad-hoc git strace\n"
msgstr ""

#. type: item
#: doc/guix.texi:5481 doc/guix.texi:5642 doc/guix.texi:12625
#: doc/guix.texi:30966
#, no-wrap
msgid "container"
msgstr ""

#. type: Plain text
#: doc/guix.texi:5489
msgid ""
"Sometimes it is desirable to isolate the environment as much as possible, "
"for maximal purity and reproducibility.  In particular, when using Guix on a "
"host distro that is not Guix System, it is desirable to prevent access to "
"@file{/usr/bin} and other system-wide resources from the development "
"environment.  For example, the following command spawns a Guile REPL in a "
"``container'' where only the store and the current working directory are "
"mounted:"
msgstr ""

#. type: example
#: doc/guix.texi:5492
#, no-wrap
msgid "guix environment --ad-hoc --container guile -- guile\n"
msgstr ""

#. type: quotation
#: doc/guix.texi:5496
msgid "The @option{--container} option requires Linux-libre 3.19 or newer."
msgstr ""

#. type: cindex
#: doc/guix.texi:5498
#, no-wrap
msgid "certificates"
msgstr ""

#. type: Plain text
#: doc/guix.texi:5505
msgid ""
"Another typical use case for containers is to run security-sensitive "
"applications such as a web browser.  To run Eolie, we must expose and share "
"some files and directories; we include @code{nss-certs} and expose @file{/"
"etc/ssl/certs/} for HTTPS authentication; finally we preserve the "
"@env{DISPLAY} environment variable since containerized graphical "
"applications won't display without it."
msgstr ""

#. type: example
#: doc/guix.texi:5512
#, no-wrap
msgid ""
"guix environment --preserve='^DISPLAY$' --container --network \\\n"
"  --expose=/etc/machine-id \\\n"
"  --expose=/etc/ssl/certs/ \\\n"
"  --share=$HOME/.local/share/eolie/=$HOME/.local/share/eolie/ \\\n"
"  --ad-hoc eolie nss-certs dbus --  eolie\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:5515
msgid "The available options are summarized below."
msgstr ""

#. type: item
#: doc/guix.texi:5517 doc/guix.texi:6053 doc/guix.texi:10513
#: doc/guix.texi:31063
#, no-wrap
msgid "--root=@var{file}"
msgstr ""

#. type: itemx
#: doc/guix.texi:5518 doc/guix.texi:6054 doc/guix.texi:10514
#: doc/guix.texi:31064
#, no-wrap
msgid "-r @var{file}"
msgstr ""

#. type: cindex
#: doc/guix.texi:5519
#, no-wrap
msgid "persistent environment"
msgstr ""

#. type: cindex
#: doc/guix.texi:5520
#, no-wrap
msgid "garbage collector root, for environments"
msgstr ""

#. type: table
#: doc/guix.texi:5523
msgid ""
"Make @var{file} a symlink to the profile for this environment, and register "
"it as a garbage collector root."
msgstr ""

#. type: table
#: doc/guix.texi:5526
msgid ""
"This is useful if you want to protect your environment from garbage "
"collection, to make it ``persistent''."
msgstr ""

#. type: table
#: doc/guix.texi:5532
msgid ""
"When this option is omitted, the environment is protected from garbage "
"collection only for the duration of the @command{guix environment} session.  "
"This means that next time you recreate the same environment, you could have "
"to rebuild or re-download packages.  @xref{Invoking guix gc}, for more on GC "
"roots."
msgstr ""

#. type: item
#: doc/guix.texi:5533 doc/guix.texi:5985 doc/guix.texi:10366
#: doc/guix.texi:11305 doc/guix.texi:12090 doc/guix.texi:30998
#, no-wrap
msgid "--expression=@var{expr}"
msgstr ""

#. type: itemx
#: doc/guix.texi:5534 doc/guix.texi:5986 doc/guix.texi:10367
#: doc/guix.texi:11306 doc/guix.texi:12091 doc/guix.texi:30999
#, no-wrap
msgid "-e @var{expr}"
msgstr ""

#. type: table
#: doc/guix.texi:5537
msgid ""
"Create an environment for the package or list of packages that @var{expr} "
"evaluates to."
msgstr ""

#. type: table
#: doc/guix.texi:5539
msgid "For example, running:"
msgstr ""

#. type: example
#: doc/guix.texi:5542
#, no-wrap
msgid "guix environment -e '(@@ (gnu packages maths) petsc-openmpi)'\n"
msgstr ""

#. type: table
#: doc/guix.texi:5546
msgid ""
"starts a shell with the environment for this specific variant of the PETSc "
"package."
msgstr ""

#. type: table
#: doc/guix.texi:5548
msgid "Running:"
msgstr ""

#. type: example
#: doc/guix.texi:5551
#, no-wrap
msgid "guix environment --ad-hoc -e '(@@ (gnu) %base-packages)'\n"
msgstr ""

#. type: table
#: doc/guix.texi:5554
msgid "starts a shell with all the base system packages available."
msgstr ""

#. type: table
#: doc/guix.texi:5557
msgid ""
"The above commands only use the default output of the given packages.  To "
"select other outputs, two element tuples can be specified:"
msgstr ""

#. type: example
#: doc/guix.texi:5560
#, no-wrap
msgid "guix environment --ad-hoc -e '(list (@@ (gnu packages bash) bash) \"include\")'\n"
msgstr ""

#. type: item
#: doc/guix.texi:5562
#, no-wrap
msgid "--load=@var{file}"
msgstr ""

#. type: itemx
#: doc/guix.texi:5563
#, no-wrap
msgid "-l @var{file}"
msgstr ""

#. type: table
#: doc/guix.texi:5566
msgid ""
"Create an environment for the package or list of packages that the code "
"within @var{file} evaluates to."
msgstr ""

#. type: lisp
#: doc/guix.texi:5572
#, no-wrap
msgid "@verbatiminclude environment-gdb.scm\n"
msgstr ""

#. type: table
#: doc/guix.texi:5579
msgid ""
"Create an environment for the packages contained in the manifest object "
"returned by the Scheme code in @var{file}.  This option can be repeated "
"several times, in which case the manifests are concatenated."
msgstr ""

#. type: table
#: doc/guix.texi:5583
msgid ""
"This is similar to the same-named option in @command{guix package} "
"(@pxref{profile-manifest, @option{--manifest}}) and uses the same manifest "
"files."
msgstr ""

#. type: item
#: doc/guix.texi:5584
#, no-wrap
msgid "--ad-hoc"
msgstr ""

#. type: table
#: doc/guix.texi:5589
msgid ""
"Include all specified packages in the resulting environment, as if an @i{ad "
"hoc} package were defined with them as inputs.  This option is useful for "
"quickly creating an environment without having to write a package expression "
"to contain the desired inputs."
msgstr ""

#. type: table
#: doc/guix.texi:5591
msgid "For instance, the command:"
msgstr ""

#. type: example
#: doc/guix.texi:5594
#, no-wrap
msgid "guix environment --ad-hoc guile guile-sdl -- guile\n"
msgstr ""

#. type: table
#: doc/guix.texi:5598
msgid ""
"runs @command{guile} in an environment where Guile and Guile-SDL are "
"available."
msgstr ""

#. type: table
#: doc/guix.texi:5603
msgid ""
"Note that this example implicitly asks for the default output of "
"@code{guile} and @code{guile-sdl}, but it is possible to ask for a specific "
"output---e.g., @code{glib:bin} asks for the @code{bin} output of @code{glib} "
"(@pxref{Packages with Multiple Outputs})."
msgstr ""

#. type: table
#: doc/guix.texi:5609
msgid ""
"This option may be composed with the default behavior of @command{guix "
"environment}.  Packages appearing before @option{--ad-hoc} are interpreted "
"as packages whose dependencies will be added to the environment, the default "
"behavior.  Packages appearing after are interpreted as packages that will be "
"added to the environment directly."
msgstr ""

#. type: item
#: doc/guix.texi:5610
#, no-wrap
msgid "--pure"
msgstr ""

#. type: table
#: doc/guix.texi:5614
msgid ""
"Unset existing environment variables when building the new environment, "
"except those specified with @option{--preserve} (see below).  This has the "
"effect of creating an environment in which search paths only contain package "
"inputs."
msgstr ""

#. type: item
#: doc/guix.texi:5615
#, no-wrap
msgid "--preserve=@var{regexp}"
msgstr ""

#. type: itemx
#: doc/guix.texi:5616
#, no-wrap
msgid "-E @var{regexp}"
msgstr ""

#. type: table
#: doc/guix.texi:5621
msgid ""
"When used alongside @option{--pure}, preserve the environment variables "
"matching @var{regexp}---in other words, put them on a ``white list'' of "
"environment variables that must be preserved.  This option can be repeated "
"several times."
msgstr ""

#. type: example
#: doc/guix.texi:5625
#, no-wrap
msgid ""
"guix environment --pure --preserve=^SLURM --ad-hoc openmpi @dots{} \\\n"
"  -- mpirun @dots{}\n"
msgstr ""

#. type: table
#: doc/guix.texi:5631
msgid ""
"This example runs @command{mpirun} in a context where the only environment "
"variables defined are @env{PATH}, environment variables whose name starts "
"with @samp{SLURM}, as well as the usual ``precious'' variables (@env{HOME}, "
"@env{USER}, etc.)."
msgstr ""

#. type: item
#: doc/guix.texi:5632
#, no-wrap
msgid "--search-paths"
msgstr ""

#. type: table
#: doc/guix.texi:5635
msgid ""
"Display the environment variable definitions that make up the environment."
msgstr ""

#. type: table
#: doc/guix.texi:5639
msgid "Attempt to build for @var{system}---e.g., @code{i686-linux}."
msgstr ""

#. type: item
#: doc/guix.texi:5640
#, no-wrap
msgid "--container"
msgstr ""

#. type: itemx
#: doc/guix.texi:5641
#, no-wrap
msgid "-C"
msgstr ""

#. type: table
#: doc/guix.texi:5648
msgid ""
"Run @var{command} within an isolated container.  The current working "
"directory outside the container is mapped inside the container.  "
"Additionally, unless overridden with @option{--user}, a dummy home directory "
"is created that matches the current user's home directory, and @file{/etc/"
"passwd} is configured accordingly."
msgstr ""

#. type: table
#: doc/guix.texi:5652
msgid ""
"The spawned process runs as the current user outside the container.  Inside "
"the container, it has the same UID and GID as the current user, unless "
"@option{--user} is passed (see below)."
msgstr ""

#. type: item
#: doc/guix.texi:5653 doc/guix.texi:31058
#, no-wrap
msgid "--network"
msgstr ""

#. type: table
#: doc/guix.texi:5658
msgid ""
"For containers, share the network namespace with the host system.  "
"Containers created without this flag only have access to the loopback device."
msgstr ""

#. type: item
#: doc/guix.texi:5659
#, no-wrap
msgid "--link-profile"
msgstr ""

#. type: itemx
#: doc/guix.texi:5660
#, no-wrap
msgid "-P"
msgstr ""

#. type: table
#: doc/guix.texi:5668
msgid ""
"For containers, link the environment profile to @file{~/.guix-profile} "
"within the container and set @code{GUIX_ENVIRONMENT} to that.  This is "
"equivalent to making @file{~/.guix-profile} a symlink to the actual profile "
"within the container.  Linking will fail and abort the environment if the "
"directory already exists, which will certainly be the case if @command{guix "
"environment} was invoked in the user's home directory."
msgstr ""

#. type: table
#: doc/guix.texi:5674
msgid ""
"Certain packages are configured to look in @file{~/.guix-profile} for "
"configuration files and data;@footnote{For example, the @code{fontconfig} "
"package inspects @file{~/.guix-profile/share/fonts} for additional fonts.} "
"@option{--link-profile} allows these programs to behave as expected within "
"the environment."
msgstr ""

#. type: item
#: doc/guix.texi:5675 doc/guix.texi:12218
#, no-wrap
msgid "--user=@var{user}"
msgstr ""

#. type: itemx
#: doc/guix.texi:5676 doc/guix.texi:12219
#, no-wrap
msgid "-u @var{user}"
msgstr ""

#. type: table
#: doc/guix.texi:5683
msgid ""
"For containers, use the username @var{user} in place of the current user.  "
"The generated @file{/etc/passwd} entry within the container will contain the "
"name @var{user}, the home directory will be @file{/home/@var{user}}, and no "
"user GECOS data will be copied.  Furthermore, the UID and GID inside the "
"container are 1000.  @var{user} need not exist on the system."
msgstr ""

#. type: table
#: doc/guix.texi:5688
msgid ""
"Additionally, any shared or exposed path (see @option{--share} and @option{--"
"expose} respectively) whose target is within the current user's home "
"directory will be remapped relative to @file{/home/USER}; this includes the "
"automatic mapping of the current working directory."
msgstr ""

#. type: example
#: doc/guix.texi:5695
#, no-wrap
msgid ""
"# will expose paths as /home/foo/wd, /home/foo/test, and /home/foo/target\n"
"cd $HOME/wd\n"
"guix environment --container --user=foo \\\n"
"     --expose=$HOME/test \\\n"
"     --expose=/tmp/target=$HOME/target\n"
msgstr ""

#. type: table
#: doc/guix.texi:5700
msgid ""
"While this will limit the leaking of user identity through home paths and "
"each of the user fields, this is only one useful component of a broader "
"privacy/anonymity solution---not one in and of itself."
msgstr ""

#. type: item
#: doc/guix.texi:5701
#, no-wrap
msgid "--no-cwd"
msgstr ""

#. type: table
#: doc/guix.texi:5708
msgid ""
"For containers, the default behavior is to share the current working "
"directory with the isolated container and immediately change to that "
"directory within the container.  If this is undesirable, @option{--no-cwd} "
"will cause the current working directory to @emph{not} be automatically "
"shared and will change to the user's home directory within the container "
"instead.  See also @option{--user}."
msgstr ""

#. type: item
#: doc/guix.texi:5709
#, no-wrap
msgid "--expose=@var{source}[=@var{target}]"
msgstr ""

#. type: itemx
#: doc/guix.texi:5710
#, no-wrap
msgid "--share=@var{source}[=@var{target}]"
msgstr ""

#. type: table
#: doc/guix.texi:5716
msgid ""
"For containers, @option{--expose} (resp. @option{--share}) exposes the file "
"system @var{source} from the host system as the read-only (resp. writable) "
"file system @var{target} within the container.  If @var{target} is not "
"specified, @var{source} is used as the target mount point in the container."
msgstr ""

#. type: table
#: doc/guix.texi:5720
msgid ""
"The example below spawns a Guile REPL in a container in which the user's "
"home directory is accessible read-only via the @file{/exchange} directory:"
msgstr ""

#. type: example
#: doc/guix.texi:5723
#, no-wrap
msgid "guix environment --container --expose=$HOME=/exchange --ad-hoc guile -- guile\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:5731
msgid ""
"@command{guix environment} also supports all of the common build options "
"that @command{guix build} supports (@pxref{Common Build Options}) as well as "
"package transformation options (@pxref{Package Transformation Options})."
msgstr ""

#. type: section
#: doc/guix.texi:5733
#, no-wrap
msgid "Invoking @command{guix pack}"
msgstr ""

#. type: Plain text
#: doc/guix.texi:5739
msgid ""
"Occasionally you want to pass software to people who are not (yet!)  lucky "
"enough to be using Guix.  You'd tell them to run @command{guix package -i "
"@var{something}}, but that's not possible in this case.  This is where "
"@command{guix pack} comes in."
msgstr ""

#. type: quotation
#: doc/guix.texi:5744
msgid ""
"If you are looking for ways to exchange binaries among machines that already "
"run Guix, @pxref{Invoking guix copy}, @ref{Invoking guix publish}, and "
"@ref{Invoking guix archive}."
msgstr ""

#. type: cindex
#: doc/guix.texi:5746
#, no-wrap
msgid "pack"
msgstr ""

#. type: cindex
#: doc/guix.texi:5747
#, no-wrap
msgid "bundle"
msgstr ""

#. type: cindex
#: doc/guix.texi:5748
#, no-wrap
msgid "application bundle"
msgstr ""

#. type: cindex
#: doc/guix.texi:5749
#, no-wrap
msgid "software bundle"
msgstr ""

#. type: Plain text
#: doc/guix.texi:5758
msgid ""
"The @command{guix pack} command creates a shrink-wrapped @dfn{pack} or "
"@dfn{software bundle}: it creates a tarball or some other archive containing "
"the binaries of the software you're interested in, and all its "
"dependencies.  The resulting archive can be used on any machine that does "
"not have Guix, and people can run the exact same binaries as those you have "
"with Guix.  The pack itself is created in a bit-reproducible fashion, so "
"anyone can verify that it really contains the build results that you pretend "
"to be shipping."
msgstr ""

#. type: Plain text
#: doc/guix.texi:5761
msgid ""
"For example, to create a bundle containing Guile, Emacs, Geiser, and all "
"their dependencies, you can run:"
msgstr ""

#. type: example
#: doc/guix.texi:5766
#, no-wrap
msgid ""
"$ guix pack guile emacs geiser\n"
"@dots{}\n"
"/gnu/store/@dots{}-pack.tar.gz\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:5774
msgid ""
"The result here is a tarball containing a @file{/gnu/store} directory with "
"all the relevant packages.  The resulting tarball contains a @dfn{profile} "
"with the three packages of interest; the profile is the same as would be "
"created by @command{guix package -i}.  It is this mechanism that is used to "
"create Guix's own standalone binary tarball (@pxref{Binary Installation})."
msgstr ""

#. type: Plain text
#: doc/guix.texi:5779
msgid ""
"Users of this pack would have to run @file{/gnu/store/@dots{}-profile/bin/"
"guile} to run Guile, which you may find inconvenient.  To work around it, "
"you can create, say, a @file{/opt/gnu/bin} symlink to the profile:"
msgstr ""

#. type: example
#: doc/guix.texi:5782
#, no-wrap
msgid "guix pack -S /opt/gnu/bin=bin guile emacs geiser\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:5786
msgid "That way, users can happily type @file{/opt/gnu/bin/guile} and enjoy."
msgstr ""

#. type: cindex
#: doc/guix.texi:5787
#, no-wrap
msgid "relocatable binaries, with @command{guix pack}"
msgstr ""

#. type: Plain text
#: doc/guix.texi:5795
msgid ""
"What if the recipient of your pack does not have root privileges on their "
"machine, and thus cannot unpack it in the root file system? In that case, "
"you will want to use the @option{--relocatable} option (see below).  This "
"option produces @dfn{relocatable binaries}, meaning they they can be placed "
"anywhere in the file system hierarchy: in the example above, users can "
"unpack your tarball in their home directory and directly run @file{./opt/gnu/"
"bin/guile}."
msgstr ""

#. type: cindex
#: doc/guix.texi:5796
#, no-wrap
msgid "Docker, build an image with guix pack"
msgstr ""

#. type: Plain text
#: doc/guix.texi:5799
msgid ""
"Alternatively, you can produce a pack in the Docker image format using the "
"following command:"
msgstr ""

#. type: example
#: doc/guix.texi:5802
#, no-wrap
msgid "guix pack -f docker -S /bin=bin guile guile-readline\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:5807
msgid ""
"The result is a tarball that can be passed to the @command{docker load} "
"command, followed by @code{docker run}:"
msgstr ""

#. type: example
#: doc/guix.texi:5811
#, no-wrap
msgid ""
"docker load < @var{file}\n"
"docker run -ti guile-guile-readline /bin/guile\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:5818
msgid ""
"where @var{file} is the image returned by @var{guix pack}, and @code{guile-"
"guile-readline} is its ``image tag''.  See the @uref{https://docs.docker.com/"
"engine/reference/commandline/load/, Docker documentation} for more "
"information."
msgstr ""

#. type: cindex
#: doc/guix.texi:5819
#, no-wrap
msgid "Singularity, build an image with guix pack"
msgstr ""

#. type: cindex
#: doc/guix.texi:5820
#, no-wrap
msgid "SquashFS, build an image with guix pack"
msgstr ""

#. type: Plain text
#: doc/guix.texi:5823
msgid ""
"Yet another option is to produce a SquashFS image with the following command:"
msgstr ""

#. type: example
#: doc/guix.texi:5826
#, no-wrap
msgid "guix pack -f squashfs bash guile emacs geiser\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:5834
msgid ""
"The result is a SquashFS file system image that can either be mounted or "
"directly be used as a file system container image with the @uref{https://www."
"sylabs.io/docs/, Singularity container execution environment}, using "
"commands like @command{singularity shell} or @command{singularity exec}."
msgstr ""

#. type: Plain text
#: doc/guix.texi:5836
msgid "Several command-line options allow you to customize your pack:"
msgstr ""

#. type: table
#: doc/guix.texi:5841
msgid "Produce a pack in the given @var{format}."
msgstr ""

#. type: table
#: doc/guix.texi:5843
msgid "The available formats are:"
msgstr ""

#. type: item
#: doc/guix.texi:5845
#, no-wrap
msgid "tarball"
msgstr ""

#. type: table
#: doc/guix.texi:5848
msgid ""
"This is the default format.  It produces a tarball containing all the "
"specified binaries and symlinks."
msgstr ""

#. type: item
#: doc/guix.texi:5849
#, no-wrap
msgid "docker"
msgstr ""

#. type: table
#: doc/guix.texi:5855
msgid ""
"This produces a tarball that follows the @uref{https://github.com/docker/"
"docker/blob/master/image/spec/v1.2.md, Docker Image Specification}.  The "
"``repository name'' as it appears in the output of the @command{docker "
"images} command is computed from package names passed on the command line or "
"in the manifest file."
msgstr ""

#. type: item
#: doc/guix.texi:5856
#, no-wrap
msgid "squashfs"
msgstr ""

#. type: table
#: doc/guix.texi:5860
msgid ""
"This produces a SquashFS image containing all the specified binaries and "
"symlinks, as well as empty mount points for virtual file systems like procfs."
msgstr ""

#. type: quotation
#: doc/guix.texi:5866
msgid ""
"Singularity @emph{requires} you to provide @file{/bin/sh} in the image.  For "
"that reason, @command{guix pack -f squashfs} always implies @code{-S /"
"bin=bin}.  Thus, your @command{guix pack} invocation must always start with "
"something like:"
msgstr ""

#. type: example
#: doc/guix.texi:5869
#, no-wrap
msgid "guix pack -f squashfs bash @dots{}\n"
msgstr ""

#. type: quotation
#: doc/guix.texi:5874
msgid ""
"If you forget the @code{bash} (or similar) package, @command{singularity "
"run} and @command{singularity exec} will fail with an unhelpful ``no such "
"file or directory'' message."
msgstr ""

#. type: cindex
#: doc/guix.texi:5877
#, no-wrap
msgid "relocatable binaries"
msgstr ""

#. type: item
#: doc/guix.texi:5878
#, no-wrap
msgid "--relocatable"
msgstr ""

#. type: table
#: doc/guix.texi:5882
msgid ""
"Produce @dfn{relocatable binaries}---i.e., binaries that can be placed "
"anywhere in the file system hierarchy and run from there."
msgstr ""

#. type: table
#: doc/guix.texi:5890
msgid ""
"When this option is passed once, the resulting binaries require support for "
"@dfn{user namespaces} in the kernel Linux; when passed @emph{twice}"
"@footnote{Here's a trick to memorize it: @code{-RR}, which adds PRoot "
"support, can be thought of as the abbreviation of ``Really Relocatable''.  "
"Neat, isn't it?}, relocatable binaries fall to back to other techniques if "
"user namespaces are unavailable, and essentially work anywhere---see below "
"for the implications."
msgstr ""

#. type: table
#: doc/guix.texi:5892
msgid "For example, if you create a pack containing Bash with:"
msgstr ""

#. type: example
#: doc/guix.texi:5895
#, no-wrap
msgid "guix pack -RR -S /mybin=bin bash\n"
msgstr ""

#. type: table
#: doc/guix.texi:5900
msgid ""
"...@: you can copy that pack to a machine that lacks Guix, and from your "
"home directory as a normal user, run:"
msgstr ""

#. type: example
#: doc/guix.texi:5904
#, no-wrap
msgid ""
"tar xf pack.tar.gz\n"
"./mybin/sh\n"
msgstr ""

#. type: table
#: doc/guix.texi:5912
msgid ""
"In that shell, if you type @code{ls /gnu/store}, you'll notice that @file{/"
"gnu/store} shows up and contains all the dependencies of @code{bash}, even "
"though the machine actually lacks @file{/gnu/store} altogether! That is "
"probably the simplest way to deploy Guix-built software on a non-Guix "
"machine."
msgstr ""

#. type: quotation
#: doc/guix.texi:5918
msgid ""
"By default, relocatable binaries rely on the @dfn{user namespace} feature of "
"the kernel Linux, which allows unprivileged users to mount or change root.  "
"Old versions of Linux did not support it, and some GNU/Linux distributions "
"turn it off."
msgstr ""

#. type: quotation
#: doc/guix.texi:5924
msgid ""
"To produce relocatable binaries that work even in the absence of user "
"namespaces, pass @option{--relocatable} or @option{-R} @emph{twice}.  In "
"that case, binaries will try user namespace support and fall back to another "
"@dfn{execution engine} if user namespaces are not supported.  The following "
"execution engines are supported:"
msgstr ""

#. type: item
#: doc/guix.texi:5926 doc/guix.texi:15697
#, no-wrap
msgid "default"
msgstr ""

#. type: table
#: doc/guix.texi:5929
msgid ""
"Try user namespaces and fall back to PRoot if user namespaces are not "
"supported (see below)."
msgstr ""

#. type: item
#: doc/guix.texi:5930
#, no-wrap
msgid "performance"
msgstr ""

#. type: table
#: doc/guix.texi:5933
msgid ""
"Try user namespaces and fall back to Fakechroot if user namespaces are not "
"supported (see below)."
msgstr ""

#. type: item
#: doc/guix.texi:5934
#, no-wrap
msgid "userns"
msgstr ""

#. type: table
#: doc/guix.texi:5937
msgid ""
"Run the program through user namespaces and abort if they are not supported."
msgstr ""

#. type: item
#: doc/guix.texi:5938
#, no-wrap
msgid "proot"
msgstr ""

#. type: table
#: doc/guix.texi:5945
msgid ""
"Run through PRoot.  The @uref{https://proot-me.github.io/, PRoot} program "
"provides the necessary support for file system virtualization.  It achieves "
"that by using the @code{ptrace} system call on the running program.  This "
"approach has the advantage to work without requiring special kernel support, "
"but it incurs run-time overhead every time a system call is made."
msgstr ""

#. type: item
#: doc/guix.texi:5946
#, no-wrap
msgid "fakechroot"
msgstr ""

#. type: table
#: doc/guix.texi:5954
msgid ""
"Run through Fakechroot.  @uref{https://github.com/dex4er/fakechroot/, "
"Fakechroot} virtualizes file system accesses by intercepting calls to C "
"library functions such as @code{open}, @code{stat}, @code{exec}, and so on.  "
"Unlike PRoot, it incurs very little overhead.  However, it does not always "
"work: for example, some file system accesses made from within the C library "
"are not intercepted, and file system accesses made @i{via} direct syscalls "
"are not intercepted either, leading to erratic behavior."
msgstr ""

#. type: vindex
#: doc/guix.texi:5956
#, no-wrap
msgid "GUIX_EXECUTION_ENGINE"
msgstr ""

#. type: quotation
#: doc/guix.texi:5960
msgid ""
"When running a wrapped program, you can explicitly request one of the "
"execution engines listed above by setting the @env{GUIX_EXECUTION_ENGINE} "
"environment variable accordingly."
msgstr ""

#. type: cindex
#: doc/guix.texi:5962
#, no-wrap
msgid "entry point, for Docker images"
msgstr ""

#. type: item
#: doc/guix.texi:5963
#, no-wrap
msgid "--entry-point=@var{command}"
msgstr ""

#. type: table
#: doc/guix.texi:5968
msgid ""
"Use @var{command} as the @dfn{entry point} of the resulting pack, if the "
"pack format supports it---currently @code{docker} and @code{squashfs} "
"(Singularity)  support it.  @var{command} must be relative to the profile "
"contained in the pack."
msgstr ""

#. type: table
#: doc/guix.texi:5972
msgid ""
"The entry point specifies the command that tools like @code{docker run} or "
"@code{singularity run} automatically start by default.  For example, you can "
"do:"
msgstr ""

#. type: example
#: doc/guix.texi:5975
#, no-wrap
msgid "guix pack -f docker --entry-point=bin/guile guile\n"
msgstr ""

#. type: table
#: doc/guix.texi:5979
msgid ""
"The resulting pack can easily be loaded and @code{docker run} with no extra "
"arguments will spawn @code{bin/guile}:"
msgstr ""

#. type: example
#: doc/guix.texi:5983
#, no-wrap
msgid ""
"docker load -i pack.tar.gz\n"
"docker run @var{image-id}\n"
msgstr ""

#. type: table
#: doc/guix.texi:5988 doc/guix.texi:11308 doc/guix.texi:12093
msgid "Consider the package @var{expr} evaluates to."
msgstr ""

#. type: table
#: doc/guix.texi:5992
msgid ""
"This has the same purpose as the same-named option in @command{guix build} "
"(@pxref{Additional Build Options, @option{--expression} in @command{guix "
"build}})."
msgstr ""

#. type: table
#: doc/guix.texi:5998
msgid ""
"Use the packages contained in the manifest object returned by the Scheme "
"code in @var{file}.  This option can be repeated several times, in which "
"case the manifests are concatenated."
msgstr ""

#. type: table
#: doc/guix.texi:6006
msgid ""
"This has a similar purpose as the same-named option in @command{guix "
"package} (@pxref{profile-manifest, @option{--manifest}}) and uses the same "
"manifest files.  It allows you to define a collection of packages once and "
"use it both for creating profiles and for creating archives for use on "
"machines that do not have Guix installed.  Note that you can specify "
"@emph{either} a manifest file @emph{or} a list of packages, but not both."
msgstr ""

#. type: item
#: doc/guix.texi:6012 doc/guix.texi:10477
#, no-wrap
msgid "--target=@var{triplet}"
msgstr ""

#. type: cindex
#: doc/guix.texi:6013 doc/guix.texi:6464 doc/guix.texi:10478
#, no-wrap
msgid "cross-compilation"
msgstr ""

#. type: table
#: doc/guix.texi:6017
msgid ""
"Cross-build for @var{triplet}, which must be a valid GNU triplet, such as "
"@code{\"aarch64-linux-gnu\"} (@pxref{Specifying target triplets, GNU "
"configuration triplets,, autoconf, Autoconf})."
msgstr ""

#. type: item
#: doc/guix.texi:6018
#, no-wrap
msgid "--compression=@var{tool}"
msgstr ""

#. type: itemx
#: doc/guix.texi:6019
#, no-wrap
msgid "-C @var{tool}"
msgstr ""

#. type: table
#: doc/guix.texi:6023
msgid ""
"Compress the resulting tarball using @var{tool}---one of @code{gzip}, "
"@code{zstd}, @code{bzip2}, @code{xz}, @code{lzip}, or @code{none} for no "
"compression."
msgstr ""

#. type: item
#: doc/guix.texi:6024
#, no-wrap
msgid "--symlink=@var{spec}"
msgstr ""

#. type: itemx
#: doc/guix.texi:6025
#, no-wrap
msgid "-S @var{spec}"
msgstr ""

#. type: table
#: doc/guix.texi:6028
msgid ""
"Add the symlinks specified by @var{spec} to the pack.  This option can "
"appear several times."
msgstr ""

#. type: table
#: doc/guix.texi:6032
msgid ""
"@var{spec} has the form @code{@var{source}=@var{target}}, where @var{source} "
"is the symlink that will be created and @var{target} is the symlink target."
msgstr ""

#. type: table
#: doc/guix.texi:6035
msgid ""
"For instance, @code{-S /opt/gnu/bin=bin} creates a @file{/opt/gnu/bin} "
"symlink pointing to the @file{bin} sub-directory of the profile."
msgstr ""

#. type: item
#: doc/guix.texi:6036 doc/guix.texi:31017
#, no-wrap
msgid "--save-provenance"
msgstr ""

#. type: table
#: doc/guix.texi:6040
msgid ""
"Save provenance information for the packages passed on the command line.  "
"Provenance information includes the URL and commit of the channels in use "
"(@pxref{Channels})."
msgstr ""

#. type: table
#: doc/guix.texi:6046
msgid ""
"Provenance information is saved in the @file{/gnu/store/@dots{}-profile/"
"manifest} file in the pack, along with the usual package metadata---the name "
"and version of each package, their propagated inputs, and so on.  It is "
"useful information to the recipient of the pack, who then knows how the pack "
"was (supposedly) obtained."
msgstr ""

#. type: table
#: doc/guix.texi:6052
msgid ""
"This option is not enabled by default because, like timestamps, provenance "
"information contributes nothing to the build process.  In other words, there "
"is an infinity of channel URLs and commit IDs that can lead to the same "
"pack.  Recording such ``silent'' metadata in the output thus potentially "
"breaks the source-to-binary bitwise reproducibility property."
msgstr ""

#. type: cindex
#: doc/guix.texi:6055
#, no-wrap
msgid "garbage collector root, for packs"
msgstr ""

#. type: table
#: doc/guix.texi:6058
msgid ""
"Make @var{file} a symlink to the resulting pack, and register it as a "
"garbage collector root."
msgstr ""

#. type: item
#: doc/guix.texi:6059
#, no-wrap
msgid "--localstatedir"
msgstr ""

#. type: itemx
#: doc/guix.texi:6060
#, no-wrap
msgid "--profile-name=@var{name}"
msgstr ""

#. type: table
#: doc/guix.texi:6065
msgid ""
"Include the ``local state directory'', @file{/var/guix}, in the resulting "
"pack, and notably the @file{/var/guix/profiles/per-user/root/@var{name}} "
"profile---by default @var{name} is @code{guix-profile}, which corresponds to "
"@file{~root/.guix-profile}."
msgstr ""

#. type: table
#: doc/guix.texi:6071
msgid ""
"@file{/var/guix} contains the store database (@pxref{The Store}) as well as "
"garbage-collector roots (@pxref{Invoking guix gc}).  Providing it in the "
"pack means that the store is ``complete'' and manageable by Guix; not "
"providing it pack means that the store is ``dead'': items cannot be added to "
"it or removed from it after extraction of the pack."
msgstr ""

#. type: table
#: doc/guix.texi:6074
msgid ""
"One use case for this is the Guix self-contained binary tarball "
"(@pxref{Binary Installation})."
msgstr ""

#. type: item
#: doc/guix.texi:6075 doc/guix.texi:31011
#, no-wrap
msgid "--derivation"
msgstr ""

#. type: itemx
#: doc/guix.texi:6076 doc/guix.texi:10509 doc/guix.texi:31012
#, no-wrap
msgid "-d"
msgstr ""

#. type: table
#: doc/guix.texi:6078
msgid "Print the name of the derivation that builds the pack."
msgstr ""

#. type: table
#: doc/guix.texi:6082
msgid ""
"Use the bootstrap binaries to build the pack.  This option is only useful to "
"Guix developers."
msgstr ""

#. type: Plain text
#: doc/guix.texi:6087
msgid ""
"In addition, @command{guix pack} supports all the common build options "
"(@pxref{Common Build Options}) and all the package transformation options "
"(@pxref{Package Transformation Options})."
msgstr ""

#. type: cindex
#: doc/guix.texi:6092
#, no-wrap
msgid "GCC"
msgstr ""

#. type: cindex
#: doc/guix.texi:6093
#, no-wrap
msgid "ld-wrapper"
msgstr ""

#. type: cindex
#: doc/guix.texi:6094
#, no-wrap
msgid "linker wrapper"
msgstr ""

#. type: cindex
#: doc/guix.texi:6095
#, no-wrap
msgid "toolchain, for C development"
msgstr ""

#. type: cindex
#: doc/guix.texi:6096
#, no-wrap
msgid "toolchain, for Fortran development"
msgstr ""

#. type: Plain text
#: doc/guix.texi:6103
msgid ""
"If you need a complete toolchain for compiling and linking C or C++ source "
"code, use the @code{gcc-toolchain} package.  This package provides a "
"complete GCC toolchain for C/C++ development, including GCC itself, the GNU "
"C Library (headers and binaries, plus debugging symbols in the @code{debug} "
"output), Binutils, and a linker wrapper."
msgstr ""

#. type: Plain text
#: doc/guix.texi:6109
msgid ""
"The wrapper's purpose is to inspect the @code{-L} and @code{-l} switches "
"passed to the linker, add corresponding @code{-rpath} arguments, and invoke "
"the actual linker with this new set of arguments.  You can instruct the "
"wrapper to refuse to link against libraries not in the store by setting the "
"@env{GUIX_LD_WRAPPER_ALLOW_IMPURITIES} environment variable to @code{no}."
msgstr ""

#. type: Plain text
#: doc/guix.texi:6113
msgid ""
"The package @code{gfortran-toolchain} provides a complete GCC toolchain for "
"Fortran development.  For other languages, please use @samp{guix search gcc "
"toolchain} (@pxref{guix-search,, Invoking guix package})."
msgstr ""

#. type: section
#: doc/guix.texi:6116
#, no-wrap
msgid "Invoking @command{guix git authenticate}"
msgstr ""

#. type: Plain text
#: doc/guix.texi:6124
msgid ""
"The @command{guix git authenticate} command authenticates a Git checkout "
"following the same rule as for channels (@pxref{channel-authentication, "
"channel authentication}).  That is, starting from a given commit, it ensures "
"that all subsequent commits are signed by an OpenPGP key whose fingerprint "
"appears in the @file{.guix-authorizations} file of its parent commit(s)."
msgstr ""

#. type: Plain text
#: doc/guix.texi:6129
msgid ""
"You will find this command useful if you maintain a channel.  But in fact, "
"this authentication mechanism is useful in a broader context, so you might "
"want to use it for Git repositories that have nothing to do with Guix."
msgstr ""

#. type: example
#: doc/guix.texi:6134
#, no-wrap
msgid "guix git authenticate @var{commit} @var{signer} [@var{options}@dots{}]\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:6143
msgid ""
"By default, this command authenticates the Git checkout in the current "
"directory; it outputs nothing and exits with exit code zero on success and "
"non-zero on failure.  @var{commit} above denotes the first commit where "
"authentication takes place, and @var{signer} is the OpenPGP fingerprint of "
"public key used to sign @var{commit}.  Together, they form a ``channel "
"introduction'' (@pxref{channel-authentication, channel introduction}).  The "
"options below allow you to fine-tune the process."
msgstr ""

#. type: item
#: doc/guix.texi:6145
#, no-wrap
msgid "--repository=@var{directory}"
msgstr ""

#. type: itemx
#: doc/guix.texi:6146
#, no-wrap
msgid "-r @var{directory}"
msgstr ""

#. type: table
#: doc/guix.texi:6149
msgid ""
"Open the Git repository in @var{directory} instead of the current directory."
msgstr ""

#. type: item
#: doc/guix.texi:6150
#, no-wrap
msgid "--keyring=@var{reference}"
msgstr ""

#. type: itemx
#: doc/guix.texi:6151
#, no-wrap
msgid "-k @var{reference}"
msgstr ""

#. type: table
#: doc/guix.texi:6157
msgid ""
"Load OpenPGP keyring from @var{reference}, the reference of a branch such as "
"@code{origin/keyring} or @code{my-keyring}.  The branch must contain OpenPGP "
"public keys in @file{.key} files, either in binary form or ``ASCII-"
"armored''.  By default the keyring is loaded from the branch named "
"@code{keyring}."
msgstr ""

#. type: item
#: doc/guix.texi:6158
#, no-wrap
msgid "--stats"
msgstr ""

#. type: table
#: doc/guix.texi:6160
msgid "Display commit signing statistics upon completion."
msgstr ""

#. type: item
#: doc/guix.texi:6161
#, no-wrap
msgid "--cache-key=@var{key}"
msgstr ""

#. type: table
#: doc/guix.texi:6165
msgid ""
"Previously-authenticated commits are cached in a file under @file{~/.cache/"
"guix/authentication}.  This option forces the cache to be stored in file "
"@var{key} in that directory."
msgstr ""

#. type: item
#: doc/guix.texi:6166
#, no-wrap
msgid "--historical-authorizations=@var{file}"
msgstr ""

#. type: table
#: doc/guix.texi:6173
msgid ""
"By default, any commit whose parent commit(s) lack the @file{.guix-"
"authorizations} file is considered inauthentic.  In contrast, this option "
"considers the authorizations in @var{file} for any commit that lacks @file{."
"guix-authorizations}.  The format of @var{file} is the same as that of "
"@file{.guix-authorizations} (@pxref{channel-authorizations, @file{.guix-"
"authorizations} format})."
msgstr ""

#. type: Plain text
#: doc/guix.texi:6186
msgid ""
"GNU Guix provides several Scheme programming interfaces (APIs) to define, "
"build, and query packages.  The first interface allows users to write high-"
"level package definitions.  These definitions refer to familiar packaging "
"concepts, such as the name and version of a package, its build system, and "
"its dependencies.  These definitions can then be turned into concrete build "
"actions."
msgstr ""

#. type: Plain text
#: doc/guix.texi:6192
msgid ""
"Build actions are performed by the Guix daemon, on behalf of users.  In a "
"standard setup, the daemon has write access to the store---the @file{/gnu/"
"store} directory---whereas users do not.  The recommended setup also has the "
"daemon perform builds in chroots, under specific build users, to minimize "
"interference with the rest of the system."
msgstr ""

#. type: Plain text
#: doc/guix.texi:6201
msgid ""
"Lower-level APIs are available to interact with the daemon and the store.  "
"To instruct the daemon to perform a build action, users actually provide it "
"with a @dfn{derivation}.  A derivation is a low-level representation of the "
"build actions to be taken, and the environment in which they should occur---"
"derivations are to package definitions what assembly is to C programs.  The "
"term ``derivation'' comes from the fact that build results @emph{derive} "
"from them."
msgstr ""

#. type: Plain text
#: doc/guix.texi:6204
msgid ""
"This chapter describes all these APIs in turn, starting from high-level "
"package definitions."
msgstr ""

#. type: menuentry
#: doc/guix.texi:6217
msgid "Programming Guix in Guile"
msgstr ""

#. type: Plain text
#: doc/guix.texi:6233
msgid ""
"From a programming viewpoint, the package definitions of the GNU "
"distribution are provided by Guile modules in the @code{(gnu packages "
"@dots{})} name space@footnote{Note that packages under the @code{(gnu "
"packages @dots{})} module name space are not necessarily ``GNU packages''.  "
"This module naming scheme follows the usual Guile module naming convention: "
"@code{gnu} means that these modules are distributed as part of the GNU "
"system, and @code{packages} identifies modules that define packages.} "
"(@pxref{Modules, Guile modules,, guile, GNU Guile Reference Manual}).  For "
"instance, the @code{(gnu packages emacs)} module exports a variable named "
"@code{emacs}, which is bound to a @code{<package>} object (@pxref{Defining "
"Packages})."
msgstr ""

#. type: Plain text
#: doc/guix.texi:6240
msgid ""
"The @code{(gnu packages @dots{})} module name space is automatically scanned "
"for packages by the command-line tools.  For instance, when running "
"@code{guix install emacs}, all the @code{(gnu packages @dots{})} modules are "
"scanned until one that exports a package object whose name is @code{emacs} "
"is found.  This package search facility is implemented in the @code{(gnu "
"packages)} module."
msgstr ""

#. type: cindex
#: doc/guix.texi:6242
#, no-wrap
msgid "package module search path"
msgstr ""

#. type: Plain text
#: doc/guix.texi:6251
msgid ""
"Users can store package definitions in modules with different names---e.g., "
"@code{(my-packages emacs)}@footnote{Note that the file name and module name "
"must match.  For instance, the @code{(my-packages emacs)} module must be "
"stored in a @file{my-packages/emacs.scm} file relative to the load path "
"specified with @option{--load-path} or @env{GUIX_PACKAGE_PATH}.  "
"@xref{Modules and the File System,,, guile, GNU Guile Reference Manual}, for "
"details.}.  There are two ways to make these package definitions visible to "
"the user interfaces:"
msgstr ""

#. type: enumerate
#: doc/guix.texi:6258
msgid ""
"By adding the directory containing your package modules to the search path "
"with the @code{-L} flag of @command{guix package} and other commands "
"(@pxref{Common Build Options}), or by setting the @env{GUIX_PACKAGE_PATH} "
"environment variable described below."
msgstr ""

#. type: enumerate
#: doc/guix.texi:6264
msgid ""
"By defining a @dfn{channel} and configuring @command{guix pull} so that it "
"pulls from it.  A channel is essentially a Git repository containing package "
"modules.  @xref{Channels}, for more information on how to define and use "
"channels."
msgstr ""

#. type: Plain text
#: doc/guix.texi:6267
msgid "@env{GUIX_PACKAGE_PATH} works similarly to other search path variables:"
msgstr ""

#. type: defvr
#: doc/guix.texi:6268
#, no-wrap
msgid "{Environment Variable} GUIX_PACKAGE_PATH"
msgstr ""

#. type: defvr
#: doc/guix.texi:6272
msgid ""
"This is a colon-separated list of directories to search for additional "
"package modules.  Directories listed in this variable take precedence over "
"the own modules of the distribution."
msgstr ""

#. type: Plain text
#: doc/guix.texi:6280
msgid ""
"The distribution is fully @dfn{bootstrapped} and @dfn{self-contained}: each "
"package is built based solely on other packages in the distribution.  The "
"root of this dependency graph is a small set of @dfn{bootstrap binaries}, "
"provided by the @code{(gnu packages bootstrap)} module.  For more "
"information on bootstrapping, @pxref{Bootstrapping}."
msgstr ""

#. type: Plain text
#: doc/guix.texi:6288
msgid ""
"The high-level interface to package definitions is implemented in the "
"@code{(guix packages)} and @code{(guix build-system)} modules.  As an "
"example, the package definition, or @dfn{recipe}, for the GNU Hello package "
"looks like this:"
msgstr ""

#. type: lisp
#: doc/guix.texi:6296
#, no-wrap
msgid ""
"(define-module (gnu packages hello)\n"
"  #:use-module (guix packages)\n"
"  #:use-module (guix download)\n"
"  #:use-module (guix build-system gnu)\n"
"  #:use-module (guix licenses)\n"
"  #:use-module (gnu packages gawk))\n"
"\n"
msgstr ""

#. type: lisp
#: doc/guix.texi:6315
#, no-wrap
msgid ""
"(define-public hello\n"
"  (package\n"
"    (name \"hello\")\n"
"    (version \"2.10\")\n"
"    (source (origin\n"
"              (method url-fetch)\n"
"              (uri (string-append \"mirror://gnu/hello/hello-\" version\n"
"                                  \".tar.gz\"))\n"
"              (sha256\n"
"               (base32\n"
"                \"0ssi1wpaf7plaswqqjwigppsg5fyh99vdlb9kzl7c9lng89ndq1i\"))))\n"
"    (build-system gnu-build-system)\n"
"    (arguments '(#:configure-flags '(\"--enable-silent-rules\")))\n"
"    (inputs `((\"gawk\" ,gawk)))\n"
"    (synopsis \"Hello, GNU world: An example GNU package\")\n"
"    (description \"Guess what GNU Hello prints!\")\n"
"    (home-page \"https://www.gnu.org/software/hello/\")\n"
"    (license gpl3+)))\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:6325
msgid ""
"Without being a Scheme expert, the reader may have guessed the meaning of "
"the various fields here.  This expression binds the variable @code{hello} to "
"a @code{<package>} object, which is essentially a record (@pxref{SRFI-9, "
"Scheme records,, guile, GNU Guile Reference Manual}).  This package object "
"can be inspected using procedures found in the @code{(guix packages)} "
"module; for instance, @code{(package-name hello)} returns---surprise!---"
"@code{\"hello\"}."
msgstr ""

#. type: Plain text
#: doc/guix.texi:6329
msgid ""
"With luck, you may be able to import part or all of the definition of the "
"package you are interested in from another repository, using the @code{guix "
"import} command (@pxref{Invoking guix import})."
msgstr ""

#. type: Plain text
#: doc/guix.texi:6335
msgid ""
"In the example above, @code{hello} is defined in a module of its own, "
"@code{(gnu packages hello)}.  Technically, this is not strictly necessary, "
"but it is convenient to do so: all the packages defined in modules under "
"@code{(gnu packages @dots{})} are automatically known to the command-line "
"tools (@pxref{Package Modules})."
msgstr ""

#. type: Plain text
#: doc/guix.texi:6337
msgid "There are a few points worth noting in the above package definition:"
msgstr ""

#. type: itemize
#: doc/guix.texi:6344
msgid ""
"The @code{source} field of the package is an @code{<origin>} object "
"(@pxref{origin Reference}, for the complete reference).  Here, the @code{url-"
"fetch} method from @code{(guix download)} is used, meaning that the source "
"is a file to be downloaded over FTP or HTTP."
msgstr ""

#. type: itemize
#: doc/guix.texi:6347
msgid ""
"The @code{mirror://gnu} prefix instructs @code{url-fetch} to use one of the "
"GNU mirrors defined in @code{(guix download)}."
msgstr ""

#. type: itemize
#: doc/guix.texi:6354
msgid ""
"The @code{sha256} field specifies the expected SHA256 hash of the file being "
"downloaded.  It is mandatory, and allows Guix to check the integrity of the "
"file.  The @code{(base32 @dots{})} form introduces the base32 representation "
"of the hash.  You can obtain this information with @code{guix download} "
"(@pxref{Invoking guix download}) and @code{guix hash} (@pxref{Invoking guix "
"hash})."
msgstr ""

#. type: cindex
#: doc/guix.texi:6355
#, no-wrap
msgid "patches"
msgstr ""

#. type: itemize
#: doc/guix.texi:6359
msgid ""
"When needed, the @code{origin} form can also have a @code{patches} field "
"listing patches to be applied, and a @code{snippet} field giving a Scheme "
"expression to modify the source code."
msgstr ""

#. type: cindex
#: doc/guix.texi:6361
#, no-wrap
msgid "GNU Build System"
msgstr ""

#. type: itemize
#: doc/guix.texi:6367
msgid ""
"The @code{build-system} field specifies the procedure to build the package "
"(@pxref{Build Systems}).  Here, @code{gnu-build-system} represents the "
"familiar GNU Build System, where packages may be configured, built, and "
"installed with the usual @code{./configure && make && make check && make "
"install} command sequence."
msgstr ""

#. type: itemize
#: doc/guix.texi:6371
msgid ""
"When you start packaging non-trivial software, you may need tools to "
"manipulate those build phases, manipulate files, and so on.  @xref{Build "
"Utilities}, for more on this."
msgstr ""

#. type: itemize
#: doc/guix.texi:6377
msgid ""
"The @code{arguments} field specifies options for the build system "
"(@pxref{Build Systems}).  Here it is interpreted by @code{gnu-build-system} "
"as a request run @file{configure} with the @option{--enable-silent-rules} "
"flag."
msgstr ""

#. type: findex
#: doc/guix.texi:6378 doc/guix.texi:6381
#, no-wrap
msgid "quote"
msgstr ""

#. type: cindex
#: doc/guix.texi:6379
#, no-wrap
msgid "quoting"
msgstr ""

#. type: findex
#: doc/guix.texi:6380
#, no-wrap
msgid "'"
msgstr ""

#. type: itemize
#: doc/guix.texi:6389
msgid ""
"What about these quote (@code{'}) characters? They are Scheme syntax to "
"introduce a literal list; @code{'} is synonymous with @code{quote}.  "
"@xref{Expression Syntax, quoting,, guile, GNU Guile Reference Manual}, for "
"details.  Here the value of the @code{arguments} field is a list of "
"arguments passed to the build system down the road, as with @code{apply} "
"(@pxref{Fly Evaluation, @code{apply},, guile, GNU Guile Reference Manual})."
msgstr ""

#. type: itemize
#: doc/guix.texi:6395
msgid ""
"The hash-colon (@code{#:}) sequence defines a Scheme @dfn{keyword} "
"(@pxref{Keywords,,, guile, GNU Guile Reference Manual}), and @code{#:"
"configure-flags} is a keyword used to pass a keyword argument to the build "
"system (@pxref{Coding With Keywords,,, guile, GNU Guile Reference Manual})."
msgstr ""

#. type: itemize
#: doc/guix.texi:6401
msgid ""
"The @code{inputs} field specifies inputs to the build process---i.e., build-"
"time or run-time dependencies of the package.  Here, we define an input "
"called @code{\"gawk\"} whose value is that of the @code{gawk} variable; "
"@code{gawk} is itself bound to a @code{<package>} object."
msgstr ""

#. type: cindex
#: doc/guix.texi:6402
#, no-wrap
msgid "backquote (quasiquote)"
msgstr ""

#. type: findex
#: doc/guix.texi:6403
#, no-wrap
msgid "`"
msgstr ""

#. type: findex
#: doc/guix.texi:6404
#, no-wrap
msgid "quasiquote"
msgstr ""

#. type: cindex
#: doc/guix.texi:6405
#, no-wrap
msgid "comma (unquote)"
msgstr ""

#. type: findex
#: doc/guix.texi:6406
#, no-wrap
msgid ","
msgstr ""

#. type: findex
#: doc/guix.texi:6407
#, no-wrap
msgid "unquote"
msgstr ""

#. type: findex
#: doc/guix.texi:6408
#, no-wrap
msgid ",@@"
msgstr ""

#. type: findex
#: doc/guix.texi:6409
#, no-wrap
msgid "unquote-splicing"
msgstr ""

#. type: itemize
#: doc/guix.texi:6415
msgid ""
"Again, @code{`} (a backquote, synonymous with @code{quasiquote}) allows us "
"to introduce a literal list in the @code{inputs} field, while @code{,} (a "
"comma, synonymous with @code{unquote}) allows us to insert a value in that "
"list (@pxref{Expression Syntax, unquote,, guile, GNU Guile Reference "
"Manual})."
msgstr ""

#. type: itemize
#: doc/guix.texi:6419
msgid ""
"Note that GCC, Coreutils, Bash, and other essential tools do not need to be "
"specified as inputs here.  Instead, @code{gnu-build-system} takes care of "
"ensuring that they are present (@pxref{Build Systems})."
msgstr ""

#. type: itemize
#: doc/guix.texi:6423
msgid ""
"However, any other dependencies need to be specified in the @code{inputs} "
"field.  Any dependency not specified here will simply be unavailable to the "
"build process, possibly leading to a build failure."
msgstr ""

#. type: Plain text
#: doc/guix.texi:6426
msgid "@xref{package Reference}, for a full description of possible fields."
msgstr ""

#. type: Plain text
#: doc/guix.texi:6437
msgid ""
"Once a package definition is in place, the package may actually be built "
"using the @code{guix build} command-line tool (@pxref{Invoking guix build}), "
"troubleshooting any build failures you encounter (@pxref{Debugging Build "
"Failures}).  You can easily jump back to the package definition using the "
"@command{guix edit} command (@pxref{Invoking guix edit}).  @xref{Packaging "
"Guidelines}, for more information on how to test package definitions, and "
"@ref{Invoking guix lint}, for information on how to check a definition for "
"style conformance."
msgstr ""

#. type: vindex
#: doc/guix.texi:6437
#, no-wrap
msgid "GUIX_PACKAGE_PATH"
msgstr ""

#. type: Plain text
#: doc/guix.texi:6441
msgid ""
"Lastly, @pxref{Channels}, for information on how to extend the distribution "
"by adding your own package definitions in a ``channel''."
msgstr ""

#. type: Plain text
#: doc/guix.texi:6445
msgid ""
"Finally, updating the package definition to a new upstream version can be "
"partly automated by the @command{guix refresh} command (@pxref{Invoking guix "
"refresh})."
msgstr ""

#. type: Plain text
#: doc/guix.texi:6451
msgid ""
"Behind the scenes, a derivation corresponding to the @code{<package>} object "
"is first computed by the @code{package-derivation} procedure.  That "
"derivation is stored in a @file{.drv} file under @file{/gnu/store}.  The "
"build actions it prescribes may then be realized by using the @code{build-"
"derivations} procedure (@pxref{The Store})."
msgstr ""

#. type: deffn
#: doc/guix.texi:6452
#, no-wrap
msgid "{Scheme Procedure} package-derivation @var{store} @var{package} [@var{system}]"
msgstr ""

#. type: deffn
#: doc/guix.texi:6455
msgid ""
"Return the @code{<derivation>} object of @var{package} for @var{system} "
"(@pxref{Derivations})."
msgstr ""

#. type: deffn
#: doc/guix.texi:6461
msgid ""
"@var{package} must be a valid @code{<package>} object, and @var{system} must "
"be a string denoting the target system type---e.g., @code{\"x86_64-linux\"} "
"for an x86_64 Linux-based GNU system.  @var{store} must be a connection to "
"the daemon, which operates on the store (@pxref{The Store})."
msgstr ""

#. type: Plain text
#: doc/guix.texi:6467
msgid ""
"Similarly, it is possible to compute a derivation that cross-builds a "
"package for some other system:"
msgstr ""

#. type: deffn
#: doc/guix.texi:6468
#, no-wrap
msgid "{Scheme Procedure} package-cross-derivation @var{store} @"
msgstr ""

#. type: deffn
#: doc/guix.texi:6472
msgid ""
"@var{package} @var{target} [@var{system}] Return the @code{<derivation>} "
"object of @var{package} cross-built from @var{system} to @var{target}."
msgstr ""

#. type: deffn
#: doc/guix.texi:6476
msgid ""
"@var{target} must be a valid GNU triplet denoting the target hardware and "
"operating system, such as @code{\"aarch64-linux-gnu\"} (@pxref{Specifying "
"Target Triplets,,, autoconf, Autoconf})."
msgstr ""

#. type: Plain text
#: doc/guix.texi:6480
msgid ""
"Once you have package definitions, you can easily define @emph{variants} of "
"those packages.  @xref{Defining Package Variants}, for more on that."
msgstr ""

#. type: subsection
#: doc/guix.texi:6488
#, no-wrap
msgid "@code{package} Reference"
msgstr ""

#. type: Plain text
#: doc/guix.texi:6492
msgid ""
"This section summarizes all the options available in @code{package} "
"declarations (@pxref{Defining Packages})."
msgstr ""

#. type: deftp
#: doc/guix.texi:6493
#, no-wrap
msgid "{Data Type} package"
msgstr ""

#. type: deftp
#: doc/guix.texi:6495
msgid "This is the data type representing a package recipe."
msgstr ""

#. type: table
#: doc/guix.texi:6499
msgid "The name of the package, as a string."
msgstr ""

#. type: code{#1}
#: doc/guix.texi:6500
#, no-wrap
msgid "version"
msgstr ""

#. type: table
#: doc/guix.texi:6502
msgid "The version of the package, as a string."
msgstr ""

#. type: code{#1}
#: doc/guix.texi:6503 doc/guix.texi:11569 doc/guix.texi:13752
#: doc/guix.texi:14227
#, no-wrap
msgid "source"
msgstr ""

#. type: table
#: doc/guix.texi:6510
msgid ""
"An object telling how the source code for the package should be acquired.  "
"Most of the time, this is an @code{origin} object, which denotes a file "
"fetched from the Internet (@pxref{origin Reference}).  It can also be any "
"other ``file-like'' object such as a @code{local-file}, which denotes a file "
"from the local file system (@pxref{G-Expressions, @code{local-file}})."
msgstr ""

#. type: code{#1}
#: doc/guix.texi:6511
#, no-wrap
msgid "build-system"
msgstr ""

#. type: table
#: doc/guix.texi:6514
msgid ""
"The build system that should be used to build the package (@pxref{Build "
"Systems})."
msgstr ""

#. type: item
#: doc/guix.texi:6515 doc/guix.texi:16147
#, no-wrap
msgid "@code{arguments} (default: @code{'()})"
msgstr ""

#. type: table
#: doc/guix.texi:6518
msgid ""
"The arguments that should be passed to the build system.  This is a list, "
"typically containing sequential keyword-value pairs."
msgstr ""

#. type: item
#: doc/guix.texi:6519
#, no-wrap
msgid "@code{inputs} (default: @code{'()})"
msgstr ""

#. type: itemx
#: doc/guix.texi:6520
#, no-wrap
msgid "@code{native-inputs} (default: @code{'()})"
msgstr ""

#. type: itemx
#: doc/guix.texi:6521
#, no-wrap
msgid "@code{propagated-inputs} (default: @code{'()})"
msgstr ""

#. type: cindex
#: doc/guix.texi:6522
#, no-wrap
msgid "inputs, of packages"
msgstr ""

#. type: table
#: doc/guix.texi:6530
msgid ""
"These fields list dependencies of the package.  Each one is a list of "
"tuples, where each tuple has a label for the input (a string) as its first "
"element, a package, origin, or derivation as its second element, and "
"optionally the name of the output thereof that should be used, which "
"defaults to @code{\"out\"} (@pxref{Packages with Multiple Outputs}, for more "
"on package outputs).  For example, the list below specifies three inputs:"
msgstr ""

#. type: lisp
#: doc/guix.texi:6535
#, no-wrap
msgid ""
"`((\"libffi\" ,libffi)\n"
"  (\"libunistring\" ,libunistring)\n"
"  (\"glib:bin\" ,glib \"bin\"))  ;the \"bin\" output of Glib\n"
msgstr ""

#. type: cindex
#: doc/guix.texi:6537
#, no-wrap
msgid "cross compilation, package dependencies"
msgstr ""

#. type: table
#: doc/guix.texi:6543
msgid ""
"The distinction between @code{native-inputs} and @code{inputs} is necessary "
"when considering cross-compilation.  When cross-compiling, dependencies "
"listed in @code{inputs} are built for the @emph{target} architecture; "
"conversely, dependencies listed in @code{native-inputs} are built for the "
"architecture of the @emph{build} machine."
msgstr ""

#. type: table
#: doc/guix.texi:6548
msgid ""
"@code{native-inputs} is typically used to list tools needed at build time, "
"but not at run time, such as Autoconf, Automake, pkg-config, Gettext, or "
"Bison.  @command{guix lint} can report likely mistakes in this area "
"(@pxref{Invoking guix lint})."
msgstr ""

#. type: anchor{#1}
#: doc/guix.texi:6556
msgid "package-propagated-inputs"
msgstr ""

#. type: table
#: doc/guix.texi:6556
msgid ""
"Lastly, @code{propagated-inputs} is similar to @code{inputs}, but the "
"specified packages will be automatically installed to profiles "
"(@pxref{Features, the role of profiles in Guix}) alongside the package they "
"belong to (@pxref{package-cmd-propagated-inputs, @command{guix package}}, "
"for information on how @command{guix package} deals with propagated inputs)."
msgstr ""

#. type: table
#: doc/guix.texi:6560
msgid ""
"For example this is necessary when packaging a C/C++ library that needs "
"headers of another library to compile, or when a pkg-config file refers to "
"another one @i{via} its @code{Requires} field."
msgstr ""

#. type: table
#: doc/guix.texi:6567
msgid ""
"Another example where @code{propagated-inputs} is useful is for languages "
"that lack a facility to record the run-time search path akin to the "
"@code{RUNPATH} of ELF files; this includes Guile, Python, Perl, and more.  "
"When packaging libraries written in those languages, ensure they can find "
"library code they depend on at run time by listing run-time dependencies in "
"@code{propagated-inputs} rather than @code{inputs}."
msgstr ""

#. type: item
#: doc/guix.texi:6568
#, no-wrap
msgid "@code{outputs} (default: @code{'(\"out\")})"
msgstr ""

#. type: table
#: doc/guix.texi:6571
msgid ""
"The list of output names of the package.  @xref{Packages with Multiple "
"Outputs}, for typical uses of additional outputs."
msgstr ""

#. type: item
#: doc/guix.texi:6572
#, no-wrap
msgid "@code{native-search-paths} (default: @code{'()})"
msgstr ""

#. type: itemx
#: doc/guix.texi:6573
#, no-wrap
msgid "@code{search-paths} (default: @code{'()})"
msgstr ""

#. type: table
#: doc/guix.texi:6576
msgid ""
"A list of @code{search-path-specification} objects describing search-path "
"environment variables honored by the package."
msgstr ""

#. type: item
#: doc/guix.texi:6577
#, no-wrap
msgid "@code{replacement} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:6581
msgid ""
"This must be either @code{#f} or a package object that will be used as a "
"@dfn{replacement} for this package.  @xref{Security Updates, grafts}, for "
"details."
msgstr ""

#. type: item
#: doc/guix.texi:6582 doc/guix.texi:11561
#, no-wrap
msgid "synopsis"
msgstr ""

#. type: table
#: doc/guix.texi:6584
msgid "A one-line description of the package."
msgstr ""

#. type: code{#1}
#: doc/guix.texi:6585 doc/guix.texi:11562 doc/guix.texi:31704
#: doc/guix.texi:31855
#, no-wrap
msgid "description"
msgstr ""

#. type: table
#: doc/guix.texi:6587
msgid "A more elaborate description of the package."
msgstr ""

#. type: code{#1}
#: doc/guix.texi:6588
#, no-wrap
msgid "license"
msgstr ""

#. type: cindex
#: doc/guix.texi:6589
#, no-wrap
msgid "license, of packages"
msgstr ""

#. type: table
#: doc/guix.texi:6592
msgid ""
"The license of the package; a value from @code{(guix licenses)}, or a list "
"of such values."
msgstr ""

#. type: itemx
#: doc/guix.texi:6593 doc/guix.texi:11570
#, no-wrap
msgid "home-page"
msgstr ""

#. type: table
#: doc/guix.texi:6595
msgid "The URL to the home-page of the package, as a string."
msgstr ""

#. type: item
#: doc/guix.texi:6596
#, no-wrap
msgid "@code{supported-systems} (default: @code{%supported-systems})"
msgstr ""

#. type: table
#: doc/guix.texi:6599
msgid ""
"The list of systems supported by the package, as strings of the form "
"@code{architecture-kernel}, for example @code{\"x86_64-linux\"}."
msgstr ""

#. type: item
#: doc/guix.texi:6600
#, no-wrap
msgid "@code{location} (default: source location of the @code{package} form)"
msgstr ""

#. type: table
#: doc/guix.texi:6604
msgid ""
"The source location of the package.  It is useful to override this when "
"inheriting from another package, in which case this field is not "
"automatically corrected."
msgstr ""

#. type: deffn
#: doc/guix.texi:6607
#, no-wrap
msgid "{Scheme Syntax} this-package"
msgstr ""

#. type: deffn
#: doc/guix.texi:6610
msgid ""
"When used in the @emph{lexical scope} of a package field definition, this "
"identifier resolves to the package being defined."
msgstr ""

#. type: deffn
#: doc/guix.texi:6613
msgid ""
"The example below shows how to add a package as a native input of itself "
"when cross-compiling:"
msgstr ""

#. type: lisp
#: doc/guix.texi:6618
#, no-wrap
msgid ""
"(package\n"
"  (name \"guile\")\n"
"  ;; ...\n"
"\n"
msgstr ""

#. type: lisp
#: doc/guix.texi:6624
#, no-wrap
msgid ""
"  ;; When cross-compiled, Guile, for example, depends on\n"
"  ;; a native version of itself.  Add it here.\n"
"  (native-inputs (if (%current-target-system)\n"
"                     `((\"self\" ,this-package))\n"
"                     '())))\n"
msgstr ""

#. type: deffn
#: doc/guix.texi:6627
msgid ""
"It is an error to refer to @code{this-package} outside a package definition."
msgstr ""

#. type: Plain text
#: doc/guix.texi:6633
msgid ""
"Because packages are regular Scheme objects that capture a complete "
"dependency graph and associated build procedures, it is often useful to "
"write procedures that take a package and return a modified version thereof "
"according to some parameters.  Below are a few examples."
msgstr ""

#. type: cindex
#: doc/guix.texi:6634
#, no-wrap
msgid "tool chain, choosing a package's tool chain"
msgstr ""

#. type: deffn
#: doc/guix.texi:6635
#, no-wrap
msgid "{Scheme Procedure} package-with-c-toolchain @var{package} @var{toolchain}"
msgstr ""

#. type: deffn
#: doc/guix.texi:6640
msgid ""
"Return a variant of @var{package} that uses @var{toolchain} instead of the "
"default GNU C/C++ toolchain.  @var{toolchain} must be a list of inputs "
"(label/package tuples) providing equivalent functionality, such as the "
"@code{gcc-toolchain} package."
msgstr ""

#. type: deffn
#: doc/guix.texi:6644
msgid ""
"The example below returns a variant of the @code{hello} package built with "
"GCC@tie{}10.x and the rest of the GNU tool chain (Binutils and the GNU C "
"Library) instead of the default tool chain:"
msgstr ""

#. type: lisp
#: doc/guix.texi:6648
#, no-wrap
msgid ""
"(let ((toolchain (specification->package \"gcc-toolchain@@10\")))\n"
"  (package-with-c-toolchain hello `((\"toolchain\" ,toolchain))))\n"
msgstr ""

#. type: deffn
#: doc/guix.texi:6656
msgid ""
"The build tool chain is part of the @dfn{implicit inputs} of packages---it's "
"usually not listed as part of the various ``inputs'' fields and is instead "
"pulled in by the build system.  Consequently, this procedure works by "
"changing the build system of @var{package} so that it pulls in "
"@var{toolchain} instead of the defaults.  @ref{Build Systems}, for more on "
"build systems."
msgstr ""

#. type: subsection
#: doc/guix.texi:6659
#, no-wrap
msgid "@code{origin} Reference"
msgstr ""

#. type: Plain text
#: doc/guix.texi:6667
msgid ""
"This section documents @dfn{origins}.  An @code{origin} declaration "
"specifies data that must be ``produced''---downloaded, usually---and whose "
"content hash is known in advance.  Origins are primarily used to represent "
"the source code of packages (@pxref{Defining Packages}).  For that reason, "
"the @code{origin} form allows you to declare patches to apply to the "
"original source code as well as code snippets to modify it."
msgstr ""

#. type: deftp
#: doc/guix.texi:6668
#, no-wrap
msgid "{Data Type} origin"
msgstr ""

#. type: deftp
#: doc/guix.texi:6670
msgid "This is the data type representing a source code origin."
msgstr ""

#. type: code{#1}
#: doc/guix.texi:6672 doc/guix.texi:23144
#, no-wrap
msgid "uri"
msgstr ""

#. type: table
#: doc/guix.texi:6677
msgid ""
"An object containing the URI of the source.  The object type depends on the "
"@code{method} (see below).  For example, when using the @var{url-fetch} "
"method of @code{(guix download)}, the valid @code{uri} values are: a URL "
"represented as a string, or a list thereof."
msgstr ""

#. type: cindex
#: doc/guix.texi:6678
#, no-wrap
msgid "fixed-output derivations, for download"
msgstr ""

#. type: code{#1}
#: doc/guix.texi:6679
#, no-wrap
msgid "method"
msgstr ""

#. type: table
#: doc/guix.texi:6686
msgid ""
"A monadic procedure that handles the given URI.  The procedure must accept "
"at least three arguments: the value of the @code{uri} field and the hash "
"algorithm and hash value specified by the @code{hash} field.  It must return "
"a store item or a derivation in the store monad (@pxref{The Store Monad}); "
"most methods return a fixed-output derivation (@pxref{Derivations})."
msgstr ""

#. type: table
#: doc/guix.texi:6690
msgid ""
"Commonly used methods include @code{url-fetch}, which fetches data from a "
"URL, and @code{git-fetch}, which fetches data from a Git repository (see "
"below)."
msgstr ""

#. type: code{#1}
#: doc/guix.texi:6691
#, no-wrap
msgid "sha256"
msgstr ""

#. type: table
#: doc/guix.texi:6695
msgid ""
"A bytevector containing the SHA-256 hash of the source.  This is equivalent "
"to providing a @code{content-hash} SHA256 object in the @code{hash} field "
"described below."
msgstr ""

#. type: code{#1}
#: doc/guix.texi:6696
#, no-wrap
msgid "hash"
msgstr ""

#. type: table
#: doc/guix.texi:6699
msgid ""
"The @code{content-hash} object of the source---see below for how to use "
"@code{content-hash}."
msgstr ""

#. type: table
#: doc/guix.texi:6703
msgid ""
"You can obtain this information using @code{guix download} (@pxref{Invoking "
"guix download}) or @code{guix hash} (@pxref{Invoking guix hash})."
msgstr ""

#. type: item
#: doc/guix.texi:6704
#, no-wrap
msgid "@code{file-name} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:6710
msgid ""
"The file name under which the source code should be saved.  When this is "
"@code{#f}, a sensible default value will be used in most cases.  In case the "
"source is fetched from a URL, the file name from the URL will be used.  For "
"version control checkouts, it is recommended to provide the file name "
"explicitly because the default is not very descriptive."
msgstr ""

#. type: item
#: doc/guix.texi:6711
#, no-wrap
msgid "@code{patches} (default: @code{'()})"
msgstr ""

#. type: table
#: doc/guix.texi:6714
msgid ""
"A list of file names, origins, or file-like objects (@pxref{G-Expressions, "
"file-like objects}) pointing to patches to be applied to the source."
msgstr ""

#. type: table
#: doc/guix.texi:6718
msgid ""
"This list of patches must be unconditional.  In particular, it cannot depend "
"on the value of @code{%current-system} or @code{%current-target-system}."
msgstr ""

#. type: item
#: doc/guix.texi:6719
#, no-wrap
msgid "@code{snippet} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:6723
msgid ""
"A G-expression (@pxref{G-Expressions}) or S-expression that will be run in "
"the source directory.  This is a convenient way to modify the source, "
"sometimes more convenient than a patch."
msgstr ""

#. type: item
#: doc/guix.texi:6724
#, no-wrap
msgid "@code{patch-flags} (default: @code{'(\"-p1\")})"
msgstr ""

#. type: table
#: doc/guix.texi:6727
msgid ""
"A list of command-line flags that should be passed to the @code{patch} "
"command."
msgstr ""

#. type: item
#: doc/guix.texi:6728
#, no-wrap
msgid "@code{patch-inputs} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:6732
msgid ""
"Input packages or derivations to the patching process.  When this is "
"@code{#f}, the usual set of inputs necessary for patching are provided, such "
"as GNU@tie{}Patch."
msgstr ""

#. type: item
#: doc/guix.texi:6733 doc/guix.texi:23017
#, no-wrap
msgid "@code{modules} (default: @code{'()})"
msgstr ""

#. type: table
#: doc/guix.texi:6736
msgid ""
"A list of Guile modules that should be loaded during the patching process "
"and while running the code in the @code{snippet} field."
msgstr ""

#. type: item
#: doc/guix.texi:6737
#, no-wrap
msgid "@code{patch-guile} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:6740
msgid ""
"The Guile package that should be used in the patching process.  When this is "
"@code{#f}, a sensible default is used."
msgstr ""

#. type: deftp
#: doc/guix.texi:6743
#, no-wrap
msgid "{Data Type} content-hash @var{value} [@var{algorithm}]"
msgstr ""

#. type: deftp
#: doc/guix.texi:6747
msgid ""
"Construct a content hash object for the given @var{algorithm}, and with "
"@var{value} as its hash value.  When @var{algorithm} is omitted, assume it "
"is @code{sha256}."
msgstr ""

#. type: deftp
#: doc/guix.texi:6750
msgid ""
"@var{value} can be a literal string, in which case it is base32-decoded, or "
"it can be a bytevector."
msgstr ""

#. type: deftp
#: doc/guix.texi:6752
msgid "The following forms are all equivalent:"
msgstr ""

#. type: lisp
#: doc/guix.texi:6761
#, no-wrap
msgid ""
"(content-hash \"05zxkyz9bv3j9h0xyid1rhvh3klhsmrpkf3bcs6frvlgyr2gwilj\")\n"
"(content-hash \"05zxkyz9bv3j9h0xyid1rhvh3klhsmrpkf3bcs6frvlgyr2gwilj\"\n"
"              sha256)\n"
"(content-hash (base32\n"
"               \"05zxkyz9bv3j9h0xyid1rhvh3klhsmrpkf3bcs6frvlgyr2gwilj\"))\n"
"(content-hash (base64 \"kkb+RPaP7uyMZmu4eXPVkM4BN8yhRd8BTHLslb6f/Rc=\")\n"
"              sha256)\n"
msgstr ""

#. type: deftp
#: doc/guix.texi:6766
msgid ""
"Technically, @code{content-hash} is currently implemented as a macro.  It "
"performs sanity checks at macro-expansion time, when possible, such as "
"ensuring that @var{value} has the right size for @var{algorithm}."
msgstr ""

#. type: Plain text
#: doc/guix.texi:6772
msgid ""
"As we have seen above, how exactly the data an origin refers to is retrieved "
"is determined by its @code{method} field.  The @code{(guix download)} module "
"provides the most common method, @code{url-fetch}, described below."
msgstr ""

#. type: deffn
#: doc/guix.texi:6773
#, no-wrap
msgid "{Scheme Procedure} url-fetch @var{url} @var{hash-algo} @var{hash} @"
msgstr ""

#. type: deffn
#: doc/guix.texi:6781
msgid ""
"[name] [#:executable? #f] Return a fixed-output derivation that fetches data "
"from @var{url} (a string, or a list of strings denoting alternate URLs), "
"which is expected to have hash @var{hash} of type @var{hash-algo} (a "
"symbol).  By default, the file name is the base name of URL; optionally, "
"@var{name} can specify a different file name.  When @var{executable?} is "
"true, make the downloaded file executable."
msgstr ""

#. type: deffn
#: doc/guix.texi:6784
msgid ""
"When one of the URL starts with @code{mirror://}, then its host part is "
"interpreted as the name of a mirror scheme, taken from @file{%mirror-file}."
msgstr ""

#. type: deffn
#: doc/guix.texi:6787
msgid ""
"Alternatively, when URL starts with @code{file://}, return the corresponding "
"file name in the store."
msgstr ""

#. type: Plain text
#: doc/guix.texi:6793
msgid ""
"Likewise, the @code{(guix git-download)} module defines the @code{git-fetch} "
"origin method, which fetches data from a Git version control repository, and "
"the @code{git-reference} data type to describe the repository and revision "
"to fetch."
msgstr ""

#. type: deffn
#: doc/guix.texi:6794
#, no-wrap
msgid "{Scheme Procedure} git-fetch @var{ref} @var{hash-algo} @var{hash}"
msgstr ""

#. type: deffn
#: doc/guix.texi:6799
msgid ""
"Return a fixed-output derivation that fetches @var{ref}, a @code{<git-"
"reference>} object.  The output is expected to have recursive hash "
"@var{hash} of type @var{hash-algo} (a symbol).  Use @var{name} as the file "
"name, or a generic name if @code{#f}."
msgstr ""

#. type: deftp
#: doc/guix.texi:6801
#, no-wrap
msgid "{Data Type} git-reference"
msgstr ""

#. type: deftp
#: doc/guix.texi:6804
msgid ""
"This data type represents a Git reference for @code{git-fetch} to retrieve."
msgstr ""

#. type: code{#1}
#: doc/guix.texi:6806 doc/guix.texi:21583
#, no-wrap
msgid "url"
msgstr ""

#. type: table
#: doc/guix.texi:6808
msgid "The URL of the Git repository to clone."
msgstr ""

#. type: code{#1}
#: doc/guix.texi:6809
#, no-wrap
msgid "commit"
msgstr ""

#. type: table
#: doc/guix.texi:6813
msgid ""
"This string denotes either the commit to fetch (a hexadecimal string, either "
"the full SHA1 commit or a ``short'' commit string; the latter is not "
"recommended) or the tag to fetch."
msgstr ""

#. type: item
#: doc/guix.texi:6814
#, no-wrap
msgid "@code{recursive?} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:6816
msgid "This Boolean indicates whether to recursively fetch Git sub-modules."
msgstr ""

#. type: deftp
#: doc/guix.texi:6820
msgid ""
"The example below denotes the @code{v2.10} tag of the GNU@tie{}Hello "
"repository:"
msgstr ""

#. type: lisp
#: doc/guix.texi:6825
#, no-wrap
msgid ""
"(git-reference\n"
"  (url \"https://git.savannah.gnu.org/git/hello.git\")\n"
"  (commit \"v2.10\"))\n"
msgstr ""

#. type: deftp
#: doc/guix.texi:6829
msgid ""
"This is equivalent to the reference below, which explicitly names the commit:"
msgstr ""

#. type: lisp
#: doc/guix.texi:6834
#, no-wrap
msgid ""
"(git-reference\n"
"  (url \"https://git.savannah.gnu.org/git/hello.git\")\n"
"  (commit \"dc7dc56a00e48fe6f231a58f6537139fe2908fb9\"))\n"
msgstr ""

#. type: cindex
#: doc/guix.texi:6840
#, no-wrap
msgid "customizing packages"
msgstr ""

#. type: cindex
#: doc/guix.texi:6841
#, no-wrap
msgid "variants, of packages"
msgstr ""

#. type: Plain text
#: doc/guix.texi:6851
msgid ""
"One of the nice things with Guix is that, given a package definition, you "
"can easily @emph{derive} variants of that package---for a different upstream "
"version, with different dependencies, different compilation options, and so "
"on.  Some of these custom packages can be defined straight from the command "
"line (@pxref{Package Transformation Options}).  This section describes how "
"to define package variants in code.  This can be useful in "
"``manifests'' (@pxref{profile-manifest, @option{--manifest}}) and in your "
"own package collection (@pxref{Creating a Channel}), among others!"
msgstr ""

#. type: cindex
#: doc/guix.texi:6852
#, no-wrap
msgid "inherit, for package definitions"
msgstr ""

#. type: Plain text
#: doc/guix.texi:6859
msgid ""
"As discussed earlier, packages are first-class objects in the Scheme "
"language.  The @code{(guix packages)} module provides the @code{package} "
"construct to define new package objects (@pxref{package Reference}).  The "
"easiest way to define a package variant is using the @code{inherit} keyword "
"together with @code{package}.  This allows you to inherit from a package "
"definition while overriding the fields you want."
msgstr ""

#. type: Plain text
#: doc/guix.texi:6864
msgid ""
"For example, given the @code{hello} variable, which contains a definition "
"for the current version of GNU@tie{}Hello, here's how you would define a "
"variant for version 2.2 (released in 2006, it's vintage!):"
msgstr ""

#. type: lisp
#: doc/guix.texi:6867
#, no-wrap
msgid ""
"(use-modules (gnu packages base))    ;for 'hello'\n"
"\n"
msgstr ""

#. type: lisp
#: doc/guix.texi:6879
#, no-wrap
msgid ""
"(define hello-2.2\n"
"  (package\n"
"    (inherit hello)\n"
"    (version \"2.2\")\n"
"    (source (origin\n"
"              (method url-fetch)\n"
"              (uri (string-append \"mirror://gnu/hello/hello-\" version\n"
"                                  \".tar.gz\"))\n"
"              (sha256\n"
"               (base32\n"
"                \"0lappv4slgb5spyqbh6yl5r013zv72yqg2pcl30mginf3wdqd8k9\"))))))\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:6888
msgid ""
"The example above corresponds to what the @option{--with-source} package "
"transformation option does.  Essentially @code{hello-2.2} preserves all the "
"fields of @code{hello}, except @code{version} and @code{source}, which it "
"overrides.  Note that the original @code{hello} variable is still there, in "
"the @code{(gnu packages base)} module, unchanged.  When you define a custom "
"package like this, you are really @emph{adding} a new package definition; "
"the original one remains available."
msgstr ""

#. type: Plain text
#: doc/guix.texi:6894
msgid ""
"You can just as well define variants with a different set of dependencies "
"than the original package.  For example, the default @code{gdb} package "
"depends on @code{guile}, but since that is an optional dependency, you can "
"define a variant that removes that dependency like so:"
msgstr ""

#. type: lisp
#: doc/guix.texi:6898
#, no-wrap
msgid ""
"(use-modules (gnu packages gdb)    ;for 'gdb'\n"
"             (srfi srfi-1))        ;for 'alist-delete'\n"
"\n"
msgstr ""

#. type: lisp
#: doc/guix.texi:6904
#, no-wrap
msgid ""
"(define gdb-sans-guile\n"
"  (package\n"
"    (inherit gdb)\n"
"    (inputs (alist-delete \"guile\"\n"
"                          (package-inputs gdb)))))\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:6910
msgid ""
"The @code{alist-delete} call above removes the tuple from the @code{inputs} "
"field that has @code{\"guile\"} as its first element (@pxref{SRFI-1 "
"Association Lists,,, guile, GNU Guile Reference Manual})."
msgstr ""

#. type: Plain text
#: doc/guix.texi:6918
msgid ""
"In some cases, you may find it useful to write functions (``procedures'', in "
"Scheme parlance) that return a package based on some parameters.  For "
"example, consider the @code{luasocket} library for the Lua programming "
"language.  We want to create @code{luasocket} packages for major versions of "
"Lua.  One way to do that is to define a procedure that takes a Lua package "
"and returns a @code{luasocket} package that depends on it:"
msgstr ""

#. type: lisp
#: doc/guix.texi:6929
#, no-wrap
msgid ""
"(define (make-lua-socket name lua)\n"
"  ;; Return a luasocket package built with LUA.\n"
"  (package\n"
"    (name name)\n"
"    (version \"3.0\")\n"
"    ;; several fields omitted\n"
"    (inputs\n"
"     `((\"lua\" ,lua)))\n"
"    (synopsis \"Socket library for Lua\")))\n"
"\n"
msgstr ""

#. type: lisp
#: doc/guix.texi:6932
#, no-wrap
msgid ""
"(define-public lua5.1-socket\n"
"  (make-lua-socket \"lua5.1-socket\" lua-5.1))\n"
"\n"
msgstr ""

#. type: lisp
#: doc/guix.texi:6935
#, no-wrap
msgid ""
"(define-public lua5.2-socket\n"
"  (make-lua-socket \"lua5.2-socket\" lua-5.2))\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:6943
msgid ""
"Here we have defined packages @code{lua5.1-socket} and @code{lua5.2-socket} "
"by calling @code{make-lua-socket} with different arguments.  "
"@xref{Procedures,,, guile, GNU Guile Reference Manual}, for more info on "
"procedures.  Having top-level public definitions for these two packages "
"means that they can be referred to from the command line (@pxref{Package "
"Modules})."
msgstr ""

#. type: cindex
#: doc/guix.texi:6944
#, no-wrap
msgid "package transformations"
msgstr ""

#. type: Plain text
#: doc/guix.texi:6949
msgid ""
"These are pretty simple package variants.  As a convenience, the @code{(guix "
"transformations)} module provides a high-level interface that directly maps "
"to the more sophisticated package transformation options (@pxref{Package "
"Transformation Options}):"
msgstr ""

#. type: deffn
#: doc/guix.texi:6950
#, no-wrap
msgid "{Scheme Procedure} options->transformation @var{opts}"
msgstr ""

#. type: deffn
#: doc/guix.texi:6954
msgid ""
"Return a procedure that, when passed an object to build (package, "
"derivation, etc.), applies the transformations specified by @var{opts} and "
"returns the resulting objects.  @var{opts} must be a list of symbol/string "
"pairs such as:"
msgstr ""

#. type: lisp
#: doc/guix.texi:6958
#, no-wrap
msgid ""
"((with-branch . \"guile-gcrypt=master\")\n"
" (without-tests . \"libgcrypt\"))\n"
msgstr ""

#. type: deffn
#: doc/guix.texi:6962
msgid ""
"Each symbol names a transformation and the corresponding string is an "
"argument to that transformation."
msgstr ""

#. type: Plain text
#: doc/guix.texi:6965
msgid "For instance, a manifest equivalent to this command:"
msgstr ""

#. type: example
#: doc/guix.texi:6970
#, no-wrap
msgid ""
"guix build guix \\\n"
"  --with-branch=guile-gcrypt=master \\\n"
"  --with-debug-info=zlib\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:6974
msgid "... would look like this:"
msgstr ""

#. type: lisp
#: doc/guix.texi:6977
#, no-wrap
msgid ""
"(use-modules (guix transformations))\n"
"\n"
msgstr ""

#. type: lisp
#: doc/guix.texi:6983
#, no-wrap
msgid ""
"(define transform\n"
"  ;; The package transformation procedure.\n"
"  (options->transformation\n"
"   '((with-branch . \"guile-gcrypt=master\")\n"
"     (with-debug-info . \"zlib\"))))\n"
"\n"
msgstr ""

#. type: lisp
#: doc/guix.texi:6986
#, no-wrap
msgid ""
"(packages->manifest\n"
" (list (transform (specification->package \"guix\"))))\n"
msgstr ""

#. type: cindex
#: doc/guix.texi:6988
#, no-wrap
msgid "input rewriting"
msgstr ""

#. type: cindex
#: doc/guix.texi:6989
#, no-wrap
msgid "dependency graph rewriting"
msgstr ""

#. type: Plain text
#: doc/guix.texi:6996
msgid ""
"The @code{options->transformation} procedure is convenient, but it's perhaps "
"also not as flexible as you may like.  How is it implemented? The astute "
"reader probably noticed that most package transformation options go beyond "
"the superficial changes shown in the first examples of this section: they "
"involve @dfn{input rewriting}, whereby the dependency graph of a package is "
"rewritten by replacing specific inputs by others."
msgstr ""

#. type: Plain text
#: doc/guix.texi:7000
msgid ""
"Dependency graph rewriting, for the purposes of swapping packages in the "
"graph, is what the @code{package-input-rewriting} procedure in @code{(guix "
"packages)} implements."
msgstr ""

#. type: deffn
#: doc/guix.texi:7001
#, no-wrap
msgid "{Scheme Procedure} package-input-rewriting @var{replacements} @"
msgstr ""

#. type: deffn
#: doc/guix.texi:7008
msgid ""
"[@var{rewrite-name}] [#:deep? #t] Return a procedure that, when passed a "
"package, replaces its direct and indirect dependencies, including implicit "
"inputs when @var{deep?} is true, according to @var{replacements}.  "
"@var{replacements} is a list of package pairs; the first element of each "
"pair is the package to replace, and the second one is the replacement."
msgstr ""

#. type: deffn
#: doc/guix.texi:7011
msgid ""
"Optionally, @var{rewrite-name} is a one-argument procedure that takes the "
"name of a package and returns its new name after rewrite."
msgstr ""

#. type: table
#: doc/guix.texi:7015 doc/guix.texi:10211
msgid "Consider this example:"
msgstr ""

#. type: lisp
#: doc/guix.texi:7021
#, no-wrap
msgid ""
"(define libressl-instead-of-openssl\n"
"  ;; This is a procedure to replace OPENSSL by LIBRESSL,\n"
"  ;; recursively.\n"
"  (package-input-rewriting `((,openssl . ,libressl))))\n"
"\n"
msgstr ""

#. type: lisp
#: doc/guix.texi:7024
#, no-wrap
msgid ""
"(define git-with-libressl\n"
"  (libressl-instead-of-openssl git))\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:7032
msgid ""
"Here we first define a rewriting procedure that replaces @var{openssl} with "
"@var{libressl}.  Then we use it to define a @dfn{variant} of the @var{git} "
"package that uses @var{libressl} instead of @var{openssl}.  This is exactly "
"what the @option{--with-input} command-line option does (@pxref{Package "
"Transformation Options, @option{--with-input}})."
msgstr ""

#. type: Plain text
#: doc/guix.texi:7035
msgid ""
"The following variant of @code{package-input-rewriting} can match packages "
"to be replaced by name rather than by identity."
msgstr ""

#. type: deffn
#: doc/guix.texi:7036
#, no-wrap
msgid "{Scheme Procedure} package-input-rewriting/spec @var{replacements} [#:deep? #t]"
msgstr ""

#. type: deffn
#: doc/guix.texi:7043
msgid ""
"Return a procedure that, given a package, applies the given "
"@var{replacements} to all the package graph, including implicit inputs "
"unless @var{deep?} is false.  @var{replacements} is a list of spec/"
"procedures pair; each spec is a package specification such as @code{\"gcc\"} "
"or @code{\"guile@@2\"}, and each procedure takes a matching package and "
"returns a replacement for that package."
msgstr ""

#. type: Plain text
#: doc/guix.texi:7046
msgid "The example above could be rewritten this way:"
msgstr ""

#. type: lisp
#: doc/guix.texi:7051
#, no-wrap
msgid ""
"(define libressl-instead-of-openssl\n"
"  ;; Replace all the packages called \"openssl\" with LibreSSL.\n"
"  (package-input-rewriting/spec `((\"openssl\" . ,(const libressl)))))\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:7056
msgid ""
"The key difference here is that, this time, packages are matched by spec and "
"not by identity.  In other words, any package in the graph that is called "
"@code{openssl} will be replaced."
msgstr ""

#. type: Plain text
#: doc/guix.texi:7060
msgid ""
"A more generic procedure to rewrite a package dependency graph is "
"@code{package-mapping}: it supports arbitrary changes to nodes in the graph."
msgstr ""

#. type: deffn
#: doc/guix.texi:7061
#, no-wrap
msgid "{Scheme Procedure} package-mapping @var{proc} [@var{cut?}] [#:deep? #f]"
msgstr ""

#. type: deffn
#: doc/guix.texi:7066
msgid ""
"Return a procedure that, given a package, applies @var{proc} to all the "
"packages depended on and returns the resulting package.  The procedure stops "
"recursion when @var{cut?} returns true for a given package.  When "
"@var{deep?} is true, @var{proc} is applied to implicit inputs as well."
msgstr ""

#. type: cindex
#: doc/guix.texi:7072
#, no-wrap
msgid "build system"
msgstr ""

#. type: Plain text
#: doc/guix.texi:7077
msgid ""
"Each package definition specifies a @dfn{build system} and arguments for "
"that build system (@pxref{Defining Packages}).  This @code{build-system} "
"field represents the build procedure of the package, as well as implicit "
"dependencies of that build procedure."
msgstr ""

#. type: Plain text
#: doc/guix.texi:7081
msgid ""
"Build systems are @code{<build-system>} objects.  The interface to create "
"and manipulate them is provided by the @code{(guix build-system)} module, "
"and actual build systems are exported by specific modules."
msgstr ""

#. type: cindex
#: doc/guix.texi:7082
#, no-wrap
msgid "bag (low-level package representation)"
msgstr ""

#. type: Plain text
#: doc/guix.texi:7092
msgid ""
"Under the hood, build systems first compile package objects to @dfn{bags}.  "
"A @dfn{bag} is like a package, but with less ornamentation---in other words, "
"a bag is a lower-level representation of a package, which includes all the "
"inputs of that package, including some that were implicitly added by the "
"build system.  This intermediate representation is then compiled to a "
"derivation (@pxref{Derivations}).  The @code{package-with-c-toolchain} is an "
"example of a way to change the implicit inputs that a package's build system "
"pulls in (@pxref{package Reference, @code{package-with-c-toolchain}})."
msgstr ""

#. type: Plain text
#: doc/guix.texi:7100
msgid ""
"Build systems accept an optional list of @dfn{arguments}.  In package "
"definitions, these are passed @i{via} the @code{arguments} field "
"(@pxref{Defining Packages}).  They are typically keyword arguments "
"(@pxref{Optional Arguments, keyword arguments in Guile,, guile, GNU Guile "
"Reference Manual}).  The value of these arguments is usually evaluated in "
"the @dfn{build stratum}---i.e., by a Guile process launched by the daemon "
"(@pxref{Derivations})."
msgstr ""

#. type: Plain text
#: doc/guix.texi:7104
msgid ""
"The main build system is @code{gnu-build-system}, which implements the "
"standard build procedure for GNU and many other packages.  It is provided by "
"the @code{(guix build-system gnu)} module."
msgstr ""

#. type: defvr
#: doc/guix.texi:7105
#, no-wrap
msgid "{Scheme Variable} gnu-build-system"
msgstr ""

#. type: defvr
#: doc/guix.texi:7109
msgid ""
"@code{gnu-build-system} represents the GNU Build System, and variants "
"thereof (@pxref{Configuration, configuration and makefile conventions,, "
"standards, GNU Coding Standards})."
msgstr ""

#. type: cindex
#: doc/guix.texi:7110 doc/guix.texi:7945 doc/guix.texi:8362
#, no-wrap
msgid "build phases"
msgstr ""

#. type: defvr
#: doc/guix.texi:7117
msgid ""
"In a nutshell, packages using it are configured, built, and installed with "
"the usual @code{./configure && make && make check && make install} command "
"sequence.  In practice, a few additional steps are often needed.  All these "
"steps are split up in separate @dfn{phases}, notably@footnote{Please see the "
"@code{(guix build gnu-build-system)} modules for more details about the "
"build phases.}:"
msgstr ""

#. type: item
#: doc/guix.texi:7119
#, no-wrap
msgid "unpack"
msgstr ""

#. type: table
#: doc/guix.texi:7123
msgid ""
"Unpack the source tarball, and change the current directory to the extracted "
"source tree.  If the source is actually a directory, copy it to the build "
"tree, and enter that directory."
msgstr ""

#. type: item
#: doc/guix.texi:7124
#, no-wrap
msgid "patch-source-shebangs"
msgstr ""

#. type: table
#: doc/guix.texi:7128
msgid ""
"Patch shebangs encountered in source files so they refer to the right store "
"file names.  For instance, this changes @code{#!/bin/sh} to @code{#!/gnu/"
"store/@dots{}-bash-4.3/bin/sh}."
msgstr ""

#. type: item
#: doc/guix.texi:7129 doc/guix.texi:7902 doc/guix.texi:7951
#, no-wrap
msgid "configure"
msgstr ""

#. type: table
#: doc/guix.texi:7133
msgid ""
"Run the @file{configure} script with a number of default options, such as "
"@option{--prefix=/gnu/store/@dots{}}, as well as the options specified by "
"the @code{#:configure-flags} argument."
msgstr ""

#. type: item
#: doc/guix.texi:7134 doc/guix.texi:7392 doc/guix.texi:7908 doc/guix.texi:7955
#: doc/guix.texi:30825
#, no-wrap
msgid "build"
msgstr ""

#. type: table
#: doc/guix.texi:7138
msgid ""
"Run @code{make} with the list of flags specified with @code{#:make-flags}.  "
"If the @code{#:parallel-build?} argument is true (the default), build with "
"@code{make -j}."
msgstr ""

#. type: item
#: doc/guix.texi:7139 doc/guix.texi:7402 doc/guix.texi:7912
#, no-wrap
msgid "check"
msgstr ""

#. type: table
#: doc/guix.texi:7144
msgid ""
"Run @code{make check}, or some other target specified with @code{#:test-"
"target}, unless @code{#:tests? #f} is passed.  If the @code{#:parallel-"
"tests?} argument is true (the default), run @code{make check -j}."
msgstr ""

#. type: item
#: doc/guix.texi:7145 doc/guix.texi:7410 doc/guix.texi:7916 doc/guix.texi:7959
#, no-wrap
msgid "install"
msgstr ""

#. type: table
#: doc/guix.texi:7147
msgid "Run @code{make install} with the flags listed in @code{#:make-flags}."
msgstr ""

#. type: item
#: doc/guix.texi:7148
#, no-wrap
msgid "patch-shebangs"
msgstr ""

#. type: table
#: doc/guix.texi:7150
msgid "Patch shebangs on the installed executable files."
msgstr ""

#. type: item
#: doc/guix.texi:7151
#, no-wrap
msgid "strip"
msgstr ""

#. type: table
#: doc/guix.texi:7155
msgid ""
"Strip debugging symbols from ELF files (unless @code{#:strip-binaries?} is "
"false), copying them to the @code{debug} output when available "
"(@pxref{Installing Debugging Files})."
msgstr ""

#. type: vindex
#: doc/guix.texi:7157
#, no-wrap
msgid "%standard-phases"
msgstr ""

#. type: defvr
#: doc/guix.texi:7162
msgid ""
"The build-side module @code{(guix build gnu-build-system)} defines "
"@code{%standard-phases} as the default list of build phases.  "
"@code{%standard-phases} is a list of symbol/procedure pairs, where the "
"procedure implements the actual phase."
msgstr ""

#. type: defvr
#: doc/guix.texi:7165
msgid ""
"@xref{Build Phases}, for more info on build phases and ways to customize "
"them."
msgstr ""

#. type: defvr
#: doc/guix.texi:7172
msgid ""
"In addition, this build system ensures that the ``standard'' environment for "
"GNU packages is available.  This includes tools such as GCC, libc, "
"Coreutils, Bash, Make, Diffutils, grep, and sed (see the @code{(guix build-"
"system gnu)} module for a complete list).  We call these the @dfn{implicit "
"inputs} of a package, because package definitions do not have to mention "
"them."
msgstr ""

#. type: Plain text
#: doc/guix.texi:7179
msgid ""
"Other @code{<build-system>} objects are defined to support other conventions "
"and tools used by free software packages.  They inherit most of @code{gnu-"
"build-system}, and differ mainly in the set of inputs implicitly added to "
"the build process, and in the list of phases executed.  Some of these build "
"systems are listed below."
msgstr ""

#. type: defvr
#: doc/guix.texi:7180
#, no-wrap
msgid "{Scheme Variable} ant-build-system"
msgstr ""

#. type: defvr
#: doc/guix.texi:7184
msgid ""
"This variable is exported by @code{(guix build-system ant)}.  It implements "
"the build procedure for Java packages that can be built with @url{https://"
"ant.apache.org/, Ant build tool}."
msgstr ""

#. type: defvr
#: doc/guix.texi:7189
msgid ""
"It adds both @code{ant} and the @dfn{Java Development Kit} (JDK) as provided "
"by the @code{icedtea} package to the set of inputs.  Different packages can "
"be specified with the @code{#:ant} and @code{#:jdk} parameters, respectively."
msgstr ""

#. type: defvr
#: doc/guix.texi:7195
msgid ""
"When the original package does not provide a suitable Ant build file, the "
"parameter @code{#:jar-name} can be used to generate a minimal Ant build file "
"@file{build.xml} with tasks to build the specified jar archive.  In this "
"case the parameter @code{#:source-dir} can be used to specify the source sub-"
"directory, defaulting to ``src''."
msgstr ""

#. type: defvr
#: doc/guix.texi:7203
msgid ""
"The @code{#:main-class} parameter can be used with the minimal ant buildfile "
"to specify the main class of the resulting jar.  This makes the jar file "
"executable.  The @code{#:test-include} parameter can be used to specify the "
"list of junit tests to run. It defaults to @code{(list \"**/*Test.java\")}.  "
"The @code{#:test-exclude} can be used to disable some tests. It defaults to "
"@code{(list \"**/Abstract*.java\")}, because abstract classes cannot be run "
"as tests."
msgstr ""

#. type: defvr
#: doc/guix.texi:7207
msgid ""
"The parameter @code{#:build-target} can be used to specify the Ant task that "
"should be run during the @code{build} phase.  By default the ``jar'' task "
"will be run."
msgstr ""

#. type: defvr
#: doc/guix.texi:7210
#, no-wrap
msgid "{Scheme Variable} android-ndk-build-system"
msgstr ""

#. type: cindex
#: doc/guix.texi:7211
#, no-wrap
msgid "Android distribution"
msgstr ""

#. type: cindex
#: doc/guix.texi:7212
#, no-wrap
msgid "Android NDK build system"
msgstr ""

#. type: defvr
#: doc/guix.texi:7216
msgid ""
"This variable is exported by @code{(guix build-system android-ndk)}.  It "
"implements a build procedure for Android NDK (native development kit)  "
"packages using a Guix-specific build process."
msgstr ""

#. type: defvr
#: doc/guix.texi:7220
msgid ""
"The build system assumes that packages install their public interface "
"(header) files to the subdirectory @file{include} of the @code{out} output "
"and their libraries to the subdirectory @file{lib} the @code{out} output."
msgstr ""

#. type: defvr
#: doc/guix.texi:7223
msgid ""
"It's also assumed that the union of all the dependencies of a package has no "
"conflicting files."
msgstr ""

#. type: defvr
#: doc/guix.texi:7226
msgid ""
"For the time being, cross-compilation is not supported - so right now the "
"libraries and header files are assumed to be host tools."
msgstr ""

#. type: defvr
#: doc/guix.texi:7229
#, no-wrap
msgid "{Scheme Variable} asdf-build-system/source"
msgstr ""

#. type: defvrx
#: doc/guix.texi:7230
#, no-wrap
msgid "{Scheme Variable} asdf-build-system/sbcl"
msgstr ""

#. type: defvrx
#: doc/guix.texi:7231
#, no-wrap
msgid "{Scheme Variable} asdf-build-system/ecl"
msgstr ""

#. type: defvr
#: doc/guix.texi:7237
msgid ""
"These variables, exported by @code{(guix build-system asdf)}, implement "
"build procedures for Common Lisp packages using @url{https://common-lisp.net/"
"project/asdf/, ``ASDF''}. ASDF is a system definition facility for Common "
"Lisp programs and libraries."
msgstr ""

#. type: defvr
#: doc/guix.texi:7244
msgid ""
"The @code{asdf-build-system/source} system installs the packages in source "
"form, and can be loaded using any common lisp implementation, via ASDF.  The "
"others, such as @code{asdf-build-system/sbcl}, install binary systems in the "
"format which a particular implementation understands.  These build systems "
"can also be used to produce executable programs, or lisp images which "
"contain a set of packages pre-loaded."
msgstr ""

#. type: defvr
#: doc/guix.texi:7248
msgid ""
"The build system uses naming conventions.  For binary packages, the package "
"name should be prefixed with the lisp implementation, such as @code{sbcl-} "
"for @code{asdf-build-system/sbcl}."
msgstr ""

#. type: defvr
#: doc/guix.texi:7252
msgid ""
"Additionally, the corresponding source package should be labeled using the "
"same convention as python packages (see @ref{Python Modules}), using the "
"@code{cl-} prefix."
msgstr ""

#. type: defvr
#: doc/guix.texi:7257
msgid ""
"For binary packages, each system should be defined as a Guix package.  If "
"one package @code{origin} contains several systems, package variants can be "
"created in order to build all the systems.  Source packages, which use "
"@code{asdf-build-system/source}, may contain several systems."
msgstr ""

#. type: defvr
#: doc/guix.texi:7264
msgid ""
"In order to create executable programs and images, the build-side procedures "
"@code{build-program} and @code{build-image} can be used.  They should be "
"called in a build phase after the @code{create-symlinks} phase, so that the "
"system which was just built can be used within the resulting image.  "
"@code{build-program} requires a list of Common Lisp expressions to be passed "
"as the @code{#:entry-program} argument."
msgstr ""

#. type: defvr
#: doc/guix.texi:7273
msgid ""
"If the system is not defined within its own @file{.asd} file of the same "
"name, then the @code{#:asd-file} parameter should be used to specify which "
"file the system is defined in.  Furthermore, if the package defines a system "
"for its tests in a separate file, it will be loaded before the tests are run "
"if it is specified by the @code{#:test-asd-file} parameter.  If it is not "
"set, the files @code{<system>-tests.asd}, @code{<system>-test.asd}, "
"@code{tests.asd}, and @code{test.asd} will be tried if they exist."
msgstr ""

#. type: defvr
#: doc/guix.texi:7277
msgid ""
"If for some reason the package must be named in a different way than the "
"naming conventions suggest, the @code{#:asd-system-name} parameter can be "
"used to specify the name of the system."
msgstr ""

#. type: defvr
#: doc/guix.texi:7280
#, no-wrap
msgid "{Scheme Variable} cargo-build-system"
msgstr ""

#. type: cindex
#: doc/guix.texi:7281
#, no-wrap
msgid "Rust programming language"
msgstr ""

#. type: cindex
#: doc/guix.texi:7282
#, no-wrap
msgid "Cargo (Rust build system)"
msgstr ""

#. type: defvr
#: doc/guix.texi:7286
msgid ""
"This variable is exported by @code{(guix build-system cargo)}.  It supports "
"builds of packages using Cargo, the build tool of the @uref{https://www.rust-"
"lang.org, Rust programming language}."
msgstr ""

#. type: defvr
#: doc/guix.texi:7289
msgid ""
"It adds @code{rustc} and @code{cargo} to the set of inputs.  A different "
"Rust package can be specified with the @code{#:rust} parameter."
msgstr ""

#. type: defvr
#: doc/guix.texi:7297
msgid ""
"Regular cargo dependencies should be added to the package definition via the "
"@code{#:cargo-inputs} parameter as a list of name and spec pairs, where the "
"spec can be a package or a source definition.  Note that the spec must "
"evaluate to a path to a gzipped tarball which includes a @code{Cargo.toml} "
"file at its root, or it will be ignored.  Similarly, cargo dev-dependencies "
"should be added to the package definition via the @code{#:cargo-development-"
"inputs} parameter."
msgstr ""

#. type: defvr
#: doc/guix.texi:7304
msgid ""
"In its @code{configure} phase, this build system will make any source inputs "
"specified in the @code{#:cargo-inputs} and @code{#:cargo-development-inputs} "
"parameters available to cargo.  It will also remove an included @code{Cargo."
"lock} file to be recreated by @code{cargo} during the @code{build} phase.  "
"The @code{install} phase installs the binaries defined by the crate."
msgstr ""

#. type: defvr
#: doc/guix.texi:7307
#, no-wrap
msgid "{Scheme Variable} copy-build-system"
msgstr ""

#. type: defvr
#: doc/guix.texi:7311
msgid ""
"This variable is exported by @code{(guix build-system copy)}.  It supports "
"builds of simple packages that don't require much compiling, mostly just "
"moving files around."
msgstr ""

#. type: defvr
#: doc/guix.texi:7316
msgid ""
"It adds much of the @code{gnu-build-system} packages to the set of inputs.  "
"Because of this, the @code{copy-build-system} does not require all the "
"boilerplate code often needed for the @code{trivial-build-system}."
msgstr ""

#. type: defvr
#: doc/guix.texi:7321
msgid ""
"To further simplify the file installation process, an @code{#:install-plan} "
"argument is exposed to let the packager specify which files go where.  The "
"install plan is a list of @code{(@var{source} @var{target} "
"[@var{filters}])}.  @var{filters} are optional."
msgstr ""

#. type: item
#: doc/guix.texi:7323
#, no-wrap
msgid "When @var{source} matches a file or directory without trailing slash, install it to @var{target}."
msgstr ""

#. type: item
#: doc/guix.texi:7325
#, no-wrap
msgid "If @var{target} has a trailing slash, install @var{source} basename beneath @var{target}."
msgstr ""

#. type: item
#: doc/guix.texi:7326
#, no-wrap
msgid "Otherwise install @var{source} as @var{target}."
msgstr ""

#. type: item
#: doc/guix.texi:7329
#, no-wrap
msgid "When @var{source} is a directory with a trailing slash, or when @var{filters} are used,"
msgstr ""

#. type: itemize
#: doc/guix.texi:7332
msgid ""
"the trailing slash of @var{target} is implied with the same meaning as above."
msgstr ""

#. type: item
#: doc/guix.texi:7333
#, no-wrap
msgid "Without @var{filters}, install the full @var{source} @emph{content} to @var{target}."
msgstr ""

#. type: item
#: doc/guix.texi:7334
#, no-wrap
msgid "With @var{filters} among @code{#:include}, @code{#:include-regexp}, @code{#:exclude},"
msgstr ""

#. type: itemize
#: doc/guix.texi:7337
msgid ""
"@code{#:exclude-regexp}, only select files are installed depending on the "
"filters.  Each filters is specified by a list of strings."
msgstr ""

#. type: item
#: doc/guix.texi:7338
#, no-wrap
msgid "With @code{#:include}, install all the files which the path suffix matches"
msgstr ""

#. type: itemize
#: doc/guix.texi:7340
msgid "at least one of the elements in the given list."
msgstr ""

#. type: item
#: doc/guix.texi:7340
#, no-wrap
msgid "With @code{#:include-regexp}, install all the files which the"
msgstr ""

#. type: itemize
#: doc/guix.texi:7343
msgid ""
"subpaths match at least one of the regular expressions in the given list."
msgstr ""

#. type: item
#: doc/guix.texi:7343
#, no-wrap
msgid "The @code{#:exclude} and @code{#:exclude-regexp} filters"
msgstr ""

#. type: itemize
#: doc/guix.texi:7348
msgid ""
"are the complement of their inclusion counterpart.  Without @code{#:include} "
"flags, install all files but those matching the exclusion filters.  If both "
"inclusions and exclusions are specified, the exclusions are done on top of "
"the inclusions."
msgstr ""

#. type: itemize
#: doc/guix.texi:7352
msgid ""
"In all cases, the paths relative to @var{source} are preserved within "
"@var{target}."
msgstr ""

#. type: defvr
#: doc/guix.texi:7355
msgid "Examples:"
msgstr ""

#. type: item
#: doc/guix.texi:7357
#, no-wrap
msgid "@code{(\"foo/bar\" \"share/my-app/\")}: Install @file{bar} to @file{share/my-app/bar}."
msgstr ""

#. type: item
#: doc/guix.texi:7358
#, no-wrap
msgid "@code{(\"foo/bar\" \"share/my-app/baz\")}: Install @file{bar} to @file{share/my-app/baz}."
msgstr ""

#. type: item
#: doc/guix.texi:7359
#, no-wrap
msgid "@code{(\"foo/\" \"share/my-app\")}: Install the content of @file{foo} inside @file{share/my-app},"
msgstr ""

#. type: itemize
#: doc/guix.texi:7361
msgid "e.g., install @file{foo/sub/file} to @file{share/my-app/sub/file}."
msgstr ""

#. type: item
#: doc/guix.texi:7361
#, no-wrap
msgid "@code{(\"foo/\" \"share/my-app\" #:include (\"sub/file\"))}: Install only @file{foo/sub/file} to"
msgstr ""

#. type: itemize
#: doc/guix.texi:7363
msgid "@file{share/my-app/sub/file}."
msgstr ""

#. type: item
#: doc/guix.texi:7363
#, no-wrap
msgid "@code{(\"foo/sub\" \"share/my-app\" #:include (\"file\"))}: Install @file{foo/sub/file} to"
msgstr ""

#. type: itemize
#: doc/guix.texi:7365
msgid "@file{share/my-app/file}."
msgstr ""

#. type: cindex
#: doc/guix.texi:7369
#, no-wrap
msgid "Clojure (programming language)"
msgstr ""

#. type: cindex
#: doc/guix.texi:7370
#, no-wrap
msgid "simple Clojure build system"
msgstr ""

#. type: defvr
#: doc/guix.texi:7371
#, no-wrap
msgid "{Scheme Variable} clojure-build-system"
msgstr ""

#. type: defvr
#: doc/guix.texi:7376
msgid ""
"This variable is exported by @code{(guix build-system clojure)}.  It "
"implements a simple build procedure for @uref{https://clojure.org/, Clojure} "
"packages using plain old @code{compile} in Clojure.  Cross-compilation is "
"not supported yet."
msgstr ""

#. type: defvr
#: doc/guix.texi:7380
msgid ""
"It adds @code{clojure}, @code{icedtea} and @code{zip} to the set of inputs.  "
"Different packages can be specified with the @code{#:clojure}, @code{#:jdk} "
"and @code{#:zip} parameters, respectively."
msgstr ""

#. type: defvr
#: doc/guix.texi:7386
msgid ""
"A list of source directories, test directories and jar names can be "
"specified with the @code{#:source-dirs}, @code{#:test-dirs} and @code{#:jar-"
"names} parameters, respectively.  Compile directory and main class can be "
"specified with the @code{#:compile-dir} and @code{#:main-class} parameters, "
"respectively.  Other parameters are documented below."
msgstr ""

#. type: defvr
#: doc/guix.texi:7389
msgid ""
"This build system is an extension of @code{ant-build-system}, but with the "
"following phases changed:"
msgstr ""

#. type: table
#: doc/guix.texi:7401
msgid ""
"This phase calls @code{compile} in Clojure to compile source files and runs "
"@command{jar} to create jars from both source files and compiled files "
"according to the include list and exclude list specified in @code{#:aot-"
"include} and @code{#:aot-exclude}, respectively.  The exclude list has "
"priority over the include list.  These lists consist of symbols representing "
"Clojure libraries or the special keyword @code{#:all} representing all "
"Clojure libraries found under the source directories.  The parameter @code{#:"
"omit-source?} decides if source should be included into the jars."
msgstr ""

#. type: table
#: doc/guix.texi:7409
msgid ""
"This phase runs tests according to the include list and exclude list "
"specified in @code{#:test-include} and @code{#:test-exclude}, respectively.  "
"Their meanings are analogous to that of @code{#:aot-include} and @code{#:aot-"
"exclude}, except that the special keyword @code{#:all} now stands for all "
"Clojure libraries found under the test directories.  The parameter @code{#:"
"tests?} decides if tests should be run."
msgstr ""

#. type: table
#: doc/guix.texi:7412
msgid "This phase installs all jars built previously."
msgstr ""

#. type: defvr
#: doc/guix.texi:7415
msgid ""
"Apart from the above, this build system also contains an additional phase:"
msgstr ""

#. type: item
#: doc/guix.texi:7418
#, no-wrap
msgid "install-doc"
msgstr ""

#. type: table
#: doc/guix.texi:7423
msgid ""
"This phase installs all top-level files with base name matching @code{%doc-"
"regex}.  A different regex can be specified with the @code{#:doc-regex} "
"parameter.  All files (recursively) inside the documentation directories "
"specified in @code{#:doc-dirs} are installed as well."
msgstr ""

#. type: defvr
#: doc/guix.texi:7426
#, no-wrap
msgid "{Scheme Variable} cmake-build-system"
msgstr ""

#. type: defvr
#: doc/guix.texi:7430
msgid ""
"This variable is exported by @code{(guix build-system cmake)}.  It "
"implements the build procedure for packages using the @url{https://www.cmake."
"org, CMake build tool}."
msgstr ""

#. type: defvr
#: doc/guix.texi:7434
msgid ""
"It automatically adds the @code{cmake} package to the set of inputs.  Which "
"package is used can be specified with the @code{#:cmake} parameter."
msgstr ""

#. type: defvr
#: doc/guix.texi:7441
msgid ""
"The @code{#:configure-flags} parameter is taken as a list of flags passed to "
"the @command{cmake} command.  The @code{#:build-type} parameter specifies in "
"abstract terms the flags passed to the compiler; it defaults to "
"@code{\"RelWithDebInfo\"} (short for ``release mode with debugging "
"information''), which roughly means that code is compiled with @code{-O2 -"
"g}, as is the case for Autoconf-based packages by default."
msgstr ""

#. type: defvr
#: doc/guix.texi:7443
#, no-wrap
msgid "{Scheme Variable} dune-build-system"
msgstr ""

#. type: defvr
#: doc/guix.texi:7450
msgid ""
"This variable is exported by @code{(guix build-system dune)}.  It supports "
"builds of packages using @uref{https://dune.build/, Dune}, a build tool for "
"the OCaml programming language.  It is implemented as an extension of the "
"@code{ocaml-build-system} which is described below.  As such, the @code{#:"
"ocaml} and @code{#:findlib} parameters can be passed to this build system."
msgstr ""

#. type: defvr
#: doc/guix.texi:7454
msgid ""
"It automatically adds the @code{dune} package to the set of inputs.  Which "
"package is used can be specified with the @code{#:dune} parameter."
msgstr ""

#. type: defvr
#: doc/guix.texi:7458
msgid ""
"There is no @code{configure} phase because dune packages typically don't "
"need to be configured.  The @code{#:build-flags} parameter is taken as a "
"list of flags passed to the @code{dune} command during the build."
msgstr ""

#. type: defvr
#: doc/guix.texi:7462
msgid ""
"The @code{#:jbuild?} parameter can be passed to use the @code{jbuild} "
"command instead of the more recent @code{dune} command while building a "
"package.  Its default value is @code{#f}."
msgstr ""

#. type: defvr
#: doc/guix.texi:7467
msgid ""
"The @code{#:package} parameter can be passed to specify a package name, "
"which is useful when a package contains multiple packages and you want to "
"build only one of them.  This is equivalent to passing the @code{-p} "
"argument to @code{dune}."
msgstr ""

#. type: defvr
#: doc/guix.texi:7469
#, no-wrap
msgid "{Scheme Variable} go-build-system"
msgstr ""

#. type: defvr
#: doc/guix.texi:7474
msgid ""
"This variable is exported by @code{(guix build-system go)}.  It implements a "
"build procedure for Go packages using the standard @url{https://golang.org/"
"cmd/go/#hdr-Compile_packages_and_dependencies, Go build mechanisms}."
msgstr ""

#. type: defvr
#: doc/guix.texi:7485
msgid ""
"The user is expected to provide a value for the key @code{#:import-path} "
"and, in some cases, @code{#:unpack-path}.  The @url{https://golang.org/doc/"
"code.html#ImportPaths, import path} corresponds to the file system path "
"expected by the package's build scripts and any referring packages, and "
"provides a unique way to refer to a Go package.  It is typically based on a "
"combination of the package source code's remote URI and file system "
"hierarchy structure.  In some cases, you will need to unpack the package's "
"source code to a different directory structure than the one indicated by the "
"import path, and @code{#:unpack-path} should be used in such cases."
msgstr ""

#. type: defvr
#: doc/guix.texi:7490
msgid ""
"Packages that provide Go libraries should install their source code into the "
"built output.  The key @code{#:install-source?}, which defaults to "
"@code{#t}, controls whether or not the source code is installed.  It can be "
"set to @code{#f} for packages that only provide executable files."
msgstr ""

#. type: defvr
#: doc/guix.texi:7492
#, no-wrap
msgid "{Scheme Variable} glib-or-gtk-build-system"
msgstr ""

#. type: defvr
#: doc/guix.texi:7495
msgid ""
"This variable is exported by @code{(guix build-system glib-or-gtk)}.  It is "
"intended for use with packages making use of GLib or GTK+."
msgstr ""

#. type: defvr
#: doc/guix.texi:7498
msgid ""
"This build system adds the following two phases to the ones defined by "
"@code{gnu-build-system}:"
msgstr ""

#. type: item
#: doc/guix.texi:7500 doc/guix.texi:7932
#, no-wrap
msgid "glib-or-gtk-wrap"
msgstr ""

#. type: table
#: doc/guix.texi:7507
msgid ""
"The phase @code{glib-or-gtk-wrap} ensures that programs in @file{bin/} are "
"able to find GLib ``schemas'' and @uref{https://developer.gnome.org/gtk3/"
"stable/gtk-running.html, GTK+ modules}.  This is achieved by wrapping the "
"programs in launch scripts that appropriately set the @env{XDG_DATA_DIRS} "
"and @env{GTK_PATH} environment variables."
msgstr ""

#. type: table
#: doc/guix.texi:7514
msgid ""
"It is possible to exclude specific package outputs from that wrapping "
"process by listing their names in the @code{#:glib-or-gtk-wrap-excluded-"
"outputs} parameter.  This is useful when an output is known not to contain "
"any GLib or GTK+ binaries, and where wrapping would gratuitously add a "
"dependency of that output on GLib and GTK+."
msgstr ""

#. type: item
#: doc/guix.texi:7515 doc/guix.texi:7936
#, no-wrap
msgid "glib-or-gtk-compile-schemas"
msgstr ""

#. type: table
#: doc/guix.texi:7523
msgid ""
"The phase @code{glib-or-gtk-compile-schemas} makes sure that all "
"@uref{https://developer.gnome.org/gio/stable/glib-compile-schemas.html, "
"GSettings schemas} of GLib are compiled.  Compilation is performed by the "
"@command{glib-compile-schemas} program.  It is provided by the package "
"@code{glib:bin} which is automatically imported by the build system.  The "
"@code{glib} package providing @command{glib-compile-schemas} can be "
"specified with the @code{#:glib} parameter."
msgstr ""

#. type: defvr
#: doc/guix.texi:7526
msgid "Both phases are executed after the @code{install} phase."
msgstr ""

#. type: defvr
#: doc/guix.texi:7528
#, no-wrap
msgid "{Scheme Variable} guile-build-system"
msgstr ""

#. type: defvr
#: doc/guix.texi:7535
msgid ""
"This build system is for Guile packages that consist exclusively of Scheme "
"code and that are so lean that they don't even have a makefile, let alone a "
"@file{configure} script.  It compiles Scheme code using @command{guild "
"compile} (@pxref{Compilation,,, guile, GNU Guile Reference Manual}) and "
"installs the @file{.scm} and @file{.go} files in the right place.  It also "
"installs documentation."
msgstr ""

#. type: defvr
#: doc/guix.texi:7538
msgid ""
"This build system supports cross-compilation by using the @option{--target} "
"option of @samp{guild compile}."
msgstr ""

#. type: defvr
#: doc/guix.texi:7541
msgid ""
"Packages built with @code{guile-build-system} must provide a Guile package "
"in their @code{native-inputs} field."
msgstr ""

#. type: defvr
#: doc/guix.texi:7543
#, no-wrap
msgid "{Scheme Variable} julia-build-system"
msgstr ""

#. type: defvr
#: doc/guix.texi:7550
msgid ""
"This variable is exported by @code{(guix build-system julia)}.  It "
"implements the build procedure used by @uref{https://julialang.org/, julia} "
"packages, which essentially is similar to running @samp{julia -e 'using Pkg; "
"Pkg.add(package)'} in an environment where @env{JULIA_LOAD_PATH} contains "
"the paths to all Julia package inputs.  Tests are run with @code{Pkg.test}."
msgstr ""

#. type: defvr
#: doc/guix.texi:7553
msgid ""
"Julia packages require the source @code{file-name} to be the real name of "
"the package, correctly capitalized."
msgstr ""

#. type: defvr
#: doc/guix.texi:7558
msgid ""
"For packages requiring shared library dependencies, you may need to write "
"the @file{/deps/deps.jl} file manually. It's usually a line of @code{const "
"variable = /gnu/store/library.so} for each dependency, plus a void function "
"@code{check_deps() = nothing}."
msgstr ""

#. type: defvr
#: doc/guix.texi:7565
msgid ""
"Some older packages that aren't using @file{Package.toml} yet, will require "
"this file to be created, too. The function @code{julia-create-package-toml} "
"helps creating the file. You need to pass the outputs and the source of the "
"package, it's name (the same as the @code{file-name} parameter), the package "
"uuid, the package version, and a list of dependencies specified by their "
"name and their uuid."
msgstr ""

#. type: defvr
#: doc/guix.texi:7567
#, no-wrap
msgid "{Scheme Variable} maven-build-system"
msgstr ""

#. type: defvr
#: doc/guix.texi:7574
msgid ""
"This variable is exported by @code{(guix build-system maven)}.  It "
"implements a build procedure for @uref{https://maven.apache.org, Maven} "
"packages.  Maven is a dependency and lifecycle management tool for Java.  A "
"user of Maven specifies dependencies and plugins in a @file{pom.xml} file "
"that Maven reads.  When Maven does not have one of the dependencies or "
"plugins in its repository, it will download them and use them to build the "
"package."
msgstr ""

#. type: defvr
#: doc/guix.texi:7584
msgid ""
"The maven build system ensures that maven will not try to download any "
"dependency by running in offline mode.  Maven will fail if a dependency is "
"missing.  Before running Maven, the @file{pom.xml} (and subprojects) are "
"modified to specify the version of dependencies and plugins that match the "
"versions available in the guix build environment.  Dependencies and plugins "
"must be installed in the fake maven repository at @file{lib/m2}, and are "
"symlinked into a proper repository before maven is run.  Maven is instructed "
"to use that repository for the build and installs built artifacts there.  "
"Changed files are copied to the @file{lib/m2} directory of the package "
"output."
msgstr ""

#. type: defvr
#: doc/guix.texi:7587
msgid ""
"You can specify a @file{pom.xml} file with the @code{#:pom-file} argument, "
"or let the build system use the default @file{pom.xml} file in the sources."
msgstr ""

#. type: defvr
#: doc/guix.texi:7593
msgid ""
"In case you need to specify a dependency's version manually, you can use the "
"@code{#:local-packages} argument.  It takes an association list where the "
"key is the groupId of the package and its value is an association list where "
"the key is the artifactId of the package and its value is the version you "
"want to override in the @file{pom.xml}."
msgstr ""

#. type: defvr
#: doc/guix.texi:7599
msgid ""
"Some packages use dependencies or plugins that are not useful at runtime nor "
"at build time in Guix.  You can alter the @file{pom.xml} file to remove them "
"using the @code{#:exclude} argument.  Its value is an association list where "
"the key is the groupId of the plugin or dependency you want to remove, and "
"the value is a list of artifactId you want to remove."
msgstr ""

#. type: defvr
#: doc/guix.texi:7602
msgid ""
"You can override the default @code{jdk} and @code{maven} packages with the "
"corresponding argument, @code{#:jdk} and @code{#:maven}."
msgstr ""

#. type: defvr
#: doc/guix.texi:7607
msgid ""
"The @code{#:maven-plugins} argument is a list of maven plugins used during "
"the build, with the same format as the @code{inputs} fields of the package "
"declaration.  Its default value is @code{(default-maven-plugins)} which is "
"also exported."
msgstr ""

#. type: defvr
#: doc/guix.texi:7609
#, no-wrap
msgid "{Scheme Variable} minify-build-system"
msgstr ""

#. type: defvr
#: doc/guix.texi:7612
msgid ""
"This variable is exported by @code{(guix build-system minify)}.  It "
"implements a minification procedure for simple JavaScript packages."
msgstr ""

#. type: defvr
#: doc/guix.texi:7618
msgid ""
"It adds @code{uglify-js} to the set of inputs and uses it to compress all "
"JavaScript files in the @file{src} directory.  A different minifier package "
"can be specified with the @code{#:uglify-js} parameter, but it is expected "
"that the package writes the minified code to the standard output."
msgstr ""

#. type: defvr
#: doc/guix.texi:7622
msgid ""
"When the input JavaScript files are not all located in the @file{src} "
"directory, the parameter @code{#:javascript-files} can be used to specify a "
"list of file names to feed to the minifier."
msgstr ""

#. type: defvr
#: doc/guix.texi:7624
#, no-wrap
msgid "{Scheme Variable} ocaml-build-system"
msgstr ""

#. type: defvr
#: doc/guix.texi:7630
msgid ""
"This variable is exported by @code{(guix build-system ocaml)}.  It "
"implements a build procedure for @uref{https://ocaml.org, OCaml} packages, "
"which consists of choosing the correct set of commands to run for each "
"package.  OCaml packages can expect many different commands to be run.  This "
"build system will try some of them."
msgstr ""

#. type: defvr
#: doc/guix.texi:7640
msgid ""
"When the package has a @file{setup.ml} file present at the top-level, it "
"will run @code{ocaml setup.ml -configure}, @code{ocaml setup.ml -build} and "
"@code{ocaml setup.ml -install}.  The build system will assume that this file "
"was generated by @uref{http://oasis.forge.ocamlcore.org/, OASIS} and will "
"take care of setting the prefix and enabling tests if they are not "
"disabled.  You can pass configure and build flags with the @code{#:configure-"
"flags} and @code{#:build-flags}.  The @code{#:test-flags} key can be passed "
"to change the set of flags used to enable tests.  The @code{#:use-make?} key "
"can be used to bypass this system in the build and install phases."
msgstr ""

#. type: defvr
#: doc/guix.texi:7645
msgid ""
"When the package has a @file{configure} file, it is assumed that it is a "
"hand-made configure script that requires a different argument format than in "
"the @code{gnu-build-system}.  You can add more flags with the @code{#:"
"configure-flags} key."
msgstr ""

#. type: defvr
#: doc/guix.texi:7649
msgid ""
"When the package has a @file{Makefile} file (or @code{#:use-make?} is "
"@code{#t}), it will be used and more flags can be passed to the build and "
"install phases with the @code{#:make-flags} key."
msgstr ""

#. type: defvr
#: doc/guix.texi:7657
msgid ""
"Finally, some packages do not have these files and use a somewhat standard "
"location for its build system.  In that case, the build system will run "
"@code{ocaml pkg/pkg.ml} or @code{ocaml pkg/build.ml} and take care of "
"providing the path to the required findlib module.  Additional flags can be "
"passed via the @code{#:build-flags} key.  Install is taken care of by "
"@command{opam-installer}.  In this case, the @code{opam} package must be "
"added to the @code{native-inputs} field of the package definition."
msgstr ""

#. type: defvr
#: doc/guix.texi:7665
msgid ""
"Note that most OCaml packages assume they will be installed in the same "
"directory as OCaml, which is not what we want in guix.  In particular, they "
"will install @file{.so} files in their module's directory, which is usually "
"fine because it is in the OCaml compiler directory.  In guix though, these "
"libraries cannot be found and we use @env{CAML_LD_LIBRARY_PATH}.  This "
"variable points to @file{lib/ocaml/site-lib/stubslibs} and this is where "
"@file{.so} libraries should be installed."
msgstr ""

#. type: defvr
#: doc/guix.texi:7667
#, no-wrap
msgid "{Scheme Variable} python-build-system"
msgstr ""

#. type: defvr
#: doc/guix.texi:7672
msgid ""
"This variable is exported by @code{(guix build-system python)}.  It "
"implements the more or less standard build procedure used by Python "
"packages, which consists in running @code{python setup.py build} and then "
"@code{python setup.py install --prefix=/gnu/store/@dots{}}."
msgstr ""

#. type: defvr
#: doc/guix.texi:7676
msgid ""
"For packages that install stand-alone Python programs under @code{bin/}, it "
"takes care of wrapping these programs so that their @env{PYTHONPATH} "
"environment variable points to all the Python libraries they depend on."
msgstr ""

#. type: defvr
#: doc/guix.texi:7682
msgid ""
"Which Python package is used to perform the build can be specified with the "
"@code{#:python} parameter.  This is a useful way to force a package to be "
"built for a specific version of the Python interpreter, which might be "
"necessary if the package is only compatible with a single interpreter "
"version."
msgstr ""

#. type: defvr
#: doc/guix.texi:7687
msgid ""
"By default guix calls @code{setup.py} under control of @code{setuptools}, "
"much like @command{pip} does.  Some packages are not compatible with "
"setuptools (and pip), thus you can disable this by setting the @code{#:use-"
"setuptools?} parameter to @code{#f}."
msgstr ""

#. type: defvr
#: doc/guix.texi:7689
#, no-wrap
msgid "{Scheme Variable} perl-build-system"
msgstr ""

#. type: defvr
#: doc/guix.texi:7701
msgid ""
"This variable is exported by @code{(guix build-system perl)}.  It implements "
"the standard build procedure for Perl packages, which either consists in "
"running @code{perl Build.PL --prefix=/gnu/store/@dots{}}, followed by "
"@code{Build} and @code{Build install}; or in running @code{perl Makefile.PL "
"PREFIX=/gnu/store/@dots{}}, followed by @code{make} and @code{make install}, "
"depending on which of @code{Build.PL} or @code{Makefile.PL} is present in "
"the package distribution.  Preference is given to the former if both "
"@code{Build.PL} and @code{Makefile.PL} exist in the package distribution.  "
"This preference can be reversed by specifying @code{#t} for the @code{#:make-"
"maker?} parameter."
msgstr ""

#. type: defvr
#: doc/guix.texi:7705
msgid ""
"The initial @code{perl Makefile.PL} or @code{perl Build.PL} invocation "
"passes flags specified by the @code{#:make-maker-flags} or @code{#:module-"
"build-flags} parameter, respectively."
msgstr ""

#. type: defvr
#: doc/guix.texi:7707
msgid "Which Perl package is used can be specified with @code{#:perl}."
msgstr ""

#. type: defvr
#: doc/guix.texi:7709
#, no-wrap
msgid "{Scheme Variable} qt-build-system"
msgstr ""

#. type: defvr
#: doc/guix.texi:7712
msgid ""
"This variable is exported by @code{(guix build-system qt)}.  It is intended "
"for use with applications using Qt or KDE."
msgstr ""

#. type: defvr
#: doc/guix.texi:7715
msgid ""
"This build system adds the following two phases to the ones defined by "
"@code{cmake-build-system}:"
msgstr ""

#. type: item
#: doc/guix.texi:7717
#, no-wrap
msgid "check-setup"
msgstr ""

#. type: table
#: doc/guix.texi:7724
msgid ""
"The phase @code{check-setup} prepares the environment for running the checks "
"as commonly used by Qt test programs.  For now this only sets some "
"environment variables: @code{QT_QPA_PLATFORM=offscreen}, "
"@code{DBUS_FATAL_WARNINGS=0} and @code{CTEST_OUTPUT_ON_FAILURE=1}."
msgstr ""

#. type: table
#: doc/guix.texi:7727
msgid ""
"This phase is added before the @code{check} phase.  It's a separate phase to "
"ease adjusting if necessary."
msgstr ""

#. type: item
#: doc/guix.texi:7728
#, no-wrap
msgid "qt-wrap"
msgstr ""

#. type: table
#: doc/guix.texi:7734
msgid ""
"The phase @code{qt-wrap} searches for Qt5 plugin paths, QML paths and some "
"XDG in the inputs and output.  In case some path is found, all programs in "
"the output's @file{bin/}, @file{sbin/}, @file{libexec/} and @file{lib/"
"libexec/} directories are wrapped in scripts defining the necessary "
"environment variables."
msgstr ""

#. type: table
#: doc/guix.texi:7740
msgid ""
"It is possible to exclude specific package outputs from that wrapping "
"process by listing their names in the @code{#:qt-wrap-excluded-outputs} "
"parameter.  This is useful when an output is known not to contain any Qt "
"binaries, and where wrapping would gratuitously add a dependency of that "
"output on Qt, KDE, or such."
msgstr ""

#. type: table
#: doc/guix.texi:7742
msgid "This phase is added after the @code{install} phase."
msgstr ""

#. type: defvr
#: doc/guix.texi:7745
#, no-wrap
msgid "{Scheme Variable} r-build-system"
msgstr ""

#. type: defvr
#: doc/guix.texi:7753
msgid ""
"This variable is exported by @code{(guix build-system r)}.  It implements "
"the build procedure used by @uref{https://r-project.org, R} packages, which "
"essentially is little more than running @samp{R CMD INSTALL --library=/gnu/"
"store/@dots{}} in an environment where @env{R_LIBS_SITE} contains the paths "
"to all R package inputs.  Tests are run after installation using the R "
"function @code{tools::testInstalledPackage}."
msgstr ""

#. type: defvr
#: doc/guix.texi:7755
#, no-wrap
msgid "{Scheme Variable} rakudo-build-system"
msgstr ""

#. type: defvr
#: doc/guix.texi:7763
msgid ""
"This variable is exported by @code{(guix build-system rakudo)}.  It "
"implements the build procedure used by @uref{https://rakudo.org/, Rakudo} "
"for @uref{https://perl6.org/, Perl6} packages. It installs the package to "
"@code{/gnu/store/@dots{}/NAME-VERSION/share/perl6} and installs the "
"binaries, library files and the resources, as well as wrap the files under "
"the @code{bin/} directory.  Tests can be skipped by passing @code{#f} to the "
"@code{tests?} parameter."
msgstr ""

#. type: defvr
#: doc/guix.texi:7771
msgid ""
"Which rakudo package is used can be specified with @code{rakudo}.  Which "
"perl6-tap-harness package used for the tests can be specified with @code{#:"
"prove6} or removed by passing @code{#f} to the @code{with-prove6?} "
"parameter.  Which perl6-zef package used for tests and installing can be "
"specified with @code{#:zef} or removed by passing @code{#f} to the "
"@code{with-zef?} parameter."
msgstr ""

#. type: defvr
#: doc/guix.texi:7773
#, no-wrap
msgid "{Scheme Variable} texlive-build-system"
msgstr ""

#. type: defvr
#: doc/guix.texi:7778
msgid ""
"This variable is exported by @code{(guix build-system texlive)}.  It is used "
"to build TeX packages in batch mode with a specified engine.  The build "
"system sets the @env{TEXINPUTS} variable to find all TeX source files in the "
"inputs."
msgstr ""

#. type: defvr
#: doc/guix.texi:7787
msgid ""
"By default it runs @code{luatex} on all files ending on @code{ins}.  A "
"different engine and format can be specified with the @code{#:tex-format} "
"argument.  Different build targets can be specified with the @code{#:build-"
"targets} argument, which expects a list of file names.  The build system "
"adds only @code{texlive-bin} and @code{texlive-latex-base} (both from "
"@code{(gnu packages tex}) to the inputs.  Both can be overridden with the "
"arguments @code{#:texlive-bin} and @code{#:texlive-latex-base}, respectively."
msgstr ""

#. type: defvr
#: doc/guix.texi:7790
msgid ""
"The @code{#:tex-directory} parameter tells the build system where to install "
"the built files under the texmf tree."
msgstr ""

#. type: defvr
#: doc/guix.texi:7792
#, no-wrap
msgid "{Scheme Variable} ruby-build-system"
msgstr ""

#. type: defvr
#: doc/guix.texi:7796
msgid ""
"This variable is exported by @code{(guix build-system ruby)}.  It implements "
"the RubyGems build procedure used by Ruby packages, which involves running "
"@code{gem build} followed by @code{gem install}."
msgstr ""

#. type: defvr
#: doc/guix.texi:7804
msgid ""
"The @code{source} field of a package that uses this build system typically "
"references a gem archive, since this is the format that Ruby developers use "
"when releasing their software.  The build system unpacks the gem archive, "
"potentially patches the source, runs the test suite, repackages the gem, and "
"installs it.  Additionally, directories and tarballs may be referenced to "
"allow building unreleased gems from Git or a traditional source release "
"tarball."
msgstr ""

#. type: defvr
#: doc/guix.texi:7808
msgid ""
"Which Ruby package is used can be specified with the @code{#:ruby} "
"parameter.  A list of additional flags to be passed to the @command{gem} "
"command can be specified with the @code{#:gem-flags} parameter."
msgstr ""

#. type: defvr
#: doc/guix.texi:7810
#, no-wrap
msgid "{Scheme Variable} waf-build-system"
msgstr ""

#. type: defvr
#: doc/guix.texi:7816
msgid ""
"This variable is exported by @code{(guix build-system waf)}.  It implements "
"a build procedure around the @code{waf} script.  The common phases---"
"@code{configure}, @code{build}, and @code{install}---are implemented by "
"passing their names as arguments to the @code{waf} script."
msgstr ""

#. type: defvr
#: doc/guix.texi:7820
msgid ""
"The @code{waf} script is executed by the Python interpreter.  Which Python "
"package is used to run the script can be specified with the @code{#:python} "
"parameter."
msgstr ""

#. type: defvr
#: doc/guix.texi:7822
#, no-wrap
msgid "{Scheme Variable} scons-build-system"
msgstr ""

#. type: defvr
#: doc/guix.texi:7828
msgid ""
"This variable is exported by @code{(guix build-system scons)}.  It "
"implements the build procedure used by the SCons software construction "
"tool.  This build system runs @code{scons} to build the package, @code{scons "
"test} to run tests, and then @code{scons install} to install the package."
msgstr ""

#. type: defvr
#: doc/guix.texi:7835
msgid ""
"Additional flags to be passed to @code{scons} can be specified with the "
"@code{#:scons-flags} parameter.  The default build and install targets can "
"be overridden with @code{#:build-targets} and @code{#:install-targets} "
"respectively.  The version of Python used to run SCons can be specified by "
"selecting the appropriate SCons package with the @code{#:scons} parameter."
msgstr ""

#. type: defvr
#: doc/guix.texi:7837
#, no-wrap
msgid "{Scheme Variable} haskell-build-system"
msgstr ""

#. type: defvr
#: doc/guix.texi:7851
msgid ""
"This variable is exported by @code{(guix build-system haskell)}.  It "
"implements the Cabal build procedure used by Haskell packages, which "
"involves running @code{runhaskell Setup.hs configure --prefix=/gnu/store/"
"@dots{}} and @code{runhaskell Setup.hs build}.  Instead of installing the "
"package by running @code{runhaskell Setup.hs install}, to avoid trying to "
"register libraries in the read-only compiler store directory, the build "
"system uses @code{runhaskell Setup.hs copy}, followed by @code{runhaskell "
"Setup.hs register}.  In addition, the build system generates the package "
"documentation by running @code{runhaskell Setup.hs haddock}, unless @code{#:"
"haddock? #f} is passed.  Optional Haddock parameters can be passed with the "
"help of the @code{#:haddock-flags} parameter.  If the file @code{Setup.hs} "
"is not found, the build system looks for @code{Setup.lhs} instead."
msgstr ""

#. type: defvr
#: doc/guix.texi:7854
msgid ""
"Which Haskell compiler is used can be specified with the @code{#:haskell} "
"parameter which defaults to @code{ghc}."
msgstr ""

#. type: defvr
#: doc/guix.texi:7856
#, no-wrap
msgid "{Scheme Variable} dub-build-system"
msgstr ""

#. type: defvr
#: doc/guix.texi:7861
msgid ""
"This variable is exported by @code{(guix build-system dub)}.  It implements "
"the Dub build procedure used by D packages, which involves running @code{dub "
"build} and @code{dub run}.  Installation is done by copying the files "
"manually."
msgstr ""

#. type: defvr
#: doc/guix.texi:7864
msgid ""
"Which D compiler is used can be specified with the @code{#:ldc} parameter "
"which defaults to @code{ldc}."
msgstr ""

#. type: defvr
#: doc/guix.texi:7866
#, no-wrap
msgid "{Scheme Variable} emacs-build-system"
msgstr ""

#. type: defvr
#: doc/guix.texi:7870
msgid ""
"This variable is exported by @code{(guix build-system emacs)}.  It "
"implements an installation procedure similar to the packaging system of "
"Emacs itself (@pxref{Packages,,, emacs, The GNU Emacs Manual})."
msgstr ""

#. type: defvr
#: doc/guix.texi:7876
msgid ""
"It first creates the @code{@code{package}-autoloads.el} file, then it byte "
"compiles all Emacs Lisp files.  Differently from the Emacs packaging system, "
"the Info documentation files are moved to the standard documentation "
"directory and the @file{dir} file is deleted.  The Elisp package files are "
"installed directly under @file{share/emacs/site-lisp}."
msgstr ""

#. type: defvr
#: doc/guix.texi:7878
#, no-wrap
msgid "{Scheme Variable} font-build-system"
msgstr ""

#. type: defvr
#: doc/guix.texi:7884
msgid ""
"This variable is exported by @code{(guix build-system font)}.  It implements "
"an installation procedure for font packages where upstream provides pre-"
"compiled TrueType, OpenType, etc.@: font files that merely need to be copied "
"into place.  It copies font files to standard locations in the output "
"directory."
msgstr ""

#. type: defvr
#: doc/guix.texi:7886
#, no-wrap
msgid "{Scheme Variable} meson-build-system"
msgstr ""

#. type: defvr
#: doc/guix.texi:7890
msgid ""
"This variable is exported by @code{(guix build-system meson)}.  It "
"implements the build procedure for packages that use @url{https://mesonbuild."
"com, Meson} as their build system."
msgstr ""

#. type: defvr
#: doc/guix.texi:7896
msgid ""
"It adds both Meson and @uref{https://ninja-build.org/, Ninja} to the set of "
"inputs, and they can be changed with the parameters @code{#:meson} and "
"@code{#:ninja} if needed.  The default Meson is @code{meson-for-build}, "
"which is special because it doesn't clear the @code{RUNPATH} of binaries and "
"libraries when they are installed."
msgstr ""

#. type: defvr
#: doc/guix.texi:7899
msgid ""
"This build system is an extension of @code{gnu-build-system}, but with the "
"following phases changed to some specific for Meson:"
msgstr ""

#. type: table
#: doc/guix.texi:7907
msgid ""
"The phase runs @code{meson} with the flags specified in @code{#:configure-"
"flags}.  The flag @option{--buildtype} is always set to "
"@code{debugoptimized} unless something else is specified in @code{#:build-"
"type}."
msgstr ""

#. type: table
#: doc/guix.texi:7911
msgid ""
"The phase runs @code{ninja} to build the package in parallel by default, but "
"this can be changed with @code{#:parallel-build?}."
msgstr ""

#. type: table
#: doc/guix.texi:7915
msgid ""
"The phase runs @code{ninja} with the target specified in @code{#:test-"
"target}, which is @code{\"test\"} by default."
msgstr ""

#. type: table
#: doc/guix.texi:7918
msgid "The phase runs @code{ninja install} and can not be changed."
msgstr ""

#. type: defvr
#: doc/guix.texi:7921
msgid "Apart from that, the build system also adds the following phases:"
msgstr ""

#. type: item
#: doc/guix.texi:7924
#, no-wrap
msgid "fix-runpath"
msgstr ""

#. type: table
#: doc/guix.texi:7931
msgid ""
"This phase ensures that all binaries can find the libraries they need.  It "
"searches for required libraries in subdirectories of the package being "
"built, and adds those to @code{RUNPATH} where needed.  It also removes "
"references to libraries left over from the build phase by @code{meson-for-"
"build}, such as test dependencies, that aren't actually required for the "
"program to run."
msgstr ""

#. type: table
#: doc/guix.texi:7935 doc/guix.texi:7939
msgid ""
"This phase is the phase provided by @code{glib-or-gtk-build-system}, and it "
"is not enabled by default.  It can be enabled with @code{#:glib-or-gtk?}."
msgstr ""

#. type: defvr
#: doc/guix.texi:7942
#, no-wrap
msgid "{Scheme Variable} linux-module-build-system"
msgstr ""

#. type: defvr
#: doc/guix.texi:7944
msgid "@code{linux-module-build-system} allows building Linux kernel modules."
msgstr ""

#. type: defvr
#: doc/guix.texi:7948
msgid ""
"This build system is an extension of @code{gnu-build-system}, but with the "
"following phases changed:"
msgstr ""

#. type: table
#: doc/guix.texi:7954
msgid ""
"This phase configures the environment so that the Linux kernel's Makefile "
"can be used to build the external kernel module."
msgstr ""

#. type: table
#: doc/guix.texi:7958
msgid ""
"This phase uses the Linux kernel's Makefile in order to build the external "
"kernel module."
msgstr ""

#. type: table
#: doc/guix.texi:7962
msgid ""
"This phase uses the Linux kernel's Makefile in order to install the external "
"kernel module."
msgstr ""

#. type: defvr
#: doc/guix.texi:7967
msgid ""
"It is possible and useful to specify the Linux kernel to use for building "
"the module (in the @code{arguments} form of a package using the @code{linux-"
"module-build-system}, use the key @code{#:linux} to specify it)."
msgstr ""

#. type: defvr
#: doc/guix.texi:7969
#, no-wrap
msgid "{Scheme Variable} node-build-system"
msgstr ""

#. type: defvr
#: doc/guix.texi:7974
msgid ""
"This variable is exported by @code{(guix build-system node)}.  It implements "
"the build procedure used by @uref{https://nodejs.org, Node.js}, which "
"implements an approximation of the @code{npm install} command, followed by "
"an @code{npm test} command."
msgstr ""

#. type: defvr
#: doc/guix.texi:7978
msgid ""
"Which Node.js package is used to interpret the @code{npm} commands can be "
"specified with the @code{#:node} parameter which defaults to @code{node}."
msgstr ""

#. type: Plain text
#: doc/guix.texi:7984
msgid ""
"Lastly, for packages that do not need anything as sophisticated, a "
"``trivial'' build system is provided.  It is trivial in the sense that it "
"provides basically no support: it does not pull any implicit inputs, and "
"does not have a notion of build phases."
msgstr ""

#. type: defvr
#: doc/guix.texi:7985
#, no-wrap
msgid "{Scheme Variable} trivial-build-system"
msgstr ""

#. type: defvr
#: doc/guix.texi:7987
msgid "This variable is exported by @code{(guix build-system trivial)}."
msgstr ""

#. type: defvr
#: doc/guix.texi:7992
msgid ""
"This build system requires a @code{#:builder} argument.  This argument must "
"be a Scheme expression that builds the package output(s)---as with "
"@code{build-expression->derivation} (@pxref{Derivations, @code{build-"
"expression->derivation}})."
msgstr ""

#. type: cindex
#: doc/guix.texi:7997
#, no-wrap
msgid "build phases, for packages"
msgstr ""

#. type: Plain text
#: doc/guix.texi:8003
msgid ""
"Almost all package build systems implement a notion @dfn{build phases}: a "
"sequence of actions that the build system executes, when you build the "
"package, leading to the installed byproducts in the store.  A notable "
"exception is the ``bare-bones'' @code{trivial-build-system} (@pxref{Build "
"Systems})."
msgstr ""

#. type: Plain text
#: doc/guix.texi:8017
msgid ""
"As discussed in the previous section, those build systems provide a standard "
"list of phases.  For @code{gnu-build-system}, the standard phases include an "
"@code{unpack} phase to unpack the source code tarball, a @command{configure} "
"phase to run @code{./configure}, a @code{build} phase to run @command{make}, "
"and (among others) an @code{install} phase to run @command{make install}; "
"@pxref{Build Systems}, for a more detailed view of these phases.  Likewise, "
"@code{cmake-build-system} inherits these phases, but its @code{configure} "
"phase runs @command{cmake} instead of @command{./configure}.  Other build "
"systems, such as @code{python-build-system}, have a wholly different list of "
"standard phases.  All this code runs on the @dfn{build side}: it is "
"evaluated when you actually build the package, in a dedicated build process "
"spawned by the build daemon (@pxref{Invoking guix-daemon})."
msgstr ""

#. type: Plain text
#: doc/guix.texi:8024
msgid ""
"Build phases are represented as association lists or "
"``alists'' (@pxref{Association Lists,,, guile, GNU Guile Reference Manual}) "
"where each key is a symbol for the name of the phase and the associated "
"value is a procedure that accepts an arbitrary number of arguments.  By "
"convention, those procedures receive information about the build in the form "
"of @dfn{keyword parameters}, which they can use or ignore."
msgstr ""

#. type: Plain text
#: doc/guix.texi:8030
msgid ""
"For example, here is how @code{(guix build gnu-build-system)} defines "
"@code{%standard-phases}, the variable holding its alist of build "
"phases@footnote{We present a simplified view of those build phases, but do "
"take a look at @code{(guix build gnu-build-system)} to see all the details!}:"
msgstr ""

#. type: lisp
#: doc/guix.texi:8033
#, no-wrap
msgid ""
";; The build phases of 'gnu-build-system'.\n"
"\n"
msgstr ""

#. type: lisp
#: doc/guix.texi:8037
#, no-wrap
msgid ""
"(define* (unpack #:key source #:allow-other-keys)\n"
"  ;; Extract the source tarball.\n"
"  (invoke \"tar\" \"xvf\" source))\n"
"\n"
msgstr ""

#. type: lisp
#: doc/guix.texi:8043
#, no-wrap
msgid ""
"(define* (configure #:key outputs #:allow-other-keys)\n"
"  ;; Run the 'configure' script.  Install to output \"out\".\n"
"  (let ((out (assoc-ref outputs \"out\")))\n"
"    (invoke \"./configure\"\n"
"            (string-append \"--prefix=\" out))))\n"
"\n"
msgstr ""

#. type: lisp
#: doc/guix.texi:8047
#, no-wrap
msgid ""
"(define* (build #:allow-other-keys)\n"
"  ;; Compile.\n"
"  (invoke \"make\"))\n"
"\n"
msgstr ""

#. type: lisp
#: doc/guix.texi:8054
#, no-wrap
msgid ""
"(define* (check #:key (test-target \"check\") (tests? #true)\n"
"                #:allow-other-keys)\n"
"  ;; Run the test suite.\n"
"  (if tests?\n"
"      (invoke \"make\" test-target)\n"
"      (display \"test suite not run\\n\")))\n"
"\n"
msgstr ""

#. type: lisp
#: doc/guix.texi:8058
#, no-wrap
msgid ""
"(define* (install #:allow-other-keys)\n"
"  ;; Install files to the prefix 'configure' specified.\n"
"  (invoke \"make\" \"install\"))\n"
"\n"
msgstr ""

#. type: lisp
#: doc/guix.texi:8067
#, no-wrap
msgid ""
"(define %standard-phases\n"
"  ;; The list of standard phases (quite a few are omitted\n"
"  ;; for brevity).  Each element is a symbol/procedure pair.\n"
"  (list (cons 'unpack unpack)\n"
"        (cons 'configure configure)\n"
"        (cons 'build build)\n"
"        (cons 'check check)\n"
"        (cons 'install install)))\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:8077
msgid ""
"This shows how @code{%standard-phases} is defined as a list of symbol/"
"procedure pairs (@pxref{Pairs,,, guile, GNU Guile Reference Manual}).  The "
"first pair associates the @code{unpack} procedure with the @code{unpack} "
"symbol---a name; the second pair defines the @code{configure} phase "
"similarly, and so on.  When building a package that uses @code{gnu-build-"
"system} with its default list of phases, those phases are executed "
"sequentially.  You can see the name of each phase started and completed in "
"the build log of packages that you build."
msgstr ""

#. type: Plain text
#: doc/guix.texi:8083
msgid ""
"Let's now look at the procedures themselves.  Each one is defined with "
"@code{define*}: @code{#:key} lists keyword parameters the procedure accepts, "
"possibly with a default value, and @code{#:allow-other-keys} specifies that "
"other keyword parameters are ignored (@pxref{Optional Arguments,,, guile, "
"GNU Guile Reference Manual})."
msgstr ""

#. type: Plain text
#: doc/guix.texi:8099
msgid ""
"The @code{unpack} procedure honors the @code{source} parameter, which the "
"build system uses to pass the file name of the source tarball (or version "
"control checkout), and it ignores other parameters.  The @code{configure} "
"phase only cares about the @code{outputs} parameter, an alist mapping "
"package output names to their store file name (@pxref{Packages with Multiple "
"Outputs}).  It extracts the file name of for @code{out}, the default output, "
"and passes it to @command{./configure} as the installation prefix, meaning "
"that @command{make install} will eventually copy all the files in that "
"directory (@pxref{Configuration, configuration and makefile conventions,, "
"standards, GNU Coding Standards}).  @code{build} and @code{install} ignore "
"all their arguments.  @code{check} honors the @code{test-target} argument, "
"which specifies the name of the Makefile target to run tests; it prints a "
"message and skips tests when @code{tests?} is false."
msgstr ""

#. type: cindex
#: doc/guix.texi:8100
#, no-wrap
msgid "build phases, customizing"
msgstr ""

#. type: Plain text
#: doc/guix.texi:8109
msgid ""
"The list of phases used for a particular package can be changed with the "
"@code{#:phases} parameter of the build system.  Changing the set of build "
"phases boils down to building a new alist of phases based on the "
"@code{%standard-phases} alist described above.  This can be done with "
"standard alist procedures such as @code{alist-delete} (@pxref{SRFI-1 "
"Association Lists,,, guile, GNU Guile Reference Manual}); however, it is "
"more convenient to do so with @code{modify-phases} (@pxref{Build Utilities, "
"@code{modify-phases}})."
msgstr ""

#. type: Plain text
#: doc/guix.texi:8114
msgid ""
"Here is an example of a package definition that removes the @code{configure} "
"phase of @code{%standard-phases} and inserts a new phase before the "
"@code{build} phase, called @code{set-prefix-in-makefile}:"
msgstr ""

#. type: lisp
#: doc/guix.texi:8134
#, no-wrap
msgid ""
"(define-public example\n"
"  (package\n"
"    (name \"example\")\n"
"    ;; other fields omitted\n"
"    (build-system gnu-build-system)\n"
"    (arguments\n"
"     '(#:phases (modify-phases %standard-phases\n"
"                  (delete 'configure)\n"
"                  (add-before 'build 'set-prefix-in-makefile\n"
"                    (lambda* (#:key outputs #:allow-other-keys)\n"
"                      ;; Modify the makefile so that its\n"
"                      ;; 'PREFIX' variable points to \"out\".\n"
"                      (let ((out (assoc-ref outputs \"out\")))\n"
"                        (substitute* \"Makefile\"\n"
"                          ((\"PREFIX =.*\")\n"
"                           (string-append \"PREFIX = \"\n"
"                                          out \"\\n\")))\n"
"                        #true))))))))\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:8140
msgid ""
"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}."
msgstr ""

#. type: cindex
#: doc/guix.texi:8141 doc/guix.texi:9114
#, no-wrap
msgid "code staging"
msgstr ""

#. type: cindex
#: doc/guix.texi:8142 doc/guix.texi:9115
#, no-wrap
msgid "staging, of code"
msgstr ""

#. type: Plain text
#: doc/guix.texi:8149
msgid ""
"Keep in mind that build phases are code evaluated at the time the package is "
"actually built.  This explains why the whole @code{modify-phases} expression "
"above is quoted (it comes after the @code{'} or apostrophe): it is "
"@dfn{staged} for later execution.  @xref{G-Expressions}, for an explanation "
"of code staging and the @dfn{code strata} involved."
msgstr ""

#. type: Plain text
#: doc/guix.texi:8159
msgid ""
"As soon as you start writing non-trivial package definitions "
"(@pxref{Defining Packages}) or other build actions (@pxref{G-Expressions}), "
"you will likely start looking for helpers for ``shell-like'' actions---"
"creating directories, copying and deleting files recursively, manipulating "
"build phases, and so on.  The @code{(guix build utils)} module provides such "
"utility procedures."
msgstr ""

#. type: Plain text
#: doc/guix.texi:8163
msgid ""
"Most build systems load @code{(guix build utils)} (@pxref{Build Systems}).  "
"Thus, when writing custom build phases for your package definitions, you can "
"usually assume those procedures are in scope."
msgstr ""

#. type: Plain text
#: doc/guix.texi:8168
msgid ""
"When writing G-expressions, you can import @code{(guix build utils)} on the "
"``build side'' using @code{with-imported-modules} and then put it in scope "
"with the @code{use-modules} form (@pxref{Using Guile Modules,,, guile, GNU "
"Guile Reference Manual}):"
msgstr ""

#. type: lisp
#: doc/guix.texi:8175
#, no-wrap
msgid ""
"(with-imported-modules '((guix build utils))  ;import it\n"
"  (computed-file \"empty-tree\"\n"
"                 #~(begin\n"
"                     ;; Put it in scope.\n"
"                     (use-modules (guix build utils))\n"
"\n"
msgstr ""

#. type: lisp
#: doc/guix.texi:8178
#, no-wrap
msgid ""
"                     ;; Happily use its 'mkdir-p' procedure.\n"
"                     (mkdir-p (string-append #$output \"/a/b/c\")))))\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:8182
msgid ""
"The remainder of this section is the reference for most of the utility "
"procedures provided by @code{(guix build utils)}."
msgstr ""

#. type: subsection
#: doc/guix.texi:8185
#, no-wrap
msgid "Dealing with Store File Names"
msgstr ""

#. type: Plain text
#: doc/guix.texi:8188
msgid "This section documents procedures that deal with store file names."
msgstr ""

#. type: deffn
#: doc/guix.texi:8189
#, no-wrap
msgid "{Scheme Procedure} %store-directory"
msgstr ""

#. type: deffn
#: doc/guix.texi:8191
msgid "Return the directory name of the store."
msgstr ""

#. type: deffn
#: doc/guix.texi:8193
#, no-wrap
msgid "{Scheme Procedure} store-file-name? @var{file}"
msgstr ""

#. type: deffn
#: doc/guix.texi:8195
msgid "Return true if @var{file} is in the store."
msgstr ""

#. type: deffn
#: doc/guix.texi:8197
#, no-wrap
msgid "{Scheme Procedure} strip-store-file-name @var{file}"
msgstr ""

#. type: deffn
#: doc/guix.texi:8200
msgid ""
"Strip the @file{/gnu/store} and hash from @var{file}, a store file name.  "
"The result is typically a @code{\"@var{package}-@var{version}\"} string."
msgstr ""

#. type: deffn
#: doc/guix.texi:8202
#, no-wrap
msgid "{Scheme Procedure} package-name->name+version @var{name}"
msgstr ""

#. type: deffn
#: doc/guix.texi:8207
msgid ""
"Given @var{name}, a package name like @code{\"foo-0.9.1b\"}, return two "
"values: @code{\"foo\"} and @code{\"0.9.1b\"}.  When the version part is "
"unavailable, @var{name} and @code{#f} are returned.  The first hyphen "
"followed by a digit is considered to introduce the version part."
msgstr ""

#. type: subsection
#: doc/guix.texi:8209
#, no-wrap
msgid "File Types"
msgstr ""

#. type: Plain text
#: doc/guix.texi:8212
msgid "The procedures below deal with files and file types."
msgstr ""

#. type: deffn
#: doc/guix.texi:8213
#, no-wrap
msgid "{Scheme Procedure} directory-exists? @var{dir}"
msgstr ""

#. type: deffn
#: doc/guix.texi:8215
msgid "Return @code{#t} if @var{dir} exists and is a directory."
msgstr ""

#. type: deffn
#: doc/guix.texi:8217
#, no-wrap
msgid "{Scheme Procedure} executable-file? @var{file}"
msgstr ""

#. type: deffn
#: doc/guix.texi:8219
msgid "Return @code{#t} if @var{file} exists and is executable."
msgstr ""

#. type: deffn
#: doc/guix.texi:8221
#, no-wrap
msgid "{Scheme Procedure} symbolic-link? @var{file}"
msgstr ""

#. type: deffn
#: doc/guix.texi:8223
msgid "Return @code{#t} if @var{file} is a symbolic link (aka. a ``symlink'')."
msgstr ""

#. type: deffn
#: doc/guix.texi:8225
#, no-wrap
msgid "{Scheme Procedure} elf-file? @var{file}"
msgstr ""

#. type: deffnx
#: doc/guix.texi:8226
#, no-wrap
msgid "{Scheme Procedure} ar-file? @var{file}"
msgstr ""

#. type: deffnx
#: doc/guix.texi:8227
#, no-wrap
msgid "{Scheme Procedure} gzip-file? @var{file}"
msgstr ""

#. type: deffn
#: doc/guix.texi:8230
msgid ""
"Return @code{#t} if @var{file} is, respectively, an ELF file, an @code{ar} "
"archive (such as a @file{.a} static library), or a gzip file."
msgstr ""

#. type: deffn
#: doc/guix.texi:8232
#, no-wrap
msgid "{Scheme Procedure} reset-gzip-timestamp @var{file} [#:keep-mtime? #t]"
msgstr ""

#. type: deffn
#: doc/guix.texi:8236
msgid ""
"If @var{file} is a gzip file, reset its embedded timestamp (as with "
"@command{gzip --no-name}) and return true.  Otherwise return @code{#f}.  "
"When @var{keep-mtime?} is true, preserve @var{file}'s modification time."
msgstr ""

#. type: subsection
#: doc/guix.texi:8238
#, no-wrap
msgid "File Manipulation"
msgstr ""

#. type: Plain text
#: doc/guix.texi:8245
msgid ""
"The following procedures and macros help create, modify, and delete files.  "
"They provide functionality comparable to common shell utilities such as "
"@command{mkdir -p}, @command{cp -r}, @command{rm -r}, and @command{sed}.  "
"They complement Guile's extensive, but low-level, file system interface "
"(@pxref{POSIX,,, guile, GNU Guile Reference Manual})."
msgstr ""

#. type: deffn
#: doc/guix.texi:8246
#, no-wrap
msgid "{Scheme Syntax} with-directory-excursion @var{directory} @var{body}@dots{}"
msgstr ""

#. type: deffn
#: doc/guix.texi:8248
msgid "Run @var{body} with @var{directory} as the process's current directory."
msgstr ""

#. type: deffn
#: doc/guix.texi:8255
msgid ""
"Essentially, this macro changes the current directory to @var{directory} "
"before evaluating @var{body}, using @code{chdir} (@pxref{Processes,,, guile, "
"GNU Guile Reference Manual}).  It changes back to the initial directory when "
"the dynamic extent of @var{body} is left, be it @i{via} normal procedure "
"return or @i{via} a non-local exit such as an exception."
msgstr ""

#. type: deffn
#: doc/guix.texi:8257
#, no-wrap
msgid "{Scheme Procedure} mkdir-p @var{dir}"
msgstr ""

#. type: deffn
#: doc/guix.texi:8259
msgid "Create directory @var{dir} and all its ancestors."
msgstr ""

#. type: deffn
#: doc/guix.texi:8261
#, no-wrap
msgid "{Scheme Procedure} install-file @var{file} @var{directory}"
msgstr ""

#. type: deffn
#: doc/guix.texi:8264
msgid ""
"Create @var{directory} if it does not exist and copy @var{file} in there "
"under the same name."
msgstr ""

#. type: deffn
#: doc/guix.texi:8266
#, no-wrap
msgid "{Scheme Procedure} make-file-writable @var{file}"
msgstr ""

#. type: deffn
#: doc/guix.texi:8268
msgid "Make @var{file} writable for its owner."
msgstr ""

#. type: deffn
#: doc/guix.texi:8270
#, no-wrap
msgid "{Scheme Procedure} copy-recursively @var{source} @var{destination} @"
msgstr ""

#. type: deffn
#: doc/guix.texi:8277
msgid ""
"[#:log (current-output-port)] [#:follow-symlinks? #f] [#:keep-mtime? #f] "
"Copy @var{source} directory to @var{destination}.  Follow symlinks if "
"@var{follow-symlinks?} is true; otherwise, just preserve them.  When "
"@var{keep-mtime?} is true, keep the modification time of the files in "
"@var{source} on those of @var{destination}.  Write verbose output to the "
"@var{log} port."
msgstr ""

#. type: deffn
#: doc/guix.texi:8279
#, no-wrap
msgid "{Scheme Procedure} delete-file-recursively @var{dir} @"
msgstr ""

#. type: deffn
#: doc/guix.texi:8284
msgid ""
"[#:follow-mounts? #f] Delete @var{dir} recursively, like @command{rm -rf}, "
"without following symlinks.  Don't follow mount points either, unless "
"@var{follow-mounts?} is true.  Report but ignore errors."
msgstr ""

#. type: deffn
#: doc/guix.texi:8286
#, no-wrap
msgid "{Scheme Syntax} substitute* @var{file} @"
msgstr ""

#. type: deffn
#: doc/guix.texi:8291
msgid ""
"((@var{regexp} @var{match-var}@dots{}) @var{body}@dots{}) @dots{} Substitute "
"@var{regexp} in @var{file} by the string returned by @var{body}.  @var{body} "
"is evaluated with each @var{match-var} bound to the corresponding positional "
"regexp sub-expression.  For example:"
msgstr ""

#. type: lisp
#: doc/guix.texi:8298
#, no-wrap
msgid ""
"(substitute* file\n"
"  ((\"hello\")\n"
"   \"good morning\\n\")\n"
"  ((\"foo([a-z]+)bar(.*)$\" all letters end)\n"
"   (string-append \"baz\" letter end)))\n"
msgstr ""

#. type: deffn
#: doc/guix.texi:8304
msgid ""
"Here, anytime a line of @var{file} contains @code{hello}, it is replaced by "
"@code{good morning}.  Anytime a line of @var{file} matches the second "
"regexp, @code{all} is bound to the complete match, @code{letters} is bound "
"to the first sub-expression, and @code{end} is bound to the last one."
msgstr ""

#. type: deffn
#: doc/guix.texi:8307
msgid ""
"When one of the @var{match-var} is @code{_}, no variable is bound to the "
"corresponding match substring."
msgstr ""

#. type: deffn
#: doc/guix.texi:8310
msgid ""
"Alternatively, @var{file} may be a list of file names, in which case they "
"are all subject to the substitutions."
msgstr ""

#. type: deffn
#: doc/guix.texi:8313
msgid ""
"Be careful about using @code{$} to match the end of a line; by itself it "
"won't match the terminating newline of a line."
msgstr ""

#. type: subsection
#: doc/guix.texi:8315
#, no-wrap
msgid "File Search"
msgstr ""

#. type: cindex
#: doc/guix.texi:8317
#, no-wrap
msgid "file, searching"
msgstr ""

#. type: Plain text
#: doc/guix.texi:8319
msgid "This section documents procedures to search and filter files."
msgstr ""

#. type: deffn
#: doc/guix.texi:8320
#, no-wrap
msgid "{Scheme Procedure} file-name-predicate @var{regexp}"
msgstr ""

#. type: deffn
#: doc/guix.texi:8323
msgid ""
"Return a predicate that returns true when passed a file name whose base name "
"matches @var{regexp}."
msgstr ""

#. type: deffn
#: doc/guix.texi:8325
#, no-wrap
msgid "{Scheme Procedure} find-files @var{dir} [@var{pred}] @"
msgstr ""

#. type: deffn
#: doc/guix.texi:8336
msgid ""
"[#:stat lstat] [#:directories? #f] [#:fail-on-error? #f] Return the "
"lexicographically sorted list of files under @var{dir} for which @var{pred} "
"returns true.  @var{pred} is passed two arguments: the absolute file name, "
"and its stat buffer; the default predicate always returns true.  @var{pred} "
"can also be a regular expression, in which case it is equivalent to "
"@code{(file-name-predicate @var{pred})}.  @var{stat} is used to obtain file "
"information; using @code{lstat} means that symlinks are not followed.  If "
"@var{directories?} is true, then directories will also be included.  If "
"@var{fail-on-error?} is true, raise an exception upon error."
msgstr ""

#. type: Plain text
#: doc/guix.texi:8340
msgid ""
"Here are a few examples where we assume that the current directory is the "
"root of the Guix source tree:"
msgstr ""

#. type: lisp
#: doc/guix.texi:8345
#, no-wrap
msgid ""
";; List all the regular files in the current directory.\n"
"(find-files \".\")\n"
"@result{} (\"./.dir-locals.el\" \"./.gitignore\" @dots{})\n"
"\n"
msgstr ""

#. type: lisp
#: doc/guix.texi:8349
#, no-wrap
msgid ""
";; List all the .scm files under gnu/services.\n"
"(find-files \"gnu/services\" \"\\\\.scm$\")\n"
"@result{} (\"gnu/services/admin.scm\" \"gnu/services/audio.scm\" @dots{})\n"
"\n"
msgstr ""

#. type: lisp
#: doc/guix.texi:8353
#, no-wrap
msgid ""
";; List ar files in the current directory.\n"
"(find-files \".\" (lambda (file stat) (ar-file? file)))\n"
"@result{} (\"./libformat.a\" \"./libstore.a\" @dots{})\n"
msgstr ""

#. type: deffn
#: doc/guix.texi:8355
#, no-wrap
msgid "{Scheme Procedure} which @var{program}"
msgstr ""

#. type: deffn
#: doc/guix.texi:8358
msgid ""
"Return the complete file name for @var{program} as found in @code{$PATH}, or "
"@code{#f} if @var{program} could not be found."
msgstr ""

#. type: Plain text
#: doc/guix.texi:8369
msgid ""
"The @code{(guix build utils)} also contains tools to manipulate build phases "
"as used by build systems (@pxref{Build Systems}).  Build phases are "
"represented as association lists or ``alists'' (@pxref{Association Lists,,, "
"guile, GNU Guile Reference Manual}) where each key is a symbol naming the "
"phase and the associated value is a procedure (@pxref{Build Phases})."
msgstr ""

#. type: Plain text
#: doc/guix.texi:8373
msgid ""
"Guile core and the @code{(srfi srfi-1)} module both provide tools to "
"manipulate alists.  The @code{(guix build utils)} module complements those "
"with tools written with build phases in mind."
msgstr ""

#. type: cindex
#: doc/guix.texi:8374
#, no-wrap
msgid "build phases, modifying"
msgstr ""

#. type: deffn
#: doc/guix.texi:8375
#, no-wrap
msgid "{Scheme Syntax} modify-phases @var{phases} @var{clause}@dots{}"
msgstr ""

#. type: deffn
#: doc/guix.texi:8378
msgid ""
"Modify @var{phases} sequentially as per each @var{clause}, which may have "
"one of the following forms:"
msgstr ""

#. type: lisp
#: doc/guix.texi:8384
#, no-wrap
msgid ""
"(delete @var{old-phase-name})\n"
"(replace @var{old-phase-name} @var{new-phase})\n"
"(add-before @var{old-phase-name} @var{new-phase-name} @var{new-phase})\n"
"(add-after @var{old-phase-name} @var{new-phase-name} @var{new-phase})\n"
msgstr ""

#. type: deffn
#: doc/guix.texi:8388
msgid ""
"Where every @var{phase-name} above is an expression evaluating to a symbol, "
"and @var{new-phase} an expression evaluating to a procedure."
msgstr ""

#. type: Plain text
#: doc/guix.texi:8399
msgid ""
"The example below is taken from the definition of the @code{grep} package.  "
"It adds a phase to run after the @code{install} phase, called @code{fix-"
"egrep-and-fgrep}.  That phase is a procedure (@code{lambda*} is for "
"anonymous procedures) that takes a @code{#:outputs} keyword argument and "
"ignores extra keyword arguments (@pxref{Optional Arguments,,, guile, GNU "
"Guile Reference Manual}, for more on @code{lambda*} and optional and keyword "
"arguments.)  The phase uses @code{substitute*} to modify the installed "
"@file{egrep} and @file{fgrep} scripts so that they refer to @code{grep} by "
"its absolute file name:"
msgstr ""

#. type: lisp
#: doc/guix.texi:8413
#, no-wrap
msgid ""
"(modify-phases %standard-phases\n"
"  (add-after 'install 'fix-egrep-and-fgrep\n"
"    ;; Patch 'egrep' and 'fgrep' to execute 'grep' via its\n"
"    ;; absolute file name instead of searching for it in $PATH.\n"
"    (lambda* (#:key outputs #:allow-other-keys)\n"
"      (let* ((out (assoc-ref outputs \"out\"))\n"
"             (bin (string-append out \"/bin\")))\n"
"        (substitute* (list (string-append bin \"/egrep\")\n"
"                           (string-append bin \"/fgrep\"))\n"
"          ((\"^exec grep\")\n"
"           (string-append \"exec \" bin \"/grep\")))\n"
"        #t))))\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:8420
msgid ""
"In the example below, phases are modified in two ways: the standard "
"@code{configure} phase is deleted, presumably because the package does not "
"have a @file{configure} script or anything similar, and the default "
"@code{install} phase is replaced by one that manually copies the executable "
"files to be installed:"
msgstr ""

#. type: lisp
#: doc/guix.texi:8433
#, no-wrap
msgid ""
"(modify-phases %standard-phases\n"
"  (delete 'configure)      ;no 'configure' script\n"
"  (replace 'install\n"
"    (lambda* (#:key outputs #:allow-other-keys)\n"
"      ;; The package's Makefile doesn't provide an \"install\"\n"
"      ;; rule so do it by ourselves.\n"
"      (let ((bin (string-append (assoc-ref outputs \"out\")\n"
"                                \"/bin\")))\n"
"        (install-file \"footswitch\" bin)\n"
"        (install-file \"scythe\" bin)\n"
"        #t))))\n"
msgstr ""

#. type: cindex
#: doc/guix.texi:8441
#, no-wrap
msgid "store items"
msgstr ""

#. type: cindex
#: doc/guix.texi:8442
#, no-wrap
msgid "store paths"
msgstr ""

#. type: Plain text
#: doc/guix.texi:8453
msgid ""
"Conceptually, the @dfn{store} is the place where derivations that have been "
"built successfully are stored---by default, @file{/gnu/store}.  Sub-"
"directories in the store are referred to as @dfn{store items} or sometimes "
"@dfn{store paths}.  The store has an associated database that contains "
"information such as the store paths referred to by each store path, and the "
"list of @emph{valid} store items---results of successful builds.  This "
"database resides in @file{@var{localstatedir}/guix/db}, where "
"@var{localstatedir} is the state directory specified @i{via} @option{--"
"localstatedir} at configure time, usually @file{/var}."
msgstr ""

#. type: Plain text
#: doc/guix.texi:8458
msgid ""
"The store is @emph{always} accessed by the daemon on behalf of its clients "
"(@pxref{Invoking guix-daemon}).  To manipulate the store, clients connect to "
"the daemon over a Unix-domain socket, send requests to it, and read the "
"result---these are remote procedure calls, or RPCs."
msgstr ""

#. type: quotation
#: doc/guix.texi:8463
msgid ""
"Users must @emph{never} modify files under @file{/gnu/store} directly.  This "
"would lead to inconsistencies and break the immutability assumptions of "
"Guix's functional model (@pxref{Introduction})."
msgstr ""

#. type: quotation
#: doc/guix.texi:8467
msgid ""
"@xref{Invoking guix gc, @command{guix gc --verify}}, for information on how "
"to check the integrity of the store and attempt recovery from accidental "
"modifications."
msgstr ""

#. type: Plain text
#: doc/guix.texi:8474
msgid ""
"The @code{(guix store)} module provides procedures to connect to the daemon, "
"and to perform RPCs.  These are described below.  By default, @code{open-"
"connection}, and thus all the @command{guix} commands, connect to the local "
"daemon or to the URI specified by the @env{GUIX_DAEMON_SOCKET} environment "
"variable."
msgstr ""

#. type: defvr
#: doc/guix.texi:8475
#, no-wrap
msgid "{Environment Variable} GUIX_DAEMON_SOCKET"
msgstr ""

#. type: defvr
#: doc/guix.texi:8480
msgid ""
"When set, the value of this variable should be a file name or a URI "
"designating the daemon endpoint.  When it is a file name, it denotes a Unix-"
"domain socket to connect to.  In addition to file names, the supported URI "
"schemes are:"
msgstr ""

#. type: code{#1}
#: doc/guix.texi:8482 doc/guix.texi:22776
#, no-wrap
msgid "file"
msgstr ""

#. type: itemx
#: doc/guix.texi:8483
#, no-wrap
msgid "unix"
msgstr ""

#. type: table
#: doc/guix.texi:8487
msgid ""
"These are for Unix-domain sockets.  @code{file:///var/guix/daemon-socket/"
"socket} is equivalent to @file{/var/guix/daemon-socket/socket}."
msgstr ""

#. type: item
#: doc/guix.texi:8488
#, no-wrap
msgid "guix"
msgstr ""

#. type: table
#: doc/guix.texi:8496
msgid ""
"These URIs denote connections over TCP/IP, without encryption nor "
"authentication of the remote host.  The URI must specify the host name and "
"optionally a port number (by default port 44146 is used):"
msgstr ""

#. type: example
#: doc/guix.texi:8499
#, no-wrap
msgid "guix://master.guix.example.org:1234\n"
msgstr ""

#. type: table
#: doc/guix.texi:8504
msgid ""
"This setup is suitable on local networks, such as clusters, where only "
"trusted nodes may connect to the build daemon at @code{master.guix.example."
"org}."
msgstr ""

#. type: table
#: doc/guix.texi:8508
msgid ""
"The @option{--listen} option of @command{guix-daemon} can be used to "
"instruct it to listen for TCP connections (@pxref{Invoking guix-daemon, "
"@option{--listen}})."
msgstr ""

#. type: item
#: doc/guix.texi:8509
#, no-wrap
msgid "ssh"
msgstr ""

#. type: cindex
#: doc/guix.texi:8510
#, no-wrap
msgid "SSH access to build daemons"
msgstr ""

#. type: table
#: doc/guix.texi:8516
msgid ""
"These URIs allow you to connect to a remote daemon over SSH.  This feature "
"requires Guile-SSH (@pxref{Requirements}) and a working @command{guile} "
"binary in @env{PATH} on the destination machine.  It supports public key and "
"GSSAPI authentication.  A typical URL might look like this:"
msgstr ""

#. type: example
#: doc/guix.texi:8519
#, no-wrap
msgid "ssh://charlie@@guix.example.org:22\n"
msgstr ""

#. type: table
#: doc/guix.texi:8523
msgid ""
"As for @command{guix copy}, the usual OpenSSH client configuration files are "
"honored (@pxref{Invoking guix copy})."
msgstr ""

#. type: defvr
#: doc/guix.texi:8526
msgid "Additional URI schemes may be supported in the future."
msgstr ""

#. type: quotation
#: doc/guix.texi:8533
msgid ""
"The ability to connect to remote build daemons is considered experimental as "
"of @value{VERSION}.  Please get in touch with us to share any problems or "
"suggestions you may have (@pxref{Contributing})."
msgstr ""

#. type: deffn
#: doc/guix.texi:8536
#, no-wrap
msgid "{Scheme Procedure} open-connection [@var{uri}] [#:reserve-space? #t]"
msgstr ""

#. type: deffn
#: doc/guix.texi:8541
msgid ""
"Connect to the daemon over the Unix-domain socket at @var{uri} (a string).  "
"When @var{reserve-space?} is true, instruct it to reserve a little bit of "
"extra space on the file system so that the garbage collector can still "
"operate should the disk become full.  Return a server object."
msgstr ""

#. type: deffn
#: doc/guix.texi:8544
msgid ""
"@var{file} defaults to @code{%default-socket-path}, which is the normal "
"location given the options that were passed to @command{configure}."
msgstr ""

#. type: deffn
#: doc/guix.texi:8546
#, no-wrap
msgid "{Scheme Procedure} close-connection @var{server}"
msgstr ""

#. type: deffn
#: doc/guix.texi:8548
msgid "Close the connection to @var{server}."
msgstr ""

#. type: defvr
#: doc/guix.texi:8550
#, no-wrap
msgid "{Scheme Variable} current-build-output-port"
msgstr ""

#. type: defvr
#: doc/guix.texi:8553
msgid ""
"This variable is bound to a SRFI-39 parameter, which refers to the port "
"where build and error logs sent by the daemon should be written."
msgstr ""

#. type: Plain text
#: doc/guix.texi:8557
msgid ""
"Procedures that make RPCs all take a server object as their first argument."
msgstr ""

#. type: deffn
#: doc/guix.texi:8558
#, no-wrap
msgid "{Scheme Procedure} valid-path? @var{server} @var{path}"
msgstr ""

#. type: cindex
#: doc/guix.texi:8559
#, no-wrap
msgid "invalid store items"
msgstr ""

#. type: deffn
#: doc/guix.texi:8564
msgid ""
"Return @code{#t} when @var{path} designates a valid store item and @code{#f} "
"otherwise (an invalid item may exist on disk but still be invalid, for "
"instance because it is the result of an aborted or failed build)."
msgstr ""

#. type: deffn
#: doc/guix.texi:8567
msgid ""
"A @code{&store-protocol-error} condition is raised if @var{path} is not "
"prefixed by the store directory (@file{/gnu/store})."
msgstr ""

#. type: deffn
#: doc/guix.texi:8569
#, no-wrap
msgid "{Scheme Procedure} add-text-to-store @var{server} @var{name} @var{text} [@var{references}]"
msgstr ""

#. type: deffn
#: doc/guix.texi:8573
msgid ""
"Add @var{text} under file @var{name} in the store, and return its store "
"path.  @var{references} is the list of store paths referred to by the "
"resulting store path."
msgstr ""

#. type: deffn
#: doc/guix.texi:8575
#, no-wrap
msgid "{Scheme Procedure} build-derivations @var{store} @var{derivations} @"
msgstr ""

#. type: deffn
#: doc/guix.texi:8580
msgid ""
"[@var{mode}] Build @var{derivations}, a list of @code{<derivation>} objects, "
"@file{.drv} file names, or derivation/output pairs, using the specified "
"@var{mode}---@code{(build-mode normal)} by default."
msgstr ""

#. type: Plain text
#: doc/guix.texi:8586
msgid ""
"Note that the @code{(guix monads)} module provides a monad as well as "
"monadic versions of the above procedures, with the goal of making it more "
"convenient to work with code that accesses the store (@pxref{The Store "
"Monad})."
msgstr ""

#. type: i{#1}
#: doc/guix.texi:8589
msgid "This section is currently incomplete."
msgstr ""

#. type: cindex
#: doc/guix.texi:8593
#, no-wrap
msgid "derivations"
msgstr ""

#. type: Plain text
#: doc/guix.texi:8597
msgid ""
"Low-level build actions and the environment in which they are performed are "
"represented by @dfn{derivations}.  A derivation contains the following "
"pieces of information:"
msgstr ""

#. type: itemize
#: doc/guix.texi:8602
msgid ""
"The outputs of the derivation---derivations produce at least one file or "
"directory in the store, but may produce more."
msgstr ""

#. type: cindex
#: doc/guix.texi:8604
#, no-wrap
msgid "build-time dependencies"
msgstr ""

#. type: cindex
#: doc/guix.texi:8605
#, no-wrap
msgid "dependencies, build-time"
msgstr ""

#. type: itemize
#: doc/guix.texi:8609
msgid ""
"The inputs of the derivations---i.e., its build-time dependencies---which "
"may be other derivations or plain files in the store (patches, build "
"scripts, etc.)."
msgstr ""

#. type: itemize
#: doc/guix.texi:8612
msgid "The system type targeted by the derivation---e.g., @code{x86_64-linux}."
msgstr ""

#. type: itemize
#: doc/guix.texi:8616
msgid ""
"The file name of a build script in the store, along with the arguments to be "
"passed."
msgstr ""

#. type: itemize
#: doc/guix.texi:8619
msgid "A list of environment variables to be defined."
msgstr ""

#. type: cindex
#: doc/guix.texi:8622
#, no-wrap
msgid "derivation path"
msgstr ""

#. type: Plain text
#: doc/guix.texi:8630
msgid ""
"Derivations allow clients of the daemon to communicate build actions to the "
"store.  They exist in two forms: as an in-memory representation, both on the "
"client- and daemon-side, and as files in the store whose name end in @file{."
"drv}---these files are referred to as @dfn{derivation paths}.  Derivations "
"paths can be passed to the @code{build-derivations} procedure to perform the "
"build actions they prescribe (@pxref{The Store})."
msgstr ""

#. type: cindex
#: doc/guix.texi:8631
#, no-wrap
msgid "fixed-output derivations"
msgstr ""

#. type: Plain text
#: doc/guix.texi:8638
msgid ""
"Operations such as file downloads and version-control checkouts for which "
"the expected content hash is known in advance are modeled as @dfn{fixed-"
"output derivations}.  Unlike regular derivations, the outputs of a fixed-"
"output derivation are independent of its inputs---e.g., a source code "
"download produces the same result regardless of the download method and "
"tools being used."
msgstr ""

#. type: item
#: doc/guix.texi:8639 doc/guix.texi:12003
#, no-wrap
msgid "references"
msgstr ""

#. type: cindex
#: doc/guix.texi:8640
#, no-wrap
msgid "run-time dependencies"
msgstr ""

#. type: cindex
#: doc/guix.texi:8641
#, no-wrap
msgid "dependencies, run-time"
msgstr ""

#. type: Plain text
#: doc/guix.texi:8648
msgid ""
"The outputs of derivations---i.e., the build results---have a set of "
"@dfn{references}, as reported by the @code{references} RPC or the "
"@command{guix gc --references} command (@pxref{Invoking guix gc}).  "
"References are the set of run-time dependencies of the build results.  "
"References are a subset of the inputs of the derivation; this subset is "
"automatically computed by the build daemon by scanning all the files in the "
"outputs."
msgstr ""

#. type: Plain text
#: doc/guix.texi:8653
msgid ""
"The @code{(guix derivations)} module provides a representation of "
"derivations as Scheme objects, along with procedures to create and otherwise "
"manipulate derivations.  The lowest-level primitive to create a derivation "
"is the @code{derivation} procedure:"
msgstr ""

#. type: deffn
#: doc/guix.texi:8654
#, no-wrap
msgid "{Scheme Procedure} derivation @var{store} @var{name} @var{builder} @"
msgstr ""

#. type: deffn
#: doc/guix.texi:8663
msgid ""
"@var{args} [#:outputs '(\"out\")] [#:hash #f] [#:hash-algo #f] @ [#:"
"recursive? #f] [#:inputs '()] [#:env-vars '()] @ [#:system (%current-"
"system)] [#:references-graphs #f] @ [#:allowed-references #f] [#:disallowed-"
"references #f] @ [#:leaked-env-vars #f] [#:local-build? #f] @ [#:"
"substitutable? #t] [#:properties '()] Build a derivation with the given "
"arguments, and return the resulting @code{<derivation>} object."
msgstr ""

#. type: deffn
#: doc/guix.texi:8670
msgid ""
"When @var{hash} and @var{hash-algo} are given, a @dfn{fixed-output "
"derivation} is created---i.e., one whose result is known in advance, such as "
"a file download.  If, in addition, @var{recursive?} is true, then that fixed "
"output may be an executable file or a directory and @var{hash} must be the "
"hash of an archive containing this output."
msgstr ""

#. type: deffn
#: doc/guix.texi:8675
msgid ""
"When @var{references-graphs} is true, it must be a list of file name/store "
"path pairs.  In that case, the reference graph of each store path is "
"exported in the build environment in the corresponding file, in a simple "
"text format."
msgstr ""

#. type: deffn
#: doc/guix.texi:8680
msgid ""
"When @var{allowed-references} is true, it must be a list of store items or "
"outputs that the derivation's output may refer to.  Likewise, "
"@var{disallowed-references}, if true, must be a list of things the outputs "
"may @emph{not} refer to."
msgstr ""

#. type: deffn
#: doc/guix.texi:8687
msgid ""
"When @var{leaked-env-vars} is true, it must be a list of strings denoting "
"environment variables that are allowed to ``leak'' from the daemon's "
"environment to the build environment.  This is only applicable to fixed-"
"output derivations---i.e., when @var{hash} is true.  The main use is to "
"allow variables such as @code{http_proxy} to be passed to derivations that "
"download files."
msgstr ""

#. type: deffn
#: doc/guix.texi:8692
msgid ""
"When @var{local-build?} is true, declare that the derivation is not a good "
"candidate for offloading and should rather be built locally (@pxref{Daemon "
"Offload Setup}).  This is the case for small derivations where the costs of "
"data transfers would outweigh the benefits."
msgstr ""

#. type: deffn
#: doc/guix.texi:8697
msgid ""
"When @var{substitutable?} is false, declare that substitutes of the "
"derivation's output should not be used (@pxref{Substitutes}).  This is "
"useful, for instance, when building packages that capture details of the "
"host CPU instruction set."
msgstr ""

#. type: deffn
#: doc/guix.texi:8700
msgid ""
"@var{properties} must be an association list describing ``properties'' of "
"the derivation.  It is kept as-is, uninterpreted, in the derivation."
msgstr ""

#. type: Plain text
#: doc/guix.texi:8706
msgid ""
"Here's an example with a shell script as its builder, assuming @var{store} "
"is an open connection to the daemon, and @var{bash} points to a Bash "
"executable in the store:"
msgstr ""

#. type: lisp
#: doc/guix.texi:8711
#, no-wrap
msgid ""
"(use-modules (guix utils)\n"
"             (guix store)\n"
"             (guix derivations))\n"
"\n"
msgstr ""

#. type: lisp
#: doc/guix.texi:8720
#, no-wrap
msgid ""
"(let ((builder   ; add the Bash script to the store\n"
"        (add-text-to-store store \"my-builder.sh\"\n"
"                           \"echo hello world > $out\\n\" '())))\n"
"  (derivation store \"foo\"\n"
"              bash `(\"-e\" ,builder)\n"
"              #:inputs `((,bash) (,builder))\n"
"              #:env-vars '((\"HOME\" . \"/homeless\"))))\n"
"@result{} #<derivation /gnu/store/@dots{}-foo.drv => /gnu/store/@dots{}-foo>\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:8727
msgid ""
"As can be guessed, this primitive is cumbersome to use directly.  A better "
"approach is to write build scripts in Scheme, of course! The best course of "
"action for that is to write the build code as a ``G-expression'', and to "
"pass it to @code{gexp->derivation}.  For more information, @pxref{G-"
"Expressions}."
msgstr ""

#. type: Plain text
#: doc/guix.texi:8732
msgid ""
"Once upon a time, @code{gexp->derivation} did not exist and constructing "
"derivations with build code written in Scheme was achieved with @code{build-"
"expression->derivation}, documented below.  This procedure is now deprecated "
"in favor of the much nicer @code{gexp->derivation}."
msgstr ""

#. type: deffn
#: doc/guix.texi:8733
#, no-wrap
msgid "{Scheme Procedure} build-expression->derivation @var{store} @"
msgstr ""

#. type: deffn
#: doc/guix.texi:8749
msgid ""
"@var{name} @var{exp} @ [#:system (%current-system)] [#:inputs '()] @ [#:"
"outputs '(\"out\")] [#:hash #f] [#:hash-algo #f] @ [#:recursive? #f] [#:env-"
"vars '()] [#:modules '()] @ [#:references-graphs #f] [#:allowed-references "
"#f] @ [#:disallowed-references #f] @ [#:local-build? #f] [#:substitutable? "
"#t] [#:guile-for-build #f] Return a derivation that executes Scheme "
"expression @var{exp} as a builder for derivation @var{name}.  @var{inputs} "
"must be a list of @code{(name drv-path sub-drv)} tuples; when @var{sub-drv} "
"is omitted, @code{\"out\"} is assumed.  @var{modules} is a list of names of "
"Guile modules from the current search path to be copied in the store, "
"compiled, and made available in the load path during the execution of "
"@var{exp}---e.g., @code{((guix build utils) (guix build gnu-build-system))}."
msgstr ""

#. type: deffn
#: doc/guix.texi:8757
msgid ""
"@var{exp} is evaluated in an environment where @code{%outputs} is bound to a "
"list of output/path pairs, and where @code{%build-inputs} is bound to a list "
"of string/output-path pairs made from @var{inputs}.  Optionally, @var{env-"
"vars} is a list of string pairs specifying the name and value of environment "
"variables visible to the builder.  The builder terminates by passing the "
"result of @var{exp} to @code{exit}; thus, when @var{exp} returns @code{#f}, "
"the build is considered to have failed."
msgstr ""

#. type: deffn
#: doc/guix.texi:8761
msgid ""
"@var{exp} is built using @var{guile-for-build} (a derivation).  When "
"@var{guile-for-build} is omitted or is @code{#f}, the value of the "
"@code{%guile-for-build} fluid is used instead."
msgstr ""

#. type: deffn
#: doc/guix.texi:8766
msgid ""
"See the @code{derivation} procedure for the meaning of @var{references-"
"graphs}, @var{allowed-references}, @var{disallowed-references}, @var{local-"
"build?}, and @var{substitutable?}."
msgstr ""

#. type: Plain text
#: doc/guix.texi:8771
msgid ""
"Here's an example of a single-output derivation that creates a directory "
"containing one file:"
msgstr ""

#. type: lisp
#: doc/guix.texi:8779
#, no-wrap
msgid ""
"(let ((builder '(let ((out (assoc-ref %outputs \"out\")))\n"
"                  (mkdir out)    ; create /gnu/store/@dots{}-goo\n"
"                  (call-with-output-file (string-append out \"/test\")\n"
"                    (lambda (p)\n"
"                      (display '(hello guix) p))))))\n"
"  (build-expression->derivation store \"goo\" builder))\n"
"\n"
msgstr ""

#. type: lisp
#: doc/guix.texi:8781
#, no-wrap
msgid "@result{} #<derivation /gnu/store/@dots{}-goo.drv => @dots{}>\n"
msgstr ""

#. type: cindex
#: doc/guix.texi:8787
#, no-wrap
msgid "monad"
msgstr ""

#. type: Plain text
#: doc/guix.texi:8793
msgid ""
"The procedures that operate on the store described in the previous sections "
"all take an open connection to the build daemon as their first argument.  "
"Although the underlying model is functional, they either have side effects "
"or depend on the current state of the store."
msgstr ""

#. type: Plain text
#: doc/guix.texi:8799
msgid ""
"The former is inconvenient: the connection to the build daemon has to be "
"carried around in all those functions, making it impossible to compose "
"functions that do not take that parameter with functions that do.  The "
"latter can be problematic: since store operations have side effects and/or "
"depend on external state, they have to be properly sequenced."
msgstr ""

#. type: cindex
#: doc/guix.texi:8800
#, no-wrap
msgid "monadic values"
msgstr ""

#. type: cindex
#: doc/guix.texi:8801
#, no-wrap
msgid "monadic functions"
msgstr ""

#. type: Plain text
#: doc/guix.texi:8811
msgid ""
"This is where the @code{(guix monads)} module comes in.  This module "
"provides a framework for working with @dfn{monads}, and a particularly "
"useful monad for our uses, the @dfn{store monad}.  Monads are a construct "
"that allows two things: associating ``context'' with values (in our case, "
"the context is the store), and building sequences of computations (here "
"computations include accesses to the store).  Values in a monad---values "
"that carry this additional context---are called @dfn{monadic values}; "
"procedures that return such values are called @dfn{monadic procedures}."
msgstr ""

#. type: Plain text
#: doc/guix.texi:8813
msgid "Consider this ``normal'' procedure:"
msgstr ""

#. type: lisp
#: doc/guix.texi:8822
#, no-wrap
msgid ""
"(define (sh-symlink store)\n"
"  ;; Return a derivation that symlinks the 'bash' executable.\n"
"  (let* ((drv (package-derivation store bash))\n"
"         (out (derivation->output-path drv))\n"
"         (sh  (string-append out \"/bin/bash\")))\n"
"    (build-expression->derivation store \"sh\"\n"
"                                  `(symlink ,sh %output))))\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:8826
msgid ""
"Using @code{(guix monads)} and @code{(guix gexp)}, it may be rewritten as a "
"monadic function:"
msgstr ""

#. type: lisp
#: doc/guix.texi:8834
#, no-wrap
msgid ""
"(define (sh-symlink)\n"
"  ;; Same, but return a monadic value.\n"
"  (mlet %store-monad ((drv (package->derivation bash)))\n"
"    (gexp->derivation \"sh\"\n"
"                      #~(symlink (string-append #$drv \"/bin/bash\")\n"
"                                 #$output))))\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:8841
msgid ""
"There are several things to note in the second version: the @code{store} "
"parameter is now implicit and is ``threaded'' in the calls to the "
"@code{package->derivation} and @code{gexp->derivation} monadic procedures, "
"and the monadic value returned by @code{package->derivation} is @dfn{bound} "
"using @code{mlet} instead of plain @code{let}."
msgstr ""

#. type: Plain text
#: doc/guix.texi:8845
msgid ""
"As it turns out, the call to @code{package->derivation} can even be omitted "
"since it will take place implicitly, as we will see later (@pxref{G-"
"Expressions}):"
msgstr ""

#. type: lisp
#: doc/guix.texi:8851
#, no-wrap
msgid ""
"(define (sh-symlink)\n"
"  (gexp->derivation \"sh\"\n"
"                    #~(symlink (string-append #$bash \"/bin/bash\")\n"
"                               #$output)))\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:8860
msgid ""
"Calling the monadic @code{sh-symlink} has no effect.  As someone once said, "
"``you exit a monad like you exit a building on fire: by running''.  So, to "
"exit the monad and get the desired effect, one must use @code{run-with-"
"store}:"
msgstr ""

#. type: lisp
#: doc/guix.texi:8864
#, no-wrap
msgid ""
"(run-with-store (open-connection) (sh-symlink))\n"
"@result{} /gnu/store/...-sh-symlink\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:8870
msgid ""
"Note that the @code{(guix monad-repl)} module extends the Guile REPL with "
"new ``meta-commands'' to make it easier to deal with monadic procedures: "
"@code{run-in-store}, and @code{enter-store-monad}.  The former is used to "
"``run'' a single monadic value through the store:"
msgstr ""

#. type: example
#: doc/guix.texi:8874
#, no-wrap
msgid ""
"scheme@@(guile-user)> ,run-in-store (package->derivation hello)\n"
"$1 = #<derivation /gnu/store/@dots{}-hello-2.9.drv => @dots{}>\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:8878
msgid ""
"The latter enters a recursive REPL, where all the return values are "
"automatically run through the store:"
msgstr ""

#. type: example
#: doc/guix.texi:8887
#, no-wrap
msgid ""
"scheme@@(guile-user)> ,enter-store-monad\n"
"store-monad@@(guile-user) [1]> (package->derivation hello)\n"
"$2 = #<derivation /gnu/store/@dots{}-hello-2.9.drv => @dots{}>\n"
"store-monad@@(guile-user) [1]> (text-file \"foo\" \"Hello!\")\n"
"$3 = \"/gnu/store/@dots{}-foo\"\n"
"store-monad@@(guile-user) [1]> ,q\n"
"scheme@@(guile-user)>\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:8892
msgid ""
"Note that non-monadic values cannot be returned in the @code{store-monad} "
"REPL."
msgstr ""

#. type: Plain text
#: doc/guix.texi:8895
msgid ""
"The main syntactic forms to deal with monads in general are provided by the "
"@code{(guix monads)} module and are described below."
msgstr ""

#. type: deffn
#: doc/guix.texi:8896
#, no-wrap
msgid "{Scheme Syntax} with-monad @var{monad} @var{body} ..."
msgstr ""

#. type: deffn
#: doc/guix.texi:8899
msgid ""
"Evaluate any @code{>>=} or @code{return} forms in @var{body} as being in "
"@var{monad}."
msgstr ""

#. type: deffn
#: doc/guix.texi:8901
#, no-wrap
msgid "{Scheme Syntax} return @var{val}"
msgstr ""

#. type: deffn
#: doc/guix.texi:8903
msgid "Return a monadic value that encapsulates @var{val}."
msgstr ""

#. type: deffn
#: doc/guix.texi:8905
#, no-wrap
msgid "{Scheme Syntax} >>= @var{mval} @var{mproc} ..."
msgstr ""

#. type: deffn
#: doc/guix.texi:8912
msgid ""
"@dfn{Bind} monadic value @var{mval}, passing its ``contents'' to monadic "
"procedures @var{mproc}@dots{}@footnote{This operation is commonly referred "
"to as ``bind'', but that name denotes an unrelated procedure in Guile.  Thus "
"we use this somewhat cryptic symbol inherited from the Haskell language.}.  "
"There can be one @var{mproc} or several of them, as in this example:"
msgstr ""

#. type: lisp
#: doc/guix.texi:8920
#, no-wrap
msgid ""
"(run-with-state\n"
"    (with-monad %state-monad\n"
"      (>>= (return 1)\n"
"           (lambda (x) (return (+ 1 x)))\n"
"           (lambda (x) (return (* 2 x)))))\n"
"  'some-state)\n"
"\n"
msgstr ""

#. type: lisp
#: doc/guix.texi:8923
#, no-wrap
msgid ""
"@result{} 4\n"
"@result{} some-state\n"
msgstr ""

#. type: deffn
#: doc/guix.texi:8926
#, no-wrap
msgid "{Scheme Syntax} mlet @var{monad} ((@var{var} @var{mval}) ...) @"
msgstr ""

#. type: deffn
#: doc/guix.texi:8928
msgid "@var{body} ..."
msgstr ""

#. type: deffnx
#: doc/guix.texi:8928
#, no-wrap
msgid "{Scheme Syntax} mlet* @var{monad} ((@var{var} @var{mval}) ...) @"
msgstr ""

#. type: deffn
#: doc/guix.texi:8940
msgid ""
"@var{body} ...  Bind the variables @var{var} to the monadic values "
"@var{mval} in @var{body}, which is a sequence of expressions.  As with the "
"bind operator, this can be thought of as ``unpacking'' the raw, non-monadic "
"value ``contained'' in @var{mval} and making @var{var} refer to that raw, "
"non-monadic value within the scope of the @var{body}.  The form (@var{var} -"
"> @var{val}) binds @var{var} to the ``normal'' value @var{val}, as per "
"@code{let}.  The binding operations occur in sequence from left to right.  "
"The last expression of @var{body} must be a monadic expression, and its "
"result will become the result of the @code{mlet} or @code{mlet*} when run in "
"the @var{monad}."
msgstr ""

#. type: deffn
#: doc/guix.texi:8943
msgid ""
"@code{mlet*} is to @code{mlet} what @code{let*} is to @code{let} "
"(@pxref{Local Bindings,,, guile, GNU Guile Reference Manual})."
msgstr ""

#. type: deffn
#: doc/guix.texi:8945
#, no-wrap
msgid "{Scheme System} mbegin @var{monad} @var{mexp} ..."
msgstr ""

#. type: deffn
#: doc/guix.texi:8949
msgid ""
"Bind @var{mexp} and the following monadic expressions in sequence, returning "
"the result of the last expression.  Every expression in the sequence must be "
"a monadic expression."
msgstr ""

#. type: deffn
#: doc/guix.texi:8953
msgid ""
"This is akin to @code{mlet}, except that the return values of the monadic "
"expressions are ignored.  In that sense, it is analogous to @code{begin}, "
"but applied to monadic expressions."
msgstr ""

#. type: deffn
#: doc/guix.texi:8955
#, no-wrap
msgid "{Scheme System} mwhen @var{condition} @var{mexp0} @var{mexp*} ..."
msgstr ""

#. type: deffn
#: doc/guix.texi:8960
msgid ""
"When @var{condition} is true, evaluate the sequence of monadic expressions "
"@var{mexp0}..@var{mexp*} as in an @code{mbegin}.  When @var{condition} is "
"false, return @code{*unspecified*} in the current monad.  Every expression "
"in the sequence must be a monadic expression."
msgstr ""

#. type: deffn
#: doc/guix.texi:8962
#, no-wrap
msgid "{Scheme System} munless @var{condition} @var{mexp0} @var{mexp*} ..."
msgstr ""

#. type: deffn
#: doc/guix.texi:8967
msgid ""
"When @var{condition} is false, evaluate the sequence of monadic expressions "
"@var{mexp0}..@var{mexp*} as in an @code{mbegin}.  When @var{condition} is "
"true, return @code{*unspecified*} in the current monad.  Every expression in "
"the sequence must be a monadic expression."
msgstr ""

#. type: cindex
#: doc/guix.texi:8969
#, no-wrap
msgid "state monad"
msgstr ""

#. type: Plain text
#: doc/guix.texi:8973
msgid ""
"The @code{(guix monads)} module provides the @dfn{state monad}, which allows "
"an additional value---the state---to be @emph{threaded} through monadic "
"procedure calls."
msgstr ""

#. type: defvr
#: doc/guix.texi:8974
#, no-wrap
msgid "{Scheme Variable} %state-monad"
msgstr ""

#. type: defvr
#: doc/guix.texi:8977
msgid ""
"The state monad.  Procedures in the state monad can access and change the "
"state that is threaded."
msgstr ""

#. type: defvr
#: doc/guix.texi:8981
msgid ""
"Consider the example below.  The @code{square} procedure returns a value in "
"the state monad.  It returns the square of its argument, but also increments "
"the current state value:"
msgstr ""

#. type: lisp
#: doc/guix.texi:8988
#, no-wrap
msgid ""
"(define (square x)\n"
"  (mlet %state-monad ((count (current-state)))\n"
"    (mbegin %state-monad\n"
"      (set-current-state (+ 1 count))\n"
"      (return (* x x)))))\n"
"\n"
msgstr ""

#. type: lisp
#: doc/guix.texi:8992
#, no-wrap
msgid ""
"(run-with-state (sequence %state-monad (map square (iota 3))) 0)\n"
"@result{} (0 1 4)\n"
"@result{} 3\n"
msgstr ""

#. type: defvr
#: doc/guix.texi:8996
msgid ""
"When ``run'' through @code{%state-monad}, we obtain that additional state "
"value, which is the number of @code{square} calls."
msgstr ""

#. type: deffn
#: doc/guix.texi:8998
#, no-wrap
msgid "{Monadic Procedure} current-state"
msgstr ""

#. type: deffn
#: doc/guix.texi:9000
msgid "Return the current state as a monadic value."
msgstr ""

#. type: deffn
#: doc/guix.texi:9002
#, no-wrap
msgid "{Monadic Procedure} set-current-state @var{value}"
msgstr ""

#. type: deffn
#: doc/guix.texi:9005
msgid ""
"Set the current state to @var{value} and return the previous state as a "
"monadic value."
msgstr ""

#. type: deffn
#: doc/guix.texi:9007
#, no-wrap
msgid "{Monadic Procedure} state-push @var{value}"
msgstr ""

#. type: deffn
#: doc/guix.texi:9010
msgid ""
"Push @var{value} to the current state, which is assumed to be a list, and "
"return the previous state as a monadic value."
msgstr ""

#. type: deffn
#: doc/guix.texi:9012
#, no-wrap
msgid "{Monadic Procedure} state-pop"
msgstr ""

#. type: deffn
#: doc/guix.texi:9015
msgid ""
"Pop a value from the current state and return it as a monadic value.  The "
"state is assumed to be a list."
msgstr ""

#. type: deffn
#: doc/guix.texi:9017
#, no-wrap
msgid "{Scheme Procedure} run-with-state @var{mval} [@var{state}]"
msgstr ""

#. type: deffn
#: doc/guix.texi:9020
msgid ""
"Run monadic value @var{mval} starting with @var{state} as the initial "
"state.  Return two values: the resulting value, and the resulting state."
msgstr ""

#. type: Plain text
#: doc/guix.texi:9024
msgid ""
"The main interface to the store monad, provided by the @code{(guix store)} "
"module, is as follows."
msgstr ""

#. type: defvr
#: doc/guix.texi:9025
#, no-wrap
msgid "{Scheme Variable} %store-monad"
msgstr ""

#. type: defvr
#: doc/guix.texi:9027
msgid "The store monad---an alias for @code{%state-monad}."
msgstr ""

#. type: defvr
#: doc/guix.texi:9031
msgid ""
"Values in the store monad encapsulate accesses to the store.  When its "
"effect is needed, a value of the store monad must be ``evaluated'' by "
"passing it to the @code{run-with-store} procedure (see below)."
msgstr ""

#. type: deffn
#: doc/guix.texi:9033
#, no-wrap
msgid "{Scheme Procedure} run-with-store @var{store} @var{mval} [#:guile-for-build] [#:system (%current-system)]"
msgstr ""

#. type: deffn
#: doc/guix.texi:9036
msgid ""
"Run @var{mval}, a monadic value in the store monad, in @var{store}, an open "
"store connection."
msgstr ""

#. type: deffn
#: doc/guix.texi:9038
#, no-wrap
msgid "{Monadic Procedure} text-file @var{name} @var{text} [@var{references}]"
msgstr ""

#. type: deffn
#: doc/guix.texi:9042
msgid ""
"Return as a monadic value the absolute file name in the store of the file "
"containing @var{text}, a string.  @var{references} is a list of store items "
"that the resulting text file refers to; it defaults to the empty list."
msgstr ""

#. type: deffn
#: doc/guix.texi:9044
#, no-wrap
msgid "{Monadic Procedure} binary-file @var{name} @var{data} [@var{references}]"
msgstr ""

#. type: deffn
#: doc/guix.texi:9048
msgid ""
"Return as a monadic value the absolute file name in the store of the file "
"containing @var{data}, a bytevector.  @var{references} is a list of store "
"items that the resulting binary file refers to; it defaults to the empty "
"list."
msgstr ""

#. type: deffn
#: doc/guix.texi:9050
#, no-wrap
msgid "{Monadic Procedure} interned-file @var{file} [@var{name}] @"
msgstr ""

#. type: deffn
#: doc/guix.texi:9055
msgid ""
"[#:recursive? #t] [#:select? (const #t)] Return the name of @var{file} once "
"interned in the store.  Use @var{name} as its store name, or the basename of "
"@var{file} if @var{name} is omitted."
msgstr ""

#. type: deffn
#: doc/guix.texi:9059 doc/guix.texi:9482
msgid ""
"When @var{recursive?} is true, the contents of @var{file} are added "
"recursively; if @var{file} designates a flat file and @var{recursive?} is "
"true, its contents are added, and its permission bits are kept."
msgstr ""

#. type: deffn
#: doc/guix.texi:9064 doc/guix.texi:9487
msgid ""
"When @var{recursive?} is true, call @code{(@var{select?} @var{file} "
"@var{stat})} for each directory entry, where @var{file} is the entry's "
"absolute file name and @var{stat} is the result of @code{lstat}; exclude "
"entries for which @var{select?} does not return true."
msgstr ""

#. type: deffn
#: doc/guix.texi:9066
msgid "The example below adds a file to the store, under two different names:"
msgstr ""

#. type: lisp
#: doc/guix.texi:9072
#, no-wrap
msgid ""
"(run-with-store (open-connection)\n"
"  (mlet %store-monad ((a (interned-file \"README\"))\n"
"                      (b (interned-file \"README\" \"LEGU-MIN\")))\n"
"    (return (list a b))))\n"
"\n"
msgstr ""

#. type: lisp
#: doc/guix.texi:9074
#, no-wrap
msgid "@result{} (\"/gnu/store/rwm@dots{}-README\" \"/gnu/store/44i@dots{}-LEGU-MIN\")\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:9080
msgid ""
"The @code{(guix packages)} module exports the following package-related "
"monadic procedures:"
msgstr ""

#. type: deffn
#: doc/guix.texi:9081
#, no-wrap
msgid "{Monadic Procedure} package-file @var{package} [@var{file}] @"
msgstr ""

#. type: deffn
#: doc/guix.texi:9089
msgid ""
"[#:system (%current-system)] [#:target #f] @ [#:output \"out\"] Return as a "
"monadic value in the absolute file name of @var{file} within the "
"@var{output} directory of @var{package}.  When @var{file} is omitted, return "
"the name of the @var{output} directory of @var{package}.  When @var{target} "
"is true, use it as a cross-compilation target triplet."
msgstr ""

#. type: deffn
#: doc/guix.texi:9093
msgid ""
"Note that this procedure does @emph{not} build @var{package}.  Thus, the "
"result might or might not designate an existing file.  We recommend not "
"using this procedure unless you know what you are doing."
msgstr ""

#. type: deffn
#: doc/guix.texi:9095
#, no-wrap
msgid "{Monadic Procedure} package->derivation @var{package} [@var{system}]"
msgstr ""

#. type: deffnx
#: doc/guix.texi:9096
#, no-wrap
msgid "{Monadic Procedure} package->cross-derivation @var{package} @"
msgstr ""

#. type: deffn
#: doc/guix.texi:9100
msgid ""
"@var{target} [@var{system}] Monadic version of @code{package-derivation} and "
"@code{package-cross-derivation} (@pxref{Defining Packages})."
msgstr ""

#. type: cindex
#: doc/guix.texi:9106
#, no-wrap
msgid "G-expression"
msgstr ""

#. type: cindex
#: doc/guix.texi:9107
#, no-wrap
msgid "build code quoting"
msgstr ""

#. type: Plain text
#: doc/guix.texi:9113
msgid ""
"So we have ``derivations'', which represent a sequence of build actions to "
"be performed to produce an item in the store (@pxref{Derivations}).  These "
"build actions are performed when asking the daemon to actually build the "
"derivations; they are run by the daemon in a container (@pxref{Invoking guix-"
"daemon})."
msgstr ""

#. type: cindex
#: doc/guix.texi:9116
#, no-wrap
msgid "strata of code"
msgstr ""

#. type: Plain text
#: doc/guix.texi:9128
msgid ""
"It should come as no surprise that we like to write these build actions in "
"Scheme.  When we do that, we end up with two @dfn{strata} of Scheme "
"code@footnote{The term @dfn{stratum} in this context was coined by Manuel "
"Serrano et al.@: in the context of their work on Hop.  Oleg Kiselyov, who "
"has written insightful @url{http://okmij.org/ftp/meta-programming/#meta-"
"scheme, essays and code on this topic}, refers to this kind of code "
"generation as @dfn{staging}.}: the ``host code''---code that defines "
"packages, talks to the daemon, etc.---and the ``build code''---code that "
"actually performs build actions, such as making directories, invoking "
"@command{make}, and so on (@pxref{Build Phases})."
msgstr ""

#. type: Plain text
#: doc/guix.texi:9135
msgid ""
"To describe a derivation and its build actions, one typically needs to embed "
"build code inside host code.  It boils down to manipulating build code as "
"data, and the homoiconicity of Scheme---code has a direct representation as "
"data---comes in handy for that.  But we need more than the normal "
"@code{quasiquote} mechanism in Scheme to construct build expressions."
msgstr ""

#. type: Plain text
#: doc/guix.texi:9144
msgid ""
"The @code{(guix gexp)} module implements @dfn{G-expressions}, a form of S-"
"expressions adapted to build expressions.  G-expressions, or @dfn{gexps}, "
"consist essentially of three syntactic forms: @code{gexp}, @code{ungexp}, "
"and @code{ungexp-splicing} (or simply: @code{#~}, @code{#$}, and @code{#"
"$@@}), which are comparable to @code{quasiquote}, @code{unquote}, and "
"@code{unquote-splicing}, respectively (@pxref{Expression Syntax, "
"@code{quasiquote},, guile, GNU Guile Reference Manual}).  However, there are "
"major differences:"
msgstr ""

#. type: itemize
#: doc/guix.texi:9149
msgid ""
"Gexps are meant to be written to a file and run or manipulated by other "
"processes."
msgstr ""

#. type: itemize
#: doc/guix.texi:9154
msgid ""
"When a high-level object such as a package or derivation is unquoted inside "
"a gexp, the result is as if its output file name had been introduced."
msgstr ""

#. type: itemize
#: doc/guix.texi:9159
msgid ""
"Gexps carry information about the packages or derivations they refer to, and "
"these dependencies are automatically added as inputs to the build processes "
"that use them."
msgstr ""

#. type: cindex
#: doc/guix.texi:9161 doc/guix.texi:9718
#, no-wrap
msgid "lowering, of high-level objects in gexps"
msgstr ""

#. type: Plain text
#: doc/guix.texi:9171
msgid ""
"This mechanism is not limited to package and derivation objects: "
"@dfn{compilers} able to ``lower'' other high-level objects to derivations or "
"files in the store can be defined, such that these objects can also be "
"inserted into gexps.  For example, a useful type of high-level objects that "
"can be inserted in a gexp is ``file-like objects'', which make it easy to "
"add files to the store and to refer to them in derivations and such (see "
"@code{local-file} and @code{plain-file} below)."
msgstr ""

#. type: Plain text
#: doc/guix.texi:9173
msgid "To illustrate the idea, here is an example of a gexp:"
msgstr ""

#. type: lisp
#: doc/guix.texi:9181
#, no-wrap
msgid ""
"(define build-exp\n"
"  #~(begin\n"
"      (mkdir #$output)\n"
"      (chdir #$output)\n"
"      (symlink (string-append #$coreutils \"/bin/ls\")\n"
"               \"list-files\")))\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:9186
msgid ""
"This gexp can be passed to @code{gexp->derivation}; we obtain a derivation "
"that builds a directory containing exactly one symlink to @file{/gnu/store/"
"@dots{}-coreutils-8.22/bin/ls}:"
msgstr ""

#. type: lisp
#: doc/guix.texi:9189
#, no-wrap
msgid "(gexp->derivation \"the-thing\" build-exp)\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:9197
msgid ""
"As one would expect, the @code{\"/gnu/store/@dots{}-coreutils-8.22\"} string "
"is substituted to the reference to the @var{coreutils} package in the actual "
"build code, and @var{coreutils} is automatically made an input to the "
"derivation.  Likewise, @code{#$output} (equivalent to @code{(ungexp "
"output)}) is replaced by a string containing the directory name of the "
"output of the derivation."
msgstr ""

#. type: cindex
#: doc/guix.texi:9198
#, no-wrap
msgid "cross compilation"
msgstr ""

#. type: Plain text
#: doc/guix.texi:9204
msgid ""
"In a cross-compilation context, it is useful to distinguish between "
"references to the @emph{native} build of a package---that can run on the "
"host---versus references to cross builds of a package.  To that end, the "
"@code{#+} plays the same role as @code{#$}, but is a reference to a native "
"package build:"
msgstr ""

#. type: lisp
#: doc/guix.texi:9215
#, no-wrap
msgid ""
"(gexp->derivation \"vi\"\n"
"   #~(begin\n"
"       (mkdir #$output)\n"
"       (mkdir (string-append #$output \"/bin\"))\n"
"       (system* (string-append #+coreutils \"/bin/ln\")\n"
"                \"-s\"\n"
"                (string-append #$emacs \"/bin/emacs\")\n"
"                (string-append #$output \"/bin/vi\")))\n"
"   #:target \"aarch64-linux-gnu\")\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:9221
msgid ""
"In the example above, the native build of @var{coreutils} is used, so that "
"@command{ln} can actually run on the host; but then the cross-compiled build "
"of @var{emacs} is referenced."
msgstr ""

#. type: cindex
#: doc/guix.texi:9222
#, no-wrap
msgid "imported modules, for gexps"
msgstr ""

#. type: findex
#: doc/guix.texi:9223
#, no-wrap
msgid "with-imported-modules"
msgstr ""

#. type: Plain text
#: doc/guix.texi:9228
msgid ""
"Another gexp feature is @dfn{imported modules}: sometimes you want to be "
"able to use certain Guile modules from the ``host environment'' in the gexp, "
"so those modules should be imported in the ``build environment''.  The "
"@code{with-imported-modules} form allows you to express that:"
msgstr ""

#. type: lisp
#: doc/guix.texi:9239
#, no-wrap
msgid ""
"(let ((build (with-imported-modules '((guix build utils))\n"
"               #~(begin\n"
"                   (use-modules (guix build utils))\n"
"                   (mkdir-p (string-append #$output \"/bin\"))))))\n"
"  (gexp->derivation \"empty-dir\"\n"
"                    #~(begin\n"
"                        #$build\n"
"                        (display \"success!\\n\")\n"
"                        #t)))\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:9245
msgid ""
"In this example, the @code{(guix build utils)} module is automatically "
"pulled into the isolated build environment of our gexp, such that @code{(use-"
"modules (guix build utils))} works as expected."
msgstr ""

#. type: cindex
#: doc/guix.texi:9246
#, no-wrap
msgid "module closure"
msgstr ""

#. type: findex
#: doc/guix.texi:9247
#, no-wrap
msgid "source-module-closure"
msgstr ""

#. type: Plain text
#: doc/guix.texi:9254
msgid ""
"Usually you want the @emph{closure} of the module to be imported---i.e., the "
"module itself and all the modules it depends on---rather than just the "
"module; failing to do that, attempts to use the module will fail because of "
"missing dependent modules.  The @code{source-module-closure} procedure "
"computes the closure of a module by looking at its source file headers, "
"which comes in handy in this case:"
msgstr ""

#. type: lisp
#: doc/guix.texi:9257
#, no-wrap
msgid ""
"(use-modules (guix modules))   ;for 'source-module-closure'\n"
"\n"
msgstr ""

#. type: lisp
#: doc/guix.texi:9266
#, no-wrap
msgid ""
"(with-imported-modules (source-module-closure\n"
"                         '((guix build utils)\n"
"                           (gnu build vm)))\n"
"  (gexp->derivation \"something-with-vms\"\n"
"                    #~(begin\n"
"                        (use-modules (guix build utils)\n"
"                                     (gnu build vm))\n"
"                        @dots{})))\n"
msgstr ""

#. type: cindex
#: doc/guix.texi:9268
#, no-wrap
msgid "extensions, for gexps"
msgstr ""

#. type: findex
#: doc/guix.texi:9269
#, no-wrap
msgid "with-extensions"
msgstr ""

#. type: Plain text
#: doc/guix.texi:9274
msgid ""
"In the same vein, sometimes you want to import not just pure-Scheme modules, "
"but also ``extensions'' such as Guile bindings to C libraries or other "
"``full-blown'' packages.  Say you need the @code{guile-json} package "
"available on the build side, here's how you would do it:"
msgstr ""

#. type: lisp
#: doc/guix.texi:9277
#, no-wrap
msgid ""
"(use-modules (gnu packages guile))  ;for 'guile-json'\n"
"\n"
msgstr ""

#. type: lisp
#: doc/guix.texi:9283
#, no-wrap
msgid ""
"(with-extensions (list guile-json)\n"
"  (gexp->derivation \"something-with-json\"\n"
"                    #~(begin\n"
"                        (use-modules (json))\n"
"                        @dots{})))\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:9286
msgid "The syntactic form to construct gexps is summarized below."
msgstr ""

#. type: deffn
#: doc/guix.texi:9287
#, no-wrap
msgid "{Scheme Syntax} #~@var{exp}"
msgstr ""

#. type: deffnx
#: doc/guix.texi:9288
#, no-wrap
msgid "{Scheme Syntax} (gexp @var{exp})"
msgstr ""

#. type: deffn
#: doc/guix.texi:9291
msgid ""
"Return a G-expression containing @var{exp}.  @var{exp} may contain one or "
"more of the following forms:"
msgstr ""

#. type: item
#: doc/guix.texi:9293
#, no-wrap
msgid "#$@var{obj}"
msgstr ""

#. type: itemx
#: doc/guix.texi:9294
#, no-wrap
msgid "(ungexp @var{obj})"
msgstr ""

#. type: table
#: doc/guix.texi:9299
msgid ""
"Introduce a reference to @var{obj}.  @var{obj} may have one of the supported "
"types, for example a package or a derivation, in which case the "
"@code{ungexp} form is replaced by its output file name---e.g., @code{\"/gnu/"
"store/@dots{}-coreutils-8.22}."
msgstr ""

#. type: table
#: doc/guix.texi:9302
msgid ""
"If @var{obj} is a list, it is traversed and references to supported objects "
"are substituted similarly."
msgstr ""

#. type: table
#: doc/guix.texi:9305
msgid ""
"If @var{obj} is another gexp, its contents are inserted and its dependencies "
"are added to those of the containing gexp."
msgstr ""

#. type: table
#: doc/guix.texi:9307
msgid "If @var{obj} is another kind of object, it is inserted as is."
msgstr ""

#. type: item
#: doc/guix.texi:9308
#, no-wrap
msgid "#$@var{obj}:@var{output}"
msgstr ""

#. type: itemx
#: doc/guix.texi:9309
#, no-wrap
msgid "(ungexp @var{obj} @var{output})"
msgstr ""

#. type: table
#: doc/guix.texi:9313
msgid ""
"This is like the form above, but referring explicitly to the @var{output} of "
"@var{obj}---this is useful when @var{obj} produces multiple outputs "
"(@pxref{Packages with Multiple Outputs})."
msgstr ""

#. type: item
#: doc/guix.texi:9314
#, no-wrap
msgid "#+@var{obj}"
msgstr ""

#. type: itemx
#: doc/guix.texi:9315
#, no-wrap
msgid "#+@var{obj}:output"
msgstr ""

#. type: itemx
#: doc/guix.texi:9316
#, no-wrap
msgid "(ungexp-native @var{obj})"
msgstr ""

#. type: itemx
#: doc/guix.texi:9317
#, no-wrap
msgid "(ungexp-native @var{obj} @var{output})"
msgstr ""

#. type: table
#: doc/guix.texi:9320
msgid ""
"Same as @code{ungexp}, but produces a reference to the @emph{native} build "
"of @var{obj} when used in a cross compilation context."
msgstr ""

#. type: item
#: doc/guix.texi:9321
#, no-wrap
msgid "#$output[:@var{output}]"
msgstr ""

#. type: itemx
#: doc/guix.texi:9322
#, no-wrap
msgid "(ungexp output [@var{output}])"
msgstr ""

#. type: table
#: doc/guix.texi:9325
msgid ""
"Insert a reference to derivation output @var{output}, or to the main output "
"when @var{output} is omitted."
msgstr ""

#. type: table
#: doc/guix.texi:9327
msgid "This only makes sense for gexps passed to @code{gexp->derivation}."
msgstr ""

#. type: item
#: doc/guix.texi:9328
#, no-wrap
msgid "#$@@@var{lst}"
msgstr ""

#. type: itemx
#: doc/guix.texi:9329
#, no-wrap
msgid "(ungexp-splicing @var{lst})"
msgstr ""

#. type: table
#: doc/guix.texi:9332
msgid ""
"Like the above, but splices the contents of @var{lst} inside the containing "
"list."
msgstr ""

#. type: item
#: doc/guix.texi:9333
#, no-wrap
msgid "#+@@@var{lst}"
msgstr ""

#. type: itemx
#: doc/guix.texi:9334
#, no-wrap
msgid "(ungexp-native-splicing @var{lst})"
msgstr ""

#. type: table
#: doc/guix.texi:9337
msgid ""
"Like the above, but refers to native builds of the objects listed in "
"@var{lst}."
msgstr ""

#. type: deffn
#: doc/guix.texi:9342
msgid ""
"G-expressions created by @code{gexp} or @code{#~} are run-time objects of "
"the @code{gexp?} type (see below)."
msgstr ""

#. type: deffn
#: doc/guix.texi:9344
#, no-wrap
msgid "{Scheme Syntax} with-imported-modules @var{modules} @var{body}@dots{}"
msgstr ""

#. type: deffn
#: doc/guix.texi:9347
msgid ""
"Mark the gexps defined in @var{body}@dots{} as requiring @var{modules} in "
"their execution environment."
msgstr ""

#. type: deffn
#: doc/guix.texi:9351
msgid ""
"Each item in @var{modules} can be the name of a module, such as @code{(guix "
"build utils)}, or it can be a module name, followed by an arrow, followed by "
"a file-like object:"
msgstr ""

#. type: lisp
#: doc/guix.texi:9357
#, no-wrap
msgid ""
"`((guix build utils)\n"
"  (guix gcrypt)\n"
"  ((guix config) => ,(scheme-file \"config.scm\"\n"
"                                  #~(define-module @dots{}))))\n"
msgstr ""

#. type: deffn
#: doc/guix.texi:9362
msgid ""
"In the example above, the first two modules are taken from the search path, "
"and the last one is created from the given file-like object."
msgstr ""

#. type: deffn
#: doc/guix.texi:9366
msgid ""
"This form has @emph{lexical} scope: it has an effect on the gexps directly "
"defined in @var{body}@dots{}, but not on those defined, say, in procedures "
"called from @var{body}@dots{}."
msgstr ""

#. type: deffn
#: doc/guix.texi:9368
#, no-wrap
msgid "{Scheme Syntax} with-extensions @var{extensions} @var{body}@dots{}"
msgstr ""

#. type: deffn
#: doc/guix.texi:9373
msgid ""
"Mark the gexps defined in @var{body}@dots{} as requiring @var{extensions} in "
"their build and execution environment.  @var{extensions} is typically a list "
"of package objects such as those defined in the @code{(gnu packages guile)} "
"module."
msgstr ""

#. type: deffn
#: doc/guix.texi:9378
msgid ""
"Concretely, the packages listed in @var{extensions} are added to the load "
"path while compiling imported modules in @var{body}@dots{}; they are also "
"added to the load path of the gexp returned by @var{body}@dots{}."
msgstr ""

#. type: deffn
#: doc/guix.texi:9380
#, no-wrap
msgid "{Scheme Procedure} gexp? @var{obj}"
msgstr ""

#. type: deffn
#: doc/guix.texi:9382
msgid "Return @code{#t} if @var{obj} is a G-expression."
msgstr ""

#. type: Plain text
#: doc/guix.texi:9388
msgid ""
"G-expressions are meant to be written to disk, either as code building some "
"derivation, or as plain files in the store.  The monadic procedures below "
"allow you to do that (@pxref{The Store Monad}, for more information about "
"monads)."
msgstr ""

#. type: deffn
#: doc/guix.texi:9389
#, no-wrap
msgid "{Monadic Procedure} gexp->derivation @var{name} @var{exp} @"
msgstr ""

#. type: deffn
#: doc/guix.texi:9407
msgid ""
"[#:system (%current-system)] [#:target #f] [#:graft? #t] @ [#:hash #f] [#:"
"hash-algo #f] @ [#:recursive? #f] [#:env-vars '()] [#:modules '()] @ [#:"
"module-path @code{%load-path}] @ [#:effective-version \"2.2\"] @ [#:"
"references-graphs #f] [#:allowed-references #f] @ [#:disallowed-references "
"#f] @ [#:leaked-env-vars #f] @ [#:script-name (string-append @var{name} \"-"
"builder\")] @ [#:deprecation-warnings #f] @ [#:local-build? #f] [#:"
"substitutable? #t] @ [#:properties '()] [#:guile-for-build #f] Return a "
"derivation @var{name} that runs @var{exp} (a gexp) with @var{guile-for-"
"build} (a derivation) on @var{system}; @var{exp} is stored in a file called "
"@var{script-name}.  When @var{target} is true, it is used as the cross-"
"compilation target triplet for packages referred to by @var{exp}."
msgstr ""

#. type: deffn
#: doc/guix.texi:9415
msgid ""
"@var{modules} is deprecated in favor of @code{with-imported-modules}.  Its "
"meaning is to make @var{modules} available in the evaluation context of "
"@var{exp}; @var{modules} is a list of names of Guile modules searched in "
"@var{module-path} to be copied in the store, compiled, and made available in "
"the load path during the execution of @var{exp}---e.g., @code{((guix build "
"utils) (guix build gnu-build-system))}."
msgstr ""

#. type: deffn
#: doc/guix.texi:9418
msgid ""
"@var{effective-version} determines the string to use when adding extensions "
"of @var{exp} (see @code{with-extensions}) to the search path---e.g., "
"@code{\"2.2\"}."
msgstr ""

#. type: deffn
#: doc/guix.texi:9421
msgid ""
"@var{graft?} determines whether packages referred to by @var{exp} should be "
"grafted when applicable."
msgstr ""

#. type: deffn
#: doc/guix.texi:9424
msgid ""
"When @var{references-graphs} is true, it must be a list of tuples of one of "
"the following forms:"
msgstr ""

#. type: example
#: doc/guix.texi:9431
#, no-wrap
msgid ""
"(@var{file-name} @var{package})\n"
"(@var{file-name} @var{package} @var{output})\n"
"(@var{file-name} @var{derivation})\n"
"(@var{file-name} @var{derivation} @var{output})\n"
"(@var{file-name} @var{store-item})\n"
msgstr ""

#. type: deffn
#: doc/guix.texi:9437
msgid ""
"The right-hand-side of each element of @var{references-graphs} is "
"automatically made an input of the build process of @var{exp}.  In the build "
"environment, each @var{file-name} contains the reference graph of the "
"corresponding item, in a simple text format."
msgstr ""

#. type: deffn
#: doc/guix.texi:9443
msgid ""
"@var{allowed-references} must be either @code{#f} or a list of output names "
"and packages.  In the latter case, the list denotes store items that the "
"result is allowed to refer to.  Any reference to another store item will "
"lead to a build error.  Similarly for @var{disallowed-references}, which can "
"list items that must not be referenced by the outputs."
msgstr ""

#. type: deffn
#: doc/guix.texi:9446
msgid ""
"@var{deprecation-warnings} determines whether to show deprecation warnings "
"while compiling modules.  It can be @code{#f}, @code{#t}, or "
"@code{'detailed}."
msgstr ""

#. type: deffn
#: doc/guix.texi:9448
msgid "The other arguments are as for @code{derivation} (@pxref{Derivations})."
msgstr ""

#. type: cindex
#: doc/guix.texi:9450
#, no-wrap
msgid "file-like objects"
msgstr ""

#. type: Plain text
#: doc/guix.texi:9455
msgid ""
"The @code{local-file}, @code{plain-file}, @code{computed-file}, "
"@code{program-file}, and @code{scheme-file} procedures below return "
"@dfn{file-like objects}.  That is, when unquoted in a G-expression, these "
"objects lead to a file in the store.  Consider this G-expression:"
msgstr ""

#. type: lisp
#: doc/guix.texi:9459
#, no-wrap
msgid ""
"#~(system* #$(file-append glibc \"/sbin/nscd\") \"-f\"\n"
"           #$(local-file \"/tmp/my-nscd.conf\"))\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:9468
msgid ""
"The effect here is to ``intern'' @file{/tmp/my-nscd.conf} by copying it to "
"the store.  Once expanded, for instance @i{via} @code{gexp->derivation}, the "
"G-expression refers to that copy under @file{/gnu/store}; thus, modifying or "
"removing the file in @file{/tmp} does not have any effect on what the G-"
"expression does.  @code{plain-file} can be used similarly; it differs in "
"that the file content is directly passed as a string."
msgstr ""

#. type: deffn
#: doc/guix.texi:9469
#, no-wrap
msgid "{Scheme Procedure} local-file @var{file} [@var{name}] @"
msgstr ""

#. type: deffn
#: doc/guix.texi:9478
msgid ""
"[#:recursive? #f] [#:select? (const #t)] Return an object representing local "
"file @var{file} to add to the store; this object can be used in a gexp.  If "
"@var{file} is a literal string denoting a relative file name, it is looked "
"up relative to the source file where it appears; if @var{file} is not a "
"literal string, it is looked up relative to the current working directory at "
"run time.  @var{file} will be added to the store under @var{name}--by "
"default the base name of @var{file}."
msgstr ""

#. type: deffn
#: doc/guix.texi:9490
msgid ""
"This is the declarative counterpart of the @code{interned-file} monadic "
"procedure (@pxref{The Store Monad, @code{interned-file}})."
msgstr ""

#. type: deffn
#: doc/guix.texi:9492
#, no-wrap
msgid "{Scheme Procedure} plain-file @var{name} @var{content}"
msgstr ""

#. type: deffn
#: doc/guix.texi:9495
msgid ""
"Return an object representing a text file called @var{name} with the given "
"@var{content} (a string or a bytevector) to be added to the store."
msgstr ""

#. type: deffn
#: doc/guix.texi:9497
msgid "This is the declarative counterpart of @code{text-file}."
msgstr ""

#. type: deffn
#: doc/guix.texi:9499
#, no-wrap
msgid "{Scheme Procedure} computed-file @var{name} @var{gexp} @"
msgstr ""

#. type: deffn
#: doc/guix.texi:9506
msgid ""
"[#:local-build? #t] [#:options '()] Return an object representing the store "
"item @var{name}, a file or directory computed by @var{gexp}.  When "
"@var{local-build?} is true (the default), the derivation is built locally.  "
"@var{options} is a list of additional arguments to pass to @code{gexp-"
">derivation}."
msgstr ""

#. type: deffn
#: doc/guix.texi:9508
msgid "This is the declarative counterpart of @code{gexp->derivation}."
msgstr ""

#. type: deffn
#: doc/guix.texi:9510
#, no-wrap
msgid "{Monadic Procedure} gexp->script @var{name} @var{exp} @"
msgstr ""

#. type: deffn
#: doc/guix.texi:9516
msgid ""
"[#:guile (default-guile)] [#:module-path %load-path] @ [#:system (%current-"
"system)] [#:target #f] Return an executable script @var{name} that runs "
"@var{exp} using @var{guile}, with @var{exp}'s imported modules in its search "
"path.  Look up @var{exp}'s modules in @var{module-path}."
msgstr ""

#. type: deffn
#: doc/guix.texi:9519
msgid ""
"The example below builds a script that simply invokes the @command{ls} "
"command:"
msgstr ""

#. type: lisp
#: doc/guix.texi:9522
#, no-wrap
msgid ""
"(use-modules (guix gexp) (gnu packages base))\n"
"\n"
msgstr ""

#. type: lisp
#: doc/guix.texi:9526
#, no-wrap
msgid ""
"(gexp->script \"list-files\"\n"
"              #~(execl #$(file-append coreutils \"/bin/ls\")\n"
"                       \"ls\"))\n"
msgstr ""

#. type: deffn
#: doc/guix.texi:9531
msgid ""
"When ``running'' it through the store (@pxref{The Store Monad, @code{run-"
"with-store}}), we obtain a derivation that produces an executable file "
"@file{/gnu/store/@dots{}-list-files} along these lines:"
msgstr ""

#. type: example
#: doc/guix.texi:9536
#, no-wrap
msgid ""
"#!/gnu/store/@dots{}-guile-2.0.11/bin/guile -ds\n"
"!#\n"
"(execl \"/gnu/store/@dots{}-coreutils-8.22\"/bin/ls\" \"ls\")\n"
msgstr ""

#. type: deffn
#: doc/guix.texi:9539
#, no-wrap
msgid "{Scheme Procedure} program-file @var{name} @var{exp} @"
msgstr ""

#. type: deffn
#: doc/guix.texi:9544
msgid ""
"[#:guile #f] [#:module-path %load-path] Return an object representing the "
"executable store item @var{name} that runs @var{gexp}.  @var{guile} is the "
"Guile package used to execute that script.  Imported modules of @var{gexp} "
"are looked up in @var{module-path}."
msgstr ""

#. type: deffn
#: doc/guix.texi:9546
msgid "This is the declarative counterpart of @code{gexp->script}."
msgstr ""

#. type: deffn
#: doc/guix.texi:9548
#, no-wrap
msgid "{Monadic Procedure} gexp->file @var{name} @var{exp} @"
msgstr ""

#. type: deffn
#: doc/guix.texi:9555
msgid ""
"[#:set-load-path? #t] [#:module-path %load-path] @ [#:splice? #f] @ [#:guile "
"(default-guile)] Return a derivation that builds a file @var{name} "
"containing @var{exp}.  When @var{splice?} is true, @var{exp} is considered "
"to be a list of expressions that will be spliced in the resulting file."
msgstr ""

#. type: deffn
#: doc/guix.texi:9560
msgid ""
"When @var{set-load-path?} is true, emit code in the resulting file to set "
"@code{%load-path} and @code{%load-compiled-path} to honor @var{exp}'s "
"imported modules.  Look up @var{exp}'s modules in @var{module-path}."
msgstr ""

#. type: deffn
#: doc/guix.texi:9563
msgid ""
"The resulting file holds references to all the dependencies of @var{exp} or "
"a subset thereof."
msgstr ""

#. type: deffn
#: doc/guix.texi:9565
#, no-wrap
msgid "{Scheme Procedure} scheme-file @var{name} @var{exp} @"
msgstr ""

#. type: deffn
#: doc/guix.texi:9569
msgid ""
"[#:splice? #f] [#:set-load-path? #t] Return an object representing the "
"Scheme file @var{name} that contains @var{exp}."
msgstr ""

#. type: deffn
#: doc/guix.texi:9571
msgid "This is the declarative counterpart of @code{gexp->file}."
msgstr ""

#. type: deffn
#: doc/guix.texi:9573
#, no-wrap
msgid "{Monadic Procedure} text-file* @var{name} @var{text} @dots{}"
msgstr ""

#. type: deffn
#: doc/guix.texi:9579
msgid ""
"Return as a monadic value a derivation that builds a text file containing "
"all of @var{text}.  @var{text} may list, in addition to strings, objects of "
"any type that can be used in a gexp: packages, derivations, local file "
"objects, etc.  The resulting store file holds references to all these."
msgstr ""

#. type: deffn
#: doc/guix.texi:9584
msgid ""
"This variant should be preferred over @code{text-file} anytime the file to "
"create will reference items from the store.  This is typically the case when "
"building a configuration file that embeds store file names, like this:"
msgstr ""

#. type: lisp
#: doc/guix.texi:9592
#, no-wrap
msgid ""
"(define (profile.sh)\n"
"  ;; Return the name of a shell script in the store that\n"
"  ;; initializes the 'PATH' environment variable.\n"
"  (text-file* \"profile.sh\"\n"
"              \"export PATH=\" coreutils \"/bin:\"\n"
"              grep \"/bin:\" sed \"/bin\\n\"))\n"
msgstr ""

#. type: deffn
#: doc/guix.texi:9597
msgid ""
"In this example, the resulting @file{/gnu/store/@dots{}-profile.sh} file "
"will reference @var{coreutils}, @var{grep}, and @var{sed}, thereby "
"preventing them from being garbage-collected during its lifetime."
msgstr ""

#. type: deffn
#: doc/guix.texi:9599
#, no-wrap
msgid "{Scheme Procedure} mixed-text-file @var{name} @var{text} @dots{}"
msgstr ""

#. type: deffn
#: doc/guix.texi:9603
msgid ""
"Return an object representing store file @var{name} containing @var{text}.  "
"@var{text} is a sequence of strings and file-like objects, as in:"
msgstr ""

#. type: lisp
#: doc/guix.texi:9607
#, no-wrap
msgid ""
"(mixed-text-file \"profile\"\n"
"                 \"export PATH=\" coreutils \"/bin:\" grep \"/bin\")\n"
msgstr ""

#. type: deffn
#: doc/guix.texi:9610
msgid "This is the declarative counterpart of @code{text-file*}."
msgstr ""

#. type: deffn
#: doc/guix.texi:9612
#, no-wrap
msgid "{Scheme Procedure} file-union @var{name} @var{files}"
msgstr ""

#. type: deffn
#: doc/guix.texi:9617
msgid ""
"Return a @code{<computed-file>} that builds a directory containing all of "
"@var{files}.  Each item in @var{files} must be a two-element list where the "
"first element is the file name to use in the new directory, and the second "
"element is a gexp denoting the target file.  Here's an example:"
msgstr ""

#. type: lisp
#: doc/guix.texi:9624
#, no-wrap
msgid ""
"(file-union \"etc\"\n"
"            `((\"hosts\" ,(plain-file \"hosts\"\n"
"                                    \"127.0.0.1 localhost\"))\n"
"              (\"bashrc\" ,(plain-file \"bashrc\"\n"
"                                     \"alias ls='ls --color=auto'\"))))\n"
msgstr ""

#. type: deffn
#: doc/guix.texi:9627
msgid "This yields an @code{etc} directory containing these two files."
msgstr ""

#. type: deffn
#: doc/guix.texi:9629
#, no-wrap
msgid "{Scheme Procedure} directory-union @var{name} @var{things}"
msgstr ""

#. type: deffn
#: doc/guix.texi:9632
msgid ""
"Return a directory that is the union of @var{things}, where @var{things} is "
"a list of file-like objects denoting directories.  For example:"
msgstr ""

#. type: lisp
#: doc/guix.texi:9635
#, no-wrap
msgid "(directory-union \"guile+emacs\" (list guile emacs))\n"
msgstr ""

#. type: deffn
#: doc/guix.texi:9638
msgid ""
"yields a directory that is the union of the @code{guile} and @code{emacs} "
"packages."
msgstr ""

#. type: deffn
#: doc/guix.texi:9640
#, no-wrap
msgid "{Scheme Procedure} file-append @var{obj} @var{suffix} @dots{}"
msgstr ""

#. type: deffn
#: doc/guix.texi:9644
msgid ""
"Return a file-like object that expands to the concatenation of @var{obj} and "
"@var{suffix}, where @var{obj} is a lowerable object and each @var{suffix} is "
"a string."
msgstr ""

#. type: deffn
#: doc/guix.texi:9646
msgid "As an example, consider this gexp:"
msgstr ""

#. type: lisp
#: doc/guix.texi:9651
#, no-wrap
msgid ""
"(gexp->script \"run-uname\"\n"
"              #~(system* #$(file-append coreutils\n"
"                                        \"/bin/uname\")))\n"
msgstr ""

#. type: deffn
#: doc/guix.texi:9654
msgid "The same effect could be achieved with:"
msgstr ""

#. type: lisp
#: doc/guix.texi:9659
#, no-wrap
msgid ""
"(gexp->script \"run-uname\"\n"
"              #~(system* (string-append #$coreutils\n"
"                                        \"/bin/uname\")))\n"
msgstr ""

#. type: deffn
#: doc/guix.texi:9665
msgid ""
"There is one difference though: in the @code{file-append} case, the "
"resulting script contains the absolute file name as a string, whereas in the "
"second case, the resulting script contains a @code{(string-append @dots{})} "
"expression to construct the file name @emph{at run time}."
msgstr ""

#. type: deffn
#: doc/guix.texi:9667
#, no-wrap
msgid "{Scheme Syntax} let-system @var{system} @var{body}@dots{}"
msgstr ""

#. type: deffnx
#: doc/guix.texi:9668
#, no-wrap
msgid "{Scheme Syntax} let-system (@var{system} @var{target}) @var{body}@dots{}"
msgstr ""

#. type: deffn
#: doc/guix.texi:9671
msgid ""
"Bind @var{system} to the currently targeted system---e.g., @code{\"x86_64-"
"linux\"}---within @var{body}."
msgstr ""

#. type: deffn
#: doc/guix.texi:9676
msgid ""
"In the second case, additionally bind @var{target} to the current cross-"
"compilation target---a GNU triplet such as @code{\"arm-linux-gnueabihf\"}---"
"or @code{#f} if we are not cross-compiling."
msgstr ""

#. type: deffn
#: doc/guix.texi:9679
msgid ""
"@code{let-system} is useful in the occasional case where the object spliced "
"into the gexp depends on the target system, as in this example:"
msgstr ""

#. type: lisp
#: doc/guix.texi:9690
#, no-wrap
msgid ""
"#~(system*\n"
"   #+(let-system system\n"
"       (cond ((string-prefix? \"armhf-\" system)\n"
"              (file-append qemu \"/bin/qemu-system-arm\"))\n"
"             ((string-prefix? \"x86_64-\" system)\n"
"              (file-append qemu \"/bin/qemu-system-x86_64\"))\n"
"             (else\n"
"              (error \"dunno!\"))))\n"
"   \"-net\" \"user\" #$image)\n"
msgstr ""

#. type: deffn
#: doc/guix.texi:9693
#, no-wrap
msgid "{Scheme Syntax} with-parameters ((@var{parameter} @var{value}) @dots{}) @var{exp}"
msgstr ""

#. type: deffn
#: doc/guix.texi:9699
msgid ""
"This macro is similar to the @code{parameterize} form for dynamically-bound "
"@dfn{parameters} (@pxref{Parameters,,, guile, GNU Guile Reference Manual}).  "
"The key difference is that it takes effect when the file-like object "
"returned by @var{exp} is lowered to a derivation or store item."
msgstr ""

#. type: deffn
#: doc/guix.texi:9702
msgid ""
"A typical use of @code{with-parameters} is to force the system in effect for "
"a given object:"
msgstr ""

#. type: lisp
#: doc/guix.texi:9706
#, no-wrap
msgid ""
"(with-parameters ((%current-system \"i686-linux\"))\n"
"  coreutils)\n"
msgstr ""

#. type: deffn
#: doc/guix.texi:9710
msgid ""
"The example above returns an object that corresponds to the i686 build of "
"Coreutils, regardless of the current value of @code{%current-system}."
msgstr ""

#. type: Plain text
#: doc/guix.texi:9717
msgid ""
"Of course, in addition to gexps embedded in ``host'' code, there are also "
"modules containing build tools.  To make it clear that they are meant to be "
"used in the build stratum, these modules are kept in the @code{(guix build "
"@dots{})} name space."
msgstr ""

#. type: Plain text
#: doc/guix.texi:9723
msgid ""
"Internally, high-level objects are @dfn{lowered}, using their compiler, to "
"either derivations or store items.  For instance, lowering a package yields "
"a derivation, and lowering a @code{plain-file} yields a store item.  This is "
"achieved using the @code{lower-object} monadic procedure."
msgstr ""

#. type: deffn
#: doc/guix.texi:9724
#, no-wrap
msgid "{Monadic Procedure} lower-object @var{obj} [@var{system}] @"
msgstr ""

#. type: deffn
#: doc/guix.texi:9730
msgid ""
"[#:target #f] Return as a value in @code{%store-monad} the derivation or "
"store item corresponding to @var{obj} for @var{system}, cross-compiling for "
"@var{target} if @var{target} is true.  @var{obj} must be an object that has "
"an associated gexp compiler, such as a @code{<package>}."
msgstr ""

#. type: section
#: doc/guix.texi:9733
#, no-wrap
msgid "Invoking @command{guix repl}"
msgstr ""

#. type: cindex
#: doc/guix.texi:9735
#, no-wrap
msgid "REPL, read-eval-print loop, script"
msgstr ""

#. type: Plain text
#: doc/guix.texi:9745
msgid ""
"The @command{guix repl} command makes it easier to program Guix in Guile by "
"launching a Guile @dfn{read-eval-print loop} (REPL) for interactive "
"programming (@pxref{Using Guile Interactively,,, guile, GNU Guile Reference "
"Manual}), or by running Guile scripts (@pxref{Running Guile Scripts,,, "
"guile, GNU Guile Reference Manual}).  Compared to just launching the "
"@command{guile} command, @command{guix repl} guarantees that all the Guix "
"modules and all its dependencies are available in the search path."
msgstr ""

#. type: example
#: doc/guix.texi:9750
#, no-wrap
msgid "guix repl @var{options} [@var{file} @var{args}]\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:9754
msgid ""
"When a @var{file} argument is provided, @var{file} is executed as a Guile "
"scripts:"
msgstr ""

#. type: example
#: doc/guix.texi:9757
#, no-wrap
msgid "guix repl my-script.scm\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:9761
msgid ""
"To pass arguments to the script, use @code{--} to prevent them from being "
"interpreted as arguments to @command{guix repl} itself:"
msgstr ""

#. type: example
#: doc/guix.texi:9764
#, no-wrap
msgid "guix repl -- my-script.scm --input=foo.txt\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:9769
msgid ""
"To make a script executable directly from the shell, using the guix "
"executable that is on the user's search path, add the following two lines at "
"the top of the script:"
msgstr ""

#. type: example
#: doc/guix.texi:9773
#, no-wrap
msgid ""
"@code{#!/usr/bin/env -S guix repl --}\n"
"@code{!#}\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:9776
msgid "Without a file name argument, a Guile REPL is started:"
msgstr ""

#. type: example
#: doc/guix.texi:9782
#, no-wrap
msgid ""
"$ guix repl\n"
"scheme@@(guile-user)> ,use (gnu packages base)\n"
"scheme@@(guile-user)> coreutils\n"
"$1 = #<package coreutils@@8.29 gnu/packages/base.scm:327 3e28300>\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:9789
msgid ""
"In addition, @command{guix repl} implements a simple machine-readable REPL "
"protocol for use by @code{(guix inferior)}, a facility to interact with "
"@dfn{inferiors}, separate processes running a potentially different revision "
"of Guix."
msgstr ""

#. type: Plain text
#: doc/guix.texi:9791
msgid "The available options are as follows:"
msgstr ""

#. type: item
#: doc/guix.texi:9793 doc/guix.texi:12059
#, no-wrap
msgid "--type=@var{type}"
msgstr ""

#. type: itemx
#: doc/guix.texi:9794 doc/guix.texi:12060 doc/guix.texi:31036
#, no-wrap
msgid "-t @var{type}"
msgstr ""

#. type: table
#: doc/guix.texi:9796
msgid ""
"Start a REPL of the given @var{TYPE}, which can be one of the following:"
msgstr ""

#. type: item
#: doc/guix.texi:9798
#, no-wrap
msgid "guile"
msgstr ""

#. type: table
#: doc/guix.texi:9800
msgid "This is default, and it spawns a standard full-featured Guile REPL."
msgstr ""

#. type: item
#: doc/guix.texi:9800
#, no-wrap
msgid "machine"
msgstr ""

#. type: table
#: doc/guix.texi:9803
msgid ""
"Spawn a REPL that uses the machine-readable protocol.  This is the protocol "
"that the @code{(guix inferior)} module speaks."
msgstr ""

#. type: table
#: doc/guix.texi:9809
msgid ""
"By default, @command{guix repl} reads from standard input and writes to "
"standard output.  When this option is passed, it will instead listen for "
"connections on @var{endpoint}.  Here are examples of valid options:"
msgstr ""

#. type: item
#: doc/guix.texi:9811
#, no-wrap
msgid "--listen=tcp:37146"
msgstr ""

#. type: table
#: doc/guix.texi:9813
msgid "Accept connections on localhost on port 37146."
msgstr ""

#. type: item
#: doc/guix.texi:9814
#, no-wrap
msgid "--listen=unix:/tmp/socket"
msgstr ""

#. type: table
#: doc/guix.texi:9816
msgid "Accept connections on the Unix-domain socket @file{/tmp/socket}."
msgstr ""

#. type: item
#: doc/guix.texi:9818 doc/guix.texi:9922 doc/guix.texi:11528
#: doc/guix.texi:11708 doc/guix.texi:11853 doc/guix.texi:12107
#, no-wrap
msgid "--load-path=@var{directory}"
msgstr ""

#. type: itemx
#: doc/guix.texi:9819 doc/guix.texi:9923 doc/guix.texi:11709
#: doc/guix.texi:11854 doc/guix.texi:12108
#, no-wrap
msgid "-L @var{directory}"
msgstr ""

#. type: table
#: doc/guix.texi:9822 doc/guix.texi:9926 doc/guix.texi:11531
#: doc/guix.texi:11712 doc/guix.texi:11857 doc/guix.texi:12111
msgid ""
"Add @var{directory} to the front of the package module search path "
"(@pxref{Package Modules})."
msgstr ""

#. type: table
#: doc/guix.texi:9825
msgid ""
"This allows users to define their own packages and make them visible to the "
"script or REPL."
msgstr ""

#. type: itemx
#: doc/guix.texi:9826 doc/guix.texi:10335
#, no-wrap
msgid "-q"
msgstr ""

#. type: table
#: doc/guix.texi:9829
msgid ""
"Inhibit loading of the @file{~/.guile} file.  By default, that configuration "
"file is loaded when spawning a @code{guile} REPL."
msgstr ""

#. type: Plain text
#: doc/guix.texi:9839
msgid ""
"This section describes Guix command-line utilities.  Some of them are "
"primarily targeted at developers and users who write new package "
"definitions, while others are more generally useful.  They complement the "
"Scheme programming interface of Guix in a convenient way."
msgstr ""

#. type: cindex
#: doc/guix.texi:9861
#, no-wrap
msgid "package building"
msgstr ""

#. type: command{#1}
#: doc/guix.texi:9862
#, no-wrap
msgid "guix build"
msgstr ""

#. type: Plain text
#: doc/guix.texi:9868
msgid ""
"The @command{guix build} command builds packages or derivations and their "
"dependencies, and prints the resulting store paths.  Note that it does not "
"modify the user's profile---this is the job of the @command{guix package} "
"command (@pxref{Invoking guix package}).  Thus, it is mainly useful for "
"distribution developers."
msgstr ""

#. type: example
#: doc/guix.texi:9873
#, no-wrap
msgid "guix build @var{options} @var{package-or-derivation}@dots{}\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:9878
msgid ""
"As an example, the following command builds the latest versions of Emacs and "
"of Guile, displays their build logs, and finally displays the resulting "
"directories:"
msgstr ""

#. type: example
#: doc/guix.texi:9881
#, no-wrap
msgid "guix build emacs guile\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:9884
msgid "Similarly, the following command builds all the available packages:"
msgstr ""

#. type: example
#: doc/guix.texi:9888
#, no-wrap
msgid ""
"guix build --quiet --keep-going \\\n"
"  `guix package -A | cut -f1,2 --output-delimiter=@@`\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:9896
msgid ""
"@var{package-or-derivation} may be either the name of a package found in the "
"software distribution such as @code{coreutils} or @code{coreutils@@8.20}, or "
"a derivation such as @file{/gnu/store/@dots{}-coreutils-8.19.drv}.  In the "
"former case, a package with the corresponding name (and optionally version) "
"is searched for among the GNU distribution modules (@pxref{Package Modules})."
msgstr ""

#. type: Plain text
#: doc/guix.texi:9901
msgid ""
"Alternatively, the @option{--expression} option may be used to specify a "
"Scheme expression that evaluates to a package; this is useful when "
"disambiguating among several same-named packages or package variants is "
"needed."
msgstr ""

#. type: Plain text
#: doc/guix.texi:9904
msgid ""
"There may be zero or more @var{options}.  The available options are "
"described in the subsections below."
msgstr ""

#. type: Plain text
#: doc/guix.texi:9919
msgid ""
"A number of options that control the build process are common to "
"@command{guix build} and other commands that can spawn builds, such as "
"@command{guix package} or @command{guix archive}.  These are the following:"
msgstr ""

#. type: table
#: doc/guix.texi:9929 doc/guix.texi:11534 doc/guix.texi:11715
#: doc/guix.texi:11860 doc/guix.texi:12114
msgid ""
"This allows users to define their own packages and make them visible to the "
"command-line tools."
msgstr ""

#. type: item
#: doc/guix.texi:9930
#, no-wrap
msgid "--keep-failed"
msgstr ""

#. type: itemx
#: doc/guix.texi:9931
#, no-wrap
msgid "-K"
msgstr ""

#. type: table
#: doc/guix.texi:9937
msgid ""
"Keep the build tree of failed builds.  Thus, if a build fails, its build "
"tree is kept under @file{/tmp}, in a directory whose name is shown at the "
"end of the build log.  This is useful when debugging build issues.  "
"@xref{Debugging Build Failures}, for tips and tricks on how to debug build "
"issues."
msgstr ""

#. type: table
#: doc/guix.texi:9941
msgid ""
"This option implies @option{--no-offload}, and it has no effect when "
"connecting to a remote daemon with a @code{guix://} URI (@pxref{The Store, "
"the @env{GUIX_DAEMON_SOCKET} variable})."
msgstr ""

#. type: item
#: doc/guix.texi:9942
#, no-wrap
msgid "--keep-going"
msgstr ""

#. type: itemx
#: doc/guix.texi:9943
#, no-wrap
msgid "-k"
msgstr ""

#. type: table
#: doc/guix.texi:9946
msgid ""
"Keep going when some of the derivations fail to build; return only once all "
"the builds have either completed or failed."
msgstr ""

#. type: table
#: doc/guix.texi:9949
msgid ""
"The default behavior is to stop as soon as one of the specified derivations "
"has failed."
msgstr ""

#. type: table
#: doc/guix.texi:9953
msgid "Do not build the derivations."
msgstr ""

#. type: anchor{#1}
#: doc/guix.texi:9955
msgid "fallback-option"
msgstr ""

#. type: item
#: doc/guix.texi:9955
#, no-wrap
msgid "--fallback"
msgstr ""

#. type: table
#: doc/guix.texi:9958
msgid ""
"When substituting a pre-built binary fails, fall back to building packages "
"locally (@pxref{Substitution Failure})."
msgstr ""

#. type: anchor{#1}
#: doc/guix.texi:9964
msgid "client-substitute-urls"
msgstr ""

#. type: table
#: doc/guix.texi:9964
msgid ""
"Consider @var{urls} the whitespace-separated list of substitute source URLs, "
"overriding the default list of URLs of @command{guix-daemon} (@pxref{daemon-"
"substitute-urls,, @command{guix-daemon} URLs})."
msgstr ""

#. type: table
#: doc/guix.texi:9968
msgid ""
"This means that substitutes may be downloaded from @var{urls}, provided they "
"are signed by a key authorized by the system administrator "
"(@pxref{Substitutes})."
msgstr ""

#. type: table
#: doc/guix.texi:9971
msgid ""
"When @var{urls} is the empty string, substitutes are effectively disabled."
msgstr ""

#. type: item
#: doc/guix.texi:9977
#, no-wrap
msgid "--no-grafts"
msgstr ""

#. type: table
#: doc/guix.texi:9981
msgid ""
"Do not ``graft'' packages.  In practice, this means that package updates "
"available as grafts are not applied.  @xref{Security Updates}, for more "
"information on grafts."
msgstr ""

#. type: item
#: doc/guix.texi:9982
#, no-wrap
msgid "--rounds=@var{n}"
msgstr ""

#. type: table
#: doc/guix.texi:9985
msgid ""
"Build each derivation @var{n} times in a row, and raise an error if "
"consecutive build results are not bit-for-bit identical."
msgstr ""

#. type: table
#: doc/guix.texi:9990
msgid ""
"This is a useful way to detect non-deterministic builds processes.  Non-"
"deterministic build processes are a problem because they make it practically "
"impossible for users to @emph{verify} whether third-party binaries are "
"genuine.  @xref{Invoking guix challenge}, for more."
msgstr ""

#. type: table
#: doc/guix.texi:10006
msgid ""
"By default, the daemon's setting is honored (@pxref{Invoking guix-daemon, "
"@option{--max-silent-time}})."
msgstr ""

#. type: table
#: doc/guix.texi:10013
msgid ""
"By default, the daemon's setting is honored (@pxref{Invoking guix-daemon, "
"@option{--timeout}})."
msgstr ""

#. type: cindex
#: doc/guix.texi:10016
#, no-wrap
msgid "verbosity, of the command-line tools"
msgstr ""

#. type: cindex
#: doc/guix.texi:10017
#, no-wrap
msgid "build logs, verbosity"
msgstr ""

#. type: item
#: doc/guix.texi:10018
#, no-wrap
msgid "-v @var{level}"
msgstr ""

#. type: itemx
#: doc/guix.texi:10019
#, no-wrap
msgid "--verbosity=@var{level}"
msgstr ""

#. type: table
#: doc/guix.texi:10023
msgid ""
"Use the given verbosity @var{level}, an integer.  Choosing 0 means that no "
"output is produced, 1 is for quiet output, and 2 shows all the build log "
"output on standard error."
msgstr ""

#. type: table
#: doc/guix.texi:10028
msgid ""
"Allow the use of up to @var{n} CPU cores for the build.  The special value "
"@code{0} means to use as many CPU cores as available."
msgstr ""

#. type: table
#: doc/guix.texi:10034
msgid ""
"Allow at most @var{n} build jobs in parallel.  @xref{Invoking guix-daemon, "
"@option{--max-jobs}}, for details about this option and the equivalent "
"@command{guix-daemon} option."
msgstr ""

#. type: item
#: doc/guix.texi:10035
#, no-wrap
msgid "--debug=@var{level}"
msgstr ""

#. type: table
#: doc/guix.texi:10039
msgid ""
"Produce debugging output coming from the build daemon.  @var{level} must be "
"an integer between 0 and 5; higher means more verbose output.  Setting a "
"level of 4 or more may be helpful when debugging setup issues with the build "
"daemon."
msgstr ""

#. type: Plain text
#: doc/guix.texi:10046
msgid ""
"Behind the scenes, @command{guix build} is essentially an interface to the "
"@code{package-derivation} procedure of the @code{(guix packages)} module, "
"and to the @code{build-derivations} procedure of the @code{(guix "
"derivations)} module."
msgstr ""

#. type: Plain text
#: doc/guix.texi:10050
msgid ""
"In addition to options explicitly passed on the command line, @command{guix "
"build} and other @command{guix} commands that support building honor the "
"@env{GUIX_BUILD_OPTIONS} environment variable."
msgstr ""

#. type: defvr
#: doc/guix.texi:10051
#, no-wrap
msgid "{Environment Variable} GUIX_BUILD_OPTIONS"
msgstr ""

#. type: defvr
#: doc/guix.texi:10056
msgid ""
"Users can define this variable to a list of command line options that will "
"automatically be used by @command{guix build} and other @command{guix} "
"commands that can perform builds, as in the example below:"
msgstr ""

#. type: example
#: doc/guix.texi:10059
#, no-wrap
msgid "$ export GUIX_BUILD_OPTIONS=\"--no-substitutes -c 2 -L /foo/bar\"\n"
msgstr ""

#. type: defvr
#: doc/guix.texi:10063
msgid ""
"These options are parsed independently, and the result is appended to the "
"parsed command-line options."
msgstr ""

#. type: cindex
#: doc/guix.texi:10069
#, no-wrap
msgid "package variants"
msgstr ""

#. type: Plain text
#: doc/guix.texi:10077
msgid ""
"Another set of command-line options supported by @command{guix build} and "
"also @command{guix package} are @dfn{package transformation options}.  These "
"are options that make it possible to define @dfn{package variants}---for "
"instance, packages built from different source code.  This is a convenient "
"way to create customized packages on the fly without having to type in the "
"definitions of package variants (@pxref{Defining Packages})."
msgstr ""

#. type: Plain text
#: doc/guix.texi:10081
msgid ""
"Package transformation options are preserved across upgrades: @command{guix "
"upgrade} attempts to apply transformation options initially used when "
"creating the profile to the upgraded packages."
msgstr ""

#. type: Plain text
#: doc/guix.texi:10086
msgid ""
"The available options are listed below.  Most commands support them and also "
"support a @option{--help-transform} option that lists all the available "
"options and a synopsis (these options are not shown in the @option{--help} "
"output for brevity)."
msgstr ""

#. type: item
#: doc/guix.texi:10089
#, no-wrap
msgid "--with-source=@var{source}"
msgstr ""

#. type: itemx
#: doc/guix.texi:10090
#, no-wrap
msgid "--with-source=@var{package}=@var{source}"
msgstr ""

#. type: itemx
#: doc/guix.texi:10091
#, no-wrap
msgid "--with-source=@var{package}@@@var{version}=@var{source}"
msgstr ""

#. type: table
#: doc/guix.texi:10096
msgid ""
"Use @var{source} as the source of @var{package}, and @var{version} as its "
"version number.  @var{source} must be a file name or a URL, as for "
"@command{guix download} (@pxref{Invoking guix download})."
msgstr ""

#. type: table
#: doc/guix.texi:10102
msgid ""
"When @var{package} is omitted, it is taken to be the package name specified "
"on the command line that matches the base of @var{source}---e.g., if "
"@var{source} is @code{/src/guile-2.0.10.tar.gz}, the corresponding package "
"is @code{guile}."
msgstr ""

#. type: table
#: doc/guix.texi:10105
msgid ""
"Likewise, when @var{version} is omitted, the version string is inferred from "
"@var{source}; in the previous example, it is @code{2.0.10}."
msgstr ""

#. type: table
#: doc/guix.texi:10110
msgid ""
"This option allows users to try out versions of packages other than the one "
"provided by the distribution.  The example below downloads @file{ed-1.7.tar."
"gz} from a GNU mirror and uses that as the source for the @code{ed} package:"
msgstr ""

#. type: example
#: doc/guix.texi:10113
#, no-wrap
msgid "guix build ed --with-source=mirror://gnu/ed/ed-1.7.tar.gz\n"
msgstr ""

#. type: table
#: doc/guix.texi:10117
msgid ""
"As a developer, @option{--with-source} makes it easy to test release "
"candidates:"
msgstr ""

#. type: example
#: doc/guix.texi:10120
#, no-wrap
msgid "guix build guile --with-source=../guile-2.0.9.219-e1bb7.tar.xz\n"
msgstr ""

#. type: table
#: doc/guix.texi:10123
msgid "@dots{} or to build from a checkout in a pristine environment:"
msgstr ""

#. type: example
#: doc/guix.texi:10127
#, no-wrap
msgid ""
"$ git clone git://git.sv.gnu.org/guix.git\n"
"$ guix build guix --with-source=guix@@1.0=./guix\n"
msgstr ""

#. type: item
#: doc/guix.texi:10129
#, no-wrap
msgid "--with-input=@var{package}=@var{replacement}"
msgstr ""

#. type: table
#: doc/guix.texi:10134
msgid ""
"Replace dependency on @var{package} by a dependency on @var{replacement}.  "
"@var{package} must be a package name, and @var{replacement} must be a "
"package specification such as @code{guile} or @code{guile@@1.8}."
msgstr ""

#. type: table
#: doc/guix.texi:10138
msgid ""
"For instance, the following command builds Guix, but replaces its dependency "
"on the current stable version of Guile with a dependency on the legacy "
"version of Guile, @code{guile@@2.0}:"
msgstr ""

#. type: example
#: doc/guix.texi:10141
#, no-wrap
msgid "guix build --with-input=guile=guile@@2.0 guix\n"
msgstr ""

#. type: table
#: doc/guix.texi:10146
msgid ""
"This is a recursive, deep replacement.  So in this example, both @code{guix} "
"and its dependency @code{guile-json} (which also depends on @code{guile}) "
"get rebuilt against @code{guile@@2.0}."
msgstr ""

#. type: table
#: doc/guix.texi:10149
msgid ""
"This is implemented using the @code{package-input-rewriting} Scheme "
"procedure (@pxref{Defining Packages, @code{package-input-rewriting}})."
msgstr ""

#. type: item
#: doc/guix.texi:10150
#, no-wrap
msgid "--with-graft=@var{package}=@var{replacement}"
msgstr ""

#. type: table
#: doc/guix.texi:10156
msgid ""
"This is similar to @option{--with-input} but with an important difference: "
"instead of rebuilding the whole dependency chain, @var{replacement} is built "
"and then @dfn{grafted} onto the binaries that were initially referring to "
"@var{package}.  @xref{Security Updates}, for more information on grafts."
msgstr ""

#. type: table
#: doc/guix.texi:10160
msgid ""
"For example, the command below grafts version 3.5.4 of GnuTLS onto Wget and "
"all its dependencies, replacing references to the version of GnuTLS they "
"currently refer to:"
msgstr ""

#. type: example
#: doc/guix.texi:10163
#, no-wrap
msgid "guix build --with-graft=gnutls=gnutls@@3.5.4 wget\n"
msgstr ""

#. type: table
#: doc/guix.texi:10172
msgid ""
"This has the advantage of being much faster than rebuilding everything.  But "
"there is a caveat: it works if and only if @var{package} and "
"@var{replacement} are strictly compatible---for example, if they provide a "
"library, the application binary interface (ABI) of those libraries must be "
"compatible.  If @var{replacement} is somehow incompatible with "
"@var{package}, then the resulting package may be unusable.  Use with care!"
msgstr ""

#. type: cindex
#: doc/guix.texi:10173 doc/guix.texi:32308
#, no-wrap
msgid "debugging info, rebuilding"
msgstr ""

#. type: item
#: doc/guix.texi:10174
#, no-wrap
msgid "--with-debug-info=@var{package}"
msgstr ""

#. type: table
#: doc/guix.texi:10179
msgid ""
"Build @var{package} in a way that preserves its debugging info and graft it "
"onto packages that depend on it.  This is useful if @var{package} does not "
"already provide debugging info as a @code{debug} output (@pxref{Installing "
"Debugging Files})."
msgstr ""

#. type: table
#: doc/guix.texi:10185
msgid ""
"For example, suppose you're experiencing a crash in Inkscape and would like "
"to see what's up in GLib, a library deep down in Inkscape's dependency "
"graph.  GLib lacks a @code{debug} output, so debugging is tough.  "
"Fortunately, you rebuild GLib with debugging info and tack it on Inkscape:"
msgstr ""

#. type: example
#: doc/guix.texi:10188 doc/guix.texi:32339
#, no-wrap
msgid "guix install inkscape --with-debug-info=glib\n"
msgstr ""

#. type: table
#: doc/guix.texi:10192
msgid ""
"Only GLib needs to be recompiled so this takes a reasonable amount of time.  "
"@xref{Installing Debugging Files}, for more info."
msgstr ""

#. type: quotation
#: doc/guix.texi:10198
msgid ""
"Under the hood, this option works by passing the @samp{#:strip-binaries? #f} "
"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."
msgstr ""

#. type: quotation
#: doc/guix.texi:10202
msgid ""
"Likewise, if a C/C++ package is built without @code{-g} (which is rarely the "
"case), debugging info will remain unavailable even when @code{#:strip-"
"binaries?} is false."
msgstr ""

#. type: cindex
#: doc/guix.texi:10204
#, no-wrap
msgid "tool chain, changing the build tool chain of a package"
msgstr ""

#. type: item
#: doc/guix.texi:10205
#, no-wrap
msgid "--with-c-toolchain=@var{package}=@var{toolchain}"
msgstr ""

#. type: table
#: doc/guix.texi:10209
msgid ""
"This option changes the compilation of @var{package} and everything that "
"depends on it so that they get built with @var{toolchain} instead of the "
"default GNU tool chain for C/C++."
msgstr ""

#. type: example
#: doc/guix.texi:10216
#, no-wrap
msgid ""
"guix build octave-cli \\\n"
"  --with-c-toolchain=fftw=gcc-toolchain@@10 \\\n"
"  --with-c-toolchain=fftwf=gcc-toolchain@@10\n"
msgstr ""

#. type: table
#: doc/guix.texi:10223
msgid ""
"The command above builds a variant of the @code{fftw} and @code{fftwf} "
"packages using version 10 of @code{gcc-toolchain} instead of the default "
"tool chain, and then builds a variant of the GNU@tie{}Octave command-line "
"interface using them.  GNU@tie{}Octave itself is also built with @code{gcc-"
"toolchain@@10}."
msgstr ""

#. type: table
#: doc/guix.texi:10227
msgid ""
"This other example builds the Hardware Locality (@code{hwloc}) library and "
"its dependents up to @code{intel-mpi-benchmarks} with the Clang C compiler:"
msgstr ""

#. type: example
#: doc/guix.texi:10231
#, no-wrap
msgid ""
"guix build --with-c-toolchain=hwloc=clang-toolchain \\\n"
"           intel-mpi-benchmarks\n"
msgstr ""

#. type: quotation
#: doc/guix.texi:10240
msgid ""
"There can be application binary interface (ABI) incompatibilities among tool "
"chains.  This is particularly true of the C++ standard library and run-time "
"support libraries such as that of OpenMP.  By rebuilding all dependents with "
"the same tool chain, @option{--with-c-toolchain} minimizes the risks of "
"incompatibility but cannot entirely eliminate them.  Choose @var{package} "
"wisely."
msgstr ""

#. type: item
#: doc/guix.texi:10242
#, no-wrap
msgid "--with-git-url=@var{package}=@var{url}"
msgstr ""

#. type: cindex
#: doc/guix.texi:10243
#, no-wrap
msgid "Git, using the latest commit"
msgstr ""

#. type: cindex
#: doc/guix.texi:10244
#, no-wrap
msgid "latest commit, building"
msgstr ""

#. type: table
#: doc/guix.texi:10248
msgid ""
"Build @var{package} from the latest commit of the @code{master} branch of "
"the Git repository at @var{url}.  Git sub-modules of the repository are "
"fetched, recursively."
msgstr ""

#. type: table
#: doc/guix.texi:10251
msgid ""
"For example, the following command builds the NumPy Python library against "
"the latest commit of the master branch of Python itself:"
msgstr ""

#. type: example
#: doc/guix.texi:10255
#, no-wrap
msgid ""
"guix build python-numpy \\\n"
"  --with-git-url=python=https://github.com/python/cpython\n"
msgstr ""

#. type: table
#: doc/guix.texi:10259
msgid ""
"This option can also be combined with @option{--with-branch} or @option{--"
"with-commit} (see below)."
msgstr ""

#. type: cindex
#: doc/guix.texi:10260 doc/guix.texi:25318
#, no-wrap
msgid "continuous integration"
msgstr ""

#. type: table
#: doc/guix.texi:10266
msgid ""
"Obviously, since it uses the latest commit of the given branch, the result "
"of such a command varies over time.  Nevertheless it is a convenient way to "
"rebuild entire software stacks against the latest commit of one or more "
"packages.  This is particularly useful in the context of continuous "
"integration (CI)."
msgstr ""

#. type: table
#: doc/guix.texi:10270
msgid ""
"Checkouts are kept in a cache under @file{~/.cache/guix/checkouts} to speed "
"up consecutive accesses to the same repository.  You may want to clean it up "
"once in a while to save disk space."
msgstr ""

#. type: item
#: doc/guix.texi:10271
#, no-wrap
msgid "--with-branch=@var{package}=@var{branch}"
msgstr ""

#. type: table
#: doc/guix.texi:10277
msgid ""
"Build @var{package} from the latest commit of @var{branch}.  If the "
"@code{source} field of @var{package} is an origin with the @code{git-fetch} "
"method (@pxref{origin Reference}) or a @code{git-checkout} object, the "
"repository URL is taken from that @code{source}.  Otherwise you have to use "
"@option{--with-git-url} to specify the URL of the Git repository."
msgstr ""

#. type: table
#: doc/guix.texi:10282
msgid ""
"For instance, the following command builds @code{guile-sqlite3} from the "
"latest commit of its @code{master} branch, and then builds @code{guix} "
"(which depends on it) and @code{cuirass} (which depends on @code{guix}) "
"against this specific @code{guile-sqlite3} build:"
msgstr ""

#. type: example
#: doc/guix.texi:10285
#, no-wrap
msgid "guix build --with-branch=guile-sqlite3=master cuirass\n"
msgstr ""

#. type: item
#: doc/guix.texi:10287
#, no-wrap
msgid "--with-commit=@var{package}=@var{commit}"
msgstr ""

#. type: table
#: doc/guix.texi:10291
msgid ""
"This is similar to @option{--with-branch}, except that it builds from "
"@var{commit} rather than the tip of a branch.  @var{commit} must be a valid "
"Git commit SHA1 identifier or a tag."
msgstr ""

#. type: cindex
#: doc/guix.texi:10292
#, no-wrap
msgid "test suite, skipping"
msgstr ""

#. type: item
#: doc/guix.texi:10293
#, no-wrap
msgid "--without-tests=@var{package}"
msgstr ""

#. type: table
#: doc/guix.texi:10299
msgid ""
"Build @var{package} without running its tests.  This can be useful in "
"situations where you want to skip the lengthy test suite of a intermediate "
"package, or if a package's test suite fails in a non-deterministic fashion.  "
"It should be used with care because running the test suite is a good way to "
"ensure a package is working as intended."
msgstr ""

#. type: table
#: doc/guix.texi:10303
msgid ""
"Turning off tests leads to a different store item.  Consequently, when using "
"this option, anything that depends on @var{package} must be rebuilt, as in "
"this example:"
msgstr ""

#. type: example
#: doc/guix.texi:10306
#, no-wrap
msgid "guix install --without-tests=python python-notebook\n"
msgstr ""

#. type: table
#: doc/guix.texi:10312
msgid ""
"The command above installs @code{python-notebook} on top of @code{python} "
"built without running its test suite.  To do so, it also rebuilds everything "
"that depends on @code{python}, including @code{python-notebook} itself."
msgstr ""

#. type: table
#: doc/guix.texi:10318
msgid ""
"Internally, @option{--without-tests} relies on changing the @code{#:tests?} "
"option of a package's @code{check} phase (@pxref{Build Systems}).  Note that "
"some packages use a customized @code{check} phase that does not respect a "
"@code{#:tests? #f} setting.  Therefore, @option{--without-tests} has no "
"effect on these packages."
msgstr ""

#. type: Plain text
#: doc/guix.texi:10325
msgid ""
"Wondering how to achieve the same effect using Scheme code, for example in "
"your manifest, or how to write your own package transformation? "
"@xref{Defining Package Variants}, for an overview of the programming "
"interfaces available."
msgstr ""

#. type: Plain text
#: doc/guix.texi:10331
msgid ""
"The command-line options presented below are specific to @command{guix "
"build}."
msgstr ""

#. type: item
#: doc/guix.texi:10334
#, no-wrap
msgid "--quiet"
msgstr ""

#. type: table
#: doc/guix.texi:10339
msgid ""
"Build quietly, without displaying the build log; this is equivalent to "
"@option{--verbosity=0}.  Upon completion, the build log is kept in @file{/"
"var} (or similar) and can always be retrieved using the @option{--log-file} "
"option."
msgstr ""

#. type: item
#: doc/guix.texi:10340
#, no-wrap
msgid "--file=@var{file}"
msgstr ""

#. type: table
#: doc/guix.texi:10344
msgid ""
"Build the package, derivation, or other file-like object that the code "
"within @var{file} evaluates to (@pxref{G-Expressions, file-like objects})."
msgstr ""

#. type: table
#: doc/guix.texi:10347
msgid ""
"As an example, @var{file} might contain a package definition like this "
"(@pxref{Defining Packages}):"
msgstr ""

#. type: table
#: doc/guix.texi:10356
msgid ""
"The @var{file} may also contain a JSON representation of one or more package "
"definitions.  Running @code{guix build -f} on @file{hello.json} with the "
"following contents would result in building the packages @code{myhello} and "
"@code{greeter}:"
msgstr ""

#. type: item
#: doc/guix.texi:10361
#, no-wrap
msgid "--manifest=@var{manifest}"
msgstr ""

#. type: itemx
#: doc/guix.texi:10362
#, no-wrap
msgid "-m @var{manifest}"
msgstr ""

#. type: table
#: doc/guix.texi:10365
msgid ""
"Build all packages listed in the given @var{manifest} (@pxref{profile-"
"manifest, @option{--manifest}})."
msgstr ""

#. type: table
#: doc/guix.texi:10369
msgid "Build the package or derivation @var{expr} evaluates to."
msgstr ""

#. type: table
#: doc/guix.texi:10373
msgid ""
"For example, @var{expr} may be @code{(@@ (gnu packages guile)  guile-1.8)}, "
"which unambiguously designates this specific variant of version 1.8 of Guile."
msgstr ""

#. type: table
#: doc/guix.texi:10377
msgid ""
"Alternatively, @var{expr} may be a G-expression, in which case it is used as "
"a build program passed to @code{gexp->derivation} (@pxref{G-Expressions})."
msgstr ""

#. type: table
#: doc/guix.texi:10381
msgid ""
"Lastly, @var{expr} may refer to a zero-argument monadic procedure "
"(@pxref{The Store Monad}).  The procedure must return a derivation as a "
"monadic value, which is then passed through @code{run-with-store}."
msgstr ""

#. type: item
#: doc/guix.texi:10382
#, no-wrap
msgid "--source"
msgstr ""

#. type: itemx
#: doc/guix.texi:10383
#, no-wrap
msgid "-S"
msgstr ""

#. type: table
#: doc/guix.texi:10386
msgid ""
"Build the source derivations of the packages, rather than the packages "
"themselves."
msgstr ""

#. type: table
#: doc/guix.texi:10390
msgid ""
"For instance, @code{guix build -S gcc} returns something like @file{/gnu/"
"store/@dots{}-gcc-4.7.2.tar.bz2}, which is the GCC source tarball."
msgstr ""

#. type: table
#: doc/guix.texi:10394
msgid ""
"The returned source tarball is the result of applying any patches and code "
"snippets specified in the package @code{origin} (@pxref{Defining Packages})."
msgstr ""

#. type: table
#: doc/guix.texi:10399
msgid ""
"Note that @command{guix build -S} compiles the sources only of the specified "
"packages.  They do not include the sources of statically linked dependencies "
"and by themselves are insufficient for reproducing the packages."
msgstr ""

#. type: item
#: doc/guix.texi:10400
#, no-wrap
msgid "--sources"
msgstr ""

#. type: table
#: doc/guix.texi:10407
msgid ""
"Fetch and return the source of @var{package-or-derivation} and all their "
"dependencies, recursively.  This is a handy way to obtain a local copy of "
"all the source code needed to build @var{packages}, allowing you to "
"eventually build them even without network access.  It is an extension of "
"the @option{--source} option and can accept one of the following optional "
"argument values:"
msgstr ""

#. type: item
#: doc/guix.texi:10409 doc/guix.texi:11914
#, no-wrap
msgid "package"
msgstr ""

#. type: table
#: doc/guix.texi:10412
msgid ""
"This value causes the @option{--sources} option to behave in the same way as "
"the @option{--source} option."
msgstr ""

#. type: item
#: doc/guix.texi:10413 doc/guix.texi:17488
#, no-wrap
msgid "all"
msgstr ""

#. type: table
#: doc/guix.texi:10416
msgid ""
"Build the source derivations of all packages, including any source that "
"might be listed as @code{inputs}.  This is the default value."
msgstr ""

#. type: example
#: doc/guix.texi:10422
#, no-wrap
msgid ""
"$ guix build --sources tzdata\n"
"The following derivations will be built:\n"
"   /gnu/store/@dots{}-tzdata2015b.tar.gz.drv\n"
"   /gnu/store/@dots{}-tzcode2015b.tar.gz.drv\n"
msgstr ""

#. type: item
#: doc/guix.texi:10424
#, no-wrap
msgid "transitive"
msgstr ""

#. type: table
#: doc/guix.texi:10428
msgid ""
"Build the source derivations of all packages, as well of all transitive "
"inputs to the packages.  This can be used e.g.@: to prefetch package source "
"for later offline building."
msgstr ""

#. type: example
#: doc/guix.texi:10439
#, no-wrap
msgid ""
"$ guix build --sources=transitive tzdata\n"
"The following derivations will be built:\n"
"   /gnu/store/@dots{}-tzcode2015b.tar.gz.drv\n"
"   /gnu/store/@dots{}-findutils-4.4.2.tar.xz.drv\n"
"   /gnu/store/@dots{}-grep-2.21.tar.xz.drv\n"
"   /gnu/store/@dots{}-coreutils-8.23.tar.xz.drv\n"
"   /gnu/store/@dots{}-make-4.1.tar.xz.drv\n"
"   /gnu/store/@dots{}-bash-4.3.tar.xz.drv\n"
"@dots{}\n"
msgstr ""

#. type: table
#: doc/guix.texi:10449
msgid ""
"Attempt to build for @var{system}---e.g., @code{i686-linux}---instead of the "
"system type of the build host.  The @command{guix build} command allows you "
"to repeat this option several times, in which case it builds for all the "
"specified systems; other commands ignore extraneous @option{-s} options."
msgstr ""

#. type: quotation
#: doc/guix.texi:10454
msgid ""
"The @option{--system} flag is for @emph{native} compilation and must not be "
"confused with cross-compilation.  See @option{--target} below for "
"information on cross-compilation."
msgstr ""

#. type: table
#: doc/guix.texi:10461
msgid ""
"An example use of this is on Linux-based systems, which can emulate "
"different personalities.  For instance, passing @option{--system=i686-linux} "
"on an @code{x86_64-linux} system or @option{--system=armhf-linux} on an "
"@code{aarch64-linux} system allows you to build packages in a complete 32-"
"bit environment."
msgstr ""

#. type: quotation
#: doc/guix.texi:10466
msgid ""
"Building for an @code{armhf-linux} system is unconditionally enabled on "
"@code{aarch64-linux} machines, although certain aarch64 chipsets do not "
"allow for this functionality, notably the ThunderX."
msgstr ""

#. type: table
#: doc/guix.texi:10472
msgid ""
"Similarly, when transparent emulation with QEMU and @code{binfmt_misc} is "
"enabled (@pxref{Virtualization Services, @code{qemu-binfmt-service-type}}), "
"you can build for any system for which a QEMU @code{binfmt_misc} handler is "
"installed."
msgstr ""

#. type: table
#: doc/guix.texi:10476
msgid ""
"Builds for a system other than that of the machine you are using can also be "
"offloaded to a remote machine of the right architecture.  @xref{Daemon "
"Offload Setup}, for more information on offloading."
msgstr ""

#. type: table
#: doc/guix.texi:10482
msgid ""
"Cross-build for @var{triplet}, which must be a valid GNU triplet, such as "
"@code{\"aarch64-linux-gnu\"} (@pxref{Specifying Target Triplets, GNU "
"configuration triplets,, autoconf, Autoconf})."
msgstr ""

#. type: anchor{#1}
#: doc/guix.texi:10484
msgid "build-check"
msgstr ""

#. type: item
#: doc/guix.texi:10484
#, no-wrap
msgid "--check"
msgstr ""

#. type: cindex
#: doc/guix.texi:10485
#, no-wrap
msgid "determinism, checking"
msgstr ""

#. type: cindex
#: doc/guix.texi:10486
#, no-wrap
msgid "reproducibility, checking"
msgstr ""

#. type: table
#: doc/guix.texi:10490
msgid ""
"Rebuild @var{package-or-derivation}, which are already available in the "
"store, and raise an error if the build results are not bit-for-bit identical."
msgstr ""

#. type: table
#: doc/guix.texi:10495
msgid ""
"This mechanism allows you to check whether previously installed substitutes "
"are genuine (@pxref{Substitutes}), or whether the build result of a package "
"is deterministic.  @xref{Invoking guix challenge}, for more background "
"information and tools."
msgstr ""

#. type: item
#: doc/guix.texi:10500
#, no-wrap
msgid "--repair"
msgstr ""

#. type: cindex
#: doc/guix.texi:10501
#, no-wrap
msgid "repairing store items"
msgstr ""

#. type: table
#: doc/guix.texi:10505
msgid ""
"Attempt to repair the specified store items, if they are corrupt, by re-"
"downloading or rebuilding them."
msgstr ""

#. type: table
#: doc/guix.texi:10507
msgid "This operation is not atomic and thus restricted to @code{root}."
msgstr ""

#. type: item
#: doc/guix.texi:10508
#, no-wrap
msgid "--derivations"
msgstr ""

#. type: table
#: doc/guix.texi:10512
msgid ""
"Return the derivation paths, not the output paths, of the given packages."
msgstr ""

#. type: cindex
#: doc/guix.texi:10515
#, no-wrap
msgid "GC roots, adding"
msgstr ""

#. type: cindex
#: doc/guix.texi:10516
#, no-wrap
msgid "garbage collector roots, adding"
msgstr ""

#. type: table
#: doc/guix.texi:10519 doc/guix.texi:31067
msgid ""
"Make @var{file} a symlink to the result, and register it as a garbage "
"collector root."
msgstr ""

#. type: table
#: doc/guix.texi:10525
msgid ""
"Consequently, the results of this @command{guix build} invocation are "
"protected from garbage collection until @var{file} is removed.  When that "
"option is omitted, build results are eligible for garbage collection as soon "
"as the build completes.  @xref{Invoking guix gc}, for more on GC roots."
msgstr ""

#. type: item
#: doc/guix.texi:10526
#, no-wrap
msgid "--log-file"
msgstr ""

#. type: cindex
#: doc/guix.texi:10527
#, no-wrap
msgid "build logs, access"
msgstr ""

#. type: table
#: doc/guix.texi:10531
msgid ""
"Return the build log file names or URLs for the given @var{package-or-"
"derivation}, or raise an error if build logs are missing."
msgstr ""

#. type: table
#: doc/guix.texi:10534
msgid ""
"This works regardless of how packages or derivations are specified.  For "
"instance, the following invocations are equivalent:"
msgstr ""

#. type: example
#: doc/guix.texi:10540
#, no-wrap
msgid ""
"guix build --log-file `guix build -d guile`\n"
"guix build --log-file `guix build guile`\n"
"guix build --log-file guile\n"
"guix build --log-file -e '(@@ (gnu packages guile) guile-2.0)'\n"
msgstr ""

#. type: table
#: doc/guix.texi:10545
msgid ""
"If a log is unavailable locally, and unless @option{--no-substitutes} is "
"passed, the command looks for a corresponding log on one of the substitute "
"servers (as specified with @option{--substitute-urls})."
msgstr ""

#. type: table
#: doc/guix.texi:10548
msgid ""
"So for instance, imagine you want to see the build log of GDB on MIPS, but "
"you are actually on an @code{x86_64} machine:"
msgstr ""

#. type: example
#: doc/guix.texi:10552
#, no-wrap
msgid ""
"$ guix build --log-file gdb -s aarch64-linux\n"
"https://@value{SUBSTITUTE-SERVER}/log/@dots{}-gdb-7.10\n"
msgstr ""

#. type: table
#: doc/guix.texi:10555
msgid "You can freely access a huge library of build logs!"
msgstr ""

#. type: cindex
#: doc/guix.texi:10560
#, no-wrap
msgid "build failures, debugging"
msgstr ""

#. type: Plain text
#: doc/guix.texi:10566
msgid ""
"When defining a new package (@pxref{Defining Packages}), you will probably "
"find yourself spending some time debugging and tweaking the build until it "
"succeeds.  To do that, you need to operate the build commands yourself in an "
"environment as close as possible to the one the build daemon uses."
msgstr ""

#. type: Plain text
#: doc/guix.texi:10571
msgid ""
"To that end, the first thing to do is to use the @option{--keep-failed} or "
"@option{-K} option of @command{guix build}, which will keep the failed build "
"tree in @file{/tmp} or whatever directory you specified as @env{TMPDIR} "
"(@pxref{Invoking guix build, @option{--keep-failed}})."
msgstr ""

#. type: Plain text
#: doc/guix.texi:10577
msgid ""
"From there on, you can @command{cd} to the failed build tree and source the "
"@file{environment-variables} file, which contains all the environment "
"variable definitions that were in place when the build failed.  So let's say "
"you're debugging a build failure in package @code{foo}; a typical session "
"would look like this:"
msgstr ""

#. type: example
#: doc/guix.texi:10584
#, no-wrap
msgid ""
"$ guix build foo -K\n"
"@dots{} @i{build fails}\n"
"$ cd /tmp/guix-build-foo.drv-0\n"
"$ source ./environment-variables\n"
"$ cd foo-1.2\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:10588
msgid ""
"Now, you can invoke commands as if you were the daemon (almost) and "
"troubleshoot your build process."
msgstr ""

#. type: Plain text
#: doc/guix.texi:10594
msgid ""
"Sometimes it happens that, for example, a package's tests pass when you run "
"them manually but they fail when the daemon runs them.  This can happen "
"because the daemon runs builds in containers where, unlike in our "
"environment above, network access is missing, @file{/bin/sh} does not exist, "
"etc. (@pxref{Build Environment Setup})."
msgstr ""

#. type: Plain text
#: doc/guix.texi:10597
msgid ""
"In such cases, you may need to run inspect the build process from within a "
"container similar to the one the build daemon creates:"
msgstr ""

#. type: example
#: doc/guix.texi:10605
#, no-wrap
msgid ""
"$ guix build -K foo\n"
"@dots{}\n"
"$ cd /tmp/guix-build-foo.drv-0\n"
"$ guix environment --no-grafts -C foo --ad-hoc strace gdb\n"
"[env]# source ./environment-variables\n"
"[env]# cd foo-1.2\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:10614
msgid ""
"Here, @command{guix environment -C} creates a container and spawns a new "
"shell in it (@pxref{Invoking guix environment}).  The @command{--ad-hoc "
"strace gdb} part adds the @command{strace} and @command{gdb} commands to the "
"container, which you may find handy while debugging.  The @option{--no-"
"grafts} option makes sure we get the exact same environment, with ungrafted "
"packages (@pxref{Security Updates}, for more info on grafts)."
msgstr ""

#. type: Plain text
#: doc/guix.texi:10617
msgid ""
"To get closer to a container like that used by the build daemon, we can "
"remove @file{/bin/sh}:"
msgstr ""

#. type: example
#: doc/guix.texi:10620
#, no-wrap
msgid "[env]# rm /bin/sh\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:10624
msgid ""
"(Don't worry, this is harmless: this is all happening in the throw-away "
"container created by @command{guix environment}.)"
msgstr ""

#. type: Plain text
#: doc/guix.texi:10627
msgid ""
"The @command{strace} command is probably not in the search path, but we can "
"run:"
msgstr ""

#. type: example
#: doc/guix.texi:10630
#, no-wrap
msgid "[env]# $GUIX_ENVIRONMENT/bin/strace -f -o log make check\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:10635
msgid ""
"In this way, not only you will have reproduced the environment variables the "
"daemon uses, you will also be running the build process in a container "
"similar to the one the daemon uses."
msgstr ""

#. type: section
#: doc/guix.texi:10638
#, no-wrap
msgid "Invoking @command{guix edit}"
msgstr ""

#. type: command{#1}
#: doc/guix.texi:10640
#, no-wrap
msgid "guix edit"
msgstr ""

#. type: cindex
#: doc/guix.texi:10641
#, no-wrap
msgid "package definition, editing"
msgstr ""

#. type: Plain text
#: doc/guix.texi:10646
msgid ""
"So many packages, so many source files! The @command{guix edit} command "
"facilitates the life of users and packagers by pointing their editor at the "
"source file containing the definition of the specified packages.  For "
"instance:"
msgstr ""

#. type: example
#: doc/guix.texi:10649
#, no-wrap
msgid "guix edit gcc@@4.9 vim\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:10655
msgid ""
"launches the program specified in the @env{VISUAL} or in the @env{EDITOR} "
"environment variable to view the recipe of GCC@tie{}4.9.3 and that of Vim."
msgstr ""

#. type: Plain text
#: doc/guix.texi:10661
msgid ""
"If you are using a Guix Git checkout (@pxref{Building from Git}), or have "
"created your own packages on @env{GUIX_PACKAGE_PATH} (@pxref{Package "
"Modules}), you will be able to edit the package recipes.  In other cases, "
"you will be able to examine the read-only recipes for packages currently in "
"the store."
msgstr ""

#. type: Plain text
#: doc/guix.texi:10666
msgid ""
"Instead of @env{GUIX_PACKAGE_PATH}, the command-line option @option{--load-"
"path=@var{directory}} (or in short @option{-L @var{directory}}) allows you "
"to add @var{directory} to the front of the package module search path and so "
"make your own packages visible."
msgstr ""

#. type: section
#: doc/guix.texi:10668
#, no-wrap
msgid "Invoking @command{guix download}"
msgstr ""

#. type: command{#1}
#: doc/guix.texi:10670
#, no-wrap
msgid "guix download"
msgstr ""

#. type: cindex
#: doc/guix.texi:10671
#, no-wrap
msgid "downloading package sources"
msgstr ""

#. type: Plain text
#: doc/guix.texi:10678
msgid ""
"When writing a package definition, developers typically need to download a "
"source tarball, compute its SHA256 hash, and write that hash in the package "
"definition (@pxref{Defining Packages}).  The @command{guix download} tool "
"helps with this task: it downloads a file from the given URI, adds it to the "
"store, and prints both its file name in the store and its SHA256 hash."
msgstr ""

#. type: Plain text
#: doc/guix.texi:10685
msgid ""
"The fact that the downloaded file is added to the store saves bandwidth: "
"when the developer eventually tries to build the newly defined package with "
"@command{guix build}, the source tarball will not have to be downloaded "
"again because it is already in the store.  It is also a convenient way to "
"temporarily stash files, which may be deleted eventually (@pxref{Invoking "
"guix gc})."
msgstr ""

#. type: Plain text
#: doc/guix.texi:10693
msgid ""
"The @command{guix download} command supports the same URIs as used in "
"package definitions.  In particular, it supports @code{mirror://} URIs.  "
"@code{https} URIs (HTTP over TLS) are supported @emph{provided} the Guile "
"bindings for GnuTLS are available in the user's environment; when they are "
"not available, an error is raised.  @xref{Guile Preparations, how to install "
"the GnuTLS bindings for Guile,, gnutls-guile, GnuTLS-Guile}, for more "
"information."
msgstr ""

#. type: Plain text
#: doc/guix.texi:10698
msgid ""
"@command{guix download} verifies HTTPS server certificates by loading the "
"certificates of X.509 authorities from the directory pointed to by the "
"@env{SSL_CERT_DIR} environment variable (@pxref{X.509 Certificates}), unless "
"@option{--no-check-certificate} is used."
msgstr ""

#. type: Plain text
#: doc/guix.texi:10700 doc/guix.texi:12208
msgid "The following options are available:"
msgstr ""

#. type: item
#: doc/guix.texi:10702 doc/guix.texi:10746
#, no-wrap
msgid "--hash=@var{algorithm}"
msgstr ""

#. type: itemx
#: doc/guix.texi:10703 doc/guix.texi:10747
#, no-wrap
msgid "-H @var{algorithm}"
msgstr ""

#. type: table
#: doc/guix.texi:10706
msgid ""
"Compute a hash using the specified @var{algorithm}.  @xref{Invoking guix "
"hash}, for more information."
msgstr ""

#. type: item
#: doc/guix.texi:10707 doc/guix.texi:10756
#, no-wrap
msgid "--format=@var{fmt}"
msgstr ""

#. type: itemx
#: doc/guix.texi:10708 doc/guix.texi:10757
#, no-wrap
msgid "-f @var{fmt}"
msgstr ""

#. type: table
#: doc/guix.texi:10711
msgid ""
"Write the hash in the format specified by @var{fmt}.  For more information "
"on the valid values for @var{fmt}, @pxref{Invoking guix hash}."
msgstr ""

#. type: item
#: doc/guix.texi:10712
#, no-wrap
msgid "--no-check-certificate"
msgstr ""

#. type: table
#: doc/guix.texi:10714
msgid "Do not validate the X.509 certificates of HTTPS servers."
msgstr ""

#. type: table
#: doc/guix.texi:10718
msgid ""
"When using this option, you have @emph{absolutely no guarantee} that you are "
"communicating with the authentic server responsible for the given URL, which "
"makes you vulnerable to ``man-in-the-middle'' attacks."
msgstr ""

#. type: item
#: doc/guix.texi:10719
#, no-wrap
msgid "--output=@var{file}"
msgstr ""

#. type: itemx
#: doc/guix.texi:10720
#, no-wrap
msgid "-o @var{file}"
msgstr ""

#. type: table
#: doc/guix.texi:10723
msgid ""
"Save the downloaded file to @var{file} instead of adding it to the store."
msgstr ""

#. type: section
#: doc/guix.texi:10726
#, no-wrap
msgid "Invoking @command{guix hash}"
msgstr ""

#. type: command{#1}
#: doc/guix.texi:10728
#, no-wrap
msgid "guix hash"
msgstr ""

#. type: Plain text
#: doc/guix.texi:10733
msgid ""
"The @command{guix hash} command computes the hash of a file.  It is "
"primarily a convenience tool for anyone contributing to the distribution: it "
"computes the cryptographic hash of a file, which can be used in the "
"definition of a package (@pxref{Defining Packages})."
msgstr ""

#. type: example
#: doc/guix.texi:10738
#, no-wrap
msgid "guix hash @var{option} @var{file}\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:10743
msgid ""
"When @var{file} is @code{-} (a hyphen), @command{guix hash} computes the "
"hash of data read from standard input.  @command{guix hash} has the "
"following options:"
msgstr ""

#. type: table
#: doc/guix.texi:10750
msgid ""
"Compute a hash using the specified @var{algorithm}, @code{sha256} by default."
msgstr ""

#. type: table
#: doc/guix.texi:10755
msgid ""
"@var{algorithm} must the name of a cryptographic hash algorithm supported by "
"Libgcrypt @i{via} Guile-Gcrypt---e.g., @code{sha512} or @code{sha3-256} "
"(@pxref{Hash Functions,,, guile-gcrypt, Guile-Gcrypt Reference Manual})."
msgstr ""

#. type: table
#: doc/guix.texi:10759
msgid "Write the hash in the format specified by @var{fmt}."
msgstr ""

#. type: table
#: doc/guix.texi:10762
msgid ""
"Supported formats: @code{base64}, @code{nix-base32}, @code{base32}, "
"@code{base16} (@code{hex} and @code{hexadecimal} can be used as well)."
msgstr ""

#. type: table
#: doc/guix.texi:10766
msgid ""
"If the @option{--format} option is not specified, @command{guix hash} will "
"output the hash in @code{nix-base32}.  This representation is used in the "
"definitions of packages."
msgstr ""

#. type: table
#: doc/guix.texi:10770
msgid "Compute the hash on @var{file} recursively."
msgstr ""

#. type: table
#: doc/guix.texi:10779
msgid ""
"In this case, the hash is computed on an archive containing @var{file}, "
"including its children if it is a directory.  Some of the metadata of "
"@var{file} is part of the archive; for instance, when @var{file} is a "
"regular file, the hash is different depending on whether @var{file} is "
"executable or not.  Metadata such as time stamps has no impact on the hash "
"(@pxref{Invoking guix archive})."
msgstr ""

#. type: item
#: doc/guix.texi:10780
#, no-wrap
msgid "--exclude-vcs"
msgstr ""

#. type: itemx
#: doc/guix.texi:10781 doc/guix.texi:11700
#, no-wrap
msgid "-x"
msgstr ""

#. type: table
#: doc/guix.texi:10784
msgid ""
"When combined with @option{--recursive}, exclude version control system "
"directories (@file{.bzr}, @file{.git}, @file{.hg}, etc.)."
msgstr ""

#. type: vindex
#: doc/guix.texi:10785
#, no-wrap
msgid "git-fetch"
msgstr ""

#. type: table
#: doc/guix.texi:10789
msgid ""
"As an example, here is how you would compute the hash of a Git checkout, "
"which is useful when using the @code{git-fetch} method (@pxref{origin "
"Reference}):"
msgstr ""

#. type: example
#: doc/guix.texi:10794
#, no-wrap
msgid ""
"$ git clone http://example.org/foo.git\n"
"$ cd foo\n"
"$ guix hash -rx .\n"
msgstr ""

#. type: cindex
#: doc/guix.texi:10798 doc/guix.texi:10803
#, no-wrap
msgid "Invoking @command{guix import}"
msgstr ""

#. type: cindex
#: doc/guix.texi:10800
#, no-wrap
msgid "importing packages"
msgstr ""

#. type: cindex
#: doc/guix.texi:10801
#, no-wrap
msgid "package import"
msgstr ""

#. type: cindex
#: doc/guix.texi:10802
#, no-wrap
msgid "package conversion"
msgstr ""

#. type: Plain text
#: doc/guix.texi:10810
msgid ""
"The @command{guix import} command is useful for people who would like to add "
"a package to the distribution with as little work as possible---a legitimate "
"demand.  The command knows of a few repositories from which it can "
"``import'' package metadata.  The result is a package definition, or a "
"template thereof, in the format we know (@pxref{Defining Packages})."
msgstr ""

#. type: example
#: doc/guix.texi:10815
#, no-wrap
msgid "guix import @var{importer} @var{options}@dots{}\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:10820
msgid ""
"@var{importer} specifies the source from which to import package metadata, "
"and @var{options} specifies a package identifier and other options specific "
"to @var{importer}."
msgstr ""

#. type: Plain text
#: doc/guix.texi:10824
msgid ""
"Some of the importers rely on the ability to run the @command{gpgv} "
"command.  For these, GnuPG must be installed and in @code{$PATH}; run "
"@code{guix install gnupg} if needed."
msgstr ""

#. type: Plain text
#: doc/guix.texi:10826
msgid "Currently, the available ``importers'' are:"
msgstr ""

#. type: item
#: doc/guix.texi:10828 doc/guix.texi:11357
#, no-wrap
msgid "gnu"
msgstr ""

#. type: table
#: doc/guix.texi:10832
msgid ""
"Import metadata for the given GNU package.  This provides a template for the "
"latest version of that GNU package, including the hash of its source "
"tarball, and its canonical synopsis and description."
msgstr ""

#. type: table
#: doc/guix.texi:10835
msgid ""
"Additional information such as the package dependencies and its license "
"needs to be figured out manually."
msgstr ""

#. type: table
#: doc/guix.texi:10838
msgid ""
"For example, the following command returns a package definition for GNU@tie{}"
"Hello:"
msgstr ""

#. type: example
#: doc/guix.texi:10841
#, no-wrap
msgid "guix import gnu hello\n"
msgstr ""

#. type: table
#: doc/guix.texi:10844 doc/guix.texi:11077 doc/guix.texi:11127
#: doc/guix.texi:11156
msgid "Specific command-line options are:"
msgstr ""

#. type: item
#: doc/guix.texi:10846 doc/guix.texi:11508
#, no-wrap
msgid "--key-download=@var{policy}"
msgstr ""

#. type: table
#: doc/guix.texi:10850
msgid ""
"As for @command{guix refresh}, specify the policy to handle missing OpenPGP "
"keys when verifying the package signature.  @xref{Invoking guix refresh, "
"@option{--key-download}}."
msgstr ""

#. type: item
#: doc/guix.texi:10852 doc/guix.texi:10853 doc/guix.texi:11377
#, no-wrap
msgid "pypi"
msgstr ""

#. type: table
#: doc/guix.texi:10860
msgid ""
"Import metadata from the @uref{https://pypi.python.org/, Python Package "
"Index}.  Information is taken from the JSON-formatted description available "
"at @code{pypi.python.org} and usually includes all the relevant information, "
"including package dependencies.  For maximum efficiency, it is recommended "
"to install the @command{unzip} utility, so that the importer can unzip "
"Python wheels and gather data from them."
msgstr ""

#. type: table
#: doc/guix.texi:10863
msgid ""
"The command below imports metadata for the @code{itsdangerous} Python "
"package:"
msgstr ""

#. type: example
#: doc/guix.texi:10866
#, no-wrap
msgid "guix import pypi itsdangerous\n"
msgstr ""

#. type: table
#: doc/guix.texi:10874 doc/guix.texi:10899 doc/guix.texi:11100
#: doc/guix.texi:11141 doc/guix.texi:11188 doc/guix.texi:11213
msgid ""
"Traverse the dependency graph of the given upstream package recursively and "
"generate package expressions for all those packages that are not yet in Guix."
msgstr ""

#. type: item
#: doc/guix.texi:10876 doc/guix.texi:10877 doc/guix.texi:11379
#, no-wrap
msgid "gem"
msgstr ""

#. type: table
#: doc/guix.texi:10886
msgid ""
"Import metadata from @uref{https://rubygems.org/, RubyGems}.  Information is "
"taken from the JSON-formatted description available at @code{rubygems.org} "
"and includes most relevant information, including runtime dependencies.  "
"There are some caveats, however.  The metadata doesn't distinguish between "
"synopses and descriptions, so the same string is used for both fields.  "
"Additionally, the details of non-Ruby dependencies required to build native "
"extensions is unavailable and left as an exercise to the packager."
msgstr ""

#. type: table
#: doc/guix.texi:10888
msgid "The command below imports metadata for the @code{rails} Ruby package:"
msgstr ""

#. type: example
#: doc/guix.texi:10891
#, no-wrap
msgid "guix import gem rails\n"
msgstr ""

#. type: item
#: doc/guix.texi:10901 doc/guix.texi:11375
#, no-wrap
msgid "cpan"
msgstr ""

#. type: cindex
#: doc/guix.texi:10902
#, no-wrap
msgid "CPAN"
msgstr ""

#. type: table
#: doc/guix.texi:10910
msgid ""
"Import metadata from @uref{https://www.metacpan.org/, MetaCPAN}.  "
"Information is taken from the JSON-formatted metadata provided through "
"@uref{https://fastapi.metacpan.org/, MetaCPAN's API} and includes most "
"relevant information, such as module dependencies.  License information "
"should be checked closely.  If Perl is available in the store, then the "
"@code{corelist} utility will be used to filter core modules out of the list "
"of dependencies."
msgstr ""

#. type: table
#: doc/guix.texi:10913
msgid ""
"The command command below imports metadata for the Acme::Boolean Perl module:"
msgstr ""

#. type: example
#: doc/guix.texi:10916
#, no-wrap
msgid "guix import cpan Acme::Boolean\n"
msgstr ""

#. type: item
#: doc/guix.texi:10918 doc/guix.texi:11371
#, no-wrap
msgid "cran"
msgstr ""

#. type: cindex
#: doc/guix.texi:10919
#, no-wrap
msgid "CRAN"
msgstr ""

#. type: cindex
#: doc/guix.texi:10920
#, no-wrap
msgid "Bioconductor"
msgstr ""

#. type: table
#: doc/guix.texi:10924
msgid ""
"Import metadata from @uref{https://cran.r-project.org/, CRAN}, the central "
"repository for the @uref{https://r-project.org, GNU@tie{}R statistical and "
"graphical environment}."
msgstr ""

#. type: table
#: doc/guix.texi:10926
msgid ""
"Information is extracted from the @file{DESCRIPTION} file of the package."
msgstr ""

#. type: table
#: doc/guix.texi:10928
msgid "The command command below imports metadata for the Cairo R package:"
msgstr ""

#. type: example
#: doc/guix.texi:10931
#, no-wrap
msgid "guix import cran Cairo\n"
msgstr ""

#. type: table
#: doc/guix.texi:10936
msgid ""
"When @option{--recursive} is added, the importer will traverse the "
"dependency graph of the given upstream package recursively and generate "
"package expressions for all those packages that are not yet in Guix."
msgstr ""

#. type: table
#: doc/guix.texi:10941
msgid ""
"When @option{--archive=bioconductor} is added, metadata is imported from "
"@uref{https://www.bioconductor.org/, Bioconductor}, a repository of R "
"packages for the analysis and comprehension of high-throughput genomic data "
"in bioinformatics."
msgstr ""

#. type: table
#: doc/guix.texi:10944
msgid ""
"Information is extracted from the @file{DESCRIPTION} file contained in the "
"package archive."
msgstr ""

#. type: table
#: doc/guix.texi:10946
msgid "The command below imports metadata for the GenomicRanges R package:"
msgstr ""

#. type: example
#: doc/guix.texi:10949
#, no-wrap
msgid "guix import cran --archive=bioconductor GenomicRanges\n"
msgstr ""

#. type: table
#: doc/guix.texi:10954
msgid ""
"Finally, you can also import R packages that have not yet been published on "
"CRAN or Bioconductor as long as they are in a git repository.  Use @option{--"
"archive=git} followed by the URL of the git repository:"
msgstr ""

#. type: example
#: doc/guix.texi:10957
#, no-wrap
msgid "guix import cran --archive=git https://github.com/immunogenomics/harmony\n"
msgstr ""

#. type: item
#: doc/guix.texi:10959
#, no-wrap
msgid "texlive"
msgstr ""

#. type: cindex
#: doc/guix.texi:10960
#, no-wrap
msgid "TeX Live"
msgstr ""

#. type: cindex
#: doc/guix.texi:10961
#, no-wrap
msgid "CTAN"
msgstr ""

#. type: table
#: doc/guix.texi:10965
msgid ""
"Import metadata from @uref{https://www.ctan.org/, CTAN}, the comprehensive "
"TeX archive network for TeX packages that are part of the @uref{https://www."
"tug.org/texlive/, TeX Live distribution}."
msgstr ""

#. type: table
#: doc/guix.texi:10970
msgid ""
"Information about the package is obtained through the XML API provided by "
"CTAN, while the source code is downloaded from the SVN repository of the Tex "
"Live project.  This is done because the CTAN does not keep versioned "
"archives."
msgstr ""

#. type: table
#: doc/guix.texi:10973
msgid ""
"The command command below imports metadata for the @code{fontspec} TeX "
"package:"
msgstr ""

#. type: example
#: doc/guix.texi:10976
#, no-wrap
msgid "guix import texlive fontspec\n"
msgstr ""

#. type: table
#: doc/guix.texi:10982
msgid ""
"When @option{--archive=@var{directory}} is added, the source code is "
"downloaded not from the @file{latex} sub-directory of the @file{texmf-dist/"
"source} tree in the TeX Live SVN repository, but from the specified sibling "
"@var{directory} under the same root."
msgstr ""

#. type: table
#: doc/guix.texi:10986
msgid ""
"The command below imports metadata for the @code{ifxetex} package from CTAN "
"while fetching the sources from the directory @file{texmf/source/generic}:"
msgstr ""

#. type: example
#: doc/guix.texi:10989
#, no-wrap
msgid "guix import texlive --archive=generic ifxetex\n"
msgstr ""

#. type: cindex
#: doc/guix.texi:10992
#, no-wrap
msgid "JSON, import"
msgstr ""

#. type: table
#: doc/guix.texi:10995
msgid ""
"Import package metadata from a local JSON file.  Consider the following "
"example package definition in JSON format:"
msgstr ""

#. type: example
#: doc/guix.texi:11008
#, no-wrap
msgid ""
"@{\n"
"  \"name\": \"hello\",\n"
"  \"version\": \"2.10\",\n"
"  \"source\": \"mirror://gnu/hello/hello-2.10.tar.gz\",\n"
"  \"build-system\": \"gnu\",\n"
"  \"home-page\": \"https://www.gnu.org/software/hello/\",\n"
"  \"synopsis\": \"Hello, GNU world: An example GNU package\",\n"
"  \"description\": \"GNU Hello prints a greeting.\",\n"
"  \"license\": \"GPL-3.0+\",\n"
"  \"native-inputs\": [\"gettext\"]\n"
"@}\n"
msgstr ""

#. type: table
#: doc/guix.texi:11014
msgid ""
"The field names are the same as for the @code{<package>} record "
"(@xref{Defining Packages}).  References to other packages are provided as "
"JSON lists of quoted package specification strings such as @code{guile} or "
"@code{guile@@2.0}."
msgstr ""

#. type: table
#: doc/guix.texi:11017
msgid ""
"The importer also supports a more explicit source definition using the "
"common fields for @code{<origin>} records:"
msgstr ""

#. type: example
#: doc/guix.texi:11030
#, no-wrap
msgid ""
"@{\n"
"  @dots{}\n"
"  \"source\": @{\n"
"    \"method\": \"url-fetch\",\n"
"    \"uri\": \"mirror://gnu/hello/hello-2.10.tar.gz\",\n"
"    \"sha256\": @{\n"
"      \"base32\": \"0ssi1wpaf7plaswqqjwigppsg5fyh99vdlb9kzl7c9lng89ndq1i\"\n"
"    @}\n"
"  @}\n"
"  @dots{}\n"
"@}\n"
msgstr ""

#. type: table
#: doc/guix.texi:11034
msgid ""
"The command below reads metadata from the JSON file @code{hello.json} and "
"outputs a package expression:"
msgstr ""

#. type: example
#: doc/guix.texi:11037
#, no-wrap
msgid "guix import json hello.json\n"
msgstr ""

#. type: item
#: doc/guix.texi:11039
#, no-wrap
msgid "nix"
msgstr ""

#. type: table
#: doc/guix.texi:11048
msgid ""
"Import metadata from a local copy of the source of the @uref{https://nixos."
"org/nixpkgs/, Nixpkgs distribution}@footnote{This relies on the @command{nix-"
"instantiate} command of @uref{https://nixos.org/nix/, Nix}.}.  Package "
"definitions in Nixpkgs are typically written in a mixture of Nix-language "
"and Bash code.  This command only imports the high-level package structure "
"that is written in the Nix language.  It normally includes all the basic "
"fields of a package definition."
msgstr ""

#. type: table
#: doc/guix.texi:11051
msgid ""
"When importing a GNU package, the synopsis and descriptions are replaced by "
"their canonical upstream variant."
msgstr ""

#. type: table
#: doc/guix.texi:11053
msgid "Usually, you will first need to do:"
msgstr ""

#. type: example
#: doc/guix.texi:11056
#, no-wrap
msgid "export NIX_REMOTE=daemon\n"
msgstr ""

#. type: table
#: doc/guix.texi:11060
msgid ""
"so that @command{nix-instantiate} does not try to open the Nix database."
msgstr ""

#. type: table
#: doc/guix.texi:11064
msgid ""
"As an example, the command below imports the package definition of "
"LibreOffice (more precisely, it imports the definition of the package bound "
"to the @code{libreoffice} top-level attribute):"
msgstr ""

#. type: example
#: doc/guix.texi:11067
#, no-wrap
msgid "guix import nix ~/path/to/nixpkgs libreoffice\n"
msgstr ""

#. type: item
#: doc/guix.texi:11069 doc/guix.texi:11070 doc/guix.texi:11383
#, no-wrap
msgid "hackage"
msgstr ""

#. type: table
#: doc/guix.texi:11075
msgid ""
"Import metadata from the Haskell community's central package archive "
"@uref{https://hackage.haskell.org/, Hackage}.  Information is taken from "
"Cabal files and includes all the relevant information, including package "
"dependencies."
msgstr ""

#. type: item
#: doc/guix.texi:11079
#, no-wrap
msgid "--stdin"
msgstr ""

#. type: itemx
#: doc/guix.texi:11080
#, no-wrap
msgid "-s"
msgstr ""

#. type: table
#: doc/guix.texi:11082
msgid "Read a Cabal file from standard input."
msgstr ""

#. type: item
#: doc/guix.texi:11082 doc/guix.texi:11129
#, no-wrap
msgid "--no-test-dependencies"
msgstr ""

#. type: table
#: doc/guix.texi:11085 doc/guix.texi:11132
msgid "Do not include dependencies required only by the test suites."
msgstr ""

#. type: item
#: doc/guix.texi:11085
#, no-wrap
msgid "--cabal-environment=@var{alist}"
msgstr ""

#. type: itemx
#: doc/guix.texi:11086
#, no-wrap
msgid "-e @var{alist}"
msgstr ""

#. type: table
#: doc/guix.texi:11095
msgid ""
"@var{alist} is a Scheme alist defining the environment in which the Cabal "
"conditionals are evaluated.  The accepted keys are: @code{os}, @code{arch}, "
"@code{impl} and a string representing the name of a flag.  The value "
"associated with a flag has to be either the symbol @code{true} or "
"@code{false}.  The value associated with other keys has to conform to the "
"Cabal file format definition.  The default value associated with the keys "
"@code{os}, @code{arch} and @code{impl} is @samp{linux}, @samp{x86_64} and "
"@samp{ghc}, respectively."
msgstr ""

#. type: table
#: doc/guix.texi:11105
msgid ""
"The command below imports metadata for the latest version of the HTTP "
"Haskell package without including test dependencies and specifying the value "
"of the flag @samp{network-uri} as @code{false}:"
msgstr ""

#. type: example
#: doc/guix.texi:11108
#, no-wrap
msgid "guix import hackage -t -e \"'((\\\"network-uri\\\" . false))\" HTTP\n"
msgstr ""

#. type: table
#: doc/guix.texi:11112
msgid ""
"A specific package version may optionally be specified by following the "
"package name by an at-sign and a version number as in the following example:"
msgstr ""

#. type: example
#: doc/guix.texi:11115
#, no-wrap
msgid "guix import hackage mtl@@2.1.3.1\n"
msgstr ""

#. type: item
#: doc/guix.texi:11117 doc/guix.texi:11118 doc/guix.texi:11385
#, no-wrap
msgid "stackage"
msgstr ""

#. type: table
#: doc/guix.texi:11125
msgid ""
"The @code{stackage} importer is a wrapper around the @code{hackage} one.  It "
"takes a package name, looks up the package version included in a long-term "
"support (LTS) @uref{https://www.stackage.org, Stackage} release and uses the "
"@code{hackage} importer to retrieve its metadata.  Note that it is up to you "
"to select an LTS release compatible with the GHC compiler used by Guix."
msgstr ""

#. type: item
#: doc/guix.texi:11132
#, no-wrap
msgid "--lts-version=@var{version}"
msgstr ""

#. type: itemx
#: doc/guix.texi:11133
#, no-wrap
msgid "-l @var{version}"
msgstr ""

#. type: table
#: doc/guix.texi:11136
msgid ""
"@var{version} is the desired LTS release version.  If omitted the latest "
"release is used."
msgstr ""

#. type: table
#: doc/guix.texi:11145
msgid ""
"The command below imports metadata for the HTTP Haskell package included in "
"the LTS Stackage release version 7.18:"
msgstr ""

#. type: example
#: doc/guix.texi:11148
#, no-wrap
msgid "guix import stackage --lts-version=7.18 HTTP\n"
msgstr ""

#. type: item
#: doc/guix.texi:11150 doc/guix.texi:11151 doc/guix.texi:11369
#, no-wrap
msgid "elpa"
msgstr ""

#. type: table
#: doc/guix.texi:11154
msgid ""
"Import metadata from an Emacs Lisp Package Archive (ELPA) package repository "
"(@pxref{Packages,,, emacs, The GNU Emacs Manual})."
msgstr ""

#. type: item
#: doc/guix.texi:11158
#, no-wrap
msgid "--archive=@var{repo}"
msgstr ""

#. type: itemx
#: doc/guix.texi:11159
#, no-wrap
msgid "-a @var{repo}"
msgstr ""

#. type: table
#: doc/guix.texi:11163
msgid ""
"@var{repo} identifies the archive repository from which to retrieve the "
"information.  Currently the supported repositories and their identifiers are:"
msgstr ""

#. type: itemize
#: doc/guix.texi:11167
msgid ""
"@uref{https://elpa.gnu.org/packages, GNU}, selected by the @code{gnu} "
"identifier.  This is the default."
msgstr ""

#. type: itemize
#: doc/guix.texi:11173
msgid ""
"Packages from @code{elpa.gnu.org} are signed with one of the keys contained "
"in the GnuPG keyring at @file{share/emacs/25.1/etc/package-keyring.gpg} (or "
"similar) in the @code{emacs} package (@pxref{Package Installation, ELPA "
"package signatures,, emacs, The GNU Emacs Manual})."
msgstr ""

#. type: itemize
#: doc/guix.texi:11177
msgid ""
"@uref{https://stable.melpa.org/packages, MELPA-Stable}, selected by the "
"@code{melpa-stable} identifier."
msgstr ""

#. type: itemize
#: doc/guix.texi:11181
msgid ""
"@uref{https://melpa.org/packages, MELPA}, selected by the @code{melpa} "
"identifier."
msgstr ""

#. type: item
#: doc/guix.texi:11190 doc/guix.texi:11191 doc/guix.texi:11387
#, no-wrap
msgid "crate"
msgstr ""

#. type: table
#: doc/guix.texi:11194
msgid ""
"Import metadata from the crates.io Rust package repository @uref{https://"
"crates.io, crates.io}, as in this example:"
msgstr ""

#. type: example
#: doc/guix.texi:11197
#, no-wrap
msgid "guix import crate blake2-rfc\n"
msgstr ""

#. type: table
#: doc/guix.texi:11200
msgid "The crate importer also allows you to specify a version string:"
msgstr ""

#. type: example
#: doc/guix.texi:11203
#, no-wrap
msgid "guix import crate constant-time-eq@@0.1.0\n"
msgstr ""

#. type: table
#: doc/guix.texi:11206
msgid "Additional options include:"
msgstr ""

#. type: item
#: doc/guix.texi:11215
#, no-wrap
msgid "opam"
msgstr ""

#. type: cindex
#: doc/guix.texi:11216
#, no-wrap
msgid "OPAM"
msgstr ""

#. type: cindex
#: doc/guix.texi:11217
#, no-wrap
msgid "OCaml"
msgstr ""

#. type: table
#: doc/guix.texi:11220
msgid ""
"Import metadata from the @uref{https://opam.ocaml.org/, OPAM} package "
"repository used by the OCaml community."
msgstr ""

#. type: Plain text
#: doc/guix.texi:11225
msgid ""
"The structure of the @command{guix import} code is modular.  It would be "
"useful to have more importers for other package formats, and your help is "
"welcome here (@pxref{Contributing})."
msgstr ""

#. type: section
#: doc/guix.texi:11227
#, no-wrap
msgid "Invoking @command{guix refresh}"
msgstr ""

#. type: command{#1}
#: doc/guix.texi:11229
#, no-wrap
msgid "guix refresh"
msgstr ""

#. type: Plain text
#: doc/guix.texi:11234
msgid ""
"The primary audience of the @command{guix refresh} command is developers of "
"the GNU software distribution.  By default, it reports any packages provided "
"by the distribution that are outdated compared to the latest upstream "
"version, like this:"
msgstr ""

#. type: example
#: doc/guix.texi:11239
#, no-wrap
msgid ""
"$ guix refresh\n"
"gnu/packages/gettext.scm:29:13: gettext would be upgraded from 0.18.1.1 to 0.18.2.1\n"
"gnu/packages/glib.scm:77:12: glib would be upgraded from 2.34.3 to 2.37.0\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:11243
msgid ""
"Alternatively, one can specify packages to consider, in which case a warning "
"is emitted for packages that lack an updater:"
msgstr ""

#. type: example
#: doc/guix.texi:11248
#, no-wrap
msgid ""
"$ guix refresh coreutils guile guile-ssh\n"
"gnu/packages/ssh.scm:205:2: warning: no updater for guile-ssh\n"
"gnu/packages/guile.scm:136:12: guile would be upgraded from 2.0.12 to 2.0.13\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:11257
msgid ""
"@command{guix refresh} browses the upstream repository of each package and "
"determines the highest version number of the releases therein.  The command "
"knows how to update specific types of packages: GNU packages, ELPA packages, "
"etc.---see the documentation for @option{--type} below.  There are many "
"packages, though, for which it lacks a method to determine whether a new "
"upstream release is available.  However, the mechanism is extensible, so "
"feel free to get in touch with us to add a new method!"
msgstr ""

#. type: table
#: doc/guix.texi:11262
msgid ""
"Consider the packages specified, and all the packages upon which they depend."
msgstr ""

#. type: example
#: doc/guix.texi:11270
#, no-wrap
msgid ""
"$ guix refresh --recursive coreutils\n"
"gnu/packages/acl.scm:35:2: warning: no updater for acl\n"
"gnu/packages/m4.scm:30:12: info: 1.4.18 is already the latest version of m4\n"
"gnu/packages/xml.scm:68:2: warning: no updater for expat\n"
"gnu/packages/multiprecision.scm:40:12: info: 6.1.2 is already the latest version of gmp\n"
"@dots{}\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:11278
msgid ""
"Sometimes the upstream name differs from the package name used in Guix, and "
"@command{guix refresh} needs a little help.  Most updaters honor the "
"@code{upstream-name} property in package definitions, which can be used to "
"that effect:"
msgstr ""

#. type: lisp
#: doc/guix.texi:11285
#, no-wrap
msgid ""
"(define-public network-manager\n"
"  (package\n"
"    (name \"network-manager\")\n"
"    ;; @dots{}\n"
"    (properties '((upstream-name . \"NetworkManager\")))))\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:11294
msgid ""
"When passed @option{--update}, it modifies distribution source files to "
"update the version numbers and source tarball hashes of those package "
"recipes (@pxref{Defining Packages}).  This is achieved by downloading each "
"package's latest source tarball and its associated OpenPGP signature, "
"authenticating the downloaded tarball against its signature using "
"@command{gpgv}, and finally computing its hash---note that GnuPG must be "
"installed and in @code{$PATH}; run @code{guix install gnupg} if needed."
msgstr ""

#. type: Plain text
#: doc/guix.texi:11300
msgid ""
"When the public key used to sign the tarball is missing from the user's "
"keyring, an attempt is made to automatically retrieve it from a public key "
"server; when this is successful, the key is added to the user's keyring; "
"otherwise, @command{guix refresh} reports an error."
msgstr ""

#. type: Plain text
#: doc/guix.texi:11302
msgid "The following options are supported:"
msgstr ""

#. type: table
#: doc/guix.texi:11310 doc/guix.texi:12095
msgid "This is useful to precisely refer to a package, as in this example:"
msgstr ""

#. type: example
#: doc/guix.texi:11313
#, no-wrap
msgid "guix refresh -l -e '(@@@@ (gnu packages commencement) glibc-final)'\n"
msgstr ""

#. type: table
#: doc/guix.texi:11317
msgid ""
"This command lists the dependents of the ``final'' libc (essentially all the "
"packages)."
msgstr ""

#. type: item
#: doc/guix.texi:11318
#, no-wrap
msgid "--update"
msgstr ""

#. type: itemx
#: doc/guix.texi:11319
#, no-wrap
msgid "-u"
msgstr ""

#. type: table
#: doc/guix.texi:11323
msgid ""
"Update distribution source files (package recipes) in place.  This is "
"usually run from a checkout of the Guix source tree (@pxref{Running Guix "
"Before It Is Installed}):"
msgstr ""

#. type: example
#: doc/guix.texi:11326
#, no-wrap
msgid "$ ./pre-inst-env guix refresh -s non-core -u\n"
msgstr ""

#. type: table
#: doc/guix.texi:11329
msgid "@xref{Defining Packages}, for more information on package definitions."
msgstr ""

#. type: item
#: doc/guix.texi:11330
#, no-wrap
msgid "--select=[@var{subset}]"
msgstr ""

#. type: itemx
#: doc/guix.texi:11331
#, no-wrap
msgid "-s @var{subset}"
msgstr ""

#. type: table
#: doc/guix.texi:11334
msgid ""
"Select all the packages in @var{subset}, one of @code{core} or @code{non-"
"core}."
msgstr ""

#. type: table
#: doc/guix.texi:11341
msgid ""
"The @code{core} subset refers to all the packages at the core of the "
"distribution---i.e., packages that are used to build ``everything else''.  "
"This includes GCC, libc, Binutils, Bash, etc.  Usually, changing one of "
"these packages in the distribution entails a rebuild of all the others.  "
"Thus, such updates are an inconvenience to users in terms of build time or "
"bandwidth used to achieve the upgrade."
msgstr ""

#. type: table
#: doc/guix.texi:11345
msgid ""
"The @code{non-core} subset refers to the remaining packages.  It is "
"typically useful in cases where an update of the core packages would be "
"inconvenient."
msgstr ""

#. type: table
#: doc/guix.texi:11350
msgid ""
"Select all the packages from the manifest in @var{file}. This is useful to "
"check if any packages of the user manifest can be updated."
msgstr ""

#. type: item
#: doc/guix.texi:11351
#, no-wrap
msgid "--type=@var{updater}"
msgstr ""

#. type: itemx
#: doc/guix.texi:11352
#, no-wrap
msgid "-t @var{updater}"
msgstr ""

#. type: table
#: doc/guix.texi:11355
msgid ""
"Select only packages handled by @var{updater} (may be a comma-separated list "
"of updaters).  Currently, @var{updater} may be one of:"
msgstr ""

#. type: table
#: doc/guix.texi:11359
msgid "the updater for GNU packages;"
msgstr ""

#. type: item
#: doc/guix.texi:11359
#, no-wrap
msgid "savannah"
msgstr ""

#. type: table
#: doc/guix.texi:11361
msgid ""
"the updater for packages hosted at @uref{https://savannah.gnu.org, Savannah};"
msgstr ""

#. type: item
#: doc/guix.texi:11361
#, no-wrap
msgid "gnome"
msgstr ""

#. type: table
#: doc/guix.texi:11363
msgid "the updater for GNOME packages;"
msgstr ""

#. type: item
#: doc/guix.texi:11363
#, no-wrap
msgid "kde"
msgstr ""

#. type: table
#: doc/guix.texi:11365
msgid "the updater for KDE packages;"
msgstr ""

#. type: item
#: doc/guix.texi:11365
#, no-wrap
msgid "xorg"
msgstr ""

#. type: table
#: doc/guix.texi:11367
msgid "the updater for X.org packages;"
msgstr ""

#. type: item
#: doc/guix.texi:11367
#, no-wrap
msgid "kernel.org"
msgstr ""

#. type: table
#: doc/guix.texi:11369
msgid "the updater for packages hosted on kernel.org;"
msgstr ""

#. type: table
#: doc/guix.texi:11371
msgid "the updater for @uref{https://elpa.gnu.org/, ELPA} packages;"
msgstr ""

#. type: table
#: doc/guix.texi:11373
msgid "the updater for @uref{https://cran.r-project.org/, CRAN} packages;"
msgstr ""

#. type: item
#: doc/guix.texi:11373
#, no-wrap
msgid "bioconductor"
msgstr ""

#. type: table
#: doc/guix.texi:11375
msgid ""
"the updater for @uref{https://www.bioconductor.org/, Bioconductor} R "
"packages;"
msgstr ""

#. type: table
#: doc/guix.texi:11377
msgid "the updater for @uref{https://www.cpan.org/, CPAN} packages;"
msgstr ""

#. type: table
#: doc/guix.texi:11379
msgid "the updater for @uref{https://pypi.python.org, PyPI} packages."
msgstr ""

#. type: table
#: doc/guix.texi:11381
msgid "the updater for @uref{https://rubygems.org, RubyGems} packages."
msgstr ""

#. type: item
#: doc/guix.texi:11381
#, no-wrap
msgid "github"
msgstr ""

#. type: table
#: doc/guix.texi:11383
msgid "the updater for @uref{https://github.com, GitHub} packages."
msgstr ""

#. type: table
#: doc/guix.texi:11385
msgid "the updater for @uref{https://hackage.haskell.org, Hackage} packages."
msgstr ""

#. type: table
#: doc/guix.texi:11387
msgid "the updater for @uref{https://www.stackage.org, Stackage} packages."
msgstr ""

#. type: table
#: doc/guix.texi:11389
msgid "the updater for @uref{https://crates.io, Crates} packages."
msgstr ""

#. type: item
#: doc/guix.texi:11389
#, no-wrap
msgid "launchpad"
msgstr ""

#. type: table
#: doc/guix.texi:11391
msgid "the updater for @uref{https://launchpad.net, Launchpad} packages."
msgstr ""

#. type: table
#: doc/guix.texi:11395
msgid ""
"For instance, the following command only checks for updates of Emacs "
"packages hosted at @code{elpa.gnu.org} and for updates of CRAN packages:"
msgstr ""

#. type: example
#: doc/guix.texi:11400
#, no-wrap
msgid ""
"$ guix refresh --type=elpa,cran\n"
"gnu/packages/statistics.scm:819:13: r-testthat would be upgraded from 0.10.0 to 0.11.0\n"
"gnu/packages/emacs.scm:856:13: emacs-auctex would be upgraded from 11.88.6 to 11.88.9\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:11406
msgid ""
"In addition, @command{guix refresh} can be passed one or more package names, "
"as in this example:"
msgstr ""

#. type: example
#: doc/guix.texi:11409
#, no-wrap
msgid "$ ./pre-inst-env guix refresh -u emacs idutils gcc@@4.8\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:11415
msgid ""
"The command above specifically updates the @code{emacs} and @code{idutils} "
"packages.  The @option{--select} option would have no effect in this case."
msgstr ""

#. type: Plain text
#: doc/guix.texi:11420
msgid ""
"When considering whether to upgrade a package, it is sometimes convenient to "
"know which packages would be affected by the upgrade and should be checked "
"for compatibility.  For this the following option may be used when passing "
"@command{guix refresh} one or more package names:"
msgstr ""

#. type: item
#: doc/guix.texi:11423
#, no-wrap
msgid "--list-updaters"
msgstr ""

#. type: itemx
#: doc/guix.texi:11424
#, no-wrap
msgid "-L"
msgstr ""

#. type: table
#: doc/guix.texi:11426
msgid "List available updaters and exit (see @option{--type} above)."
msgstr ""

#. type: table
#: doc/guix.texi:11429
msgid ""
"For each updater, display the fraction of packages it covers; at the end, "
"display the fraction of packages covered by all these updaters."
msgstr ""

#. type: item
#: doc/guix.texi:11430
#, no-wrap
msgid "--list-dependent"
msgstr ""

#. type: itemx
#: doc/guix.texi:11431 doc/guix.texi:11690
#, no-wrap
msgid "-l"
msgstr ""

#. type: table
#: doc/guix.texi:11434
msgid ""
"List top-level dependent packages that would need to be rebuilt as a result "
"of upgrading one or more packages."
msgstr ""

#. type: table
#: doc/guix.texi:11438
msgid ""
"@xref{Invoking guix graph, the @code{reverse-package} type of @command{guix "
"graph}}, for information on how to visualize the list of dependents of a "
"package."
msgstr ""

#. type: Plain text
#: doc/guix.texi:11444
msgid ""
"Be aware that the @option{--list-dependent} option only @emph{approximates} "
"the rebuilds that would be required as a result of an upgrade.  More "
"rebuilds might be required under some circumstances."
msgstr ""

#. type: example
#: doc/guix.texi:11449
#, no-wrap
msgid ""
"$ guix refresh --list-dependent flex\n"
"Building the following 120 packages would ensure 213 dependent packages are rebuilt:\n"
"hop@@2.4.0 geiser@@0.4 notmuch@@0.18 mu@@0.9.9.5 cflow@@1.4 idutils@@4.6 @dots{}\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:11453
msgid ""
"The command above lists a set of packages that could be built to check for "
"compatibility with an upgraded @code{flex} package."
msgstr ""

#. type: item
#: doc/guix.texi:11456
#, no-wrap
msgid "--list-transitive"
msgstr ""

#. type: table
#: doc/guix.texi:11458
msgid "List all the packages which one or more packages depend upon."
msgstr ""

#. type: example
#: doc/guix.texi:11463
#, no-wrap
msgid ""
"$ guix refresh --list-transitive flex\n"
"flex@@2.6.4 depends on the following 25 packages: perl@@5.28.0 help2man@@1.47.6\n"
"bison@@3.0.5 indent@@2.2.10 tar@@1.30 gzip@@1.9 bzip2@@1.0.6 xz@@5.2.4 file@@5.33 @dots{}\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:11469
msgid ""
"The command above lists a set of packages which, when changed, would cause "
"@code{flex} to be rebuilt."
msgstr ""

#. type: Plain text
#: doc/guix.texi:11471
msgid "The following options can be used to customize GnuPG operation:"
msgstr ""

#. type: item
#: doc/guix.texi:11474
#, no-wrap
msgid "--gpg=@var{command}"
msgstr ""

#. type: table
#: doc/guix.texi:11477
msgid ""
"Use @var{command} as the GnuPG 2.x command.  @var{command} is searched for "
"in @code{$PATH}."
msgstr ""

#. type: item
#: doc/guix.texi:11478
#, no-wrap
msgid "--keyring=@var{file}"
msgstr ""

#. type: table
#: doc/guix.texi:11484
msgid ""
"Use @var{file} as the keyring for upstream keys.  @var{file} must be in the "
"@dfn{keybox format}.  Keybox files usually have a name ending in @file{.kbx} "
"and the GNU@tie{}Privacy Guard (GPG) can manipulate these files "
"(@pxref{kbxutil, @command{kbxutil},, gnupg, Using the GNU Privacy Guard}, "
"for information on a tool to manipulate keybox files)."
msgstr ""

#. type: table
#: doc/guix.texi:11490
msgid ""
"When this option is omitted, @command{guix refresh} uses @file{~/.config/"
"guix/upstream/trustedkeys.kbx} as the keyring for upstream signing keys.  "
"OpenPGP signatures are checked against keys from this keyring; missing keys "
"are downloaded to this keyring as well (see @option{--key-download} below)."
msgstr ""

#. type: table
#: doc/guix.texi:11493
msgid ""
"You can export keys from your default GPG keyring into a keybox file using "
"commands like this one:"
msgstr ""

#. type: example
#: doc/guix.texi:11496
#, no-wrap
msgid "gpg --export rms@@gnu.org | kbxutil --import-openpgp >> mykeyring.kbx\n"
msgstr ""

#. type: table
#: doc/guix.texi:11499
msgid "Likewise, you can fetch keys to a specific keybox file like this:"
msgstr ""

#. type: example
#: doc/guix.texi:11503
#, no-wrap
msgid ""
"gpg --no-default-keyring --keyring mykeyring.kbx \\\n"
"  --recv-keys @value{OPENPGP-SIGNING-KEY-ID}\n"
msgstr ""

#. type: table
#: doc/guix.texi:11507
msgid ""
"@ref{GPG Configuration Options, @option{--keyring},, gnupg, Using the GNU "
"Privacy Guard}, for more information on GPG's @option{--keyring} option."
msgstr ""

#. type: table
#: doc/guix.texi:11511
msgid ""
"Handle missing OpenPGP keys according to @var{policy}, which may be one of:"
msgstr ""

#. type: item
#: doc/guix.texi:11513 doc/guix.texi:19898
#, no-wrap
msgid "always"
msgstr ""

#. type: table
#: doc/guix.texi:11516
msgid ""
"Always download missing OpenPGP keys from the key server, and add them to "
"the user's GnuPG keyring."
msgstr ""

#. type: item
#: doc/guix.texi:11517 doc/guix.texi:19900
#, no-wrap
msgid "never"
msgstr ""

#. type: table
#: doc/guix.texi:11519
msgid "Never try to download missing OpenPGP keys.  Instead just bail out."
msgstr ""

#. type: item
#: doc/guix.texi:11520
#, no-wrap
msgid "interactive"
msgstr ""

#. type: table
#: doc/guix.texi:11523
msgid ""
"When a package signed with an unknown OpenPGP key is encountered, ask the "
"user whether to download it or not.  This is the default behavior."
msgstr ""

#. type: item
#: doc/guix.texi:11525
#, no-wrap
msgid "--key-server=@var{host}"
msgstr ""

#. type: table
#: doc/guix.texi:11527
msgid "Use @var{host} as the OpenPGP key server when importing a public key."
msgstr ""

#. type: Plain text
#: doc/guix.texi:11547
msgid ""
"The @code{github} updater uses the @uref{https://developer.github.com/v3/, "
"GitHub API} to query for new releases.  When used repeatedly e.g.@: when "
"refreshing all packages, GitHub will eventually refuse to answer any further "
"API requests.  By default 60 API requests per hour are allowed, and a full "
"refresh on all GitHub packages in Guix requires more than this.  "
"Authentication with GitHub through the use of an API token alleviates these "
"limits.  To use an API token, set the environment variable "
"@env{GUIX_GITHUB_TOKEN} to a token procured from @uref{https://github.com/"
"settings/tokens} or otherwise."
msgstr ""

#. type: section
#: doc/guix.texi:11550
#, no-wrap
msgid "Invoking @command{guix lint}"
msgstr ""

#. type: command{#1}
#: doc/guix.texi:11552
#, no-wrap
msgid "guix lint"
msgstr ""

#. type: cindex
#: doc/guix.texi:11553
#, no-wrap
msgid "package, checking for errors"
msgstr ""

#. type: Plain text
#: doc/guix.texi:11559
msgid ""
"The @command{guix lint} command is meant to help package developers avoid "
"common errors and use a consistent style.  It runs a number of checks on a "
"given set of packages in order to find common mistakes in their "
"definitions.  Available @dfn{checkers} include (see @option{--list-checkers} "
"for a complete list):"
msgstr ""

#. type: table
#: doc/guix.texi:11565
msgid ""
"Validate certain typographical and stylistic rules about package "
"descriptions and synopses."
msgstr ""

#. type: item
#: doc/guix.texi:11566
#, no-wrap
msgid "inputs-should-be-native"
msgstr ""

#. type: table
#: doc/guix.texi:11568
msgid "Identify inputs that should most likely be native inputs."
msgstr ""

#. type: itemx
#: doc/guix.texi:11571
#, no-wrap
msgid "mirror-url"
msgstr ""

#. type: itemx
#: doc/guix.texi:11572
#, no-wrap
msgid "github-url"
msgstr ""

#. type: itemx
#: doc/guix.texi:11573
#, no-wrap
msgid "source-file-name"
msgstr ""

#. type: table
#: doc/guix.texi:11580
msgid ""
"Probe @code{home-page} and @code{source} URLs and report those that are "
"invalid.  Suggest a @code{mirror://} URL when applicable.  If the "
"@code{source} URL redirects to a GitHub URL, recommend usage of the GitHub "
"URL.  Check that the source file name is meaningful, e.g.@: is not just a "
"version number or ``git-checkout'', without a declared @code{file-name} "
"(@pxref{origin Reference})."
msgstr ""

#. type: item
#: doc/guix.texi:11581
#, no-wrap
msgid "source-unstable-tarball"
msgstr ""

#. type: table
#: doc/guix.texi:11585
msgid ""
"Parse the @code{source} URL to determine if a tarball from GitHub is "
"autogenerated or if it is a release tarball.  Unfortunately GitHub's "
"autogenerated tarballs are sometimes regenerated."
msgstr ""

#. type: table
#: doc/guix.texi:11589
msgid ""
"Check that the derivation of the given packages can be successfully computed "
"for all the supported systems (@pxref{Derivations})."
msgstr ""

#. type: item
#: doc/guix.texi:11590
#, no-wrap
msgid "profile-collisions"
msgstr ""

#. type: table
#: doc/guix.texi:11596
msgid ""
"Check whether installing the given packages in a profile would lead to "
"collisions.  Collisions occur when several packages with the same name but a "
"different version or a different store file name are propagated.  "
"@xref{package Reference, @code{propagated-inputs}}, for more information on "
"propagated inputs."
msgstr ""

#. type: item
#: doc/guix.texi:11597
#, no-wrap
msgid "archival"
msgstr ""

#. type: cindex
#: doc/guix.texi:11598
#, no-wrap
msgid "Software Heritage, source code archive"
msgstr ""

#. type: cindex
#: doc/guix.texi:11599
#, no-wrap
msgid "archival of source code, Software Heritage"
msgstr ""

#. type: table
#: doc/guix.texi:11602
msgid ""
"Checks whether the package's source code is archived at @uref{https://www."
"softwareheritage.org, Software Heritage}."
msgstr ""

#. type: table
#: doc/guix.texi:11610
msgid ""
"When the source code that is not archived comes from a version-control "
"system (VCS)---e.g., it's obtained with @code{git-fetch}, send Software "
"Heritage a ``save'' request so that it eventually archives it.  This ensures "
"that the source will remain available in the long term, and that Guix can "
"fall back to Software Heritage should the source code disappear from its "
"original host.  The status of recent ``save'' requests can be @uref{https://"
"archive.softwareheritage.org/save/#requests, viewed on-line}."
msgstr ""

#. type: table
#: doc/guix.texi:11615
msgid ""
"When source code is a tarball obtained with @code{url-fetch}, simply print a "
"message when it is not archived.  As of this writing, Software Heritage does "
"not allow requests to save arbitrary tarballs; we are working on ways to "
"ensure that non-VCS source code is also archived."
msgstr ""

#. type: table
#: doc/guix.texi:11621
msgid ""
"Software Heritage @uref{https://archive.softwareheritage.org/api/#rate-"
"limiting, limits the request rate per IP address}.  When the limit is "
"reached, @command{guix lint} prints a message and the @code{archival} "
"checker stops doing anything until that limit has been reset."
msgstr ""

#. type: item
#: doc/guix.texi:11622
#, no-wrap
msgid "cve"
msgstr ""

#. type: cindex
#: doc/guix.texi:11623 doc/guix.texi:32372
#, no-wrap
msgid "security vulnerabilities"
msgstr ""

#. type: cindex
#: doc/guix.texi:11624
#, no-wrap
msgid "CVE, Common Vulnerabilities and Exposures"
msgstr ""

#. type: table
#: doc/guix.texi:11629
msgid ""
"Report known vulnerabilities found in the Common Vulnerabilities and "
"Exposures (CVE) databases of the current and past year @uref{https://nvd."
"nist.gov/vuln/data-feeds, published by the US NIST}."
msgstr ""

#. type: table
#: doc/guix.texi:11631
msgid ""
"To view information about a particular vulnerability, visit pages such as:"
msgstr ""

#. type: indicateurl{#1}
#: doc/guix.texi:11635
msgid "https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-YYYY-ABCD"
msgstr ""

#. type: indicateurl{#1}
#: doc/guix.texi:11637
msgid "https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-YYYY-ABCD"
msgstr ""

#. type: table
#: doc/guix.texi:11642
msgid ""
"where @code{CVE-YYYY-ABCD} is the CVE identifier---e.g., "
"@code{CVE-2015-7554}."
msgstr ""

#. type: table
#: doc/guix.texi:11647
msgid ""
"Package developers can specify in package recipes the @uref{https://nvd.nist."
"gov/products/cpe,Common Platform Enumeration (CPE)} name and version of the "
"package when they differ from the name or version that Guix uses, as in this "
"example:"
msgstr ""

#. type: lisp
#: doc/guix.texi:11655
#, no-wrap
msgid ""
"(package\n"
"  (name \"grub\")\n"
"  ;; @dots{}\n"
"  ;; CPE calls this package \"grub2\".\n"
"  (properties '((cpe-name . \"grub2\")\n"
"                (cpe-version . \"2.3\"))))\n"
msgstr ""

#. type: table
#: doc/guix.texi:11662
msgid ""
"Some entries in the CVE database do not specify which version of a package "
"they apply to, and would thus ``stick around'' forever.  Package developers "
"who found CVE alerts and verified they can be ignored can declare them as in "
"this example:"
msgstr ""

#. type: lisp
#: doc/guix.texi:11672
#, no-wrap
msgid ""
"(package\n"
"  (name \"t1lib\")\n"
"  ;; @dots{}\n"
"  ;; These CVEs no longer apply and can be safely ignored.\n"
"  (properties `((lint-hidden-cve . (\"CVE-2011-0433\"\n"
"                                    \"CVE-2011-1553\"\n"
"                                    \"CVE-2011-1554\"\n"
"                                    \"CVE-2011-5244\")))))\n"
msgstr ""

#. type: item
#: doc/guix.texi:11674
#, no-wrap
msgid "formatting"
msgstr ""

#. type: table
#: doc/guix.texi:11677
msgid ""
"Warn about obvious source code formatting issues: trailing white space, use "
"of tabulations, etc."
msgstr ""

#. type: example
#: doc/guix.texi:11683
#, no-wrap
msgid "guix lint @var{options} @var{package}@dots{}\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:11687
msgid ""
"If no package is given on the command line, then all packages are checked.  "
"The @var{options} may be zero or more of the following:"
msgstr ""

#. type: item
#: doc/guix.texi:11689
#, no-wrap
msgid "--list-checkers"
msgstr ""

#. type: table
#: doc/guix.texi:11693
msgid ""
"List and describe all the available checkers that will be run on packages "
"and exit."
msgstr ""

#. type: item
#: doc/guix.texi:11694
#, no-wrap
msgid "--checkers"
msgstr ""

#. type: itemx
#: doc/guix.texi:11695
#, no-wrap
msgid "-c"
msgstr ""

#. type: table
#: doc/guix.texi:11698
msgid ""
"Only enable the checkers specified in a comma-separated list using the names "
"returned by @option{--list-checkers}."
msgstr ""

#. type: item
#: doc/guix.texi:11699
#, no-wrap
msgid "--exclude"
msgstr ""

#. type: table
#: doc/guix.texi:11703
msgid ""
"Only disable the checkers specified in a comma-separated list using the "
"names returned by @option{--list-checkers}."
msgstr ""

#. type: item
#: doc/guix.texi:11704
#, no-wrap
msgid "--no-network"
msgstr ""

#. type: table
#: doc/guix.texi:11707
msgid "Only enable the checkers that do not depend on Internet access."
msgstr ""

#. type: section
#: doc/guix.texi:11719
#, no-wrap
msgid "Invoking @command{guix size}"
msgstr ""

#. type: code{#1}
#: doc/guix.texi:11721 doc/guix.texi:31374
#, no-wrap
msgid "size"
msgstr ""

#. type: cindex
#: doc/guix.texi:11722
#, no-wrap
msgid "package size"
msgstr ""

#. type: command{#1}
#: doc/guix.texi:11724
#, no-wrap
msgid "guix size"
msgstr ""

#. type: Plain text
#: doc/guix.texi:11731
msgid ""
"The @command{guix size} command helps package developers profile the disk "
"usage of packages.  It is easy to overlook the impact of an additional "
"dependency added to a package, or the impact of using a single output for a "
"package that could easily be split (@pxref{Packages with Multiple "
"Outputs}).  Such are the typical issues that @command{guix size} can "
"highlight."
msgstr ""

#. type: Plain text
#: doc/guix.texi:11736
msgid ""
"The command can be passed one or more package specifications such as "
"@code{gcc@@4.8} or @code{guile:debug}, or a file name in the store.  "
"Consider this example:"
msgstr ""

#. type: example
#: doc/guix.texi:11749
#, no-wrap
msgid ""
"$ guix size coreutils\n"
"store item                               total    self\n"
"/gnu/store/@dots{}-gcc-5.5.0-lib           60.4    30.1  38.1%\n"
"/gnu/store/@dots{}-glibc-2.27              30.3    28.8  36.6%\n"
"/gnu/store/@dots{}-coreutils-8.28          78.9    15.0  19.0%\n"
"/gnu/store/@dots{}-gmp-6.1.2               63.1     2.7   3.4%\n"
"/gnu/store/@dots{}-bash-static-4.4.12       1.5     1.5   1.9%\n"
"/gnu/store/@dots{}-acl-2.2.52              61.1     0.4   0.5%\n"
"/gnu/store/@dots{}-attr-2.4.47             60.6     0.2   0.3%\n"
"/gnu/store/@dots{}-libcap-2.25             60.5     0.2   0.2%\n"
"total: 78.9 MiB\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:11755
msgid ""
"The store items listed here constitute the @dfn{transitive closure} of "
"Coreutils---i.e., Coreutils and all its dependencies, recursively---as would "
"be returned by:"
msgstr ""

#. type: example
#: doc/guix.texi:11758
#, no-wrap
msgid "$ guix gc -R /gnu/store/@dots{}-coreutils-8.23\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:11766
msgid ""
"Here the output shows three columns next to store items.  The first column, "
"labeled ``total'', shows the size in mebibytes (MiB) of the closure of the "
"store item---that is, its own size plus the size of all its dependencies.  "
"The next column, labeled ``self'', shows the size of the item itself.  The "
"last column shows the ratio of the size of the item itself to the space "
"occupied by all the items listed here."
msgstr ""

#. type: Plain text
#: doc/guix.texi:11772
msgid ""
"In this example, we see that the closure of Coreutils weighs in at 79@tie{}"
"MiB, most of which is taken by libc and GCC's run-time support libraries.  "
"(That libc and GCC's libraries represent a large fraction of the closure is "
"not a problem @i{per se} because they are always available on the system "
"anyway.)"
msgstr ""

#. type: Plain text
#: doc/guix.texi:11775
msgid ""
"Since the command also accepts store file names, assessing the size of a "
"build result is straightforward:"
msgstr ""

#. type: example
#: doc/guix.texi:11778
#, no-wrap
msgid "guix size $(guix system build config.scm)\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:11788
msgid ""
"When the package(s) passed to @command{guix size} are available in the "
"store@footnote{More precisely, @command{guix size} looks for the "
"@emph{ungrafted} variant of the given package(s), as returned by @code{guix "
"build @var{package} --no-grafts}.  @xref{Security Updates}, for information "
"on grafts.}, @command{guix size} queries the daemon to determine its "
"dependencies, and measures its size in the store, similar to @command{du -ms "
"--apparent-size} (@pxref{du invocation,,, coreutils, GNU Coreutils})."
msgstr ""

#. type: Plain text
#: doc/guix.texi:11793
msgid ""
"When the given packages are @emph{not} in the store, @command{guix size} "
"reports information based on the available substitutes "
"(@pxref{Substitutes}).  This makes it possible it to profile disk usage of "
"store items that are not even on disk, only available remotely."
msgstr ""

#. type: Plain text
#: doc/guix.texi:11795
msgid "You can also specify several package names:"
msgstr ""

#. type: example
#: doc/guix.texi:11805
#, no-wrap
msgid ""
"$ guix size coreutils grep sed bash\n"
"store item                               total    self\n"
"/gnu/store/@dots{}-coreutils-8.24          77.8    13.8  13.4%\n"
"/gnu/store/@dots{}-grep-2.22               73.1     0.8   0.8%\n"
"/gnu/store/@dots{}-bash-4.3.42             72.3     4.7   4.6%\n"
"/gnu/store/@dots{}-readline-6.3            67.6     1.2   1.2%\n"
"@dots{}\n"
"total: 102.3 MiB\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:11811
msgid ""
"In this example we see that the combination of the four packages takes "
"102.3@tie{}MiB in total, which is much less than the sum of each closure "
"since they have a lot of dependencies in common."
msgstr ""

#. type: Plain text
#: doc/guix.texi:11817
msgid ""
"When looking at the profile returned by @command{guix size}, you may find "
"yourself wondering why a given package shows up in the profile at all.  To "
"understand it, you can use @command{guix graph --path -t references} to "
"display the shortest path between the two packages (@pxref{Invoking guix "
"graph})."
msgstr ""

#. type: Plain text
#: doc/guix.texi:11819
msgid "The available options are:"
msgstr ""

#. type: table
#: doc/guix.texi:11825
msgid ""
"Use substitute information from @var{urls}.  @xref{client-substitute-urls, "
"the same option for @code{guix build}}."
msgstr ""

#. type: item
#: doc/guix.texi:11826
#, no-wrap
msgid "--sort=@var{key}"
msgstr ""

#. type: table
#: doc/guix.texi:11828
msgid "Sort lines according to @var{key}, one of the following options:"
msgstr ""

#. type: item
#: doc/guix.texi:11830
#, no-wrap
msgid "self"
msgstr ""

#. type: table
#: doc/guix.texi:11832
msgid "the size of each item (the default);"
msgstr ""

#. type: table
#: doc/guix.texi:11834
msgid "the total size of the item's closure."
msgstr ""

#. type: item
#: doc/guix.texi:11836
#, no-wrap
msgid "--map-file=@var{file}"
msgstr ""

#. type: table
#: doc/guix.texi:11838
msgid "Write a graphical map of disk usage in PNG format to @var{file}."
msgstr ""

#. type: table
#: doc/guix.texi:11840
msgid "For the example above, the map looks like this:"
msgstr ""

#. type: table
#: doc/guix.texi:11843
msgid ""
"@image{images/coreutils-size-map,5in,, map of Coreutils disk usage produced "
"by @command{guix size}}"
msgstr ""

#. type: table
#: doc/guix.texi:11848
msgid ""
"This option requires that @uref{https://wingolog.org/software/guile-"
"charting/, Guile-Charting} be installed and visible in Guile's module search "
"path.  When that is not the case, @command{guix size} fails as it tries to "
"load it."
msgstr ""

#. type: table
#: doc/guix.texi:11852
msgid "Consider packages for @var{system}---e.g., @code{x86_64-linux}."
msgstr ""

#. type: section
#: doc/guix.texi:11863
#, no-wrap
msgid "Invoking @command{guix graph}"
msgstr ""

#. type: cindex
#: doc/guix.texi:11865
#, no-wrap
msgid "DAG"
msgstr ""

#. type: command{#1}
#: doc/guix.texi:11866
#, no-wrap
msgid "guix graph"
msgstr ""

#. type: Plain text
#: doc/guix.texi:11881
msgid ""
"Packages and their dependencies form a @dfn{graph}, specifically a directed "
"acyclic graph (DAG).  It can quickly become difficult to have a mental model "
"of the package DAG, so the @command{guix graph} command provides a visual "
"representation of the DAG.  By default, @command{guix graph} emits a DAG "
"representation in the input format of @uref{https://www.graphviz.org/, "
"Graphviz}, so its output can be passed directly to the @command{dot} command "
"of Graphviz.  It can also emit an HTML page with embedded JavaScript code to "
"display a ``chord diagram'' in a Web browser, using the @uref{https://d3js."
"org/, d3.js} library, or emit Cypher queries to construct a graph in a graph "
"database supporting the @uref{https://www.opencypher.org/, openCypher} query "
"language.  With @option{--path}, it simply displays the shortest path "
"between two packages.  The general syntax is:"
msgstr ""

#. type: example
#: doc/guix.texi:11884
#, no-wrap
msgid "guix graph @var{options} @var{package}@dots{}\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:11889
msgid ""
"For example, the following command generates a PDF file representing the "
"package DAG for the GNU@tie{}Core Utilities, showing its build-time "
"dependencies:"
msgstr ""

#. type: example
#: doc/guix.texi:11892
#, no-wrap
msgid "guix graph coreutils | dot -Tpdf > dag.pdf\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:11895
msgid "The output looks like this:"
msgstr ""

#. type: Plain text
#: doc/guix.texi:11897
msgid ""
"@image{images/coreutils-graph,2in,,Dependency graph of the GNU Coreutils}"
msgstr ""

#. type: Plain text
#: doc/guix.texi:11899
msgid "Nice little graph, no?"
msgstr ""

#. type: Plain text
#: doc/guix.texi:11902
msgid ""
"You may find it more pleasant to navigate the graph interactively with "
"@command{xdot} (from the @code{xdot} package):"
msgstr ""

#. type: example
#: doc/guix.texi:11905
#, no-wrap
msgid "guix graph coreutils | xdot -\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:11912
msgid ""
"But there is more than one graph! The one above is concise: it is the graph "
"of package objects, omitting implicit inputs such as GCC, libc, grep, etc.  "
"It is often useful to have such a concise graph, but sometimes one may want "
"to see more details.  @command{guix graph} supports several types of graphs, "
"allowing you to choose the level of detail:"
msgstr ""

#. type: table
#: doc/guix.texi:11918
msgid ""
"This is the default type used in the example above.  It shows the DAG of "
"package objects, excluding implicit dependencies.  It is concise, but "
"filters out many details."
msgstr ""

#. type: item
#: doc/guix.texi:11919
#, no-wrap
msgid "reverse-package"
msgstr ""

#. type: table
#: doc/guix.texi:11921
msgid "This shows the @emph{reverse} DAG of packages.  For example:"
msgstr ""

#. type: example
#: doc/guix.texi:11924
#, no-wrap
msgid "guix graph --type=reverse-package ocaml\n"
msgstr ""

#. type: table
#: doc/guix.texi:11929
msgid ""
"...@: yields the graph of packages that @emph{explicitly} depend on OCaml "
"(if you are also interested in cases where OCaml is an implicit dependency, "
"see @code{reverse-bag} below)."
msgstr ""

#. type: table
#: doc/guix.texi:11934
msgid ""
"Note that for core packages this can yield huge graphs.  If all you want is "
"to know the number of packages that depend on a given package, use "
"@command{guix refresh --list-dependent} (@pxref{Invoking guix refresh, "
"@option{--list-dependent}})."
msgstr ""

#. type: item
#: doc/guix.texi:11935
#, no-wrap
msgid "bag-emerged"
msgstr ""

#. type: table
#: doc/guix.texi:11937
msgid "This is the package DAG, @emph{including} implicit inputs."
msgstr ""

#. type: table
#: doc/guix.texi:11939
msgid "For instance, the following command:"
msgstr ""

#. type: example
#: doc/guix.texi:11942
#, no-wrap
msgid "guix graph --type=bag-emerged coreutils\n"
msgstr ""

#. type: table
#: doc/guix.texi:11945
msgid "...@: yields this bigger graph:"
msgstr ""

#. type: table
#: doc/guix.texi:11947
msgid ""
"@image{images/coreutils-bag-graph,,5in,Detailed dependency graph of the GNU "
"Coreutils}"
msgstr ""

#. type: table
#: doc/guix.texi:11950
msgid ""
"At the bottom of the graph, we see all the implicit inputs of @var{gnu-build-"
"system} (@pxref{Build Systems, @code{gnu-build-system}})."
msgstr ""

#. type: table
#: doc/guix.texi:11954
msgid ""
"Now, note that the dependencies of these implicit inputs---that is, the "
"@dfn{bootstrap dependencies} (@pxref{Bootstrapping})---are not shown here, "
"for conciseness."
msgstr ""

#. type: item
#: doc/guix.texi:11955
#, no-wrap
msgid "bag"
msgstr ""

#. type: table
#: doc/guix.texi:11958
msgid ""
"Similar to @code{bag-emerged}, but this time including all the bootstrap "
"dependencies."
msgstr ""

#. type: item
#: doc/guix.texi:11959
#, no-wrap
msgid "bag-with-origins"
msgstr ""

#. type: table
#: doc/guix.texi:11961
msgid "Similar to @code{bag}, but also showing origins and their dependencies."
msgstr ""

#. type: item
#: doc/guix.texi:11962
#, no-wrap
msgid "reverse-bag"
msgstr ""

#. type: table
#: doc/guix.texi:11965
msgid ""
"This shows the @emph{reverse} DAG of packages.  Unlike @code{reverse-"
"package}, it also takes implicit dependencies into account.  For example:"
msgstr ""

#. type: example
#: doc/guix.texi:11968
#, no-wrap
msgid "guix graph -t reverse-bag dune\n"
msgstr ""

#. type: table
#: doc/guix.texi:11975
msgid ""
"...@: yields the graph of all packages that depend on Dune, directly or "
"indirectly.  Since Dune is an @emph{implicit} dependency of many packages "
"@i{via} @code{dune-build-system}, this shows a large number of packages, "
"whereas @code{reverse-package} would show very few if any."
msgstr ""

#. type: table
#: doc/guix.texi:11981
msgid ""
"This is the most detailed representation: It shows the DAG of derivations "
"(@pxref{Derivations}) and plain store items.  Compared to the above "
"representation, many additional nodes are visible, including build scripts, "
"patches, Guile modules, etc."
msgstr ""

#. type: table
#: doc/guix.texi:11984
msgid ""
"For this type of graph, it is also possible to pass a @file{.drv} file name "
"instead of a package name, as in:"
msgstr ""

#. type: example
#: doc/guix.texi:11987
#, no-wrap
msgid "guix graph -t derivation `guix system build -d my-config.scm`\n"
msgstr ""

#. type: item
#: doc/guix.texi:11989
#, no-wrap
msgid "module"
msgstr ""

#. type: table
#: doc/guix.texi:11993
msgid ""
"This is the graph of @dfn{package modules} (@pxref{Package Modules}).  For "
"example, the following command shows the graph for the package module that "
"defines the @code{guile} package:"
msgstr ""

#. type: example
#: doc/guix.texi:11996
#, no-wrap
msgid "guix graph -t module guile | xdot -\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:12001
msgid ""
"All the types above correspond to @emph{build-time dependencies}.  The "
"following graph type represents the @emph{run-time dependencies}:"
msgstr ""

#. type: table
#: doc/guix.texi:12006
msgid ""
"This is the graph of @dfn{references} of a package output, as returned by "
"@command{guix gc --references} (@pxref{Invoking guix gc})."
msgstr ""

#. type: table
#: doc/guix.texi:12009
msgid ""
"If the given package output is not available in the store, @command{guix "
"graph} attempts to obtain dependency information from substitutes."
msgstr ""

#. type: table
#: doc/guix.texi:12013
msgid ""
"Here you can also pass a store file name instead of a package name.  For "
"example, the command below produces the reference graph of your profile "
"(which can be big!):"
msgstr ""

#. type: example
#: doc/guix.texi:12016
#, no-wrap
msgid "guix graph -t references `readlink -f ~/.guix-profile`\n"
msgstr ""

#. type: item
#: doc/guix.texi:12018
#, no-wrap
msgid "referrers"
msgstr ""

#. type: table
#: doc/guix.texi:12021
msgid ""
"This is the graph of the @dfn{referrers} of a store item, as returned by "
"@command{guix gc --referrers} (@pxref{Invoking guix gc})."
msgstr ""

#. type: table
#: doc/guix.texi:12027
msgid ""
"This relies exclusively on local information from your store.  For instance, "
"let us suppose that the current Inkscape is available in 10 profiles on your "
"machine; @command{guix graph -t referrers inkscape} will show a graph rooted "
"at Inkscape and with those 10 profiles linked to it."
msgstr ""

#. type: table
#: doc/guix.texi:12030
msgid ""
"It can help determine what is preventing a store item from being garbage "
"collected."
msgstr ""

#. type: cindex
#: doc/guix.texi:12033
#, no-wrap
msgid "shortest path, between packages"
msgstr ""

#. type: Plain text
#: doc/guix.texi:12040
msgid ""
"Often, the graph of the package you are interested in does not fit on your "
"screen, and anyway all you want to know is @emph{why} that package actually "
"depends on some seemingly unrelated package.  The @option{--path} option "
"instructs @command{guix graph} to display the shortest path between two "
"packages (or derivations, or store items, etc.):"
msgstr ""

#. type: example
#: doc/guix.texi:12054
#, no-wrap
msgid ""
"$ guix graph --path emacs libunistring\n"
"emacs@@26.3\n"
"mailutils@@3.9\n"
"libunistring@@0.9.10\n"
"$ guix graph --path -t derivation emacs libunistring\n"
"/gnu/store/@dots{}-emacs-26.3.drv\n"
"/gnu/store/@dots{}-mailutils-3.9.drv\n"
"/gnu/store/@dots{}-libunistring-0.9.10.drv\n"
"$ guix graph --path -t references emacs libunistring\n"
"/gnu/store/@dots{}-emacs-26.3\n"
"/gnu/store/@dots{}-libidn2-2.2.0\n"
"/gnu/store/@dots{}-libunistring-0.9.10\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:12057
msgid "The available options are the following:"
msgstr ""

#. type: table
#: doc/guix.texi:12063
msgid ""
"Produce a graph output of @var{type}, where @var{type} must be one of the "
"values listed above."
msgstr ""

#. type: item
#: doc/guix.texi:12064
#, no-wrap
msgid "--list-types"
msgstr ""

#. type: table
#: doc/guix.texi:12066
msgid "List the supported graph types."
msgstr ""

#. type: item
#: doc/guix.texi:12067
#, no-wrap
msgid "--backend=@var{backend}"
msgstr ""

#. type: itemx
#: doc/guix.texi:12068
#, no-wrap
msgid "-b @var{backend}"
msgstr ""

#. type: table
#: doc/guix.texi:12070
msgid "Produce a graph using the selected @var{backend}."
msgstr ""

#. type: item
#: doc/guix.texi:12071
#, no-wrap
msgid "--list-backends"
msgstr ""

#. type: table
#: doc/guix.texi:12073
msgid "List the supported graph backends."
msgstr ""

#. type: table
#: doc/guix.texi:12075
msgid "Currently, the available backends are Graphviz and d3.js."
msgstr ""

#. type: item
#: doc/guix.texi:12076
#, no-wrap
msgid "--path"
msgstr ""

#. type: table
#: doc/guix.texi:12081
msgid ""
"Display the shortest path between two nodes of the type specified by "
"@option{--type}.  The example below shows the shortest path between "
"@code{libreoffice} and @code{llvm} according to the references of "
"@code{libreoffice}:"
msgstr ""

#. type: example
#: doc/guix.texi:12088
#, no-wrap
msgid ""
"$ guix graph --path -t references libreoffice llvm\n"
"/gnu/store/@dots{}-libreoffice-6.4.2.2\n"
"/gnu/store/@dots{}-libepoxy-1.5.4\n"
"/gnu/store/@dots{}-mesa-19.3.4\n"
"/gnu/store/@dots{}-llvm-9.0.1\n"
msgstr ""

#. type: example
#: doc/guix.texi:12098
#, no-wrap
msgid "guix graph -e '(@@@@ (gnu packages commencement) gnu-make-final)'\n"
msgstr ""

#. type: table
#: doc/guix.texi:12103
msgid "Display the graph for @var{system}---e.g., @code{i686-linux}."
msgstr ""

#. type: table
#: doc/guix.texi:12106
msgid ""
"The package dependency graph is largely architecture-independent, but there "
"are some architecture-dependent bits that this option allows you to "
"visualize."
msgstr ""

#. type: Plain text
#: doc/guix.texi:12122
msgid ""
"On top of that, @command{guix graph} supports all the usual package "
"transformation options (@pxref{Package Transformation Options}).  This makes "
"it easy to view the effect of a graph-rewriting transformation such as "
"@option{--with-input}.  For example, the command below outputs the graph of "
"@code{git} once @code{openssl} has been replaced by @code{libressl} "
"everywhere in the graph:"
msgstr ""

#. type: example
#: doc/guix.texi:12125
#, no-wrap
msgid "guix graph git --with-input=openssl=libressl\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:12128
msgid "So many possibilities, so much fun!"
msgstr ""

#. type: section
#: doc/guix.texi:12130
#, no-wrap
msgid "Invoking @command{guix publish}"
msgstr ""

#. type: command{#1}
#: doc/guix.texi:12132
#, no-wrap
msgid "guix publish"
msgstr ""

#. type: Plain text
#: doc/guix.texi:12136
msgid ""
"The purpose of @command{guix publish} is to enable users to easily share "
"their store with others, who can then use it as a substitute server "
"(@pxref{Substitutes})."
msgstr ""

#. type: Plain text
#: doc/guix.texi:12142
msgid ""
"When @command{guix publish} runs, it spawns an HTTP server which allows "
"anyone with network access to obtain substitutes from it.  This means that "
"any machine running Guix can also act as if it were a build farm, since the "
"HTTP interface is compatible with Cuirass, the software behind the "
"@code{@value{SUBSTITUTE-SERVER}} build farm."
msgstr ""

#. type: Plain text
#: doc/guix.texi:12148
msgid ""
"For security, each substitute is signed, allowing recipients to check their "
"authenticity and integrity (@pxref{Substitutes}).  Because @command{guix "
"publish} uses the signing key of the system, which is only readable by the "
"system administrator, it must be started as root; the @option{--user} option "
"makes it drop root privileges early on."
msgstr ""

#. type: Plain text
#: doc/guix.texi:12152
msgid ""
"The signing key pair must be generated before @command{guix publish} is "
"launched, using @command{guix archive --generate-key} (@pxref{Invoking guix "
"archive})."
msgstr ""

#. type: example
#: doc/guix.texi:12157
#, no-wrap
msgid "guix publish @var{options}@dots{}\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:12161
msgid ""
"Running @command{guix publish} without any additional arguments will spawn "
"an HTTP server on port 8080:"
msgstr ""

#. type: example
#: doc/guix.texi:12164
#, no-wrap
msgid "guix publish\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:12168
msgid ""
"Once a publishing server has been authorized, the daemon may download "
"substitutes from it.  @xref{Getting Substitutes from Other Servers}."
msgstr ""

#. type: Plain text
#: doc/guix.texi:12176
msgid ""
"By default, @command{guix publish} compresses archives on the fly as it "
"serves them.  This ``on-the-fly'' mode is convenient in that it requires no "
"setup and is immediately available.  However, when serving lots of clients, "
"we recommend using the @option{--cache} option, which enables caching of the "
"archives before they are sent to clients---see below for details.  The "
"@command{guix weather} command provides a handy way to check what a server "
"provides (@pxref{Invoking guix weather})."
msgstr ""

#. type: Plain text
#: doc/guix.texi:12183
msgid ""
"As a bonus, @command{guix publish} also serves as a content-addressed mirror "
"for source files referenced in @code{origin} records (@pxref{origin "
"Reference}).  For instance, assuming @command{guix publish} is running on "
"@code{example.org}, the following URL returns the raw @file{hello-2.10.tar."
"gz} file with the given SHA256 hash (represented in @code{nix-base32} "
"format, @pxref{Invoking guix hash}):"
msgstr ""

#. type: example
#: doc/guix.texi:12186
#, no-wrap
msgid "http://example.org/file/hello-2.10.tar.gz/sha256/0ssi1@dots{}ndq1i\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:12190
msgid ""
"Obviously, these URLs only work for files that are in the store; in other "
"cases, they return 404 (``Not Found'')."
msgstr ""

#. type: cindex
#: doc/guix.texi:12191
#, no-wrap
msgid "build logs, publication"
msgstr ""

#. type: Plain text
#: doc/guix.texi:12193
msgid "Build logs are available from @code{/log} URLs like:"
msgstr ""

#. type: example
#: doc/guix.texi:12196
#, no-wrap
msgid "http://example.org/log/gwspk@dots{}-guile-2.2.3\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:12206
msgid ""
"When @command{guix-daemon} is configured to save compressed build logs, as "
"is the case by default (@pxref{Invoking guix-daemon}), @code{/log} URLs "
"return the compressed log as-is, with an appropriate @code{Content-Type} and/"
"or @code{Content-Encoding} header.  We recommend running @command{guix-"
"daemon} with @option{--log-compression=gzip} since Web browsers can "
"automatically decompress it, which is not the case with Bzip2 compression."
msgstr ""

#. type: item
#: doc/guix.texi:12210
#, no-wrap
msgid "--port=@var{port}"
msgstr ""

#. type: itemx
#: doc/guix.texi:12211
#, no-wrap
msgid "-p @var{port}"
msgstr ""

#. type: table
#: doc/guix.texi:12213
msgid "Listen for HTTP requests on @var{port}."
msgstr ""

#. type: item
#: doc/guix.texi:12214
#, no-wrap
msgid "--listen=@var{host}"
msgstr ""

#. type: table
#: doc/guix.texi:12217
msgid ""
"Listen on the network interface for @var{host}.  The default is to accept "
"connections from any interface."
msgstr ""

#. type: table
#: doc/guix.texi:12222
msgid ""
"Change privileges to @var{user} as soon as possible---i.e., once the server "
"socket is open and the signing key has been read."
msgstr ""

#. type: item
#: doc/guix.texi:12223
#, no-wrap
msgid "--compression[=@var{method}[:@var{level}]]"
msgstr ""

#. type: itemx
#: doc/guix.texi:12224
#, no-wrap
msgid "-C [@var{method}[:@var{level}]]"
msgstr ""

#. type: table
#: doc/guix.texi:12228
msgid ""
"Compress data using the given @var{method} and @var{level}.  @var{method} is "
"one of @code{lzip} and @code{gzip}; when @var{method} is omitted, "
"@code{gzip} is used."
msgstr ""

#. type: table
#: doc/guix.texi:12232
msgid ""
"When @var{level} is zero, disable compression.  The range 1 to 9 corresponds "
"to different compression levels: 1 is the fastest, and 9 is the best (CPU-"
"intensive).  The default is 3."
msgstr ""

#. type: table
#: doc/guix.texi:12237
msgid ""
"Usually, @code{lzip} compresses noticeably better than @code{gzip} for a "
"small increase in CPU usage; see @uref{https://nongnu.org/lzip/"
"lzip_benchmark.html,benchmarks on the lzip Web page}."
msgstr ""

#. type: table
#: doc/guix.texi:12246
msgid ""
"Unless @option{--cache} is used, compression occurs on the fly and the "
"compressed streams are not cached.  Thus, to reduce load on the machine that "
"runs @command{guix publish}, it may be a good idea to choose a low "
"compression level, to run @command{guix publish} behind a caching proxy, or "
"to use @option{--cache}.  Using @option{--cache} has the advantage that it "
"allows @command{guix publish} to add @code{Content-Length} HTTP header to "
"its responses."
msgstr ""

#. type: table
#: doc/guix.texi:12251
msgid ""
"This option can be repeated, in which case every substitute gets compressed "
"using all the selected methods, and all of them are advertised.  This is "
"useful when users may not support all the compression methods: they can "
"select the one they support."
msgstr ""

#. type: item
#: doc/guix.texi:12252
#, no-wrap
msgid "--cache=@var{directory}"
msgstr ""

#. type: itemx
#: doc/guix.texi:12253
#, no-wrap
msgid "-c @var{directory}"
msgstr ""

#. type: table
#: doc/guix.texi:12256
msgid ""
"Cache archives and meta-data (@code{.narinfo} URLs) to @var{directory} and "
"only serve archives that are in cache."
msgstr ""

#. type: table
#: doc/guix.texi:12264
msgid ""
"When this option is omitted, archives and meta-data are created on-the-fly.  "
"This can reduce the available bandwidth, especially when compression is "
"enabled, since this may become CPU-bound.  Another drawback of the default "
"mode is that the length of archives is not known in advance, so "
"@command{guix publish} does not add a @code{Content-Length} HTTP header to "
"its responses, which in turn prevents clients from knowing the amount of "
"data being downloaded."
msgstr ""

#. type: table
#: doc/guix.texi:12272
msgid ""
"Conversely, when @option{--cache} is used, the first request for a store "
"item (@i{via} a @code{.narinfo} URL) triggers a background process to "
"@dfn{bake} the archive---computing its @code{.narinfo} and compressing the "
"archive, if needed.  Once the archive is cached in @var{directory}, "
"subsequent requests succeed and are served directly from the cache, which "
"guarantees that clients get the best possible bandwidth."
msgstr ""

#. type: table
#: doc/guix.texi:12279
msgid ""
"That first @code{.narinfo} request nonetheless returns 200, provided the "
"requested store item is ``small enough'', below the cache bypass threshold---"
"see @option{--cache-bypass-threshold} below.  That way, clients do not have "
"to wait until the archive is baked.  For larger store items, the first "
"@code{.narinfo} request returns 404, meaning that clients have to wait until "
"the archive is baked."
msgstr ""

#. type: table
#: doc/guix.texi:12283
msgid ""
"The ``baking'' process is performed by worker threads.  By default, one "
"thread per CPU core is created, but this can be customized.  See @option{--"
"workers} below."
msgstr ""

#. type: table
#: doc/guix.texi:12286
msgid ""
"When @option{--ttl} is used, cached entries are automatically deleted when "
"they have expired."
msgstr ""

#. type: item
#: doc/guix.texi:12287
#, no-wrap
msgid "--workers=@var{N}"
msgstr ""

#. type: table
#: doc/guix.texi:12290
msgid ""
"When @option{--cache} is used, request the allocation of @var{N} worker "
"threads to ``bake'' archives."
msgstr ""

#. type: item
#: doc/guix.texi:12291
#, no-wrap
msgid "--ttl=@var{ttl}"
msgstr ""

#. type: table
#: doc/guix.texi:12295
msgid ""
"Produce @code{Cache-Control} HTTP headers that advertise a time-to-live "
"(TTL) of @var{ttl}.  @var{ttl} must denote a duration: @code{5d} means 5 "
"days, @code{1m} means 1 month, and so on."
msgstr ""

#. type: table
#: doc/guix.texi:12300
msgid ""
"This allows the user's Guix to keep substitute information in cache for "
"@var{ttl}.  However, note that @code{guix publish} does not itself guarantee "
"that the store items it provides will indeed remain available for as long as "
"@var{ttl}."
msgstr ""

#. type: table
#: doc/guix.texi:12304
msgid ""
"Additionally, when @option{--cache} is used, cached entries that have not "
"been accessed for @var{ttl} and that no longer have a corresponding item in "
"the store, may be deleted."
msgstr ""

#. type: item
#: doc/guix.texi:12305
#, no-wrap
msgid "--cache-bypass-threshold=@var{size}"
msgstr ""

#. type: table
#: doc/guix.texi:12310
msgid ""
"When used in conjunction with @option{--cache}, store items smaller than "
"@var{size} are immediately available, even when they are not yet in cache.  "
"@var{size} is a size in bytes, or it can be suffixed by @code{M} for "
"megabytes and so on.  The default is @code{10M}."
msgstr ""

#. type: table
#: doc/guix.texi:12315
msgid ""
"``Cache bypass'' allows you to reduce the publication delay for clients at "
"the expense of possibly additional I/O and CPU use on the server side: "
"depending on the client access patterns, those store items can end up being "
"baked several times until a copy is available in cache."
msgstr ""

#. type: table
#: doc/guix.texi:12319
msgid ""
"Increasing the threshold may be useful for sites that have few users, or to "
"guarantee that users get substitutes even for store items that are not "
"popular."
msgstr ""

#. type: item
#: doc/guix.texi:12320
#, no-wrap
msgid "--nar-path=@var{path}"
msgstr ""

#. type: table
#: doc/guix.texi:12323
msgid ""
"Use @var{path} as the prefix for the URLs of ``nar'' files (@pxref{Invoking "
"guix archive, normalized archives})."
msgstr ""

#. type: table
#: doc/guix.texi:12327
msgid ""
"By default, nars are served at a URL such as @code{/nar/gzip/@dots{}-"
"coreutils-8.25}.  This option allows you to change the @code{/nar} part to "
"@var{path}."
msgstr ""

#. type: item
#: doc/guix.texi:12328
#, no-wrap
msgid "--public-key=@var{file}"
msgstr ""

#. type: itemx
#: doc/guix.texi:12329
#, no-wrap
msgid "--private-key=@var{file}"
msgstr ""

#. type: table
#: doc/guix.texi:12332
msgid ""
"Use the specific @var{file}s as the public/private key pair used to sign the "
"store items being published."
msgstr ""

#. type: table
#: doc/guix.texi:12339
msgid ""
"The files must correspond to the same key pair (the private key is used for "
"signing and the public key is merely advertised in the signature metadata).  "
"They must contain keys in the canonical s-expression format as produced by "
"@command{guix archive --generate-key} (@pxref{Invoking guix archive}).  By "
"default, @file{/etc/guix/signing-key.pub} and @file{/etc/guix/signing-key."
"sec} are used."
msgstr ""

#. type: item
#: doc/guix.texi:12340
#, no-wrap
msgid "--repl[=@var{port}]"
msgstr ""

#. type: itemx
#: doc/guix.texi:12341
#, no-wrap
msgid "-r [@var{port}]"
msgstr ""

#. type: table
#: doc/guix.texi:12345
msgid ""
"Spawn a Guile REPL server (@pxref{REPL Servers,,, guile, GNU Guile Reference "
"Manual}) on @var{port} (37146 by default).  This is used primarily for "
"debugging a running @command{guix publish} server."
msgstr ""

#. type: Plain text
#: doc/guix.texi:12351
msgid ""
"Enabling @command{guix publish} on Guix System is a one-liner: just "
"instantiate a @code{guix-publish-service-type} service in the "
"@code{services} field of the @code{operating-system} declaration "
"(@pxref{guix-publish-service-type, @code{guix-publish-service-type}})."
msgstr ""

#. type: Plain text
#: doc/guix.texi:12354
msgid ""
"If you are instead running Guix on a ``foreign distro'', follow these "
"instructions:"
msgstr ""

#. type: itemize
#: doc/guix.texi:12358
msgid "If your host distro uses the systemd init system:"
msgstr ""

#. type: example
#: doc/guix.texi:12363
#, no-wrap
msgid ""
"# ln -s ~root/.guix-profile/lib/systemd/system/guix-publish.service \\\n"
"        /etc/systemd/system/\n"
"# systemctl start guix-publish && systemctl enable guix-publish\n"
msgstr ""

#. type: example
#: doc/guix.texi:12371
#, no-wrap
msgid ""
"# ln -s ~root/.guix-profile/lib/upstart/system/guix-publish.conf /etc/init/\n"
"# start guix-publish\n"
msgstr ""

#. type: itemize
#: doc/guix.texi:12375
msgid "Otherwise, proceed similarly with your distro's init system."
msgstr ""

#. type: section
#: doc/guix.texi:12378
#, no-wrap
msgid "Invoking @command{guix challenge}"
msgstr ""

#. type: cindex
#: doc/guix.texi:12381
#, no-wrap
msgid "verifiable builds"
msgstr ""

#. type: command{#1}
#: doc/guix.texi:12382
#, no-wrap
msgid "guix challenge"
msgstr ""

#. type: cindex
#: doc/guix.texi:12383
#, no-wrap
msgid "challenge"
msgstr ""

#. type: Plain text
#: doc/guix.texi:12388
msgid ""
"Do the binaries provided by this server really correspond to the source code "
"it claims to build? Is a package build process deterministic? These are the "
"questions the @command{guix challenge} command attempts to answer."
msgstr ""

#. type: Plain text
#: doc/guix.texi:12396
msgid ""
"The former is obviously an important question: Before using a substitute "
"server (@pxref{Substitutes}), one had better @emph{verify} that it provides "
"the right binaries, and thus @emph{challenge} it.  The latter is what "
"enables the former: If package builds are deterministic, then independent "
"builds of the package should yield the exact same result, bit for bit; if a "
"server provides a binary different from the one obtained locally, it may be "
"either corrupt or malicious."
msgstr ""

#. type: Plain text
#: doc/guix.texi:12405
msgid ""
"We know that the hash that shows up in @file{/gnu/store} file names is the "
"hash of all the inputs of the process that built the file or directory---"
"compilers, libraries, build scripts, etc. (@pxref{Introduction}).  Assuming "
"deterministic build processes, one store file name should map to exactly one "
"build output.  @command{guix challenge} checks whether there is, indeed, a "
"single mapping by comparing the build outputs of several independent builds "
"of any given store item."
msgstr ""

#. type: Plain text
#: doc/guix.texi:12407
msgid "The command output looks like this:"
msgstr ""

#. type: smallexample
#: doc/guix.texi:12419
#, no-wrap
msgid ""
"$ guix challenge --substitute-urls=\"https://@value{SUBSTITUTE-SERVER} https://guix.example.org\"\n"
"updating list of substitutes from 'https://@value{SUBSTITUTE-SERVER}'... 100.0%\n"
"updating list of substitutes from 'https://guix.example.org'... 100.0%\n"
"/gnu/store/@dots{}-openssl-1.0.2d contents differ:\n"
"  local hash: 0725l22r5jnzazaacncwsvp9kgf42266ayyp814v7djxs7nk963q\n"
"  https://@value{SUBSTITUTE-SERVER}/nar/@dots{}-openssl-1.0.2d: 0725l22r5jnzazaacncwsvp9kgf42266ayyp814v7djxs7nk963q\n"
"  https://guix.example.org/nar/@dots{}-openssl-1.0.2d: 1zy4fmaaqcnjrzzajkdn3f5gmjk754b43qkq47llbyak9z0qjyim\n"
"  differing files:\n"
"    /lib/libcrypto.so.1.1\n"
"    /lib/libssl.so.1.1\n"
"\n"
msgstr ""

#. type: smallexample
#: doc/guix.texi:12426
#, no-wrap
msgid ""
"/gnu/store/@dots{}-git-2.5.0 contents differ:\n"
"  local hash: 00p3bmryhjxrhpn2gxs2fy0a15lnip05l97205pgbk5ra395hyha\n"
"  https://@value{SUBSTITUTE-SERVER}/nar/@dots{}-git-2.5.0: 069nb85bv4d4a6slrwjdy8v1cn4cwspm3kdbmyb81d6zckj3nq9f\n"
"  https://guix.example.org/nar/@dots{}-git-2.5.0: 0mdqa9w1p6cmli6976v4wi0sw9r4p5prkj7lzfd1877wk11c9c73\n"
"  differing file:\n"
"    /libexec/git-core/git-fsck\n"
"\n"
msgstr ""

#. type: smallexample
#: doc/guix.texi:12433
#, no-wrap
msgid ""
"/gnu/store/@dots{}-pius-2.1.1 contents differ:\n"
"  local hash: 0k4v3m9z1zp8xzzizb7d8kjj72f9172xv078sq4wl73vnq9ig3ax\n"
"  https://@value{SUBSTITUTE-SERVER}/nar/@dots{}-pius-2.1.1: 0k4v3m9z1zp8xzzizb7d8kjj72f9172xv078sq4wl73vnq9ig3ax\n"
"  https://guix.example.org/nar/@dots{}-pius-2.1.1: 1cy25x1a4fzq5rk0pmvc8xhwyffnqz95h2bpvqsz2mpvlbccy0gs\n"
"  differing file:\n"
"    /share/man/man1/pius.1.gz\n"
"\n"
msgstr ""

#. type: smallexample
#: doc/guix.texi:12435
#, no-wrap
msgid ""
"@dots{}\n"
"\n"
msgstr ""

#. type: smallexample
#: doc/guix.texi:12440
#, no-wrap
msgid ""
"6,406 store items were analyzed:\n"
"  - 4,749 (74.1%) were identical\n"
"  - 525 (8.2%) differed\n"
"  - 1,132 (17.7%) were inconclusive\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:12448
msgid ""
"In this example, @command{guix challenge} first scans the store to determine "
"the set of locally-built derivations---as opposed to store items that were "
"downloaded from a substitute server---and then queries all the substitute "
"servers.  It then reports those store items for which the servers obtained a "
"result different from the local build."
msgstr ""

#. type: cindex
#: doc/guix.texi:12449
#, no-wrap
msgid "non-determinism, in package builds"
msgstr ""

#. type: Plain text
#: doc/guix.texi:12460
msgid ""
"As an example, @code{guix.example.org} always gets a different answer.  "
"Conversely, @code{@value{SUBSTITUTE-SERVER}} agrees with local builds, "
"except in the case of Git.  This might indicate that the build process of "
"Git is non-deterministic, meaning that its output varies as a function of "
"various things that Guix does not fully control, in spite of building "
"packages in isolated environments (@pxref{Features}).  Most common sources "
"of non-determinism include the addition of timestamps in build results, the "
"inclusion of random numbers, and directory listings sorted by inode number.  "
"See @uref{https://reproducible-builds.org/docs/}, for more information."
msgstr ""

#. type: Plain text
#: doc/guix.texi:12463
msgid ""
"To find out what is wrong with this Git binary, the easiest approach is to "
"run:"
msgstr ""

#. type: example
#: doc/guix.texi:12468
#, no-wrap
msgid ""
"guix challenge git \\\n"
"  --diff=diffoscope \\\n"
"  --substitute-urls=\"https://@value{SUBSTITUTE-SERVER} https://guix.example.org\"\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:12472
msgid ""
"This automatically invokes @command{diffoscope}, which displays detailed "
"information about files that differ."
msgstr ""

#. type: Plain text
#: doc/guix.texi:12475
msgid ""
"Alternatively, we can do something along these lines (@pxref{Invoking guix "
"archive}):"
msgstr ""

#. type: example
#: doc/guix.texi:12480
#, no-wrap
msgid ""
"$ wget -q -O - https://@value{SUBSTITUTE-SERVER}/nar/lzip/@dots{}-git-2.5.0 \\\n"
"   | lzip -d | guix archive -x /tmp/git\n"
"$ diff -ur --no-dereference /gnu/store/@dots{}-git.2.5.0 /tmp/git\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:12489
msgid ""
"This command shows the difference between the files resulting from the local "
"build, and the files resulting from the build on @code{@value{SUBSTITUTE-"
"SERVER}} (@pxref{Overview, Comparing and Merging Files,, diffutils, "
"Comparing and Merging Files}).  The @command{diff} command works great for "
"text files.  When binary files differ, a better option is @uref{https://"
"diffoscope.org/, Diffoscope}, a tool that helps visualize differences for "
"all kinds of files."
msgstr ""

#. type: Plain text
#: doc/guix.texi:12497
msgid ""
"Once you have done that work, you can tell whether the differences are due "
"to a non-deterministic build process or to a malicious server.  We try hard "
"to remove sources of non-determinism in packages to make it easier to verify "
"substitutes, but of course, this is a process that involves not just Guix, "
"but a large part of the free software community.  In the meantime, "
"@command{guix challenge} is one tool to help address the problem."
msgstr ""

#. type: Plain text
#: doc/guix.texi:12501
msgid ""
"If you are writing packages for Guix, you are encouraged to check whether "
"@code{@value{SUBSTITUTE-SERVER}} and other substitute servers obtain the "
"same build result as you did with:"
msgstr ""

#. type: example
#: doc/guix.texi:12504
#, no-wrap
msgid "$ guix challenge @var{package}\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:12509
msgid ""
"where @var{package} is a package specification such as @code{guile@@2.0} or "
"@code{glibc:debug}."
msgstr ""

#. type: example
#: doc/guix.texi:12514
#, no-wrap
msgid "guix challenge @var{options} [@var{packages}@dots{}]\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:12521
msgid ""
"When a difference is found between the hash of a locally-built item and that "
"of a server-provided substitute, or among substitutes provided by different "
"servers, the command displays it as in the example above and its exit code "
"is 2 (other non-zero exit codes denote other kinds of errors)."
msgstr ""

#. type: Plain text
#: doc/guix.texi:12523
msgid "The one option that matters is:"
msgstr ""

#. type: table
#: doc/guix.texi:12529
msgid ""
"Consider @var{urls} the whitespace-separated list of substitute source URLs "
"to compare to."
msgstr ""

#. type: item
#: doc/guix.texi:12530
#, no-wrap
msgid "--diff=@var{mode}"
msgstr ""

#. type: table
#: doc/guix.texi:12532
msgid "Upon mismatches, show differences according to @var{mode}, one of:"
msgstr ""

#. type: item
#: doc/guix.texi:12534
#, no-wrap
msgid "@code{simple} (the default)"
msgstr ""

#. type: table
#: doc/guix.texi:12536
msgid "Show the list of files that differ."
msgstr ""

#. type: code{#1}
#: doc/guix.texi:12537
#, no-wrap
msgid "diffoscope"
msgstr ""

#. type: var{#1}
#: doc/guix.texi:12538
#, no-wrap
msgid "command"
msgstr ""

#. type: table
#: doc/guix.texi:12541
msgid ""
"Invoke @uref{https://diffoscope.org/, Diffoscope}, passing it two "
"directories whose contents do not match."
msgstr ""

#. type: table
#: doc/guix.texi:12544
msgid ""
"When @var{command} is an absolute file name, run @var{command} instead of "
"Diffoscope."
msgstr ""

#. type: item
#: doc/guix.texi:12545 doc/guix.texi:15731 doc/guix.texi:17485
#, no-wrap
msgid "none"
msgstr ""

#. type: table
#: doc/guix.texi:12547
msgid "Do not show further details about the differences."
msgstr ""

#. type: table
#: doc/guix.texi:12552
msgid ""
"Thus, unless @option{--diff=none} is passed, @command{guix challenge} "
"downloads the store items from the given substitute servers so that it can "
"compare them."
msgstr ""

#. type: item
#: doc/guix.texi:12553
#, no-wrap
msgid "--verbose"
msgstr ""

#. type: itemx
#: doc/guix.texi:12554
#, no-wrap
msgid "-v"
msgstr ""

#. type: table
#: doc/guix.texi:12557
msgid ""
"Show details about matches (identical contents) in addition to information "
"about mismatches."
msgstr ""

#. type: section
#: doc/guix.texi:12561
#, no-wrap
msgid "Invoking @command{guix copy}"
msgstr ""

#. type: cindex
#: doc/guix.texi:12563
#, no-wrap
msgid "copy, of store items, over SSH"
msgstr ""

#. type: cindex
#: doc/guix.texi:12564
#, no-wrap
msgid "SSH, copy of store items"
msgstr ""

#. type: cindex
#: doc/guix.texi:12565
#, no-wrap
msgid "sharing store items across machines"
msgstr ""

#. type: cindex
#: doc/guix.texi:12566
#, no-wrap
msgid "transferring store items across machines"
msgstr ""

#. type: Plain text
#: doc/guix.texi:12573
msgid ""
"The @command{guix copy} command copies items from the store of one machine "
"to that of another machine over a secure shell (SSH)  "
"connection@footnote{This command is available only when Guile-SSH was "
"found.  @xref{Requirements}, for details.}.  For example, the following "
"command copies the @code{coreutils} package, the user's profile, and all "
"their dependencies over to @var{host}, logged in as @var{user}:"
msgstr ""

#. type: example
#: doc/guix.texi:12577
#, no-wrap
msgid ""
"guix copy --to=@var{user}@@@var{host} \\\n"
"          coreutils `readlink -f ~/.guix-profile`\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:12581
msgid ""
"If some of the items to be copied are already present on @var{host}, they "
"are not actually sent."
msgstr ""

#. type: Plain text
#: doc/guix.texi:12584
msgid ""
"The command below retrieves @code{libreoffice} and @code{gimp} from "
"@var{host}, assuming they are available there:"
msgstr ""

#. type: example
#: doc/guix.texi:12587
#, no-wrap
msgid "guix copy --from=@var{host} libreoffice gimp\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:12592
msgid ""
"The SSH connection is established using the Guile-SSH client, which is "
"compatible with OpenSSH: it honors @file{~/.ssh/known_hosts} and @file{~/."
"ssh/config}, and uses the SSH agent for authentication."
msgstr ""

#. type: Plain text
#: doc/guix.texi:12598
msgid ""
"The key used to sign items that are sent must be accepted by the remote "
"machine.  Likewise, the key used by the remote machine to sign items you are "
"retrieving must be in @file{/etc/guix/acl} so it is accepted by your own "
"daemon.  @xref{Invoking guix archive}, for more information about store item "
"authentication."
msgstr ""

#. type: example
#: doc/guix.texi:12603
#, no-wrap
msgid "guix copy [--to=@var{spec}|--from=@var{spec}] @var{items}@dots{}\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:12606
msgid "You must always specify one of the following options:"
msgstr ""

#. type: item
#: doc/guix.texi:12608
#, no-wrap
msgid "--to=@var{spec}"
msgstr ""

#. type: itemx
#: doc/guix.texi:12609
#, no-wrap
msgid "--from=@var{spec}"
msgstr ""

#. type: table
#: doc/guix.texi:12613
msgid ""
"Specify the host to send to or receive from.  @var{spec} must be an SSH spec "
"such as @code{example.org}, @code{charlie@@example.org}, or "
"@code{charlie@@example.org:2222}."
msgstr ""

#. type: Plain text
#: doc/guix.texi:12617
msgid ""
"The @var{items} can be either package names, such as @code{gimp}, or store "
"items, such as @file{/gnu/store/@dots{}-idutils-4.6}."
msgstr ""

#. type: Plain text
#: doc/guix.texi:12621
msgid ""
"When specifying the name of a package to send, it is first built if needed, "
"unless @option{--dry-run} was specified.  Common build options are supported "
"(@pxref{Common Build Options})."
msgstr ""

#. type: section
#: doc/guix.texi:12624
#, no-wrap
msgid "Invoking @command{guix container}"
msgstr ""

#. type: command{#1}
#: doc/guix.texi:12626
#, no-wrap
msgid "guix container"
msgstr ""

#. type: quotation
#: doc/guix.texi:12630
msgid ""
"As of version @value{VERSION}, this tool is experimental.  The interface is "
"subject to radical change in the future."
msgstr ""

#. type: Plain text
#: doc/guix.texi:12637
msgid ""
"The purpose of @command{guix container} is to manipulate processes running "
"within an isolated environment, commonly known as a ``container'', typically "
"created by the @command{guix environment} (@pxref{Invoking guix "
"environment}) and @command{guix system container} (@pxref{Invoking guix "
"system}) commands."
msgstr ""

#. type: example
#: doc/guix.texi:12642
#, no-wrap
msgid "guix container @var{action} @var{options}@dots{}\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:12646
msgid ""
"@var{action} specifies the operation to perform with a container, and "
"@var{options} specifies the context-specific arguments for the action."
msgstr ""

#. type: Plain text
#: doc/guix.texi:12648
msgid "The following actions are available:"
msgstr ""

#. type: item
#: doc/guix.texi:12650
#, no-wrap
msgid "exec"
msgstr ""

#. type: table
#: doc/guix.texi:12652
msgid "Execute a command within the context of a running container."
msgstr ""

#. type: table
#: doc/guix.texi:12654
msgid "The syntax is:"
msgstr ""

#. type: example
#: doc/guix.texi:12657
#, no-wrap
msgid "guix container exec @var{pid} @var{program} @var{arguments}@dots{}\n"
msgstr ""

#. type: table
#: doc/guix.texi:12663
msgid ""
"@var{pid} specifies the process ID of the running container.  @var{program} "
"specifies an executable file name within the root file system of the "
"container.  @var{arguments} are the additional options that will be passed "
"to @var{program}."
msgstr ""

#. type: table
#: doc/guix.texi:12667
msgid ""
"The following command launches an interactive login shell inside a Guix "
"system container, started by @command{guix system container}, and whose "
"process ID is 9001:"
msgstr ""

#. type: example
#: doc/guix.texi:12670
#, no-wrap
msgid "guix container exec 9001 /run/current-system/profile/bin/bash --login\n"
msgstr ""

#. type: table
#: doc/guix.texi:12674
msgid ""
"Note that the @var{pid} cannot be the parent process of a container.  It "
"must be PID 1 of the container or one of its child processes."
msgstr ""

#. type: section
#: doc/guix.texi:12678
#, no-wrap
msgid "Invoking @command{guix weather}"
msgstr ""

#. type: Plain text
#: doc/guix.texi:12687
msgid ""
"Occasionally you're grumpy because substitutes are lacking and you end up "
"building packages by yourself (@pxref{Substitutes}).  The @command{guix "
"weather} command reports on substitute availability on the specified servers "
"so you can have an idea of whether you'll be grumpy today.  It can sometimes "
"be useful info as a user, but it is primarily useful to people running "
"@command{guix publish} (@pxref{Invoking guix publish})."
msgstr ""

#. type: cindex
#: doc/guix.texi:12688
#, no-wrap
msgid "statistics, for substitutes"
msgstr ""

#. type: cindex
#: doc/guix.texi:12689
#, no-wrap
msgid "availability of substitutes"
msgstr ""

#. type: cindex
#: doc/guix.texi:12690
#, no-wrap
msgid "substitute availability"
msgstr ""

#. type: cindex
#: doc/guix.texi:12691
#, no-wrap
msgid "weather, substitute availability"
msgstr ""

#. type: Plain text
#: doc/guix.texi:12693
msgid "Here's a sample run:"
msgstr ""

#. type: example
#: doc/guix.texi:12705
#, no-wrap
msgid ""
"$ guix weather --substitute-urls=https://guix.example.org\n"
"computing 5,872 package derivations for x86_64-linux...\n"
"looking for 6,128 store items on https://guix.example.org..\n"
"updating list of substitutes from 'https://guix.example.org'... 100.0%\n"
"https://guix.example.org\n"
"  43.4% substitutes available (2,658 out of 6,128)\n"
"  7,032.5 MiB of nars (compressed)\n"
"  19,824.2 MiB on disk (uncompressed)\n"
"  0.030 seconds per request (182.9 seconds in total)\n"
"  33.5 requests per second\n"
"\n"
msgstr ""

#. type: example
#: doc/guix.texi:12715
#, no-wrap
msgid ""
"  9.8% (342 out of 3,470) of the missing items are queued\n"
"  867 queued builds\n"
"      x86_64-linux: 518 (59.7%)\n"
"      i686-linux: 221 (25.5%)\n"
"      aarch64-linux: 128 (14.8%)\n"
"  build rate: 23.41 builds per hour\n"
"      x86_64-linux: 11.16 builds per hour\n"
"      i686-linux: 6.03 builds per hour\n"
"      aarch64-linux: 6.41 builds per hour\n"
msgstr ""

#. type: cindex
#: doc/guix.texi:12717
#, no-wrap
msgid "continuous integration, statistics"
msgstr ""

#. type: Plain text
#: doc/guix.texi:12728
msgid ""
"As you can see, it reports the fraction of all the packages for which "
"substitutes are available on the server---regardless of whether substitutes "
"are enabled, and regardless of whether this server's signing key is "
"authorized.  It also reports the size of the compressed archives (``nars'') "
"provided by the server, the size the corresponding store items occupy in the "
"store (assuming deduplication is turned off), and the server's throughput.  "
"The second part gives continuous integration (CI) statistics, if the server "
"supports it.  In addition, using the @option{--coverage} option, "
"@command{guix weather} can list ``important'' package substitutes missing on "
"the server (see below)."
msgstr ""

#. type: Plain text
#: doc/guix.texi:12734
msgid ""
"To achieve that, @command{guix weather} queries over HTTP(S) meta-data "
"(@dfn{narinfos}) for all the relevant store items.  Like @command{guix "
"challenge}, it ignores signatures on those substitutes, which is innocuous "
"since the command only gathers statistics and cannot install those "
"substitutes."
msgstr ""

#. type: example
#: doc/guix.texi:12739
#, no-wrap
msgid "guix weather @var{options}@dots{} [@var{packages}@dots{}]\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:12747
msgid ""
"When @var{packages} is omitted, @command{guix weather} checks the "
"availability of substitutes for @emph{all} the packages, or for those "
"specified with @option{--manifest}; otherwise it only considers the "
"specified packages.  It is also possible to query specific system types with "
"@option{--system}.  @command{guix weather} exits with a non-zero code when "
"the fraction of available substitutes is below 100%."
msgstr ""

#. type: Plain text
#: doc/guix.texi:12749
msgid "The available options are listed below."
msgstr ""

#. type: table
#: doc/guix.texi:12755
msgid ""
"@var{urls} is the space-separated list of substitute server URLs to query.  "
"When this option is omitted, the default set of substitute servers is "
"queried."
msgstr ""

#. type: table
#: doc/guix.texi:12761
msgid ""
"Query substitutes for @var{system}---e.g., @code{aarch64-linux}.  This "
"option can be repeated, in which case @command{guix weather} will query "
"substitutes for several system types."
msgstr ""

#. type: table
#: doc/guix.texi:12767
msgid ""
"Instead of querying substitutes for all the packages, only ask for those "
"specified in @var{file}.  @var{file} must contain a @dfn{manifest}, as with "
"the @code{-m} option of @command{guix package} (@pxref{Invoking guix "
"package})."
msgstr ""

#. type: table
#: doc/guix.texi:12770
msgid ""
"This option can be repeated several times, in which case the manifests are "
"concatenated."
msgstr ""

#. type: item
#: doc/guix.texi:12771
#, no-wrap
msgid "--coverage[=@var{count}]"
msgstr ""

#. type: itemx
#: doc/guix.texi:12772
#, no-wrap
msgid "-c [@var{count}]"
msgstr ""

#. type: table
#: doc/guix.texi:12778
msgid ""
"Report on substitute coverage for packages: list packages with at least "
"@var{count} dependents (zero by default) for which substitutes are "
"unavailable.  Dependent packages themselves are not listed: if @var{b} "
"depends on @var{a} and @var{a} has no substitutes, only @var{a} is listed, "
"even though @var{b} usually lacks substitutes as well.  The result looks "
"like this:"
msgstr ""

#. type: example
#: doc/guix.texi:12792
#, no-wrap
msgid ""
"$ guix weather --substitute-urls=@value{SUBSTITUTE-URL} -c 10\n"
"computing 8,983 package derivations for x86_64-linux...\n"
"looking for 9,343 store items on @value{SUBSTITUTE-URL}...\n"
"updating substitutes from '@value{SUBSTITUTE-URL}'... 100.0%\n"
"@value{SUBSTITUTE-URL}\n"
"  64.7% substitutes available (6,047 out of 9,343)\n"
"@dots{}\n"
"2502 packages are missing from '@value{SUBSTITUTE-URL}' for 'x86_64-linux', among which:\n"
"    58  kcoreaddons@@5.49.0      /gnu/store/@dots{}-kcoreaddons-5.49.0\n"
"    46  qgpgme@@1.11.1           /gnu/store/@dots{}-qgpgme-1.11.1\n"
"    37  perl-http-cookiejar@@0.008  /gnu/store/@dots{}-perl-http-cookiejar-0.008\n"
"    @dots{}\n"
msgstr ""

#. type: table
#: doc/guix.texi:12797
msgid ""
"What this example shows is that @code{kcoreaddons} and presumably the 58 "
"packages that depend on it have no substitutes at @code{ci.guix.info}; "
"likewise for @code{qgpgme} and the 46 packages that depend on it."
msgstr ""

#. type: table
#: doc/guix.texi:12801
msgid ""
"If you are a Guix developer, or if you are taking care of this build farm, "
"you'll probably want to have a closer look at these packages: they may "
"simply fail to build."
msgstr ""

#. type: item
#: doc/guix.texi:12802
#, no-wrap
msgid "--display-missing"
msgstr ""

#. type: table
#: doc/guix.texi:12804
msgid "Display the list of store items for which substitutes are missing."
msgstr ""

#. type: section
#: doc/guix.texi:12807
#, no-wrap
msgid "Invoking @command{guix processes}"
msgstr ""

#. type: Plain text
#: doc/guix.texi:12815
msgid ""
"The @command{guix processes} command can be useful to developers and system "
"administrators, especially on multi-user machines and on build farms: it "
"lists the current sessions (connections to the daemon), as well as "
"information about the processes involved@footnote{Remote sessions, when "
"@command{guix-daemon} is started with @option{--listen} specifying a TCP "
"endpoint, are @emph{not} listed.}.  Here's an example of the information it "
"returns:"
msgstr ""

#. type: example
#: doc/guix.texi:12821
#, no-wrap
msgid ""
"$ sudo guix processes\n"
"SessionPID: 19002\n"
"ClientPID: 19090\n"
"ClientCommand: guix environment --ad-hoc python\n"
"\n"
msgstr ""

#. type: example
#: doc/guix.texi:12825
#, no-wrap
msgid ""
"SessionPID: 19402\n"
"ClientPID: 19367\n"
"ClientCommand: guix publish -u guix-publish -p 3000 -C 9 @dots{}\n"
"\n"
msgstr ""

#. type: example
#: doc/guix.texi:12835
#, no-wrap
msgid ""
"SessionPID: 19444\n"
"ClientPID: 19419\n"
"ClientCommand: cuirass --cache-directory /var/cache/cuirass @dots{}\n"
"LockHeld: /gnu/store/@dots{}-perl-ipc-cmd-0.96.lock\n"
"LockHeld: /gnu/store/@dots{}-python-six-bootstrap-1.11.0.lock\n"
"LockHeld: /gnu/store/@dots{}-libjpeg-turbo-2.0.0.lock\n"
"ChildProcess: 20495: guix offload x86_64-linux 7200 1 28800\n"
"ChildProcess: 27733: guix offload x86_64-linux 7200 1 28800\n"
"ChildProcess: 27793: guix offload x86_64-linux 7200 1 28800\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:12842
msgid ""
"In this example we see that @command{guix-daemon} has three clients: "
"@command{guix environment}, @command{guix publish}, and the Cuirass "
"continuous integration tool; their process identifier (PID) is given by the "
"@code{ClientPID} field.  The @code{SessionPID} field gives the PID of the "
"@command{guix-daemon} sub-process of this particular session."
msgstr ""

#. type: Plain text
#: doc/guix.texi:12849
msgid ""
"The @code{LockHeld} fields show which store items are currently locked by "
"this session, which corresponds to store items being built or substituted "
"(the @code{LockHeld} field is not displayed when @command{guix processes} is "
"not running as root).  Last, by looking at the @code{ChildProcess} field, we "
"understand that these three builds are being offloaded (@pxref{Daemon "
"Offload Setup})."
msgstr ""

#. type: Plain text
#: doc/guix.texi:12854
msgid ""
"The output is in Recutils format so we can use the handy @command{recsel} "
"command to select sessions of interest (@pxref{Selection Expressions,,, "
"recutils, GNU recutils manual}).  As an example, the command shows the "
"command line and PID of the client that triggered the build of a Perl "
"package:"
msgstr ""

#. type: example
#: doc/guix.texi:12860
#, no-wrap
msgid ""
"$ sudo guix processes | \\\n"
"    recsel -p ClientPID,ClientCommand -e 'LockHeld ~ \"perl\"'\n"
"ClientPID: 19419\n"
"ClientCommand: cuirass --cache-directory /var/cache/cuirass @dots{}\n"
msgstr ""

#. type: cindex
#: doc/guix.texi:12865
#, no-wrap
msgid "system configuration"
msgstr ""

#. type: Plain text
#: doc/guix.texi:12871
msgid ""
"Guix System supports a consistent whole-system configuration mechanism.  By "
"that we mean that all aspects of the global system configuration---such as "
"the available system services, timezone and locale settings, user accounts---"
"are declared in a single place.  Such a @dfn{system configuration} can be "
"@dfn{instantiated}---i.e., effected."
msgstr ""

#. type: Plain text
#: doc/guix.texi:12881
msgid ""
"One of the advantages of putting all the system configuration under the "
"control of Guix is that it supports transactional system upgrades, and makes "
"it possible to roll back to a previous system instantiation, should "
"something go wrong with the new one (@pxref{Features}).  Another advantage "
"is that it makes it easy to replicate the exact same configuration across "
"different machines, or at different points in time, without having to resort "
"to additional administration tools layered on top of the own tools of the "
"system."
msgstr ""

#. type: Plain text
#: doc/guix.texi:12886
msgid ""
"This section describes this mechanism.  First we focus on the system "
"administrator's viewpoint---explaining how the system is configured and "
"instantiated.  Then we show how this mechanism can be extended, for instance "
"to support new system services."
msgstr ""

#. type: Plain text
#: doc/guix.texi:12915
msgid ""
"The operating system is configured by providing an @code{operating-system} "
"declaration in a file that can then be passed to the @command{guix system} "
"command (@pxref{Invoking guix system}).  A simple setup, with the default "
"system services, the default Linux-Libre kernel, initial RAM disk, and boot "
"loader looks like this:"
msgstr ""

#. type: code{#1}
#: doc/guix.texi:12916 doc/guix.texi:31303
#, no-wrap
msgid "operating-system"
msgstr ""

#. type: include
#: doc/guix.texi:12918
#, no-wrap
msgid "os-config-bare-bones.texi"
msgstr ""

#. type: Plain text
#: doc/guix.texi:12925
msgid ""
"This example should be self-describing.  Some of the fields defined above, "
"such as @code{host-name} and @code{bootloader}, are mandatory.  Others, such "
"as @code{packages} and @code{services}, can be omitted, in which case they "
"get a default value."
msgstr ""

#. type: Plain text
#: doc/guix.texi:12930
msgid ""
"Below we discuss the effect of some of the most important fields "
"(@pxref{operating-system Reference}, for details about all the available "
"fields), and how to @dfn{instantiate} the operating system using "
"@command{guix system}."
msgstr ""

#. type: unnumberedsubsec
#: doc/guix.texi:12931
#, no-wrap
msgid "Bootloader"
msgstr ""

#. type: cindex
#: doc/guix.texi:12933
#, no-wrap
msgid "legacy boot, on Intel machines"
msgstr ""

#. type: cindex
#: doc/guix.texi:12934
#, no-wrap
msgid "BIOS boot, on Intel machines"
msgstr ""

#. type: cindex
#: doc/guix.texi:12935
#, no-wrap
msgid "UEFI boot"
msgstr ""

#. type: cindex
#: doc/guix.texi:12936
#, no-wrap
msgid "EFI boot"
msgstr ""

#. type: Plain text
#: doc/guix.texi:12942
msgid ""
"The @code{bootloader} field describes the method that will be used to boot "
"your system.  Machines based on Intel processors can boot in ``legacy'' BIOS "
"mode, as in the example above.  However, more recent machines rely instead "
"on the @dfn{Unified Extensible Firmware Interface} (UEFI) to boot.  In that "
"case, the @code{bootloader} field should contain something along these lines:"
msgstr ""

#. type: lisp
#: doc/guix.texi:12947
#, no-wrap
msgid ""
"(bootloader-configuration\n"
"  (bootloader grub-efi-bootloader)\n"
"  (target \"/boot/efi\"))\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:12951
msgid ""
"@xref{Bootloader Configuration}, for more information on the available "
"configuration options."
msgstr ""

#. type: unnumberedsubsec
#: doc/guix.texi:12952
#, no-wrap
msgid "Globally-Visible Packages"
msgstr ""

#. type: vindex
#: doc/guix.texi:12954
#, no-wrap
msgid "%base-packages"
msgstr ""

#. type: Plain text
#: doc/guix.texi:12967
msgid ""
"The @code{packages} field lists packages that will be globally visible on "
"the system, for all user accounts---i.e., in every user's @env{PATH} "
"environment variable---in addition to the per-user profiles (@pxref{Invoking "
"guix package}).  The @code{%base-packages} variable provides all the tools "
"one would expect for basic user and administrator tasks---including the GNU "
"Core Utilities, the GNU Networking Utilities, the GNU Zile lightweight text "
"editor, @command{find}, @command{grep}, etc.  The example above adds "
"GNU@tie{}Screen to those, taken from the @code{(gnu packages screen)} module "
"(@pxref{Package Modules}).  The @code{(list package output)} syntax can be "
"used to add a specific output of a package:"
msgstr ""

#. type: lisp
#: doc/guix.texi:12971
#, no-wrap
msgid ""
"(use-modules (gnu packages))\n"
"(use-modules (gnu packages dns))\n"
"\n"
msgstr ""

#. type: lisp
#: doc/guix.texi:12976
#, no-wrap
msgid ""
"(operating-system\n"
"  ;; ...\n"
"  (packages (cons (list bind \"utils\")\n"
"                  %base-packages)))\n"
msgstr ""

#. type: findex
#: doc/guix.texi:12978
#, no-wrap
msgid "specification->package"
msgstr ""

#. type: Plain text
#: doc/guix.texi:12987
msgid ""
"Referring to packages by variable name, like @code{bind} above, has the "
"advantage of being unambiguous; it also allows typos and such to be "
"diagnosed right away as ``unbound variables''.  The downside is that one "
"needs to know which module defines which package, and to augment the "
"@code{use-package-modules} line accordingly.  To avoid that, one can use the "
"@code{specification->package} procedure of the @code{(gnu packages)} module, "
"which returns the best package for a given name or name and version:"
msgstr ""

#. type: lisp
#: doc/guix.texi:12990
#, no-wrap
msgid ""
"(use-modules (gnu packages))\n"
"\n"
msgstr ""

#. type: lisp
#: doc/guix.texi:12996
#, no-wrap
msgid ""
"(operating-system\n"
"  ;; ...\n"
"  (packages (append (map specification->package\n"
"                         '(\"tcpdump\" \"htop\" \"gnupg@@2.0\"))\n"
"                    %base-packages)))\n"
msgstr ""

#. type: unnumberedsubsec
#: doc/guix.texi:12998
#, no-wrap
msgid "System Services"
msgstr ""

#. type: cindex
#: doc/guix.texi:13000 doc/guix.texi:30114 doc/guix.texi:31528
#, no-wrap
msgid "services"
msgstr ""

#. type: vindex
#: doc/guix.texi:13001
#, no-wrap
msgid "%base-services"
msgstr ""

#. type: Plain text
#: doc/guix.texi:13011
msgid ""
"The @code{services} field lists @dfn{system services} to be made available "
"when the system starts (@pxref{Services}).  The @code{operating-system} "
"declaration above specifies that, in addition to the basic services, we want "
"the OpenSSH secure shell daemon listening on port 2222 (@pxref{Networking "
"Services, @code{openssh-service-type}}).  Under the hood, @code{openssh-"
"service-type} arranges so that @command{sshd} is started with the right "
"command-line options, possibly with supporting configuration files generated "
"as needed (@pxref{Defining Services})."
msgstr ""

#. type: cindex
#: doc/guix.texi:13012
#, no-wrap
msgid "customization, of services"
msgstr ""

#. type: findex
#: doc/guix.texi:13013
#, no-wrap
msgid "modify-services"
msgstr ""

#. type: Plain text
#: doc/guix.texi:13017
msgid ""
"Occasionally, instead of using the base services as is, you will want to "
"customize them.  To do this, use @code{modify-services} (@pxref{Service "
"Reference, @code{modify-services}}) to modify the list."
msgstr ""

#. type: Plain text
#: doc/guix.texi:13022
msgid ""
"For example, suppose you want to modify @code{guix-daemon} and Mingetty (the "
"console log-in) in the @code{%base-services} list (@pxref{Base Services, "
"@code{%base-services}}).  To do that, you can write the following in your "
"operating system declaration:"
msgstr ""

#. type: lisp
#: doc/guix.texi:13039
#, no-wrap
msgid ""
"(define %my-services\n"
"  ;; My very own list of services.\n"
"  (modify-services %base-services\n"
"    (guix-service-type config =>\n"
"                       (guix-configuration\n"
"                        (inherit config)\n"
"                        ;; Fetch substitutes from example.org.\n"
"                        (substitute-urls\n"
"                          (list \"https://example.org/guix\"\n"
"                                \"https://ci.guix.gnu.org\"))))\n"
"    (mingetty-service-type config =>\n"
"                           (mingetty-configuration\n"
"                            (inherit config)\n"
"                            ;; Automatially log in as \"guest\".\n"
"                            (auto-login \"guest\")))))\n"
"\n"
msgstr ""

#. type: lisp
#: doc/guix.texi:13043
#, no-wrap
msgid ""
"(operating-system\n"
"  ;; @dots{}\n"
"  (services %my-services))\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:13054
msgid ""
"This changes the configuration---i.e., the service parameters---of the "
"@code{guix-service-type} instance, and that of all the @code{mingetty-"
"service-type} instances in the @code{%base-services} list.  Observe how this "
"is accomplished: first, we arrange for the original configuration to be "
"bound to the identifier @code{config} in the @var{body}, and then we write "
"the @var{body} so that it evaluates to the desired configuration.  In "
"particular, notice how we use @code{inherit} to create a new configuration "
"which has the same values as the old configuration, but with a few "
"modifications."
msgstr ""

#. type: Plain text
#: doc/guix.texi:13061
msgid ""
"The configuration for a typical ``desktop'' usage, with an encrypted root "
"partition, the X11 display server, GNOME and Xfce (users can choose which of "
"these desktop environments to use at the log-in screen by pressing "
"@kbd{F1}), network management, power management, and more, would look like "
"this:"
msgstr ""

#. type: include
#: doc/guix.texi:13063
#, no-wrap
msgid "os-config-desktop.texi"
msgstr ""

#. type: Plain text
#: doc/guix.texi:13068
msgid ""
"A graphical system with a choice of lightweight window managers instead of "
"full-blown desktop environments would look like this:"
msgstr ""

#. type: include
#: doc/guix.texi:13070
#, no-wrap
msgid "os-config-lightweight-desktop.texi"
msgstr ""

#. type: Plain text
#: doc/guix.texi:13076
msgid ""
"This example refers to the @file{/boot/efi} file system by its UUID, "
"@code{1234-ABCD}.  Replace this UUID with the right UUID on your system, as "
"returned by the @command{blkid} command."
msgstr ""

#. type: Plain text
#: doc/guix.texi:13080
msgid ""
"@xref{Desktop Services}, for the exact list of services provided by "
"@code{%desktop-services}.  @xref{X.509 Certificates}, for background "
"information about the @code{nss-certs} package that is used here."
msgstr ""

#. type: Plain text
#: doc/guix.texi:13087
msgid ""
"Again, @code{%desktop-services} is just a list of service objects.  If you "
"want to remove services from there, you can do so using the procedures for "
"list filtering (@pxref{SRFI-1 Filtering and Partitioning,,, guile, GNU Guile "
"Reference Manual}).  For instance, the following expression returns a list "
"that contains all the services in @code{%desktop-services} minus the Avahi "
"service:"
msgstr ""

#. type: lisp
#: doc/guix.texi:13092
#, no-wrap
msgid ""
"(remove (lambda (service)\n"
"          (eq? (service-kind service) avahi-service-type))\n"
"        %desktop-services)\n"
msgstr ""

#. type: unnumberedsubsec
#: doc/guix.texi:13094
#, no-wrap
msgid "Instantiating the System"
msgstr ""

#. type: Plain text
#: doc/guix.texi:13101
msgid ""
"Assuming the @code{operating-system} declaration is stored in the @file{my-"
"system-config.scm} file, the @command{guix system reconfigure my-system-"
"config.scm} command instantiates that configuration, and makes it the "
"default GRUB boot entry (@pxref{Invoking guix system})."
msgstr ""

#. type: Plain text
#: doc/guix.texi:13109
msgid ""
"The normal way to change the system configuration is by updating this file "
"and re-running @command{guix system reconfigure}.  One should never have to "
"touch files in @file{/etc} or to run commands that modify the system state "
"such as @command{useradd} or @command{grub-install}.  In fact, you must "
"avoid that since that would not only void your warranty but also prevent you "
"from rolling back to previous versions of your system, should you ever need "
"to."
msgstr ""

#. type: cindex
#: doc/guix.texi:13110
#, no-wrap
msgid "roll-back, of the operating system"
msgstr ""

#. type: Plain text
#: doc/guix.texi:13120
msgid ""
"Speaking of roll-back, each time you run @command{guix system reconfigure}, "
"a new @dfn{generation} of the system is created---without modifying or "
"deleting previous generations.  Old system generations get an entry in the "
"bootloader boot menu, allowing you to boot them in case something went wrong "
"with the latest generation.  Reassuring, no? The @command{guix system list-"
"generations} command lists the system generations available on disk.  It is "
"also possible to roll back the system via the commands @command{guix system "
"roll-back} and @command{guix system switch-generation}."
msgstr ""

#. type: Plain text
#: doc/guix.texi:13126
msgid ""
"Although the @command{guix system reconfigure} command will not modify "
"previous generations, you must take care when the current generation is not "
"the latest (e.g., after invoking @command{guix system roll-back}), since the "
"operation might overwrite a later generation (@pxref{Invoking guix system})."
msgstr ""

#. type: unnumberedsubsec
#: doc/guix.texi:13127
#, no-wrap
msgid "The Programming Interface"
msgstr ""

#. type: Plain text
#: doc/guix.texi:13132
msgid ""
"At the Scheme level, the bulk of an @code{operating-system} declaration is "
"instantiated with the following monadic procedure (@pxref{The Store Monad}):"
msgstr ""

#. type: deffn
#: doc/guix.texi:13133
#, no-wrap
msgid "{Monadic Procedure} operating-system-derivation os"
msgstr ""

#. type: deffn
#: doc/guix.texi:13136
msgid ""
"Return a derivation that builds @var{os}, an @code{operating-system} object "
"(@pxref{Derivations})."
msgstr ""

#. type: deffn
#: doc/guix.texi:13140
msgid ""
"The output of the derivation is a single directory that refers to all the "
"packages, configuration files, and other supporting files needed to "
"instantiate @var{os}."
msgstr ""

#. type: Plain text
#: doc/guix.texi:13145
msgid ""
"This procedure is provided by the @code{(gnu system)} module.  Along with "
"@code{(gnu services)} (@pxref{Services}), this module contains the guts of "
"Guix System.  Make sure to visit it!"
msgstr ""

#. type: section
#: doc/guix.texi:13148
#, no-wrap
msgid "@code{operating-system} Reference"
msgstr ""

#. type: Plain text
#: doc/guix.texi:13153
msgid ""
"This section summarizes all the options available in @code{operating-system} "
"declarations (@pxref{Using the Configuration System})."
msgstr ""

#. type: deftp
#: doc/guix.texi:13154
#, no-wrap
msgid "{Data Type} operating-system"
msgstr ""

#. type: deftp
#: doc/guix.texi:13158
msgid ""
"This is the data type representing an operating system configuration.  By "
"that, we mean all the global system configuration, not per-user "
"configuration (@pxref{Using the Configuration System})."
msgstr ""

#. type: item
#: doc/guix.texi:13160
#, no-wrap
msgid "@code{kernel} (default: @code{linux-libre})"
msgstr ""

#. type: table
#: doc/guix.texi:13165
msgid ""
"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 available when building a virtual "
"machine disk image.}."
msgstr ""

#. type: code{#1}
#: doc/guix.texi:13166 doc/guix.texi:26900
#, no-wrap
msgid "hurd"
msgstr ""

#. type: item
#: doc/guix.texi:13167
#, no-wrap
msgid "@code{hurd} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:13172
msgid ""
"The package object of the Hurd to be started by the kernel.  When this field "
"is set, produce a GNU/Hurd operating system.  In that case, @code{kernel} "
"must also be set to the @code{gnumach} package---the microkernel the Hurd "
"runs on."
msgstr ""

#. type: quotation
#: doc/guix.texi:13175
msgid "This feature is experimental and only supported for disk images."
msgstr ""

#. type: item
#: doc/guix.texi:13177
#, no-wrap
msgid "@code{kernel-loadable-modules} (default: '())"
msgstr ""

#. type: table
#: doc/guix.texi:13180
msgid ""
"A list of objects (usually packages) to collect loadable kernel modules "
"from--e.g. @code{(list ddcci-driver-linux)}."
msgstr ""

#. type: item
#: doc/guix.texi:13181
#, no-wrap
msgid "@code{kernel-arguments} (default: @code{%default-kernel-arguments})"
msgstr ""

#. type: table
#: doc/guix.texi:13184
msgid ""
"List of strings or gexps representing additional arguments to pass on the "
"command-line of the kernel---e.g., @code{(\"console=ttyS0\")}."
msgstr ""

#. type: code{#1}
#: doc/guix.texi:13185 doc/guix.texi:30326 doc/guix.texi:30345
#, no-wrap
msgid "bootloader"
msgstr ""

#. type: table
#: doc/guix.texi:13187
msgid ""
"The system bootloader configuration object.  @xref{Bootloader Configuration}."
msgstr ""

#. type: code{#1}
#: doc/guix.texi:13188 doc/guix.texi:30515
#, no-wrap
msgid "label"
msgstr ""

#. type: table
#: doc/guix.texi:13191
msgid ""
"This is the label (a string) as it appears in the bootloader's menu entry.  "
"The default label includes the kernel name and version."
msgstr ""

#. type: item
#: doc/guix.texi:13192 doc/guix.texi:17310 doc/guix.texi:30445
#, no-wrap
msgid "@code{keyboard-layout} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:13196
msgid ""
"This field specifies the keyboard layout to use in the console.  It can be "
"either @code{#f}, in which case the default keyboard layout is used (usually "
"US English), or a @code{<keyboard-layout>} record."
msgstr ""

#. type: table
#: doc/guix.texi:13201
msgid ""
"This keyboard layout is in effect as soon as the kernel has booted.  For "
"instance, it is the keyboard layout in effect when you type a passphrase if "
"your root file system is on a @code{luks-device-mapping} mapped device "
"(@pxref{Mapped Devices})."
msgstr ""

#. type: quotation
#: doc/guix.texi:13208
msgid ""
"This does @emph{not} specify the keyboard layout used by the bootloader, nor "
"that used by the graphical display server.  @xref{Bootloader Configuration}, "
"for information on how to specify the bootloader's keyboard layout.  @xref{X "
"Window}, for information on how to specify the keyboard layout used by the X "
"Window System."
msgstr ""

#. type: item
#: doc/guix.texi:13210
#, no-wrap
msgid "@code{initrd-modules} (default: @code{%base-initrd-modules})"
msgstr ""

#. type: cindex
#: doc/guix.texi:13211 doc/guix.texi:30151 doc/guix.texi:30255
#, no-wrap
msgid "initrd"
msgstr ""

#. type: cindex
#: doc/guix.texi:13212 doc/guix.texi:30152 doc/guix.texi:30256
#, no-wrap
msgid "initial RAM disk"
msgstr ""

#. type: table
#: doc/guix.texi:13215
msgid ""
"The list of Linux kernel modules that need to be available in the initial "
"RAM disk.  @xref{Initial RAM Disk}."
msgstr ""

#. type: item
#: doc/guix.texi:13216
#, no-wrap
msgid "@code{initrd} (default: @code{base-initrd})"
msgstr ""

#. type: table
#: doc/guix.texi:13220
msgid ""
"A procedure that returns an initial RAM disk for the Linux kernel.  This "
"field is provided to support low-level customization and should rarely be "
"needed for casual use.  @xref{Initial RAM Disk}."
msgstr ""

#. type: item
#: doc/guix.texi:13221
#, no-wrap
msgid "@code{firmware} (default: @code{%base-firmware})"
msgstr ""

#. type: cindex
#: doc/guix.texi:13222
#, no-wrap
msgid "firmware"
msgstr ""

#. type: table
#: doc/guix.texi:13224
msgid "List of firmware packages loadable by the operating system kernel."
msgstr ""

#. type: table
#: doc/guix.texi:13229
msgid ""
"The default includes firmware needed for Atheros- and Broadcom-based WiFi "
"devices (Linux-libre modules @code{ath9k} and @code{b43-open}, "
"respectively).  @xref{Hardware Considerations}, for more info on supported "
"hardware."
msgstr ""

#. type: code{#1}
#: doc/guix.texi:13230 doc/guix.texi:31322
#, no-wrap
msgid "host-name"
msgstr ""

#. type: table
#: doc/guix.texi:13232
msgid "The host name."
msgstr ""

#. type: code{#1}
#: doc/guix.texi:13233
#, no-wrap
msgid "hosts-file"
msgstr ""

#. type: cindex
#: doc/guix.texi:13234
#, no-wrap
msgid "hosts file"
msgstr ""

#. type: table
#: doc/guix.texi:13239
msgid ""
"A file-like object (@pxref{G-Expressions, file-like objects}) for use as "
"@file{/etc/hosts} (@pxref{Host Names,,, libc, The GNU C Library Reference "
"Manual}).  The default is a file with entries for @code{localhost} and "
"@var{host-name}."
msgstr ""

#. type: item
#: doc/guix.texi:13240
#, no-wrap
msgid "@code{mapped-devices} (default: @code{'()})"
msgstr ""

#. type: table
#: doc/guix.texi:13242
msgid "A list of mapped devices.  @xref{Mapped Devices}."
msgstr ""

#. type: code{#1}
#: doc/guix.texi:13243
#, no-wrap
msgid "file-systems"
msgstr ""

#. type: table
#: doc/guix.texi:13245
msgid "A list of file systems.  @xref{File Systems}."
msgstr ""

#. type: cindex
#: doc/guix.texi:13246
#, no-wrap
msgid "swap devices"
msgstr ""

#. type: cindex
#: doc/guix.texi:13247
#, no-wrap
msgid "swap space"
msgstr ""

#. type: item
#: doc/guix.texi:13248
#, no-wrap
msgid "@code{swap-devices} (default: @code{'()})"
msgstr ""

#. type: table
#: doc/guix.texi:13253
msgid ""
"A list of UUIDs, file system labels, or strings identifying devices or files "
"to be used for ``swap space'' (@pxref{Memory Concepts,,, libc, The GNU C "
"Library Reference Manual}).  Here are some examples:"
msgstr ""

#. type: item
#: doc/guix.texi:13255
#, no-wrap
msgid "(list (uuid \"4dab5feb-d176-45de-b287-9b0a6e4c01cb\"))"
msgstr ""

#. type: table
#: doc/guix.texi:13259
msgid ""
"Use the swap partition with the given UUID.  You can learn the UUID of a "
"Linux swap partition by running @command{swaplabel @var{device}}, where "
"@var{device} is the @file{/dev} file name of that partition."
msgstr ""

#. type: item
#: doc/guix.texi:13260
#, no-wrap
msgid "(list (file-system-label \"swap\"))"
msgstr ""

#. type: table
#: doc/guix.texi:13264
msgid ""
"Use the partition with label @code{swap}.  Again, the @command{swaplabel} "
"command allows you to view and change the label of a Linux swap partition."
msgstr ""

#. type: item
#: doc/guix.texi:13265
#, no-wrap
msgid "(list \"/swapfile\")"
msgstr ""

#. type: table
#: doc/guix.texi:13267
msgid "Use the file @file{/swapfile} as swap space."
msgstr ""

#. type: item
#: doc/guix.texi:13268
#, no-wrap
msgid "(list \"/dev/sda3\" \"/dev/sdb2\")"
msgstr ""

#. type: table
#: doc/guix.texi:13272
msgid ""
"Use the @file{/dev/sda3} and @file{/dev/sdb2} partitions as swap space.  We "
"recommend referring to swap devices by UUIDs or labels as shown above "
"instead."
msgstr ""

#. type: table
#: doc/guix.texi:13278
msgid ""
"It is possible to specify a swap file in a file system on a mapped device "
"(under @file{/dev/mapper}), provided that the necessary device mapping and "
"file system are also specified.  @xref{Mapped Devices} and @ref{File "
"Systems}."
msgstr ""

#. type: item
#: doc/guix.texi:13279
#, no-wrap
msgid "@code{users} (default: @code{%base-user-accounts})"
msgstr ""

#. type: itemx
#: doc/guix.texi:13280
#, no-wrap
msgid "@code{groups} (default: @code{%base-groups})"
msgstr ""

#. type: table
#: doc/guix.texi:13282
msgid "List of user accounts and groups.  @xref{User Accounts}."
msgstr ""

#. type: table
#: doc/guix.texi:13285
msgid ""
"If the @code{users} list lacks a user account with UID@tie{}0, a ``root'' "
"account with UID@tie{}0 is automatically added."
msgstr ""

#. type: item
#: doc/guix.texi:13286
#, no-wrap
msgid "@code{skeletons} (default: @code{(default-skeletons)})"
msgstr ""

#. type: table
#: doc/guix.texi:13290
msgid ""
"A list of target file name/file-like object tuples (@pxref{G-Expressions, "
"file-like objects}).  These are the skeleton files that will be added to the "
"home directory of newly-created user accounts."
msgstr ""

#. type: table
#: doc/guix.texi:13292
msgid "For instance, a valid value may look like this:"
msgstr ""

#. type: lisp
#: doc/guix.texi:13298
#, no-wrap
msgid ""
"`((\".bashrc\" ,(plain-file \"bashrc\" \"echo Hello\\n\"))\n"
"  (\".guile\" ,(plain-file \"guile\"\n"
"                         \"(use-modules (ice-9 readline))\n"
"                          (activate-readline)\")))\n"
msgstr ""

#. type: item
#: doc/guix.texi:13300
#, no-wrap
msgid "@code{issue} (default: @code{%default-issue})"
msgstr ""

#. type: table
#: doc/guix.texi:13303
msgid ""
"A string denoting the contents of the @file{/etc/issue} file, which is "
"displayed when users log in on a text console."
msgstr ""

#. type: item
#: doc/guix.texi:13304
#, no-wrap
msgid "@code{packages} (default: @code{%base-packages})"
msgstr ""

#. type: table
#: doc/guix.texi:13308
msgid ""
"A list of packages to be installed in the global profile, which is "
"accessible at @file{/run/current-system/profile}.  Each element is either a "
"package variable or a package/output tuple.  Here's a simple example of both:"
msgstr ""

#. type: lisp
#: doc/guix.texi:13313
#, no-wrap
msgid ""
"(cons* git                     ; the default \"out\" output\n"
"       (list git \"send-email\") ; another output of git\n"
"       %base-packages)         ; the default set\n"
msgstr ""

#. type: table
#: doc/guix.texi:13318
msgid ""
"The default set includes core utilities and it is good practice to install "
"non-core utilities in user profiles (@pxref{Invoking guix package})."
msgstr ""

#. type: code{#1}
#: doc/guix.texi:13319
#, no-wrap
msgid "timezone"
msgstr ""

#. type: table
#: doc/guix.texi:13321
msgid "A timezone identifying string---e.g., @code{\"Europe/Paris\"}."
msgstr ""

#. type: table
#: doc/guix.texi:13325
msgid ""
"You can run the @command{tzselect} command to find out which timezone string "
"corresponds to your region.  Choosing an invalid timezone name causes "
"@command{guix system} to fail."
msgstr ""

#. type: item
#: doc/guix.texi:13326 doc/guix.texi:18879
#, no-wrap
msgid "@code{locale} (default: @code{\"en_US.utf8\"})"
msgstr ""

#. type: table
#: doc/guix.texi:13329
msgid ""
"The name of the default locale (@pxref{Locale Names,,, libc, The GNU C "
"Library Reference Manual}).  @xref{Locales}, for more information."
msgstr ""

#. type: item
#: doc/guix.texi:13330
#, no-wrap
msgid "@code{locale-definitions} (default: @code{%default-locale-definitions})"
msgstr ""

#. type: table
#: doc/guix.texi:13333
msgid ""
"The list of locale definitions to be compiled and that may be used at run "
"time.  @xref{Locales}."
msgstr ""

#. type: item
#: doc/guix.texi:13334
#, no-wrap
msgid "@code{locale-libcs} (default: @code{(list @var{glibc})})"
msgstr ""

#. type: table
#: doc/guix.texi:13338
msgid ""
"The list of GNU@tie{}libc packages whose locale data and tools are used to "
"build the locale definitions.  @xref{Locales}, for compatibility "
"considerations that justify this option."
msgstr ""

#. type: item
#: doc/guix.texi:13339
#, no-wrap
msgid "@code{name-service-switch} (default: @code{%default-nss})"
msgstr ""

#. type: table
#: doc/guix.texi:13343
msgid ""
"Configuration of the libc name service switch (NSS)---a @code{<name-service-"
"switch>} object.  @xref{Name Service Switch}, for details."
msgstr ""

#. type: item
#: doc/guix.texi:13344
#, no-wrap
msgid "@code{services} (default: @code{%base-services})"
msgstr ""

#. type: table
#: doc/guix.texi:13346
msgid "A list of service objects denoting system services.  @xref{Services}."
msgstr ""

#. type: cindex
#: doc/guix.texi:13347
#, no-wrap
msgid "essential services"
msgstr ""

#. type: item
#: doc/guix.texi:13348
#, no-wrap
msgid "@code{essential-services} (default: ...)"
msgstr ""

#. type: table
#: doc/guix.texi:13353
msgid ""
"The list of ``essential services''---i.e., things like instances of "
"@code{system-service-type} and @code{host-name-service-type} (@pxref{Service "
"Reference}), which are derived from the operating system definition itself.  "
"As a user you should @emph{never} need to touch this field."
msgstr ""

#. type: item
#: doc/guix.texi:13354
#, no-wrap
msgid "@code{pam-services} (default: @code{(base-pam-services)})"
msgstr ""

#. type: cindex
#: doc/guix.texi:13355
#, no-wrap
msgid "PAM"
msgstr ""

#. type: cindex
#: doc/guix.texi:13356
#, no-wrap
msgid "pluggable authentication modules"
msgstr ""

#. type: table
#: doc/guix.texi:13359
msgid "Linux @dfn{pluggable authentication module} (PAM) services."
msgstr ""

#. type: item
#: doc/guix.texi:13360
#, no-wrap
msgid "@code{setuid-programs} (default: @code{%setuid-programs})"
msgstr ""

#. type: table
#: doc/guix.texi:13363
msgid ""
"List of string-valued G-expressions denoting setuid programs.  @xref{Setuid "
"Programs}."
msgstr ""

#. type: item
#: doc/guix.texi:13364
#, no-wrap
msgid "@code{sudoers-file} (default: @code{%sudoers-specification})"
msgstr ""

#. type: cindex
#: doc/guix.texi:13365
#, no-wrap
msgid "sudoers file"
msgstr ""

#. type: table
#: doc/guix.texi:13368
msgid ""
"The contents of the @file{/etc/sudoers} file as a file-like object (@pxref{G-"
"Expressions, @code{local-file} and @code{plain-file}})."
msgstr ""

#. type: table
#: doc/guix.texi:13373
msgid ""
"This file specifies which users can use the @command{sudo} command, what "
"they are allowed to do, and what privileges they may gain.  The default is "
"that only @code{root} and members of the @code{wheel} group may use "
"@code{sudo}."
msgstr ""

#. type: deffn
#: doc/guix.texi:13376
#, no-wrap
msgid "{Scheme Syntax} this-operating-system"
msgstr ""

#. type: deffn
#: doc/guix.texi:13379
msgid ""
"When used in the @emph{lexical scope} of an operating system field "
"definition, this identifier resolves to the operating system being defined."
msgstr ""

#. type: deffn
#: doc/guix.texi:13382
msgid ""
"The example below shows how to refer to the operating system being defined "
"in the definition of the @code{label} field:"
msgstr ""

#. type: lisp
#: doc/guix.texi:13385 doc/guix.texi:16720
#, no-wrap
msgid ""
"(use-modules (gnu) (guix))\n"
"\n"
msgstr ""

#. type: lisp
#: doc/guix.texi:13390
#, no-wrap
msgid ""
"(operating-system\n"
"  ;; ...\n"
"  (label (package-full-name\n"
"          (operating-system-kernel this-operating-system))))\n"
msgstr ""

#. type: deffn
#: doc/guix.texi:13394
msgid ""
"It is an error to refer to @code{this-operating-system} outside an operating "
"system definition."
msgstr ""

#. type: Plain text
#: doc/guix.texi:13405
msgid ""
"The list of file systems to be mounted is specified in the @code{file-"
"systems} field of the operating system declaration (@pxref{Using the "
"Configuration System}).  Each file system is declared using the @code{file-"
"system} form, like this:"
msgstr ""

#. type: lisp
#: doc/guix.texi:13411
#, no-wrap
msgid ""
"(file-system\n"
"  (mount-point \"/home\")\n"
"  (device \"/dev/sda3\")\n"
"  (type \"ext4\"))\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:13415
msgid ""
"As usual, some of the fields are mandatory---those shown in the example "
"above---while others can be omitted.  These are described below."
msgstr ""

#. type: deftp
#: doc/guix.texi:13416
#, no-wrap
msgid "{Data Type} file-system"
msgstr ""

#. type: deftp
#: doc/guix.texi:13419
msgid ""
"Objects of this type represent file systems to be mounted.  They contain the "
"following members:"
msgstr ""

#. type: item
#: doc/guix.texi:13421 doc/guix.texi:13765
#, no-wrap
msgid "type"
msgstr ""

#. type: table
#: doc/guix.texi:13424
msgid ""
"This is a string specifying the type of the file system---e.g., "
"@code{\"ext4\"}."
msgstr ""

#. type: code{#1}
#: doc/guix.texi:13425
#, no-wrap
msgid "mount-point"
msgstr ""

#. type: table
#: doc/guix.texi:13427
msgid "This designates the place where the file system is to be mounted."
msgstr ""

#. type: code{#1}
#: doc/guix.texi:13428
#, no-wrap
msgid "device"
msgstr ""

#. type: table
#: doc/guix.texi:13438
msgid ""
"This names the ``source'' of the file system.  It can be one of three "
"things: a file system label, a file system UUID, or the name of a @file{/"
"dev} node.  Labels and UUIDs offer a way to refer to file systems without "
"having to hard-code their actual device name@footnote{Note that, while it is "
"tempting to use @file{/dev/disk/by-uuid} and similar device names to achieve "
"the same result, this is not recommended: These special device nodes are "
"created by the udev daemon and may be unavailable at the time the device is "
"mounted.}."
msgstr ""

#. type: findex
#: doc/guix.texi:13439
#, no-wrap
msgid "file-system-label"
msgstr ""

#. type: table
#: doc/guix.texi:13444
msgid ""
"File system labels are created using the @code{file-system-label} procedure, "
"UUIDs are created using @code{uuid}, and @file{/dev} node are plain "
"strings.  Here's an example of a file system referred to by its label, as "
"shown by the @command{e2label} command:"
msgstr ""

#. type: lisp
#: doc/guix.texi:13450
#, no-wrap
msgid ""
"(file-system\n"
"  (mount-point \"/home\")\n"
"  (type \"ext4\")\n"
"  (device (file-system-label \"my-home\")))\n"
msgstr ""

#. type: code{#1}
#: doc/guix.texi:13452 doc/guix.texi:29116
#, no-wrap
msgid "uuid"
msgstr ""

#. type: table
#: doc/guix.texi:13460
msgid ""
"UUIDs are converted from their string representation (as shown by the "
"@command{tune2fs -l} command) using the @code{uuid} form@footnote{The "
"@code{uuid} form expects 16-byte UUIDs as defined in @uref{https://tools."
"ietf.org/html/rfc4122, RFC@tie{}4122}.  This is the form of UUID used by the "
"ext2 family of file systems and others, but it is different from ``UUIDs'' "
"found in FAT file systems, for instance.}, like this:"
msgstr ""

#. type: lisp
#: doc/guix.texi:13466
#, no-wrap
msgid ""
"(file-system\n"
"  (mount-point \"/home\")\n"
"  (type \"ext4\")\n"
"  (device (uuid \"4dab5feb-d176-45de-b287-9b0a6e4c01cb\")))\n"
msgstr ""

#. type: table
#: doc/guix.texi:13474
msgid ""
"When the source of a file system is a mapped device (@pxref{Mapped "
"Devices}), its @code{device} field @emph{must} refer to the mapped device "
"name---e.g., @file{\"/dev/mapper/root-partition\"}.  This is required so "
"that the system knows that mounting the file system depends on having the "
"corresponding device mapping established."
msgstr ""

#. type: item
#: doc/guix.texi:13475
#, no-wrap
msgid "@code{flags} (default: @code{'()})"
msgstr ""

#. type: table
#: doc/guix.texi:13485
msgid ""
"This is a list of symbols denoting mount flags.  Recognized flags include "
"@code{read-only}, @code{bind-mount}, @code{no-dev} (disallow access to "
"special files), @code{no-suid} (ignore setuid and setgid bits), @code{no-"
"atime} (do not update file access times), @code{strict-atime} (update file "
"access time), @code{lazy-time} (only update time on the in-memory version of "
"the file inode), and @code{no-exec} (disallow program execution).  "
"@xref{Mount-Unmount-Remount,,, libc, The GNU C Library Reference Manual}, "
"for more information on these flags."
msgstr ""

#. type: item
#: doc/guix.texi:13486
#, no-wrap
msgid "@code{options} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:13495
msgid ""
"This is either @code{#f}, or a string denoting mount options passed to the "
"file system driver.  @xref{Mount-Unmount-Remount,,, libc, The GNU C Library "
"Reference Manual}, for details and run @command{man 8 mount} for options for "
"various file systems.  Note that the @code{file-system-options->alist} and "
"@code{alist->file-system-options} procedures from @code{(gnu system file-"
"systems)} can be used to convert file system options given as an association "
"list to the string representation, and vice-versa."
msgstr ""

#. type: item
#: doc/guix.texi:13496
#, no-wrap
msgid "@code{mount?} (default: @code{#t})"
msgstr ""

#. type: table
#: doc/guix.texi:13501
msgid ""
"This value indicates whether to automatically mount the file system when the "
"system is brought up.  When set to @code{#f}, the file system gets an entry "
"in @file{/etc/fstab} (read by the @command{mount} command) but is not "
"automatically mounted."
msgstr ""

#. type: item
#: doc/guix.texi:13502
#, no-wrap
msgid "@code{needed-for-boot?} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:13507
msgid ""
"This Boolean value indicates whether the file system is needed when "
"booting.  If that is true, then the file system is mounted when the initial "
"RAM disk (initrd) is loaded.  This is always the case, for instance, for the "
"root file system."
msgstr ""

#. type: item
#: doc/guix.texi:13508
#, no-wrap
msgid "@code{check?} (default: @code{#t})"
msgstr ""

#. type: table
#: doc/guix.texi:13511
msgid ""
"This Boolean indicates whether the file system needs to be checked for "
"errors before being mounted."
msgstr ""

#. type: item
#: doc/guix.texi:13512
#, no-wrap
msgid "@code{create-mount-point?} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:13514
msgid "When true, the mount point is created if it does not exist yet."
msgstr ""

#. type: item
#: doc/guix.texi:13515
#, no-wrap
msgid "@code{mount-may-fail?} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:13520
msgid ""
"When true, this indicates that mounting this file system can fail but that "
"should not be considered an error.  This is useful in unusual cases; an "
"example of this is @code{efivarfs}, a file system that can only be mounted "
"on EFI/UEFI systems."
msgstr ""

#. type: item
#: doc/guix.texi:13521
#, no-wrap
msgid "@code{dependencies} (default: @code{'()})"
msgstr ""

#. type: table
#: doc/guix.texi:13525
msgid ""
"This is a list of @code{<file-system>} or @code{<mapped-device>} objects "
"representing file systems that must be mounted or mapped devices that must "
"be opened before (and unmounted or closed after) this one."
msgstr ""

#. type: table
#: doc/guix.texi:13529
msgid ""
"As an example, consider a hierarchy of mounts: @file{/sys/fs/cgroup} is a "
"dependency of @file{/sys/fs/cgroup/cpu} and @file{/sys/fs/cgroup/memory}."
msgstr ""

#. type: table
#: doc/guix.texi:13532
msgid ""
"Another example is a file system that depends on a mapped device, for "
"example for an encrypted partition (@pxref{Mapped Devices})."
msgstr ""

#. type: deffn
#: doc/guix.texi:13535
#, no-wrap
msgid "{Scheme Procedure} file-system-label @var{str}"
msgstr ""

#. type: deffn
#: doc/guix.texi:13538
msgid ""
"This procedure returns an opaque file system label from @var{str}, a string:"
msgstr ""

#. type: lisp
#: doc/guix.texi:13542
#, no-wrap
msgid ""
"(file-system-label \"home\")\n"
"@result{} #<file-system-label \"home\">\n"
msgstr ""

#. type: deffn
#: doc/guix.texi:13546
msgid ""
"File system labels are used to refer to file systems by label rather than by "
"device name.  See above for examples."
msgstr ""

#. type: Plain text
#: doc/guix.texi:13550
msgid ""
"The @code{(gnu system file-systems)} exports the following useful variables."
msgstr ""

#. type: defvr
#: doc/guix.texi:13551
#, no-wrap
msgid "{Scheme Variable} %base-file-systems"
msgstr ""

#. type: defvr
#: doc/guix.texi:13556
msgid ""
"These are essential file systems that are required on normal systems, such "
"as @code{%pseudo-terminal-file-system} and @code{%immutable-store} (see "
"below).  Operating system declarations should always contain at least these."
msgstr ""

#. type: defvr
#: doc/guix.texi:13558
#, no-wrap
msgid "{Scheme Variable} %pseudo-terminal-file-system"
msgstr ""

#. type: defvr
#: doc/guix.texi:13564
msgid ""
"This is the file system to be mounted as @file{/dev/pts}.  It supports "
"@dfn{pseudo-terminals} created @i{via} @code{openpty} and similar functions "
"(@pxref{Pseudo-Terminals,,, libc, The GNU C Library Reference Manual}).  "
"Pseudo-terminals are used by terminal emulators such as @command{xterm}."
msgstr ""

#. type: defvr
#: doc/guix.texi:13566
#, no-wrap
msgid "{Scheme Variable} %shared-memory-file-system"
msgstr ""

#. type: defvr
#: doc/guix.texi:13570
msgid ""
"This file system is mounted as @file{/dev/shm} and is used to support memory "
"sharing across processes (@pxref{Memory-mapped I/O, @code{shm_open},, libc, "
"The GNU C Library Reference Manual})."
msgstr ""

#. type: defvr
#: doc/guix.texi:13572
#, no-wrap
msgid "{Scheme Variable} %immutable-store"
msgstr ""

#. type: defvr
#: doc/guix.texi:13577
msgid ""
"This file system performs a read-only ``bind mount'' of @file{/gnu/store}, "
"making it read-only for all the users including @code{root}.  This prevents "
"against accidental modification by software running as @code{root} or by "
"system administrators."
msgstr ""

#. type: defvr
#: doc/guix.texi:13580
msgid ""
"The daemon itself is still able to write to the store: it remounts it read-"
"write in its own ``name space.''"
msgstr ""

#. type: defvr
#: doc/guix.texi:13582
#, no-wrap
msgid "{Scheme Variable} %binary-format-file-system"
msgstr ""

#. type: defvr
#: doc/guix.texi:13586
msgid ""
"The @code{binfmt_misc} file system, which allows handling of arbitrary "
"executable file types to be delegated to user space.  This requires the "
"@code{binfmt.ko} kernel module to be loaded."
msgstr ""

#. type: defvr
#: doc/guix.texi:13588
#, no-wrap
msgid "{Scheme Variable} %fuse-control-file-system"
msgstr ""

#. type: defvr
#: doc/guix.texi:13592
msgid ""
"The @code{fusectl} file system, which allows unprivileged users to mount and "
"unmount user-space FUSE file systems.  This requires the @code{fuse.ko} "
"kernel module to be loaded."
msgstr ""

#. type: Plain text
#: doc/guix.texi:13596
msgid ""
"The @code{(gnu system uuid)} module provides tools to deal with file system "
"``unique identifiers'' (UUIDs)."
msgstr ""

#. type: deffn
#: doc/guix.texi:13597
#, no-wrap
msgid "{Scheme Procedure} uuid @var{str} [@var{type}]"
msgstr ""

#. type: deffn
#: doc/guix.texi:13600
msgid ""
"Return an opaque UUID (unique identifier) object of the given @var{type} (a "
"symbol) by parsing @var{str} (a string):"
msgstr ""

#. type: lisp
#: doc/guix.texi:13604
#, no-wrap
msgid ""
"(uuid \"4dab5feb-d176-45de-b287-9b0a6e4c01cb\")\n"
"@result{} #<<uuid> type: dce bv: @dots{}>\n"
"\n"
msgstr ""

#. type: lisp
#: doc/guix.texi:13607
#, no-wrap
msgid ""
"(uuid \"1234-ABCD\" 'fat)\n"
"@result{} #<<uuid> type: fat bv: @dots{}>\n"
msgstr ""

#. type: deffn
#: doc/guix.texi:13611
msgid ""
"@var{type} may be one of @code{dce}, @code{iso9660}, @code{fat}, "
"@code{ntfs}, or one of the commonly found synonyms for these."
msgstr ""

#. type: deffn
#: doc/guix.texi:13614
msgid ""
"UUIDs are another way to unambiguously refer to file systems in operating "
"system configuration.  See the examples above."
msgstr ""

#. type: subsection
#: doc/guix.texi:13617 doc/guix.texi:13618
#, no-wrap
msgid "Btrfs file system"
msgstr ""

#. type: Plain text
#: doc/guix.texi:13624
msgid ""
"The Btrfs has special features, such as subvolumes, that merit being "
"explained in more details.  The following section attempts to cover basic as "
"well as complex uses of a Btrfs file system with the Guix System."
msgstr ""

#. type: Plain text
#: doc/guix.texi:13627
msgid ""
"In its simplest usage, a Btrfs file system can be described, for example, by:"
msgstr ""

#. type: lisp
#: doc/guix.texi:13633
#, no-wrap
msgid ""
"(file-system\n"
"  (mount-point \"/home\")\n"
"  (type \"btrfs\")\n"
"  (device (file-system-label \"my-home\")))\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:13639
msgid ""
"The example below is more complex, as it makes use of a Btrfs subvolume, "
"named @code{rootfs}.  The parent Btrfs file system is labeled @code{my-btrfs-"
"pool}, and is located on an encrypted device (hence the dependency on "
"@code{mapped-devices}):"
msgstr ""

#. type: lisp
#: doc/guix.texi:13647
#, no-wrap
msgid ""
"(file-system\n"
"  (device (file-system-label \"my-btrfs-pool\"))\n"
"  (mount-point \"/\")\n"
"  (type \"btrfs\")\n"
"  (options \"subvol=rootfs\")\n"
"  (dependencies mapped-devices))\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:13658
msgid ""
"Some bootloaders, for example GRUB, only mount a Btrfs partition at its top "
"level during the early boot, and rely on their configuration to refer to the "
"correct subvolume path within that top level.  The bootloaders operating in "
"this way typically produce their configuration on a running system where the "
"Btrfs partitions are already mounted and where the subvolume information is "
"readily available.  As an example, @command{grub-mkconfig}, the "
"configuration generator command shipped with GRUB, reads @file{/proc/self/"
"mountinfo} to determine the top-level path of a subvolume."
msgstr ""

#. type: Plain text
#: doc/guix.texi:13666
msgid ""
"The Guix System produces a bootloader configuration using the operating "
"system configuration as its sole input; it is therefore necessary to extract "
"the subvolume name on which @file{/gnu/store} lives (if any)  from that "
"operating system configuration.  To better illustrate, consider a subvolume "
"named 'rootfs' which contains the root file system data.  In such situation, "
"the GRUB bootloader would only see the top level of the root Btrfs "
"partition, e.g.:"
msgstr ""

#. type: example
#: doc/guix.texi:13673
#, no-wrap
msgid ""
"/                   (top level)\n"
"├── rootfs          (subvolume directory)\n"
"    ├── gnu         (normal directory)\n"
"        ├── store   (normal directory)\n"
"[...]\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:13678
msgid ""
"Thus, the subvolume name must be prepended to the @file{/gnu/store} path of "
"the kernel, initrd binaries and any other files referred to in the GRUB "
"configuration that must be found during the early boot."
msgstr ""

#. type: Plain text
#: doc/guix.texi:13681
msgid ""
"The next example shows a nested hierarchy of subvolumes and directories:"
msgstr ""

#. type: example
#: doc/guix.texi:13688
#, no-wrap
msgid ""
"/                   (top level)\n"
"├── rootfs          (subvolume)\n"
"    ├── gnu         (normal directory)\n"
"        ├── store   (subvolume)\n"
"[...]\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:13695
msgid ""
"This scenario would work without mounting the 'store' subvolume.  Mounting "
"'rootfs' is sufficient, since the subvolume name matches its intended mount "
"point in the file system hierarchy.  Alternatively, the 'store' subvolume "
"could be referred to by setting the @code{subvol} option to either @code{/"
"rootfs/gnu/store} or @code{rootfs/gnu/store}."
msgstr ""

#. type: Plain text
#: doc/guix.texi:13697
msgid "Finally, a more contrived example of nested subvolumes:"
msgstr ""

#. type: example
#: doc/guix.texi:13704
#, no-wrap
msgid ""
"/                           (top level)\n"
"├── root-snapshots          (subvolume)\n"
"    ├── root-current        (subvolume)\n"
"        ├── guix-store      (subvolume)\n"
"[...]\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:13711
msgid ""
"Here, the 'guix-store' subvolume doesn't match its intended mount point, so "
"it is necessary to mount it.  The subvolume must be fully specified, by "
"passing its file name to the @code{subvol} option.  To illustrate, the 'guix-"
"store' subvolume could be mounted on @file{/gnu/store} by using a file "
"system declaration such as:"
msgstr ""

#. type: lisp
#: doc/guix.texi:13719
#, no-wrap
msgid ""
"(file-system\n"
"  (device (file-system-label \"btrfs-pool-1\"))\n"
"  (mount-point \"/gnu/store\")\n"
"  (type \"btrfs\")\n"
"  (options \"subvol=root-snapshots/root-current/guix-store,\\\n"
"compress-force=zstd,space_cache=v2\"))\n"
msgstr ""

#. type: cindex
#: doc/guix.texi:13724
#, no-wrap
msgid "device mapping"
msgstr ""

#. type: cindex
#: doc/guix.texi:13725
#, no-wrap
msgid "mapped devices"
msgstr ""

#. type: Plain text
#: doc/guix.texi:13743
msgid ""
"The Linux kernel has a notion of @dfn{device mapping}: a block device, such "
"as a hard disk partition, can be @dfn{mapped} into another device, usually "
"in @code{/dev/mapper/}, with additional processing over the data that flows "
"through it@footnote{Note that the GNU@tie{}Hurd makes no difference between "
"the concept of a ``mapped device'' and that of a file system: both boil down "
"to @emph{translating} input/output operations made on a file to operations "
"on its backing store.  Thus, the Hurd implements mapped devices, like file "
"systems, using the generic @dfn{translator} mechanism (@pxref{Translators,,, "
"hurd, The GNU Hurd Reference Manual}).}.  A typical example is encryption "
"device mapping: all writes to the mapped device are encrypted, and all reads "
"are deciphered, transparently.  Guix extends this notion by considering any "
"device or set of devices that are @dfn{transformed} in some way to create a "
"new device; for instance, RAID devices are obtained by @dfn{assembling} "
"several other devices, such as hard disks or partitions, into a new one that "
"behaves as one partition.  Other examples, not yet implemented, are LVM "
"logical volumes."
msgstr ""

#. type: Plain text
#: doc/guix.texi:13746
msgid ""
"Mapped devices are declared using the @code{mapped-device} form, defined as "
"follows; for examples, see below."
msgstr ""

#. type: deftp
#: doc/guix.texi:13747
#, no-wrap
msgid "{Data Type} mapped-device"
msgstr ""

#. type: deftp
#: doc/guix.texi:13750
msgid ""
"Objects of this type represent device mappings that will be made when the "
"system boots up."
msgstr ""

#. type: table
#: doc/guix.texi:13756
msgid ""
"This is either a string specifying the name of the block device to be "
"mapped, such as @code{\"/dev/sda3\"}, or a list of such strings when several "
"devices need to be assembled for creating a new one."
msgstr ""

#. type: code{#1}
#: doc/guix.texi:13757 doc/guix.texi:30418
#, no-wrap
msgid "target"
msgstr ""

#. type: table
#: doc/guix.texi:13764
msgid ""
"This string specifies the name of the resulting mapped device.  For kernel "
"mappers such as encrypted devices of type @code{luks-device-mapping}, "
"specifying @code{\"my-partition\"} leads to the creation of the @code{\"/dev/"
"mapper/my-partition\"} device.  For RAID devices of type @code{raid-device-"
"mapping}, the full device name such as @code{\"/dev/md0\"} needs to be given."
msgstr ""

#. type: table
#: doc/guix.texi:13768
msgid ""
"This must be a @code{mapped-device-kind} object, which specifies how "
"@var{source} is mapped to @var{target}."
msgstr ""

#. type: defvr
#: doc/guix.texi:13771
#, no-wrap
msgid "{Scheme Variable} luks-device-mapping"
msgstr ""

#. type: defvr
#: doc/guix.texi:13775
msgid ""
"This defines LUKS block device encryption using the @command{cryptsetup} "
"command from the package with the same name.  It relies on the @code{dm-"
"crypt} Linux kernel module."
msgstr ""

#. type: defvr
#: doc/guix.texi:13777
#, no-wrap
msgid "{Scheme Variable} raid-device-mapping"
msgstr ""

#. type: defvr
#: doc/guix.texi:13782
msgid ""
"This defines a RAID device, which is assembled using the @code{mdadm} "
"command from the package with the same name.  It requires a Linux kernel "
"module for the appropriate RAID level to be loaded, such as @code{raid456} "
"for RAID-4, RAID-5 or RAID-6, or @code{raid10} for RAID-10."
msgstr ""

#. type: cindex
#: doc/guix.texi:13784
#, no-wrap
msgid "disk encryption"
msgstr ""

#. type: cindex
#: doc/guix.texi:13785
#, no-wrap
msgid "LUKS"
msgstr ""

#. type: Plain text
#: doc/guix.texi:13793
msgid ""
"The following example specifies a mapping from @file{/dev/sda3} to @file{/"
"dev/mapper/home} using LUKS---the @url{https://gitlab.com/cryptsetup/"
"cryptsetup,Linux Unified Key Setup}, a standard mechanism for disk "
"encryption.  The @file{/dev/mapper/home} device can then be used as the "
"@code{device} of a @code{file-system} declaration (@pxref{File Systems})."
msgstr ""

#. type: lisp
#: doc/guix.texi:13799
#, no-wrap
msgid ""
"(mapped-device\n"
"  (source \"/dev/sda3\")\n"
"  (target \"home\")\n"
"  (type luks-device-mapping))\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:13804
msgid ""
"Alternatively, to become independent of device numbering, one may obtain the "
"LUKS UUID (@dfn{unique identifier}) of the source device by a command like:"
msgstr ""

#. type: example
#: doc/guix.texi:13807
#, no-wrap
msgid "cryptsetup luksUUID /dev/sda3\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:13810
msgid "and use it as follows:"
msgstr ""

#. type: lisp
#: doc/guix.texi:13816
#, no-wrap
msgid ""
"(mapped-device\n"
"  (source (uuid \"cb67fc72-0d54-4c88-9d4b-b225f30b0f44\"))\n"
"  (target \"home\")\n"
"  (type luks-device-mapping))\n"
msgstr ""

#. type: cindex
#: doc/guix.texi:13818
#, no-wrap
msgid "swap encryption"
msgstr ""

#. type: Plain text
#: doc/guix.texi:13824
msgid ""
"It is also desirable to encrypt swap space, since swap space may contain "
"sensitive data.  One way to accomplish that is to use a swap file in a file "
"system on a device mapped via LUKS encryption.  In this way, the swap file "
"is encrypted because the entire device is encrypted.  @xref{Preparing for "
"Installation,,Disk Partitioning}, for an example."
msgstr ""

#. type: Plain text
#: doc/guix.texi:13827
msgid ""
"A RAID device formed of the partitions @file{/dev/sda1} and @file{/dev/sdb1} "
"may be declared as follows:"
msgstr ""

#. type: lisp
#: doc/guix.texi:13833
#, no-wrap
msgid ""
"(mapped-device\n"
"  (source (list \"/dev/sda1\" \"/dev/sdb1\"))\n"
"  (target \"/dev/md0\")\n"
"  (type raid-device-mapping))\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:13840
msgid ""
"The @file{/dev/md0} device can then be used as the @code{device} of a "
"@code{file-system} declaration (@pxref{File Systems}).  Note that the RAID "
"level need not be given; it is chosen during the initial creation and "
"formatting of the RAID device and is determined automatically later."
msgstr ""

#. type: cindex
#: doc/guix.texi:13845
#, no-wrap
msgid "users"
msgstr ""

#. type: cindex
#: doc/guix.texi:13846
#, no-wrap
msgid "accounts"
msgstr ""

#. type: cindex
#: doc/guix.texi:13847
#, no-wrap
msgid "user accounts"
msgstr ""

#. type: Plain text
#: doc/guix.texi:13851
msgid ""
"User accounts and groups are entirely managed through the @code{operating-"
"system} declaration.  They are specified with the @code{user-account} and "
"@code{user-group} forms:"
msgstr ""

#. type: lisp
#: doc/guix.texi:13861
#, no-wrap
msgid ""
"(user-account\n"
"  (name \"alice\")\n"
"  (group \"users\")\n"
"  (supplementary-groups '(\"wheel\"   ;allow use of sudo, etc.\n"
"                          \"audio\"   ;sound card\n"
"                          \"video\"   ;video devices such as webcams\n"
"                          \"cdrom\")) ;the good ol' CD-ROM\n"
"  (comment \"Bob's sister\"))\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:13865
msgid ""
"Here's a user account that uses a different shell and a custom home "
"directory (the default would be @file{\"/home/bob\"}):"
msgstr ""

#. type: lisp
#: doc/guix.texi:13873
#, no-wrap
msgid ""
"(user-account\n"
"  (name \"bob\")\n"
"  (group \"users\")\n"
"  (comment \"Alice's bro\")\n"
"  (shell (file-append zsh \"/bin/zsh\"))\n"
"  (home-directory \"/home/robert\"))\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:13882
msgid ""
"When booting or upon completion of @command{guix system reconfigure}, the "
"system ensures that only the user accounts and groups specified in the "
"@code{operating-system} declaration exist, and with the specified "
"properties.  Thus, account or group creations or modifications made by "
"directly invoking commands such as @command{useradd} are lost upon "
"reconfiguration or reboot.  This ensures that the system remains exactly as "
"declared."
msgstr ""

#. type: deftp
#: doc/guix.texi:13883
#, no-wrap
msgid "{Data Type} user-account"
msgstr ""

#. type: deftp
#: doc/guix.texi:13886
msgid ""
"Objects of this type represent user accounts.  The following members may be "
"specified:"
msgstr ""

#. type: table
#: doc/guix.texi:13890
msgid "The name of the user account."
msgstr ""

#. type: itemx
#: doc/guix.texi:13891 doc/guix.texi:30105
#, no-wrap
msgid "group"
msgstr ""

#. type: cindex
#: doc/guix.texi:13892 doc/guix.texi:13971
#, no-wrap
msgid "groups"
msgstr ""

#. type: table
#: doc/guix.texi:13895
msgid ""
"This is the name (a string) or identifier (a number) of the user group this "
"account belongs to."
msgstr ""

#. type: item
#: doc/guix.texi:13896
#, no-wrap
msgid "@code{supplementary-groups} (default: @code{'()})"
msgstr ""

#. type: table
#: doc/guix.texi:13899
msgid ""
"Optionally, this can be defined as a list of group names that this account "
"belongs to."
msgstr ""

#. type: item
#: doc/guix.texi:13900
#, no-wrap
msgid "@code{uid} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:13904
msgid ""
"This is the user ID for this account (a number), or @code{#f}.  In the "
"latter case, a number is automatically chosen by the system when the account "
"is created."
msgstr ""

#. type: item
#: doc/guix.texi:13905
#, no-wrap
msgid "@code{comment} (default: @code{\"\"})"
msgstr ""

#. type: table
#: doc/guix.texi:13907
msgid "A comment about the account, such as the account owner's full name."
msgstr ""

#. type: code{#1}
#: doc/guix.texi:13908
#, no-wrap
msgid "home-directory"
msgstr ""

#. type: table
#: doc/guix.texi:13910
msgid "This is the name of the home directory for the account."
msgstr ""

#. type: item
#: doc/guix.texi:13911
#, no-wrap
msgid "@code{create-home-directory?} (default: @code{#t})"
msgstr ""

#. type: table
#: doc/guix.texi:13914
msgid ""
"Indicates whether the home directory of this account should be created if it "
"does not exist yet."
msgstr ""

#. type: item
#: doc/guix.texi:13915
#, no-wrap
msgid "@code{shell} (default: Bash)"
msgstr ""

#. type: table
#: doc/guix.texi:13919
msgid ""
"This is a G-expression denoting the file name of a program to be used as the "
"shell (@pxref{G-Expressions}).  For example, you would refer to the Bash "
"executable like this:"
msgstr ""

#. type: lisp
#: doc/guix.texi:13922
#, no-wrap
msgid "(file-append bash \"/bin/bash\")\n"
msgstr ""

#. type: table
#: doc/guix.texi:13926
msgid "... and to the Zsh executable like that:"
msgstr ""

#. type: lisp
#: doc/guix.texi:13929
#, no-wrap
msgid "(file-append zsh \"/bin/zsh\")\n"
msgstr ""

#. type: item
#: doc/guix.texi:13931 doc/guix.texi:13989
#, no-wrap
msgid "@code{system?} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:13935
msgid ""
"This Boolean value indicates whether the account is a ``system'' account.  "
"System accounts are sometimes treated specially; for instance, graphical "
"login managers do not list them."
msgstr ""

#. type: anchor{#1}
#: doc/guix.texi:13937
msgid "user-account-password"
msgstr ""

#. type: cindex
#: doc/guix.texi:13937
#, no-wrap
msgid "password, for user accounts"
msgstr ""

#. type: item
#: doc/guix.texi:13938 doc/guix.texi:13993 doc/guix.texi:29121
#, no-wrap
msgid "@code{password} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:13944
msgid ""
"You would normally leave this field to @code{#f}, initialize user passwords "
"as @code{root} with the @command{passwd} command, and then let users change "
"it with @command{passwd}.  Passwords set with @command{passwd} are of course "
"preserved across reboot and reconfiguration."
msgstr ""

#. type: table
#: doc/guix.texi:13948
msgid ""
"If you @emph{do} want to set an initial password for an account, then this "
"field must contain the encrypted password, as a string.  You can use the "
"@code{crypt} procedure for this purpose:"
msgstr ""

#. type: lisp
#: doc/guix.texi:13953
#, no-wrap
msgid ""
"(user-account\n"
"  (name \"charlie\")\n"
"  (group \"users\")\n"
"\n"
msgstr ""

#. type: lisp
#: doc/guix.texi:13956
#, no-wrap
msgid ""
"  ;; Specify a SHA-512-hashed initial password.\n"
"  (password (crypt \"InitialPassword!\" \"$6$abc\")))\n"
msgstr ""

#. type: quotation
#: doc/guix.texi:13962
msgid ""
"The hash of this initial password will be available in a file in @file{/gnu/"
"store}, readable by all the users, so this method must be used with care."
msgstr ""

#. type: table
#: doc/guix.texi:13967
msgid ""
"@xref{Passphrase Storage,,, libc, The GNU C Library Reference Manual}, for "
"more information on password encryption, and @ref{Encryption,,, guile, GNU "
"Guile Reference Manual}, for information on Guile's @code{crypt} procedure."
msgstr ""

#. type: Plain text
#: doc/guix.texi:13973
msgid "User group declarations are even simpler:"
msgstr ""

#. type: lisp
#: doc/guix.texi:13976
#, no-wrap
msgid "(user-group (name \"students\"))\n"
msgstr ""

#. type: deftp
#: doc/guix.texi:13978
#, no-wrap
msgid "{Data Type} user-group"
msgstr ""

#. type: deftp
#: doc/guix.texi:13980
msgid "This type is for, well, user groups.  There are just a few fields:"
msgstr ""

#. type: table
#: doc/guix.texi:13984
msgid "The name of the group."
msgstr ""

#. type: item
#: doc/guix.texi:13985 doc/guix.texi:26987
#, no-wrap
msgid "@code{id} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:13988
msgid ""
"The group identifier (a number).  If @code{#f}, a new number is "
"automatically allocated when the group is created."
msgstr ""

#. type: table
#: doc/guix.texi:13992
msgid ""
"This Boolean value indicates whether the group is a ``system'' group.  "
"System groups have low numerical IDs."
msgstr ""

#. type: table
#: doc/guix.texi:13996
msgid ""
"What, user groups can have a password? Well, apparently yes.  Unless "
"@code{#f}, this field specifies the password of the group."
msgstr ""

#. type: Plain text
#: doc/guix.texi:14002
msgid ""
"For convenience, a variable lists all the basic user groups one may expect:"
msgstr ""

#. type: defvr
#: doc/guix.texi:14003
#, no-wrap
msgid "{Scheme Variable} %base-groups"
msgstr ""

#. type: defvr
#: doc/guix.texi:14008
msgid ""
"This is the list of basic user groups that users and/or packages expect to "
"be present on the system.  This includes groups such as ``root'', ``wheel'', "
"and ``users'', as well as groups used to control access to specific devices "
"such as ``audio'', ``disk'', and ``cdrom''."
msgstr ""

#. type: defvr
#: doc/guix.texi:14010
#, no-wrap
msgid "{Scheme Variable} %base-user-accounts"
msgstr ""

#. type: defvr
#: doc/guix.texi:14013
msgid ""
"This is the list of basic system accounts that programs may expect to find "
"on a GNU/Linux system, such as the ``nobody'' account."
msgstr ""

#. type: defvr
#: doc/guix.texi:14016
msgid ""
"Note that the ``root'' account is not included here.  It is a special-case "
"and is automatically added whether or not it is specified."
msgstr ""

#. type: cindex
#: doc/guix.texi:14022
#, no-wrap
msgid "keymap"
msgstr ""

#. type: Plain text
#: doc/guix.texi:14030
msgid ""
"To specify what each key of your keyboard does, you need to tell the "
"operating system what @dfn{keyboard layout} you want to use.  The default, "
"when nothing is specified, is the US English QWERTY layout for 105-key PC "
"keyboards.  However, German speakers will usually prefer the German QWERTZ "
"layout, French speakers will want the AZERTY layout, and so on; hackers "
"might prefer Dvorak or bépo, and they might even want to further customize "
"the effect of some of the keys.  This section explains how to get that done."
msgstr ""

#. type: cindex
#: doc/guix.texi:14031
#, no-wrap
msgid "keyboard layout, definition"
msgstr ""

#. type: Plain text
#: doc/guix.texi:14033
msgid ""
"There are three components that will want to know about your keyboard layout:"
msgstr ""

#. type: itemize
#: doc/guix.texi:14040
msgid ""
"The @emph{bootloader} may want to know what keyboard layout you want to use "
"(@pxref{Bootloader Configuration, @code{keyboard-layout}}).  This is useful "
"if you want, for instance, to make sure that you can type the passphrase of "
"your encrypted root partition using the right layout."
msgstr ""

#. type: itemize
#: doc/guix.texi:14045
msgid ""
"The @emph{operating system kernel}, Linux, will need that so that the "
"console is properly configured (@pxref{operating-system Reference, "
"@code{keyboard-layout}})."
msgstr ""

#. type: itemize
#: doc/guix.texi:14049
msgid ""
"The @emph{graphical display server}, usually Xorg, also has its own idea of "
"the keyboard layout (@pxref{X Window, @code{keyboard-layout}})."
msgstr ""

#. type: Plain text
#: doc/guix.texi:14053
msgid ""
"Guix allows you to configure all three separately but, fortunately, it "
"allows you to share the same keyboard layout for all three components."
msgstr ""

#. type: cindex
#: doc/guix.texi:14054
#, no-wrap
msgid "XKB, keyboard layouts"
msgstr ""

#. type: Plain text
#: doc/guix.texi:14062
msgid ""
"Keyboard layouts are represented by records created by the @code{keyboard-"
"layout} procedure of @code{(gnu system keyboard)}.  Following the X Keyboard "
"extension (XKB), each layout has four attributes: a name (often a language "
"code such as ``fi'' for Finnish or ``jp'' for Japanese), an optional variant "
"name, an optional keyboard model name, and a possibly empty list of "
"additional options.  In most cases the layout name is all you care about."
msgstr ""

#. type: deffn
#: doc/guix.texi:14063
#, no-wrap
msgid "{Scheme Procedure} keyboard-layout @var{name} [@var{variant}] @"
msgstr ""

#. type: deffn
#: doc/guix.texi:14066
msgid ""
"[#:model] [#:options '()] Return a new keyboard layout with the given "
"@var{name} and @var{variant}."
msgstr ""

#. type: deffn
#: doc/guix.texi:14070
msgid ""
"@var{name} must be a string such as @code{\"fr\"}; @var{variant} must be a "
"string such as @code{\"bepo\"} or @code{\"nodeadkeys\"}.  See the "
"@code{xkeyboard-config} package for valid options."
msgstr ""

#. type: Plain text
#: doc/guix.texi:14073
msgid "Here are a few examples:"
msgstr ""

#. type: lisp
#: doc/guix.texi:14078
#, no-wrap
msgid ""
";; The German QWERTZ layout.  Here we assume a standard\n"
";; \"pc105\" keyboard model.\n"
"(keyboard-layout \"de\")\n"
"\n"
msgstr ""

#. type: lisp
#: doc/guix.texi:14081
#, no-wrap
msgid ""
";; The bépo variant of the French layout.\n"
"(keyboard-layout \"fr\" \"bepo\")\n"
"\n"
msgstr ""

#. type: lisp
#: doc/guix.texi:14084
#, no-wrap
msgid ""
";; The Catalan layout.\n"
"(keyboard-layout \"es\" \"cat\")\n"
"\n"
msgstr ""

#. type: lisp
#: doc/guix.texi:14087
#, no-wrap
msgid ""
";; Arabic layout with \"Alt-Shift\" to switch to US layout.\n"
"(keyboard-layout \"ar,us\" #:options '(\"grp:alt_shift_toggle\"))\n"
"\n"
msgstr ""

#. type: lisp
#: doc/guix.texi:14094
#, no-wrap
msgid ""
";; The Latin American Spanish layout.  In addition, the\n"
";; \"Caps Lock\" key is used as an additional \"Ctrl\" key,\n"
";; and the \"Menu\" key is used as a \"Compose\" key to enter\n"
";; accented letters.\n"
"(keyboard-layout \"latam\"\n"
"                 #:options '(\"ctrl:nocaps\" \"compose:menu\"))\n"
"\n"
msgstr ""

#. type: lisp
#: doc/guix.texi:14097
#, no-wrap
msgid ""
";; The Russian layout for a ThinkPad keyboard.\n"
"(keyboard-layout \"ru\" #:model \"thinkpad\")\n"
"\n"
msgstr ""

#. type: lisp
#: doc/guix.texi:14102
#, no-wrap
msgid ""
";; The \"US international\" layout, which is the US layout plus\n"
";; dead keys to enter accented characters.  This is for an\n"
";; Apple MacBook keyboard.\n"
"(keyboard-layout \"us\" \"intl\" #:model \"macbook78\")\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:14106
msgid ""
"See the @file{share/X11/xkb} directory of the @code{xkeyboard-config} "
"package for a complete list of supported layouts, variants, and models."
msgstr ""

#. type: cindex
#: doc/guix.texi:14107
#, no-wrap
msgid "keyboard layout, configuration"
msgstr ""

#. type: Plain text
#: doc/guix.texi:14111
msgid ""
"Let's say you want your system to use the Turkish keyboard layout throughout "
"your system---bootloader, console, and Xorg.  Here's what your system "
"configuration would look like:"
msgstr ""

#. type: findex
#: doc/guix.texi:14112
#, no-wrap
msgid "set-xorg-configuration"
msgstr ""

#. type: lisp
#: doc/guix.texi:14116
#, no-wrap
msgid ""
";; Using the Turkish layout for the bootloader, the console,\n"
";; and for Xorg.\n"
"\n"
msgstr ""

#. type: lisp
#: doc/guix.texi:14128
#, no-wrap
msgid ""
"(operating-system\n"
"  ;; ...\n"
"  (keyboard-layout (keyboard-layout \"tr\"))  ;for the console\n"
"  (bootloader (bootloader-configuration\n"
"                (bootloader grub-efi-bootloader)\n"
"                (target \"/boot/efi\")\n"
"                (keyboard-layout keyboard-layout))) ;for GRUB\n"
"  (services (cons (set-xorg-configuration\n"
"                    (xorg-configuration             ;for Xorg\n"
"                      (keyboard-layout keyboard-layout)))\n"
"                  %desktop-services)))\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:14135
msgid ""
"In the example above, for GRUB and for Xorg, we just refer to the "
"@code{keyboard-layout} field defined above, but we could just as well refer "
"to a different layout.  The @code{set-xorg-configuration} procedure "
"communicates the desired Xorg configuration to the graphical log-in manager, "
"by default GDM."
msgstr ""

#. type: Plain text
#: doc/guix.texi:14138
msgid ""
"We've discussed how to specify the @emph{default} keyboard layout of your "
"system when it starts, but you can also adjust it at run time:"
msgstr ""

#. type: itemize
#: doc/guix.texi:14143
msgid ""
"If you're using GNOME, its settings panel has a ``Region & Language'' entry "
"where you can select one or more keyboard layouts."
msgstr ""

#. type: itemize
#: doc/guix.texi:14148
msgid ""
"Under Xorg, the @command{setxkbmap} command (from the same-named package)  "
"allows you to change the current layout.  For example, this is how you would "
"change the layout to US Dvorak:"
msgstr ""

#. type: example
#: doc/guix.texi:14151
#, no-wrap
msgid "setxkbmap us dvorak\n"
msgstr ""

#. type: itemize
#: doc/guix.texi:14158
msgid ""
"The @code{loadkeys} command changes the keyboard layout in effect in the "
"Linux console.  However, note that @code{loadkeys} does @emph{not} use the "
"XKB keyboard layout categorization described above.  The command below loads "
"the French bépo layout:"
msgstr ""

#. type: example
#: doc/guix.texi:14161
#, no-wrap
msgid "loadkeys fr-bepo\n"
msgstr ""

#. type: cindex
#: doc/guix.texi:14167
#, no-wrap
msgid "locale"
msgstr ""

#. type: Plain text
#: doc/guix.texi:14174
msgid ""
"A @dfn{locale} defines cultural conventions for a particular language and "
"region of the world (@pxref{Locales,,, libc, The GNU C Library Reference "
"Manual}).  Each locale has a name that typically has the form "
"@code{@var{language}_@var{territory}.@var{codeset}}---e.g., @code{fr_LU."
"utf8} designates the locale for the French language, with cultural "
"conventions from Luxembourg, and using the UTF-8 encoding."
msgstr ""

#. type: cindex
#: doc/guix.texi:14175
#, no-wrap
msgid "locale definition"
msgstr ""

#. type: Plain text
#: doc/guix.texi:14179
msgid ""
"Usually, you will want to specify the default locale for the machine using "
"the @code{locale} field of the @code{operating-system} declaration "
"(@pxref{operating-system Reference, @code{locale}})."
msgstr ""

#. type: Plain text
#: doc/guix.texi:14188
msgid ""
"The selected locale is automatically added to the @dfn{locale definitions} "
"known to the system if needed, with its codeset inferred from its name---e."
"g., @code{bo_CN.utf8} will be assumed to use the @code{UTF-8} codeset.  "
"Additional locale definitions can be specified in the @code{locale-"
"definitions} slot of @code{operating-system}---this is useful, for instance, "
"if the codeset could not be inferred from the locale name.  The default set "
"of locale definitions includes some widely used locales, but not all the "
"available locales, in order to save space."
msgstr ""

#. type: Plain text
#: doc/guix.texi:14191
msgid ""
"For instance, to add the North Frisian locale for Germany, the value of that "
"field may be:"
msgstr ""

#. type: lisp
#: doc/guix.texi:14196
#, no-wrap
msgid ""
"(cons (locale-definition\n"
"        (name \"fy_DE.utf8\") (source \"fy_DE\"))\n"
"      %default-locale-definitions)\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:14200
msgid ""
"Likewise, to save space, one might want @code{locale-definitions} to list "
"only the locales that are actually used, as in:"
msgstr ""

#. type: lisp
#: doc/guix.texi:14205
#, no-wrap
msgid ""
"(list (locale-definition\n"
"        (name \"ja_JP.eucjp\") (source \"ja_JP\")\n"
"        (charset \"EUC-JP\")))\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:14214
msgid ""
"The compiled locale definitions are available at @file{/run/current-system/"
"locale/X.Y}, where @code{X.Y} is the libc version, which is the default "
"location where the GNU@tie{}libc provided by Guix looks for locale data.  "
"This can be overridden using the @env{LOCPATH} environment variable "
"(@pxref{locales-and-locpath, @env{LOCPATH} and locale packages})."
msgstr ""

#. type: Plain text
#: doc/guix.texi:14217
msgid ""
"The @code{locale-definition} form is provided by the @code{(gnu system "
"locale)} module.  Details are given below."
msgstr ""

#. type: deftp
#: doc/guix.texi:14218
#, no-wrap
msgid "{Data Type} locale-definition"
msgstr ""

#. type: deftp
#: doc/guix.texi:14220
msgid "This is the data type of a locale definition."
msgstr ""

#. type: table
#: doc/guix.texi:14226
msgid ""
"The name of the locale.  @xref{Locale Names,,, libc, The GNU C Library "
"Reference Manual}, for more information on locale names."
msgstr ""

#. type: table
#: doc/guix.texi:14230
msgid ""
"The name of the source for that locale.  This is typically the "
"@code{@var{language}_@var{territory}} part of the locale name."
msgstr ""

#. type: item
#: doc/guix.texi:14231
#, no-wrap
msgid "@code{charset} (default: @code{\"UTF-8\"})"
msgstr ""

#. type: table
#: doc/guix.texi:14235
msgid ""
"The ``character set'' or ``code set'' for that locale, @uref{https://www."
"iana.org/assignments/character-sets, as defined by IANA}."
msgstr ""

#. type: defvr
#: doc/guix.texi:14239
#, no-wrap
msgid "{Scheme Variable} %default-locale-definitions"
msgstr ""

#. type: defvr
#: doc/guix.texi:14243
msgid ""
"A list of commonly used UTF-8 locales, used as the default value of the "
"@code{locale-definitions} field of @code{operating-system} declarations."
msgstr ""

#. type: cindex
#: doc/guix.texi:14244
#, no-wrap
msgid "locale name"
msgstr ""

#. type: cindex
#: doc/guix.texi:14245
#, no-wrap
msgid "normalized codeset in locale names"
msgstr ""

#. type: defvr
#: doc/guix.texi:14251
msgid ""
"These locale definitions use the @dfn{normalized codeset} for the part that "
"follows the dot in the name (@pxref{Using gettextized software, normalized "
"codeset,, libc, The GNU C Library Reference Manual}).  So for instance it "
"has @code{uk_UA.utf8} but @emph{not}, say, @code{uk_UA.UTF-8}."
msgstr ""

#. type: subsection
#: doc/guix.texi:14253
#, no-wrap
msgid "Locale Data Compatibility Considerations"
msgstr ""

#. type: cindex
#: doc/guix.texi:14255
#, no-wrap
msgid "incompatibility, of locale data"
msgstr ""

#. type: Plain text
#: doc/guix.texi:14262
msgid ""
"@code{operating-system} declarations provide a @code{locale-libcs} field to "
"specify the GNU@tie{}libc packages that are used to compile locale "
"declarations (@pxref{operating-system Reference}).  ``Why would I care?'', "
"you may ask.  Well, it turns out that the binary format of locale data is "
"occasionally incompatible from one libc version to another."
msgstr ""

#. type: Plain text
#: doc/guix.texi:14274
msgid ""
"For instance, a program linked against libc version 2.21 is unable to read "
"locale data produced with libc 2.22; worse, that program @emph{aborts} "
"instead of simply ignoring the incompatible locale data@footnote{Versions "
"2.23 and later of GNU@tie{}libc will simply skip the incompatible locale "
"data, which is already an improvement.}.  Similarly, a program linked "
"against libc 2.22 can read most, but not all, of the locale data from libc "
"2.21 (specifically, @env{LC_COLLATE} data is incompatible); thus calls to "
"@code{setlocale} may fail, but programs will not abort."
msgstr ""

#. type: Plain text
#: doc/guix.texi:14279
msgid ""
"The ``problem'' with Guix is that users have a lot of freedom: They can "
"choose whether and when to upgrade software in their profiles, and might be "
"using a libc version different from the one the system administrator used to "
"build the system-wide locale data."
msgstr ""

#. type: Plain text
#: doc/guix.texi:14283
msgid ""
"Fortunately, unprivileged users can also install their own locale data and "
"define @env{GUIX_LOCPATH} accordingly (@pxref{locales-and-locpath, "
"@env{GUIX_LOCPATH} and locale packages})."
msgstr ""

#. type: Plain text
#: doc/guix.texi:14290
msgid ""
"Still, it is best if the system-wide locale data at @file{/run/current-"
"system/locale} is built for all the libc versions actually in use on the "
"system, so that all the programs can access it---this is especially crucial "
"on a multi-user system.  To do that, the administrator can specify several "
"libc packages in the @code{locale-libcs} field of @code{operating-system}:"
msgstr ""

#. type: lisp
#: doc/guix.texi:14293
#, no-wrap
msgid ""
"(use-package-modules base)\n"
"\n"
msgstr ""

#. type: lisp
#: doc/guix.texi:14297
#, no-wrap
msgid ""
"(operating-system\n"
"  ;; @dots{}\n"
"  (locale-libcs (list glibc-2.21 (canonical-package glibc))))\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:14302
msgid ""
"This example would lead to a system containing locale definitions for both "
"libc 2.21 and the current version of libc in @file{/run/current-system/"
"locale}."
msgstr ""

#. type: cindex
#: doc/guix.texi:14307
#, no-wrap
msgid "system services"
msgstr ""

#. type: Plain text
#: doc/guix.texi:14313
msgid ""
"An important part of preparing an @code{operating-system} declaration is "
"listing @dfn{system services} and their configuration (@pxref{Using the "
"Configuration System}).  System services are typically daemons launched when "
"the system boots, or other actions needed at that time---e.g., configuring "
"network access."
msgstr ""

#. type: Plain text
#: doc/guix.texi:14320
msgid ""
"Guix has a broad definition of ``service'' (@pxref{Service Composition}), "
"but many services are managed by the GNU@tie{}Shepherd (@pxref{Shepherd "
"Services}).  On a running system, the @command{herd} command allows you to "
"list the available services, show their status, start and stop them, or do "
"other specific operations (@pxref{Jump Start,,, shepherd, The GNU Shepherd "
"Manual}).  For example:"
msgstr ""

#. type: example
#: doc/guix.texi:14323
#, no-wrap
msgid "# herd status\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:14328
msgid ""
"The above command, run as @code{root}, lists the currently defined "
"services.  The @command{herd doc} command shows a synopsis of the given "
"service and its associated actions:"
msgstr ""

#. type: example
#: doc/guix.texi:14332
#, no-wrap
msgid ""
"# herd doc nscd\n"
"Run libc's name service cache daemon (nscd).\n"
"\n"
msgstr ""

#. type: example
#: doc/guix.texi:14335
#, no-wrap
msgid ""
"# herd doc nscd action invalidate\n"
"invalidate: Invalidate the given cache--e.g., 'hosts' for host name lookups.\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:14340
msgid ""
"The @command{start}, @command{stop}, and @command{restart} sub-commands have "
"the effect you would expect.  For instance, the commands below stop the nscd "
"service and restart the Xorg display server:"
msgstr ""

#. type: example
#: doc/guix.texi:14347
#, no-wrap
msgid ""
"# herd stop nscd\n"
"Service nscd has been stopped.\n"
"# herd restart xorg-server\n"
"Service xorg-server has been stopped.\n"
"Service xorg-server has been started.\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:14352
msgid ""
"The following sections document the available services, starting with the "
"core services, that may be used in an @code{operating-system} declaration."
msgstr ""

#. type: Plain text
#: doc/guix.texi:14394
msgid ""
"The @code{(gnu services base)} module provides definitions for the basic "
"services that one expects from the system.  The services exported by this "
"module are listed below."
msgstr ""

#. type: defvr
#: doc/guix.texi:14395
#, no-wrap
msgid "{Scheme Variable} %base-services"
msgstr ""

#. type: defvr
#: doc/guix.texi:14401
msgid ""
"This variable contains a list of basic services (@pxref{Service Types and "
"Services}, for more information on service objects) one would expect from "
"the system: a login service (mingetty) on each tty, syslogd, the libc name "
"service cache daemon (nscd), the udev device manager, and more."
msgstr ""

#. type: defvr
#: doc/guix.texi:14406
msgid ""
"This is the default value of the @code{services} field of @code{operating-"
"system} declarations.  Usually, when customizing a system, you will want to "
"append services to @code{%base-services}, like this:"
msgstr ""

#. type: lisp
#: doc/guix.texi:14411
#, no-wrap
msgid ""
"(append (list (service avahi-service-type)\n"
"              (service openssh-service-type))\n"
"        %base-services)\n"
msgstr ""

#. type: defvr
#: doc/guix.texi:14414
#, no-wrap
msgid "{Scheme Variable} special-files-service-type"
msgstr ""

#. type: defvr
#: doc/guix.texi:14417
msgid ""
"This is the service that sets up ``special files'' such as @file{/bin/sh}; "
"an instance of it is part of @code{%base-services}."
msgstr ""

#. type: defvr
#: doc/guix.texi:14421
msgid ""
"The value associated with @code{special-files-service-type} services must be "
"a list of tuples where the first element is the ``special file'' and the "
"second element is its target.  By default it is:"
msgstr ""

#. type: file{#1}
#: doc/guix.texi:14422
#, no-wrap
msgid "/bin/sh"
msgstr ""

#. type: cindex
#: doc/guix.texi:14423
#, no-wrap
msgid "@file{sh}, in @file{/bin}"
msgstr ""

#. type: lisp
#: doc/guix.texi:14426
#, no-wrap
msgid "`((\"/bin/sh\" ,(file-append bash \"/bin/sh\")))\n"
msgstr ""

#. type: file{#1}
#: doc/guix.texi:14428
#, no-wrap
msgid "/usr/bin/env"
msgstr ""

#. type: cindex
#: doc/guix.texi:14429
#, no-wrap
msgid "@file{env}, in @file{/usr/bin}"
msgstr ""

#. type: defvr
#: doc/guix.texi:14432
msgid ""
"If you want to add, say, @code{/usr/bin/env} to your system, you can change "
"it to:"
msgstr ""

#. type: lisp
#: doc/guix.texi:14436
#, no-wrap
msgid ""
"`((\"/bin/sh\" ,(file-append bash \"/bin/sh\"))\n"
"  (\"/usr/bin/env\" ,(file-append coreutils \"/bin/env\")))\n"
msgstr ""

#. type: defvr
#: doc/guix.texi:14443
msgid ""
"Since this is part of @code{%base-services}, you can use @code{modify-"
"services} to customize the set of special files (@pxref{Service Reference, "
"@code{modify-services}}).  But the simple way to add a special file is "
"@i{via} the @code{extra-special-file} procedure (see below)."
msgstr ""

#. type: deffn
#: doc/guix.texi:14445
#, no-wrap
msgid "{Scheme Procedure} extra-special-file @var{file} @var{target}"
msgstr ""

#. type: deffn
#: doc/guix.texi:14447
msgid "Use @var{target} as the ``special file'' @var{file}."
msgstr ""

#. type: deffn
#: doc/guix.texi:14451
msgid ""
"For example, adding the following lines to the @code{services} field of your "
"operating system declaration leads to a @file{/usr/bin/env} symlink:"
msgstr ""

#. type: lisp
#: doc/guix.texi:14455
#, no-wrap
msgid ""
"(extra-special-file \"/usr/bin/env\"\n"
"                    (file-append coreutils \"/bin/env\"))\n"
msgstr ""

#. type: deffn
#: doc/guix.texi:14458
#, no-wrap
msgid "{Scheme Procedure} host-name-service @var{name}"
msgstr ""

#. type: deffn
#: doc/guix.texi:14460
msgid "Return a service that sets the host name to @var{name}."
msgstr ""

#. type: defvr
#: doc/guix.texi:14462
#, no-wrap
msgid "{Scheme Variable} console-font-service-type"
msgstr ""

#. type: defvr
#: doc/guix.texi:14467
msgid ""
"Install the given fonts on the specified ttys (fonts are per virtual console "
"on the kernel Linux).  The value of this service is a list of tty/font "
"pairs.  The font can be the name of a font provided by the @code{kbd} "
"package or any valid argument to @command{setfont}, as in this example:"
msgstr ""

#. type: lisp
#: doc/guix.texi:14476
#, no-wrap
msgid ""
"`((\"tty1\" . \"LatGrkCyr-8x16\")\n"
"  (\"tty2\" . ,(file-append\n"
"                font-tamzen\n"
"                \"/share/kbd/consolefonts/TamzenForPowerline10x20.psf\"))\n"
"  (\"tty3\" . ,(file-append\n"
"                font-terminus\n"
"                \"/share/consolefonts/ter-132n\"))) ; for HDPI\n"
msgstr ""

#. type: deffn
#: doc/guix.texi:14479
#, no-wrap
msgid "{Scheme Procedure} login-service @var{config}"
msgstr ""

#. type: deffn
#: doc/guix.texi:14483
msgid ""
"Return a service to run login according to @var{config}, a @code{<login-"
"configuration>} object, which specifies the message of the day, among other "
"things."
msgstr ""

#. type: deftp
#: doc/guix.texi:14485
#, no-wrap
msgid "{Data Type} login-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:14487
msgid "This is the data type representing the configuration of login."
msgstr ""

#. type: code{#1}
#: doc/guix.texi:14490
#, no-wrap
msgid "motd"
msgstr ""

#. type: cindex
#: doc/guix.texi:14491
#, no-wrap
msgid "message of the day"
msgstr ""

#. type: table
#: doc/guix.texi:14493
msgid "A file-like object containing the ``message of the day''."
msgstr ""

#. type: item
#: doc/guix.texi:14494 doc/guix.texi:17095
#, no-wrap
msgid "@code{allow-empty-passwords?} (default: @code{#t})"
msgstr ""

#. type: table
#: doc/guix.texi:14497
msgid ""
"Allow empty passwords by default so that first-time users can log in when "
"the 'root' account has just been created."
msgstr ""

#. type: deffn
#: doc/guix.texi:14501
#, no-wrap
msgid "{Scheme Procedure} mingetty-service @var{config}"
msgstr ""

#. type: deffn
#: doc/guix.texi:14505
msgid ""
"Return a service to run mingetty according to @var{config}, a "
"@code{<mingetty-configuration>} object, which specifies the tty to run, "
"among other things."
msgstr ""

#. type: deftp
#: doc/guix.texi:14507
#, no-wrap
msgid "{Data Type} mingetty-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:14510
msgid ""
"This is the data type representing the configuration of Mingetty, which "
"provides the default implementation of virtual console log-in."
msgstr ""

#. type: code{#1}
#: doc/guix.texi:14513 doc/guix.texi:14549 doc/guix.texi:29425
#, no-wrap
msgid "tty"
msgstr ""

#. type: table
#: doc/guix.texi:14515
msgid "The name of the console this Mingetty runs on---e.g., @code{\"tty1\"}."
msgstr ""

#. type: item
#: doc/guix.texi:14516 doc/guix.texi:14578 doc/guix.texi:14737
#, no-wrap
msgid "@code{auto-login} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:14520
msgid ""
"When true, this field must be a string denoting the user name under which "
"the system automatically logs in.  When it is @code{#f}, a user name and "
"password must be entered to log in."
msgstr ""

#. type: item
#: doc/guix.texi:14521
#, no-wrap
msgid "@code{login-program} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:14525
msgid ""
"This must be either @code{#f}, in which case the default log-in program is "
"used (@command{login} from the Shadow tool suite), or a gexp denoting the "
"name of the log-in program."
msgstr ""

#. type: item
#: doc/guix.texi:14526
#, no-wrap
msgid "@code{login-pause?} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:14529
msgid ""
"When set to @code{#t} in conjunction with @var{auto-login}, the user will "
"have to press a key before the log-in shell is launched."
msgstr ""

#. type: item
#: doc/guix.texi:14530
#, no-wrap
msgid "@code{mingetty} (default: @var{mingetty})"
msgstr ""

#. type: table
#: doc/guix.texi:14532
msgid "The Mingetty package to use."
msgstr ""

#. type: deffn
#: doc/guix.texi:14536
#, no-wrap
msgid "{Scheme Procedure} agetty-service @var{config}"
msgstr ""

#. type: deffn
#: doc/guix.texi:14540
msgid ""
"Return a service to run agetty according to @var{config}, an @code{<agetty-"
"configuration>} object, which specifies the tty to run, among other things."
msgstr ""

#. type: deftp
#: doc/guix.texi:14542
#, no-wrap
msgid "{Data Type} agetty-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:14546
msgid ""
"This is the data type representing the configuration of agetty, which "
"implements virtual and serial console log-in.  See the @code{agetty(8)} man "
"page for more information."
msgstr ""

#. type: table
#: doc/guix.texi:14553
msgid ""
"The name of the console this agetty runs on, as a string---e.g., "
"@code{\"ttyS0\"}.  This argument is optional, it will default to a "
"reasonable default serial port used by the kernel Linux."
msgstr ""

#. type: table
#: doc/guix.texi:14557
msgid ""
"For this, if there is a value for an option @code{agetty.tty} in the kernel "
"command line, agetty will extract the device name of the serial port from it "
"and use that."
msgstr ""

#. type: table
#: doc/guix.texi:14561
msgid ""
"If not and if there is a value for an option @code{console} with a tty in "
"the Linux command line, agetty will extract the device name of the serial "
"port from it and use that."
msgstr ""

#. type: table
#: doc/guix.texi:14565
msgid ""
"In both cases, agetty will leave the other serial device settings (baud rate "
"etc.)@: alone---in the hope that Linux pinned them to the correct values."
msgstr ""

#. type: item
#: doc/guix.texi:14566 doc/guix.texi:29566
#, no-wrap
msgid "@code{baud-rate} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:14569
msgid ""
"A string containing a comma-separated list of one or more baud rates, in "
"descending order."
msgstr ""

#. type: item
#: doc/guix.texi:14570
#, no-wrap
msgid "@code{term} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:14573
msgid ""
"A string containing the value used for the @env{TERM} environment variable."
msgstr ""

#. type: item
#: doc/guix.texi:14574
#, no-wrap
msgid "@code{eight-bits?} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:14577
msgid ""
"When @code{#t}, the tty is assumed to be 8-bit clean, and parity detection "
"is disabled."
msgstr ""

#. type: table
#: doc/guix.texi:14581 doc/guix.texi:14740
msgid ""
"When passed a login name, as a string, the specified user will be logged in "
"automatically without prompting for their login name or password."
msgstr ""

#. type: item
#: doc/guix.texi:14582
#, no-wrap
msgid "@code{no-reset?} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:14584
msgid "When @code{#t}, don't reset terminal cflags (control modes)."
msgstr ""

#. type: item
#: doc/guix.texi:14585
#, no-wrap
msgid "@code{host} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:14588
msgid ""
"This accepts a string containing the ``login_host'', which will be written "
"into the @file{/var/run/utmpx} file."
msgstr ""

#. type: item
#: doc/guix.texi:14589
#, no-wrap
msgid "@code{remote?} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:14593
msgid ""
"When set to @code{#t} in conjunction with @var{host}, this will add an "
"@code{-r} fakehost option to the command line of the login program specified "
"in @var{login-program}."
msgstr ""

#. type: item
#: doc/guix.texi:14594
#, no-wrap
msgid "@code{flow-control?} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:14596
msgid "When set to @code{#t}, enable hardware (RTS/CTS) flow control."
msgstr ""

#. type: item
#: doc/guix.texi:14597
#, no-wrap
msgid "@code{no-issue?} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:14600
msgid ""
"When set to @code{#t}, the contents of the @file{/etc/issue} file will not "
"be displayed before presenting the login prompt."
msgstr ""

#. type: item
#: doc/guix.texi:14601
#, no-wrap
msgid "@code{init-string} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:14604
msgid ""
"This accepts a string that will be sent to the tty or modem before sending "
"anything else.  It can be used to initialize a modem."
msgstr ""

#. type: item
#: doc/guix.texi:14605
#, no-wrap
msgid "@code{no-clear?} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:14608
msgid ""
"When set to @code{#t}, agetty will not clear the screen before showing the "
"login prompt."
msgstr ""

#. type: item
#: doc/guix.texi:14609
#, no-wrap
msgid "@code{login-program} (default: (file-append shadow \"/bin/login\"))"
msgstr ""

#. type: table
#: doc/guix.texi:14613
msgid ""
"This must be either a gexp denoting the name of a log-in program, or unset, "
"in which case the default value is the @command{login} from the Shadow tool "
"suite."
msgstr ""

#. type: item
#: doc/guix.texi:14614
#, no-wrap
msgid "@code{local-line} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:14618
msgid ""
"Control the CLOCAL line flag.  This accepts one of three symbols as "
"arguments, @code{'auto}, @code{'always}, or @code{'never}. If @code{#f}, the "
"default value chosen by agetty is @code{'auto}."
msgstr ""

#. type: item
#: doc/guix.texi:14619
#, no-wrap
msgid "@code{extract-baud?} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:14622
msgid ""
"When set to @code{#t}, instruct agetty to try to extract the baud rate from "
"the status messages produced by certain types of modems."
msgstr ""

#. type: item
#: doc/guix.texi:14623
#, no-wrap
msgid "@code{skip-login?} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:14627
msgid ""
"When set to @code{#t}, do not prompt the user for a login name.  This can be "
"used with @var{login-program} field to use non-standard login systems."
msgstr ""

#. type: item
#: doc/guix.texi:14628
#, no-wrap
msgid "@code{no-newline?} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:14631
msgid ""
"When set to @code{#t}, do not print a newline before printing the @file{/etc/"
"issue} file."
msgstr ""

#. type: item
#: doc/guix.texi:14633
#, no-wrap
msgid "@code{login-options} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:14638
msgid ""
"This option accepts a string containing options that are passed to the login "
"program.  When used with the @var{login-program}, be aware that a malicious "
"user could try to enter a login name containing embedded options that could "
"be parsed by the login program."
msgstr ""

#. type: item
#: doc/guix.texi:14639
#, no-wrap
msgid "@code{login-pause} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:14643
msgid ""
"When set to @code{#t}, wait for any key before showing the login prompt.  "
"This can be used in conjunction with @var{auto-login} to save memory by "
"lazily spawning shells."
msgstr ""

#. type: item
#: doc/guix.texi:14644
#, no-wrap
msgid "@code{chroot} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:14647
msgid ""
"Change root to the specified directory.  This option accepts a directory "
"path as a string."
msgstr ""

#. type: item
#: doc/guix.texi:14648
#, no-wrap
msgid "@code{hangup?} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:14651
msgid ""
"Use the Linux system call @code{vhangup} to do a virtual hangup of the "
"specified terminal."
msgstr ""

#. type: item
#: doc/guix.texi:14652
#, no-wrap
msgid "@code{keep-baud?} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:14656
msgid ""
"When set to @code{#t}, try to keep the existing baud rate.  The baud rates "
"from @var{baud-rate} are used when agetty receives a @key{BREAK} character."
msgstr ""

#. type: item
#: doc/guix.texi:14657
#, no-wrap
msgid "@code{timeout} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:14660
msgid ""
"When set to an integer value, terminate if no user name could be read within "
"@var{timeout} seconds."
msgstr ""

#. type: item
#: doc/guix.texi:14661
#, no-wrap
msgid "@code{detect-case?} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:14667
msgid ""
"When set to @code{#t}, turn on support for detecting an uppercase-only "
"terminal.  This setting will detect a login name containing only uppercase "
"letters as indicating an uppercase-only terminal and turn on some upper-to-"
"lower case conversions.  Note that this will not support Unicode characters."
msgstr ""

#. type: item
#: doc/guix.texi:14668
#, no-wrap
msgid "@code{wait-cr?} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:14673
msgid ""
"When set to @code{#t}, wait for the user or modem to send a carriage-return "
"or linefeed character before displaying @file{/etc/issue} or login prompt.  "
"This is typically used with the @var{init-string} option."
msgstr ""

#. type: item
#: doc/guix.texi:14674
#, no-wrap
msgid "@code{no-hints?} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:14677
msgid ""
"When set to @code{#t}, do not print hints about Num, Caps, and Scroll locks."
msgstr ""

#. type: item
#: doc/guix.texi:14678
#, no-wrap
msgid "@code{no-hostname?} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:14681
msgid ""
"By default, the hostname is printed.  When this option is set to @code{#t}, "
"no hostname will be shown at all."
msgstr ""

#. type: item
#: doc/guix.texi:14682
#, no-wrap
msgid "@code{long-hostname?} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:14686
msgid ""
"By default, the hostname is only printed until the first dot.  When this "
"option is set to @code{#t}, the fully qualified hostname by "
"@code{gethostname} or @code{getaddrinfo} is shown."
msgstr ""

#. type: item
#: doc/guix.texi:14687
#, no-wrap
msgid "@code{erase-characters} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:14690
msgid ""
"This option accepts a string of additional characters that should be "
"interpreted as backspace when the user types their login name."
msgstr ""

#. type: item
#: doc/guix.texi:14691
#, no-wrap
msgid "@code{kill-characters} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:14695
msgid ""
"This option accepts a string that should be interpreted to mean ``ignore all "
"previous characters'' (also called a ``kill'' character) when the user types "
"their login name."
msgstr ""

#. type: item
#: doc/guix.texi:14696
#, no-wrap
msgid "@code{chdir} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:14699
msgid ""
"This option accepts, as a string, a directory path that will be changed to "
"before login."
msgstr ""

#. type: item
#: doc/guix.texi:14700
#, no-wrap
msgid "@code{delay} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:14703
msgid ""
"This options accepts, as an integer, the number of seconds to sleep before "
"opening the tty and displaying the login prompt."
msgstr ""

#. type: item
#: doc/guix.texi:14704
#, no-wrap
msgid "@code{nice} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:14707
msgid ""
"This option accepts, as an integer, the nice value with which to run the "
"@command{login} program."
msgstr ""

#. type: item
#: doc/guix.texi:14708 doc/guix.texi:14975 doc/guix.texi:15804
#: doc/guix.texi:23250 doc/guix.texi:25438 doc/guix.texi:26075
#: doc/guix.texi:27782 doc/guix.texi:29896
#, no-wrap
msgid "@code{extra-options} (default: @code{'()})"
msgstr ""

#. type: table
#: doc/guix.texi:14711
msgid ""
"This option provides an ``escape hatch'' for the user to provide arbitrary "
"command-line arguments to @command{agetty} as a list of strings."
msgstr ""

#. type: deffn
#: doc/guix.texi:14715
#, no-wrap
msgid "{Scheme Procedure} kmscon-service-type @var{config}"
msgstr ""

#. type: deffn
#: doc/guix.texi:14719
msgid ""
"Return a service to run @uref{https://www.freedesktop.org/wiki/Software/"
"kmscon,kmscon} according to @var{config}, a @code{<kmscon-configuration>} "
"object, which specifies the tty to run, among other things."
msgstr ""

#. type: deftp
#: doc/guix.texi:14721
#, no-wrap
msgid "{Data Type} kmscon-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:14724
msgid ""
"This is the data type representing the configuration of Kmscon, which "
"implements virtual console log-in."
msgstr ""

#. type: code{#1}
#: doc/guix.texi:14727
#, no-wrap
msgid "virtual-terminal"
msgstr ""

#. type: table
#: doc/guix.texi:14729
msgid "The name of the console this Kmscon runs on---e.g., @code{\"tty1\"}."
msgstr ""

#. type: item
#: doc/guix.texi:14730
#, no-wrap
msgid "@code{login-program} (default: @code{#~(string-append #$shadow \"/bin/login\")})"
msgstr ""

#. type: table
#: doc/guix.texi:14733
msgid ""
"A gexp denoting the name of the log-in program. The default log-in program "
"is @command{login} from the Shadow tool suite."
msgstr ""

#. type: item
#: doc/guix.texi:14734
#, no-wrap
msgid "@code{login-arguments} (default: @code{'(\"-p\")})"
msgstr ""

#. type: table
#: doc/guix.texi:14736
msgid "A list of arguments to pass to @command{login}."
msgstr ""

#. type: item
#: doc/guix.texi:14741
#, no-wrap
msgid "@code{hardware-acceleration?} (default: #f)"
msgstr ""

#. type: table
#: doc/guix.texi:14743
msgid "Whether to use hardware acceleration."
msgstr ""

#. type: item
#: doc/guix.texi:14744
#, no-wrap
msgid "@code{kmscon} (default: @var{kmscon})"
msgstr ""

#. type: table
#: doc/guix.texi:14746
msgid "The Kmscon package to use."
msgstr ""

#. type: cindex
#: doc/guix.texi:14750
#, no-wrap
msgid "name service cache daemon"
msgstr ""

#. type: cindex
#: doc/guix.texi:14751
#, no-wrap
msgid "nscd"
msgstr ""

#. type: deffn
#: doc/guix.texi:14752
#, no-wrap
msgid "{Scheme Procedure} nscd-service [@var{config}] [#:glibc glibc] @"
msgstr ""

#. type: deffn
#: doc/guix.texi:14757
msgid ""
"[#:name-services '()] Return a service that runs the libc name service cache "
"daemon (nscd) with the given @var{config}---an @code{<nscd-configuration>} "
"object.  @xref{Name Service Switch}, for an example."
msgstr ""

#. type: deffn
#: doc/guix.texi:14759
msgid ""
"For convenience, the Shepherd service for nscd provides the following "
"actions:"
msgstr ""

#. type: item
#: doc/guix.texi:14761
#, no-wrap
msgid "invalidate"
msgstr ""

#. type: cindex
#: doc/guix.texi:14762
#, no-wrap
msgid "cache invalidation, nscd"
msgstr ""

#. type: cindex
#: doc/guix.texi:14763
#, no-wrap
msgid "nscd, cache invalidation"
msgstr ""

#. type: table
#: doc/guix.texi:14765
msgid "This invalidate the given cache.  For instance, running:"
msgstr ""

#. type: example
#: doc/guix.texi:14768
#, no-wrap
msgid "herd invalidate nscd hosts\n"
msgstr ""

#. type: table
#: doc/guix.texi:14772
msgid "invalidates the host name lookup cache of nscd."
msgstr ""

#. type: item
#: doc/guix.texi:14773
#, no-wrap
msgid "statistics"
msgstr ""

#. type: table
#: doc/guix.texi:14776
msgid ""
"Running @command{herd statistics nscd} displays information about nscd usage "
"and caches."
msgstr ""

#. type: defvr
#: doc/guix.texi:14780
#, no-wrap
msgid "{Scheme Variable} %nscd-default-configuration"
msgstr ""

#. type: defvr
#: doc/guix.texi:14784
msgid ""
"This is the default @code{<nscd-configuration>} value (see below) used by "
"@code{nscd-service}.  It uses the caches defined by @code{%nscd-default-"
"caches}; see below."
msgstr ""

#. type: deftp
#: doc/guix.texi:14786
#, no-wrap
msgid "{Data Type} nscd-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:14789
msgid ""
"This is the data type representing the name service cache daemon (nscd)  "
"configuration."
msgstr ""

#. type: item
#: doc/guix.texi:14792
#, no-wrap
msgid "@code{name-services} (default: @code{'()})"
msgstr ""

#. type: table
#: doc/guix.texi:14795
msgid ""
"List of packages denoting @dfn{name services} that must be visible to the "
"nscd---e.g., @code{(list @var{nss-mdns})}."
msgstr ""

#. type: item
#: doc/guix.texi:14796
#, no-wrap
msgid "@code{glibc} (default: @var{glibc})"
msgstr ""

#. type: table
#: doc/guix.texi:14799
msgid ""
"Package object denoting the GNU C Library providing the @command{nscd} "
"command."
msgstr ""

#. type: item
#: doc/guix.texi:14800
#, no-wrap
msgid "@code{log-file} (default: @code{\"/var/log/nscd.log\"})"
msgstr ""

#. type: table
#: doc/guix.texi:14803
msgid ""
"Name of the nscd log file.  This is where debugging output goes when "
"@code{debug-level} is strictly positive."
msgstr ""

#. type: item
#: doc/guix.texi:14804
#, no-wrap
msgid "@code{debug-level} (default: @code{0})"
msgstr ""

#. type: table
#: doc/guix.texi:14807
msgid ""
"Integer denoting the debugging levels.  Higher numbers mean that more "
"debugging output is logged."
msgstr ""

#. type: item
#: doc/guix.texi:14808
#, no-wrap
msgid "@code{caches} (default: @code{%nscd-default-caches})"
msgstr ""

#. type: table
#: doc/guix.texi:14811
msgid ""
"List of @code{<nscd-cache>} objects denoting things to be cached; see below."
msgstr ""

#. type: deftp
#: doc/guix.texi:14815
#, no-wrap
msgid "{Data Type} nscd-cache"
msgstr ""

#. type: deftp
#: doc/guix.texi:14817
msgid "Data type representing a cache database of nscd and its parameters."
msgstr ""

#. type: cindex
#: doc/guix.texi:14820 doc/guix.texi:18835
#, no-wrap
msgid "database"
msgstr ""

#. type: table
#: doc/guix.texi:14825
msgid ""
"This is a symbol representing the name of the database to be cached.  Valid "
"values are @code{passwd}, @code{group}, @code{hosts}, and @code{services}, "
"which designate the corresponding NSS database (@pxref{NSS Basics,,, libc, "
"The GNU C Library Reference Manual})."
msgstr ""

#. type: code{#1}
#: doc/guix.texi:14826
#, no-wrap
msgid "positive-time-to-live"
msgstr ""

#. type: itemx
#: doc/guix.texi:14827
#, no-wrap
msgid "@code{negative-time-to-live} (default: @code{20})"
msgstr ""

#. type: table
#: doc/guix.texi:14830
msgid ""
"A number representing the number of seconds during which a positive or "
"negative lookup result remains in cache."
msgstr ""

#. type: item
#: doc/guix.texi:14831
#, no-wrap
msgid "@code{check-files?} (default: @code{#t})"
msgstr ""

#. type: table
#: doc/guix.texi:14834
msgid ""
"Whether to check for updates of the files corresponding to @var{database}."
msgstr ""

#. type: table
#: doc/guix.texi:14838
msgid ""
"For instance, when @var{database} is @code{hosts}, setting this flag "
"instructs nscd to check for updates in @file{/etc/hosts} and to take them "
"into account."
msgstr ""

#. type: item
#: doc/guix.texi:14839
#, no-wrap
msgid "@code{persistent?} (default: @code{#t})"
msgstr ""

#. type: table
#: doc/guix.texi:14841
msgid "Whether the cache should be stored persistently on disk."
msgstr ""

#. type: item
#: doc/guix.texi:14842
#, no-wrap
msgid "@code{shared?} (default: @code{#t})"
msgstr ""

#. type: table
#: doc/guix.texi:14844
msgid "Whether the cache should be shared among users."
msgstr ""

#. type: item
#: doc/guix.texi:14845
#, no-wrap
msgid "@code{max-database-size} (default: 32@tie{}MiB)"
msgstr ""

#. type: table
#: doc/guix.texi:14847
msgid "Maximum size in bytes of the database cache."
msgstr ""

#. type: defvr
#: doc/guix.texi:14854
#, no-wrap
msgid "{Scheme Variable} %nscd-default-caches"
msgstr ""

#. type: defvr
#: doc/guix.texi:14857
msgid ""
"List of @code{<nscd-cache>} objects used by default by @code{nscd-"
"configuration} (see above)."
msgstr ""

#. type: defvr
#: doc/guix.texi:14863
msgid ""
"It enables persistent and aggressive caching of service and host name "
"lookups.  The latter provides better host name lookup performance, "
"resilience in the face of unreliable name servers, and also better privacy---"
"often the result of host name lookups is in local cache, so external name "
"servers do not even need to be queried."
msgstr ""

#. type: anchor{#1}
#: doc/guix.texi:14866
msgid "syslog-configuration-type"
msgstr ""

#. type: cindex
#: doc/guix.texi:14866 doc/guix.texi:14882
#, no-wrap
msgid "syslog"
msgstr ""

#. type: cindex
#: doc/guix.texi:14867 doc/guix.texi:15405
#, no-wrap
msgid "logging"
msgstr ""

#. type: deftp
#: doc/guix.texi:14868
#, no-wrap
msgid "{Data Type} syslog-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:14870
msgid "This data type represents the configuration of the syslog daemon."
msgstr ""

#. type: item
#: doc/guix.texi:14872
#, no-wrap
msgid "@code{syslogd} (default: @code{#~(string-append #$inetutils \"/libexec/syslogd\")})"
msgstr ""

#. type: table
#: doc/guix.texi:14874
msgid "The syslog daemon to use."
msgstr ""

#. type: item
#: doc/guix.texi:14875
#, no-wrap
msgid "@code{config-file} (default: @code{%default-syslog.conf})"
msgstr ""

#. type: table
#: doc/guix.texi:14877
msgid "The syslog configuration file to use."
msgstr ""

#. type: anchor{#1}
#: doc/guix.texi:14882
msgid "syslog-service"
msgstr ""

#. type: deffn
#: doc/guix.texi:14883
#, no-wrap
msgid "{Scheme Procedure} syslog-service @var{config}"
msgstr ""

#. type: deffn
#: doc/guix.texi:14885
msgid "Return a service that runs a syslog daemon according to @var{config}."
msgstr ""

#. type: deffn
#: doc/guix.texi:14888
msgid ""
"@xref{syslogd invocation,,, inetutils, GNU Inetutils}, for more information "
"on the configuration file syntax."
msgstr ""

#. type: defvr
#: doc/guix.texi:14890
#, no-wrap
msgid "{Scheme Variable} guix-service-type"
msgstr ""

#. type: defvr
#: doc/guix.texi:14894
msgid ""
"This is the type of the service that runs the build daemon, @command{guix-"
"daemon} (@pxref{Invoking guix-daemon}).  Its value must be a @code{guix-"
"configuration} record as described below."
msgstr ""

#. type: anchor{#1}
#: doc/guix.texi:14897
msgid "guix-configuration-type"
msgstr ""

#. type: deftp
#: doc/guix.texi:14897
#, no-wrap
msgid "{Data Type} guix-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:14900
msgid ""
"This data type represents the configuration of the Guix build daemon.  "
"@xref{Invoking guix-daemon}, for more information."
msgstr ""

#. type: item
#: doc/guix.texi:14902
#, no-wrap
msgid "@code{guix} (default: @var{guix})"
msgstr ""

#. type: table
#: doc/guix.texi:14904 doc/guix.texi:15174
msgid "The Guix package to use."
msgstr ""

#. type: item
#: doc/guix.texi:14905
#, no-wrap
msgid "@code{build-group} (default: @code{\"guixbuild\"})"
msgstr ""

#. type: table
#: doc/guix.texi:14907
msgid "Name of the group for build user accounts."
msgstr ""

#. type: item
#: doc/guix.texi:14908
#, no-wrap
msgid "@code{build-accounts} (default: @code{10})"
msgstr ""

#. type: table
#: doc/guix.texi:14910
msgid "Number of build user accounts to create."
msgstr ""

#. type: item
#: doc/guix.texi:14911
#, no-wrap
msgid "@code{authorize-key?} (default: @code{#t})"
msgstr ""

#. type: table
#: doc/guix.texi:14916
msgid ""
"Whether to authorize the substitute keys listed in @code{authorized-keys}---"
"by default that of @code{@value{SUBSTITUTE-SERVER}} (@pxref{Substitutes})."
msgstr ""

#. type: table
#: doc/guix.texi:14922
msgid ""
"When @code{authorize-key?} is true, @file{/etc/guix/acl} cannot be changed "
"by invoking @command{guix archive --authorize}.  You must instead adjust "
"@code{guix-configuration} as you wish and reconfigure the system.  This "
"ensures that your operating system configuration file is self-contained."
msgstr ""

#. type: quotation
#: doc/guix.texi:14929
msgid ""
"When booting or reconfiguring to a system where @code{authorize-key?} is "
"true, the existing @file{/etc/guix/acl} file is backed up as @file{/etc/guix/"
"acl.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/acl}."
msgstr ""

#. type: vindex
#: doc/guix.texi:14931
#, no-wrap
msgid "%default-authorized-guix-keys"
msgstr ""

#. type: item
#: doc/guix.texi:14932
#, no-wrap
msgid "@code{authorized-keys} (default: @code{%default-authorized-guix-keys})"
msgstr ""

#. type: table
#: doc/guix.texi:14937
msgid ""
"The list of authorized key files for archive imports, as a list of string-"
"valued gexps (@pxref{Invoking guix archive}).  By default, it contains that "
"of @code{@value{SUBSTITUTE-SERVER}} (@pxref{Substitutes}).  See "
"@code{substitute-urls} below for an example on how to change it."
msgstr ""

#. type: item
#: doc/guix.texi:14938
#, no-wrap
msgid "@code{use-substitutes?} (default: @code{#t})"
msgstr ""

#. type: table
#: doc/guix.texi:14940
msgid "Whether to use substitutes."
msgstr ""

#. type: item
#: doc/guix.texi:14941
#, no-wrap
msgid "@code{substitute-urls} (default: @code{%default-substitute-urls})"
msgstr ""

#. type: table
#: doc/guix.texi:14943
msgid "The list of URLs where to look for substitutes by default."
msgstr ""

#. type: table
#: doc/guix.texi:14950
msgid ""
"Suppose you would like to fetch substitutes from @code{guix.example.org} in "
"addition to @code{@value{SUBSTITUTE-SERVER}}.  You will need to do two "
"things: (1) add @code{guix.example.org} to @code{substitute-urls}, and (2) "
"authorize its signing key, having done appropriate checks (@pxref{Substitute "
"Server Authorization}).  The configuration below does exactly that:"
msgstr ""

#. type: lisp
#: doc/guix.texi:14959
#, no-wrap
msgid ""
"(guix-configuration\n"
"  (substitute-urls\n"
"   (append (list \"https://guix.example.org\")\n"
"           %default-substitute-urls))\n"
"  (authorized-keys\n"
"   (append (list (local-file \"./guix.example.org-key.pub\"))\n"
"           %default-authorized-guix-keys)))\n"
msgstr ""

#. type: table
#: doc/guix.texi:14964
msgid ""
"This example assumes that the file @file{./guix.example.org-key.pub} "
"contains the public key that @code{guix.example.org} uses to sign "
"substitutes."
msgstr ""

#. type: item
#: doc/guix.texi:14965
#, no-wrap
msgid "@code{max-silent-time} (default: @code{0})"
msgstr ""

#. type: itemx
#: doc/guix.texi:14966
#, no-wrap
msgid "@code{timeout} (default: @code{0})"
msgstr ""

#. type: table
#: doc/guix.texi:14970
msgid ""
"The number of seconds of silence and the number of seconds of activity, "
"respectively, after which a build process times out.  A value of zero "
"disables the timeout."
msgstr ""

#. type: item
#: doc/guix.texi:14971
#, no-wrap
msgid "@code{log-compression} (default: @code{'bzip2})"
msgstr ""

#. type: table
#: doc/guix.texi:14974
msgid ""
"The type of compression used for build logs---one of @code{gzip}, "
"@code{bzip2}, or @code{none}."
msgstr ""

#. type: table
#: doc/guix.texi:14977
msgid "List of extra command-line options for @command{guix-daemon}."
msgstr ""

#. type: item
#: doc/guix.texi:14978
#, no-wrap
msgid "@code{log-file} (default: @code{\"/var/log/guix-daemon.log\"})"
msgstr ""

#. type: table
#: doc/guix.texi:14981
msgid ""
"File where @command{guix-daemon}'s standard output and standard error are "
"written."
msgstr ""

#. type: cindex
#: doc/guix.texi:14982
#, no-wrap
msgid "HTTP proxy, for @code{guix-daemon}"
msgstr ""

#. type: cindex
#: doc/guix.texi:14983
#, no-wrap
msgid "proxy, for @code{guix-daemon} HTTP access"
msgstr ""

#. type: item
#: doc/guix.texi:14984
#, no-wrap
msgid "@code{http-proxy} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:14987
msgid ""
"The URL of the HTTP and HTTPS proxy used for downloading fixed-output "
"derivations and substitutes."
msgstr ""

#. type: table
#: doc/guix.texi:14990
msgid ""
"It is also possible to change the daemon's proxy at run time through the "
"@code{set-http-proxy} action, which restarts it:"
msgstr ""

#. type: example
#: doc/guix.texi:14993
#, no-wrap
msgid "herd set-http-proxy guix-daemon http://localhost:8118\n"
msgstr ""

#. type: table
#: doc/guix.texi:14996
msgid "To clear the proxy settings, run:"
msgstr ""

#. type: example
#: doc/guix.texi:14999
#, no-wrap
msgid "herd set-http-proxy guix-daemon\n"
msgstr ""

#. type: item
#: doc/guix.texi:15001
#, no-wrap
msgid "@code{tmpdir} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:15003
msgid "A directory path where the @command{guix-daemon} will perform builds."
msgstr ""

#. type: deffn
#: doc/guix.texi:15007
#, no-wrap
msgid "{Scheme Procedure} udev-service [#:udev @var{eudev} #:rules @code{'()}]"
msgstr ""

#. type: deffn
#: doc/guix.texi:15013
msgid ""
"Run @var{udev}, which populates the @file{/dev} directory dynamically.  udev "
"rules can be provided as a list of files through the @var{rules} variable.  "
"The procedures @code{udev-rule}, @code{udev-rules-service} and @code{file-"
">udev-rule} from @code{(gnu services base)} simplify the creation of such "
"rule files."
msgstr ""

#. type: deffn
#: doc/guix.texi:15016
msgid ""
"The @command{herd rules udev} command, as root, returns the name of the "
"directory containing all the active udev rules."
msgstr ""

#. type: deffn
#: doc/guix.texi:15018
#, no-wrap
msgid "{Scheme Procedure} udev-rule [@var{file-name} @var{contents}]"
msgstr ""

#. type: deffn
#: doc/guix.texi:15021
msgid ""
"Return a udev-rule file named @var{file-name} containing the rules defined "
"by the @var{contents} literal."
msgstr ""

#. type: deffn
#: doc/guix.texi:15025
msgid ""
"In the following example, a rule for a USB device is defined to be stored in "
"the file @file{90-usb-thing.rules}.  The rule runs a script upon detecting a "
"USB device with a given product identifier."
msgstr ""

#. type: lisp
#: doc/guix.texi:15033
#, no-wrap
msgid ""
"(define %example-udev-rule\n"
"  (udev-rule\n"
"    \"90-usb-thing.rules\"\n"
"    (string-append \"ACTION==\\\"add\\\", SUBSYSTEM==\\\"usb\\\", \"\n"
"                   \"ATTR@{product@}==\\\"Example\\\", \"\n"
"                   \"RUN+=\\\"/path/to/script\\\"\")))\n"
msgstr ""

#. type: deffn
#: doc/guix.texi:15036
#, no-wrap
msgid "{Scheme Procedure} udev-rules-service [@var{name} @var{rules}] @"
msgstr ""

#. type: deffn
#: doc/guix.texi:15043
msgid ""
"[#:groups @var{groups}] Return a service that extends @code{udev-service-"
"type } with @var{rules} and @code{account-service-type} with @var{groups} as "
"system groups.  This works by creating a singleton service type "
"@code{@var{name}-udev-rules}, of which the returned service is an instance."
msgstr ""

#. type: deffn
#: doc/guix.texi:15046
msgid ""
"Here we show how it can be used to extend @code{udev-service-type} with the "
"previously defined rule @code{%example-udev-rule}."
msgstr ""

#. type: lisp
#: doc/guix.texi:15053
#, no-wrap
msgid ""
"(operating-system\n"
" ;; @dots{}\n"
" (services\n"
"   (cons (udev-rules-service 'usb-thing %example-udev-rule)\n"
"         %desktop-services)))\n"
msgstr ""

#. type: deffn
#: doc/guix.texi:15056
#, no-wrap
msgid "{Scheme Procedure} file->udev-rule [@var{file-name} @var{file}]"
msgstr ""

#. type: deffn
#: doc/guix.texi:15059
msgid ""
"Return a udev file named @var{file-name} containing the rules defined within "
"@var{file}, a file-like object."
msgstr ""

#. type: deffn
#: doc/guix.texi:15061
msgid "The following example showcases how we can use an existing rule file."
msgstr ""

#. type: lisp
#: doc/guix.texi:15066
#, no-wrap
msgid ""
"(use-modules (guix download)     ;for url-fetch\n"
"             (guix packages)     ;for origin\n"
"             @dots{})\n"
"\n"
msgstr ""

#. type: lisp
#: doc/guix.texi:15077
#, no-wrap
msgid ""
"(define %android-udev-rules\n"
"  (file->udev-rule\n"
"    \"51-android-udev.rules\"\n"
"    (let ((version \"20170910\"))\n"
"      (origin\n"
"       (method url-fetch)\n"
"       (uri (string-append \"https://raw.githubusercontent.com/M0Rf30/\"\n"
"                           \"android-udev-rules/\" version \"/51-android.rules\"))\n"
"       (sha256\n"
"        (base32 \"0lmmagpyb6xsq6zcr2w1cyx9qmjqmajkvrdbhjx32gqf1d9is003\"))))))\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:15086
msgid ""
"Additionally, Guix package definitions can be included in @var{rules} in "
"order to extend the udev rules with the definitions found under their "
"@file{lib/udev/rules.d} sub-directory.  In lieu of the previous @var{file-"
">udev-rule} example, we could have used the @var{android-udev-rules} package "
"which exists in Guix in the @code{(gnu packages android)} module."
msgstr ""

#. type: Plain text
#: doc/guix.texi:15095
msgid ""
"The following example shows how to use the @var{android-udev-rules} package "
"so that the Android tool @command{adb} can detect devices without root "
"privileges.  It also details how to create the @code{adbusers} group, which "
"is required for the proper functioning of the rules defined within the "
"@code{android-udev-rules} package.  To create such a group, we must define "
"it both as part of the @code{supplementary-groups} of our @code{user-"
"account} declaration, as well as in the @var{groups} of the @code{udev-rules-"
"service} procedure."
msgstr ""

#. type: lisp
#: doc/guix.texi:15100
#, no-wrap
msgid ""
"(use-modules (gnu packages android)  ;for android-udev-rules\n"
"             (gnu system shadow)     ;for user-group\n"
"             @dots{})\n"
"\n"
msgstr ""

#. type: lisp
#: doc/guix.texi:15113
#, no-wrap
msgid ""
"(operating-system\n"
"  ;; @dots{}\n"
"  (users (cons (user-account\n"
"                ;; @dots{}\n"
"                (supplementary-groups\n"
"                 '(\"adbusers\"   ;for adb\n"
"                   \"wheel\" \"netdev\" \"audio\" \"video\")))))\n"
"  ;; @dots{}\n"
"  (services\n"
"    (cons (udev-rules-service 'android android-udev-rules\n"
"                              #:groups '(\"adbusers\"))\n"
"          %desktop-services)))\n"
msgstr ""

#. type: defvr
#: doc/guix.texi:15115
#, no-wrap
msgid "{Scheme Variable} urandom-seed-service-type"
msgstr ""

#. type: defvr
#: doc/guix.texi:15120
msgid ""
"Save some entropy in @code{%random-seed-file} to seed @file{/dev/urandom} "
"when rebooting.  It also tries to seed @file{/dev/urandom} from @file{/dev/"
"hwrng} while booting, if @file{/dev/hwrng} exists and is readable."
msgstr ""

#. type: defvr
#: doc/guix.texi:15122
#, no-wrap
msgid "{Scheme Variable} %random-seed-file"
msgstr ""

#. type: defvr
#: doc/guix.texi:15126
msgid ""
"This is the name of the file where some random bytes are saved by "
"@var{urandom-seed-service} to seed @file{/dev/urandom} when rebooting.  It "
"defaults to @file{/var/lib/random-seed}."
msgstr ""

#. type: cindex
#: doc/guix.texi:15128
#, no-wrap
msgid "mouse"
msgstr ""

#. type: cindex
#: doc/guix.texi:15129
#, no-wrap
msgid "gpm"
msgstr ""

#. type: defvr
#: doc/guix.texi:15130
#, no-wrap
msgid "{Scheme Variable} gpm-service-type"
msgstr ""

#. type: defvr
#: doc/guix.texi:15135
msgid ""
"This is the type of the service that runs GPM, the @dfn{general-purpose "
"mouse daemon}, which provides mouse support to the Linux console.  GPM "
"allows users to use the mouse in the console, notably to select, copy, and "
"paste text."
msgstr ""

#. type: defvr
#: doc/guix.texi:15138
msgid ""
"The value for services of this type must be a @code{gpm-configuration} (see "
"below).  This service is not part of @code{%base-services}."
msgstr ""

#. type: deftp
#: doc/guix.texi:15140
#, no-wrap
msgid "{Data Type} gpm-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:15142
msgid "Data type representing the configuration of GPM."
msgstr ""

#. type: item
#: doc/guix.texi:15144
#, no-wrap
msgid "@code{options} (default: @code{%default-gpm-options})"
msgstr ""

#. type: table
#: doc/guix.texi:15149
msgid ""
"Command-line options passed to @command{gpm}.  The default set of options "
"instruct @command{gpm} to listen to mouse events on @file{/dev/input/mice}.  "
"@xref{Command Line,,, gpm, gpm manual}, for more information."
msgstr ""

#. type: item
#: doc/guix.texi:15150
#, no-wrap
msgid "@code{gpm} (default: @code{gpm})"
msgstr ""

#. type: table
#: doc/guix.texi:15152
msgid "The GPM package to use."
msgstr ""

#. type: anchor{#1}
#: doc/guix.texi:15157
msgid "guix-publish-service-type"
msgstr ""

#. type: deffn
#: doc/guix.texi:15157
#, no-wrap
msgid "{Scheme Variable} guix-publish-service-type"
msgstr ""

#. type: deffn
#: doc/guix.texi:15161
msgid ""
"This is the service type for @command{guix publish} (@pxref{Invoking guix "
"publish}).  Its value must be a @code{guix-publish-configuration} object, as "
"described below."
msgstr ""

#. type: deffn
#: doc/guix.texi:15165
msgid ""
"This assumes that @file{/etc/guix} already contains a signing key pair as "
"created by @command{guix archive --generate-key} (@pxref{Invoking guix "
"archive}).  If that is not the case, the service will fail to start."
msgstr ""

#. type: deftp
#: doc/guix.texi:15167
#, no-wrap
msgid "{Data Type} guix-publish-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:15170
msgid ""
"Data type representing the configuration of the @code{guix publish} service."
msgstr ""

#. type: item
#: doc/guix.texi:15172
#, no-wrap
msgid "@code{guix} (default: @code{guix})"
msgstr ""

#. type: item
#: doc/guix.texi:15175 doc/guix.texi:27637
#, no-wrap
msgid "@code{port} (default: @code{80})"
msgstr ""

#. type: table
#: doc/guix.texi:15177
msgid "The TCP port to listen for connections."
msgstr ""

#. type: item
#: doc/guix.texi:15178 doc/guix.texi:25416
#, no-wrap
msgid "@code{host} (default: @code{\"localhost\"})"
msgstr ""

#. type: table
#: doc/guix.texi:15181
msgid ""
"The host (and thus, network interface) to listen to.  Use @code{\"0.0.0.0\"} "
"to listen on all the network interfaces."
msgstr ""

#. type: item
#: doc/guix.texi:15182
#, no-wrap
msgid "@code{compression} (default: @code{'((\"gzip\" 3))})"
msgstr ""

#. type: table
#: doc/guix.texi:15186
msgid ""
"This is a list of compression method/level tuple used when compressing "
"substitutes.  For example, to compress all substitutes with @emph{both} lzip "
"at level 7 and gzip at level 9, write:"
msgstr ""

#. type: lisp
#: doc/guix.texi:15189
#, no-wrap
msgid "'((\"lzip\" 7) (\"gzip\" 9))\n"
msgstr ""

#. type: table
#: doc/guix.texi:15193
msgid ""
"Level 9 achieves the best compression ratio at the expense of increased CPU "
"usage, whereas level 1 achieves fast compression."
msgstr ""

#. type: table
#: doc/guix.texi:15195
msgid "An empty list disables compression altogether."
msgstr ""

#. type: item
#: doc/guix.texi:15196
#, no-wrap
msgid "@code{nar-path} (default: @code{\"nar\"})"
msgstr ""

#. type: table
#: doc/guix.texi:15199
msgid ""
"The URL path at which ``nars'' can be fetched.  @xref{Invoking guix publish, "
"@option{--nar-path}}, for details."
msgstr ""

#. type: item
#: doc/guix.texi:15200
#, no-wrap
msgid "@code{cache} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:15206
msgid ""
"When it is @code{#f}, disable caching and instead generate archives on "
"demand.  Otherwise, this should be the name of a directory---e.g., @code{\"/"
"var/cache/guix/publish\"}---where @command{guix publish} caches archives and "
"meta-data ready to be sent.  @xref{Invoking guix publish, @option{--cache}}, "
"for more information on the tradeoffs involved."
msgstr ""

#. type: item
#: doc/guix.texi:15207
#, no-wrap
msgid "@code{workers} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:15211
msgid ""
"When it is an integer, this is the number of worker threads used for "
"caching; when @code{#f}, the number of processors is used.  @xref{Invoking "
"guix publish, @option{--workers}}, for more information."
msgstr ""

#. type: item
#: doc/guix.texi:15212
#, no-wrap
msgid "@code{cache-bypass-threshold} (default: 10 MiB)"
msgstr ""

#. type: table
#: doc/guix.texi:15217
msgid ""
"When @code{cache} is true, this is the maximum size in bytes of a store item "
"for which @command{guix publish} may bypass its cache in case of a cache "
"miss.  @xref{Invoking guix publish, @option{--cache-bypass-threshold}}, for "
"more information."
msgstr ""

#. type: item
#: doc/guix.texi:15218
#, no-wrap
msgid "@code{ttl} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:15222
msgid ""
"When it is an integer, this denotes the @dfn{time-to-live} in seconds of the "
"published archives.  @xref{Invoking guix publish, @option{--ttl}}, for more "
"information."
msgstr ""

#. type: anchor{#1}
#: doc/guix.texi:15226
msgid "rngd-service"
msgstr ""

#. type: deffn
#: doc/guix.texi:15226
#, no-wrap
msgid "{Scheme Procedure} rngd-service [#:rng-tools @var{rng-tools}] @"
msgstr ""

#. type: deffn
#: doc/guix.texi:15231
msgid ""
"[#:device \"/dev/hwrng\"] Return a service that runs the @command{rngd} "
"program from @var{rng-tools} to add @var{device} to the kernel's entropy "
"pool.  The service will fail if @var{device} does not exist."
msgstr ""

#. type: anchor{#1}
#: doc/guix.texi:15234
msgid "pam-limits-service"
msgstr ""

#. type: cindex
#: doc/guix.texi:15234
#, no-wrap
msgid "session limits"
msgstr ""

#. type: cindex
#: doc/guix.texi:15235
#, no-wrap
msgid "ulimit"
msgstr ""

#. type: cindex
#: doc/guix.texi:15236
#, no-wrap
msgid "priority"
msgstr ""

#. type: cindex
#: doc/guix.texi:15237
#, no-wrap
msgid "realtime"
msgstr ""

#. type: cindex
#: doc/guix.texi:15238
#, no-wrap
msgid "jackd"
msgstr ""

#. type: deffn
#: doc/guix.texi:15239
#, no-wrap
msgid "{Scheme Procedure} pam-limits-service [#:limits @code{'()}]"
msgstr ""

#. type: deffn
#: doc/guix.texi:15246
msgid ""
"Return a service that installs a configuration file for the @uref{http://"
"linux-pam.org/Linux-PAM-html/sag-pam_limits.html, @code{pam_limits} "
"module}.  The procedure optionally takes a list of @code{pam-limits-entry} "
"values, which can be used to specify @code{ulimit} limits and nice priority "
"limits to user sessions."
msgstr ""

#. type: deffn
#: doc/guix.texi:15249
msgid ""
"The following limits definition sets two hard and soft limits for all login "
"sessions of users in the @code{realtime} group:"
msgstr ""

#. type: lisp
#: doc/guix.texi:15255
#, no-wrap
msgid ""
"(pam-limits-service\n"
" (list\n"
"  (pam-limits-entry \"@@realtime\" 'both 'rtprio 99)\n"
"  (pam-limits-entry \"@@realtime\" 'both 'memlock 'unlimited)))\n"
msgstr ""

#. type: deffn
#: doc/guix.texi:15261
msgid ""
"The first entry increases the maximum realtime priority for non-privileged "
"processes; the second entry lifts any restriction of the maximum address "
"space that can be locked in memory.  These settings are commonly used for "
"real-time audio systems."
msgstr ""

#. type: cindex
#: doc/guix.texi:15266
#, no-wrap
msgid "cron"
msgstr ""

#. type: cindex
#: doc/guix.texi:15267
#, no-wrap
msgid "mcron"
msgstr ""

#. type: cindex
#: doc/guix.texi:15268
#, no-wrap
msgid "scheduling jobs"
msgstr ""

#. type: Plain text
#: doc/guix.texi:15275
msgid ""
"The @code{(gnu services mcron)} module provides an interface to GNU@tie{}"
"mcron, a daemon to run jobs at scheduled times (@pxref{Top,,, mcron, "
"GNU@tie{}mcron}).  GNU@tie{}mcron is similar to the traditional Unix "
"@command{cron} daemon; the main difference is that it is implemented in "
"Guile Scheme, which provides a lot of flexibility when specifying the "
"scheduling of jobs and their actions."
msgstr ""

#. type: Plain text
#: doc/guix.texi:15283
msgid ""
"The example below defines an operating system that runs the "
"@command{updatedb} (@pxref{Invoking updatedb,,, find, Finding Files})  and "
"the @command{guix gc} commands (@pxref{Invoking guix gc}) daily, as well as "
"the @command{mkid} command on behalf of an unprivileged user (@pxref{mkid "
"invocation,,, idutils, ID Database Utilities}).  It uses gexps to introduce "
"job definitions that are passed to mcron (@pxref{G-Expressions})."
msgstr ""

#. type: lisp
#: doc/guix.texi:15287
#, no-wrap
msgid ""
"(use-modules (guix) (gnu) (gnu services mcron))\n"
"(use-package-modules base idutils)\n"
"\n"
msgstr ""

#. type: lisp
#: doc/guix.texi:15296
#, no-wrap
msgid ""
"(define updatedb-job\n"
"  ;; Run 'updatedb' at 3AM every day.  Here we write the\n"
"  ;; job's action as a Scheme procedure.\n"
"  #~(job '(next-hour '(3))\n"
"         (lambda ()\n"
"           (execl (string-append #$findutils \"/bin/updatedb\")\n"
"                  \"updatedb\"\n"
"                  \"--prunepaths=/tmp /var/tmp /gnu/store\"))))\n"
"\n"
msgstr ""

#. type: lisp
#: doc/guix.texi:15302
#, no-wrap
msgid ""
"(define garbage-collector-job\n"
"  ;; Collect garbage 5 minutes after midnight every day.\n"
"  ;; The job's action is a shell command.\n"
"  #~(job \"5 0 * * *\"            ;Vixie cron syntax\n"
"         \"guix gc -F 1G\"))\n"
"\n"
msgstr ""

#. type: lisp
#: doc/guix.texi:15309
#, no-wrap
msgid ""
"(define idutils-job\n"
"  ;; Update the index database as user \"charlie\" at 12:15PM\n"
"  ;; and 19:15PM.  This runs from the user's home directory.\n"
"  #~(job '(next-minute-from (next-hour '(12 19)) '(15))\n"
"         (string-append #$idutils \"/bin/mkid src\")\n"
"         #:user \"charlie\"))\n"
"\n"
msgstr ""

#. type: lisp
#: doc/guix.texi:15318
#, no-wrap
msgid ""
"(operating-system\n"
"  ;; @dots{}\n"
"  (services (cons (service mcron-service-type\n"
"                           (mcron-configuration\n"
"                            (jobs (list garbage-collector-job\n"
"                                        updatedb-job\n"
"                                        idutils-job))))\n"
"                  %base-services)))\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:15325
msgid ""
"For more complex jobs defined in Scheme where you need control over the top "
"level, for instance to introduce a @code{use-modules} form, you can move "
"your code to a separate program using the @code{program-file} procedure of "
"the @code{(guix gexp)} module (@pxref{G-Expressions}).  The example below "
"illustrates that."
msgstr ""

#. type: lisp
#: doc/guix.texi:15341
#, no-wrap
msgid ""
"(define %battery-alert-job\n"
"  ;; Beep when the battery percentage falls below %MIN-LEVEL.\n"
"  #~(job\n"
"     '(next-minute (range 0 60 1))\n"
"     #$(program-file\n"
"        \"battery-alert.scm\"\n"
"        (with-imported-modules (source-module-closure\n"
"                                '((guix build utils)))\n"
"          #~(begin\n"
"              (use-modules (guix build utils)\n"
"                           (ice-9 popen)\n"
"                           (ice-9 regex)\n"
"                           (ice-9 textual-ports)\n"
"                           (srfi srfi-2))\n"
"\n"
msgstr ""

#. type: lisp
#: doc/guix.texi:15343
#, no-wrap
msgid ""
"              (define %min-level 20)\n"
"\n"
msgstr ""

#. type: lisp
#: doc/guix.texi:15354
#, no-wrap
msgid ""
"              (setenv \"LC_ALL\" \"C\")     ;ensure English output\n"
"              (and-let* ((input-pipe (open-pipe*\n"
"                                      OPEN_READ\n"
"                                      #$(file-append acpi \"/bin/acpi\")))\n"
"                         (output (get-string-all input-pipe))\n"
"                         (m (string-match \"Discharging, ([0-9]+)%\" output))\n"
"                         (level (string->number (match:substring m 1)))\n"
"                         ((< level %min-level)))\n"
"                (format #t \"warning: Battery level is low (~a%)~%\" level)\n"
"                (invoke #$(file-append beep \"/bin/beep\") \"-r5\")))))))\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:15359
msgid ""
"@xref{Guile Syntax, mcron job specifications,, mcron, GNU@tie{}mcron}, for "
"more information on mcron job specifications.  Below is the reference of the "
"mcron service."
msgstr ""

#. type: Plain text
#: doc/guix.texi:15362
msgid ""
"On a running system, you can use the @code{schedule} action of the service "
"to visualize the mcron jobs that will be executed next:"
msgstr ""

#. type: example
#: doc/guix.texi:15365
#, no-wrap
msgid "# herd schedule mcron\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:15370
msgid ""
"The example above lists the next five tasks that will be executed, but you "
"can also specify the number of tasks to display:"
msgstr ""

#. type: example
#: doc/guix.texi:15373
#, no-wrap
msgid "# herd schedule mcron 10\n"
msgstr ""

#. type: defvr
#: doc/guix.texi:15375
#, no-wrap
msgid "{Scheme Variable} mcron-service-type"
msgstr ""

#. type: defvr
#: doc/guix.texi:15378
msgid ""
"This is the type of the @code{mcron} service, whose value is an @code{mcron-"
"configuration} object."
msgstr ""

#. type: defvr
#: doc/guix.texi:15383
msgid ""
"This service type can be the target of a service extension that provides it "
"additional job specifications (@pxref{Service Composition}).  In other "
"words, it is possible to define services that provide additional mcron jobs "
"to run."
msgstr ""

#. type: deftp
#: doc/guix.texi:15385
#, no-wrap
msgid "{Data Type} mcron-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:15387
msgid "Data type representing the configuration of mcron."
msgstr ""

#. type: item
#: doc/guix.texi:15389
#, no-wrap
msgid "@code{mcron} (default: @var{mcron})"
msgstr ""

#. type: table
#: doc/guix.texi:15391
msgid "The mcron package to use."
msgstr ""

#. type: code{#1}
#: doc/guix.texi:15392 doc/guix.texi:15461
#, no-wrap
msgid "jobs"
msgstr ""

#. type: table
#: doc/guix.texi:15396
msgid ""
"This is a list of gexps (@pxref{G-Expressions}), where each gexp corresponds "
"to an mcron job specification (@pxref{Syntax, mcron job specifications,, "
"mcron, GNU@tie{}mcron})."
msgstr ""

#. type: cindex
#: doc/guix.texi:15403
#, no-wrap
msgid "rottlog"
msgstr ""

#. type: cindex
#: doc/guix.texi:15404
#, no-wrap
msgid "log rotation"
msgstr ""

#. type: Plain text
#: doc/guix.texi:15411
msgid ""
"Log files such as those found in @file{/var/log} tend to grow endlessly, so "
"it's a good idea to @dfn{rotate} them once in a while---i.e., archive their "
"contents in separate files, possibly compressed.  The @code{(gnu services "
"admin)} module provides an interface to GNU@tie{}Rot[t]log, a log rotation "
"tool (@pxref{Top,,, rottlog, GNU Rot[t]log Manual})."
msgstr ""

#. type: Plain text
#: doc/guix.texi:15417
msgid ""
"This service is part of @code{%base-services}, and thus enabled by default, "
"with the default settings, for commonly encountered log files.  The example "
"below shows how to extend it with an additional @dfn{rotation}, should you "
"need to do that (usually, services that produce log files already take care "
"of that):"
msgstr ""

#. type: lisp
#: doc/guix.texi:15421
#, no-wrap
msgid ""
"(use-modules (guix) (gnu))\n"
"(use-service-modules admin)\n"
"\n"
msgstr ""

#. type: lisp
#: doc/guix.texi:15425
#, no-wrap
msgid ""
"(define my-log-files\n"
"  ;; Log files that I want to rotate.\n"
"  '(\"/var/log/something.log\" \"/var/log/another.log\"))\n"
"\n"
msgstr ""

#. type: lisp
#: doc/guix.texi:15434
#, no-wrap
msgid ""
"(operating-system\n"
"  ;; @dots{}\n"
"  (services (cons (simple-service 'rotate-my-stuff\n"
"                                  rottlog-service-type\n"
"                                  (list (log-rotation\n"
"                                         (frequency 'daily)\n"
"                                         (files my-log-files))))\n"
"                  %base-services)))\n"
msgstr ""

#. type: defvr
#: doc/guix.texi:15436
#, no-wrap
msgid "{Scheme Variable} rottlog-service-type"
msgstr ""

#. type: defvr
#: doc/guix.texi:15439
msgid ""
"This is the type of the Rottlog service, whose value is a @code{rottlog-"
"configuration} object."
msgstr ""

#. type: defvr
#: doc/guix.texi:15442
msgid ""
"Other services can extend this one with new @code{log-rotation} objects (see "
"below), thereby augmenting the set of files to be rotated."
msgstr ""

#. type: defvr
#: doc/guix.texi:15445
msgid ""
"This service type can define mcron jobs (@pxref{Scheduled Job Execution}) to "
"run the rottlog service."
msgstr ""

#. type: deftp
#: doc/guix.texi:15447
#, no-wrap
msgid "{Data Type} rottlog-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:15449
msgid "Data type representing the configuration of rottlog."
msgstr ""

#. type: item
#: doc/guix.texi:15451
#, no-wrap
msgid "@code{rottlog} (default: @code{rottlog})"
msgstr ""

#. type: table
#: doc/guix.texi:15453
msgid "The Rottlog package to use."
msgstr ""

#. type: item
#: doc/guix.texi:15454
#, no-wrap
msgid "@code{rc-file} (default: @code{(file-append rottlog \"/etc/rc\")})"
msgstr ""

#. type: table
#: doc/guix.texi:15457
msgid ""
"The Rottlog configuration file to use (@pxref{Mandatory RC Variables,,, "
"rottlog, GNU Rot[t]log Manual})."
msgstr ""

#. type: item
#: doc/guix.texi:15458
#, no-wrap
msgid "@code{rotations} (default: @code{%default-rotations})"
msgstr ""

#. type: table
#: doc/guix.texi:15460
msgid "A list of @code{log-rotation} objects as defined below."
msgstr ""

#. type: table
#: doc/guix.texi:15464
msgid ""
"This is a list of gexps where each gexp corresponds to an mcron job "
"specification (@pxref{Scheduled Job Execution})."
msgstr ""

#. type: deftp
#: doc/guix.texi:15467
#, no-wrap
msgid "{Data Type} log-rotation"
msgstr ""

#. type: deftp
#: doc/guix.texi:15469
msgid "Data type representing the rotation of a group of log files."
msgstr ""

#. type: deftp
#: doc/guix.texi:15473
msgid ""
"Taking an example from the Rottlog manual (@pxref{Period Related File "
"Examples,,, rottlog, GNU Rot[t]log Manual}), a log rotation might be defined "
"like this:"
msgstr ""

#. type: lisp
#: doc/guix.texi:15482
#, no-wrap
msgid ""
"(log-rotation\n"
"  (frequency 'daily)\n"
"  (files '(\"/var/log/apache/*\"))\n"
"  (options '(\"storedir apache-archives\"\n"
"             \"rotate 6\"\n"
"             \"notifempty\"\n"
"             \"nocompress\")))\n"
msgstr ""

#. type: deftp
#: doc/guix.texi:15485
msgid "The list of fields is as follows:"
msgstr ""

#. type: item
#: doc/guix.texi:15487
#, no-wrap
msgid "@code{frequency} (default: @code{'weekly})"
msgstr ""

#. type: table
#: doc/guix.texi:15489
msgid "The log rotation frequency, a symbol."
msgstr ""

#. type: code{#1}
#: doc/guix.texi:15490
#, no-wrap
msgid "files"
msgstr ""

#. type: table
#: doc/guix.texi:15492
msgid "The list of files or file glob patterns to rotate."
msgstr ""

#. type: item
#: doc/guix.texi:15493
#, no-wrap
msgid "@code{options} (default: @code{'()})"
msgstr ""

#. type: table
#: doc/guix.texi:15496
msgid ""
"The list of rottlog options for this rotation (@pxref{Configuration "
"parameters,,, rottlog, GNU Rot[t]lg Manual})."
msgstr ""

#. type: item
#: doc/guix.texi:15497
#, no-wrap
msgid "@code{post-rotate} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:15499
msgid "Either @code{#f} or a gexp to execute once the rotation has completed."
msgstr ""

#. type: defvr
#: doc/guix.texi:15502
#, no-wrap
msgid "{Scheme Variable} %default-rotations"
msgstr ""

#. type: defvr
#: doc/guix.texi:15505
msgid ""
"Specifies weekly rotation of @code{%rotated-files} and of @file{/var/log/"
"guix-daemon.log}."
msgstr ""

#. type: defvr
#: doc/guix.texi:15507
#, no-wrap
msgid "{Scheme Variable} %rotated-files"
msgstr ""

#. type: defvr
#: doc/guix.texi:15511
msgid ""
"The list of syslog-controlled files to be rotated.  By default it is: "
"@code{'(\"/var/log/messages\" \"/var/log/secure\" \"/var/log/debug\" \\ \"/"
"var/log/maillog\")}."
msgstr ""

#. type: Plain text
#: doc/guix.texi:15518
msgid ""
"The @code{(gnu services networking)} module provides services to configure "
"the network interface."
msgstr ""

#. type: cindex
#: doc/guix.texi:15519
#, no-wrap
msgid "DHCP, networking service"
msgstr ""

#. type: defvr
#: doc/guix.texi:15520
#, no-wrap
msgid "{Scheme Variable} dhcp-client-service-type"
msgstr ""

#. type: defvr
#: doc/guix.texi:15524
msgid ""
"This is the type of services that run @var{dhcp}, a Dynamic Host "
"Configuration Protocol (DHCP) client, on all the non-loopback network "
"interfaces.  Its value is the DHCP client package to use, @code{isc-dhcp} by "
"default."
msgstr ""

#. type: deffn
#: doc/guix.texi:15526
#, no-wrap
msgid "{Scheme Procedure} dhcpd-service-type"
msgstr ""

#. type: deffn
#: doc/guix.texi:15530
msgid ""
"This type defines a service that runs a DHCP daemon.  To create a service of "
"this type, you must supply a @code{<dhcpd-configuration>}.  For example:"
msgstr ""

#. type: lisp
#: doc/guix.texi:15536
#, no-wrap
msgid ""
"(service dhcpd-service-type\n"
"         (dhcpd-configuration\n"
"          (config-file (local-file \"my-dhcpd.conf\"))\n"
"          (interfaces '(\"enp0s25\"))))\n"
msgstr ""

#. type: deftp
#: doc/guix.texi:15539
#, no-wrap
msgid "{Data Type} dhcpd-configuration"
msgstr ""

#. type: item
#: doc/guix.texi:15541
#, no-wrap
msgid "@code{package} (default: @code{isc-dhcp})"
msgstr ""

#. type: table
#: doc/guix.texi:15546
msgid ""
"The package that provides the DHCP daemon.  This package is expected to "
"provide the daemon at @file{sbin/dhcpd} relative to its output directory.  "
"The default package is the @uref{https://www.isc.org/products/DHCP, ISC's "
"DHCP server}."
msgstr ""

#. type: item
#: doc/guix.texi:15546 doc/guix.texi:15801 doc/guix.texi:20528
#, no-wrap
msgid "@code{config-file} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:15551
msgid ""
"The configuration file to use.  This is required.  It will be passed to "
"@code{dhcpd} via its @code{-cf} option.  This may be any ``file-like'' "
"object (@pxref{G-Expressions, file-like objects}).  See @code{man dhcpd."
"conf} for details on the configuration file syntax."
msgstr ""

#. type: item
#: doc/guix.texi:15551
#, no-wrap
msgid "@code{version} (default: @code{\"4\"})"
msgstr ""

#. type: table
#: doc/guix.texi:15556
msgid ""
"The DHCP version to use.  The ISC DHCP server supports the values ``4'', "
"``6'', and ``4o6''.  These correspond to the @code{dhcpd} program options "
"@code{-4}, @code{-6}, and @code{-4o6}.  See @code{man dhcpd} for details."
msgstr ""

#. type: item
#: doc/guix.texi:15556
#, no-wrap
msgid "@code{run-directory} (default: @code{\"/run/dhcpd\"})"
msgstr ""

#. type: table
#: doc/guix.texi:15559
msgid ""
"The run directory to use.  At service activation time, this directory will "
"be created if it does not exist."
msgstr ""

#. type: item
#: doc/guix.texi:15559
#, no-wrap
msgid "@code{pid-file} (default: @code{\"/run/dhcpd/dhcpd.pid\"})"
msgstr ""

#. type: table
#: doc/guix.texi:15562
msgid ""
"The PID file to use.  This corresponds to the @code{-pf} option of "
"@code{dhcpd}.  See @code{man dhcpd} for details."
msgstr ""

#. type: item
#: doc/guix.texi:15562
#, no-wrap
msgid "@code{interfaces} (default: @code{'()})"
msgstr ""

#. type: table
#: doc/guix.texi:15568
msgid ""
"The names of the network interfaces on which dhcpd should listen for "
"broadcasts.  If this list is not empty, then its elements (which must be "
"strings) will be appended to the @code{dhcpd} invocation when starting the "
"daemon.  It may not be necessary to explicitly specify any interfaces here; "
"see @code{man dhcpd} for details."
msgstr ""

#. type: defvr
#: doc/guix.texi:15571
#, no-wrap
msgid "{Scheme Variable} static-networking-service-type"
msgstr ""

#. type: defvr
#: doc/guix.texi:15574
msgid "This is the type for statically-configured network interfaces."
msgstr ""

#. type: deffn
#: doc/guix.texi:15576
#, no-wrap
msgid "{Scheme Procedure} static-networking-service @var{interface} @var{ip} @"
msgstr ""

#. type: deffn
#: doc/guix.texi:15584
msgid ""
"[#:netmask #f] [#:gateway #f] [#:name-servers @code{'()}] @ [#:requirement "
"@code{'(udev)}] Return a service that starts @var{interface} with address "
"@var{ip}.  If @var{netmask} is true, use it as the network mask.  If "
"@var{gateway} is true, it must be a string specifying the default network "
"gateway.  @var{requirement} can be used to declare a dependency on another "
"service before configuring the interface."
msgstr ""

#. type: deffn
#: doc/guix.texi:15589
msgid ""
"This procedure can be called several times, one for each network interface "
"of interest.  Behind the scenes what it does is extend @code{static-"
"networking-service-type} with additional network interfaces to handle."
msgstr ""

#. type: defvr
#: doc/guix.texi:15591 doc/guix.texi:26949
msgid "For example:"
msgstr ""

#. type: lisp
#: doc/guix.texi:15596
#, no-wrap
msgid ""
"(static-networking-service \"eno1\" \"192.168.1.82\"\n"
"                           #:gateway \"192.168.1.2\"\n"
"                           #:name-servers '(\"192.168.1.2\"))\n"
msgstr ""

#. type: cindex
#: doc/guix.texi:15599
#, no-wrap
msgid "wicd"
msgstr ""

#. type: cindex
#: doc/guix.texi:15602
#, no-wrap
msgid "network management"
msgstr ""

#. type: deffn
#: doc/guix.texi:15603
#, no-wrap
msgid "{Scheme Procedure} wicd-service [#:wicd @var{wicd}]"
msgstr ""

#. type: deffn
#: doc/guix.texi:15606
msgid ""
"Return a service that runs @url{https://launchpad.net/wicd,Wicd}, a network "
"management daemon that aims to simplify wired and wireless networking."
msgstr ""

#. type: deffn
#: doc/guix.texi:15611
msgid ""
"This service adds the @var{wicd} package to the global profile, providing "
"several commands to interact with the daemon and configure networking: "
"@command{wicd-client}, a graphical user interface, and the @command{wicd-"
"cli} and @command{wicd-curses} user interfaces."
msgstr ""

#. type: cindex
#: doc/guix.texi:15613
#, no-wrap
msgid "ModemManager"
msgstr ""

#. type: defvr
#: doc/guix.texi:15615
#, no-wrap
msgid "{Scheme Variable} modem-manager-service-type"
msgstr ""

#. type: defvr
#: doc/guix.texi:15620
msgid ""
"This is the service type for the @uref{https://wiki.gnome.org/Projects/"
"ModemManager, ModemManager} service. The value for this service type is a "
"@code{modem-manager-configuration} record."
msgstr ""

#. type: defvr
#: doc/guix.texi:15623 doc/guix.texi:15651 doc/guix.texi:15683
msgid ""
"This service is part of @code{%desktop-services} (@pxref{Desktop Services})."
msgstr ""

#. type: deftp
#: doc/guix.texi:15625
#, no-wrap
msgid "{Data Type} modem-manager-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:15627
msgid "Data type representing the configuration of ModemManager."
msgstr ""

#. type: item
#: doc/guix.texi:15629
#, no-wrap
msgid "@code{modem-manager} (default: @code{modem-manager})"
msgstr ""

#. type: table
#: doc/guix.texi:15631
msgid "The ModemManager package to use."
msgstr ""

#. type: cindex
#: doc/guix.texi:15635
#, no-wrap
msgid "USB_ModeSwitch"
msgstr ""

#. type: cindex
#: doc/guix.texi:15636
#, no-wrap
msgid "Modeswitching"
msgstr ""

#. type: defvr
#: doc/guix.texi:15638
#, no-wrap
msgid "{Scheme Variable} usb-modeswitch-service-type"
msgstr ""

#. type: defvr
#: doc/guix.texi:15642
msgid ""
"This is the service type for the @uref{https://www.draisberghof.de/"
"usb_modeswitch/, USB_ModeSwitch} service. The value for this service type is "
"a @code{usb-modeswitch-configuration} record."
msgstr ""

#. type: defvr
#: doc/guix.texi:15648
msgid ""
"When plugged in, some USB modems (and other USB devices) initially present "
"themselves as a read-only storage medium and not as a modem.  They need to "
"be @dfn{modeswitched} before they are usable.  The USB_ModeSwitch service "
"type installs udev rules to automatically modeswitch these devices when they "
"are plugged in."
msgstr ""

#. type: deftp
#: doc/guix.texi:15653
#, no-wrap
msgid "{Data Type} usb-modeswitch-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:15655
msgid "Data type representing the configuration of USB_ModeSwitch."
msgstr ""

#. type: item
#: doc/guix.texi:15657
#, no-wrap
msgid "@code{usb-modeswitch} (default: @code{usb-modeswitch})"
msgstr ""

#. type: table
#: doc/guix.texi:15659
msgid "The USB_ModeSwitch package providing the binaries for modeswitching."
msgstr ""

#. type: item
#: doc/guix.texi:15660
#, no-wrap
msgid "@code{usb-modeswitch-data} (default: @code{usb-modeswitch-data})"
msgstr ""

#. type: table
#: doc/guix.texi:15663
msgid ""
"The package providing the device data and udev rules file used by "
"USB_ModeSwitch."
msgstr ""

#. type: item
#: doc/guix.texi:15664
#, no-wrap
msgid "@code{config-file} (default: @code{#~(string-append #$usb-modeswitch:dispatcher \"/etc/usb_modeswitch.conf\")})"
msgstr ""

#. type: table
#: doc/guix.texi:15669
msgid ""
"Which config file to use for the USB_ModeSwitch dispatcher.  By default the "
"config file shipped with USB_ModeSwitch is used which disables logging to "
"@file{/var/log} among other default settings.  If set to @code{#f}, no "
"config file is used."
msgstr ""

#. type: cindex
#: doc/guix.texi:15673
#, no-wrap
msgid "NetworkManager"
msgstr ""

#. type: defvr
#: doc/guix.texi:15675
#, no-wrap
msgid "{Scheme Variable} network-manager-service-type"
msgstr ""

#. type: defvr
#: doc/guix.texi:15680
msgid ""
"This is the service type for the @uref{https://wiki.gnome.org/Projects/"
"NetworkManager, NetworkManager} service. The value for this service type is "
"a @code{network-manager-configuration} record."
msgstr ""

#. type: deftp
#: doc/guix.texi:15685
#, no-wrap
msgid "{Data Type} network-manager-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:15687
msgid "Data type representing the configuration of NetworkManager."
msgstr ""

#. type: item
#: doc/guix.texi:15689
#, no-wrap
msgid "@code{network-manager} (default: @code{network-manager})"
msgstr ""

#. type: table
#: doc/guix.texi:15691
msgid "The NetworkManager package to use."
msgstr ""

#. type: item
#: doc/guix.texi:15692
#, no-wrap
msgid "@code{dns} (default: @code{\"default\"})"
msgstr ""

#. type: table
#: doc/guix.texi:15695
msgid ""
"Processing mode for DNS, which affects how NetworkManager uses the "
"@code{resolv.conf} configuration file."
msgstr ""

#. type: table
#: doc/guix.texi:15700
msgid ""
"NetworkManager will update @code{resolv.conf} to reflect the nameservers "
"provided by currently active connections."
msgstr ""

#. type: item
#: doc/guix.texi:15701
#, no-wrap
msgid "dnsmasq"
msgstr ""

#. type: table
#: doc/guix.texi:15705
msgid ""
"NetworkManager will run @code{dnsmasq} as a local caching nameserver, using "
"a @dfn{conditional forwarding} configuration if you are connected to a VPN, "
"and then update @code{resolv.conf} to point to the local nameserver."
msgstr ""

#. type: table
#: doc/guix.texi:15711
msgid ""
"With this setting, you can share your network connection.  For example when "
"you want to share your network connection to another laptop @i{via} an "
"Ethernet cable, you can open @command{nm-connection-editor} and configure "
"the Wired connection's method for IPv4 and IPv6 to be ``Shared to other "
"computers'' and reestablish the connection (or reboot)."
msgstr ""

#. type: table
#: doc/guix.texi:15718
msgid ""
"You can also set up a @dfn{host-to-guest connection} to QEMU VMs "
"(@pxref{Installing Guix in a VM}).  With a host-to-guest connection, you can "
"e.g.@: access a Web server running on the VM (@pxref{Web Services}) from a "
"Web browser on your host system, or connect to the VM @i{via} SSH "
"(@pxref{Networking Services, @code{openssh-service-type}}).  To set up a "
"host-to-guest connection, run this command once:"
msgstr ""

#. type: example
#: doc/guix.texi:15725
#, no-wrap
msgid ""
"nmcli connection add type tun \\\n"
" connection.interface-name tap0 \\\n"
" tun.mode tap tun.owner $(id -u) \\\n"
" ipv4.method shared \\\n"
" ipv4.addresses 172.28.112.1/24\n"
msgstr ""

#. type: table
#: doc/guix.texi:15730
msgid ""
"Then each time you launch your QEMU VM (@pxref{Running Guix in a VM}), pass "
"@option{-nic tap,ifname=tap0,script=no,downscript=no} to @command{qemu-"
"system-...}."
msgstr ""

#. type: table
#: doc/guix.texi:15733
msgid "NetworkManager will not modify @code{resolv.conf}."
msgstr ""

#. type: item
#: doc/guix.texi:15735
#, no-wrap
msgid "@code{vpn-plugins} (default: @code{'()})"
msgstr ""

#. type: table
#: doc/guix.texi:15739
msgid ""
"This is the list of available plugins for virtual private networks (VPNs).  "
"An example of this is the @code{network-manager-openvpn} package, which "
"allows NetworkManager to manage VPNs @i{via} OpenVPN."
msgstr ""

#. type: cindex
#: doc/guix.texi:15743
#, no-wrap
msgid "Connman"
msgstr ""

#. type: deffn
#: doc/guix.texi:15744
#, no-wrap
msgid "{Scheme Variable} connman-service-type"
msgstr ""

#. type: deffn
#: doc/guix.texi:15747
msgid ""
"This is the service type to run @url{https://01.org/connman,Connman}, a "
"network connection manager."
msgstr ""

#. type: deffn
#: doc/guix.texi:15750
msgid ""
"Its value must be an @code{connman-configuration} record as in this example:"
msgstr ""

#. type: lisp
#: doc/guix.texi:15755
#, no-wrap
msgid ""
"(service connman-service-type\n"
"         (connman-configuration\n"
"           (disable-vpn? #t)))\n"
msgstr ""

#. type: deffn
#: doc/guix.texi:15758
msgid "See below for details about @code{connman-configuration}."
msgstr ""

#. type: deftp
#: doc/guix.texi:15760
#, no-wrap
msgid "{Data Type} connman-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:15762
msgid "Data Type representing the configuration of connman."
msgstr ""

#. type: item
#: doc/guix.texi:15764
#, no-wrap
msgid "@code{connman} (default: @var{connman})"
msgstr ""

#. type: table
#: doc/guix.texi:15766
msgid "The connman package to use."
msgstr ""

#. type: item
#: doc/guix.texi:15767
#, no-wrap
msgid "@code{disable-vpn?} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:15769
msgid "When true, disable connman's vpn plugin."
msgstr ""

#. type: cindex
#: doc/guix.texi:15772
#, no-wrap
msgid "WPA Supplicant"
msgstr ""

#. type: defvr
#: doc/guix.texi:15773
#, no-wrap
msgid "{Scheme Variable} wpa-supplicant-service-type"
msgstr ""

#. type: defvr
#: doc/guix.texi:15777
msgid ""
"This is the service type to run @url{https://w1.fi/wpa_supplicant/,WPA "
"supplicant}, an authentication daemon required to authenticate against "
"encrypted WiFi or ethernet networks."
msgstr ""

#. type: deftp
#: doc/guix.texi:15779
#, no-wrap
msgid "{Data Type} wpa-supplicant-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:15781
msgid "Data type representing the configuration of WPA Supplicant."
msgstr ""

#. type: deftp
#: doc/guix.texi:15783 doc/guix.texi:28961
msgid "It takes the following parameters:"
msgstr ""

#. type: item
#: doc/guix.texi:15785
#, no-wrap
msgid "@code{wpa-supplicant} (default: @code{wpa-supplicant})"
msgstr ""

#. type: table
#: doc/guix.texi:15787
msgid "The WPA Supplicant package to use."
msgstr ""

#. type: item
#: doc/guix.texi:15788
#, no-wrap
msgid "@code{requirement} (default: @code{'(user-processes loopback syslogd)}"
msgstr ""

#. type: table
#: doc/guix.texi:15790
msgid "List of services that should be started before WPA Supplicant starts."
msgstr ""

#. type: item
#: doc/guix.texi:15791
#, no-wrap
msgid "@code{dbus?} (default: @code{#t})"
msgstr ""

#. type: table
#: doc/guix.texi:15793
msgid "Whether to listen for requests on D-Bus."
msgstr ""

#. type: item
#: doc/guix.texi:15794
#, no-wrap
msgid "@code{pid-file} (default: @code{\"/var/run/wpa_supplicant.pid\"})"
msgstr ""

#. type: table
#: doc/guix.texi:15796
msgid "Where to store the PID file."
msgstr ""

#. type: item
#: doc/guix.texi:15797 doc/guix.texi:27406 doc/guix.texi:27548
#, no-wrap
msgid "@code{interface} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:15800
msgid ""
"If this is set, it must specify the name of a network interface that WPA "
"supplicant will control."
msgstr ""

#. type: table
#: doc/guix.texi:15803
msgid "Optional configuration file to use."
msgstr ""

#. type: table
#: doc/guix.texi:15806
msgid "List of additional command-line arguments to pass to the daemon."
msgstr ""

#. type: cindex
#: doc/guix.texi:15809
#, no-wrap
msgid "hostapd service, for Wi-Fi access points"
msgstr ""

#. type: cindex
#: doc/guix.texi:15810
#, no-wrap
msgid "Wi-Fi access points, hostapd service"
msgstr ""

#. type: defvr
#: doc/guix.texi:15811
#, no-wrap
msgid "{Scheme Variable} hostapd-service-type"
msgstr ""

#. type: defvr
#: doc/guix.texi:15816
msgid ""
"This is the service type to run the @uref{https://w1.fi/hostapd/, hostapd} "
"daemon to set up WiFi (IEEE 802.11) access points and authentication "
"servers.  Its associated value must be a @code{hostapd-configuration} as "
"shown below:"
msgstr ""

#. type: lisp
#: doc/guix.texi:15824
#, no-wrap
msgid ""
";; Use wlan1 to run the access point for \"My Network\".\n"
"(service hostapd-service-type\n"
"         (hostapd-configuration\n"
"          (interface \"wlan1\")\n"
"          (ssid \"My Network\")\n"
"          (channel 12)))\n"
msgstr ""

#. type: deftp
#: doc/guix.texi:15827
#, no-wrap
msgid "{Data Type} hostapd-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:15830
msgid ""
"This data type represents the configuration of the hostapd service, with the "
"following fields:"
msgstr ""

#. type: item
#: doc/guix.texi:15832
#, no-wrap
msgid "@code{package} (default: @code{hostapd})"
msgstr ""

#. type: table
#: doc/guix.texi:15834
msgid "The hostapd package to use."
msgstr ""

#. type: item
#: doc/guix.texi:15835
#, no-wrap
msgid "@code{interface} (default: @code{\"wlan0\"})"
msgstr ""

#. type: table
#: doc/guix.texi:15837
msgid "The network interface to run the WiFi access point."
msgstr ""

#. type: code{#1}
#: doc/guix.texi:15838
#, no-wrap
msgid "ssid"
msgstr ""

#. type: table
#: doc/guix.texi:15841
msgid ""
"The SSID (@dfn{service set identifier}), a string that identifies this "
"network."
msgstr ""

#. type: item
#: doc/guix.texi:15842
#, no-wrap
msgid "@code{broadcast-ssid?} (default: @code{#t})"
msgstr ""

#. type: table
#: doc/guix.texi:15844
msgid "Whether to broadcast this SSID."
msgstr ""

#. type: item
#: doc/guix.texi:15845
#, no-wrap
msgid "@code{channel} (default: @code{1})"
msgstr ""

#. type: table
#: doc/guix.texi:15847
msgid "The WiFi channel to use."
msgstr ""

#. type: item
#: doc/guix.texi:15848
#, no-wrap
msgid "@code{driver} (default: @code{\"nl80211\"})"
msgstr ""

#. type: table
#: doc/guix.texi:15852
msgid ""
"The driver interface type.  @code{\"nl80211\"} is used with all Linux "
"mac80211 drivers.  Use @code{\"none\"} if building hostapd as a standalone "
"RADIUS server that does # not control any wireless/wired driver."
msgstr ""

#. type: item
#: doc/guix.texi:15853 doc/guix.texi:21353 doc/guix.texi:23399
#, no-wrap
msgid "@code{extra-settings} (default: @code{\"\"})"
msgstr ""

#. type: table
#: doc/guix.texi:15857
msgid ""
"Extra settings to append as-is to the hostapd configuration file.  See "
"@uref{https://w1.fi/cgit/hostap/plain/hostapd/hostapd.conf} for the "
"configuration file reference."
msgstr ""

#. type: defvr
#: doc/guix.texi:15860
#, no-wrap
msgid "{Scheme Variable} simulated-wifi-service-type"
msgstr ""

#. type: defvr
#: doc/guix.texi:15867
msgid ""
"This is the type of a service to simulate WiFi networking, which can be "
"useful in virtual machines for testing purposes.  The service loads the "
"Linux kernel @uref{https://www.kernel.org/doc/html/latest/networking/"
"mac80211_hwsim/mac80211_hwsim.html, @code{mac80211_hwsim} module} and starts "
"hostapd to create a pseudo WiFi network that can be seen on @code{wlan0}, by "
"default."
msgstr ""

#. type: defvr
#: doc/guix.texi:15869
msgid "The service's value is a @code{hostapd-configuration} record."
msgstr ""

#. type: cindex
#: doc/guix.texi:15871
#, no-wrap
msgid "iptables"
msgstr ""

#. type: defvr
#: doc/guix.texi:15872
#, no-wrap
msgid "{Scheme Variable} iptables-service-type"
msgstr ""

#. type: defvr
#: doc/guix.texi:15878
msgid ""
"This is the service type to set up an iptables configuration.  iptables is a "
"packet filtering framework supported by the Linux kernel.  This service "
"supports configuring iptables for both IPv4 and IPv6.  A simple example "
"configuration rejecting all incoming connections except those to the ssh "
"port 22 is shown below."
msgstr ""

#. type: lisp
#: doc/guix.texi:15898
#, no-wrap
msgid ""
"(service iptables-service-type\n"
"         (iptables-configuration\n"
"          (ipv4-rules (plain-file \"iptables.rules\" \"*filter\n"
":INPUT ACCEPT\n"
":FORWARD ACCEPT\n"
":OUTPUT ACCEPT\n"
"-A INPUT -p tcp --dport 22 -j ACCEPT\n"
"-A INPUT -j REJECT --reject-with icmp-port-unreachable\n"
"COMMIT\n"
"\"))\n"
"          (ipv6-rules (plain-file \"ip6tables.rules\" \"*filter\n"
":INPUT ACCEPT\n"
":FORWARD ACCEPT\n"
":OUTPUT ACCEPT\n"
"-A INPUT -p tcp --dport 22 -j ACCEPT\n"
"-A INPUT -j REJECT --reject-with icmp6-port-unreachable\n"
"COMMIT\n"
"\"))))\n"
msgstr ""

#. type: deftp
#: doc/guix.texi:15901
#, no-wrap
msgid "{Data Type} iptables-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:15903
msgid "The data type representing the configuration of iptables."
msgstr ""

#. type: item
#: doc/guix.texi:15905
#, no-wrap
msgid "@code{iptables} (default: @code{iptables})"
msgstr ""

#. type: table
#: doc/guix.texi:15908
msgid ""
"The iptables package that provides @code{iptables-restore} and "
"@code{ip6tables-restore}."
msgstr ""

#. type: item
#: doc/guix.texi:15908
#, no-wrap
msgid "@code{ipv4-rules} (default: @code{%iptables-accept-all-rules})"
msgstr ""

#. type: table
#: doc/guix.texi:15912
msgid ""
"The iptables rules to use.  It will be passed to @code{iptables-restore}.  "
"This may be any ``file-like'' object (@pxref{G-Expressions, file-like "
"objects})."
msgstr ""

#. type: item
#: doc/guix.texi:15912
#, no-wrap
msgid "@code{ipv6-rules} (default: @code{%iptables-accept-all-rules})"
msgstr ""

#. type: table
#: doc/guix.texi:15916
msgid ""
"The ip6tables rules to use.  It will be passed to @code{ip6tables-restore}.  "
"This may be any ``file-like'' object (@pxref{G-Expressions, file-like "
"objects})."
msgstr ""

#. type: cindex
#: doc/guix.texi:15919
#, no-wrap
msgid "nftables"
msgstr ""

#. type: defvr
#: doc/guix.texi:15920
#, no-wrap
msgid "{Scheme Variable} nftables-service-type"
msgstr ""

#. type: defvr
#: doc/guix.texi:15928
msgid ""
"This is the service type to set up a nftables configuration.  nftables is a "
"netfilter project that aims to replace the existing iptables, ip6tables, "
"arptables and ebtables framework.  It provides a new packet filtering "
"framework, a new user-space utility @command{nft}, and a compatibility layer "
"for iptables.  This service comes with a default ruleset @code{%default-"
"nftables-ruleset} that rejecting all incomming connections except those to "
"the ssh port 22.  To use it, simply write:"
msgstr ""

#. type: lisp
#: doc/guix.texi:15931
#, no-wrap
msgid "(service nftables-service-type)\n"
msgstr ""

#. type: deftp
#: doc/guix.texi:15934
#, no-wrap
msgid "{Data Type} nftables-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:15936
msgid "The data type representing the configuration of nftables."
msgstr ""

#. type: item
#: doc/guix.texi:15938
#, no-wrap
msgid "@code{package} (default: @code{nftables})"
msgstr ""

#. type: table
#: doc/guix.texi:15940
msgid "The nftables package that provides @command{nft}."
msgstr ""

#. type: item
#: doc/guix.texi:15940
#, no-wrap
msgid "@code{ruleset} (default: @code{%default-nftables-ruleset})"
msgstr ""

#. type: table
#: doc/guix.texi:15943
msgid ""
"The nftables ruleset to use.  This may be any ``file-like'' object (@pxref{G-"
"Expressions, file-like objects})."
msgstr ""

#. type: cindex
#: doc/guix.texi:15946
#, no-wrap
msgid "NTP (Network Time Protocol), service"
msgstr ""

#. type: cindex
#: doc/guix.texi:15947
#, no-wrap
msgid "ntpd, service for the Network Time Protocol daemon"
msgstr ""

#. type: cindex
#: doc/guix.texi:15948
#, no-wrap
msgid "real time clock"
msgstr ""

#. type: defvr
#: doc/guix.texi:15949
#, no-wrap
msgid "{Scheme Variable} ntp-service-type"
msgstr ""

#. type: defvr
#: doc/guix.texi:15953
msgid ""
"This is the type of the service running the @uref{https://www.ntp.org, "
"Network Time Protocol (NTP)} daemon, @command{ntpd}.  The daemon will keep "
"the system clock synchronized with that of the specified NTP servers."
msgstr ""

#. type: defvr
#: doc/guix.texi:15956
msgid ""
"The value of this service is an @code{ntpd-configuration} object, as "
"described below."
msgstr ""

#. type: deftp
#: doc/guix.texi:15958
#, no-wrap
msgid "{Data Type} ntp-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:15960
msgid "This is the data type for the NTP service configuration."
msgstr ""

#. type: item
#: doc/guix.texi:15962
#, no-wrap
msgid "@code{servers} (default: @code{%ntp-servers})"
msgstr ""

#. type: table
#: doc/guix.texi:15966
msgid ""
"This is the list of servers (@code{<ntp-server>} records) with which "
"@command{ntpd} will be synchronized.  See the @code{ntp-server} data type "
"definition below."
msgstr ""

#. type: item
#: doc/guix.texi:15967
#, no-wrap
msgid "@code{allow-large-adjustment?} (default: @code{#t})"
msgstr ""

#. type: table
#: doc/guix.texi:15970
msgid ""
"This determines whether @command{ntpd} is allowed to make an initial "
"adjustment of more than 1,000 seconds."
msgstr ""

#. type: item
#: doc/guix.texi:15971
#, no-wrap
msgid "@code{ntp} (default: @code{ntp})"
msgstr ""

#. type: table
#: doc/guix.texi:15973
msgid "The NTP package to use."
msgstr ""

#. type: defvr
#: doc/guix.texi:15976
#, no-wrap
msgid "{Scheme Variable} %ntp-servers"
msgstr ""

#. type: defvr
#: doc/guix.texi:15979
msgid ""
"List of host names used as the default NTP servers.  These are servers of "
"the @uref{https://www.ntppool.org/en/, NTP Pool Project}."
msgstr ""

#. type: deftp
#: doc/guix.texi:15981
#, no-wrap
msgid "{Data Type} ntp-server"
msgstr ""

#. type: deftp
#: doc/guix.texi:15983
msgid "The data type representing the configuration of a NTP server."
msgstr ""

#. type: item
#: doc/guix.texi:15985
#, no-wrap
msgid "@code{type} (default: @code{'server})"
msgstr ""

#. type: table
#: doc/guix.texi:15988
msgid ""
"The type of the NTP server, given as a symbol. One of @code{'pool}, "
"@code{'server}, @code{'peer}, @code{'broadcast} or @code{'manycastclient}."
msgstr ""

#. type: code{#1}
#: doc/guix.texi:15989
#, no-wrap
msgid "address"
msgstr ""

#. type: table
#: doc/guix.texi:15991
msgid "The address of the server, as a string."
msgstr ""

#. type: code{#1}
#: doc/guix.texi:15992 doc/guix.texi:29629 doc/guix.texi:29649
#, no-wrap
msgid "options"
msgstr ""

#. type: table
#: doc/guix.texi:15997
msgid ""
"NTPD options to use with that specific server, given as a list of option "
"names and/or of option names and values tuples. The following example define "
"a server to use with the options @option{iburst} and @option{prefer}, as "
"well as @option{version} 3 and a @option{maxpoll} time of 16 seconds."
msgstr ""

#. type: example
#: doc/guix.texi:16003
#, no-wrap
msgid ""
"(ntp-server\n"
" (type 'server)\n"
" (address \"some.ntp.server.org\")\n"
" (options `(iburst (version 3) (maxpoll 16) prefer))))\n"
msgstr ""

#. type: cindex
#: doc/guix.texi:16007
#, no-wrap
msgid "OpenNTPD"
msgstr ""

#. type: deffn
#: doc/guix.texi:16008
#, no-wrap
msgid "{Scheme Procedure} openntpd-service-type"
msgstr ""

#. type: deffn
#: doc/guix.texi:16012
msgid ""
"Run the @command{ntpd}, the Network Time Protocol (NTP) daemon, as "
"implemented by @uref{http://www.openntpd.org, OpenNTPD}.  The daemon will "
"keep the system clock synchronized with that of the given servers."
msgstr ""

#. type: lisp
#: doc/guix.texi:16022
#, no-wrap
msgid ""
"(service\n"
" openntpd-service-type\n"
" (openntpd-configuration\n"
"  (listen-on '(\"127.0.0.1\" \"::1\"))\n"
"  (sensor '(\"udcf0 correction 70000\"))\n"
"  (constraint-from '(\"www.gnu.org\"))\n"
"  (constraints-from '(\"https://www.google.com/\"))\n"
"  (allow-large-adjustment? #t)))\n"
"\n"
msgstr ""

#. type: defvr
#: doc/guix.texi:16026
#, no-wrap
msgid "{Scheme Variable} %openntpd-servers"
msgstr ""

#. type: defvr
#: doc/guix.texi:16029
msgid ""
"This variable is a list of the server addresses defined in @code{%ntp-"
"servers}."
msgstr ""

#. type: deftp
#: doc/guix.texi:16031
#, no-wrap
msgid "{Data Type} openntpd-configuration"
msgstr ""

#. type: item
#: doc/guix.texi:16033
#, no-wrap
msgid "@code{openntpd} (default: @code{(file-append openntpd \"/sbin/ntpd\")})"
msgstr ""

#. type: table
#: doc/guix.texi:16035
msgid "The openntpd executable to use."
msgstr ""

#. type: item
#: doc/guix.texi:16035
#, no-wrap
msgid "@code{listen-on} (default: @code{'(\"127.0.0.1\" \"::1\")})"
msgstr ""

#. type: table
#: doc/guix.texi:16037
msgid ""
"A list of local IP addresses or hostnames the ntpd daemon should listen on."
msgstr ""

#. type: item
#: doc/guix.texi:16037
#, no-wrap
msgid "@code{query-from} (default: @code{'()})"
msgstr ""

#. type: table
#: doc/guix.texi:16039
msgid ""
"A list of local IP address the ntpd daemon should use for outgoing queries."
msgstr ""

#. type: item
#: doc/guix.texi:16039
#, no-wrap
msgid "@code{sensor} (default: @code{'()})"
msgstr ""

#. type: table
#: doc/guix.texi:16044
msgid ""
"Specify a list of timedelta sensor devices ntpd should use.  @code{ntpd} "
"will listen to each sensor that actually exists and ignore non-existent "
"ones.  See @uref{https://man.openbsd.org/ntpd.conf, upstream documentation} "
"for more information."
msgstr ""

#. type: item
#: doc/guix.texi:16044
#, no-wrap
msgid "@code{server} (default: @code{'()})"
msgstr ""

#. type: table
#: doc/guix.texi:16046
msgid ""
"Specify a list of IP addresses or hostnames of NTP servers to synchronize to."
msgstr ""

#. type: item
#: doc/guix.texi:16046
#, no-wrap
msgid "@code{servers} (default: @code{%openntp-servers})"
msgstr ""

#. type: table
#: doc/guix.texi:16048
msgid ""
"Specify a list of IP addresses or hostnames of NTP pools to synchronize to."
msgstr ""

#. type: item
#: doc/guix.texi:16048
#, no-wrap
msgid "@code{constraint-from} (default: @code{'()})"
msgstr ""

#. type: table
#: doc/guix.texi:16055
msgid ""
"@code{ntpd} can be configured to query the ‘Date’ from trusted HTTPS servers "
"via TLS.  This time information is not used for precision but acts as an "
"authenticated constraint, thereby reducing the impact of unauthenticated NTP "
"man-in-the-middle attacks.  Specify a list of URLs, IP addresses or "
"hostnames of HTTPS servers to provide a constraint."
msgstr ""

#. type: item
#: doc/guix.texi:16055
#, no-wrap
msgid "@code{constraints-from} (default: @code{'()})"
msgstr ""

#. type: table
#: doc/guix.texi:16059
msgid ""
"As with constraint from, specify a list of URLs, IP addresses or hostnames "
"of HTTPS servers to provide a constraint.  Should the hostname resolve to "
"multiple IP addresses, @code{ntpd} will calculate a median constraint from "
"all of them."
msgstr ""

#. type: item
#: doc/guix.texi:16059
#, no-wrap
msgid "@code{allow-large-adjustment?} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:16062
msgid ""
"Determines if @code{ntpd} is allowed to make an initial adjustment of more "
"than 180 seconds."
msgstr ""

#. type: cindex
#: doc/guix.texi:16065
#, no-wrap
msgid "inetd"
msgstr ""

#. type: deffn
#: doc/guix.texi:16066
#, no-wrap
msgid "{Scheme variable} inetd-service-type"
msgstr ""

#. type: deffn
#: doc/guix.texi:16071
msgid ""
"This service runs the @command{inetd} (@pxref{inetd invocation,,, inetutils, "
"GNU Inetutils}) daemon.  @command{inetd} listens for connections on internet "
"sockets, and lazily starts the specified server program when a connection is "
"made on one of these sockets."
msgstr ""

#. type: deffn
#: doc/guix.texi:16077
msgid ""
"The value of this service is an @code{inetd-configuration} object.  The "
"following example configures the @command{inetd} daemon to provide the built-"
"in @command{echo} service, as well as an smtp service which forwards smtp "
"traffic over ssh to a server @code{smtp-server} behind a gateway "
"@code{hostname}:"
msgstr ""

#. type: lisp
#: doc/guix.texi:16100
#, no-wrap
msgid ""
"(service\n"
" inetd-service-type\n"
" (inetd-configuration\n"
"  (entries (list\n"
"            (inetd-entry\n"
"             (name \"echo\")\n"
"             (socket-type 'stream)\n"
"             (protocol \"tcp\")\n"
"             (wait? #f)\n"
"             (user \"root\"))\n"
"            (inetd-entry\n"
"             (node \"127.0.0.1\")\n"
"             (name \"smtp\")\n"
"             (socket-type 'stream)\n"
"             (protocol \"tcp\")\n"
"             (wait? #f)\n"
"             (user \"root\")\n"
"             (program (file-append openssh \"/bin/ssh\"))\n"
"             (arguments\n"
"              '(\"ssh\" \"-qT\" \"-i\" \"/path/to/ssh_key\"\n"
"                \"-W\" \"smtp-server:25\" \"user@@hostname\")))))))\n"
msgstr ""

#. type: deffn
#: doc/guix.texi:16103
msgid "See below for more details about @code{inetd-configuration}."
msgstr ""

#. type: deftp
#: doc/guix.texi:16105
#, no-wrap
msgid "{Data Type} inetd-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:16107
msgid "Data type representing the configuration of @command{inetd}."
msgstr ""

#. type: item
#: doc/guix.texi:16109
#, no-wrap
msgid "@code{program} (default: @code{(file-append inetutils \"/libexec/inetd\")})"
msgstr ""

#. type: table
#: doc/guix.texi:16111
msgid "The @command{inetd} executable to use."
msgstr ""

#. type: item
#: doc/guix.texi:16112 doc/guix.texi:24146
#, no-wrap
msgid "@code{entries} (default: @code{'()})"
msgstr ""

#. type: table
#: doc/guix.texi:16115
msgid ""
"A list of @command{inetd} service entries.  Each entry should be created by "
"the @code{inetd-entry} constructor."
msgstr ""

#. type: deftp
#: doc/guix.texi:16118
#, no-wrap
msgid "{Data Type} inetd-entry"
msgstr ""

#. type: deftp
#: doc/guix.texi:16122
msgid ""
"Data type representing an entry in the @command{inetd} configuration.  Each "
"entry corresponds to a socket where @command{inetd} will listen for requests."
msgstr ""

#. type: item
#: doc/guix.texi:16124
#, no-wrap
msgid "@code{node} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:16129
msgid ""
"Optional string, a comma-separated list of local addresses @command{inetd} "
"should use when listening for this service.  @xref{Configuration file,,, "
"inetutils, GNU Inetutils} for a complete description of all options."
msgstr ""

#. type: table
#: doc/guix.texi:16131
msgid "A string, the name must correspond to an entry in @code{/etc/services}."
msgstr ""

#. type: code{#1}
#: doc/guix.texi:16131
#, no-wrap
msgid "socket-type"
msgstr ""

#. type: table
#: doc/guix.texi:16134
msgid ""
"One of @code{'stream}, @code{'dgram}, @code{'raw}, @code{'rdm} or "
"@code{'seqpacket}."
msgstr ""

#. type: code{#1}
#: doc/guix.texi:16134
#, no-wrap
msgid "protocol"
msgstr ""

#. type: table
#: doc/guix.texi:16136
msgid "A string, must correspond to an entry in @code{/etc/protocols}."
msgstr ""

#. type: item
#: doc/guix.texi:16136
#, no-wrap
msgid "@code{wait?} (default: @code{#t})"
msgstr ""

#. type: table
#: doc/guix.texi:16139
msgid ""
"Whether @command{inetd} should wait for the server to exit before listening "
"to new service requests."
msgstr ""

#. type: table
#: doc/guix.texi:16144
msgid ""
"A string containing the user (and, optionally, group) name of the user as "
"whom the server should run.  The group name can be specified in a suffix, "
"separated by a colon or period, i.e.@: @code{\"user\"}, @code{\"user:group"
"\"} or @code{\"user.group\"}."
msgstr ""

#. type: item
#: doc/guix.texi:16144
#, no-wrap
msgid "@code{program} (default: @code{\"internal\"})"
msgstr ""

#. type: table
#: doc/guix.texi:16147
msgid ""
"The server program which will serve the requests, or @code{\"internal\"} if "
"@command{inetd} should use a built-in service."
msgstr ""

#. type: table
#: doc/guix.texi:16152
msgid ""
"A list strings or file-like objects, which are the server program's "
"arguments, starting with the zeroth argument, i.e.@: the name of the program "
"itself.  For @command{inetd}'s internal services, this entry must be "
"@code{'()} or @code{'(\"internal\")}."
msgstr ""

#. type: deftp
#: doc/guix.texi:16156
msgid ""
"@xref{Configuration file,,, inetutils, GNU Inetutils} for a more detailed "
"discussion of each configuration field."
msgstr ""

#. type: cindex
#: doc/guix.texi:16158
#, no-wrap
msgid "Tor"
msgstr ""

#. type: defvr
#: doc/guix.texi:16159
#, no-wrap
msgid "{Scheme Variable} tor-service-type"
msgstr ""

#. type: defvr
#: doc/guix.texi:16164
msgid ""
"This is the type for a service that runs the @uref{https://torproject.org, "
"Tor} anonymous networking daemon.  The service is configured using a "
"@code{<tor-configuration>} record.  By default, the Tor daemon runs as the "
"@code{tor} unprivileged user, which is a member of the @code{tor} group."
msgstr ""

#. type: deftp
#: doc/guix.texi:16167
#, no-wrap
msgid "{Data Type} tor-configuration"
msgstr ""

#. type: item
#: doc/guix.texi:16169
#, no-wrap
msgid "@code{tor} (default: @code{tor})"
msgstr ""

#. type: table
#: doc/guix.texi:16174
msgid ""
"The package that provides the Tor daemon.  This package is expected to "
"provide the daemon at @file{bin/tor} relative to its output directory.  The "
"default package is the @uref{https://www.torproject.org, Tor Project's} "
"implementation."
msgstr ""

#. type: item
#: doc/guix.texi:16175
#, no-wrap
msgid "@code{config-file} (default: @code{(plain-file \"empty\" \"\")})"
msgstr ""

#. type: table
#: doc/guix.texi:16181
msgid ""
"The configuration file to use.  It will be appended to a default "
"configuration file, and the final configuration file will be passed to "
"@code{tor} via its @code{-f} option.  This may be any ``file-like'' object "
"(@pxref{G-Expressions, file-like objects}).  See @code{man tor} for details "
"on the configuration file syntax."
msgstr ""

#. type: item
#: doc/guix.texi:16182
#, no-wrap
msgid "@code{hidden-services} (default: @code{'()})"
msgstr ""

#. type: table
#: doc/guix.texi:16188
msgid ""
"The list of @code{<hidden-service>} records to use.  For any hidden service "
"you include in this list, appropriate configuration to enable the hidden "
"service will be automatically added to the default configuration file.  You "
"may conveniently create @code{<hidden-service>} records using the @code{tor-"
"hidden-service} procedure described below."
msgstr ""

#. type: item
#: doc/guix.texi:16189
#, no-wrap
msgid "@code{socks-socket-type} (default: @code{'tcp})"
msgstr ""

#. type: table
#: doc/guix.texi:16196
msgid ""
"The default socket type that Tor should use for its SOCKS socket.  This must "
"be either @code{'tcp} or @code{'unix}.  If it is @code{'tcp}, then by "
"default Tor will listen on TCP port 9050 on the loopback interface (i.e., "
"localhost).  If it is @code{'unix}, then Tor will listen on the UNIX domain "
"socket @file{/var/run/tor/socks-sock}, which will be made writable by "
"members of the @code{tor} group."
msgstr ""

#. type: table
#: doc/guix.texi:16201
msgid ""
"If you want to customize the SOCKS socket in more detail, leave @code{socks-"
"socket-type} at its default value of @code{'tcp} and use @code{config-file} "
"to override the default by providing your own @code{SocksPort} option."
msgstr ""

#. type: cindex
#: doc/guix.texi:16204
#, no-wrap
msgid "hidden service"
msgstr ""

#. type: deffn
#: doc/guix.texi:16205
#, no-wrap
msgid "{Scheme Procedure} tor-hidden-service @var{name} @var{mapping}"
msgstr ""

#. type: deffn
#: doc/guix.texi:16208
msgid ""
"Define a new Tor @dfn{hidden service} called @var{name} and implementing "
"@var{mapping}.  @var{mapping} is a list of port/host tuples, such as:"
msgstr ""

#. type: example
#: doc/guix.texi:16212
#, no-wrap
msgid ""
" '((22 \"127.0.0.1:22\")\n"
"   (80 \"127.0.0.1:8080\"))\n"
msgstr ""

#. type: deffn
#: doc/guix.texi:16216
msgid ""
"In this example, port 22 of the hidden service is mapped to local port 22, "
"and port 80 is mapped to local port 8080."
msgstr ""

#. type: deffn
#: doc/guix.texi:16220
msgid ""
"This creates a @file{/var/lib/tor/hidden-services/@var{name}} directory, "
"where the @file{hostname} file contains the @code{.onion} host name for the "
"hidden service."
msgstr ""

#. type: deffn
#: doc/guix.texi:16223
msgid ""
"See @uref{https://www.torproject.org/docs/tor-hidden-service.html.en, the "
"Tor project's documentation} for more information."
msgstr ""

#. type: Plain text
#: doc/guix.texi:16226
msgid "The @code{(gnu services rsync)} module provides the following services:"
msgstr ""

#. type: Plain text
#: doc/guix.texi:16230
msgid ""
"You might want an rsync daemon if you have files that you want available so "
"anyone (or just yourself) can download existing files or upload new files."
msgstr ""

#. type: deffn
#: doc/guix.texi:16231
#, no-wrap
msgid "{Scheme Variable} rsync-service-type"
msgstr ""

#. type: deffn
#: doc/guix.texi:16235
msgid ""
"This is the service type for the @uref{https://rsync.samba.org, rsync} "
"daemon, The value for this service type is a @command{rsync-configuration} "
"record as in this example:"
msgstr ""

#. type: lisp
#: doc/guix.texi:16238
#, no-wrap
msgid "(service rsync-service-type)\n"
msgstr ""

#. type: deffn
#: doc/guix.texi:16241
msgid "See below for details about @code{rsync-configuration}."
msgstr ""

#. type: deftp
#: doc/guix.texi:16243
#, no-wrap
msgid "{Data Type} rsync-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:16245
msgid "Data type representing the configuration for @code{rsync-service}."
msgstr ""

#. type: item
#: doc/guix.texi:16247
#, no-wrap
msgid "@code{package} (default: @var{rsync})"
msgstr ""

#. type: table
#: doc/guix.texi:16249
msgid "@code{rsync} package to use."
msgstr ""

#. type: item
#: doc/guix.texi:16250
#, no-wrap
msgid "@code{port-number} (default: @code{873})"
msgstr ""

#. type: table
#: doc/guix.texi:16254
msgid ""
"TCP port on which @command{rsync} listens for incoming connections.  If port "
"is less than @code{1024} @command{rsync} needs to be started as the "
"@code{root} user and group."
msgstr ""

#. type: item
#: doc/guix.texi:16255
#, no-wrap
msgid "@code{pid-file} (default: @code{\"/var/run/rsyncd/rsyncd.pid\"})"
msgstr ""

#. type: table
#: doc/guix.texi:16257
msgid "Name of the file where @command{rsync} writes its PID."
msgstr ""

#. type: item
#: doc/guix.texi:16258
#, no-wrap
msgid "@code{lock-file} (default: @code{\"/var/run/rsyncd/rsyncd.lock\"})"
msgstr ""

#. type: table
#: doc/guix.texi:16260
msgid "Name of the file where @command{rsync} writes its lock file."
msgstr ""

#. type: item
#: doc/guix.texi:16261
#, no-wrap
msgid "@code{log-file} (default: @code{\"/var/log/rsyncd.log\"})"
msgstr ""

#. type: table
#: doc/guix.texi:16263 doc/guix.texi:16700
msgid "Name of the file where @command{rsync} writes its log file."
msgstr ""

#. type: item
#: doc/guix.texi:16264
#, no-wrap
msgid "@code{use-chroot?} (default: @var{#t})"
msgstr ""

#. type: table
#: doc/guix.texi:16266
msgid "Whether to use chroot for @command{rsync} shared directory."
msgstr ""

#. type: item
#: doc/guix.texi:16267
#, no-wrap
msgid "@code{share-path} (default: @file{/srv/rsync})"
msgstr ""

#. type: table
#: doc/guix.texi:16269
msgid "Location of the @command{rsync} shared directory."
msgstr ""

#. type: item
#: doc/guix.texi:16270
#, no-wrap
msgid "@code{share-comment} (default: @code{\"Rsync share\"})"
msgstr ""

#. type: table
#: doc/guix.texi:16272
msgid "Comment of the @command{rsync} shared directory."
msgstr ""

#. type: item
#: doc/guix.texi:16273
#, no-wrap
msgid "@code{read-only?} (default: @var{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:16275
msgid "Read-write permissions to shared directory."
msgstr ""

#. type: item
#: doc/guix.texi:16276
#, no-wrap
msgid "@code{timeout} (default: @code{300})"
msgstr ""

#. type: table
#: doc/guix.texi:16278
msgid "I/O timeout in seconds."
msgstr ""

#. type: item
#: doc/guix.texi:16279
#, no-wrap
msgid "@code{user} (default: @var{\"root\"})"
msgstr ""

#. type: table
#: doc/guix.texi:16281
msgid "Owner of the @code{rsync} process."
msgstr ""

#. type: item
#: doc/guix.texi:16282
#, no-wrap
msgid "@code{group} (default: @var{\"root\"})"
msgstr ""

#. type: table
#: doc/guix.texi:16284
msgid "Group of the @code{rsync} process."
msgstr ""

#. type: item
#: doc/guix.texi:16285
#, no-wrap
msgid "@code{uid} (default: @var{\"rsyncd\"})"
msgstr ""

#. type: table
#: doc/guix.texi:16288
msgid ""
"User name or user ID that file transfers to and from that module should take "
"place as when the daemon was run as @code{root}."
msgstr ""

#. type: item
#: doc/guix.texi:16289
#, no-wrap
msgid "@code{gid} (default: @var{\"rsyncd\"})"
msgstr ""

#. type: table
#: doc/guix.texi:16291 doc/guix.texi:16685
msgid "Group name or group ID that will be used when accessing the module."
msgstr ""

#. type: Plain text
#: doc/guix.texi:16296
msgid "Furthermore, @code{(gnu services ssh)} provides the following services."
msgstr ""

#. type: cindex
#: doc/guix.texi:16296 doc/guix.texi:16335 doc/guix.texi:31468
#, no-wrap
msgid "SSH"
msgstr ""

#. type: cindex
#: doc/guix.texi:16297 doc/guix.texi:16336 doc/guix.texi:31469
#, no-wrap
msgid "SSH server"
msgstr ""

#. type: deffn
#: doc/guix.texi:16299
#, no-wrap
msgid "{Scheme Procedure} lsh-service [#:host-key \"/etc/lsh/host-key\"] @"
msgstr ""

#. type: deffn
#: doc/guix.texi:16308
msgid ""
"[#:daemonic? #t] [#:interfaces '()] [#:port-number 22] @ [#:allow-empty-"
"passwords? #f] [#:root-login? #f] @ [#:syslog-output? #t] [#:x11-forwarding? "
"#t] @ [#:tcp/ip-forwarding? #t] [#:password-authentication? #t] @ [#:public-"
"key-authentication? #t] [#:initialize? #t] Run the @command{lshd} program "
"from @var{lsh} to listen on port @var{port-number}.  @var{host-key} must "
"designate a file containing the host key, and readable only by root."
msgstr ""

#. type: deffn
#: doc/guix.texi:16314
msgid ""
"When @var{daemonic?} is true, @command{lshd} will detach from the "
"controlling terminal and log its output to syslogd, unless one sets "
"@var{syslog-output?} to false.  Obviously, it also makes lsh-service depend "
"on existence of syslogd service.  When @var{pid-file?} is true, "
"@command{lshd} writes its PID to the file called @var{pid-file}."
msgstr ""

#. type: deffn
#: doc/guix.texi:16318
msgid ""
"When @var{initialize?} is true, automatically create the seed and host key "
"upon service activation if they do not exist yet.  This may take long and "
"require interaction."
msgstr ""

#. type: deffn
#: doc/guix.texi:16323
msgid ""
"When @var{initialize?} is false, it is up to the user to initialize the "
"randomness generator (@pxref{lsh-make-seed,,, lsh, LSH Manual}), and to "
"create a key pair with the private key stored in file @var{host-key} "
"(@pxref{lshd basics,,, lsh, LSH Manual})."
msgstr ""

#. type: deffn
#: doc/guix.texi:16327
msgid ""
"When @var{interfaces} is empty, lshd listens for connections on all the "
"network interfaces; otherwise, @var{interfaces} must be a list of host names "
"or addresses."
msgstr ""

#. type: deffn
#: doc/guix.texi:16331
msgid ""
"@var{allow-empty-passwords?} specifies whether to accept log-ins with empty "
"passwords, and @var{root-login?} specifies whether to accept log-ins as root."
msgstr ""

#. type: deffn
#: doc/guix.texi:16333
msgid "The other options should be self-descriptive."
msgstr ""

#. type: deffn
#: doc/guix.texi:16337
#, no-wrap
msgid "{Scheme Variable} openssh-service-type"
msgstr ""

#. type: deffn
#: doc/guix.texi:16341
msgid ""
"This is the type for the @uref{http://www.openssh.org, OpenSSH} secure shell "
"daemon, @command{sshd}.  Its value must be an @code{openssh-configuration} "
"record as in this example:"
msgstr ""

#. type: lisp
#: doc/guix.texi:16350
#, no-wrap
msgid ""
"(service openssh-service-type\n"
"         (openssh-configuration\n"
"           (x11-forwarding? #t)\n"
"           (permit-root-login 'without-password)\n"
"           (authorized-keys\n"
"             `((\"alice\" ,(local-file \"alice.pub\"))\n"
"               (\"bob\" ,(local-file \"bob.pub\"))))))\n"
msgstr ""

#. type: deffn
#: doc/guix.texi:16353
msgid "See below for details about @code{openssh-configuration}."
msgstr ""

#. type: deffn
#: doc/guix.texi:16356
msgid ""
"This service can be extended with extra authorized keys, as in this example:"
msgstr ""

#. type: lisp
#: doc/guix.texi:16361
#, no-wrap
msgid ""
"(service-extension openssh-service-type\n"
"                   (const `((\"charlie\"\n"
"                             ,(local-file \"charlie.pub\")))))\n"
msgstr ""

#. type: deftp
#: doc/guix.texi:16364
#, no-wrap
msgid "{Data Type} openssh-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:16366
msgid "This is the configuration record for OpenSSH's @command{sshd}."
msgstr ""

#. type: item
#: doc/guix.texi:16368
#, no-wrap
msgid "@code{openssh} (default @var{openssh})"
msgstr ""

#. type: table
#: doc/guix.texi:16370
msgid "The Openssh package to use."
msgstr ""

#. type: item
#: doc/guix.texi:16371
#, no-wrap
msgid "@code{pid-file} (default: @code{\"/var/run/sshd.pid\"})"
msgstr ""

#. type: table
#: doc/guix.texi:16373
msgid "Name of the file where @command{sshd} writes its PID."
msgstr ""

#. type: item
#: doc/guix.texi:16374
#, no-wrap
msgid "@code{port-number} (default: @code{22})"
msgstr ""

#. type: table
#: doc/guix.texi:16376
msgid "TCP port on which @command{sshd} listens for incoming connections."
msgstr ""

#. type: item
#: doc/guix.texi:16377
#, no-wrap
msgid "@code{permit-root-login} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:16382
msgid ""
"This field determines whether and when to allow logins as root.  If "
"@code{#f}, root logins are disallowed; if @code{#t}, they are allowed.  If "
"it's the symbol @code{'without-password}, then root logins are permitted but "
"not with password-based authentication."
msgstr ""

#. type: item
#: doc/guix.texi:16383 doc/guix.texi:16544
#, no-wrap
msgid "@code{allow-empty-passwords?} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:16386
msgid ""
"When true, users with empty passwords may log in.  When false, they may not."
msgstr ""

#. type: item
#: doc/guix.texi:16387 doc/guix.texi:16547
#, no-wrap
msgid "@code{password-authentication?} (default: @code{#t})"
msgstr ""

#. type: table
#: doc/guix.texi:16390
msgid ""
"When true, users may log in with their password.  When false, they have "
"other authentication methods."
msgstr ""

#. type: item
#: doc/guix.texi:16391
#, no-wrap
msgid "@code{public-key-authentication?} (default: @code{#t})"
msgstr ""

#. type: table
#: doc/guix.texi:16394
msgid ""
"When true, users may log in using public key authentication.  When false, "
"users have to use other authentication method."
msgstr ""

#. type: table
#: doc/guix.texi:16397
msgid ""
"Authorized public keys are stored in @file{~/.ssh/authorized_keys}.  This is "
"used only by protocol version 2."
msgstr ""

#. type: item
#: doc/guix.texi:16398
#, no-wrap
msgid "@code{x11-forwarding?} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:16402
msgid ""
"When true, forwarding of X11 graphical client connections is enabled---in "
"other words, @command{ssh} options @option{-X} and @option{-Y} will work."
msgstr ""

#. type: item
#: doc/guix.texi:16403
#, no-wrap
msgid "@code{allow-agent-forwarding?} (default: @code{#t})"
msgstr ""

#. type: table
#: doc/guix.texi:16405
msgid "Whether to allow agent forwarding."
msgstr ""

#. type: item
#: doc/guix.texi:16406
#, no-wrap
msgid "@code{allow-tcp-forwarding?} (default: @code{#t})"
msgstr ""

#. type: table
#: doc/guix.texi:16408
msgid "Whether to allow TCP forwarding."
msgstr ""

#. type: item
#: doc/guix.texi:16409
#, no-wrap
msgid "@code{gateway-ports?} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:16411
msgid "Whether to allow gateway ports."
msgstr ""

#. type: item
#: doc/guix.texi:16412
#, no-wrap
msgid "@code{challenge-response-authentication?} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:16415
msgid ""
"Specifies whether challenge response authentication is allowed (e.g.@: via "
"PAM)."
msgstr ""

#. type: item
#: doc/guix.texi:16416
#, no-wrap
msgid "@code{use-pam?} (default: @code{#t})"
msgstr ""

#. type: table
#: doc/guix.texi:16422
msgid ""
"Enables the Pluggable Authentication Module interface.  If set to @code{#t}, "
"this will enable PAM authentication using @code{challenge-response-"
"authentication?} and @code{password-authentication?}, in addition to PAM "
"account and session module processing for all authentication types."
msgstr ""

#. type: table
#: doc/guix.texi:16427
msgid ""
"Because PAM challenge response authentication usually serves an equivalent "
"role to password authentication, you should disable either @code{challenge-"
"response-authentication?} or @code{password-authentication?}."
msgstr ""

#. type: item
#: doc/guix.texi:16428
#, no-wrap
msgid "@code{print-last-log?} (default: @code{#t})"
msgstr ""

#. type: table
#: doc/guix.texi:16431
msgid ""
"Specifies whether @command{sshd} should print the date and time of the last "
"user login when a user logs in interactively."
msgstr ""

#. type: item
#: doc/guix.texi:16432
#, no-wrap
msgid "@code{subsystems} (default: @code{'((\"sftp\" \"internal-sftp\"))})"
msgstr ""

#. type: table
#: doc/guix.texi:16434
msgid "Configures external subsystems (e.g.@: file transfer daemon)."
msgstr ""

#. type: table
#: doc/guix.texi:16438
msgid ""
"This is a list of two-element lists, each of which containing the subsystem "
"name and a command (with optional arguments) to execute upon subsystem "
"request."
msgstr ""

#. type: table
#: doc/guix.texi:16441
msgid ""
"The command @command{internal-sftp} implements an in-process SFTP server.  "
"Alternatively, one can specify the @command{sftp-server} command:"
msgstr ""

#. type: lisp
#: doc/guix.texi:16446
#, no-wrap
msgid ""
"(service openssh-service-type\n"
"         (openssh-configuration\n"
"          (subsystems\n"
"           `((\"sftp\" ,(file-append openssh \"/libexec/sftp-server\"))))))\n"
msgstr ""

#. type: item
#: doc/guix.texi:16448
#, no-wrap
msgid "@code{accepted-environment} (default: @code{'()})"
msgstr ""

#. type: table
#: doc/guix.texi:16450
msgid "List of strings describing which environment variables may be exported."
msgstr ""

#. type: table
#: doc/guix.texi:16453
msgid ""
"Each string gets on its own line.  See the @code{AcceptEnv} option in "
"@code{man sshd_config}."
msgstr ""

#. type: table
#: doc/guix.texi:16458
msgid ""
"This example allows ssh-clients to export the @env{COLORTERM} variable.  It "
"is set by terminal emulators, which support colors.  You can use it in your "
"shell's resource file to enable colors for the prompt and commands if this "
"variable is set."
msgstr ""

#. type: lisp
#: doc/guix.texi:16463
#, no-wrap
msgid ""
"(service openssh-service-type\n"
"         (openssh-configuration\n"
"           (accepted-environment '(\"COLORTERM\"))))\n"
msgstr ""

#. type: item
#: doc/guix.texi:16465
#, no-wrap
msgid "@code{authorized-keys} (default: @code{'()})"
msgstr ""

#. type: cindex
#: doc/guix.texi:16466
#, no-wrap
msgid "authorized keys, SSH"
msgstr ""

#. type: cindex
#: doc/guix.texi:16467
#, no-wrap
msgid "SSH authorized keys"
msgstr ""

#. type: table
#: doc/guix.texi:16471
msgid ""
"This is the list of authorized keys.  Each element of the list is a user "
"name followed by one or more file-like objects that represent SSH public "
"keys.  For example:"
msgstr ""

#. type: lisp
#: doc/guix.texi:16478
#, no-wrap
msgid ""
"(openssh-configuration\n"
"  (authorized-keys\n"
"    `((\"rekado\" ,(local-file \"rekado.pub\"))\n"
"      (\"chris\" ,(local-file \"chris.pub\"))\n"
"      (\"root\" ,(local-file \"rekado.pub\") ,(local-file \"chris.pub\")))))\n"
msgstr ""

#. type: table
#: doc/guix.texi:16483
msgid ""
"registers the specified public keys for user accounts @code{rekado}, "
"@code{chris}, and @code{root}."
msgstr ""

#. type: table
#: doc/guix.texi:16486
msgid ""
"Additional authorized keys can be specified @i{via} @code{service-extension}."
msgstr ""

#. type: table
#: doc/guix.texi:16489
msgid ""
"Note that this does @emph{not} interfere with the use of @file{~/.ssh/"
"authorized_keys}."
msgstr ""

#. type: item
#: doc/guix.texi:16490
#, no-wrap
msgid "@code{log-level} (default: @code{'info})"
msgstr ""

#. type: table
#: doc/guix.texi:16494
msgid ""
"This is a symbol specifying the logging level: @code{quiet}, @code{fatal}, "
"@code{error}, @code{info}, @code{verbose}, @code{debug}, etc.  See the man "
"page for @file{sshd_config} for the full list of level names."
msgstr ""

#. type: item
#: doc/guix.texi:16495 doc/guix.texi:23061
#, no-wrap
msgid "@code{extra-content} (default: @code{\"\"})"
msgstr ""

#. type: table
#: doc/guix.texi:16500
msgid ""
"This field can be used to append arbitrary text to the configuration file.  "
"It is especially useful for elaborate configurations that cannot be "
"expressed otherwise.  This configuration, for example, would generally "
"disable root logins, but permit them from one specific IP address:"
msgstr ""

#. type: lisp
#: doc/guix.texi:16506
#, no-wrap
msgid ""
"(openssh-configuration\n"
"  (extra-content \"\\\n"
"Match Address 192.168.0.1\n"
"  PermitRootLogin yes\"))\n"
msgstr ""

#. type: deffn
#: doc/guix.texi:16511
#, no-wrap
msgid "{Scheme Procedure} dropbear-service [@var{config}]"
msgstr ""

#. type: deffn
#: doc/guix.texi:16515
msgid ""
"Run the @uref{https://matt.ucc.asn.au/dropbear/dropbear.html,Dropbear SSH "
"daemon} with the given @var{config}, a @code{<dropbear-configuration>} "
"object."
msgstr ""

#. type: deffn
#: doc/guix.texi:16518
msgid ""
"For example, to specify a Dropbear service listening on port 1234, add this "
"call to the operating system's @code{services} field:"
msgstr ""

#. type: lisp
#: doc/guix.texi:16522
#, no-wrap
msgid ""
"(dropbear-service (dropbear-configuration\n"
"                    (port-number 1234)))\n"
msgstr ""

#. type: deftp
#: doc/guix.texi:16525
#, no-wrap
msgid "{Data Type} dropbear-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:16527
msgid "This data type represents the configuration of a Dropbear SSH daemon."
msgstr ""

#. type: item
#: doc/guix.texi:16529
#, no-wrap
msgid "@code{dropbear} (default: @var{dropbear})"
msgstr ""

#. type: table
#: doc/guix.texi:16531
msgid "The Dropbear package to use."
msgstr ""

#. type: item
#: doc/guix.texi:16532
#, no-wrap
msgid "@code{port-number} (default: 22)"
msgstr ""

#. type: table
#: doc/guix.texi:16534
msgid "The TCP port where the daemon waits for incoming connections."
msgstr ""

#. type: item
#: doc/guix.texi:16535
#, no-wrap
msgid "@code{syslog-output?} (default: @code{#t})"
msgstr ""

#. type: table
#: doc/guix.texi:16537
msgid "Whether to enable syslog output."
msgstr ""

#. type: item
#: doc/guix.texi:16538
#, no-wrap
msgid "@code{pid-file} (default: @code{\"/var/run/dropbear.pid\"})"
msgstr ""

#. type: table
#: doc/guix.texi:16540
msgid "File name of the daemon's PID file."
msgstr ""

#. type: item
#: doc/guix.texi:16541
#, no-wrap
msgid "@code{root-login?} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:16543
msgid "Whether to allow @code{root} logins."
msgstr ""

#. type: table
#: doc/guix.texi:16546
msgid "Whether to allow empty passwords."
msgstr ""

#. type: table
#: doc/guix.texi:16549
msgid "Whether to enable password-based authentication."
msgstr ""

#. type: cindex
#: doc/guix.texi:16552
#, no-wrap
msgid "AutoSSH"
msgstr ""

#. type: deffn
#: doc/guix.texi:16553
#, no-wrap
msgid "{Scheme Variable} autossh-service-type"
msgstr ""

#. type: deffn
#: doc/guix.texi:16561
msgid ""
"This is the type for the @uref{https://www.harding.motd.ca/autossh, AutoSSH} "
"program that runs a copy of @command{ssh} and monitors it, restarting it as "
"necessary should it die or stop passing traffic.  AutoSSH can be run "
"manually from the command-line by passing arguments to the binary "
"@command{autossh} from the package @code{autossh}, but it can also be run as "
"a Guix service.  This latter use case is documented here."
msgstr ""

#. type: deffn
#: doc/guix.texi:16565
msgid ""
"AutoSSH can be used to forward local traffic to a remote machine using an "
"SSH tunnel, and it respects the @file{~/.ssh/config} of the user it is run "
"as."
msgstr ""

#. type: deffn
#: doc/guix.texi:16570
msgid ""
"For example, to specify a service running autossh as the user @code{pino} "
"and forwarding all local connections to port @code{8081} to "
"@code{remote:8081} using an SSH tunnel, add this call to the operating "
"system's @code{services} field:"
msgstr ""

#. type: lisp
#: doc/guix.texi:16576
#, no-wrap
msgid ""
"(service autossh-service-type\n"
"         (autossh-configuration\n"
"          (user \"pino\")\n"
"          (ssh-options (list \"-T\" \"-N\" \"-L\" \"8081:localhost:8081\" \"remote.net\"))))\n"
msgstr ""

#. type: deftp
#: doc/guix.texi:16579
#, no-wrap
msgid "{Data Type} autossh-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:16581
msgid "This data type represents the configuration of an AutoSSH service."
msgstr ""

#. type: item
#: doc/guix.texi:16584
#, no-wrap
msgid "@code{user} (default @code{\"autossh\"})"
msgstr ""

#. type: table
#: doc/guix.texi:16587
msgid ""
"The user as which the AutoSSH service is to be run.  This assumes that the "
"specified user exists."
msgstr ""

#. type: item
#: doc/guix.texi:16588
#, no-wrap
msgid "@code{poll} (default @code{600})"
msgstr ""

#. type: table
#: doc/guix.texi:16590
msgid "Specifies the connection poll time in seconds."
msgstr ""

#. type: item
#: doc/guix.texi:16591
#, no-wrap
msgid "@code{first-poll} (default @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:16597
msgid ""
"Specifies how many seconds AutoSSH waits before the first connection test.  "
"After this first test, polling is resumed at the pace defined in "
"@code{poll}.  When set to @code{#f}, the first poll is not treated specially "
"and will also use the connection poll specified in @code{poll}."
msgstr ""

#. type: item
#: doc/guix.texi:16598
#, no-wrap
msgid "@code{gate-time} (default @code{30})"
msgstr ""

#. type: table
#: doc/guix.texi:16601
msgid ""
"Specifies how many seconds an SSH connection must be active before it is "
"considered successful."
msgstr ""

#. type: item
#: doc/guix.texi:16602
#, no-wrap
msgid "@code{log-level} (default @code{1})"
msgstr ""

#. type: table
#: doc/guix.texi:16605
msgid ""
"The log level, corresponding to the levels used by syslog---so @code{0} is "
"the most silent while @code{7} is the chattiest."
msgstr ""

#. type: item
#: doc/guix.texi:16606
#, no-wrap
msgid "@code{max-start} (default @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:16609
msgid ""
"The maximum number of times SSH may be (re)started before AutoSSH exits.  "
"When set to @code{#f}, no maximum is configured and AutoSSH may restart "
"indefinitely."
msgstr ""

#. type: item
#: doc/guix.texi:16610
#, no-wrap
msgid "@code{message} (default @code{\"\"})"
msgstr ""

#. type: table
#: doc/guix.texi:16612
msgid ""
"The message to append to the echo message sent when testing connections."
msgstr ""

#. type: item
#: doc/guix.texi:16613
#, no-wrap
msgid "@code{port} (default @code{\"0\"})"
msgstr ""

#. type: table
#: doc/guix.texi:16623
msgid ""
"The ports used for monitoring the connection.  When set to @code{\"0\"}, "
"monitoring is disabled.  When set to @code{\"@var{n}\"} where @var{n} is a "
"positive integer, ports @var{n} and @var{n}+1 are used for monitoring the "
"connection, such that port @var{n} is the base monitoring port and @code{n"
"+1} is the echo port.  When set to @code{\"@var{n}:@var{m}\"} where @var{n} "
"and @var{m} are positive integers, the ports @var{n} and @var{m} are used "
"for monitoring the connection, such that port @var{n} is the base monitoring "
"port and @var{m} is the echo port."
msgstr ""

#. type: item
#: doc/guix.texi:16624
#, no-wrap
msgid "@code{ssh-options} (default @code{'()})"
msgstr ""

#. type: table
#: doc/guix.texi:16628
msgid ""
"The list of command-line arguments to pass to @command{ssh} when it is run.  "
"Options @option{-f} and @option{-M} are reserved for AutoSSH and may cause "
"undefined behaviour."
msgstr ""

#. type: cindex
#: doc/guix.texi:16632
#, no-wrap
msgid "WebSSH"
msgstr ""

#. type: deffn
#: doc/guix.texi:16633
#, no-wrap
msgid "{Scheme Variable} webssh-service-type"
msgstr ""

#. type: deffn
#: doc/guix.texi:16639
msgid ""
"This is the type for the @uref{https://webssh.huashengdun.org/, WebSSH} "
"program that runs a web SSH client.  WebSSH can be run manually from the "
"command-line by passing arguments to the binary @command{wssh} from the "
"package @code{webssh}, but it can also be run as a Guix service.  This "
"latter use case is documented here."
msgstr ""

#. type: deffn
#: doc/guix.texi:16645
msgid ""
"For example, to specify a service running WebSSH on loopback interface on "
"port @code{8888} with reject policy with a list of allowed to connection "
"hosts, and NGINX as a reverse-proxy to this service listening for HTTPS "
"connection, add this call to the operating system's @code{services} field:"
msgstr ""

#. type: lisp
#: doc/guix.texi:16653
#, no-wrap
msgid ""
"(service webssh-service-type\n"
"  (webssh-configuration (address \"127.0.0.1\")\n"
"                        (port 8888)\n"
"                        (policy 'reject)\n"
"                        (known-hosts '(\"localhost ecdsa-sha2-nistp256 AAAA…\"\n"
"                                       \"127.0.0.1 ecdsa-sha2-nistp256 AAAA…\"))))\n"
"\n"
msgstr ""

#. type: lisp
#: doc/guix.texi:16669
#, no-wrap
msgid ""
"(service nginx-service-type\n"
"         (nginx-configuration\n"
"          (server-blocks\n"
"           (list\n"
"            (nginx-server-configuration\n"
"             (inherit %webssh-configuration-nginx)\n"
"             (server-name '(\"webssh.example.com\"))\n"
"             (listen '(\"443 ssl\"))\n"
"             (ssl-certificate (letsencrypt-certificate \"webssh.example.com\"))\n"
"             (ssl-certificate-key (letsencrypt-key \"webssh.example.com\"))\n"
"             (locations\n"
"              (cons (nginx-location-configuration\n"
"                     (uri \"/.well-known\")\n"
"                     (body '(\"root /var/www;\")))\n"
"                    (nginx-server-configuration-locations %webssh-configuration-nginx))))))))\n"
msgstr ""

#. type: deftp
#: doc/guix.texi:16672
#, no-wrap
msgid "{Data Type} webssh-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:16674
msgid "Data type representing the configuration for @code{webssh-service}."
msgstr ""

#. type: item
#: doc/guix.texi:16676
#, no-wrap
msgid "@code{package} (default: @var{webssh})"
msgstr ""

#. type: table
#: doc/guix.texi:16678
msgid "@code{webssh} package to use."
msgstr ""

#. type: item
#: doc/guix.texi:16679
#, no-wrap
msgid "@code{user-name} (default: @var{\"webssh\"})"
msgstr ""

#. type: table
#: doc/guix.texi:16682
msgid ""
"User name or user ID that file transfers to and from that module should take "
"place."
msgstr ""

#. type: item
#: doc/guix.texi:16683
#, no-wrap
msgid "@code{group-name} (default: @var{\"webssh\"})"
msgstr ""

#. type: item
#: doc/guix.texi:16686
#, no-wrap
msgid "@code{address} (default: @var{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:16688
msgid "IP address on which @command{webssh} listens for incoming connections."
msgstr ""

#. type: item
#: doc/guix.texi:16689
#, no-wrap
msgid "@code{port} (default: @var{8888})"
msgstr ""

#. type: table
#: doc/guix.texi:16691
msgid "TCP port on which @command{webssh} listens for incoming connections."
msgstr ""

#. type: item
#: doc/guix.texi:16692
#, no-wrap
msgid "@code{policy} (default: @var{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:16694
msgid ""
"Connection policy.  @var{reject} policy requires to specify @var{known-"
"hosts}."
msgstr ""

#. type: item
#: doc/guix.texi:16695
#, no-wrap
msgid "@code{known-hosts} (default: @var{'()})"
msgstr ""

#. type: table
#: doc/guix.texi:16697
msgid "List of hosts which allowed for SSH connection from @command{webssh}."
msgstr ""

#. type: item
#: doc/guix.texi:16698
#, no-wrap
msgid "@code{log-file} (default: @file{\"/var/log/webssh.log\"})"
msgstr ""

#. type: item
#: doc/guix.texi:16701
#, no-wrap
msgid "@code{log-level} (default: @var{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:16703
msgid "Logging level."
msgstr ""

#. type: defvr
#: doc/guix.texi:16707
#, no-wrap
msgid "{Scheme Variable} %facebook-host-aliases"
msgstr ""

#. type: defvr
#: doc/guix.texi:16713
msgid ""
"This variable contains a string for use in @file{/etc/hosts} (@pxref{Host "
"Names,,, libc, The GNU C Library Reference Manual}).  Each line contains a "
"entry that maps a known server name of the Facebook on-line service---e.g., "
"@code{www.facebook.com}---to the local host---@code{127.0.0.1} or its IPv6 "
"equivalent, @code{::1}."
msgstr ""

#. type: defvr
#: doc/guix.texi:16717
msgid ""
"This variable is typically used in the @code{hosts-file} field of an "
"@code{operating-system} declaration (@pxref{operating-system Reference, "
"@file{/etc/hosts}}):"
msgstr ""

#. type: lisp
#: doc/guix.texi:16730
#, no-wrap
msgid ""
"(operating-system\n"
"  (host-name \"mymachine\")\n"
"  ;; ...\n"
"  (hosts-file\n"
"    ;; Create a /etc/hosts file with aliases for \"localhost\"\n"
"    ;; and \"mymachine\", as well as for Facebook servers.\n"
"    (plain-file \"hosts\"\n"
"                (string-append (local-host-aliases host-name)\n"
"                               %facebook-host-aliases))))\n"
msgstr ""

#. type: defvr
#: doc/guix.texi:16734
msgid ""
"This mechanism can prevent programs running locally, such as Web browsers, "
"from accessing Facebook."
msgstr ""

#. type: Plain text
#: doc/guix.texi:16737
msgid "The @code{(gnu services avahi)} provides the following definition."
msgstr ""

#. type: defvr
#: doc/guix.texi:16738
#, no-wrap
msgid "{Scheme Variable} avahi-service-type"
msgstr ""

#. type: defvr
#: doc/guix.texi:16743
msgid ""
"This is the service that runs @command{avahi-daemon}, a system-wide mDNS/DNS-"
"SD responder that allows for service discovery and ``zero-configuration'' "
"host name lookups (see @uref{https://avahi.org/}).  Its value must be an "
"@code{avahi-configuration} record---see below."
msgstr ""

#. type: defvr
#: doc/guix.texi:16748
msgid ""
"This service extends the name service cache daemon (nscd) so that it can "
"resolve @code{.local} host names using @uref{https://0pointer.de/lennart/"
"projects/nss-mdns/, nss-mdns}.  @xref{Name Service Switch}, for information "
"on host name resolution."
msgstr ""

#. type: defvr
#: doc/guix.texi:16751
msgid ""
"Additionally, add the @var{avahi} package to the system profile so that "
"commands such as @command{avahi-browse} are directly usable."
msgstr ""

#. type: deftp
#: doc/guix.texi:16753
#, no-wrap
msgid "{Data Type} avahi-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:16755
msgid "Data type representation the configuration for Avahi."
msgstr ""

#. type: item
#: doc/guix.texi:16758
#, no-wrap
msgid "@code{host-name} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:16761
msgid ""
"If different from @code{#f}, use that as the host name to publish for this "
"machine; otherwise, use the machine's actual host name."
msgstr ""

#. type: item
#: doc/guix.texi:16762
#, no-wrap
msgid "@code{publish?} (default: @code{#t})"
msgstr ""

#. type: table
#: doc/guix.texi:16765
msgid ""
"When true, allow host names and services to be published (broadcast) over "
"the network."
msgstr ""

#. type: item
#: doc/guix.texi:16766
#, no-wrap
msgid "@code{publish-workstation?} (default: @code{#t})"
msgstr ""

#. type: table
#: doc/guix.texi:16770
msgid ""
"When true, @command{avahi-daemon} publishes the machine's host name and IP "
"address via mDNS on the local network.  To view the host names published on "
"your local network, you can run:"
msgstr ""

#. type: example
#: doc/guix.texi:16773
#, no-wrap
msgid "avahi-browse _workstation._tcp\n"
msgstr ""

#. type: item
#: doc/guix.texi:16775
#, no-wrap
msgid "@code{wide-area?} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:16777
msgid "When true, DNS-SD over unicast DNS is enabled."
msgstr ""

#. type: item
#: doc/guix.texi:16778
#, no-wrap
msgid "@code{ipv4?} (default: @code{#t})"
msgstr ""

#. type: itemx
#: doc/guix.texi:16779
#, no-wrap
msgid "@code{ipv6?} (default: @code{#t})"
msgstr ""

#. type: table
#: doc/guix.texi:16781
msgid "These fields determine whether to use IPv4/IPv6 sockets."
msgstr ""

#. type: item
#: doc/guix.texi:16782
#, no-wrap
msgid "@code{domains-to-browse} (default: @code{'()})"
msgstr ""

#. type: table
#: doc/guix.texi:16784
msgid "This is a list of domains to browse."
msgstr ""

#. type: deffn
#: doc/guix.texi:16787
#, no-wrap
msgid "{Scheme Variable} openvswitch-service-type"
msgstr ""

#. type: deffn
#: doc/guix.texi:16791
msgid ""
"This is the type of the @uref{https://www.openvswitch.org, Open vSwitch} "
"service, whose value should be an @code{openvswitch-configuration} object."
msgstr ""

#. type: deftp
#: doc/guix.texi:16793
#, no-wrap
msgid "{Data Type} openvswitch-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:16797
msgid ""
"Data type representing the configuration of Open vSwitch, a multilayer "
"virtual switch which is designed to enable massive network automation "
"through programmatic extension."
msgstr ""

#. type: item
#: doc/guix.texi:16799
#, no-wrap
msgid "@code{package} (default: @var{openvswitch})"
msgstr ""

#. type: table
#: doc/guix.texi:16801
msgid "Package object of the Open vSwitch."
msgstr ""

#. type: defvr
#: doc/guix.texi:16805
#, no-wrap
msgid "{Scheme Variable} pagekite-service-type"
msgstr ""

#. type: defvr
#: doc/guix.texi:16810
msgid ""
"This is the service type for the @uref{https://pagekite.net, PageKite} "
"service, a tunneling solution for making localhost servers publicly visible, "
"even from behind restrictive firewalls or NAT without forwarded ports.  The "
"value for this service type is a @code{pagekite-configuration} record."
msgstr ""

#. type: defvr
#: doc/guix.texi:16812
msgid "Here's an example exposing the local HTTP and SSH daemons:"
msgstr ""

#. type: lisp
#: doc/guix.texi:16819
#, no-wrap
msgid ""
"(service pagekite-service-type\n"
"         (pagekite-configuration\n"
"           (kites '(\"http:@@kitename:localhost:80:@@kitesecret\"\n"
"                    \"raw/22:@@kitename:localhost:22:@@kitesecret\"))\n"
"           (extra-file \"/etc/pagekite.rc\")))\n"
msgstr ""

#. type: deftp
#: doc/guix.texi:16822
#, no-wrap
msgid "{Data Type} pagekite-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:16824
msgid "Data type representing the configuration of PageKite."
msgstr ""

#. type: item
#: doc/guix.texi:16826
#, no-wrap
msgid "@code{package} (default: @var{pagekite})"
msgstr ""

#. type: table
#: doc/guix.texi:16828
msgid "Package object of PageKite."
msgstr ""

#. type: item
#: doc/guix.texi:16829
#, no-wrap
msgid "@code{kitename} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:16831
msgid "PageKite name for authenticating to the frontend server."
msgstr ""

#. type: item
#: doc/guix.texi:16832
#, no-wrap
msgid "@code{kitesecret} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:16835
msgid ""
"Shared secret for authenticating to the frontend server.  You should "
"probably put this inside @code{extra-file} instead."
msgstr ""

#. type: item
#: doc/guix.texi:16836
#, no-wrap
msgid "@code{frontend} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:16839
msgid ""
"Connect to the named PageKite frontend server instead of the @uref{https://"
"pagekite.net,,pagekite.net} service."
msgstr ""

#. type: item
#: doc/guix.texi:16840
#, no-wrap
msgid "@code{kites} (default: @code{'(\"http:@@kitename:localhost:80:@@kitesecret\")})"
msgstr ""

#. type: table
#: doc/guix.texi:16843
msgid ""
"List of service kites to use.  Exposes HTTP on port 80 by default. The "
"format is @code{proto:kitename:host:port:secret}."
msgstr ""

#. type: item
#: doc/guix.texi:16844
#, no-wrap
msgid "@code{extra-file} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:16847
msgid ""
"Extra configuration file to read, which you are expected to create "
"manually.  Use this to add additional options and manage shared secrets out-"
"of-band."
msgstr ""

#. type: cindex
#: doc/guix.texi:16854
#, no-wrap
msgid "unattended upgrades"
msgstr ""

#. type: cindex
#: doc/guix.texi:16855
#, no-wrap
msgid "upgrades, unattended"
msgstr ""

#. type: Plain text
#: doc/guix.texi:16860
msgid ""
"Guix provides a service to perform @emph{unattended upgrades}: periodically, "
"the system automatically reconfigures itself from the latest Guix.  Guix "
"System has several properties that make unattended upgrades safe:"
msgstr ""

#. type: itemize
#: doc/guix.texi:16865
msgid ""
"upgrades are transactional (either the upgrade succeeds or it fails, but you "
"cannot end up with an ``in-between'' system state);"
msgstr ""

#. type: itemize
#: doc/guix.texi:16869
msgid ""
"the upgrade log is kept---you can view it with @command{guix system list-"
"generations}---and you can roll back to any previous generation, should the "
"upgraded system fail to behave as intended;"
msgstr ""

#. type: itemize
#: doc/guix.texi:16872
msgid ""
"channel code is authenticated so you know you can only run genuine code "
"(@pxref{Channels});"
msgstr ""

#. type: itemize
#: doc/guix.texi:16875
msgid ""
"@command{guix system reconfigure} prevents downgrades, which makes it immune "
"to @dfn{downgrade attacks}."
msgstr ""

#. type: Plain text
#: doc/guix.texi:16880
msgid ""
"To set up unattended upgrades, add an instance of @code{unattended-upgrade-"
"service-type} like the one below to the list of your operating system "
"services:"
msgstr ""

#. type: lisp
#: doc/guix.texi:16883
#, no-wrap
msgid "(service unattended-upgrade-service-type)\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:16890
msgid ""
"The defaults above set up weekly upgrades: every Sunday at midnight.  You do "
"not need to provide the operating system configuration file: it uses @file{/"
"run/current-system/configuration.scm}, which ensures it always uses your "
"latest configuration---@pxref{provenance-service-type}, for more information "
"about this file."
msgstr ""

#. type: Plain text
#: doc/guix.texi:16896
msgid ""
"There are several things that can be configured, in particular the "
"periodicity and services (daemons) to be restarted upon completion.  When "
"the upgrade is successful, the service takes care of deleting system "
"generations older that some threshold, as per @command{guix system delete-"
"generations}.  See the reference below for details."
msgstr ""

#. type: Plain text
#: doc/guix.texi:16900
msgid ""
"To ensure that upgrades are actually happening, you can run @command{guix "
"system describe}.  To investigate upgrade failures, visit the unattended "
"upgrade log file (see below)."
msgstr ""

#. type: defvr
#: doc/guix.texi:16901
#, no-wrap
msgid "{Scheme Variable} unattended-upgrade-service-type"
msgstr ""

#. type: defvr
#: doc/guix.texi:16905
msgid ""
"This is the service type for unattended upgrades.  It sets up an mcron job "
"(@pxref{Scheduled Job Execution}) that runs @command{guix system "
"reconfigure} from the latest version of the specified channels."
msgstr ""

#. type: defvr
#: doc/guix.texi:16908
msgid ""
"Its value must be a @code{unattended-upgrade-configuration} record (see "
"below)."
msgstr ""

#. type: deftp
#: doc/guix.texi:16910
#, no-wrap
msgid "{Data Type} unattended-upgrade-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:16913
msgid ""
"This data type represents the configuration of the unattended upgrade "
"service.  The following fields are available:"
msgstr ""

#. type: item
#: doc/guix.texi:16915
#, no-wrap
msgid "@code{schedule} (default: @code{\"30 01 * * 0\"})"
msgstr ""

#. type: table
#: doc/guix.texi:16919
msgid ""
"This is the schedule of upgrades, expressed as a gexp containing an mcron "
"job schedule (@pxref{Guile Syntax, mcron job specifications,, mcron, "
"GNU@tie{}mcron})."
msgstr ""

#. type: item
#: doc/guix.texi:16920
#, no-wrap
msgid "@code{channels} (default: @code{#~%default-channels})"
msgstr ""

#. type: table
#: doc/guix.texi:16924
msgid ""
"This gexp specifies the channels to use for the upgrade (@pxref{Channels}).  "
"By default, the tip of the official @code{guix} channel is used."
msgstr ""

#. type: item
#: doc/guix.texi:16925
#, no-wrap
msgid "@code{operating-system-file} (default: @code{\"/run/current-system/configuration.scm\"})"
msgstr ""

#. type: table
#: doc/guix.texi:16928
msgid ""
"This field specifies the operating system configuration file to use.  The "
"default is to reuse the config file of the current configuration."
msgstr ""

#. type: table
#: doc/guix.texi:16934
msgid ""
"There are cases, though, where referring to @file{/run/current-system/"
"configuration.scm} is not enough, for instance because that file refers to "
"extra files (SSH public keys, extra configuration files, etc.) @i{via} "
"@code{local-file} and similar constructs.  For those cases, we recommend "
"something along these lines:"
msgstr ""

#. type: lisp
#: doc/guix.texi:16940
#, no-wrap
msgid ""
"(unattended-upgrade-configuration\n"
"  (operating-system-file\n"
"    (file-append (local-file \".\" \"config-dir\" #:recursive? #t)\n"
"                 \"/config.scm\")))\n"
msgstr ""

#. type: table
#: doc/guix.texi:16947
msgid ""
"The effect here is to import all of the current directory into the store, "
"and to refer to @file{config.scm} within that directory.  Therefore, uses of "
"@code{local-file} within @file{config.scm} will work as expected.  @xref{G-"
"Expressions}, for information about @code{local-file} and @code{file-append}."
msgstr ""

#. type: item
#: doc/guix.texi:16948
#, no-wrap
msgid "@code{services-to-restart} (default: @code{'(mcron)})"
msgstr ""

#. type: table
#: doc/guix.texi:16951
msgid ""
"This field specifies the Shepherd services to restart when the upgrade "
"completes."
msgstr ""

#. type: table
#: doc/guix.texi:16958
msgid ""
"Those services are restarted right away upon completion, as with "
"@command{herd restart}, which ensures that the latest version is running---"
"remember that by default @command{guix system reconfigure} only restarts "
"services that are not currently running, which is conservative: it minimizes "
"disruption but leaves outdated services running."
msgstr ""

#. type: table
#: doc/guix.texi:16961
msgid ""
"By default, the @code{mcron} service is restarted.  This ensures that the "
"latest version of the unattended upgrade job will be used next time."
msgstr ""

#. type: item
#: doc/guix.texi:16962
#, no-wrap
msgid "@code{system-expiration} (default: @code{(* 3 30 24 3600)})"
msgstr ""

#. type: table
#: doc/guix.texi:16966
msgid ""
"This is the expiration time in seconds for system generations.  System "
"generations older that this amount of time are deleted with @command{guix "
"system delete-generations} when an upgrade completes."
msgstr ""

#. type: quotation
#: doc/guix.texi:16971
msgid ""
"The unattended upgrade service does not run the garbage collector.  You will "
"probably want to set up your own mcron job to run @command{guix gc} "
"periodically."
msgstr ""

#. type: item
#: doc/guix.texi:16973
#, no-wrap
msgid "@code{maximum-duration} (default: @code{3600})"
msgstr ""

#. type: table
#: doc/guix.texi:16976
msgid ""
"Maximum duration in seconds for the upgrade; past that time, the upgrade "
"aborts."
msgstr ""

#. type: table
#: doc/guix.texi:16979
msgid ""
"This is primarily useful to ensure the upgrade does not end up rebuilding or "
"re-downloading ``the world''."
msgstr ""

#. type: item
#: doc/guix.texi:16980
#, no-wrap
msgid "@code{log-file} (default: @code{\"/var/log/unattended-upgrade.log\"})"
msgstr ""

#. type: table
#: doc/guix.texi:16982
msgid "File where unattended upgrades are logged."
msgstr ""

#. type: cindex
#: doc/guix.texi:16988
#, no-wrap
msgid "X11"
msgstr ""

#. type: cindex
#: doc/guix.texi:16989
#, no-wrap
msgid "X Window System"
msgstr ""

#. type: cindex
#: doc/guix.texi:16990 doc/guix.texi:17243
#, no-wrap
msgid "login manager"
msgstr ""

#. type: Plain text
#: doc/guix.texi:16995
msgid ""
"Support for the X Window graphical display system---specifically Xorg---is "
"provided by the @code{(gnu services xorg)} module.  Note that there is no "
"@code{xorg-service} procedure.  Instead, the X server is started by the "
"@dfn{login manager}, by default the GNOME Display Manager (GDM)."
msgstr ""

#. type: cindex
#: doc/guix.texi:16996
#, no-wrap
msgid "GDM"
msgstr ""

#. type: cindex
#: doc/guix.texi:16997
#, no-wrap
msgid "GNOME, login manager"
msgstr ""

#. type: Plain text
#: doc/guix.texi:17001
msgid ""
"GDM of course allows users to log in into window managers and desktop "
"environments other than GNOME; for those using GNOME, GDM is required for "
"features such as automatic screen locking."
msgstr ""

#. type: cindex
#: doc/guix.texi:17002
#, no-wrap
msgid "window manager"
msgstr ""

#. type: Plain text
#: doc/guix.texi:17007
msgid ""
"To use X11, you must install at least one @dfn{window manager}---for example "
"the @code{windowmaker} or @code{openbox} packages---preferably by adding it "
"to the @code{packages} field of your operating system definition "
"(@pxref{operating-system Reference, system-wide packages})."
msgstr ""

#. type: defvr
#: doc/guix.texi:17008
#, no-wrap
msgid "{Scheme Variable} gdm-service-type"
msgstr ""

#. type: defvr
#: doc/guix.texi:17013
msgid ""
"This is the type for the @uref{https://wiki.gnome.org/Projects/GDM/, GNOME "
"Desktop Manager} (GDM), a program that manages graphical display servers and "
"handles graphical user logins.  Its value must be a @code{gdm-configuration} "
"(see below)."
msgstr ""

#. type: cindex
#: doc/guix.texi:17014
#, no-wrap
msgid "session types (X11)"
msgstr ""

#. type: cindex
#: doc/guix.texi:17015
#, no-wrap
msgid "X11 session types"
msgstr ""

#. type: defvr
#: doc/guix.texi:17021
msgid ""
"GDM looks for @dfn{session types} described by the @file{.desktop} files in "
"@file{/run/current-system/profile/share/xsessions} and allows users to "
"choose a session from the log-in screen.  Packages such as @code{gnome}, "
"@code{xfce}, and @code{i3} provide @file{.desktop} files; adding them to the "
"system-wide set of packages automatically makes them available at the log-in "
"screen."
msgstr ""

#. type: defvr
#: doc/guix.texi:17025
msgid ""
"In addition, @file{~/.xsession} files are honored.  When available, @file{~/."
"xsession} must be an executable that starts a window manager and/or other X "
"clients."
msgstr ""

#. type: deftp
#: doc/guix.texi:17027
#, no-wrap
msgid "{Data Type} gdm-configuration"
msgstr ""

#. type: item
#: doc/guix.texi:17029 doc/guix.texi:17098
#, no-wrap
msgid "@code{auto-login?} (default: @code{#f})"
msgstr ""

#. type: itemx
#: doc/guix.texi:17030
#, no-wrap
msgid "@code{default-user} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:17032
msgid "When @code{auto-login?} is false, GDM presents a log-in screen."
msgstr ""

#. type: table
#: doc/guix.texi:17035
msgid ""
"When @code{auto-login?} is true, GDM logs in directly as @code{default-user}."
msgstr ""

#. type: item
#: doc/guix.texi:17036 doc/guix.texi:21676 doc/guix.texi:23378
#: doc/guix.texi:27426 doc/guix.texi:27455 doc/guix.texi:27484
#: doc/guix.texi:27511 doc/guix.texi:27566 doc/guix.texi:27591
#: doc/guix.texi:27618 doc/guix.texi:27644 doc/guix.texi:27686
#, no-wrap
msgid "@code{debug?} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:17038
msgid "When true, GDM writes debug messages to its log."
msgstr ""

#. type: item
#: doc/guix.texi:17039
#, no-wrap
msgid "@code{gnome-shell-assets} (default: ...)"
msgstr ""

#. type: table
#: doc/guix.texi:17041
msgid "List of GNOME Shell assets needed by GDM: icon theme, fonts, etc."
msgstr ""

#. type: item
#: doc/guix.texi:17042
#, no-wrap
msgid "@code{xorg-configuration} (default: @code{(xorg-configuration)})"
msgstr ""

#. type: table
#: doc/guix.texi:17044 doc/guix.texi:17125 doc/guix.texi:17209
msgid "Configuration of the Xorg graphical server."
msgstr ""

#. type: item
#: doc/guix.texi:17045
#, no-wrap
msgid "@code{xsession} (default: @code{(xinitrc)})"
msgstr ""

#. type: table
#: doc/guix.texi:17047 doc/guix.texi:17224
msgid "Script to run before starting a X session."
msgstr ""

#. type: item
#: doc/guix.texi:17048
#, no-wrap
msgid "@code{dbus-daemon} (default: @code{dbus-daemon-wrapper})"
msgstr ""

#. type: table
#: doc/guix.texi:17050
msgid "File name of the @code{dbus-daemon} executable."
msgstr ""

#. type: item
#: doc/guix.texi:17051
#, no-wrap
msgid "@code{gdm} (default: @code{gdm})"
msgstr ""

#. type: table
#: doc/guix.texi:17053
msgid "The GDM package to use."
msgstr ""

#. type: defvr
#: doc/guix.texi:17056
#, no-wrap
msgid "{Scheme Variable} slim-service-type"
msgstr ""

#. type: defvr
#: doc/guix.texi:17058
msgid "This is the type for the SLiM graphical login manager for X11."
msgstr ""

#. type: defvr
#: doc/guix.texi:17062
msgid ""
"Like GDM, SLiM looks for session types described by @file{.desktop} files "
"and allows users to choose a session from the log-in screen using @kbd{F1}.  "
"It also honors @file{~/.xsession} files."
msgstr ""

#. type: defvr
#: doc/guix.texi:17069
msgid ""
"Unlike GDM, SLiM does not spawn the user session on a different VT after "
"logging in, which means that you can only start one graphical session.  If "
"you want to be able to run multiple graphical sessions at the same time you "
"have to add multiple SLiM services to your system services.  The following "
"example shows how to replace the default GDM service with two SLiM services "
"on tty7 and tty8."
msgstr ""

#. type: lisp
#: doc/guix.texi:17075
#, no-wrap
msgid ""
"(use-modules (gnu services)\n"
"             (gnu services desktop)\n"
"             (gnu services xorg)\n"
"             (srfi srfi-1))  ;for 'remove'\n"
"\n"
msgstr ""

#. type: lisp
#: doc/guix.texi:17087
#, no-wrap
msgid ""
"(operating-system\n"
"  ;; ...\n"
"  (services (cons* (service slim-service-type (slim-configuration\n"
"                                               (display \":0\")\n"
"                                               (vt \"vt7\")))\n"
"                   (service slim-service-type (slim-configuration\n"
"                                               (display \":1\")\n"
"                                               (vt \"vt8\")))\n"
"                   (remove (lambda (service)\n"
"                             (eq? (service-kind service) gdm-service-type))\n"
"                           %desktop-services))))\n"
msgstr ""

#. type: deftp
#: doc/guix.texi:17091
#, no-wrap
msgid "{Data Type} slim-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:17093
msgid "Data type representing the configuration of @code{slim-service-type}."
msgstr ""

#. type: table
#: doc/guix.texi:17097
msgid "Whether to allow logins with empty passwords."
msgstr ""

#. type: itemx
#: doc/guix.texi:17099
#, no-wrap
msgid "@code{default-user} (default: @code{\"\"})"
msgstr ""

#. type: table
#: doc/guix.texi:17101
msgid "When @code{auto-login?} is false, SLiM presents a log-in screen."
msgstr ""

#. type: table
#: doc/guix.texi:17104
msgid ""
"When @code{auto-login?} is true, SLiM logs in directly as @code{default-"
"user}."
msgstr ""

#. type: item
#: doc/guix.texi:17105
#, no-wrap
msgid "@code{theme} (default: @code{%default-slim-theme})"
msgstr ""

#. type: itemx
#: doc/guix.texi:17106
#, no-wrap
msgid "@code{theme-name} (default: @code{%default-slim-theme-name})"
msgstr ""

#. type: table
#: doc/guix.texi:17108
msgid "The graphical theme to use and its name."
msgstr ""

#. type: item
#: doc/guix.texi:17109
#, no-wrap
msgid "@code{auto-login-session} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:17112
msgid ""
"If true, this must be the name of the executable to start as the default "
"session---e.g., @code{(file-append windowmaker \"/bin/windowmaker\")}."
msgstr ""

#. type: table
#: doc/guix.texi:17116
msgid ""
"If false, a session described by one of the available @file{.desktop} files "
"in @code{/run/current-system/profile} and @code{~/.guix-profile} will be "
"used."
msgstr ""

#. type: quotation
#: doc/guix.texi:17121
msgid ""
"You must install at least one window manager in the system profile or in "
"your user profile.  Failing to do that, if @code{auto-login-session} is "
"false, you will be unable to log in."
msgstr ""

#. type: item
#: doc/guix.texi:17123 doc/guix.texi:17207
#, no-wrap
msgid "@code{xorg-configuration} (default @code{(xorg-configuration)})"
msgstr ""

#. type: item
#: doc/guix.texi:17126
#, no-wrap
msgid "@code{display} (default @code{\":0\"})"
msgstr ""

#. type: table
#: doc/guix.texi:17128
msgid "The display on which to start the Xorg graphical server."
msgstr ""

#. type: item
#: doc/guix.texi:17129
#, no-wrap
msgid "@code{vt} (default @code{\"vt7\"})"
msgstr ""

#. type: table
#: doc/guix.texi:17131
msgid "The VT on which to start the Xorg graphical server."
msgstr ""

#. type: item
#: doc/guix.texi:17132
#, no-wrap
msgid "@code{xauth} (default: @code{xauth})"
msgstr ""

#. type: table
#: doc/guix.texi:17134
msgid "The XAuth package to use."
msgstr ""

#. type: item
#: doc/guix.texi:17135
#, no-wrap
msgid "@code{shepherd} (default: @code{shepherd})"
msgstr ""

#. type: table
#: doc/guix.texi:17138
msgid ""
"The Shepherd package used when invoking @command{halt} and @command{reboot}."
msgstr ""

#. type: item
#: doc/guix.texi:17139
#, no-wrap
msgid "@code{sessreg} (default: @code{sessreg})"
msgstr ""

#. type: table
#: doc/guix.texi:17141
msgid "The sessreg package used in order to register the session."
msgstr ""

#. type: item
#: doc/guix.texi:17142
#, no-wrap
msgid "@code{slim} (default: @code{slim})"
msgstr ""

#. type: table
#: doc/guix.texi:17144
msgid "The SLiM package to use."
msgstr ""

#. type: defvr
#: doc/guix.texi:17147
#, no-wrap
msgid "{Scheme Variable} %default-theme"
msgstr ""

#. type: defvrx
#: doc/guix.texi:17148
#, no-wrap
msgid "{Scheme Variable} %default-theme-name"
msgstr ""

#. type: defvr
#: doc/guix.texi:17150
msgid "The default SLiM theme and its name."
msgstr ""

#. type: deftp
#: doc/guix.texi:17153 doc/guix.texi:17260
#, no-wrap
msgid "{Data Type} sddm-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:17155
msgid "This is the data type representing the SDDM service configuration."
msgstr ""

#. type: item
#: doc/guix.texi:17157
#, no-wrap
msgid "@code{display-server} (default: \"x11\")"
msgstr ""

#. type: table
#: doc/guix.texi:17160
msgid ""
"Select display server to use for the greeter.  Valid values are "
"@samp{\"x11\"} or @samp{\"wayland\"}."
msgstr ""

#. type: item
#: doc/guix.texi:17161
#, no-wrap
msgid "@code{numlock} (default: \"on\")"
msgstr ""

#. type: table
#: doc/guix.texi:17163
msgid "Valid values are @samp{\"on\"}, @samp{\"off\"} or @samp{\"none\"}."
msgstr ""

#. type: item
#: doc/guix.texi:17164
#, no-wrap
msgid "@code{halt-command} (default @code{#~(string-apppend #$shepherd \"/sbin/halt\")})"
msgstr ""

#. type: table
#: doc/guix.texi:17166
msgid "Command to run when halting."
msgstr ""

#. type: item
#: doc/guix.texi:17167
#, no-wrap
msgid "@code{reboot-command} (default @code{#~(string-append #$shepherd \"/sbin/reboot\")})"
msgstr ""

#. type: table
#: doc/guix.texi:17169
msgid "Command to run when rebooting."
msgstr ""

#. type: item
#: doc/guix.texi:17170
#, no-wrap
msgid "@code{theme} (default \"maldives\")"
msgstr ""

#. type: table
#: doc/guix.texi:17173
msgid ""
"Theme to use.  Default themes provided by SDDM are @samp{\"elarun\"}, "
"@samp{\"maldives\"} or @samp{\"maya\"}."
msgstr ""

#. type: item
#: doc/guix.texi:17174
#, no-wrap
msgid "@code{themes-directory} (default \"/run/current-system/profile/share/sddm/themes\")"
msgstr ""

#. type: table
#: doc/guix.texi:17176
msgid "Directory to look for themes."
msgstr ""

#. type: item
#: doc/guix.texi:17177
#, no-wrap
msgid "@code{faces-directory} (default \"/run/current-system/profile/share/sddm/faces\")"
msgstr ""

#. type: table
#: doc/guix.texi:17179
msgid "Directory to look for faces."
msgstr ""

#. type: item
#: doc/guix.texi:17180
#, no-wrap
msgid "@code{default-path} (default \"/run/current-system/profile/bin\")"
msgstr ""

#. type: table
#: doc/guix.texi:17182
msgid "Default PATH to use."
msgstr ""

#. type: item
#: doc/guix.texi:17183
#, no-wrap
msgid "@code{minimum-uid} (default: 1000)"
msgstr ""

#. type: table
#: doc/guix.texi:17185
msgid "Minimum UID displayed in SDDM and allowed for log-in."
msgstr ""

#. type: item
#: doc/guix.texi:17186
#, no-wrap
msgid "@code{maximum-uid} (default: 2000)"
msgstr ""

#. type: table
#: doc/guix.texi:17188
msgid "Maximum UID to display in SDDM."
msgstr ""

#. type: item
#: doc/guix.texi:17189
#, no-wrap
msgid "@code{remember-last-user?} (default #t)"
msgstr ""

#. type: table
#: doc/guix.texi:17191
msgid "Remember last user."
msgstr ""

#. type: item
#: doc/guix.texi:17192
#, no-wrap
msgid "@code{remember-last-session?} (default #t)"
msgstr ""

#. type: table
#: doc/guix.texi:17194
msgid "Remember last session."
msgstr ""

#. type: item
#: doc/guix.texi:17195
#, no-wrap
msgid "@code{hide-users} (default \"\")"
msgstr ""

#. type: table
#: doc/guix.texi:17197
msgid "Usernames to hide from SDDM greeter."
msgstr ""

#. type: item
#: doc/guix.texi:17198
#, no-wrap
msgid "@code{hide-shells} (default @code{#~(string-append #$shadow \"/sbin/nologin\")})"
msgstr ""

#. type: table
#: doc/guix.texi:17200
msgid "Users with shells listed will be hidden from the SDDM greeter."
msgstr ""

#. type: item
#: doc/guix.texi:17201
#, no-wrap
msgid "@code{session-command} (default @code{#~(string-append #$sddm \"/share/sddm/scripts/wayland-session\")})"
msgstr ""

#. type: table
#: doc/guix.texi:17203
msgid "Script to run before starting a wayland session."
msgstr ""

#. type: item
#: doc/guix.texi:17204
#, no-wrap
msgid "@code{sessions-directory} (default \"/run/current-system/profile/share/wayland-sessions\")"
msgstr ""

#. type: table
#: doc/guix.texi:17206
msgid "Directory to look for desktop files starting wayland sessions."
msgstr ""

#. type: item
#: doc/guix.texi:17210
#, no-wrap
msgid "@code{xauth-path} (default @code{#~(string-append #$xauth \"/bin/xauth\")})"
msgstr ""

#. type: table
#: doc/guix.texi:17212
msgid "Path to xauth."
msgstr ""

#. type: item
#: doc/guix.texi:17213
#, no-wrap
msgid "@code{xephyr-path} (default @code{#~(string-append #$xorg-server \"/bin/Xephyr\")})"
msgstr ""

#. type: table
#: doc/guix.texi:17215
msgid "Path to Xephyr."
msgstr ""

#. type: item
#: doc/guix.texi:17216
#, no-wrap
msgid "@code{xdisplay-start} (default @code{#~(string-append #$sddm \"/share/sddm/scripts/Xsetup\")})"
msgstr ""

#. type: table
#: doc/guix.texi:17218
msgid "Script to run after starting xorg-server."
msgstr ""

#. type: item
#: doc/guix.texi:17219
#, no-wrap
msgid "@code{xdisplay-stop} (default @code{#~(string-append #$sddm \"/share/sddm/scripts/Xstop\")})"
msgstr ""

#. type: table
#: doc/guix.texi:17221
msgid "Script to run before stopping xorg-server."
msgstr ""

#. type: item
#: doc/guix.texi:17222
#, no-wrap
msgid "@code{xsession-command} (default: @code{xinitrc})"
msgstr ""

#. type: item
#: doc/guix.texi:17225
#, no-wrap
msgid "@code{xsessions-directory} (default: \"/run/current-system/profile/share/xsessions\")"
msgstr ""

#. type: table
#: doc/guix.texi:17227
msgid "Directory to look for desktop files starting X sessions."
msgstr ""

#. type: item
#: doc/guix.texi:17228
#, no-wrap
msgid "@code{minimum-vt} (default: 7)"
msgstr ""

#. type: table
#: doc/guix.texi:17230
msgid "Minimum VT to use."
msgstr ""

#. type: item
#: doc/guix.texi:17231
#, no-wrap
msgid "@code{auto-login-user} (default \"\")"
msgstr ""

#. type: table
#: doc/guix.texi:17233
msgid "User to use for auto-login."
msgstr ""

#. type: item
#: doc/guix.texi:17234
#, no-wrap
msgid "@code{auto-login-session} (default \"\")"
msgstr ""

#. type: table
#: doc/guix.texi:17236
msgid "Desktop file to use for auto-login."
msgstr ""

#. type: item
#: doc/guix.texi:17237
#, no-wrap
msgid "@code{relogin?} (default #f)"
msgstr ""

#. type: table
#: doc/guix.texi:17239
msgid "Relogin after logout."
msgstr ""

#. type: cindex
#: doc/guix.texi:17244
#, no-wrap
msgid "X11 login"
msgstr ""

#. type: defvr
#: doc/guix.texi:17245
#, no-wrap
msgid "{Scheme Variable} sddm-service-type"
msgstr ""

#. type: defvr
#: doc/guix.texi:17249
msgid ""
"This is the type of the service to run the @uref{https://github.com/sddm/"
"sddm,SDDM display manager}.  Its value must be a @code{sddm-configuration} "
"record (see below)."
msgstr ""

#. type: defvr
#: doc/guix.texi:17251
msgid "Here's an example use:"
msgstr ""

#. type: lisp
#: doc/guix.texi:17257
#, no-wrap
msgid ""
"(service sddm-service-type\n"
"         (sddm-configuration\n"
"           (auto-login-user \"alice\")\n"
"           (auto-login-session \"xfce.desktop\")))\n"
msgstr ""

#. type: deftp
#: doc/guix.texi:17263
msgid ""
"This data type represents the configuration of the SDDM login manager.  The "
"available fields are:"
msgstr ""

#. type: item
#: doc/guix.texi:17265
#, no-wrap
msgid "@code{sddm} (default: @code{sddm})"
msgstr ""

#. type: table
#: doc/guix.texi:17267
msgid "The SDDM package to use."
msgstr ""

#. type: item
#: doc/guix.texi:17268
#, no-wrap
msgid "@code{display-server} (default: @code{\"x11\"})"
msgstr ""

#. type: table
#: doc/guix.texi:17270
msgid "This must be either @code{\"x11\"} or @code{\"wayland\"}."
msgstr ""

#. type: item
#: doc/guix.texi:17273
#, no-wrap
msgid "@code{auto-login-user} (default: @code{\"\"})"
msgstr ""

#. type: table
#: doc/guix.texi:17276
msgid ""
"If non-empty, this is the user account under which to log in automatically."
msgstr ""

#. type: item
#: doc/guix.texi:17277
#, no-wrap
msgid "@code{auto-login-session} (default: @code{\"\"})"
msgstr ""

#. type: table
#: doc/guix.texi:17280
msgid ""
"If non-empty, this is the @file{.desktop} file name to use as the auto-login "
"session."
msgstr ""

#. type: cindex
#: doc/guix.texi:17283
#, no-wrap
msgid "Xorg, configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:17284
#, no-wrap
msgid "{Data Type} xorg-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:17289
msgid ""
"This data type represents the configuration of the Xorg graphical display "
"server.  Note that there is no Xorg service; instead, the X server is "
"started by a ``display manager'' such as GDM, SDDM, and SLiM.  Thus, the "
"configuration of these display managers aggregates an @code{xorg-"
"configuration} record."
msgstr ""

#. type: item
#: doc/guix.texi:17291
#, no-wrap
msgid "@code{modules} (default: @code{%default-xorg-modules})"
msgstr ""

#. type: table
#: doc/guix.texi:17294
msgid ""
"This is a list of @dfn{module packages} loaded by the Xorg server---e.g., "
"@code{xf86-video-vesa}, @code{xf86-input-keyboard}, and so on."
msgstr ""

#. type: item
#: doc/guix.texi:17295
#, no-wrap
msgid "@code{fonts} (default: @code{%default-xorg-fonts})"
msgstr ""

#. type: table
#: doc/guix.texi:17297
msgid ""
"This is a list of font directories to add to the server's @dfn{font path}."
msgstr ""

#. type: item
#: doc/guix.texi:17298
#, no-wrap
msgid "@code{drivers} (default: @code{'()})"
msgstr ""

#. type: table
#: doc/guix.texi:17302
msgid ""
"This must be either the empty list, in which case Xorg chooses a graphics "
"driver automatically, or a list of driver names that will be tried in this "
"order---e.g., @code{(\"modesetting\" \"vesa\")}."
msgstr ""

#. type: item
#: doc/guix.texi:17303
#, no-wrap
msgid "@code{resolutions} (default: @code{'()})"
msgstr ""

#. type: table
#: doc/guix.texi:17307
msgid ""
"When @code{resolutions} is the empty list, Xorg chooses an appropriate "
"screen resolution.  Otherwise, it must be a list of resolutions---e.g., "
"@code{((1024 768) (640 480))}."
msgstr ""

#. type: cindex
#: doc/guix.texi:17308
#, no-wrap
msgid "keyboard layout, for Xorg"
msgstr ""

#. type: cindex
#: doc/guix.texi:17309
#, no-wrap
msgid "keymap, for Xorg"
msgstr ""

#. type: table
#: doc/guix.texi:17313
msgid ""
"If this is @code{#f}, Xorg uses the default keyboard layout---usually US "
"English (``qwerty'') for a 105-key PC keyboard."
msgstr ""

#. type: table
#: doc/guix.texi:17317
msgid ""
"Otherwise this must be a @code{keyboard-layout} object specifying the "
"keyboard layout in use when Xorg is running.  @xref{Keyboard Layout}, for "
"more information on how to specify the keyboard layout."
msgstr ""

#. type: item
#: doc/guix.texi:17318 doc/guix.texi:18973 doc/guix.texi:29891
#, no-wrap
msgid "@code{extra-config} (default: @code{'()})"
msgstr ""

#. type: table
#: doc/guix.texi:17321 doc/guix.texi:29895
msgid ""
"This is a list of strings or objects appended to the configuration file.  It "
"is used to pass extra text to be added verbatim to the configuration file."
msgstr ""

#. type: item
#: doc/guix.texi:17322
#, no-wrap
msgid "@code{server} (default: @code{xorg-server})"
msgstr ""

#. type: table
#: doc/guix.texi:17324
msgid "This is the package providing the Xorg server."
msgstr ""

#. type: item
#: doc/guix.texi:17325
#, no-wrap
msgid "@code{server-arguments} (default: @code{%default-xorg-server-arguments})"
msgstr ""

#. type: table
#: doc/guix.texi:17328
msgid ""
"This is the list of command-line arguments to pass to the X server.  The "
"default is @code{-nolisten tcp}."
msgstr ""

#. type: deffn
#: doc/guix.texi:17331
#, no-wrap
msgid "{Scheme Procedure} set-xorg-configuration @var{config} @"
msgstr ""

#. type: deffn
#: doc/guix.texi:17335
msgid ""
"[@var{login-manager-service-type}] Tell the log-in manager (of type "
"@var{login-manager-service-type}) to use @var{config}, an @code{<xorg-"
"configuration>} record."
msgstr ""

#. type: deffn
#: doc/guix.texi:17339
msgid ""
"Since the Xorg configuration is embedded in the log-in manager's "
"configuration---e.g., @code{gdm-configuration}---this procedure provides a "
"shorthand to set the Xorg configuration."
msgstr ""

#. type: deffn
#: doc/guix.texi:17341
#, no-wrap
msgid "{Scheme Procedure} xorg-start-command [@var{config}]"
msgstr ""

#. type: deffn
#: doc/guix.texi:17345
msgid ""
"Return a @code{startx} script in which the modules, fonts, etc. specified in "
"@var{config}, are available.  The result should be used in place of "
"@code{startx}."
msgstr ""

#. type: deffn
#: doc/guix.texi:17347
msgid "Usually the X server is started by a login manager."
msgstr ""

#. type: deffn
#: doc/guix.texi:17350
#, no-wrap
msgid "{Scheme Procedure} screen-locker-service @var{package} [@var{program}]"
msgstr ""

#. type: deffn
#: doc/guix.texi:17354
msgid ""
"Add @var{package}, a package for a screen locker or screen saver whose "
"command is @var{program}, to the set of setuid programs and add a PAM entry "
"for it.  For example:"
msgstr ""

#. type: lisp
#: doc/guix.texi:17357
#, no-wrap
msgid "(screen-locker-service xlockmore \"xlock\")\n"
msgstr ""

#. type: deffn
#: doc/guix.texi:17360
msgid "makes the good ol' XlockMore usable."
msgstr ""

#. type: cindex
#: doc/guix.texi:17366
#, no-wrap
msgid "printer support with CUPS"
msgstr ""

#. type: Plain text
#: doc/guix.texi:17370
msgid ""
"The @code{(gnu services cups)} module provides a Guix service definition for "
"the CUPS printing service.  To add printer support to a Guix system, add a "
"@code{cups-service} to the operating system definition:"
msgstr ""

#. type: deffn
#: doc/guix.texi:17371
#, no-wrap
msgid "{Scheme Variable} cups-service-type"
msgstr ""

#. type: deffn
#: doc/guix.texi:17375
msgid ""
"The service type for the CUPS print server.  Its value should be a valid "
"CUPS configuration (see below).  To use the default settings, simply write:"
msgstr ""

#. type: lisp
#: doc/guix.texi:17377
#, no-wrap
msgid "(service cups-service-type)\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:17387
msgid ""
"The CUPS configuration controls the basic things about your CUPS "
"installation: what interfaces it listens on, what to do if a print job "
"fails, how much logging to do, and so on.  To actually add a printer, you "
"have to visit the @url{http://localhost:631} URL, or use a tool such as "
"GNOME's printer configuration services.  By default, configuring a CUPS "
"service will generate a self-signed certificate if needed, for secure "
"connections to the print server."
msgstr ""

#. type: Plain text
#: doc/guix.texi:17392
msgid ""
"Suppose you want to enable the Web interface of CUPS and also add support "
"for Epson printers @i{via} the @code{escpr} package and for HP printers "
"@i{via} the @code{hplip-minimal} package.  You can do that directly, like "
"this (you need to use the @code{(gnu packages cups)} module):"
msgstr ""

#. type: lisp
#: doc/guix.texi:17399
#, no-wrap
msgid ""
"(service cups-service-type\n"
"         (cups-configuration\n"
"           (web-interface? #t)\n"
"           (extensions\n"
"             (list cups-filters escpr hplip-minimal))))\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:17404
msgid ""
"Note: If you wish to use the Qt5 based GUI which comes with the hplip "
"package then it is suggested that you install the @code{hplip} package, "
"either in your OS configuration file or as your user."
msgstr ""

#. type: Plain text
#: doc/guix.texi:17411
msgid ""
"The available configuration parameters follow.  Each parameter definition is "
"preceded by its type; for example, @samp{string-list foo} indicates that the "
"@code{foo} parameter should be specified as a list of strings.  There is "
"also a way to specify the configuration as a string, if you have an old "
"@code{cupsd.conf} file that you want to port over from some other system; "
"see the end for more details."
msgstr ""

#. type: Plain text
#: doc/guix.texi:17422
msgid "Available @code{cups-configuration} fields are:"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17423
#, no-wrap
msgid "{@code{cups-configuration} parameter} package cups"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17425 doc/guix.texi:18193
msgid "The CUPS package."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17427
#, no-wrap
msgid "{@code{cups-configuration} parameter} package-list extensions"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17429
msgid "Drivers and other extensions to the CUPS package."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17431
#, no-wrap
msgid "{@code{cups-configuration} parameter} files-configuration files-configuration"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17434
msgid ""
"Configuration of where to write logs, what directories to use for print "
"spools, and related privileged configuration parameters."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17436
msgid "Available @code{files-configuration} fields are:"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17437
#, no-wrap
msgid "{@code{files-configuration} parameter} log-location access-log"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17445
msgid ""
"Defines the access log filename.  Specifying a blank filename disables "
"access log generation.  The value @code{stderr} causes log entries to be "
"sent to the standard error file when the scheduler is running in the "
"foreground, or to the system log daemon when run in the background.  The "
"value @code{syslog} causes log entries to be sent to the system log daemon.  "
"The server name may be included in filenames using the string @code{%s}, as "
"in @code{/var/log/cups/%s-access_log}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17447
msgid "Defaults to @samp{\"/var/log/cups/access_log\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17449
#, no-wrap
msgid "{@code{files-configuration} parameter} file-name cache-dir"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17451
msgid "Where CUPS should cache data."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17453
msgid "Defaults to @samp{\"/var/cache/cups\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17455
#, no-wrap
msgid "{@code{files-configuration} parameter} string config-file-perm"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17458
msgid ""
"Specifies the permissions for all configuration files that the scheduler "
"writes."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17464
msgid ""
"Note that the permissions for the printers.conf file are currently masked to "
"only allow access from the scheduler user (typically root).  This is done "
"because printer device URIs sometimes contain sensitive authentication "
"information that should not be generally known on the system.  There is no "
"way to disable this security feature."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17466
msgid "Defaults to @samp{\"0640\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17468
#, no-wrap
msgid "{@code{files-configuration} parameter} log-location error-log"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17476
msgid ""
"Defines the error log filename.  Specifying a blank filename disables error "
"log generation.  The value @code{stderr} causes log entries to be sent to "
"the standard error file when the scheduler is running in the foreground, or "
"to the system log daemon when run in the background.  The value "
"@code{syslog} causes log entries to be sent to the system log daemon.  The "
"server name may be included in filenames using the string @code{%s}, as in "
"@code{/var/log/cups/%s-error_log}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17478
msgid "Defaults to @samp{\"/var/log/cups/error_log\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17480
#, no-wrap
msgid "{@code{files-configuration} parameter} string fatal-errors"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17483
msgid ""
"Specifies which errors are fatal, causing the scheduler to exit.  The kind "
"strings are:"
msgstr ""

#. type: table
#: doc/guix.texi:17487
msgid "No errors are fatal."
msgstr ""

#. type: table
#: doc/guix.texi:17490
msgid "All of the errors below are fatal."
msgstr ""

#. type: item
#: doc/guix.texi:17491
#, no-wrap
msgid "browse"
msgstr ""

#. type: table
#: doc/guix.texi:17494
msgid ""
"Browsing initialization errors are fatal, for example failed connections to "
"the DNS-SD daemon."
msgstr ""

#. type: item
#: doc/guix.texi:17495
#, no-wrap
msgid "config"
msgstr ""

#. type: table
#: doc/guix.texi:17497
msgid "Configuration file syntax errors are fatal."
msgstr ""

#. type: item
#: doc/guix.texi:17498
#, no-wrap
msgid "listen"
msgstr ""

#. type: table
#: doc/guix.texi:17501
msgid ""
"Listen or Port errors are fatal, except for IPv6 failures on the loopback or "
"@code{any} addresses."
msgstr ""

#. type: item
#: doc/guix.texi:17502
#, no-wrap
msgid "log"
msgstr ""

#. type: table
#: doc/guix.texi:17504
msgid "Log file creation or write errors are fatal."
msgstr ""

#. type: item
#: doc/guix.texi:17505
#, no-wrap
msgid "permissions"
msgstr ""

#. type: table
#: doc/guix.texi:17508
msgid ""
"Bad startup file permissions are fatal, for example shared TLS certificate "
"and key files with world-read permissions."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17511
msgid "Defaults to @samp{\"all -browse\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17513
#, no-wrap
msgid "{@code{files-configuration} parameter} boolean file-device?"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17516
msgid ""
"Specifies whether the file pseudo-device can be used for new printer "
"queues.  The URI @uref{file:///dev/null} is always allowed."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17518 doc/guix.texi:17588 doc/guix.texi:17630
#: doc/guix.texi:17650 doc/guix.texi:17656 doc/guix.texi:17672
#: doc/guix.texi:17760 doc/guix.texi:17854 doc/guix.texi:18167
#: doc/guix.texi:18180 doc/guix.texi:20619 doc/guix.texi:20725
#: doc/guix.texi:20790 doc/guix.texi:20799 doc/guix.texi:24844
#: doc/guix.texi:24858 doc/guix.texi:24880 doc/guix.texi:24995
#: doc/guix.texi:25009 doc/guix.texi:25030 doc/guix.texi:25051
#: doc/guix.texi:25058 doc/guix.texi:25103 doc/guix.texi:25110
#: doc/guix.texi:25632 doc/guix.texi:25646 doc/guix.texi:25818
#: doc/guix.texi:25863 doc/guix.texi:25950 doc/guix.texi:26152
#: doc/guix.texi:26185 doc/guix.texi:26325 doc/guix.texi:26336
#: doc/guix.texi:26587 doc/guix.texi:28060 doc/guix.texi:28069
#: doc/guix.texi:28077 doc/guix.texi:28085 doc/guix.texi:28101
#: doc/guix.texi:28117 doc/guix.texi:28125 doc/guix.texi:28133
#: doc/guix.texi:28142 doc/guix.texi:28151 doc/guix.texi:28167
#: doc/guix.texi:28231 doc/guix.texi:28337 doc/guix.texi:28345
#: doc/guix.texi:28353 doc/guix.texi:28378 doc/guix.texi:28432
#: doc/guix.texi:28480 doc/guix.texi:28681 doc/guix.texi:28688
msgid "Defaults to @samp{#f}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17520
#, no-wrap
msgid "{@code{files-configuration} parameter} string group"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17523
msgid ""
"Specifies the group name or ID that will be used when executing external "
"programs."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17525 doc/guix.texi:17605
msgid "Defaults to @samp{\"lp\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17527
#, no-wrap
msgid "{@code{files-configuration} parameter} string log-file-perm"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17529
msgid "Specifies the permissions for all log files that the scheduler writes."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17531
msgid "Defaults to @samp{\"0644\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17533
#, no-wrap
msgid "{@code{files-configuration} parameter} log-location page-log"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17541
msgid ""
"Defines the page log filename.  Specifying a blank filename disables page "
"log generation.  The value @code{stderr} causes log entries to be sent to "
"the standard error file when the scheduler is running in the foreground, or "
"to the system log daemon when run in the background.  The value "
"@code{syslog} causes log entries to be sent to the system log daemon.  The "
"server name may be included in filenames using the string @code{%s}, as in "
"@code{/var/log/cups/%s-page_log}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17543
msgid "Defaults to @samp{\"/var/log/cups/page_log\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17545
#, no-wrap
msgid "{@code{files-configuration} parameter} string remote-root"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17548
msgid ""
"Specifies the username that is associated with unauthenticated accesses by "
"clients claiming to be the root user.  The default is @code{remroot}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17550
msgid "Defaults to @samp{\"remroot\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17552
#, no-wrap
msgid "{@code{files-configuration} parameter} file-name request-root"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17555
msgid ""
"Specifies the directory that contains print jobs and other HTTP request data."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17557
msgid "Defaults to @samp{\"/var/spool/cups\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17559
#, no-wrap
msgid "{@code{files-configuration} parameter} sandboxing sandboxing"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17564
msgid ""
"Specifies the level of security sandboxing that is applied to print filters, "
"backends, and other child processes of the scheduler; either @code{relaxed} "
"or @code{strict}.  This directive is currently only used/supported on macOS."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17566
msgid "Defaults to @samp{strict}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17568
#, no-wrap
msgid "{@code{files-configuration} parameter} file-name server-keychain"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17573
msgid ""
"Specifies the location of TLS certificates and private keys.  CUPS will look "
"for public and private keys in this directory: @file{.crt} files for PEM-"
"encoded certificates and corresponding @file{.key} files for PEM-encoded "
"private keys."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17575
msgid "Defaults to @samp{\"/etc/cups/ssl\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17577
#, no-wrap
msgid "{@code{files-configuration} parameter} file-name server-root"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17579
msgid "Specifies the directory containing the server configuration files."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17581
msgid "Defaults to @samp{\"/etc/cups\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17583
#, no-wrap
msgid "{@code{files-configuration} parameter} boolean sync-on-close?"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17586
msgid ""
"Specifies whether the scheduler calls fsync(2) after writing configuration "
"or state files."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17590
#, no-wrap
msgid "{@code{files-configuration} parameter} space-separated-string-list system-group"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17592
msgid "Specifies the group(s) to use for @code{@@SYSTEM} group authentication."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17594
#, no-wrap
msgid "{@code{files-configuration} parameter} file-name temp-dir"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17596
msgid "Specifies the directory where temporary files are stored."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17598
msgid "Defaults to @samp{\"/var/spool/cups/tmp\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17600
#, no-wrap
msgid "{@code{files-configuration} parameter} string user"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17603
msgid ""
"Specifies the user name or ID that is used when running external programs."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17607
#, no-wrap
msgid "{@code{files-configuration} parameter} string set-env"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17609
msgid "Set the specified environment variable to be passed to child processes."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17611
msgid "Defaults to @samp{\"variable value\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17614
#, no-wrap
msgid "{@code{cups-configuration} parameter} access-log-level access-log-level"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17621
msgid ""
"Specifies the logging level for the AccessLog file.  The @code{config} level "
"logs when printers and classes are added, deleted, or modified and when "
"configuration files are accessed or updated.  The @code{actions} level logs "
"when print jobs are submitted, held, released, modified, or canceled, and "
"any of the conditions for @code{config}.  The @code{all} level logs all "
"requests."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17623
msgid "Defaults to @samp{actions}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17625
#, no-wrap
msgid "{@code{cups-configuration} parameter} boolean auto-purge-jobs?"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17628
msgid ""
"Specifies whether to purge job history data automatically when it is no "
"longer required for quotas."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17632
#, no-wrap
msgid "{@code{cups-configuration} parameter} comma-separated-string-list browse-dns-sd-sub-types"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17636
msgid ""
"Specifies a list of DNS-SD sub-types to advertise for each shared printer.  "
"For example, @samp{\"_cups\" \"_print\"} will tell network clients that both "
"CUPS sharing and IPP Everywhere are supported."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17638
msgid "Defaults to @samp{\"_cups\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17640
#, no-wrap
msgid "{@code{cups-configuration} parameter} browse-local-protocols browse-local-protocols"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17642
msgid "Specifies which protocols to use for local printer sharing."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17644
msgid "Defaults to @samp{dnssd}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17646
#, no-wrap
msgid "{@code{cups-configuration} parameter} boolean browse-web-if?"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17648
msgid "Specifies whether the CUPS web interface is advertised."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17652
#, no-wrap
msgid "{@code{cups-configuration} parameter} boolean browsing?"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17654
msgid "Specifies whether shared printers are advertised."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17658
#, no-wrap
msgid "{@code{cups-configuration} parameter} string classification"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17663
msgid ""
"Specifies the security classification of the server.  Any valid banner name "
"can be used, including @samp{\"classified\"}, @samp{\"confidential\"}, "
"@samp{\"secret\"}, @samp{\"topsecret\"}, and @samp{\"unclassified\"}, or the "
"banner can be omitted to disable secure printing functions."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17665 doc/guix.texi:18002 doc/guix.texi:19840
#: doc/guix.texi:19852 doc/guix.texi:20626 doc/guix.texi:20640
#: doc/guix.texi:20647 doc/guix.texi:20654 doc/guix.texi:20684
#: doc/guix.texi:20782 doc/guix.texi:21846 doc/guix.texi:21872
#: doc/guix.texi:21908 doc/guix.texi:21973 doc/guix.texi:22012
#: doc/guix.texi:22071 doc/guix.texi:22080 doc/guix.texi:26291
#: doc/guix.texi:26299 doc/guix.texi:26307 doc/guix.texi:26315
#: doc/guix.texi:26594 doc/guix.texi:27903 doc/guix.texi:27911
#: doc/guix.texi:27919 doc/guix.texi:28027 doc/guix.texi:28052
#: doc/guix.texi:28183 doc/guix.texi:28191 doc/guix.texi:28199
#: doc/guix.texi:28207 doc/guix.texi:28215 doc/guix.texi:28223
#: doc/guix.texi:28246 doc/guix.texi:28254 doc/guix.texi:28306
#: doc/guix.texi:28322 doc/guix.texi:28330 doc/guix.texi:28369
#: doc/guix.texi:28392 doc/guix.texi:28414 doc/guix.texi:28421
#: doc/guix.texi:28456 doc/guix.texi:28464 doc/guix.texi:28488
#: doc/guix.texi:28520 doc/guix.texi:28549 doc/guix.texi:28556
#: doc/guix.texi:28563 doc/guix.texi:28571 doc/guix.texi:28585
#: doc/guix.texi:28594 doc/guix.texi:28604 doc/guix.texi:28611
#: doc/guix.texi:28618 doc/guix.texi:28625 doc/guix.texi:28696
#: doc/guix.texi:28703 doc/guix.texi:28710 doc/guix.texi:28719
#: doc/guix.texi:28735 doc/guix.texi:28742 doc/guix.texi:28749
#: doc/guix.texi:28756 doc/guix.texi:28764 doc/guix.texi:28772
msgid "Defaults to @samp{\"\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17667
#, no-wrap
msgid "{@code{cups-configuration} parameter} boolean classify-override?"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17670
msgid ""
"Specifies whether users may override the classification (cover page) of "
"individual print jobs using the @code{job-sheets} option."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17674
#, no-wrap
msgid "{@code{cups-configuration} parameter} default-auth-type default-auth-type"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17676
msgid "Specifies the default type of authentication to use."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17678
msgid "Defaults to @samp{Basic}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17680
#, no-wrap
msgid "{@code{cups-configuration} parameter} default-encryption default-encryption"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17682
msgid "Specifies whether encryption will be used for authenticated requests."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17684
msgid "Defaults to @samp{Required}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17686
#, no-wrap
msgid "{@code{cups-configuration} parameter} string default-language"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17688
msgid "Specifies the default language to use for text and web content."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17690
msgid "Defaults to @samp{\"en\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17692
#, no-wrap
msgid "{@code{cups-configuration} parameter} string default-paper-size"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17697
msgid ""
"Specifies the default paper size for new print queues.  @samp{\"Auto\"} uses "
"a locale-specific default, while @samp{\"None\"} specifies there is no "
"default paper size.  Specific size names are typically @samp{\"Letter\"} or "
"@samp{\"A4\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17699
msgid "Defaults to @samp{\"Auto\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17701
#, no-wrap
msgid "{@code{cups-configuration} parameter} string default-policy"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17703
msgid "Specifies the default access policy to use."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17705
msgid "Defaults to @samp{\"default\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17707
#, no-wrap
msgid "{@code{cups-configuration} parameter} boolean default-shared?"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17709
msgid "Specifies whether local printers are shared by default."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17711 doc/guix.texi:17791 doc/guix.texi:18087
#: doc/guix.texi:20716 doc/guix.texi:20767 doc/guix.texi:20774
#: doc/guix.texi:24673 doc/guix.texi:24701 doc/guix.texi:24821
#: doc/guix.texi:24828 doc/guix.texi:24836 doc/guix.texi:24873
#: doc/guix.texi:24887 doc/guix.texi:24972 doc/guix.texi:24979
#: doc/guix.texi:24987 doc/guix.texi:25499 doc/guix.texi:25639
#: doc/guix.texi:25825 doc/guix.texi:25832 doc/guix.texi:25854
#: doc/guix.texi:25893 doc/guix.texi:25913 doc/guix.texi:25927
#: doc/guix.texi:26140 doc/guix.texi:28005 doc/guix.texi:28093
#: doc/guix.texi:28109 doc/guix.texi:28159
msgid "Defaults to @samp{#t}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17713
#, no-wrap
msgid "{@code{cups-configuration} parameter} non-negative-integer dirty-clean-interval"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17717
msgid ""
"Specifies the delay for updating of configuration and state files, in "
"seconds.  A value of 0 causes the update to happen as soon as possible, "
"typically within a few milliseconds."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17719 doc/guix.texi:17767 doc/guix.texi:17776
#: doc/guix.texi:17797 doc/guix.texi:18094
msgid "Defaults to @samp{30}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17721
#, no-wrap
msgid "{@code{cups-configuration} parameter} error-policy error-policy"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17727
msgid ""
"Specifies what to do when an error occurs.  Possible values are @code{abort-"
"job}, which will discard the failed print job; @code{retry-job}, which will "
"retry the job at a later time; @code{retry-current-job}, which retries the "
"failed job immediately; and @code{stop-printer}, which stops the printer."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17729
msgid "Defaults to @samp{stop-printer}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17731
#, no-wrap
msgid "{@code{cups-configuration} parameter} non-negative-integer filter-limit"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17739
msgid ""
"Specifies the maximum cost of filters that are run concurrently, which can "
"be used to minimize disk, memory, and CPU resource problems.  A limit of 0 "
"disables filter limiting.  An average print to a non-PostScript printer "
"needs a filter limit of about 200.  A PostScript printer needs about half "
"that (100).  Setting the limit below these thresholds will effectively limit "
"the scheduler to printing a single job at any time."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17741 doc/guix.texi:17749 doc/guix.texi:17804
#: doc/guix.texi:17920 doc/guix.texi:17934 doc/guix.texi:17941
#: doc/guix.texi:19282 doc/guix.texi:19298 doc/guix.texi:19944
#: doc/guix.texi:19956 doc/guix.texi:20735 doc/guix.texi:20744
#: doc/guix.texi:20752 doc/guix.texi:20760 doc/guix.texi:25515
#: doc/guix.texi:25840 doc/guix.texi:27998 doc/guix.texi:28298
#: doc/guix.texi:28472
msgid "Defaults to @samp{0}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17743
#, no-wrap
msgid "{@code{cups-configuration} parameter} non-negative-integer filter-nice"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17747
msgid ""
"Specifies the scheduling priority of filters that are run to print a job.  "
"The nice value ranges from 0, the highest priority, to 19, the lowest "
"priority."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17751
#, no-wrap
msgid "{@code{cups-configuration} parameter} host-name-lookups host-name-lookups"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17758
msgid ""
"Specifies whether to do reverse lookups on connecting clients.  The "
"@code{double} setting causes @code{cupsd} to verify that the hostname "
"resolved from the address matches one of the addresses returned for that "
"hostname.  Double lookups also prevent clients with unregistered addresses "
"from connecting to your server.  Only set this option to @code{#t} or "
"@code{double} if absolutely required."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17762
#, no-wrap
msgid "{@code{cups-configuration} parameter} non-negative-integer job-kill-delay"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17765
msgid ""
"Specifies the number of seconds to wait before killing the filters and "
"backend associated with a canceled or held job."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17769
#, no-wrap
msgid "{@code{cups-configuration} parameter} non-negative-integer job-retry-interval"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17774
msgid ""
"Specifies the interval between retries of jobs in seconds.  This is "
"typically used for fax queues but can also be used with normal print queues "
"whose error policy is @code{retry-job} or @code{retry-current-job}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17778
#, no-wrap
msgid "{@code{cups-configuration} parameter} non-negative-integer job-retry-limit"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17783
msgid ""
"Specifies the number of retries that are done for jobs.  This is typically "
"used for fax queues but can also be used with normal print queues whose "
"error policy is @code{retry-job} or @code{retry-current-job}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17785 doc/guix.texi:26392 doc/guix.texi:26412
#: doc/guix.texi:26428 doc/guix.texi:26442 doc/guix.texi:26449
#: doc/guix.texi:26456 doc/guix.texi:26463 doc/guix.texi:26623
#: doc/guix.texi:26639 doc/guix.texi:26646 doc/guix.texi:26653
#: doc/guix.texi:26664 doc/guix.texi:27950 doc/guix.texi:27958
#: doc/guix.texi:27966 doc/guix.texi:27990
msgid "Defaults to @samp{5}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17787
#, no-wrap
msgid "{@code{cups-configuration} parameter} boolean keep-alive?"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17789
msgid "Specifies whether to support HTTP keep-alive connections."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17793
#, no-wrap
msgid "{@code{cups-configuration} parameter} non-negative-integer keep-alive-timeout"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17795
msgid "Specifies how long an idle client connection remains open, in seconds."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17799
#, no-wrap
msgid "{@code{cups-configuration} parameter} non-negative-integer limit-request-body"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17802
msgid ""
"Specifies the maximum size of print files, IPP requests, and HTML form "
"data.  A limit of 0 disables the limit check."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17806
#, no-wrap
msgid "{@code{cups-configuration} parameter} multiline-string-list listen"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17813
msgid ""
"Listens on the specified interfaces for connections.  Valid values are of "
"the form @var{address}:@var{port}, where @var{address} is either an IPv6 "
"address enclosed in brackets, an IPv4 address, or @code{*} to indicate all "
"addresses.  Values can also be file names of local UNIX domain sockets.  The "
"Listen directive is similar to the Port directive but allows you to restrict "
"access to specific interfaces or networks."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17815
#, no-wrap
msgid "{@code{cups-configuration} parameter} non-negative-integer listen-back-log"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17822
msgid ""
"Specifies the number of pending connections that will be allowed.  This "
"normally only affects very busy servers that have reached the MaxClients "
"limit, but can also be triggered by large numbers of simultaneous "
"connections.  When the limit is reached, the operating system will refuse "
"additional connections until the scheduler can accept the pending ones."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17824
msgid "Defaults to @samp{128}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17826
#, no-wrap
msgid "{@code{cups-configuration} parameter} location-access-control-list location-access-controls"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17828
msgid "Specifies a set of additional access controls."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17830
msgid "Available @code{location-access-controls} fields are:"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17831
#, no-wrap
msgid "{@code{location-access-controls} parameter} file-name path"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17833
msgid "Specifies the URI path to which the access control applies."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17835
#, no-wrap
msgid "{@code{location-access-controls} parameter} access-control-list access-controls"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17838
msgid ""
"Access controls for all access to this path, in the same format as the "
"@code{access-controls} of @code{operation-access-control}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17840 doc/guix.texi:17846 doc/guix.texi:17860
#: doc/guix.texi:17867 doc/guix.texi:18009 doc/guix.texi:18068
#: doc/guix.texi:18146 doc/guix.texi:18160 doc/guix.texi:20430
#: doc/guix.texi:20633 doc/guix.texi:20661 doc/guix.texi:20691
#: doc/guix.texi:20806 doc/guix.texi:20819 doc/guix.texi:20826
#: doc/guix.texi:21916 doc/guix.texi:22020 doc/guix.texi:22446
#: doc/guix.texi:22454 doc/guix.texi:22699 doc/guix.texi:24732
#: doc/guix.texi:24894 doc/guix.texi:25089 doc/guix.texi:26283
#: doc/guix.texi:26343 doc/guix.texi:26351 doc/guix.texi:28013
#: doc/guix.texi:28020 doc/guix.texi:28362 doc/guix.texi:28440
#: doc/guix.texi:28534 doc/guix.texi:28542 doc/guix.texi:28578
#: doc/guix.texi:28728 doc/guix.texi:28779 doc/guix.texi:28788
msgid "Defaults to @samp{()}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17842
#, no-wrap
msgid "{@code{location-access-controls} parameter} method-access-control-list method-access-controls"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17844
msgid "Access controls for method-specific access to this path."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17848
msgid "Available @code{method-access-controls} fields are:"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17849
#, no-wrap
msgid "{@code{method-access-controls} parameter} boolean reverse?"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17852
msgid ""
"If @code{#t}, apply access controls to all methods except the listed "
"methods.  Otherwise apply to only the listed methods."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17856
#, no-wrap
msgid "{@code{method-access-controls} parameter} method-list methods"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17858
msgid "Methods to which this access control applies."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17862
#, no-wrap
msgid "{@code{method-access-controls} parameter} access-control-list access-controls"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17865
msgid ""
"Access control directives, as a list of strings.  Each string should be one "
"directive, such as @samp{\"Order allow,deny\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17871
#, no-wrap
msgid "{@code{cups-configuration} parameter} non-negative-integer log-debug-history"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17875
msgid ""
"Specifies the number of debugging messages that are retained for logging if "
"an error occurs in a print job.  Debug messages are logged regardless of the "
"LogLevel setting."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17877 doc/guix.texi:17898 doc/guix.texi:17905
#: doc/guix.texi:20190 doc/guix.texi:25074
msgid "Defaults to @samp{100}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17879
#, no-wrap
msgid "{@code{cups-configuration} parameter} log-level log-level"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17882
msgid ""
"Specifies the level of logging for the ErrorLog file.  The value @code{none} "
"stops all logging while @code{debug2} logs everything."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17884
msgid "Defaults to @samp{info}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17886
#, no-wrap
msgid "{@code{cups-configuration} parameter} log-time-format log-time-format"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17889
msgid ""
"Specifies the format of the date and time in the log files.  The value "
"@code{standard} logs whole seconds while @code{usecs} logs microseconds."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17891
msgid "Defaults to @samp{standard}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17893
#, no-wrap
msgid "{@code{cups-configuration} parameter} non-negative-integer max-clients"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17896
msgid ""
"Specifies the maximum number of simultaneous clients that are allowed by the "
"scheduler."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17900
#, no-wrap
msgid "{@code{cups-configuration} parameter} non-negative-integer max-clients-per-host"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17903
msgid ""
"Specifies the maximum number of simultaneous clients that are allowed from a "
"single address."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17907
#, no-wrap
msgid "{@code{cups-configuration} parameter} non-negative-integer max-copies"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17910
msgid ""
"Specifies the maximum number of copies that a user can print of each job."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17912
msgid "Defaults to @samp{9999}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17914
#, no-wrap
msgid "{@code{cups-configuration} parameter} non-negative-integer max-hold-time"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17918
msgid ""
"Specifies the maximum time a job may remain in the @code{indefinite} hold "
"state before it is canceled.  A value of 0 disables cancellation of held "
"jobs."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17922
#, no-wrap
msgid "{@code{cups-configuration} parameter} non-negative-integer max-jobs"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17925
msgid ""
"Specifies the maximum number of simultaneous jobs that are allowed.  Set to "
"0 to allow an unlimited number of jobs."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17927
msgid "Defaults to @samp{500}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17929
#, no-wrap
msgid "{@code{cups-configuration} parameter} non-negative-integer max-jobs-per-printer"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17932
msgid ""
"Specifies the maximum number of simultaneous jobs that are allowed per "
"printer.  A value of 0 allows up to MaxJobs jobs per printer."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17936
#, no-wrap
msgid "{@code{cups-configuration} parameter} non-negative-integer max-jobs-per-user"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17939
msgid ""
"Specifies the maximum number of simultaneous jobs that are allowed per "
"user.  A value of 0 allows up to MaxJobs jobs per user."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17943
#, no-wrap
msgid "{@code{cups-configuration} parameter} non-negative-integer max-job-time"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17946
msgid ""
"Specifies the maximum time a job may take to print before it is canceled, in "
"seconds.  Set to 0 to disable cancellation of ``stuck'' jobs."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17948
msgid "Defaults to @samp{10800}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17950
#, no-wrap
msgid "{@code{cups-configuration} parameter} non-negative-integer max-log-size"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17953
msgid ""
"Specifies the maximum size of the log files before they are rotated, in "
"bytes.  The value 0 disables log rotation."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17955
msgid "Defaults to @samp{1048576}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17957
#, no-wrap
msgid "{@code{cups-configuration} parameter} non-negative-integer multiple-operation-timeout"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17960
msgid ""
"Specifies the maximum amount of time to allow between files in a multiple "
"file print job, in seconds."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17962 doc/guix.texi:18173 doc/guix.texi:24666
msgid "Defaults to @samp{300}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17964
#, no-wrap
msgid "{@code{cups-configuration} parameter} string page-log-format"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:17969
msgid ""
"Specifies the format of PageLog lines.  Sequences beginning with percent "
"(@samp{%}) characters are replaced with the corresponding information, while "
"all other characters are copied literally.  The following percent sequences "
"are recognized:"
msgstr ""

#. type: item
#: doc/guix.texi:17971
#, no-wrap
msgid "%%"
msgstr ""

#. type: table
#: doc/guix.texi:17973
msgid "insert a single percent character"
msgstr ""

#. type: item
#: doc/guix.texi:17974
#, no-wrap
msgid "%@{name@}"
msgstr ""

#. type: table
#: doc/guix.texi:17976
msgid "insert the value of the specified IPP attribute"
msgstr ""

#. type: item
#: doc/guix.texi:17977
#, no-wrap
msgid "%C"
msgstr ""

#. type: table
#: doc/guix.texi:17979
msgid "insert the number of copies for the current page"
msgstr ""

#. type: item
#: doc/guix.texi:17980
#, no-wrap
msgid "%P"
msgstr ""

#. type: table
#: doc/guix.texi:17982
msgid "insert the current page number"
msgstr ""

#. type: item
#: doc/guix.texi:17983
#, no-wrap
msgid "%T"
msgstr ""

#. type: table
#: doc/guix.texi:17985
msgid "insert the current date and time in common log format"
msgstr ""

#. type: item
#: doc/guix.texi:17986
#, no-wrap
msgid "%j"
msgstr ""

#. type: table
#: doc/guix.texi:17988
msgid "insert the job ID"
msgstr ""

#. type: item
#: doc/guix.texi:17989 doc/guix.texi:19800
#, no-wrap
msgid "%p"
msgstr ""

#. type: table
#: doc/guix.texi:17991
msgid "insert the printer name"
msgstr ""

#. type: item
#: doc/guix.texi:17992 doc/guix.texi:19823
#, no-wrap
msgid "%u"
msgstr ""

#. type: table
#: doc/guix.texi:17994
msgid "insert the username"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:18000
msgid ""
"A value of the empty string disables page logging.  The string @code{%p %u "
"%j %T %P %C %@{job-billing@} %@{job-originating-host-name@} %@{job-name@} "
"%@{media@} %@{sides@}} creates a page log with the standard items."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:18004
#, no-wrap
msgid "{@code{cups-configuration} parameter} environment-variables environment-variables"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:18007
msgid ""
"Passes the specified environment variable(s) to child processes; a list of "
"strings."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:18011
#, no-wrap
msgid "{@code{cups-configuration} parameter} policy-configuration-list policies"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:18013
msgid "Specifies named access control policies."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:18015
msgid "Available @code{policy-configuration} fields are:"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:18016
#, no-wrap
msgid "{@code{policy-configuration} parameter} string name"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:18018
msgid "Name of the policy."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:18020
#, no-wrap
msgid "{@code{policy-configuration} parameter} string job-private-access"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:18030
msgid ""
"Specifies an access list for a job's private values.  @code{@@ACL} maps to "
"the printer's requesting-user-name-allowed or requesting-user-name-denied "
"values.  @code{@@OWNER} maps to the job's owner.  @code{@@SYSTEM} maps to "
"the groups listed for the @code{system-group} field of the @code{files-"
"config} configuration, which is reified into the @code{cups-files.conf(5)} "
"file.  Other possible elements of the access list include specific user "
"names, and @code{@@@var{group}} to indicate members of a specific group.  "
"The access list may also be simply @code{all} or @code{default}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:18032 doc/guix.texi:18054
msgid "Defaults to @samp{\"@@OWNER @@SYSTEM\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:18034
#, no-wrap
msgid "{@code{policy-configuration} parameter} string job-private-values"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:18037 doc/guix.texi:18059
msgid ""
"Specifies the list of job values to make private, or @code{all}, "
"@code{default}, or @code{none}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:18040
msgid ""
"Defaults to @samp{\"job-name job-originating-host-name job-originating-user-"
"name phone\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:18042
#, no-wrap
msgid "{@code{policy-configuration} parameter} string subscription-private-access"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:18052
msgid ""
"Specifies an access list for a subscription's private values.  @code{@@ACL} "
"maps to the printer's requesting-user-name-allowed or requesting-user-name-"
"denied values.  @code{@@OWNER} maps to the job's owner.  @code{@@SYSTEM} "
"maps to the groups listed for the @code{system-group} field of the "
"@code{files-config} configuration, which is reified into the @code{cups-"
"files.conf(5)} file.  Other possible elements of the access list include "
"specific user names, and @code{@@@var{group}} to indicate members of a "
"specific group.  The access list may also be simply @code{all} or "
"@code{default}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:18056
#, no-wrap
msgid "{@code{policy-configuration} parameter} string subscription-private-values"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:18062
msgid ""
"Defaults to @samp{\"notify-events notify-pull-method notify-recipient-uri "
"notify-subscriber-user-name notify-user-data\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:18064
#, no-wrap
msgid "{@code{policy-configuration} parameter} operation-access-control-list access-controls"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:18066
msgid "Access control by IPP operation."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:18071
#, no-wrap
msgid "{@code{cups-configuration} parameter} boolean-or-non-negative-integer preserve-job-files"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:18076
msgid ""
"Specifies whether job files (documents) are preserved after a job is "
"printed.  If a numeric value is specified, job files are preserved for the "
"indicated number of seconds after printing.  Otherwise a boolean value "
"applies indefinitely."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:18078
msgid "Defaults to @samp{86400}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:18080
#, no-wrap
msgid "{@code{cups-configuration} parameter} boolean-or-non-negative-integer preserve-job-history"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:18085
msgid ""
"Specifies whether the job history is preserved after a job is printed.  If a "
"numeric value is specified, the job history is preserved for the indicated "
"number of seconds after printing.  If @code{#t}, the job history is "
"preserved until the MaxJobs limit is reached."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:18089
#, no-wrap
msgid "{@code{cups-configuration} parameter} non-negative-integer reload-timeout"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:18092
msgid ""
"Specifies the amount of time to wait for job completion before restarting "
"the scheduler."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:18096
#, no-wrap
msgid "{@code{cups-configuration} parameter} string rip-cache"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:18099
msgid ""
"Specifies the maximum amount of memory to use when converting documents into "
"bitmaps for a printer."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:18101
msgid "Defaults to @samp{\"128m\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:18103
#, no-wrap
msgid "{@code{cups-configuration} parameter} string server-admin"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:18105
msgid "Specifies the email address of the server administrator."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:18107
msgid "Defaults to @samp{\"root@@localhost.localdomain\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:18109
#, no-wrap
msgid "{@code{cups-configuration} parameter} host-name-list-or-* server-alias"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:18117
msgid ""
"The ServerAlias directive is used for HTTP Host header validation when "
"clients connect to the scheduler from external interfaces.  Using the "
"special name @code{*} can expose your system to known browser-based DNS "
"rebinding attacks, even when accessing sites through a firewall.  If the "
"auto-discovery of alternate names does not work, we recommend listing each "
"alternate name with a ServerAlias directive instead of using @code{*}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:18119
msgid "Defaults to @samp{*}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:18121
#, no-wrap
msgid "{@code{cups-configuration} parameter} string server-name"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:18123
msgid "Specifies the fully-qualified host name of the server."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:18125 doc/guix.texi:22043 doc/guix.texi:22087
msgid "Defaults to @samp{\"localhost\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:18127
#, no-wrap
msgid "{@code{cups-configuration} parameter} server-tokens server-tokens"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:18135
msgid ""
"Specifies what information is included in the Server header of HTTP "
"responses.  @code{None} disables the Server header.  @code{ProductOnly} "
"reports @code{CUPS}.  @code{Major} reports @code{CUPS 2}.  @code{Minor} "
"reports @code{CUPS 2.0}.  @code{Minimal} reports @code{CUPS 2.0.0}.  "
"@code{OS} reports @code{CUPS 2.0.0 (@var{uname})} where @var{uname} is the "
"output of the @code{uname} command.  @code{Full} reports @code{CUPS 2.0.0 "
"(@var{uname}) IPP/2.0}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:18137
msgid "Defaults to @samp{Minimal}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:18139
#, no-wrap
msgid "{@code{cups-configuration} parameter} multiline-string-list ssl-listen"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:18144
msgid ""
"Listens on the specified interfaces for encrypted connections.  Valid values "
"are of the form @var{address}:@var{port}, where @var{address} is either an "
"IPv6 address enclosed in brackets, an IPv4 address, or @code{*} to indicate "
"all addresses."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:18148
#, no-wrap
msgid "{@code{cups-configuration} parameter} ssl-options ssl-options"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:18158
msgid ""
"Sets encryption options.  By default, CUPS only supports encryption using "
"TLS v1.0 or higher using known secure cipher suites.  Security is reduced "
"when @code{Allow} options are used, and enhanced when @code{Deny} options "
"are used.  The @code{AllowRC4} option enables the 128-bit RC4 cipher suites, "
"which are required for some older clients.  The @code{AllowSSL3} option "
"enables SSL v3.0, which is required for some older clients that do not "
"support TLS v1.0.  The @code{DenyCBC} option disables all CBC cipher "
"suites.  The @code{DenyTLS1.0} option disables TLS v1.0 support - this sets "
"the minimum protocol version to TLS v1.1."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:18162
#, no-wrap
msgid "{@code{cups-configuration} parameter} boolean strict-conformance?"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:18165
msgid ""
"Specifies whether the scheduler requires clients to strictly adhere to the "
"IPP specifications."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:18169
#, no-wrap
msgid "{@code{cups-configuration} parameter} non-negative-integer timeout"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:18171
msgid "Specifies the HTTP request timeout, in seconds."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:18176
#, no-wrap
msgid "{@code{cups-configuration} parameter} boolean web-interface?"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:18178
msgid "Specifies whether the web interface is enabled."
msgstr ""

#. type: Plain text
#: doc/guix.texi:18188
msgid ""
"At this point you're probably thinking ``oh dear, Guix manual, I like you "
"but you can stop already with the configuration options''.  Indeed.  "
"However, one more point: it could be that you have an existing @code{cupsd."
"conf} that you want to use.  In that case, you can pass an @code{opaque-cups-"
"configuration} as the configuration of a @code{cups-service-type}."
msgstr ""

#. type: Plain text
#: doc/guix.texi:18190
msgid "Available @code{opaque-cups-configuration} fields are:"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:18191
#, no-wrap
msgid "{@code{opaque-cups-configuration} parameter} package cups"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:18195
#, no-wrap
msgid "{@code{opaque-cups-configuration} parameter} string cupsd.conf"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:18197
msgid "The contents of the @code{cupsd.conf}, as a string."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:18199
#, no-wrap
msgid "{@code{opaque-cups-configuration} parameter} string cups-files.conf"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:18201
msgid "The contents of the @code{cups-files.conf} file, as a string."
msgstr ""

#. type: Plain text
#: doc/guix.texi:18206
msgid ""
"For example, if your @code{cupsd.conf} and @code{cups-files.conf} are in "
"strings of the same name, you could instantiate a CUPS service like this:"
msgstr ""

#. type: lisp
#: doc/guix.texi:18212
#, no-wrap
msgid ""
"(service cups-service-type\n"
"         (opaque-cups-configuration\n"
"           (cupsd.conf cupsd.conf)\n"
"           (cups-files.conf cups-files.conf)))\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:18223
msgid ""
"The @code{(gnu services desktop)} module provides services that are usually "
"useful in the context of a ``desktop'' setup---that is, on a machine running "
"a graphical display server, possibly with graphical user interfaces, etc.  "
"It also defines services that provide specific desktop environments like "
"GNOME, Xfce or MATE."
msgstr ""

#. type: Plain text
#: doc/guix.texi:18227
msgid ""
"To simplify things, the module defines a variable containing the set of "
"services that users typically expect on a machine with a graphical "
"environment and networking:"
msgstr ""

#. type: defvr
#: doc/guix.texi:18228
#, no-wrap
msgid "{Scheme Variable} %desktop-services"
msgstr ""

#. type: defvr
#: doc/guix.texi:18231
msgid ""
"This is a list of services that builds upon @code{%base-services} and adds "
"or adjusts services for a typical ``desktop'' setup."
msgstr ""

#. type: defvr
#: doc/guix.texi:18242
msgid ""
"In particular, it adds a graphical login manager (@pxref{X Window, @code{gdm-"
"service-type}}), screen lockers, a network management tool "
"(@pxref{Networking Services, @code{network-manager-service-type}}) with "
"modem support (@pxref{Networking Services, @code{modem-manager-service-"
"type}}), energy and color management services, the @code{elogind} login and "
"seat manager, the Polkit privilege service, the GeoClue location service, "
"the AccountsService daemon that allows authorized users change system "
"passwords, an NTP client (@pxref{Networking Services}), the Avahi daemon, "
"and has the name service switch service configured to be able to use "
"@code{nss-mdns} (@pxref{Name Service Switch, mDNS})."
msgstr ""

#. type: Plain text
#: doc/guix.texi:18247
msgid ""
"The @code{%desktop-services} variable can be used as the @code{services} "
"field of an @code{operating-system} declaration (@pxref{operating-system "
"Reference, @code{services}})."
msgstr ""

#. type: Plain text
#: doc/guix.texi:18270
msgid ""
"Additionally, the @code{gnome-desktop-service-type}, @code{xfce-desktop-"
"service}, @code{mate-desktop-service-type}, @code{lxqt-desktop-service-type} "
"and @code{enlightenment-desktop-service-type} procedures can add GNOME, "
"Xfce, MATE and/or Enlightenment to a system.  To ``add GNOME'' means that "
"system-level services like the backlight adjustment helpers and the power "
"management utilities are added to the system, extending @code{polkit} and "
"@code{dbus} appropriately, allowing GNOME to operate with elevated "
"privileges on a limited number of special-purpose system interfaces.  "
"Additionally, adding a service made by @code{gnome-desktop-service-type} "
"adds the GNOME metapackage to the system profile.  Likewise, adding the Xfce "
"service not only adds the @code{xfce} metapackage to the system profile, but "
"it also gives the Thunar file manager the ability to open a ``root-mode'' "
"file management window, if the user authenticates using the administrator's "
"password via the standard polkit graphical interface.  To ``add MATE'' means "
"that @code{polkit} and @code{dbus} are extended appropriately, allowing MATE "
"to operate with elevated privileges on a limited number of special-purpose "
"system interfaces.  Additionally, adding a service of type @code{mate-"
"desktop-service-type} adds the MATE metapackage to the system profile.  "
"``Adding Enlightenment'' means that @code{dbus} is extended appropriately, "
"and several of Enlightenment's binaries are set as setuid, allowing "
"Enlightenment's screen locker and other functionality to work as expected."
msgstr ""

#. type: Plain text
#: doc/guix.texi:18279
msgid ""
"The desktop environments in Guix use the Xorg display server by default.  If "
"you'd like to use the newer display server protocol called Wayland, you need "
"to use the @code{sddm-service} instead of GDM as the graphical login "
"manager.  You should then select the ``GNOME (Wayland)'' session in SDDM.  "
"Alternatively you can also try starting GNOME on Wayland manually from a TTY "
"with the command ``XDG_SESSION_TYPE=wayland exec dbus-run-session gnome-"
"session``.  Currently only GNOME has support for Wayland."
msgstr ""

#. type: defvr
#: doc/guix.texi:18280
#, no-wrap
msgid "{Scheme Variable} gnome-desktop-service-type"
msgstr ""

#. type: defvr
#: doc/guix.texi:18284
msgid ""
"This is the type of the service that adds the @uref{https://www.gnome.org, "
"GNOME} desktop environment.  Its value is a @code{gnome-desktop-"
"configuration} object (see below)."
msgstr ""

#. type: defvr
#: doc/guix.texi:18287
msgid ""
"This service adds the @code{gnome} package to the system profile, and "
"extends polkit with the actions from @code{gnome-settings-daemon}."
msgstr ""

#. type: deftp
#: doc/guix.texi:18289
#, no-wrap
msgid "{Data Type} gnome-desktop-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:18291
msgid "Configuration record for the GNOME desktop environment."
msgstr ""

#. type: item
#: doc/guix.texi:18293
#, no-wrap
msgid "@code{gnome} (default: @code{gnome})"
msgstr ""

#. type: table
#: doc/guix.texi:18295
msgid "The GNOME package to use."
msgstr ""

#. type: defvr
#: doc/guix.texi:18298
#, no-wrap
msgid "{Scheme Variable} xfce-desktop-service-type"
msgstr ""

#. type: defvr
#: doc/guix.texi:18302
msgid ""
"This is the type of a service to run the @uref{Xfce, https://xfce.org/} "
"desktop environment.  Its value is an @code{xfce-desktop-configuration} "
"object (see below)."
msgstr ""

#. type: defvr
#: doc/guix.texi:18307
msgid ""
"This service adds the @code{xfce} package to the system profile, and extends "
"polkit with the ability for @code{thunar} to manipulate the file system as "
"root from within a user session, after the user has authenticated with the "
"administrator's password."
msgstr ""

#. type: deftp
#: doc/guix.texi:18309
#, no-wrap
msgid "{Data Type} xfce-desktop-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:18311
msgid "Configuration record for the Xfce desktop environment."
msgstr ""

#. type: item
#: doc/guix.texi:18313
#, no-wrap
msgid "@code{xfce} (default: @code{xfce})"
msgstr ""

#. type: table
#: doc/guix.texi:18315
msgid "The Xfce package to use."
msgstr ""

#. type: deffn
#: doc/guix.texi:18318
#, no-wrap
msgid "{Scheme Variable} mate-desktop-service-type"
msgstr ""

#. type: deffn
#: doc/guix.texi:18322
msgid ""
"This is the type of the service that runs the @uref{https://mate-desktop."
"org/, MATE desktop environment}.  Its value is a @code{mate-desktop-"
"configuration} object (see below)."
msgstr ""

#. type: deffn
#: doc/guix.texi:18326
msgid ""
"This service adds the @code{mate} package to the system profile, and extends "
"polkit with the actions from @code{mate-settings-daemon}."
msgstr ""

#. type: deftp
#: doc/guix.texi:18328
#, no-wrap
msgid "{Data Type} mate-desktop-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:18330
msgid "Configuration record for the MATE desktop environment."
msgstr ""

#. type: item
#: doc/guix.texi:18332
#, no-wrap
msgid "@code{mate} (default: @code{mate})"
msgstr ""

#. type: table
#: doc/guix.texi:18334
msgid "The MATE package to use."
msgstr ""

#. type: deffn
#: doc/guix.texi:18337
#, no-wrap
msgid "{Scheme Variable} lxqt-desktop-service-type"
msgstr ""

#. type: deffn
#: doc/guix.texi:18341
msgid ""
"This is the type of the service that runs the @uref{https://lxqt.github.io, "
"LXQt desktop environment}.  Its value is a @code{lxqt-desktop-configuration} "
"object (see below)."
msgstr ""

#. type: deffn
#: doc/guix.texi:18344
msgid "This service adds the @code{lxqt} package to the system profile."
msgstr ""

#. type: deftp
#: doc/guix.texi:18346
#, no-wrap
msgid "{Data Type} lxqt-desktop-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:18348
msgid "Configuration record for the LXQt desktop environment."
msgstr ""

#. type: item
#: doc/guix.texi:18350
#, no-wrap
msgid "@code{lxqt} (default: @code{lxqt})"
msgstr ""

#. type: table
#: doc/guix.texi:18352
msgid "The LXQT package to use."
msgstr ""

#. type: deffn
#: doc/guix.texi:18355
#, no-wrap
msgid "{Scheme Variable} enlightenment-desktop-service-type"
msgstr ""

#. type: deffn
#: doc/guix.texi:18358
msgid ""
"Return a service that adds the @code{enlightenment} package to the system "
"profile, and extends dbus with actions from @code{efl}."
msgstr ""

#. type: deftp
#: doc/guix.texi:18360
#, no-wrap
msgid "{Data Type} enlightenment-desktop-service-configuration"
msgstr ""

#. type: item
#: doc/guix.texi:18362
#, no-wrap
msgid "@code{enlightenment} (default: @code{enlightenment})"
msgstr ""

#. type: table
#: doc/guix.texi:18364
msgid "The enlightenment package to use."
msgstr ""

#. type: Plain text
#: doc/guix.texi:18372
msgid ""
"Because the GNOME, Xfce and MATE desktop services pull in so many packages, "
"the default @code{%desktop-services} variable doesn't include any of them by "
"default.  To add GNOME, Xfce or MATE, just @code{cons} them onto "
"@code{%desktop-services} in the @code{services} field of your "
"@code{operating-system}:"
msgstr ""

#. type: lisp
#: doc/guix.texi:18383
#, no-wrap
msgid ""
"(use-modules (gnu))\n"
"(use-service-modules desktop)\n"
"(operating-system\n"
"  ...\n"
"  ;; cons* adds items to the list given as its last argument.\n"
"  (services (cons* (service gnome-desktop-service-type)\n"
"                   (service xfce-desktop-service)\n"
"                   %desktop-services))\n"
"  ...)\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:18387
msgid ""
"These desktop environments will then be available as options in the "
"graphical login window."
msgstr ""

#. type: Plain text
#: doc/guix.texi:18391
msgid ""
"The actual service definitions included in @code{%desktop-services} and "
"provided by @code{(gnu services dbus)} and @code{(gnu services desktop)} are "
"described below."
msgstr ""

#. type: deffn
#: doc/guix.texi:18392
#, no-wrap
msgid "{Scheme Procedure} dbus-service [#:dbus @var{dbus}] [#:services '()]"
msgstr ""

#. type: deffn
#: doc/guix.texi:18395
msgid ""
"Return a service that runs the ``system bus'', using @var{dbus}, with "
"support for @var{services}."
msgstr ""

#. type: deffn
#: doc/guix.texi:18399
msgid ""
"@uref{https://dbus.freedesktop.org/, D-Bus} is an inter-process "
"communication facility.  Its system bus is used to allow system services to "
"communicate and to be notified of system-wide events."
msgstr ""

#. type: deffn
#: doc/guix.texi:18404
msgid ""
"@var{services} must be a list of packages that provide an @file{etc/dbus-1/"
"system.d} directory containing additional D-Bus configuration and policy "
"files.  For example, to allow avahi-daemon to use the system bus, "
"@var{services} must be equal to @code{(list avahi)}."
msgstr ""

#. type: deffn
#: doc/guix.texi:18406
#, no-wrap
msgid "{Scheme Procedure} elogind-service [#:config @var{config}]"
msgstr ""

#. type: deffn
#: doc/guix.texi:18412
msgid ""
"Return a service that runs the @code{elogind} login and seat management "
"daemon.  @uref{https://github.com/elogind/elogind, Elogind} exposes a D-Bus "
"interface that can be used to know which users are logged in, know what kind "
"of sessions they have open, suspend the system, inhibit system suspend, "
"reboot the system, and other tasks."
msgstr ""

#. type: deffn
#: doc/guix.texi:18416
msgid ""
"Elogind handles most system-level power events for a computer, for example "
"suspending the system when a lid is closed, or shutting it down when the "
"power button is pressed."
msgstr ""

#. type: deffn
#: doc/guix.texi:18421
msgid ""
"The @var{config} keyword argument specifies the configuration for elogind, "
"and should be the result of an @code{(elogind-configuration (@var{parameter} "
"@var{value})...)} invocation.  Available parameters and their default values "
"are:"
msgstr ""

#. type: item
#: doc/guix.texi:18423
#, no-wrap
msgid "kill-user-processes?"
msgstr ""

#. type: code{#1}
#: doc/guix.texi:18425 doc/guix.texi:18445 doc/guix.texi:18447
#: doc/guix.texi:18449 doc/guix.texi:18461
msgid "#f"
msgstr ""

#. type: item
#: doc/guix.texi:18425
#, no-wrap
msgid "kill-only-users"
msgstr ""

#. type: code{#1}
#: doc/guix.texi:18427 doc/guix.texi:18467
msgid "()"
msgstr ""

#. type: item
#: doc/guix.texi:18427
#, no-wrap
msgid "kill-exclude-users"
msgstr ""

#. type: code{#1}
#: doc/guix.texi:18429
msgid "(\"root\")"
msgstr ""

#. type: item
#: doc/guix.texi:18429
#, no-wrap
msgid "inhibit-delay-max-seconds"
msgstr ""

#. type: code{#1}
#: doc/guix.texi:18431
msgid "5"
msgstr ""

#. type: item
#: doc/guix.texi:18431
#, no-wrap
msgid "handle-power-key"
msgstr ""

#. type: code{#1}
#: doc/guix.texi:18433
msgid "poweroff"
msgstr ""

#. type: item
#: doc/guix.texi:18433
#, no-wrap
msgid "handle-suspend-key"
msgstr ""

#. type: code{#1}
#: doc/guix.texi:18435 doc/guix.texi:18439
msgid "suspend"
msgstr ""

#. type: item
#: doc/guix.texi:18435
#, no-wrap
msgid "handle-hibernate-key"
msgstr ""

#. type: code{#1}
#: doc/guix.texi:18437
msgid "hibernate"
msgstr ""

#. type: item
#: doc/guix.texi:18437
#, no-wrap
msgid "handle-lid-switch"
msgstr ""

#. type: item
#: doc/guix.texi:18439
#, no-wrap
msgid "handle-lid-switch-docked"
msgstr ""

#. type: code{#1}
#: doc/guix.texi:18441 doc/guix.texi:18443 doc/guix.texi:18455
msgid "ignore"
msgstr ""

#. type: item
#: doc/guix.texi:18441
#, no-wrap
msgid "handle-lid-switch-external-power"
msgstr ""

#. type: item
#: doc/guix.texi:18443
#, no-wrap
msgid "power-key-ignore-inhibited?"
msgstr ""

#. type: item
#: doc/guix.texi:18445
#, no-wrap
msgid "suspend-key-ignore-inhibited?"
msgstr ""

#. type: item
#: doc/guix.texi:18447
#, no-wrap
msgid "hibernate-key-ignore-inhibited?"
msgstr ""

#. type: item
#: doc/guix.texi:18449
#, no-wrap
msgid "lid-switch-ignore-inhibited?"
msgstr ""

#. type: code{#1}
#: doc/guix.texi:18451 doc/guix.texi:18463
msgid "#t"
msgstr ""

#. type: item
#: doc/guix.texi:18451
#, no-wrap
msgid "holdoff-timeout-seconds"
msgstr ""

#. type: code{#1}
#: doc/guix.texi:18453
msgid "30"
msgstr ""

#. type: item
#: doc/guix.texi:18453
#, no-wrap
msgid "idle-action"
msgstr ""

#. type: item
#: doc/guix.texi:18455
#, no-wrap
msgid "idle-action-seconds"
msgstr ""

#. type: code{#1}
#: doc/guix.texi:18457
msgid "(* 30 60)"
msgstr ""

#. type: item
#: doc/guix.texi:18457
#, no-wrap
msgid "runtime-directory-size-percent"
msgstr ""

#. type: code{#1}
#: doc/guix.texi:18459
msgid "10"
msgstr ""

#. type: item
#: doc/guix.texi:18459
#, no-wrap
msgid "runtime-directory-size"
msgstr ""

#. type: item
#: doc/guix.texi:18461
#, no-wrap
msgid "remove-ipc?"
msgstr ""

#. type: item
#: doc/guix.texi:18463
#, no-wrap
msgid "suspend-state"
msgstr ""

#. type: code{#1}
#: doc/guix.texi:18465
msgid "(\"mem\" \"standby\" \"freeze\")"
msgstr ""

#. type: item
#: doc/guix.texi:18465
#, no-wrap
msgid "suspend-mode"
msgstr ""

#. type: item
#: doc/guix.texi:18467
#, no-wrap
msgid "hibernate-state"
msgstr ""

#. type: code{#1}
#: doc/guix.texi:18469 doc/guix.texi:18473
msgid "(\"disk\")"
msgstr ""

#. type: item
#: doc/guix.texi:18469
#, no-wrap
msgid "hibernate-mode"
msgstr ""

#. type: code{#1}
#: doc/guix.texi:18471
msgid "(\"platform\" \"shutdown\")"
msgstr ""

#. type: item
#: doc/guix.texi:18471
#, no-wrap
msgid "hybrid-sleep-state"
msgstr ""

#. type: item
#: doc/guix.texi:18473
#, no-wrap
msgid "hybrid-sleep-mode"
msgstr ""

#. type: code{#1}
#: doc/guix.texi:18475
msgid "(\"suspend\" \"platform\" \"shutdown\")"
msgstr ""

#. type: deffn
#: doc/guix.texi:18478
#, no-wrap
msgid "{Scheme Procedure} accountsservice-service @"
msgstr ""

#. type: deffn
#: doc/guix.texi:18486
msgid ""
"[#:accountsservice @var{accountsservice}] Return a service that runs "
"AccountsService, a system service that can list available accounts, change "
"their passwords, and so on.  AccountsService integrates with PolicyKit to "
"enable unprivileged users to acquire the capability to modify their system "
"configuration.  @uref{https://www.freedesktop.org/wiki/Software/"
"AccountsService/, the accountsservice web site} for more information."
msgstr ""

#. type: deffn
#: doc/guix.texi:18489
msgid ""
"The @var{accountsservice} keyword argument is the @code{accountsservice} "
"package to expose as a service."
msgstr ""

#. type: deffn
#: doc/guix.texi:18491
#, no-wrap
msgid "{Scheme Procedure} polkit-service @"
msgstr ""

#. type: deffn
#: doc/guix.texi:18500
msgid ""
"[#:polkit @var{polkit}] Return a service that runs the @uref{https://www."
"freedesktop.org/wiki/Software/polkit/, Polkit privilege management service}, "
"which allows system administrators to grant access to privileged operations "
"in a structured way.  By querying the Polkit service, a privileged system "
"component can know when it should grant additional capabilities to ordinary "
"users.  For example, an ordinary user can be granted the capability to "
"suspend the system if the user is logged in locally."
msgstr ""

#. type: defvr
#: doc/guix.texi:18502
#, no-wrap
msgid "{Scheme Variable} polkit-wheel-service"
msgstr ""

#. type: defvr
#: doc/guix.texi:18507
msgid ""
"Service that adds the @code{wheel} group as admins to the Polkit service.  "
"This makes it so that users in the @code{wheel} group are queried for their "
"own passwords when performing administrative actions instead of "
"@code{root}'s, similar to the behaviour used by @code{sudo}."
msgstr ""

#. type: defvr
#: doc/guix.texi:18509
#, no-wrap
msgid "{Scheme Variable} upower-service-type"
msgstr ""

#. type: defvr
#: doc/guix.texi:18513
msgid ""
"Service that runs @uref{https://upower.freedesktop.org/, @command{upowerd}}, "
"a system-wide monitor for power consumption and battery levels, with the "
"given configuration settings."
msgstr ""

#. type: defvr
#: doc/guix.texi:18516
msgid ""
"It implements the @code{org.freedesktop.UPower} D-Bus interface, and is "
"notably used by GNOME."
msgstr ""

#. type: deftp
#: doc/guix.texi:18518
#, no-wrap
msgid "{Data Type} upower-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:18520
msgid "Data type representation the configuration for UPower."
msgstr ""

#. type: item
#: doc/guix.texi:18523
#, no-wrap
msgid "@code{upower} (default: @var{upower})"
msgstr ""

#. type: table
#: doc/guix.texi:18525
msgid "Package to use for @code{upower}."
msgstr ""

#. type: item
#: doc/guix.texi:18526
#, no-wrap
msgid "@code{watts-up-pro?} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:18528
msgid "Enable the Watts Up Pro device."
msgstr ""

#. type: item
#: doc/guix.texi:18529
#, no-wrap
msgid "@code{poll-batteries?} (default: @code{#t})"
msgstr ""

#. type: table
#: doc/guix.texi:18531
msgid "Enable polling the kernel for battery level changes."
msgstr ""

#. type: item
#: doc/guix.texi:18532
#, no-wrap
msgid "@code{ignore-lid?} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:18534
msgid "Ignore the lid state, this can be useful if it's incorrect on a device."
msgstr ""

#. type: item
#: doc/guix.texi:18535
#, no-wrap
msgid "@code{use-percentage-for-policy?} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:18538
msgid ""
"Whether battery percentage based policy should be used.  The default is to "
"use the time left, change to @code{#t} to use the percentage."
msgstr ""

#. type: item
#: doc/guix.texi:18539
#, no-wrap
msgid "@code{percentage-low} (default: @code{10})"
msgstr ""

#. type: table
#: doc/guix.texi:18542
msgid ""
"When @code{use-percentage-for-policy?} is @code{#t}, this sets the "
"percentage at which the battery is considered low."
msgstr ""

#. type: item
#: doc/guix.texi:18543
#, no-wrap
msgid "@code{percentage-critical} (default: @code{3})"
msgstr ""

#. type: table
#: doc/guix.texi:18546
msgid ""
"When @code{use-percentage-for-policy?} is @code{#t}, this sets the "
"percentage at which the battery is considered critical."
msgstr ""

#. type: item
#: doc/guix.texi:18547
#, no-wrap
msgid "@code{percentage-action} (default: @code{2})"
msgstr ""

#. type: table
#: doc/guix.texi:18550
msgid ""
"When @code{use-percentage-for-policy?} is @code{#t}, this sets the "
"percentage at which action will be taken."
msgstr ""

#. type: item
#: doc/guix.texi:18551
#, no-wrap
msgid "@code{time-low} (default: @code{1200})"
msgstr ""

#. type: table
#: doc/guix.texi:18554
msgid ""
"When @code{use-time-for-policy?} is @code{#f}, this sets the time remaining "
"in seconds at which the battery is considered low."
msgstr ""

#. type: item
#: doc/guix.texi:18555
#, no-wrap
msgid "@code{time-critical} (default: @code{300})"
msgstr ""

#. type: table
#: doc/guix.texi:18558
msgid ""
"When @code{use-time-for-policy?} is @code{#f}, this sets the time remaining "
"in seconds at which the battery is considered critical."
msgstr ""

#. type: item
#: doc/guix.texi:18559
#, no-wrap
msgid "@code{time-action} (default: @code{120})"
msgstr ""

#. type: table
#: doc/guix.texi:18562
msgid ""
"When @code{use-time-for-policy?} is @code{#f}, this sets the time remaining "
"in seconds at which action will be taken."
msgstr ""

#. type: item
#: doc/guix.texi:18563
#, no-wrap
msgid "@code{critical-power-action} (default: @code{'hybrid-sleep})"
msgstr ""

#. type: table
#: doc/guix.texi:18566
msgid ""
"The action taken when @code{percentage-action} or @code{time-action} is "
"reached (depending on the configuration of @code{use-percentage-for-"
"policy?})."
msgstr ""

#. type: table
#: doc/guix.texi:18568
msgid "Possible values are:"
msgstr ""

#. type: code{#1}
#: doc/guix.texi:18572
msgid "'power-off"
msgstr ""

#. type: code{#1}
#: doc/guix.texi:18575
msgid "'hibernate"
msgstr ""

#. type: itemize
#: doc/guix.texi:18578
msgid "@code{'hybrid-sleep}."
msgstr ""

#. type: deffn
#: doc/guix.texi:18583
#, no-wrap
msgid "{Scheme Procedure} udisks-service [#:udisks @var{udisks}]"
msgstr ""

#. type: deffn
#: doc/guix.texi:18593
msgid ""
"Return a service for @uref{https://udisks.freedesktop.org/docs/latest/, "
"UDisks}, a @dfn{disk management} daemon that provides user interfaces with "
"notifications and ways to mount/unmount disks.  Programs that talk to UDisks "
"include the @command{udisksctl} command, part of UDisks, and GNOME Disks.  "
"Note that Udisks relies on the @command{mount} command, so it will only be "
"able to use the file-system utilities installed in the system profile.  For "
"example if you want to be able to mount NTFS file-systems in read and write "
"fashion, you'll need to have @code{ntfs-3g} installed system-wide."
msgstr ""

#. type: deffn
#: doc/guix.texi:18595
#, no-wrap
msgid "{Scheme Variable} colord-service-type"
msgstr ""

#. type: deffn
#: doc/guix.texi:18602
msgid ""
"This is the type of the service that runs @command{colord}, a system service "
"with a D-Bus interface to manage the color profiles of input and output "
"devices such as screens and scanners.  It is notably used by the GNOME Color "
"Manager graphical tool.  See @uref{https://www.freedesktop.org/software/"
"colord/, the colord web site} for more information."
msgstr ""

#. type: deffn
#: doc/guix.texi:18604
#, no-wrap
msgid "{Scheme Procedure} geoclue-application name [#:allowed? #t] [#:system? #f] [#:users '()]"
msgstr ""

#. type: deffn
#: doc/guix.texi:18613
msgid ""
"Return a configuration allowing an application to access GeoClue location "
"data.  @var{name} is the Desktop ID of the application, without the @code{."
"desktop} part.  If @var{allowed?} is true, the application will have access "
"to location information by default.  The boolean @var{system?} value "
"indicates whether an application is a system component or not.  Finally "
"@var{users} is a list of UIDs of all users for which this application is "
"allowed location info access.  An empty users list means that all users are "
"allowed."
msgstr ""

#. type: cindex
#: doc/guix.texi:18615
#, no-wrap
msgid "scanner access"
msgstr ""

#. type: deffn
#: doc/guix.texi:18616
#, no-wrap
msgid "{Scheme Procedure} sane-service-type"
msgstr ""

#. type: deffn
#: doc/guix.texi:18620
msgid ""
"This service provides access to scanners @i{via} @uref{http://www.sane-"
"project.org, SANE} by installing the necessary udev rules."
msgstr ""

#. type: defvr
#: doc/guix.texi:18622
#, no-wrap
msgid "{Scheme Variable} %standard-geoclue-applications"
msgstr ""

#. type: defvr
#: doc/guix.texi:18629
msgid ""
"The standard list of well-known GeoClue application configurations, granting "
"authority to the GNOME date-and-time utility to ask for the current location "
"in order to set the time zone, and allowing the IceCat and Epiphany web "
"browsers to request location information.  IceCat and Epiphany both query "
"the user before allowing a web page to know the user's location."
msgstr ""

#. type: deffn
#: doc/guix.texi:18631
#, no-wrap
msgid "{Scheme Procedure} geoclue-service [#:colord @var{colord}] @"
msgstr ""

#. type: deffn
#: doc/guix.texi:18644
msgid ""
"[#:whitelist '()] @ [#:wifi-geolocation-url \"https://location.services."
"mozilla.com/v1/geolocate?key=geoclue\"] @ [#:submit-data? #f] [#:wifi-"
"submission-url \"https://location.services.mozilla.com/v1/submit?key=geoclue"
"\"] @ [#:submission-nick \"geoclue\"] @ [#:applications %standard-geoclue-"
"applications] Return a service that runs the GeoClue location service.  This "
"service provides a D-Bus interface to allow applications to request access "
"to a user's physical location, and optionally to add information to online "
"location databases.  See @uref{https://wiki.freedesktop.org/www/Software/"
"GeoClue/, the GeoClue web site} for more information."
msgstr ""

#. type: deffn
#: doc/guix.texi:18646
#, no-wrap
msgid "{Scheme Procedure} bluetooth-service [#:bluez @var{bluez}] @"
msgstr ""

#. type: deffn
#: doc/guix.texi:18653
msgid ""
"[@w{#:auto-enable? #f}] Return a service that runs the @command{bluetoothd} "
"daemon, which manages all the Bluetooth devices and provides a number of D-"
"Bus interfaces.  When AUTO-ENABLE? is true, the bluetooth controller is "
"powered automatically at boot, which can be useful when using a bluetooth "
"keyboard or mouse."
msgstr ""

#. type: deffn
#: doc/guix.texi:18655
msgid "Users need to be in the @code{lp} group to access the D-Bus service."
msgstr ""

#. type: defvr
#: doc/guix.texi:18657
#, no-wrap
msgid "{Scheme Variable} gnome-keyring-service-type"
msgstr ""

#. type: defvr
#: doc/guix.texi:18661
msgid ""
"This is the type of the service that adds the @uref{https://wiki.gnome.org/"
"Projects/GnomeKeyring, GNOME Keyring}.  Its value is a @code{gnome-keyring-"
"configuration} object (see below)."
msgstr ""

#. type: defvr
#: doc/guix.texi:18665
msgid ""
"This service adds the @code{gnome-keyring} package to the system profile and "
"extends PAM with entries using @code{pam_gnome_keyring.so}, unlocking a "
"user's login keyring when they log in or setting its password with passwd."
msgstr ""

#. type: deftp
#: doc/guix.texi:18667
#, no-wrap
msgid "{Data Type} gnome-keyring-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:18669
msgid "Configuration record for the GNOME Keyring service."
msgstr ""

#. type: item
#: doc/guix.texi:18671
#, no-wrap
msgid "@code{keyring} (default: @code{gnome-keyring})"
msgstr ""

#. type: table
#: doc/guix.texi:18673
msgid "The GNOME keyring package to use."
msgstr ""

#. type: code{#1}
#: doc/guix.texi:18674
#, no-wrap
msgid "pam-services"
msgstr ""

#. type: table
#: doc/guix.texi:18679
msgid ""
"A list of @code{(@var{service} . @var{kind})} pairs denoting PAM services to "
"extend, where @var{service} is the name of an existing service to extend and "
"@var{kind} is one of @code{login} or @code{passwd}."
msgstr ""

#. type: table
#: doc/guix.texi:18685
msgid ""
"If @code{login} is given, it adds an optional @code{pam_gnome_keyring.so} to "
"the auth block without arguments and to the session block with "
"@code{auto_start}.  If @code{passwd} is given, it adds an optional "
"@code{pam_gnome_keyring.so} to the password block without arguments."
msgstr ""

#. type: table
#: doc/guix.texi:18688
msgid ""
"By default, this field contains ``gdm-password'' with the value @code{login} "
"and ``passwd'' is with the value @code{passwd}."
msgstr ""

#. type: cindex
#: doc/guix.texi:18695
#, no-wrap
msgid "sound support"
msgstr ""

#. type: cindex
#: doc/guix.texi:18696
#, no-wrap
msgid "ALSA"
msgstr ""

#. type: cindex
#: doc/guix.texi:18697
#, no-wrap
msgid "PulseAudio, sound support"
msgstr ""

#. type: Plain text
#: doc/guix.texi:18702
msgid ""
"The @code{(gnu services sound)} module provides a service to configure the "
"Advanced Linux Sound Architecture (ALSA) system, which makes PulseAudio the "
"preferred ALSA output driver."
msgstr ""

#. type: deffn
#: doc/guix.texi:18703
#, no-wrap
msgid "{Scheme Variable} alsa-service-type"
msgstr ""

#. type: deffn
#: doc/guix.texi:18708
msgid ""
"This is the type for the @uref{https://alsa-project.org/, Advanced Linux "
"Sound Architecture} (ALSA) system, which generates the @file{/etc/asound."
"conf} configuration file.  The value for this type is a @command{alsa-"
"configuration} record as in this example:"
msgstr ""

#. type: lisp
#: doc/guix.texi:18711
#, no-wrap
msgid "(service alsa-service-type)\n"
msgstr ""

#. type: deffn
#: doc/guix.texi:18714
msgid "See below for details about @code{alsa-configuration}."
msgstr ""

#. type: deftp
#: doc/guix.texi:18716
#, no-wrap
msgid "{Data Type} alsa-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:18718
msgid "Data type representing the configuration for @code{alsa-service}."
msgstr ""

#. type: item
#: doc/guix.texi:18720
#, no-wrap
msgid "@code{alsa-plugins} (default: @var{alsa-plugins})"
msgstr ""

#. type: table
#: doc/guix.texi:18722
msgid "@code{alsa-plugins} package to use."
msgstr ""

#. type: item
#: doc/guix.texi:18723
#, no-wrap
msgid "@code{pulseaudio?} (default: @var{#t})"
msgstr ""

#. type: table
#: doc/guix.texi:18726
msgid ""
"Whether ALSA applications should transparently be made to use the "
"@uref{https://www.pulseaudio.org/, PulseAudio} sound server."
msgstr ""

#. type: table
#: doc/guix.texi:18730
msgid ""
"Using PulseAudio allows you to run several sound-producing applications at "
"the same time and to individual control them @i{via} @command{pavucontrol}, "
"among other things."
msgstr ""

#. type: item
#: doc/guix.texi:18731
#, no-wrap
msgid "@code{extra-options} (default: @var{\"\"})"
msgstr ""

#. type: table
#: doc/guix.texi:18733
msgid "String to append to the @file{/etc/asound.conf} file."
msgstr ""

#. type: Plain text
#: doc/guix.texi:18739
msgid ""
"Individual users who want to override the system configuration of ALSA can "
"do it with the @file{~/.asoundrc} file:"
msgstr ""

#. type: example
#: doc/guix.texi:18745
#, no-wrap
msgid ""
"# In guix, we have to specify the absolute path for plugins.\n"
"pcm_type.jack @{\n"
"  lib \"/home/alice/.guix-profile/lib/alsa-lib/libasound_module_pcm_jack.so\"\n"
"@}\n"
"\n"
msgstr ""

#. type: example
#: doc/guix.texi:18754
#, no-wrap
msgid ""
"# Routing ALSA to jack:\n"
"# <http://jackaudio.org/faq/routing_alsa.html>.\n"
"pcm.rawjack @{\n"
"  type jack\n"
"  playback_ports @{\n"
"    0 system:playback_1\n"
"    1 system:playback_2\n"
"  @}\n"
"\n"
msgstr ""

#. type: example
#: doc/guix.texi:18760
#, no-wrap
msgid ""
"  capture_ports @{\n"
"    0 system:capture_1\n"
"    1 system:capture_2\n"
"  @}\n"
"@}\n"
"\n"
msgstr ""

#. type: example
#: doc/guix.texi:18767
#, no-wrap
msgid ""
"pcm.!default @{\n"
"  type plug\n"
"  slave @{\n"
"    pcm \"rawjack\"\n"
"  @}\n"
"@}\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:18771
msgid ""
"See @uref{https://www.alsa-project.org/main/index.php/Asoundrc} for the "
"details."
msgstr ""

#. type: deffn
#: doc/guix.texi:18772
#, no-wrap
msgid "{Scheme Variable} pulseaudio-service-type"
msgstr ""

#. type: deffn
#: doc/guix.texi:18776
msgid ""
"This is the type for the @uref{https://www.pulseaudio.org/, PulseAudio} "
"sound server.  It exists to allow system overrides of the default settings "
"via @code{pulseaudio-configuration}, see below."
msgstr ""

#. type: quotation
#: doc/guix.texi:18782
msgid ""
"This service overrides per-user configuration files.  If you want PulseAudio "
"to honor configuration files in @file{~/.config/pulse} you have to unset the "
"environment variables @env{PULSE_CONFIG} and @env{PULSE_CLIENTCONFIG} in "
"your @file{~/.bash_profile}."
msgstr ""

#. type: quotation
#: doc/guix.texi:18790
msgid ""
"This service on its own does not ensure, that the @code{pulseaudio} package "
"exists on your machine.  It merely adds configuration files for it, as "
"detailed below.  In the (admittedly unlikely) case, that you find yourself "
"without a @code{pulseaudio} package, consider enabling it through the "
"@code{alsa-service-type} above."
msgstr ""

#. type: deftp
#: doc/guix.texi:18793
#, no-wrap
msgid "{Data Type} pulseaudio-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:18795
msgid "Data type representing the configuration for @code{pulseaudio-service}."
msgstr ""

#. type: item
#: doc/guix.texi:18797
#, no-wrap
msgid "@code{client-conf} (default: @code{'()})"
msgstr ""

#. type: table
#: doc/guix.texi:18802
msgid ""
"List of settings to set in @file{client.conf}.  Accepts a list of strings or "
"a symbol-value pairs.  A string will be inserted as-is with a newline "
"added.  A pair will be formatted as ``key = value'', again with a newline "
"added."
msgstr ""

#. type: item
#: doc/guix.texi:18803
#, no-wrap
msgid "@code{daemon-conf} (default: @code{'((flat-volumes . no))})"
msgstr ""

#. type: table
#: doc/guix.texi:18806
msgid ""
"List of settings to set in @file{daemon.conf}, formatted just like "
"@var{client-conf}."
msgstr ""

#. type: item
#: doc/guix.texi:18807
#, no-wrap
msgid "@code{script-file} (default: @code{(file-append pulseaudio \"/etc/pulse/default.pa\")})"
msgstr ""

#. type: table
#: doc/guix.texi:18809
msgid "Script file to use as @file{default.pa}."
msgstr ""

#. type: item
#: doc/guix.texi:18810
#, no-wrap
msgid "@code{system-script-file} (default: @code{(file-append pulseaudio \"/etc/pulse/system.pa\")})"
msgstr ""

#. type: table
#: doc/guix.texi:18812
msgid "Script file to use as @file{system.pa}."
msgstr ""

#. type: deffn
#: doc/guix.texi:18815
#, no-wrap
msgid "{Scheme Variable} ladspa-service-type"
msgstr ""

#. type: deffn
#: doc/guix.texi:18818
msgid ""
"This service sets the @var{LADSPA_PATH} variable, so that programs, which "
"respect it, e.g. PulseAudio, can load LADSPA plugins."
msgstr ""

#. type: deffn
#: doc/guix.texi:18821
msgid ""
"The following example will setup the service to enable modules from the "
"@code{swh-plugins} package:"
msgstr ""

#. type: lisp
#: doc/guix.texi:18825
#, no-wrap
msgid ""
"(service ladspa-service-type\n"
"         (ladspa-configuration (plugins (list swh-plugins))))\n"
msgstr ""

#. type: deffn
#: doc/guix.texi:18829
msgid ""
"See @uref{http://plugin.org.uk/ladspa-swh/docs/ladspa-swh.html} for the "
"details."
msgstr ""

#. type: cindex
#: doc/guix.texi:18836
#, no-wrap
msgid "SQL"
msgstr ""

#. type: Plain text
#: doc/guix.texi:18838
msgid ""
"The @code{(gnu services databases)} module provides the following services."
msgstr ""

#. type: subsubheading
#: doc/guix.texi:18839
#, no-wrap
msgid "PostgreSQL"
msgstr ""

#. type: Plain text
#: doc/guix.texi:18843
msgid ""
"The following example describes a PostgreSQL service with the default "
"configuration."
msgstr ""

#. type: lisp
#: doc/guix.texi:18848
#, no-wrap
msgid ""
"(service postgresql-service-type\n"
"         (postgresql-configuration\n"
"          (postgresql postgresql-10)))\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:18854
msgid ""
"If the services fails to start, it may be due to an incompatible cluster "
"already present in @var{data-directory}.  Adjust it (or, if you don't need "
"the cluster anymore, delete @var{data-directory}), then restart the service."
msgstr ""

#. type: Plain text
#: doc/guix.texi:18861
msgid ""
"Peer authentication is used by default and the @code{postgres} user account "
"has no shell, which prevents the direct execution of @code{psql} commands as "
"this user.  To use @code{psql}, you can temporarily log in as "
"@code{postgres} using a shell, create a PostgreSQL superuser with the same "
"name as one of the system users and then create the associated database."
msgstr ""

#. type: example
#: doc/guix.texi:18866
#, no-wrap
msgid ""
"sudo -u postgres -s /bin/sh\n"
"createuser --interactive\n"
"createdb $MY_USER_LOGIN      # Replace appropriately.\n"
msgstr ""

#. type: deftp
#: doc/guix.texi:18868
#, no-wrap
msgid "{Data Type} postgresql-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:18871
msgid ""
"Data type representing the configuration for the @code{postgresql-service-"
"type}."
msgstr ""

#. type: code{#1}
#: doc/guix.texi:18873
#, no-wrap
msgid "postgresql"
msgstr ""

#. type: table
#: doc/guix.texi:18875
msgid "PostgreSQL package to use for the service."
msgstr ""

#. type: item
#: doc/guix.texi:18876
#, no-wrap
msgid "@code{port} (default: @code{5432})"
msgstr ""

#. type: table
#: doc/guix.texi:18878
msgid "Port on which PostgreSQL should listen."
msgstr ""

#. type: table
#: doc/guix.texi:18881
msgid "Locale to use as the default when creating the database cluster."
msgstr ""

#. type: item
#: doc/guix.texi:18882
#, no-wrap
msgid "@code{config-file} (default: @code{(postgresql-config-file)})"
msgstr ""

#. type: table
#: doc/guix.texi:18886
msgid ""
"The configuration file to use when running PostgreSQL.  The default "
"behaviour uses the postgresql-config-file record with the default values for "
"the fields."
msgstr ""

#. type: item
#: doc/guix.texi:18887
#, no-wrap
msgid "@code{data-directory} (default: @code{\"/var/lib/postgresql/data\"})"
msgstr ""

#. type: table
#: doc/guix.texi:18889
msgid "Directory in which to store the data."
msgstr ""

#. type: item
#: doc/guix.texi:18890
#, no-wrap
msgid "@code{extension-packages} (default: @code{'()})"
msgstr ""

#. type: cindex
#: doc/guix.texi:18891
#, no-wrap
msgid "postgresql extension-packages"
msgstr ""

#. type: table
#: doc/guix.texi:18896
msgid ""
"Additional extensions are loaded from packages listed in @var{extension-"
"packages}.  Extensions are available at runtime.  For instance, to create a "
"geographic database using the @code{postgis} extension, a user can configure "
"the postgresql-service as in this example:"
msgstr ""

#. type: cindex
#: doc/guix.texi:18897
#, no-wrap
msgid "postgis"
msgstr ""

#. type: lisp
#: doc/guix.texi:18900
#, no-wrap
msgid ""
"(use-package-modules databases geo)\n"
"\n"
msgstr ""

#. type: lisp
#: doc/guix.texi:18913
#, no-wrap
msgid ""
"(operating-system\n"
"  ...\n"
"  ;; postgresql is required to run `psql' but postgis is not required for\n"
"  ;; proper operation.\n"
"  (packages (cons* postgresql %base-packages))\n"
"  (services\n"
"    (cons*\n"
"      (service postgresql-service-type\n"
"               (postgresql-configuration\n"
"                (postgresql postgresql-10)\n"
"                (extension-packages (list postgis))))\n"
"      %base-services)))\n"
msgstr ""

#. type: table
#: doc/guix.texi:18917
msgid ""
"Then the extension becomes visible and you can initialise an empty "
"geographic database in this way:"
msgstr ""

#. type: example
#: doc/guix.texi:18924
#, no-wrap
msgid ""
"psql -U postgres\n"
"> create database postgistest;\n"
"> \\connect postgistest;\n"
"> create extension postgis;\n"
"> create extension postgis_topology;\n"
msgstr ""

#. type: table
#: doc/guix.texi:18929
msgid ""
"There is no need to add this field for contrib extensions such as hstore or "
"dblink as they are already loadable by postgresql.  This field is only "
"required to add extensions provided by other packages."
msgstr ""

#. type: deftp
#: doc/guix.texi:18933
#, no-wrap
msgid "{Data Type} postgresql-config-file"
msgstr ""

#. type: deftp
#: doc/guix.texi:18939
msgid ""
"Data type representing the PostgreSQL configuration file.  As shown in the "
"following example, this can be used to customize the configuration of "
"PostgreSQL.  Note that you can use any G-expression or filename in place of "
"this record, if you already have a configuration file you'd like to use for "
"example."
msgstr ""

#. type: lisp
#: doc/guix.texi:18959
#, no-wrap
msgid ""
"(service postgresql-service-type\n"
"         (postgresql-configuration\n"
"          (config-file\n"
"           (postgresql-config-file\n"
"            (log-destination \"stderr\")\n"
"            (hba-file\n"
"             (plain-file \"pg_hba.conf\"\n"
"                         \"\n"
"local\tall\tall\t\t\ttrust\n"
"host\tall\tall\t127.0.0.1/32 \tmd5\n"
"host\tall\tall\t::1/128 \tmd5\"))\n"
"            (extra-config\n"
"             '((\"session_preload_libraries\"     \"'auto_explain'\")\n"
"               (\"random_page_cost\"              \"2\")\n"
"               (\"auto_explain.log_min_duration\" \"'100ms'\")\n"
"               (\"work_mem\"                      \"'500MB'\")\n"
"               (\"logging_collector\"             \"on\")\n"
"               (\"log_directory\"                 \"'/var/log/postgresql'\")))))))\n"
msgstr ""

#. type: item
#: doc/guix.texi:18962
#, no-wrap
msgid "@code{log-destination} (default: @code{\"syslog\"})"
msgstr ""

#. type: table
#: doc/guix.texi:18965
msgid ""
"The logging method to use for PostgreSQL.  Multiple values are accepted, "
"separated by commas."
msgstr ""

#. type: item
#: doc/guix.texi:18966
#, no-wrap
msgid "@code{hba-file} (default: @code{%default-postgres-hba})"
msgstr ""

#. type: table
#: doc/guix.texi:18969
msgid ""
"Filename or G-expression for the host-based authentication configuration."
msgstr ""

#. type: item
#: doc/guix.texi:18970
#, no-wrap
msgid "@code{ident-file} (default: @code{%default-postgres-ident})"
msgstr ""

#. type: table
#: doc/guix.texi:18972
msgid "Filename or G-expression for the user name mapping configuration."
msgstr ""

#. type: table
#: doc/guix.texi:18977
msgid ""
"List of additional keys and values to include in the PostgreSQL config "
"file.  Each entry in the list should be a list where the first element is "
"the key, and the remaining elements are the values."
msgstr ""

#. type: subsubheading
#: doc/guix.texi:18981
#, no-wrap
msgid "MariaDB/MySQL"
msgstr ""

#. type: deffn
#: doc/guix.texi:18983
#, no-wrap
msgid "{Scheme Procedure} mysql-service [#:config (mysql-configuration)]"
msgstr ""

#. type: deffn
#: doc/guix.texi:18986
msgid ""
"Return a service that runs @command{mysqld}, the MySQL or MariaDB database "
"server."
msgstr ""

#. type: deffn
#: doc/guix.texi:18989
msgid ""
"The optional @var{config} argument specifies the configuration for "
"@command{mysqld}, which should be a @code{<mysql-configuration>} object."
msgstr ""

#. type: deftp
#: doc/guix.texi:18991
#, no-wrap
msgid "{Data Type} mysql-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:18993
msgid "Data type representing the configuration of @var{mysql-service}."
msgstr ""

#. type: item
#: doc/guix.texi:18995
#, no-wrap
msgid "@code{mysql} (default: @var{mariadb})"
msgstr ""

#. type: table
#: doc/guix.texi:18998
msgid ""
"Package object of the MySQL database server, can be either @var{mariadb} or "
"@var{mysql}."
msgstr ""

#. type: table
#: doc/guix.texi:19001
msgid ""
"For MySQL, a temporary root password will be displayed at activation time.  "
"For MariaDB, the root password is empty."
msgstr ""

#. type: item
#: doc/guix.texi:19002
#, no-wrap
msgid "@code{port} (default: @code{3306})"
msgstr ""

#. type: table
#: doc/guix.texi:19004
msgid "TCP port on which the database server listens for incoming connections."
msgstr ""

#. type: subsubheading
#: doc/guix.texi:19007
#, no-wrap
msgid "Memcached"
msgstr ""

#. type: defvr
#: doc/guix.texi:19009
#, no-wrap
msgid "{Scheme Variable} memcached-service-type"
msgstr ""

#. type: defvr
#: doc/guix.texi:19013
msgid ""
"This is the service type for the @uref{https://memcached.org/, Memcached} "
"service, which provides a distributed in memory cache.  The value for the "
"service type is a @code{memcached-configuration} object."
msgstr ""

#. type: lisp
#: doc/guix.texi:19017
#, no-wrap
msgid "(service memcached-service-type)\n"
msgstr ""

#. type: deftp
#: doc/guix.texi:19019
#, no-wrap
msgid "{Data Type} memcached-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:19021
msgid "Data type representing the configuration of memcached."
msgstr ""

#. type: item
#: doc/guix.texi:19023
#, no-wrap
msgid "@code{memcached} (default: @code{memcached})"
msgstr ""

#. type: table
#: doc/guix.texi:19025
msgid "The Memcached package to use."
msgstr ""

#. type: item
#: doc/guix.texi:19026
#, no-wrap
msgid "@code{interfaces} (default: @code{'(\"0.0.0.0\")})"
msgstr ""

#. type: table
#: doc/guix.texi:19028
msgid "Network interfaces on which to listen."
msgstr ""

#. type: item
#: doc/guix.texi:19029
#, no-wrap
msgid "@code{tcp-port} (default: @code{11211})"
msgstr ""

#. type: table
#: doc/guix.texi:19031
msgid "Port on which to accept connections on,"
msgstr ""

#. type: item
#: doc/guix.texi:19032
#, no-wrap
msgid "@code{udp-port} (default: @code{11211})"
msgstr ""

#. type: table
#: doc/guix.texi:19035
msgid ""
"Port on which to accept UDP connections on, a value of 0 will disable "
"listening on a UDP socket."
msgstr ""

#. type: item
#: doc/guix.texi:19036
#, no-wrap
msgid "@code{additional-options} (default: @code{'()})"
msgstr ""

#. type: table
#: doc/guix.texi:19038
msgid "Additional command line options to pass to @code{memcached}."
msgstr ""

#. type: subsubheading
#: doc/guix.texi:19041
#, no-wrap
msgid "MongoDB"
msgstr ""

#. type: defvr
#: doc/guix.texi:19043
#, no-wrap
msgid "{Scheme Variable} mongodb-service-type"
msgstr ""

#. type: defvr
#: doc/guix.texi:19046
msgid ""
"This is the service type for @uref{https://www.mongodb.com/, MongoDB}.  The "
"value for the service type is a @code{mongodb-configuration} object."
msgstr ""

#. type: lisp
#: doc/guix.texi:19050
#, no-wrap
msgid "(service mongodb-service-type)\n"
msgstr ""

#. type: deftp
#: doc/guix.texi:19052
#, no-wrap
msgid "{Data Type} mongodb-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:19054
msgid "Data type representing the configuration of mongodb."
msgstr ""

#. type: item
#: doc/guix.texi:19056
#, no-wrap
msgid "@code{mongodb} (default: @code{mongodb})"
msgstr ""

#. type: table
#: doc/guix.texi:19058
msgid "The MongoDB package to use."
msgstr ""

#. type: item
#: doc/guix.texi:19059
#, no-wrap
msgid "@code{config-file} (default: @code{%default-mongodb-configuration-file})"
msgstr ""

#. type: table
#: doc/guix.texi:19061
msgid "The configuration file for MongoDB."
msgstr ""

#. type: item
#: doc/guix.texi:19062
#, no-wrap
msgid "@code{data-directory} (default: @code{\"/var/lib/mongodb\"})"
msgstr ""

#. type: table
#: doc/guix.texi:19066
msgid ""
"This value is used to create the directory, so that it exists and is owned "
"by the mongodb user.  It should match the data-directory which MongoDB is "
"configured to use through the configuration file."
msgstr ""

#. type: subsubheading
#: doc/guix.texi:19069
#, no-wrap
msgid "Redis"
msgstr ""

#. type: defvr
#: doc/guix.texi:19071
#, no-wrap
msgid "{Scheme Variable} redis-service-type"
msgstr ""

#. type: defvr
#: doc/guix.texi:19074
msgid ""
"This is the service type for the @uref{https://redis.io/, Redis} key/value "
"store, whose value is a @code{redis-configuration} object."
msgstr ""

#. type: deftp
#: doc/guix.texi:19076
#, no-wrap
msgid "{Data Type} redis-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:19078
msgid "Data type representing the configuration of redis."
msgstr ""

#. type: item
#: doc/guix.texi:19080
#, no-wrap
msgid "@code{redis} (default: @code{redis})"
msgstr ""

#. type: table
#: doc/guix.texi:19082
msgid "The Redis package to use."
msgstr ""

#. type: item
#: doc/guix.texi:19083
#, no-wrap
msgid "@code{bind} (default: @code{\"127.0.0.1\"})"
msgstr ""

#. type: table
#: doc/guix.texi:19085
msgid "Network interface on which to listen."
msgstr ""

#. type: item
#: doc/guix.texi:19086
#, no-wrap
msgid "@code{port} (default: @code{6379})"
msgstr ""

#. type: table
#: doc/guix.texi:19089
msgid ""
"Port on which to accept connections on, a value of 0 will disable listening "
"on a TCP socket."
msgstr ""

#. type: item
#: doc/guix.texi:19090
#, no-wrap
msgid "@code{working-directory} (default: @code{\"/var/lib/redis\"})"
msgstr ""

#. type: table
#: doc/guix.texi:19092
msgid "Directory in which to store the database and related files."
msgstr ""

#. type: cindex
#: doc/guix.texi:19098
#, no-wrap
msgid "mail"
msgstr ""

#. type: cindex
#: doc/guix.texi:19099
#, no-wrap
msgid "email"
msgstr ""

#. type: Plain text
#: doc/guix.texi:19104
msgid ""
"The @code{(gnu services mail)} module provides Guix service definitions for "
"email services: IMAP, POP3, and LMTP servers, as well as mail transport "
"agents (MTAs).  Lots of acronyms! These services are detailed in the "
"subsections below."
msgstr ""

#. type: subsubheading
#: doc/guix.texi:19105
#, no-wrap
msgid "Dovecot Service"
msgstr ""

#. type: deffn
#: doc/guix.texi:19107
#, no-wrap
msgid "{Scheme Procedure} dovecot-service [#:config (dovecot-configuration)]"
msgstr ""

#. type: deffn
#: doc/guix.texi:19109
msgid "Return a service that runs the Dovecot IMAP/POP3/LMTP mail server."
msgstr ""

#. type: Plain text
#: doc/guix.texi:19119
msgid ""
"By default, Dovecot does not need much configuration; the default "
"configuration object created by @code{(dovecot-configuration)} will suffice "
"if your mail is delivered to @code{~/Maildir}.  A self-signed certificate "
"will be generated for TLS-protected connections, though Dovecot will also "
"listen on cleartext ports by default.  There are a number of options, "
"though, which mail administrators might need to change, and as is the case "
"with other services, Guix allows the system administrator to specify these "
"parameters via a uniform Scheme interface."
msgstr ""

#. type: Plain text
#: doc/guix.texi:19122
msgid ""
"For example, to specify that mail is located at @code{maildir~/.mail}, one "
"would instantiate the Dovecot service like this:"
msgstr ""

#. type: lisp
#: doc/guix.texi:19127
#, no-wrap
msgid ""
"(dovecot-service #:config\n"
"                 (dovecot-configuration\n"
"                  (mail-location \"maildir:~/.mail\")))\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:19135
msgid ""
"The available configuration parameters follow.  Each parameter definition is "
"preceded by its type; for example, @samp{string-list foo} indicates that the "
"@code{foo} parameter should be specified as a list of strings.  There is "
"also a way to specify the configuration as a string, if you have an old "
"@code{dovecot.conf} file that you want to port over from some other system; "
"see the end for more details."
msgstr ""

#. type: Plain text
#: doc/guix.texi:19145
msgid "Available @code{dovecot-configuration} fields are:"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19146
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} package dovecot"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19148 doc/guix.texi:20454
msgid "The dovecot package."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19150
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} comma-separated-string-list listen"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19156
msgid ""
"A list of IPs or hosts where to listen for connections.  @samp{*} listens on "
"all IPv4 interfaces, @samp{::} listens on all IPv6 interfaces.  If you want "
"to specify non-default ports or anything more complex, customize the address "
"and port fields of the @samp{inet-listener} of the specific services you are "
"interested in."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19158
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} protocol-configuration-list protocols"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19161
msgid ""
"List of protocols we want to serve.  Available protocols include "
"@samp{imap}, @samp{pop3}, and @samp{lmtp}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19163
msgid "Available @code{protocol-configuration} fields are:"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19164
#, no-wrap
msgid "{@code{protocol-configuration} parameter} string name"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19166
msgid "The name of the protocol."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19168
#, no-wrap
msgid "{@code{protocol-configuration} parameter} string auth-socket-path"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19172
msgid ""
"UNIX socket path to the master authentication server to find users.  This is "
"used by imap (for shared users) and lda.  It defaults to @samp{\"/var/run/"
"dovecot/auth-userdb\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19174
#, no-wrap
msgid "{@code{protocol-configuration} parameter} space-separated-string-list mail-plugins"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19176
msgid "Space separated list of plugins to load."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19178
#, no-wrap
msgid "{@code{protocol-configuration} parameter} non-negative-integer mail-max-userip-connections"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19182
msgid ""
"Maximum number of IMAP connections allowed for a user from each IP address.  "
"NOTE: The username is compared case-sensitively.  Defaults to @samp{10}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19186
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} service-configuration-list services"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19190
msgid ""
"List of services to enable.  Available services include @samp{imap}, "
"@samp{imap-login}, @samp{pop3}, @samp{pop3-login}, @samp{auth}, and "
"@samp{lmtp}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19192
msgid "Available @code{service-configuration} fields are:"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19193
#, no-wrap
msgid "{@code{service-configuration} parameter} string kind"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19198
msgid ""
"The service kind.  Valid values include @code{director}, @code{imap-login}, "
"@code{pop3-login}, @code{lmtp}, @code{imap}, @code{pop3}, @code{auth}, "
"@code{auth-worker}, @code{dict}, @code{tcpwrap}, @code{quota-warning}, or "
"anything else."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19200
#, no-wrap
msgid "{@code{service-configuration} parameter} listener-configuration-list listeners"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19205
msgid ""
"Listeners for the service.  A listener is either a @code{unix-listener-"
"configuration}, a @code{fifo-listener-configuration}, or an @code{inet-"
"listener-configuration}.  Defaults to @samp{()}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19207
msgid "Available @code{unix-listener-configuration} fields are:"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19208
#, no-wrap
msgid "{@code{unix-listener-configuration} parameter} string path"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19211 doc/guix.texi:19234
msgid ""
"Path to the file, relative to @code{base-dir} field.  This is also used as "
"the section name."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19213
#, no-wrap
msgid "{@code{unix-listener-configuration} parameter} string mode"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19216 doc/guix.texi:19239
msgid "The access mode for the socket.  Defaults to @samp{\"0600\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19218
#, no-wrap
msgid "{@code{unix-listener-configuration} parameter} string user"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19221 doc/guix.texi:19244
msgid "The user to own the socket.  Defaults to @samp{\"\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19223
#, no-wrap
msgid "{@code{unix-listener-configuration} parameter} string group"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19226 doc/guix.texi:19249
msgid "The group to own the socket.  Defaults to @samp{\"\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19230
msgid "Available @code{fifo-listener-configuration} fields are:"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19231
#, no-wrap
msgid "{@code{fifo-listener-configuration} parameter} string path"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19236
#, no-wrap
msgid "{@code{fifo-listener-configuration} parameter} string mode"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19241
#, no-wrap
msgid "{@code{fifo-listener-configuration} parameter} string user"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19246
#, no-wrap
msgid "{@code{fifo-listener-configuration} parameter} string group"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19253
msgid "Available @code{inet-listener-configuration} fields are:"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19254
#, no-wrap
msgid "{@code{inet-listener-configuration} parameter} string protocol"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19256
msgid "The protocol to listen for."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19258
#, no-wrap
msgid "{@code{inet-listener-configuration} parameter} string address"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19261
msgid ""
"The address on which to listen, or empty for all addresses.  Defaults to "
"@samp{\"\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19263
#, no-wrap
msgid "{@code{inet-listener-configuration} parameter} non-negative-integer port"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19265
msgid "The port on which to listen."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19267
#, no-wrap
msgid "{@code{inet-listener-configuration} parameter} boolean ssl?"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19271
msgid ""
"Whether to use SSL for this service; @samp{yes}, @samp{no}, or "
"@samp{required}.  Defaults to @samp{#t}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19275
#, no-wrap
msgid "{@code{service-configuration} parameter} non-negative-integer client-limit"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19280
msgid ""
"Maximum number of simultaneous client connections per process.  Once this "
"number of connections is received, the next incoming connection will prompt "
"Dovecot to spawn another process.  If set to 0, @code{default-client-limit} "
"is used instead."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19285
#, no-wrap
msgid "{@code{service-configuration} parameter} non-negative-integer service-count"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19290
msgid ""
"Number of connections to handle before starting a new process.  Typically "
"the only useful values are 0 (unlimited) or 1.  1 is more secure, but 0 is "
"faster.  <doc/wiki/LoginProcess.txt>.  Defaults to @samp{1}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19293
#, no-wrap
msgid "{@code{service-configuration} parameter} non-negative-integer process-limit"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19296
msgid ""
"Maximum number of processes that can exist for this service.  If set to 0, "
"@code{default-process-limit} is used instead."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19301
#, no-wrap
msgid "{@code{service-configuration} parameter} non-negative-integer process-min-avail"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19304
msgid ""
"Number of processes to always keep waiting for more connections.  Defaults "
"to @samp{0}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19306
#, no-wrap
msgid "{@code{service-configuration} parameter} non-negative-integer vsz-limit"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19310
msgid ""
"If you set @samp{service-count 0}, you probably need to grow this.  Defaults "
"to @samp{256000000}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19314
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} dict-configuration dict"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19317
msgid ""
"Dict configuration, as created by the @code{dict-configuration} constructor."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19319
msgid "Available @code{dict-configuration} fields are:"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19320
#, no-wrap
msgid "{@code{dict-configuration} parameter} free-form-fields entries"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19323
msgid ""
"A list of key-value pairs that this dict should hold.  Defaults to @samp{()}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19327
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} passdb-configuration-list passdbs"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19330
msgid ""
"A list of passdb configurations, each one created by the @code{passdb-"
"configuration} constructor."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19332
msgid "Available @code{passdb-configuration} fields are:"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19333
#, no-wrap
msgid "{@code{passdb-configuration} parameter} string driver"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19338
msgid ""
"The driver that the passdb should use.  Valid values include @samp{pam}, "
"@samp{passwd}, @samp{shadow}, @samp{bsdauth}, and @samp{static}.  Defaults "
"to @samp{\"pam\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19340
#, no-wrap
msgid "{@code{passdb-configuration} parameter} space-separated-string-list args"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19343
msgid ""
"Space separated list of arguments to the passdb driver.  Defaults to "
"@samp{\"\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19347
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} userdb-configuration-list userdbs"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19350
msgid ""
"List of userdb configurations, each one created by the @code{userdb-"
"configuration} constructor."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19352
msgid "Available @code{userdb-configuration} fields are:"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19353
#, no-wrap
msgid "{@code{userdb-configuration} parameter} string driver"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19357
msgid ""
"The driver that the userdb should use.  Valid values include @samp{passwd} "
"and @samp{static}.  Defaults to @samp{\"passwd\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19359
#, no-wrap
msgid "{@code{userdb-configuration} parameter} space-separated-string-list args"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19362
msgid ""
"Space separated list of arguments to the userdb driver.  Defaults to "
"@samp{\"\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19364
#, no-wrap
msgid "{@code{userdb-configuration} parameter} free-form-args override-fields"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19367
msgid "Override fields from passwd.  Defaults to @samp{()}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19371
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} plugin-configuration plugin-configuration"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19374
msgid ""
"Plug-in configuration, created by the @code{plugin-configuration} "
"constructor."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19376
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} list-of-namespace-configuration namespaces"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19379
msgid ""
"List of namespaces.  Each item in the list is created by the @code{namespace-"
"configuration} constructor."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19381
msgid "Available @code{namespace-configuration} fields are:"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19382
#, no-wrap
msgid "{@code{namespace-configuration} parameter} string name"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19384
msgid "Name for this namespace."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19386
#, no-wrap
msgid "{@code{namespace-configuration} parameter} string type"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19389
msgid ""
"Namespace type: @samp{private}, @samp{shared} or @samp{public}.  Defaults to "
"@samp{\"private\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19391
#, no-wrap
msgid "{@code{namespace-configuration} parameter} string separator"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19397
msgid ""
"Hierarchy separator to use. You should use the same separator for all "
"namespaces or some clients get confused.  @samp{/} is usually a good one.  "
"The default however depends on the underlying mail storage format.  Defaults "
"to @samp{\"\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19399
#, no-wrap
msgid "{@code{namespace-configuration} parameter} string prefix"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19403
msgid ""
"Prefix required to access this namespace.  This needs to be different for "
"all namespaces. For example @samp{Public/}.  Defaults to @samp{\"\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19405
#, no-wrap
msgid "{@code{namespace-configuration} parameter} string location"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19409
msgid ""
"Physical location of the mailbox. This is in the same format as "
"mail_location, which is also the default for it.  Defaults to @samp{\"\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19411
#, no-wrap
msgid "{@code{namespace-configuration} parameter} boolean inbox?"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19415
msgid ""
"There can be only one INBOX, and this setting defines which namespace has "
"it.  Defaults to @samp{#f}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19417
#, no-wrap
msgid "{@code{namespace-configuration} parameter} boolean hidden?"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19425
msgid ""
"If namespace is hidden, it's not advertised to clients via NAMESPACE "
"extension. You'll most likely also want to set @samp{list? #f}.  This is "
"mostly useful when converting from another server with different namespaces "
"which you want to deprecate but still keep working.  For example you can "
"create hidden namespaces with prefixes @samp{~/mail/}, @samp{~%u/mail/} and "
"@samp{mail/}.  Defaults to @samp{#f}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19427
#, no-wrap
msgid "{@code{namespace-configuration} parameter} boolean list?"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19433
msgid ""
"Show the mailboxes under this namespace with the LIST command. This makes "
"the namespace visible for clients that do not support the NAMESPACE "
"extension.  The special @code{children} value lists child mailboxes, but "
"hides the namespace prefix.  Defaults to @samp{#t}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19435
#, no-wrap
msgid "{@code{namespace-configuration} parameter} boolean subscriptions?"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19440
msgid ""
"Namespace handles its own subscriptions.  If set to @code{#f}, the parent "
"namespace handles them.  The empty prefix should always have this as "
"@code{#t}).  Defaults to @samp{#t}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19442
#, no-wrap
msgid "{@code{namespace-configuration} parameter} mailbox-configuration-list mailboxes"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19445
msgid "List of predefined mailboxes in this namespace.  Defaults to @samp{()}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19447
msgid "Available @code{mailbox-configuration} fields are:"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19448
#, no-wrap
msgid "{@code{mailbox-configuration} parameter} string name"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19450
msgid "Name for this mailbox."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19452
#, no-wrap
msgid "{@code{mailbox-configuration} parameter} string auto"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19456
msgid ""
"@samp{create} will automatically create this mailbox.  @samp{subscribe} will "
"both create and subscribe to the mailbox.  Defaults to @samp{\"no\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19458
#, no-wrap
msgid "{@code{mailbox-configuration} parameter} space-separated-string-list special-use"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19463
msgid ""
"List of IMAP @code{SPECIAL-USE} attributes as specified by RFC 6154.  Valid "
"values are @code{\\All}, @code{\\Archive}, @code{\\Drafts}, "
"@code{\\Flagged}, @code{\\Junk}, @code{\\Sent}, and @code{\\Trash}.  "
"Defaults to @samp{()}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19469
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} file-name base-dir"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19472
msgid ""
"Base directory where to store runtime data.  Defaults to @samp{\"/var/run/"
"dovecot/\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19474
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} string login-greeting"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19477
msgid "Greeting message for clients.  Defaults to @samp{\"Dovecot ready.\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19479
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} space-separated-string-list login-trusted-networks"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19486
msgid ""
"List of trusted network ranges.  Connections from these IPs are allowed to "
"override their IP addresses and ports (for logging and for authentication "
"checks).  @samp{disable-plaintext-auth} is also ignored for these networks.  "
"Typically you would specify your IMAP proxy servers here.  Defaults to "
"@samp{()}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19488
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} space-separated-string-list login-access-sockets"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19491
msgid ""
"List of login access check sockets (e.g.@: tcpwrap).  Defaults to @samp{()}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19493
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} boolean verbose-proctitle?"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19499
msgid ""
"Show more verbose process titles (in ps).  Currently shows user name and IP "
"address.  Useful for seeing who is actually using the IMAP processes (e.g.@: "
"shared mailboxes or if the same uid is used for multiple accounts).  "
"Defaults to @samp{#f}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19501
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} boolean shutdown-clients?"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19507
msgid ""
"Should all processes be killed when Dovecot master process shuts down.  "
"Setting this to @code{#f} means that Dovecot can be upgraded without forcing "
"existing client connections to close (although that could also be a problem "
"if the upgrade is e.g.@: due to a security fix).  Defaults to @samp{#t}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19509
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} non-negative-integer doveadm-worker-count"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19513
msgid ""
"If non-zero, run mail commands via this many connections to doveadm server, "
"instead of running them directly in the same process.  Defaults to @samp{0}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19515
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} string doveadm-socket-path"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19518
msgid ""
"UNIX socket or host:port used for connecting to doveadm server.  Defaults to "
"@samp{\"doveadm-server\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19520
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} space-separated-string-list import-environment"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19524
msgid ""
"List of environment variables that are preserved on Dovecot startup and "
"passed down to all of its child processes.  You can also give key=value "
"pairs to always set specific settings."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19526
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} boolean disable-plaintext-auth?"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19533
msgid ""
"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.  Defaults to @samp{#t}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19535
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} non-negative-integer auth-cache-size"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19540
msgid ""
"Authentication cache size (e.g.@: @samp{#e10e6}).  0 means it's disabled.  "
"Note that bsdauth, PAM and vpopmail require @samp{cache-key} to be set for "
"caching to be used.  Defaults to @samp{0}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19542
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} string auth-cache-ttl"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19550
msgid ""
"Time to live for cached data.  After TTL expires the cached record is no "
"longer used, *except* if the main database lookup returns internal failure.  "
"We also try to handle password changes automatically: If user's previous "
"authentication was successful, but this one wasn't, the cache isn't used.  "
"For now this works only with plaintext authentication.  Defaults to "
"@samp{\"1 hour\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19552
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} string auth-cache-negative-ttl"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19556
msgid ""
"TTL for negative hits (user not found, password mismatch).  0 disables "
"caching them completely.  Defaults to @samp{\"1 hour\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19558
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} space-separated-string-list auth-realms"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19564
msgid ""
"List of realms for SASL authentication mechanisms that need them.  You can "
"leave it empty if you don't want to support multiple realms.  Many clients "
"simply use the first one listed here, so keep the default realm first.  "
"Defaults to @samp{()}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19566
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} string auth-default-realm"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19571
msgid ""
"Default realm/domain to use if none was specified.  This is used for both "
"SASL realms and appending @@domain to username in plaintext logins.  "
"Defaults to @samp{\"\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19573
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} string auth-username-chars"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19580
msgid ""
"List of allowed characters in username.  If the user-given username contains "
"a character not listed in here, the login automatically fails.  This is just "
"an extra check to make sure user can't exploit any potential quote escaping "
"vulnerabilities with SQL/LDAP databases.  If you want to allow all "
"characters, set this value to empty.  Defaults to "
"@samp{\"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890.-_@@"
"\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19582
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} string auth-username-translation"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19588
msgid ""
"Username character translations before it's looked up from databases.  The "
"value contains series of from -> to characters.  For example @samp{#@@/@@} "
"means that @samp{#} and @samp{/} characters are translated to @samp{@@}.  "
"Defaults to @samp{\"\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19590
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} string auth-username-format"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19597
msgid ""
"Username formatting before it's looked up from databases.  You can use the "
"standard variables here, e.g.@: %Lu would lowercase the username, %n would "
"drop away the domain if it was given, or @samp{%n-AT-%d} would change the "
"@samp{@@} into @samp{-AT-}.  This translation is done after @samp{auth-"
"username-translation} changes.  Defaults to @samp{\"%Lu\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19599
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} string auth-master-user-separator"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19607
msgid ""
"If you want to allow master users to log in by specifying the master "
"username within the normal username string (i.e.@: not using SASL "
"mechanism's support for it), you can specify the separator character here.  "
"The format is then <username><separator><master username>.  UW-IMAP uses "
"@samp{*} as the separator, so that could be a good choice.  Defaults to "
"@samp{\"\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19609
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} string auth-anonymous-username"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19613
msgid ""
"Username to use for users logging in with ANONYMOUS SASL mechanism.  "
"Defaults to @samp{\"anonymous\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19615
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} non-negative-integer auth-worker-max-count"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19620
msgid ""
"Maximum number of dovecot-auth worker processes.  They're used to execute "
"blocking passdb and userdb queries (e.g.@: MySQL and PAM).  They're "
"automatically created and destroyed as needed.  Defaults to @samp{30}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19622
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} string auth-gssapi-hostname"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19627
msgid ""
"Host name to use in GSSAPI principal names.  The default is to use the name "
"returned by gethostname().  Use @samp{$ALL} (with quotes) to allow all "
"keytab entries.  Defaults to @samp{\"\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19629
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} string auth-krb5-keytab"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19635
msgid ""
"Kerberos keytab to use for the GSSAPI mechanism.  Will use the system "
"default (usually @file{/etc/krb5.keytab}) if not specified.  You may need to "
"change the auth service to run as root to be able to read this file.  "
"Defaults to @samp{\"\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19637
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} boolean auth-use-winbind?"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19642
msgid ""
"Do NTLM and GSS-SPNEGO authentication using Samba's winbind daemon and "
"@samp{ntlm-auth} helper.  <doc/wiki/Authentication/Mechanisms/Winbind.txt>.  "
"Defaults to @samp{#f}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19644
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} file-name auth-winbind-helper-path"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19647
msgid ""
"Path for Samba's @samp{ntlm-auth} helper binary.  Defaults to @samp{\"/usr/"
"bin/ntlm_auth\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19649
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} string auth-failure-delay"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19652
msgid ""
"Time to delay before replying to failed authentications.  Defaults to "
"@samp{\"2 secs\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19654
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} boolean auth-ssl-require-client-cert?"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19658
msgid ""
"Require a valid SSL client certificate or the authentication fails.  "
"Defaults to @samp{#f}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19660
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} boolean auth-ssl-username-from-cert?"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19665
msgid ""
"Take the username from client's SSL certificate, using "
"@code{X509_NAME_get_text_by_NID()} which returns the subject's DN's "
"CommonName.  Defaults to @samp{#f}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19667
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} space-separated-string-list auth-mechanisms"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19673
msgid ""
"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{disable-plaintext-"
"auth} setting."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19675
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} space-separated-string-list director-servers"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19680
msgid ""
"List of IPs or hostnames to all director servers, including ourself.  Ports "
"can be specified as ip:port.  The default port is the same as what director "
"service's @samp{inet-listener} is using.  Defaults to @samp{()}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19682
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} space-separated-string-list director-mail-servers"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19686
msgid ""
"List of IPs or hostnames to all backend mail servers.  Ranges are allowed "
"too, like 10.0.0.10-10.0.0.30.  Defaults to @samp{()}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19688
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} string director-user-expire"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19692
msgid ""
"How long to redirect users to a specific server after it no longer has any "
"connections.  Defaults to @samp{\"15 min\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19694
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} string director-username-hash"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19699
msgid ""
"How the username is translated before being hashed.  Useful values include "
"%Ln if user can log in with or without @@domain, %Ld if mailboxes are shared "
"within domain.  Defaults to @samp{\"%Lu\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19701
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} string log-path"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19705
msgid ""
"Log file to use for error messages.  @samp{syslog} logs to syslog, @samp{/"
"dev/stderr} logs to stderr.  Defaults to @samp{\"syslog\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19707
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} string info-log-path"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19711
msgid ""
"Log file to use for informational messages.  Defaults to @samp{log-path}.  "
"Defaults to @samp{\"\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19713
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} string debug-log-path"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19717
msgid ""
"Log file to use for debug messages.  Defaults to @samp{info-log-path}.  "
"Defaults to @samp{\"\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19719
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} string syslog-facility"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19724
msgid ""
"Syslog facility to use if you're logging to syslog.  Usually if you don't "
"want to use @samp{mail}, you'll use local0..local7.  Also other standard "
"facilities are supported.  Defaults to @samp{\"mail\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19726
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} boolean auth-verbose?"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19730
msgid ""
"Log unsuccessful authentication attempts and the reasons why they failed.  "
"Defaults to @samp{#f}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19732
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} string auth-verbose-passwords"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19739
msgid ""
"In case of password mismatches, log the attempted password.  Valid values "
"are no, plain and sha1.  sha1 can be useful for detecting brute force "
"password attempts vs.  user simply trying the same password over and over "
"again.  You can also truncate the value to n chars by appending \":n\" (e.g."
"@: sha1:6).  Defaults to @samp{\"no\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19741
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} boolean auth-debug?"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19745
msgid ""
"Even more verbose logging for debugging purposes.  Shows for example SQL "
"queries.  Defaults to @samp{#f}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19747
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} boolean auth-debug-passwords?"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19752
msgid ""
"In case of password mismatches, log the passwords and used scheme so the "
"problem can be debugged.  Enabling this also enables @samp{auth-debug}.  "
"Defaults to @samp{#f}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19754
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} boolean mail-debug?"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19758
msgid ""
"Enable mail process debugging.  This can help you figure out why Dovecot "
"isn't finding your mails.  Defaults to @samp{#f}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19760
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} boolean verbose-ssl?"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19763
msgid "Show protocol level SSL errors.  Defaults to @samp{#f}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19765
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} string log-timestamp"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19769
msgid ""
"Prefix for each line written to log file.  % codes are in strftime(3) "
"format.  Defaults to @samp{\"\\\"%b %d %H:%M:%S \\\"\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19771
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} space-separated-string-list login-log-format-elements"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19775
msgid ""
"List of elements we want to log.  The elements which have a non-empty "
"variable value are joined together to form a comma-separated string."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19777
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} string login-log-format"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19781
msgid ""
"Login log format.  %s contains @samp{login-log-format-elements} string, %$ "
"contains the data we want to log.  Defaults to @samp{\"%$: %s\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19783
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} string mail-log-prefix"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19787
msgid ""
"Log prefix for mail processes.  See doc/wiki/Variables.txt for list of "
"possible variables you can use.  Defaults to @samp{\"\\\"%s(%u)<%@{pid@}><"
"%@{session@}>: \\\"\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19789
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} string deliver-log-format"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19791
msgid "Format to use for logging mail deliveries.  You can use variables:"
msgstr ""

#. type: item
#: doc/guix.texi:19792
#, no-wrap
msgid "%$"
msgstr ""

#. type: table
#: doc/guix.texi:19794
msgid "Delivery status message (e.g.@: @samp{saved to INBOX})"
msgstr ""

#. type: item
#: doc/guix.texi:19794
#, no-wrap
msgid "%m"
msgstr ""

#. type: table
#: doc/guix.texi:19796
msgid "Message-ID"
msgstr ""

#. type: item
#: doc/guix.texi:19796 doc/guix.texi:20328
#, no-wrap
msgid "%s"
msgstr ""

#. type: table
#: doc/guix.texi:19798
msgid "Subject"
msgstr ""

#. type: item
#: doc/guix.texi:19798
#, no-wrap
msgid "%f"
msgstr ""

#. type: table
#: doc/guix.texi:19800
msgid "From address"
msgstr ""

#. type: table
#: doc/guix.texi:19802
msgid "Physical size"
msgstr ""

#. type: item
#: doc/guix.texi:19802
#, no-wrap
msgid "%w"
msgstr ""

#. type: table
#: doc/guix.texi:19804
msgid "Virtual size."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19806
msgid "Defaults to @samp{\"msgid=%m: %$\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19808
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} string mail-location"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19813
msgid ""
"Location for users' mailboxes.  The default is empty, which means that "
"Dovecot tries to find the mailboxes automatically.  This won't work if the "
"user doesn't yet have any mail, so you should explicitly tell Dovecot the "
"full location."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19819
msgid ""
"If you're using mbox, giving a path to the INBOX file (e.g.@: @file{/var/"
"mail/%u}) isn't enough.  You'll also need to tell Dovecot where the other "
"mailboxes are kept.  This is called the @emph{root mail directory}, and it "
"must be the first path given in the @samp{mail-location} setting."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19821
msgid "There are a few special variables you can use, e.g.:"
msgstr ""

#. type: table
#: doc/guix.texi:19825
msgid "username"
msgstr ""

#. type: item
#: doc/guix.texi:19825 doc/guix.texi:20324
#, no-wrap
msgid "%n"
msgstr ""

#. type: table
#: doc/guix.texi:19827
msgid "user part in user@@domain, same as %u if there's no domain"
msgstr ""

#. type: item
#: doc/guix.texi:19827
#, no-wrap
msgid "%d"
msgstr ""

#. type: table
#: doc/guix.texi:19829
msgid "domain part in user@@domain, empty if there's no domain"
msgstr ""

#. type: item
#: doc/guix.texi:19829
#, no-wrap
msgid "%h"
msgstr ""

#. type: table
#: doc/guix.texi:19831
msgid "home director"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19834
msgid "See doc/wiki/Variables.txt for full list.  Some examples:"
msgstr ""

#. type: item
#: doc/guix.texi:19835
#, no-wrap
msgid "maildir:~/Maildir"
msgstr ""

#. type: item
#: doc/guix.texi:19836
#, no-wrap
msgid "mbox:~/mail:INBOX=/var/mail/%u"
msgstr ""

#. type: item
#: doc/guix.texi:19837
#, no-wrap
msgid "mbox:/var/mail/%d/%1n/%n:INDEX=/var/indexes/%d/%1n/%"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19842
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} string mail-uid"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19847
msgid ""
"System user and group used to access mails.  If you use multiple, userdb can "
"override these by returning uid or gid fields.  You can use either numbers "
"or names.  <doc/wiki/UserIds.txt>.  Defaults to @samp{\"\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19849
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} string mail-gid"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19854
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} string mail-privileged-group"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19860
msgid ""
"Group to enable temporarily for privileged operations.  Currently this is "
"used only with INBOX when either its initial creation or dotlocking fails.  "
"Typically this is set to @samp{\"mail\"} to give access to @file{/var/"
"mail}.  Defaults to @samp{\"\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19862
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} string mail-access-groups"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19870
msgid ""
"Grant access to these supplementary groups for mail processes.  Typically "
"these are used to set up access to shared mailboxes.  Note that it may be "
"dangerous to set these if users can create symlinks (e.g.@: if @samp{mail} "
"group is set here, @code{ln -s /var/mail ~/mail/var} could allow a user to "
"delete others' mailboxes, or @code{ln -s /secret/shared/box ~/mail/mybox} "
"would allow reading it).  Defaults to @samp{\"\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19872
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} boolean mail-full-filesystem-access?"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19878
msgid ""
"Allow full file system access to clients.  There's no access checks other "
"than what the operating system does for the active UID/GID.  It works with "
"both maildir and mboxes, allowing you to prefix mailboxes names with e.g.@: "
"@file{/path/} or @file{~user/}.  Defaults to @samp{#f}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19880
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} boolean mmap-disable?"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19884
msgid ""
"Don't use @code{mmap()} at all.  This is required if you store indexes to "
"shared file systems (NFS or clustered file system).  Defaults to @samp{#f}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19886
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} boolean dotlock-use-excl?"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19891
msgid ""
"Rely on @samp{O_EXCL} to work when creating dotlock files.  NFS supports "
"@samp{O_EXCL} since version 3, so this should be safe to use nowadays by "
"default.  Defaults to @samp{#t}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19893
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} string mail-fsync"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19895
msgid "When to use fsync() or fdatasync() calls:"
msgstr ""

#. type: item
#: doc/guix.texi:19896
#, no-wrap
msgid "optimized"
msgstr ""

#. type: table
#: doc/guix.texi:19898
msgid "Whenever necessary to avoid losing important data"
msgstr ""

#. type: table
#: doc/guix.texi:19900
msgid "Useful with e.g.@: NFS when @code{write()}s are delayed"
msgstr ""

#. type: table
#: doc/guix.texi:19902
msgid "Never use it (best performance, but crashes can lose data)."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19904
msgid "Defaults to @samp{\"optimized\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19906
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} boolean mail-nfs-storage?"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19911
msgid ""
"Mail storage exists in NFS.  Set this to yes to make Dovecot flush NFS "
"caches whenever needed.  If you're using only a single mail server this "
"isn't needed.  Defaults to @samp{#f}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19913
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} boolean mail-nfs-index?"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19917
msgid ""
"Mail index files also exist in NFS.  Setting this to yes requires @samp{mmap-"
"disable? #t} and @samp{fsync-disable? #f}.  Defaults to @samp{#f}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19919
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} string lock-method"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19925
msgid ""
"Locking method for index files.  Alternatives are fcntl, flock and dotlock.  "
"Dotlocking uses some tricks which may create more disk I/O than other "
"locking methods.  NFS users: flock doesn't work, remember to change "
"@samp{mmap-disable}.  Defaults to @samp{\"fcntl\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19927
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} file-name mail-temp-dir"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19931
msgid ""
"Directory in which LDA/LMTP temporarily stores incoming mails >128 kB.  "
"Defaults to @samp{\"/tmp\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19933
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} non-negative-integer first-valid-uid"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19939
msgid ""
"Valid UID range for users.  This is mostly to make sure that users can't log "
"in as daemons or other system users.  Note that denying root logins is "
"hardcoded to dovecot binary and can't be done even if @samp{first-valid-uid} "
"is set to 0.  Defaults to @samp{500}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19941
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} non-negative-integer last-valid-uid"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19946
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} non-negative-integer first-valid-gid"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19951
msgid ""
"Valid GID range for users.  Users having non-valid GID as primary group ID "
"aren't allowed to log in.  If user belongs to supplementary groups with non-"
"valid GIDs, those groups are not set.  Defaults to @samp{1}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19953
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} non-negative-integer last-valid-gid"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19958
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} non-negative-integer mail-max-keyword-length"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19962
msgid ""
"Maximum allowed length for mail keyword name.  It's only forced when trying "
"to create new keywords.  Defaults to @samp{50}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19964
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} colon-separated-file-name-list valid-chroot-dirs"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19974
msgid ""
"List of directories under which chrooting is allowed for mail processes (i.e."
"@: @file{/var/mail} will allow chrooting to @file{/var/mail/foo/bar} too).  "
"This setting doesn't affect @samp{login-chroot} @samp{mail-chroot} or auth "
"chroot settings.  If this setting is empty, @samp{/./} in home dirs are "
"ignored.  WARNING: Never add directories here which local users can modify, "
"that may lead to root exploit.  Usually this should be done only if you "
"don't allow shell access for users.  <doc/wiki/Chrooting.txt>.  Defaults to "
"@samp{()}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19976
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} string mail-chroot"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19985
msgid ""
"Default chroot directory for mail processes.  This can be overridden for "
"specific users in user database by giving @samp{/./} in user's home "
"directory (e.g.@: @samp{/home/./user} chroots into @file{/home}).  Note that "
"usually there is no real need to do chrooting, Dovecot doesn't allow users "
"to access files outside their mail directory anyway.  If your home "
"directories are prefixed with the chroot directory, append @samp{/.} to "
"@samp{mail-chroot}.  <doc/wiki/Chrooting.txt>.  Defaults to @samp{\"\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19987
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} file-name auth-socket-path"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19991
msgid ""
"UNIX socket path to master authentication server to find users.  This is "
"used by imap (for shared users) and lda.  Defaults to @samp{\"/var/run/"
"dovecot/auth-userdb\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19993
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} file-name mail-plugin-dir"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19996
msgid ""
"Directory where to look up mail plugins.  Defaults to @samp{\"/usr/lib/"
"dovecot\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:19998
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} space-separated-string-list mail-plugins"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20002
msgid ""
"List of plugins to load for all services.  Plugins specific to IMAP, LDA, "
"etc.@: are added to this list in their own .conf files.  Defaults to "
"@samp{()}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20004
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} non-negative-integer mail-cache-min-mail-count"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20009
msgid ""
"The minimum number of mails in a mailbox before updates are done to cache "
"file.  This allows optimizing Dovecot's behavior to do less disk writes at "
"the cost of more disk reads.  Defaults to @samp{0}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20011
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} string mailbox-idle-check-interval"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20018
msgid ""
"When IDLE command is running, mailbox is checked once in a while to see if "
"there are any new mails or other changes.  This setting defines the minimum "
"time to wait between those checks.  Dovecot can also use dnotify, inotify "
"and kqueue to find out immediately when changes occur.  Defaults to "
"@samp{\"30 secs\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20020
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} boolean mail-save-crlf?"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20027
msgid ""
"Save mails with CR+LF instead of plain LF.  This makes sending those mails "
"take less CPU, especially with sendfile() syscall with Linux and FreeBSD.  "
"But it also creates a bit more disk I/O which may just make it slower.  Also "
"note that if other software reads the mboxes/maildirs, they may handle the "
"extra CRs wrong and cause problems.  Defaults to @samp{#f}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20029
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} boolean maildir-stat-dirs?"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20037
msgid ""
"By default LIST command returns all entries in maildir beginning with a "
"dot.  Enabling this option makes Dovecot return only entries which are "
"directories.  This is done by stat()ing each entry, so it causes more disk I/"
"O.  (For systems setting struct @samp{dirent->d_type} this check is free and "
"it's done always regardless of this setting).  Defaults to @samp{#f}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20039
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} boolean maildir-copy-with-hardlinks?"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20044
msgid ""
"When copying a message, do it with hard links whenever possible.  This makes "
"the performance much better, and it's unlikely to have any side effects.  "
"Defaults to @samp{#t}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20046
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} boolean maildir-very-dirty-syncs?"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20051
msgid ""
"Assume Dovecot is the only MUA accessing Maildir: Scan cur/ directory only "
"when its mtime changes unexpectedly or when we can't find the mail "
"otherwise.  Defaults to @samp{#f}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20053
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} space-separated-string-list mbox-read-locks"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20056
msgid ""
"Which locking methods to use for locking mbox.  There are four available:"
msgstr ""

#. type: item
#: doc/guix.texi:20058
#, no-wrap
msgid "dotlock"
msgstr ""

#. type: table
#: doc/guix.texi:20062
msgid ""
"Create <mailbox>.lock file.  This is the oldest and most NFS-safe solution.  "
"If you want to use /var/mail/ like directory, the users will need write "
"access to that directory."
msgstr ""

#. type: item
#: doc/guix.texi:20062
#, no-wrap
msgid "dotlock-try"
msgstr ""

#. type: table
#: doc/guix.texi:20065
msgid ""
"Same as dotlock, but if it fails because of permissions or because there "
"isn't enough disk space, just skip it."
msgstr ""

#. type: item
#: doc/guix.texi:20065
#, no-wrap
msgid "fcntl"
msgstr ""

#. type: table
#: doc/guix.texi:20067
msgid "Use this if possible.  Works with NFS too if lockd is used."
msgstr ""

#. type: item
#: doc/guix.texi:20067
#, no-wrap
msgid "flock"
msgstr ""

#. type: table
#: doc/guix.texi:20069 doc/guix.texi:20071
msgid "May not exist in all systems.  Doesn't work with NFS."
msgstr ""

#. type: item
#: doc/guix.texi:20069
#, no-wrap
msgid "lockf"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20077
msgid ""
"You can use multiple locking methods; if you do the order they're declared "
"in is important to avoid deadlocks if other MTAs/MUAs are using multiple "
"locking methods as well.  Some operating systems don't allow using some of "
"them simultaneously."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20079
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} space-separated-string-list mbox-write-locks"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20083
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} string mbox-lock-timeout"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20086
msgid ""
"Maximum time to wait for lock (all of them) before aborting.  Defaults to "
"@samp{\"5 mins\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20088
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} string mbox-dotlock-change-timeout"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20092
msgid ""
"If dotlock exists but the mailbox isn't modified in any way, override the "
"lock file after this much time.  Defaults to @samp{\"2 mins\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20094
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} boolean mbox-dirty-syncs?"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20105
msgid ""
"When mbox changes unexpectedly we have to fully read it to find out what "
"changed.  If the mbox is large this can take a long time.  Since the change "
"is usually just a newly appended mail, it'd be faster to simply read the new "
"mails.  If this setting is enabled, Dovecot does this but still safely "
"fallbacks to re-reading the whole mbox file whenever something in mbox isn't "
"how it's expected to be.  The only real downside to this setting is that if "
"some other MUA changes message flags, Dovecot doesn't notice it "
"immediately.  Note that a full sync is done with SELECT, EXAMINE, EXPUNGE "
"and CHECK commands.  Defaults to @samp{#t}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20107
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} boolean mbox-very-dirty-syncs?"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20112
msgid ""
"Like @samp{mbox-dirty-syncs}, but don't do full syncs even with SELECT, "
"EXAMINE, EXPUNGE or CHECK commands.  If this is set, @samp{mbox-dirty-syncs} "
"is ignored.  Defaults to @samp{#f}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20114
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} boolean mbox-lazy-writes?"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20120
msgid ""
"Delay writing mbox headers until doing a full write sync (EXPUNGE and CHECK "
"commands and when closing the mailbox).  This is especially useful for POP3 "
"where clients often delete all mails.  The downside is that our changes "
"aren't immediately visible to other MUAs.  Defaults to @samp{#t}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20122
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} non-negative-integer mbox-min-index-size"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20127
msgid ""
"If mbox size is smaller than this (e.g.@: 100k), don't write index files.  "
"If an index file already exists it's still read, just not updated.  Defaults "
"to @samp{0}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20129
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} non-negative-integer mdbox-rotate-size"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20132
msgid ""
"Maximum dbox file size until it's rotated.  Defaults to @samp{10000000}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20134
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} string mdbox-rotate-interval"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20139
msgid ""
"Maximum dbox file age until it's rotated.  Typically in days.  Day begins "
"from midnight, so 1d = today, 2d = yesterday, etc.  0 = check disabled.  "
"Defaults to @samp{\"1d\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20141
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} boolean mdbox-preallocate-space?"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20146
msgid ""
"When creating new mdbox files, immediately preallocate their size to "
"@samp{mdbox-rotate-size}.  This setting currently works only in Linux with "
"some file systems (ext4, xfs).  Defaults to @samp{#f}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20148
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} string mail-attachment-dir"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20152
msgid ""
"sdbox and mdbox support saving mail attachments to external files, which "
"also allows single instance storage for them.  Other backends don't support "
"this for now."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20154
msgid ""
"WARNING: This feature hasn't been tested much yet.  Use at your own risk."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20157
msgid ""
"Directory root where to store mail attachments.  Disabled, if empty.  "
"Defaults to @samp{\"\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20159
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} non-negative-integer mail-attachment-min-size"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20164
msgid ""
"Attachments smaller than this aren't saved externally.  It's also possible "
"to write a plugin to disable saving specific attachments externally.  "
"Defaults to @samp{128000}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20166
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} string mail-attachment-fs"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20168
msgid "File system backend to use for saving attachments:"
msgstr ""

#. type: item
#: doc/guix.texi:20169
#, no-wrap
msgid "posix"
msgstr ""

#. type: table
#: doc/guix.texi:20171
msgid "No SiS done by Dovecot (but this might help FS's own deduplication)"
msgstr ""

#. type: item
#: doc/guix.texi:20171
#, no-wrap
msgid "sis posix"
msgstr ""

#. type: table
#: doc/guix.texi:20173
msgid "SiS with immediate byte-by-byte comparison during saving"
msgstr ""

#. type: item
#: doc/guix.texi:20173
#, no-wrap
msgid "sis-queue posix"
msgstr ""

#. type: table
#: doc/guix.texi:20175
msgid "SiS with delayed comparison and deduplication."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20177
msgid "Defaults to @samp{\"sis posix\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20179
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} string mail-attachment-hash"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20185
msgid ""
"Hash format to use in attachment filenames.  You can add any text and "
"variables: @code{%@{md4@}}, @code{%@{md5@}}, @code{%@{sha1@}}, "
"@code{%@{sha256@}}, @code{%@{sha512@}}, @code{%@{size@}}.  Variables can be "
"truncated, e.g.@: @code{%@{sha256:80@}} returns only first 80 bits.  "
"Defaults to @samp{\"%@{sha1@}\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20187
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} non-negative-integer default-process-limit"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20192
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} non-negative-integer default-client-limit"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20195 doc/guix.texi:26377
msgid "Defaults to @samp{1000}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20197
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} non-negative-integer default-vsz-limit"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20202
msgid ""
"Default VSZ (virtual memory size) limit for service processes.  This is "
"mainly intended to catch and kill processes that leak memory before they eat "
"up everything.  Defaults to @samp{256000000}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20204
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} string default-login-user"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20209
msgid ""
"Login user is internally used by login processes.  This is the most "
"untrusted user in Dovecot system.  It shouldn't have access to anything at "
"all.  Defaults to @samp{\"dovenull\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20211
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} string default-internal-user"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20216
msgid ""
"Internal user is used by unprivileged processes.  It should be separate from "
"login user, so that login processes can't disturb other processes.  Defaults "
"to @samp{\"dovecot\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20218
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} string ssl?"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20221
msgid ""
"SSL/TLS support: yes, no, required.  <doc/wiki/SSL.txt>.  Defaults to "
"@samp{\"required\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20223
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} string ssl-cert"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20226
msgid ""
"PEM encoded X.509 SSL/TLS certificate (public key).  Defaults to @samp{\"</"
"etc/dovecot/default.pem\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20228
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} string ssl-key"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20233
msgid ""
"PEM encoded SSL/TLS private key.  The key is opened before dropping root "
"privileges, so keep the key file unreadable by anyone but root.  Defaults to "
"@samp{\"</etc/dovecot/private/default.pem\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20235
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} string ssl-key-password"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20241
msgid ""
"If key file is password protected, give the password here.  Alternatively "
"give it when starting dovecot with -p parameter.  Since this file is often "
"world-readable, you may want to place this setting instead to a different.  "
"Defaults to @samp{\"\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20243
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} string ssl-ca"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20249
msgid ""
"PEM encoded trusted certificate authority.  Set this only if you intend to "
"use @samp{ssl-verify-client-cert? #t}.  The file should contain the CA "
"certificate(s) followed by the matching CRL(s).  (e.g.@: @samp{ssl-ca </etc/"
"ssl/certs/ca.pem}).  Defaults to @samp{\"\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20251
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} boolean ssl-require-crl?"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20254
msgid ""
"Require that CRL check succeeds for client certificates.  Defaults to "
"@samp{#t}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20256
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} boolean ssl-verify-client-cert?"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20260
msgid ""
"Request client to send a certificate.  If you also want to require it, set "
"@samp{auth-ssl-require-client-cert? #t} in auth section.  Defaults to "
"@samp{#f}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20262
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} string ssl-cert-username-field"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20267
msgid ""
"Which field from certificate to use for username.  commonName and "
"x500UniqueIdentifier are the usual choices.  You'll also need to set "
"@samp{auth-ssl-username-from-cert? #t}.  Defaults to @samp{\"commonName\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20269
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} string ssl-min-protocol"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20272
msgid "Minimum SSL protocol version to accept.  Defaults to @samp{\"TLSv1\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20274
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} string ssl-cipher-list"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20277
msgid ""
"SSL ciphers to use.  Defaults to @samp{\"ALL:!kRSA:!SRP:!kDHd:!DSS:!aNULL:!"
"eNULL:!EXPORT:!DES:!3DES:!MD5:!PSK:!RC4:!ADH:!LOW@@STRENGTH\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20279
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} string ssl-crypto-device"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20282
msgid ""
"SSL crypto device to use, for valid values run \"openssl engine\".  Defaults "
"to @samp{\"\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20284
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} string postmaster-address"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20288
msgid ""
"Address to use when sending rejection mails.  %d expands to recipient "
"domain.  Defaults to @samp{\"postmaster@@%d\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20290
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} string hostname"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20294
msgid ""
"Hostname to use in various parts of sent mails (e.g.@: in Message-Id)  and "
"in LMTP replies.  Default is the system's real hostname@@domain.  Defaults "
"to @samp{\"\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20296
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} boolean quota-full-tempfail?"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20300
msgid ""
"If user is over quota, return with temporary failure instead of bouncing the "
"mail.  Defaults to @samp{#f}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20302
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} file-name sendmail-path"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20305
msgid ""
"Binary to use for sending mails.  Defaults to @samp{\"/usr/sbin/sendmail\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20307
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} string submission-host"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20311
msgid ""
"If non-empty, send mails via this SMTP host[:port] instead of sendmail.  "
"Defaults to @samp{\"\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20313
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} string rejection-subject"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20317
msgid ""
"Subject: header to use for rejection mails.  You can use the same variables "
"as for @samp{rejection-reason} below.  Defaults to @samp{\"Rejected: %s\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20319
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} string rejection-reason"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20322
msgid ""
"Human readable error message for rejection mails.  You can use variables:"
msgstr ""

#. type: table
#: doc/guix.texi:20326
msgid "CRLF"
msgstr ""

#. type: item
#: doc/guix.texi:20326
#, no-wrap
msgid "%r"
msgstr ""

#. type: table
#: doc/guix.texi:20328
msgid "reason"
msgstr ""

#. type: table
#: doc/guix.texi:20330
msgid "original subject"
msgstr ""

#. type: item
#: doc/guix.texi:20330
#, no-wrap
msgid "%t"
msgstr ""

#. type: table
#: doc/guix.texi:20332
msgid "recipient"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20334
msgid ""
"Defaults to @samp{\"Your message to <%t> was automatically rejected:%n%r\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20336
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} string recipient-delimiter"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20340
msgid ""
"Delimiter character between local-part and detail in email address.  "
"Defaults to @samp{\"+\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20342
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} string lda-original-recipient-header"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20348
msgid ""
"Header where the original recipient address (SMTP's RCPT TO: address) is "
"taken from if not available elsewhere.  With dovecot-lda -a parameter "
"overrides this.  A commonly used header for this is X-Original-To.  Defaults "
"to @samp{\"\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20350
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} boolean lda-mailbox-autocreate?"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20354
msgid ""
"Should saving a mail to a nonexistent mailbox automatically create it?.  "
"Defaults to @samp{#f}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20356
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} boolean lda-mailbox-autosubscribe?"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20360
msgid ""
"Should automatically created mailboxes be also automatically subscribed?.  "
"Defaults to @samp{#f}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20362
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} non-negative-integer imap-max-line-length"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20368
msgid ""
"Maximum IMAP command line length.  Some clients generate very long command "
"lines with huge mailboxes, so you may need to raise this if you get \"Too "
"long argument\" or \"IMAP command line too large\" errors often.  Defaults "
"to @samp{64000}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20370
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} string imap-logout-format"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20372
msgid "IMAP logout format string:"
msgstr ""

#. type: item
#: doc/guix.texi:20373
#, no-wrap
msgid "%i"
msgstr ""

#. type: table
#: doc/guix.texi:20375
msgid "total number of bytes read from client"
msgstr ""

#. type: item
#: doc/guix.texi:20375
#, no-wrap
msgid "%o"
msgstr ""

#. type: table
#: doc/guix.texi:20377
msgid "total number of bytes sent to client."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20380
msgid ""
"See @file{doc/wiki/Variables.txt} for a list of all the variables you can "
"use.  Defaults to @samp{\"in=%i out=%o deleted=%@{deleted@} expunged="
"%@{expunged@} trashed=%@{trashed@} hdr_count=%@{fetch_hdr_count@} hdr_bytes="
"%@{fetch_hdr_bytes@} body_count=%@{fetch_body_count@} body_bytes="
"%@{fetch_body_bytes@}\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20382
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} string imap-capability"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20386
msgid ""
"Override the IMAP CAPABILITY response.  If the value begins with '+', add "
"the given capabilities on top of the defaults (e.g.@: +XFOO XBAR).  Defaults "
"to @samp{\"\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20388
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} string imap-idle-notify-interval"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20392
msgid ""
"How long to wait between \"OK Still here\" notifications when client is "
"IDLEing.  Defaults to @samp{\"2 mins\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20394
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} string imap-id-send"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20400
msgid ""
"ID field names and values to send to clients.  Using * as the value makes "
"Dovecot use the default value.  The following fields have default values "
"currently: name, version, os, os-version, support-url, support-email.  "
"Defaults to @samp{\"\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20402
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} string imap-id-log"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20405
msgid ""
"ID fields sent by client to log.  * means everything.  Defaults to "
"@samp{\"\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20407
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} space-separated-string-list imap-client-workarounds"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20409
msgid "Workarounds for various client bugs:"
msgstr ""

#. type: item
#: doc/guix.texi:20411
#, no-wrap
msgid "delay-newmail"
msgstr ""

#. type: table
#: doc/guix.texi:20418
msgid ""
"Send EXISTS/RECENT new mail notifications only when replying to NOOP and "
"CHECK commands.  Some clients ignore them otherwise, for example OSX Mail "
"(<v2.1).  Outlook Express breaks more badly though, without this it may show "
"user \"Message no longer in server\" errors.  Note that OE6 still breaks "
"even with this workaround if synchronization is set to \"Headers Only\"."
msgstr ""

#. type: item
#: doc/guix.texi:20419
#, no-wrap
msgid "tb-extra-mailbox-sep"
msgstr ""

#. type: table
#: doc/guix.texi:20423
msgid ""
"Thunderbird gets somehow confused with LAYOUT=fs (mbox and dbox) and adds "
"extra @samp{/} suffixes to mailbox names.  This option causes Dovecot to "
"ignore the extra @samp{/} instead of treating it as invalid mailbox name."
msgstr ""

#. type: item
#: doc/guix.texi:20424
#, no-wrap
msgid "tb-lsub-flags"
msgstr ""

#. type: table
#: doc/guix.texi:20428
msgid ""
"Show \\Noselect flags for LSUB replies with LAYOUT=fs (e.g.@: mbox).  This "
"makes Thunderbird realize they aren't selectable and show them greyed out, "
"instead of only later giving \"not selectable\" popup error."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20432
#, no-wrap
msgid "{@code{dovecot-configuration} parameter} string imap-urlauth-host"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20435
msgid ""
"Host allowed in URLAUTH URLs sent by client.  \"*\" allows all.  Defaults to "
"@samp{\"\"}."
msgstr ""

#. type: Plain text
#: doc/guix.texi:20443
msgid ""
"Whew! Lots of configuration options.  The nice thing about it though is that "
"Guix has a complete interface to Dovecot's configuration language.  This "
"allows not only a nice way to declare configurations, but also offers "
"reflective capabilities as well: users can write code to inspect and "
"transform configurations from within Scheme."
msgstr ""

#. type: Plain text
#: doc/guix.texi:20449
msgid ""
"However, it could be that you just want to get a @code{dovecot.conf} up and "
"running.  In that case, you can pass an @code{opaque-dovecot-configuration} "
"as the @code{#:config} parameter to @code{dovecot-service}.  As its name "
"indicates, an opaque configuration does not have easy reflective "
"capabilities."
msgstr ""

#. type: Plain text
#: doc/guix.texi:20451
msgid "Available @code{opaque-dovecot-configuration} fields are:"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20452
#, no-wrap
msgid "{@code{opaque-dovecot-configuration} parameter} package dovecot"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20456
#, no-wrap
msgid "{@code{opaque-dovecot-configuration} parameter} string string"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20458
msgid "The contents of the @code{dovecot.conf}, as a string."
msgstr ""

#. type: Plain text
#: doc/guix.texi:20462
msgid ""
"For example, if your @code{dovecot.conf} is just the empty string, you could "
"instantiate a dovecot service like this:"
msgstr ""

#. type: lisp
#: doc/guix.texi:20467
#, no-wrap
msgid ""
"(dovecot-service #:config\n"
"                 (opaque-dovecot-configuration\n"
"                  (string \"\")))\n"
msgstr ""

#. type: subsubheading
#: doc/guix.texi:20469
#, no-wrap
msgid "OpenSMTPD Service"
msgstr ""

#. type: deffn
#: doc/guix.texi:20471
#, no-wrap
msgid "{Scheme Variable} opensmtpd-service-type"
msgstr ""

#. type: deffn
#: doc/guix.texi:20475
msgid ""
"This is the type of the @uref{https://www.opensmtpd.org, OpenSMTPD} service, "
"whose value should be an @code{opensmtpd-configuration} object as in this "
"example:"
msgstr ""

#. type: lisp
#: doc/guix.texi:20480
#, no-wrap
msgid ""
"(service opensmtpd-service-type\n"
"         (opensmtpd-configuration\n"
"           (config-file (local-file \"./my-smtpd.conf\"))))\n"
msgstr ""

#. type: deftp
#: doc/guix.texi:20483
#, no-wrap
msgid "{Data Type} opensmtpd-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:20485
msgid "Data type representing the configuration of opensmtpd."
msgstr ""

#. type: item
#: doc/guix.texi:20487
#, no-wrap
msgid "@code{package} (default: @var{opensmtpd})"
msgstr ""

#. type: table
#: doc/guix.texi:20489
msgid "Package object of the OpenSMTPD SMTP server."
msgstr ""

#. type: item
#: doc/guix.texi:20490
#, no-wrap
msgid "@code{config-file} (default: @code{%default-opensmtpd-file})"
msgstr ""

#. type: table
#: doc/guix.texi:20495
msgid ""
"File-like object of the OpenSMTPD configuration file to use.  By default it "
"listens on the loopback network interface, and allows for mail from users "
"and daemons on the local machine, as well as permitting email to remote "
"servers.  Run @command{man smtpd.conf} for more information."
msgstr ""

#. type: subsubheading
#: doc/guix.texi:20499
#, no-wrap
msgid "Exim Service"
msgstr ""

#. type: cindex
#: doc/guix.texi:20501
#, no-wrap
msgid "mail transfer agent (MTA)"
msgstr ""

#. type: cindex
#: doc/guix.texi:20502
#, no-wrap
msgid "MTA (mail transfer agent)"
msgstr ""

#. type: cindex
#: doc/guix.texi:20503
#, no-wrap
msgid "SMTP"
msgstr ""

#. type: deffn
#: doc/guix.texi:20505
#, no-wrap
msgid "{Scheme Variable} exim-service-type"
msgstr ""

#. type: deffn
#: doc/guix.texi:20509
msgid ""
"This is the type of the @uref{https://exim.org, Exim} mail transfer agent "
"(MTA), whose value should be an @code{exim-configuration} object as in this "
"example:"
msgstr ""

#. type: lisp
#: doc/guix.texi:20514
#, no-wrap
msgid ""
"(service exim-service-type\n"
"         (exim-configuration\n"
"           (config-file (local-file \"./my-exim.conf\"))))\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:20520
msgid ""
"In order to use an @code{exim-service-type} service you must also have a "
"@code{mail-aliases-service-type} service present in your @code{operating-"
"system} (even if it has no aliases)."
msgstr ""

#. type: deftp
#: doc/guix.texi:20521
#, no-wrap
msgid "{Data Type} exim-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:20523
msgid "Data type representing the configuration of exim."
msgstr ""

#. type: item
#: doc/guix.texi:20525
#, no-wrap
msgid "@code{package} (default: @var{exim})"
msgstr ""

#. type: table
#: doc/guix.texi:20527
msgid "Package object of the Exim server."
msgstr ""

#. type: table
#: doc/guix.texi:20534
msgid ""
"File-like object of the Exim configuration file to use. If its value is "
"@code{#f} then use the default configuration file from the package provided "
"in @code{package}. The resulting configuration file is loaded after setting "
"the @code{exim_user} and @code{exim_group} configuration variables."
msgstr ""

#. type: subsubheading
#: doc/guix.texi:20538
#, no-wrap
msgid "Getmail service"
msgstr ""

#. type: cindex
#: doc/guix.texi:20540
#, no-wrap
msgid "IMAP"
msgstr ""

#. type: cindex
#: doc/guix.texi:20541
#, no-wrap
msgid "POP"
msgstr ""

#. type: deffn
#: doc/guix.texi:20543
#, no-wrap
msgid "{Scheme Variable} getmail-service-type"
msgstr ""

#. type: deffn
#: doc/guix.texi:20546
msgid ""
"This is the type of the @uref{http://pyropus.ca/software/getmail/, Getmail} "
"mail retriever, whose value should be an @code{getmail-configuration}."
msgstr ""

#. type: Plain text
#: doc/guix.texi:20549
msgid "Available @code{getmail-configuration} fields are:"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20550
#, no-wrap
msgid "{@code{getmail-configuration} parameter} symbol name"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20552
msgid "A symbol to identify the getmail service."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20554
msgid "Defaults to @samp{\"unset\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20557
#, no-wrap
msgid "{@code{getmail-configuration} parameter} package package"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20559
msgid "The getmail package to use."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20562
#, no-wrap
msgid "{@code{getmail-configuration} parameter} string user"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20564
msgid "The user to run getmail as."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20566 doc/guix.texi:20573
msgid "Defaults to @samp{\"getmail\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20569
#, no-wrap
msgid "{@code{getmail-configuration} parameter} string group"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20571
msgid "The group to run getmail as."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20576
#, no-wrap
msgid "{@code{getmail-configuration} parameter} string directory"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20578
msgid "The getmail directory to use."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20580
msgid "Defaults to @samp{\"/var/lib/getmail/default\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20583
#, no-wrap
msgid "{@code{getmail-configuration} parameter} getmail-configuration-file rcfile"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20585
msgid "The getmail configuration file to use."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20587
msgid "Available @code{getmail-configuration-file} fields are:"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20588
#, no-wrap
msgid "{@code{getmail-configuration-file} parameter} getmail-retriever-configuration retriever"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20590
msgid ""
"What mail account to retrieve mail from, and how to access that account."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20592
msgid "Available @code{getmail-retriever-configuration} fields are:"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20593
#, no-wrap
msgid "{@code{getmail-retriever-configuration} parameter} string type"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20596
msgid ""
"The type of mail retriever to use.  Valid values include @samp{passwd} and "
"@samp{static}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20598
msgid "Defaults to @samp{\"SimpleIMAPSSLRetriever\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20601
#, no-wrap
msgid "{@code{getmail-retriever-configuration} parameter} string server"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20603 doc/guix.texi:20610
msgid "Username to login to the mail server with."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20605 doc/guix.texi:20612 doc/guix.texi:20676
msgid "Defaults to @samp{unset}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20608
#, no-wrap
msgid "{@code{getmail-retriever-configuration} parameter} string username"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20615
#, no-wrap
msgid "{@code{getmail-retriever-configuration} parameter} non-negative-integer port"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20617
msgid "Port number to connect to."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20622
#, no-wrap
msgid "{@code{getmail-retriever-configuration} parameter} string password"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20624 doc/guix.texi:20631
msgid "Override fields from passwd."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20629
#, no-wrap
msgid "{@code{getmail-retriever-configuration} parameter} list password-command"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20636
#, no-wrap
msgid "{@code{getmail-retriever-configuration} parameter} string keyfile"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20638
msgid "PEM-formatted key file to use for the TLS negotiation."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20643
#, no-wrap
msgid "{@code{getmail-retriever-configuration} parameter} string certfile"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20645
msgid "PEM-formatted certificate file to use for the TLS negotiation."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20650
#, no-wrap
msgid "{@code{getmail-retriever-configuration} parameter} string ca-certs"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20652
msgid "CA certificates to use."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20657
#, no-wrap
msgid "{@code{getmail-retriever-configuration} parameter} parameter-alist extra-parameters"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20659
msgid "Extra retriever parameters."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20666
#, no-wrap
msgid "{@code{getmail-configuration-file} parameter} getmail-destination-configuration destination"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20668
msgid "What to do with retrieved messages."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20670
msgid "Available @code{getmail-destination-configuration} fields are:"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20671
#, no-wrap
msgid "{@code{getmail-destination-configuration} parameter} string type"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20674
msgid ""
"The type of mail destination.  Valid values include @samp{Maildir}, "
"@samp{Mboxrd} and @samp{MDA_external}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20679
#, no-wrap
msgid "{@code{getmail-destination-configuration} parameter} string-or-filelike path"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20682
msgid ""
"The path option for the mail destination.  The behaviour depends on the "
"chosen type."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20687
#, no-wrap
msgid "{@code{getmail-destination-configuration} parameter} parameter-alist extra-parameters"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20689
msgid "Extra destination parameters"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20696
#, no-wrap
msgid "{@code{getmail-configuration-file} parameter} getmail-options-configuration options"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20698
msgid "Configure getmail."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20700
msgid "Available @code{getmail-options-configuration} fields are:"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20701
#, no-wrap
msgid "{@code{getmail-options-configuration} parameter} non-negative-integer verbose"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20706
msgid ""
"If set to @samp{0}, getmail will only print warnings and errors.  A value of "
"@samp{1} means that messages will be printed about retrieving and deleting "
"messages.  If set to @samp{2}, getmail will print messages about each of "
"it's actions."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20708 doc/guix.texi:25847 doc/guix.texi:26435
#: doc/guix.texi:26580
msgid "Defaults to @samp{1}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20711
#, no-wrap
msgid "{@code{getmail-options-configuration} parameter} boolean read-all"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20714
msgid ""
"If true, getmail will retrieve all available messages.  Otherwise it will "
"only retrieve messages it hasn't seen previously."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20719
#, no-wrap
msgid "{@code{getmail-options-configuration} parameter} boolean delete"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20723
msgid ""
"If set to true, messages will be deleted from the server after retrieving "
"and successfully delivering them.  Otherwise, messages will be left on the "
"server."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20728
#, no-wrap
msgid "{@code{getmail-options-configuration} parameter} non-negative-integer delete-after"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20733
msgid ""
"Getmail will delete messages this number of days after seeing them, if they "
"have been delivered.  This means messages will be left on the server this "
"number of days after delivering them.  A value of @samp{0} disabled this "
"feature."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20738
#, no-wrap
msgid "{@code{getmail-options-configuration} parameter} non-negative-integer delete-bigger-than"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20742
msgid ""
"Delete messages larger than this of bytes after retrieving them, even if the "
"delete and delete-after options are disabled.  A value of @samp{0} disables "
"this feature."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20747
#, no-wrap
msgid "{@code{getmail-options-configuration} parameter} non-negative-integer max-bytes-per-session"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20750
msgid ""
"Retrieve messages totalling up to this number of bytes before closing the "
"session with the server.  A value of @samp{0} disables this feature."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20755
#, no-wrap
msgid "{@code{getmail-options-configuration} parameter} non-negative-integer max-message-size"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20758
msgid ""
"Don't retrieve messages larger than this number of bytes.  A value of "
"@samp{0} disables this feature."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20763
#, no-wrap
msgid "{@code{getmail-options-configuration} parameter} boolean delivered-to"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20765
msgid "If true, getmail will add a Delivered-To header to messages."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20770
#, no-wrap
msgid "{@code{getmail-options-configuration} parameter} boolean received"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20772
msgid "If set, getmail adds a Received header to the messages."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20777
#, no-wrap
msgid "{@code{getmail-options-configuration} parameter} string message-log"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20780
msgid ""
"Getmail will record a log of its actions to the named file.  A value of "
"@samp{\"\"} disables this feature."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20785
#, no-wrap
msgid "{@code{getmail-options-configuration} parameter} boolean message-log-syslog"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20788
msgid ""
"If true, getmail will record a log of its actions using the system logger."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20793
#, no-wrap
msgid "{@code{getmail-options-configuration} parameter} boolean message-log-verbose"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20797
msgid ""
"If true, getmail will log information about messages not retrieved and the "
"reason for not retrieving them, as well as starting and ending information "
"lines."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20802
#, no-wrap
msgid "{@code{getmail-options-configuration} parameter} parameter-alist extra-parameters"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20804
msgid "Extra options to include."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20813
#, no-wrap
msgid "{@code{getmail-configuration} parameter} list idle"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20817
msgid ""
"A list of mailboxes that getmail should wait on the server for new mail "
"notifications.  This depends on the server supporting the IDLE extension."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20822
#, no-wrap
msgid "{@code{getmail-configuration} parameter} list environment-variables"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20824
msgid "Environment variables to set for getmail."
msgstr ""

#. type: subsubheading
#: doc/guix.texi:20829
#, no-wrap
msgid "Mail Aliases Service"
msgstr ""

#. type: cindex
#: doc/guix.texi:20831
#, no-wrap
msgid "email aliases"
msgstr ""

#. type: cindex
#: doc/guix.texi:20832
#, no-wrap
msgid "aliases, for email addresses"
msgstr ""

#. type: deffn
#: doc/guix.texi:20834
#, no-wrap
msgid "{Scheme Variable} mail-aliases-service-type"
msgstr ""

#. type: deffn
#: doc/guix.texi:20837
msgid ""
"This is the type of the service which provides @code{/etc/aliases}, "
"specifying how to deliver mail to users on this system."
msgstr ""

#. type: lisp
#: doc/guix.texi:20842
#, no-wrap
msgid ""
"(service mail-aliases-service-type\n"
"         '((\"postmaster\" \"bob\")\n"
"           (\"bob\" \"bob@@example.com\" \"bob@@example2.com\")))\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:20850
msgid ""
"The configuration for a @code{mail-aliases-service-type} service is an "
"association list denoting how to deliver mail that comes to this system. "
"Each entry is of the form @code{(alias addresses ...)}, with @code{alias} "
"specifying the local alias and @code{addresses} specifying where to deliver "
"this user's mail."
msgstr ""

#. type: Plain text
#: doc/guix.texi:20856
msgid ""
"The aliases aren't required to exist as users on the local system. In the "
"above example, there doesn't need to be a @code{postmaster} entry in the "
"@code{operating-system}'s @code{user-accounts} in order to deliver the "
"@code{postmaster} mail to @code{bob} (which subsequently would deliver mail "
"to @code{bob@@example.com} and @code{bob@@example2.com})."
msgstr ""

#. type: cindex
#: doc/guix.texi:20857 doc/guix.texi:20858
#, no-wrap
msgid "GNU Mailutils IMAP4 Daemon"
msgstr ""

#. type: deffn
#: doc/guix.texi:20860
#, no-wrap
msgid "{Scheme Variable} imap4d-service-type"
msgstr ""

#. type: deffn
#: doc/guix.texi:20864
msgid ""
"This is the type of the GNU Mailutils IMAP4 Daemon (@pxref{imap4d,,, "
"mailutils, GNU Mailutils Manual}), whose value should be an @code{imap4d-"
"configuration} object as in this example:"
msgstr ""

#. type: lisp
#: doc/guix.texi:20869
#, no-wrap
msgid ""
"(service imap4d-service-type\n"
"         (imap4d-configuration\n"
"           (config-file (local-file \"imap4d.conf\"))))\n"
msgstr ""

#. type: deftp
#: doc/guix.texi:20872
#, no-wrap
msgid "{Data Type} imap4d-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:20874
msgid "Data type representing the configuration of @command{imap4d}."
msgstr ""

#. type: item
#: doc/guix.texi:20876
#, no-wrap
msgid "@code{package} (default: @code{mailutils})"
msgstr ""

#. type: table
#: doc/guix.texi:20878
msgid "The package that provides @command{imap4d}."
msgstr ""

#. type: item
#: doc/guix.texi:20879
#, no-wrap
msgid "@code{config-file} (default: @code{%default-imap4d-config-file})"
msgstr ""

#. type: table
#: doc/guix.texi:20883
msgid ""
"File-like object of the configuration file to use, by default it will listen "
"on TCP port 143 of @code{localhost}.  @xref{Conf-imap4d,,, mailutils, GNU "
"Mailutils Manual}, for details."
msgstr ""

#. type: cindex
#: doc/guix.texi:20890
#, no-wrap
msgid "messaging"
msgstr ""

#. type: cindex
#: doc/guix.texi:20891
#, no-wrap
msgid "jabber"
msgstr ""

#. type: cindex
#: doc/guix.texi:20892
#, no-wrap
msgid "XMPP"
msgstr ""

#. type: Plain text
#: doc/guix.texi:20896
msgid ""
"The @code{(gnu services messaging)} module provides Guix service definitions "
"for messaging services.  Currently it provides the following services:"
msgstr ""

#. type: subsubheading
#: doc/guix.texi:20897
#, no-wrap
msgid "Prosody Service"
msgstr ""

#. type: deffn
#: doc/guix.texi:20899
#, no-wrap
msgid "{Scheme Variable} prosody-service-type"
msgstr ""

#. type: deffn
#: doc/guix.texi:20903
msgid ""
"This is the type for the @uref{https://prosody.im, Prosody XMPP "
"communication server}.  Its value must be a @code{prosody-configuration} "
"record as in this example:"
msgstr ""

#. type: lisp
#: doc/guix.texi:20918
#, no-wrap
msgid ""
"(service prosody-service-type\n"
"         (prosody-configuration\n"
"          (modules-enabled (cons* \"groups\" \"mam\" %default-modules-enabled))\n"
"          (int-components\n"
"           (list\n"
"            (int-component-configuration\n"
"             (hostname \"conference.example.net\")\n"
"             (plugin \"muc\")\n"
"             (mod-muc (mod-muc-configuration)))))\n"
"          (virtualhosts\n"
"           (list\n"
"            (virtualhost-configuration\n"
"             (domain \"example.net\"))))))\n"
msgstr ""

#. type: deffn
#: doc/guix.texi:20921
msgid "See below for details about @code{prosody-configuration}."
msgstr ""

#. type: Plain text
#: doc/guix.texi:20927
msgid ""
"By default, Prosody does not need much configuration.  Only one "
"@code{virtualhosts} field is needed: it specifies the domain you wish "
"Prosody to serve."
msgstr ""

#. type: Plain text
#: doc/guix.texi:20930
msgid ""
"You can perform various sanity checks on the generated configuration with "
"the @code{prosodyctl check} command."
msgstr ""

#. type: Plain text
#: doc/guix.texi:20934
msgid ""
"Prosodyctl will also help you to import certificates from the "
"@code{letsencrypt} directory so that the @code{prosody} user can access "
"them.  See @url{https://prosody.im/doc/letsencrypt}."
msgstr ""

#. type: example
#: doc/guix.texi:20937
#, no-wrap
msgid "prosodyctl --root cert import /etc/letsencrypt/live\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:20944
msgid ""
"The available configuration parameters follow.  Each parameter definition is "
"preceded by its type; for example, @samp{string-list foo} indicates that the "
"@code{foo} parameter should be specified as a list of strings.  Types "
"starting with @code{maybe-} denote parameters that won't show up in "
"@code{prosody.cfg.lua} when their value is @code{'disabled}."
msgstr ""

#. type: Plain text
#: doc/guix.texi:20948
msgid ""
"There is also a way to specify the configuration as a string, if you have an "
"old @code{prosody.cfg.lua} file that you want to port over from some other "
"system; see the end for more details."
msgstr ""

#. type: Plain text
#: doc/guix.texi:20951
msgid ""
"The @code{file-object} type designates either a file-like object (@pxref{G-"
"Expressions, file-like objects}) or a file name."
msgstr ""

#. type: Plain text
#: doc/guix.texi:20961
msgid "Available @code{prosody-configuration} fields are:"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20962
#, no-wrap
msgid "{@code{prosody-configuration} parameter} package prosody"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20964
msgid "The Prosody package."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20966
#, no-wrap
msgid "{@code{prosody-configuration} parameter} file-name data-path"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20970
msgid ""
"Location of the Prosody data storage directory.  See @url{https://prosody.im/"
"doc/configure}.  Defaults to @samp{\"/var/lib/prosody\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20972
#, no-wrap
msgid "{@code{prosody-configuration} parameter} file-object-list plugin-paths"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20976
msgid ""
"Additional plugin directories.  They are searched in all the specified paths "
"in order.  See @url{https://prosody.im/doc/plugins_directory}.  Defaults to "
"@samp{()}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20978
#, no-wrap
msgid "{@code{prosody-configuration} parameter} file-name certificates"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20983
msgid ""
"Every virtual host and component needs a certificate so that clients and "
"servers can securely verify its identity.  Prosody will automatically load "
"certificates/keys from the directory specified here.  Defaults to @samp{\"/"
"etc/prosody/certs\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20985
#, no-wrap
msgid "{@code{prosody-configuration} parameter} string-list admins"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20991
msgid ""
"This is a list of accounts that are admins for the server.  Note that you "
"must create the accounts separately.  See @url{https://prosody.im/doc/"
"admins} and @url{https://prosody.im/doc/creating_accounts}.  Example: "
"@code{(admins '(\"user1@@example.com\" \"user2@@example.net\"))} Defaults to "
"@samp{()}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20993
#, no-wrap
msgid "{@code{prosody-configuration} parameter} boolean use-libevent?"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20997
msgid ""
"Enable use of libevent for better performance under high load.  See "
"@url{https://prosody.im/doc/libevent}.  Defaults to @samp{#f}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:20999
#, no-wrap
msgid "{@code{prosody-configuration} parameter} module-list modules-enabled"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21005
msgid ""
"This is the list of modules Prosody will load on startup.  It looks for "
"@code{mod_modulename.lua} in the plugins folder, so make sure that exists "
"too.  Documentation on modules can be found at: @url{https://prosody.im/doc/"
"modules}.  Defaults to @samp{(\"roster\" \"saslauth\" \"tls\" \"dialback\" "
"\"disco\" \"carbons\" \"private\" \"blocklist\" \"vcard\" \"version\" "
"\"uptime\" \"time\" \"ping\" \"pep\" \"register\" \"admin_adhoc\")}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21007
#, no-wrap
msgid "{@code{prosody-configuration} parameter} string-list modules-disabled"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21011
msgid ""
"@samp{\"offline\"}, @samp{\"c2s\"} and @samp{\"s2s\"} are auto-loaded, but "
"should you want to disable them then add them to this list.  Defaults to "
"@samp{()}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21013
#, no-wrap
msgid "{@code{prosody-configuration} parameter} file-object groups-file"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21018
msgid ""
"Path to a text file where the shared groups are defined.  If this path is "
"empty then @samp{mod_groups} does nothing.  See @url{https://prosody.im/doc/"
"modules/mod_groups}.  Defaults to @samp{\"/var/lib/prosody/sharedgroups.txt"
"\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21020
#, no-wrap
msgid "{@code{prosody-configuration} parameter} boolean allow-registration?"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21024
msgid ""
"Disable account creation by default, for security.  See @url{https://prosody."
"im/doc/creating_accounts}.  Defaults to @samp{#f}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21026
#, no-wrap
msgid "{@code{prosody-configuration} parameter} maybe-ssl-configuration ssl"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21031
msgid ""
"These are the SSL/TLS-related settings.  Most of them are disabled so to use "
"Prosody's defaults.  If you do not completely understand these options, do "
"not add them to your config, it is easy to lower the security of your server "
"using them.  See @url{https://prosody.im/doc/advanced_ssl_config}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21033
msgid "Available @code{ssl-configuration} fields are:"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21034
#, no-wrap
msgid "{@code{ssl-configuration} parameter} maybe-string protocol"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21036
msgid "This determines what handshake to use."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21038
#, no-wrap
msgid "{@code{ssl-configuration} parameter} maybe-file-name key"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21040
msgid "Path to your private key file."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21042
#, no-wrap
msgid "{@code{ssl-configuration} parameter} maybe-file-name certificate"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21044
msgid "Path to your certificate file."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21046
#, no-wrap
msgid "{@code{ssl-configuration} parameter} file-object capath"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21050
msgid ""
"Path to directory containing root certificates that you wish Prosody to "
"trust when verifying the certificates of remote servers.  Defaults to "
"@samp{\"/etc/ssl/certs\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21052
#, no-wrap
msgid "{@code{ssl-configuration} parameter} maybe-file-object cafile"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21055
msgid ""
"Path to a file containing root certificates that you wish Prosody to trust.  "
"Similar to @code{capath} but with all certificates concatenated together."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21057
#, no-wrap
msgid "{@code{ssl-configuration} parameter} maybe-string-list verify"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21060
msgid ""
"A list of verification options (these mostly map to OpenSSL's "
"@code{set_verify()} flags)."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21062
#, no-wrap
msgid "{@code{ssl-configuration} parameter} maybe-string-list options"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21066
msgid ""
"A list of general options relating to SSL/TLS.  These map to OpenSSL's "
"@code{set_options()}.  For a full list of options available in LuaSec, see "
"the LuaSec source."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21068
#, no-wrap
msgid "{@code{ssl-configuration} parameter} maybe-non-negative-integer depth"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21071
msgid ""
"How long a chain of certificate authorities to check when looking for a "
"trusted root certificate."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21073
#, no-wrap
msgid "{@code{ssl-configuration} parameter} maybe-string ciphers"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21076
msgid ""
"An OpenSSL cipher string.  This selects what ciphers Prosody will offer to "
"clients, and in what order."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21078
#, no-wrap
msgid "{@code{ssl-configuration} parameter} maybe-file-name dhparam"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21082
msgid ""
"A path to a file containing parameters for Diffie-Hellman key exchange.  You "
"can create such a file with: @code{openssl dhparam -out /etc/prosody/certs/"
"dh-2048.pem 2048}"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21084
#, no-wrap
msgid "{@code{ssl-configuration} parameter} maybe-string curve"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21087
msgid ""
"Curve for Elliptic curve Diffie-Hellman.  Prosody's default is "
"@samp{\"secp384r1\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21089
#, no-wrap
msgid "{@code{ssl-configuration} parameter} maybe-string-list verifyext"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21091
msgid "A list of ``extra'' verification options."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21093
#, no-wrap
msgid "{@code{ssl-configuration} parameter} maybe-string password"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21095
msgid "Password for encrypted private keys."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21099
#, no-wrap
msgid "{@code{prosody-configuration} parameter} boolean c2s-require-encryption?"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21103
msgid ""
"Whether to force all client-to-server connections to be encrypted or not.  "
"See @url{https://prosody.im/doc/modules/mod_tls}.  Defaults to @samp{#f}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21105
#, no-wrap
msgid "{@code{prosody-configuration} parameter} string-list disable-sasl-mechanisms"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21109
msgid ""
"Set of mechanisms that will never be offered.  See @url{https://prosody.im/"
"doc/modules/mod_saslauth}.  Defaults to @samp{(\"DIGEST-MD5\")}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21111
#, no-wrap
msgid "{@code{prosody-configuration} parameter} boolean s2s-require-encryption?"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21115
msgid ""
"Whether to force all server-to-server connections to be encrypted or not.  "
"See @url{https://prosody.im/doc/modules/mod_tls}.  Defaults to @samp{#f}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21117
#, no-wrap
msgid "{@code{prosody-configuration} parameter} boolean s2s-secure-auth?"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21123
msgid ""
"Whether to require encryption and certificate authentication.  This provides "
"ideal security, but requires servers you communicate with to support "
"encryption AND present valid, trusted certificates.  See @url{https://"
"prosody.im/doc/s2s#security}.  Defaults to @samp{#f}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21125
#, no-wrap
msgid "{@code{prosody-configuration} parameter} string-list s2s-insecure-domains"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21131
msgid ""
"Many servers don't support encryption or have invalid or self-signed "
"certificates.  You can list domains here that will not be required to "
"authenticate using certificates.  They will be authenticated using DNS.  See "
"@url{https://prosody.im/doc/s2s#security}.  Defaults to @samp{()}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21133
#, no-wrap
msgid "{@code{prosody-configuration} parameter} string-list s2s-secure-domains"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21138
msgid ""
"Even if you leave @code{s2s-secure-auth?} disabled, you can still require "
"valid certificates for some domains by specifying a list here.  See "
"@url{https://prosody.im/doc/s2s#security}.  Defaults to @samp{()}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21140
#, no-wrap
msgid "{@code{prosody-configuration} parameter} string authentication"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21148
msgid ""
"Select the authentication backend to use.  The default provider stores "
"passwords in plaintext and uses Prosody's configured data storage to store "
"the authentication data.  If you do not trust your server please see "
"@url{https://prosody.im/doc/modules/mod_auth_internal_hashed} for "
"information about using the hashed backend.  See also @url{https://prosody."
"im/doc/authentication} Defaults to @samp{\"internal_plain\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21150
#, no-wrap
msgid "{@code{prosody-configuration} parameter} maybe-string log"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21154
msgid ""
"Set logging options.  Advanced logging configuration is not yet supported by "
"the Prosody service.  See @url{https://prosody.im/doc/logging}.  Defaults to "
"@samp{\"*syslog\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21156
#, no-wrap
msgid "{@code{prosody-configuration} parameter} file-name pidfile"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21159
msgid ""
"File to write pid in.  See @url{https://prosody.im/doc/modules/mod_posix}.  "
"Defaults to @samp{\"/var/run/prosody/prosody.pid\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21161
#, no-wrap
msgid "{@code{prosody-configuration} parameter} maybe-non-negative-integer http-max-content-size"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21163
msgid "Maximum allowed size of the HTTP body (in bytes)."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21165
#, no-wrap
msgid "{@code{prosody-configuration} parameter} maybe-string http-external-url"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21170
msgid ""
"Some modules expose their own URL in various ways.  This URL is built from "
"the protocol, host and port used.  If Prosody sits behind a proxy, the "
"public URL will be @code{http-external-url} instead.  See @url{https://"
"prosody.im/doc/http#external_url}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21172
#, no-wrap
msgid "{@code{prosody-configuration} parameter} virtualhost-configuration-list virtualhosts"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21177
msgid ""
"A host in Prosody is a domain on which user accounts can be created.  For "
"example if you want your users to have addresses like @samp{\"john."
"smith@@example.com\"} then you need to add a host @samp{\"example.com\"}.  "
"All options in this list will apply only to this host."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21183
msgid ""
"Note: the name @emph{virtual} host is used in configuration to avoid "
"confusion with the actual physical host that Prosody is installed on.  A "
"single Prosody instance can serve many domains, each one defined as a "
"VirtualHost entry in Prosody's configuration.  Conversely a server that "
"hosts a single domain would have just one VirtualHost entry."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21185
msgid "See @url{https://prosody.im/doc/configure#virtual_host_settings}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21187
msgid "Available @code{virtualhost-configuration} fields are:"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21189 doc/guix.texi:21211 doc/guix.texi:21264
msgid ""
"all these @code{prosody-configuration} fields: @code{admins}, @code{use-"
"libevent?}, @code{modules-enabled}, @code{modules-disabled}, @code{groups-"
"file}, @code{allow-registration?}, @code{ssl}, @code{c2s-require-"
"encryption?}, @code{disable-sasl-mechanisms}, @code{s2s-require-"
"encryption?}, @code{s2s-secure-auth?}, @code{s2s-insecure-domains}, "
"@code{s2s-secure-domains}, @code{authentication}, @code{log}, @code{http-max-"
"content-size}, @code{http-external-url}, @code{raw-content}, plus:"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21189
#, no-wrap
msgid "{@code{virtualhost-configuration} parameter} string domain"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21191
msgid "Domain you wish Prosody to serve."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21195
#, no-wrap
msgid "{@code{prosody-configuration} parameter} int-component-configuration-list int-components"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21200
msgid ""
"Components are extra services on a server which are available to clients, "
"usually on a subdomain of the main server (such as @samp{\"mycomponent."
"example.com\"}).  Example components might be chatroom servers, user "
"directories, or gateways to other protocols."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21204
msgid ""
"Internal components are implemented with Prosody-specific plugins.  To add "
"an internal component, you simply fill the hostname field, and the plugin "
"you wish to use for the component."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21207
msgid "See @url{https://prosody.im/doc/components}.  Defaults to @samp{()}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21209
msgid "Available @code{int-component-configuration} fields are:"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21211
#, no-wrap
msgid "{@code{int-component-configuration} parameter} string hostname"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21213 doc/guix.texi:21270
msgid "Hostname of the component."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21215
#, no-wrap
msgid "{@code{int-component-configuration} parameter} string plugin"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21217
msgid "Plugin you wish to use for the component."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21219
#, no-wrap
msgid "{@code{int-component-configuration} parameter} maybe-mod-muc-configuration mod-muc"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21222
msgid ""
"Multi-user chat (MUC) is Prosody's module for allowing you to create hosted "
"chatrooms/conferences for XMPP users."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21226
msgid ""
"General information on setting up and using multi-user chatrooms can be "
"found in the ``Chatrooms'' documentation (@url{https://prosody.im/doc/"
"chatrooms}), which you should read if you are new to XMPP chatrooms."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21228
msgid "See also @url{https://prosody.im/doc/modules/mod_muc}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21230
msgid "Available @code{mod-muc-configuration} fields are:"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21231
#, no-wrap
msgid "{@code{mod-muc-configuration} parameter} string name"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21234
msgid ""
"The name to return in service discovery responses.  Defaults to "
"@samp{\"Prosody Chatrooms\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21236
#, no-wrap
msgid "{@code{mod-muc-configuration} parameter} string-or-boolean restrict-room-creation"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21243
msgid ""
"If @samp{#t}, this will only allow admins to create new chatrooms.  "
"Otherwise anyone can create a room.  The value @samp{\"local\"} restricts "
"room creation to users on the service's parent domain.  E.g.@: "
"@samp{user@@example.com} can create rooms on @samp{rooms.example.com}.  The "
"value @samp{\"admin\"} restricts to service administrators only.  Defaults "
"to @samp{#f}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21245
#, no-wrap
msgid "{@code{mod-muc-configuration} parameter} non-negative-integer max-history-messages"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21249
msgid ""
"Maximum number of history messages that will be sent to the member that has "
"just joined the room.  Defaults to @samp{20}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21255
#, no-wrap
msgid "{@code{prosody-configuration} parameter} ext-component-configuration-list ext-components"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21260
msgid ""
"External components use XEP-0114, which most standalone components support.  "
"To add an external component, you simply fill the hostname field.  See "
"@url{https://prosody.im/doc/components}.  Defaults to @samp{()}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21262
msgid "Available @code{ext-component-configuration} fields are:"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21264
#, no-wrap
msgid "{@code{ext-component-configuration} parameter} string component-secret"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21266
msgid "Password which the component will use to log in."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21268
#, no-wrap
msgid "{@code{ext-component-configuration} parameter} string hostname"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21274
#, no-wrap
msgid "{@code{prosody-configuration} parameter} non-negative-integer-list component-ports"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21277
msgid ""
"Port(s) Prosody listens on for component connections.  Defaults to "
"@samp{(5347)}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21279
#, no-wrap
msgid "{@code{prosody-configuration} parameter} string component-interface"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21282
msgid ""
"Interface Prosody listens on for component connections.  Defaults to "
"@samp{\"127.0.0.1\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21284
#, no-wrap
msgid "{@code{prosody-configuration} parameter} maybe-raw-content raw-content"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21286
msgid "Raw content that will be added to the configuration file."
msgstr ""

#. type: Plain text
#: doc/guix.texi:21294
msgid ""
"It could be that you just want to get a @code{prosody.cfg.lua} up and "
"running.  In that case, you can pass an @code{opaque-prosody-configuration} "
"record as the value of @code{prosody-service-type}.  As its name indicates, "
"an opaque configuration does not have easy reflective capabilities.  "
"Available @code{opaque-prosody-configuration} fields are:"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21295
#, no-wrap
msgid "{@code{opaque-prosody-configuration} parameter} package prosody"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21297
msgid "The prosody package."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21299
#, no-wrap
msgid "{@code{opaque-prosody-configuration} parameter} string prosody.cfg.lua"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21301
msgid "The contents of the @code{prosody.cfg.lua} to use."
msgstr ""

#. type: Plain text
#: doc/guix.texi:21305
msgid ""
"For example, if your @code{prosody.cfg.lua} is just the empty string, you "
"could instantiate a prosody service like this:"
msgstr ""

#. type: lisp
#: doc/guix.texi:21310
#, no-wrap
msgid ""
"(service prosody-service-type\n"
"         (opaque-prosody-configuration\n"
"          (prosody.cfg.lua \"\")))\n"
msgstr ""

#. type: subsubheading
#: doc/guix.texi:21314
#, no-wrap
msgid "BitlBee Service"
msgstr ""

#. type: cindex
#: doc/guix.texi:21316 doc/guix.texi:21360
#, no-wrap
msgid "IRC (Internet Relay Chat)"
msgstr ""

#. type: cindex
#: doc/guix.texi:21317
#, no-wrap
msgid "IRC gateway"
msgstr ""

#. type: Plain text
#: doc/guix.texi:21320
msgid ""
"@url{https://bitlbee.org,BitlBee} is a gateway that provides an IRC "
"interface to a variety of messaging protocols such as XMPP."
msgstr ""

#. type: defvr
#: doc/guix.texi:21321
#, no-wrap
msgid "{Scheme Variable} bitlbee-service-type"
msgstr ""

#. type: defvr
#: doc/guix.texi:21325
msgid ""
"This is the service type for the @url{https://bitlbee.org,BitlBee} IRC "
"gateway daemon.  Its value is a @code{bitlbee-configuration} (see below)."
msgstr ""

#. type: defvr
#: doc/guix.texi:21328
msgid ""
"To have BitlBee listen on port 6667 on localhost, add this line to your "
"services:"
msgstr ""

#. type: lisp
#: doc/guix.texi:21331
#, no-wrap
msgid "(service bitlbee-service-type)\n"
msgstr ""

#. type: deftp
#: doc/guix.texi:21334
#, no-wrap
msgid "{Data Type} bitlbee-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:21336
msgid "This is the configuration for BitlBee, with the following fields:"
msgstr ""

#. type: item
#: doc/guix.texi:21338
#, no-wrap
msgid "@code{interface} (default: @code{\"127.0.0.1\"})"
msgstr ""

#. type: itemx
#: doc/guix.texi:21339
#, no-wrap
msgid "@code{port} (default: @code{6667})"
msgstr ""

#. type: table
#: doc/guix.texi:21342
msgid ""
"Listen on the network interface corresponding to the IP address specified in "
"@var{interface}, on @var{port}."
msgstr ""

#. type: table
#: doc/guix.texi:21346
msgid ""
"When @var{interface} is @code{127.0.0.1}, only local clients can connect; "
"when it is @code{0.0.0.0}, connections can come from any networking "
"interface."
msgstr ""

#. type: item
#: doc/guix.texi:21347
#, no-wrap
msgid "@code{bitlbee} (default: @code{bitlbee})"
msgstr ""

#. type: table
#: doc/guix.texi:21349
msgid "The BitlBee package to use."
msgstr ""

#. type: item
#: doc/guix.texi:21350
#, no-wrap
msgid "@code{plugins} (default: @code{'()})"
msgstr ""

#. type: table
#: doc/guix.texi:21352
msgid "List of plugin packages to use---e.g., @code{bitlbee-discord}."
msgstr ""

#. type: table
#: doc/guix.texi:21355
msgid "Configuration snippet added as-is to the BitlBee configuration file."
msgstr ""

#. type: subsubheading
#: doc/guix.texi:21358
#, no-wrap
msgid "Quassel Service"
msgstr ""

#. type: Plain text
#: doc/guix.texi:21364
msgid ""
"@url{https://quassel-irc.org/,Quassel} is a distributed IRC client, meaning "
"that one or more clients can attach to and detach from the central core."
msgstr ""

#. type: defvr
#: doc/guix.texi:21365
#, no-wrap
msgid "{Scheme Variable} quassel-service-type"
msgstr ""

#. type: defvr
#: doc/guix.texi:21369
msgid ""
"This is the service type for the @url{https://quassel-irc.org/,Quassel} IRC "
"backend daemon.  Its value is a @code{quassel-configuration} (see below)."
msgstr ""

#. type: deftp
#: doc/guix.texi:21371
#, no-wrap
msgid "{Data Type} quassel-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:21373
msgid "This is the configuration for Quassel, with the following fields:"
msgstr ""

#. type: item
#: doc/guix.texi:21375
#, no-wrap
msgid "@code{quassel} (default: @code{quassel})"
msgstr ""

#. type: table
#: doc/guix.texi:21377
msgid "The Quassel package to use."
msgstr ""

#. type: item
#: doc/guix.texi:21378
#, no-wrap
msgid "@code{interface} (default: @code{\"::,0.0.0.0\"})"
msgstr ""

#. type: item
#: doc/guix.texi:21379
#, no-wrap
msgid "@code{port} (default: @code{4242})"
msgstr ""

#. type: table
#: doc/guix.texi:21383
msgid ""
"Listen on the network interface(s) corresponding to the IPv4 or IPv6 "
"interfaces specified in the comma delimited @var{interface}, on @var{port}."
msgstr ""

#. type: item
#: doc/guix.texi:21384
#, no-wrap
msgid "@code{loglevel} (default: @code{\"Info\"})"
msgstr ""

#. type: table
#: doc/guix.texi:21387
msgid ""
"The level of logging desired.  Accepted values are Debug, Info, Warning and "
"Error."
msgstr ""

#. type: cindex
#: doc/guix.texi:21393
#, no-wrap
msgid "Murmur (VoIP server)"
msgstr ""

#. type: cindex
#: doc/guix.texi:21394
#, no-wrap
msgid "VoIP server"
msgstr ""

#. type: Plain text
#: doc/guix.texi:21398
msgid ""
"This section describes how to set up and run a Murmur server.  Murmur is the "
"server of the @uref{https://mumble.info, Mumble} voice-over-IP (VoIP) suite."
msgstr ""

#. type: deftp
#: doc/guix.texi:21399
#, no-wrap
msgid "{Data Type} murmur-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:21402
msgid ""
"The service type for the Murmur server.  An example configuration can look "
"like this:"
msgstr ""

#. type: lisp
#: doc/guix.texi:21411
#, no-wrap
msgid ""
"(service murmur-service-type\n"
"         (murmur-configuration\n"
"          (welcome-text\n"
"            \"Welcome to this Mumble server running on Guix!\")\n"
"          (cert-required? #t) ;disallow text password logins\n"
"          (ssl-cert \"/etc/letsencrypt/live/mumble.example.com/fullchain.pem\")\n"
"          (ssl-key \"/etc/letsencrypt/live/mumble.example.com/privkey.pem\")))\n"
msgstr ""

#. type: deftp
#: doc/guix.texi:21415
msgid ""
"After reconfiguring your system, you can manually set the murmur "
"@code{SuperUser} password with the command that is printed during the "
"activation phase."
msgstr ""

#. type: deftp
#: doc/guix.texi:21424
msgid ""
"It is recommended to register a normal Mumble user account and grant it "
"admin or moderator rights.  You can use the @code{mumble} client to login as "
"new normal user, register yourself, and log out.  For the next step login "
"with the name @code{SuperUser} use the @code{SuperUser} password that you "
"set previously, and grant your newly registered mumble user administrator or "
"moderator rights and create some channels."
msgstr ""

#. type: deftp
#: doc/guix.texi:21426
msgid "Available @code{murmur-configuration} fields are:"
msgstr ""

#. type: item
#: doc/guix.texi:21428
#, no-wrap
msgid "@code{package} (default: @code{mumble})"
msgstr ""

#. type: table
#: doc/guix.texi:21430
msgid "Package that contains @code{bin/murmurd}."
msgstr ""

#. type: item
#: doc/guix.texi:21431
#, no-wrap
msgid "@code{user} (default: @code{\"murmur\"})"
msgstr ""

#. type: table
#: doc/guix.texi:21433
msgid "User who will run the Murmur server."
msgstr ""

#. type: item
#: doc/guix.texi:21434
#, no-wrap
msgid "@code{group} (default: @code{\"murmur\"})"
msgstr ""

#. type: table
#: doc/guix.texi:21436
msgid "Group of the user who will run the murmur server."
msgstr ""

#. type: item
#: doc/guix.texi:21437
#, no-wrap
msgid "@code{port} (default: @code{64738})"
msgstr ""

#. type: table
#: doc/guix.texi:21439
msgid "Port on which the server will listen."
msgstr ""

#. type: item
#: doc/guix.texi:21440
#, no-wrap
msgid "@code{welcome-text} (default: @code{\"\"})"
msgstr ""

#. type: table
#: doc/guix.texi:21442
msgid "Welcome text sent to clients when they connect."
msgstr ""

#. type: item
#: doc/guix.texi:21443
#, no-wrap
msgid "@code{server-password} (default: @code{\"\"})"
msgstr ""

#. type: table
#: doc/guix.texi:21445
msgid "Password the clients have to enter in order to connect."
msgstr ""

#. type: item
#: doc/guix.texi:21446
#, no-wrap
msgid "@code{max-users} (default: @code{100})"
msgstr ""

#. type: table
#: doc/guix.texi:21448
msgid "Maximum of users that can be connected to the server at once."
msgstr ""

#. type: item
#: doc/guix.texi:21449
#, no-wrap
msgid "@code{max-user-bandwidth} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:21451
msgid "Maximum voice traffic a user can send per second."
msgstr ""

#. type: item
#: doc/guix.texi:21452
#, no-wrap
msgid "@code{database-file} (default: @code{\"/var/lib/murmur/db.sqlite\"})"
msgstr ""

#. type: table
#: doc/guix.texi:21455
msgid ""
"File name of the sqlite database.  The service's user will become the owner "
"of the directory."
msgstr ""

#. type: item
#: doc/guix.texi:21456
#, no-wrap
msgid "@code{log-file} (default: @code{\"/var/log/murmur/murmur.log\"})"
msgstr ""

#. type: table
#: doc/guix.texi:21459
msgid ""
"File name of the log file.  The service's user will become the owner of the "
"directory."
msgstr ""

#. type: item
#: doc/guix.texi:21460
#, no-wrap
msgid "@code{autoban-attempts} (default: @code{10})"
msgstr ""

#. type: table
#: doc/guix.texi:21463
msgid ""
"Maximum number of logins a user can make in @code{autoban-timeframe} without "
"getting auto banned for @code{autoban-time}."
msgstr ""

#. type: item
#: doc/guix.texi:21464
#, no-wrap
msgid "@code{autoban-timeframe} (default: @code{120})"
msgstr ""

#. type: table
#: doc/guix.texi:21466
msgid "Timeframe for autoban in seconds."
msgstr ""

#. type: item
#: doc/guix.texi:21467
#, no-wrap
msgid "@code{autoban-time} (default: @code{300})"
msgstr ""

#. type: table
#: doc/guix.texi:21470
msgid ""
"Amount of time in seconds for which a client gets banned when violating the "
"autoban limits."
msgstr ""

#. type: item
#: doc/guix.texi:21471
#, no-wrap
msgid "@code{opus-threshold} (default: @code{100})"
msgstr ""

#. type: table
#: doc/guix.texi:21474
msgid ""
"Percentage of clients that need to support opus before switching over to "
"opus audio codec."
msgstr ""

#. type: item
#: doc/guix.texi:21475
#, no-wrap
msgid "@code{channel-nesting-limit} (default: @code{10})"
msgstr ""

#. type: table
#: doc/guix.texi:21477
msgid "How deep channels can be nested at maximum."
msgstr ""

#. type: item
#: doc/guix.texi:21478
#, no-wrap
msgid "@code{channelname-regex} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:21480
msgid ""
"A string in form of a Qt regular expression that channel names must conform "
"to."
msgstr ""

#. type: item
#: doc/guix.texi:21481
#, no-wrap
msgid "@code{username-regex} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:21483
msgid ""
"A string in form of a Qt regular expression that user names must conform to."
msgstr ""

#. type: item
#: doc/guix.texi:21484
#, no-wrap
msgid "@code{text-message-length} (default: @code{5000})"
msgstr ""

#. type: table
#: doc/guix.texi:21486
msgid "Maximum size in bytes that a user can send in one text chat message."
msgstr ""

#. type: item
#: doc/guix.texi:21487
#, no-wrap
msgid "@code{image-message-length} (default: @code{(* 128 1024)})"
msgstr ""

#. type: table
#: doc/guix.texi:21489
msgid "Maximum size in bytes that a user can send in one image message."
msgstr ""

#. type: item
#: doc/guix.texi:21490
#, no-wrap
msgid "@code{cert-required?} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:21493
msgid ""
"If it is set to @code{#t} clients that use weak password authentication will "
"not be accepted. Users must have completed the certificate wizard to join."
msgstr ""

#. type: item
#: doc/guix.texi:21494
#, no-wrap
msgid "@code{remember-channel?} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:21497
msgid ""
"Should murmur remember the last channel each user was in when they "
"disconnected and put them into the remembered channel when they rejoin."
msgstr ""

#. type: item
#: doc/guix.texi:21498
#, no-wrap
msgid "@code{allow-html?} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:21500
msgid ""
"Should html be allowed in text messages, user comments, and channel "
"descriptions."
msgstr ""

#. type: item
#: doc/guix.texi:21501
#, no-wrap
msgid "@code{allow-ping?} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:21505
msgid ""
"Setting to true exposes the current user count, the maximum user count, and "
"the server's maximum bandwidth per client to unauthenticated users. In the "
"Mumble client, this information is shown in the Connect dialog."
msgstr ""

#. type: table
#: doc/guix.texi:21507
msgid "Disabling this setting will prevent public listing of the server."
msgstr ""

#. type: item
#: doc/guix.texi:21508
#, no-wrap
msgid "@code{bonjour?} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:21510
msgid ""
"Should the server advertise itself in the local network through the bonjour "
"protocol."
msgstr ""

#. type: item
#: doc/guix.texi:21511
#, no-wrap
msgid "@code{send-version?} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:21513
msgid "Should the murmur server version be exposed in ping requests."
msgstr ""

#. type: item
#: doc/guix.texi:21514
#, no-wrap
msgid "@code{log-days} (default: @code{31})"
msgstr ""

#. type: table
#: doc/guix.texi:21518
msgid ""
"Murmur also stores logs in the database, which are accessible via RPC.  The "
"default is 31 days of months, but you can set this setting to 0 to keep logs "
"forever, or -1 to disable logging to the database."
msgstr ""

#. type: item
#: doc/guix.texi:21519
#, no-wrap
msgid "@code{obfuscate-ips?} (default: @code{#t})"
msgstr ""

#. type: table
#: doc/guix.texi:21521
msgid "Should logged ips be obfuscated to protect the privacy of users."
msgstr ""

#. type: item
#: doc/guix.texi:21522
#, no-wrap
msgid "@code{ssl-cert} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:21524
msgid "File name of the SSL/TLS certificate used for encrypted connections."
msgstr ""

#. type: lisp
#: doc/guix.texi:21527
#, no-wrap
msgid "(ssl-cert \"/etc/letsencrypt/live/example.com/fullchain.pem\")\n"
msgstr ""

#. type: item
#: doc/guix.texi:21528
#, no-wrap
msgid "@code{ssl-key} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:21530
msgid "Filepath to the ssl private key used for encrypted connections."
msgstr ""

#. type: lisp
#: doc/guix.texi:21532
#, no-wrap
msgid "(ssl-key \"/etc/letsencrypt/live/example.com/privkey.pem\")\n"
msgstr ""

#. type: item
#: doc/guix.texi:21534
#, no-wrap
msgid "@code{ssl-dh-params} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:21539
msgid ""
"File name of a PEM-encoded file with Diffie-Hellman parameters for the SSL/"
"TLS encryption.  Alternatively you set it to @code{\"@@ffdhe2048\"}, "
"@code{\"@@ffdhe3072\"}, @code{\"@@ffdhe4096\"}, @code{\"@@ffdhe6144\"} or "
"@code{\"@@ffdhe8192\"} to use bundled parameters from RFC 7919."
msgstr ""

#. type: item
#: doc/guix.texi:21540
#, no-wrap
msgid "@code{ssl-ciphers} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:21543
msgid ""
"The @code{ssl-ciphers} option chooses the cipher suites to make available "
"for use in SSL/TLS."
msgstr ""

#. type: table
#: doc/guix.texi:21547
msgid ""
"This option is specified using @uref{https://www.openssl.org/docs/apps/"
"ciphers.html#CIPHER-LIST-FORMAT, OpenSSL cipher list notation}."
msgstr ""

#. type: table
#: doc/guix.texi:21552
msgid ""
"It is recommended that you try your cipher string using 'openssl ciphers "
"<string>' before setting it here, to get a feel for which cipher suites you "
"will get.  After setting this option, it is recommend that you inspect your "
"Murmur log to ensure that Murmur is using the cipher suites that you "
"expected it to."
msgstr ""

#. type: table
#: doc/guix.texi:21556
msgid ""
"Note: Changing this option may impact the backwards compatibility of your "
"Murmur server, and can remove the ability for older Mumble clients to be "
"able to connect to it."
msgstr ""

#. type: item
#: doc/guix.texi:21557
#, no-wrap
msgid "@code{public-registration} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:21559
msgid ""
"Must be a @code{<murmur-public-registration-configuration>} record or "
"@code{#f}."
msgstr ""

#. type: table
#: doc/guix.texi:21564
msgid ""
"You can optionally register your server in the public server list that the "
"@code{mumble} client shows on startup.  You cannot register your server if "
"you have set a @code{server-password}, or set @code{allow-ping} to @code{#f}."
msgstr ""

#. type: table
#: doc/guix.texi:21566
msgid "It might take a few hours until it shows up in the public list."
msgstr ""

#. type: item
#: doc/guix.texi:21567 doc/guix.texi:22999
#, no-wrap
msgid "@code{file} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:21569
msgid "Optional alternative override for this configuration."
msgstr ""

#. type: deftp
#: doc/guix.texi:21572
#, no-wrap
msgid "{Data Type} murmur-public-registration-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:21574
msgid "Configuration for public registration of a murmur service."
msgstr ""

#. type: table
#: doc/guix.texi:21578
msgid ""
"This is a display name for your server. Not to be confused with the hostname."
msgstr ""

#. type: itemx
#: doc/guix.texi:21579 doc/guix.texi:30111
#, no-wrap
msgid "password"
msgstr ""

#. type: table
#: doc/guix.texi:21582
msgid ""
"A password to identify your registration.  Subsequent updates will need the "
"same password. Don't lose your password."
msgstr ""

#. type: table
#: doc/guix.texi:21586
msgid ""
"This should be a @code{http://} or @code{https://} link to your web site."
msgstr ""

#. type: item
#: doc/guix.texi:21587
#, no-wrap
msgid "@code{hostname} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:21590
msgid ""
"By default your server will be listed by its IP address.  If it is set your "
"server will be linked by this host name instead."
msgstr ""

#. type: subsubheading
#: doc/guix.texi:21598
#, no-wrap
msgid "Tailon Service"
msgstr ""

#. type: Plain text
#: doc/guix.texi:21602
msgid ""
"@uref{https://tailon.readthedocs.io/, Tailon} is a web application for "
"viewing and searching log files."
msgstr ""

#. type: Plain text
#: doc/guix.texi:21605
msgid ""
"The following example will configure the service with default values.  By "
"default, Tailon can be accessed on port 8080 (@code{http://localhost:8080})."
msgstr ""

#. type: lisp
#: doc/guix.texi:21608
#, no-wrap
msgid "(service tailon-service-type)\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:21612
msgid ""
"The following example customises more of the Tailon configuration, adding "
"@command{sed} to the list of allowed commands."
msgstr ""

#. type: lisp
#: doc/guix.texi:21619
#, no-wrap
msgid ""
"(service tailon-service-type\n"
"         (tailon-configuration\n"
"           (config-file\n"
"             (tailon-configuration-file\n"
"               (allowed-commands '(\"tail\" \"grep\" \"awk\" \"sed\"))))))\n"
msgstr ""

#. type: deftp
#: doc/guix.texi:21622
#, no-wrap
msgid "{Data Type} tailon-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:21625
msgid ""
"Data type representing the configuration of Tailon.  This type has the "
"following parameters:"
msgstr ""

#. type: item
#: doc/guix.texi:21627
#, no-wrap
msgid "@code{config-file} (default: @code{(tailon-configuration-file)})"
msgstr ""

#. type: table
#: doc/guix.texi:21631
msgid ""
"The configuration file to use for Tailon. This can be set to a @dfn{tailon-"
"configuration-file} record value, or any gexp (@pxref{G-Expressions})."
msgstr ""

#. type: table
#: doc/guix.texi:21634
msgid ""
"For example, to instead use a local file, the @code{local-file} function can "
"be used:"
msgstr ""

#. type: lisp
#: doc/guix.texi:21639
#, no-wrap
msgid ""
"(service tailon-service-type\n"
"         (tailon-configuration\n"
"           (config-file (local-file \"./my-tailon.conf\"))))\n"
msgstr ""

#. type: item
#: doc/guix.texi:21641
#, no-wrap
msgid "@code{package} (default: @code{tailon})"
msgstr ""

#. type: table
#: doc/guix.texi:21643
msgid "The tailon package to use."
msgstr ""

#. type: deftp
#: doc/guix.texi:21647
#, no-wrap
msgid "{Data Type} tailon-configuration-file"
msgstr ""

#. type: deftp
#: doc/guix.texi:21650
msgid ""
"Data type representing the configuration options for Tailon.  This type has "
"the following parameters:"
msgstr ""

#. type: item
#: doc/guix.texi:21652
#, no-wrap
msgid "@code{files} (default: @code{(list \"/var/log\")})"
msgstr ""

#. type: table
#: doc/guix.texi:21657
msgid ""
"List of files to display. The list can include strings for a single file or "
"directory, or a list, where the first item is the name of a subsection, and "
"the remaining items are the files or directories in that subsection."
msgstr ""

#. type: item
#: doc/guix.texi:21658
#, no-wrap
msgid "@code{bind} (default: @code{\"localhost:8080\"})"
msgstr ""

#. type: table
#: doc/guix.texi:21660
msgid "Address and port to which Tailon should bind on."
msgstr ""

#. type: item
#: doc/guix.texi:21661
#, no-wrap
msgid "@code{relative-root} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:21663
msgid "URL path to use for Tailon, set to @code{#f} to not use a path."
msgstr ""

#. type: item
#: doc/guix.texi:21664
#, no-wrap
msgid "@code{allow-transfers?} (default: @code{#t})"
msgstr ""

#. type: table
#: doc/guix.texi:21666
msgid "Allow downloading the log files in the web interface."
msgstr ""

#. type: item
#: doc/guix.texi:21667
#, no-wrap
msgid "@code{follow-names?} (default: @code{#t})"
msgstr ""

#. type: table
#: doc/guix.texi:21669
msgid "Allow tailing of not-yet existent files."
msgstr ""

#. type: item
#: doc/guix.texi:21670
#, no-wrap
msgid "@code{tail-lines} (default: @code{200})"
msgstr ""

#. type: table
#: doc/guix.texi:21672
msgid "Number of lines to read initially from each file."
msgstr ""

#. type: item
#: doc/guix.texi:21673
#, no-wrap
msgid "@code{allowed-commands} (default: @code{(list \"tail\" \"grep\" \"awk\")})"
msgstr ""

#. type: table
#: doc/guix.texi:21675
msgid "Commands to allow running. By default, @code{sed} is disabled."
msgstr ""

#. type: table
#: doc/guix.texi:21678
msgid "Set @code{debug?} to @code{#t} to show debug messages."
msgstr ""

#. type: item
#: doc/guix.texi:21679
#, no-wrap
msgid "@code{wrap-lines} (default: @code{#t})"
msgstr ""

#. type: table
#: doc/guix.texi:21683
msgid ""
"Initial line wrapping state in the web interface. Set to @code{#t} to "
"initially wrap lines (the default), or to @code{#f} to initially not wrap "
"lines."
msgstr ""

#. type: item
#: doc/guix.texi:21684
#, no-wrap
msgid "@code{http-auth} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:21688
msgid ""
"HTTP authentication type to use. Set to @code{#f} to disable authentication "
"(the default). Supported values are @code{\"digest\"} or @code{\"basic\"}."
msgstr ""

#. type: item
#: doc/guix.texi:21689
#, no-wrap
msgid "@code{users} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:21694
msgid ""
"If HTTP authentication is enabled (see @code{http-auth}), access will be "
"restricted to the credentials provided here. To configure users, use a list "
"of pairs, where the first element of the pair is the username, and the 2nd "
"element of the pair is the password."
msgstr ""

#. type: lisp
#: doc/guix.texi:21700
#, no-wrap
msgid ""
"(tailon-configuration-file\n"
"  (http-auth \"basic\")\n"
"  (users     '((\"user1\" . \"password1\")\n"
"               (\"user2\" . \"password2\"))))\n"
msgstr ""

#. type: subsubheading
#: doc/guix.texi:21706
#, no-wrap
msgid "Darkstat Service"
msgstr ""

#. type: cindex
#: doc/guix.texi:21707
#, no-wrap
msgid "darkstat"
msgstr ""

#. type: Plain text
#: doc/guix.texi:21710
msgid ""
"Darkstat is a packet sniffer that captures network traffic, calculates "
"statistics about usage, and serves reports over HTTP."
msgstr ""

#. type: defvar
#: doc/guix.texi:21711
#, no-wrap
msgid "{Scheme Variable} darkstat-service-type"
msgstr ""

#. type: defvar
#: doc/guix.texi:21716
msgid ""
"This is the service type for the @uref{https://unix4lyfe.org/darkstat/, "
"darkstat} service, its value must be a @code{darkstat-configuration} record "
"as in this example:"
msgstr ""

#. type: lisp
#: doc/guix.texi:21721
#, no-wrap
msgid ""
"(service darkstat-service-type\n"
"         (darkstat-configuration\n"
"           (interface \"eno1\")))\n"
msgstr ""

#. type: deftp
#: doc/guix.texi:21724
#, no-wrap
msgid "{Data Type} darkstat-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:21726
msgid "Data type representing the configuration of @command{darkstat}."
msgstr ""

#. type: item
#: doc/guix.texi:21728
#, no-wrap
msgid "@code{package} (default: @code{darkstat})"
msgstr ""

#. type: table
#: doc/guix.texi:21730
msgid "The darkstat package to use."
msgstr ""

#. type: code{#1}
#: doc/guix.texi:21731
#, no-wrap
msgid "interface"
msgstr ""

#. type: table
#: doc/guix.texi:21733
msgid "Capture traffic on the specified network interface."
msgstr ""

#. type: item
#: doc/guix.texi:21734
#, no-wrap
msgid "@code{port} (default: @code{\"667\"})"
msgstr ""

#. type: table
#: doc/guix.texi:21736
msgid "Bind the web interface to the specified port."
msgstr ""

#. type: item
#: doc/guix.texi:21737
#, no-wrap
msgid "@code{bind-address} (default: @code{\"127.0.0.1\"})"
msgstr ""

#. type: table
#: doc/guix.texi:21739 doc/guix.texi:21777
msgid "Bind the web interface to the specified address."
msgstr ""

#. type: item
#: doc/guix.texi:21740
#, no-wrap
msgid "@code{base} (default: @code{\"/\"})"
msgstr ""

#. type: table
#: doc/guix.texi:21743
msgid ""
"Specify the path of the base URL.  This can be useful if @command{darkstat} "
"is accessed via a reverse proxy."
msgstr ""

#. type: subsubheading
#: doc/guix.texi:21747
#, no-wrap
msgid "Prometheus Node Exporter Service"
msgstr ""

#. type: cindex
#: doc/guix.texi:21749
#, no-wrap
msgid "prometheus-node-exporter"
msgstr ""

#. type: Plain text
#: doc/guix.texi:21754
msgid ""
"The Prometheus ``node exporter'' makes hardware and operating system "
"statistics provided by the Linux kernel available for the Prometheus "
"monitoring system.  This service should be deployed on all physical nodes "
"and virtual machines, where monitoring these statistics is desirable."
msgstr ""

#. type: defvar
#: doc/guix.texi:21755
#, no-wrap
msgid "{Scheme variable} prometheus-node-exporter-service-type"
msgstr ""

#. type: defvar
#: doc/guix.texi:21760
msgid ""
"This is the service type for the @uref{https://github.com/prometheus/"
"node_exporter/, prometheus-node-exporter} service, its value must be a "
"@code{prometheus-node-exporter-configuration} record as in this example:"
msgstr ""

#. type: lisp
#: doc/guix.texi:21765
#, no-wrap
msgid ""
"(service prometheus-node-exporter-service-type\n"
"         (prometheus-node-exporter-configuration\n"
"           (web-listen-address \":9100\")))\n"
msgstr ""

#. type: deftp
#: doc/guix.texi:21768
#, no-wrap
msgid "{Data Type} prometheus-node-exporter-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:21770
msgid "Data type representing the configuration of @command{node_exporter}."
msgstr ""

#. type: item
#: doc/guix.texi:21772
#, no-wrap
msgid "@code{package} (default: @code{go-github-com-prometheus-node-exporter})"
msgstr ""

#. type: table
#: doc/guix.texi:21774
msgid "The prometheus-node-exporter package to use."
msgstr ""

#. type: item
#: doc/guix.texi:21775
#, no-wrap
msgid "@code{web-listen-address} (default: @code{\":9100\"})"
msgstr ""

#. type: subsubheading
#: doc/guix.texi:21781
#, no-wrap
msgid "Zabbix server"
msgstr ""

#. type: cindex
#: doc/guix.texi:21782
#, no-wrap
msgid "zabbix zabbix-server"
msgstr ""

#. type: Plain text
#: doc/guix.texi:21785
msgid ""
"Zabbix provides monitoring metrics, among others network utilization, CPU "
"load and disk space consumption:"
msgstr ""

#. type: item
#: doc/guix.texi:21787
#, no-wrap
msgid "High performance, high capacity (able to monitor hundreds of thousands of devices)."
msgstr ""

#. type: item
#: doc/guix.texi:21788
#, no-wrap
msgid "Auto-discovery of servers and network devices and interfaces."
msgstr ""

#. type: item
#: doc/guix.texi:21789
#, no-wrap
msgid "Low-level discovery, allows to automatically start monitoring new items, file systems or network interfaces among others."
msgstr ""

#. type: item
#: doc/guix.texi:21790
#, no-wrap
msgid "Distributed monitoring with centralized web administration."
msgstr ""

#. type: item
#: doc/guix.texi:21791
#, no-wrap
msgid "Native high performance agents."
msgstr ""

#. type: item
#: doc/guix.texi:21792
#, no-wrap
msgid "SLA, and ITIL KPI metrics on reporting."
msgstr ""

#. type: item
#: doc/guix.texi:21793
#, no-wrap
msgid "High-level (business) view of monitored resources through user-defined visual console screens and dashboards."
msgstr ""

#. type: item
#: doc/guix.texi:21794
#, no-wrap
msgid "Remote command execution through Zabbix proxies."
msgstr ""

#. type: Plain text
#: doc/guix.texi:21800
msgid "Available @code{zabbix-server-configuration} fields are:"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21801
#, no-wrap
msgid "{@code{zabbix-server-configuration} parameter} package zabbix-server"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21803
msgid "The zabbix-server package."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21806
#, no-wrap
msgid "{@code{zabbix-server-configuration} parameter} string user"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21808
msgid "User who will run the Zabbix server."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21810 doc/guix.texi:21817 doc/guix.texi:21831
#: doc/guix.texi:21838 doc/guix.texi:21939 doc/guix.texi:21946
#: doc/guix.texi:22057 doc/guix.texi:22064
msgid "Defaults to @samp{\"zabbix\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21813
#, no-wrap
msgid "{@code{zabbix-server-configuration} parameter} group group"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21815
msgid "Group who will run the Zabbix server."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21820
#, no-wrap
msgid "{@code{zabbix-server-configuration} parameter} string db-host"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21822 doc/guix.texi:22041
msgid "Database host name."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21824
msgid "Defaults to @samp{\"127.0.0.1\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21827
#, no-wrap
msgid "{@code{zabbix-server-configuration} parameter} string db-name"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21829 doc/guix.texi:22055
msgid "Database name."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21834
#, no-wrap
msgid "{@code{zabbix-server-configuration} parameter} string db-user"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21836 doc/guix.texi:22062
msgid "Database user."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21841
#, no-wrap
msgid "{@code{zabbix-server-configuration} parameter} string db-password"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21844
msgid ""
"Database password.  Please, use @code{include-files} with "
"@code{DBPassword=SECRET} inside a specified file instead."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21849
#, no-wrap
msgid "{@code{zabbix-server-configuration} parameter} number db-port"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21851 doc/guix.texi:22048
msgid "Database port."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21853 doc/guix.texi:22050
msgid "Defaults to @samp{5432}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21856
#, no-wrap
msgid "{@code{zabbix-server-configuration} parameter} string log-type"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21858 doc/guix.texi:21959
msgid "Specifies where log messages are written to:"
msgstr ""

#. type: itemize
#: doc/guix.texi:21862 doc/guix.texi:21963
msgid "@code{system} - syslog."
msgstr ""

#. type: itemize
#: doc/guix.texi:21865 doc/guix.texi:21966
msgid "@code{file} - file specified with @code{log-file} parameter."
msgstr ""

#. type: itemize
#: doc/guix.texi:21868 doc/guix.texi:21969
msgid "@code{console} - standard output."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21875
#, no-wrap
msgid "{@code{zabbix-server-configuration} parameter} string log-file"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21877 doc/guix.texi:21978
msgid "Log file name for @code{log-type} @code{file} parameter."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21879
msgid "Defaults to @samp{\"/var/log/zabbix/server.log\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21882
#, no-wrap
msgid "{@code{zabbix-server-configuration} parameter} string pid-file"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21884 doc/guix.texi:21985
msgid "Name of PID file."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21886
msgid "Defaults to @samp{\"/var/run/zabbix/zabbix_server.pid\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21889
#, no-wrap
msgid "{@code{zabbix-server-configuration} parameter} string ssl-ca-location"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21892
msgid ""
"The location of certificate authority (CA) files for SSL server certificate "
"verification."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21894
msgid "Defaults to @samp{\"/etc/ssl/certs/ca-certificates.crt\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21897
#, no-wrap
msgid "{@code{zabbix-server-configuration} parameter} string ssl-cert-location"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21899
msgid "Location of SSL client certificates."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21901
msgid "Defaults to @samp{\"/etc/ssl/certs\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21904
#, no-wrap
msgid "{@code{zabbix-server-configuration} parameter} string extra-options"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21906 doc/guix.texi:22010
msgid "Extra options will be appended to Zabbix server configuration file."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21911
#, no-wrap
msgid "{@code{zabbix-server-configuration} parameter} include-files include-files"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21914 doc/guix.texi:22018
msgid ""
"You may include individual files or all files in a directory in the "
"configuration file."
msgstr ""

#. type: subsubheading
#: doc/guix.texi:21921
#, no-wrap
msgid "Zabbix agent"
msgstr ""

#. type: cindex
#: doc/guix.texi:21922
#, no-wrap
msgid "zabbix zabbix-agent"
msgstr ""

#. type: Plain text
#: doc/guix.texi:21925
msgid "Zabbix agent gathers information for Zabbix server."
msgstr ""

#. type: Plain text
#: doc/guix.texi:21929
msgid "Available @code{zabbix-agent-configuration} fields are:"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21930
#, no-wrap
msgid "{@code{zabbix-agent-configuration} parameter} package zabbix-agent"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21932
msgid "The zabbix-agent package."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21935
#, no-wrap
msgid "{@code{zabbix-agent-configuration} parameter} string user"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21937
msgid "User who will run the Zabbix agent."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21942
#, no-wrap
msgid "{@code{zabbix-agent-configuration} parameter} group group"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21944
msgid "Group who will run the Zabbix agent."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21949
#, no-wrap
msgid "{@code{zabbix-agent-configuration} parameter} string hostname"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21952
msgid ""
"Unique, case sensitive hostname which is required for active checks and must "
"match hostname as configured on the server."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21954
msgid "Defaults to @samp{\"Zabbix server\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21957
#, no-wrap
msgid "{@code{zabbix-agent-configuration} parameter} string log-type"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21976
#, no-wrap
msgid "{@code{zabbix-agent-configuration} parameter} string log-file"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21980
msgid "Defaults to @samp{\"/var/log/zabbix/agent.log\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21983
#, no-wrap
msgid "{@code{zabbix-agent-configuration} parameter} string pid-file"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21987
msgid "Defaults to @samp{\"/var/run/zabbix/zabbix_agent.pid\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21990
#, no-wrap
msgid "{@code{zabbix-agent-configuration} parameter} list server"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21994
msgid ""
"List of IP addresses, optionally in CIDR notation, or hostnames of Zabbix "
"servers and Zabbix proxies.  Incoming connections will be accepted only from "
"the hosts listed here."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21996 doc/guix.texi:22005
msgid "Defaults to @samp{(\"127.0.0.1\")}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:21999
#, no-wrap
msgid "{@code{zabbix-agent-configuration} parameter} list server-active"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22003
msgid ""
"List of IP:port (or hostname:port) pairs of Zabbix servers and Zabbix "
"proxies for active checks.  If port is not specified, default port is used.  "
"If this parameter is not specified, active checks are disabled."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22008
#, no-wrap
msgid "{@code{zabbix-agent-configuration} parameter} string extra-options"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22015
#, no-wrap
msgid "{@code{zabbix-agent-configuration} parameter} include-files include-files"
msgstr ""

#. type: subsubheading
#: doc/guix.texi:22025
#, no-wrap
msgid "Zabbix front-end"
msgstr ""

#. type: cindex
#: doc/guix.texi:22026
#, no-wrap
msgid "zabbix zabbix-front-end"
msgstr ""

#. type: Plain text
#: doc/guix.texi:22029
msgid "This service provides a WEB interface to Zabbix server."
msgstr ""

#. type: Plain text
#: doc/guix.texi:22033
msgid "Available @code{zabbix-front-end-configuration} fields are:"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22034
#, no-wrap
msgid "{@code{zabbix-front-end-configuration} parameter} nginx-server-configuration-list nginx"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22036 doc/guix.texi:27895
msgid "NGINX configuration."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22039
#, no-wrap
msgid "{@code{zabbix-front-end-configuration} parameter} string db-host"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22046
#, no-wrap
msgid "{@code{zabbix-front-end-configuration} parameter} number db-port"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22053
#, no-wrap
msgid "{@code{zabbix-front-end-configuration} parameter} string db-name"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22060
#, no-wrap
msgid "{@code{zabbix-front-end-configuration} parameter} string db-user"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22067
#, no-wrap
msgid "{@code{zabbix-front-end-configuration} parameter} string db-password"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22069
msgid "Database password.  Please, use @code{db-secret-file} instead."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22074
#, no-wrap
msgid "{@code{zabbix-front-end-configuration} parameter} string db-secret-file"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22078
msgid ""
"Secret file which will be appended to @file{zabbix.conf.php} file.  This "
"file contains credentials for use by Zabbix front-end.  You are expected to "
"create it manually."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22083
#, no-wrap
msgid "{@code{zabbix-front-end-configuration} parameter} string zabbix-host"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22085
msgid "Zabbix server hostname."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22090
#, no-wrap
msgid "{@code{zabbix-front-end-configuration} parameter} number zabbix-port"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22092
msgid "Zabbix server port."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22094
msgid "Defaults to @samp{10051}."
msgstr ""

#. type: cindex
#: doc/guix.texi:22102
#, no-wrap
msgid "Kerberos"
msgstr ""

#. type: Plain text
#: doc/guix.texi:22106
msgid ""
"The @code{(gnu services kerberos)} module provides services relating to the "
"authentication protocol @dfn{Kerberos}."
msgstr ""

#. type: subsubheading
#: doc/guix.texi:22107
#, no-wrap
msgid "Krb5 Service"
msgstr ""

#. type: Plain text
#: doc/guix.texi:22114
msgid ""
"Programs using a Kerberos client library normally expect a configuration "
"file in @file{/etc/krb5.conf}.  This service generates such a file from a "
"definition provided in the operating system declaration.  It does not cause "
"any daemon to be started."
msgstr ""

#. type: Plain text
#: doc/guix.texi:22118
msgid ""
"No ``keytab'' files are provided by this service---you must explicitly "
"create them.  This service is known to work with the MIT client library, "
"@code{mit-krb5}.  Other implementations have not been tested."
msgstr ""

#. type: defvr
#: doc/guix.texi:22119
#, no-wrap
msgid "{Scheme Variable} krb5-service-type"
msgstr ""

#. type: defvr
#: doc/guix.texi:22121
msgid "A service type for Kerberos 5 clients."
msgstr ""

#. type: Plain text
#: doc/guix.texi:22125
msgid "Here is an example of its use:"
msgstr ""

#. type: lisp
#: doc/guix.texi:22139
#, no-wrap
msgid ""
"(service krb5-service-type\n"
"         (krb5-configuration\n"
"          (default-realm \"EXAMPLE.COM\")\n"
"          (allow-weak-crypto? #t)\n"
"          (realms (list\n"
"                   (krb5-realm\n"
"                    (name \"EXAMPLE.COM\")\n"
"                    (admin-server \"groucho.example.com\")\n"
"                    (kdc \"karl.example.com\"))\n"
"                   (krb5-realm\n"
"                    (name \"ARGRX.EDU\")\n"
"                    (admin-server \"kerb-admin.argrx.edu\")\n"
"                    (kdc \"keys.argrx.edu\"))))))\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:22143
msgid "This example provides a Kerberos@tie{}5 client configuration which:"
msgstr ""

#. type: item
#: doc/guix.texi:22144
#, no-wrap
msgid "Recognizes two realms, @i{viz:} ``EXAMPLE.COM'' and ``ARGRX.EDU'', both"
msgstr ""

#. type: itemize
#: doc/guix.texi:22146
msgid ""
"of which have distinct administration servers and key distribution centers;"
msgstr ""

#. type: item
#: doc/guix.texi:22146
#, no-wrap
msgid "Will default to the realm ``EXAMPLE.COM'' if the realm is not explicitly"
msgstr ""

#. type: itemize
#: doc/guix.texi:22148
msgid "specified by clients;"
msgstr ""

#. type: item
#: doc/guix.texi:22148
#, no-wrap
msgid "Accepts services which only support encryption types known to be weak."
msgstr ""

#. type: Plain text
#: doc/guix.texi:22156
msgid ""
"The @code{krb5-realm} and @code{krb5-configuration} types have many fields.  "
"Only the most commonly used ones are described here.  For a full list, and "
"more detailed explanation of each, see the MIT @uref{https://web.mit.edu/"
"kerberos/krb5-devel/doc/admin/conf_files/krb5_conf.html,,krb5.conf} "
"documentation."
msgstr ""

#. type: deftp
#: doc/guix.texi:22158
#, no-wrap
msgid "{Data Type} krb5-realm"
msgstr ""

#. type: cindex
#: doc/guix.texi:22159
#, no-wrap
msgid "realm, kerberos"
msgstr ""

#. type: table
#: doc/guix.texi:22165
msgid ""
"This field is a string identifying the name of the realm.  A common "
"convention is to use the fully qualified DNS name of your organization, "
"converted to upper case."
msgstr ""

#. type: code{#1}
#: doc/guix.texi:22166
#, no-wrap
msgid "admin-server"
msgstr ""

#. type: table
#: doc/guix.texi:22169
msgid ""
"This field is a string identifying the host where the administration server "
"is running."
msgstr ""

#. type: code{#1}
#: doc/guix.texi:22170
#, no-wrap
msgid "kdc"
msgstr ""

#. type: table
#: doc/guix.texi:22173
msgid ""
"This field is a string identifying the key distribution center for the realm."
msgstr ""

#. type: deftp
#: doc/guix.texi:22176
#, no-wrap
msgid "{Data Type} krb5-configuration"
msgstr ""

#. type: item
#: doc/guix.texi:22179
#, no-wrap
msgid "@code{allow-weak-crypto?} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:22182
msgid ""
"If this flag is @code{#t} then services which only offer encryption "
"algorithms known to be weak will be accepted."
msgstr ""

#. type: item
#: doc/guix.texi:22183
#, no-wrap
msgid "@code{default-realm} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:22190
msgid ""
"This field should be a string identifying the default Kerberos realm for the "
"client.  You should set this field to the name of your Kerberos realm.  If "
"this value is @code{#f} then a realm must be specified with every Kerberos "
"principal when invoking programs such as @command{kinit}."
msgstr ""

#. type: code{#1}
#: doc/guix.texi:22191
#, no-wrap
msgid "realms"
msgstr ""

#. type: table
#: doc/guix.texi:22196
msgid ""
"This should be a non-empty list of @code{krb5-realm} objects, which clients "
"may access.  Normally, one of them will have a @code{name} field matching "
"the @code{default-realm} field."
msgstr ""

#. type: subsubheading
#: doc/guix.texi:22200
#, no-wrap
msgid "PAM krb5 Service"
msgstr ""

#. type: cindex
#: doc/guix.texi:22201
#, no-wrap
msgid "pam-krb5"
msgstr ""

#. type: Plain text
#: doc/guix.texi:22207
msgid ""
"The @code{pam-krb5} service allows for login authentication and password "
"management via Kerberos.  You will need this service if you want PAM enabled "
"applications to authenticate users using Kerberos."
msgstr ""

#. type: defvr
#: doc/guix.texi:22208
#, no-wrap
msgid "{Scheme Variable} pam-krb5-service-type"
msgstr ""

#. type: defvr
#: doc/guix.texi:22210
msgid "A service type for the Kerberos 5 PAM module."
msgstr ""

#. type: deftp
#: doc/guix.texi:22212
#, no-wrap
msgid "{Data Type} pam-krb5-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:22215
msgid ""
"Data type representing the configuration of the Kerberos 5 PAM module.  This "
"type has the following parameters:"
msgstr ""

#. type: item
#: doc/guix.texi:22216
#, no-wrap
msgid "@code{pam-krb5} (default: @code{pam-krb5})"
msgstr ""

#. type: table
#: doc/guix.texi:22218
msgid "The pam-krb5 package to use."
msgstr ""

#. type: item
#: doc/guix.texi:22219
#, no-wrap
msgid "@code{minimum-uid} (default: @code{1000})"
msgstr ""

#. type: table
#: doc/guix.texi:22222
msgid ""
"The smallest user ID for which Kerberos authentications should be "
"attempted.  Local accounts with lower values will silently fail to "
"authenticate."
msgstr ""

#. type: cindex
#: doc/guix.texi:22228
#, no-wrap
msgid "LDAP"
msgstr ""

#. type: cindex
#: doc/guix.texi:22229
#, no-wrap
msgid "nslcd, LDAP service"
msgstr ""

#. type: Plain text
#: doc/guix.texi:22236
msgid ""
"The @code{(gnu services authentication)} module provides the @code{nslcd-"
"service-type}, which can be used to authenticate against an LDAP server.  In "
"addition to configuring the service itself, you may want to add @code{ldap} "
"as a name service to the Name Service Switch. @xref{Name Service Switch} for "
"detailed information."
msgstr ""

#. type: Plain text
#: doc/guix.texi:22240
msgid ""
"Here is a simple operating system declaration with a default configuration "
"of the @code{nslcd-service-type} and a Name Service Switch configuration "
"that consults the @code{ldap} name service last:"
msgstr ""

#. type: lisp
#: doc/guix.texi:22263
#, no-wrap
msgid ""
"(use-service-modules authentication)\n"
"(use-modules (gnu system nss))\n"
"...\n"
"(operating-system\n"
"  ...\n"
"  (services\n"
"    (cons*\n"
"      (service nslcd-service-type)\n"
"      (service dhcp-client-service-type)\n"
"      %base-services))\n"
"  (name-service-switch\n"
"   (let ((services (list (name-service (name \"db\"))\n"
"                         (name-service (name \"files\"))\n"
"                         (name-service (name \"ldap\")))))\n"
"     (name-service-switch\n"
"      (inherit %mdns-host-lookup-nss)\n"
"      (password services)\n"
"      (shadow   services)\n"
"      (group    services)\n"
"      (netgroup services)\n"
"      (gshadow  services)))))\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:22268
msgid "Available @code{nslcd-configuration} fields are:"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22269
#, no-wrap
msgid "{@code{nslcd-configuration} parameter} package nss-pam-ldapd"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22271
msgid "The @code{nss-pam-ldapd} package to use."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22274
#, no-wrap
msgid "{@code{nslcd-configuration} parameter} maybe-number threads"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22278
msgid ""
"The number of threads to start that can handle requests and perform LDAP "
"queries.  Each thread opens a separate connection to the LDAP server.  The "
"default is to start 5 threads."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22280 doc/guix.texi:22323 doc/guix.texi:22331
#: doc/guix.texi:22339 doc/guix.texi:22347 doc/guix.texi:22356
#: doc/guix.texi:22364 doc/guix.texi:22371 doc/guix.texi:22379
#: doc/guix.texi:22387 doc/guix.texi:22397 doc/guix.texi:22404
#: doc/guix.texi:22428 doc/guix.texi:22436 doc/guix.texi:22462
#: doc/guix.texi:22471 doc/guix.texi:22480 doc/guix.texi:22489
#: doc/guix.texi:22498 doc/guix.texi:22507 doc/guix.texi:22515
#: doc/guix.texi:22523 doc/guix.texi:22530 doc/guix.texi:22538
#: doc/guix.texi:22545 doc/guix.texi:22553 doc/guix.texi:22561
#: doc/guix.texi:22570 doc/guix.texi:22579 doc/guix.texi:22587
#: doc/guix.texi:22595 doc/guix.texi:22603 doc/guix.texi:22614
#: doc/guix.texi:22624 doc/guix.texi:22635 doc/guix.texi:22644
#: doc/guix.texi:22654 doc/guix.texi:22662 doc/guix.texi:22673
#: doc/guix.texi:22682 doc/guix.texi:22692 doc/guix.texi:25545
#: doc/guix.texi:25552 doc/guix.texi:25559 doc/guix.texi:25566
#: doc/guix.texi:25573 doc/guix.texi:25580 doc/guix.texi:25588
#: doc/guix.texi:25596 doc/guix.texi:25603 doc/guix.texi:25610
#: doc/guix.texi:25617 doc/guix.texi:25624 doc/guix.texi:25654
#: doc/guix.texi:25692 doc/guix.texi:25699 doc/guix.texi:25708
#: doc/guix.texi:25730 doc/guix.texi:25738 doc/guix.texi:25745
#: doc/guix.texi:25900 doc/guix.texi:25920 doc/guix.texi:25935
#: doc/guix.texi:25942 doc/guix.texi:28633 doc/guix.texi:28641
#: doc/guix.texi:28649 doc/guix.texi:28657 doc/guix.texi:28665
#: doc/guix.texi:28673
msgid "Defaults to @samp{disabled}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22283
#, no-wrap
msgid "{@code{nslcd-configuration} parameter} string uid"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22285
msgid "This specifies the user id with which the daemon should be run."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22287 doc/guix.texi:22294
msgid "Defaults to @samp{\"nslcd\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22290
#, no-wrap
msgid "{@code{nslcd-configuration} parameter} string gid"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22292
msgid "This specifies the group id with which the daemon should be run."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22297
#, no-wrap
msgid "{@code{nslcd-configuration} parameter} log-option log"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22305
msgid ""
"This option controls the way logging is done via a list containing SCHEME "
"and LEVEL.  The SCHEME argument may either be the symbols @samp{none} or "
"@samp{syslog}, or an absolute file name.  The LEVEL argument is optional and "
"specifies the log level.  The log level may be one of the following symbols: "
"@samp{crit}, @samp{error}, @samp{warning}, @samp{notice}, @samp{info} or "
"@samp{debug}.  All messages with the specified log level or higher are "
"logged."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22307
msgid "Defaults to @samp{(\"/var/log/nslcd\" info)}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22310
#, no-wrap
msgid "{@code{nslcd-configuration} parameter} list uri"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22313
msgid ""
"The list of LDAP server URIs.  Normally, only the first server will be used "
"with the following servers as fall-back."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22315
msgid "Defaults to @samp{(\"ldap://localhost:389/\")}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22318
#, no-wrap
msgid "{@code{nslcd-configuration} parameter} maybe-string ldap-version"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22321
msgid ""
"The version of the LDAP protocol to use.  The default is to use the maximum "
"version supported by the LDAP library."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22326
#, no-wrap
msgid "{@code{nslcd-configuration} parameter} maybe-string binddn"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22329
msgid ""
"Specifies the distinguished name with which to bind to the directory server "
"for lookups.  The default is to bind anonymously."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22334
#, no-wrap
msgid "{@code{nslcd-configuration} parameter} maybe-string bindpw"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22337
msgid ""
"Specifies the credentials with which to bind.  This option is only "
"applicable when used with binddn."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22342
#, no-wrap
msgid "{@code{nslcd-configuration} parameter} maybe-string rootpwmoddn"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22345
msgid ""
"Specifies the distinguished name to use when the root user tries to modify a "
"user's password using the PAM module."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22350
#, no-wrap
msgid "{@code{nslcd-configuration} parameter} maybe-string rootpwmodpw"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22354
msgid ""
"Specifies the credentials with which to bind if the root user tries to "
"change a user's password.  This option is only applicable when used with "
"rootpwmoddn"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22359
#, no-wrap
msgid "{@code{nslcd-configuration} parameter} maybe-string sasl-mech"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22362
msgid ""
"Specifies the SASL mechanism to be used when performing SASL authentication."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22367
#, no-wrap
msgid "{@code{nslcd-configuration} parameter} maybe-string sasl-realm"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22369
msgid ""
"Specifies the SASL realm to be used when performing SASL authentication."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22374
#, no-wrap
msgid "{@code{nslcd-configuration} parameter} maybe-string sasl-authcid"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22377
msgid ""
"Specifies the authentication identity to be used when performing SASL "
"authentication."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22382
#, no-wrap
msgid "{@code{nslcd-configuration} parameter} maybe-string sasl-authzid"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22385
msgid ""
"Specifies the authorization identity to be used when performing SASL "
"authentication."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22390
#, no-wrap
msgid "{@code{nslcd-configuration} parameter} maybe-boolean sasl-canonicalize?"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22395
msgid ""
"Determines whether the LDAP server host name should be canonicalised.  If "
"this is enabled the LDAP library will do a reverse host name lookup.  By "
"default, it is left up to the LDAP library whether this check is performed "
"or not."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22400
#, no-wrap
msgid "{@code{nslcd-configuration} parameter} maybe-string krb5-ccname"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22402
msgid "Set the name for the GSS-API Kerberos credentials cache."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22407
#, no-wrap
msgid "{@code{nslcd-configuration} parameter} string base"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22409
msgid "The directory search base."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22411
msgid "Defaults to @samp{\"dc=example,dc=com\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22414
#, no-wrap
msgid "{@code{nslcd-configuration} parameter} scope-option scope"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22418
msgid ""
"Specifies the search scope (subtree, onelevel, base or children).  The "
"default scope is subtree; base scope is almost never useful for name service "
"lookups; children scope is not supported on all servers."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22420
msgid "Defaults to @samp{(subtree)}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22423
#, no-wrap
msgid "{@code{nslcd-configuration} parameter} maybe-deref-option deref"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22426
msgid ""
"Specifies the policy for dereferencing aliases.  The default policy is to "
"never dereference aliases."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22431
#, no-wrap
msgid "{@code{nslcd-configuration} parameter} maybe-boolean referrals"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22434
msgid ""
"Specifies whether automatic referral chasing should be enabled.  The default "
"behaviour is to chase referrals."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22439
#, no-wrap
msgid "{@code{nslcd-configuration} parameter} list-of-map-entries maps"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22444
msgid ""
"This option allows for custom attributes to be looked up instead of the "
"default RFC 2307 attributes.  It is a list of maps, each consisting of the "
"name of a map, the RFC 2307 attribute to match and the query expression for "
"the attribute as it is available in the directory."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22449
#, no-wrap
msgid "{@code{nslcd-configuration} parameter} list-of-filter-entries filters"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22452
msgid ""
"A list of filters consisting of the name of a map to which the filter "
"applies and an LDAP search filter expression."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22457
#, no-wrap
msgid "{@code{nslcd-configuration} parameter} maybe-number bind-timelimit"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22460
msgid ""
"Specifies the time limit in seconds to use when connecting to the directory "
"server.  The default value is 10 seconds."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22465
#, no-wrap
msgid "{@code{nslcd-configuration} parameter} maybe-number timelimit"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22469
msgid ""
"Specifies the time limit (in seconds) to wait for a response from the LDAP "
"server.  A value of zero, which is the default, is to wait indefinitely for "
"searches to be completed."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22474
#, no-wrap
msgid "{@code{nslcd-configuration} parameter} maybe-number idle-timelimit"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22478
msgid ""
"Specifies the period if inactivity (in seconds) after which the con‐ nection "
"to the LDAP server will be closed.  The default is not to time out "
"connections."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22483
#, no-wrap
msgid "{@code{nslcd-configuration} parameter} maybe-number reconnect-sleeptime"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22487
msgid ""
"Specifies the number of seconds to sleep when connecting to all LDAP servers "
"fails.  By default one second is waited between the first failure and the "
"first retry."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22492
#, no-wrap
msgid "{@code{nslcd-configuration} parameter} maybe-number reconnect-retrytime"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22496
msgid ""
"Specifies the time after which the LDAP server is considered to be "
"permanently unavailable.  Once this time is reached retries will be done "
"only once per this time period.  The default value is 10 seconds."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22501
#, no-wrap
msgid "{@code{nslcd-configuration} parameter} maybe-ssl-option ssl"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22505
msgid ""
"Specifies whether to use SSL/TLS or not (the default is not to).  If 'start-"
"tls is specified then StartTLS is used rather than raw LDAP over SSL."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22510
#, no-wrap
msgid "{@code{nslcd-configuration} parameter} maybe-tls-reqcert-option tls-reqcert"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22513
msgid ""
"Specifies what checks to perform on a server-supplied certificate.  The "
"meaning of the values is described in the ldap.conf(5) manual page."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22518
#, no-wrap
msgid "{@code{nslcd-configuration} parameter} maybe-string tls-cacertdir"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22521
msgid ""
"Specifies the directory containing X.509 certificates for peer authen‐ "
"tication.  This parameter is ignored when using GnuTLS."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22526
#, no-wrap
msgid "{@code{nslcd-configuration} parameter} maybe-string tls-cacertfile"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22528
msgid "Specifies the path to the X.509 certificate for peer authentication."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22533
#, no-wrap
msgid "{@code{nslcd-configuration} parameter} maybe-string tls-randfile"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22536
msgid ""
"Specifies the path to an entropy source.  This parameter is ignored when "
"using GnuTLS."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22541
#, no-wrap
msgid "{@code{nslcd-configuration} parameter} maybe-string tls-ciphers"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22543
msgid "Specifies the ciphers to use for TLS as a string."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22548
#, no-wrap
msgid "{@code{nslcd-configuration} parameter} maybe-string tls-cert"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22551
msgid ""
"Specifies the path to the file containing the local certificate for client "
"TLS authentication."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22556
#, no-wrap
msgid "{@code{nslcd-configuration} parameter} maybe-string tls-key"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22559
msgid ""
"Specifies the path to the file containing the private key for client TLS "
"authentication."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22564
#, no-wrap
msgid "{@code{nslcd-configuration} parameter} maybe-number pagesize"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22568
msgid ""
"Set this to a number greater than 0 to request paged results from the LDAP "
"server in accordance with RFC2696.  The default (0) is to not request paged "
"results."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22573
#, no-wrap
msgid "{@code{nslcd-configuration} parameter} maybe-ignore-users-option nss-initgroups-ignoreusers"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22577
msgid ""
"This option prevents group membership lookups through LDAP for the specified "
"users.  Alternatively, the value 'all-local may be used.  With that value "
"nslcd builds a full list of non-LDAP users on startup."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22582
#, no-wrap
msgid "{@code{nslcd-configuration} parameter} maybe-number nss-min-uid"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22585
msgid ""
"This option ensures that LDAP users with a numeric user id lower than the "
"specified value are ignored."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22590
#, no-wrap
msgid "{@code{nslcd-configuration} parameter} maybe-number nss-uid-offset"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22593
msgid ""
"This option specifies an offset that is added to all LDAP numeric user ids.  "
"This can be used to avoid user id collisions with local users."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22598
#, no-wrap
msgid "{@code{nslcd-configuration} parameter} maybe-number nss-gid-offset"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22601
msgid ""
"This option specifies an offset that is added to all LDAP numeric group "
"ids.  This can be used to avoid user id collisions with local groups."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22606
#, no-wrap
msgid "{@code{nslcd-configuration} parameter} maybe-boolean nss-nested-groups"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22612
msgid ""
"If this option is set, the member attribute of a group may point to another "
"group.  Members of nested groups are also returned in the higher level group "
"and parent groups are returned when finding groups for a specific user.  The "
"default is not to perform extra searches for nested groups."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22617
#, no-wrap
msgid "{@code{nslcd-configuration} parameter} maybe-boolean nss-getgrent-skipmembers"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22622
msgid ""
"If this option is set, the group member list is not retrieved when looking "
"up groups.  Lookups for finding which groups a user belongs to will remain "
"functional so the user will likely still get the correct groups assigned on "
"login."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22627
#, no-wrap
msgid "{@code{nslcd-configuration} parameter} maybe-boolean nss-disable-enumeration"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22633
msgid ""
"If this option is set, functions which cause all user/group entries to be "
"loaded from the directory will not succeed in doing so.  This can "
"dramatically reduce LDAP server load in situations where there are a great "
"number of users and/or groups.  This option is not recommended for most "
"configurations."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22638
#, no-wrap
msgid "{@code{nslcd-configuration} parameter} maybe-string validnames"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22642
msgid ""
"This option can be used to specify how user and group names are verified "
"within the system.  This pattern is used to check all user and group names "
"that are requested and returned from LDAP."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22647
#, no-wrap
msgid "{@code{nslcd-configuration} parameter} maybe-boolean ignorecase"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22652
msgid ""
"This specifies whether or not to perform searches using case-insensitive "
"matching.  Enabling this could open up the system to authorization bypass "
"vulnerabilities and introduce nscd cache poisoning vulnerabilities which "
"allow denial of service."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22657
#, no-wrap
msgid "{@code{nslcd-configuration} parameter} maybe-boolean pam-authc-ppolicy"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22660
msgid ""
"This option specifies whether password policy controls are requested and "
"handled from the LDAP server when performing user authentication."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22665
#, no-wrap
msgid "{@code{nslcd-configuration} parameter} maybe-string pam-authc-search"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22671
msgid ""
"By default nslcd performs an LDAP search with the user's credentials after "
"BIND (authentication) to ensure that the BIND operation was successful.  The "
"default search is a simple check to see if the user's DN exists.  A search "
"filter can be specified that will be used instead.  It should return at "
"least one entry."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22676
#, no-wrap
msgid "{@code{nslcd-configuration} parameter} maybe-string pam-authz-search"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22680
msgid ""
"This option allows flexible fine tuning of the authorisation check that "
"should be performed.  The search filter specified is executed and if any "
"entries match, access is granted, otherwise access is denied."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22685
#, no-wrap
msgid "{@code{nslcd-configuration} parameter} maybe-string pam-password-prohibit-message"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22690
msgid ""
"If this option is set password modification using pam_ldap will be denied "
"and the specified message will be presented to the user instead.  The "
"message can be used to direct the user to an alternative means of changing "
"their password."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22695
#, no-wrap
msgid "{@code{nslcd-configuration} parameter} list pam-services"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:22697
msgid "List of pam service names for which LDAP authentication should suffice."
msgstr ""

#. type: cindex
#: doc/guix.texi:22708
#, no-wrap
msgid "web"
msgstr ""

#. type: cindex
#: doc/guix.texi:22709
#, no-wrap
msgid "www"
msgstr ""

#. type: cindex
#: doc/guix.texi:22710
#, no-wrap
msgid "HTTP"
msgstr ""

#. type: Plain text
#: doc/guix.texi:22713
msgid ""
"The @code{(gnu services web)} module provides the Apache HTTP Server, the "
"nginx web server, and also a fastcgi wrapper daemon."
msgstr ""

#. type: subsubheading
#: doc/guix.texi:22714
#, no-wrap
msgid "Apache HTTP Server"
msgstr ""

#. type: deffn
#: doc/guix.texi:22716
#, no-wrap
msgid "{Scheme Variable} httpd-service-type"
msgstr ""

#. type: deffn
#: doc/guix.texi:22720
msgid ""
"Service type for the @uref{https://httpd.apache.org/,Apache HTTP} server "
"(@dfn{httpd}).  The value for this service type is a @code{httpd-"
"configuration} record."
msgstr ""

#. type: deffn
#: doc/guix.texi:22722 doc/guix.texi:22903
msgid "A simple example configuration is given below."
msgstr ""

#. type: lisp
#: doc/guix.texi:22730
#, no-wrap
msgid ""
"(service httpd-service-type\n"
"         (httpd-configuration\n"
"           (config\n"
"             (httpd-config-file\n"
"               (server-name \"www.example.com\")\n"
"               (document-root \"/srv/http/www.example.com\")))))\n"
msgstr ""

#. type: deffn
#: doc/guix.texi:22734
msgid ""
"Other services can also extend the @code{httpd-service-type} to add to the "
"configuration."
msgstr ""

#. type: lisp
#: doc/guix.texi:22743 doc/guix.texi:22883
#, no-wrap
msgid ""
"(simple-service 'www.example.com-server httpd-service-type\n"
"                (list\n"
"                  (httpd-virtualhost\n"
"                    \"*:80\"\n"
"                    (list (string-join '(\"ServerName www.example.com\"\n"
"                                          \"DocumentRoot /srv/http/www.example.com\")\n"
"                                       \"\\n\")))))\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:22749
msgid ""
"The details for the @code{httpd-configuration}, @code{httpd-module}, "
"@code{httpd-config-file} and @code{httpd-virtualhost} record types are given "
"below."
msgstr ""

#. type: deffn
#: doc/guix.texi:22750
#, no-wrap
msgid "{Data Type} httpd-configuration"
msgstr ""

#. type: deffn
#: doc/guix.texi:22752
msgid "This data type represents the configuration for the httpd service."
msgstr ""

#. type: item
#: doc/guix.texi:22754
#, no-wrap
msgid "@code{package} (default: @code{httpd})"
msgstr ""

#. type: table
#: doc/guix.texi:22756
msgid "The httpd package to use."
msgstr ""

#. type: item
#: doc/guix.texi:22757 doc/guix.texi:22846
#, no-wrap
msgid "@code{pid-file} (default: @code{\"/var/run/httpd\"})"
msgstr ""

#. type: table
#: doc/guix.texi:22759
msgid "The pid file used by the shepherd-service."
msgstr ""

#. type: item
#: doc/guix.texi:22760
#, no-wrap
msgid "@code{config} (default: @code{(httpd-config-file)})"
msgstr ""

#. type: table
#: doc/guix.texi:22765
msgid ""
"The configuration file to use with the httpd service. The default value is a "
"@code{httpd-config-file} record, but this can also be a different G-"
"expression that generates a file, for example a @code{plain-file}. A file "
"outside of the store can also be specified through a string."
msgstr ""

#. type: deffn
#: doc/guix.texi:22769
#, no-wrap
msgid "{Data Type} httpd-module"
msgstr ""

#. type: deffn
#: doc/guix.texi:22771
msgid "This data type represents a module for the httpd service."
msgstr ""

#. type: table
#: doc/guix.texi:22775
msgid "The name of the module."
msgstr ""

#. type: table
#: doc/guix.texi:22781
msgid ""
"The file for the module. This can be relative to the httpd package being "
"used, the absolute location of a file, or a G-expression for a file within "
"the store, for example @code{(file-append mod-wsgi \"/modules/mod_wsgi.so"
"\")}."
msgstr ""

#. type: defvr
#: doc/guix.texi:22785
#, no-wrap
msgid "{Scheme Variable} %default-httpd-modules"
msgstr ""

#. type: defvr
#: doc/guix.texi:22787
msgid "A default list of @code{httpd-module} objects."
msgstr ""

#. type: deffn
#: doc/guix.texi:22789
#, no-wrap
msgid "{Data Type} httpd-config-file"
msgstr ""

#. type: deffn
#: doc/guix.texi:22791
msgid "This data type represents a configuration file for the httpd service."
msgstr ""

#. type: item
#: doc/guix.texi:22793
#, no-wrap
msgid "@code{modules} (default: @code{%default-httpd-modules})"
msgstr ""

#. type: table
#: doc/guix.texi:22796
msgid ""
"The modules to load. Additional modules can be added here, or loaded by "
"additional configuration."
msgstr ""

#. type: table
#: doc/guix.texi:22799
msgid ""
"For example, in order to handle requests for PHP files, you can use Apache’s "
"@code{mod_proxy_fcgi} module along with @code{php-fpm-service-type}:"
msgstr ""

#. type: lisp
#: doc/guix.texi:22821
#, no-wrap
msgid ""
"(service httpd-service-type\n"
"         (httpd-configuration\n"
"          (config\n"
"           (httpd-config-file\n"
"            (modules (cons*\n"
"                      (httpd-module\n"
"                       (name \"proxy_module\")\n"
"                       (file \"modules/mod_proxy.so\"))\n"
"                      (httpd-module\n"
"                       (name \"proxy_fcgi_module\")\n"
"                       (file \"modules/mod_proxy_fcgi.so\"))\n"
"                      %default-httpd-modules))\n"
"            (extra-config (list \"\\\n"
"<FilesMatch \\\\.php$>\n"
"    SetHandler \\\"proxy:unix:/var/run/php-fpm.sock|fcgi://localhost/\\\"\n"
"</FilesMatch>\"))))))\n"
"(service php-fpm-service-type\n"
"         (php-fpm-configuration\n"
"          (socket \"/var/run/php-fpm.sock\")\n"
"          (socket-group \"httpd\")))\n"
msgstr ""

#. type: item
#: doc/guix.texi:22823
#, no-wrap
msgid "@code{server-root} (default: @code{httpd})"
msgstr ""

#. type: table
#: doc/guix.texi:22827
msgid ""
"The @code{ServerRoot} in the configuration file, defaults to the httpd "
"package. Directives including @code{Include} and @code{LoadModule} are taken "
"as relative to the server root."
msgstr ""

#. type: item
#: doc/guix.texi:22828
#, no-wrap
msgid "@code{server-name} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:22832
msgid ""
"The @code{ServerName} in the configuration file, used to specify the request "
"scheme, hostname and port that the server uses to identify itself."
msgstr ""

#. type: table
#: doc/guix.texi:22836
msgid ""
"This doesn't need to be set in the server config, and can be specified in "
"virtual hosts. The default is @code{#f} to not specify a @code{ServerName}."
msgstr ""

#. type: item
#: doc/guix.texi:22837
#, no-wrap
msgid "@code{document-root} (default: @code{\"/srv/http\"})"
msgstr ""

#. type: table
#: doc/guix.texi:22839
msgid "The @code{DocumentRoot} from which files will be served."
msgstr ""

#. type: item
#: doc/guix.texi:22840
#, no-wrap
msgid "@code{listen} (default: @code{'(\"80\")})"
msgstr ""

#. type: table
#: doc/guix.texi:22845
msgid ""
"The list of values for the @code{Listen} directives in the config file. The "
"value should be a list of strings, when each string can specify the port "
"number to listen on, and optionally the IP address and protocol to use."
msgstr ""

#. type: table
#: doc/guix.texi:22850
msgid ""
"The @code{PidFile} to use. This should match the @code{pid-file} set in the "
"@code{httpd-configuration} so that the Shepherd service is configured "
"correctly."
msgstr ""

#. type: item
#: doc/guix.texi:22851
#, no-wrap
msgid "@code{error-log} (default: @code{\"/var/log/httpd/error_log\"})"
msgstr ""

#. type: table
#: doc/guix.texi:22853
msgid "The @code{ErrorLog} to which the server will log errors."
msgstr ""

#. type: item
#: doc/guix.texi:22854 doc/guix.texi:23415
#, no-wrap
msgid "@code{user} (default: @code{\"httpd\"})"
msgstr ""

#. type: table
#: doc/guix.texi:22856
msgid "The @code{User} which the server will answer requests as."
msgstr ""

#. type: item
#: doc/guix.texi:22857
#, no-wrap
msgid "@code{group} (default: @code{\"httpd\"})"
msgstr ""

#. type: table
#: doc/guix.texi:22859
msgid "The @code{Group} which the server will answer requests as."
msgstr ""

#. type: item
#: doc/guix.texi:22860
#, no-wrap
msgid "@code{extra-config} (default: @code{(list \"TypesConfig etc/httpd/mime.types\")})"
msgstr ""

#. type: table
#: doc/guix.texi:22863
msgid ""
"A flat list of strings and G-expressions which will be added to the end of "
"the configuration file."
msgstr ""

#. type: table
#: doc/guix.texi:22866
msgid ""
"Any values which the service is extended with will be appended to this list."
msgstr ""

#. type: deffn
#: doc/guix.texi:22870
#, no-wrap
msgid "{Data Type} httpd-virtualhost"
msgstr ""

#. type: deffn
#: doc/guix.texi:22872
msgid ""
"This data type represents a virtualhost configuration block for the httpd "
"service."
msgstr ""

#. type: deffn
#: doc/guix.texi:22874
msgid "These should be added to the extra-config for the httpd-service."
msgstr ""

#. type: code{#1}
#: doc/guix.texi:22886
#, no-wrap
msgid "addresses-and-ports"
msgstr ""

#. type: table
#: doc/guix.texi:22888
msgid "The addresses and ports for the @code{VirtualHost} directive."
msgstr ""

#. type: code{#1}
#: doc/guix.texi:22889
#, no-wrap
msgid "contents"
msgstr ""

#. type: table
#: doc/guix.texi:22892
msgid ""
"The contents of the @code{VirtualHost} directive, this should be a list of "
"strings and G-expressions."
msgstr ""

#. type: subsubheading
#: doc/guix.texi:22896
#, no-wrap
msgid "NGINX"
msgstr ""

#. type: deffn
#: doc/guix.texi:22898
#, no-wrap
msgid "{Scheme Variable} nginx-service-type"
msgstr ""

#. type: deffn
#: doc/guix.texi:22901
msgid ""
"Service type for the @uref{https://nginx.org/,NGinx} web server.  The value "
"for this service type is a @code{<nginx-configuration>} record."
msgstr ""

#. type: lisp
#: doc/guix.texi:22911 doc/guix.texi:22965
#, no-wrap
msgid ""
"(service nginx-service-type\n"
"         (nginx-configuration\n"
"           (server-blocks\n"
"             (list (nginx-server-configuration\n"
"                     (server-name '(\"www.example.com\"))\n"
"                     (root \"/srv/http/www.example.com\"))))))\n"
msgstr ""

#. type: deffn
#: doc/guix.texi:22916
msgid ""
"In addition to adding server blocks to the service configuration directly, "
"this service can be extended by other services to add server blocks, as in "
"this example:"
msgstr ""

#. type: lisp
#: doc/guix.texi:22922
#, no-wrap
msgid ""
"(simple-service 'my-extra-server nginx-service-type\n"
"                (list (nginx-server-configuration\n"
"                        (root \"/srv/http/extra-website\")\n"
"                        (try-files (list \"$uri\" \"$uri/index.html\")))))\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:22933
msgid ""
"At startup, @command{nginx} has not yet read its configuration file, so it "
"uses a default file to log error messages.  If it fails to load its "
"configuration file, that is where error messages are logged.  After the "
"configuration file is loaded, the default error log file changes as per "
"configuration.  In our case, startup error messages can be found in @file{/"
"var/run/nginx/logs/error.log}, and after configuration in @file{/var/log/"
"nginx/error.log}.  The second location can be changed with the @var{log-"
"directory} configuration option."
msgstr ""

#. type: deffn
#: doc/guix.texi:22934
#, no-wrap
msgid "{Data Type} nginx-configuration"
msgstr ""

#. type: deffn
#: doc/guix.texi:22938
msgid ""
"This data type represents the configuration for NGinx. Some configuration "
"can be done through this and the other provided record types, or "
"alternatively, a config file can be provided."
msgstr ""

#. type: item
#: doc/guix.texi:22940
#, no-wrap
msgid "@code{nginx} (default: @code{nginx})"
msgstr ""

#. type: table
#: doc/guix.texi:22942
msgid "The nginx package to use."
msgstr ""

#. type: item
#: doc/guix.texi:22943
#, no-wrap
msgid "@code{log-directory} (default: @code{\"/var/log/nginx\"})"
msgstr ""

#. type: table
#: doc/guix.texi:22945
msgid "The directory to which NGinx will write log files."
msgstr ""

#. type: item
#: doc/guix.texi:22946
#, no-wrap
msgid "@code{run-directory} (default: @code{\"/var/run/nginx\"})"
msgstr ""

#. type: table
#: doc/guix.texi:22949
msgid ""
"The directory in which NGinx will create a pid file, and write temporary "
"files."
msgstr ""

#. type: item
#: doc/guix.texi:22950
#, no-wrap
msgid "@code{server-blocks} (default: @code{'()})"
msgstr ""

#. type: table
#: doc/guix.texi:22954
msgid ""
"A list of @dfn{server blocks} to create in the generated configuration file, "
"the elements should be of type @code{<nginx-server-configuration>}."
msgstr ""

#. type: table
#: doc/guix.texi:22958
msgid ""
"The following example would setup NGinx to serve @code{www.example.com} from "
"the @code{/srv/http/www.example.com} directory, without using HTTPS."
msgstr ""

#. type: item
#: doc/guix.texi:22967
#, no-wrap
msgid "@code{upstream-blocks} (default: @code{'()})"
msgstr ""

#. type: table
#: doc/guix.texi:22971
msgid ""
"A list of @dfn{upstream blocks} to create in the generated configuration "
"file, the elements should be of type @code{<nginx-upstream-configuration>}."
msgstr ""

#. type: table
#: doc/guix.texi:22978
msgid ""
"Configuring upstreams through the @code{upstream-blocks} can be useful when "
"combined with @code{locations} in the @code{<nginx-server-configuration>} "
"records.  The following example creates a server configuration with one "
"location configuration, that will proxy requests to a upstream "
"configuration, which will handle requests with two servers."
msgstr ""

#. type: lisp
#: doc/guix.texi:22997
#, no-wrap
msgid ""
"(service\n"
"  nginx-service-type\n"
"  (nginx-configuration\n"
"    (server-blocks\n"
"      (list (nginx-server-configuration\n"
"              (server-name '(\"www.example.com\"))\n"
"              (root \"/srv/http/www.example.com\")\n"
"              (locations\n"
"                (list\n"
"                  (nginx-location-configuration\n"
"                  (uri \"/path1\")\n"
"                  (body '(\"proxy_pass http://server-proxy;\"))))))))\n"
"    (upstream-blocks\n"
"      (list (nginx-upstream-configuration\n"
"              (name \"server-proxy\")\n"
"              (servers (list \"server1.example.com\"\n"
"                             \"server2.example.com\")))))))\n"
msgstr ""

#. type: table
#: doc/guix.texi:23005
msgid ""
"If a configuration @var{file} is provided, this will be used, rather than "
"generating a configuration file from the provided @code{log-directory}, "
"@code{run-directory}, @code{server-blocks} and @code{upstream-blocks}.  For "
"proper operation, these arguments should match what is in @var{file} to "
"ensure that the directories are created when the service is activated."
msgstr ""

#. type: table
#: doc/guix.texi:23009
msgid ""
"This can be useful if you have an existing configuration file, or it's not "
"possible to do what is required through the other parts of the nginx-"
"configuration record."
msgstr ""

#. type: item
#: doc/guix.texi:23010
#, no-wrap
msgid "@code{server-names-hash-bucket-size} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:23013
msgid ""
"Bucket size for the server names hash tables, defaults to @code{#f} to use "
"the size of the processors cache line."
msgstr ""

#. type: item
#: doc/guix.texi:23014
#, no-wrap
msgid "@code{server-names-hash-bucket-max-size} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:23016
msgid "Maximum bucket size for the server names hash tables."
msgstr ""

#. type: table
#: doc/guix.texi:23020
msgid ""
"List of nginx dynamic modules to load.  This should be a list of file names "
"of loadable modules, as in this example:"
msgstr ""

#. type: lisp
#: doc/guix.texi:23028
#, no-wrap
msgid ""
"(modules\n"
" (list\n"
"  (file-append nginx-accept-language-module \"\\\n"
"/etc/nginx/modules/ngx_http_accept_language_module.so\")\n"
"  (file-append nginx-lua-module \"\\\n"
"/etc/nginx/modules/ngx_http_lua_module.so\")))\n"
msgstr ""

#. type: item
#: doc/guix.texi:23030
#, no-wrap
msgid "@code{lua-package-path} (default: @code{'()})"
msgstr ""

#. type: table
#: doc/guix.texi:23033
msgid ""
"List of nginx lua packages to load.  This should be a list of package names "
"of loadable lua modules, as in this example:"
msgstr ""

#. type: lisp
#: doc/guix.texi:23040
#, no-wrap
msgid ""
"(lua-package-path (list lua-resty-core\n"
"                        lua-resty-lrucache\n"
"                        lua-resty-signal\n"
"                        lua-tablepool\n"
"                        lua-resty-shell))\n"
msgstr ""

#. type: item
#: doc/guix.texi:23042
#, no-wrap
msgid "@code{lua-package-cpath} (default: @code{'()})"
msgstr ""

#. type: table
#: doc/guix.texi:23045
msgid ""
"List of nginx lua C packages to load.  This should be a list of package "
"names of loadable lua C modules, as in this example:"
msgstr ""

#. type: lisp
#: doc/guix.texi:23048
#, no-wrap
msgid "(lua-package-cpath (list lua-resty-signal))\n"
msgstr ""

#. type: item
#: doc/guix.texi:23050
#, no-wrap
msgid "@code{global-directives} (default: @code{'((events . ()))})"
msgstr ""

#. type: table
#: doc/guix.texi:23053
msgid ""
"Association list of global directives for the top level of the nginx "
"configuration.  Values may themselves be association lists."
msgstr ""

#. type: lisp
#: doc/guix.texi:23059
#, no-wrap
msgid ""
"(global-directives\n"
" `((worker_processes . 16)\n"
"   (pcre_jit . on)\n"
"   (events . ((worker_connections . 1024)))))\n"
msgstr ""

#. type: table
#: doc/guix.texi:23064
msgid ""
"Extra content for the @code{http} block.  Should be string or a string "
"valued G-expression."
msgstr ""

#. type: deftp
#: doc/guix.texi:23068
#, no-wrap
msgid "{Data Type} nginx-server-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:23071
msgid ""
"Data type representing the configuration of an nginx server block.  This "
"type has the following parameters:"
msgstr ""

#. type: item
#: doc/guix.texi:23073
#, no-wrap
msgid "@code{listen} (default: @code{'(\"80\" \"443 ssl\")})"
msgstr ""

#. type: table
#: doc/guix.texi:23078
msgid ""
"Each @code{listen} directive sets the address and port for IP, or the path "
"for a UNIX-domain socket on which the server will accept requests.  Both "
"address and port, or only address or only port can be specified.  An address "
"may also be a hostname, for example:"
msgstr ""

#. type: lisp
#: doc/guix.texi:23081
#, no-wrap
msgid "'(\"127.0.0.1:8000\" \"127.0.0.1\" \"8000\" \"*:8000\" \"localhost:8000\")\n"
msgstr ""

#. type: item
#: doc/guix.texi:23083
#, no-wrap
msgid "@code{server-name} (default: @code{(list 'default)})"
msgstr ""

#. type: table
#: doc/guix.texi:23086
msgid ""
"A list of server names this server represents. @code{'default} represents "
"the default server for connections matching no other server."
msgstr ""

#. type: item
#: doc/guix.texi:23087
#, no-wrap
msgid "@code{root} (default: @code{\"/srv/http\"})"
msgstr ""

#. type: table
#: doc/guix.texi:23089
msgid "Root of the website nginx will serve."
msgstr ""

#. type: item
#: doc/guix.texi:23090
#, no-wrap
msgid "@code{locations} (default: @code{'()})"
msgstr ""

#. type: table
#: doc/guix.texi:23094
msgid ""
"A list of @dfn{nginx-location-configuration} or @dfn{nginx-named-location-"
"configuration} records to use within this server block."
msgstr ""

#. type: item
#: doc/guix.texi:23095
#, no-wrap
msgid "@code{index} (default: @code{(list \"index.html\")})"
msgstr ""

#. type: table
#: doc/guix.texi:23098
msgid ""
"Index files to look for when clients ask for a directory.  If it cannot be "
"found, Nginx will send the list of files in the directory."
msgstr ""

#. type: item
#: doc/guix.texi:23099
#, no-wrap
msgid "@code{try-files} (default: @code{'()})"
msgstr ""

#. type: table
#: doc/guix.texi:23102
msgid ""
"A list of files whose existence is checked in the specified order.  "
"@code{nginx} will use the first file it finds to process the request."
msgstr ""

#. type: item
#: doc/guix.texi:23103
#, no-wrap
msgid "@code{ssl-certificate} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:23106
msgid ""
"Where to find the certificate for secure connections.  Set it to @code{#f} "
"if you don't have a certificate or you don't want to use HTTPS."
msgstr ""

#. type: item
#: doc/guix.texi:23107
#, no-wrap
msgid "@code{ssl-certificate-key} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:23110
msgid ""
"Where to find the private key for secure connections.  Set it to @code{#f} "
"if you don't have a key or you don't want to use HTTPS."
msgstr ""

#. type: item
#: doc/guix.texi:23111
#, no-wrap
msgid "@code{server-tokens?} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:23113
msgid "Whether the server should add its configuration to response."
msgstr ""

#. type: item
#: doc/guix.texi:23114
#, no-wrap
msgid "@code{raw-content} (default: @code{'()})"
msgstr ""

#. type: table
#: doc/guix.texi:23116
msgid "A list of raw lines added to the server block."
msgstr ""

#. type: deftp
#: doc/guix.texi:23120
#, no-wrap
msgid "{Data Type} nginx-upstream-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:23123
msgid ""
"Data type representing the configuration of an nginx @code{upstream} block.  "
"This type has the following parameters:"
msgstr ""

#. type: table
#: doc/guix.texi:23127
msgid "Name for this group of servers."
msgstr ""

#. type: code{#1}
#: doc/guix.texi:23128
#, no-wrap
msgid "servers"
msgstr ""

#. type: table
#: doc/guix.texi:23135
msgid ""
"Specify the addresses of the servers in the group.  The address can be "
"specified as a IP address (e.g.@: @samp{127.0.0.1}), domain name (e.g.@: "
"@samp{backend1.example.com}) or a path to a UNIX socket using the prefix "
"@samp{unix:}.  For addresses using an IP address or domain name, the default "
"port is 80, and a different port can be specified explicitly."
msgstr ""

#. type: deftp
#: doc/guix.texi:23139
#, no-wrap
msgid "{Data Type} nginx-location-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:23142
msgid ""
"Data type representing the configuration of an nginx @code{location} block.  "
"This type has the following parameters:"
msgstr ""

#. type: table
#: doc/guix.texi:23146
msgid "URI which this location block matches."
msgstr ""

#. type: anchor{#1}
#: doc/guix.texi:23148
msgid "nginx-location-configuration body"
msgstr ""

#. type: code{#1}
#: doc/guix.texi:23148 doc/guix.texi:23169
#, no-wrap
msgid "body"
msgstr ""

#. type: table
#: doc/guix.texi:23155
msgid ""
"Body of the location block, specified as a list of strings. This can contain "
"many configuration directives.  For example, to pass requests to a upstream "
"server group defined using an @code{nginx-upstream-configuration} block, the "
"following directive would be specified in the body @samp{(list \"proxy_pass "
"http://upstream-name;\")}."
msgstr ""

#. type: deftp
#: doc/guix.texi:23159
#, no-wrap
msgid "{Data Type} nginx-named-location-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:23164
msgid ""
"Data type representing the configuration of an nginx named location block.  "
"Named location blocks are used for request redirection, and not used for "
"regular request processing.  This type has the following parameters:"
msgstr ""

#. type: table
#: doc/guix.texi:23168
msgid "Name to identify this location block."
msgstr ""

#. type: table
#: doc/guix.texi:23174
msgid ""
"@xref{nginx-location-configuration body}, as the body for named location "
"blocks can be used in a similar way to the @code{nginx-location-"
"configuration body}.  One restriction is that the body of a named location "
"block cannot contain location blocks."
msgstr ""

#. type: subsubheading
#: doc/guix.texi:23178
#, no-wrap
msgid "Varnish Cache"
msgstr ""

#. type: cindex
#: doc/guix.texi:23179
#, no-wrap
msgid "Varnish"
msgstr ""

#. type: Plain text
#: doc/guix.texi:23184
msgid ""
"Varnish is a fast cache server that sits in between web applications and end "
"users.  It proxies requests from clients and caches the accessed URLs such "
"that multiple requests for the same resource only creates one request to the "
"back-end."
msgstr ""

#. type: defvr
#: doc/guix.texi:23185
#, no-wrap
msgid "{Scheme Variable} varnish-service-type"
msgstr ""

#. type: defvr
#: doc/guix.texi:23187
msgid "Service type for the Varnish daemon."
msgstr ""

#. type: deftp
#: doc/guix.texi:23189
#, no-wrap
msgid "{Data Type} varnish-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:23192
msgid ""
"Data type representing the @code{varnish} service configuration.  This type "
"has the following parameters:"
msgstr ""

#. type: item
#: doc/guix.texi:23194
#, no-wrap
msgid "@code{package} (default: @code{varnish})"
msgstr ""

#. type: table
#: doc/guix.texi:23196
msgid "The Varnish package to use."
msgstr ""

#. type: item
#: doc/guix.texi:23197
#, no-wrap
msgid "@code{name} (default: @code{\"default\"})"
msgstr ""

#. type: table
#: doc/guix.texi:23202
msgid ""
"A name for this Varnish instance.  Varnish will create a directory in @file{/"
"var/varnish/} with this name and keep temporary files there.  If the name "
"starts with a forward slash, it is interpreted as an absolute directory name."
msgstr ""

#. type: table
#: doc/guix.texi:23205
msgid ""
"Pass the @code{-n} argument to other Varnish programs to connect to the "
"named instance, e.g.@: @command{varnishncsa -n default}."
msgstr ""

#. type: item
#: doc/guix.texi:23206
#, no-wrap
msgid "@code{backend} (default: @code{\"localhost:8080\"})"
msgstr ""

#. type: table
#: doc/guix.texi:23208
msgid "The backend to use.  This option has no effect if @code{vcl} is set."
msgstr ""

#. type: item
#: doc/guix.texi:23209
#, no-wrap
msgid "@code{vcl} (default: #f)"
msgstr ""

#. type: table
#: doc/guix.texi:23214
msgid ""
"The @dfn{VCL} (Varnish Configuration Language) program to run.  If this is "
"@code{#f}, Varnish will proxy @code{backend} using the default "
"configuration.  Otherwise this must be a file-like object with valid VCL "
"syntax."
msgstr ""

#. type: table
#: doc/guix.texi:23218
msgid ""
"For example, to mirror @url{https://www.gnu.org,www.gnu.org} with VCL you "
"can do something along these lines:"
msgstr ""

#. type: lisp
#: doc/guix.texi:23224
#, no-wrap
msgid ""
"(define %gnu-mirror\n"
"  (plain-file \"gnu.vcl\"\n"
"              \"vcl 4.1;\n"
"backend gnu @{ .host = \\\"www.gnu.org\\\"; @}\"))\n"
"\n"
msgstr ""

#. type: lisp
#: doc/guix.texi:23232
#, no-wrap
msgid ""
"(operating-system\n"
"  ;; @dots{}\n"
"  (services (cons (service varnish-service-type\n"
"                           (varnish-configuration\n"
"                            (listen '(\":80\"))\n"
"                            (vcl %gnu-mirror)))\n"
"                  %base-services)))\n"
msgstr ""

#. type: table
#: doc/guix.texi:23236
msgid ""
"The configuration of an already running Varnish instance can be inspected "
"and changed using the @command{varnishadm} program."
msgstr ""

#. type: table
#: doc/guix.texi:23240
msgid ""
"Consult the @url{https://varnish-cache.org/docs/,Varnish User Guide} and "
"@url{https://book.varnish-software.com/4.0/,Varnish Book} for comprehensive "
"documentation on Varnish and its configuration language."
msgstr ""

#. type: item
#: doc/guix.texi:23241
#, no-wrap
msgid "@code{listen} (default: @code{'(\"localhost:80\")})"
msgstr ""

#. type: table
#: doc/guix.texi:23243
msgid "List of addresses Varnish will listen on."
msgstr ""

#. type: item
#: doc/guix.texi:23244
#, no-wrap
msgid "@code{storage} (default: @code{'(\"malloc,128m\")})"
msgstr ""

#. type: table
#: doc/guix.texi:23246
msgid "List of storage backends that will be available in VCL."
msgstr ""

#. type: item
#: doc/guix.texi:23247
#, no-wrap
msgid "@code{parameters} (default: @code{'()})"
msgstr ""

#. type: table
#: doc/guix.texi:23249
msgid ""
"List of run-time parameters in the form @code{'((\"parameter\" . \"value"
"\"))}."
msgstr ""

#. type: table
#: doc/guix.texi:23252
msgid "Additional arguments to pass to the @command{varnishd} process."
msgstr ""

#. type: cindex
#: doc/guix.texi:23256 doc/guix.texi:23257
#, no-wrap
msgid "Patchwork"
msgstr ""

#. type: Plain text
#: doc/guix.texi:23260
msgid ""
"Patchwork is a patch tracking system.  It can collect patches sent to a "
"mailing list, and display them in a web interface."
msgstr ""

#. type: defvr
#: doc/guix.texi:23261
#, no-wrap
msgid "{Scheme Variable} patchwork-service-type"
msgstr ""

#. type: defvr
#: doc/guix.texi:23263
msgid "Service type for Patchwork."
msgstr ""

#. type: Plain text
#: doc/guix.texi:23267
msgid ""
"The following example is an example of a minimal service for Patchwork, for "
"the @code{patchwork.example.com} domain."
msgstr ""

#. type: lisp
#: doc/guix.texi:23287
#, no-wrap
msgid ""
"(service patchwork-service-type\n"
"         (patchwork-configuration\n"
"          (domain \"patchwork.example.com\")\n"
"          (settings-module\n"
"           (patchwork-settings-module\n"
"            (allowed-hosts (list domain))\n"
"            (default-from-email \"patchwork@@patchwork.example.com\")))\n"
"          (getmail-retriever-config\n"
"           (getmail-retriever-configuration\n"
"            (type \"SimpleIMAPSSLRetriever\")\n"
"            (server \"imap.example.com\")\n"
"            (port 993)\n"
"            (username \"patchwork\")\n"
"            (password-command\n"
"             (list (file-append coreutils \"/bin/cat\")\n"
"                   \"/etc/getmail-patchwork-imap-password\"))\n"
"            (extra-parameters\n"
"            '((mailboxes . (\"Patches\"))))))))\n"
"\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:23293
msgid ""
"There are three records for configuring the Patchwork service.  The "
"@code{<patchwork-configuration>} relates to the configuration for Patchwork "
"within the HTTPD service."
msgstr ""

#. type: Plain text
#: doc/guix.texi:23297
msgid ""
"The @code{settings-module} field within the @code{<patchwork-configuration>} "
"record can be populated with the @code{<patchwork-settings-module>} record, "
"which describes a settings module that is generated within the Guix store."
msgstr ""

#. type: Plain text
#: doc/guix.texi:23301
msgid ""
"For the @code{database-configuration} field within the @code{<patchwork-"
"settings-module>}, the @code{<patchwork-database-configuration>} must be "
"used."
msgstr ""

#. type: deftp
#: doc/guix.texi:23302
#, no-wrap
msgid "{Data Type} patchwork-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:23305
msgid ""
"Data type representing the Patchwork service configuration.  This type has "
"the following parameters:"
msgstr ""

#. type: item
#: doc/guix.texi:23307
#, no-wrap
msgid "@code{patchwork} (default: @code{patchwork})"
msgstr ""

#. type: table
#: doc/guix.texi:23309
msgid "The Patchwork package to use."
msgstr ""

#. type: code{#1}
#: doc/guix.texi:23310
#, no-wrap
msgid "domain"
msgstr ""

#. type: table
#: doc/guix.texi:23313
msgid ""
"The domain to use for Patchwork, this is used in the HTTPD service virtual "
"host."
msgstr ""

#. type: code{#1}
#: doc/guix.texi:23314
#, no-wrap
msgid "settings-module"
msgstr ""

#. type: table
#: doc/guix.texi:23320
msgid ""
"The settings module to use for Patchwork. As a Django application, Patchwork "
"is configured with a Python module containing the settings. This can either "
"be an instance of the @code{<patchwork-settings-module>} record, any other "
"record that represents the settings in the store, or a directory outside of "
"the store."
msgstr ""

#. type: item
#: doc/guix.texi:23321
#, no-wrap
msgid "@code{static-path}  (default: @code{\"/static/\"})"
msgstr ""

#. type: table
#: doc/guix.texi:23323
msgid "The path under which the HTTPD service should serve the static files."
msgstr ""

#. type: code{#1}
#: doc/guix.texi:23324
#, no-wrap
msgid "getmail-retriever-config"
msgstr ""

#. type: table
#: doc/guix.texi:23328
msgid ""
"The getmail-retriever-configuration record value to use with Patchwork. "
"Getmail will be configured with this value, the messages will be delivered "
"to Patchwork."
msgstr ""

#. type: deftp
#: doc/guix.texi:23332
#, no-wrap
msgid "{Data Type} patchwork-settings-module"
msgstr ""

#. type: deftp
#: doc/guix.texi:23337
msgid ""
"Data type representing a settings module for Patchwork.  Some of these "
"settings relate directly to Patchwork, but others relate to Django, the web "
"framework used by Patchwork, or the Django Rest Framework library.  This "
"type has the following parameters:"
msgstr ""

#. type: item
#: doc/guix.texi:23339
#, no-wrap
msgid "@code{database-configuration} (default: @code{(patchwork-database-configuration)})"
msgstr ""

#. type: table
#: doc/guix.texi:23342
msgid ""
"The database connection settings used for Patchwork.  See the "
"@code{<patchwork-database-configuration>} record type for more information."
msgstr ""

#. type: item
#: doc/guix.texi:23343
#, no-wrap
msgid "@code{secret-key-file} (default: @code{\"/etc/patchwork/django-secret-key\"})"
msgstr ""

#. type: table
#: doc/guix.texi:23346
msgid ""
"Patchwork, as a Django web application uses a secret key for "
"cryptographically signing values.  This file should contain a unique "
"unpredictable value."
msgstr ""

#. type: table
#: doc/guix.texi:23349
msgid ""
"If this file does not exist, it will be created and populated with a random "
"value by the patchwork-setup shepherd service."
msgstr ""

#. type: table
#: doc/guix.texi:23351
msgid "This setting relates to Django."
msgstr ""

#. type: code{#1}
#: doc/guix.texi:23352
#, no-wrap
msgid "allowed-hosts"
msgstr ""

#. type: table
#: doc/guix.texi:23355
msgid ""
"A list of valid hosts for this Patchwork service. This should at least "
"include the domain specified in the @code{<patchwork-configuration>} record."
msgstr ""

#. type: table
#: doc/guix.texi:23357 doc/guix.texi:23371 doc/guix.texi:23377
#: doc/guix.texi:23383
msgid "This is a Django setting."
msgstr ""

#. type: code{#1}
#: doc/guix.texi:23358
#, no-wrap
msgid "default-from-email"
msgstr ""

#. type: table
#: doc/guix.texi:23360
msgid "The email address from which Patchwork should send email by default."
msgstr ""

#. type: table
#: doc/guix.texi:23362 doc/guix.texi:23388 doc/guix.texi:23393
#: doc/guix.texi:23398
msgid "This is a Patchwork setting."
msgstr ""

#. type: item
#: doc/guix.texi:23363
#, no-wrap
msgid "@code{static-url} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:23366
msgid ""
"The URL to use when serving static assets. It can be part of a URL, or a "
"full URL, but must end in a @code{/}."
msgstr ""

#. type: table
#: doc/guix.texi:23369
msgid ""
"If the default value is used, the @code{static-path} value from the "
"@code{<patchwork-configuration>} record will be used."
msgstr ""

#. type: item
#: doc/guix.texi:23372
#, no-wrap
msgid "@code{admins} (default: @code{'()})"
msgstr ""

#. type: table
#: doc/guix.texi:23375
msgid ""
"Email addresses to send the details of errors that occur.  Each value should "
"be a list containing two elements, the name and then the email address."
msgstr ""

#. type: table
#: doc/guix.texi:23381
msgid ""
"Whether to run Patchwork in debug mode.  If set to @code{#t}, detailed error "
"messages will be shown."
msgstr ""

#. type: item
#: doc/guix.texi:23384
#, no-wrap
msgid "@code{enable-rest-api?} (default: @code{#t})"
msgstr ""

#. type: table
#: doc/guix.texi:23386
msgid "Whether to enable the Patchwork REST API."
msgstr ""

#. type: item
#: doc/guix.texi:23389
#, no-wrap
msgid "@code{enable-xmlrpc?} (default: @code{#t})"
msgstr ""

#. type: table
#: doc/guix.texi:23391
msgid "Whether to enable the XML RPC API."
msgstr ""

#. type: item
#: doc/guix.texi:23394
#, no-wrap
msgid "@code{force-https-links?} (default: @code{#t})"
msgstr ""

#. type: table
#: doc/guix.texi:23396
msgid "Whether to use HTTPS links on Patchwork pages."
msgstr ""

#. type: table
#: doc/guix.texi:23401
msgid "Extra code to place at the end of the Patchwork settings module."
msgstr ""

#. type: deftp
#: doc/guix.texi:23405
#, no-wrap
msgid "{Data Type} patchwork-database-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:23407
msgid "Data type representing the database configuration for Patchwork."
msgstr ""

#. type: item
#: doc/guix.texi:23409
#, no-wrap
msgid "@code{engine} (default: @code{\"django.db.backends.postgresql_psycopg2\"})"
msgstr ""

#. type: table
#: doc/guix.texi:23411
msgid "The database engine to use."
msgstr ""

#. type: item
#: doc/guix.texi:23412
#, no-wrap
msgid "@code{name} (default: @code{\"patchwork\"})"
msgstr ""

#. type: table
#: doc/guix.texi:23414
msgid "The name of the database to use."
msgstr ""

#. type: table
#: doc/guix.texi:23417
msgid "The user to connect to the database as."
msgstr ""

#. type: item
#: doc/guix.texi:23418
#, no-wrap
msgid "@code{password} (default: @code{\"\"})"
msgstr ""

#. type: table
#: doc/guix.texi:23420
msgid "The password to use when connecting to the database."
msgstr ""

#. type: item
#: doc/guix.texi:23421
#, no-wrap
msgid "@code{host} (default: @code{\"\"})"
msgstr ""

#. type: table
#: doc/guix.texi:23423
msgid "The host to make the database connection to."
msgstr ""

#. type: item
#: doc/guix.texi:23424
#, no-wrap
msgid "@code{port} (default: @code{\"\"})"
msgstr ""

#. type: table
#: doc/guix.texi:23426
msgid "The port on which to connect to the database."
msgstr ""

#. type: subsubheading
#: doc/guix.texi:23430
#, no-wrap
msgid "Mumi"
msgstr ""

#. type: cindex
#: doc/guix.texi:23432
#, no-wrap
msgid "Mumi, Debbugs Web interface"
msgstr ""

#. type: cindex
#: doc/guix.texi:23433
#, no-wrap
msgid "Debbugs, Mumi Web interface"
msgstr ""

#. type: Plain text
#: doc/guix.texi:23438
msgid ""
"@uref{https://git.elephly.net/gitweb.cgi?p=software/mumi.git, Mumi} is a Web "
"interface to the Debbugs bug tracker, by default for @uref{https://bugs.gnu."
"org, the GNU instance}.  Mumi is a Web server, but it also fetches and "
"indexes mail retrieved from Debbugs."
msgstr ""

#. type: defvr
#: doc/guix.texi:23439
#, no-wrap
msgid "{Scheme Variable} mumi-service-type"
msgstr ""

#. type: defvr
#: doc/guix.texi:23441
msgid "This is the service type for Mumi."
msgstr ""

#. type: deftp
#: doc/guix.texi:23443
#, no-wrap
msgid "{Data Type} mumi-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:23446
msgid ""
"Data type representing the Mumi service configuration.  This type has the "
"following fields:"
msgstr ""

#. type: item
#: doc/guix.texi:23448
#, no-wrap
msgid "@code{mumi} (default: @code{mumi})"
msgstr ""

#. type: table
#: doc/guix.texi:23450
msgid "The Mumi package to use."
msgstr ""

#. type: item
#: doc/guix.texi:23451
#, no-wrap
msgid "@code{mailer?} (default: @code{#true})"
msgstr ""

#. type: table
#: doc/guix.texi:23453
msgid "Whether to enable or disable the mailer component."
msgstr ""

#. type: code{#1}
#: doc/guix.texi:23454
#, no-wrap
msgid "mumi-configuration-sender"
msgstr ""

#. type: table
#: doc/guix.texi:23456
msgid "The email address used as the sender for comments."
msgstr ""

#. type: code{#1}
#: doc/guix.texi:23457
#, no-wrap
msgid "mumi-configuration-smtp"
msgstr ""

#. type: table
#: doc/guix.texi:23462
msgid ""
"A URI to configure the SMTP settings for Mailutils.  This could be something "
"like @code{sendmail:///path/to/bin/msmtp} or any other URI supported by "
"Mailutils.  @xref{SMTP Mailboxes, SMTP Mailboxes,, mailutils, GNU@tie{}"
"Mailutils}."
msgstr ""

#. type: subsubheading
#: doc/guix.texi:23467
#, no-wrap
msgid "FastCGI"
msgstr ""

#. type: cindex
#: doc/guix.texi:23468
#, no-wrap
msgid "fastcgi"
msgstr ""

#. type: cindex
#: doc/guix.texi:23469
#, no-wrap
msgid "fcgiwrap"
msgstr ""

#. type: Plain text
#: doc/guix.texi:23476
msgid ""
"FastCGI is an interface between the front-end and the back-end of a web "
"service.  It is a somewhat legacy facility; new web services should "
"generally just talk HTTP between the front-end and the back-end.  However "
"there are a number of back-end services such as PHP or the optimized HTTP "
"Git repository access that use FastCGI, so we have support for it in Guix."
msgstr ""

#. type: Plain text
#: doc/guix.texi:23483
msgid ""
"To use FastCGI, you configure the front-end web server (e.g., nginx) to "
"dispatch some subset of its requests to the fastcgi backend, which listens "
"on a local TCP or UNIX socket.  There is an intermediary @code{fcgiwrap} "
"program that sits between the actual backend process and the web server.  "
"The front-end indicates which backend program to run, passing that "
"information to the @code{fcgiwrap} process."
msgstr ""

#. type: defvr
#: doc/guix.texi:23484
#, no-wrap
msgid "{Scheme Variable} fcgiwrap-service-type"
msgstr ""

#. type: defvr
#: doc/guix.texi:23486
msgid "A service type for the @code{fcgiwrap} FastCGI proxy."
msgstr ""

#. type: deftp
#: doc/guix.texi:23488
#, no-wrap
msgid "{Data Type} fcgiwrap-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:23491
msgid ""
"Data type representing the configuration of the @code{fcgiwrap} service.  "
"This type has the following parameters:"
msgstr ""

#. type: item
#: doc/guix.texi:23492
#, no-wrap
msgid "@code{package} (default: @code{fcgiwrap})"
msgstr ""

#. type: table
#: doc/guix.texi:23494
msgid "The fcgiwrap package to use."
msgstr ""

#. type: item
#: doc/guix.texi:23495
#, no-wrap
msgid "@code{socket} (default: @code{tcp:127.0.0.1:9000})"
msgstr ""

#. type: table
#: doc/guix.texi:23501
msgid ""
"The socket on which the @code{fcgiwrap} process should listen, as a string.  "
"Valid @var{socket} values include @code{unix:@var{/path/to/unix/socket}}, "
"@code{tcp:@var{dot.ted.qu.ad}:@var{port}} and @code{tcp6:[@var{ipv6_addr}]:"
"port}."
msgstr ""

#. type: item
#: doc/guix.texi:23502
#, no-wrap
msgid "@code{user} (default: @code{fcgiwrap})"
msgstr ""

#. type: itemx
#: doc/guix.texi:23503
#, no-wrap
msgid "@code{group} (default: @code{fcgiwrap})"
msgstr ""

#. type: table
#: doc/guix.texi:23508
msgid ""
"The user and group names, as strings, under which to run the @code{fcgiwrap} "
"process.  The @code{fastcgi} service will ensure that if the user asks for "
"the specific user or group names @code{fcgiwrap} that the corresponding user "
"and/or group is present on the system."
msgstr ""

#. type: table
#: doc/guix.texi:23515
msgid ""
"It is possible to configure a FastCGI-backed web service to pass HTTP "
"authentication information from the front-end to the back-end, and to allow "
"@code{fcgiwrap} to run the back-end process as a corresponding local user.  "
"To enable this capability on the back-end, run @code{fcgiwrap} as the "
"@code{root} user and group.  Note that this capability also has to be "
"configured on the front-end as well."
msgstr ""

#. type: cindex
#: doc/guix.texi:23518
#, no-wrap
msgid "php-fpm"
msgstr ""

#. type: Plain text
#: doc/guix.texi:23521
msgid ""
"PHP-FPM (FastCGI Process Manager) is an alternative PHP FastCGI "
"implementation with some additional features useful for sites of any size."
msgstr ""

#. type: Plain text
#: doc/guix.texi:23523
msgid "These features include:"
msgstr ""

#. type: item
#: doc/guix.texi:23524
#, no-wrap
msgid "Adaptive process spawning"
msgstr ""

#. type: item
#: doc/guix.texi:23525
#, no-wrap
msgid "Basic statistics (similar to Apache's mod_status)"
msgstr ""

#. type: item
#: doc/guix.texi:23526
#, no-wrap
msgid "Advanced process management with graceful stop/start"
msgstr ""

#. type: item
#: doc/guix.texi:23527
#, no-wrap
msgid "Ability to start workers with different uid/gid/chroot/environment"
msgstr ""

#. type: itemize
#: doc/guix.texi:23529
msgid "and different php.ini (replaces safe_mode)"
msgstr ""

#. type: item
#: doc/guix.texi:23529
#, no-wrap
msgid "Stdout & stderr logging"
msgstr ""

#. type: item
#: doc/guix.texi:23530
#, no-wrap
msgid "Emergency restart in case of accidental opcode cache destruction"
msgstr ""

#. type: item
#: doc/guix.texi:23531
#, no-wrap
msgid "Accelerated upload support"
msgstr ""

#. type: item
#: doc/guix.texi:23532
#, no-wrap
msgid "Support for a \"slowlog\""
msgstr ""

#. type: item
#: doc/guix.texi:23533
#, no-wrap
msgid "Enhancements to FastCGI, such as fastcgi_finish_request() -"
msgstr ""

#. type: itemize
#: doc/guix.texi:23536
msgid ""
"a special function to finish request & flush all data while continuing to do "
"something time-consuming (video converting, stats processing, etc.)"
msgstr ""

#. type: Plain text
#: doc/guix.texi:23538
msgid "...@: and much more."
msgstr ""

#. type: defvr
#: doc/guix.texi:23539
#, no-wrap
msgid "{Scheme Variable} php-fpm-service-type"
msgstr ""

#. type: defvr
#: doc/guix.texi:23541
msgid "A Service type for @code{php-fpm}."
msgstr ""

#. type: deftp
#: doc/guix.texi:23543
#, no-wrap
msgid "{Data Type} php-fpm-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:23545
msgid "Data Type for php-fpm service configuration."
msgstr ""

#. type: item
#: doc/guix.texi:23546
#, no-wrap
msgid "@code{php} (default: @code{php})"
msgstr ""

#. type: table
#: doc/guix.texi:23548
msgid "The php package to use."
msgstr ""

#. type: item
#: doc/guix.texi:23548
#, no-wrap
msgid "@code{socket} (default: @code{(string-append \"/var/run/php\" (version-major (package-version php)) \"-fpm.sock\")})"
msgstr ""

#. type: table
#: doc/guix.texi:23550
msgid "The address on which to accept FastCGI requests.  Valid syntaxes are:"
msgstr ""

#. type: code{#1}
#: doc/guix.texi:23551
#, no-wrap
msgid "\"ip.add.re.ss:port\""
msgstr ""

#. type: table
#: doc/guix.texi:23553
msgid "Listen on a TCP socket to a specific address on a specific port."
msgstr ""

#. type: code{#1}
#: doc/guix.texi:23553
#, no-wrap
msgid "\"port\""
msgstr ""

#. type: table
#: doc/guix.texi:23555
msgid "Listen on a TCP socket to all addresses on a specific port."
msgstr ""

#. type: code{#1}
#: doc/guix.texi:23555
#, no-wrap
msgid "\"/path/to/unix/socket\""
msgstr ""

#. type: table
#: doc/guix.texi:23557
msgid "Listen on a unix socket."
msgstr ""

#. type: item
#: doc/guix.texi:23559
#, no-wrap
msgid "@code{user} (default: @code{php-fpm})"
msgstr ""

#. type: table
#: doc/guix.texi:23561
msgid "User who will own the php worker processes."
msgstr ""

#. type: item
#: doc/guix.texi:23561
#, no-wrap
msgid "@code{group} (default: @code{php-fpm})"
msgstr ""

#. type: table
#: doc/guix.texi:23563
msgid "Group of the worker processes."
msgstr ""

#. type: item
#: doc/guix.texi:23563
#, no-wrap
msgid "@code{socket-user} (default: @code{php-fpm})"
msgstr ""

#. type: table
#: doc/guix.texi:23565
msgid "User who can speak to the php-fpm socket."
msgstr ""

#. type: item
#: doc/guix.texi:23565
#, no-wrap
msgid "@code{socket-group} (default: @code{nginx})"
msgstr ""

#. type: table
#: doc/guix.texi:23567
msgid "Group that can speak to the php-fpm socket."
msgstr ""

#. type: item
#: doc/guix.texi:23567
#, no-wrap
msgid "@code{pid-file} (default: @code{(string-append \"/var/run/php\" (version-major (package-version php)) \"-fpm.pid\")})"
msgstr ""

#. type: table
#: doc/guix.texi:23570
msgid ""
"The process id of the php-fpm process is written to this file once the "
"service has started."
msgstr ""

#. type: item
#: doc/guix.texi:23570
#, no-wrap
msgid "@code{log-file} (default: @code{(string-append \"/var/log/php\" (version-major (package-version php)) \"-fpm.log\")})"
msgstr ""

#. type: table
#: doc/guix.texi:23572
msgid "Log for the php-fpm master process."
msgstr ""

#. type: item
#: doc/guix.texi:23572
#, no-wrap
msgid "@code{process-manager} (default: @code{(php-fpm-dynamic-process-manager-configuration)})"
msgstr ""

#. type: table
#: doc/guix.texi:23575
msgid "Detailed settings for the php-fpm process manager.  Must be one of:"
msgstr ""

#. type: code{#1}
#: doc/guix.texi:23576
#, no-wrap
msgid "<php-fpm-dynamic-process-manager-configuration>"
msgstr ""

#. type: code{#1}
#: doc/guix.texi:23577
#, no-wrap
msgid "<php-fpm-static-process-manager-configuration>"
msgstr ""

#. type: code{#1}
#: doc/guix.texi:23578
#, no-wrap
msgid "<php-fpm-on-demand-process-manager-configuration>"
msgstr ""

#. type: item
#: doc/guix.texi:23580
#, no-wrap
msgid "@code{display-errors} (default @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:23585
msgid ""
"Determines whether php errors and warning should be sent to clients and "
"displayed in their browsers.  This is useful for local php development, but "
"a security risk for public sites, as error messages can reveal passwords and "
"personal data."
msgstr ""

#. type: item
#: doc/guix.texi:23585
#, no-wrap
msgid "@code{timezone} (default @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:23587
msgid "Specifies @code{php_admin_value[date.timezone]} parameter."
msgstr ""

#. type: item
#: doc/guix.texi:23587
#, no-wrap
msgid "@code{workers-logfile} (default @code{(string-append \"/var/log/php\" (version-major (package-version php)) \"-fpm.www.log\")})"
msgstr ""

#. type: table
#: doc/guix.texi:23590
msgid ""
"This file will log the @code{stderr} outputs of php worker processes.  Can "
"be set to @code{#f} to disable logging."
msgstr ""

#. type: item
#: doc/guix.texi:23590
#, no-wrap
msgid "@code{file} (default @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:23593
msgid ""
"An optional override of the whole configuration.  You can use the "
"@code{mixed-text-file} function or an absolute filepath for it."
msgstr ""

#. type: item
#: doc/guix.texi:23593
#, no-wrap
msgid "@code{php-ini-file} (default @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:23597
msgid ""
"An optional override of the default php settings.  It may be any ``file-"
"like'' object (@pxref{G-Expressions, file-like objects}).  You can use the "
"@code{mixed-text-file} function or an absolute filepath for it."
msgstr ""

#. type: table
#: doc/guix.texi:23601
msgid ""
"For local development it is useful to set a higher timeout and memory limit "
"for spawned php processes.  This be accomplished with the following "
"operating system configuration snippet:"
msgstr ""

#. type: lisp
#: doc/guix.texi:23606
#, no-wrap
msgid ""
"(define %local-php-ini\n"
"  (plain-file \"php.ini\"\n"
"              \"memory_limit = 2G\n"
"max_execution_time = 1800\"))\n"
"\n"
msgstr ""

#. type: lisp
#: doc/guix.texi:23613
#, no-wrap
msgid ""
"(operating-system\n"
"  ;; @dots{}\n"
"  (services (cons (service php-fpm-service-type\n"
"                           (php-fpm-configuration\n"
"                            (php-ini-file %local-php-ini)))\n"
"                  %base-services)))\n"
msgstr ""

#. type: table
#: doc/guix.texi:23618
msgid ""
"Consult the @url{https://www.php.net/manual/en/ini.core.php,core php.ini "
"directives} for comprehensive documentation on the acceptable @file{php.ini} "
"directives."
msgstr ""

#. type: deftp
#: doc/guix.texi:23621
#, no-wrap
msgid "{Data type} php-fpm-dynamic-process-manager-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:23625
msgid ""
"Data Type for the @code{dynamic} php-fpm process manager.  With the "
"@code{dynamic} process manager, spare worker processes are kept around based "
"on it's configured limits."
msgstr ""

#. type: item
#: doc/guix.texi:23626 doc/guix.texi:23642 doc/guix.texi:23652
#, no-wrap
msgid "@code{max-children} (default: @code{5})"
msgstr ""

#. type: table
#: doc/guix.texi:23628 doc/guix.texi:23644 doc/guix.texi:23654
msgid "Maximum of worker processes."
msgstr ""

#. type: item
#: doc/guix.texi:23628
#, no-wrap
msgid "@code{start-servers} (default: @code{2})"
msgstr ""

#. type: table
#: doc/guix.texi:23630
msgid "How many worker processes should be started on start-up."
msgstr ""

#. type: item
#: doc/guix.texi:23630
#, no-wrap
msgid "@code{min-spare-servers} (default: @code{1})"
msgstr ""

#. type: table
#: doc/guix.texi:23632
msgid "How many spare worker processes should be kept around at minimum."
msgstr ""

#. type: item
#: doc/guix.texi:23632
#, no-wrap
msgid "@code{max-spare-servers} (default: @code{3})"
msgstr ""

#. type: table
#: doc/guix.texi:23634
msgid "How many spare worker processes should be kept around at maximum."
msgstr ""

#. type: deftp
#: doc/guix.texi:23637
#, no-wrap
msgid "{Data type} php-fpm-static-process-manager-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:23641
msgid ""
"Data Type for the @code{static} php-fpm process manager.  With the "
"@code{static} process manager, an unchanging number of worker processes are "
"created."
msgstr ""

#. type: deftp
#: doc/guix.texi:23647
#, no-wrap
msgid "{Data type} php-fpm-on-demand-process-manager-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:23651
msgid ""
"Data Type for the @code{on-demand} php-fpm process manager.  With the "
"@code{on-demand} process manager, worker processes are only created as "
"requests arrive."
msgstr ""

#. type: item
#: doc/guix.texi:23654
#, no-wrap
msgid "@code{process-idle-timeout} (default: @code{10})"
msgstr ""

#. type: table
#: doc/guix.texi:23656
msgid "The time in seconds after which a process with no requests is killed."
msgstr ""

#. type: deffn
#: doc/guix.texi:23660
#, no-wrap
msgid "{Scheme Procedure} nginx-php-location @"
msgstr ""

#. type: deffn
#: doc/guix.texi:23666
msgid ""
"[#:nginx-package nginx] @ [socket (string-append \"/var/run/php\" @ (version-"
"major (package-version php)) @ \"-fpm.sock\")] A helper function to quickly "
"add php to an @code{nginx-server-configuration}."
msgstr ""

#. type: Plain text
#: doc/guix.texi:23669
msgid "A simple services setup for nginx with php can look like this:"
msgstr ""

#. type: lisp
#: doc/guix.texi:23682
#, no-wrap
msgid ""
"(services (cons* (service dhcp-client-service-type)\n"
"                 (service php-fpm-service-type)\n"
"                 (service nginx-service-type\n"
"                          (nginx-server-configuration\n"
"                           (server-name '(\"example.com\"))\n"
"                           (root \"/srv/http/\")\n"
"                           (locations\n"
"                            (list (nginx-php-location)))\n"
"                           (listen '(\"80\"))\n"
"                           (ssl-certificate #f)\n"
"                           (ssl-certificate-key #f)))\n"
"                 %base-services))\n"
msgstr ""

#. type: cindex
#: doc/guix.texi:23684
#, no-wrap
msgid "cat-avatar-generator"
msgstr ""

#. type: Plain text
#: doc/guix.texi:23688
msgid ""
"The cat avatar generator is a simple service to demonstrate the use of php-"
"fpm in @code{Nginx}.  It is used to generate cat avatar from a seed, for "
"instance the hash of a user's email address."
msgstr ""

#. type: deffn
#: doc/guix.texi:23689
#, no-wrap
msgid "{Scheme Procedure} cat-avatar-generator-service @"
msgstr ""

#. type: deffn
#: doc/guix.texi:23697
msgid ""
"[#:cache-dir \"/var/cache/cat-avatar-generator\"] @ [#:package cat-avatar-"
"generator] @ [#:configuration (nginx-server-configuration)] Returns an nginx-"
"server-configuration that inherits @code{configuration}.  It extends the "
"nginx configuration to add a server block that serves @code{package}, a "
"version of cat-avatar-generator.  During execution, cat-avatar-generator "
"will be able to use @code{cache-dir} as its cache directory."
msgstr ""

#. type: Plain text
#: doc/guix.texi:23700
msgid "A simple setup for cat-avatar-generator can look like this:"
msgstr ""

#. type: lisp
#: doc/guix.texi:23707
#, no-wrap
msgid ""
"(services (cons* (cat-avatar-generator-service\n"
"                  #:configuration\n"
"                  (nginx-server-configuration\n"
"                    (server-name '(\"example.com\"))))\n"
"                 ...\n"
"                 %base-services))\n"
msgstr ""

#. type: subsubheading
#: doc/guix.texi:23709
#, no-wrap
msgid "Hpcguix-web"
msgstr ""

#. type: cindex
#: doc/guix.texi:23711
#, no-wrap
msgid "hpcguix-web"
msgstr ""

#. type: Plain text
#: doc/guix.texi:23716
msgid ""
"The @uref{https://github.com/UMCUGenetics/hpcguix-web/, hpcguix-web} program "
"is a customizable web interface to browse Guix packages, initially designed "
"for users of high-performance computing (HPC)  clusters."
msgstr ""

#. type: defvr
#: doc/guix.texi:23717
#, no-wrap
msgid "{Scheme Variable} hpcguix-web-service-type"
msgstr ""

#. type: defvr
#: doc/guix.texi:23719
msgid "The service type for @code{hpcguix-web}."
msgstr ""

#. type: deftp
#: doc/guix.texi:23721
#, no-wrap
msgid "{Data Type} hpcguix-web-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:23723
msgid "Data type for the hpcguix-web service configuration."
msgstr ""

#. type: code{#1}
#: doc/guix.texi:23725
#, no-wrap
msgid "specs"
msgstr ""

#. type: table
#: doc/guix.texi:23728
msgid ""
"A gexp (@pxref{G-Expressions}) specifying the hpcguix-web service "
"configuration.  The main items available in this spec are:"
msgstr ""

#. type: item
#: doc/guix.texi:23730
#, no-wrap
msgid "@code{title-prefix} (default: @code{\"hpcguix | \"})"
msgstr ""

#. type: table
#: doc/guix.texi:23732
msgid "The page title prefix."
msgstr ""

#. type: item
#: doc/guix.texi:23733
#, no-wrap
msgid "@code{guix-command} (default: @code{\"guix\"})"
msgstr ""

#. type: table
#: doc/guix.texi:23735
msgid "The @command{guix} command."
msgstr ""

#. type: item
#: doc/guix.texi:23736
#, no-wrap
msgid "@code{package-filter-proc} (default: @code{(const #t)})"
msgstr ""

#. type: table
#: doc/guix.texi:23738
msgid "A procedure specifying how to filter packages that are displayed."
msgstr ""

#. type: item
#: doc/guix.texi:23739
#, no-wrap
msgid "@code{package-page-extension-proc} (default: @code{(const '())})"
msgstr ""

#. type: table
#: doc/guix.texi:23741
msgid "Extension package for @code{hpcguix-web}."
msgstr ""

#. type: item
#: doc/guix.texi:23742
#, no-wrap
msgid "@code{menu} (default: @code{'()})"
msgstr ""

#. type: table
#: doc/guix.texi:23744
msgid "Additional entry in page @code{menu}."
msgstr ""

#. type: item
#: doc/guix.texi:23745
#, no-wrap
msgid "@code{channels} (default: @code{%default-channels})"
msgstr ""

#. type: table
#: doc/guix.texi:23747
msgid ""
"List of channels from which the package list is built (@pxref{Channels})."
msgstr ""

#. type: item
#: doc/guix.texi:23748
#, no-wrap
msgid "@code{package-list-expiration} (default: @code{(* 12 3600)})"
msgstr ""

#. type: table
#: doc/guix.texi:23751
msgid ""
"The expiration time, in seconds, after which the package list is rebuilt "
"from the latest instances of the given channels."
msgstr ""

#. type: table
#: doc/guix.texi:23756
msgid ""
"See the hpcguix-web repository for a @uref{https://github.com/UMCUGenetics/"
"hpcguix-web/blob/master/hpcweb-configuration.scm, complete example}."
msgstr ""

#. type: item
#: doc/guix.texi:23757
#, no-wrap
msgid "@code{package} (default: @code{hpcguix-web})"
msgstr ""

#. type: table
#: doc/guix.texi:23759
msgid "The hpcguix-web package to use."
msgstr ""

#. type: Plain text
#: doc/guix.texi:23763
msgid "A typical hpcguix-web service declaration looks like this:"
msgstr ""

#. type: lisp
#: doc/guix.texi:23772
#, no-wrap
msgid ""
"(service hpcguix-web-service-type\n"
"         (hpcguix-web-configuration\n"
"          (specs\n"
"           #~(define site-config\n"
"               (hpcweb-configuration\n"
"                (title-prefix \"Guix-HPC - \")\n"
"                (menu '((\"/about\" \"ABOUT\"))))))))\n"
msgstr ""

#. type: quotation
#: doc/guix.texi:23779
msgid ""
"The hpcguix-web service periodically updates the package list it publishes "
"by pulling channels from Git.  To that end, it needs to access X.509 "
"certificates so that it can authenticate Git servers when communicating over "
"HTTPS, and it assumes that @file{/etc/ssl/certs} contains those certificates."
msgstr ""

#. type: quotation
#: doc/guix.texi:23783
msgid ""
"Thus, make sure to add @code{nss-certs} or another certificate package to "
"the @code{packages} field of your configuration.  @ref{X.509 Certificates}, "
"for more information on X.509 certificates."
msgstr ""

#. type: cindex
#: doc/guix.texi:23785 doc/guix.texi:23787
#, no-wrap
msgid "gmnisrv"
msgstr ""

#. type: Plain text
#: doc/guix.texi:23790
msgid ""
"The @uref{https://git.sr.ht/~sircmpwn/gmnisrv, gmnisrv} program is a simple "
"@uref{https://gemini.circumlunar.space/, Gemini} protocol server."
msgstr ""

#. type: deffn
#: doc/guix.texi:23791
#, no-wrap
msgid "{Scheme Variable} gmnisrv-service-type"
msgstr ""

#. type: deffn
#: doc/guix.texi:23794
msgid ""
"This is the type of the gmnisrv service, whose value should be a "
"@code{gmnisrv-configuration} object, as in this example:"
msgstr ""

#. type: lisp
#: doc/guix.texi:23799
#, no-wrap
msgid ""
"(service gmnisrv-service-type\n"
"         (gmnisrv-configuration\n"
"           (config-file (local-file \"./my-gmnisrv.ini\"))))\n"
msgstr ""

#. type: deftp
#: doc/guix.texi:23802
#, no-wrap
msgid "{Data Type} gmnisrv-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:23804
msgid "Data type representing the configuration of gmnisrv."
msgstr ""

#. type: item
#: doc/guix.texi:23806
#, no-wrap
msgid "@code{package} (default: @var{gmnisrv})"
msgstr ""

#. type: table
#: doc/guix.texi:23808
msgid "Package object of the gmnisrv server."
msgstr ""

#. type: item
#: doc/guix.texi:23809
#, no-wrap
msgid "@code{config-file} (default: @code{%default-gmnisrv-config-file})"
msgstr ""

#. type: table
#: doc/guix.texi:23815
msgid ""
"File-like object of the gmnisrv configuration file to use.  The default "
"configuration listens on port 1965 and serves files from @file{/srv/"
"gemini}.  Certificates are stored in @file{/var/lib/gemini/certs}.  For more "
"information, run @command{man gmnisrv} and @command{man gmnisrv.ini}."
msgstr ""

#. type: cindex
#: doc/guix.texi:23822
#, no-wrap
msgid "Web"
msgstr ""

#. type: cindex
#: doc/guix.texi:23823
#, no-wrap
msgid "HTTP, HTTPS"
msgstr ""

#. type: cindex
#: doc/guix.texi:23824
#, no-wrap
msgid "Let's Encrypt"
msgstr ""

#. type: cindex
#: doc/guix.texi:23825
#, no-wrap
msgid "TLS certificates"
msgstr ""

#. type: Plain text
#: doc/guix.texi:23832
msgid ""
"The @code{(gnu services certbot)} module provides a service to automatically "
"obtain a valid TLS certificate from the Let's Encrypt certificate "
"authority.  These certificates can then be used to serve content securely "
"over HTTPS or other TLS-based protocols, with the knowledge that the client "
"will be able to verify the server's authenticity."
msgstr ""

#. type: Plain text
#: doc/guix.texi:23844
msgid ""
"@url{https://letsencrypt.org/, Let's Encrypt} provides the @code{certbot} "
"tool to automate the certification process.  This tool first securely "
"generates a key on the server.  It then makes a request to the Let's Encrypt "
"certificate authority (CA) to sign the key.  The CA checks that the request "
"originates from the host in question by using a challenge-response protocol, "
"requiring the server to provide its response over HTTP.  If that protocol "
"completes successfully, the CA signs the key, resulting in a certificate.  "
"That certificate is valid for a limited period of time, and therefore to "
"continue to provide TLS services, the server needs to periodically ask the "
"CA to renew its signature."
msgstr ""

#. type: Plain text
#: doc/guix.texi:23851
msgid ""
"The certbot service automates this process: the initial key generation, the "
"initial certification request to the Let's Encrypt service, the web server "
"challenge/response integration, writing the certificate to disk, the "
"automated periodic renewals, and the deployment tasks associated with the "
"renewal (e.g.@: reloading services, copying keys with different permissions)."
msgstr ""

#. type: Plain text
#: doc/guix.texi:23857
msgid ""
"Certbot is run twice a day, at a random minute within the hour.  It won't do "
"anything until your certificates are due for renewal or revoked, but running "
"it regularly would give your service a chance of staying online in case a "
"Let's Encrypt-initiated revocation happened for some reason."
msgstr ""

#. type: Plain text
#: doc/guix.texi:23861
msgid ""
"By using this service, you agree to the ACME Subscriber Agreement, which can "
"be found there: @url{https://acme-v01.api.letsencrypt.org/directory}."
msgstr ""

#. type: defvr
#: doc/guix.texi:23862
#, no-wrap
msgid "{Scheme Variable} certbot-service-type"
msgstr ""

#. type: defvr
#: doc/guix.texi:23865
msgid ""
"A service type for the @code{certbot} Let's Encrypt client.  Its value must "
"be a @code{certbot-configuration} record as in this example:"
msgstr ""

#. type: lisp
#: doc/guix.texi:23872
#, no-wrap
msgid ""
"(define %nginx-deploy-hook\n"
"  (program-file\n"
"   \"nginx-deploy-hook\"\n"
"   #~(let ((pid (call-with-input-file \"/var/run/nginx/pid\" read)))\n"
"       (kill pid SIGHUP))))\n"
"\n"
msgstr ""

#. type: lisp
#: doc/guix.texi:23883
#, no-wrap
msgid ""
"(service certbot-service-type\n"
"         (certbot-configuration\n"
"          (email \"foo@@example.net\")\n"
"          (certificates\n"
"           (list\n"
"            (certificate-configuration\n"
"             (domains '(\"example.net\" \"www.example.net\"))\n"
"             (deploy-hook %nginx-deploy-hook))\n"
"            (certificate-configuration\n"
"             (domains '(\"bar.example.net\")))))))\n"
msgstr ""

#. type: defvr
#: doc/guix.texi:23886
msgid "See below for details about @code{certbot-configuration}."
msgstr ""

#. type: deftp
#: doc/guix.texi:23888
#, no-wrap
msgid "{Data Type} certbot-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:23891
msgid ""
"Data type representing the configuration of the @code{certbot} service.  "
"This type has the following parameters:"
msgstr ""

#. type: item
#: doc/guix.texi:23893
#, no-wrap
msgid "@code{package} (default: @code{certbot})"
msgstr ""

#. type: table
#: doc/guix.texi:23895
msgid "The certbot package to use."
msgstr ""

#. type: item
#: doc/guix.texi:23896
#, no-wrap
msgid "@code{webroot} (default: @code{/var/www})"
msgstr ""

#. type: table
#: doc/guix.texi:23899
msgid ""
"The directory from which to serve the Let's Encrypt challenge/response files."
msgstr ""

#. type: item
#: doc/guix.texi:23900
#, no-wrap
msgid "@code{certificates} (default: @code{()})"
msgstr ""

#. type: table
#: doc/guix.texi:23904
msgid ""
"A list of @code{certificates-configuration}s for which to generate "
"certificates and request signatures.  Each certificate has a @code{name} and "
"several @code{domains}."
msgstr ""

#. type: item
#: doc/guix.texi:23905
#, no-wrap
msgid "@code{email} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:23909
msgid ""
"Optional email address used for registration and recovery contact.  Setting "
"this is encouraged as it allows you to receive important notifications about "
"the account and issued certificates."
msgstr ""

#. type: item
#: doc/guix.texi:23910
#, no-wrap
msgid "@code{server} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:23913
msgid ""
"Optional URL of ACME server.  Setting this overrides certbot's default, "
"which is the Let's Encrypt server."
msgstr ""

#. type: item
#: doc/guix.texi:23914
#, no-wrap
msgid "@code{rsa-key-size} (default: @code{2048})"
msgstr ""

#. type: table
#: doc/guix.texi:23916
msgid "Size of the RSA key."
msgstr ""

#. type: item
#: doc/guix.texi:23917
#, no-wrap
msgid "@code{default-location} (default: @i{see below})"
msgstr ""

#. type: table
#: doc/guix.texi:23926
msgid ""
"The default @code{nginx-location-configuration}.  Because @code{certbot} "
"needs to be able to serve challenges and responses, it needs to be able to "
"run a web server.  It does so by extending the @code{nginx} web service with "
"an @code{nginx-server-configuration} listening on the @var{domains} on port "
"80, and which has a @code{nginx-location-configuration} for the @code{/.well-"
"known/} URI path subspace used by Let's Encrypt.  @xref{Web Services}, for "
"more on these nginx configuration data types."
msgstr ""

#. type: table
#: doc/guix.texi:23930
msgid ""
"Requests to other URL paths will be matched by the @code{default-location}, "
"which if present is added to all @code{nginx-server-configuration}s."
msgstr ""

#. type: table
#: doc/guix.texi:23934
msgid ""
"By default, the @code{default-location} will issue a redirect from "
"@code{http://@var{domain}/...} to @code{https://@var{domain}/...}, leaving "
"you to define what to serve on your site via @code{https}."
msgstr ""

#. type: table
#: doc/guix.texi:23936
msgid "Pass @code{#f} to not issue a default location."
msgstr ""

#. type: deftp
#: doc/guix.texi:23939
#, no-wrap
msgid "{Data Type} certificate-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:23942
msgid ""
"Data type representing the configuration of a certificate.  This type has "
"the following parameters:"
msgstr ""

#. type: item
#: doc/guix.texi:23944
#, no-wrap
msgid "@code{name} (default: @i{see below})"
msgstr ""

#. type: table
#: doc/guix.texi:23948
msgid ""
"This name is used by Certbot for housekeeping and in file paths; it doesn't "
"affect the content of the certificate itself.  To see certificate names, run "
"@code{certbot certificates}."
msgstr ""

#. type: table
#: doc/guix.texi:23950
msgid "Its default is the first provided domain."
msgstr ""

#. type: item
#: doc/guix.texi:23951
#, no-wrap
msgid "@code{domains} (default: @code{()})"
msgstr ""

#. type: table
#: doc/guix.texi:23954
msgid ""
"The first domain provided will be the subject CN of the certificate, and all "
"domains will be Subject Alternative Names on the certificate."
msgstr ""

#. type: item
#: doc/guix.texi:23955
#, no-wrap
msgid "@code{challenge} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:23962
msgid ""
"The challenge type that has to be run by certbot.  If @code{#f} is "
"specified, default to the HTTP challenge.  If a value is specified, defaults "
"to the manual plugin (see @code{authentication-hook}, @code{cleanup-hook} "
"and the documentation at @url{https://certbot.eff.org/docs/using."
"html#hooks}), and gives Let's Encrypt permission to log the public IP "
"address of the requesting machine."
msgstr ""

#. type: item
#: doc/guix.texi:23963
#, no-wrap
msgid "@code{authentication-hook} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:23969
msgid ""
"Command to be run in a shell once for each certificate challenge to be "
"answered.  For this command, the shell variable @code{$CERTBOT_DOMAIN} will "
"contain the domain being authenticated, @code{$CERTBOT_VALIDATION} contains "
"the validation string and @code{$CERTBOT_TOKEN} contains the file name of "
"the resource requested when performing an HTTP-01 challenge."
msgstr ""

#. type: item
#: doc/guix.texi:23970
#, no-wrap
msgid "@code{cleanup-hook} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:23976
msgid ""
"Command to be run in a shell once for each certificate challenge that have "
"been answered by the @code{auth-hook}.  For this command, the shell "
"variables available in the @code{auth-hook} script are still available, and "
"additionally @code{$CERTBOT_AUTH_OUTPUT} will contain the standard output of "
"the @code{auth-hook} script."
msgstr ""

#. type: item
#: doc/guix.texi:23977
#, no-wrap
msgid "@code{deploy-hook} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:23985
msgid ""
"Command to be run in a shell once for each successfully issued certificate.  "
"For this command, the shell variable @code{$RENEWED_LINEAGE} will point to "
"the config live subdirectory (for example, @samp{\"/etc/letsencrypt/live/"
"example.com\"}) containing the new certificates and keys; the shell variable "
"@code{$RENEWED_DOMAINS} will contain a space-delimited list of renewed "
"certificate domains (for example, @samp{\"example.com www.example.com\"}."
msgstr ""

#. type: Plain text
#: doc/guix.texi:23992
msgid ""
"For each @code{certificate-configuration}, the certificate is saved to "
"@code{/etc/letsencrypt/live/@var{name}/fullchain.pem} and the key is saved "
"to @code{/etc/letsencrypt/live/@var{name}/privkey.pem}."
msgstr ""

#. type: cindex
#: doc/guix.texi:23994
#, no-wrap
msgid "DNS (domain name system)"
msgstr ""

#. type: cindex
#: doc/guix.texi:23995
#, no-wrap
msgid "domain name system (DNS)"
msgstr ""

#. type: Plain text
#: doc/guix.texi:24003
msgid ""
"The @code{(gnu services dns)} module provides services related to the "
"@dfn{domain name system} (DNS).  It provides a server service for hosting an "
"@emph{authoritative} DNS server for multiple zones, slave or master.  This "
"service uses @uref{https://www.knot-dns.cz/, Knot DNS}.  And also a caching "
"and forwarding DNS server for the LAN, which uses @uref{http://www."
"thekelleys.org.uk/dnsmasq/doc.html, dnsmasq}."
msgstr ""

#. type: subsubheading
#: doc/guix.texi:24004
#, no-wrap
msgid "Knot Service"
msgstr ""

#. type: Plain text
#: doc/guix.texi:24008
msgid ""
"An example configuration of an authoritative server for two zones, one "
"master and one slave, is:"
msgstr ""

#. type: lisp
#: doc/guix.texi:24015
#, no-wrap
msgid ""
"(define-zone-entries example.org.zone\n"
";; Name TTL Class Type Data\n"
"  (\"@@\"  \"\"  \"IN\"  \"A\"  \"127.0.0.1\")\n"
"  (\"@@\"  \"\"  \"IN\"  \"NS\" \"ns\")\n"
"  (\"ns\" \"\"  \"IN\"  \"A\"  \"127.0.0.1\"))\n"
"\n"
msgstr ""

#. type: lisp
#: doc/guix.texi:24022
#, no-wrap
msgid ""
"(define master-zone\n"
"  (knot-zone-configuration\n"
"    (domain \"example.org\")\n"
"    (zone (zone-file\n"
"            (origin \"example.org\")\n"
"            (entries example.org.zone)))))\n"
"\n"
msgstr ""

#. type: lisp
#: doc/guix.texi:24028
#, no-wrap
msgid ""
"(define slave-zone\n"
"  (knot-zone-configuration\n"
"    (domain \"plop.org\")\n"
"    (dnssec-policy \"default\")\n"
"    (master (list \"plop-master\"))))\n"
"\n"
msgstr ""

#. type: lisp
#: doc/guix.texi:24033
#, no-wrap
msgid ""
"(define plop-master\n"
"  (knot-remote-configuration\n"
"    (id \"plop-master\")\n"
"    (address (list \"208.76.58.171\"))))\n"
"\n"
msgstr ""

#. type: lisp
#: doc/guix.texi:24042
#, no-wrap
msgid ""
"(operating-system\n"
"  ;; ...\n"
"  (services (cons* (service knot-service-type\n"
"                     (knot-configuration\n"
"                       (remotes (list plop-master))\n"
"                       (zones (list master-zone slave-zone))))\n"
"                   ;; ...\n"
"                   %base-services)))\n"
msgstr ""

#. type: deffn
#: doc/guix.texi:24044
#, no-wrap
msgid "{Scheme Variable} knot-service-type"
msgstr ""

#. type: deffn
#: doc/guix.texi:24046
msgid "This is the type for the Knot DNS server."
msgstr ""

#. type: deffn
#: doc/guix.texi:24054
msgid ""
"Knot DNS is an authoritative DNS server, meaning that it can serve multiple "
"zones, that is to say domain names you would buy from a registrar.  This "
"server is not a resolver, meaning that it can only resolve names for which "
"it is authoritative.  This server can be configured to serve zones as a "
"master server or a slave server as a per-zone basis.  Slave zones will get "
"their data from masters, and will serve it as an authoritative server.  From "
"the point of view of a resolver, there is no difference between master and "
"slave."
msgstr ""

#. type: deffn
#: doc/guix.texi:24056
msgid "The following data types are used to configure the Knot DNS server:"
msgstr ""

#. type: deftp
#: doc/guix.texi:24058
#, no-wrap
msgid "{Data Type} knot-key-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:24061
msgid "Data type representing a key.  This type has the following parameters:"
msgstr ""

#. type: item
#: doc/guix.texi:24063 doc/guix.texi:24083 doc/guix.texi:24198
#: doc/guix.texi:24224 doc/guix.texi:24259
#, no-wrap
msgid "@code{id} (default: @code{\"\"})"
msgstr ""

#. type: table
#: doc/guix.texi:24066 doc/guix.texi:24086
msgid ""
"An identifier for other configuration fields to refer to this key. IDs must "
"be unique and must not be empty."
msgstr ""

#. type: item
#: doc/guix.texi:24067
#, no-wrap
msgid "@code{algorithm} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:24071
msgid ""
"The algorithm to use.  Choose between @code{#f}, @code{'hmac-md5}, "
"@code{'hmac-sha1}, @code{'hmac-sha224}, @code{'hmac-sha256}, @code{'hmac-"
"sha384} and @code{'hmac-sha512}."
msgstr ""

#. type: item
#: doc/guix.texi:24072
#, no-wrap
msgid "@code{secret} (default: @code{\"\"})"
msgstr ""

#. type: table
#: doc/guix.texi:24074
msgid "The secret key itself."
msgstr ""

#. type: deftp
#: doc/guix.texi:24078
#, no-wrap
msgid "{Data Type} knot-acl-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:24081
msgid ""
"Data type representing an Access Control List (ACL) configuration.  This "
"type has the following parameters:"
msgstr ""

#. type: item
#: doc/guix.texi:24087 doc/guix.texi:24202
#, no-wrap
msgid "@code{address} (default: @code{'()})"
msgstr ""

#. type: table
#: doc/guix.texi:24091
msgid ""
"An ordered list of IP addresses, network subnets, or network ranges "
"represented with strings.  The query must match one of them.  Empty value "
"means that address match is not required."
msgstr ""

#. type: item
#: doc/guix.texi:24092
#, no-wrap
msgid "@code{key} (default: @code{'()})"
msgstr ""

#. type: table
#: doc/guix.texi:24096
msgid ""
"An ordered list of references to keys represented with strings.  The string "
"must match a key ID defined in a @code{knot-key-configuration}.  No key "
"means that a key is not require to match that ACL."
msgstr ""

#. type: item
#: doc/guix.texi:24097
#, no-wrap
msgid "@code{action} (default: @code{'()})"
msgstr ""

#. type: table
#: doc/guix.texi:24101
msgid ""
"An ordered list of actions that are permitted or forbidden by this ACL.  "
"Possible values are lists of zero or more elements from @code{'transfer}, "
"@code{'notify} and @code{'update}."
msgstr ""

#. type: item
#: doc/guix.texi:24102
#, no-wrap
msgid "@code{deny?} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:24105
msgid ""
"When true, the ACL defines restrictions.  Listed actions are forbidden.  "
"When false, listed actions are allowed."
msgstr ""

#. type: deftp
#: doc/guix.texi:24109
#, no-wrap
msgid "{Data Type} zone-entry"
msgstr ""

#. type: deftp
#: doc/guix.texi:24112
msgid ""
"Data type representing a record entry in a zone file.  This type has the "
"following parameters:"
msgstr ""

#. type: item
#: doc/guix.texi:24114
#, no-wrap
msgid "@code{name} (default: @code{\"@@\"})"
msgstr ""

#. type: table
#: doc/guix.texi:24120
msgid ""
"The name of the record.  @code{\"@@\"} refers to the origin of the zone.  "
"Names are relative to the origin of the zone.  For example, in the "
"@code{example.org} zone, @code{\"ns.example.org\"} actually refers to "
"@code{ns.example.org.example.org}.  Names ending with a dot are absolute, "
"which means that @code{\"ns.example.org.\"} refers to @code{ns.example.org}."
msgstr ""

#. type: item
#: doc/guix.texi:24121
#, no-wrap
msgid "@code{ttl} (default: @code{\"\"})"
msgstr ""

#. type: table
#: doc/guix.texi:24123
msgid ""
"The Time-To-Live (TTL) of this record.  If not set, the default TTL is used."
msgstr ""

#. type: item
#: doc/guix.texi:24124
#, no-wrap
msgid "@code{class} (default: @code{\"IN\"})"
msgstr ""

#. type: table
#: doc/guix.texi:24127
msgid ""
"The class of the record.  Knot currently supports only @code{\"IN\"} and "
"partially @code{\"CH\"}."
msgstr ""

#. type: item
#: doc/guix.texi:24128
#, no-wrap
msgid "@code{type} (default: @code{\"A\"})"
msgstr ""

#. type: table
#: doc/guix.texi:24132
msgid ""
"The type of the record.  Common types include A (IPv4 address), AAAA (IPv6 "
"address), NS (Name Server) and MX (Mail eXchange).  Many other types are "
"defined."
msgstr ""

#. type: item
#: doc/guix.texi:24133
#, no-wrap
msgid "@code{data} (default: @code{\"\"})"
msgstr ""

#. type: table
#: doc/guix.texi:24137
msgid ""
"The data contained in the record.  For instance an IP address associated "
"with an A record, or a domain name associated with an NS record.  Remember "
"that domain names are relative to the origin unless they end with a dot."
msgstr ""

#. type: deftp
#: doc/guix.texi:24141
#, no-wrap
msgid "{Data Type} zone-file"
msgstr ""

#. type: deftp
#: doc/guix.texi:24144
msgid ""
"Data type representing the content of a zone file.  This type has the "
"following parameters:"
msgstr ""

#. type: table
#: doc/guix.texi:24153
msgid ""
"The list of entries.  The SOA record is taken care of, so you don't need to "
"put it in the list of entries.  This list should probably contain an entry "
"for your primary authoritative DNS server.  Other than using a list of "
"entries directly, you can use @code{define-zone-entries} to define a object "
"containing the list of entries more easily, that you can later pass to the "
"@code{entries} field of the @code{zone-file}."
msgstr ""

#. type: item
#: doc/guix.texi:24154
#, no-wrap
msgid "@code{origin} (default: @code{\"\"})"
msgstr ""

#. type: table
#: doc/guix.texi:24156
msgid "The name of your zone.  This parameter cannot be empty."
msgstr ""

#. type: item
#: doc/guix.texi:24157
#, no-wrap
msgid "@code{ns} (default: @code{\"ns\"})"
msgstr ""

#. type: table
#: doc/guix.texi:24162
msgid ""
"The domain of your primary authoritative DNS server.  The name is relative "
"to the origin, unless it ends with a dot.  It is mandatory that this primary "
"DNS server corresponds to an NS record in the zone and that it is associated "
"to an IP address in the list of entries."
msgstr ""

#. type: item
#: doc/guix.texi:24163
#, no-wrap
msgid "@code{mail} (default: @code{\"hostmaster\"})"
msgstr ""

#. type: table
#: doc/guix.texi:24166
msgid ""
"An email address people can contact you at, as the owner of the zone.  This "
"is translated as @code{<mail>@@<origin>}."
msgstr ""

#. type: item
#: doc/guix.texi:24167
#, no-wrap
msgid "@code{serial} (default: @code{1})"
msgstr ""

#. type: table
#: doc/guix.texi:24171
msgid ""
"The serial number of the zone.  As this is used to keep track of changes by "
"both slaves and resolvers, it is mandatory that it @emph{never} decreases.  "
"Always increment it when you make a change in your zone."
msgstr ""

#. type: item
#: doc/guix.texi:24172
#, no-wrap
msgid "@code{refresh} (default: @code{(* 2 24 3600)})"
msgstr ""

#. type: table
#: doc/guix.texi:24176
msgid ""
"The frequency at which slaves will do a zone transfer.  This value is a "
"number of seconds.  It can be computed by multiplications or with "
"@code{(string->duration)}."
msgstr ""

#. type: item
#: doc/guix.texi:24177
#, no-wrap
msgid "@code{retry} (default: @code{(* 15 60)})"
msgstr ""

#. type: table
#: doc/guix.texi:24180
msgid ""
"The period after which a slave will retry to contact its master when it "
"fails to do so a first time."
msgstr ""

#. type: item
#: doc/guix.texi:24181
#, no-wrap
msgid "@code{expiry} (default: @code{(* 14 24 3600)})"
msgstr ""

#. type: table
#: doc/guix.texi:24185
msgid ""
"Default TTL of records.  Existing records are considered correct for at most "
"this amount of time.  After this period, resolvers will invalidate their "
"cache and check again that it still exists."
msgstr ""

#. type: item
#: doc/guix.texi:24186
#, no-wrap
msgid "@code{nx} (default: @code{3600})"
msgstr ""

#. type: table
#: doc/guix.texi:24189
msgid ""
"Default TTL of inexistant records.  This delay is usually short because you "
"want your new domains to reach everyone quickly."
msgstr ""

#. type: deftp
#: doc/guix.texi:24193
#, no-wrap
msgid "{Data Type} knot-remote-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:24196
msgid ""
"Data type representing a remote configuration.  This type has the following "
"parameters:"
msgstr ""

#. type: table
#: doc/guix.texi:24201
msgid ""
"An identifier for other configuration fields to refer to this remote. IDs "
"must be unique and must not be empty."
msgstr ""

#. type: table
#: doc/guix.texi:24206
msgid ""
"An ordered list of destination IP addresses.  Addresses are tried in "
"sequence.  An optional port can be given with the @@ separator.  For "
"instance: @code{(list \"1.2.3.4\" \"2.3.4.5@@53\")}.  Default port is 53."
msgstr ""

#. type: item
#: doc/guix.texi:24207
#, no-wrap
msgid "@code{via} (default: @code{'()})"
msgstr ""

#. type: table
#: doc/guix.texi:24211
msgid ""
"An ordered list of source IP addresses.  An empty list will have Knot choose "
"an appropriate source IP.  An optional port can be given with the @@ "
"separator.  The default is to choose at random."
msgstr ""

#. type: item
#: doc/guix.texi:24212
#, no-wrap
msgid "@code{key} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:24215
msgid ""
"A reference to a key, that is a string containing the identifier of a key "
"defined in a @code{knot-key-configuration} field."
msgstr ""

#. type: deftp
#: doc/guix.texi:24219
#, no-wrap
msgid "{Data Type} knot-keystore-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:24222
msgid ""
"Data type representing a keystore to hold dnssec keys.  This type has the "
"following parameters:"
msgstr ""

#. type: table
#: doc/guix.texi:24226
msgid "The id of the keystore.  It must not be empty."
msgstr ""

#. type: item
#: doc/guix.texi:24227
#, no-wrap
msgid "@code{backend} (default: @code{'pem})"
msgstr ""

#. type: table
#: doc/guix.texi:24229
msgid ""
"The backend to store the keys in.  Can be @code{'pem} or @code{'pkcs11}."
msgstr ""

#. type: item
#: doc/guix.texi:24230
#, no-wrap
msgid "@code{config} (default: @code{\"/var/lib/knot/keys/keys\"})"
msgstr ""

#. type: table
#: doc/guix.texi:24234
msgid ""
"The configuration string of the backend.  An example for the PKCS#11 is: "
"@code{\"pkcs11:token=knot;pin-value=1234 /gnu/store/.../lib/pkcs11/"
"libsofthsm2.so\"}.  For the pem backend, the string represents a path in the "
"file system."
msgstr ""

#. type: deftp
#: doc/guix.texi:24238
#, no-wrap
msgid "{Data Type} knot-policy-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:24242
msgid ""
"Data type representing a dnssec policy.  Knot DNS is able to automatically "
"sign your zones.  It can either generate and manage your keys automatically "
"or use keys that you generate."
msgstr ""

#. type: deftp
#: doc/guix.texi:24249
msgid ""
"Dnssec is usually implemented using two keys: a Key Signing Key (KSK) that "
"is used to sign the second, and a Zone Signing Key (ZSK) that is used to "
"sign the zone.  In order to be trusted, the KSK needs to be present in the "
"parent zone (usually a top-level domain).  If your registrar supports "
"dnssec, you will have to send them your KSK's hash so they can add a DS "
"record in their zone.  This is not automated and need to be done each time "
"you change your KSK."
msgstr ""

#. type: deftp
#: doc/guix.texi:24255
msgid ""
"The policy also defines the lifetime of keys.  Usually, ZSK can be changed "
"easily and use weaker cryptographic functions (they use lower parameters) in "
"order to sign records quickly, so they are changed often.  The KSK however "
"requires manual interaction with the registrar, so they are changed less "
"often and use stronger parameters because they sign only one record."
msgstr ""

#. type: deftp
#: doc/guix.texi:24257
msgid "This type has the following parameters:"
msgstr ""

#. type: table
#: doc/guix.texi:24261
msgid "The id of the policy.  It must not be empty."
msgstr ""

#. type: item
#: doc/guix.texi:24262
#, no-wrap
msgid "@code{keystore} (default: @code{\"default\"})"
msgstr ""

#. type: table
#: doc/guix.texi:24267
msgid ""
"A reference to a keystore, that is a string containing the identifier of a "
"keystore defined in a @code{knot-keystore-configuration} field.  The "
"@code{\"default\"} identifier means the default keystore (a kasp database "
"that was setup by this service)."
msgstr ""

#. type: item
#: doc/guix.texi:24268
#, no-wrap
msgid "@code{manual?} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:24270
msgid "Whether the key management is manual or automatic."
msgstr ""

#. type: item
#: doc/guix.texi:24271
#, no-wrap
msgid "@code{single-type-signing?} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:24273
msgid "When @code{#t}, use the Single-Type Signing Scheme."
msgstr ""

#. type: item
#: doc/guix.texi:24274
#, no-wrap
msgid "@code{algorithm} (default: @code{\"ecdsap256sha256\"})"
msgstr ""

#. type: table
#: doc/guix.texi:24276
msgid "An algorithm of signing keys and issued signatures."
msgstr ""

#. type: item
#: doc/guix.texi:24277
#, no-wrap
msgid "@code{ksk-size} (default: @code{256})"
msgstr ""

#. type: table
#: doc/guix.texi:24280
msgid ""
"The length of the KSK.  Note that this value is correct for the default "
"algorithm, but would be unsecure for other algorithms."
msgstr ""

#. type: item
#: doc/guix.texi:24281
#, no-wrap
msgid "@code{zsk-size} (default: @code{256})"
msgstr ""

#. type: table
#: doc/guix.texi:24284
msgid ""
"The length of the ZSK.  Note that this value is correct for the default "
"algorithm, but would be unsecure for other algorithms."
msgstr ""

#. type: item
#: doc/guix.texi:24285
#, no-wrap
msgid "@code{dnskey-ttl} (default: @code{'default})"
msgstr ""

#. type: table
#: doc/guix.texi:24288
msgid ""
"The TTL value for DNSKEY records added into zone apex.  The special "
"@code{'default} value means same as the zone SOA TTL."
msgstr ""

#. type: item
#: doc/guix.texi:24289
#, no-wrap
msgid "@code{zsk-lifetime} (default: @code{(* 30 24 3600)})"
msgstr ""

#. type: table
#: doc/guix.texi:24291
msgid "The period between ZSK publication and the next rollover initiation."
msgstr ""

#. type: item
#: doc/guix.texi:24292
#, no-wrap
msgid "@code{propagation-delay} (default: @code{(* 24 3600)})"
msgstr ""

#. type: table
#: doc/guix.texi:24295
msgid ""
"An extra delay added for each key rollover step.  This value should be high "
"enough to cover propagation of data from the master server to all slaves."
msgstr ""

#. type: item
#: doc/guix.texi:24296
#, no-wrap
msgid "@code{rrsig-lifetime} (default: @code{(* 14 24 3600)})"
msgstr ""

#. type: table
#: doc/guix.texi:24298
msgid "A validity period of newly issued signatures."
msgstr ""

#. type: item
#: doc/guix.texi:24299
#, no-wrap
msgid "@code{rrsig-refresh} (default: @code{(* 7 24 3600)})"
msgstr ""

#. type: table
#: doc/guix.texi:24301
msgid ""
"A period how long before a signature expiration the signature will be "
"refreshed."
msgstr ""

#. type: item
#: doc/guix.texi:24302
#, no-wrap
msgid "@code{nsec3?} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:24304
msgid "When @code{#t}, NSEC3 will be used instead of NSEC."
msgstr ""

#. type: item
#: doc/guix.texi:24305
#, no-wrap
msgid "@code{nsec3-iterations} (default: @code{5})"
msgstr ""

#. type: table
#: doc/guix.texi:24307
msgid "The number of additional times the hashing is performed."
msgstr ""

#. type: item
#: doc/guix.texi:24308
#, no-wrap
msgid "@code{nsec3-salt-length} (default: @code{8})"
msgstr ""

#. type: table
#: doc/guix.texi:24311
msgid ""
"The length of a salt field in octets, which is appended to the original "
"owner name before hashing."
msgstr ""

#. type: item
#: doc/guix.texi:24312
#, no-wrap
msgid "@code{nsec3-salt-lifetime} (default: @code{(* 30 24 3600)})"
msgstr ""

#. type: table
#: doc/guix.texi:24314
msgid "The validity period of newly issued salt field."
msgstr ""

#. type: deftp
#: doc/guix.texi:24318
#, no-wrap
msgid "{Data Type} knot-zone-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:24321
msgid ""
"Data type representing a zone served by Knot.  This type has the following "
"parameters:"
msgstr ""

#. type: item
#: doc/guix.texi:24323
#, no-wrap
msgid "@code{domain} (default: @code{\"\"})"
msgstr ""

#. type: table
#: doc/guix.texi:24325
msgid "The domain served by this configuration.  It must not be empty."
msgstr ""

#. type: item
#: doc/guix.texi:24326
#, no-wrap
msgid "@code{file} (default: @code{\"\"})"
msgstr ""

#. type: table
#: doc/guix.texi:24329
msgid ""
"The file where this zone is saved.  This parameter is ignored by master "
"zones.  Empty means default location that depends on the domain name."
msgstr ""

#. type: item
#: doc/guix.texi:24330
#, no-wrap
msgid "@code{zone} (default: @code{(zone-file)})"
msgstr ""

#. type: table
#: doc/guix.texi:24333
msgid ""
"The content of the zone file.  This parameter is ignored by slave zones.  It "
"must contain a zone-file record."
msgstr ""

#. type: item
#: doc/guix.texi:24334
#, no-wrap
msgid "@code{master} (default: @code{'()})"
msgstr ""

#. type: table
#: doc/guix.texi:24337
msgid ""
"A list of master remotes.  When empty, this zone is a master.  When set, "
"this zone is a slave.  This is a list of remotes identifiers."
msgstr ""

#. type: item
#: doc/guix.texi:24338
#, no-wrap
msgid "@code{ddns-master} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:24341
msgid ""
"The main master.  When empty, it defaults to the first master in the list of "
"masters."
msgstr ""

#. type: item
#: doc/guix.texi:24342
#, no-wrap
msgid "@code{notify} (default: @code{'()})"
msgstr ""

#. type: table
#: doc/guix.texi:24344
msgid "A list of slave remote identifiers."
msgstr ""

#. type: item
#: doc/guix.texi:24345
#, no-wrap
msgid "@code{acl} (default: @code{'()})"
msgstr ""

#. type: table
#: doc/guix.texi:24347
msgid "A list of acl identifiers."
msgstr ""

#. type: item
#: doc/guix.texi:24348
#, no-wrap
msgid "@code{semantic-checks?} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:24350
msgid "When set, this adds more semantic checks to the zone."
msgstr ""

#. type: item
#: doc/guix.texi:24351
#, no-wrap
msgid "@code{disable-any?} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:24353
msgid "When set, this forbids queries of the ANY type."
msgstr ""

#. type: item
#: doc/guix.texi:24354
#, no-wrap
msgid "@code{zonefile-sync} (default: @code{0})"
msgstr ""

#. type: table
#: doc/guix.texi:24357
msgid ""
"The delay between a modification in memory and on disk.  0 means immediate "
"synchronization."
msgstr ""

#. type: item
#: doc/guix.texi:24358
#, no-wrap
msgid "@code{zonefile-load} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:24361
msgid ""
"The way the zone file contents are applied during zone load.  Possible "
"values are:"
msgstr ""

#. type: item
#: doc/guix.texi:24363
#, no-wrap
msgid "@code{#f} for using the default value from Knot,"
msgstr ""

#. type: item
#: doc/guix.texi:24364
#, no-wrap
msgid "@code{'none} for not using the zone file at all,"
msgstr ""

#. type: item
#: doc/guix.texi:24365
#, no-wrap
msgid "@code{'difference} for computing the difference between already available"
msgstr ""

#. type: itemize
#: doc/guix.texi:24367
msgid ""
"contents and zone contents and applying it to the current zone contents,"
msgstr ""

#. type: item
#: doc/guix.texi:24367
#, no-wrap
msgid "@code{'difference-no-serial} for the same as @code{'difference}, but"
msgstr ""

#. type: itemize
#: doc/guix.texi:24370
msgid ""
"ignoring the SOA serial in the zone file, while the server takes care of it "
"automatically."
msgstr ""

#. type: item
#: doc/guix.texi:24370
#, no-wrap
msgid "@code{'whole} for loading zone contents from the zone file."
msgstr ""

#. type: item
#: doc/guix.texi:24373
#, no-wrap
msgid "@code{journal-content} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:24378
msgid ""
"The way the journal is used to store zone and its changes.  Possible values "
"are @code{'none} to not use it at all, @code{'changes} to store changes and "
"@code{'all} to store contents.  @code{#f} does not set this option, so the "
"default value from Knot is used."
msgstr ""

#. type: item
#: doc/guix.texi:24379
#, no-wrap
msgid "@code{max-journal-usage} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:24382
msgid ""
"The maximum size for the journal on disk.  @code{#f} does not set this "
"option, so the default value from Knot is used."
msgstr ""

#. type: item
#: doc/guix.texi:24383
#, no-wrap
msgid "@code{max-journal-depth} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:24386
msgid ""
"The maximum size of the history.  @code{#f} does not set this option, so the "
"default value from Knot is used."
msgstr ""

#. type: item
#: doc/guix.texi:24387
#, no-wrap
msgid "@code{max-zone-size} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:24391
msgid ""
"The maximum size of the zone file.  This limit is enforced for incoming "
"transfer and updates.  @code{#f} does not set this option, so the default "
"value from Knot is used."
msgstr ""

#. type: item
#: doc/guix.texi:24392
#, no-wrap
msgid "@code{dnssec-policy} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:24396
msgid ""
"A reference to a @code{knot-policy-configuration} record, or the special "
"name @code{\"default\"}.  If the value is @code{#f}, there is no dnssec "
"signing on this zone."
msgstr ""

#. type: item
#: doc/guix.texi:24397
#, no-wrap
msgid "@code{serial-policy} (default: @code{'increment})"
msgstr ""

#. type: table
#: doc/guix.texi:24399
msgid "A policy between @code{'increment} and @code{'unixtime}."
msgstr ""

#. type: deftp
#: doc/guix.texi:24403
#, no-wrap
msgid "{Data Type} knot-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:24406
msgid ""
"Data type representing the Knot configuration.  This type has the following "
"parameters:"
msgstr ""

#. type: item
#: doc/guix.texi:24408
#, no-wrap
msgid "@code{knot} (default: @code{knot})"
msgstr ""

#. type: table
#: doc/guix.texi:24410
msgid "The Knot package."
msgstr ""

#. type: item
#: doc/guix.texi:24411
#, no-wrap
msgid "@code{run-directory} (default: @code{\"/var/run/knot\"})"
msgstr ""

#. type: table
#: doc/guix.texi:24413
msgid ""
"The run directory.  This directory will be used for pid file and sockets."
msgstr ""

#. type: item
#: doc/guix.texi:24414
#, no-wrap
msgid "@code{includes} (default: @code{'()})"
msgstr ""

#. type: table
#: doc/guix.texi:24417
msgid ""
"A list of strings or file-like objects denoting other files that must be "
"included at the top of the configuration file."
msgstr ""

#. type: cindex
#: doc/guix.texi:24418
#, no-wrap
msgid "secrets, Knot service"
msgstr ""

#. type: table
#: doc/guix.texi:24424
msgid ""
"This can be used to manage secrets out-of-band.  For example, secret keys "
"may be stored in an out-of-band file not managed by Guix, and thus not "
"visible in @file{/gnu/store}---e.g., you could store secret key "
"configuration in @file{/etc/knot/secrets.conf} and add this file to the "
"@code{includes} list."
msgstr ""

#. type: table
#: doc/guix.texi:24429
msgid ""
"One can generate a secret tsig key (for nsupdate and zone transfers with the "
"keymgr command from the knot package.  Note that the package is not "
"automatically installed by the service.  The following example shows how to "
"generate a new tsig key:"
msgstr ""

#. type: example
#: doc/guix.texi:24433
#, no-wrap
msgid ""
"keymgr -t mysecret > /etc/knot/secrets.conf\n"
"chmod 600 /etc/knot/secrets.conf\n"
msgstr ""

#. type: table
#: doc/guix.texi:24439
msgid ""
"Also note that the generated key will be named @var{mysecret}, so it is the "
"name that needs to be used in the @var{key} field of the @code{knot-acl-"
"configuration} record and in other places that need to refer to that key."
msgstr ""

#. type: table
#: doc/guix.texi:24441
msgid ""
"It can also be used to add configuration not supported by this interface."
msgstr ""

#. type: item
#: doc/guix.texi:24442
#, no-wrap
msgid "@code{listen-v4} (default: @code{\"0.0.0.0\"})"
msgstr ""

#. type: table
#: doc/guix.texi:24444 doc/guix.texi:24447
msgid "An ip address on which to listen."
msgstr ""

#. type: item
#: doc/guix.texi:24445
#, no-wrap
msgid "@code{listen-v6} (default: @code{\"::\"})"
msgstr ""

#. type: item
#: doc/guix.texi:24448
#, no-wrap
msgid "@code{listen-port} (default: @code{53})"
msgstr ""

#. type: table
#: doc/guix.texi:24450
msgid "A port on which to listen."
msgstr ""

#. type: item
#: doc/guix.texi:24451
#, no-wrap
msgid "@code{keys} (default: @code{'()})"
msgstr ""

#. type: table
#: doc/guix.texi:24453
msgid "The list of knot-key-configuration used by this configuration."
msgstr ""

#. type: item
#: doc/guix.texi:24454
#, no-wrap
msgid "@code{acls} (default: @code{'()})"
msgstr ""

#. type: table
#: doc/guix.texi:24456
msgid "The list of knot-acl-configuration used by this configuration."
msgstr ""

#. type: item
#: doc/guix.texi:24457
#, no-wrap
msgid "@code{remotes} (default: @code{'()})"
msgstr ""

#. type: table
#: doc/guix.texi:24459
msgid "The list of knot-remote-configuration used by this configuration."
msgstr ""

#. type: item
#: doc/guix.texi:24460
#, no-wrap
msgid "@code{zones} (default: @code{'()})"
msgstr ""

#. type: table
#: doc/guix.texi:24462
msgid "The list of knot-zone-configuration used by this configuration."
msgstr ""

#. type: subsubheading
#: doc/guix.texi:24466
#, no-wrap
msgid "Knot Resolver Service"
msgstr ""

#. type: deffn
#: doc/guix.texi:24468
#, no-wrap
msgid "{Scheme Variable} knot-resolver-service-type"
msgstr ""

#. type: deffn
#: doc/guix.texi:24471
msgid ""
"This is the type of the knot resolver service, whose value should be an "
"@code{knot-resolver-configuration} object as in this example:"
msgstr ""

#. type: lisp
#: doc/guix.texi:24481
#, no-wrap
msgid ""
"(service knot-resolver-service-type\n"
"         (knot-resolver-configuration\n"
"           (kresd-config-file (plain-file \"kresd.conf\" \"\n"
"net.listen('192.168.0.1', 5353)\n"
"user('knot-resolver', 'knot-resolver')\n"
"modules = @{ 'hints > iterate', 'stats', 'predict' @}\n"
"cache.size = 100 * MB\n"
"\"))))\n"
msgstr ""

#. type: deffn
#: doc/guix.texi:24484
msgid ""
"For more information, refer its @url{https://knot-resolver.readthedocs.org/"
"en/stable/daemon.html#configuration, manual}."
msgstr ""

#. type: deftp
#: doc/guix.texi:24486
#, no-wrap
msgid "{Data Type} knot-resolver-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:24488
msgid "Data type representing the configuration of knot-resolver."
msgstr ""

#. type: item
#: doc/guix.texi:24490
#, no-wrap
msgid "@code{package} (default: @var{knot-resolver})"
msgstr ""

#. type: table
#: doc/guix.texi:24492
msgid "Package object of the knot DNS resolver."
msgstr ""

#. type: item
#: doc/guix.texi:24493
#, no-wrap
msgid "@code{kresd-config-file} (default: %kresd.conf)"
msgstr ""

#. type: table
#: doc/guix.texi:24496
msgid ""
"File-like object of the kresd configuration file to use, by default it will "
"listen on @code{127.0.0.1} and @code{::1}."
msgstr ""

#. type: item
#: doc/guix.texi:24497
#, no-wrap
msgid "@code{garbage-collection-interval} (default: 1000)"
msgstr ""

#. type: table
#: doc/guix.texi:24499
msgid ""
"Number of milliseconds for @code{kres-cache-gc} to periodically trim the "
"cache."
msgstr ""

#. type: subsubheading
#: doc/guix.texi:24504
#, no-wrap
msgid "Dnsmasq Service"
msgstr ""

#. type: deffn
#: doc/guix.texi:24506
#, no-wrap
msgid "{Scheme Variable} dnsmasq-service-type"
msgstr ""

#. type: deffn
#: doc/guix.texi:24509
msgid ""
"This is the type of the dnsmasq service, whose value should be an "
"@code{dnsmasq-configuration} object as in this example:"
msgstr ""

#. type: lisp
#: doc/guix.texi:24515
#, no-wrap
msgid ""
"(service dnsmasq-service-type\n"
"         (dnsmasq-configuration\n"
"           (no-resolv? #t)\n"
"           (servers '(\"192.168.1.1\"))))\n"
msgstr ""

#. type: deftp
#: doc/guix.texi:24518
#, no-wrap
msgid "{Data Type} dnsmasq-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:24520
msgid "Data type representing the configuration of dnsmasq."
msgstr ""

#. type: item
#: doc/guix.texi:24522
#, no-wrap
msgid "@code{package} (default: @var{dnsmasq})"
msgstr ""

#. type: table
#: doc/guix.texi:24524
msgid "Package object of the dnsmasq server."
msgstr ""

#. type: item
#: doc/guix.texi:24525
#, no-wrap
msgid "@code{no-hosts?} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:24527
msgid "When true, don't read the hostnames in /etc/hosts."
msgstr ""

#. type: item
#: doc/guix.texi:24528
#, no-wrap
msgid "@code{port} (default: @code{53})"
msgstr ""

#. type: table
#: doc/guix.texi:24531
msgid ""
"The port to listen on.  Setting this to zero completely disables DNS "
"responses, leaving only DHCP and/or TFTP functions."
msgstr ""

#. type: item
#: doc/guix.texi:24532
#, no-wrap
msgid "@code{local-service?} (default: @code{#t})"
msgstr ""

#. type: table
#: doc/guix.texi:24535
msgid ""
"Accept DNS queries only from hosts whose address is on a local subnet, ie a "
"subnet for which an interface exists on the server."
msgstr ""

#. type: item
#: doc/guix.texi:24536
#, no-wrap
msgid "@code{listen-addresses} (default: @code{'()})"
msgstr ""

#. type: table
#: doc/guix.texi:24538
msgid "Listen on the given IP addresses."
msgstr ""

#. type: item
#: doc/guix.texi:24539
#, no-wrap
msgid "@code{resolv-file} (default: @code{\"/etc/resolv.conf\"})"
msgstr ""

#. type: table
#: doc/guix.texi:24541
msgid "The file to read the IP address of the upstream nameservers from."
msgstr ""

#. type: item
#: doc/guix.texi:24542
#, no-wrap
msgid "@code{no-resolv?} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:24544
msgid "When true, don't read @var{resolv-file}."
msgstr ""

#. type: item
#: doc/guix.texi:24545
#, no-wrap
msgid "@code{servers} (default: @code{'()})"
msgstr ""

#. type: table
#: doc/guix.texi:24547
msgid "Specify IP address of upstream servers directly."
msgstr ""

#. type: item
#: doc/guix.texi:24548
#, no-wrap
msgid "@code{addresses} (default: @code{'()})"
msgstr ""

#. type: table
#: doc/guix.texi:24552
msgid ""
"For each entry, specify an IP address to return for any host in the given "
"domains.  Queries in the domains are never forwarded and always replied to "
"with the specified IP address."
msgstr ""

#. type: table
#: doc/guix.texi:24554
msgid "This is useful for redirecting hosts locally, for example:"
msgstr ""

#. type: lisp
#: doc/guix.texi:24563
#, no-wrap
msgid ""
"(service dnsmasq-service-type\n"
"         (dnsmasq-configuration\n"
"           (addresses\n"
"             '(; Redirect to a local web-server.\n"
"               \"/example.org/127.0.0.1\"\n"
"               ; Redirect subdomain to a specific IP.\n"
"               \"/subdomain.example.org/192.168.1.42\"))))\n"
msgstr ""

#. type: table
#: doc/guix.texi:24566
msgid "Note that rules in @file{/etc/hosts} take precedence over this."
msgstr ""

#. type: item
#: doc/guix.texi:24567
#, no-wrap
msgid "@code{cache-size} (default: @code{150})"
msgstr ""

#. type: table
#: doc/guix.texi:24570
msgid ""
"Set the size of dnsmasq's cache.  Setting the cache size to zero disables "
"caching."
msgstr ""

#. type: item
#: doc/guix.texi:24571
#, no-wrap
msgid "@code{negative-cache?} (default: @code{#t})"
msgstr ""

#. type: table
#: doc/guix.texi:24573
msgid "When false, disable negative caching."
msgstr ""

#. type: item
#: doc/guix.texi:24574
#, no-wrap
msgid "@code{tftp-enable?} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:24576
msgid "Whether to enable the built-in TFTP server."
msgstr ""

#. type: item
#: doc/guix.texi:24577
#, no-wrap
msgid "@code{tftp-no-fail?} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:24579
msgid "If true, does not fail dnsmasq if the TFTP server could not start up."
msgstr ""

#. type: item
#: doc/guix.texi:24580
#, no-wrap
msgid "@code{tftp-single-port?} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:24582
msgid "Whether to use only one single port for TFTP."
msgstr ""

#. type: item
#: doc/guix.texi:24583
#, no-wrap
msgid "@code{tftp-secure?} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:24585
msgid ""
"If true, only files owned by the user running the dnsmasq process are "
"accessible."
msgstr ""

#. type: table
#: doc/guix.texi:24589
msgid ""
"If dnsmasq is being run as root, different rules apply: @code{tftp-secure?} "
"has no effect, but only files which have the world-readable bit set are "
"accessible."
msgstr ""

#. type: item
#: doc/guix.texi:24590
#, no-wrap
msgid "@code{tftp-max} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:24592
msgid "If set, sets the maximal number of concurrent connections allowed."
msgstr ""

#. type: item
#: doc/guix.texi:24593
#, no-wrap
msgid "@code{tftp-mtu} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:24595
msgid "If set, sets the MTU for TFTP packets to that value."
msgstr ""

#. type: item
#: doc/guix.texi:24596
#, no-wrap
msgid "@code{tftp-no-blocksize?} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:24598
msgid ""
"If true, stops the TFTP server from negotiating the blocksize with a client."
msgstr ""

#. type: item
#: doc/guix.texi:24599
#, no-wrap
msgid "@code{tftp-lowercase?} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:24601
msgid "Whether to convert all filenames in TFTP requests to lowercase."
msgstr ""

#. type: item
#: doc/guix.texi:24602
#, no-wrap
msgid "@code{tftp-port-range} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:24605
msgid ""
"If set, fixes the dynamical ports (one per client) to the given range "
"(@code{\"<start>,<end>\"})."
msgstr ""

#. type: item
#: doc/guix.texi:24606
#, no-wrap
msgid "@code{tftp-root} (default: @code{/var/empty,lo})"
msgstr ""

#. type: table
#: doc/guix.texi:24613
msgid ""
"Look for files to transfer using TFTP relative to the given directory.  When "
"this is set, TFTP paths which include \"..\" are rejected, to stop clients "
"getting outside the specified root. Absolute paths (starting with /) are "
"allowed, but they must be within the tftp-root. If the optional interface "
"argument is given, the directory is only used for TFTP requests via that "
"interface."
msgstr ""

#. type: item
#: doc/guix.texi:24614
#, no-wrap
msgid "@code{tftp-unique-root} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:24619
msgid ""
"If set, add the IP or hardware address of the TFTP client as a path "
"component on the end of the TFTP-root.  Only valid if a TFTP root is set and "
"the directory exists.  Defaults to adding IP address (in standard dotted-"
"quad format)."
msgstr ""

#. type: table
#: doc/guix.texi:24627
msgid ""
"For instance, if --tftp-root is \"/tftp\" and client 1.2.3.4 requests file "
"\"myfile\" then the effective path will be \"/tftp/1.2.3.4/myfile\" if /"
"tftp/1.2.3.4 exists or /tftp/myfile otherwise. When \"=mac\" is specified it "
"will append the MAC address instead, using lowercase zero padded digits "
"separated by dashes, e.g.: 01-02-03-04-aa-bb Note that resolving MAC "
"addresses is only possible if the client is in the local network or obtained "
"a DHCP lease from dnsmasq."
msgstr ""

#. type: subsubheading
#: doc/guix.texi:24631
#, no-wrap
msgid "ddclient Service"
msgstr ""

#. type: cindex
#: doc/guix.texi:24633
#, no-wrap
msgid "ddclient"
msgstr ""

#. type: Plain text
#: doc/guix.texi:24637
msgid ""
"The ddclient service described below runs the ddclient daemon, which takes "
"care of automatically updating DNS entries for service providers such as "
"@uref{https://dyn.com/dns/, Dyn}."
msgstr ""

#. type: Plain text
#: doc/guix.texi:24640
msgid ""
"The following example show instantiates the service with its default "
"configuration:"
msgstr ""

#. type: lisp
#: doc/guix.texi:24643
#, no-wrap
msgid "(service ddclient-service-type)\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:24652
msgid ""
"Note that ddclient needs to access credentials that are stored in a "
"@dfn{secret file}, by default @file{/etc/ddclient/secrets} (see @code{secret-"
"file} below).  You are expected to create this file manually, in an ``out-of-"
"band'' fashion (you @emph{could} make this file part of the service "
"configuration, for instance by using @code{plain-file}, but it will be world-"
"readable @i{via} @file{/gnu/store}).  See the examples in the @file{share/"
"ddclient} directory of the @code{ddclient} package."
msgstr ""

#. type: Plain text
#: doc/guix.texi:24656
msgid "Available @code{ddclient-configuration} fields are:"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:24657
#, no-wrap
msgid "{@code{ddclient-configuration} parameter} package ddclient"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:24659
msgid "The ddclient package."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:24662
#, no-wrap
msgid "{@code{ddclient-configuration} parameter} integer daemon"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:24664
msgid "The period after which ddclient will retry to check IP and domain name."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:24669
#, no-wrap
msgid "{@code{ddclient-configuration} parameter} boolean syslog"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:24671
msgid "Use syslog for the output."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:24676
#, no-wrap
msgid "{@code{ddclient-configuration} parameter} string mail"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:24678
msgid "Mail to user."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:24680 doc/guix.texi:24687 doc/guix.texi:26202
msgid "Defaults to @samp{\"root\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:24683
#, no-wrap
msgid "{@code{ddclient-configuration} parameter} string mail-failure"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:24685
msgid "Mail failed update to user."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:24690
#, no-wrap
msgid "{@code{ddclient-configuration} parameter} string pid"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:24692
msgid "The ddclient PID file."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:24694
msgid "Defaults to @samp{\"/var/run/ddclient/ddclient.pid\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:24697
#, no-wrap
msgid "{@code{ddclient-configuration} parameter} boolean ssl"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:24699
msgid "Enable SSL support."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:24704
#, no-wrap
msgid "{@code{ddclient-configuration} parameter} string user"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:24707
msgid ""
"Specifies the user name or ID that is used when running ddclient program."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:24709 doc/guix.texi:24716
msgid "Defaults to @samp{\"ddclient\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:24712
#, no-wrap
msgid "{@code{ddclient-configuration} parameter} string group"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:24714
msgid "Group of the user who will run the ddclient program."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:24719
#, no-wrap
msgid "{@code{ddclient-configuration} parameter} string secret-file"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:24723
msgid ""
"Secret file which will be appended to @file{ddclient.conf} file.  This file "
"contains credentials for use by ddclient.  You are expected to create it "
"manually."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:24725
msgid "Defaults to @samp{\"/etc/ddclient/secrets.conf\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:24728
#, no-wrap
msgid "{@code{ddclient-configuration} parameter} list extra-options"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:24730
msgid "Extra options will be appended to @file{ddclient.conf} file."
msgstr ""

#. type: cindex
#: doc/guix.texi:24741
#, no-wrap
msgid "VPN (virtual private network)"
msgstr ""

#. type: cindex
#: doc/guix.texi:24742
#, no-wrap
msgid "virtual private network (VPN)"
msgstr ""

#. type: Plain text
#: doc/guix.texi:24748
msgid ""
"The @code{(gnu services vpn)} module provides services related to "
"@dfn{virtual private networks} (VPNs).  It provides a @emph{client} service "
"for your machine to connect to a VPN, and a @emph{server} service for your "
"machine to host a VPN.  Both services use @uref{https://openvpn.net/, "
"OpenVPN}."
msgstr ""

#. type: deffn
#: doc/guix.texi:24749
#, no-wrap
msgid "{Scheme Procedure} openvpn-client-service @"
msgstr ""

#. type: deffn
#: doc/guix.texi:24751
msgid "[#:config (openvpn-client-configuration)]"
msgstr ""

#. type: deffn
#: doc/guix.texi:24753
msgid ""
"Return a service that runs @command{openvpn}, a VPN daemon, as a client."
msgstr ""

#. type: deffn
#: doc/guix.texi:24755
#, no-wrap
msgid "{Scheme Procedure} openvpn-server-service @"
msgstr ""

#. type: deffn
#: doc/guix.texi:24757
msgid "[#:config (openvpn-server-configuration)]"
msgstr ""

#. type: deffn
#: doc/guix.texi:24759
msgid ""
"Return a service that runs @command{openvpn}, a VPN daemon, as a server."
msgstr ""

#. type: deffn
#: doc/guix.texi:24761
msgid "Both can be run simultaneously."
msgstr ""

#. type: Plain text
#: doc/guix.texi:24766
msgid "Available @code{openvpn-client-configuration} fields are:"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:24767
#, no-wrap
msgid "{@code{openvpn-client-configuration} parameter} package openvpn"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:24769 doc/guix.texi:24920
msgid "The OpenVPN package."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:24772
#, no-wrap
msgid "{@code{openvpn-client-configuration} parameter} string pid-file"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:24774 doc/guix.texi:24925
msgid "The OpenVPN pid file."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:24776 doc/guix.texi:24927
msgid "Defaults to @samp{\"/var/run/openvpn/openvpn.pid\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:24779
#, no-wrap
msgid "{@code{openvpn-client-configuration} parameter} proto proto"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:24782 doc/guix.texi:24933
msgid ""
"The protocol (UDP or TCP) used to open a channel between clients and servers."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:24784 doc/guix.texi:24935
msgid "Defaults to @samp{udp}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:24787
#, no-wrap
msgid "{@code{openvpn-client-configuration} parameter} dev dev"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:24789 doc/guix.texi:24940
msgid "The device type used to represent the VPN connection."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:24791 doc/guix.texi:24942
msgid "Defaults to @samp{tun}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:24794
#, no-wrap
msgid "{@code{openvpn-client-configuration} parameter} string ca"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:24796 doc/guix.texi:24947
msgid "The certificate authority to check connections against."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:24798 doc/guix.texi:24949
msgid "Defaults to @samp{\"/etc/openvpn/ca.crt\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:24801
#, no-wrap
msgid "{@code{openvpn-client-configuration} parameter} string cert"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:24804 doc/guix.texi:24955
msgid ""
"The certificate of the machine the daemon is running on.  It should be "
"signed by the authority given in @code{ca}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:24806 doc/guix.texi:24957
msgid "Defaults to @samp{\"/etc/openvpn/client.crt\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:24809
#, no-wrap
msgid "{@code{openvpn-client-configuration} parameter} string key"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:24812 doc/guix.texi:24963
msgid ""
"The key of the machine the daemon is running on.  It must be the key whose "
"certificate is @code{cert}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:24814 doc/guix.texi:24965
msgid "Defaults to @samp{\"/etc/openvpn/client.key\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:24817
#, no-wrap
msgid "{@code{openvpn-client-configuration} parameter} boolean comp-lzo?"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:24819 doc/guix.texi:24970
msgid "Whether to use the lzo compression algorithm."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:24824
#, no-wrap
msgid "{@code{openvpn-client-configuration} parameter} boolean persist-key?"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:24826 doc/guix.texi:24977
msgid "Don't re-read key files across SIGUSR1 or --ping-restart."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:24831
#, no-wrap
msgid "{@code{openvpn-client-configuration} parameter} boolean persist-tun?"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:24834 doc/guix.texi:24985
msgid ""
"Don't close and reopen TUN/TAP device or run up/down scripts across SIGUSR1 "
"or --ping-restart restarts."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:24839
#, no-wrap
msgid "{@code{openvpn-client-configuration} parameter} boolean fast-io?"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:24842 doc/guix.texi:24993
msgid ""
"(Experimental) Optimize TUN/TAP/UDP I/O writes by avoiding a call to poll/"
"epoll/select prior to the write operation."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:24846
#, no-wrap
msgid "{@code{openvpn-client-configuration} parameter} number verbosity"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:24848 doc/guix.texi:24999
msgid "Verbosity level."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:24850 doc/guix.texi:25001 doc/guix.texi:26470
#: doc/guix.texi:26694
msgid "Defaults to @samp{3}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:24853
#, no-wrap
msgid "{@code{openvpn-client-configuration} parameter} tls-auth-client tls-auth"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:24856 doc/guix.texi:25007
msgid ""
"Add an additional layer of HMAC authentication on top of the TLS control "
"channel to protect against DoS attacks."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:24861
#, no-wrap
msgid "{@code{openvpn-client-configuration} parameter} maybe-string auth-user-pass"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:24865
msgid ""
"Authenticate with server using username/password.  The option is a file "
"containing username/password on 2 lines.  Do not use a file-like object as "
"it would be added to the store and readable by any user."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:24867
msgid "Defaults to @samp{'disabled}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:24869
#, no-wrap
msgid "{@code{openvpn-client-configuration} parameter} key-usage verify-key-usage?"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:24871
msgid "Whether to check the server certificate has server usage extension."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:24876
#, no-wrap
msgid "{@code{openvpn-client-configuration} parameter} bind bind?"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:24878
msgid "Bind to a specific local port number."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:24883
#, no-wrap
msgid "{@code{openvpn-client-configuration} parameter} resolv-retry resolv-retry?"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:24885
msgid "Retry resolving server address."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:24890
#, no-wrap
msgid "{@code{openvpn-client-configuration} parameter} openvpn-remote-list remote"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:24892
msgid "A list of remote servers to connect to."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:24896
msgid "Available @code{openvpn-remote-configuration} fields are:"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:24897
#, no-wrap
msgid "{@code{openvpn-remote-configuration} parameter} string name"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:24899
msgid "Server name."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:24901
msgid "Defaults to @samp{\"my-server\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:24904
#, no-wrap
msgid "{@code{openvpn-remote-configuration} parameter} number port"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:24906
msgid "Port number the server listens to."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:24908 doc/guix.texi:25016
msgid "Defaults to @samp{1194}."
msgstr ""

#. type: Plain text
#: doc/guix.texi:24917
msgid "Available @code{openvpn-server-configuration} fields are:"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:24918
#, no-wrap
msgid "{@code{openvpn-server-configuration} parameter} package openvpn"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:24923
#, no-wrap
msgid "{@code{openvpn-server-configuration} parameter} string pid-file"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:24930
#, no-wrap
msgid "{@code{openvpn-server-configuration} parameter} proto proto"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:24938
#, no-wrap
msgid "{@code{openvpn-server-configuration} parameter} dev dev"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:24945
#, no-wrap
msgid "{@code{openvpn-server-configuration} parameter} string ca"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:24952
#, no-wrap
msgid "{@code{openvpn-server-configuration} parameter} string cert"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:24960
#, no-wrap
msgid "{@code{openvpn-server-configuration} parameter} string key"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:24968
#, no-wrap
msgid "{@code{openvpn-server-configuration} parameter} boolean comp-lzo?"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:24975
#, no-wrap
msgid "{@code{openvpn-server-configuration} parameter} boolean persist-key?"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:24982
#, no-wrap
msgid "{@code{openvpn-server-configuration} parameter} boolean persist-tun?"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:24990
#, no-wrap
msgid "{@code{openvpn-server-configuration} parameter} boolean fast-io?"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:24997
#, no-wrap
msgid "{@code{openvpn-server-configuration} parameter} number verbosity"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25004
#, no-wrap
msgid "{@code{openvpn-server-configuration} parameter} tls-auth-server tls-auth"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25012
#, no-wrap
msgid "{@code{openvpn-server-configuration} parameter} number port"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25014
msgid "Specifies the port number on which the server listens."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25019
#, no-wrap
msgid "{@code{openvpn-server-configuration} parameter} ip-mask server"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25021
msgid "An ip and mask specifying the subnet inside the virtual network."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25023
msgid "Defaults to @samp{\"10.8.0.0 255.255.255.0\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25026
#, no-wrap
msgid "{@code{openvpn-server-configuration} parameter} cidr6 server-ipv6"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25028
msgid "A CIDR notation specifying the IPv6 subnet inside the virtual network."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25033
#, no-wrap
msgid "{@code{openvpn-server-configuration} parameter} string dh"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25035
msgid "The Diffie-Hellman parameters file."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25037
msgid "Defaults to @samp{\"/etc/openvpn/dh2048.pem\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25040
#, no-wrap
msgid "{@code{openvpn-server-configuration} parameter} string ifconfig-pool-persist"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25042
msgid "The file that records client IPs."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25044
msgid "Defaults to @samp{\"/etc/openvpn/ipp.txt\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25047
#, no-wrap
msgid "{@code{openvpn-server-configuration} parameter} gateway redirect-gateway?"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25049
msgid "When true, the server will act as a gateway for its clients."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25054
#, no-wrap
msgid "{@code{openvpn-server-configuration} parameter} boolean client-to-client?"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25056
msgid "When true, clients are allowed to talk to each other inside the VPN."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25061
#, no-wrap
msgid "{@code{openvpn-server-configuration} parameter} keepalive keepalive"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25067
msgid ""
"Causes ping-like messages to be sent back and forth over the link so that "
"each side knows when the other side has gone down.  @code{keepalive} "
"requires a pair.  The first element is the period of the ping sending, and "
"the second element is the timeout before considering the other side down."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25070
#, no-wrap
msgid "{@code{openvpn-server-configuration} parameter} number max-clients"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25072
msgid "The maximum number of clients."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25077
#, no-wrap
msgid "{@code{openvpn-server-configuration} parameter} string status"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25080
msgid ""
"The status file.  This file shows a small report on current connection.  It "
"is truncated and rewritten every minute."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25082
msgid "Defaults to @samp{\"/var/run/openvpn/status\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25085
#, no-wrap
msgid "{@code{openvpn-server-configuration} parameter} openvpn-ccd-list client-config-dir"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25087
msgid "The list of configuration for some clients."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25091
msgid "Available @code{openvpn-ccd-configuration} fields are:"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25092
#, no-wrap
msgid "{@code{openvpn-ccd-configuration} parameter} string name"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25094
msgid "Client name."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25096
msgid "Defaults to @samp{\"client\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25099
#, no-wrap
msgid "{@code{openvpn-ccd-configuration} parameter} ip-mask iroute"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25101
msgid "Client own network"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25106
#, no-wrap
msgid "{@code{openvpn-ccd-configuration} parameter} ip-mask ifconfig-push"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25108
msgid "Client VPN IP."
msgstr ""

#. type: cindex
#: doc/guix.texi:25121
#, no-wrap
msgid "NFS"
msgstr ""

#. type: Plain text
#: doc/guix.texi:25126
msgid ""
"The @code{(gnu services nfs)} module provides the following services, which "
"are most commonly used in relation to mounting or exporting directory trees "
"as @dfn{network file systems} (NFS)."
msgstr ""

#. type: Plain text
#: doc/guix.texi:25130
msgid ""
"While it is possible to use the individual components that together make up "
"a Network File System service, we recommended to configure an NFS server "
"with the @code{nfs-service-type}."
msgstr ""

#. type: subsubheading
#: doc/guix.texi:25131
#, no-wrap
msgid "NFS Service"
msgstr ""

#. type: cindex
#: doc/guix.texi:25132
#, no-wrap
msgid "NFS, server"
msgstr ""

#. type: Plain text
#: doc/guix.texi:25137
msgid ""
"The NFS service takes care of setting up all NFS component services, kernel "
"configuration file systems, and installs configuration files in the "
"locations that NFS expects."
msgstr ""

#. type: defvr
#: doc/guix.texi:25138
#, no-wrap
msgid "{Scheme Variable} nfs-service-type"
msgstr ""

#. type: defvr
#: doc/guix.texi:25140
msgid "A service type for a complete NFS server."
msgstr ""

#. type: deftp
#: doc/guix.texi:25142
#, no-wrap
msgid "{Data Type} nfs-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:25145
msgid ""
"This data type represents the configuration of the NFS service and all of "
"its subsystems."
msgstr ""

#. type: deftp
#: doc/guix.texi:25147
msgid "It has the following parameters:"
msgstr ""

#. type: item
#: doc/guix.texi:25148 doc/guix.texi:25273 doc/guix.texi:25298
#, no-wrap
msgid "@code{nfs-utils} (default: @code{nfs-utils})"
msgstr ""

#. type: table
#: doc/guix.texi:25150
msgid "The nfs-utils package to use."
msgstr ""

#. type: item
#: doc/guix.texi:25151
#, no-wrap
msgid "@code{nfs-versions} (default: @code{'(\"4.2\" \"4.1\" \"4.0\")})"
msgstr ""

#. type: table
#: doc/guix.texi:25154
msgid ""
"If a list of string values is provided, the @command{rpc.nfsd} daemon will "
"be limited to supporting the given versions of the NFS protocol."
msgstr ""

#. type: item
#: doc/guix.texi:25155
#, no-wrap
msgid "@code{exports} (default: @code{'()})"
msgstr ""

#. type: table
#: doc/guix.texi:25160
msgid ""
"This is a list of directories the NFS server should export.  Each entry is a "
"list consisting of two elements: a directory name and a string containing "
"all options.  This is an example in which the directory @file{/export} is "
"served to all NFS clients as a read-only share:"
msgstr ""

#. type: lisp
#: doc/guix.texi:25166
#, no-wrap
msgid ""
"(nfs-configuration\n"
" (exports\n"
"  '((\"/export\"\n"
"     \"*(ro,insecure,no_subtree_check,crossmnt,fsid=0)\"))))\n"
msgstr ""

#. type: item
#: doc/guix.texi:25168
#, no-wrap
msgid "@code{rpcmountd-port} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:25170
msgid "The network port that the @command{rpc.mountd} daemon should use."
msgstr ""

#. type: item
#: doc/guix.texi:25171
#, no-wrap
msgid "@code{rpcstatd-port} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:25173
msgid "The network port that the @command{rpc.statd} daemon should use."
msgstr ""

#. type: item
#: doc/guix.texi:25174 doc/guix.texi:25222
#, no-wrap
msgid "@code{rpcbind} (default: @code{rpcbind})"
msgstr ""

#. type: table
#: doc/guix.texi:25176 doc/guix.texi:25224
msgid "The rpcbind package to use."
msgstr ""

#. type: item
#: doc/guix.texi:25177
#, no-wrap
msgid "@code{idmap-domain} (default: @code{\"localdomain\"})"
msgstr ""

#. type: table
#: doc/guix.texi:25179
msgid "The local NFSv4 domain name."
msgstr ""

#. type: item
#: doc/guix.texi:25180
#, no-wrap
msgid "@code{nfsd-port} (default: @code{2049})"
msgstr ""

#. type: table
#: doc/guix.texi:25182
msgid "The network port that the @command{nfsd} daemon should use."
msgstr ""

#. type: item
#: doc/guix.texi:25183
#, no-wrap
msgid "@code{nfsd-threads} (default: @code{8})"
msgstr ""

#. type: table
#: doc/guix.texi:25185
msgid "The number of threads used by the @command{nfsd} daemon."
msgstr ""

#. type: item
#: doc/guix.texi:25186
#, no-wrap
msgid "@code{nfsd-tcp?} (default: @code{#t})"
msgstr ""

#. type: table
#: doc/guix.texi:25188
msgid "Whether the @command{nfsd} daemon should listen on a TCP socket."
msgstr ""

#. type: item
#: doc/guix.texi:25189
#, no-wrap
msgid "@code{nfsd-udp?} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:25191
msgid "Whether the @command{nfsd} daemon should listen on a UDP socket."
msgstr ""

#. type: item
#: doc/guix.texi:25192 doc/guix.texi:25276 doc/guix.texi:25301
#, no-wrap
msgid "@code{pipefs-directory} (default: @code{\"/var/lib/nfs/rpc_pipefs\"})"
msgstr ""

#. type: table
#: doc/guix.texi:25194 doc/guix.texi:25278 doc/guix.texi:25303
msgid "The directory where the pipefs file system is mounted."
msgstr ""

#. type: item
#: doc/guix.texi:25195
#, no-wrap
msgid "@code{debug} (default: @code{'()\"})"
msgstr ""

#. type: table
#: doc/guix.texi:25199
msgid ""
"A list of subsystems for which debugging output should be enabled.  This is "
"a list of symbols.  Any of these symbols are valid: @code{nfsd}, @code{nfs}, "
"@code{rpc}, @code{idmap}, @code{statd}, or @code{mountd}."
msgstr ""

#. type: Plain text
#: doc/guix.texi:25204
msgid ""
"If you don't need a complete NFS service or prefer to build it yourself you "
"can use the individual component services that are documented below."
msgstr ""

#. type: subsubheading
#: doc/guix.texi:25205
#, no-wrap
msgid "RPC Bind Service"
msgstr ""

#. type: cindex
#: doc/guix.texi:25206
#, no-wrap
msgid "rpcbind"
msgstr ""

#. type: Plain text
#: doc/guix.texi:25212
msgid ""
"The RPC Bind service provides a facility to map program numbers into "
"universal addresses.  Many NFS related services use this facility.  Hence it "
"is automatically started when a dependent service starts."
msgstr ""

#. type: defvr
#: doc/guix.texi:25213
#, no-wrap
msgid "{Scheme Variable} rpcbind-service-type"
msgstr ""

#. type: defvr
#: doc/guix.texi:25215
msgid "A service type for the RPC portmapper daemon."
msgstr ""

#. type: deftp
#: doc/guix.texi:25218
#, no-wrap
msgid "{Data Type} rpcbind-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:25221
msgid ""
"Data type representing the configuration of the RPC Bind Service.  This type "
"has the following parameters:"
msgstr ""

#. type: item
#: doc/guix.texi:25225
#, no-wrap
msgid "@code{warm-start?} (default: @code{#t})"
msgstr ""

#. type: table
#: doc/guix.texi:25229
msgid ""
"If this parameter is @code{#t}, then the daemon will read a state file on "
"startup thus reloading state information saved by a previous instance."
msgstr ""

#. type: subsubheading
#: doc/guix.texi:25233
#, no-wrap
msgid "Pipefs Pseudo File System"
msgstr ""

#. type: cindex
#: doc/guix.texi:25234
#, no-wrap
msgid "pipefs"
msgstr ""

#. type: cindex
#: doc/guix.texi:25235
#, no-wrap
msgid "rpc_pipefs"
msgstr ""

#. type: Plain text
#: doc/guix.texi:25239
msgid ""
"The pipefs file system is used to transfer NFS related data between the "
"kernel and user space programs."
msgstr ""

#. type: defvr
#: doc/guix.texi:25240
#, no-wrap
msgid "{Scheme Variable} pipefs-service-type"
msgstr ""

#. type: defvr
#: doc/guix.texi:25242
msgid "A service type for the pipefs pseudo file system."
msgstr ""

#. type: deftp
#: doc/guix.texi:25244
#, no-wrap
msgid "{Data Type} pipefs-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:25247
msgid ""
"Data type representing the configuration of the pipefs pseudo file system "
"service.  This type has the following parameters:"
msgstr ""

#. type: item
#: doc/guix.texi:25248
#, no-wrap
msgid "@code{mount-point} (default: @code{\"/var/lib/nfs/rpc_pipefs\"})"
msgstr ""

#. type: table
#: doc/guix.texi:25250
msgid "The directory to which the file system is to be attached."
msgstr ""

#. type: subsubheading
#: doc/guix.texi:25254
#, no-wrap
msgid "GSS Daemon Service"
msgstr ""

#. type: cindex
#: doc/guix.texi:25255
#, no-wrap
msgid "GSSD"
msgstr ""

#. type: cindex
#: doc/guix.texi:25256
#, no-wrap
msgid "GSS"
msgstr ""

#. type: cindex
#: doc/guix.texi:25257
#, no-wrap
msgid "global security system"
msgstr ""

#. type: Plain text
#: doc/guix.texi:25264
msgid ""
"The @dfn{global security system} (GSS) daemon provides strong security for "
"RPC based protocols.  Before exchanging RPC requests an RPC client must "
"establish a security context.  Typically this is done using the Kerberos "
"command @command{kinit} or automatically at login time using PAM services "
"(@pxref{Kerberos Services})."
msgstr ""

#. type: defvr
#: doc/guix.texi:25265
#, no-wrap
msgid "{Scheme Variable} gss-service-type"
msgstr ""

#. type: defvr
#: doc/guix.texi:25267
msgid "A service type for the Global Security System (GSS) daemon."
msgstr ""

#. type: deftp
#: doc/guix.texi:25269
#, no-wrap
msgid "{Data Type} gss-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:25272
msgid ""
"Data type representing the configuration of the GSS daemon service.  This "
"type has the following parameters:"
msgstr ""

#. type: table
#: doc/guix.texi:25275
msgid "The package in which the @command{rpc.gssd} command is to be found."
msgstr ""

#. type: subsubheading
#: doc/guix.texi:25283
#, no-wrap
msgid "IDMAP Daemon Service"
msgstr ""

#. type: cindex
#: doc/guix.texi:25284
#, no-wrap
msgid "idmapd"
msgstr ""

#. type: cindex
#: doc/guix.texi:25285
#, no-wrap
msgid "name mapper"
msgstr ""

#. type: Plain text
#: doc/guix.texi:25289
msgid ""
"The idmap daemon service provides mapping between user IDs and user names.  "
"Typically it is required in order to access file systems mounted via NFSv4."
msgstr ""

#. type: defvr
#: doc/guix.texi:25290
#, no-wrap
msgid "{Scheme Variable} idmap-service-type"
msgstr ""

#. type: defvr
#: doc/guix.texi:25292
msgid "A service type for the Identity Mapper (IDMAP) daemon."
msgstr ""

#. type: deftp
#: doc/guix.texi:25294
#, no-wrap
msgid "{Data Type} idmap-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:25297
msgid ""
"Data type representing the configuration of the IDMAP daemon service.  This "
"type has the following parameters:"
msgstr ""

#. type: table
#: doc/guix.texi:25300
msgid "The package in which the @command{rpc.idmapd} command is to be found."
msgstr ""

#. type: item
#: doc/guix.texi:25304
#, no-wrap
msgid "@code{domain} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:25308
msgid ""
"The local NFSv4 domain name.  This must be a string or @code{#f}.  If it is "
"@code{#f} then the daemon will use the host's fully qualified domain name."
msgstr ""

#. type: item
#: doc/guix.texi:25309
#, no-wrap
msgid "@code{verbosity} (default: @code{0})"
msgstr ""

#. type: table
#: doc/guix.texi:25311
msgid "The verbosity level of the daemon."
msgstr ""

#. type: Plain text
#: doc/guix.texi:25322
msgid ""
"@uref{https://git.savannah.gnu.org/cgit/guix/guix-cuirass.git, Cuirass} is a "
"continuous integration tool for Guix.  It can be used both for development "
"and for providing substitutes to others (@pxref{Substitutes})."
msgstr ""

#. type: Plain text
#: doc/guix.texi:25324
msgid ""
"The @code{(gnu services cuirass)} module provides the following service."
msgstr ""

#. type: defvr
#: doc/guix.texi:25325
#, no-wrap
msgid "{Scheme Procedure} cuirass-service-type"
msgstr ""

#. type: defvr
#: doc/guix.texi:25328
msgid ""
"The type of the Cuirass service.  Its value must be a @code{cuirass-"
"configuration} object, as described below."
msgstr ""

#. type: Plain text
#: doc/guix.texi:25335
msgid ""
"To add build jobs, you have to set the @code{specifications} field of the "
"configuration.  Here is an example of a service that polls the Guix "
"repository and builds the packages from a manifest.  Some of the packages "
"are defined in the @code{\"custom-packages\"} input, which is the equivalent "
"of @env{GUIX_PACKAGE_PATH}."
msgstr ""

#. type: lisp
#: doc/guix.texi:25363
#, no-wrap
msgid ""
"(define %cuirass-specs\n"
"  #~(list\n"
"     '((#:name . \"my-manifest\")\n"
"       (#:load-path-inputs . (\"guix\"))\n"
"       (#:package-path-inputs . (\"custom-packages\"))\n"
"       (#:proc-input . \"guix\")\n"
"       (#:proc-file . \"build-aux/cuirass/gnu-system.scm\")\n"
"       (#:proc . cuirass-jobs)\n"
"       (#:proc-args . ((subset . \"manifests\")\n"
"                       (systems . (\"x86_64-linux\"))\n"
"                       (manifests . ((\"config\" . \"guix/manifest.scm\")))))\n"
"       (#:inputs . (((#:name . \"guix\")\n"
"                     (#:url . \"git://git.savannah.gnu.org/guix.git\")\n"
"                     (#:load-path . \".\")\n"
"                     (#:branch . \"master\")\n"
"                     (#:no-compile? . #t))\n"
"                    ((#:name . \"config\")\n"
"                     (#:url . \"https://git.example.org/config.git\")\n"
"                     (#:load-path . \".\")\n"
"                     (#:branch . \"master\")\n"
"                     (#:no-compile? . #t))\n"
"                    ((#:name . \"custom-packages\")\n"
"                     (#:url . \"https://git.example.org/custom-packages.git\")\n"
"                     (#:load-path . \".\")\n"
"                     (#:branch . \"master\")\n"
"                     (#:no-compile? . #t)))))))\n"
"\n"
msgstr ""

#. type: lisp
#: doc/guix.texi:25367
#, no-wrap
msgid ""
"(service cuirass-service-type\n"
"         (cuirass-configuration\n"
"          (specifications %cuirass-specs)))\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:25372
msgid ""
"While information related to build jobs is located directly in the "
"specifications, global settings for the @command{cuirass} process are "
"accessible in other @code{cuirass-configuration} fields."
msgstr ""

#. type: deftp
#: doc/guix.texi:25373
#, no-wrap
msgid "{Data Type} cuirass-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:25375
msgid "Data type representing the configuration of Cuirass."
msgstr ""

#. type: item
#: doc/guix.texi:25377
#, no-wrap
msgid "@code{log-file} (default: @code{\"/var/log/cuirass.log\"})"
msgstr ""

#. type: table
#: doc/guix.texi:25379
msgid "Location of the log file."
msgstr ""

#. type: item
#: doc/guix.texi:25380
#, no-wrap
msgid "@code{web-log-file} (default: @code{\"/var/log/cuirass-web.log\"})"
msgstr ""

#. type: table
#: doc/guix.texi:25382
msgid "Location of the log file used by the web interface."
msgstr ""

#. type: item
#: doc/guix.texi:25383
#, no-wrap
msgid "@code{queries-log-file} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:25386
msgid ""
"Location of the SQL queries log file. By default, SQL queries logging is "
"disabled."
msgstr ""

#. type: item
#: doc/guix.texi:25387
#, no-wrap
msgid "@code{web-queries-log-file} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:25390
msgid ""
"Location of the web SQL queries log file. By default, web SQL queries "
"logging is disabled."
msgstr ""

#. type: item
#: doc/guix.texi:25391
#, no-wrap
msgid "@code{cache-directory} (default: @code{\"/var/cache/cuirass\"})"
msgstr ""

#. type: table
#: doc/guix.texi:25393
msgid "Location of the repository cache."
msgstr ""

#. type: item
#: doc/guix.texi:25394
#, no-wrap
msgid "@code{user} (default: @code{\"cuirass\"})"
msgstr ""

#. type: table
#: doc/guix.texi:25396
msgid "Owner of the @code{cuirass} process."
msgstr ""

#. type: item
#: doc/guix.texi:25397
#, no-wrap
msgid "@code{group} (default: @code{\"cuirass\"})"
msgstr ""

#. type: table
#: doc/guix.texi:25399
msgid "Owner's group of the @code{cuirass} process."
msgstr ""

#. type: item
#: doc/guix.texi:25400
#, no-wrap
msgid "@code{interval} (default: @code{60})"
msgstr ""

#. type: table
#: doc/guix.texi:25403
msgid ""
"Number of seconds between the poll of the repositories followed by the "
"Cuirass jobs."
msgstr ""

#. type: item
#: doc/guix.texi:25404
#, no-wrap
msgid "@code{database} (default: @code{\"/var/lib/cuirass/cuirass.db\"})"
msgstr ""

#. type: table
#: doc/guix.texi:25407
msgid ""
"Location of sqlite database which contains the build results and previously "
"added specifications."
msgstr ""

#. type: item
#: doc/guix.texi:25408
#, no-wrap
msgid "@code{ttl} (default: @code{(* 30 24 3600)})"
msgstr ""

#. type: table
#: doc/guix.texi:25412
msgid ""
"Specifies the time-to-live (TTL) in seconds of garbage collector roots that "
"are registered for build results.  This means that build results are "
"protected from garbage collection for at least @var{ttl} seconds."
msgstr ""

#. type: item
#: doc/guix.texi:25413
#, no-wrap
msgid "@code{port} (default: @code{8081})"
msgstr ""

#. type: table
#: doc/guix.texi:25415
msgid "Port number used by the HTTP server."
msgstr ""

#. type: table
#: doc/guix.texi:25419
msgid ""
"Listen on the network interface for @var{host}.  The default is to accept "
"connections from localhost."
msgstr ""

#. type: item
#: doc/guix.texi:25420
#, no-wrap
msgid "@code{specifications} (default: @code{#~'()})"
msgstr ""

#. type: table
#: doc/guix.texi:25426
msgid ""
"A gexp (@pxref{G-Expressions}) that evaluates to a list of specifications, "
"where a specification is an association list (@pxref{Associations Lists,,, "
"guile, GNU Guile Reference Manual}) whose keys are keywords (@code{#:keyword-"
"example}) as shown in the example above."
msgstr ""

#. type: item
#: doc/guix.texi:25427
#, no-wrap
msgid "@code{use-substitutes?} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:25430
msgid ""
"This allows using substitutes to avoid building every dependencies of a job "
"from source."
msgstr ""

#. type: item
#: doc/guix.texi:25431 doc/guix.texi:32053
#, no-wrap
msgid "@code{one-shot?} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:25433
msgid "Only evaluate specifications and build derivations once."
msgstr ""

#. type: item
#: doc/guix.texi:25434
#, no-wrap
msgid "@code{fallback?} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:25437
msgid ""
"When substituting a pre-built binary fails, fall back to building packages "
"locally."
msgstr ""

#. type: table
#: doc/guix.texi:25440
msgid "Extra options to pass when running the Cuirass processes."
msgstr ""

#. type: item
#: doc/guix.texi:25441
#, no-wrap
msgid "@code{cuirass} (default: @code{cuirass})"
msgstr ""

#. type: table
#: doc/guix.texi:25443
msgid "The Cuirass package to use."
msgstr ""

#. type: cindex
#: doc/guix.texi:25449
#, no-wrap
msgid "tlp"
msgstr ""

#. type: cindex
#: doc/guix.texi:25450
#, no-wrap
msgid "power management with TLP"
msgstr ""

#. type: subsubheading
#: doc/guix.texi:25451
#, no-wrap
msgid "TLP daemon"
msgstr ""

#. type: Plain text
#: doc/guix.texi:25455
msgid ""
"The @code{(gnu services pm)} module provides a Guix service definition for "
"the Linux power management tool TLP."
msgstr ""

#. type: Plain text
#: doc/guix.texi:25461
msgid ""
"TLP enables various powersaving modes in userspace and kernel.  Contrary to "
"@code{upower-service}, it is not a passive, monitoring tool, as it will "
"apply custom settings each time a new power source is detected.  More "
"information can be found at @uref{https://linrunner.de/en/tlp/tlp.html, TLP "
"home page}."
msgstr ""

#. type: deffn
#: doc/guix.texi:25462
#, no-wrap
msgid "{Scheme Variable} tlp-service-type"
msgstr ""

#. type: deffn
#: doc/guix.texi:25466
msgid ""
"The service type for the TLP tool.  The default settings are optimised for "
"battery life on most systems, but you can tweak them to your heart's content "
"by adding a valid @code{tlp-configuration}:"
msgstr ""

#. type: lisp
#: doc/guix.texi:25471
#, no-wrap
msgid ""
"(service tlp-service-type\n"
"         (tlp-configuration\n"
"          (cpu-scaling-governor-on-ac (list \"performance\"))\n"
"          (sched-powersave-on-bat? #t)))\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:25479
msgid ""
"Each parameter definition is preceded by its type; for example, "
"@samp{boolean foo} indicates that the @code{foo} parameter should be "
"specified as a boolean.  Types starting with @code{maybe-} denote parameters "
"that won't show up in TLP config file when their value is @code{'disabled}."
msgstr ""

#. type: Plain text
#: doc/guix.texi:25489
msgid "Available @code{tlp-configuration} fields are:"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25490
#, no-wrap
msgid "{@code{tlp-configuration} parameter} package tlp"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25492
msgid "The TLP package."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25495
#, no-wrap
msgid "{@code{tlp-configuration} parameter} boolean tlp-enable?"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25497
msgid "Set to true if you wish to enable TLP."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25502
#, no-wrap
msgid "{@code{tlp-configuration} parameter} string tlp-default-mode"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25505
msgid ""
"Default mode when no power supply can be detected.  Alternatives are AC and "
"BAT."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25507
msgid "Defaults to @samp{\"AC\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25510
#, no-wrap
msgid "{@code{tlp-configuration} parameter} non-negative-integer disk-idle-secs-on-ac"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25513
msgid ""
"Number of seconds Linux kernel has to wait after the disk goes idle, before "
"syncing on AC."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25518
#, no-wrap
msgid "{@code{tlp-configuration} parameter} non-negative-integer disk-idle-secs-on-bat"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25520
msgid "Same as @code{disk-idle-ac} but on BAT mode."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25522
msgid "Defaults to @samp{2}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25525
#, no-wrap
msgid "{@code{tlp-configuration} parameter} non-negative-integer max-lost-work-secs-on-ac"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25527
msgid "Dirty pages flushing periodicity, expressed in seconds."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25529 doc/guix.texi:25752 doc/guix.texi:27974
#: doc/guix.texi:27982
msgid "Defaults to @samp{15}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25532
#, no-wrap
msgid "{@code{tlp-configuration} parameter} non-negative-integer max-lost-work-secs-on-bat"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25534
msgid "Same as @code{max-lost-work-secs-on-ac} but on BAT mode."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25536
msgid "Defaults to @samp{60}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25539
#, no-wrap
msgid "{@code{tlp-configuration} parameter} maybe-space-separated-string-list cpu-scaling-governor-on-ac"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25543
msgid ""
"CPU frequency scaling governor on AC mode.  With intel_pstate driver, "
"alternatives are powersave and performance.  With acpi-cpufreq driver, "
"alternatives are ondemand, powersave, performance and conservative."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25548
#, no-wrap
msgid "{@code{tlp-configuration} parameter} maybe-space-separated-string-list cpu-scaling-governor-on-bat"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25550
msgid "Same as @code{cpu-scaling-governor-on-ac} but on BAT mode."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25555
#, no-wrap
msgid "{@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-scaling-min-freq-on-ac"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25557
msgid "Set the min available frequency for the scaling governor on AC."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25562
#, no-wrap
msgid "{@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-scaling-max-freq-on-ac"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25564
msgid "Set the max available frequency for the scaling governor on AC."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25569
#, no-wrap
msgid "{@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-scaling-min-freq-on-bat"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25571
msgid "Set the min available frequency for the scaling governor on BAT."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25576
#, no-wrap
msgid "{@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-scaling-max-freq-on-bat"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25578
msgid "Set the max available frequency for the scaling governor on BAT."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25583
#, no-wrap
msgid "{@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-min-perf-on-ac"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25586
msgid ""
"Limit the min P-state to control the power dissipation of the CPU, in AC "
"mode.  Values are stated as a percentage of the available performance."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25591
#, no-wrap
msgid "{@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-max-perf-on-ac"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25594
msgid ""
"Limit the max P-state to control the power dissipation of the CPU, in AC "
"mode.  Values are stated as a percentage of the available performance."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25599
#, no-wrap
msgid "{@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-min-perf-on-bat"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25601
msgid "Same as @code{cpu-min-perf-on-ac} on BAT mode."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25606
#, no-wrap
msgid "{@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-max-perf-on-bat"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25608
msgid "Same as @code{cpu-max-perf-on-ac} on BAT mode."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25613
#, no-wrap
msgid "{@code{tlp-configuration} parameter} maybe-boolean cpu-boost-on-ac?"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25615
msgid "Enable CPU turbo boost feature on AC mode."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25620
#, no-wrap
msgid "{@code{tlp-configuration} parameter} maybe-boolean cpu-boost-on-bat?"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25622
msgid "Same as @code{cpu-boost-on-ac?} on BAT mode."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25627
#, no-wrap
msgid "{@code{tlp-configuration} parameter} boolean sched-powersave-on-ac?"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25630
msgid ""
"Allow Linux kernel to minimize the number of CPU cores/hyper-threads used "
"under light load conditions."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25635
#, no-wrap
msgid "{@code{tlp-configuration} parameter} boolean sched-powersave-on-bat?"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25637
msgid "Same as @code{sched-powersave-on-ac?} but on BAT mode."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25642
#, no-wrap
msgid "{@code{tlp-configuration} parameter} boolean nmi-watchdog?"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25644
msgid "Enable Linux kernel NMI watchdog."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25649
#, no-wrap
msgid "{@code{tlp-configuration} parameter} maybe-string phc-controls"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25652
msgid ""
"For Linux kernels with PHC patch applied, change CPU voltages.  An example "
"value would be @samp{\"F:V F:V F:V F:V\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25657
#, no-wrap
msgid "{@code{tlp-configuration} parameter} string energy-perf-policy-on-ac"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25660
msgid ""
"Set CPU performance versus energy saving policy on AC.  Alternatives are "
"performance, normal, powersave."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25662 doc/guix.texi:25760 doc/guix.texi:25790
msgid "Defaults to @samp{\"performance\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25665
#, no-wrap
msgid "{@code{tlp-configuration} parameter} string energy-perf-policy-on-bat"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25667
msgid "Same as @code{energy-perf-policy-ac} but on BAT mode."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25669 doc/guix.texi:25767
msgid "Defaults to @samp{\"powersave\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25672
#, no-wrap
msgid "{@code{tlp-configuration} parameter} space-separated-string-list disks-devices"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25674
msgid "Hard disk devices."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25677
#, no-wrap
msgid "{@code{tlp-configuration} parameter} space-separated-string-list disk-apm-level-on-ac"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25679
msgid "Hard disk advanced power management level."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25682
#, no-wrap
msgid "{@code{tlp-configuration} parameter} space-separated-string-list disk-apm-level-on-bat"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25684
msgid "Same as @code{disk-apm-bat} but on BAT mode."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25687
#, no-wrap
msgid "{@code{tlp-configuration} parameter} maybe-space-separated-string-list disk-spindown-timeout-on-ac"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25690
msgid ""
"Hard disk spin down timeout.  One value has to be specified for each "
"declared hard disk."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25695
#, no-wrap
msgid "{@code{tlp-configuration} parameter} maybe-space-separated-string-list disk-spindown-timeout-on-bat"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25697
msgid "Same as @code{disk-spindown-timeout-on-ac} but on BAT mode."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25702
#, no-wrap
msgid "{@code{tlp-configuration} parameter} maybe-space-separated-string-list disk-iosched"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25706
msgid ""
"Select IO scheduler for disk devices.  One value has to be specified for "
"each declared hard disk.  Example alternatives are cfq, deadline and noop."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25711
#, no-wrap
msgid "{@code{tlp-configuration} parameter} string sata-linkpwr-on-ac"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25714
msgid ""
"SATA aggressive link power management (ALPM) level.  Alternatives are "
"min_power, medium_power, max_performance."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25716
msgid "Defaults to @samp{\"max_performance\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25719
#, no-wrap
msgid "{@code{tlp-configuration} parameter} string sata-linkpwr-on-bat"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25721
msgid "Same as @code{sata-linkpwr-ac} but on BAT mode."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25723
msgid "Defaults to @samp{\"min_power\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25726
#, no-wrap
msgid "{@code{tlp-configuration} parameter} maybe-string sata-linkpwr-blacklist"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25728
msgid "Exclude specified SATA host devices for link power management."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25733
#, no-wrap
msgid "{@code{tlp-configuration} parameter} maybe-on-off-boolean ahci-runtime-pm-on-ac?"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25736
msgid ""
"Enable Runtime Power Management for AHCI controller and disks on AC mode."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25741
#, no-wrap
msgid "{@code{tlp-configuration} parameter} maybe-on-off-boolean ahci-runtime-pm-on-bat?"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25743
msgid "Same as @code{ahci-runtime-pm-on-ac} on BAT mode."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25748
#, no-wrap
msgid "{@code{tlp-configuration} parameter} non-negative-integer ahci-runtime-pm-timeout"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25750
msgid "Seconds of inactivity before disk is suspended."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25755
#, no-wrap
msgid "{@code{tlp-configuration} parameter} string pcie-aspm-on-ac"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25758
msgid ""
"PCI Express Active State Power Management level.  Alternatives are default, "
"performance, powersave."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25763
#, no-wrap
msgid "{@code{tlp-configuration} parameter} string pcie-aspm-on-bat"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25765
msgid "Same as @code{pcie-aspm-ac} but on BAT mode."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25770
#, no-wrap
msgid "{@code{tlp-configuration} parameter} string radeon-power-profile-on-ac"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25773
msgid ""
"Radeon graphics clock speed level.  Alternatives are low, mid, high, auto, "
"default."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25775
msgid "Defaults to @samp{\"high\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25778
#, no-wrap
msgid "{@code{tlp-configuration} parameter} string radeon-power-profile-on-bat"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25780
msgid "Same as @code{radeon-power-ac} but on BAT mode."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25782
msgid "Defaults to @samp{\"low\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25785
#, no-wrap
msgid "{@code{tlp-configuration} parameter} string radeon-dpm-state-on-ac"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25788
msgid ""
"Radeon dynamic power management method (DPM).  Alternatives are battery, "
"performance."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25793
#, no-wrap
msgid "{@code{tlp-configuration} parameter} string radeon-dpm-state-on-bat"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25795
msgid "Same as @code{radeon-dpm-state-ac} but on BAT mode."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25797
msgid "Defaults to @samp{\"battery\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25800
#, no-wrap
msgid "{@code{tlp-configuration} parameter} string radeon-dpm-perf-level-on-ac"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25802
msgid "Radeon DPM performance level.  Alternatives are auto, low, high."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25804 doc/guix.texi:25811 doc/guix.texi:25885
msgid "Defaults to @samp{\"auto\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25807
#, no-wrap
msgid "{@code{tlp-configuration} parameter} string radeon-dpm-perf-level-on-bat"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25809
msgid "Same as @code{radeon-dpm-perf-ac} but on BAT mode."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25814
#, no-wrap
msgid "{@code{tlp-configuration} parameter} on-off-boolean wifi-pwr-on-ac?"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25816
msgid "Wifi power saving mode."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25821
#, no-wrap
msgid "{@code{tlp-configuration} parameter} on-off-boolean wifi-pwr-on-bat?"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25823
msgid "Same as @code{wifi-power-ac?} but on BAT mode."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25828
#, no-wrap
msgid "{@code{tlp-configuration} parameter} y-n-boolean wol-disable?"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25830
msgid "Disable wake on LAN."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25835
#, no-wrap
msgid "{@code{tlp-configuration} parameter} non-negative-integer sound-power-save-on-ac"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25838
msgid ""
"Timeout duration in seconds before activating audio power saving on Intel "
"HDA and AC97 devices.  A value of 0 disables power saving."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25843
#, no-wrap
msgid "{@code{tlp-configuration} parameter} non-negative-integer sound-power-save-on-bat"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25845
msgid "Same as @code{sound-powersave-ac} but on BAT mode."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25850
#, no-wrap
msgid "{@code{tlp-configuration} parameter} y-n-boolean sound-power-save-controller?"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25852
msgid "Disable controller in powersaving mode on Intel HDA devices."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25857
#, no-wrap
msgid "{@code{tlp-configuration} parameter} boolean bay-poweroff-on-bat?"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25861
msgid ""
"Enable optical drive in UltraBay/MediaBay on BAT mode.  Drive can be powered "
"on again by releasing (and reinserting) the eject lever or by pressing the "
"disc eject button on newer models."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25866
#, no-wrap
msgid "{@code{tlp-configuration} parameter} string bay-device"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25868
msgid "Name of the optical drive device to power off."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25870
msgid "Defaults to @samp{\"sr0\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25873
#, no-wrap
msgid "{@code{tlp-configuration} parameter} string runtime-pm-on-ac"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25876
msgid ""
"Runtime Power Management for PCI(e) bus devices.  Alternatives are on and "
"auto."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25878
msgid "Defaults to @samp{\"on\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25881
#, no-wrap
msgid "{@code{tlp-configuration} parameter} string runtime-pm-on-bat"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25883
msgid "Same as @code{runtime-pm-ac} but on BAT mode."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25888
#, no-wrap
msgid "{@code{tlp-configuration} parameter} boolean runtime-pm-all?"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25891
msgid ""
"Runtime Power Management for all PCI(e) bus devices, except blacklisted ones."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25896
#, no-wrap
msgid "{@code{tlp-configuration} parameter} maybe-space-separated-string-list runtime-pm-blacklist"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25898
msgid ""
"Exclude specified PCI(e) device addresses from Runtime Power Management."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25903
#, no-wrap
msgid "{@code{tlp-configuration} parameter} space-separated-string-list runtime-pm-driver-blacklist"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25906
msgid ""
"Exclude PCI(e) devices assigned to the specified drivers from Runtime Power "
"Management."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25909
#, no-wrap
msgid "{@code{tlp-configuration} parameter} boolean usb-autosuspend?"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25911
msgid "Enable USB autosuspend feature."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25916
#, no-wrap
msgid "{@code{tlp-configuration} parameter} maybe-string usb-blacklist"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25918
msgid "Exclude specified devices from USB autosuspend."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25923
#, no-wrap
msgid "{@code{tlp-configuration} parameter} boolean usb-blacklist-wwan?"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25925
msgid "Exclude WWAN devices from USB autosuspend."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25930
#, no-wrap
msgid "{@code{tlp-configuration} parameter} maybe-string usb-whitelist"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25933
msgid ""
"Include specified devices into USB autosuspend, even if they are already "
"excluded by the driver or via @code{usb-blacklist-wwan?}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25938
#, no-wrap
msgid "{@code{tlp-configuration} parameter} maybe-boolean usb-autosuspend-disable-on-shutdown?"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25940
msgid "Enable USB autosuspend before shutdown."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25945
#, no-wrap
msgid "{@code{tlp-configuration} parameter} boolean restore-device-state-on-startup?"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:25948
msgid ""
"Restore radio device state (bluetooth, wifi, wwan) from previous shutdown on "
"system startup."
msgstr ""

#. type: cindex
#: doc/guix.texi:25953
#, no-wrap
msgid "thermald"
msgstr ""

#. type: cindex
#: doc/guix.texi:25954
#, no-wrap
msgid "CPU frequency scaling with thermald"
msgstr ""

#. type: subsubheading
#: doc/guix.texi:25955
#, no-wrap
msgid "Thermald daemon"
msgstr ""

#. type: Plain text
#: doc/guix.texi:25959
msgid ""
"The @code{(gnu services pm)} module provides an interface to thermald, a CPU "
"frequency scaling service which helps prevent overheating."
msgstr ""

#. type: defvr
#: doc/guix.texi:25960
#, no-wrap
msgid "{Scheme Variable} thermald-service-type"
msgstr ""

#. type: defvr
#: doc/guix.texi:25965
msgid ""
"This is the service type for @uref{https://01.org/linux-thermal-daemon/, "
"thermald}, the Linux Thermal Daemon, which is responsible for controlling "
"the thermal state of processors and preventing overheating."
msgstr ""

#. type: deftp
#: doc/guix.texi:25967
#, no-wrap
msgid "{Data Type} thermald-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:25969
msgid ""
"Data type representing the configuration of @code{thermald-service-type}."
msgstr ""

#. type: item
#: doc/guix.texi:25971
#, no-wrap
msgid "@code{ignore-cpuid-check?} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:25973
msgid "Ignore cpuid check for supported CPU models."
msgstr ""

#. type: item
#: doc/guix.texi:25974
#, no-wrap
msgid "@code{thermald} (default: @var{thermald})"
msgstr ""

#. type: table
#: doc/guix.texi:25976
msgid "Package object of thermald."
msgstr ""

#. type: Plain text
#: doc/guix.texi:25985
msgid ""
"The @code{(gnu services audio)} module provides a service to start MPD (the "
"Music Player Daemon)."
msgstr ""

#. type: cindex
#: doc/guix.texi:25986
#, no-wrap
msgid "mpd"
msgstr ""

#. type: subsubheading
#: doc/guix.texi:25987
#, no-wrap
msgid "Music Player Daemon"
msgstr ""

#. type: Plain text
#: doc/guix.texi:25992
msgid ""
"The Music Player Daemon (MPD) is a service that can play music while being "
"controlled from the local machine or over the network by a variety of "
"clients."
msgstr ""

#. type: Plain text
#: doc/guix.texi:25995
msgid ""
"The following example shows how one might run @code{mpd} as user @code{\"bob"
"\"} on port @code{6666}.  It uses pulseaudio for output."
msgstr ""

#. type: lisp
#: doc/guix.texi:26001
#, no-wrap
msgid ""
"(service mpd-service-type\n"
"         (mpd-configuration\n"
"          (user \"bob\")\n"
"          (port \"6666\")))\n"
msgstr ""

#. type: defvr
#: doc/guix.texi:26003
#, no-wrap
msgid "{Scheme Variable} mpd-service-type"
msgstr ""

#. type: defvr
#: doc/guix.texi:26005
msgid "The service type for @command{mpd}"
msgstr ""

#. type: deftp
#: doc/guix.texi:26007
#, no-wrap
msgid "{Data Type} mpd-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:26009
msgid "Data type representing the configuration of @command{mpd}."
msgstr ""

#. type: item
#: doc/guix.texi:26011
#, no-wrap
msgid "@code{user} (default: @code{\"mpd\"})"
msgstr ""

#. type: table
#: doc/guix.texi:26013
msgid "The user to run mpd as."
msgstr ""

#. type: item
#: doc/guix.texi:26014
#, no-wrap
msgid "@code{music-dir} (default: @code{\"~/Music\"})"
msgstr ""

#. type: table
#: doc/guix.texi:26016
msgid "The directory to scan for music files."
msgstr ""

#. type: item
#: doc/guix.texi:26017
#, no-wrap
msgid "@code{playlist-dir} (default: @code{\"~/.mpd/playlists\"})"
msgstr ""

#. type: table
#: doc/guix.texi:26019
msgid "The directory to store playlists."
msgstr ""

#. type: item
#: doc/guix.texi:26020
#, no-wrap
msgid "@code{db-file} (default: @code{\"~/.mpd/tag_cache\"})"
msgstr ""

#. type: table
#: doc/guix.texi:26022
msgid "The location of the music database."
msgstr ""

#. type: item
#: doc/guix.texi:26023
#, no-wrap
msgid "@code{state-file} (default: @code{\"~/.mpd/state\"})"
msgstr ""

#. type: table
#: doc/guix.texi:26025
msgid "The location of the file that stores current MPD's state."
msgstr ""

#. type: item
#: doc/guix.texi:26026
#, no-wrap
msgid "@code{sticker-file} (default: @code{\"~/.mpd/sticker.sql\"})"
msgstr ""

#. type: table
#: doc/guix.texi:26028
msgid "The location of the sticker database."
msgstr ""

#. type: item
#: doc/guix.texi:26029
#, no-wrap
msgid "@code{port} (default: @code{\"6600\"})"
msgstr ""

#. type: table
#: doc/guix.texi:26031
msgid "The port to run mpd on."
msgstr ""

#. type: item
#: doc/guix.texi:26032
#, no-wrap
msgid "@code{address} (default: @code{\"any\"})"
msgstr ""

#. type: table
#: doc/guix.texi:26035
msgid ""
"The address that mpd will bind to.  To use a Unix domain socket, an absolute "
"path can be specified here."
msgstr ""

#. type: item
#: doc/guix.texi:26036
#, no-wrap
msgid "@code{outputs} (default: @code{\"(list (mpd-output))\"})"
msgstr ""

#. type: table
#: doc/guix.texi:26038
msgid ""
"The audio outputs that MPD can use.  By default this is a single output "
"using pulseaudio."
msgstr ""

#. type: deftp
#: doc/guix.texi:26042
#, no-wrap
msgid "{Data Type} mpd-output"
msgstr ""

#. type: deftp
#: doc/guix.texi:26044
msgid "Data type representing an @command{mpd} audio output."
msgstr ""

#. type: item
#: doc/guix.texi:26046
#, no-wrap
msgid "@code{name} (default: @code{\"MPD\"})"
msgstr ""

#. type: table
#: doc/guix.texi:26048
msgid "The name of the audio output."
msgstr ""

#. type: item
#: doc/guix.texi:26049
#, no-wrap
msgid "@code{type} (default: @code{\"pulse\"})"
msgstr ""

#. type: table
#: doc/guix.texi:26051
msgid "The type of audio output."
msgstr ""

#. type: item
#: doc/guix.texi:26052
#, no-wrap
msgid "@code{enabled?} (default: @code{#t})"
msgstr ""

#. type: table
#: doc/guix.texi:26057
msgid ""
"Specifies whether this audio output is enabled when MPD is started.  By "
"default, all audio outputs are enabled.  This is just the default setting "
"when there is no state file; with a state file, the previous state is "
"restored."
msgstr ""

#. type: item
#: doc/guix.texi:26058
#, no-wrap
msgid "@code{tags?} (default: @code{#t})"
msgstr ""

#. type: table
#: doc/guix.texi:26062
msgid ""
"If set to @code{#f}, then MPD will not send tags to this output.  This is "
"only useful for output plugins that can receive tags, for example the "
"@code{httpd} output plugin."
msgstr ""

#. type: item
#: doc/guix.texi:26063
#, no-wrap
msgid "@code{always-on?} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:26067
msgid ""
"If set to @code{#t}, then MPD attempts to keep this audio output always "
"open. This may be useful for streaming servers, when you don’t want to "
"disconnect all listeners even when playback is accidentally stopped."
msgstr ""

#. type: code{#1}
#: doc/guix.texi:26068
#, no-wrap
msgid "mixer-type"
msgstr ""

#. type: table
#: doc/guix.texi:26074
msgid ""
"This field accepts a symbol that specifies which mixer should be used for "
"this audio output: the @code{hardware} mixer, the @code{software} mixer, the "
"@code{null} mixer (allows setting the volume, but with no effect; this can "
"be used as a trick to implement an external mixer External Mixer) or no "
"mixer (@code{none})."
msgstr ""

#. type: table
#: doc/guix.texi:26078
msgid ""
"An association list of option symbols to string values to be appended to the "
"audio output configuration."
msgstr ""

#. type: Plain text
#: doc/guix.texi:26084
msgid ""
"The following example shows a configuration of @code{mpd} that provides an "
"HTTP audio streaming output."
msgstr ""

#. type: lisp
#: doc/guix.texi:26096
#, no-wrap
msgid ""
"(service mpd-service-type\n"
"         (mpd-configuration\n"
"           (outputs\n"
"             (list (mpd-output\n"
"                     (name \"streaming\")\n"
"                     (type \"httpd\")\n"
"                     (mixer-type 'null)\n"
"                     (extra-options\n"
"                      `((encoder . \"vorbis\")\n"
"                        (port    . \"8080\"))))))))\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:26105
msgid ""
"The @code{(gnu services virtualization)} module provides services for the "
"libvirt and virtlog daemons, as well as other virtualization-related "
"services."
msgstr ""

#. type: subsubheading
#: doc/guix.texi:26106
#, no-wrap
msgid "Libvirt daemon"
msgstr ""

#. type: Plain text
#: doc/guix.texi:26111
msgid ""
"@code{libvirtd} is the server side daemon component of the libvirt "
"virtualization management system. This daemon runs on host servers and "
"performs required management tasks for virtualized guests."
msgstr ""

#. type: deffn
#: doc/guix.texi:26112
#, no-wrap
msgid "{Scheme Variable} libvirt-service-type"
msgstr ""

#. type: deffn
#: doc/guix.texi:26115
msgid ""
"This is the type of the @uref{https://libvirt.org, libvirt daemon}.  Its "
"value must be a @code{libvirt-configuration}."
msgstr ""

#. type: lisp
#: doc/guix.texi:26121
#, no-wrap
msgid ""
"(service libvirt-service-type\n"
"         (libvirt-configuration\n"
"          (unix-sock-group \"libvirt\")\n"
"          (tls-port \"16555\")))\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:26126
msgid "Available @code{libvirt-configuration} fields are:"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26127
#, no-wrap
msgid "{@code{libvirt-configuration} parameter} package libvirt"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26129
msgid "Libvirt package."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26132
#, no-wrap
msgid "{@code{libvirt-configuration} parameter} boolean listen-tls?"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26135
msgid ""
"Flag listening for secure TLS connections on the public TCP/IP port.  You "
"must set @code{listen} for this to have any effect."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26138
msgid ""
"It is necessary to setup a CA and issue server certificates before using "
"this capability."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26143
#, no-wrap
msgid "{@code{libvirt-configuration} parameter} boolean listen-tcp?"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26146
msgid ""
"Listen for unencrypted TCP connections on the public TCP/IP port.  You must "
"set @code{listen} for this to have any effect."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26150
msgid ""
"Using the TCP socket requires SASL authentication by default.  Only SASL "
"mechanisms which support data encryption are allowed.  This is DIGEST_MD5 "
"and GSSAPI (Kerberos5)."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26155
#, no-wrap
msgid "{@code{libvirt-configuration} parameter} string tls-port"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26158
msgid ""
"Port for accepting secure TLS connections.  This can be a port number, or "
"service name."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26160
msgid "Defaults to @samp{\"16514\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26163
#, no-wrap
msgid "{@code{libvirt-configuration} parameter} string tcp-port"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26166
msgid ""
"Port for accepting insecure TCP connections.  This can be a port number, or "
"service name."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26168
msgid "Defaults to @samp{\"16509\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26171
#, no-wrap
msgid "{@code{libvirt-configuration} parameter} string listen-addr"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26173
msgid "IP address or hostname used for client connections."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26175
msgid "Defaults to @samp{\"0.0.0.0\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26178
#, no-wrap
msgid "{@code{libvirt-configuration} parameter} boolean mdns-adv?"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26180
msgid "Flag toggling mDNS advertisement of the libvirt service."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26183
msgid ""
"Alternatively can disable for all services on a host by stopping the Avahi "
"daemon."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26188
#, no-wrap
msgid "{@code{libvirt-configuration} parameter} string mdns-name"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26191
msgid ""
"Default mDNS advertisement name.  This must be unique on the immediate "
"broadcast network."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26193
msgid "Defaults to @samp{\"Virtualization Host <hostname>\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26196
#, no-wrap
msgid "{@code{libvirt-configuration} parameter} string unix-sock-group"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26200
msgid ""
"UNIX domain socket group ownership.  This can be used to allow a 'trusted' "
"set of users access to management capabilities without becoming root."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26205
#, no-wrap
msgid "{@code{libvirt-configuration} parameter} string unix-sock-ro-perms"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26208
msgid ""
"UNIX socket permissions for the R/O socket.  This is used for monitoring VM "
"status only."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26210 doc/guix.texi:26228
msgid "Defaults to @samp{\"0777\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26213
#, no-wrap
msgid "{@code{libvirt-configuration} parameter} string unix-sock-rw-perms"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26217
msgid ""
"UNIX socket permissions for the R/W socket.  Default allows only root.  If "
"PolicyKit is enabled on the socket, the default will change to allow "
"everyone (eg, 0777)"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26219
msgid "Defaults to @samp{\"0770\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26222
#, no-wrap
msgid "{@code{libvirt-configuration} parameter} string unix-sock-admin-perms"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26226
msgid ""
"UNIX socket permissions for the admin socket.  Default allows only owner "
"(root), do not change it unless you are sure to whom you are exposing the "
"access to."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26231
#, no-wrap
msgid "{@code{libvirt-configuration} parameter} string unix-sock-dir"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26233
msgid "The directory in which sockets will be found/created."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26235
msgid "Defaults to @samp{\"/var/run/libvirt\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26238
#, no-wrap
msgid "{@code{libvirt-configuration} parameter} string auth-unix-ro"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26241
msgid ""
"Authentication scheme for UNIX read-only sockets.  By default socket "
"permissions allow anyone to connect"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26243 doc/guix.texi:26252
msgid "Defaults to @samp{\"polkit\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26246
#, no-wrap
msgid "{@code{libvirt-configuration} parameter} string auth-unix-rw"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26250
msgid ""
"Authentication scheme for UNIX read-write sockets.  By default socket "
"permissions only allow root.  If PolicyKit support was compiled into "
"libvirt, the default will be to use 'polkit' auth."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26255
#, no-wrap
msgid "{@code{libvirt-configuration} parameter} string auth-tcp"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26259
msgid ""
"Authentication scheme for TCP sockets.  If you don't enable SASL, then all "
"TCP traffic is cleartext.  Don't do this outside of a dev/test scenario."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26261
msgid "Defaults to @samp{\"sasl\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26264
#, no-wrap
msgid "{@code{libvirt-configuration} parameter} string auth-tls"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26268
msgid ""
"Authentication scheme for TLS sockets.  TLS sockets already have encryption "
"provided by the TLS layer, and limited authentication is done by "
"certificates."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26271
msgid ""
"It is possible to make use of any SASL authentication mechanism as well, by "
"using 'sasl' for this option"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26273
msgid "Defaults to @samp{\"none\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26276
#, no-wrap
msgid "{@code{libvirt-configuration} parameter} optional-list access-drivers"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26278
msgid "API access control scheme."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26281
msgid ""
"By default an authenticated user is allowed access to all APIs.  Access "
"drivers can place restrictions on this."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26286
#, no-wrap
msgid "{@code{libvirt-configuration} parameter} string key-file"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26289
msgid ""
"Server key file path.  If set to an empty string, then no private key is "
"loaded."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26294
#, no-wrap
msgid "{@code{libvirt-configuration} parameter} string cert-file"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26297
msgid ""
"Server key file path.  If set to an empty string, then no certificate is "
"loaded."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26302
#, no-wrap
msgid "{@code{libvirt-configuration} parameter} string ca-file"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26305
msgid ""
"Server key file path.  If set to an empty string, then no CA certificate is "
"loaded."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26310
#, no-wrap
msgid "{@code{libvirt-configuration} parameter} string crl-file"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26313
msgid ""
"Certificate revocation list path.  If set to an empty string, then no CRL is "
"loaded."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26318
#, no-wrap
msgid "{@code{libvirt-configuration} parameter} boolean tls-no-sanity-cert"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26320
msgid "Disable verification of our own server certificates."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26323
msgid ""
"When libvirtd starts it performs some sanity checks against its own "
"certificates."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26328
#, no-wrap
msgid "{@code{libvirt-configuration} parameter} boolean tls-no-verify-cert"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26330
msgid "Disable verification of client certificates."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26334
msgid ""
"Client certificate verification is the primary authentication mechanism.  "
"Any client which does not present a certificate signed by the CA will be "
"rejected."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26339
#, no-wrap
msgid "{@code{libvirt-configuration} parameter} optional-list tls-allowed-dn-list"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26341
msgid "Whitelist of allowed x509 Distinguished Name."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26346
#, no-wrap
msgid "{@code{libvirt-configuration} parameter} optional-list sasl-allowed-usernames"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26349
msgid ""
"Whitelist of allowed SASL usernames.  The format for username depends on the "
"SASL authentication mechanism."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26354
#, no-wrap
msgid "{@code{libvirt-configuration} parameter} string tls-priority"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26358
msgid ""
"Override the compile time default TLS priority string.  The default is "
"usually @samp{\"NORMAL\"} unless overridden at build time.  Only set this is "
"it is desired for libvirt to deviate from the global default settings."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26360
msgid "Defaults to @samp{\"NORMAL\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26363
#, no-wrap
msgid "{@code{libvirt-configuration} parameter} integer max-clients"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26366 doc/guix.texi:26790
msgid ""
"Maximum number of concurrent client connections to allow over all sockets "
"combined."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26368
msgid "Defaults to @samp{5000}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26371
#, no-wrap
msgid "{@code{libvirt-configuration} parameter} integer max-queued-clients"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26375
msgid ""
"Maximum length of queue of connections waiting to be accepted by the "
"daemon.  Note, that some protocols supporting retransmission may obey this "
"so that a later reattempt at connection succeeds."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26380
#, no-wrap
msgid "{@code{libvirt-configuration} parameter} integer max-anonymous-clients"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26383
msgid ""
"Maximum length of queue of accepted but not yet authenticated clients.  Set "
"this to zero to turn this feature off"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26385 doc/guix.texi:26403 doc/guix.texi:26419
msgid "Defaults to @samp{20}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26388
#, no-wrap
msgid "{@code{libvirt-configuration} parameter} integer min-workers"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26390
msgid "Number of workers to start up initially."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26395
#, no-wrap
msgid "{@code{libvirt-configuration} parameter} integer max-workers"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26397
msgid "Maximum number of worker threads."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26401
msgid ""
"If the number of active clients exceeds @code{min-workers}, then more "
"threads are spawned, up to max_workers limit.  Typically you'd want "
"max_workers to equal maximum number of clients allowed."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26406
#, no-wrap
msgid "{@code{libvirt-configuration} parameter} integer prio-workers"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26410
msgid ""
"Number of priority workers.  If all workers from above pool are stuck, some "
"calls marked as high priority (notably domainDestroy) can be executed in "
"this pool."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26415
#, no-wrap
msgid "{@code{libvirt-configuration} parameter} integer max-requests"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26417
msgid "Total global limit on concurrent RPC calls."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26422
#, no-wrap
msgid "{@code{libvirt-configuration} parameter} integer max-client-requests"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26426
msgid ""
"Limit on concurrent requests from a single client connection.  To avoid one "
"client monopolizing the server this should be a small fraction of the global "
"max_requests and max_workers parameter."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26431
#, no-wrap
msgid "{@code{libvirt-configuration} parameter} integer admin-min-workers"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26433
msgid "Same as @code{min-workers} but for the admin interface."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26438
#, no-wrap
msgid "{@code{libvirt-configuration} parameter} integer admin-max-workers"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26440
msgid "Same as @code{max-workers} but for the admin interface."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26445
#, no-wrap
msgid "{@code{libvirt-configuration} parameter} integer admin-max-clients"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26447
msgid "Same as @code{max-clients} but for the admin interface."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26452
#, no-wrap
msgid "{@code{libvirt-configuration} parameter} integer admin-max-queued-clients"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26454
msgid "Same as @code{max-queued-clients} but for the admin interface."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26459
#, no-wrap
msgid "{@code{libvirt-configuration} parameter} integer admin-max-client-requests"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26461
msgid "Same as @code{max-client-requests} but for the admin interface."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26466
#, no-wrap
msgid "{@code{libvirt-configuration} parameter} integer log-level"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26468 doc/guix.texi:26692
msgid "Logging level.  4 errors, 3 warnings, 2 information, 1 debug."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26473
#, no-wrap
msgid "{@code{libvirt-configuration} parameter} string log-filters"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26475 doc/guix.texi:26699
msgid "Logging filters."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26478
msgid ""
"A filter allows to select a different logging level for a given category of "
"logs.  The format for a filter is one of:"
msgstr ""

#. type: itemize
#: doc/guix.texi:26482 doc/guix.texi:26706
msgid "x:name"
msgstr ""

#. type: itemize
#: doc/guix.texi:26485 doc/guix.texi:26709
msgid "x:+name"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26496
msgid ""
"where @code{name} is a string which is matched against the category given in "
"the @code{VIR_LOG_INIT()} at the top of each libvirt source file, e.g., "
"@samp{\"remote\"}, @samp{\"qemu\"}, or @samp{\"util.json\"} (the name in the "
"filter can be a substring of the full category name, in order to match "
"multiple similar categories), the optional @samp{\"+\"} prefix tells libvirt "
"to log stack trace for each message matching name, and @code{x} is the "
"minimal level where matching messages should be logged:"
msgstr ""

#. type: itemize
#: doc/guix.texi:26500 doc/guix.texi:26545 doc/guix.texi:26723
#: doc/guix.texi:26768
msgid "1: DEBUG"
msgstr ""

#. type: itemize
#: doc/guix.texi:26503 doc/guix.texi:26548 doc/guix.texi:26726
#: doc/guix.texi:26771
msgid "2: INFO"
msgstr ""

#. type: itemize
#: doc/guix.texi:26506 doc/guix.texi:26551 doc/guix.texi:26729
#: doc/guix.texi:26774
msgid "3: WARNING"
msgstr ""

#. type: itemize
#: doc/guix.texi:26509 doc/guix.texi:26554 doc/guix.texi:26732
#: doc/guix.texi:26777
msgid "4: ERROR"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26514 doc/guix.texi:26737
msgid ""
"Multiple filters can be defined in a single filters statement, they just "
"need to be separated by spaces."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26516 doc/guix.texi:26739
msgid "Defaults to @samp{\"3:remote 4:event\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26519
#, no-wrap
msgid "{@code{libvirt-configuration} parameter} string log-outputs"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26521 doc/guix.texi:26744
msgid "Logging outputs."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26524
msgid ""
"An output is one of the places to save logging information.  The format for "
"an output can be:"
msgstr ""

#. type: item
#: doc/guix.texi:26526 doc/guix.texi:26749
#, no-wrap
msgid "x:stderr"
msgstr ""

#. type: table
#: doc/guix.texi:26528 doc/guix.texi:26751
msgid "output goes to stderr"
msgstr ""

#. type: item
#: doc/guix.texi:26529 doc/guix.texi:26752
#, no-wrap
msgid "x:syslog:name"
msgstr ""

#. type: table
#: doc/guix.texi:26531 doc/guix.texi:26754
msgid "use syslog for the output and use the given name as the ident"
msgstr ""

#. type: item
#: doc/guix.texi:26532 doc/guix.texi:26755
#, no-wrap
msgid "x:file:file_path"
msgstr ""

#. type: table
#: doc/guix.texi:26534 doc/guix.texi:26757
msgid "output to a file, with the given filepath"
msgstr ""

#. type: item
#: doc/guix.texi:26535 doc/guix.texi:26758
#, no-wrap
msgid "x:journald"
msgstr ""

#. type: table
#: doc/guix.texi:26537 doc/guix.texi:26760
msgid "output to journald logging system"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26541 doc/guix.texi:26764
msgid "In all case the x prefix is the minimal level, acting as a filter"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26559 doc/guix.texi:26782
msgid ""
"Multiple outputs can be defined, they just need to be separated by spaces."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26561 doc/guix.texi:26784
msgid "Defaults to @samp{\"3:stderr\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26564
#, no-wrap
msgid "{@code{libvirt-configuration} parameter} integer audit-level"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26566
msgid "Allows usage of the auditing subsystem to be altered"
msgstr ""

#. type: itemize
#: doc/guix.texi:26570
msgid "0: disable all auditing"
msgstr ""

#. type: itemize
#: doc/guix.texi:26573
msgid "1: enable auditing, only if enabled on host"
msgstr ""

#. type: itemize
#: doc/guix.texi:26576
msgid "2: enable auditing, and exit if disabled on host."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26583
#, no-wrap
msgid "{@code{libvirt-configuration} parameter} boolean audit-logging"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26585
msgid "Send audit messages via libvirt logging infrastructure."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26590
#, no-wrap
msgid "{@code{libvirt-configuration} parameter} optional-string host-uuid"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26592
msgid "Host UUID.  UUID must not have all digits be the same."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26597
#, no-wrap
msgid "{@code{libvirt-configuration} parameter} string host-uuid-source"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26599
msgid "Source to read host UUID."
msgstr ""

#. type: itemize
#: doc/guix.texi:26603
msgid "@code{smbios}: fetch the UUID from @code{dmidecode -s system-uuid}"
msgstr ""

#. type: itemize
#: doc/guix.texi:26606
msgid "@code{machine-id}: fetch the UUID from @code{/etc/machine-id}"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26611
msgid ""
"If @code{dmidecode} does not provide a valid UUID a temporary UUID will be "
"generated."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26613
msgid "Defaults to @samp{\"smbios\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26616
#, no-wrap
msgid "{@code{libvirt-configuration} parameter} integer keepalive-interval"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26621
msgid ""
"A keepalive message is sent to a client after @code{keepalive_interval} "
"seconds of inactivity to check if the client is still responding.  If set to "
"-1, libvirtd will never send keepalive requests; however clients can still "
"send them and the daemon will send responses."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26626
#, no-wrap
msgid "{@code{libvirt-configuration} parameter} integer keepalive-count"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26630
msgid ""
"Maximum number of keepalive messages that are allowed to be sent to the "
"client without getting any response before the connection is considered "
"broken."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26637
msgid ""
"In other words, the connection is automatically closed approximately after "
"@code{keepalive_interval * (keepalive_count + 1)} seconds since the last "
"message received from the client.  When @code{keepalive-count} is set to 0, "
"connections will be automatically closed after @code{keepalive-interval} "
"seconds of inactivity without sending any keepalive messages."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26642
#, no-wrap
msgid "{@code{libvirt-configuration} parameter} integer admin-keepalive-interval"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26644 doc/guix.texi:26651
msgid "Same as above but for admin interface."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26649
#, no-wrap
msgid "{@code{libvirt-configuration} parameter} integer admin-keepalive-count"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26656
#, no-wrap
msgid "{@code{libvirt-configuration} parameter} integer ovs-timeout"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26658
msgid "Timeout for Open vSwitch calls."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26662
msgid ""
"The @code{ovs-vsctl} utility is used for the configuration and its timeout "
"option is set by default to 5 seconds to avoid potential infinite waits "
"blocking libvirt."
msgstr ""

#. type: subsubheading
#: doc/guix.texi:26669
#, no-wrap
msgid "Virtlog daemon"
msgstr ""

#. type: Plain text
#: doc/guix.texi:26672
msgid ""
"The virtlogd service is a server side daemon component of libvirt that is "
"used to manage logs from virtual machine consoles."
msgstr ""

#. type: Plain text
#: doc/guix.texi:26678
msgid ""
"This daemon is not used directly by libvirt client applications, rather it "
"is called on their behalf by @code{libvirtd}. By maintaining the logs in a "
"standalone daemon, the main @code{libvirtd} daemon can be restarted without "
"risk of losing logs. The @code{virtlogd} daemon has the ability to re-"
"exec()  itself upon receiving @code{SIGUSR1}, to allow live upgrades without "
"downtime."
msgstr ""

#. type: deffn
#: doc/guix.texi:26679
#, no-wrap
msgid "{Scheme Variable} virtlog-service-type"
msgstr ""

#. type: deffn
#: doc/guix.texi:26682
msgid ""
"This is the type of the virtlog daemon.  Its value must be a @code{virtlog-"
"configuration}."
msgstr ""

#. type: lisp
#: doc/guix.texi:26687
#, no-wrap
msgid ""
"(service virtlog-service-type\n"
"         (virtlog-configuration\n"
"          (max-clients 1000)))\n"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26690
#, no-wrap
msgid "{@code{virtlog-configuration} parameter} integer log-level"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26697
#, no-wrap
msgid "{@code{virtlog-configuration} parameter} string log-filters"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26702
msgid ""
"A filter allows to select a different logging level for a given category of "
"logs The format for a filter is one of:"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26719
msgid ""
"where @code{name} is a string which is matched against the category given in "
"the @code{VIR_LOG_INIT()} at the top of each libvirt source file, e.g., "
"\"remote\", \"qemu\", or \"util.json\" (the name in the filter can be a "
"substring of the full category name, in order to match multiple similar "
"categories), the optional \"+\" prefix tells libvirt to log stack trace for "
"each message matching name, and @code{x} is the minimal level where matching "
"messages should be logged:"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26742
#, no-wrap
msgid "{@code{virtlog-configuration} parameter} string log-outputs"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26747
msgid ""
"An output is one of the places to save logging information The format for an "
"output can be:"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26787
#, no-wrap
msgid "{@code{virtlog-configuration} parameter} integer max-clients"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26792
msgid "Defaults to @samp{1024}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26795
#, no-wrap
msgid "{@code{virtlog-configuration} parameter} integer max-size"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26797
msgid "Maximum file size before rolling over."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26799
msgid "Defaults to @samp{2MB}"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26802
#, no-wrap
msgid "{@code{virtlog-configuration} parameter} integer max-backups"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26804
msgid "Maximum number of backup files to keep."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:26806
msgid "Defaults to @samp{3}"
msgstr ""

#. type: anchor{#1}
#: doc/guix.texi:26810
msgid "transparent-emulation-qemu"
msgstr ""

#. type: subsubheading
#: doc/guix.texi:26810
#, no-wrap
msgid "Transparent Emulation with QEMU"
msgstr ""

#. type: cindex
#: doc/guix.texi:26812
#, no-wrap
msgid "emulation"
msgstr ""

#. type: code{#1}
#: doc/guix.texi:26813
#, no-wrap
msgid "binfmt_misc"
msgstr ""

#. type: Plain text
#: doc/guix.texi:26821
msgid ""
"@code{qemu-binfmt-service-type} provides support for transparent emulation "
"of program binaries built for different architectures---e.g., it allows you "
"to transparently execute an ARMv7 program on an x86_64 machine.  It achieves "
"this by combining the @uref{https://www.qemu.org, QEMU} emulator and the "
"@code{binfmt_misc} feature of the kernel Linux.  This feature only allows "
"you to emulate GNU/Linux on a different architecture, but see below for GNU/"
"Hurd support."
msgstr ""

#. type: defvr
#: doc/guix.texi:26822
#, no-wrap
msgid "{Scheme Variable} qemu-binfmt-service-type"
msgstr ""

#. type: defvr
#: doc/guix.texi:26827
msgid ""
"This is the type of the QEMU/binfmt service for transparent emulation.  Its "
"value must be a @code{qemu-binfmt-configuration} object, which specifies the "
"QEMU package to use as well as the architecture we want to emulated:"
msgstr ""

#. type: lisp
#: doc/guix.texi:26832
#, no-wrap
msgid ""
"(service qemu-binfmt-service-type\n"
"         (qemu-binfmt-configuration\n"
"           (platforms (lookup-qemu-platforms \"arm\" \"aarch64\"))))\n"
msgstr ""

#. type: defvr
#: doc/guix.texi:26838
msgid ""
"In this example, we enable transparent emulation for the ARM and aarch64 "
"platforms.  Running @code{herd stop qemu-binfmt} turns it off, and running "
"@code{herd start qemu-binfmt} turns it back on (@pxref{Invoking herd, the "
"@command{herd} command,, shepherd, The GNU Shepherd Manual})."
msgstr ""

#. type: deftp
#: doc/guix.texi:26840
#, no-wrap
msgid "{Data Type} qemu-binfmt-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:26842
msgid "This is the configuration for the @code{qemu-binfmt} service."
msgstr ""

#. type: item
#: doc/guix.texi:26844
#, no-wrap
msgid "@code{platforms} (default: @code{'()})"
msgstr ""

#. type: table
#: doc/guix.texi:26847
msgid ""
"The list of emulated QEMU platforms.  Each item must be a @dfn{platform "
"object} as returned by @code{lookup-qemu-platforms} (see below)."
msgstr ""

#. type: item
#: doc/guix.texi:26848
#, no-wrap
msgid "@code{guix-support?} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:26854
msgid ""
"When it is true, QEMU and all its dependencies are added to the build "
"environment of @command{guix-daemon} (@pxref{Invoking guix-daemon, @option{--"
"chroot-directory} option}).  This allows the @code{binfmt_misc} handlers to "
"be used within the build environment, which in turn means that you can "
"transparently build programs for another architecture."
msgstr ""

#. type: table
#: doc/guix.texi:26857
msgid ""
"For example, let's suppose you're on an x86_64 machine and you have this "
"service:"
msgstr ""

#. type: lisp
#: doc/guix.texi:26863
#, no-wrap
msgid ""
"(service qemu-binfmt-service-type\n"
"         (qemu-binfmt-configuration\n"
"           (platforms (lookup-qemu-platforms \"arm\"))\n"
"           (guix-support? #t)))\n"
msgstr ""

#. type: table
#: doc/guix.texi:26866
msgid "You can run:"
msgstr ""

#. type: example
#: doc/guix.texi:26869
#, no-wrap
msgid "guix build -s armhf-linux inkscape\n"
msgstr ""

#. type: table
#: doc/guix.texi:26876
msgid ""
"and it will build Inkscape for ARMv7 @emph{as if it were a native build}, "
"transparently using QEMU to emulate the ARMv7 CPU.  Pretty handy if you'd "
"like to test a package build for an architecture you don't have access to!"
msgstr ""

#. type: item
#: doc/guix.texi:26877
#, no-wrap
msgid "@code{qemu} (default: @code{qemu})"
msgstr ""

#. type: table
#: doc/guix.texi:26879 doc/guix.texi:26973
msgid "The QEMU package to use."
msgstr ""

#. type: deffn
#: doc/guix.texi:26882
#, no-wrap
msgid "{Scheme Procedure} lookup-qemu-platforms @var{platforms}@dots{}"
msgstr ""

#. type: deffn
#: doc/guix.texi:26887
msgid ""
"Return the list of QEMU platform objects corresponding to @var{platforms}"
"@dots{}.  @var{platforms} must be a list of strings corresponding to "
"platform names, such as @code{\"arm\"}, @code{\"sparc\"}, @code{\"mips64el"
"\"}, and so on."
msgstr ""

#. type: deffn
#: doc/guix.texi:26889
#, no-wrap
msgid "{Scheme Procedure} qemu-platform? @var{obj}"
msgstr ""

#. type: deffn
#: doc/guix.texi:26891
msgid "Return true if @var{obj} is a platform object."
msgstr ""

#. type: deffn
#: doc/guix.texi:26893
#, no-wrap
msgid "{Scheme Procedure} qemu-platform-name @var{platform}"
msgstr ""

#. type: deffn
#: doc/guix.texi:26895
msgid "Return the name of @var{platform}---a string such as @code{\"arm\"}."
msgstr ""

#. type: subsubheading
#: doc/guix.texi:26898
#, no-wrap
msgid "The Hurd in a Virtual Machine"
msgstr ""

#. type: cindex
#: doc/guix.texi:26901
#, no-wrap
msgid "the Hurd"
msgstr ""

#. type: cindex
#: doc/guix.texi:26902
#, no-wrap
msgid "childhurd"
msgstr ""

#. type: Plain text
#: doc/guix.texi:26910
msgid ""
"Service @code{hurd-vm} provides support for running GNU/Hurd in a virtual "
"machine (VM), a so-called @dfn{childhurd}.  This service is meant to be used "
"on GNU/Linux and the given GNU/Hurd operating system configuration is cross-"
"compiled.  The virtual machine is a Shepherd service that can be referred to "
"by the names @code{hurd-vm} and @code{childhurd} and be controlled with "
"commands such as:"
msgstr ""

#. type: example
#: doc/guix.texi:26914
#, no-wrap
msgid ""
"herd start hurd-vm\n"
"herd stop childhurd\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:26918
msgid ""
"When the service is running, you can view its console by connecting to it "
"with a VNC client, for example with:"
msgstr ""

#. type: example
#: doc/guix.texi:26922
#, no-wrap
msgid ""
"guix environment --ad-hoc tigervnc-client -- \\\n"
"         vncviewer localhost:5900\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:26928
msgid ""
"The default configuration (see @code{hurd-vm-configuration} below)  spawns a "
"secure shell (SSH) server in your GNU/Hurd system, which QEMU (the virtual "
"machine emulator) redirects to port 10222 on the host.  Thus, you can "
"connect over SSH to the childhurd with:"
msgstr ""

#. type: example
#: doc/guix.texi:26931
#, no-wrap
msgid "ssh root@@localhost -p 10022\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:26940
msgid ""
"The childhurd is volatile and stateless: it starts with a fresh root file "
"system every time you restart it.  By default though, all the files under "
"@file{/etc/childhurd} on the host are copied as is to the root file system "
"of the childhurd when it boots.  This allows you to initialize ``secrets'' "
"inside the VM: SSH host keys, authorized substitute keys, and so on---see "
"the explanation of @code{secret-root} below."
msgstr ""

#. type: defvr
#: doc/guix.texi:26941
#, no-wrap
msgid "{Scheme Variable} hurd-vm-service-type"
msgstr ""

#. type: defvr
#: doc/guix.texi:26947
msgid ""
"This is the type of the Hurd in a Virtual Machine service.  Its value must "
"be a @code{hurd-vm-configuration} object, which specifies the operating "
"system (@pxref{operating-system Reference}) and the disk size for the Hurd "
"Virtual Machine, the QEMU package to use as well as the options for running "
"it."
msgstr ""

#. type: lisp
#: doc/guix.texi:26955
#, no-wrap
msgid ""
"(service hurd-vm-service-type\n"
"         (hurd-vm-configuration\n"
"          (disk-size (* 5000 (expt 2 20))) ;5G\n"
"          (memory-size 1024)))             ;1024MiB\n"
msgstr ""

#. type: defvr
#: doc/guix.texi:26959
msgid ""
"would create a disk image big enough to build GNU@tie{}Hello, with some "
"extra memory."
msgstr ""

#. type: deftp
#: doc/guix.texi:26961
#, no-wrap
msgid "{Data Type} hurd-vm-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:26964
msgid ""
"The data type representing the configuration for @code{hurd-vm-service-type}."
msgstr ""

#. type: item
#: doc/guix.texi:26966
#, no-wrap
msgid "@code{os} (default: @var{%hurd-vm-operating-system})"
msgstr ""

#. type: table
#: doc/guix.texi:26970
msgid ""
"The operating system to instantiate.  This default is bare-bones with a "
"permissive OpenSSH secure shell daemon listening on port 2222 "
"(@pxref{Networking Services, @code{openssh-service-type}})."
msgstr ""

#. type: item
#: doc/guix.texi:26971
#, no-wrap
msgid "@code{qemu} (default: @code{qemu-minimal})"
msgstr ""

#. type: item
#: doc/guix.texi:26974
#, no-wrap
msgid "@code{image} (default: @var{hurd-vm-disk-image})"
msgstr ""

#. type: table
#: doc/guix.texi:26977
msgid ""
"The procedure used to build the disk-image built from this configuration."
msgstr ""

#. type: item
#: doc/guix.texi:26978
#, no-wrap
msgid "@code{disk-size} (default: @code{'guess})"
msgstr ""

#. type: table
#: doc/guix.texi:26980
msgid "The size of the disk image."
msgstr ""

#. type: item
#: doc/guix.texi:26981
#, no-wrap
msgid "@code{memory-size} (default: @code{512})"
msgstr ""

#. type: table
#: doc/guix.texi:26983
msgid "The memory size of the Virtual Machine in mebibytes."
msgstr ""

#. type: item
#: doc/guix.texi:26984
#, no-wrap
msgid "@code{options} (default: @code{'(\"--snapshot\")})"
msgstr ""

#. type: table
#: doc/guix.texi:26986
msgid "The extra options for running QEMU."
msgstr ""

#. type: table
#: doc/guix.texi:26991
msgid ""
"If set, a non-zero positive integer used to parameterize Childhurd "
"instances.  It is appended to the service's name, e.g. @code{childhurd1}."
msgstr ""

#. type: item
#: doc/guix.texi:26992
#, no-wrap
msgid "@code{net-options} (default: @var{hurd-vm-net-options})"
msgstr ""

#. type: table
#: doc/guix.texi:26994
msgid "The procedure used to produce the list of QEMU networking options."
msgstr ""

#. type: table
#: doc/guix.texi:26996
msgid "By default, it produces"
msgstr ""

#. type: lisp
#: doc/guix.texi:27003
#, no-wrap
msgid ""
"'(\"--device\" \"rtl8139,netdev=net0\"\n"
"  \"--netdev\" \"user,id=net0\\\n"
"              ,hostfwd=tcp:127.0.0.1:@var{secrets-port}-:1004\\\n"
"              ,hostfwd=tcp:127.0.0.1:@var{ssh-port}-:2222\\\n"
"              ,hostfwd=tcp:127.0.0.1:@var{vnc-port}-:5900\")\n"
msgstr ""

#. type: table
#: doc/guix.texi:27006
msgid "with forwarded ports:"
msgstr ""

#. type: example
#: doc/guix.texi:27011
#, no-wrap
msgid ""
"@var{secrets-port}: @code{(+ 11004 (* 1000 @var{ID}))}\n"
"@var{ssh-port}: @code{(+ 10022 (* 1000 @var{ID}))}\n"
"@var{vnc-port}: @code{(+ 15900 (* 1000 @var{ID}))}\n"
msgstr ""

#. type: item
#: doc/guix.texi:27013
#, no-wrap
msgid "@code{secret-root} (default: @file{/etc/childhurd})"
msgstr ""

#. type: table
#: doc/guix.texi:27018
msgid ""
"The root directory with out-of-band secrets to be installed into the "
"childhurd once it runs.  Childhurds are volatile which means that on every "
"startup, secrets such as the SSH host keys and Guix signing key are "
"recreated."
msgstr ""

#. type: table
#: doc/guix.texi:27022
msgid ""
"If the @file{/etc/childhurd} directory does not exist, the @code{secret-"
"service} running in the Childhurd will be sent an empty list of secrets."
msgstr ""

#. type: table
#: doc/guix.texi:27025
msgid ""
"By default, the service automatically populates @file{/etc/childhurd} with "
"the following non-volatile secrets, unless they already exist:"
msgstr ""

#. type: example
#: doc/guix.texi:27034
#, no-wrap
msgid ""
"/etc/childhurd/etc/guix/acl\n"
"/etc/childhurd/etc/guix/signing-key.pub\n"
"/etc/childhurd/etc/guix/signing-key.sec\n"
"/etc/childhurd/etc/ssh/ssh_host_ed25519_key\n"
"/etc/childhurd/etc/ssh/ssh_host_ecdsa_key\n"
"/etc/childhurd/etc/ssh/ssh_host_ed25519_key.pub\n"
"/etc/childhurd/etc/ssh/ssh_host_ecdsa_key.pub\n"
msgstr ""

#. type: table
#: doc/guix.texi:27038
msgid ""
"These files are automatically sent to the guest Hurd VM when it boots, "
"including permissions."
msgstr ""

#. type: cindex
#: doc/guix.texi:27039
#, no-wrap
msgid "childhurd, offloading"
msgstr ""

#. type: cindex
#: doc/guix.texi:27040
#, no-wrap
msgid "Hurd, offloading"
msgstr ""

#. type: table
#: doc/guix.texi:27044
msgid ""
"Having these files in place means that only a couple of things are missing "
"to allow the host to offload @code{i586-gnu} builds to the childhurd:"
msgstr ""

#. type: enumerate
#: doc/guix.texi:27049
msgid ""
"Authorizing the childhurd's key on the host so that the host accepts build "
"results coming from the childhurd, which can be done like so:"
msgstr ""

#. type: example
#: doc/guix.texi:27053
#, no-wrap
msgid ""
"guix archive --authorize < \\\n"
"  /etc/childhurd/etc/guix/signing-key.pub\n"
msgstr ""

#. type: enumerate
#: doc/guix.texi:27058
msgid ""
"Adding the childhurd to @file{/etc/guix/machines.scm} (@pxref{Daemon Offload "
"Setup})."
msgstr ""

#. type: table
#: doc/guix.texi:27062
msgid ""
"We're working towards making that happen automatically---get in touch with "
"us at @email{guix-devel@@gnu.org} to discuss it!"
msgstr ""

#. type: Plain text
#: doc/guix.texi:27069
msgid ""
"Note that by default the VM image is volatile, i.e., once stopped the "
"contents are lost.  If you want a stateful image instead, override the "
"configuration's @code{image} and @code{options} without the @code{--"
"snapshot} flag using something along these lines:"
msgstr ""

#. type: lisp
#: doc/guix.texi:27075
#, no-wrap
msgid ""
"(service hurd-vm-service-type\n"
"         (hurd-vm-configuration\n"
"          (image   (const \"/out/of/store/writable/hurd.img\"))\n"
"          (options '())))\n"
msgstr ""

#. type: subsubheading
#: doc/guix.texi:27077
#, no-wrap
msgid "Ganeti"
msgstr ""

#. type: cindex
#: doc/guix.texi:27079
#, no-wrap
msgid "ganeti"
msgstr ""

#. type: quotation
#: doc/guix.texi:27086
msgid ""
"This service is considered experimental.  Configuration options may be "
"changed in a backwards-incompatible manner, and not all features have been "
"thorougly tested.  Users of this service are encouraged to share their "
"experience at @email{guix-devel@@gnu.org}."
msgstr ""

#. type: Plain text
#: doc/guix.texi:27096
msgid ""
"Ganeti is a virtual machine management system.  It is designed to keep "
"virtual machines running on a cluster of servers even in the event of "
"hardware failures, and to make maintenance and recovery tasks easy.  It "
"consists of multiple services which are described later in this section.  In "
"addition to the Ganeti service, you will need the OpenSSH service "
"(@pxref{Networking Services, @code{openssh-service-type}}), and update the "
"@file{/etc/hosts} file (@pxref{operating-system Reference, @code{hosts-"
"file}}) with the cluster name and address (or use a DNS server)."
msgstr ""

#. type: Plain text
#: doc/guix.texi:27101
msgid ""
"All nodes participating in a Ganeti cluster should have the same Ganeti and "
"@file{/etc/hosts} configuration.  Here is an example configuration for a "
"Ganeti cluster node that supports multiple storage backends, and installs "
"the @code{debootstrap} and @code{guix} @dfn{OS providers}:"
msgstr ""

#. type: lisp
#: doc/guix.texi:27111
#, no-wrap
msgid ""
"(use-package-modules virtualization)\n"
"(use-service-modules base ganeti networking ssh)\n"
"(operating-system\n"
"  ;; @dots{}\n"
"  (host-name \"node1\")\n"
"  (hosts-file (plain-file \"hosts\" (format #f \"\n"
"127.0.0.1       localhost\n"
"::1             localhost\n"
"\n"
msgstr ""

#. type: lisp
#: doc/guix.texi:27116
#, no-wrap
msgid ""
"192.168.1.200   ganeti.example.com\n"
"192.168.1.201   node1.example.com node1\n"
"192.168.1.202   node2.example.com node2\n"
"\")))\n"
"\n"
msgstr ""

#. type: lisp
#: doc/guix.texi:27130
#, no-wrap
msgid ""
"  ;; Install QEMU so we can use KVM-based instances, and LVM, DRBD and Ceph\n"
"  ;; in order to use the \"plain\", \"drbd\" and \"rbd\" storage backends.\n"
"  (packages (append (map specification->package\n"
"                         '(\"qemu\" \"lvm2\" \"drbd-utils\" \"ceph\"\n"
"                           ;; Add the debootstrap and guix OS providers.\n"
"                           \"ganeti-instance-guix\" \"ganeti-instance-debootstrap\"))\n"
"                    %base-packages))\n"
"  (services\n"
"   (append (list (static-networking-service \"eth0\" \"192.168.1.201\"\n"
"                                            #:netmask \"255.255.255.0\"\n"
"                                            #:gateway \"192.168.1.254\"\n"
"                                            #:name-servers '(\"192.168.1.252\"\n"
"                                                             \"192.168.1.253\"))\n"
"\n"
msgstr ""

#. type: lisp
#: doc/guix.texi:27135
#, no-wrap
msgid ""
"                 ;; Ganeti uses SSH to communicate between nodes.\n"
"                 (service openssh-service-type\n"
"                          (openssh-configuration\n"
"                           (permit-root-login 'without-password)))\n"
"\n"
msgstr ""

#. type: lisp
#: doc/guix.texi:27145
#, no-wrap
msgid ""
"                 (service ganeti-service-type\n"
"                          (ganeti-configuration\n"
"                           ;; This list specifies allowed file system paths\n"
"                           ;; for storing virtual machine images.\n"
"                           (file-storage-paths '(\"/srv/ganeti/file-storage\"))\n"
"                           ;; This variable configures a single \"variant\" for\n"
"                           ;; both Debootstrap and Guix that works with KVM.\n"
"                           (os %default-ganeti-os))))\n"
"           %base-services)))\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:27153
msgid ""
"Users are advised to read the @url{http://docs.ganeti.org/ganeti/master/html/"
"admin.html,Ganeti administrators guide} to learn about the various cluster "
"options and day-to-day operations.  There is also a @url{https://guix.gnu."
"org/blog/2020/running-a-ganeti-cluster-on-guix/,blog post} describing how to "
"configure and initialize a small cluster."
msgstr ""

#. type: defvr
#: doc/guix.texi:27154
#, no-wrap
msgid "{Scheme Variable} ganeti-service-type"
msgstr ""

#. type: defvr
#: doc/guix.texi:27157
msgid ""
"This is a service type that includes all the various services that Ganeti "
"nodes should run."
msgstr ""

#. type: defvr
#: doc/guix.texi:27162
msgid ""
"Its value is a @code{ganeti-configuration} object that defines the package "
"to use for CLI operations, as well as configuration for the various "
"daemons.  Allowed file storage paths and available guest operating systems "
"are also configured through this data type."
msgstr ""

#. type: deftp
#: doc/guix.texi:27164
#, no-wrap
msgid "{Data Type} ganeti-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:27166
msgid "The @code{ganeti} service takes the following configuration options:"
msgstr ""

#. type: item
#: doc/guix.texi:27168 doc/guix.texi:27396 doc/guix.texi:27446
#: doc/guix.texi:27476 doc/guix.texi:27503 doc/guix.texi:27535
#: doc/guix.texi:27588 doc/guix.texi:27608 doc/guix.texi:27634
#: doc/guix.texi:27667 doc/guix.texi:27707
#, no-wrap
msgid "@code{ganeti} (default: @code{ganeti})"
msgstr ""

#. type: table
#: doc/guix.texi:27173
msgid ""
"The @code{ganeti} package to use.  It will be installed to the system "
"profile and make @command{gnt-cluster}, @command{gnt-instance}, etc "
"available.  Note that the value specified here does not affect the other "
"services as each refer to a specific @code{ganeti} package (see below)."
msgstr ""

#. type: item
#: doc/guix.texi:27174
#, no-wrap
msgid "@code{noded-configuration} (default: @code{(ganeti-noded-configuration)})"
msgstr ""

#. type: itemx
#: doc/guix.texi:27175
#, no-wrap
msgid "@code{confd-configuration} (default: @code{(ganeti-confd-configuration)})"
msgstr ""

#. type: itemx
#: doc/guix.texi:27176
#, no-wrap
msgid "@code{wconfd-configuration} (default: @code{(ganeti-wconfd-configuration)})"
msgstr ""

#. type: itemx
#: doc/guix.texi:27177
#, no-wrap
msgid "@code{luxid-configuration} (default: @code{(ganeti-luxid-configuration)})"
msgstr ""

#. type: itemx
#: doc/guix.texi:27178
#, no-wrap
msgid "@code{rapi-configuration} (default: @code{(ganeti-rapi-configuration)})"
msgstr ""

#. type: itemx
#: doc/guix.texi:27179
#, no-wrap
msgid "@code{kvmd-configuration} (default: @code{(ganeti-kvmd-configuration)})"
msgstr ""

#. type: itemx
#: doc/guix.texi:27180
#, no-wrap
msgid "@code{mond-configuration} (default: @code{(ganeti-mond-configuration)})"
msgstr ""

#. type: itemx
#: doc/guix.texi:27181
#, no-wrap
msgid "@code{metad-configuration} (default: @code{(ganeti-metad-configuration)})"
msgstr ""

#. type: itemx
#: doc/guix.texi:27182
#, no-wrap
msgid "@code{watcher-configuration} (default: @code{(ganeti-watcher-configuration)})"
msgstr ""

#. type: itemx
#: doc/guix.texi:27183
#, no-wrap
msgid "@code{cleaner-configuration} (default: @code{(ganeti-cleaner-configuration)})"
msgstr ""

#. type: table
#: doc/guix.texi:27188
msgid ""
"These options control the various daemons and cron jobs that are distributed "
"with Ganeti.  The possible values for these are described in detail below.  "
"To override a setting, you must use the configuration type for that service:"
msgstr ""

#. type: lisp
#: doc/guix.texi:27198
#, no-wrap
msgid ""
"(service ganeti-service-type\n"
"         (ganeti-configuration\n"
"          (rapi-configuration\n"
"           (ganeti-rapi-configuration\n"
"            (interface \"eth1\"))))\n"
"          (watcher-configuration\n"
"           (ganeti-watcher-configuration\n"
"            (rapi-ip \"10.0.0.1\"))))\n"
msgstr ""

#. type: item
#: doc/guix.texi:27200
#, no-wrap
msgid "@code{file-storage-paths} (default: @code{'()})"
msgstr ""

#. type: table
#: doc/guix.texi:27202
msgid "List of allowed directories for file storage backend."
msgstr ""

#. type: item
#: doc/guix.texi:27203
#, no-wrap
msgid "@code{os} (default: @code{%default-ganeti-os})"
msgstr ""

#. type: table
#: doc/guix.texi:27205
msgid "List of @code{<ganeti-os>} records."
msgstr ""

#. type: deftp
#: doc/guix.texi:27209
msgid ""
"In essence @code{ganeti-service-type} is shorthand for declaring each "
"service individually:"
msgstr ""

#. type: lisp
#: doc/guix.texi:27220
#, no-wrap
msgid ""
"(service ganeti-noded-service-type)\n"
"(service ganeti-confd-service-type)\n"
"(service ganeti-wconfd-service-type)\n"
"(service ganeti-luxid-service-type)\n"
"(service ganeti-kvmd-service-type)\n"
"(service ganeti-mond-service-type)\n"
"(service ganeti-metad-service-type)\n"
"(service ganeti-watcher-service-type)\n"
"(service ganeti-cleaner-service-type)\n"
msgstr ""

#. type: deftp
#: doc/guix.texi:27224
msgid ""
"Plus a service extension for @code{etc-service-type} that configures the "
"file storage backend and OS variants."
msgstr ""

#. type: deftp
#: doc/guix.texi:27227
#, no-wrap
msgid "{Data Type} ganeti-os"
msgstr ""

#. type: deftp
#: doc/guix.texi:27230
msgid ""
"This data type is suitable for passing to the @code{os} parameter of "
"@code{ganeti-configuration}.  It takes the following parameters:"
msgstr ""

#. type: table
#: doc/guix.texi:27236
msgid ""
"The name for this OS provider.  It is only used to specify where the "
"configuration ends up.  Setting it to ``debootstrap'' will create @file{/etc/"
"ganeti/instance-debootstrap}."
msgstr ""

#. type: code{#1}
#: doc/guix.texi:27237
#, no-wrap
msgid "extension"
msgstr ""

#. type: table
#: doc/guix.texi:27240
msgid ""
"The file extension for variants of this OS type.  For example @file{.conf} "
"or @file{.scm}."
msgstr ""

#. type: item
#: doc/guix.texi:27241
#, no-wrap
msgid "@code{variants} (default: @code{'()})"
msgstr ""

#. type: table
#: doc/guix.texi:27243
msgid "List of @code{ganeti-os-variant} objects for this OS."
msgstr ""

#. type: deftp
#: doc/guix.texi:27247
#, no-wrap
msgid "{Data Type} ganeti-os-variant"
msgstr ""

#. type: deftp
#: doc/guix.texi:27250
msgid ""
"This is the data type for a Ganeti OS variant.  It takes the following "
"parameters:"
msgstr ""

#. type: table
#: doc/guix.texi:27254
msgid "The name of this variant."
msgstr ""

#. type: code{#1}
#: doc/guix.texi:27255
#, no-wrap
msgid "configuration"
msgstr ""

#. type: table
#: doc/guix.texi:27257
msgid "A configuration file for this variant."
msgstr ""

#. type: defvr
#: doc/guix.texi:27260
#, no-wrap
msgid "{Scheme Variable} %default-debootstrap-hooks"
msgstr ""

#. type: defvr
#: doc/guix.texi:27262
msgid ""
"This variable contains hooks to configure networking and the GRUB bootloader."
msgstr ""

#. type: defvr
#: doc/guix.texi:27264
#, no-wrap
msgid "{Scheme Variable} %default-debootstrap-extra-pkgs"
msgstr ""

#. type: defvr
#: doc/guix.texi:27266
msgid ""
"This variable contains a list of packages suitable for a fully-virtualized "
"guest."
msgstr ""

#. type: deftp
#: doc/guix.texi:27268
#, no-wrap
msgid "{Data Type} debootstrap-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:27271
msgid ""
"This data type creates configuration files suitable for the debootstrap OS "
"provider."
msgstr ""

#. type: item
#: doc/guix.texi:27273
#, no-wrap
msgid "@code{hooks} (default: @code{%default-debootstrap-hooks})"
msgstr ""

#. type: table
#: doc/guix.texi:27277
msgid ""
"When not @code{#f}, this must be a G-expression that specifies a directory "
"with scripts that will run when the OS is installed.  It can also be a list "
"of @code{(name . file-like)} pairs.  For example:"
msgstr ""

#. type: lisp
#: doc/guix.texi:27280
#, no-wrap
msgid "`((99-hello-world . ,(plain-file \"#!/bin/sh\\necho Hello, World\")))\n"
msgstr ""

#. type: table
#: doc/guix.texi:27285
msgid ""
"That will create a directory with one executable named @code{99-hello-world} "
"and run it every time this variant is installed.  If set to @code{#f}, hooks "
"in @file{/etc/ganeti/instance-debootstrap/hooks} will be used, if any."
msgstr ""

#. type: item
#: doc/guix.texi:27285
#, no-wrap
msgid "@code{proxy} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:27287
msgid "Optional HTTP proxy to use."
msgstr ""

#. type: item
#: doc/guix.texi:27287
#, no-wrap
msgid "@code{mirror} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:27290
msgid ""
"The Debian mirror.  Typically something like @code{http://ftp.no.debian.org/"
"debian}.  The default varies depending on the distribution."
msgstr ""

#. type: item
#: doc/guix.texi:27290
#, no-wrap
msgid "@code{arch} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:27293
msgid ""
"The dpkg architecture.  Set to @code{armhf} to debootstrap an ARMv7 instance "
"on an AArch64 host.  Default is to use the current system architecture."
msgstr ""

#. type: item
#: doc/guix.texi:27293
#, no-wrap
msgid "@code{suite} (default: @code{\"stable\"})"
msgstr ""

#. type: table
#: doc/guix.texi:27296
msgid ""
"When set, this must be a Debian distribution ``suite'' such as @code{buster} "
"or @code{focal}.  If set to @code{#f}, the default for the OS provider is "
"used."
msgstr ""

#. type: item
#: doc/guix.texi:27296
#, no-wrap
msgid "@code{extra-pkgs} (default: @code{%default-debootstrap-extra-pkgs})"
msgstr ""

#. type: table
#: doc/guix.texi:27299
msgid ""
"List of extra packages that will get installed by dpkg in addition to the "
"minimal system."
msgstr ""

#. type: item
#: doc/guix.texi:27299
#, no-wrap
msgid "@code{components} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:27302
msgid ""
"When set, must be a list of Debian repository ``components''.  For example "
"@code{'(\"main\" \"contrib\")}."
msgstr ""

#. type: item
#: doc/guix.texi:27302
#, no-wrap
msgid "@code{generate-cache?} (default: @code{#t})"
msgstr ""

#. type: table
#: doc/guix.texi:27304
msgid "Whether to automatically cache the generated debootstrap archive."
msgstr ""

#. type: item
#: doc/guix.texi:27304
#, no-wrap
msgid "@code{clean-cache} (default: @code{14})"
msgstr ""

#. type: table
#: doc/guix.texi:27307
msgid ""
"Discard the cache after this amount of days.  Use @code{#f} to never clear "
"the cache."
msgstr ""

#. type: item
#: doc/guix.texi:27307
#, no-wrap
msgid "@code{partition-style} (default: @code{'msdos})"
msgstr ""

#. type: table
#: doc/guix.texi:27310
msgid ""
"The type of partition to create.  When set, it must be one of @code{'msdos}, "
"@code{'none} or a string."
msgstr ""

#. type: item
#: doc/guix.texi:27310
#, no-wrap
msgid "@code{partition-alignment} (default: @code{2048})"
msgstr ""

#. type: table
#: doc/guix.texi:27312
msgid "Alignment of the partition in sectors."
msgstr ""

#. type: deffn
#: doc/guix.texi:27315
#, no-wrap
msgid "{Scheme Procedure} debootstrap-variant @var{name} @var{configuration}"
msgstr ""

#. type: deffn
#: doc/guix.texi:27318
msgid ""
"This is a helper procedure that creates a @code{ganeti-os-variant} record.  "
"It takes two parameters: a name and a @code{debootstrap-configuration} "
"object."
msgstr ""

#. type: deffn
#: doc/guix.texi:27320
#, no-wrap
msgid "{Scheme Procedure} debootstrap-os @var{variants}@dots{}"
msgstr ""

#. type: deffn
#: doc/guix.texi:27323
msgid ""
"This is a helper procedure that creates a @code{ganeti-os} record.  It takes "
"a list of variants created with @code{debootstrap-variant}."
msgstr ""

#. type: deffn
#: doc/guix.texi:27325
#, no-wrap
msgid "{Scheme Procedure} guix-variant @var{name} @var{configuration}"
msgstr ""

#. type: deffn
#: doc/guix.texi:27330
msgid ""
"This is a helper procedure that creates a @code{ganeti-os-variant} record "
"for use with the Guix OS provider.  It takes a name and a G-expression that "
"returns a ``file-like'' (@pxref{G-Expressions, file-like objects}) object "
"containing a Guix System configuration."
msgstr ""

#. type: deffn
#: doc/guix.texi:27332
#, no-wrap
msgid "{Scheme Procedure} guix-os @var{variants}@dots{}"
msgstr ""

#. type: deffn
#: doc/guix.texi:27335
msgid ""
"This is a helper procedure that creates a @code{ganeti-os} record.  It takes "
"a list of variants produced by @code{guix-variant}."
msgstr ""

#. type: defvr
#: doc/guix.texi:27337
#, no-wrap
msgid "{Scheme Variable} %default-debootstrap-variants"
msgstr ""

#. type: defvr
#: doc/guix.texi:27341
msgid ""
"This is a convenience variable to make the debootstrap provider work ``out "
"of the box'' without users having to declare variants manually.  It contains "
"a single debootstrap variant with the default configuration:"
msgstr ""

#. type: lisp
#: doc/guix.texi:27346
#, no-wrap
msgid ""
"(list (debootstrap-variant\n"
"       \"default\"\n"
"       (debootstrap-configuration)))\n"
msgstr ""

#. type: defvr
#: doc/guix.texi:27349
#, no-wrap
msgid "{Scheme Variable} %default-guix-variants"
msgstr ""

#. type: defvr
#: doc/guix.texi:27353
msgid ""
"This is a convenience variable to make the Guix OS provider work without "
"additional configuration.  It creates a virtual machine that has an SSH "
"server, a serial console, and authorizes the Ganeti hosts SSH keys."
msgstr ""

#. type: lisp
#: doc/guix.texi:27359
#, no-wrap
msgid ""
"(list (guix-variant\n"
"       \"default\"\n"
"       (file-append ganeti-instance-guix\n"
"                    \"/share/doc/ganeti-instance-guix/examples/dynamic.scm\")))\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:27365
msgid ""
"Users can implement support for OS providers unbeknownst to Guix by "
"extending the @code{ganeti-os} and @code{ganeti-os-variant} records "
"appropriately.  For example:"
msgstr ""

#. type: lisp
#: doc/guix.texi:27374
#, no-wrap
msgid ""
"(ganeti-os\n"
" (name \"custom\")\n"
" (extension \".conf\")\n"
" (variants\n"
"  (list (ganeti-os-variant\n"
"         (name \"foo\")\n"
"         (configuration (plain-file \"bar\" \"this is fine\"))))))\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:27379
msgid ""
"That creates @file{/etc/ganeti/instance-custom/variants/foo.conf} which "
"points to a file in the store with contents @code{this is fine}.  It also "
"creates @file{/etc/ganeti/instance-custom/variants/variants.list} with "
"contents @code{foo}."
msgstr ""

#. type: Plain text
#: doc/guix.texi:27382
msgid ""
"Obviously this may not work for all OS providers out there.  If you find the "
"interface limiting, please reach out to @email{guix-devel@@gnu.org}."
msgstr ""

#. type: Plain text
#: doc/guix.texi:27385
msgid ""
"The rest of this section documents the various services that are included by "
"@code{ganeti-service-type}."
msgstr ""

#. type: defvr
#: doc/guix.texi:27386
#, no-wrap
msgid "{Scheme Variable} ganeti-noded-service-type"
msgstr ""

#. type: defvr
#: doc/guix.texi:27390
msgid ""
"@command{ganeti-noded} is the daemon responsible for node-specific functions "
"within the Ganeti system.  The value of this service must be a @code{ganeti-"
"noded-configuration} object."
msgstr ""

#. type: deftp
#: doc/guix.texi:27392
#, no-wrap
msgid "{Data Type} ganeti-noded-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:27394
msgid "This is the configuration for the @code{ganeti-noded} service."
msgstr ""

#. type: table
#: doc/guix.texi:27398 doc/guix.texi:27448 doc/guix.texi:27478
#: doc/guix.texi:27505 doc/guix.texi:27537 doc/guix.texi:27590
#: doc/guix.texi:27610 doc/guix.texi:27636 doc/guix.texi:27669
msgid "The @code{ganeti} package to use for this service."
msgstr ""

#. type: item
#: doc/guix.texi:27399
#, no-wrap
msgid "@code{port} (default: @code{1811})"
msgstr ""

#. type: table
#: doc/guix.texi:27401
msgid "The TCP port on which the node daemon listens for network requests."
msgstr ""

#. type: item
#: doc/guix.texi:27402 doc/guix.texi:27452 doc/guix.texi:27544
#: doc/guix.texi:27614
#, no-wrap
msgid "@code{address} (default: @code{\"0.0.0.0\"})"
msgstr ""

#. type: table
#: doc/guix.texi:27405
msgid ""
"The network address that the daemon will bind to.  The default address means "
"bind to all available addresses."
msgstr ""

#. type: table
#: doc/guix.texi:27409
msgid ""
"When this is set, it must be a specific network interface (e.g.@: "
"@code{eth0})  that the daemon will bind to."
msgstr ""

#. type: item
#: doc/guix.texi:27410 doc/guix.texi:27552
#, no-wrap
msgid "@code{max-clients} (default: @code{20})"
msgstr ""

#. type: table
#: doc/guix.texi:27414
msgid ""
"This sets a limit on the maximum number of simultaneous client connections "
"that the daemon will handle.  Connections above this count are accepted, but "
"no responses will be sent until enough connections have closed."
msgstr ""

#. type: item
#: doc/guix.texi:27415 doc/guix.texi:27557
#, no-wrap
msgid "@code{ssl?} (default: @code{#t})"
msgstr ""

#. type: table
#: doc/guix.texi:27419
msgid ""
"Whether to use SSL/TLS to encrypt network communications.  The certificate "
"is automatically provisioned by the cluster and can be rotated with "
"@command{gnt-cluster renew-crypto}."
msgstr ""

#. type: item
#: doc/guix.texi:27420 doc/guix.texi:27560
#, no-wrap
msgid "@code{ssl-key} (default: @file{\"/var/lib/ganeti/server.pem\"})"
msgstr ""

#. type: table
#: doc/guix.texi:27422 doc/guix.texi:27562
msgid ""
"This can be used to provide a specific encryption key for TLS communications."
msgstr ""

#. type: item
#: doc/guix.texi:27423 doc/guix.texi:27563
#, no-wrap
msgid "@code{ssl-cert} (default: @file{\"/var/lib/ganeti/server.pem\"})"
msgstr ""

#. type: table
#: doc/guix.texi:27425 doc/guix.texi:27565
msgid ""
"This can be used to provide a specific certificate for TLS communications."
msgstr ""

#. type: table
#: doc/guix.texi:27429 doc/guix.texi:27569
msgid ""
"When true, the daemon performs additional logging for debugging purposes.  "
"Note that this will leak encryption details to the log files, use with "
"caution."
msgstr ""

#. type: defvr
#: doc/guix.texi:27433
#, no-wrap
msgid "{Scheme Variable} ganeti-confd-service-type"
msgstr ""

#. type: defvr
#: doc/guix.texi:27439
msgid ""
"@command{ganeti-confd} answers queries related to the configuration of a "
"Ganeti cluster.  The purpose of this daemon is to have a highly available "
"and fast way to query cluster configuration values.  It is automatically "
"active on all @dfn{master candidates}.  The value of this service must be a "
"@code{ganeti-confd-configuration} object."
msgstr ""

#. type: deftp
#: doc/guix.texi:27442
#, no-wrap
msgid "{Data Type} ganeti-confd-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:27444
msgid "This is the configuration for the @code{ganeti-confd} service."
msgstr ""

#. type: item
#: doc/guix.texi:27449
#, no-wrap
msgid "@code{port} (default: @code{1814})"
msgstr ""

#. type: table
#: doc/guix.texi:27451
msgid "The UDP port on which to listen for network requests."
msgstr ""

#. type: table
#: doc/guix.texi:27454
msgid "Network address that the daemon will bind to."
msgstr ""

#. type: table
#: doc/guix.texi:27457 doc/guix.texi:27486 doc/guix.texi:27513
#: doc/guix.texi:27593 doc/guix.texi:27620 doc/guix.texi:27646
msgid ""
"When true, the daemon performs additional logging for debugging purposes."
msgstr ""

#. type: defvr
#: doc/guix.texi:27461
#, no-wrap
msgid "{Scheme Variable} ganeti-wconfd-service-type"
msgstr ""

#. type: defvr
#: doc/guix.texi:27467
msgid ""
"@command{ganeti-wconfd} is the daemon that has authoritative knowledge about "
"the cluster configuration and is the only entity that can accept changes to "
"it.  All jobs that need to modify the configuration will do so by sending "
"appropriate requests to this daemon.  It only runs on the @dfn{master node} "
"and will automatically disable itself on other nodes."
msgstr ""

#. type: defvr
#: doc/guix.texi:27470
msgid ""
"The value of this service must be a @code{ganeti-wconfd-configuration} "
"object."
msgstr ""

#. type: deftp
#: doc/guix.texi:27472
#, no-wrap
msgid "{Data Type} ganeti-wconfd-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:27474 doc/guix.texi:27501
msgid "This is the configuration for the @code{ganeti-wconfd} service."
msgstr ""

#. type: item
#: doc/guix.texi:27479 doc/guix.texi:27506
#, no-wrap
msgid "@code{no-voting?} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:27483
msgid ""
"The daemon will refuse to start if the majority of cluster nodes does not "
"agree that it is running on the master node.  Set to @code{#t} to start even "
"if a quorum can not be reached (dangerous, use with caution)."
msgstr ""

#. type: defvr
#: doc/guix.texi:27490
#, no-wrap
msgid "{Scheme Variable} ganeti-luxid-service-type"
msgstr ""

#. type: defvr
#: doc/guix.texi:27495
msgid ""
"@command{ganeti-luxid} is a daemon used to answer queries related to the "
"configuration and the current live state of a Ganeti cluster.  Additionally, "
"it is the authoritative daemon for the Ganeti job queue.  Jobs can be "
"submitted via this daemon and it schedules and starts them."
msgstr ""

#. type: defvr
#: doc/guix.texi:27497
msgid "It takes a @code{ganeti-luxid-configuration} object."
msgstr ""

#. type: deftp
#: doc/guix.texi:27499
#, no-wrap
msgid "{Data Type} ganeti-luxid-configuration"
msgstr ""

#. type: table
#: doc/guix.texi:27510
msgid ""
"The daemon will refuse to start if it cannot verify that the majority of "
"cluster nodes believes that it is running on the master node.  Set to "
"@code{#t} to ignore such checks and start anyway (this can be dangerous)."
msgstr ""

#. type: defvr
#: doc/guix.texi:27517
#, no-wrap
msgid "{Scheme Variable} ganeti-rapi-service-type"
msgstr ""

#. type: defvr
#: doc/guix.texi:27521
msgid ""
"@command{ganeti-rapi} provides a remote API for Ganeti clusters.  It runs on "
"the master node and can be used to perform cluster actions programmatically "
"via a JSON-based RPC protocol."
msgstr ""

#. type: defvr
#: doc/guix.texi:27527
msgid ""
"Most query operations are allowed without authentication (unless "
"@var{require-authentication?} is set), whereas write operations require "
"explicit authorization via the @file{/var/lib/ganeti/rapi/users} file.  See "
"the @url{http://docs.ganeti.org/ganeti/master/html/rapi.html, Ganeti Remote "
"API documentation} for more information."
msgstr ""

#. type: defvr
#: doc/guix.texi:27529
msgid ""
"The value of this service must be a @code{ganeti-rapi-configuration} object."
msgstr ""

#. type: deftp
#: doc/guix.texi:27531
#, no-wrap
msgid "{Data Type} ganeti-rapi-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:27533
msgid "This is the configuration for the @code{ganeti-rapi} service."
msgstr ""

#. type: item
#: doc/guix.texi:27538
#, no-wrap
msgid "@code{require-authentication?} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:27540
msgid "Whether to require authentication even for read-only operations."
msgstr ""

#. type: item
#: doc/guix.texi:27541
#, no-wrap
msgid "@code{port} (default: @code{5080})"
msgstr ""

#. type: table
#: doc/guix.texi:27543
msgid "The TCP port on which to listen to API requests."
msgstr ""

#. type: table
#: doc/guix.texi:27547
msgid ""
"The network address that the service will bind to.  By default it listens on "
"all configured addresses."
msgstr ""

#. type: table
#: doc/guix.texi:27551
msgid ""
"When set, it must specify a specific network interface such as @code{eth0} "
"that the daemon will bind to."
msgstr ""

#. type: table
#: doc/guix.texi:27556
msgid ""
"The maximum number of simultaneous client requests to handle.  Further "
"connections are allowed, but no responses are sent until enough connections "
"have closed."
msgstr ""

#. type: table
#: doc/guix.texi:27559
msgid "Whether to use SSL/TLS encryption on the RAPI port."
msgstr ""

#. type: defvr
#: doc/guix.texi:27573
#, no-wrap
msgid "{Scheme Variable} ganeti-kvmd-service-type"
msgstr ""

#. type: defvr
#: doc/guix.texi:27581
msgid ""
"@command{ganeti-kvmd} is responsible for determining whether a given KVM "
"instance was shut down by an administrator or a user.  Normally Ganeti will "
"restart an instance that was not stopped through Ganeti itself.  If the "
"cluster option @code{user_shutdown} is true, this daemon monitors the "
"@code{QMP} socket provided by QEMU and listens for shutdown events, and "
"marks the instance as @dfn{USER_down} instead of @dfn{ERROR_down} when it "
"shuts down gracefully by itself."
msgstr ""

#. type: defvr
#: doc/guix.texi:27583
msgid "It takes a @code{ganeti-kvmd-configuration} object."
msgstr ""

#. type: deftp
#: doc/guix.texi:27585
#, no-wrap
msgid "{Data Type} ganeti-kvmd-configuration"
msgstr ""

#. type: defvr
#: doc/guix.texi:27597
#, no-wrap
msgid "{Scheme Variable} ganeti-mond-service-type"
msgstr ""

#. type: defvr
#: doc/guix.texi:27601
msgid ""
"@command{ganeti-mond} is an optional daemon that provides Ganeti monitoring "
"functionality.  It is responsible for running data collectors and publish "
"the collected information through a HTTP interface."
msgstr ""

#. type: defvr
#: doc/guix.texi:27603
msgid "It takes a @code{ganeti-mond-configuration} object."
msgstr ""

#. type: deftp
#: doc/guix.texi:27605
#, no-wrap
msgid "{Data Type} ganeti-mond-configuration"
msgstr ""

#. type: item
#: doc/guix.texi:27611
#, no-wrap
msgid "@code{port} (default: @code{1815})"
msgstr ""

#. type: table
#: doc/guix.texi:27613 doc/guix.texi:27639
msgid "The port on which the daemon will listen."
msgstr ""

#. type: table
#: doc/guix.texi:27617
msgid ""
"The network address that the daemon will bind to.  By default it binds to "
"all available interfaces."
msgstr ""

#. type: defvr
#: doc/guix.texi:27624
#, no-wrap
msgid "{Scheme Variable} ganeti-metad-service-type"
msgstr ""

#. type: defvr
#: doc/guix.texi:27627
msgid ""
"@command{ganeti-metad} is an optional daemon that can be used to provide "
"information about the cluster to instances or OS install scripts."
msgstr ""

#. type: defvr
#: doc/guix.texi:27629
msgid "It takes a @code{ganeti-metad-configuration} object."
msgstr ""

#. type: deftp
#: doc/guix.texi:27631
#, no-wrap
msgid "{Data Type} ganeti-metad-configuration"
msgstr ""

#. type: item
#: doc/guix.texi:27640
#, no-wrap
msgid "@code{address} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:27643
msgid ""
"If set, the daemon will bind to this address only.  If left unset, the "
"behavior depends on the cluster configuration."
msgstr ""

#. type: defvr
#: doc/guix.texi:27650
#, no-wrap
msgid "{Scheme Variable} ganeti-watcher-service-type"
msgstr ""

#. type: defvr
#: doc/guix.texi:27658
msgid ""
"@command{ganeti-watcher} is a script designed to run periodically and ensure "
"the health of a cluster.  It will automatically restart instances that have "
"stopped without Ganeti's consent, and repairs DRBD links in case a node has "
"rebooted.  It also archives old cluster jobs and restarts Ganeti daemons "
"that are not running.  If the cluster parameter @code{ensure_node_health} is "
"set, the watcher will also shutdown instances and DRBD devices if the node "
"it is running on is declared offline by known master candidates."
msgstr ""

#. type: defvr
#: doc/guix.texi:27660
msgid "It can be paused on all nodes with @command{gnt-cluster watcher pause}."
msgstr ""

#. type: defvr
#: doc/guix.texi:27662
msgid "The service takes a @code{ganeti-watcher-configuration} object."
msgstr ""

#. type: deftp
#: doc/guix.texi:27664
#, no-wrap
msgid "{Data Type} ganeti-watcher-configuration"
msgstr ""

#. type: item
#: doc/guix.texi:27670
#, no-wrap
msgid "@code{schedule} (default: @code{'(next-second-from (next-minute (range 0 60 5)))})"
msgstr ""

#. type: table
#: doc/guix.texi:27672
msgid "How often to run the script.  The default is every five minutes."
msgstr ""

#. type: item
#: doc/guix.texi:27673
#, no-wrap
msgid "@code{rapi-ip} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:27676
msgid ""
"This option needs to be specified only if the RAPI daemon is configured to "
"use a particular interface or address.  By default the cluster address is "
"used."
msgstr ""

#. type: item
#: doc/guix.texi:27677
#, no-wrap
msgid "@code{job-age} (default: @code{(* 6 3600)})"
msgstr ""

#. type: table
#: doc/guix.texi:27680
msgid ""
"Archive cluster jobs older than this age, specified in seconds.  The default "
"is 6 hours.  This keeps @command{gnt-job list} manageable."
msgstr ""

#. type: item
#: doc/guix.texi:27681
#, no-wrap
msgid "@code{verify-disks?} (default: @code{#t})"
msgstr ""

#. type: table
#: doc/guix.texi:27685
msgid ""
"If this is @code{#f}, the watcher will not try to repair broken DRBD links "
"automatically.  Administrators will need to use @command{gnt-cluster verify-"
"disks} manually instead."
msgstr ""

#. type: table
#: doc/guix.texi:27688
msgid ""
"When @code{#t}, the script performs additional logging for debugging "
"purposes."
msgstr ""

#. type: defvr
#: doc/guix.texi:27692
#, no-wrap
msgid "{Scheme Variable} ganeti-cleaner-service-type"
msgstr ""

#. type: defvr
#: doc/guix.texi:27700
msgid ""
"@command{ganeti-cleaner} is a script designed to run periodically and remove "
"old files from the cluster.  This service type controls two @dfn{cron jobs}: "
"one intended for the master node that permanently purges old cluster jobs, "
"and one intended for every node that removes expired X509 certificates, "
"keys, and outdated @command{ganeti-watcher} information.  Like all Ganeti "
"services, it is safe to include even on non-master nodes as it will disable "
"itself as necessary."
msgstr ""

#. type: defvr
#: doc/guix.texi:27702
msgid "It takes a @code{ganeti-cleaner-configuration} object."
msgstr ""

#. type: deftp
#: doc/guix.texi:27704
#, no-wrap
msgid "{Data Type} ganeti-cleaner-configuration"
msgstr ""

#. type: table
#: doc/guix.texi:27709
msgid "The @code{ganeti} package to use for the @command{gnt-cleaner} command."
msgstr ""

#. type: item
#: doc/guix.texi:27710
#, no-wrap
msgid "@code{master-schedule} (default: @code{\"45 1 * * *\"})"
msgstr ""

#. type: table
#: doc/guix.texi:27713
msgid ""
"How often to run the master cleaning job.  The default is once per day, at "
"01:45:00."
msgstr ""

#. type: item
#: doc/guix.texi:27714
#, no-wrap
msgid "@code{node-schedule} (default: @code{\"45 2 * * *\"})"
msgstr ""

#. type: table
#: doc/guix.texi:27717
msgid ""
"How often to run the node cleaning job.  The default is once per day, at "
"02:45:00."
msgstr ""

#. type: Plain text
#: doc/guix.texi:27731
msgid ""
"The @code{(gnu services version-control)} module provides a service to allow "
"remote access to local Git repositories.  There are three options: the "
"@code{git-daemon-service}, which provides access to repositories via the "
"@code{git://} unsecured TCP-based protocol, extending the @code{nginx} web "
"server to proxy some requests to @code{git-http-backend}, or providing a web "
"interface with @code{cgit-service-type}."
msgstr ""

#. type: deffn
#: doc/guix.texi:27732
#, no-wrap
msgid "{Scheme Procedure} git-daemon-service [#:config (git-daemon-configuration)]"
msgstr ""

#. type: deffn
#: doc/guix.texi:27736
msgid ""
"Return a service that runs @command{git daemon}, a simple TCP server to "
"expose repositories over the Git protocol for anonymous access."
msgstr ""

#. type: deffn
#: doc/guix.texi:27742
msgid ""
"The optional @var{config} argument should be a @code{<git-daemon-"
"configuration>} object, by default it allows read-only access to "
"exported@footnote{By creating the magic file @file{git-daemon-export-ok} in "
"the repository directory.} repositories under @file{/srv/git}."
msgstr ""

#. type: deftp
#: doc/guix.texi:27745
#, no-wrap
msgid "{Data Type} git-daemon-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:27747
msgid "Data type representing the configuration for @code{git-daemon-service}."
msgstr ""

#. type: item
#: doc/guix.texi:27749
#, no-wrap
msgid "@code{package} (default: @code{git})"
msgstr ""

#. type: table
#: doc/guix.texi:27751 doc/guix.texi:27811
msgid "Package object of the Git distributed version control system."
msgstr ""

#. type: item
#: doc/guix.texi:27752 doc/guix.texi:27815
#, no-wrap
msgid "@code{export-all?} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:27755
msgid ""
"Whether to allow access for all Git repositories, even if they do not have "
"the @file{git-daemon-export-ok} file."
msgstr ""

#. type: item
#: doc/guix.texi:27756
#, no-wrap
msgid "@code{base-path} (default: @file{/srv/git})"
msgstr ""

#. type: table
#: doc/guix.texi:27762
msgid ""
"Whether to remap all the path requests as relative to the given path.  If "
"you run @command{git daemon} with @code{(base-path \"/srv/git\")} on "
"@samp{example.com}, then if you later try to pull @indicateurl{git://example."
"com/hello.git}, git daemon will interpret the path as @file{/srv/git/hello."
"git}."
msgstr ""

#. type: item
#: doc/guix.texi:27763
#, no-wrap
msgid "@code{user-path} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:27771
msgid ""
"Whether to allow @code{~user} notation to be used in requests.  When "
"specified with empty string, requests to @indicateurl{git://host/~alice/foo} "
"is taken as a request to access @code{foo} repository in the home directory "
"of user @code{alice}.  If @code{(user-path \"@var{path}\")} is specified, "
"the same request is taken as a request to access @file{@var{path}/foo} "
"repository in the home directory of user @code{alice}."
msgstr ""

#. type: item
#: doc/guix.texi:27772
#, no-wrap
msgid "@code{listen} (default: @code{'()})"
msgstr ""

#. type: table
#: doc/guix.texi:27775
msgid ""
"Whether to listen on specific IP addresses or hostnames, defaults to all."
msgstr ""

#. type: item
#: doc/guix.texi:27776
#, no-wrap
msgid "@code{port} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:27778
msgid "Whether to listen on an alternative port, which defaults to 9418."
msgstr ""

#. type: item
#: doc/guix.texi:27779
#, no-wrap
msgid "@code{whitelist} (default: @code{'()})"
msgstr ""

#. type: table
#: doc/guix.texi:27781
msgid "If not empty, only allow access to this list of directories."
msgstr ""

#. type: table
#: doc/guix.texi:27785
msgid ""
"Extra options will be passed to @command{git daemon}, please run "
"@command{man git-daemon} for more information."
msgstr ""

#. type: Plain text
#: doc/guix.texi:27799
msgid ""
"The @code{git://} protocol lacks authentication.  When you pull from a "
"repository fetched via @code{git://}, you don't know whether the data you "
"receive was modified or is even coming from the specified host, and your "
"connection is subject to eavesdropping.  It's better to use an authenticated "
"and encrypted transport, such as @code{https}.  Although Git allows you to "
"serve repositories using unsophisticated file-based web servers, there is a "
"faster protocol implemented by the @code{git-http-backend} program.  This "
"program is the back-end of a proper Git web service.  It is designed to sit "
"behind a FastCGI proxy.  @xref{Web Services}, for more on running the "
"necessary @code{fcgiwrap} daemon."
msgstr ""

#. type: Plain text
#: doc/guix.texi:27802
msgid ""
"Guix has a separate configuration data type for serving Git repositories "
"over HTTP."
msgstr ""

#. type: deftp
#: doc/guix.texi:27803
#, no-wrap
msgid "{Data Type} git-http-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:27807
msgid ""
"Data type representing the configuration for a future @code{git-http-service-"
"type}; can currently be used to configure Nginx trough @code{git-http-nginx-"
"location-configuration}."
msgstr ""

#. type: item
#: doc/guix.texi:27809
#, no-wrap
msgid "@code{package} (default: @var{git})"
msgstr ""

#. type: item
#: doc/guix.texi:27812
#, no-wrap
msgid "@code{git-root} (default: @file{/srv/git})"
msgstr ""

#. type: table
#: doc/guix.texi:27814
msgid "Directory containing the Git repositories to expose to the world."
msgstr ""

#. type: table
#: doc/guix.texi:27818
msgid ""
"Whether to expose access for all Git repositories in @var{git-root}, even if "
"they do not have the @file{git-daemon-export-ok} file."
msgstr ""

#. type: item
#: doc/guix.texi:27819
#, no-wrap
msgid "@code{uri-path} (default: @samp{/git/})"
msgstr ""

#. type: table
#: doc/guix.texi:27824
msgid ""
"Path prefix for Git access.  With the default @samp{/git/} prefix, this will "
"map @indicateurl{http://@var{server}/git/@var{repo}.git} to @file{/srv/git/"
"@var{repo}.git}.  Requests whose URI paths do not begin with this prefix are "
"not passed on to this Git instance."
msgstr ""

#. type: item
#: doc/guix.texi:27825
#, no-wrap
msgid "@code{fcgiwrap-socket} (default: @code{127.0.0.1:9000})"
msgstr ""

#. type: table
#: doc/guix.texi:27828
msgid ""
"The socket on which the @code{fcgiwrap} daemon is listening.  @xref{Web "
"Services}."
msgstr ""

#. type: Plain text
#: doc/guix.texi:27835
msgid ""
"There is no @code{git-http-service-type}, currently; instead you can create "
"an @code{nginx-location-configuration} from a @code{git-http-configuration} "
"and then add that location to a web server."
msgstr ""

#. type: deffn
#: doc/guix.texi:27836
#, no-wrap
msgid "{Scheme Procedure} git-http-nginx-location-configuration @"
msgstr ""

#. type: deffn
#: doc/guix.texi:27841
msgid ""
"[config=(git-http-configuration)] Compute an @code{nginx-location-"
"configuration} that corresponds to the given Git http configuration.  An "
"example nginx service definition to serve the default @file{/srv/git} over "
"HTTPS might be:"
msgstr ""

#. type: lisp
#: doc/guix.texi:27858
#, no-wrap
msgid ""
"(service nginx-service-type\n"
"         (nginx-configuration\n"
"          (server-blocks\n"
"           (list\n"
"            (nginx-server-configuration\n"
"             (listen '(\"443 ssl\"))\n"
"             (server-name \"git.my-host.org\")\n"
"             (ssl-certificate\n"
"              \"/etc/letsencrypt/live/git.my-host.org/fullchain.pem\")\n"
"             (ssl-certificate-key\n"
"              \"/etc/letsencrypt/live/git.my-host.org/privkey.pem\")\n"
"             (locations\n"
"              (list\n"
"               (git-http-nginx-location-configuration\n"
"                (git-http-configuration (uri-path \"/\"))))))))))\n"
msgstr ""

#. type: deffn
#: doc/guix.texi:27865
msgid ""
"This example assumes that you are using Let's Encrypt to get your TLS "
"certificate.  @xref{Certificate Services}.  The default @code{certbot} "
"service will redirect all HTTP traffic on @code{git.my-host.org} to HTTPS.  "
"You will also need to add an @code{fcgiwrap} proxy to your system services.  "
"@xref{Web Services}."
msgstr ""

#. type: subsubheading
#: doc/guix.texi:27867
#, no-wrap
msgid "Cgit Service"
msgstr ""

#. type: cindex
#: doc/guix.texi:27869
#, no-wrap
msgid "Cgit service"
msgstr ""

#. type: cindex
#: doc/guix.texi:27870
#, no-wrap
msgid "Git, web interface"
msgstr ""

#. type: Plain text
#: doc/guix.texi:27873
msgid ""
"@uref{https://git.zx2c4.com/cgit/, Cgit} is a web frontend for Git "
"repositories written in C."
msgstr ""

#. type: Plain text
#: doc/guix.texi:27876
msgid ""
"The following example will configure the service with default values.  By "
"default, Cgit can be accessed on port 80 (@code{http://localhost:80})."
msgstr ""

#. type: lisp
#: doc/guix.texi:27879
#, no-wrap
msgid "(service cgit-service-type)\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:27883
msgid ""
"The @code{file-object} type designates either a file-like object (@pxref{G-"
"Expressions, file-like objects}) or a string."
msgstr ""

#. type: Plain text
#: doc/guix.texi:27887
msgid "Available @code{cgit-configuration} fields are:"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:27888
#, no-wrap
msgid "{@code{cgit-configuration} parameter} package package"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:27890
msgid "The CGIT package."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:27893
#, no-wrap
msgid "{@code{cgit-configuration} parameter} nginx-server-configuration-list nginx"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:27898
#, no-wrap
msgid "{@code{cgit-configuration} parameter} file-object about-filter"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:27901
msgid ""
"Specifies a command which will be invoked to format the content of about "
"pages (both top-level and for each repository)."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:27906
#, no-wrap
msgid "{@code{cgit-configuration} parameter} string agefile"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:27909
msgid ""
"Specifies a path, relative to each repository path, which can be used to "
"specify the date and time of the youngest commit in the repository."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:27914
#, no-wrap
msgid "{@code{cgit-configuration} parameter} file-object auth-filter"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:27917
msgid ""
"Specifies a command that will be invoked for authenticating repository "
"access."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:27922
#, no-wrap
msgid "{@code{cgit-configuration} parameter} string branch-sort"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:27925
msgid ""
"Flag which, when set to @samp{age}, enables date ordering in the branch ref "
"list, and when set @samp{name} enables ordering by branch name."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:27927
msgid "Defaults to @samp{\"name\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:27930
#, no-wrap
msgid "{@code{cgit-configuration} parameter} string cache-root"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:27932
msgid "Path used to store the cgit cache entries."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:27934
msgid "Defaults to @samp{\"/var/cache/cgit\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:27937
#, no-wrap
msgid "{@code{cgit-configuration} parameter} integer cache-static-ttl"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:27940
msgid ""
"Number which specifies the time-to-live, in minutes, for the cached version "
"of repository pages accessed with a fixed SHA1."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:27942 doc/guix.texi:28385
msgid "Defaults to @samp{-1}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:27945
#, no-wrap
msgid "{@code{cgit-configuration} parameter} integer cache-dynamic-ttl"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:27948
msgid ""
"Number which specifies the time-to-live, in minutes, for the cached version "
"of repository pages accessed without a fixed SHA1."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:27953
#, no-wrap
msgid "{@code{cgit-configuration} parameter} integer cache-repo-ttl"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:27956
msgid ""
"Number which specifies the time-to-live, in minutes, for the cached version "
"of the repository summary page."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:27961
#, no-wrap
msgid "{@code{cgit-configuration} parameter} integer cache-root-ttl"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:27964
msgid ""
"Number which specifies the time-to-live, in minutes, for the cached version "
"of the repository index page."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:27969
#, no-wrap
msgid "{@code{cgit-configuration} parameter} integer cache-scanrc-ttl"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:27972
msgid ""
"Number which specifies the time-to-live, in minutes, for the result of "
"scanning a path for Git repositories."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:27977
#, no-wrap
msgid "{@code{cgit-configuration} parameter} integer cache-about-ttl"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:27980
msgid ""
"Number which specifies the time-to-live, in minutes, for the cached version "
"of the repository about page."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:27985
#, no-wrap
msgid "{@code{cgit-configuration} parameter} integer cache-snapshot-ttl"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:27988
msgid ""
"Number which specifies the time-to-live, in minutes, for the cached version "
"of snapshots."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:27993
#, no-wrap
msgid "{@code{cgit-configuration} parameter} integer cache-size"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:27996
msgid ""
"The maximum number of entries in the cgit cache.  When set to @samp{0}, "
"caching is disabled."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28001
#, no-wrap
msgid "{@code{cgit-configuration} parameter} boolean case-sensitive-sort?"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28003
msgid "Sort items in the repo list case sensitively."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28008
#, no-wrap
msgid "{@code{cgit-configuration} parameter} list clone-prefix"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28011
msgid ""
"List of common prefixes which, when combined with a repository URL, "
"generates valid clone URLs for the repository."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28016
#, no-wrap
msgid "{@code{cgit-configuration} parameter} list clone-url"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28018
msgid "List of @code{clone-url} templates."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28023
#, no-wrap
msgid "{@code{cgit-configuration} parameter} file-object commit-filter"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28025
msgid "Command which will be invoked to format commit messages."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28030
#, no-wrap
msgid "{@code{cgit-configuration} parameter} string commit-sort"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28034 doc/guix.texi:28592
msgid ""
"Flag which, when set to @samp{date}, enables strict date ordering in the "
"commit log, and when set to @samp{topo} enables strict topological ordering."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28036
msgid "Defaults to @samp{\"git log\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28039
#, no-wrap
msgid "{@code{cgit-configuration} parameter} file-object css"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28041
msgid "URL which specifies the css document to include in all cgit pages."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28043
msgid "Defaults to @samp{\"/share/cgit/cgit.css\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28046
#, no-wrap
msgid "{@code{cgit-configuration} parameter} file-object email-filter"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28050
msgid ""
"Specifies a command which will be invoked to format names and email address "
"of committers, authors, and taggers, as represented in various places "
"throughout the cgit interface."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28055
#, no-wrap
msgid "{@code{cgit-configuration} parameter} boolean embedded?"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28058
msgid ""
"Flag which, when set to @samp{#t}, will make cgit generate a HTML fragment "
"suitable for embedding in other HTML pages."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28063
#, no-wrap
msgid "{@code{cgit-configuration} parameter} boolean enable-commit-graph?"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28067
msgid ""
"Flag which, when set to @samp{#t}, will make cgit print an ASCII-art commit "
"history graph to the left of the commit messages in the repository log page."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28072
#, no-wrap
msgid "{@code{cgit-configuration} parameter} boolean enable-filter-overrides?"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28075
msgid ""
"Flag which, when set to @samp{#t}, allows all filter settings to be "
"overridden in repository-specific cgitrc files."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28080
#, no-wrap
msgid "{@code{cgit-configuration} parameter} boolean enable-follow-links?"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28083
msgid ""
"Flag which, when set to @samp{#t}, allows users to follow a file in the log "
"view."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28088
#, no-wrap
msgid "{@code{cgit-configuration} parameter} boolean enable-http-clone?"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28091
msgid ""
"If set to @samp{#t}, cgit will act as an dumb HTTP endpoint for Git clones."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28096
#, no-wrap
msgid "{@code{cgit-configuration} parameter} boolean enable-index-links?"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28099
msgid ""
"Flag which, when set to @samp{#t}, will make cgit generate extra links "
"\"summary\", \"commit\", \"tree\" for each repo in the repository index."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28104
#, no-wrap
msgid "{@code{cgit-configuration} parameter} boolean enable-index-owner?"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28107
msgid ""
"Flag which, when set to @samp{#t}, will make cgit display the owner of each "
"repo in the repository index."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28112
#, no-wrap
msgid "{@code{cgit-configuration} parameter} boolean enable-log-filecount?"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28115
msgid ""
"Flag which, when set to @samp{#t}, will make cgit print the number of "
"modified files for each commit on the repository log page."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28120
#, no-wrap
msgid "{@code{cgit-configuration} parameter} boolean enable-log-linecount?"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28123
msgid ""
"Flag which, when set to @samp{#t}, will make cgit print the number of added "
"and removed lines for each commit on the repository log page."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28128
#, no-wrap
msgid "{@code{cgit-configuration} parameter} boolean enable-remote-branches?"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28131 doc/guix.texi:28655
msgid ""
"Flag which, when set to @code{#t}, will make cgit display remote branches in "
"the summary and refs views."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28136
#, no-wrap
msgid "{@code{cgit-configuration} parameter} boolean enable-subject-links?"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28140
msgid ""
"Flag which, when set to @code{1}, will make cgit use the subject of the "
"parent commit as link text when generating links to parent commits in commit "
"view."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28145
#, no-wrap
msgid "{@code{cgit-configuration} parameter} boolean enable-html-serving?"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28149
msgid ""
"Flag which, when set to @samp{#t}, will make cgit use the subject of the "
"parent commit as link text when generating links to parent commits in commit "
"view."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28154
#, no-wrap
msgid "{@code{cgit-configuration} parameter} boolean enable-tree-linenumbers?"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28157
msgid ""
"Flag which, when set to @samp{#t}, will make cgit generate linenumber links "
"for plaintext blobs printed in the tree view."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28162
#, no-wrap
msgid "{@code{cgit-configuration} parameter} boolean enable-git-config?"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28165
msgid ""
"Flag which, when set to @samp{#f}, will allow cgit to use Git config to set "
"any repo specific settings."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28170
#, no-wrap
msgid "{@code{cgit-configuration} parameter} file-object favicon"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28172
msgid "URL used as link to a shortcut icon for cgit."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28174
msgid "Defaults to @samp{\"/favicon.ico\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28177
#, no-wrap
msgid "{@code{cgit-configuration} parameter} string footer"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28181
msgid ""
"The content of the file specified with this option will be included verbatim "
"at the bottom of all pages (i.e.@: it replaces the standard \"generated by..."
"\"@: message)."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28186
#, no-wrap
msgid "{@code{cgit-configuration} parameter} string head-include"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28189
msgid ""
"The content of the file specified with this option will be included verbatim "
"in the HTML HEAD section on all pages."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28194
#, no-wrap
msgid "{@code{cgit-configuration} parameter} string header"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28197
msgid ""
"The content of the file specified with this option will be included verbatim "
"at the top of all pages."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28202
#, no-wrap
msgid "{@code{cgit-configuration} parameter} file-object include"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28205
msgid ""
"Name of a configfile to include before the rest of the current config- file "
"is parsed."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28210
#, no-wrap
msgid "{@code{cgit-configuration} parameter} string index-header"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28213
msgid ""
"The content of the file specified with this option will be included verbatim "
"above the repository index."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28218
#, no-wrap
msgid "{@code{cgit-configuration} parameter} string index-info"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28221
msgid ""
"The content of the file specified with this option will be included verbatim "
"below the heading on the repository index page."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28226
#, no-wrap
msgid "{@code{cgit-configuration} parameter} boolean local-time?"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28229
msgid ""
"Flag which, if set to @samp{#t}, makes cgit print commit and tag times in "
"the servers timezone."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28234
#, no-wrap
msgid "{@code{cgit-configuration} parameter} file-object logo"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28237
msgid ""
"URL which specifies the source of an image which will be used as a logo on "
"all cgit pages."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28239
msgid "Defaults to @samp{\"/share/cgit/cgit.png\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28242
#, no-wrap
msgid "{@code{cgit-configuration} parameter} string logo-link"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28244 doc/guix.texi:28701
msgid "URL loaded when clicking on the cgit logo image."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28249
#, no-wrap
msgid "{@code{cgit-configuration} parameter} file-object owner-filter"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28252
msgid ""
"Command which will be invoked to format the Owner column of the main page."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28257
#, no-wrap
msgid "{@code{cgit-configuration} parameter} integer max-atom-items"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28259
msgid "Number of items to display in atom feeds view."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28261 doc/guix.texi:28496 doc/guix.texi:28504
#: doc/guix.texi:28512
msgid "Defaults to @samp{10}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28264
#, no-wrap
msgid "{@code{cgit-configuration} parameter} integer max-commit-count"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28266
msgid "Number of entries to list per page in \"log\" view."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28268 doc/guix.texi:28283
msgid "Defaults to @samp{50}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28271
#, no-wrap
msgid "{@code{cgit-configuration} parameter} integer max-message-length"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28273
msgid "Number of commit message characters to display in \"log\" view."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28275 doc/guix.texi:28291
msgid "Defaults to @samp{80}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28278
#, no-wrap
msgid "{@code{cgit-configuration} parameter} integer max-repo-count"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28281
msgid ""
"Specifies the number of entries to list per page on the repository index "
"page."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28286
#, no-wrap
msgid "{@code{cgit-configuration} parameter} integer max-repodesc-length"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28289
msgid ""
"Specifies the maximum number of repo description characters to display on "
"the repository index page."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28294
#, no-wrap
msgid "{@code{cgit-configuration} parameter} integer max-blob-size"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28296
msgid "Specifies the maximum size of a blob to display HTML for in KBytes."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28301
#, no-wrap
msgid "{@code{cgit-configuration} parameter} string max-stats"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28304
msgid ""
"Maximum statistics period.  Valid values are @samp{week},@samp{month}, "
"@samp{quarter} and @samp{year}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28309
#, no-wrap
msgid "{@code{cgit-configuration} parameter} mimetype-alist mimetype"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28311
msgid "Mimetype for the specified filename extension."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28315
msgid ""
"Defaults to @samp{((gif \"image/gif\") (html \"text/html\") (jpg \"image/jpeg"
"\") (jpeg \"image/jpeg\") (pdf \"application/pdf\") (png \"image/png\") (svg "
"\"image/svg+xml\"))}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28318
#, no-wrap
msgid "{@code{cgit-configuration} parameter} file-object mimetype-file"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28320
msgid "Specifies the file to use for automatic mimetype lookup."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28325
#, no-wrap
msgid "{@code{cgit-configuration} parameter} string module-link"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28328
msgid ""
"Text which will be used as the formatstring for a hyperlink when a submodule "
"is printed in a directory listing."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28333
#, no-wrap
msgid "{@code{cgit-configuration} parameter} boolean nocache?"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28335
msgid "If set to the value @samp{#t} caching will be disabled."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28340
#, no-wrap
msgid "{@code{cgit-configuration} parameter} boolean noplainemail?"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28343
msgid ""
"If set to @samp{#t} showing full author email addresses will be disabled."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28348
#, no-wrap
msgid "{@code{cgit-configuration} parameter} boolean noheader?"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28351
msgid ""
"Flag which, when set to @samp{#t}, will make cgit omit the standard header "
"on all pages."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28356
#, no-wrap
msgid "{@code{cgit-configuration} parameter} project-list project-list"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28360
msgid ""
"A list of subdirectories inside of @code{repository-directory}, relative to "
"it, that should loaded as Git repositories.  An empty list means that all "
"subdirectories will be loaded."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28365
#, no-wrap
msgid "{@code{cgit-configuration} parameter} file-object readme"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28367
msgid "Text which will be used as default value for @code{cgit-repo-readme}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28372
#, no-wrap
msgid "{@code{cgit-configuration} parameter} boolean remove-suffix?"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28376
msgid ""
"If set to @code{#t} and @code{repository-directory} is enabled, if any "
"repositories are found with a suffix of @code{.git}, this suffix will be "
"removed for the URL and name."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28381
#, no-wrap
msgid "{@code{cgit-configuration} parameter} integer renamelimit"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28383
msgid "Maximum number of files to consider when detecting renames."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28388
#, no-wrap
msgid "{@code{cgit-configuration} parameter} string repository-sort"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28390
msgid "The way in which repositories in each section are sorted."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28395
#, no-wrap
msgid "{@code{cgit-configuration} parameter} robots-list robots"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28397
msgid "Text used as content for the @code{robots} meta-tag."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28399
msgid "Defaults to @samp{(\"noindex\" \"nofollow\")}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28402
#, no-wrap
msgid "{@code{cgit-configuration} parameter} string root-desc"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28404
msgid "Text printed below the heading on the repository index page."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28406
msgid "Defaults to @samp{\"a fast webinterface for the git dscm\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28409
#, no-wrap
msgid "{@code{cgit-configuration} parameter} string root-readme"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28412
msgid ""
"The content of the file specified with this option will be included verbatim "
"below the ``about'' link on the repository index page."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28417
#, no-wrap
msgid "{@code{cgit-configuration} parameter} string root-title"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28419
msgid "Text printed as heading on the repository index page."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28424
#, no-wrap
msgid "{@code{cgit-configuration} parameter} boolean scan-hidden-path"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28430
msgid ""
"If set to @samp{#t} and repository-directory is enabled, repository-"
"directory will recurse into directories whose name starts with a period.  "
"Otherwise, repository-directory will stay away from such directories, "
"considered as ``hidden''.  Note that this does not apply to the @file{.git} "
"directory in non-bare repos."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28435
#, no-wrap
msgid "{@code{cgit-configuration} parameter} list snapshots"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28438
msgid ""
"Text which specifies the default set of snapshot formats that cgit generates "
"links for."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28443
#, no-wrap
msgid "{@code{cgit-configuration} parameter} repository-directory repository-directory"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28446
msgid ""
"Name of the directory to scan for repositories (represents @code{scan-path})."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28448
msgid "Defaults to @samp{\"/srv/git\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28451
#, no-wrap
msgid "{@code{cgit-configuration} parameter} string section"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28454 doc/guix.texi:28770
msgid ""
"The name of the current repository section - all repositories defined after "
"this option will inherit the current section name."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28459
#, no-wrap
msgid "{@code{cgit-configuration} parameter} string section-sort"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28462
msgid ""
"Flag which, when set to @samp{1}, will sort the sections on the repository "
"listing by name."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28467
#, no-wrap
msgid "{@code{cgit-configuration} parameter} integer section-from-path"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28470
msgid ""
"A number which, if defined prior to repository-directory, specifies how many "
"path elements from each repo path to use as a default section name."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28475
#, no-wrap
msgid "{@code{cgit-configuration} parameter} boolean side-by-side-diffs?"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28478
msgid ""
"If set to @samp{#t} shows side-by-side diffs instead of unidiffs per default."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28483
#, no-wrap
msgid "{@code{cgit-configuration} parameter} file-object source-filter"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28486
msgid ""
"Specifies a command which will be invoked to format plaintext blobs in the "
"tree view."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28491
#, no-wrap
msgid "{@code{cgit-configuration} parameter} integer summary-branches"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28494
msgid ""
"Specifies the number of branches to display in the repository ``summary'' "
"view."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28499
#, no-wrap
msgid "{@code{cgit-configuration} parameter} integer summary-log"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28502
msgid ""
"Specifies the number of log entries to display in the repository ``summary'' "
"view."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28507
#, no-wrap
msgid "{@code{cgit-configuration} parameter} integer summary-tags"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28510
msgid ""
"Specifies the number of tags to display in the repository ``summary'' view."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28515
#, no-wrap
msgid "{@code{cgit-configuration} parameter} string strict-export"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28518
msgid ""
"Filename which, if specified, needs to be present within the repository for "
"cgit to allow access to that repository."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28523
#, no-wrap
msgid "{@code{cgit-configuration} parameter} string virtual-root"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28525
msgid "URL which, if specified, will be used as root for all cgit links."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28527
msgid "Defaults to @samp{\"/\"}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28530
#, no-wrap
msgid "{@code{cgit-configuration} parameter} repository-cgit-configuration-list repositories"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28532
msgid "A list of @dfn{cgit-repo} records to use with config."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28536
msgid "Available @code{repository-cgit-configuration} fields are:"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28537
#, no-wrap
msgid "{@code{repository-cgit-configuration} parameter} repo-list snapshots"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28540
msgid ""
"A mask of snapshot formats for this repo that cgit generates links for, "
"restricted by the global @code{snapshots} setting."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28545
#, no-wrap
msgid "{@code{repository-cgit-configuration} parameter} repo-file-object source-filter"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28547
msgid "Override the default @code{source-filter}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28552
#, no-wrap
msgid "{@code{repository-cgit-configuration} parameter} repo-string url"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28554
msgid "The relative URL used to access the repository."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28559
#, no-wrap
msgid "{@code{repository-cgit-configuration} parameter} repo-file-object about-filter"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28561
msgid "Override the default @code{about-filter}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28566
#, no-wrap
msgid "{@code{repository-cgit-configuration} parameter} repo-string branch-sort"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28569
msgid ""
"Flag which, when set to @samp{age}, enables date ordering in the branch ref "
"list, and when set to @samp{name} enables ordering by branch name."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28574
#, no-wrap
msgid "{@code{repository-cgit-configuration} parameter} repo-list clone-url"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28576
msgid "A list of URLs which can be used to clone repo."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28581
#, no-wrap
msgid "{@code{repository-cgit-configuration} parameter} repo-file-object commit-filter"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28583
msgid "Override the default @code{commit-filter}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28588
#, no-wrap
msgid "{@code{repository-cgit-configuration} parameter} repo-string commit-sort"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28597
#, no-wrap
msgid "{@code{repository-cgit-configuration} parameter} repo-string defbranch"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28602
msgid ""
"The name of the default branch for this repository.  If no such branch "
"exists in the repository, the first branch name (when sorted) is used as "
"default instead.  By default branch pointed to by HEAD, or ``master'' if "
"there is no suitable HEAD."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28607
#, no-wrap
msgid "{@code{repository-cgit-configuration} parameter} repo-string desc"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28609
msgid "The value to show as repository description."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28614
#, no-wrap
msgid "{@code{repository-cgit-configuration} parameter} repo-string homepage"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28616
msgid "The value to show as repository homepage."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28621
#, no-wrap
msgid "{@code{repository-cgit-configuration} parameter} repo-file-object email-filter"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28623
msgid "Override the default @code{email-filter}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28628
#, no-wrap
msgid "{@code{repository-cgit-configuration} parameter} maybe-repo-boolean enable-commit-graph?"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28631
msgid ""
"A flag which can be used to disable the global setting @code{enable-commit-"
"graph?}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28636
#, no-wrap
msgid "{@code{repository-cgit-configuration} parameter} maybe-repo-boolean enable-log-filecount?"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28639
msgid ""
"A flag which can be used to disable the global setting @code{enable-log-"
"filecount?}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28644
#, no-wrap
msgid "{@code{repository-cgit-configuration} parameter} maybe-repo-boolean enable-log-linecount?"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28647
msgid ""
"A flag which can be used to disable the global setting @code{enable-log-"
"linecount?}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28652
#, no-wrap
msgid "{@code{repository-cgit-configuration} parameter} maybe-repo-boolean enable-remote-branches?"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28660
#, no-wrap
msgid "{@code{repository-cgit-configuration} parameter} maybe-repo-boolean enable-subject-links?"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28663
msgid ""
"A flag which can be used to override the global setting @code{enable-subject-"
"links?}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28668
#, no-wrap
msgid "{@code{repository-cgit-configuration} parameter} maybe-repo-boolean enable-html-serving?"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28671
msgid ""
"A flag which can be used to override the global setting @code{enable-html-"
"serving?}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28676
#, no-wrap
msgid "{@code{repository-cgit-configuration} parameter} repo-boolean hide?"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28679
msgid ""
"Flag which, when set to @code{#t}, hides the repository from the repository "
"index."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28684
#, no-wrap
msgid "{@code{repository-cgit-configuration} parameter} repo-boolean ignore?"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28686
msgid "Flag which, when set to @samp{#t}, ignores the repository."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28691
#, no-wrap
msgid "{@code{repository-cgit-configuration} parameter} repo-file-object logo"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28694
msgid ""
"URL which specifies the source of an image which will be used as a logo on "
"this repo’s pages."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28699
#, no-wrap
msgid "{@code{repository-cgit-configuration} parameter} repo-string logo-link"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28706
#, no-wrap
msgid "{@code{repository-cgit-configuration} parameter} repo-file-object owner-filter"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28708
msgid "Override the default @code{owner-filter}."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28713
#, no-wrap
msgid "{@code{repository-cgit-configuration} parameter} repo-string module-link"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28717
msgid ""
"Text which will be used as the formatstring for a hyperlink when a submodule "
"is printed in a directory listing.  The arguments for the formatstring are "
"the path and SHA1 of the submodule commit."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28722
#, no-wrap
msgid "{@code{repository-cgit-configuration} parameter} module-link-path module-link-path"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28726
msgid ""
"Text which will be used as the formatstring for a hyperlink when a submodule "
"with the specified subdirectory path is printed in a directory listing."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28731
#, no-wrap
msgid "{@code{repository-cgit-configuration} parameter} repo-string max-stats"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28733
msgid "Override the default maximum statistics period."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28738
#, no-wrap
msgid "{@code{repository-cgit-configuration} parameter} repo-string name"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28740
msgid "The value to show as repository name."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28745
#, no-wrap
msgid "{@code{repository-cgit-configuration} parameter} repo-string owner"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28747
msgid "A value used to identify the owner of the repository."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28752
#, no-wrap
msgid "{@code{repository-cgit-configuration} parameter} repo-string path"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28754
msgid "An absolute path to the repository directory."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28759
#, no-wrap
msgid "{@code{repository-cgit-configuration} parameter} repo-string readme"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28762
msgid ""
"A path (relative to repo) which specifies a file to include verbatim as the "
"``About'' page for this repo."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28767
#, no-wrap
msgid "{@code{repository-cgit-configuration} parameter} repo-string section"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28775
#, no-wrap
msgid "{@code{repository-cgit-configuration} parameter} repo-list extra-options"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28777 doc/guix.texi:28786
msgid "Extra options will be appended to cgitrc file."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28784
#, no-wrap
msgid "{@code{cgit-configuration} parameter} list extra-options"
msgstr ""

#. type: Plain text
#: doc/guix.texi:28798
msgid ""
"However, it could be that you just want to get a @code{cgitrc} up and "
"running.  In that case, you can pass an @code{opaque-cgit-configuration} as "
"a record to @code{cgit-service-type}.  As its name indicates, an opaque "
"configuration does not have easy reflective capabilities."
msgstr ""

#. type: Plain text
#: doc/guix.texi:28800
msgid "Available @code{opaque-cgit-configuration} fields are:"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28801
#, no-wrap
msgid "{@code{opaque-cgit-configuration} parameter} package cgit"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28803
msgid "The cgit package."
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28805
#, no-wrap
msgid "{@code{opaque-cgit-configuration} parameter} string string"
msgstr ""

#. type: deftypevr
#: doc/guix.texi:28807
msgid "The contents of the @code{cgitrc}, as a string."
msgstr ""

#. type: Plain text
#: doc/guix.texi:28811
msgid ""
"For example, if your @code{cgitrc} is just the empty string, you could "
"instantiate a cgit service like this:"
msgstr ""

#. type: lisp
#: doc/guix.texi:28816
#, no-wrap
msgid ""
"(service cgit-service-type\n"
"         (opaque-cgit-configuration\n"
"          (cgitrc \"\")))\n"
msgstr ""

#. type: subsubheading
#: doc/guix.texi:28818
#, no-wrap
msgid "Gitolite Service"
msgstr ""

#. type: cindex
#: doc/guix.texi:28820
#, no-wrap
msgid "Gitolite service"
msgstr ""

#. type: cindex
#: doc/guix.texi:28821
#, no-wrap
msgid "Git, hosting"
msgstr ""

#. type: Plain text
#: doc/guix.texi:28824
msgid ""
"@uref{https://gitolite.com/gitolite/, Gitolite} is a tool for hosting Git "
"repositories on a central server."
msgstr ""

#. type: Plain text
#: doc/guix.texi:28827
msgid ""
"Gitolite can handle multiple repositories and users, and supports flexible "
"configuration of the permissions for the users on the repositories."
msgstr ""

#. type: Plain text
#: doc/guix.texi:28830
msgid ""
"The following example will configure Gitolite using the default @code{git} "
"user, and the provided SSH public key."
msgstr ""

#. type: lisp
#: doc/guix.texi:28837
#, no-wrap
msgid ""
"(service gitolite-service-type\n"
"         (gitolite-configuration\n"
"           (admin-pubkey (plain-file\n"
"                           \"yourname.pub\"\n"
"                           \"ssh-rsa AAAA... guix@@example.com\"))))\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:28842
msgid ""
"Gitolite is configured through a special admin repository which you can "
"clone, for example, if you setup Gitolite on @code{example.com}, you would "
"run the following command to clone the admin repository."
msgstr ""

#. type: example
#: doc/guix.texi:28845
#, no-wrap
msgid "git clone git@@example.com:gitolite-admin\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:28851
msgid ""
"When the Gitolite service is activated, the provided @code{admin-pubkey} "
"will be inserted in to the @file{keydir} directory in the gitolite-admin "
"repository.  If this results in a change in the repository, it will be "
"committed using the message ``gitolite setup by GNU Guix''."
msgstr ""

#. type: deftp
#: doc/guix.texi:28852
#, no-wrap
msgid "{Data Type} gitolite-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:28854
msgid ""
"Data type representing the configuration for @code{gitolite-service-type}."
msgstr ""

#. type: item
#: doc/guix.texi:28856
#, no-wrap
msgid "@code{package} (default: @var{gitolite})"
msgstr ""

#. type: table
#: doc/guix.texi:28858
msgid "Gitolite package to use."
msgstr ""

#. type: item
#: doc/guix.texi:28859
#, no-wrap
msgid "@code{user} (default: @var{git})"
msgstr ""

#. type: table
#: doc/guix.texi:28862
msgid ""
"User to use for Gitolite.  This will be user that you use when accessing "
"Gitolite over SSH."
msgstr ""

#. type: item
#: doc/guix.texi:28863
#, no-wrap
msgid "@code{group} (default: @var{git})"
msgstr ""

#. type: table
#: doc/guix.texi:28865
msgid "Group to use for Gitolite."
msgstr ""

#. type: item
#: doc/guix.texi:28866
#, no-wrap
msgid "@code{home-directory} (default: @var{\"/var/lib/gitolite\"})"
msgstr ""

#. type: table
#: doc/guix.texi:28868
msgid ""
"Directory in which to store the Gitolite configuration and repositories."
msgstr ""

#. type: item
#: doc/guix.texi:28869
#, no-wrap
msgid "@code{rc-file} (default: @var{(gitolite-rc-file)})"
msgstr ""

#. type: table
#: doc/guix.texi:28872
msgid ""
"A ``file-like'' object (@pxref{G-Expressions, file-like objects}), "
"representing the configuration for Gitolite."
msgstr ""

#. type: item
#: doc/guix.texi:28873
#, no-wrap
msgid "@code{admin-pubkey} (default: @var{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:28877
msgid ""
"A ``file-like'' object (@pxref{G-Expressions, file-like objects}) used to "
"setup Gitolite.  This will be inserted in to the @file{keydir} directory "
"within the gitolite-admin repository."
msgstr ""

#. type: table
#: doc/guix.texi:28879
msgid "To specify the SSH key as a string, use the @code{plain-file} function."
msgstr ""

#. type: lisp
#: doc/guix.texi:28882
#, no-wrap
msgid "(plain-file \"yourname.pub\" \"ssh-rsa AAAA... guix@@example.com\")\n"
msgstr ""

#. type: deftp
#: doc/guix.texi:28887
#, no-wrap
msgid "{Data Type} gitolite-rc-file"
msgstr ""

#. type: deftp
#: doc/guix.texi:28889
msgid "Data type representing the Gitolite RC file."
msgstr ""

#. type: item
#: doc/guix.texi:28891
#, no-wrap
msgid "@code{umask} (default: @code{#o0077})"
msgstr ""

#. type: table
#: doc/guix.texi:28894
msgid ""
"This controls the permissions Gitolite sets on the repositories and their "
"contents."
msgstr ""

#. type: table
#: doc/guix.texi:28898
msgid ""
"A value like @code{#o0027} will give read access to the group used by "
"Gitolite (by default: @code{git}). This is necessary when using Gitolite "
"with software like cgit or gitweb."
msgstr ""

#. type: item
#: doc/guix.texi:28899
#, no-wrap
msgid "@code{git-config-keys} (default: @code{\"\"})"
msgstr ""

#. type: table
#: doc/guix.texi:28902
msgid ""
"Gitolite allows you to set git config values using the @samp{config} "
"keyword. This setting allows control over the config keys to accept."
msgstr ""

#. type: item
#: doc/guix.texi:28903
#, no-wrap
msgid "@code{roles} (default: @code{'((\"READERS\" . 1) (\"WRITERS\" . ))})"
msgstr ""

#. type: table
#: doc/guix.texi:28905
msgid ""
"Set the role names allowed to be used by users running the perms command."
msgstr ""

#. type: item
#: doc/guix.texi:28906
#, no-wrap
msgid "@code{enable} (default: @code{'(\"help\" \"desc\" \"info\" \"perms\" \"writable\" \"ssh-authkeys\" \"git-config\" \"daemon\" \"gitweb\")})"
msgstr ""

#. type: table
#: doc/guix.texi:28908
msgid ""
"This setting controls the commands and features to enable within Gitolite."
msgstr ""

#. type: subsubheading
#: doc/guix.texi:28916
#, no-wrap
msgid "The Battle for Wesnoth Service"
msgstr ""

#. type: cindex
#: doc/guix.texi:28917
#, no-wrap
msgid "wesnothd"
msgstr ""

#. type: Plain text
#: doc/guix.texi:28921
msgid ""
"@uref{https://wesnoth.org, The Battle for Wesnoth} is a fantasy, turn based "
"tactical strategy game, with several single player campaigns, and "
"multiplayer games (both networked and local)."
msgstr ""

#. type: defvar
#: doc/guix.texi:28922
#, no-wrap
msgid "{Scheme Variable} wesnothd-service-type"
msgstr ""

#. type: defvar
#: doc/guix.texi:28926
msgid ""
"Service type for the wesnothd service.  Its value must be a @code{wesnothd-"
"configuration} object.  To run wesnothd in the default configuration, "
"instantiate it as:"
msgstr ""

#. type: lisp
#: doc/guix.texi:28929
#, no-wrap
msgid "(service wesnothd-service-type)\n"
msgstr ""

#. type: deftp
#: doc/guix.texi:28932
#, no-wrap
msgid "{Data Type} wesnothd-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:28934
msgid "Data type representing the configuration of @command{wesnothd}."
msgstr ""

#. type: item
#: doc/guix.texi:28936
#, no-wrap
msgid "@code{package} (default: @code{wesnoth-server})"
msgstr ""

#. type: table
#: doc/guix.texi:28938
msgid "The wesnoth server package to use."
msgstr ""

#. type: item
#: doc/guix.texi:28939
#, no-wrap
msgid "@code{port} (default: @code{15000})"
msgstr ""

#. type: table
#: doc/guix.texi:28941
msgid "The port to bind the server to."
msgstr ""

#. type: cindex
#: doc/guix.texi:28947
#, no-wrap
msgid "pam-mount"
msgstr ""

#. type: Plain text
#: doc/guix.texi:28952
msgid ""
"The @code{(gnu services pam-mount)} module provides a service allowing users "
"to mount volumes when they log in.  It should be able to mount any volume "
"format supported by the system."
msgstr ""

#. type: defvar
#: doc/guix.texi:28953
#, no-wrap
msgid "{Scheme Variable} pam-mount-service-type"
msgstr ""

#. type: defvar
#: doc/guix.texi:28955
msgid "Service type for PAM Mount support."
msgstr ""

#. type: deftp
#: doc/guix.texi:28957
#, no-wrap
msgid "{Data Type} pam-mount-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:28959
msgid "Data type representing the configuration of PAM Mount."
msgstr ""

#. type: code{#1}
#: doc/guix.texi:28963
#, no-wrap
msgid "rules"
msgstr ""

#. type: table
#: doc/guix.texi:28966
msgid ""
"The configuration rules that will be used to generate @file{/etc/security/"
"pam_mount.conf.xml}."
msgstr ""

#. type: table
#: doc/guix.texi:28970
msgid ""
"The configuration rules are SXML elements (@pxref{SXML,,, guile, GNU Guile "
"Reference Manual}), and the default ones don't mount anything for anyone at "
"login:"
msgstr ""

#. type: lisp
#: doc/guix.texi:28985
#, no-wrap
msgid ""
"`((debug (@@ (enable \"0\")))\n"
"  (mntoptions (@@ (allow ,(string-join\n"
"                          '(\"nosuid\" \"nodev\" \"loop\"\n"
"                            \"encryption\" \"fsck\" \"nonempty\"\n"
"                            \"allow_root\" \"allow_other\")\n"
"                          \",\"))))\n"
"  (mntoptions (@@ (require \"nosuid,nodev\")))\n"
"  (logout (@@ (wait \"0\")\n"
"             (hup \"0\")\n"
"             (term \"no\")\n"
"             (kill \"no\")))\n"
"  (mkmountpoint (@@ (enable \"1\")\n"
"                   (remove \"true\"))))\n"
msgstr ""

#. type: table
#: doc/guix.texi:28991
msgid ""
"Some @code{volume} elements must be added to automatically mount volumes at "
"login.  Here's an example allowing the user @code{alice} to mount her "
"encrypted @env{HOME} directory and allowing the user @code{bob} to mount the "
"partition where he stores his data:"
msgstr ""

#. type: lisp
#: doc/guix.texi:29016
#, no-wrap
msgid ""
"(define pam-mount-rules\n"
"`((debug (@@ (enable \"0\")))\n"
"            (volume (@@ (user \"alice\")\n"
"                       (fstype \"crypt\")\n"
"                       (path \"/dev/sda2\")\n"
"                       (mountpoint \"/home/alice\")))\n"
"            (volume (@@ (user \"bob\")\n"
"                       (fstype \"auto\")\n"
"                       (path \"/dev/sdb3\")\n"
"                       (mountpoint \"/home/bob/data\")\n"
"                       (options \"defaults,autodefrag,compress\")))\n"
"            (mntoptions (@@ (allow ,(string-join\n"
"                                    '(\"nosuid\" \"nodev\" \"loop\"\n"
"                                      \"encryption\" \"fsck\" \"nonempty\"\n"
"                                      \"allow_root\" \"allow_other\")\n"
"                                    \",\"))))\n"
"            (mntoptions (@@ (require \"nosuid,nodev\")))\n"
"            (logout (@@ (wait \"0\")\n"
"                       (hup \"0\")\n"
"                       (term \"no\")\n"
"                       (kill \"no\")))\n"
"            (mkmountpoint (@@ (enable \"1\")\n"
"                             (remove \"true\")))))\n"
"\n"
msgstr ""

#. type: lisp
#: doc/guix.texi:29020
#, no-wrap
msgid ""
"(service pam-mount-service-type\n"
"         (pam-mount-configuration\n"
"           (rules pam-mount-rules)))\n"
msgstr ""

#. type: table
#: doc/guix.texi:29024
msgid ""
"The complete list of possible options can be found in the man page for "
"@uref{http://pam-mount.sourceforge.net/pam_mount.conf.5.html, pam_mount."
"conf}."
msgstr ""

#. type: subsubheading
#: doc/guix.texi:29031
#, no-wrap
msgid "Guix Build Coordinator"
msgstr ""

#. type: Plain text
#: doc/guix.texi:29037
msgid ""
"The @uref{https://git.cbaines.net/guix/build-coordinator/,Guix Build "
"Coordinator} aids in distributing derivation builds among machines running "
"an @dfn{agent}.  The build daemon is still used to build the derivations, "
"but the Guix Build Coordinator manages allocating builds and working with "
"the results."
msgstr ""

#. type: quotation
#: doc/guix.texi:29042
msgid ""
"This service is considered experimental.  Configuration options may be "
"changed in a backwards-incompatible manner, and not all features have been "
"thorougly tested."
msgstr ""

#. type: Plain text
#: doc/guix.texi:29049
msgid ""
"The Guix Build Coordinator consists of one @dfn{coordinator}, and one or "
"more connected @dfn{agent} processes. The coordinator process handles "
"clients submitting builds, and allocating builds to agents. The agent "
"processes talk to a build daemon to actually perform the builds, then send "
"the results back to the coordinator."
msgstr ""

#. type: Plain text
#: doc/guix.texi:29053
msgid ""
"There is a script to run the coordinator component of the Guix Build "
"Coordinator, but the Guix service uses a custom Guile script instead, to "
"provide better integration with G-expressions used in the configuration."
msgstr ""

#. type: defvar
#: doc/guix.texi:29054
#, no-wrap
msgid "{Scheme Variable} guix-build-coordinator-service-type"
msgstr ""

#. type: defvar
#: doc/guix.texi:29057
msgid ""
"Service type for the Guix Build Coordinator.  Its value must be a @code{guix-"
"build-coordinator-configuration} object."
msgstr ""

#. type: deftp
#: doc/guix.texi:29059
#, no-wrap
msgid "{Data Type} guix-build-coordinator-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:29061
msgid "Data type representing the configuration of the Guix Build Coordinator."
msgstr ""

#. type: item
#: doc/guix.texi:29063 doc/guix.texi:29107 doc/guix.texi:29166
#, no-wrap
msgid "@code{package} (default: @code{guix-build-coordinator})"
msgstr ""

#. type: table
#: doc/guix.texi:29065 doc/guix.texi:29109 doc/guix.texi:29168
msgid "The Guix Build Coordinator package to use."
msgstr ""

#. type: item
#: doc/guix.texi:29066
#, no-wrap
msgid "@code{user} (default: @code{\"guix-build-coordinator\"})"
msgstr ""

#. type: table
#: doc/guix.texi:29068 doc/guix.texi:29112 doc/guix.texi:29171
#: doc/guix.texi:29217
msgid "The system user to run the service as."
msgstr ""

#. type: item
#: doc/guix.texi:29069
#, no-wrap
msgid "@code{group} (default: @code{\"guix-build-coordinator\"})"
msgstr ""

#. type: table
#: doc/guix.texi:29071 doc/guix.texi:29220
msgid "The system group to run the service as."
msgstr ""

#. type: item
#: doc/guix.texi:29072
#, no-wrap
msgid "@code{database-uri-string} (default: @code{\"sqlite:///var/lib/guix-build-coordinator/guix_build_coordinator.db\"})"
msgstr ""

#. type: table
#: doc/guix.texi:29074
msgid "The URI to use for the database."
msgstr ""

#. type: item
#: doc/guix.texi:29075
#, no-wrap
msgid "@code{agent-communication-uri} (default: @code{\"http://0.0.0.0:8745\"})"
msgstr ""

#. type: table
#: doc/guix.texi:29077
msgid "The URI describing how to listen to requests from agent processes."
msgstr ""

#. type: item
#: doc/guix.texi:29078
#, no-wrap
msgid "@code{client-communication-uri} (default: @code{\"http://127.0.0.1:8746\"})"
msgstr ""

#. type: table
#: doc/guix.texi:29082
msgid ""
"The URI describing how to listen to requests from clients.  The client API "
"allows submitting builds and currently isn't authenticated, so take care "
"when configuring this value."
msgstr ""

#. type: item
#: doc/guix.texi:29083
#, no-wrap
msgid "@code{allocation-strategy} (default: @code{#~basic-build-allocation-strategy})"
msgstr ""

#. type: table
#: doc/guix.texi:29087
msgid ""
"A G-expression for the allocation strategy to be used.  This is a procedure "
"that takes the datastore as an argument and populates the allocation plan in "
"the database."
msgstr ""

#. type: item
#: doc/guix.texi:29088
#, no-wrap
msgid "@code{hooks} (default: @var{'()})"
msgstr ""

#. type: table
#: doc/guix.texi:29091
msgid ""
"An association list of hooks.  These provide a way to execute arbitrary code "
"upon certain events, like a build result being processed."
msgstr ""

#. type: item
#: doc/guix.texi:29092
#, no-wrap
msgid "@code{guile} (default: @code{guile-3.0-latest})"
msgstr ""

#. type: table
#: doc/guix.texi:29094
msgid "The Guile package with which to run the Guix Build Coordinator."
msgstr ""

#. type: defvar
#: doc/guix.texi:29098
#, no-wrap
msgid "{Scheme Variable} guix-build-coordinator-agent-service-type"
msgstr ""

#. type: defvar
#: doc/guix.texi:29101
msgid ""
"Service type for a Guix Build Coordinator agent.  Its value must be a "
"@code{guix-build-coordinator-agent-configuration} object."
msgstr ""

#. type: deftp
#: doc/guix.texi:29103
#, no-wrap
msgid "{Data Type} guix-build-coordinator-agent-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:29105
msgid ""
"Data type representing the configuration a Guix Build Coordinator agent."
msgstr ""

#. type: item
#: doc/guix.texi:29110
#, no-wrap
msgid "@code{user} (default: @code{\"guix-build-coordinator-agent\"})"
msgstr ""

#. type: item
#: doc/guix.texi:29113 doc/guix.texi:29172
#, no-wrap
msgid "@code{coordinator} (default: @code{\"http://localhost:8745\"})"
msgstr ""

#. type: table
#: doc/guix.texi:29115 doc/guix.texi:29174
msgid "The URI to use when connecting to the coordinator."
msgstr ""

#. type: table
#: doc/guix.texi:29120
msgid ""
"The UUID of the agent.  This should be generated by the coordinator process, "
"stored in the coordinator database, and used by the intended agent."
msgstr ""

#. type: table
#: doc/guix.texi:29124
msgid ""
"The password to use when connecting to the coordinator.  A file to read the "
"password from can also be specified, and this is more secure."
msgstr ""

#. type: item
#: doc/guix.texi:29125
#, no-wrap
msgid "@code{password-file} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:29128
msgid ""
"A file containing the password to use when connecting to the coordinator."
msgstr ""

#. type: item
#: doc/guix.texi:29129
#, no-wrap
msgid "@code{systems} (default: @var{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:29132
msgid ""
"The systems for which this agent should fetch builds.  The agent process "
"will use the current system it's running on as the default."
msgstr ""

#. type: item
#: doc/guix.texi:29133
#, no-wrap
msgid "@code{max-parallel-builds} (default: @code{1})"
msgstr ""

#. type: table
#: doc/guix.texi:29135
msgid "The number of builds to perform in parallel."
msgstr ""

#. type: item
#: doc/guix.texi:29136
#, no-wrap
msgid "@code{derivation-substitute-urls} (default: @code{1})"
msgstr ""

#. type: table
#: doc/guix.texi:29139
msgid ""
"URLs from which to attempt to fetch substitutes for derivations, if the "
"derivations aren't already available."
msgstr ""

#. type: item
#: doc/guix.texi:29140
#, no-wrap
msgid "@code{non-derivation-substitute-urls} (default: @code{1})"
msgstr ""

#. type: table
#: doc/guix.texi:29143
msgid ""
"URLs from which to attempt to fetch substitutes for build inputs, if the "
"input store items aren't already available."
msgstr ""

#. type: Plain text
#: doc/guix.texi:29153
msgid ""
"The Guix Build Coordinator package contains a script to query an instance of "
"the Guix Data Service for derivations to build, and then submit builds for "
"those derivations to the coordinator.  The service type below assists in "
"running this script.  This is an additional tool that may be useful when "
"building derivations contained within an instance of the Guix Data Service."
msgstr ""

#. type: defvar
#: doc/guix.texi:29154
#, no-wrap
msgid "{Scheme Variable} guix-build-coordinator-queue-builds-service-type"
msgstr ""

#. type: defvar
#: doc/guix.texi:29159
msgid ""
"Service type for the guix-build-coordinator-queue-builds-from-guix-data-"
"service script.  Its value must be a @code{guix-build-coordinator-queue-"
"builds-configuration} object."
msgstr ""

#. type: deftp
#: doc/guix.texi:29161
#, no-wrap
msgid "{Data Type} guix-build-coordinator-queue-builds-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:29164
msgid ""
"Data type representing the options to the queue builds from guix data "
"service script."
msgstr ""

#. type: item
#: doc/guix.texi:29169
#, no-wrap
msgid "@code{user} (default: @code{\"guix-build-coordinator-queue-builds\"})"
msgstr ""

#. type: item
#: doc/guix.texi:29175
#, no-wrap
msgid "@code{systems} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:29177
msgid "The systems for which to fetch derivations to build."
msgstr ""

#. type: item
#: doc/guix.texi:29178
#, no-wrap
msgid "@code{systems-and-targets} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:29181
msgid ""
"An association list of system and target pairs for which to fetch "
"derivations to build."
msgstr ""

#. type: item
#: doc/guix.texi:29182
#, no-wrap
msgid "@code{guix-data-service} (default: @code{\"https://data.guix.gnu.org\"})"
msgstr ""

#. type: table
#: doc/guix.texi:29185
msgid ""
"The Guix Data Service instance from which to query to find out about "
"derivations to build."
msgstr ""

#. type: item
#: doc/guix.texi:29186
#, no-wrap
msgid "@code{processed-commits-file} (default: @code{\"/var/cache/guix-build-coordinator-queue-builds/processed-commits\"})"
msgstr ""

#. type: table
#: doc/guix.texi:29189
msgid ""
"A file to record which commits have been processed, to avoid needlessly "
"processing them again if the service is restarted."
msgstr ""

#. type: subsubheading
#: doc/guix.texi:29193
#, no-wrap
msgid "Guix Data Service"
msgstr ""

#. type: Plain text
#: doc/guix.texi:29197
msgid ""
"The @uref{http://data.guix.gnu.org,Guix Data Service} processes, stores and "
"provides data about GNU Guix.  This includes information about packages, "
"derivations and lint warnings."
msgstr ""

#. type: Plain text
#: doc/guix.texi:29200
msgid ""
"The data is stored in a PostgreSQL database, and available through a web "
"interface."
msgstr ""

#. type: defvar
#: doc/guix.texi:29201
#, no-wrap
msgid "{Scheme Variable} guix-data-service-type"
msgstr ""

#. type: defvar
#: doc/guix.texi:29206
msgid ""
"Service type for the Guix Data Service.  Its value must be a @code{guix-data-"
"service-configuration} object.  The service optionally extends the getmail "
"service, as the guix-commits mailing list is used to find out about changes "
"in the Guix git repository."
msgstr ""

#. type: deftp
#: doc/guix.texi:29208
#, no-wrap
msgid "{Data Type} guix-data-service-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:29210
msgid "Data type representing the configuration of the Guix Data Service."
msgstr ""

#. type: item
#: doc/guix.texi:29212
#, no-wrap
msgid "@code{package} (default: @code{guix-data-service})"
msgstr ""

#. type: table
#: doc/guix.texi:29214
msgid "The Guix Data Service package to use."
msgstr ""

#. type: item
#: doc/guix.texi:29215
#, no-wrap
msgid "@code{user} (default: @code{\"guix-data-service\"})"
msgstr ""

#. type: item
#: doc/guix.texi:29218
#, no-wrap
msgid "@code{group} (default: @code{\"guix-data-service\"})"
msgstr ""

#. type: item
#: doc/guix.texi:29221
#, no-wrap
msgid "@code{port} (default: @code{8765})"
msgstr ""

#. type: table
#: doc/guix.texi:29223
msgid "The port to bind the web service to."
msgstr ""

#. type: item
#: doc/guix.texi:29224
#, no-wrap
msgid "@code{host} (default: @code{\"127.0.0.1\"})"
msgstr ""

#. type: table
#: doc/guix.texi:29226
msgid "The host to bind the web service to."
msgstr ""

#. type: item
#: doc/guix.texi:29227
#, no-wrap
msgid "@code{getmail-idle-mailboxes} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:29230
msgid ""
"If set, this is the list of mailboxes that the getmail service will be "
"configured to listen to."
msgstr ""

#. type: item
#: doc/guix.texi:29231
#, no-wrap
msgid "@code{commits-getmail-retriever-configuration} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:29235
msgid ""
"If set, this is the @code{getmail-retriever-configuration} object with which "
"to configure getmail to fetch mail from the guix-commits mailing list."
msgstr ""

#. type: item
#: doc/guix.texi:29236
#, no-wrap
msgid "@code{extra-options} (default: @var{'()})"
msgstr ""

#. type: table
#: doc/guix.texi:29238
msgid "Extra command line options for @code{guix-data-service}."
msgstr ""

#. type: item
#: doc/guix.texi:29239
#, no-wrap
msgid "@code{extra-process-jobs-options} (default: @var{'()})"
msgstr ""

#. type: table
#: doc/guix.texi:29241
msgid "Extra command line options for @code{guix-data-service-process-jobs}."
msgstr ""

#. type: cindex
#: doc/guix.texi:29248
#, no-wrap
msgid "oom"
msgstr ""

#. type: cindex
#: doc/guix.texi:29249
#, no-wrap
msgid "out of memory killer"
msgstr ""

#. type: cindex
#: doc/guix.texi:29250
#, no-wrap
msgid "earlyoom"
msgstr ""

#. type: cindex
#: doc/guix.texi:29251
#, no-wrap
msgid "early out of memory daemon"
msgstr ""

#. type: subsubheading
#: doc/guix.texi:29252
#, no-wrap
msgid "Early OOM Service"
msgstr ""

#. type: Plain text
#: doc/guix.texi:29259
msgid ""
"@uref{https://github.com/rfjakob/earlyoom,Early OOM}, also known as "
"Earlyoom, is a minimalist out of memory (OOM) daemon that runs in user space "
"and provides a more responsive and configurable alternative to the in-kernel "
"OOM killer.  It is useful to prevent the system from becoming unresponsive "
"when it runs out of memory."
msgstr ""

#. type: deffn
#: doc/guix.texi:29260
#, no-wrap
msgid "{Scheme Variable} earlyoom-service-type"
msgstr ""

#. type: deffn
#: doc/guix.texi:29265
msgid ""
"The service type for running @command{earlyoom}, the Early OOM daemon.  Its "
"value must be a @code{earlyoom-configuration} object, described below.  The "
"service can be instantiated in its default configuration with:"
msgstr ""

#. type: lisp
#: doc/guix.texi:29268
#, no-wrap
msgid "(service earlyoom-service-type)\n"
msgstr ""

#. type: deftp
#: doc/guix.texi:29271
#, no-wrap
msgid "{Data Type} earlyoom-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:29273
msgid "This is the configuration record for the @code{earlyoom-service-type}."
msgstr ""

#. type: item
#: doc/guix.texi:29275
#, no-wrap
msgid "@code{earlyoom} (default: @var{earlyoom})"
msgstr ""

#. type: table
#: doc/guix.texi:29277
msgid "The Earlyoom package to use."
msgstr ""

#. type: item
#: doc/guix.texi:29278
#, no-wrap
msgid "@code{minimum-available-memory} (default: @code{10})"
msgstr ""

#. type: table
#: doc/guix.texi:29280
msgid "The threshold for the minimum @emph{available} memory, in percentages."
msgstr ""

#. type: item
#: doc/guix.texi:29281
#, no-wrap
msgid "@code{minimum-free-swap} (default: @code{10})"
msgstr ""

#. type: table
#: doc/guix.texi:29283
msgid "The threshold for the minimum free swap memory, in percentages."
msgstr ""

#. type: item
#: doc/guix.texi:29284
#, no-wrap
msgid "@code{prefer-regexp} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:29287
msgid ""
"A regular expression (as a string) to match the names of the processes that "
"should be preferably killed."
msgstr ""

#. type: item
#: doc/guix.texi:29288
#, no-wrap
msgid "@code{avoid-regexp} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:29291
msgid ""
"A regular expression (as a string) to match the names of the processes that "
"should @emph{not} be killed."
msgstr ""

#. type: item
#: doc/guix.texi:29292
#, no-wrap
msgid "@code{memory-report-interval} (default: @code{0})"
msgstr ""

#. type: table
#: doc/guix.texi:29295
msgid ""
"The interval in seconds at which a memory report is printed.  It is disabled "
"by default."
msgstr ""

#. type: item
#: doc/guix.texi:29296
#, no-wrap
msgid "@code{ignore-positive-oom-score-adj?} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:29299
msgid ""
"A boolean indicating whether the positive adjustments set in @file{/proc/*/"
"oom_score_adj} should be ignored."
msgstr ""

#. type: item
#: doc/guix.texi:29300
#, no-wrap
msgid "@code{show-debug-messages?} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:29303
msgid ""
"A boolean indicating whether debug messages should be printed.  The logs are "
"saved at @file{/var/log/earlyoom.log}."
msgstr ""

#. type: item
#: doc/guix.texi:29304
#, no-wrap
msgid "@code{send-notification-command} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:29307
msgid ""
"This can be used to provide a custom command used for sending notifications."
msgstr ""

#. type: cindex
#: doc/guix.texi:29310
#, no-wrap
msgid "modprobe"
msgstr ""

#. type: cindex
#: doc/guix.texi:29311
#, no-wrap
msgid "kernel module loader"
msgstr ""

#. type: subsubheading
#: doc/guix.texi:29312
#, no-wrap
msgid "Kernel Module Loader Service"
msgstr ""

#. type: Plain text
#: doc/guix.texi:29318
msgid ""
"The kernel module loader service allows one to load loadable kernel modules "
"at boot.  This is especially useful for modules that don't autoload and need "
"to be manually loaded, as it's the case with @code{ddcci}."
msgstr ""

#. type: deffn
#: doc/guix.texi:29319
#, no-wrap
msgid "{Scheme Variable} kernel-module-loader-service-type"
msgstr ""

#. type: deffn
#: doc/guix.texi:29325
msgid ""
"The service type for loading loadable kernel modules at boot with "
"@command{modprobe}.  Its value must be a list of strings representing module "
"names.  For example loading the drivers provided by @code{ddcci-driver-"
"linux}, in debugging mode by passing some module parameters, can be done as "
"follow:"
msgstr ""

#. type: lisp
#: doc/guix.texi:29330
#, no-wrap
msgid ""
"(use-modules (gnu) (gnu services))\n"
"(use-package-modules linux)\n"
"(use-service-modules linux)\n"
"\n"
msgstr ""

#. type: lisp
#: doc/guix.texi:29334
#, no-wrap
msgid ""
"(define ddcci-config\n"
"  (plain-file \"ddcci.conf\"\n"
"              \"options ddcci dyndbg delay=120\"))\n"
"\n"
msgstr ""

#. type: lisp
#: doc/guix.texi:29344
#, no-wrap
msgid ""
"(operating-system\n"
"  ...\n"
"  (services (cons* (service kernel-module-loader-service-type\n"
"                            '(\"ddcci\" \"ddcci_backlight\"))\n"
"                   (simple-service 'ddcci-config etc-service-type\n"
"                                   (list `(\"modprobe.d/ddcci.conf\"\n"
"                                           ,ddcci-config)))\n"
"                   %base-services))\n"
"  (kernel-loadable-modules (list ddcci-driver-linux)))\n"
msgstr ""

#. type: cindex
#: doc/guix.texi:29347
#, no-wrap
msgid "zram"
msgstr ""

#. type: cindex
#: doc/guix.texi:29348
#, no-wrap
msgid "compressed swap"
msgstr ""

#. type: cindex
#: doc/guix.texi:29349
#, no-wrap
msgid "Compressed RAM-based block devices"
msgstr ""

#. type: subsubheading
#: doc/guix.texi:29350
#, no-wrap
msgid "Zram Device Service"
msgstr ""

#. type: Plain text
#: doc/guix.texi:29356
msgid ""
"The Zram device service provides a compressed swap device in system memory.  "
"The Linux Kernel documentation has more information about @uref{https://www."
"kernel.org/doc/html/latest/admin-guide/blockdev/zram.html,zram} devices."
msgstr ""

#. type: deffn
#: doc/guix.texi:29357
#, no-wrap
msgid "{Scheme Variable} zram-device-service-type"
msgstr ""

#. type: deffn
#: doc/guix.texi:29361
msgid ""
"This service creates the zram block device, formats it as swap and enables "
"it as a swap device.  The service's value is a @code{zram-device-"
"configuration} record."
msgstr ""

#. type: deftp
#: doc/guix.texi:29362
#, no-wrap
msgid "{Data Type} zram-device-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:29365
msgid ""
"This is the data type representing the configuration for the zram-device "
"service."
msgstr ""

#. type: item
#: doc/guix.texi:29367
#, no-wrap
msgid "@code{size} (default @code{\"1G\"})"
msgstr ""

#. type: table
#: doc/guix.texi:29371
msgid ""
"This is the amount of space you wish to provide for the zram device.  It "
"accepts a string and can be a number of bytes or use a suffix, eg.: "
"@code{\"512M\"} or @code{1024000}."
msgstr ""

#. type: item
#: doc/guix.texi:29371
#, no-wrap
msgid "@code{compression-algorithm} (default @code{'lzo})"
msgstr ""

#. type: table
#: doc/guix.texi:29375
msgid ""
"This is the compression algorithm you wish to use.  It is difficult to list "
"all the possible compression options, but common ones supported by Guix's "
"Linux Libre Kernel include @code{'lzo}, @code{'lz4} and @code{'zstd}."
msgstr ""

#. type: item
#: doc/guix.texi:29375
#, no-wrap
msgid "@code{memory-limit} (default @code{0})"
msgstr ""

#. type: table
#: doc/guix.texi:29382
msgid ""
"This is the maximum amount of memory which the zram device can use.  Setting "
"it to '0' disables the limit.  While it is generally expected that "
"compression will be 2:1, it is possible that uncompressable data can be "
"written to swap and this is a method to limit how much memory can be used.  "
"It accepts a string and can be a number of bytes or use a suffix, eg.: "
"@code{\"2G\"}."
msgstr ""

#. type: item
#: doc/guix.texi:29382
#, no-wrap
msgid "@code{priority} (default @code{-1})"
msgstr ""

#. type: table
#: doc/guix.texi:29387
msgid ""
"This is the priority of the swap device created from the zram device.  "
"@code{swapon} accepts values between -1 and 32767, with higher values "
"indicating higher priority.  Higher priority swap will generally be used "
"first."
msgstr ""

#. type: defvr
#: doc/guix.texi:29395
#, no-wrap
msgid "{Scheme Variable} hurd-console-service-type"
msgstr ""

#. type: defvr
#: doc/guix.texi:29397
msgid "This service starts the fancy @code{VGA} console client on the Hurd."
msgstr ""

#. type: defvr
#: doc/guix.texi:29399
msgid "The service's value is a @code{hurd-console-configuration} record."
msgstr ""

#. type: deftp
#: doc/guix.texi:29401
#, no-wrap
msgid "{Data Type} hurd-console-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:29404
msgid ""
"This is the data type representing the configuration for the hurd-console-"
"service."
msgstr ""

#. type: item
#: doc/guix.texi:29406 doc/guix.texi:29422
#, no-wrap
msgid "@code{hurd} (default: @var{hurd})"
msgstr ""

#. type: table
#: doc/guix.texi:29408 doc/guix.texi:29424
msgid "The Hurd package to use."
msgstr ""

#. type: defvr
#: doc/guix.texi:29411
#, no-wrap
msgid "{Scheme Variable} hurd-getty-service-type"
msgstr ""

#. type: defvr
#: doc/guix.texi:29413
msgid "This service starts a tty using the Hurd @code{getty} program."
msgstr ""

#. type: defvr
#: doc/guix.texi:29415
msgid "The service's value is a @code{hurd-getty-configuration} record."
msgstr ""

#. type: deftp
#: doc/guix.texi:29417
#, no-wrap
msgid "{Data Type} hurd-getty-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:29420
msgid ""
"This is the data type representing the configuration for the hurd-getty-"
"service."
msgstr ""

#. type: table
#: doc/guix.texi:29427
msgid "The name of the console this Getty runs on---e.g., @code{\"tty1\"}."
msgstr ""

#. type: item
#: doc/guix.texi:29428
#, no-wrap
msgid "@code{baud-rate} (default: @code{38400})"
msgstr ""

#. type: table
#: doc/guix.texi:29430
msgid "An integer specifying the baud rate of the tty."
msgstr ""

#. type: cindex
#: doc/guix.texi:29437
#, no-wrap
msgid "fingerprint"
msgstr ""

#. type: subsubheading
#: doc/guix.texi:29438
#, no-wrap
msgid "Fingerprint Service"
msgstr ""

#. type: Plain text
#: doc/guix.texi:29442
msgid ""
"The @code{(gnu services authentication)} module provides a DBus service to "
"read and identify fingerprints via a fingerprint sensor."
msgstr ""

#. type: defvr
#: doc/guix.texi:29443
#, no-wrap
msgid "{Scheme Variable} fprintd-service-type"
msgstr ""

#. type: defvr
#: doc/guix.texi:29446
msgid ""
"The service type for @command{fprintd}, which provides the fingerprint "
"reading capability."
msgstr ""

#. type: lisp
#: doc/guix.texi:29449
#, no-wrap
msgid "(service fprintd-service-type)\n"
msgstr ""

#. type: cindex
#: doc/guix.texi:29452
#, no-wrap
msgid "sysctl"
msgstr ""

#. type: subsubheading
#: doc/guix.texi:29453
#, no-wrap
msgid "System Control Service"
msgstr ""

#. type: Plain text
#: doc/guix.texi:29457
msgid ""
"The @code{(gnu services sysctl)} provides a service to configure kernel "
"parameters at boot."
msgstr ""

#. type: defvr
#: doc/guix.texi:29458
#, no-wrap
msgid "{Scheme Variable} sysctl-service-type"
msgstr ""

#. type: defvr
#: doc/guix.texi:29462
msgid ""
"The service type for @command{sysctl}, which modifies kernel parameters "
"under @file{/proc/sys/}.  To enable IPv4 forwarding, it can be instantiated "
"as:"
msgstr ""

#. type: lisp
#: doc/guix.texi:29467
#, no-wrap
msgid ""
"(service sysctl-service-type\n"
"         (sysctl-configuration\n"
"           (settings '((\"net.ipv4.ip_forward\" . \"1\")))))\n"
msgstr ""

#. type: deftp
#: doc/guix.texi:29470
#, no-wrap
msgid "{Data Type} sysctl-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:29472
msgid "The data type representing the configuration of @command{sysctl}."
msgstr ""

#. type: item
#: doc/guix.texi:29474
#, no-wrap
msgid "@code{sysctl} (default: @code{(file-append procps \"/sbin/sysctl\"})"
msgstr ""

#. type: table
#: doc/guix.texi:29476
msgid "The @command{sysctl} executable to use."
msgstr ""

#. type: item
#: doc/guix.texi:29477
#, no-wrap
msgid "@code{settings} (default: @code{'()})"
msgstr ""

#. type: table
#: doc/guix.texi:29479
msgid "An association list specifies kernel parameters and their values."
msgstr ""

#. type: cindex
#: doc/guix.texi:29482
#, no-wrap
msgid "pcscd"
msgstr ""

#. type: subsubheading
#: doc/guix.texi:29483
#, no-wrap
msgid "PC/SC Smart Card Daemon Service"
msgstr ""

#. type: Plain text
#: doc/guix.texi:29490
msgid ""
"The @code{(gnu services security-token)} module provides the following "
"service to run @command{pcscd}, the PC/SC Smart Card Daemon.  "
"@command{pcscd} is the daemon program for pcsc-lite and the MuscleCard "
"framework. It is a resource manager that coordinates communications with "
"smart card readers, smart cards and cryptographic tokens that are connected "
"to the system."
msgstr ""

#. type: defvr
#: doc/guix.texi:29491
#, no-wrap
msgid "{Scheme Variable} pcscd-service-type"
msgstr ""

#. type: defvr
#: doc/guix.texi:29495
msgid ""
"Service type for the @command{pcscd} service.  Its value must be a "
"@code{pcscd-configuration} object.  To run pcscd in the default "
"configuration, instantiate it as:"
msgstr ""

#. type: lisp
#: doc/guix.texi:29498
#, no-wrap
msgid "(service pcscd-service-type)\n"
msgstr ""

#. type: deftp
#: doc/guix.texi:29501
#, no-wrap
msgid "{Data Type} pcscd-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:29503
msgid "The data type representing the configuration of @command{pcscd}."
msgstr ""

#. type: item
#: doc/guix.texi:29505
#, no-wrap
msgid "@code{pcsc-lite} (default: @code{pcsc-lite})"
msgstr ""

#. type: table
#: doc/guix.texi:29507
msgid "The pcsc-lite package that provides pcscd."
msgstr ""

#. type: item
#: doc/guix.texi:29507
#, no-wrap
msgid "@code{usb-drivers} (default: @code{(list ccid)})"
msgstr ""

#. type: table
#: doc/guix.texi:29510
msgid ""
"List of packages that provide USB drivers to pcscd. Drivers are expected to "
"be under @file{pcsc/drivers} in the store directory of the package."
msgstr ""

#. type: cindex
#: doc/guix.texi:29513
#, no-wrap
msgid "lirc"
msgstr ""

#. type: subsubheading
#: doc/guix.texi:29514
#, no-wrap
msgid "Lirc Service"
msgstr ""

#. type: Plain text
#: doc/guix.texi:29517
msgid "The @code{(gnu services lirc)} module provides the following service."
msgstr ""

#. type: deffn
#: doc/guix.texi:29518
#, no-wrap
msgid "{Scheme Procedure} lirc-service [#:lirc lirc] @"
msgstr ""

#. type: deffn
#: doc/guix.texi:29523
msgid ""
"[#:device #f] [#:driver #f] [#:config-file #f] @ [#:extra-options '()] "
"Return a service that runs @url{http://www.lirc.org,LIRC}, a daemon that "
"decodes infrared signals from remote controls."
msgstr ""

#. type: deffn
#: doc/guix.texi:29527
msgid ""
"Optionally, @var{device}, @var{driver} and @var{config-file} (configuration "
"file name) may be specified.  See @command{lircd} manual for details."
msgstr ""

#. type: deffn
#: doc/guix.texi:29530
msgid ""
"Finally, @var{extra-options} is a list of additional command-line options "
"passed to @command{lircd}."
msgstr ""

#. type: cindex
#: doc/guix.texi:29532
#, no-wrap
msgid "spice"
msgstr ""

#. type: subsubheading
#: doc/guix.texi:29533
#, no-wrap
msgid "Spice Service"
msgstr ""

#. type: Plain text
#: doc/guix.texi:29536
msgid "The @code{(gnu services spice)} module provides the following service."
msgstr ""

#. type: deffn
#: doc/guix.texi:29537
#, no-wrap
msgid "{Scheme Procedure} spice-vdagent-service [#:spice-vdagent]"
msgstr ""

#. type: deffn
#: doc/guix.texi:29541
msgid ""
"Returns a service that runs @url{https://www.spice-space.org,VDAGENT}, a "
"daemon that enables sharing the clipboard with a vm and setting the guest "
"display resolution when the graphical console window resizes."
msgstr ""

#. type: cindex
#: doc/guix.texi:29543
#, no-wrap
msgid "inputattach"
msgstr ""

#. type: subsubheading
#: doc/guix.texi:29544
#, no-wrap
msgid "inputattach Service"
msgstr ""

#. type: cindex
#: doc/guix.texi:29546
#, no-wrap
msgid "tablet input, for Xorg"
msgstr ""

#. type: cindex
#: doc/guix.texi:29547
#, no-wrap
msgid "touchscreen input, for Xorg"
msgstr ""

#. type: Plain text
#: doc/guix.texi:29551
msgid ""
"The @uref{https://linuxwacom.github.io/, inputattach} service allows you to "
"use input devices such as Wacom tablets, touchscreens, or joysticks with the "
"Xorg display server."
msgstr ""

#. type: deffn
#: doc/guix.texi:29552
#, no-wrap
msgid "{Scheme Variable} inputattach-service-type"
msgstr ""

#. type: deffn
#: doc/guix.texi:29555
msgid ""
"Type of a service that runs @command{inputattach} on a device and dispatches "
"events from it."
msgstr ""

#. type: deftp
#: doc/guix.texi:29557
#, no-wrap
msgid "{Data Type} inputattach-configuration"
msgstr ""

#. type: item
#: doc/guix.texi:29559
#, no-wrap
msgid "@code{device-type} (default: @code{\"wacom\"})"
msgstr ""

#. type: table
#: doc/guix.texi:29562
msgid ""
"The type of device to connect to.  Run @command{inputattach --help}, from "
"the @code{inputattach} package, to see the list of supported device types."
msgstr ""

#. type: item
#: doc/guix.texi:29563
#, no-wrap
msgid "@code{device} (default: @code{\"/dev/ttyS0\"})"
msgstr ""

#. type: table
#: doc/guix.texi:29565
msgid "The device file to connect to the device."
msgstr ""

#. type: table
#: doc/guix.texi:29569
msgid ""
"Baud rate to use for the serial connection.  Should be a number or @code{#f}."
msgstr ""

#. type: item
#: doc/guix.texi:29570
#, no-wrap
msgid "@code{log-file} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:29572
msgid "If true, this must be the name of a file to log messages to."
msgstr ""

#. type: subsubheading
#: doc/guix.texi:29575
#, no-wrap
msgid "Dictionary Service"
msgstr ""

#. type: cindex
#: doc/guix.texi:29576
#, no-wrap
msgid "dictionary"
msgstr ""

#. type: Plain text
#: doc/guix.texi:29578
msgid "The @code{(gnu services dict)} module provides the following service:"
msgstr ""

#. type: defvr
#: doc/guix.texi:29579
#, no-wrap
msgid "{Scheme Variable} dicod-service-type"
msgstr ""

#. type: defvr
#: doc/guix.texi:29582
msgid ""
"This is the type of the service that runs the @command{dicod} daemon, an "
"implementation of DICT server (@pxref{Dicod,,, dico, GNU Dico Manual})."
msgstr ""

#. type: deffn
#: doc/guix.texi:29584
#, no-wrap
msgid "{Scheme Procedure} dicod-service [#:config (dicod-configuration)]"
msgstr ""

#. type: deffn
#: doc/guix.texi:29587
msgid ""
"Return a service that runs the @command{dicod} daemon, an implementation of "
"DICT server (@pxref{Dicod,,, dico, GNU Dico Manual})."
msgstr ""

#. type: deffn
#: doc/guix.texi:29591
msgid ""
"The optional @var{config} argument specifies the configuration for "
"@command{dicod}, which should be a @code{<dicod-configuration>} object, by "
"default it serves the GNU Collaborative International Dictionary of English."
msgstr ""

#. type: deffn
#: doc/guix.texi:29595
msgid ""
"You can add @command{open localhost} to your @file{~/.dico} file to make "
"@code{localhost} the default server for @command{dico} client "
"(@pxref{Initialization File,,, dico, GNU Dico Manual})."
msgstr ""

#. type: deftp
#: doc/guix.texi:29597
#, no-wrap
msgid "{Data Type} dicod-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:29599
msgid "Data type representing the configuration of dicod."
msgstr ""

#. type: item
#: doc/guix.texi:29601
#, no-wrap
msgid "@code{dico} (default: @var{dico})"
msgstr ""

#. type: table
#: doc/guix.texi:29603
msgid "Package object of the GNU Dico dictionary server."
msgstr ""

#. type: item
#: doc/guix.texi:29604
#, no-wrap
msgid "@code{interfaces} (default: @var{'(\"localhost\")})"
msgstr ""

#. type: table
#: doc/guix.texi:29608
msgid ""
"This is the list of IP addresses and ports and possibly socket file names to "
"listen to (@pxref{Server Settings, @code{listen} directive,, dico, GNU Dico "
"Manual})."
msgstr ""

#. type: item
#: doc/guix.texi:29609
#, no-wrap
msgid "@code{handlers} (default: @var{'()})"
msgstr ""

#. type: table
#: doc/guix.texi:29611
msgid ""
"List of @code{<dicod-handler>} objects denoting handlers (module instances)."
msgstr ""

#. type: item
#: doc/guix.texi:29612
#, no-wrap
msgid "@code{databases} (default: @var{(list %dicod-database:gcide)})"
msgstr ""

#. type: table
#: doc/guix.texi:29614
msgid ""
"List of @code{<dicod-database>} objects denoting dictionaries to be served."
msgstr ""

#. type: deftp
#: doc/guix.texi:29617
#, no-wrap
msgid "{Data Type} dicod-handler"
msgstr ""

#. type: deftp
#: doc/guix.texi:29619
msgid "Data type representing a dictionary handler (module instance)."
msgstr ""

#. type: table
#: doc/guix.texi:29623
msgid "Name of the handler (module instance)."
msgstr ""

#. type: item
#: doc/guix.texi:29624
#, no-wrap
msgid "@code{module} (default: @var{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:29628
msgid ""
"Name of the dicod module of the handler (instance).  If it is @code{#f}, the "
"module has the same name as the handler.  (@pxref{Modules,,, dico, GNU Dico "
"Manual})."
msgstr ""

#. type: table
#: doc/guix.texi:29631
msgid ""
"List of strings or gexps representing the arguments for the module handler"
msgstr ""

#. type: deftp
#: doc/guix.texi:29634
#, no-wrap
msgid "{Data Type} dicod-database"
msgstr ""

#. type: deftp
#: doc/guix.texi:29636
msgid "Data type representing a dictionary database."
msgstr ""

#. type: table
#: doc/guix.texi:29640
msgid "Name of the database, will be used in DICT commands."
msgstr ""

#. type: code{#1}
#: doc/guix.texi:29641
#, no-wrap
msgid "handler"
msgstr ""

#. type: table
#: doc/guix.texi:29644
msgid ""
"Name of the dicod handler (module instance) used by this database "
"(@pxref{Handlers,,, dico, GNU Dico Manual})."
msgstr ""

#. type: item
#: doc/guix.texi:29645
#, no-wrap
msgid "@code{complex?} (default: @var{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:29648
msgid ""
"Whether the database configuration complex.  The complex configuration will "
"need a corresponding @code{<dicod-handler>} object, otherwise not."
msgstr ""

#. type: table
#: doc/guix.texi:29652
msgid ""
"List of strings or gexps representing the arguments for the database "
"(@pxref{Databases,,, dico, GNU Dico Manual})."
msgstr ""

#. type: defvr
#: doc/guix.texi:29655
#, no-wrap
msgid "{Scheme Variable} %dicod-database:gcide"
msgstr ""

#. type: defvr
#: doc/guix.texi:29658
msgid ""
"A @code{<dicod-database>} object serving the GNU Collaborative International "
"Dictionary of English using the @code{gcide} package."
msgstr ""

#. type: Plain text
#: doc/guix.texi:29661
msgid "The following is an example @code{dicod-service} configuration."
msgstr ""

#. type: lisp
#: doc/guix.texi:29676
#, no-wrap
msgid ""
"(dicod-service #:config\n"
"  (dicod-configuration\n"
"   (handlers (list (dicod-handler\n"
"                    (name \"wordnet\")\n"
"                    (module \"dictorg\")\n"
"                    (options\n"
"                     (list #~(string-append \"dbdir=\" #$wordnet))))))\n"
"   (databases (list (dicod-database\n"
"                     (name \"wordnet\")\n"
"                     (complex? #t)\n"
"                     (handler \"wordnet\")\n"
"                     (options '(\"database=wn\")))\n"
"                    %dicod-database:gcide))))\n"
msgstr ""

#. type: cindex
#: doc/guix.texi:29678
#, no-wrap
msgid "Docker"
msgstr ""

#. type: subsubheading
#: doc/guix.texi:29679
#, no-wrap
msgid "Docker Service"
msgstr ""

#. type: Plain text
#: doc/guix.texi:29682
msgid ""
"The @code{(gnu services docker)} module provides the following services."
msgstr ""

#. type: defvr
#: doc/guix.texi:29683
#, no-wrap
msgid "{Scheme Variable} docker-service-type"
msgstr ""

#. type: defvr
#: doc/guix.texi:29688
msgid ""
"This is the type of the service that runs @url{https://www.docker.com,"
"Docker}, a daemon that can execute application bundles (sometimes referred "
"to as ``containers'') in isolated environments."
msgstr ""

#. type: deftp
#: doc/guix.texi:29691
#, no-wrap
msgid "{Data Type} docker-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:29693
msgid ""
"This is the data type representing the configuration of Docker and "
"Containerd."
msgstr ""

#. type: item
#: doc/guix.texi:29696
#, no-wrap
msgid "@code{package} (default: @code{docker})"
msgstr ""

#. type: table
#: doc/guix.texi:29698
msgid "The Docker daemon package to use."
msgstr ""

#. type: item
#: doc/guix.texi:29699
#, no-wrap
msgid "@code{package} (default: @code{docker-cli})"
msgstr ""

#. type: table
#: doc/guix.texi:29701
msgid "The Docker client package to use."
msgstr ""

#. type: item
#: doc/guix.texi:29702
#, no-wrap
msgid "@code{containerd} (default: @var{containerd})"
msgstr ""

#. type: table
#: doc/guix.texi:29704
msgid "The Containerd package to use."
msgstr ""

#. type: item
#: doc/guix.texi:29705
#, no-wrap
msgid "@code{proxy} (default @var{docker-libnetwork-cmd-proxy})"
msgstr ""

#. type: table
#: doc/guix.texi:29707
msgid "The Docker user-land networking proxy package to use."
msgstr ""

#. type: item
#: doc/guix.texi:29708
#, no-wrap
msgid "@code{enable-proxy?} (default @code{#t})"
msgstr ""

#. type: table
#: doc/guix.texi:29710
msgid "Enable or disable the use of the Docker user-land networking proxy."
msgstr ""

#. type: item
#: doc/guix.texi:29711
#, no-wrap
msgid "@code{debug?} (default @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:29713
msgid "Enable or disable debug output."
msgstr ""

#. type: item
#: doc/guix.texi:29714
#, no-wrap
msgid "@code{enable-iptables?} (default @code{#t})"
msgstr ""

#. type: table
#: doc/guix.texi:29716
msgid "Enable or disable the addition of iptables rules."
msgstr ""

#. type: cindex
#: doc/guix.texi:29720
#, no-wrap
msgid "Singularity, container service"
msgstr ""

#. type: defvr
#: doc/guix.texi:29721
#, no-wrap
msgid "{Scheme Variable} singularity-service-type"
msgstr ""

#. type: defvr
#: doc/guix.texi:29726
msgid ""
"This is the type of the service that allows you to run @url{https://www."
"sylabs.io/singularity/, Singularity}, a Docker-style tool to create and run "
"application bundles (aka. ``containers'').  The value for this service is "
"the Singularity package to use."
msgstr ""

#. type: defvr
#: doc/guix.texi:29730
msgid ""
"The service does not install a daemon; instead, it installs helper programs "
"as setuid-root (@pxref{Setuid Programs}) such that unprivileged users can "
"invoke @command{singularity run} and similar commands."
msgstr ""

#. type: cindex
#: doc/guix.texi:29732
#, no-wrap
msgid "Audit"
msgstr ""

#. type: subsubheading
#: doc/guix.texi:29733
#, no-wrap
msgid "Auditd Service"
msgstr ""

#. type: Plain text
#: doc/guix.texi:29736
msgid "The @code{(gnu services auditd)} module provides the following service."
msgstr ""

#. type: defvr
#: doc/guix.texi:29737
#, no-wrap
msgid "{Scheme Variable} auditd-service-type"
msgstr ""

#. type: defvr
#: doc/guix.texi:29742
msgid ""
"This is the type of the service that runs @url{https://people.redhat.com/"
"sgrubb/audit/,auditd}, a daemon that tracks security-relevant information on "
"your system."
msgstr ""

#. type: defvr
#: doc/guix.texi:29744
msgid "Examples of things that can be tracked:"
msgstr ""

#. type: enumerate
#: doc/guix.texi:29748
msgid "File accesses"
msgstr ""

#. type: enumerate
#: doc/guix.texi:29750
msgid "System calls"
msgstr ""

#. type: enumerate
#: doc/guix.texi:29752
msgid "Invoked commands"
msgstr ""

#. type: enumerate
#: doc/guix.texi:29754
msgid "Failed login attempts"
msgstr ""

#. type: enumerate
#: doc/guix.texi:29756
msgid "Firewall filtering"
msgstr ""

#. type: enumerate
#: doc/guix.texi:29758
msgid "Network access"
msgstr ""

#. type: defvr
#: doc/guix.texi:29769
msgid ""
"@command{auditctl} from the @code{audit} package can be used in order to add "
"or remove events to be tracked (until the next reboot).  In order to "
"permanently track events, put the command line arguments of auditctl into a "
"file called @code{audit.rules} in the configuration directory (see below).  "
"@command{aureport} from the @code{audit} package can be used in order to "
"view a report of all recorded events.  The audit daemon by default logs into "
"the file @file{/var/log/audit.log}."
msgstr ""

#. type: deftp
#: doc/guix.texi:29772
#, no-wrap
msgid "{Data Type} auditd-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:29774
msgid "This is the data type representing the configuration of auditd."
msgstr ""

#. type: item
#: doc/guix.texi:29777
#, no-wrap
msgid "@code{audit} (default: @code{audit})"
msgstr ""

#. type: table
#: doc/guix.texi:29779
msgid "The audit package to use."
msgstr ""

#. type: item
#: doc/guix.texi:29780
#, no-wrap
msgid "@code{configuration-directory} (default: @code{%default-auditd-configuration-directory})"
msgstr ""

#. type: table
#: doc/guix.texi:29784
msgid ""
"The directory containing the configuration file for the audit package, which "
"must be named @code{auditd.conf}, and optionally some audit rules to "
"instantiate on startup."
msgstr ""

#. type: cindex
#: doc/guix.texi:29788
#, no-wrap
msgid "rshiny"
msgstr ""

#. type: subsubheading
#: doc/guix.texi:29789
#, no-wrap
msgid "R-Shiny service"
msgstr ""

#. type: Plain text
#: doc/guix.texi:29792
msgid ""
"The @code{(gnu services science)} module provides the following service."
msgstr ""

#. type: defvr
#: doc/guix.texi:29793
#, no-wrap
msgid "{Scheme Variable} rshiny-service-type"
msgstr ""

#. type: defvr
#: doc/guix.texi:29798
msgid ""
"This is a type of service which is used to run a webapp created with @code{r-"
"shiny}.  This service sets the @env{R_LIBS_USER} environment variable and "
"runs the provided script to call @code{runApp}."
msgstr ""

#. type: deftp
#: doc/guix.texi:29799
#, no-wrap
msgid "{Data Type} rshiny-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:29801
msgid "This is the data type representing the configuration of rshiny."
msgstr ""

#. type: item
#: doc/guix.texi:29804
#, no-wrap
msgid "@code{package} (default: @code{r-shiny})"
msgstr ""

#. type: table
#: doc/guix.texi:29806
msgid "The package to use."
msgstr ""

#. type: item
#: doc/guix.texi:29807
#, no-wrap
msgid "@code{binary} (defaunlt @code{\"rshiny\"})"
msgstr ""

#. type: table
#: doc/guix.texi:29810
msgid ""
"The name of the binary or shell script located at @code{package/bin/} to run "
"when the service is run."
msgstr ""

#. type: table
#: doc/guix.texi:29812
msgid "The common way to create this file is as follows:"
msgstr ""

#. type: lisp
#: doc/guix.texi:29830
#, no-wrap
msgid ""
"@dots{}\n"
"(let* ((out       (assoc-ref %outputs \"out\"))\n"
"       (targetdir (string-append out \"/share/\" ,name))\n"
"       (app       (string-append out \"/bin/\" ,name))\n"
"       (Rbin      (string-append (assoc-ref %build-inputs \"r-min\")\n"
"                                 \"/bin/Rscript\")))\n"
"  ;; @dots{}\n"
"  (mkdir-p (string-append out \"/bin\"))\n"
"  (call-with-output-file app\n"
"    (lambda (port)\n"
"      (format port\n"
"\"#!~a\n"
"library(shiny)\n"
"setwd(\\\"~a\\\")\n"
"runApp(launch.browser=0, port=4202)~%\\n\"\n"
"      Rbin targetdir))))\n"
msgstr ""

#. type: cindex
#: doc/guix.texi:29836
#, no-wrap
msgid "Nix"
msgstr ""

#. type: subsubheading
#: doc/guix.texi:29837
#, no-wrap
msgid "Nix service"
msgstr ""

#. type: Plain text
#: doc/guix.texi:29840
msgid "The @code{(gnu services nix)} module provides the following service."
msgstr ""

#. type: defvr
#: doc/guix.texi:29841
#, no-wrap
msgid "{Scheme Variable} nix-service-type"
msgstr ""

#. type: defvr
#: doc/guix.texi:29846
msgid ""
"This is the type of the service that runs build daemon of the @url{https://"
"nixos.org/nix/, Nix} package manager.  Here is an example showing how to use "
"it:"
msgstr ""

#. type: lisp
#: doc/guix.texi:29851
#, no-wrap
msgid ""
"(use-modules (gnu))\n"
"(use-service-modules nix)\n"
"(use-package-modules package-management)\n"
"\n"
msgstr ""

#. type: lisp
#: doc/guix.texi:29856
#, no-wrap
msgid ""
"(operating-system\n"
"  ;; @dots{}\n"
"  (packages (append (list nix)\n"
"                    %base-packages))\n"
"\n"
msgstr ""

#. type: lisp
#: doc/guix.texi:29859
#, no-wrap
msgid ""
"  (services (append (list (service nix-service-type))\n"
"                    %base-services)))\n"
msgstr ""

#. type: defvr
#: doc/guix.texi:29862
msgid "After @command{guix system reconfigure} configure Nix for your user:"
msgstr ""

#. type: item
#: doc/guix.texi:29864
#, no-wrap
msgid "Add a Nix channel and update it.  See"
msgstr ""

#. type: itemize
#: doc/guix.texi:29866
msgid "@url{https://nixos.org/nix/manual/, Nix Package Manager Guide}."
msgstr ""

#. type: item
#: doc/guix.texi:29867
#, no-wrap
msgid "Create a symlink to your profile and activate Nix profile:"
msgstr ""

#. type: example
#: doc/guix.texi:29873
#, no-wrap
msgid ""
"$ ln -s \"/nix/var/nix/profiles/per-user/$USER/profile\" ~/.nix-profile\n"
"$ source /run/current-system/profile/etc/profile.d/nix.sh\n"
msgstr ""

#. type: deftp
#: doc/guix.texi:29877
#, no-wrap
msgid "{Data Type} nix-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:29879
msgid "This data type represents the configuration of the Nix daemon."
msgstr ""

#. type: item
#: doc/guix.texi:29881
#, no-wrap
msgid "@code{nix} (default: @code{nix})"
msgstr ""

#. type: table
#: doc/guix.texi:29883
msgid "The Nix package to use."
msgstr ""

#. type: item
#: doc/guix.texi:29884
#, no-wrap
msgid "@code{sandbox} (default: @code{#t})"
msgstr ""

#. type: table
#: doc/guix.texi:29886
msgid "Specifies whether builds are sandboxed by default."
msgstr ""

#. type: item
#: doc/guix.texi:29887
#, no-wrap
msgid "@code{build-sandbox-items} (default: @code{'()})"
msgstr ""

#. type: table
#: doc/guix.texi:29890
msgid ""
"This is a list of strings or objects appended to the @code{build-sandbox-"
"items} field of the configuration file."
msgstr ""

#. type: table
#: doc/guix.texi:29898
msgid "Extra command line options for @code{nix-service-type}."
msgstr ""

#. type: cindex
#: doc/guix.texi:29904
#, no-wrap
msgid "setuid programs"
msgstr ""

#. type: Plain text
#: doc/guix.texi:29914
msgid ""
"Some programs need to run with ``root'' privileges, even when they are "
"launched by unprivileged users.  A notorious example is the @command{passwd} "
"program, which users can run to change their password, and which needs to "
"access the @file{/etc/passwd} and @file{/etc/shadow} files---something "
"normally restricted to root, for obvious security reasons.  To address that, "
"these executables are @dfn{setuid-root}, meaning that they always run with "
"root privileges (@pxref{How Change Persona,,, libc, The GNU C Library "
"Reference Manual}, for more info about the setuid mechanism)."
msgstr ""

#. type: Plain text
#: doc/guix.texi:29921
msgid ""
"The store itself @emph{cannot} contain setuid programs: that would be a "
"security issue since any user on the system can write derivations that "
"populate the store (@pxref{The Store}).  Thus, a different mechanism is "
"used: instead of changing the setuid bit directly on files that are in the "
"store, we let the system administrator @emph{declare} which programs should "
"be setuid root."
msgstr ""

#. type: Plain text
#: doc/guix.texi:29927
msgid ""
"The @code{setuid-programs} field of an @code{operating-system} declaration "
"contains a list of G-expressions denoting the names of programs to be setuid-"
"root (@pxref{Using the Configuration System}).  For instance, the "
"@command{passwd} program, which is part of the Shadow package, can be "
"designated by this G-expression (@pxref{G-Expressions}):"
msgstr ""

#. type: example
#: doc/guix.texi:29930
#, no-wrap
msgid "#~(string-append #$shadow \"/bin/passwd\")\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:29934
msgid ""
"A default set of setuid programs is defined by the @code{%setuid-programs} "
"variable of the @code{(gnu system)} module."
msgstr ""

#. type: defvr
#: doc/guix.texi:29935
#, no-wrap
msgid "{Scheme Variable} %setuid-programs"
msgstr ""

#. type: defvr
#: doc/guix.texi:29937
msgid "A list of G-expressions denoting common programs that are setuid-root."
msgstr ""

#. type: defvr
#: doc/guix.texi:29940
msgid ""
"The list includes commands such as @command{passwd}, @command{ping}, "
"@command{su}, and @command{sudo}."
msgstr ""

#. type: Plain text
#: doc/guix.texi:29946
msgid ""
"Under the hood, the actual setuid programs are created in the @file{/run/"
"setuid-programs} directory at system activation time.  The files in this "
"directory refer to the ``real'' binaries, which are in the store."
msgstr ""

#. type: cindex
#: doc/guix.texi:29950
#, no-wrap
msgid "HTTPS, certificates"
msgstr ""

#. type: cindex
#: doc/guix.texi:29951
#, no-wrap
msgid "X.509 certificates"
msgstr ""

#. type: cindex
#: doc/guix.texi:29952
#, no-wrap
msgid "TLS"
msgstr ""

#. type: Plain text
#: doc/guix.texi:29959
msgid ""
"Web servers available over HTTPS (that is, HTTP over the transport-layer "
"security mechanism, TLS) send client programs an @dfn{X.509 certificate} "
"that the client can then use to @emph{authenticate} the server.  To do that, "
"clients verify that the server's certificate is signed by a so-called "
"@dfn{certificate authority} (CA).  But to verify the CA's signature, clients "
"must have first acquired the CA's certificate."
msgstr ""

#. type: Plain text
#: doc/guix.texi:29963
msgid ""
"Web browsers such as GNU@tie{}IceCat include their own set of CA "
"certificates, such that they are able to verify CA signatures out-of-the-box."
msgstr ""

#. type: Plain text
#: doc/guix.texi:29967
msgid ""
"However, most other programs that can talk HTTPS---@command{wget}, "
"@command{git}, @command{w3m}, etc.---need to be told where CA certificates "
"can be found."
msgstr ""

#. type: Plain text
#: doc/guix.texi:29974
msgid ""
"In Guix, this is done by adding a package that provides certificates to the "
"@code{packages} field of the @code{operating-system} declaration "
"(@pxref{operating-system 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."
msgstr ""

#. type: Plain text
#: doc/guix.texi:29979
msgid ""
"Note that it is @emph{not} part of @code{%base-packages}, so you 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."
msgstr ""

#. type: Plain text
#: doc/guix.texi:29989
msgid ""
"Unprivileged users, including users of Guix on a foreign distro, can also "
"install their own certificate package in their profile.  A number of "
"environment variables need to be defined so that applications and libraries "
"know where to find them.  Namely, the OpenSSL library honors the "
"@env{SSL_CERT_DIR} and @env{SSL_CERT_FILE} variables.  Some applications add "
"their own environment variables; for instance, the Git version control "
"system honors the certificate bundle pointed to by the @env{GIT_SSL_CAINFO} "
"environment variable.  Thus, you would typically run something like:"
msgstr ""

#. type: example
#: doc/guix.texi:29995
#, no-wrap
msgid ""
"guix install nss-certs\n"
"export SSL_CERT_DIR=\"$HOME/.guix-profile/etc/ssl/certs\"\n"
"export SSL_CERT_FILE=\"$HOME/.guix-profile/etc/ssl/certs/ca-certificates.crt\"\n"
"export GIT_SSL_CAINFO=\"$SSL_CERT_FILE\"\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:30000
msgid ""
"As another example, R requires the @env{CURL_CA_BUNDLE} environment variable "
"to point to a certificate bundle, so you would have to run something like "
"this:"
msgstr ""

#. type: example
#: doc/guix.texi:30004
#, no-wrap
msgid ""
"guix install nss-certs\n"
"export CURL_CA_BUNDLE=\"$HOME/.guix-profile/etc/ssl/certs/ca-certificates.crt\"\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:30008
msgid ""
"For other applications you may want to look up the required environment "
"variable in the relevant documentation."
msgstr ""

#. type: cindex
#: doc/guix.texi:30013
#, no-wrap
msgid "name service switch"
msgstr ""

#. type: cindex
#: doc/guix.texi:30014
#, no-wrap
msgid "NSS"
msgstr ""

#. type: Plain text
#: doc/guix.texi:30023
msgid ""
"The @code{(gnu system nss)} module provides bindings to the configuration "
"file of the libc @dfn{name service switch} or @dfn{NSS} (@pxref{NSS "
"Configuration File,,, libc, The GNU C Library Reference Manual}).  In a "
"nutshell, the NSS is a mechanism that allows libc to be extended with new "
"``name'' lookup methods for system databases, which includes host names, "
"service names, user accounts, and more (@pxref{Name Service Switch, System "
"Databases and Name Service Switch,, libc, The GNU C Library Reference "
"Manual})."
msgstr ""

#. type: Plain text
#: doc/guix.texi:30030
msgid ""
"The NSS configuration specifies, for each system database, which lookup "
"method is to be used, and how the various methods are chained together---for "
"instance, under which circumstances NSS should try the next method in the "
"list.  The NSS configuration is given in the @code{name-service-switch} "
"field of @code{operating-system} declarations (@pxref{operating-system "
"Reference, @code{name-service-switch}})."
msgstr ""

#. type: cindex
#: doc/guix.texi:30031
#, no-wrap
msgid "nss-mdns"
msgstr ""

#. type: cindex
#: doc/guix.texi:30032
#, no-wrap
msgid ".local, host name lookup"
msgstr ""

#. type: Plain text
#: doc/guix.texi:30037
msgid ""
"As an example, the declaration below configures the NSS to use the "
"@uref{https://0pointer.de/lennart/projects/nss-mdns/, @code{nss-mdns} back-"
"end}, which supports host name lookups over multicast DNS (mDNS)  for host "
"names ending in @code{.local}:"
msgstr ""

#. type: lisp
#: doc/guix.texi:30041
#, no-wrap
msgid ""
"(name-service-switch\n"
"   (hosts (list %files    ;first, check /etc/hosts\n"
"\n"
msgstr ""

#. type: lisp
#: doc/guix.texi:30046
#, no-wrap
msgid ""
"                ;; If the above did not succeed, try\n"
"                ;; with 'mdns_minimal'.\n"
"                (name-service\n"
"                  (name \"mdns_minimal\")\n"
"\n"
msgstr ""

#. type: lisp
#: doc/guix.texi:30052
#, no-wrap
msgid ""
"                  ;; 'mdns_minimal' is authoritative for\n"
"                  ;; '.local'.  When it returns \"not found\",\n"
"                  ;; no need to try the next methods.\n"
"                  (reaction (lookup-specification\n"
"                             (not-found => return))))\n"
"\n"
msgstr ""

#. type: lisp
#: doc/guix.texi:30056
#, no-wrap
msgid ""
"                ;; Then fall back to DNS.\n"
"                (name-service\n"
"                  (name \"dns\"))\n"
"\n"
msgstr ""

#. type: lisp
#: doc/guix.texi:30060
#, no-wrap
msgid ""
"                ;; Finally, try with the \"full\" 'mdns'.\n"
"                (name-service\n"
"                  (name \"mdns\")))))\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:30065
msgid ""
"Do not worry: the @code{%mdns-host-lookup-nss} variable (see below)  "
"contains this configuration, so you will not have to type it if all you want "
"is to have @code{.local} host lookup working."
msgstr ""

#. type: Plain text
#: doc/guix.texi:30073
msgid ""
"Note that, in this case, in addition to setting the @code{name-service-"
"switch} of the @code{operating-system} declaration, you also need to use "
"@code{avahi-service-type} (@pxref{Networking Services, @code{avahi-service-"
"type}}), or @code{%desktop-services}, which includes it (@pxref{Desktop "
"Services}).  Doing this makes @code{nss-mdns} accessible to the name service "
"cache daemon (@pxref{Base Services, @code{nscd-service}})."
msgstr ""

#. type: Plain text
#: doc/guix.texi:30076
msgid ""
"For convenience, the following variables provide typical NSS configurations."
msgstr ""

#. type: defvr
#: doc/guix.texi:30077
#, no-wrap
msgid "{Scheme Variable} %default-nss"
msgstr ""

#. type: defvr
#: doc/guix.texi:30080
msgid ""
"This is the default name service switch configuration, a @code{name-service-"
"switch} object."
msgstr ""

#. type: defvr
#: doc/guix.texi:30082
#, no-wrap
msgid "{Scheme Variable} %mdns-host-lookup-nss"
msgstr ""

#. type: defvr
#: doc/guix.texi:30085
msgid ""
"This is the name service switch configuration with support for host name "
"lookup over multicast DNS (mDNS) for host names ending in @code{.local}."
msgstr ""

#. type: Plain text
#: doc/guix.texi:30095
msgid ""
"The reference for name service switch configuration is given below.  It is a "
"direct mapping of the configuration file format of the C library , so please "
"refer to the C library manual for more information (@pxref{NSS Configuration "
"File,,, libc, The GNU C Library Reference Manual}).  Compared to the "
"configuration file format of libc NSS, it has the advantage not only of "
"adding this warm parenthetic feel that we like, but also static checks: you "
"will know about syntax errors and typos as soon as you run @command{guix "
"system}."
msgstr ""

#. type: deftp
#: doc/guix.texi:30096
#, no-wrap
msgid "{Data Type} name-service-switch"
msgstr ""

#. type: deftp
#: doc/guix.texi:30101
msgid ""
"This is the data type representation the configuration of libc's name "
"service switch (NSS).  Each field below represents one of the supported "
"system databases."
msgstr ""

#. type: item
#: doc/guix.texi:30103
#, no-wrap
msgid "aliases"
msgstr ""

#. type: itemx
#: doc/guix.texi:30104
#, no-wrap
msgid "ethers"
msgstr ""

#. type: itemx
#: doc/guix.texi:30106
#, no-wrap
msgid "gshadow"
msgstr ""

#. type: itemx
#: doc/guix.texi:30107
#, no-wrap
msgid "hosts"
msgstr ""

#. type: itemx
#: doc/guix.texi:30108
#, no-wrap
msgid "initgroups"
msgstr ""

#. type: itemx
#: doc/guix.texi:30109
#, no-wrap
msgid "netgroup"
msgstr ""

#. type: itemx
#: doc/guix.texi:30110
#, no-wrap
msgid "networks"
msgstr ""

#. type: itemx
#: doc/guix.texi:30112
#, no-wrap
msgid "public-key"
msgstr ""

#. type: itemx
#: doc/guix.texi:30113
#, no-wrap
msgid "rpc"
msgstr ""

#. type: itemx
#: doc/guix.texi:30115
#, no-wrap
msgid "shadow"
msgstr ""

#. type: table
#: doc/guix.texi:30118
msgid ""
"The system databases handled by the NSS.  Each of these fields must be a "
"list of @code{<name-service>} objects (see below)."
msgstr ""

#. type: deftp
#: doc/guix.texi:30121
#, no-wrap
msgid "{Data Type} name-service"
msgstr ""

#. type: deftp
#: doc/guix.texi:30125
msgid ""
"This is the data type representing an actual name service and the associated "
"lookup action."
msgstr ""

#. type: table
#: doc/guix.texi:30130
msgid ""
"A string denoting the name service (@pxref{Services in the NSS "
"configuration,,, libc, The GNU C Library Reference Manual})."
msgstr ""

#. type: table
#: doc/guix.texi:30135
msgid ""
"Note that name services listed here must be visible to nscd.  This is "
"achieved by passing the @code{#:name-services} argument to @code{nscd-"
"service} the list of packages providing the needed name services "
"(@pxref{Base Services, @code{nscd-service}})."
msgstr ""

#. type: item
#: doc/guix.texi:30136
#, no-wrap
msgid "reaction"
msgstr ""

#. type: table
#: doc/guix.texi:30140
msgid ""
"An action specified using the @code{lookup-specification} macro "
"(@pxref{Actions in the NSS configuration,,, libc, The GNU C Library "
"Reference Manual}).  For example:"
msgstr ""

#. type: lisp
#: doc/guix.texi:30144
#, no-wrap
msgid ""
"(lookup-specification (unavailable => continue)\n"
"                      (success => return))\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:30158
msgid ""
"For bootstrapping purposes, the Linux-Libre kernel is passed an @dfn{initial "
"RAM disk}, or @dfn{initrd}.  An initrd contains a temporary root file system "
"as well as an initialization script.  The latter is responsible for mounting "
"the real root file system, and for loading any kernel modules that may be "
"needed to achieve that."
msgstr ""

#. type: Plain text
#: doc/guix.texi:30167
msgid ""
"The @code{initrd-modules} field of an @code{operating-system} declaration "
"allows you to specify Linux-libre kernel modules that must be available in "
"the initrd.  In particular, this is where you would list modules needed to "
"actually drive the hard disk where your root partition is---although the "
"default value of @code{initrd-modules} should cover most use cases.  For "
"example, assuming you need the @code{megaraid_sas} module in addition to the "
"default modules to be able to access your root file system, you would write:"
msgstr ""

#. type: lisp
#: doc/guix.texi:30172
#, no-wrap
msgid ""
"(operating-system\n"
"  ;; @dots{}\n"
"  (initrd-modules (cons \"megaraid_sas\" %base-initrd-modules)))\n"
msgstr ""

#. type: defvr
#: doc/guix.texi:30174
#, no-wrap
msgid "{Scheme Variable} %base-initrd-modules"
msgstr ""

#. type: defvr
#: doc/guix.texi:30176
msgid "This is the list of kernel modules included in the initrd by default."
msgstr ""

#. type: Plain text
#: doc/guix.texi:30184
msgid ""
"Furthermore, if you need lower-level customization, the @code{initrd} field "
"of an @code{operating-system} declaration allows you to specify which initrd "
"you would like to use.  The @code{(gnu system linux-initrd)} module provides "
"three ways to build an initrd: the high-level @code{base-initrd} procedure "
"and the low-level @code{raw-initrd} and @code{expression->initrd} procedures."
msgstr ""

#. type: Plain text
#: doc/guix.texi:30189
msgid ""
"The @code{base-initrd} procedure is intended to cover most common uses.  For "
"example, if you want to add a bunch of kernel modules to be loaded at boot "
"time, you can define the @code{initrd} field of the operating system "
"declaration like this:"
msgstr ""

#. type: lisp
#: doc/guix.texi:30197
#, no-wrap
msgid ""
"(initrd (lambda (file-systems . rest)\n"
"          ;; Create a standard initrd but set up networking\n"
"          ;; with the parameters QEMU expects by default.\n"
"          (apply base-initrd file-systems\n"
"                 #:qemu-networking? #t\n"
"                 rest)))\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:30202
msgid ""
"The @code{base-initrd} procedure also handles common use cases that involves "
"using the system as a QEMU guest, or as a ``live'' system with volatile root "
"file system."
msgstr ""

#. type: Plain text
#: doc/guix.texi:30209
msgid ""
"The @code{base-initrd} procedure is built from @code{raw-initrd} procedure.  "
"Unlike @code{base-initrd}, @code{raw-initrd} doesn't do anything high-level, "
"such as trying to guess which kernel modules and packages should be included "
"to the initrd. An example use of @code{raw-initrd} is when a user has a "
"custom Linux kernel configuration and default kernel modules included by "
"@code{base-initrd} are not available."
msgstr ""

#. type: Plain text
#: doc/guix.texi:30214
msgid ""
"The initial RAM disk produced by @code{base-initrd} or @code{raw-initrd} "
"honors several options passed on the Linux kernel command line (that is, "
"arguments passed @i{via} the @code{linux} command of GRUB, or the @code{-"
"append} option of QEMU), notably:"
msgstr ""

#. type: item
#: doc/guix.texi:30216
#, no-wrap
msgid "--load=@var{boot}"
msgstr ""

#. type: table
#: doc/guix.texi:30219
msgid ""
"Tell the initial RAM disk to load @var{boot}, a file containing a Scheme "
"program, once it has mounted the root file system."
msgstr ""

#. type: table
#: doc/guix.texi:30223
msgid ""
"Guix uses this option to yield control to a boot program that runs the "
"service activation programs and then spawns the GNU@tie{}Shepherd, the "
"initialization system."
msgstr ""

#. type: item
#: doc/guix.texi:30224
#, no-wrap
msgid "--root=@var{root}"
msgstr ""

#. type: table
#: doc/guix.texi:30229
msgid ""
"Mount @var{root} as the root file system.  @var{root} can be a device name "
"like @code{/dev/sda1}, a file system label, or a file system UUID.  When "
"unspecified, the device name from the root file system of the operating "
"system declaration is used."
msgstr ""

#. type: table
#: doc/guix.texi:30233
msgid ""
"Have @file{/run/booted-system} and @file{/run/current-system} point to "
"@var{system}."
msgstr ""

#. type: item
#: doc/guix.texi:30234
#, no-wrap
msgid "modprobe.blacklist=@var{modules}@dots{}"
msgstr ""

#. type: cindex
#: doc/guix.texi:30235
#, no-wrap
msgid "module, black-listing"
msgstr ""

#. type: cindex
#: doc/guix.texi:30236
#, no-wrap
msgid "black list, of kernel modules"
msgstr ""

#. type: table
#: doc/guix.texi:30241
msgid ""
"Instruct the initial RAM disk as well as the @command{modprobe} command "
"(from the kmod package) to refuse to load @var{modules}.  @var{modules} must "
"be a comma-separated list of module names---e.g., @code{usbkbd,9pnet}."
msgstr ""

#. type: item
#: doc/guix.texi:30242
#, no-wrap
msgid "--repl"
msgstr ""

#. type: table
#: doc/guix.texi:30248
msgid ""
"Start a read-eval-print loop (REPL) from the initial RAM disk before it "
"tries to load kernel modules and to mount the root file system.  Our "
"marketing team calls it @dfn{boot-to-Guile}.  The Schemer in you will love "
"it.  @xref{Using Guile Interactively,,, guile, GNU Guile Reference Manual}, "
"for more information on Guile's REPL."
msgstr ""

#. type: Plain text
#: doc/guix.texi:30254
msgid ""
"Now that you know all the features that initial RAM disks produced by "
"@code{base-initrd} and @code{raw-initrd} provide, here is how to use it and "
"customize it further."
msgstr ""

#. type: deffn
#: doc/guix.texi:30257
#, no-wrap
msgid "{Scheme Procedure} raw-initrd @var{file-systems} @"
msgstr ""

#. type: deffn
#: doc/guix.texi:30270
msgid ""
"[#:linux-modules '()] [#:mapped-devices '()] @ [#:keyboard-layout #f] @ [#:"
"helper-packages '()] [#:qemu-networking? #f] [#:volatile-root? #f] Return a "
"derivation that builds a raw initrd.  @var{file-systems} is a list of file "
"systems to be mounted by the initrd, possibly in addition to the root file "
"system specified on the kernel command line via @option{--root}.  @var{linux-"
"modules} is a list of kernel modules to be loaded at boot time.  @var{mapped-"
"devices} is a list of device mappings to realize before @var{file-systems} "
"are mounted (@pxref{Mapped Devices}).  @var{helper-packages} is a list of "
"packages to be copied in the initrd. It may include @code{e2fsck/static} or "
"other packages needed by the initrd to check the root file system."
msgstr ""

#. type: deffn
#: doc/guix.texi:30276 doc/guix.texi:30300
msgid ""
"When true, @var{keyboard-layout} is a @code{<keyboard-layout>} record "
"denoting the desired console keyboard layout.  This is done before "
"@var{mapped-devices} are set up and before @var{file-systems} are mounted "
"such that, should the user need to enter a passphrase or use the REPL, this "
"happens using the intended keyboard layout."
msgstr ""

#. type: deffn
#: doc/guix.texi:30280
msgid ""
"When @var{qemu-networking?} is true, set up networking with the standard "
"QEMU parameters.  When @var{virtio?} is true, load additional modules so "
"that the initrd can be used as a QEMU guest with para-virtualized I/O "
"drivers."
msgstr ""

#. type: deffn
#: doc/guix.texi:30283
msgid ""
"When @var{volatile-root?} is true, the root file system is writable but any "
"changes to it are lost."
msgstr ""

#. type: deffn
#: doc/guix.texi:30285
#, no-wrap
msgid "{Scheme Procedure} base-initrd @var{file-systems} @"
msgstr ""

#. type: deffn
#: doc/guix.texi:30294
msgid ""
"[#:mapped-devices '()] [#:keyboard-layout #f] @ [#:qemu-networking? #f] [#:"
"volatile-root? #f] @ [#:linux-modules '()] Return as a file-like object a "
"generic initrd, with kernel modules taken from @var{linux}.  @var{file-"
"systems} is a list of file-systems to be mounted by the initrd, possibly in "
"addition to the root file system specified on the kernel command line via "
"@option{--root}.  @var{mapped-devices} is a list of device mappings to "
"realize before @var{file-systems} are mounted."
msgstr ""

#. type: deffn
#: doc/guix.texi:30302
msgid ""
"@var{qemu-networking?} and @var{volatile-root?} behaves as in @code{raw-"
"initrd}."
msgstr ""

#. type: deffn
#: doc/guix.texi:30307
msgid ""
"The initrd is automatically populated with all the kernel modules necessary "
"for @var{file-systems} and for the given options.  Additional kernel modules "
"can be listed in @var{linux-modules}.  They will be added to the initrd, and "
"loaded at boot time in the order in which they appear."
msgstr ""

#. type: Plain text
#: doc/guix.texi:30314
msgid ""
"Needless to say, the initrds we produce and use embed a statically-linked "
"Guile, and the initialization program is a Guile program.  That gives a lot "
"of flexibility.  The @code{expression->initrd} procedure builds such an "
"initrd, given the program to run in that initrd."
msgstr ""

#. type: deffn
#: doc/guix.texi:30315
#, no-wrap
msgid "{Scheme Procedure} expression->initrd @var{exp} @"
msgstr ""

#. type: deffn
#: doc/guix.texi:30321
msgid ""
"[#:guile %guile-3.0-static-stripped] [#:name \"guile-initrd\"] Return as a "
"file-like object a Linux initrd (a gzipped cpio archive)  containing "
"@var{guile} and that evaluates @var{exp}, a G-expression, upon booting.  All "
"the derivations referenced by @var{exp} are automatically copied to the "
"initrd."
msgstr ""

#. type: cindex
#: doc/guix.texi:30327
#, no-wrap
msgid "boot loader"
msgstr ""

#. type: Plain text
#: doc/guix.texi:30334
msgid ""
"The operating system supports multiple bootloaders.  The bootloader is "
"configured using @code{bootloader-configuration} declaration.  All the "
"fields of this structure are bootloader agnostic except for one field, "
"@code{bootloader} that indicates the bootloader to be configured and "
"installed."
msgstr ""

#. type: Plain text
#: doc/guix.texi:30339
msgid ""
"Some of the bootloaders do not honor every field of @code{bootloader-"
"configuration}.  For instance, the extlinux bootloader does not support "
"themes and thus ignores the @code{theme} field."
msgstr ""

#. type: deftp
#: doc/guix.texi:30340
#, no-wrap
msgid "{Data Type} bootloader-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:30342
msgid "The type of a bootloader configuration declaration."
msgstr ""

#. type: cindex
#: doc/guix.texi:30346
#, no-wrap
msgid "EFI, bootloader"
msgstr ""

#. type: cindex
#: doc/guix.texi:30347
#, no-wrap
msgid "UEFI, bootloader"
msgstr ""

#. type: cindex
#: doc/guix.texi:30348
#, no-wrap
msgid "BIOS, bootloader"
msgstr ""

#. type: table
#: doc/guix.texi:30353
msgid ""
"The bootloader to use, as a @code{bootloader} object. For now @code{grub-"
"bootloader}, @code{grub-efi-bootloader}, @code{grub-efi-netboot-bootloader}, "
"@code{extlinux-bootloader} and @code{u-boot-bootloader} are supported."
msgstr ""

#. type: cindex
#: doc/guix.texi:30354
#, no-wrap
msgid "ARM, bootloaders"
msgstr ""

#. type: cindex
#: doc/guix.texi:30355
#, no-wrap
msgid "AArch64, bootloaders"
msgstr ""

#. type: table
#: doc/guix.texi:30360
msgid ""
"Available bootloaders are described in @code{(gnu bootloader @dots{})} "
"modules.  In particular, @code{(gnu bootloader u-boot)} contains definitions "
"of bootloaders for a wide range of ARM and AArch64 systems, using the "
"@uref{https://www.denx.de/wiki/U-Boot/, U-Boot bootloader}."
msgstr ""

#. type: table
#: doc/guix.texi:30366
msgid ""
"@code{grub-efi-bootloader} allows to boot on modern systems using the "
"@dfn{Unified Extensible Firmware Interface} (UEFI).  This is what you should "
"use if the installation image contains a @file{/sys/firmware/efi} directory "
"when you boot it on your system."
msgstr ""

#. type: table
#: doc/guix.texi:30370
msgid ""
"@code{grub-bootloader} allows you to boot in particular Intel-based machines "
"in ``legacy'' BIOS mode."
msgstr ""

#. type: vindex
#: doc/guix.texi:30371
#, no-wrap
msgid "grub-efi-netboot-bootloader"
msgstr ""

#. type: table
#: doc/guix.texi:30375
msgid ""
"@code{grub-efi-netboot-bootloader} allows you to boot your system over "
"network through TFTP.  In combination with an NFS root file system this "
"allows you to build a diskless Guix system."
msgstr ""

#. type: table
#: doc/guix.texi:30381
msgid ""
"The installation of the @code{grub-efi-netboot-bootloader} generates the "
"content of the TFTP root directory at @code{target} (@pxref{Bootloader "
"Configuration, @code{target}}), to be served by a TFTP server.  You may want "
"to mount your TFTP server directory onto @code{target} to move the required "
"files to the TFTP server automatically."
msgstr ""

#. type: table
#: doc/guix.texi:30390
msgid ""
"If you plan to use an NFS root file system as well (actually if you mount "
"the store from an NFS share), then the TFTP server needs to serve the file "
"@file{/boot/grub/grub.cfg} and other files from the store (like GRUBs "
"background image, the kernel (@pxref{operating-system Reference, "
"@code{kernel}}) and the initrd (@pxref{operating-system Reference, "
"@code{initrd}})), too.  All these files from the store will be accessed by "
"GRUB through TFTP with their normal store path, for example as @file{tftp://"
"tftp-server/gnu/store/…-initrd/initrd.cpio.gz}."
msgstr ""

#. type: table
#: doc/guix.texi:30398
msgid ""
"Two symlinks are created to make this possible.  The first symlink is "
"@code{target}@file{/efi/Guix/boot/grub/grub.cfg} pointing to @file{../../../"
"boot/grub/grub.cfg}, where @code{target} may be @file{/boot}.  In this case "
"the link is not leaving the served TFTP root directory, but otherwise it "
"does.  The second link is @code{target}@file{/gnu/store} and points to "
"@file{../gnu/store}.  This link is leaving the served TFTP root directory."
msgstr ""

#. type: table
#: doc/guix.texi:30403
msgid ""
"The assumption behind all this is that you have an NFS server exporting the "
"root file system for your Guix system, and additionally a TFTP server "
"exporting your @code{target} directory—usually @file{/boot}—from that same "
"root file system for your Guix system.  In this constellation the symlinks "
"will work."
msgstr ""

#. type: table
#: doc/guix.texi:30407
msgid ""
"For other constellations you will have to program your own bootloader "
"installer, which then takes care to make necessary files from the store "
"accessible through TFTP, for example by copying them into the TFTP root "
"directory at @code{target}."
msgstr ""

#. type: table
#: doc/guix.texi:30412
msgid ""
"It is important to note that symlinks pointing outside the TFTP root "
"directory may need to be allowed in the configuration of your TFTP server.  "
"Further the store link exposes the whole store through TFTP.  Both points "
"need to be considered carefully for security aspects."
msgstr ""

#. type: table
#: doc/guix.texi:30417
msgid ""
"Beside the @code{grub-efi-netboot-bootloader}, the already mentioned TFTP "
"and NFS servers, you also need a properly configured DHCP server to make the "
"booting over netboot possible.  For all this we can currently only recommend "
"you to look for instructions about @acronym{PXE, Preboot eXecution "
"Environment}."
msgstr ""

#. type: table
#: doc/guix.texi:30421
msgid ""
"This is a string denoting the target onto which to install the bootloader."
msgstr ""

#. type: table
#: doc/guix.texi:30430
msgid ""
"The interpretation depends on the bootloader in question.  For @code{grub-"
"bootloader}, for example, it should be a device name understood by the "
"bootloader @command{installer} command, such as @code{/dev/sda} or "
"@code{(hd0)} (@pxref{Invoking grub-install,,, grub, GNU GRUB Manual}).  For "
"@code{grub-efi-bootloader}, it should be the mount point of the EFI file "
"system, usually @file{/boot/efi}.  For @code{grub-efi-netboot-bootloader}, "
"@code{target} should be the mount point corresponding to the TFTP root "
"directory of your TFTP server."
msgstr ""

#. type: item
#: doc/guix.texi:30431
#, no-wrap
msgid "@code{menu-entries} (default: @code{()})"
msgstr ""

#. type: table
#: doc/guix.texi:30435
msgid ""
"A possibly empty list of @code{menu-entry} objects (see below), denoting "
"entries to appear in the bootloader menu, in addition to the current system "
"entry and the entry pointing to previous system generations."
msgstr ""

#. type: item
#: doc/guix.texi:30436
#, no-wrap
msgid "@code{default-entry} (default: @code{0})"
msgstr ""

#. type: table
#: doc/guix.texi:30439
msgid ""
"The index of the default boot menu entry.  Index 0 is for the entry of the "
"current system."
msgstr ""

#. type: item
#: doc/guix.texi:30440
#, no-wrap
msgid "@code{timeout} (default: @code{5})"
msgstr ""

#. type: table
#: doc/guix.texi:30443
msgid ""
"The number of seconds to wait for keyboard input before booting.  Set to 0 "
"to boot immediately, and to -1 to wait indefinitely."
msgstr ""

#. type: cindex
#: doc/guix.texi:30444
#, no-wrap
msgid "keyboard layout, for the bootloader"
msgstr ""

#. type: table
#: doc/guix.texi:30448
msgid ""
"If this is @code{#f}, the bootloader's menu (if any) uses the default "
"keyboard layout, usually US@tie{}English (``qwerty'')."
msgstr ""

#. type: table
#: doc/guix.texi:30451
msgid ""
"Otherwise, this must be a @code{keyboard-layout} object (@pxref{Keyboard "
"Layout})."
msgstr ""

#. type: quotation
#: doc/guix.texi:30455
msgid ""
"This option is currently ignored by bootloaders other than @code{grub} and "
"@code{grub-efi}."
msgstr ""

#. type: item
#: doc/guix.texi:30457
#, no-wrap
msgid "@code{theme} (default: @var{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:30461
msgid ""
"The bootloader theme object describing the theme to use.  If no theme is "
"provided, some bootloaders might use a default theme, that's true for GRUB."
msgstr ""

#. type: item
#: doc/guix.texi:30462
#, no-wrap
msgid "@code{terminal-outputs} (default: @code{'(gfxterm)})"
msgstr ""

#. type: table
#: doc/guix.texi:30469
msgid ""
"The output terminals used for the bootloader boot menu, as a list of "
"symbols.  GRUB accepts the values: @code{console}, @code{serial}, "
"@code{serial_@{0-3@}}, @code{gfxterm}, @code{vga_text}, @code{mda_text}, "
"@code{morse}, and @code{pkmodem}.  This field corresponds to the GRUB "
"variable @code{GRUB_TERMINAL_OUTPUT} (@pxref{Simple configuration,,, grub,"
"GNU GRUB manual})."
msgstr ""

#. type: item
#: doc/guix.texi:30470
#, no-wrap
msgid "@code{terminal-inputs} (default: @code{'()})"
msgstr ""

#. type: table
#: doc/guix.texi:30478
msgid ""
"The input terminals used for the bootloader boot menu, as a list of "
"symbols.  For GRUB, the default is the native platform terminal as "
"determined at run-time.  GRUB accepts the values: @code{console}, "
"@code{serial}, @code{serial_@{0-3@}}, @code{at_keyboard}, and "
"@code{usb_keyboard}.  This field corresponds to the GRUB variable "
"@code{GRUB_TERMINAL_INPUT} (@pxref{Simple configuration,,, grub,GNU GRUB "
"manual})."
msgstr ""

#. type: item
#: doc/guix.texi:30479
#, no-wrap
msgid "@code{serial-unit} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:30483
msgid ""
"The serial unit used by the bootloader, as an integer from 0 to 3.  For "
"GRUB, it is chosen at run-time; currently GRUB chooses 0, which corresponds "
"to COM1 (@pxref{Serial terminal,,, grub,GNU GRUB manual})."
msgstr ""

#. type: item
#: doc/guix.texi:30484
#, no-wrap
msgid "@code{serial-speed} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:30488
msgid ""
"The speed of the serial interface, as an integer.  For GRUB, the default "
"value is chosen at run-time; currently GRUB chooses 9600@tie{}bps "
"(@pxref{Serial terminal,,, grub,GNU GRUB manual})."
msgstr ""

#. type: cindex
#: doc/guix.texi:30492
#, no-wrap
msgid "dual boot"
msgstr ""

#. type: cindex
#: doc/guix.texi:30493
#, no-wrap
msgid "boot menu"
msgstr ""

#. type: Plain text
#: doc/guix.texi:30499
msgid ""
"Should you want to list additional boot menu entries @i{via} the @code{menu-"
"entries} field above, you will need to create them with the @code{menu-"
"entry} form.  For example, imagine you want to be able to boot another "
"distro (hard to imagine!), you can define a menu entry along these lines:"
msgstr ""

#. type: lisp
#: doc/guix.texi:30506
#, no-wrap
msgid ""
"(menu-entry\n"
"  (label \"The Other Distro\")\n"
"  (linux \"/boot/old/vmlinux-2.6.32\")\n"
"  (linux-arguments '(\"root=/dev/sda2\"))\n"
"  (initrd \"/boot/old/initrd\"))\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:30509
msgid "Details below."
msgstr ""

#. type: deftp
#: doc/guix.texi:30510
#, no-wrap
msgid "{Data Type} menu-entry"
msgstr ""

#. type: deftp
#: doc/guix.texi:30512
msgid "The type of an entry in the bootloader menu."
msgstr ""

#. type: table
#: doc/guix.texi:30517
msgid "The label to show in the menu---e.g., @code{\"GNU\"}."
msgstr ""

#. type: item
#: doc/guix.texi:30518
#, no-wrap
msgid "@code{linux} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:30520
msgid "The Linux kernel image to boot, for example:"
msgstr ""

#. type: lisp
#: doc/guix.texi:30523
#, no-wrap
msgid "(file-append linux-libre \"/bzImage\")\n"
msgstr ""

#. type: table
#: doc/guix.texi:30528
msgid ""
"For GRUB, it is also possible to specify a device explicitly in the file "
"path using GRUB's device naming convention (@pxref{Naming convention,,, "
"grub, GNU GRUB manual}), for example:"
msgstr ""

#. type: example
#: doc/guix.texi:30531
#, no-wrap
msgid "\"(hd0,msdos1)/boot/vmlinuz\"\n"
msgstr ""

#. type: table
#: doc/guix.texi:30535
msgid ""
"If the device is specified explicitly as above, then the @code{device} field "
"is ignored entirely."
msgstr ""

#. type: item
#: doc/guix.texi:30536
#, no-wrap
msgid "@code{linux-arguments} (default: @code{()})"
msgstr ""

#. type: table
#: doc/guix.texi:30539
msgid ""
"The list of extra Linux kernel command-line arguments---e.g., "
"@code{(\"console=ttyS0\")}."
msgstr ""

#. type: item
#: doc/guix.texi:30540
#, no-wrap
msgid "@code{initrd} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:30543
msgid ""
"A G-Expression or string denoting the file name of the initial RAM disk to "
"use (@pxref{G-Expressions})."
msgstr ""

#. type: item
#: doc/guix.texi:30544
#, no-wrap
msgid "@code{device} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:30547
msgid ""
"The device where the kernel and initrd are to be found---i.e., for GRUB, "
"@dfn{root} for this menu entry (@pxref{root,,, grub, GNU GRUB manual})."
msgstr ""

#. type: table
#: doc/guix.texi:30553
msgid ""
"This may be a file system label (a string), a file system UUID (a "
"bytevector, @pxref{File Systems}), or @code{#f}, in which case the "
"bootloader will search the device containing the file specified by the "
"@code{linux} field (@pxref{search,,, grub, GNU GRUB manual}).  It must "
"@emph{not} be an OS device name such as @file{/dev/sda1}."
msgstr ""

#. type: item
#: doc/guix.texi:30554
#, no-wrap
msgid "@code{multiboot-kernel} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:30558
msgid ""
"The kernel to boot in Multiboot-mode (@pxref{multiboot,,, grub, GNU GRUB "
"manual}).  When this field is set, a Multiboot menu-entry is generated.  For "
"example:"
msgstr ""

#. type: lisp
#: doc/guix.texi:30561
#, no-wrap
msgid "(file-append mach \"/boot/gnumach\")\n"
msgstr ""

#. type: item
#: doc/guix.texi:30563
#, no-wrap
msgid "@code{multiboot-arguments} (default: @code{()})"
msgstr ""

#. type: table
#: doc/guix.texi:30565
msgid "The list of extra command-line arguments for the multiboot-kernel."
msgstr ""

#. type: item
#: doc/guix.texi:30566
#, no-wrap
msgid "@code{multiboot-modules} (default: @code{()})"
msgstr ""

#. type: table
#: doc/guix.texi:30568
msgid "The list of commands for loading Multiboot modules.  For example:"
msgstr ""

#. type: lisp
#: doc/guix.texi:30574
#, no-wrap
msgid ""
"(list (list (file-append hurd \"/hurd/ext2fs.static\") \"ext2fs\"\n"
"             @dots{})\n"
"      (list (file-append libc \"/lib/ld.so.1\") \"exec\"\n"
"             @dots{}))\n"
msgstr ""

#. type: cindex
#: doc/guix.texi:30579 doc/guix.texi:30638
#, no-wrap
msgid "HDPI"
msgstr ""

#. type: cindex
#: doc/guix.texi:30580 doc/guix.texi:30639
#, no-wrap
msgid "HiDPI"
msgstr ""

#. type: cindex
#: doc/guix.texi:30581 doc/guix.texi:30640
#, no-wrap
msgid "resolution"
msgstr ""

#. type: Plain text
#: doc/guix.texi:30585
msgid ""
"For now only GRUB has theme support.  GRUB themes are created using the "
"@code{grub-theme} form, which is not fully documented yet."
msgstr ""

#. type: deftp
#: doc/guix.texi:30586
#, no-wrap
msgid "{Data Type} grub-theme"
msgstr ""

#. type: deftp
#: doc/guix.texi:30588
msgid "Data type representing the configuration of the GRUB theme."
msgstr ""

#. type: item
#: doc/guix.texi:30590
#, no-wrap
msgid "@code{gfxmode} (default: @code{'(\"auto\")})"
msgstr ""

#. type: table
#: doc/guix.texi:30593
msgid ""
"The GRUB @code{gfxmode} to set (a list of screen resolution strings, "
"@pxref{gfxmode,,, grub, GNU GRUB manual})."
msgstr ""

#. type: deffn
#: doc/guix.texi:30596
#, no-wrap
msgid "{Scheme Procedure} grub-theme"
msgstr ""

#. type: deffn
#: doc/guix.texi:30600
msgid ""
"Return the default GRUB theme used by the operating system if no "
"@code{theme} field is specified in @code{bootloader-configuration} record."
msgstr ""

#. type: deffn
#: doc/guix.texi:30603
msgid ""
"It comes with a fancy background image displaying the GNU and Guix logos."
msgstr ""

#. type: Plain text
#: doc/guix.texi:30607
msgid ""
"For example, to override the default resolution, you may use something like"
msgstr ""

#. type: lisp
#: doc/guix.texi:30615
#, no-wrap
msgid ""
"(bootloader\n"
" (bootloader-configuration\n"
" ;; @dots{}\n"
" (theme (grub-theme\n"
"         (inherit (grub-theme))\n"
"         (gfxmode '(\"1024x786x32\" \"auto\"))))))\n"
msgstr ""

#. type: section
#: doc/guix.texi:30618
#, no-wrap
msgid "Invoking @code{guix system}"
msgstr ""

#. type: Plain text
#: doc/guix.texi:30623
msgid ""
"Once you have written an operating system declaration as seen in the "
"previous section, it can be @dfn{instantiated} using the @command{guix "
"system} command.  The synopsis is:"
msgstr ""

#. type: example
#: doc/guix.texi:30626
#, no-wrap
msgid "guix system @var{options}@dots{} @var{action} @var{file}\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:30632
msgid ""
"@var{file} must be the name of a file containing an @code{operating-system} "
"declaration.  @var{action} specifies how the operating system is "
"instantiated.  Currently the following values are supported:"
msgstr ""

#. type: item
#: doc/guix.texi:30634
#, no-wrap
msgid "search"
msgstr ""

#. type: table
#: doc/guix.texi:30637
msgid ""
"Display available service type definitions that match the given regular "
"expressions, sorted by relevance:"
msgstr ""

#. type: example
#: doc/guix.texi:30659
#, no-wrap
msgid ""
"$ guix system search console\n"
"name: console-fonts\n"
"location: gnu/services/base.scm:806:2\n"
"extends: shepherd-root\n"
"description: Install the given fonts on the specified ttys (fonts are per\n"
"+ virtual console on GNU/Linux).  The value of this service is a list of\n"
"+ tty/font pairs.  The font can be the name of a font provided by the `kbd'\n"
"+ package or any valid argument to `setfont', as in this example:\n"
"+\n"
"+      '((\"tty1\" . \"LatGrkCyr-8x16\")\n"
"+        (\"tty2\" . (file-append\n"
"+                      font-tamzen\n"
"+                      \"/share/kbd/consolefonts/TamzenForPowerline10x20.psf\"))\n"
"+        (\"tty3\" . (file-append\n"
"+                      font-terminus\n"
"+                      \"/share/consolefonts/ter-132n\"))) ; for HDPI\n"
"relevance: 9\n"
"\n"
msgstr ""

#. type: example
#: doc/guix.texi:30665
#, no-wrap
msgid ""
"name: mingetty\n"
"location: gnu/services/base.scm:1190:2\n"
"extends: shepherd-root\n"
"description: Provide console login using the `mingetty' program.\n"
"relevance: 2\n"
"\n"
msgstr ""

#. type: example
#: doc/guix.texi:30672
#, no-wrap
msgid ""
"name: login\n"
"location: gnu/services/base.scm:860:2\n"
"extends: pam\n"
"description: Provide a console log-in service as specified by its\n"
"+ configuration value, a `login-configuration' object.\n"
"relevance: 2\n"
"\n"
msgstr ""

#. type: example
#: doc/guix.texi:30674
#, no-wrap
msgid "@dots{}\n"
msgstr ""

#. type: table
#: doc/guix.texi:30679
msgid ""
"As for @command{guix package --search}, the result is written in "
"@code{recutils} format, which makes it easy to filter the output "
"(@pxref{Top, GNU recutils databases,, recutils, GNU recutils manual})."
msgstr ""

#. type: item
#: doc/guix.texi:30680
#, no-wrap
msgid "reconfigure"
msgstr ""

#. type: table
#: doc/guix.texi:30685
msgid ""
"Build the operating system described in @var{file}, activate it, and switch "
"to it@footnote{This action (and the related actions @code{switch-generation} "
"and @code{roll-back}) are usable only on systems already running Guix "
"System.}."
msgstr ""

#. type: quotation
#: doc/guix.texi:30693
msgid ""
"It is highly recommended to run @command{guix pull} once before you run "
"@command{guix system reconfigure} for the first time (@pxref{Invoking guix "
"pull}).  Failing to do that you would see an older version of Guix once "
"@command{reconfigure} has completed."
msgstr ""

#. type: table
#: doc/guix.texi:30701
msgid ""
"This effects all the configuration specified in @var{file}: user accounts, "
"system services, global package list, setuid programs, etc.  The command "
"starts system services specified in @var{file} that are not currently "
"running; if a service is currently running this command will arrange for it "
"to be upgraded the next time it is stopped (e.g.@: by @code{herd stop X} or "
"@code{herd restart X})."
msgstr ""

#. type: table
#: doc/guix.texi:30707
msgid ""
"This command creates a new generation whose number is one greater than the "
"current generation (as reported by @command{guix system list-generations}).  "
"If that generation already exists, it will be overwritten.  This behavior "
"mirrors that of @command{guix package} (@pxref{Invoking guix package})."
msgstr ""

#. type: table
#: doc/guix.texi:30712
msgid ""
"It also adds a bootloader menu entry for the new OS configuration, ---unless "
"@option{--no-bootloader} is passed.  For GRUB, it moves entries for older "
"configurations to a submenu, allowing you to choose an older system "
"generation at boot time should you need it."
msgstr ""

#. type: cindex
#: doc/guix.texi:30713 doc/guix.texi:31016 doc/guix.texi:31959
#, no-wrap
msgid "provenance tracking, of the operating system"
msgstr ""

#. type: table
#: doc/guix.texi:30718
msgid ""
"Upon completion, the new system is deployed under @file{/run/current-"
"system}.  This directory contains @dfn{provenance meta-data}: the list of "
"channels in use (@pxref{Channels}) and @var{file} itself, when available.  "
"You can view it by running:"
msgstr ""

#. type: example
#: doc/guix.texi:30721
#, no-wrap
msgid "guix system describe\n"
msgstr ""

#. type: table
#: doc/guix.texi:30727
msgid ""
"This information is useful should you later want to inspect how this "
"particular generation was built.  In fact, assuming @var{file} is self-"
"contained, you can later rebuild generation @var{n} of your operating system "
"with:"
msgstr ""

#. type: example
#: doc/guix.texi:30733
#, no-wrap
msgid ""
"guix time-machine \\\n"
"  -C /var/guix/profiles/system-@var{n}-link/channels.scm -- \\\n"
"  system reconfigure \\\n"
"  /var/guix/profiles/system-@var{n}-link/configuration.scm\n"
msgstr ""

#. type: table
#: doc/guix.texi:30739
msgid ""
"You can think of it as some sort of built-in version control! Your system is "
"not just a binary artifact: @emph{it carries its own source}.  @xref{Service "
"Reference, @code{provenance-service-type}}, for more information on "
"provenance tracking."
msgstr ""

#. type: table
#: doc/guix.texi:30745
msgid ""
"By default, @command{reconfigure} @emph{prevents you from downgrading your "
"system}, which could (re)introduce security vulnerabilities and also cause "
"problems with ``stateful'' services such as database management systems.  "
"You can override that behavior by passing @option{--allow-downgrades}."
msgstr ""

#. type: item
#: doc/guix.texi:30746
#, no-wrap
msgid "switch-generation"
msgstr ""

#. type: table
#: doc/guix.texi:30755
msgid ""
"Switch to an existing system generation.  This action atomically switches "
"the system profile to the specified system generation.  It also rearranges "
"the system's existing bootloader menu entries.  It makes the menu entry for "
"the specified system generation the default, and it moves the entries for "
"the other generations to a submenu, if supported by the bootloader being "
"used.  The next time the system boots, it will use the specified system "
"generation."
msgstr ""

#. type: table
#: doc/guix.texi:30759
msgid ""
"The bootloader itself is not being reinstalled when using this command.  "
"Thus, the installed bootloader is used with an updated configuration file."
msgstr ""

#. type: table
#: doc/guix.texi:30763
msgid ""
"The target generation can be specified explicitly by its generation number.  "
"For example, the following invocation would switch to system generation 7:"
msgstr ""

#. type: example
#: doc/guix.texi:30766
#, no-wrap
msgid "guix system switch-generation 7\n"
msgstr ""

#. type: table
#: doc/guix.texi:30774
msgid ""
"The target generation can also be specified relative to the current "
"generation with the form @code{+N} or @code{-N}, where @code{+3} means ``3 "
"generations ahead of the current generation,'' and @code{-1} means ``1 "
"generation prior to the current generation.'' When specifying a negative "
"value such as @code{-1}, you must precede it with @code{--} to prevent it "
"from being parsed as an option.  For example:"
msgstr ""

#. type: example
#: doc/guix.texi:30777
#, no-wrap
msgid "guix system switch-generation -- -1\n"
msgstr ""

#. type: table
#: doc/guix.texi:30785
msgid ""
"Currently, the effect of invoking this action is @emph{only} to switch the "
"system profile to an existing generation and rearrange the bootloader menu "
"entries.  To actually start using the target system generation, you must "
"reboot after running this action.  In the future, it will be updated to do "
"the same things as @command{reconfigure}, like activating and deactivating "
"services."
msgstr ""

#. type: table
#: doc/guix.texi:30787
msgid "This action will fail if the specified generation does not exist."
msgstr ""

#. type: item
#: doc/guix.texi:30788
#, no-wrap
msgid "roll-back"
msgstr ""

#. type: table
#: doc/guix.texi:30794
msgid ""
"Switch to the preceding system generation.  The next time the system boots, "
"it will use the preceding system generation.  This is the inverse of "
"@command{reconfigure}, and it is exactly the same as invoking "
"@command{switch-generation} with an argument of @code{-1}."
msgstr ""

#. type: table
#: doc/guix.texi:30798
msgid ""
"Currently, as with @command{switch-generation}, you must reboot after "
"running this action to actually start using the preceding system generation."
msgstr ""

#. type: item
#: doc/guix.texi:30799
#, no-wrap
msgid "delete-generations"
msgstr ""

#. type: cindex
#: doc/guix.texi:30800
#, no-wrap
msgid "deleting system generations"
msgstr ""

#. type: cindex
#: doc/guix.texi:30801
#, no-wrap
msgid "saving space"
msgstr ""

#. type: table
#: doc/guix.texi:30805
msgid ""
"Delete system generations, making them candidates for garbage collection "
"(@pxref{Invoking guix gc}, for information on how to run the ``garbage "
"collector'')."
msgstr ""

#. type: table
#: doc/guix.texi:30809
msgid ""
"This works in the same way as @samp{guix package --delete-generations} "
"(@pxref{Invoking guix package, @option{--delete-generations}}).  With no "
"arguments, all system generations but the current one are deleted:"
msgstr ""

#. type: example
#: doc/guix.texi:30812
#, no-wrap
msgid "guix system delete-generations\n"
msgstr ""

#. type: table
#: doc/guix.texi:30816
msgid ""
"You can also select the generations you want to delete.  The example below "
"deletes all the system generations that are more than two month old:"
msgstr ""

#. type: example
#: doc/guix.texi:30819
#, no-wrap
msgid "guix system delete-generations 2m\n"
msgstr ""

#. type: table
#: doc/guix.texi:30824
msgid ""
"Running this command automatically reinstalls the bootloader with an updated "
"list of menu entries---e.g., the ``old generations'' sub-menu in GRUB no "
"longer lists the generations that have been deleted."
msgstr ""

#. type: table
#: doc/guix.texi:30829
msgid ""
"Build the derivation of the operating system, which includes all the "
"configuration files and programs needed to boot and run the system.  This "
"action does not actually install anything."
msgstr ""

#. type: item
#: doc/guix.texi:30830
#, no-wrap
msgid "init"
msgstr ""

#. type: table
#: doc/guix.texi:30834
msgid ""
"Populate the given directory with all the files necessary to run the "
"operating system specified in @var{file}.  This is useful for first-time "
"installations of Guix System.  For instance:"
msgstr ""

#. type: example
#: doc/guix.texi:30837
#, no-wrap
msgid "guix system init my-os-config.scm /mnt\n"
msgstr ""

#. type: table
#: doc/guix.texi:30844
msgid ""
"copies to @file{/mnt} all the store items required by the configuration "
"specified in @file{my-os-config.scm}.  This includes configuration files, "
"packages, and so on.  It also creates other essential files needed for the "
"system to operate correctly---e.g., the @file{/etc}, @file{/var}, and @file{/"
"run} directories, and the @file{/bin/sh} file."
msgstr ""

#. type: table
#: doc/guix.texi:30848
msgid ""
"This command also installs bootloader on the target specified in @file{my-os-"
"config}, unless the @option{--no-bootloader} option was passed."
msgstr ""

#. type: item
#: doc/guix.texi:30849
#, no-wrap
msgid "vm"
msgstr ""

#. type: cindex
#: doc/guix.texi:30850 doc/guix.texi:31384
#, no-wrap
msgid "virtual machine"
msgstr ""

#. type: cindex
#: doc/guix.texi:30851
#, no-wrap
msgid "VM"
msgstr ""

#. type: anchor{#1}
#: doc/guix.texi:30855
msgid "guix system vm"
msgstr ""

#. type: table
#: doc/guix.texi:30855
msgid ""
"Build a virtual machine that contains the operating system declared in "
"@var{file}, and return a script to run that virtual machine (VM)."
msgstr ""

#. type: quotation
#: doc/guix.texi:30863
msgid ""
"The @code{vm} action and others below can use KVM support in the Linux-libre "
"kernel.  Specifically, if the machine has hardware virtualization support, "
"the corresponding KVM kernel module should be loaded, and the @file{/dev/"
"kvm} device node must exist and be readable and writable by the user and by "
"the build users of the daemon (@pxref{Build Environment Setup})."
msgstr ""

#. type: table
#: doc/guix.texi:30868
msgid ""
"Arguments given to the script are passed to QEMU as in the example below, "
"which enables networking and requests 1@tie{}GiB of RAM for the emulated "
"machine:"
msgstr ""

#. type: example
#: doc/guix.texi:30871
#, no-wrap
msgid "$ /gnu/store/@dots{}-run-vm.sh -m 1024 -smp 2 -net user,model=virtio-net-pci\n"
msgstr ""

#. type: table
#: doc/guix.texi:30874
msgid "The VM shares its store with the host system."
msgstr ""

#. type: table
#: doc/guix.texi:30879
msgid ""
"Additional file systems can be shared between the host and the VM using the "
"@option{--share} and @option{--expose} command-line options: the former "
"specifies a directory to be shared with write access, while the latter "
"provides read-only access to the shared directory."
msgstr ""

#. type: table
#: doc/guix.texi:30883
msgid ""
"The example below creates a VM in which the user's home directory is "
"accessible read-only, and where the @file{/exchange} directory is a read-"
"write mapping of @file{$HOME/tmp} on the host:"
msgstr ""

#. type: example
#: doc/guix.texi:30887
#, no-wrap
msgid ""
"guix system vm my-config.scm \\\n"
"   --expose=$HOME --share=$HOME/tmp=/exchange\n"
msgstr ""

#. type: table
#: doc/guix.texi:30892
msgid ""
"On GNU/Linux, the default is to boot directly to the kernel; this has the "
"advantage of requiring only a very tiny root disk image since the store of "
"the host can then be mounted."
msgstr ""

#. type: table
#: doc/guix.texi:30898
msgid ""
"The @option{--full-boot} option forces a complete boot sequence, starting "
"with the bootloader.  This requires more disk space since a root image "
"containing at least the kernel, initrd, and bootloader data files must be "
"created.  The @option{--image-size} option can be used to specify the size "
"of the image."
msgstr ""

#. type: cindex
#: doc/guix.texi:30899
#, no-wrap
msgid "System images, creation in various formats"
msgstr ""

#. type: cindex
#: doc/guix.texi:30900
#, no-wrap
msgid "Creating system images in various formats"
msgstr ""

#. type: item
#: doc/guix.texi:30901
#, no-wrap
msgid "vm-image"
msgstr ""

#. type: itemx
#: doc/guix.texi:30902
#, no-wrap
msgid "disk-image"
msgstr ""

#. type: itemx
#: doc/guix.texi:30903
#, no-wrap
msgid "docker-image"
msgstr ""

#. type: table
#: doc/guix.texi:30911
msgid ""
"Return a virtual machine, disk image, or Docker image of the operating "
"system declared in @var{file} that stands alone.  By default, @command{guix "
"system} estimates the size of the image needed to store the system, but you "
"can use the @option{--image-size} option to specify a value.  Docker images "
"are built to contain exactly what they need, so the @option{--image-size} "
"option is ignored in the case of @code{docker-image}."
msgstr ""

#. type: table
#: doc/guix.texi:30917
msgid ""
"The @code{disk-image} command can produce various image types.  The image "
"type can be selected using the @command{--image-type} option.  It defaults "
"to @code{raw}. When its value is @code{iso9660}, the @option{--label} option "
"can be used to specify a volume ID with @code{disk-image}."
msgstr ""

#. type: table
#: doc/guix.texi:30922
msgid ""
"When using the @code{raw} image type, a raw disk image is produced; it can "
"be copied as is to a USB stick, for instance.  Assuming @code{/dev/sdc} is "
"the device corresponding to a USB stick, one can copy the image to it using "
"the following command:"
msgstr ""

#. type: example
#: doc/guix.texi:30925
#, no-wrap
msgid "# dd if=$(guix system disk-image my-os.scm) of=/dev/sdc status=progress\n"
msgstr ""

#. type: table
#: doc/guix.texi:30929
msgid ""
"The @code{--list-image-types} command lists all the available image types."
msgstr ""

#. type: table
#: doc/guix.texi:30933
msgid ""
"When using @code{vm-image}, the returned image is in qcow2 format, which the "
"QEMU emulator can efficiently use. @xref{Running Guix in a VM}, for more "
"information on how to run the image in a virtual machine."
msgstr ""

#. type: table
#: doc/guix.texi:30939
msgid ""
"When using @code{docker-image}, a Docker image is produced.  Guix builds the "
"image from scratch, not from a pre-existing Docker base image.  As a result, "
"it contains @emph{exactly} what you define in the operating system "
"configuration file.  You can then load the image and launch a Docker "
"container using commands like the following:"
msgstr ""

#. type: example
#: doc/guix.texi:30944
#, no-wrap
msgid ""
"image_id=\"`docker load < guix-system-docker-image.tar.gz`\"\n"
"container_id=\"`docker create $image_id`\"\n"
"docker start $container_id\n"
msgstr ""

#. type: table
#: doc/guix.texi:30951
msgid ""
"This command starts a new Docker container from the specified image.  It "
"will boot the Guix system in the usual manner, which means it will start any "
"services you have defined in the operating system configuration.  You can "
"get an interactive shell running in the container using @command{docker "
"exec}:"
msgstr ""

#. type: example
#: doc/guix.texi:30954
#, no-wrap
msgid "docker exec -ti $container_id /run/current-system/profile/bin/bash --login\n"
msgstr ""

#. type: table
#: doc/guix.texi:30961
msgid ""
"Depending on what you run in the Docker container, it may be necessary to "
"give the container additional permissions.  For example, if you intend to "
"build software using Guix inside of the Docker container, you may need to "
"pass the @option{--privileged} option to @code{docker create}."
msgstr ""

#. type: table
#: doc/guix.texi:30965
msgid ""
"Last, the @option{--network} option applies to @command{guix system docker-"
"image}: it produces an image where network is supposedly shared with the "
"host, and thus without services like nscd or NetworkManager."
msgstr ""

#. type: table
#: doc/guix.texi:30973
msgid ""
"Return a script to run the operating system declared in @var{file} within a "
"container.  Containers are a set of lightweight isolation mechanisms "
"provided by the kernel Linux-libre.  Containers are substantially less "
"resource-demanding than full virtual machines since the kernel, shared "
"objects, and other resources can be shared with the host system; this also "
"means they provide thinner isolation."
msgstr ""

#. type: table
#: doc/guix.texi:30977
msgid ""
"Currently, the script must be run as root in order to support more than a "
"single user and group.  The container shares its store with the host system."
msgstr ""

#. type: table
#: doc/guix.texi:30981
msgid ""
"As with the @code{vm} action (@pxref{guix system vm}), additional file "
"systems to be shared between the host and container can be specified using "
"the @option{--share} and @option{--expose} options:"
msgstr ""

#. type: example
#: doc/guix.texi:30985
#, no-wrap
msgid ""
"guix system container my-config.scm \\\n"
"   --expose=$HOME --share=$HOME/tmp=/exchange\n"
msgstr ""

#. type: quotation
#: doc/guix.texi:30989
msgid "This option requires Linux-libre 3.19 or newer."
msgstr ""

#. type: Plain text
#: doc/guix.texi:30996
msgid ""
"@var{options} can contain any of the common build options (@pxref{Common "
"Build Options}).  In addition, @var{options} can contain one of the "
"following:"
msgstr ""

#. type: table
#: doc/guix.texi:31005
msgid ""
"Consider the operating-system @var{expr} evaluates to.  This is an "
"alternative to specifying a file which evaluates to an operating system.  "
"This is used to generate the Guix system installer @pxref{Building the "
"Installation Image})."
msgstr ""

#. type: table
#: doc/guix.texi:31010
msgid ""
"Attempt to build for @var{system} instead of the host system type.  This "
"works as per @command{guix build} (@pxref{Invoking guix build})."
msgstr ""

#. type: table
#: doc/guix.texi:31015
msgid ""
"Return the derivation file name of the given operating system without "
"building anything."
msgstr ""

#. type: table
#: doc/guix.texi:31024
msgid ""
"As discussed above, @command{guix system init} and @command{guix system "
"reconfigure} always save provenance information @i{via} a dedicated service "
"(@pxref{Service Reference, @code{provenance-service-type}}).  However, other "
"commands don't do that by default.  If you wish to, say, create a virtual "
"machine image that contains provenance information, you can run:"
msgstr ""

#. type: example
#: doc/guix.texi:31027
#, no-wrap
msgid "guix system vm-image --save-provenance config.scm\n"
msgstr ""

#. type: table
#: doc/guix.texi:31034
msgid ""
"That way, the resulting image will effectively ``embed its own source'' in "
"the form of meta-data in @file{/run/current-system}.  With that information, "
"one can rebuild the image to make sure it really contains what it pretends "
"to contain; or they could use that to derive a variant of the image."
msgstr ""

#. type: item
#: doc/guix.texi:31035
#, no-wrap
msgid "--image-type=@var{type}"
msgstr ""

#. type: table
#: doc/guix.texi:31038
msgid ""
"For the @code{disk-image} action, create an image with given @var{type}."
msgstr ""

#. type: table
#: doc/guix.texi:31041
msgid ""
"When this option is omitted, @command{guix system} uses the @code{raw} image "
"type."
msgstr ""

#. type: cindex
#: doc/guix.texi:31042
#, no-wrap
msgid "ISO-9660 format"
msgstr ""

#. type: cindex
#: doc/guix.texi:31043
#, no-wrap
msgid "CD image format"
msgstr ""

#. type: cindex
#: doc/guix.texi:31044
#, no-wrap
msgid "DVD image format"
msgstr ""

#. type: table
#: doc/guix.texi:31047
msgid ""
"@option{--image-type=iso9660} produces an ISO-9660 image, suitable for "
"burning on CDs and DVDs."
msgstr ""

#. type: item
#: doc/guix.texi:31048
#, no-wrap
msgid "--image-size=@var{size}"
msgstr ""

#. type: table
#: doc/guix.texi:31053
msgid ""
"For the @code{vm-image} and @code{disk-image} actions, create an image of "
"the given @var{size}.  @var{size} may be a number of bytes, or it may "
"include a unit as a suffix (@pxref{Block size, size specifications,, "
"coreutils, GNU Coreutils})."
msgstr ""

#. type: table
#: doc/guix.texi:31057
msgid ""
"When this option is omitted, @command{guix system} computes an estimate of "
"the image size as a function of the size of the system declared in "
"@var{file}."
msgstr ""

#. type: table
#: doc/guix.texi:31062
msgid ""
"For the @code{container} action, allow containers to access the host "
"network, that is, do not create a network namespace."
msgstr ""

#. type: item
#: doc/guix.texi:31068
#, no-wrap
msgid "--skip-checks"
msgstr ""

#. type: table
#: doc/guix.texi:31070
msgid "Skip pre-installation safety checks."
msgstr ""

#. type: table
#: doc/guix.texi:31077
msgid ""
"By default, @command{guix system init} and @command{guix system reconfigure} "
"perform safety checks: they make sure the file systems that appear in the "
"@code{operating-system} declaration actually exist (@pxref{File Systems}), "
"and that any Linux kernel modules that may be needed at boot time are listed "
"in @code{initrd-modules} (@pxref{Initial RAM Disk}).  Passing this option "
"skips these tests altogether."
msgstr ""

#. type: table
#: doc/guix.texi:31080
msgid "Instruct @command{guix system reconfigure} to allow system downgrades."
msgstr ""

#. type: table
#: doc/guix.texi:31088
msgid ""
"By default, @command{reconfigure} prevents you from downgrading your "
"system.  It achieves that by comparing the provenance info of your system "
"(shown by @command{guix system describe}) with that of your @command{guix} "
"command (shown by @command{guix describe}).  If the commits for "
"@command{guix} are not descendants of those used for your system, "
"@command{guix system reconfigure} errors out.  Passing @option{--allow-"
"downgrades} allows you to bypass these checks."
msgstr ""

#. type: cindex
#: doc/guix.texi:31094
#, no-wrap
msgid "on-error"
msgstr ""

#. type: cindex
#: doc/guix.texi:31095
#, no-wrap
msgid "on-error strategy"
msgstr ""

#. type: cindex
#: doc/guix.texi:31096
#, no-wrap
msgid "error strategy"
msgstr ""

#. type: item
#: doc/guix.texi:31097
#, no-wrap
msgid "--on-error=@var{strategy}"
msgstr ""

#. type: table
#: doc/guix.texi:31100
msgid ""
"Apply @var{strategy} when an error occurs when reading @var{file}.  "
"@var{strategy} may be one of the following:"
msgstr ""

#. type: item
#: doc/guix.texi:31102
#, no-wrap
msgid "nothing-special"
msgstr ""

#. type: table
#: doc/guix.texi:31104
msgid "Report the error concisely and exit.  This is the default strategy."
msgstr ""

#. type: item
#: doc/guix.texi:31105
#, no-wrap
msgid "backtrace"
msgstr ""

#. type: table
#: doc/guix.texi:31107
msgid "Likewise, but also display a backtrace."
msgstr ""

#. type: item
#: doc/guix.texi:31108
#, no-wrap
msgid "debug"
msgstr ""

#. type: table
#: doc/guix.texi:31114
msgid ""
"Report the error and enter Guile's debugger.  From there, you can run "
"commands such as @code{,bt} to get a backtrace, @code{,locals} to display "
"local variable values, and more generally inspect the state of the program.  "
"@xref{Debug Commands,,, guile, GNU Guile Reference Manual}, for a list of "
"available debugging commands."
msgstr ""

#. type: Plain text
#: doc/guix.texi:31121
msgid ""
"Once you have built, configured, re-configured, and re-re-configured your "
"Guix installation, you may find it useful to list the operating system "
"generations available on disk---and that you can choose from the bootloader "
"boot menu:"
msgstr ""

#. type: item
#: doc/guix.texi:31124
#, no-wrap
msgid "describe"
msgstr ""

#. type: table
#: doc/guix.texi:31127
msgid ""
"Describe the current system generation: its file name, the kernel and "
"bootloader used, etc., as well as provenance information when available."
msgstr ""

#. type: item
#: doc/guix.texi:31128
#, no-wrap
msgid "list-generations"
msgstr ""

#. type: table
#: doc/guix.texi:31133
msgid ""
"List a summary of each generation of the operating system available on disk, "
"in a human-readable way.  This is similar to the @option{--list-generations} "
"option of @command{guix package} (@pxref{Invoking guix package})."
msgstr ""

#. type: table
#: doc/guix.texi:31138
msgid ""
"Optionally, one can specify a pattern, with the same syntax that is used in "
"@command{guix package --list-generations}, to restrict the list of "
"generations displayed.  For instance, the following command displays "
"generations that are up to 10 days old:"
msgstr ""

#. type: example
#: doc/guix.texi:31141
#, no-wrap
msgid "$ guix system list-generations 10d\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:31148
msgid ""
"The @command{guix system} command has even more to offer! The following sub-"
"commands allow you to visualize how your system services relate to each "
"other:"
msgstr ""

#. type: anchor{#1}
#: doc/guix.texi:31150
msgid "system-extension-graph"
msgstr ""

#. type: item
#: doc/guix.texi:31152
#, no-wrap
msgid "extension-graph"
msgstr ""

#. type: table
#: doc/guix.texi:31157
msgid ""
"Emit in Dot/Graphviz format to standard output the @dfn{service extension "
"graph} of the operating system defined in @var{file} (@pxref{Service "
"Composition}, for more information on service extensions)."
msgstr ""

#. type: table
#: doc/guix.texi:31159
msgid "The command:"
msgstr ""

#. type: example
#: doc/guix.texi:31162
#, no-wrap
msgid "$ guix system extension-graph @var{file} | xdot -\n"
msgstr ""

#. type: table
#: doc/guix.texi:31165
msgid "shows the extension relations among services."
msgstr ""

#. type: anchor{#1}
#: doc/guix.texi:31167
msgid "system-shepherd-graph"
msgstr ""

#. type: item
#: doc/guix.texi:31167
#, no-wrap
msgid "shepherd-graph"
msgstr ""

#. type: table
#: doc/guix.texi:31172
msgid ""
"Emit in Dot/Graphviz format to standard output the @dfn{dependency graph} of "
"shepherd services of the operating system defined in @var{file}.  "
"@xref{Shepherd Services}, for more information and for an example graph."
msgstr ""

#. type: section
#: doc/guix.texi:31176
#, no-wrap
msgid "Invoking @code{guix deploy}"
msgstr ""

#. type: Plain text
#: doc/guix.texi:31184
msgid ""
"We've already seen @code{operating-system} declarations used to manage a "
"machine's configuration locally.  Suppose you need to configure multiple "
"machines, though---perhaps you're managing a service on the web that's "
"comprised of several servers.  @command{guix deploy} enables you to use "
"those same @code{operating-system} declarations to manage multiple remote "
"hosts at once as a logical ``deployment''."
msgstr ""

#. type: quotation
#: doc/guix.texi:31189
msgid ""
"The functionality described in this section is still under development and "
"is subject to change.  Get in touch with us on @email{guix-devel@@gnu.org}!"
msgstr ""

#. type: example
#: doc/guix.texi:31193
#, no-wrap
msgid "guix deploy @var{file}\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:31197
msgid ""
"Such an invocation will deploy the machines that the code within @var{file} "
"evaluates to.  As an example, @var{file} might contain a definition like "
"this:"
msgstr ""

#. type: lisp
#: doc/guix.texi:31204
#, no-wrap
msgid ""
";; This is a Guix deployment of a \"bare bones\" setup, with\n"
";; no X11 display server, to a machine with an SSH daemon\n"
";; listening on localhost:2222. A configuration such as this\n"
";; may be appropriate for virtual machine with ports\n"
";; forwarded to the host's loopback interface.\n"
"\n"
msgstr ""

#. type: lisp
#: doc/guix.texi:31207
#, no-wrap
msgid ""
"(use-service-modules networking ssh)\n"
"(use-package-modules bootloaders)\n"
"\n"
msgstr ""

#. type: lisp
#: doc/guix.texi:31228
#, no-wrap
msgid ""
"(define %system\n"
"  (operating-system\n"
"   (host-name \"gnu-deployed\")\n"
"   (timezone \"Etc/UTC\")\n"
"   (bootloader (bootloader-configuration\n"
"                (bootloader grub-bootloader)\n"
"                (target \"/dev/vda\")\n"
"                (terminal-outputs '(console))))\n"
"   (file-systems (cons (file-system\n"
"                        (mount-point \"/\")\n"
"                        (device \"/dev/vda1\")\n"
"                        (type \"ext4\"))\n"
"                       %base-file-systems))\n"
"   (services\n"
"    (append (list (service dhcp-client-service-type)\n"
"                  (service openssh-service-type\n"
"                           (openssh-configuration\n"
"                            (permit-root-login #t)\n"
"                            (allow-empty-passwords? #t))))\n"
"            %base-services))))\n"
"\n"
msgstr ""

#. type: lisp
#: doc/guix.texi:31238
#, no-wrap
msgid ""
"(list (machine\n"
"       (operating-system %system)\n"
"       (environment managed-host-environment-type)\n"
"       (configuration (machine-ssh-configuration\n"
"                       (host-name \"localhost\")\n"
"                       (system \"x86_64-linux\")\n"
"                       (user \"alice\")\n"
"                       (identity \"./id_rsa\")\n"
"                       (port 2222)))))\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:31251
msgid ""
"The file should evaluate to a list of @var{machine} objects.  This example, "
"upon being deployed, will create a new generation on the remote system "
"realizing the @code{operating-system} declaration @code{%system}.  "
"@code{environment} and @code{configuration} specify how the machine should "
"be provisioned---that is, how the computing resources should be created and "
"managed.  The above example does not create any resources, as a "
"@code{'managed-host} is a machine that is already running the Guix system "
"and available over the network.  This is a particularly simple case; a more "
"complex deployment may involve, for example, starting virtual machines "
"through a Virtual Private Server (VPS) provider.  In such a case, a "
"different @var{environment} type would be used."
msgstr ""

#. type: Plain text
#: doc/guix.texi:31256
msgid ""
"Do note that you first need to generate a key pair on the coordinator "
"machine to allow the daemon to export signed archives of files from the "
"store (@pxref{Invoking guix archive}), though this step is automatic on Guix "
"System:"
msgstr ""

#. type: Plain text
#: doc/guix.texi:31264
msgid ""
"Each target machine must authorize the key of the master machine so that it "
"accepts store items it receives from the coordinator:"
msgstr ""

#. type: example
#: doc/guix.texi:31267
#, no-wrap
msgid "# guix archive --authorize < coordinator-public-key.txt\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:31278
msgid ""
"@code{user}, in this example, specifies the name of the user account to log "
"in as to perform the deployment.  Its default value is @code{root}, but root "
"login over SSH may be forbidden in some cases.  To work around this, "
"@command{guix deploy} can log in as an unprivileged user and employ "
"@code{sudo} to escalate privileges.  This will only work if @code{sudo} is "
"currently installed on the remote and can be invoked non-interactively as "
"@code{user}.  That is, the line in @code{sudoers} granting @code{user} the "
"ability to use @code{sudo} must contain the @code{NOPASSWD} tag.  This can "
"be accomplished with the following operating system configuration snippet:"
msgstr ""

#. type: lisp
#: doc/guix.texi:31282
#, no-wrap
msgid ""
"(use-modules ...\n"
"             (gnu system))               ;for %sudoers-specification\n"
"\n"
msgstr ""

#. type: lisp
#: doc/guix.texi:31284
#, no-wrap
msgid ""
"(define %user \"username\")\n"
"\n"
msgstr ""

#. type: lisp
#: doc/guix.texi:31292
#, no-wrap
msgid ""
"(operating-system\n"
"  ...\n"
"  (sudoers-file\n"
"     (plain-file \"sudoers\"\n"
"                 (string-append (plain-file-content %sudoers-specification)\n"
"                                (format #f \"~a ALL = NOPASSWD: ALL~%\"\n"
"                                        %user)))))\n"
"\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:31297
msgid ""
"For more information regarding the format of the @file{sudoers} file, "
"consult @command{man sudoers}."
msgstr ""

#. type: deftp
#: doc/guix.texi:31298
#, no-wrap
msgid "{Data Type} machine"
msgstr ""

#. type: deftp
#: doc/guix.texi:31301
msgid ""
"This is the data type representing a single machine in a heterogeneous Guix "
"deployment."
msgstr ""

#. type: table
#: doc/guix.texi:31305
msgid "The object of the operating system configuration to deploy."
msgstr ""

#. type: code{#1}
#: doc/guix.texi:31306
#, no-wrap
msgid "environment"
msgstr ""

#. type: table
#: doc/guix.texi:31308
msgid ""
"An @code{environment-type} describing how the machine should be provisioned."
msgstr ""

#. type: item
#: doc/guix.texi:31309
#, no-wrap
msgid "@code{configuration} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:31314
msgid ""
"An object describing the configuration for the machine's "
"@code{environment}.  If the @code{environment} has a default configuration, "
"@code{#f} may be used.  If @code{#f} is used for an environment with no "
"default configuration, however, an error will be thrown."
msgstr ""

#. type: deftp
#: doc/guix.texi:31317
#, no-wrap
msgid "{Data Type} machine-ssh-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:31320
msgid ""
"This is the data type representing the SSH client parameters for a machine "
"with an @code{environment} of @code{managed-host-environment-type}."
msgstr ""

#. type: item
#: doc/guix.texi:31323
#, no-wrap
msgid "@code{build-locally?} (default: @code{#t})"
msgstr ""

#. type: table
#: doc/guix.texi:31325
msgid ""
"If false, system derivations will be built on the machine being deployed to."
msgstr ""

#. type: code{#1}
#: doc/guix.texi:31325
#, no-wrap
msgid "system"
msgstr ""

#. type: table
#: doc/guix.texi:31328
msgid ""
"The system type describing the architecture of the machine being deployed "
"to---e.g., @code{\"x86_64-linux\"}."
msgstr ""

#. type: item
#: doc/guix.texi:31328
#, no-wrap
msgid "@code{authorize?} (default: @code{#t})"
msgstr ""

#. type: table
#: doc/guix.texi:31331
msgid ""
"If true, the coordinator's signing key will be added to the remote's ACL "
"keyring."
msgstr ""

#. type: item
#: doc/guix.texi:31332
#, no-wrap
msgid "@code{user} (default: @code{\"root\"})"
msgstr ""

#. type: item
#: doc/guix.texi:31333
#, no-wrap
msgid "@code{identity} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:31336
msgid ""
"If specified, the path to the SSH private key to use to authenticate with "
"the remote host."
msgstr ""

#. type: item
#: doc/guix.texi:31337
#, no-wrap
msgid "@code{host-key} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:31339
msgid "This should be the SSH host key of the machine, which looks like this:"
msgstr ""

#. type: example
#: doc/guix.texi:31342
#, no-wrap
msgid "ssh-ed25519 AAAAC3Nz@dots{} root@@example.org\n"
msgstr ""

#. type: table
#: doc/guix.texi:31347
msgid ""
"When @code{host-key} is @code{#f}, the server is authenticated against the "
"@file{~/.ssh/known_hosts} file, just like the OpenSSH @command{ssh} client "
"does."
msgstr ""

#. type: item
#: doc/guix.texi:31348
#, no-wrap
msgid "@code{allow-downgrades?} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:31350
msgid "Whether to allow potential downgrades."
msgstr ""

#. type: table
#: doc/guix.texi:31358
msgid ""
"Like @command{guix system reconfigure}, @command{guix deploy} compares the "
"channel commits currently deployed on the remote host (as returned by "
"@command{guix system describe}) to those currently in use (as returned by "
"@command{guix describe}) to determine whether commits currently in use are "
"descendants of those deployed.  When this is not the case and @code{allow-"
"downgrades?} is false, it raises an error.  This ensures you do not "
"accidentally downgrade remote machines."
msgstr ""

#. type: deftp
#: doc/guix.texi:31361
#, no-wrap
msgid "{Data Type} digital-ocean-configuration"
msgstr ""

#. type: deftp
#: doc/guix.texi:31364
msgid ""
"This is the data type describing the Droplet that should be created for a "
"machine with an @code{environment} of @code{digital-ocean-environment-type}."
msgstr ""

#. type: code{#1}
#: doc/guix.texi:31366
#, no-wrap
msgid "ssh-key"
msgstr ""

#. type: table
#: doc/guix.texi:31369
msgid ""
"The path to the SSH private key to use to authenticate with the remote host. "
"In the future, this field may not exist."
msgstr ""

#. type: code{#1}
#: doc/guix.texi:31369
#, no-wrap
msgid "tags"
msgstr ""

#. type: table
#: doc/guix.texi:31372
msgid ""
"A list of string ``tags'' that uniquely identify the machine. Must be given "
"such that no two machines in the deployment have the same set of tags."
msgstr ""

#. type: code{#1}
#: doc/guix.texi:31372
#, no-wrap
msgid "region"
msgstr ""

#. type: table
#: doc/guix.texi:31374
msgid "A Digital Ocean region slug, such as @code{\"nyc3\"}."
msgstr ""

#. type: table
#: doc/guix.texi:31376
msgid "A Digital Ocean size slug, such as @code{\"s-1vcpu-1gb\"}"
msgstr ""

#. type: code{#1}
#: doc/guix.texi:31376
#, no-wrap
msgid "enable-ipv6?"
msgstr ""

#. type: table
#: doc/guix.texi:31378
msgid "Whether or not the droplet should be created with IPv6 networking."
msgstr ""

#. type: section
#: doc/guix.texi:31382
#, no-wrap
msgid "Running Guix in a Virtual Machine"
msgstr ""

#. type: Plain text
#: doc/guix.texi:31391
msgid ""
"To run Guix in a virtual machine (VM), one can use the pre-built Guix VM "
"image distributed at @url{@value{BASE-URL}/guix-system-vm-image-"
"@value{VERSION}.x86_64-linux.xz}.  This image is a compressed image in QCOW "
"format.  You will first need to decompress with @command{xz -d}, and then "
"you can pass it to an emulator such as QEMU (see below for details)."
msgstr ""

#. type: Plain text
#: doc/guix.texi:31398
msgid ""
"This image boots the Xfce graphical environment and it contains some "
"commonly used tools.  You can install more software in the image by running "
"@command{guix package} in a terminal (@pxref{Invoking guix package}).  You "
"can also reconfigure the system based on its initial configuration file "
"available as @file{/run/current-system/configuration.scm} (@pxref{Using the "
"Configuration System})."
msgstr ""

#. type: Plain text
#: doc/guix.texi:31403
msgid ""
"Instead of using this pre-built image, one can also build their own virtual "
"machine image using @command{guix system vm-image} (@pxref{Invoking guix "
"system}).  The returned image is in qcow2 format, which the @uref{https://"
"qemu.org/, QEMU emulator} can efficiently use."
msgstr ""

#. type: cindex
#: doc/guix.texi:31404
#, no-wrap
msgid "QEMU"
msgstr ""

#. type: Plain text
#: doc/guix.texi:31411
msgid ""
"If you built your own image, you must copy it out of the store (@pxref{The "
"Store}) and give yourself permission to write to the copy before you can use "
"it.  When invoking QEMU, you must choose a system emulator that is suitable "
"for your hardware platform.  Here is a minimal QEMU invocation that will "
"boot the result of @command{guix system vm-image} on x86_64 hardware:"
msgstr ""

#. type: example
#: doc/guix.texi:31418
#, no-wrap
msgid ""
"$ qemu-system-x86_64 \\\n"
"   -nic user,model=virtio-net-pci \\\n"
"   -enable-kvm -m 1024 \\\n"
"   -device virtio-blk,drive=myhd \\\n"
"   -drive if=none,file=/tmp/qemu-image,id=myhd\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:31421
msgid "Here is what each of these options means:"
msgstr ""

#. type: item
#: doc/guix.texi:31423
#, no-wrap
msgid "qemu-system-x86_64"
msgstr ""

#. type: table
#: doc/guix.texi:31426
msgid ""
"This specifies the hardware platform to emulate.  This should match the host."
msgstr ""

#. type: item
#: doc/guix.texi:31427
#, no-wrap
msgid "-nic user,model=virtio-net-pci"
msgstr ""

#. type: table
#: doc/guix.texi:31435
msgid ""
"Enable the unprivileged user-mode network stack.  The guest OS can access "
"the host but not vice versa.  This is the simplest way to get the guest OS "
"online.  @code{model} specifies which network device to emulate: "
"@code{virtio-net-pci} is a special device made for virtualized operating "
"systems and recommended for most uses.  Assuming your hardware platform is "
"x86_64, you can get a list of available NIC models by running @command{qemu-"
"system-x86_64 -nic model=help}."
msgstr ""

#. type: item
#: doc/guix.texi:31436
#, no-wrap
msgid "-enable-kvm"
msgstr ""

#. type: table
#: doc/guix.texi:31440
msgid ""
"If your system has hardware virtualization extensions, enabling the virtual "
"machine support (KVM) of the Linux kernel will make things run faster."
msgstr ""

#. type: item
#: doc/guix.texi:31442
#, no-wrap
msgid "-m 1024"
msgstr ""

#. type: table
#: doc/guix.texi:31445
msgid ""
"RAM available to the guest OS, in mebibytes.  Defaults to 128@tie{}MiB, "
"which may be insufficient for some operations."
msgstr ""

#. type: item
#: doc/guix.texi:31446
#, no-wrap
msgid "-device virtio-blk,drive=myhd"
msgstr ""

#. type: table
#: doc/guix.texi:31451
msgid ""
"Create a @code{virtio-blk} drive called ``myhd''.  @code{virtio-blk} is a "
"``paravirtualization'' mechanism for block devices that allows QEMU to "
"achieve better performance than if it were emulating a complete disk drive.  "
"See the QEMU and KVM documentation for more info."
msgstr ""

#. type: item
#: doc/guix.texi:31452
#, no-wrap
msgid "-drive if=none,file=/tmp/qemu-image,id=myhd"
msgstr ""

#. type: table
#: doc/guix.texi:31455
msgid ""
"Use our QCOW image, the @file{/tmp/qemu-image} file, as the backing store of "
"the ``myhd'' drive."
msgstr ""

#. type: Plain text
#: doc/guix.texi:31465
msgid ""
"The default @command{run-vm.sh} script that is returned by an invocation of "
"@command{guix system vm} does not add a @command{-nic user} flag by "
"default.  To get network access from within the vm add the @code{(dhcp-"
"client-service)} to your system definition and start the VM using "
"@command{`guix system vm config.scm` -nic user}.  An important caveat of "
"using @command{-nic user} for networking is that @command{ping} will not "
"work, because it uses the ICMP protocol.  You'll have to use a different "
"command to check for network connectivity, for example @command{guix "
"download}."
msgstr ""

#. type: subsection
#: doc/guix.texi:31466
#, no-wrap
msgid "Connecting Through SSH"
msgstr ""

#. type: Plain text
#: doc/guix.texi:31474
msgid ""
"To enable SSH inside a VM you need to add an SSH server like @code{openssh-"
"service-type} to your VM (@pxref{Networking Services, @code{openssh-service-"
"type}}).  In addition you need to forward the SSH port, 22 by default, to "
"the host.  You can do this with"
msgstr ""

#. type: example
#: doc/guix.texi:31477
#, no-wrap
msgid "`guix system vm config.scm` -nic user,model=virtio-net-pci,hostfwd=tcp::10022-:22\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:31480
msgid "To connect to the VM you can run"
msgstr ""

#. type: example
#: doc/guix.texi:31483
#, no-wrap
msgid "ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -p 10022\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:31490
msgid ""
"The @command{-p} tells @command{ssh} the port you want to connect to.  "
"@command{-o UserKnownHostsFile=/dev/null} prevents @command{ssh} from "
"complaining every time you modify your @command{config.scm} file and the "
"@command{-o StrictHostKeyChecking=no} prevents you from having to allow a "
"connection to an unknown host every time you connect."
msgstr ""

#. type: subsection
#: doc/guix.texi:31491
#, no-wrap
msgid "Using @command{virt-viewer} with Spice"
msgstr ""

#. type: Plain text
#: doc/guix.texi:31497
msgid ""
"As an alternative to the default @command{qemu} graphical client you can use "
"the @command{remote-viewer} from the @command{virt-viewer} package.  To "
"connect pass the @command{-spice port=5930,disable-ticketing} flag to "
"@command{qemu}.  See previous section for further information on how to do "
"this."
msgstr ""

#. type: Plain text
#: doc/guix.texi:31500
msgid ""
"Spice also allows you to do some nice stuff like share your clipboard with "
"your VM.  To enable that you'll also have to pass the following flags to "
"@command{qemu}:"
msgstr ""

#. type: example
#: doc/guix.texi:31506
#, no-wrap
msgid ""
"-device virtio-serial-pci,id=virtio-serial0,max_ports=16,bus=pci.0,addr=0x5\n"
"-chardev spicevmc,name=vdagent,id=vdagent\n"
"-device virtserialport,nr=1,bus=virtio-serial0.0,chardev=vdagent,\n"
"name=com.redhat.spice.0\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:31510
msgid ""
"You'll also need to add the @code{(spice-vdagent-service)} to your system "
"definition (@pxref{Miscellaneous Services, Spice service})."
msgstr ""

#. type: Plain text
#: doc/guix.texi:31517
msgid ""
"The previous sections show the available services and how one can combine "
"them in an @code{operating-system} declaration.  But how do we define them "
"in the first place? And what is a service anyway?"
msgstr ""

#. type: cindex
#: doc/guix.texi:31529
#, no-wrap
msgid "daemons"
msgstr ""

#. type: Plain text
#: doc/guix.texi:31542
msgid ""
"Here we define a @dfn{service} as, broadly, something that extends the "
"functionality of the operating system.  Often a service is a process---a "
"@dfn{daemon}---started when the system boots: a secure shell server, a Web "
"server, the Guix build daemon, etc.  Sometimes a service is a daemon whose "
"execution can be triggered by another daemon---e.g., an FTP server started "
"by @command{inetd} or a D-Bus service activated by @command{dbus-daemon}.  "
"Occasionally, a service does not map to a daemon.  For instance, the "
"``account'' service collects user accounts and makes sure they exist when "
"the system runs; the ``udev'' service collects device management rules and "
"makes them available to the eudev daemon; the @file{/etc} service populates "
"the @file{/etc} directory of the system."
msgstr ""

#. type: cindex
#: doc/guix.texi:31543
#, no-wrap
msgid "service extensions"
msgstr ""

#. type: Plain text
#: doc/guix.texi:31555
msgid ""
"Guix system services are connected by @dfn{extensions}.  For instance, the "
"secure shell service @emph{extends} the Shepherd---the initialization "
"system, running as PID@tie{}1---by giving it the command lines to start and "
"stop the secure shell daemon (@pxref{Networking Services, @code{openssh-"
"service-type}}); the UPower service extends the D-Bus service by passing it "
"its @file{.service} specification, and extends the udev service by passing "
"it device management rules (@pxref{Desktop Services, @code{upower-"
"service}}); the Guix daemon service extends the Shepherd by passing it the "
"command lines to start and stop the daemon, and extends the account service "
"by passing it a list of required build user accounts (@pxref{Base Services})."
msgstr ""

#. type: Plain text
#: doc/guix.texi:31559
msgid ""
"All in all, services and their ``extends'' relations form a directed acyclic "
"graph (DAG).  If we represent services as boxes and extensions as arrows, a "
"typical system might provide something like this:"
msgstr ""

#. type: Plain text
#: doc/guix.texi:31561
msgid "@image{images/service-graph,,5in,Typical service extension graph.}"
msgstr ""

#. type: cindex
#: doc/guix.texi:31562
#, no-wrap
msgid "system service"
msgstr ""

#. type: Plain text
#: doc/guix.texi:31570
msgid ""
"At the bottom, we see the @dfn{system service}, which produces the directory "
"containing everything to run and boot the system, as returned by the "
"@command{guix system build} command.  @xref{Service Reference}, to learn "
"about the other service types shown here.  @xref{system-extension-graph, the "
"@command{guix system extension-graph} command}, for information on how to "
"generate this representation for a particular operating system definition."
msgstr ""

#. type: cindex
#: doc/guix.texi:31571
#, no-wrap
msgid "service types"
msgstr ""

#. type: Plain text
#: doc/guix.texi:31577
msgid ""
"Technically, developers can define @dfn{service types} to express these "
"relations.  There can be any number of services of a given type on the "
"system---for instance, a system running two instances of the GNU secure "
"shell server (lsh) has two instances of @code{lsh-service-type}, with "
"different parameters."
msgstr ""

#. type: Plain text
#: doc/guix.texi:31580
msgid ""
"The following section describes the programming interface for service types "
"and services."
msgstr ""

#. type: Plain text
#: doc/guix.texi:31587
msgid ""
"A @dfn{service type} is a node in the DAG described above.  Let us start "
"with a simple example, the service type for the Guix build daemon "
"(@pxref{Invoking guix-daemon}):"
msgstr ""

#. type: lisp
#: doc/guix.texi:31597
#, no-wrap
msgid ""
"(define guix-service-type\n"
"  (service-type\n"
"   (name 'guix)\n"
"   (extensions\n"
"    (list (service-extension shepherd-root-service-type guix-shepherd-service)\n"
"          (service-extension account-service-type guix-accounts)\n"
"          (service-extension activation-service-type guix-activation)))\n"
"   (default-value (guix-configuration))))\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:31601
msgid "It defines three things:"
msgstr ""

#. type: enumerate
#: doc/guix.texi:31605
msgid "A name, whose sole purpose is to make inspection and debugging easier."
msgstr ""

#. type: enumerate
#: doc/guix.texi:31610
msgid ""
"A list of @dfn{service extensions}, where each extension designates the "
"target service type and a procedure that, given the parameters of the "
"service, returns a list of objects to extend the service of that type."
msgstr ""

#. type: enumerate
#: doc/guix.texi:31613
msgid ""
"Every service type has at least one service extension.  The only exception "
"is the @dfn{boot service type}, which is the ultimate service."
msgstr ""

#. type: enumerate
#: doc/guix.texi:31616
msgid "Optionally, a default value for instances of this type."
msgstr ""

#. type: Plain text
#: doc/guix.texi:31619
msgid "In this example, @code{guix-service-type} extends three services:"
msgstr ""

#. type: item
#: doc/guix.texi:31621
#, no-wrap
msgid "shepherd-root-service-type"
msgstr ""

#. type: table
#: doc/guix.texi:31626
msgid ""
"The @code{guix-shepherd-service} procedure defines how the Shepherd service "
"is extended.  Namely, it returns a @code{<shepherd-service>} object that "
"defines how @command{guix-daemon} is started and stopped (@pxref{Shepherd "
"Services})."
msgstr ""

#. type: item
#: doc/guix.texi:31627
#, no-wrap
msgid "account-service-type"
msgstr ""

#. type: table
#: doc/guix.texi:31632
msgid ""
"This extension for this service is computed by @code{guix-accounts}, which "
"returns a list of @code{user-group} and @code{user-account} objects "
"representing the build user accounts (@pxref{Invoking guix-daemon})."
msgstr ""

#. type: item
#: doc/guix.texi:31633
#, no-wrap
msgid "activation-service-type"
msgstr ""

#. type: table
#: doc/guix.texi:31637
msgid ""
"Here @code{guix-activation} is a procedure that returns a gexp, which is a "
"code snippet to run at ``activation time''---e.g., when the service is "
"booted."
msgstr ""

#. type: Plain text
#: doc/guix.texi:31640
msgid "A service of this type is instantiated like this:"
msgstr ""

#. type: lisp
#: doc/guix.texi:31646
#, no-wrap
msgid ""
"(service guix-service-type\n"
"         (guix-configuration\n"
"           (build-accounts 5)\n"
"           (extra-options '(\"--gc-keep-derivations\"))))\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:31654
msgid ""
"The second argument to the @code{service} form is a value representing the "
"parameters of this specific service instance.  @xref{guix-configuration-"
"type, @code{guix-configuration}}, for information about the @code{guix-"
"configuration} data type.  When the value is omitted, the default value "
"specified by @code{guix-service-type} is used:"
msgstr ""

#. type: lisp
#: doc/guix.texi:31657
#, no-wrap
msgid "(service guix-service-type)\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:31661
msgid ""
"@code{guix-service-type} is quite simple because it extends other services "
"but is not extensible itself."
msgstr ""

#. type: Plain text
#: doc/guix.texi:31665
msgid "The service type for an @emph{extensible} service looks like this:"
msgstr ""

#. type: lisp
#: doc/guix.texi:31672
#, no-wrap
msgid ""
"(define udev-service-type\n"
"  (service-type (name 'udev)\n"
"                (extensions\n"
"                 (list (service-extension shepherd-root-service-type\n"
"                                          udev-shepherd-service)))\n"
"\n"
msgstr ""

#. type: lisp
#: doc/guix.texi:31680
#, no-wrap
msgid ""
"                (compose concatenate)       ;concatenate the list of rules\n"
"                (extend (lambda (config rules)\n"
"                          (match config\n"
"                            (($ <udev-configuration> udev initial-rules)\n"
"                             (udev-configuration\n"
"                              (udev udev)   ;the udev package to use\n"
"                              (rules (append initial-rules rules)))))))))\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:31686
msgid ""
"This is the service type for the @uref{https://wiki.gentoo.org/wiki/Project:"
"Eudev, eudev device management daemon}.  Compared to the previous example, "
"in addition to an extension of @code{shepherd-root-service-type}, we see two "
"new fields:"
msgstr ""

#. type: item
#: doc/guix.texi:31688
#, no-wrap
msgid "compose"
msgstr ""

#. type: table
#: doc/guix.texi:31691
msgid ""
"This is the procedure to @dfn{compose} the list of extensions to services of "
"this type."
msgstr ""

#. type: table
#: doc/guix.texi:31694
msgid ""
"Services can extend the udev service by passing it lists of rules; we "
"compose those extensions simply by concatenating them."
msgstr ""

#. type: item
#: doc/guix.texi:31695
#, no-wrap
msgid "extend"
msgstr ""

#. type: table
#: doc/guix.texi:31698
msgid ""
"This procedure defines how the value of the service is @dfn{extended} with "
"the composition of the extensions."
msgstr ""

#. type: table
#: doc/guix.texi:31703
msgid ""
"Udev extensions are composed into a list of rules, but the udev service "
"value is itself a @code{<udev-configuration>} record.  So here, we extend "
"that record by appending the list of rules it contains to the list of "
"contributed rules."
msgstr ""

#. type: table
#: doc/guix.texi:31709
msgid ""
"This is a string giving an overview of the service type.  The string can "
"contain Texinfo markup (@pxref{Overview,,, texinfo, GNU Texinfo}).  The "
"@command{guix system search} command searches these strings and displays "
"them (@pxref{Invoking guix system})."
msgstr ""

#. type: Plain text
#: doc/guix.texi:31714
msgid ""
"There can be only one instance of an extensible service type such as "
"@code{udev-service-type}.  If there were more, the @code{service-extension} "
"specifications would be ambiguous."
msgstr ""

#. type: Plain text
#: doc/guix.texi:31717
msgid ""
"Still here? The next section provides a reference of the programming "
"interface for services."
msgstr ""

#. type: Plain text
#: doc/guix.texi:31725
msgid ""
"We have seen an overview of service types (@pxref{Service Types and "
"Services}).  This section provides a reference on how to manipulate services "
"and service types.  This interface is provided by the @code{(gnu services)} "
"module."
msgstr ""

#. type: deffn
#: doc/guix.texi:31726
#, no-wrap
msgid "{Scheme Procedure} service @var{type} [@var{value}]"
msgstr ""

#. type: deffn
#: doc/guix.texi:31730
msgid ""
"Return a new service of @var{type}, a @code{<service-type>} object (see "
"below).  @var{value} can be any object; it represents the parameters of this "
"particular service instance."
msgstr ""

#. type: deffn
#: doc/guix.texi:31734
msgid ""
"When @var{value} is omitted, the default value specified by @var{type} is "
"used; if @var{type} does not specify a default value, an error is raised."
msgstr ""

#. type: deffn
#: doc/guix.texi:31736
msgid "For instance, this:"
msgstr ""

#. type: lisp
#: doc/guix.texi:31739
#, no-wrap
msgid "(service openssh-service-type)\n"
msgstr ""

#. type: deffn
#: doc/guix.texi:31743
msgid "is equivalent to this:"
msgstr ""

#. type: lisp
#: doc/guix.texi:31747
#, no-wrap
msgid ""
"(service openssh-service-type\n"
"         (openssh-configuration))\n"
msgstr ""

#. type: deffn
#: doc/guix.texi:31751
msgid ""
"In both cases the result is an instance of @code{openssh-service-type} with "
"the default configuration."
msgstr ""

#. type: deffn
#: doc/guix.texi:31753
#, no-wrap
msgid "{Scheme Procedure} service? @var{obj}"
msgstr ""

#. type: deffn
#: doc/guix.texi:31755
msgid "Return true if @var{obj} is a service."
msgstr ""

#. type: deffn
#: doc/guix.texi:31757
#, no-wrap
msgid "{Scheme Procedure} service-kind @var{service}"
msgstr ""

#. type: deffn
#: doc/guix.texi:31759
msgid ""
"Return the type of @var{service}---i.e., a @code{<service-type>} object."
msgstr ""

#. type: deffn
#: doc/guix.texi:31761
#, no-wrap
msgid "{Scheme Procedure} service-value @var{service}"
msgstr ""

#. type: deffn
#: doc/guix.texi:31764
msgid ""
"Return the value associated with @var{service}.  It represents its "
"parameters."
msgstr ""

#. type: Plain text
#: doc/guix.texi:31767
msgid "Here is an example of how a service is created and manipulated:"
msgstr ""

#. type: lisp
#: doc/guix.texi:31776
#, no-wrap
msgid ""
"(define s\n"
"  (service nginx-service-type\n"
"           (nginx-configuration\n"
"            (nginx nginx)\n"
"            (log-directory log-directory)\n"
"            (run-directory run-directory)\n"
"            (file config-file))))\n"
"\n"
msgstr ""

#. type: lisp
#: doc/guix.texi:31779
#, no-wrap
msgid ""
"(service? s)\n"
"@result{} #t\n"
"\n"
msgstr ""

#. type: lisp
#: doc/guix.texi:31782
#, no-wrap
msgid ""
"(eq? (service-kind s) nginx-service-type)\n"
"@result{} #t\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:31792
msgid ""
"The @code{modify-services} form provides a handy way to change the "
"parameters of some of the services of a list such as @code{%base-services} "
"(@pxref{Base Services, @code{%base-services}}).  It evaluates to a list of "
"services.  Of course, you could always use standard list combinators such as "
"@code{map} and @code{fold} to do that (@pxref{SRFI-1, List Library,, guile, "
"GNU Guile Reference Manual}); @code{modify-services} simply provides a more "
"concise form for this common pattern."
msgstr ""

#. type: deffn
#: doc/guix.texi:31793
#, no-wrap
msgid "{Scheme Syntax} modify-services @var{services} @"
msgstr ""

#. type: deffn
#: doc/guix.texi:31795
msgid "(@var{type} @var{variable} => @var{body}) @dots{}"
msgstr ""

#. type: deffn
#: doc/guix.texi:31798
msgid ""
"Modify the services listed in @var{services} according to the given "
"clauses.  Each clause has the form:"
msgstr ""

#. type: example
#: doc/guix.texi:31801
#, no-wrap
msgid "(@var{type} @var{variable} => @var{body})\n"
msgstr ""

#. type: deffn
#: doc/guix.texi:31808
msgid ""
"where @var{type} is a service type---e.g., @code{guix-service-type}---and "
"@var{variable} is an identifier that is bound within the @var{body} to the "
"service parameters---e.g., a @code{guix-configuration} instance---of the "
"original service of that @var{type}."
msgstr ""

#. type: deffn
#: doc/guix.texi:31815
msgid ""
"The @var{body} should evaluate to the new service parameters, which will be "
"used to configure the new service.  This new service will replace the "
"original in the resulting list.  Because a service's service parameters are "
"created using @code{define-record-type*}, you can write a succinct "
"@var{body} that evaluates to the new service parameters by using the "
"@code{inherit} feature that @code{define-record-type*} provides."
msgstr ""

#. type: deffn
#: doc/guix.texi:31817
msgid "@xref{Using the Configuration System}, for example usage."
msgstr ""

#. type: Plain text
#: doc/guix.texi:31824
msgid ""
"Next comes the programming interface for service types.  This is something "
"you want to know when writing new service definitions, but not necessarily "
"when simply looking for ways to customize your @code{operating-system} "
"declaration."
msgstr ""

#. type: deftp
#: doc/guix.texi:31825
#, no-wrap
msgid "{Data Type} service-type"
msgstr ""

#. type: cindex
#: doc/guix.texi:31826
#, no-wrap
msgid "service type"
msgstr ""

#. type: deftp
#: doc/guix.texi:31829
msgid ""
"This is the representation of a @dfn{service type} (@pxref{Service Types and "
"Services})."
msgstr ""

#. type: table
#: doc/guix.texi:31833
msgid "This is a symbol, used only to simplify inspection and debugging."
msgstr ""

#. type: code{#1}
#: doc/guix.texi:31834
#, no-wrap
msgid "extensions"
msgstr ""

#. type: table
#: doc/guix.texi:31836
msgid "A non-empty list of @code{<service-extension>} objects (see below)."
msgstr ""

#. type: item
#: doc/guix.texi:31837
#, no-wrap
msgid "@code{compose} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:31841
msgid ""
"If this is @code{#f}, then the service type denotes services that cannot be "
"extended---i.e., services that do not receive ``values'' from other services."
msgstr ""

#. type: table
#: doc/guix.texi:31845
msgid ""
"Otherwise, it must be a one-argument procedure.  The procedure is called by "
"@code{fold-services} and is passed a list of values collected from "
"extensions.  It may return any single value."
msgstr ""

#. type: item
#: doc/guix.texi:31846
#, no-wrap
msgid "@code{extend} (default: @code{#f})"
msgstr ""

#. type: table
#: doc/guix.texi:31848
msgid "If this is @code{#f}, services of this type cannot be extended."
msgstr ""

#. type: table
#: doc/guix.texi:31854
msgid ""
"Otherwise, it must be a two-argument procedure: @code{fold-services} calls "
"it, passing it the initial value of the service as the first argument and "
"the result of applying @code{compose} to the extension values as the second "
"argument.  It must return a value that is a valid parameter value for the "
"service instance."
msgstr ""

#. type: table
#: doc/guix.texi:31860
msgid ""
"This is a string, possibly using Texinfo markup, describing in a couple of "
"sentences what the service is about.  This string allows users to find about "
"the service through @command{guix system search} (@pxref{Invoking guix "
"system})."
msgstr ""

#. type: item
#: doc/guix.texi:31861
#, no-wrap
msgid "@code{default-value} (default: @code{&no-default-value})"
msgstr ""

#. type: table
#: doc/guix.texi:31864
msgid ""
"The default value associated for instances of this service type.  This "
"allows users to use the @code{service} form without its second argument:"
msgstr ""

#. type: lisp
#: doc/guix.texi:31867
#, no-wrap
msgid "(service @var{type})\n"
msgstr ""

#. type: table
#: doc/guix.texi:31871
msgid ""
"The returned service in this case has the default value specified by "
"@var{type}."
msgstr ""

#. type: deftp
#: doc/guix.texi:31874
msgid "@xref{Service Types and Services}, for examples."
msgstr ""

#. type: deffn
#: doc/guix.texi:31876
#, no-wrap
msgid "{Scheme Procedure} service-extension @var{target-type} @"
msgstr ""

#. type: deffn
#: doc/guix.texi:31882
msgid ""
"@var{compute} Return a new extension for services of type @var{target-"
"type}.  @var{compute} must be a one-argument procedure: @code{fold-services} "
"calls it, passing it the value associated with the service that provides the "
"extension; it must return a valid value for the target service."
msgstr ""

#. type: deffn
#: doc/guix.texi:31884
#, no-wrap
msgid "{Scheme Procedure} service-extension? @var{obj}"
msgstr ""

#. type: deffn
#: doc/guix.texi:31886
msgid "Return true if @var{obj} is a service extension."
msgstr ""

#. type: Plain text
#: doc/guix.texi:31892
msgid ""
"Occasionally, you might want to simply extend an existing service.  This "
"involves creating a new service type and specifying the extension of "
"interest, which can be verbose; the @code{simple-service} procedure provides "
"a shorthand for this."
msgstr ""

#. type: deffn
#: doc/guix.texi:31893
#, no-wrap
msgid "{Scheme Procedure} simple-service @var{name} @var{target} @var{value}"
msgstr ""

#. type: deffn
#: doc/guix.texi:31897
msgid ""
"Return a service that extends @var{target} with @var{value}.  This works by "
"creating a singleton service type @var{name}, of which the returned service "
"is an instance."
msgstr ""

#. type: deffn
#: doc/guix.texi:31900
msgid ""
"For example, this extends mcron (@pxref{Scheduled Job Execution}) with an "
"additional job:"
msgstr ""

#. type: lisp
#: doc/guix.texi:31904
#, no-wrap
msgid ""
"(simple-service 'my-mcron-job mcron-service-type\n"
"                #~(job '(next-hour (3)) \"guix gc -F 2G\"))\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:31914
msgid ""
"At the core of the service abstraction lies the @code{fold-services} "
"procedure, which is responsible for ``compiling'' a list of services down to "
"a single directory that contains everything needed to boot and run the "
"system---the directory shown by the @command{guix system build} command "
"(@pxref{Invoking guix system}).  In essence, it propagates service "
"extensions down the service graph, updating each node parameters on the way, "
"until it reaches the root node."
msgstr ""

#. type: deffn
#: doc/guix.texi:31915
#, no-wrap
msgid "{Scheme Procedure} fold-services @var{services} @"
msgstr ""

#. type: deffn
#: doc/guix.texi:31919
msgid ""
"[#:target-type @var{system-service-type}] Fold @var{services} by propagating "
"their extensions down to the root of type @var{target-type}; return the root "
"service adjusted accordingly."
msgstr ""

#. type: Plain text
#: doc/guix.texi:31923
msgid ""
"Lastly, the @code{(gnu services)} module also defines several essential "
"service types, some of which are listed below."
msgstr ""

#. type: defvr
#: doc/guix.texi:31924
#, no-wrap
msgid "{Scheme Variable} system-service-type"
msgstr ""

#. type: defvr
#: doc/guix.texi:31927
msgid ""
"This is the root of the service graph.  It produces the system directory as "
"returned by the @command{guix system build} command."
msgstr ""

#. type: defvr
#: doc/guix.texi:31929
#, no-wrap
msgid "{Scheme Variable} boot-service-type"
msgstr ""

#. type: defvr
#: doc/guix.texi:31932
msgid ""
"The type of the ``boot service'', which produces the @dfn{boot script}.  The "
"boot script is what the initial RAM disk runs when booting."
msgstr ""

#. type: defvr
#: doc/guix.texi:31934
#, no-wrap
msgid "{Scheme Variable} etc-service-type"
msgstr ""

#. type: defvr
#: doc/guix.texi:31938
msgid ""
"The type of the @file{/etc} service.  This service is used to create files "
"under @file{/etc} and can be extended by passing it name/file tuples such as:"
msgstr ""

#. type: lisp
#: doc/guix.texi:31941
#, no-wrap
msgid "(list `(\"issue\" ,(plain-file \"issue\" \"Welcome!\\n\")))\n"
msgstr ""

#. type: defvr
#: doc/guix.texi:31945
msgid ""
"In this example, the effect would be to add an @file{/etc/issue} file "
"pointing to the given file."
msgstr ""

#. type: defvr
#: doc/guix.texi:31947
#, no-wrap
msgid "{Scheme Variable} setuid-program-service-type"
msgstr ""

#. type: defvr
#: doc/guix.texi:31951
msgid ""
"Type for the ``setuid-program service''.  This service collects lists of "
"executable file names, passed as gexps, and adds them to the set of setuid-"
"root programs on the system (@pxref{Setuid Programs})."
msgstr ""

#. type: defvr
#: doc/guix.texi:31953
#, no-wrap
msgid "{Scheme Variable} profile-service-type"
msgstr ""

#. type: defvr
#: doc/guix.texi:31957
msgid ""
"Type of the service that populates the @dfn{system profile}---i.e., the "
"programs under @file{/run/current-system/profile}.  Other services can "
"extend it by passing it lists of packages to add to the system profile."
msgstr ""

#. type: anchor{#1}
#: doc/guix.texi:31961
msgid "provenance-service-type"
msgstr ""

#. type: defvr
#: doc/guix.texi:31961
#, no-wrap
msgid "{Scheme Variable} provenance-service-type"
msgstr ""

#. type: defvr
#: doc/guix.texi:31965
msgid ""
"This is the type of the service that records @dfn{provenance meta-data} in "
"the system itself.  It creates several files under @file{/run/current-"
"system}:"
msgstr ""

#. type: item
#: doc/guix.texi:31967
#, no-wrap
msgid "channels.scm"
msgstr ""

#. type: table
#: doc/guix.texi:31972
msgid ""
"This is a ``channel file'' that can be passed to @command{guix pull -C} or "
"@command{guix time-machine -C}, and which describes the channels used to "
"build the system, if that information was available (@pxref{Channels})."
msgstr ""

#. type: item
#: doc/guix.texi:31973
#, no-wrap
msgid "configuration.scm"
msgstr ""

#. type: table
#: doc/guix.texi:31978
msgid ""
"This is the file that was passed as the value for this @code{provenance-"
"service-type} service.  By default, @command{guix system reconfigure} "
"automatically passes the OS configuration file it received on the command "
"line."
msgstr ""

#. type: item
#: doc/guix.texi:31979
#, no-wrap
msgid "provenance"
msgstr ""

#. type: table
#: doc/guix.texi:31982
msgid ""
"This contains the same information as the two other files but in a format "
"that is more readily processable."
msgstr ""

#. type: defvr
#: doc/guix.texi:31986
msgid ""
"In general, these two pieces of information (channels and configuration "
"file) are enough to reproduce the operating system ``from source''."
msgstr ""

#. type: quotation
#: doc/guix.texi:31987
#, no-wrap
msgid "Caveats"
msgstr ""

#. type: quotation
#: doc/guix.texi:31994
msgid ""
"This information is necessary to rebuild your operating system, but it is "
"not always sufficient.  In particular, @file{configuration.scm} itself is "
"insufficient if it is not self-contained---if it refers to external Guile "
"modules or to extra files.  If you want @file{configuration.scm} to be self-"
"contained, we recommend that modules or files it refers to be part of a "
"channel."
msgstr ""

#. type: quotation
#: doc/guix.texi:32002
msgid ""
"Besides, provenance meta-data is ``silent'' in the sense that it does not "
"change the bits contained in your system, @emph{except for the meta-data "
"bits themselves}.  Two different OS configurations or sets of channels can "
"lead to the same system, bit-for-bit; when @code{provenance-service-type} is "
"used, these two systems will have different meta-data and thus different "
"store file names, which makes comparison less trivial."
msgstr ""

#. type: defvr
#: doc/guix.texi:32007
msgid ""
"This service is automatically added to your operating system configuration "
"when you use @command{guix system reconfigure}, @command{guix system init}, "
"or @command{guix deploy}."
msgstr ""

#. type: cindex
#: doc/guix.texi:32012
#, no-wrap
msgid "shepherd services"
msgstr ""

#. type: cindex
#: doc/guix.texi:32013
#, no-wrap
msgid "PID 1"
msgstr ""

#. type: cindex
#: doc/guix.texi:32014
#, no-wrap
msgid "init system"
msgstr ""

#. type: Plain text
#: doc/guix.texi:32020
msgid ""
"The @code{(gnu services shepherd)} module provides a way to define services "
"managed by the GNU@tie{}Shepherd, which is the initialization system---the "
"first process that is started when the system boots, also known as PID@tie{}"
"1 (@pxref{Introduction,,, shepherd, The GNU Shepherd Manual})."
msgstr ""

#. type: Plain text
#: doc/guix.texi:32026
msgid ""
"Services in the Shepherd can depend on each other.  For instance, the SSH "
"daemon may need to be started after the syslog daemon has been started, "
"which in turn can only happen once all the file systems have been mounted.  "
"The simple operating system defined earlier (@pxref{Using the Configuration "
"System}) results in a service graph like this:"
msgstr ""

#. type: Plain text
#: doc/guix.texi:32028
msgid "@image{images/shepherd-graph,,5in,Typical shepherd service graph.}"
msgstr ""

#. type: Plain text
#: doc/guix.texi:32032
msgid ""
"You can actually generate such a graph for any operating system definition "
"using the @command{guix system shepherd-graph} command (@pxref{system-"
"shepherd-graph, @command{guix system shepherd-graph}})."
msgstr ""

#. type: Plain text
#: doc/guix.texi:32036
msgid ""
"The @code{%shepherd-root-service} is a service object representing PID@tie{}"
"1, of type @code{shepherd-root-service-type}; it can be extended by passing "
"it lists of @code{<shepherd-service>} objects."
msgstr ""

#. type: deftp
#: doc/guix.texi:32037
#, no-wrap
msgid "{Data Type} shepherd-service"
msgstr ""

#. type: deftp
#: doc/guix.texi:32039
msgid "The data type representing a service managed by the Shepherd."
msgstr ""

#. type: code{#1}
#: doc/guix.texi:32041
#, no-wrap
msgid "provision"
msgstr ""

#. type: table
#: doc/guix.texi:32043
msgid "This is a list of symbols denoting what the service provides."
msgstr ""

#. type: table
#: doc/guix.texi:32048
msgid ""
"These are the names that may be passed to @command{herd start}, "
"@command{herd status}, and similar commands (@pxref{Invoking herd,,, "
"shepherd, The GNU Shepherd Manual}).  @xref{Slots of services, the "
"@code{provides} slot,, shepherd, The GNU Shepherd Manual}, for details."
msgstr ""

#. type: item
#: doc/guix.texi:32049
#, no-wrap
msgid "@code{requirement} (default: @code{'()})"
msgstr ""

#. type: table
#: doc/guix.texi:32051
msgid "List of symbols denoting the Shepherd services this one depends on."
msgstr ""

#. type: cindex
#: doc/guix.texi:32052
#, no-wrap
msgid "one-shot services, for the Shepherd"
msgstr ""

#. type: table
#: doc/guix.texi:32057
msgid ""
"Whether this service is @dfn{one-shot}.  One-shot services stop immediately "
"after their @code{start} action has completed.  @xref{Slots of services,,, "
"shepherd, The GNU Shepherd Manual}, for more info."
msgstr ""

#. type: item
#: doc/guix.texi:32058
#, no-wrap
msgid "@code{respawn?} (default: @code{#t})"
msgstr ""

#. type: table
#: doc/guix.texi:32061
msgid ""
"Whether to restart the service when it stops, for instance when the "
"underlying process dies."
msgstr ""

#. type: code{#1}
#: doc/guix.texi:32062
#, no-wrap
msgid "start"
msgstr ""

#. type: itemx
#: doc/guix.texi:32063
#, no-wrap
msgid "@code{stop} (default: @code{#~(const #f)})"
msgstr ""

#. type: table
#: doc/guix.texi:32069
msgid ""
"The @code{start} and @code{stop} fields refer to the Shepherd's facilities "
"to start and stop processes (@pxref{Service De- and Constructors,,, "
"shepherd, The GNU Shepherd Manual}).  They are given as G-expressions that "
"get expanded in the Shepherd configuration file (@pxref{G-Expressions})."
msgstr ""

#. type: item
#: doc/guix.texi:32070
#, no-wrap
msgid "@code{actions} (default: @code{'()})"
msgstr ""

#. type: cindex
#: doc/guix.texi:32071
#, no-wrap
msgid "actions, of Shepherd services"
msgstr ""

#. type: table
#: doc/guix.texi:32076
msgid ""
"This is a list of @code{shepherd-action} objects (see below) defining "
"@dfn{actions} supported by the service, in addition to the standard "
"@code{start} and @code{stop} actions.  Actions listed here become available "
"as @command{herd} sub-commands:"
msgstr ""

#. type: example
#: doc/guix.texi:32079
#, no-wrap
msgid "herd @var{action} @var{service} [@var{arguments}@dots{}]\n"
msgstr ""

#. type: item
#: doc/guix.texi:32081
#, no-wrap
msgid "@code{auto-start?} (default: @code{#t})"
msgstr ""

#. type: table
#: doc/guix.texi:32084
msgid ""
"Whether this service should be started automatically by the Shepherd.  If it "
"is @code{#f} the service has to be started manually with @code{herd start}."
msgstr ""

#. type: table
#: doc/guix.texi:32087
msgid "A documentation string, as shown when running:"
msgstr ""

#. type: example
#: doc/guix.texi:32090
#, no-wrap
msgid "herd doc @var{service-name}\n"
msgstr ""

#. type: table
#: doc/guix.texi:32094
msgid ""
"where @var{service-name} is one of the symbols in @code{provision} "
"(@pxref{Invoking herd,,, shepherd, The GNU Shepherd Manual})."
msgstr ""

#. type: item
#: doc/guix.texi:32095
#, no-wrap
msgid "@code{modules} (default: @code{%default-modules})"
msgstr ""

#. type: table
#: doc/guix.texi:32098
msgid ""
"This is the list of modules that must be in scope when @code{start} and "
"@code{stop} are evaluated."
msgstr ""

#. type: deftp
#: doc/guix.texi:32102
#, no-wrap
msgid "{Data Type} shepherd-action"
msgstr ""

#. type: deftp
#: doc/guix.texi:32105
msgid ""
"This is the data type that defines additional actions implemented by a "
"Shepherd service (see above)."
msgstr ""

#. type: table
#: doc/guix.texi:32109
msgid "Symbol naming the action."
msgstr ""

#. type: table
#: doc/guix.texi:32112
msgid ""
"This is a documentation string for the action.  It can be viewed by running:"
msgstr ""

#. type: example
#: doc/guix.texi:32115
#, no-wrap
msgid "herd doc @var{service} action @var{action}\n"
msgstr ""

#. type: item
#: doc/guix.texi:32117
#, no-wrap
msgid "procedure"
msgstr ""

#. type: table
#: doc/guix.texi:32121
msgid ""
"This should be a gexp that evaluates to a procedure of at least one "
"argument, which is the ``running value'' of the service (@pxref{Slots of "
"services,,, shepherd, The GNU Shepherd Manual})."
msgstr ""

#. type: deftp
#: doc/guix.texi:32125
msgid ""
"The following example defines an action called @code{say-hello} that kindly "
"greets the user:"
msgstr ""

#. type: lisp
#: doc/guix.texi:32134
#, no-wrap
msgid ""
"(shepherd-action\n"
"  (name 'say-hello)\n"
"  (documentation \"Say hi!\")\n"
"  (procedure #~(lambda (running . args)\n"
"                 (format #t \"Hello, friend! arguments: ~s\\n\"\n"
"                         args)\n"
"                 #t)))\n"
msgstr ""

#. type: deftp
#: doc/guix.texi:32137
msgid ""
"Assuming this action is added to the @code{example} service, then you can do:"
msgstr ""

#. type: example
#: doc/guix.texi:32143
#, no-wrap
msgid ""
"# herd say-hello example\n"
"Hello, friend! arguments: ()\n"
"# herd say-hello example a b c\n"
"Hello, friend! arguments: (\"a\" \"b\" \"c\")\n"
msgstr ""

#. type: deftp
#: doc/guix.texi:32148
msgid ""
"This, as you can see, is a fairly sophisticated way to say hello.  "
"@xref{Service Convenience,,, shepherd, The GNU Shepherd Manual}, for more "
"info on actions."
msgstr ""

#. type: defvr
#: doc/guix.texi:32150
#, no-wrap
msgid "{Scheme Variable} shepherd-root-service-type"
msgstr ""

#. type: defvr
#: doc/guix.texi:32152
msgid "The service type for the Shepherd ``root service''---i.e., PID@tie{}1."
msgstr ""

#. type: defvr
#: doc/guix.texi:32156
msgid ""
"This is the service type that extensions target when they want to create "
"shepherd services (@pxref{Service Types and Services}, for an example).  "
"Each extension must pass a list of @code{<shepherd-service>}."
msgstr ""

#. type: defvr
#: doc/guix.texi:32158
#, no-wrap
msgid "{Scheme Variable} %shepherd-root-service"
msgstr ""

#. type: defvr
#: doc/guix.texi:32160
msgid "This service represents PID@tie{}1."
msgstr ""

#. type: cindex
#: doc/guix.texi:32166
#, no-wrap
msgid "documentation, searching for"
msgstr ""

#. type: cindex
#: doc/guix.texi:32167
#, no-wrap
msgid "searching for documentation"
msgstr ""

#. type: cindex
#: doc/guix.texi:32168
#, no-wrap
msgid "Info, documentation format"
msgstr ""

#. type: cindex
#: doc/guix.texi:32169
#, no-wrap
msgid "man pages"
msgstr ""

#. type: cindex
#: doc/guix.texi:32170
#, no-wrap
msgid "manual pages"
msgstr ""

#. type: Plain text
#: doc/guix.texi:32177
msgid ""
"In most cases packages installed with Guix come with documentation.  There "
"are two main documentation formats: ``Info'', a browseable hypertext format "
"used for GNU software, and ``manual pages'' (or ``man pages''), the linear "
"documentation format traditionally found on Unix.  Info manuals are accessed "
"with the @command{info} command or with Emacs, and man pages are accessed "
"using @command{man}."
msgstr ""

#. type: Plain text
#: doc/guix.texi:32181
msgid ""
"You can look for documentation of software installed on your system by "
"keyword.  For example, the following command searches for information about "
"``TLS'' in Info manuals:"
msgstr ""

#. type: example
#: doc/guix.texi:32189
#, no-wrap
msgid ""
"$ info -k TLS\n"
"\"(emacs)Network Security\" -- STARTTLS\n"
"\"(emacs)Network Security\" -- TLS\n"
"\"(gnutls)Core TLS API\" -- gnutls_certificate_set_verify_flags\n"
"\"(gnutls)Core TLS API\" -- gnutls_certificate_set_verify_function\n"
"@dots{}\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:32193
msgid "The command below searches for the same keyword in man pages:"
msgstr ""

#. type: example
#: doc/guix.texi:32199
#, no-wrap
msgid ""
"$ man -k TLS\n"
"SSL (7)              - OpenSSL SSL/TLS library\n"
"certtool (1)         - GnuTLS certificate tool\n"
"@dots {}\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:32205
msgid ""
"These searches are purely local to your computer so you have the guarantee "
"that documentation you find corresponds to what you have actually installed, "
"you can access it off-line, and your privacy is respected."
msgstr ""

#. type: Plain text
#: doc/guix.texi:32208
msgid ""
"Once you have these results, you can view the relevant documentation by "
"running, say:"
msgstr ""

#. type: example
#: doc/guix.texi:32211
#, no-wrap
msgid "$ info \"(gnutls)Core TLS API\"\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:32215
msgid "or:"
msgstr ""

#. type: example
#: doc/guix.texi:32218
#, no-wrap
msgid "$ man certtool\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:32226
msgid ""
"Info manuals contain sections and indices as well as hyperlinks like those "
"found in Web pages.  The @command{info} reader (@pxref{Top, Info reader,, "
"info-stnd, Stand-alone GNU Info}) and its Emacs counterpart (@pxref{Misc "
"Help,,, emacs, The GNU Emacs Manual}) provide intuitive key bindings to "
"navigate manuals.  @xref{Getting Started,,, info, Info: An Introduction}, "
"for an introduction to Info navigation."
msgstr ""

#. type: cindex
#: doc/guix.texi:32230
#, no-wrap
msgid "debugging files"
msgstr ""

#. type: Plain text
#: doc/guix.texi:32236
msgid ""
"Program binaries, as produced by the GCC compilers for instance, are "
"typically written in the ELF format, with a section containing "
"@dfn{debugging information}.  Debugging information is what allows the "
"debugger, GDB, to map binary code to source code; it is required to debug a "
"compiled program in good conditions."
msgstr ""

#. type: Plain text
#: doc/guix.texi:32240
msgid ""
"This chapter explains how to use separate debug info when packages provide "
"it, and how to rebuild packages with debug info when it's missing."
msgstr ""

#. type: Plain text
#: doc/guix.texi:32256
msgid ""
"The problem with debugging information is that is takes up a fair amount of "
"disk space.  For example, debugging information for the GNU C Library weighs "
"in at more than 60 MiB.  Thus, as a user, keeping all the debugging info of "
"all the installed programs is usually not an option.  Yet, space savings "
"should not come at the cost of an impediment to debugging---especially in "
"the GNU system, which should make it easier for users to exert their "
"computing freedom (@pxref{GNU Distribution})."
msgstr ""

#. type: Plain text
#: doc/guix.texi:32263
msgid ""
"Thankfully, the GNU Binary Utilities (Binutils) and GDB provide a mechanism "
"that allows users to get the best of both worlds: debugging information can "
"be stripped from the binaries and stored in separate files.  GDB is then "
"able to load debugging information from those files, when they are available "
"(@pxref{Separate Debug Files,,, gdb, Debugging with GDB})."
msgstr ""

#. type: Plain text
#: doc/guix.texi:32271
msgid ""
"The GNU distribution takes advantage of this by storing debugging "
"information in the @code{lib/debug} sub-directory of a separate package "
"output unimaginatively called @code{debug} (@pxref{Packages with Multiple "
"Outputs}).  Users can choose to install the @code{debug} output of a package "
"when they need it.  For instance, the following command installs the "
"debugging information for the GNU C Library and for GNU Guile:"
msgstr ""

#. type: example
#: doc/guix.texi:32274
#, no-wrap
msgid "guix install glibc:debug guile:debug\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:32280
msgid ""
"GDB must then be told to look for debug files in the user's profile, by "
"setting the @code{debug-file-directory} variable (consider setting it from "
"the @file{~/.gdbinit} file, @pxref{Startup,,, gdb, Debugging with GDB}):"
msgstr ""

#. type: example
#: doc/guix.texi:32283
#, no-wrap
msgid "(gdb) set debug-file-directory ~/.guix-profile/lib/debug\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:32287
msgid ""
"From there on, GDB will pick up debugging information from the @file{.debug} "
"files under @file{~/.guix-profile/lib/debug}."
msgstr ""

#. type: Plain text
#: doc/guix.texi:32294
msgid ""
"In addition, you will most likely want GDB to be able to show the source "
"code being debugged.  To do that, you will have to unpack the source code of "
"the package of interest (obtained with @code{guix build --source}, "
"@pxref{Invoking guix build}), and to point GDB to that source directory "
"using the @code{directory} command (@pxref{Source Path, @code{directory},, "
"gdb, Debugging with GDB})."
msgstr ""

#. type: Plain text
#: doc/guix.texi:32302
msgid ""
"The @code{debug} output mechanism in Guix is implemented by the @code{gnu-"
"build-system} (@pxref{Build Systems}).  Currently, it is opt-in---debugging "
"information is available only for the packages with definitions explicitly "
"declaring a @code{debug} output.  To check whether a package has a "
"@code{debug} output, use @command{guix package --list-available} "
"(@pxref{Invoking guix package})."
msgstr ""

#. type: Plain text
#: doc/guix.texi:32304
msgid "Read on for how to deal with packages lacking a @code{debug} output."
msgstr ""

#. type: Plain text
#: doc/guix.texi:32316
msgid ""
"As we saw above, some packages, but not all, provide debugging info in a "
"@code{debug} output.  What can you do when debugging info is missing? The "
"@option{--with-debug-info} option provides a solution to that: it allows you "
"to rebuild the package(s) for which debugging info is missing---and only "
"those---and to graft those onto the application you're debugging.  Thus, "
"while it's not as fast as installing a @code{debug} output, it is relatively "
"inexpensive."
msgstr ""

#. type: Plain text
#: doc/guix.texi:32321
msgid ""
"Let's illustrate that.  Suppose you're experiencing a bug in Inkscape and "
"would like to see what's going on in GLib, a library that's deep down in its "
"dependency graph.  As it turns out, GLib does not have a @code{debug} output "
"and the backtrace GDB shows is all sadness:"
msgstr ""

#. type: example
#: doc/guix.texi:32332
#, no-wrap
msgid ""
"(gdb) bt\n"
"#0  0x00007ffff5f92190 in g_getenv ()\n"
"   from /gnu/store/@dots{}-glib-2.62.6/lib/libglib-2.0.so.0\n"
"#1  0x00007ffff608a7d6 in gobject_init_ctor ()\n"
"   from /gnu/store/@dots{}-glib-2.62.6/lib/libgobject-2.0.so.0\n"
"#2  0x00007ffff7fe275a in call_init (l=<optimized out>, argc=argc@@entry=1, argv=argv@@entry=0x7fffffffcfd8, \n"
"    env=env@@entry=0x7fffffffcfe8) at dl-init.c:72\n"
"#3  0x00007ffff7fe2866 in call_init (env=0x7fffffffcfe8, argv=0x7fffffffcfd8, argc=1, l=<optimized out>)\n"
"    at dl-init.c:118\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:32336
msgid ""
"To address that, you install Inkscape linked against a variant GLib that "
"contains debug info:"
msgstr ""

#. type: Plain text
#: doc/guix.texi:32342
msgid "This time, debugging will be a whole lot nicer:"
msgstr ""

#. type: example
#: doc/guix.texi:32360
#, no-wrap
msgid ""
"$ gdb --args sh -c 'exec inkscape'\n"
"@dots{}\n"
"(gdb) b g_getenv\n"
"Function \"g_getenv\" not defined.\n"
"Make breakpoint pending on future shared library load? (y or [n]) y\n"
"Breakpoint 1 (g_getenv) pending.\n"
"(gdb) r\n"
"Starting program: /gnu/store/@dots{}-profile/bin/sh -c exec\\ inkscape\n"
"@dots{}\n"
"(gdb) bt\n"
"#0  g_getenv (variable=variable@@entry=0x7ffff60c7a2e \"GOBJECT_DEBUG\") at ../glib-2.62.6/glib/genviron.c:252\n"
"#1  0x00007ffff608a7d6 in gobject_init () at ../glib-2.62.6/gobject/gtype.c:4380\n"
"#2  gobject_init_ctor () at ../glib-2.62.6/gobject/gtype.c:4493\n"
"#3  0x00007ffff7fe275a in call_init (l=<optimized out>, argc=argc@@entry=3, argv=argv@@entry=0x7fffffffd088, \n"
"    env=env@@entry=0x7fffffffd0a8) at dl-init.c:72\n"
"@dots{}\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:32363
msgid "Much better!"
msgstr ""

#. type: Plain text
#: doc/guix.texi:32367
msgid ""
"Note that there can be packages for which @option{--with-debug-info} will "
"not have the desired effect.  @xref{Package Transformation Options, "
"@option{--with-debug-info}}, for more information."
msgstr ""

#. type: cindex
#: doc/guix.texi:32371
#, no-wrap
msgid "security updates"
msgstr ""

#. type: Plain text
#: doc/guix.texi:32380
msgid ""
"Occasionally, important security vulnerabilities are discovered in software "
"packages and must be patched.  Guix developers try hard to keep track of "
"known vulnerabilities and to apply fixes as soon as possible in the "
"@code{master} branch of Guix (we do not yet provide a ``stable'' branch "
"containing only security updates).  The @command{guix lint} tool helps "
"developers find out about vulnerable versions of software packages in the "
"distribution:"
msgstr ""

#. type: smallexample
#: doc/guix.texi:32387
#, no-wrap
msgid ""
"$ guix lint -c cve\n"
"gnu/packages/base.scm:652:2: glibc@@2.21: probably vulnerable to CVE-2015-1781, CVE-2015-7547\n"
"gnu/packages/gcc.scm:334:2: gcc@@4.9.3: probably vulnerable to CVE-2015-5276\n"
"gnu/packages/image.scm:312:2: openjpeg@@2.1.0: probably vulnerable to CVE-2016-1923, CVE-2016-1924\n"
"@dots{}\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:32390
msgid "@xref{Invoking guix lint}, for more information."
msgstr ""

#. type: Plain text
#: doc/guix.texi:32399
msgid ""
"Guix follows a functional package management discipline "
"(@pxref{Introduction}), which implies that, when a package is changed, "
"@emph{every package that depends on it} must be rebuilt.  This can "
"significantly slow down the deployment of fixes in core packages such as "
"libc or Bash, since basically the whole distribution would need to be "
"rebuilt.  Using pre-built binaries helps (@pxref{Substitutes}), but "
"deployment may still take more time than desired."
msgstr ""

#. type: cindex
#: doc/guix.texi:32400
#, no-wrap
msgid "grafts"
msgstr ""

#. type: Plain text
#: doc/guix.texi:32408
msgid ""
"To address this, Guix implements @dfn{grafts}, a mechanism that allows for "
"fast deployment of critical updates without the costs associated with a "
"whole-distribution rebuild.  The idea is to rebuild only the package that "
"needs to be patched, and then to ``graft'' it onto packages explicitly "
"installed by the user and that were previously referring to the original "
"package.  The cost of grafting is typically very low, and order of "
"magnitudes lower than a full rebuild of the dependency chain."
msgstr ""

#. type: cindex
#: doc/guix.texi:32409
#, no-wrap
msgid "replacements of packages, for grafts"
msgstr ""

#. type: Plain text
#: doc/guix.texi:32415
msgid ""
"For instance, suppose a security update needs to be applied to Bash.  Guix "
"developers will provide a package definition for the ``fixed'' Bash, say "
"@code{bash-fixed}, in the usual way (@pxref{Defining Packages}).  Then, the "
"original package definition is augmented with a @code{replacement} field "
"pointing to the package containing the bug fix:"
msgstr ""

#. type: lisp
#: doc/guix.texi:32422
#, no-wrap
msgid ""
"(define bash\n"
"  (package\n"
"    (name \"bash\")\n"
"    ;; @dots{}\n"
"    (replacement bash-fixed)))\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:32432
msgid ""
"From there on, any package depending directly or indirectly on Bash---as "
"reported by @command{guix gc --requisites} (@pxref{Invoking guix gc})---that "
"is installed is automatically ``rewritten'' to refer to @code{bash-fixed} "
"instead of @code{bash}.  This grafting process takes time proportional to "
"the size of the package, usually less than a minute for an ``average'' "
"package on a recent machine.  Grafting is recursive: when an indirect "
"dependency requires grafting, then grafting ``propagates'' up to the package "
"that the user is installing."
msgstr ""

#. type: Plain text
#: doc/guix.texi:32440
msgid ""
"Currently, the length of the name and version of the graft and that of the "
"package it replaces (@code{bash-fixed} and @code{bash} in the example above) "
"must be equal.  This restriction mostly comes from the fact that grafting "
"works by patching files, including binary files, directly.  Other "
"restrictions may apply: for instance, when adding a graft to a package "
"providing a shared library, the original shared library and its replacement "
"must have the same @code{SONAME} and be binary-compatible."
msgstr ""

#. type: Plain text
#: doc/guix.texi:32444
msgid ""
"The @option{--no-grafts} command-line option allows you to forcefully avoid "
"grafting (@pxref{Common Build Options, @option{--no-grafts}}).  Thus, the "
"command:"
msgstr ""

#. type: example
#: doc/guix.texi:32447
#, no-wrap
msgid "guix build bash --no-grafts\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:32451
msgid "returns the store file name of the original Bash, whereas:"
msgstr ""

#. type: example
#: doc/guix.texi:32454
#, no-wrap
msgid "guix build bash\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:32459
msgid ""
"returns the store file name of the ``fixed'', replacement Bash.  This allows "
"you to distinguish between the two variants of Bash."
msgstr ""

#. type: Plain text
#: doc/guix.texi:32462
msgid ""
"To verify which Bash your whole profile refers to, you can run "
"(@pxref{Invoking guix gc}):"
msgstr ""

#. type: example
#: doc/guix.texi:32465
#, no-wrap
msgid "guix gc -R `readlink -f ~/.guix-profile` | grep bash\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:32470
msgid ""
"@dots{} and compare the store file names that you get with those above.  "
"Likewise for a complete Guix system generation:"
msgstr ""

#. type: example
#: doc/guix.texi:32473
#, no-wrap
msgid "guix gc -R `guix system build my-config.scm` | grep bash\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:32477
msgid ""
"Lastly, to check which Bash running processes are using, you can use the "
"@command{lsof} command:"
msgstr ""

#. type: example
#: doc/guix.texi:32480
#, no-wrap
msgid "lsof | grep /gnu/store/.*bash\n"
msgstr ""

#. type: cindex
#: doc/guix.texi:32488
#, no-wrap
msgid "bootstrapping"
msgstr ""

#. type: Plain text
#: doc/guix.texi:32498
msgid ""
"Bootstrapping in our context refers to how the distribution gets built "
"``from nothing''.  Remember that the build environment of a derivation "
"contains nothing but its declared inputs (@pxref{Introduction}).  So there's "
"an obvious chicken-and-egg problem: how does the first package get built? "
"How does the first compiler get compiled? Note that this is a question of "
"interest only to the curious hacker, not to the regular user, so you can "
"shamelessly skip this section if you consider yourself a ``regular user''."
msgstr ""

#. type: cindex
#: doc/guix.texi:32499 doc/guix.texi:32711
#, no-wrap
msgid "bootstrap binaries"
msgstr ""

#. type: Plain text
#: doc/guix.texi:32509
msgid ""
"The GNU system is primarily made of C code, with libc at its core.  The GNU "
"build system itself assumes the availability of a Bourne shell and command-"
"line tools provided by GNU Coreutils, Awk, Findutils, `sed', and `grep'.  "
"Furthermore, build programs---programs that run @code{./configure}, "
"@code{make}, etc.---are written in Guile Scheme (@pxref{Derivations}).  "
"Consequently, to be able to build anything at all, from scratch, Guix relies "
"on pre-built binaries of Guile, GCC, Binutils, libc, and the other packages "
"mentioned above---the @dfn{bootstrap binaries}."
msgstr ""

#. type: Plain text
#: doc/guix.texi:32513
msgid ""
"These bootstrap binaries are ``taken for granted'', though we can also re-"
"create them if needed (@pxref{Preparing to Use the Bootstrap Binaries})."
msgstr ""

#. type: section
#: doc/guix.texi:32520
#, no-wrap
msgid "The Reduced Binary Seed Bootstrap"
msgstr ""

#. type: Plain text
#: doc/guix.texi:32527
msgid ""
"Guix---like other GNU/Linux distributions---is traditionally bootstrapped "
"from a set of bootstrap binaries: Bourne shell, command-line tools provided "
"by GNU Coreutils, Awk, Findutils, `sed', and `grep' and Guile, GCC, "
"Binutils, and the GNU C Library (@pxref{Bootstrapping}).  Usually, these "
"bootstrap binaries are ``taken for granted.''"
msgstr ""

#. type: Plain text
#: doc/guix.texi:32533
msgid ""
"Taking the bootstrap binaries for granted means that we consider them to be "
"a correct and trustworthy ``seed'' for building the complete system.  "
"Therein lies a problem: the combined size of these bootstrap binaries is "
"about 250MB (@pxref{Bootstrappable Builds,,, mes, GNU Mes}).  Auditing or "
"even inspecting these is next to impossible."
msgstr ""

#. type: Plain text
#: doc/guix.texi:32538
msgid ""
"For @code{i686-linux} and @code{x86_64-linux}, Guix now features a ``Reduced "
"Binary Seed'' bootstrap @footnote{We would like to say: ``Full Source "
"Bootstrap'' and while we are working towards that goal it would be hyperbole "
"to use that term for what we do now.}."
msgstr ""

#. type: Plain text
#: doc/guix.texi:32544
msgid ""
"The Reduced Binary Seed bootstrap removes the most critical tools---from a "
"trust perspective---from the bootstrap binaries: GCC, Binutils and the GNU C "
"Library are replaced by: @code{bootstrap-mescc-tools} (a tiny assembler and "
"linker) and @code{bootstrap-mes} (a small Scheme Interpreter and a C "
"compiler written in Scheme and the Mes C Library, built for TinyCC and for "
"GCC)."
msgstr ""

#. type: Plain text
#: doc/guix.texi:32549
msgid ""
"Using these new binary seeds the ``missing'' Binutils, GCC, and the GNU C "
"Library are built from source.  From here on the more traditional bootstrap "
"process resumes.  This approach has reduced the bootstrap binaries in size "
"to about 145MB in Guix v1.1."
msgstr ""

#. type: Plain text
#: doc/guix.texi:32557
msgid ""
"The next step that Guix has taken is to replace the shell and all its "
"utilities with implementations in Guile Scheme, the @emph{Scheme-only "
"bootstrap}.  Gash (@pxref{Gash,,, gash, The Gash manual}) is a POSIX-"
"compatible shell that replaces Bash, and it comes with Gash Utils which has "
"minimalist replacements for Awk, the GNU Core Utilities, Grep, Gzip, Sed, "
"and Tar.  The rest of the bootstrap binary seeds that were removed are now "
"built from source."
msgstr ""

#. type: Plain text
#: doc/guix.texi:32567
msgid ""
"Building the GNU System from source is currently only possibly by adding "
"some historical GNU packages as intermediate steps@footnote{Packages such as "
"@code{gcc-2.95.3}, @code{binutils-2.14}, @code{glibc-2.2.5}, "
"@code{gzip-1.2.4}, @code{tar-1.22}, and some others.  For details, see "
"@file{gnu/packages/commencement.scm}.}.  As Gash and Gash Utils mature, and "
"GNU packages become more bootstrappable again (e.g., new releases of GNU Sed "
"will also ship as gzipped tarballs again, as alternative to the hard to "
"bootstrap @code{xz}-compression), this set of added packages can hopefully "
"be reduced again."
msgstr ""

#. type: Plain text
#: doc/guix.texi:32571
msgid ""
"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."
msgstr ""

#. type: Plain text
#: doc/guix.texi:32574
msgid ""
"@image{images/gcc-core-mesboot0-graph,6in,,Dependency graph of gcc-core-"
"mesboot0}"
msgstr ""

#. type: Plain text
#: doc/guix.texi:32581
msgid ""
"The only significant binary bootstrap seeds that remain@footnote{ Ignoring "
"the 68KB @code{mescc-tools}; that will be removed later, together with "
"@code{mes}.} are a Scheme intepreter and a Scheme compiler: GNU Mes and GNU "
"Guile@footnote{Not shown in this graph are the static binaries for "
"@file{bash}, @code{tar}, and @code{xz} that are used to get Guile running.}."
msgstr ""

#. type: Plain text
#: doc/guix.texi:32584
msgid ""
"This further reduction has brought down the size of the binary seed to about "
"60MB for @code{i686-linux} and @code{x86_64-linux}."
msgstr ""

#. type: Plain text
#: doc/guix.texi:32589
msgid ""
"Work is ongoing to remove all binary blobs from our free software bootstrap "
"stack, working towards a Full Source Bootstrap.  Also ongoing is work to "
"bring these bootstraps to the @code{arm-linux} and @code{aarch64-linux} "
"architectures and to the Hurd."
msgstr ""

#. type: Plain text
#: doc/guix.texi:32593
msgid ""
"If you are interested, join us on @samp{#bootstrappable} on the Freenode IRC "
"network or discuss on @email{bug-mes@@gnu.org} or @email{gash-devel@@nongnu."
"org}."
msgstr ""

#. type: Plain text
#: doc/guix.texi:32600
msgid ""
"@image{images/bootstrap-graph,6in,,Dependency graph of the early bootstrap "
"derivations}"
msgstr ""

#. type: Plain text
#: doc/guix.texi:32605
msgid ""
"The figure above shows the very beginning of the dependency graph of the "
"distribution, corresponding to the package definitions of the @code{(gnu "
"packages bootstrap)} module.  A similar figure can be generated with "
"@command{guix graph} (@pxref{Invoking guix graph}), along the lines of:"
msgstr ""

#. type: example
#: doc/guix.texi:32610
#, no-wrap
msgid ""
"guix graph -t derivation \\\n"
"  -e '(@@@@ (gnu packages bootstrap) %bootstrap-gcc)' \\\n"
"  | dot -Tps > gcc.ps\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:32613
msgid "or, for the further Reduced Binary Seed bootstrap"
msgstr ""

#. type: example
#: doc/guix.texi:32618
#, no-wrap
msgid ""
"guix graph -t derivation \\\n"
"  -e '(@@@@ (gnu packages bootstrap) %bootstrap-mes)' \\\n"
"  | dot -Tps > mes.ps\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:32627
msgid ""
"At this level of detail, things are slightly complex.  First, Guile itself "
"consists of an ELF executable, along with many source and compiled Scheme "
"files that are dynamically loaded when it runs.  This gets stored in the "
"@file{guile-2.0.7.tar.xz} tarball shown in this graph.  This tarball is part "
"of Guix's ``source'' distribution, and gets inserted into the store with "
"@code{add-to-store} (@pxref{The Store})."
msgstr ""

#. type: Plain text
#: doc/guix.texi:32636
msgid ""
"But how do we write a derivation that unpacks this tarball and adds it to "
"the store? To solve this problem, the @code{guile-bootstrap-2.0.drv} "
"derivation---the first one that gets built---uses @code{bash} as its "
"builder, which runs @code{build-bootstrap-guile.sh}, which in turn calls "
"@code{tar} to unpack the tarball.  Thus, @file{bash}, @file{tar}, @file{xz}, "
"and @file{mkdir} are statically-linked binaries, also part of the Guix "
"source distribution, whose sole purpose is to allow the Guile tarball to be "
"unpacked."
msgstr ""

#. type: Plain text
#: doc/guix.texi:32648
msgid ""
"Once @code{guile-bootstrap-2.0.drv} is built, we have a functioning Guile "
"that can be used to run subsequent build programs.  Its first task is to "
"download tarballs containing the other pre-built binaries---this is what the "
"@file{.tar.xz.drv} derivations do.  Guix modules such as @code{ftp-client."
"scm} are used for this purpose.  The @code{module-import.drv} derivations "
"import those modules in a directory in the store, using the original "
"layout.  The @code{module-import-compiled.drv} derivations compile those "
"modules, and write them in an output directory with the right layout.  This "
"corresponds to the @code{#:modules} argument of @code{build-expression-"
">derivation} (@pxref{Derivations})."
msgstr ""

#. type: Plain text
#: doc/guix.texi:32653
msgid ""
"Finally, the various tarballs are unpacked by the derivations @code{gcc-"
"bootstrap-0.drv}, @code{glibc-bootstrap-0.drv}, or @code{bootstrap-mes-0."
"drv} and @code{bootstrap-mescc-tools-0.drv}, at which point we have a "
"working C tool chain."
msgstr ""

#. type: unnumberedsec
#: doc/guix.texi:32654
#, no-wrap
msgid "Building the Build Tools"
msgstr ""

#. type: Plain text
#: doc/guix.texi:32663
msgid ""
"Bootstrapping is complete when we have a full tool chain that does not "
"depend on the pre-built bootstrap tools discussed above.  This no-dependency "
"requirement is verified by checking whether the files of the final tool "
"chain contain references to the @file{/gnu/store} directories of the "
"bootstrap inputs.  The process that leads to this ``final'' tool chain is "
"described by the package definitions found in the @code{(gnu packages "
"commencement)} module."
msgstr ""

#. type: Plain text
#: doc/guix.texi:32670
msgid ""
"The @command{guix graph} command allows us to ``zoom out'' compared to the "
"graph above, by looking at the level of package objects instead of "
"individual derivations---remember that a package may translate to several "
"derivations, typically one derivation to download its source, one to build "
"the Guile modules it needs, and one to actually build the package from "
"source.  The command:"
msgstr ""

#. type: example
#: doc/guix.texi:32675
#, no-wrap
msgid ""
"guix graph -t bag \\\n"
"  -e '(@@@@ (gnu packages commencement)\n"
"          glibc-final-with-bootstrap-bash)' | xdot -\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:32682
msgid ""
"displays the dependency graph leading to the ``final'' C "
"library@footnote{You may notice the @code{glibc-intermediate} label, "
"suggesting that it is not @emph{quite} final, but as a good approximation, "
"we will consider it final.}, depicted below."
msgstr ""

#. type: Plain text
#: doc/guix.texi:32684
msgid ""
"@image{images/bootstrap-packages,6in,,Dependency graph of the early packages}"
msgstr ""

#. type: Plain text
#: doc/guix.texi:32690
msgid ""
"The first tool that gets built with the bootstrap binaries is GNU@tie{}"
"Make---noted @code{make-boot0} above---which is a prerequisite for all the "
"following packages.  From there Findutils and Diffutils get built."
msgstr ""

#. type: Plain text
#: doc/guix.texi:32695
msgid ""
"Then come the first-stage Binutils and GCC, built as pseudo cross tools---i."
"e., with @option{--target} equal to @option{--host}.  They are used to build "
"libc.  Thanks to this cross-build trick, this libc is guaranteed not to hold "
"any reference to the initial tool chain."
msgstr ""

#. type: Plain text
#: doc/guix.texi:32701
msgid ""
"From there the final Binutils and GCC (not shown above) are built.  GCC uses "
"@command{ld} from the final Binutils, and links programs against the just-"
"built libc.  This tool chain is used to build the other packages used by "
"Guix and by the GNU Build System: Guile, Bash, Coreutils, etc."
msgstr ""

#. type: Plain text
#: doc/guix.texi:32707
msgid ""
"And voilà! At this point we have the complete set of build tools that the "
"GNU Build System expects.  These are in the @code{%final-inputs} variable of "
"the @code{(gnu packages commencement)} module, and are implicitly used by "
"any package that uses @code{gnu-build-system} (@pxref{Build Systems, "
"@code{gnu-build-system}})."
msgstr ""

#. type: unnumberedsec
#: doc/guix.texi:32709
#, no-wrap
msgid "Building the Bootstrap Binaries"
msgstr ""

#. type: Plain text
#: doc/guix.texi:32716
msgid ""
"Because the final tool chain does not depend on the bootstrap binaries, "
"those rarely need to be updated.  Nevertheless, it is useful to have an "
"automated way to produce them, should an update occur, and this is what the "
"@code{(gnu packages make-bootstrap)} module provides."
msgstr ""

#. type: Plain text
#: doc/guix.texi:32722
msgid ""
"The following command builds the tarballs containing the bootstrap binaries "
"(Binutils, GCC, glibc, for the traditional bootstrap and linux-libre-"
"headers, bootstrap-mescc-tools, bootstrap-mes for the Reduced Binary Seed "
"bootstrap, and Guile, and a tarball containing a mixture of Coreutils and "
"other basic command-line tools):"
msgstr ""

#. type: example
#: doc/guix.texi:32725
#, no-wrap
msgid "guix build bootstrap-tarballs\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:32730
msgid ""
"The generated tarballs are those that should be referred to in the "
"@code{(gnu packages bootstrap)} module mentioned at the beginning of this "
"section."
msgstr ""

#. type: Plain text
#: doc/guix.texi:32736
msgid ""
"Still here? Then perhaps by now you've started to wonder: when do we reach a "
"fixed point? That is an interesting question! The answer is unknown, but if "
"you would like to investigate further (and have significant computational "
"and storage resources to do so), then let us know."
msgstr ""

#. type: unnumberedsec
#: doc/guix.texi:32737
#, no-wrap
msgid "Reducing the Set of Bootstrap Binaries"
msgstr ""

#. type: Plain text
#: doc/guix.texi:32745
msgid ""
"Our traditional bootstrap includes GCC, GNU Libc, Guile, etc.  That's a lot "
"of binary code! Why is that a problem? It's a problem because these big "
"chunks of binary code are practically non-auditable, which makes it hard to "
"establish what source code produced them.  Every unauditable binary also "
"leaves us vulnerable to compiler backdoors as described by Ken Thompson in "
"the 1984 paper @emph{Reflections on Trusting Trust}."
msgstr ""

#. type: Plain text
#: doc/guix.texi:32751
msgid ""
"This is mitigated by the fact that our bootstrap binaries were generated "
"from an earlier Guix revision.  Nevertheless it lacks the level of "
"transparency that we get in the rest of the package dependency graph, where "
"Guix always gives us a source-to-binary mapping.  Thus, our goal is to "
"reduce the set of bootstrap binaries to the bare minimum."
msgstr ""

#. type: Plain text
#: doc/guix.texi:32757
msgid ""
"The @uref{https://bootstrappable.org, Bootstrappable.org web site} lists on-"
"going projects to do that.  One of these is about replacing the bootstrap "
"GCC with a sequence of assemblers, interpreters, and compilers of increasing "
"complexity, which could be built from source starting from a simple and "
"auditable assembler."
msgstr ""

#. type: Plain text
#: doc/guix.texi:32766
msgid ""
"Our first major achievement is the replacement of of GCC, the GNU C Library "
"and Binutils by MesCC-Tools (a simple hex linker and macro assembler) and "
"Mes (@pxref{Top, GNU Mes Reference Manual,, mes, GNU Mes}, a Scheme "
"interpreter and C compiler in Scheme).  Neither MesCC-Tools nor Mes can be "
"fully bootstrapped yet and thus we inject them as binary seeds.  We call "
"this the Reduced Binary Seed bootstrap, as it has halved the size of our "
"bootstrap binaries! Also, it has eliminated the C compiler binary; i686-"
"linux and x86_64-linux Guix packages are now bootstrapped without any binary "
"C compiler."
msgstr ""

#. type: Plain text
#: doc/guix.texi:32769
msgid ""
"Work is ongoing to make MesCC-Tools and Mes fully bootstrappable and we are "
"also looking at any other bootstrap binaries.  Your help is welcome!"
msgstr ""

#. type: chapter
#: doc/guix.texi:32771
#, no-wrap
msgid "Porting to a New Platform"
msgstr ""

#. type: Plain text
#: doc/guix.texi:32780
msgid ""
"As discussed above, the GNU distribution is self-contained, and self-"
"containment is achieved by relying on pre-built ``bootstrap "
"binaries'' (@pxref{Bootstrapping}).  These binaries are specific to an "
"operating system kernel, CPU architecture, and application binary interface "
"(ABI).  Thus, to port the distribution to a platform that is not yet "
"supported, one must build those bootstrap binaries, and update the "
"@code{(gnu packages bootstrap)} module to use them on that platform."
msgstr ""

#. type: Plain text
#: doc/guix.texi:32785
msgid ""
"Fortunately, Guix can @emph{cross compile} those bootstrap binaries.  When "
"everything goes well, and assuming the GNU tool chain supports the target "
"platform, this can be as simple as running a command like this one:"
msgstr ""

#. type: example
#: doc/guix.texi:32788
#, no-wrap
msgid "guix build --target=armv5tel-linux-gnueabi bootstrap-tarballs\n"
msgstr ""

#. type: Plain text
#: doc/guix.texi:32795
msgid ""
"For this to work, the @code{glibc-dynamic-linker} procedure in @code{(gnu "
"packages bootstrap)} must be augmented to return the right file name for "
"libc's dynamic linker on that platform; likewise, @code{system->linux-"
"architecture} in @code{(gnu packages linux)} must be taught about the new "
"platform."
msgstr ""

#. type: Plain text
#: doc/guix.texi:32804
msgid ""
"Once these are built, the @code{(gnu packages bootstrap)} module needs to be "
"updated to refer to these binaries on the target platform.  That is, the "
"hashes and URLs of the bootstrap tarballs for the new platform must be added "
"alongside those of the currently supported platforms.  The bootstrap Guile "
"tarball is treated specially: it is expected to be available locally, and "
"@file{gnu/local.mk} has rules to download it for the supported "
"architectures; a rule for the new platform must be added as well."
msgstr ""

#. type: Plain text
#: doc/guix.texi:32813
msgid ""
"In practice, there may be some complications.  First, it may be that the "
"extended GNU triplet that specifies an ABI (like the @code{eabi} suffix "
"above) is not recognized by all the GNU tools.  Typically, glibc recognizes "
"some of these, whereas GCC uses an extra @option{--with-abi} configure flag "
"(see @code{gcc.scm} for examples of how to handle this).  Second, some of "
"the required packages could fail to build for that platform.  Lastly, the "
"generated binaries could be broken for some reason."
msgstr ""

#. type: include
#: doc/guix.texi:32815
#, no-wrap
msgid "contributing.texi"
msgstr ""

#. type: Plain text
#: doc/guix.texi:32828
msgid ""
"Guix is based on the @uref{https://nixos.org/nix/, Nix package manager}, "
"which was designed and implemented by Eelco Dolstra, with contributions from "
"other people (see the @file{nix/AUTHORS} file in Guix).  Nix pioneered "
"functional package management, and promoted unprecedented features, such as "
"transactional package upgrades and rollbacks, per-user profiles, and "
"referentially transparent build processes.  Without this work, Guix would "
"not exist."
msgstr ""

#. type: Plain text
#: doc/guix.texi:32831
msgid ""
"The Nix-based software distributions, Nixpkgs and NixOS, have also been an "
"inspiration for Guix."
msgstr ""

#. type: Plain text
#: doc/guix.texi:32837
msgid ""
"GNU@tie{}Guix itself is a collective work with contributions from a number "
"of people.  See the @file{AUTHORS} file in Guix for more information on "
"these fine people.  The @file{THANKS} file lists people who have helped by "
"reporting bugs, taking care of the infrastructure, providing artwork and "
"themes, making suggestions, and more---thank you!"
msgstr ""

#. type: cindex
#: doc/guix.texi:32842
#, no-wrap
msgid "license, GNU Free Documentation License"
msgstr ""

#. type: include
#: doc/guix.texi:32843
#, no-wrap
msgid "fdl-1.3.texi"
msgstr ""