gnu: glibc/hurd-headers: Cross-build fix for the Hurd.
[jackhill/guix/guix.git] / po / doc / guix-manual.zh_CN.po
CommitLineData
544cab3d
LC
1# Chinese (simplified) translation of the Guix manual.
2# Copyright (C) 2013-2019 the authors of Guix (msgids)
3# This file is distributed under the same license as the guix package.
4# Meiyo Peng <meiyo@riseup.net>, 2019.
5#
6msgid ""
7msgstr ""
32747aa9 8"Project-Id-Version: guix-manual 1.0.1-pre1\n"
544cab3d 9"Report-Msgid-Bugs-To: ludo@gnu.org\n"
32747aa9
LC
10"POT-Creation-Date: 2019-05-10 20:53+0200\n"
11"PO-Revision-Date: 2019-05-14 14:31+0800\n"
544cab3d
LC
12"Last-Translator: Meiyo Peng <meiyo@riseup.net>\n"
13"Language-Team: Chinese (simplified) <i18n-zh@googlegroups.com>\n"
14"Language: zh_CN\n"
544cab3d
LC
15"MIME-Version: 1.0\n"
16"Content-Type: text/plain; charset=UTF-8\n"
17"Content-Transfer-Encoding: 8bit\n"
32747aa9 18"X-Bugs: Report translation errors to the Language-Team address.\n"
544cab3d 19
32747aa9 20#. #-#-#-#-# contributing.pot (guix 1.0.1-pre1) #-#-#-#-#
544cab3d 21#. type: chapter
32747aa9 22#. #-#-#-#-# guix.pot (guix 1.0.1-pre1) #-#-#-#-#
544cab3d 23#. type: menuentry
32747aa9 24#: doc/contributing.texi:1 doc/contributing.texi:2 doc/guix.texi:139
544cab3d
LC
25#, no-wrap
26msgid "Contributing"
27msgstr "贡献"
28
29#. type: Plain text
30#: doc/contributing.texi:9
31msgid "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})."
32747aa9 32msgstr "这个项目是大家合作的成果,我们需要你的帮助以更好地发展。请通过@email{guix-devel@@gnu.org} 和 Freenode IRC 上的 @code{#guix} 联系我们。我们欢迎您的想法、bug反馈、补丁,以及任何可能对项目有帮助的贡献。我们特别欢迎帮助我们打包(@pxref{Packaging Guidelines})。"
544cab3d
LC
33
34#. type: cindex
35#: doc/contributing.texi:10
36#, no-wrap
37msgid "code of conduct, of contributors"
38msgstr "行为准则和贡献者"
39
40#. type: cindex
41#: doc/contributing.texi:11
42#, no-wrap
43msgid "contributor covenant"
44msgstr "贡献者契约"
45
46#. type: Plain text
47#: doc/contributing.texi:17
48msgid "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{http://contributor-covenant.org/}. You can find a local version in the @file{CODE-OF-CONDUCT} file in the source tree."
32747aa9 49msgstr "我们希望提供一个温暖、友好,并且没有骚扰的的环境,这样每个人都能尽最大努力贡献。为了这个目的,我们的项目遵循“贡献者契约”,这个契约是根据@url{http://contributor-covenant.org/}制定的。你可以在源代码目录里的@file{CODE-OF-CONDUCT}文件里找到一份本地版。"
544cab3d
LC
50
51#. type: Plain text
52#: doc/contributing.texi:21
53msgid "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."
32747aa9 54msgstr "贡献者在提交补丁和网上交流时不需要使用法律认可的名字。他们可以使用任何名字或者假名。"
544cab3d
LC
55
56#. type: section
57#: doc/contributing.texi:29 doc/contributing.texi:31 doc/contributing.texi:32
58#, no-wrap
59msgid "Building from Git"
32747aa9 60msgstr "从Git构建"
544cab3d
LC
61
62#. type: menuentry
63#: doc/contributing.texi:29
64msgid "The latest and greatest."
32747aa9 65msgstr "最新的并且最好的。"
544cab3d
LC
66
67#. type: section
68#: doc/contributing.texi:29 doc/contributing.texi:103
69#: doc/contributing.texi:104
70#, no-wrap
71msgid "Running Guix Before It Is Installed"
72msgstr "在安装之前运行Guix"
73
74#. type: menuentry
75#: doc/contributing.texi:29
76msgid "Hacker tricks."
77msgstr "黑客技巧。"
78
79#. type: section
80#: doc/contributing.texi:29 doc/contributing.texi:167
81#: doc/contributing.texi:168
82#, no-wrap
83msgid "The Perfect Setup"
84msgstr "完美的配置"
85
86#. type: menuentry
87#: doc/contributing.texi:29
88msgid "The right tools."
89msgstr "正确的工具。"
90
91#. type: section
92#: doc/contributing.texi:29 doc/contributing.texi:231
93#: doc/contributing.texi:232
94#, no-wrap
95msgid "Packaging Guidelines"
96msgstr "打包指导"
97
98#. type: menuentry
99#: doc/contributing.texi:29
100msgid "Growing the distribution."
32747aa9 101msgstr "帮助发行版成长。"
544cab3d
LC
102
103#. type: section
104#: doc/contributing.texi:29 doc/contributing.texi:680
105#: doc/contributing.texi:681
106#, no-wrap
107msgid "Coding Style"
108msgstr "代码风格"
109
110#. type: menuentry
111#: doc/contributing.texi:29
112msgid "Hygiene of the contributor."
113msgstr "开发者的卫生情况"
114
115#. type: section
116#: doc/contributing.texi:29 doc/contributing.texi:778
117#: doc/contributing.texi:779
118#, no-wrap
119msgid "Submitting Patches"
120msgstr "提交补丁"
121
122#. type: menuentry
123#: doc/contributing.texi:29
124msgid "Share your work."
125msgstr "分享你的工作。"
126
127#. type: Plain text
128#: doc/contributing.texi:36
129msgid "If you want to hack Guix itself, it is recommended to use the latest version from the Git repository:"
130msgstr "如果你想折腾Guix本身,建议使用Git仓库里最新的版本:"
131
132#. type: example
133#: doc/contributing.texi:39
134#, no-wrap
135msgid "git clone https://git.savannah.gnu.org/git/guix.git\n"
136msgstr "git clone https://git.savannah.gnu.org/git/guix.git\n"
137
138#. type: Plain text
139#: doc/contributing.texi:44
140msgid "When building Guix from a checkout, the following packages are required in addition to those mentioned in the installation instructions (@pxref{Requirements})."
32747aa9 141msgstr "当从Git检出构建Guix时,除安装指导(@pxref{Requirements})里提及的软件包之外还需要这些包。"
544cab3d
LC
142
143#. type: item
144#: doc/contributing.texi:46
145#, no-wrap
146msgid "@url{http://gnu.org/software/autoconf/, GNU Autoconf};"
147msgstr "@url{http://gnu.org/software/autoconf/, GNU Autoconf};"
148
149#. type: item
150#: doc/contributing.texi:47
151#, no-wrap
152msgid "@url{http://gnu.org/software/automake/, GNU Automake};"
153msgstr "@url{http://gnu.org/software/automake/, GNU Automake};"
154
155#. type: item
156#: doc/contributing.texi:48
157#, no-wrap
158msgid "@url{http://gnu.org/software/gettext/, GNU Gettext};"
159msgstr "@url{http://gnu.org/software/gettext/, GNU Gettext};"
160
161#. type: item
162#: doc/contributing.texi:49
163#, no-wrap
164msgid "@url{http://gnu.org/software/texinfo/, GNU Texinfo};"
165msgstr "@url{http://gnu.org/software/texinfo/, GNU Texinfo};"
166
167#. type: item
168#: doc/contributing.texi:50
169#, no-wrap
170msgid "@url{http://www.graphviz.org/, Graphviz};"
171msgstr "@url{http://www.graphviz.org/, Graphviz};"
172
173#. type: item
174#: doc/contributing.texi:51
175#, no-wrap
176msgid "@url{http://www.gnu.org/software/help2man/, GNU Help2man (optional)}."
177msgstr "@url{http://www.gnu.org/software/help2man/, GNU Help2man (可选)}。"
178
179#. type: Plain text
180#: doc/contributing.texi:58
181msgid "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:"
32747aa9 182msgstr "设置Guix开发环境的最简单的方式当然是使用Guix!下面这些命令启动一个shell,所有的依赖和环境变量都为折腾Guix设置好了:"
544cab3d
LC
183
184#. type: example
185#: doc/contributing.texi:61
186#, no-wrap
187msgid "guix environment guix\n"
188msgstr "guix environment guix\n"
189
190#. type: Plain text
191#: doc/contributing.texi:65
192msgid "@xref{Invoking guix environment}, for more information on that command. Extra dependencies can be added with @option{--ad-hoc}:"
32747aa9 193msgstr "这个命令更多的信息请参考@xref{Invoking guix environment}。额外的依赖可以通过@option{--ad-hoc}选项添加:"
544cab3d
LC
194
195#. type: example
196#: doc/contributing.texi:68
197#, no-wrap
198msgid "guix environment guix --ad-hoc help2man git strace\n"
199msgstr "guix environment guix --ad-hoc help2man git strace\n"
200
201#. type: Plain text
202#: doc/contributing.texi:72
203msgid "Run @command{./bootstrap} to generate the build system infrastructure using Autoconf and Automake. If you get an error like this one:"
32747aa9 204msgstr "运行 @command{./bootstrap} 以使用Autoconf和Automake生成构建系统的基础框架。如果你的得到这样的错误:"
544cab3d
LC
205
206#. type: example
207#: doc/contributing.texi:75
208#, no-wrap
209msgid "configure.ac:46: error: possibly undefined macro: PKG_CHECK_MODULES\n"
210msgstr "configure.ac:46: error: possibly undefined macro: PKG_CHECK_MODULES\n"
211
212#. type: Plain text
213#: doc/contributing.texi:84
214msgid "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:"
32747aa9 215msgstr "它可能意味着Autoconf无法找到由pkg-config提供的@file{pkg.m4}。请确保@file{pkg.m4}可用。由Guile提供的@file{guile.m4}宏也类似。假如你的Automake安装在@file{/usr/local},那么它不会从@file{/usr/share}里寻找@file{.m4}文件。这种情况下,你必须执行下面这个命令:"
544cab3d
LC
216
217#. type: example
218#: doc/contributing.texi:87
219#, no-wrap
220msgid "export ACLOCAL_PATH=/usr/share/aclocal\n"
221msgstr "export ACLOCAL_PATH=/usr/share/aclocal\n"
222
223#. type: Plain text
224#: doc/contributing.texi:91
225msgid "@xref{Macro Search Path,,, automake, The GNU Automake Manual}, for more information."
226msgstr "参考@xref{Macro Search Path,,, automake, The GNU Automake Manual}."
227
228#. type: Plain text
229#: doc/contributing.texi:96
230msgid "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)."
32747aa9 231msgstr "然后,像正常一样运行@command{./configure}。确保提供@code{--localstatedir=@var{directory}}参数,@var{directory}是你当前系统的@code{localstatedir}的值。(@pxref{The Store})"
544cab3d
LC
232
233#. type: Plain text
234#: doc/contributing.texi:101
235msgid "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}."
32747aa9 236msgstr "最后,用@code{make check}执行测试(@pxref{Running the Test Suite})。如果遇到任何错误,请参考“安装指导”(@pxref{Installation})或者给@email{guix-devel@@gnu.org, 邮件列表}发邮件。"
544cab3d
LC
237
238#. type: Plain text
239#: doc/contributing.texi:110
240msgid "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."
32747aa9 241msgstr "为了保持一个合适的工作环境,你会发现在你的本地代码树里测试修改而不用安装它们会很有用。TODO: So that you can distinguish between your ``end-user'' hat and your ``motley'' costume."
544cab3d
LC
242
243#. type: Plain text
244#: doc/contributing.texi:121
245msgid "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 in@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.}:"
32747aa9 246msgstr "这样,即使你没有运行@code{make install},所有的命令行工具都可以使用。为此,你先要有一个包含全部依赖的环境(@pxref{Building from Git}),然后,为所有的命令添加前缀@command{./pre-inst-env}(@file{pre-inst-env}脚本在Guix构建树的最顶层,它由@command{./configure}生成),如@footnote{@command{sudo}命令的@option{-E}参数确保@code{GUILE_LOAD_PATH}被正确设置,从而@command{guix-daemon}和它使用的工具可以找到它们需要的Guile模块。}:"
544cab3d
LC
247
248#. type: example
249#: doc/contributing.texi:125
250#, no-wrap
251msgid ""
252"$ sudo -E ./pre-inst-env guix-daemon --build-users-group=guixbuild\n"
253"$ ./pre-inst-env guix build hello\n"
254msgstr ""
255"$ sudo -E ./pre-inst-env guix-daemon --build-users-group=guixbuild\n"
256"$ ./pre-inst-env guix build hello\n"
257
258#. type: Plain text
259#: doc/contributing.texi:129
260msgid "Similarly, for a Guile session using the Guix modules:"
261msgstr "类似的,对于使用Guix模块的Guile会话:"
262
263#. type: example
264#: doc/contributing.texi:132
265#, no-wrap
266msgid ""
267"$ ./pre-inst-env guile -c '(use-modules (guix utils)) (pk (%current-system))'\n"
268"\n"
269msgstr ""
270"$ ./pre-inst-env guile -c '(use-modules (guix utils)) (pk (%current-system))'\n"
271"\n"
272
273#. type: example
274#: doc/contributing.texi:134
275#, no-wrap
276msgid ";;; (\"x86_64-linux\")\n"
277msgstr ";;; (\"x86_64-linux\")\n"
278
279#. type: cindex
280#: doc/contributing.texi:137
281#, no-wrap
282msgid "REPL"
283msgstr "REPL"
284
285#. type: cindex
286#: doc/contributing.texi:138
287#, no-wrap
288msgid "read-eval-print loop"
289msgstr "read-eval-print loop"
290
291#. type: Plain text
292#: doc/contributing.texi:141
293msgid "@dots{} and for a REPL (@pxref{Using Guile Interactively,,, guile, Guile Reference Manual}):"
294msgstr "@dots{} and for a REPL (@pxref{Using Guile Interactively,,, guile, Guile Reference Manual}):"
295
296#. type: example
297#: doc/contributing.texi:156
298#, no-wrap
299msgid ""
300"$ ./pre-inst-env guile\n"
301"scheme@@(guile-user)> ,use(guix)\n"
302"scheme@@(guile-user)> ,use(gnu)\n"
303"scheme@@(guile-user)> (define snakes\n"
304" (fold-packages\n"
305" (lambda (package lst)\n"
306" (if (string-prefix? \"python\"\n"
307" (package-name package))\n"
308" (cons package lst)\n"
309" lst))\n"
310" '()))\n"
311"scheme@@(guile-user)> (length snakes)\n"
312"$1 = 361\n"
313msgstr ""
314"$ ./pre-inst-env guile\n"
315"scheme@@(guile-user)> ,use(guix)\n"
316"scheme@@(guile-user)> ,use(gnu)\n"
317"scheme@@(guile-user)> (define snakes\n"
318" (fold-packages\n"
319" (lambda (package lst)\n"
320" (if (string-prefix? \"python\"\n"
321" (package-name package))\n"
322" (cons package lst)\n"
323" lst))\n"
324" '()))\n"
325"scheme@@(guile-user)> (length snakes)\n"
326"$1 = 361\n"
327
328#. type: Plain text
329#: doc/contributing.texi:160
330msgid "The @command{pre-inst-env} script sets up all the environment variables necessary to support this, including @env{PATH} and @env{GUILE_LOAD_PATH}."
32747aa9 331msgstr "@command{pre-inst-env}脚本设置为此好了所有必要的的环境变量,包括@env{PATH}和@env{GUILE_LOAD_PATH}。"
544cab3d
LC
332
333#. type: Plain text
334#: doc/contributing.texi:165
335msgid "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."
32747aa9 336msgstr "@command{./pre-inst-env guix pull} @emph{不} 会更新本地源代码树,它只更新符号链接@file{~/.config/guix/current} (@pxref{Invoking guix pull})。如果你想更新本地源代码树,请运行@command{git pull}。"
544cab3d
LC
337
338#. type: Plain text
339#: doc/contributing.texi:175
340msgid "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{http://www.gnu.org/software/emacs, Emacs}, empowered by the wonderful @url{http://nongnu.org/geiser/, Geiser}. To set that up, run:"
32747aa9 341msgstr "折腾Guix的完美配置也是折腾Guile的完美配置@pxref{Using Guile in Emacs,,, guile, Guile Reference Manual})。首先,你需要的不仅是一个编辑器,你需要@url{http://www.gnu.org/software/emacs, Emacs},以及美妙的@url{http://nongnu.org/geiser/, Geiser}。为此,请运行:"
544cab3d
LC
342
343#. type: example
344#: doc/contributing.texi:178
345#, no-wrap
346msgid "guix package -i emacs guile emacs-geiser\n"
347msgstr "guix package -i emacs guile emacs-geiser\n"
348
349#. type: Plain text
350#: doc/contributing.texi:187
351msgid "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:"
32747aa9 352msgstr "Geiser允许在Emacs里进行交互式的、增长式的开发:buffer里的代码补全和执行,获取一行的文档(docstrings),上下文敏感的补全,@kbd{M-.}跳转到对象定义,测试代码的REPL,及更多(@pxref{Introduction,,, geiser, Geiser User Manual})。为了方便的Guix开发,请确保修改Guile的加载路径(load path)以使其能从你的项目里找到源代码文件。"
544cab3d
LC
353
354#. type: lisp
355#: doc/contributing.texi:192
356#, no-wrap
357msgid ""
358";; @r{Assuming the Guix checkout is in ~/src/guix.}\n"
359"(with-eval-after-load 'geiser-guile\n"
360" (add-to-list 'geiser-guile-load-path \"~/src/guix\"))\n"
361msgstr ""
362";; @r{假设Guix项目在 ~/src/guix.}\n"
363"(with-eval-after-load 'geiser-guile\n"
364" (add-to-list 'geiser-guile-load-path \"~/src/guix\"))\n"
365
366#. type: Plain text
367#: doc/contributing.texi:200
368msgid "To actually edit the code, Emacs already has a neat Scheme mode. But in addition to that, you must not miss @url{http://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."
32747aa9 369msgstr "真正编辑代码时别忘了Emacs自带了方便的Scheme模式。而且,一定不要错过@url{http://www.emacswiki.org/emacs/ParEdit, Paredit}。它提供了直接操作语法树的的功能,例如,用S-表达式替换父节点,为S-表达式添加、删除前后的括号,删除后面的S-表达式,等等。"
544cab3d
LC
370
371#. type: cindex
372#: doc/contributing.texi:201
373#, no-wrap
374msgid "code snippets"
375msgstr "代码片段"
376
377#. type: cindex
378#: doc/contributing.texi:202
379#, no-wrap
380msgid "templates"
381msgstr "模板"
382
383#. type: cindex
384#: doc/contributing.texi:203
385#, no-wrap
386msgid "reducing boilerplate"
32747aa9 387msgstr "减少样板"
544cab3d
LC
388
389#. type: Plain text
390#: doc/contributing.texi:210
391msgid "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{http://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."
32747aa9 392msgstr "在@file{etc/snippets}文件夹里,我们还为普通的git commit信息和软件包定义提供模板。这些模板可以通过@url{http://joaotavora.github.io/yasnippet/, YASnippet}使用,它可以把短的触发字符串扩展成交互式的文字片段。你可能希望将这个文件夹添加到Emacs的@var{yas-snippet-dirs}变量里。"
544cab3d
LC
393
394#. type: lisp
395#: doc/contributing.texi:215
396#, no-wrap
397msgid ""
398";; @r{Assuming the Guix checkout is in ~/src/guix.}\n"
399"(with-eval-after-load 'yasnippet\n"
400" (add-to-list 'yas-snippet-dirs \"~/src/guix/etc/snippets\"))\n"
401msgstr ""
402";; @r{假设Guix项目在 ~/src/guix.}\n"
403"(with-eval-after-load 'yasnippet\n"
404" (add-to-list 'yas-snippet-dirs \"~/src/guix/etc/snippets\"))\n"
405
406#. type: Plain text
407#: doc/contributing.texi:223
408msgid "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."
32747aa9 409msgstr "commit信息片段显示staged文件需要依赖@url{https://magit.vc/, Magit}。编辑commit信息时,输入@code{add},然后按@kbd{TAB}就可以插入一段用于新增软件包的模板;输入@code{update},然后按@kbd{TAB}可以插入一段更新软件包的模板;输入@code{https}然后按@kbd{TAB}可以插入一段修改主页URI为HTTPS的模板。"
544cab3d
LC
410
411#. type: Plain text
412#: doc/contributing.texi:229
413msgid "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."
32747aa9 414msgstr "@code{scheme-mode}最重要的模板可以通过输入@code{package...},然后按@kbd{TAB}触发。这个片段还插入了触发字符串@code{origin...},以进一步展开。@code{origin}片段更进一步的可能插入其它以@code{...}结尾的触发字符串,它们可以被继续展开。"
544cab3d
LC
415
416#. type: cindex
417#: doc/contributing.texi:234
418#, no-wrap
419msgid "packages, creating"
420msgstr "软件包, 创建"
421
422#. type: Plain text
423#: doc/contributing.texi:238
424msgid "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."
32747aa9 425msgstr "这个GNU发行版正在开发的早期阶段,可能缺少一些你喜欢的软件。这个章节介绍你可以怎样帮助这个发行版成长。"
544cab3d
LC
426
427#. type: Plain text
428#: doc/contributing.texi:246
429msgid "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."
32747aa9 430msgstr "自由软件通常以@dfn{源代码包}的形式分发,通常是包含完整代码的@file{tar.gz}包。添加软件包到这个发行版意味着两件事:添加描述如何构建包的@dfn{配方}和一系列依赖软件,以及添加配方之外的@dfn{软件包元数据},如一段文字描述和证书信息。"
544cab3d
LC
431
432#. type: Plain text
433#: doc/contributing.texi:255
434msgid "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}."
32747aa9 435msgstr "在Guix里所有这些信息都包含在@dfn{软件包定义}里。软件包定义提供了软件包的高层视角。它们使用Scheme编程语言编写,事实上,对每个软件包我们都定义一个绑定到软件包定义的的变量,并且从模块(@pxref{Package Modules})中导出那个变量。然而,深入的Scheme知识@emph{不}是创建软件包的前提条件。若要了解软件包的更多信息,@pxref{Defining Packages}。"
544cab3d
LC
436
437#. type: Plain text
438#: doc/contributing.texi:261
439msgid "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}):"
32747aa9 440msgstr "一旦软件包定义准备好了,并且包存在Guix代码树的一个文件里,你可以用@command{guix build} (@pxref{Invoking guix build})命令测试它。假设这个新软件包的名字叫做@code{gnew},你可以在Guix构建树里运行这个命令(@pxref{Running Guix Before It Is Installed}):"
544cab3d
LC
441
442#. type: example
443#: doc/contributing.texi:264
444#, no-wrap
445msgid "./pre-inst-env guix build gnew --keep-failed\n"
446msgstr "./pre-inst-env guix build gnew --keep-failed\n"
447
448#. type: Plain text
449#: doc/contributing.texi:270
450msgid "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."
32747aa9 451msgstr "使用@code{--keep-failed}参数会保留失败的构建树,这可以使调试构建错误更容易。@code{--log-file}也是一个调试时很有用的参数,它可以用来访问构建日志。"
544cab3d
LC
452
453#. type: Plain text
454#: doc/contributing.texi:275
455msgid "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:"
32747aa9 456msgstr "如果@command{guix}命令找不到这个软件包,那可能是因为源文件包含语法错误,或者缺少导出软件包的@code{define-public}语句。为了查找错误,你可以用Guile导入这个模块以了解这个错误的详情:"
544cab3d
LC
457
458#. type: example
459#: doc/contributing.texi:278
460#, no-wrap
461msgid "./pre-inst-env guile -c '(use-modules (gnu packages gnew))'\n"
462msgstr "./pre-inst-env guile -c '(use-modules (gnu packages gnew))'\n"
463
464#. type: Plain text
465#: doc/contributing.texi:286
466msgid "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{http://hydra.gnu.org/jobset/gnu/master, our continuous integration system}."
32747aa9 467msgstr "一旦你的软件包可以正确构建,请给我们发送补丁(@pxref{Submitting Patches})。当然,如果你需要帮助,我们也会很乐意帮助你。一旦补丁被提交到Guix仓库里,这个新的软件包会被自动地在支持的平台上构建@url{http://hydra.gnu.org/jobset/gnu/master, our continuous integration system}。"
544cab3d
LC
468
469#. type: cindex
470#: doc/contributing.texi:287
471#, no-wrap
472msgid "substituter"
473msgstr ""
474
475#. type: Plain text
476#: doc/contributing.texi:294
477msgid "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."
32747aa9 478msgstr "用户可以通过运行@command{guix pull}命令获取最新的软件包定义(@pxref{Invoking guix pull})。当@code{@value{SUBSTITUTE-SERVER}}构建好这些软件包之后,安装这些软件包时会自动从服务器(@pxref{Substitutes})上下载构建好的二进制包。唯一需要人工干预的地方是评审和应用代码补丁。"
544cab3d
LC
479
480#. type: subsection
481#: doc/contributing.texi:305 doc/contributing.texi:307
482#: doc/contributing.texi:308
483#, no-wrap
484msgid "Software Freedom"
485msgstr "软件自由"
486
487#. type: menuentry
488#: doc/contributing.texi:305
489msgid "What may go into the distribution."
490msgstr "什么可以进入这个发行版。"
491
492#. type: subsection
493#: doc/contributing.texi:305 doc/contributing.texi:335
494#: doc/contributing.texi:336
495#, no-wrap
496msgid "Package Naming"
497msgstr "软件包命名"
498
499#. type: menuentry
500#: doc/contributing.texi:305
501msgid "What's in a name?"
502msgstr "名字里包含什么?"
503
504#. type: subsection
505#: doc/contributing.texi:305 doc/contributing.texi:360
506#: doc/contributing.texi:361
507#, no-wrap
508msgid "Version Numbers"
509msgstr "版本号"
510
511#. type: menuentry
512#: doc/contributing.texi:305
513msgid "When the name is not enough."
514msgstr "当名字不够时"
515
516#. type: subsection
517#: doc/contributing.texi:305 doc/contributing.texi:451
518#: doc/contributing.texi:452
519#, no-wrap
520msgid "Synopses and Descriptions"
521msgstr "简介和描述"
522
523#. type: menuentry
524#: doc/contributing.texi:305
525msgid "Helping users find the right package."
526msgstr "帮助用户寻找合适的软件包"
527
528#. type: subsection
529#: doc/contributing.texi:305 doc/contributing.texi:531
530#: doc/contributing.texi:532
531#, no-wrap
532msgid "Python Modules"
533msgstr "Python模块"
534
535#. type: menuentry
536#: doc/contributing.texi:305
537msgid "A touch of British comedy."
538msgstr "接触英式的喜剧"
539
540#. type: subsection
541#: doc/contributing.texi:305 doc/contributing.texi:606
542#: doc/contributing.texi:607
543#, no-wrap
544msgid "Perl Modules"
545msgstr "Perl模块"
546
547#. type: menuentry
548#: doc/contributing.texi:305
549msgid "Little pearls."
550msgstr "小珍珠。"
551
552#. type: subsection
553#: doc/contributing.texi:305 doc/contributing.texi:622
554#: doc/contributing.texi:623
555#, no-wrap
556msgid "Java Packages"
557msgstr "Java包"
558
559#. type: menuentry
560#: doc/contributing.texi:305
561msgid "Coffee break."
562msgstr "喝咖啡休息。"
563
564#. type: subsection
565#: doc/contributing.texi:305 doc/contributing.texi:642
566#: doc/contributing.texi:643
567#, no-wrap
568msgid "Fonts"
569msgstr "字体"
570
571#. type: menuentry
572#: doc/contributing.texi:305
573msgid "Fond of fonts."
574msgstr "字体的乐趣。"
575
576#. type: cindex
577#: doc/contributing.texi:311
578#, no-wrap
579msgid "free software"
580msgstr "自由软件"
581
582#. type: Plain text
583#: doc/contributing.texi:319
584msgid "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{http://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."
32747aa9 585msgstr "开发GNU操作系统是为了用户拥有计算的自由。GNU是@dfn{自由软件},这意味着它有@url{http://www.gnu.org/philosophy/free-sw.html,四项重要的自由}:运行程序的自由,以源代码形式学习和修改程序的自由,原样重新分发副本的自由,和分发修改后的版本的自由。GNU发行版里包含的软件包只提供遵守这四项自由的软件。"
544cab3d
LC
586
587#. type: Plain text
588#: doc/contributing.texi:325
589msgid "In addition, the GNU distribution follow the @url{http://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."
32747aa9 590msgstr "此外,GNU发行版遵循@url{http://www.gnu.org/distros/free-system-distribution-guidelines.html,自由软件发行版准则}。这些准则拒绝非自由的固件和对非自由软件的推荐,并讨论解决商标和专利的方法。"
544cab3d
LC
591
592#. type: Plain text
593#: doc/contributing.texi:333
594msgid "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."
32747aa9 595msgstr "某些上游的软件包源代码包含一小部分违反上述准则的可选的子集,比如这个子集本身就是非自由代码。这时,这些讨厌的代码需要用合适的补丁或者软件包定义(@pxref{Defining Packages})里的@code{origin}里的代码片段移除。这样,@code{guix build --source}就可以返回自由的源代码而不是未经修改的上游源代码。"
544cab3d
LC
596
597#. type: cindex
598#: doc/contributing.texi:338
599#, no-wrap
600msgid "package name"
601msgstr "软件包名字"
602
603#. type: Plain text
604#: doc/contributing.texi:346
605msgid "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}."
32747aa9 606msgstr "一个软件包事实上有两个名字:第一个是@emph{Scheme变量}的名字,即用@code{define-public}定义的名字。通过这个名字,软件包可以被Scheme代码找到,如用作其它软件包的输入。第二个名字是软件包定义里的@code{name}属性的字符串值。这个名字用于软件包管理命令,如:@command{guix package},@command{guix build}"
544cab3d
LC
607
608#. type: Plain text
609#: doc/contributing.texi:351
610msgid "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}."
32747aa9 611msgstr "两个名字通常是相同的,常是上游项目名字转成小写字母并把下划线替换成连字符的结果。比如,GNUnet转成@code{gnunet},SDL_net转成@code{sdl-net}。"
544cab3d
LC
612
613#. type: Plain text
614#: doc/contributing.texi:356
615msgid "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."
32747aa9 616msgstr "我们不给库软件包添加@code{lib}前缀,除非它是项目官方名字的一部分。但是@pxref{Python Modules}和@ref{Perl Modules}有关于Python和Perl语言的特殊规则。"
544cab3d
LC
617
618#. type: Plain text
619#: doc/contributing.texi:358
620msgid "Font package names are handled differently, @pxref{Fonts}."
621msgstr "字体软件包的名字处理起来不同,@pxref{Fonts}."
622
623#. type: cindex
624#: doc/contributing.texi:363
625#, no-wrap
626msgid "package version"
627msgstr "软件包版本"
628
629#. type: Plain text
630#: doc/contributing.texi:372
631msgid "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."
32747aa9 632msgstr "我们通常只为每个自由软件的最新版本打包。但是有时候,比如对于版本不兼容的库,需要有同一个软件包的两个或更多版本。它们需要使用不同的Scheme变量名。我们为最新的版本使用@ref{Package Naming}里规定的名字,旧的版本使用加上后缀的名字,后缀是@code{-}和可以区分开版本号的版本号的最小前缀。"
544cab3d
LC
633
634#. type: Plain text
635#: doc/contributing.texi:375
636msgid "The name inside the package definition is the same for all versions of a package and does not contain any version number."
637msgstr "软件包定义里的名字对于同一个软件包的所有版本都是相同的,并且不含有版本号。"
638
639#. type: Plain text
640#: doc/contributing.texi:377
641msgid "For instance, the versions 2.24.20 and 3.9.12 of GTK+ may be packaged as follows:"
642msgstr "例如,GTK+的2.24.20和3.9.12两个版本可以这样打包:"
643
644#. type: example
645#: doc/contributing.texi:389
646#, no-wrap
647msgid ""
648"(define-public gtk+\n"
649" (package\n"
650" (name \"gtk+\")\n"
651" (version \"3.9.12\")\n"
652" ...))\n"
653"(define-public gtk+-2\n"
654" (package\n"
655" (name \"gtk+\")\n"
656" (version \"2.24.20\")\n"
657" ...))\n"
658msgstr ""
659"(define-public gtk+\n"
660" (package\n"
661" (name \"gtk+\")\n"
662" (version \"3.9.12\")\n"
663" ...))\n"
664"(define-public gtk+-2\n"
665" (package\n"
666" (name \"gtk+\")\n"
667" (version \"2.24.20\")\n"
668" ...))\n"
669
670#. type: Plain text
671#: doc/contributing.texi:391
672msgid "If we also wanted GTK+ 3.8.2, this would be packaged as"
673msgstr "如果我们还需要GTK+ 3.8.2,就这样打包"
674
675#. type: example
676#: doc/contributing.texi:397
677#, no-wrap
678msgid ""
679"(define-public gtk+-3.8\n"
680" (package\n"
681" (name \"gtk+\")\n"
682" (version \"3.8.2\")\n"
683" ...))\n"
684msgstr ""
685"(define-public gtk+-3.8\n"
686" (package\n"
687" (name \"gtk+\")\n"
688" (version \"3.8.2\")\n"
689" ...))\n"
690
691#. type: cindex
692#: doc/contributing.texi:401
693#, no-wrap
694msgid "version number, for VCS snapshots"
695msgstr "用于版本控制快照的版本号"
696
697#. type: Plain text
698#: doc/contributing.texi:407
699msgid "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?"
32747aa9 700msgstr "有时候,我们为软件包上游的版本控制系统(VCS)的快照而不是正式发布版打包。这是特殊情况,因为决定哪个是稳定版的权力应该属于上游开发者。然而,有时候这是必须的。那么,我们该如何决定写在@code{version}里的版本号呢?"
544cab3d
LC
701
702#. type: Plain text
703#: doc/contributing.texi:415
704msgid "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:"
32747aa9 705msgstr "显然,我们需要让VCS快照的commit ID在版本号中体现出来,但是我们也需要确保版本号单调递增,以便@command{guix package --upgrade}决定哪个版本号更新。由于commit ID,尤其是Git的commit ID,不是单调递增的,我们添加一个每次升级快照时都手动增长的revision数字。最后的版本号字符串看起来是这样:"
544cab3d
LC
706
707#. type: example
708#: doc/contributing.texi:424
709#, no-wrap
710msgid ""
711"2.0.11-3.cabba9e\n"
712" ^ ^ ^\n"
713" | | `-- upstream commit ID\n"
714" | |\n"
715" | `--- Guix package revision\n"
716" |\n"
717"latest upstream version\n"
718msgstr ""
719"2.0.11-3.cabba9e\n"
720" ^ ^ ^\n"
721" | | `-- 上游的commit ID\n"
722" | |\n"
723" | `--- Guix软件包的revision\n"
724" |\n"
725"最新的上游版本号\n"
726
727#. type: Plain text
728#: doc/contributing.texi:433
729msgid "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:"
32747aa9 730msgstr "把@code{版本号}里的commit ID截短,比如只取7个数字,是一个好主意。它避免了美学上的烦恼(假设美学在这里很重要),以及操作系统限制引起的问题(比如Linux内核的127字节)。尽管如此,在@code{origin}里最好使用完整的commit ID,以避免混淆。"
544cab3d
LC
731
732#. type: example
733#: doc/contributing.texi:449
734#, no-wrap
735msgid ""
736"(define my-package\n"
737" (let ((commit \"c3f29bc928d5900971f65965feaae59e1272a3f7\")\n"
738" (revision \"1\")) ;Guix package revision\n"
739" (package\n"
740" (version (git-version \"0.9\" revision commit))\n"
741" (source (origin\n"
742" (method git-fetch)\n"
743" (uri (git-reference\n"
744" (url \"git://example.org/my-package.git\")\n"
745" (commit commit)))\n"
746" (sha256 (base32 \"1mbikn@dots{}\"))\n"
747" (file-name (git-file-name name version))))\n"
748" ;; @dots{}\n"
749" )))\n"
750msgstr ""
751"(define my-package\n"
752" (let ((commit \"c3f29bc928d5900971f65965feaae59e1272a3f7\")\n"
753" (revision \"1\")) ;Guix软件包的revision\n"
754" (package\n"
755" (version (git-version \"0.9\" revision commit))\n"
756" (source (origin\n"
757" (method git-fetch)\n"
758" (uri (git-reference\n"
759" (url \"git://example.org/my-package.git\")\n"
760" (commit commit)))\n"
761" (sha256 (base32 \"1mbikn@dots{}\"))\n"
762" (file-name (git-file-name name version))))\n"
763" ;; @dots{}\n"
764" )))\n"
765
766#. type: cindex
767#: doc/contributing.texi:454
768#, no-wrap
769msgid "package description"
770msgstr "软件包描述"
771
772#. type: cindex
773#: doc/contributing.texi:455
774#, no-wrap
775msgid "package synopsis"
776msgstr "软件包简介"
777
778#. type: Plain text
779#: doc/contributing.texi:462
780msgid "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."
32747aa9 781msgstr "我们已经看到,GNU@tie{}Guix里的每个软件包都包含一个简介(synopsis)和一个描述(description)(@pxref{Defining Packages})。简介和描述很重要:它们是@command{guix package --search}搜索的信息,并且是帮助用户决定一个软件包是否符合自己需求的重要信息。因此,打包的人应该关注怎样写它们的内容。"
544cab3d
LC
782
783#. type: Plain text
784#: doc/contributing.texi:470
785msgid "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''."
32747aa9 786msgstr "简介必须以大写字母开头,并且不能以句号结尾。它们不能以 ``a'' 或者 ``the'' 等没有意义的词开头。例如 ``File-frobbing tool'' 要比 ``A tool that frobs files'' 更好。简介需要说明软件包是什么--如 ``Core GNU utilities (file, text, shell)'',或者它的用途--如 GNU@tie{}grep 的简介是 ``Print lines matching a pattern''。"
544cab3d
LC
787
788#. type: Plain text
789#: doc/contributing.texi:480
790msgid "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."
32747aa9 791msgstr "记住,简介必须能被广大的听众理解。例如,“以SAM格式修改对齐”可能对经验丰富的生物信息科研工作者来说能理解,但是对普通对听众则是无用的甚至是令人误解的。简介最好说明软件包应用的领域。在这个例子中,应该这样描述“修改核苷酸序列的对齐格式”,这会让用户更容易判断这是不是他们想要的。"
544cab3d
LC
792
793#. type: Plain text
794#: doc/contributing.texi:488
795msgid "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."
32747aa9 796msgstr "描述应该在5至10句话之间。使用完整的句子,并且避免在未介绍的情况下使用缩写。请避免推广营销性对词汇,如“世界领先”,“行业最强”,“下一代”,并且避免高级的形容词,如“最先进的”--他们对用户寻找软件包是无用的,甚至是可疑的。相反的,尽量务实,提及用例和功能。"
544cab3d
LC
797
798#. type: cindex
799#: doc/contributing.texi:489
800#, no-wrap
801msgid "Texinfo markup, in package descriptions"
32747aa9 802msgstr "软件包描述里的Texinfo标记"
544cab3d
LC
803
804#. type: Plain text
805#: doc/contributing.texi:498
806msgid "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."
32747aa9 807msgstr "描述可以含有Texinfo标记,这对格式化有帮助,如@code{@@code}、@code{@@dfn}、列表、超链接(@pxref{Overview,,, texinfo, GNU Texinfo})。但是,在使用某些字符时应该小心,如@samp{@@}和花括号是基本的Texinfo特殊字符(@pxref{Special Characters,,, texinfo, GNU Texinfo})。@command{guix package --show}之类的用户界面会解决渲染问题。"
544cab3d
LC
808
809#. type: Plain text
810#: doc/contributing.texi:504
811msgid "Synopses and descriptions are translated by volunteers @uref{http://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."
32747aa9 812msgstr "简介和描述会由@uref{http://translationproject.org/domain/guix-packages.html, Translation Project}项目的志愿者翻译,从而使尽可能多的用户可以用母语阅读。用户界面用当前区域设置的语言搜索和展示这些信息。"
544cab3d
LC
813
814#. type: Plain text
815#: doc/contributing.texi:509
816msgid "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:"
32747aa9 817msgstr "为了让@command{xgettext}可以把它们提取成待翻译的字符串,简介和描述@emph{必须是文字字符串}。这意味着你不能使用@code{string-append}或@code{format}来合成字符串:"
544cab3d
LC
818
819#. type: lisp
820#: doc/contributing.texi:515
821#, no-wrap
822msgid ""
823"(package\n"
824" ;; @dots{}\n"
825" (synopsis \"This is translatable\")\n"
826" (description (string-append \"This is \" \"*not*\" \" translatable.\")))\n"
827msgstr ""
32747aa9
LC
828"(package\n"
829" ;; @dots{}\n"
830" (synopsis \"这是可以翻译的\")\n"
831" (description (string-append \"这是\" \"*不可以*\" \"翻译的\")))\n"
544cab3d
LC
832
833#. type: Plain text
834#: doc/contributing.texi:523
835msgid "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}):"
32747aa9 836msgstr "翻译是很繁重的工作,所以,作为打包者请更加注意你的简介和介绍,每一个改动都会增加翻译的工作量。为了帮助他们,你可以插入这类可以被他们看到的建议和指示(@pxref{xgettext Invocation,,, gettext, GNU Gettext}):"
544cab3d
LC
837
838#. type: example
839#: doc/contributing.texi:528
840#, no-wrap
841msgid ""
842";; TRANSLATORS: \"X11 resize-and-rotate\" should not be translated.\n"
843"(description \"ARandR is designed to provide a simple visual front end\n"
844"for the X11 resize-and-rotate (RandR) extension. @dots{}\")\n"
845msgstr ""
32747aa9
LC
846";; TRANSLATORS: \"X11 resize-and-rotate\"不需要翻译。\n"
847"(description \"ARandR为X11 resize-and-rotate (RandR)扩展提供简单的图形界面。@dots{}\")\n"
544cab3d
LC
848
849#. type: cindex
850#: doc/contributing.texi:534
851#, no-wrap
852msgid "python"
32747aa9 853msgstr "python"
544cab3d
LC
854
855#. type: Plain text
856#: doc/contributing.texi:540
857msgid "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}."
32747aa9 858msgstr "我们目前为Python 2和Python 3打包,如@ref{Version Numbers}的规则所述,它们的Scheme变量名分别是@code{python-2}和@code{python}。为了避免和其他编程语言的冲突,Python模块的软件包名字最好含有@code{python}。"
544cab3d
LC
859
860#. type: Plain text
861#: doc/contributing.texi:546
862msgid "Some modules are compatible with only one version of Python, others with both. If the package Foo compiles only with Python 3, we name it @code{python-foo}; if it compiles only with Python 2, we name it @code{python2-foo}. If it is compatible with both versions, we create two packages with the corresponding names."
32747aa9 863msgstr "某些模块仅和一个版本的Python兼容,其它的和两个版本都兼容。如果一个叫做Foo的软件包仅和Python 3兼容,我们把它命名为@code{python-foo};如果它仅和Python 2兼容,我们把它命名为@code{python2-foo}。如果它和两个版本都兼容,我们创建两个软件包,名字如前所述。"
544cab3d
LC
864
865#. type: Plain text
866#: doc/contributing.texi:552
867msgid "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."
32747aa9 868msgstr "如果一个项目的名字已经含有@code{python}这个单词,我们把它丢掉;例如,python-dateutil模块打包后的名字是@code{python-dateutil}和@code{python2-dateutil}。如果项目的名字以@code{py}开头(如@: @code{pytz}),我们把它保留,并且添加上面所述的前缀。"
544cab3d
LC
869
870#. type: subsubsection
871#: doc/contributing.texi:553
872#, no-wrap
873msgid "Specifying Dependencies"
32747aa9 874msgstr "指定依赖"
544cab3d
LC
875
876#. type: cindex
877#: doc/contributing.texi:554
878#, no-wrap
879msgid "inputs, for Python packages"
32747aa9 880msgstr "Python软件包的输入"
544cab3d
LC
881
882#. type: Plain text
883#: doc/contributing.texi:559
884msgid "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}."
32747aa9 885msgstr "Python软件包的依赖信息通常在包的源代码树里,各种文件有不同的精确度:@file{setup.py}文件,@file{requirements.txt}文件,@file{tox.ini}文件。"
544cab3d
LC
886
887#. type: Plain text
888#: doc/contributing.texi:565
889msgid "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."
32747aa9 890msgstr "你在写软件包配方时的任务是把这些依赖转换成相应的“输入”(@pxref{package Reference, inputs})。尽管@code{pypi}导入工具通常可以做得很好(@pxref{Invoking guix import}),你可能想检查下面这个清单,以决定每个依赖放在哪儿。"
544cab3d
LC
891
892#. type: itemize
893#: doc/contributing.texi:573
894msgid "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."
32747aa9 895msgstr "默认地,我们为Python 2打包时像Python 3一样安装了@code{setuptools}和@code{pip}。所以你不需要把它们两个指定为依赖,否则@command{guix lint}会警告你。"
544cab3d
LC
896
897#. type: itemize
898#: doc/contributing.texi:579
899msgid "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."
32747aa9 900msgstr "运行时需要的Python依赖要放进@code{propagated-inputs}。它们通常由@file{setup.py}文件里的@code{install_requires}关键字或@file{requirements.txt}文件定义。"
544cab3d
LC
901
902#. type: itemize
903#: doc/contributing.texi:587
904msgid "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."
32747aa9 905msgstr "仅在构建时依赖的Python包--如,@file{setup.py}里的@code{setup_requires}关键字列举的包--或仅在测试时依赖的包--如,@code{tests_require}里的包--要放进@code{native-inputs}。因为,(1)在运行时不需要它们,因此不需要propagate,并且(2)在交叉编译时,它们属于“native”输入。"
544cab3d
LC
906
907#. type: itemize
908#: doc/contributing.texi:591
909msgid "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}."
32747aa9 910msgstr "例如@code{pytest},@code{mock},@code{nose}测试框架。当然,如果在运行时需要这里的任何一个包,它需要被加进@code{propagated-inputs}。"
544cab3d
LC
911
912#. type: itemize
913#: doc/contributing.texi:596
914msgid "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."
32747aa9 915msgstr "任何不属于上述类别的包都要被加进@code{inputs},如,构建含有C语言扩展的Python包所需的程序和C语言库。"
544cab3d
LC
916
917#. type: itemize
918#: doc/contributing.texi:602
919msgid "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}})."
32747aa9 920msgstr "如果一个Python软件包由可选的依赖(@code{extras_require}),由你根据它们的性价比(用处/负担)决定是否添加它们(@pxref{Submitting Patches, @command{guix size}})。"
544cab3d
LC
921
922#. type: cindex
923#: doc/contributing.texi:609
924#, no-wrap
925msgid "perl"
32747aa9 926msgstr "perl"
544cab3d
LC
927
928#. type: Plain text
929#: doc/contributing.texi:620
930msgid "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}."
32747aa9 931msgstr "Perl程序和其它软件包的命名规则类似,用小写的上游名字命名。对于仅包含一个类的Perl包,我们使用小写的类名,把所有的@code{::}替换成破折号,并且添加@code{perl-}前缀。所以类@code{XML::Parser}变成@code{perl-xml-parser}。包含多个类的模块保留它们上游的名字,并且添加@code{perl-}前缀。这类模块的名字通常含有@code{perl},这个单词需要被删掉。例如,@code{libwww-perl}变成@code{perl-libwww}。"
544cab3d
LC
932
933#. type: cindex
934#: doc/contributing.texi:625
935#, no-wrap
936msgid "java"
32747aa9 937msgstr "java"
544cab3d
LC
938
939#. type: Plain text
940#: doc/contributing.texi:628
941msgid "Java programs standing for themselves are named as any other package, using the lowercase upstream name."
32747aa9 942msgstr "Java程序和其它软件包的命名规则类似,用小写的上游名字命名。"
544cab3d
LC
943
944#. type: Plain text
945#: doc/contributing.texi:634
946msgid "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}."
32747aa9 947msgstr "为了避免和其它编程语言混淆和命名冲突,Java软件包的名字最好有@code{java-}前缀。如果一个项目的名字已经含有@code{java},我们把它删掉;例如,@code{ngsjava}打包后的名字是@code{java-ngs}。"
544cab3d
LC
948
949#. type: Plain text
950#: doc/contributing.texi:640
951msgid "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}."
32747aa9 952msgstr "对于仅包含一个或很少几个类的Java软件包,我们使用小写的类名,把所有的@code{.}替换成破折号,并且添加@code{java-}前缀。因此,类@code{apache.commons.cli}打包后的名字是@code{java-apache-commons-cli}。"
544cab3d
LC
953
954#. type: cindex
32747aa9 955#: doc/contributing.texi:645 doc/guix.texi:1665
544cab3d
LC
956#, no-wrap
957msgid "fonts"
32747aa9 958msgstr "字体"
544cab3d
LC
959
960#. type: Plain text
961#: doc/contributing.texi:651
962msgid "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."
32747aa9 963msgstr "对于通常不会被用户安装用于排版的字体,或者随更大的软件包分发的字体,我们使用通常的命名规则。例如,这适用于X.Org系统附带的字体或TeX Live附带的字体。"
544cab3d
LC
964
965#. type: Plain text
966#: doc/contributing.texi:655
967msgid "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."
32747aa9 968msgstr "为了让用户更容易搜索字体,其它仅含有字体的软件包按以下规则命名,不管上游的包名是什么。"
544cab3d
LC
969
970#. type: Plain text
971#: doc/contributing.texi:663
972msgid "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}."
32747aa9 973msgstr "仅含有一个字体家族的软件包需要以@code{font-}开头;如果作者名字已知,则添加作者名字和@code{-},接着是字体家族名字(把空格替换成破折号),(和通常一样,把所有的大写字母转换成小写字母)。例如,由SIL设计的Gentium字体家族打包后的名字是@code{font-sil-gentium}。"
544cab3d
LC
974
975#. type: Plain text
976#: doc/contributing.texi:672
977msgid "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}."
32747aa9 978msgstr "对于一个含有多个字体家族的软件包,用集合的名字替换字体家族的名字。例如,Liberation字体含有三个家族,Liberation Sans、Liberation Serif和Liberation Mono。它们可以用@code{font-liberation-sans}等名字分开打包;但是由于它们以一个共同的名字分发,我们倾向于以@code{font-liberation}名字统一打包。"
544cab3d
LC
979
980#. type: Plain text
981#: doc/contributing.texi:678
982msgid "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."
32747aa9 983msgstr "当同一个字体家族或字体集合的不同格式分开打包时,把破折号和格式(缩写)添加在软件包名字后面。我们用@code{-ttf}代表TrueType字体,@code{-otf}代表OpenType字体,@code{-type1}代表PostScript Type 1字体。"
544cab3d
LC
984
985#. type: Plain text
986#: doc/contributing.texi:686
987msgid "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."
32747aa9 988msgstr "总的来说,我们的代码遵循GNU代码规范(@pxref{Top,,, standards, GNU代码规范})。但是,这个规范对Scheme的介绍不多,所以这儿提供一些额外的规则。"
544cab3d
LC
989
990#. type: subsection
991#: doc/contributing.texi:692 doc/contributing.texi:694
992#: doc/contributing.texi:695
993#, no-wrap
994msgid "Programming Paradigm"
32747aa9 995msgstr "编程范例"
544cab3d
LC
996
997#. type: menuentry
998#: doc/contributing.texi:692
999msgid "How to compose your elements."
32747aa9 1000msgstr "怎样合成元素。"
544cab3d
LC
1001
1002#. type: subsection
1003#: doc/contributing.texi:692 doc/contributing.texi:701
1004#: doc/contributing.texi:702
1005#, no-wrap
1006msgid "Modules"
32747aa9 1007msgstr "模块"
544cab3d
LC
1008
1009#. type: menuentry
1010#: doc/contributing.texi:692
1011msgid "Where to store your code?"
32747aa9 1012msgstr "在哪里保存代码?"
544cab3d
LC
1013
1014#. type: subsection
1015#: doc/contributing.texi:692 doc/contributing.texi:712
1016#: doc/contributing.texi:713
1017#, no-wrap
1018msgid "Data Types and Pattern Matching"
32747aa9 1019msgstr "数据类型和模式匹配"
544cab3d
LC
1020
1021#. type: menuentry
1022#: doc/contributing.texi:692
1023msgid "Implementing data structures."
32747aa9 1024msgstr "实现数据结构。"
544cab3d
LC
1025
1026#. type: subsection
1027#: doc/contributing.texi:692 doc/contributing.texi:726
1028#: doc/contributing.texi:727
1029#, no-wrap
1030msgid "Formatting Code"
32747aa9 1031msgstr "格式化代码"
544cab3d
LC
1032
1033#. type: menuentry
1034#: doc/contributing.texi:692
1035msgid "Writing conventions."
32747aa9 1036msgstr "书写规范。"
544cab3d
LC
1037
1038#. type: Plain text
1039#: doc/contributing.texi:700
1040msgid "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."
32747aa9 1041msgstr "Guix里的Scheme代码是以纯函数的风格写的。一个例外是有关输入/输出的代码,和实现底层概念的过程,如@code{memoize}过程。"
544cab3d
LC
1042
1043#. type: Plain text
1044#: doc/contributing.texi:708
1045msgid "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."
32747aa9 1046msgstr "用于构建的Guile模块必须放在@code{(guix build @dots{})}命名空间里。它们不允许引用其它Guix或GNU模块。但是,主机端(host-side)模块可以使用构建端(build-side)模块。"
544cab3d
LC
1047
1048#. type: Plain text
1049#: doc/contributing.texi:711
1050msgid "Modules that deal with the broader GNU system should be in the @code{(gnu @dots{})} name space rather than @code{(guix @dots{})}."
32747aa9 1051msgstr "关于更广的GNU系统的模块应该在@code{(gnu @dots{})}命名空间里而不是@code{(guix @dots{})}。"
544cab3d
LC
1052
1053#. type: Plain text
1054#: doc/contributing.texi:720
1055msgid "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."
32747aa9 1056msgstr "经典的Lisp倾向于用列表表示所有的东西,然后用@code{car},@code{cdr},@code{cadr}等手动浏览它们。这种风格有几个问题,特别是难以阅读,易出错,并且妨碍生成合适的类型错误报告。"
544cab3d
LC
1057
1058#. type: Plain text
1059#: doc/contributing.texi:725
1060msgid "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."
32747aa9 1061msgstr "Guix代码应该定义合适的数据类型(例如,用@code{define-record-type*})而不是滥用列表。而且,它应该利用Guile的@code{(ice-9 match)}模块使用模式匹配,特别是匹配列表的时候。"
544cab3d
LC
1062
1063#. type: cindex
1064#: doc/contributing.texi:729
1065#, no-wrap
1066msgid "formatting code"
32747aa9 1067msgstr "格式化代码"
544cab3d
LC
1068
1069#. type: cindex
1070#: doc/contributing.texi:730
1071#, no-wrap
1072msgid "coding style"
32747aa9 1073msgstr "代码风格"
544cab3d
LC
1074
1075#. type: Plain text
1076#: doc/contributing.texi:737
1077msgid "When writing Scheme code, we follow common wisdom among Scheme programmers. In general, we follow the @url{http://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."
32747aa9 1078msgstr "在写Scheme代码时,我们遵循Scheme程序员的通用智慧。通常,我们遵循@url{http://mumble.net/~campbell/scheme/style.txt, Riastradh的Lisp风格}。这个文档碰巧描述了在Guile代码里大量使用的惯例。它很周到,而且写的很好,所以务必阅读。"
544cab3d
LC
1079
1080#. type: Plain text
1081#: doc/contributing.texi:744
1082msgid "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})."
32747aa9 1083msgstr "一些Guix添加的special form,如@code{substitute*}宏,有特殊的缩进规则。它们的规则在@file{.dir-locals.el}文件里定义,Emacs会自动使用。另外,Emacs-Guix提供的@code{guix-devel-mode}模式可以正确地缩进和高亮Guix代码(@pxref{Development,,, emacs-guix, Emacs-Guix参考手册})。"
544cab3d
LC
1084
1085#. type: cindex
1086#: doc/contributing.texi:745
1087#, no-wrap
1088msgid "indentation, of code"
32747aa9 1089msgstr "代码缩进"
544cab3d
LC
1090
1091#. type: cindex
1092#: doc/contributing.texi:746
1093#, no-wrap
1094msgid "formatting, of code"
32747aa9 1095msgstr "代码格式化"
544cab3d
LC
1096
1097#. type: Plain text
1098#: doc/contributing.texi:749
1099msgid "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:"
32747aa9 1100msgstr "如果你不使用Emacs,请确保让你的编辑器知道这些规则。为了自动地缩进软件包定义,你也可以运行:"
544cab3d
LC
1101
1102#. type: example
1103#: doc/contributing.texi:752
1104#, no-wrap
1105msgid "./etc/indent-code.el gnu/packages/@var{file}.scm @var{package}\n"
32747aa9 1106msgstr "./etc/indent-code.el gnu/packages/@var{文件}.scm @var{软件包}\n"
544cab3d
LC
1107
1108#. type: Plain text
1109#: doc/contributing.texi:758
1110msgid "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:"
32747aa9 1111msgstr "这会调用Emacs以批处理模式自动地缩进@file{gnu/packages/@var{文件}.scm}里@var{软件包}的定义。如果想缩进整个文件,省略第二个参数:"
544cab3d
LC
1112
1113#. type: example
1114#: doc/contributing.texi:761
1115#, no-wrap
1116msgid "./etc/indent-code.el gnu/services/@var{file}.scm\n"
32747aa9 1117msgstr "./etc/indent-code.el gnu/services/@var{文件}.scm\n"
544cab3d
LC
1118
1119#. type: cindex
1120#: doc/contributing.texi:763
1121#, no-wrap
1122msgid "Vim, Scheme code editing"
32747aa9 1123msgstr "Vim,编辑Scheme代码"
544cab3d
LC
1124
1125#. type: Plain text
1126#: doc/contributing.texi:769
1127msgid "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."
32747aa9 1128msgstr "如果你用Vim编辑代码,我们推荐你运行@code{:set autoindent},以使你在输入时自动缩进代码。另外,@uref{https://www.vim.org/scripts/script.php?script_id=3998, @code{paredit.vim}}可以帮你处理括号。"
544cab3d
LC
1129
1130#. type: Plain text
1131#: doc/contributing.texi:773
1132msgid "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."
32747aa9 1133msgstr "我们要求所有的顶级过程附带一个docstring。这个要求对@code{(guix build @dots{})}命名空间里的简单的私有过程可以放宽。"
544cab3d
LC
1134
1135#. type: Plain text
1136#: doc/contributing.texi:776
1137msgid "Procedures should not have more than four positional parameters. Use keyword parameters for procedures that take more than four parameters."
32747aa9 1138msgstr "过程不应该有多于四个定位参数。对于接收多于四个定位参数的过程应使用关键字参数。"
544cab3d
LC
1139
1140#. type: Plain text
1141#: doc/contributing.texi:785
1142msgid "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."
32747aa9 1143msgstr "开发是使用Git分布式版本控制系统完成的。因此,对仓库的访问权限不是必须的。我们欢迎以向@email{guix-patches@@gnu.org}邮件列表发送@code{git format-patch}补丁的方式共享代码。"
544cab3d
LC
1144
1145#. type: Plain text
1146#: doc/contributing.texi:792
1147msgid "This mailing list is backed by a Debbugs instance accessible at @uref{https://bugs.gnu.org/guix-patches}, which allows us to keep track of submissions. 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})."
32747aa9 1148msgstr "这个邮件列表的后端是一个Debbugs实例(可以从@uref{https://bugs.gnu.org/guix-patches}访问),它允许我们跟踪提交的bug。每个发送到那个邮件列表的消息都会被分配一个跟踪数字;之后人们可以通过向@code{@var{NNN}@@debbugs.gnu.org}发送邮件来跟进提交(@var{NNN}是跟踪数字,@pxref{Sending a Patch Series})。"
544cab3d
LC
1149
1150#. type: Plain text
1151#: doc/contributing.texi:796
1152msgid "Please write commit logs in the ChangeLog format (@pxref{Change Logs,,, standards, GNU Coding Standards}); you can check the commit history for examples."
32747aa9 1153msgstr "请以ChangeLog格式(@pxref{Change Logs,,, standards, GNU代码规范})写commit日志;你可以浏览commit历史里的例子。"
544cab3d
LC
1154
1155#. type: Plain text
1156#: doc/contributing.texi:799
1157msgid "Before submitting a patch that adds or modifies a package definition, please run through this check list:"
32747aa9 1158msgstr "提交添加或者修改软件包定义的补丁之前,请过一遍这个检查列表:"
544cab3d
LC
1159
1160#. type: enumerate
1161#: doc/contributing.texi:806
1162msgid "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."
32747aa9 1163msgstr "如果软件包的作者为发布的文件包提供了密码学签名,请验证文件的真实性。对于独立的GPG签名文件,这可以通过@code{gpg --verify}命令完成:"
544cab3d
LC
1164
1165#. type: enumerate
1166#: doc/contributing.texi:810
1167msgid "Take some time to provide an adequate synopsis and description for the package. @xref{Synopses and Descriptions}, for some guidelines."
32747aa9 1168msgstr "花些时间为软件包提供一个合适的简介和描述。更多指导,@xref{Synopses and Descriptions}。"
544cab3d
LC
1169
1170#. type: enumerate
1171#: doc/contributing.texi:815
1172msgid "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})."
32747aa9 1173msgstr "运行@code{guix lint @var{软件包}},@var{软件包}是新添加的或修改过的软件包的名字,修复它报告的错误(@pxref{Invoking guix lint})。"
544cab3d
LC
1174
1175#. type: enumerate
1176#: doc/contributing.texi:819
1177msgid "Make sure the package builds on your platform, using @code{guix build @var{package}}."
32747aa9 1178msgstr "用@code{guix build @var{软件包}}命令确保这个软件包可以在你的平台上构建。"
544cab3d
LC
1179
1180#. type: enumerate
1181#: doc/contributing.texi:826
1182msgid "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:"
32747aa9 1183msgstr "我们建议你同时尝试在别的支持的平台上构建这个软件包。你可能没有别的平台的真实的硬件,我们推荐使用@code{qemu-binfmt-service-type}来模拟它们。为了启用这个功能,把下面这个服务添加到你的@code{操作系统}配置的服务列表里:"
544cab3d
LC
1184
1185#. type: example
1186#: doc/contributing.texi:832
1187#, no-wrap
1188msgid ""
1189"(service qemu-binfmt-service-type\n"
1190" (qemu-binfmt-configuration\n"
1191" (platforms (lookup-qemu-platforms \"arm\" \"aarch64\" \"mips64el\"))\n"
1192" (guix-support? #t)))\n"
1193msgstr ""
32747aa9
LC
1194"(service qemu-binfmt-service-type\n"
1195" (qemu-binfmt-configuration\n"
1196" (platforms (lookup-qemu-platforms \"arm\" \"aarch64\" \"mips64el\"))\n"
1197" (guix-support? #t)))\n"
544cab3d
LC
1198
1199#. type: enumerate
1200#: doc/contributing.texi:835
1201msgid "Then reconfigure your system."
32747aa9 1202msgstr "然后重新配置你的系统。"
544cab3d
LC
1203
1204#. type: enumerate
1205#: doc/contributing.texi:840
1206msgid "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:"
32747aa9 1207msgstr "你之后可以用@code{--system}参数为不同的平台构建软件包。例如,为armhf,aarch64,或mips64架构构建\"hello\"软件包,你可以依次运行如下的命令:"
544cab3d
LC
1208
1209#. type: example
1210#: doc/contributing.texi:844
1211#, no-wrap
1212msgid ""
1213"guix build --system=armhf-linux --rounds=2 hello\n"
1214"guix build --system=aarch64-linux --rounds=2 hello\n"
1215"guix build --system=mips64el-linux --rounds=2 hello\n"
1216msgstr ""
32747aa9
LC
1217"guix build --system=armhf-linux --rounds=2 hello\n"
1218"guix build --system=aarch64-linux --rounds=2 hello\n"
1219"guix build --system=mips64el-linux --rounds=2 hello\n"
544cab3d
LC
1220
1221#. type: cindex
1222#: doc/contributing.texi:847
1223#, no-wrap
1224msgid "bundling"
32747aa9 1225msgstr "构建"
544cab3d
LC
1226
1227#. type: enumerate
1228#: doc/contributing.texi:850
1229msgid "Make sure the package does not use bundled copies of software already available as separate packages."
32747aa9 1230msgstr "请确保软件包里不捆绑出现已经被打过包的软件的副本。"
544cab3d
LC
1231
1232#. type: enumerate
1233#: doc/contributing.texi:859
1234msgid "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."
32747aa9 1235msgstr "有时,软件包为了方便用户,捆绑了依赖库的源代码。然而,当依赖库在发行版里已经存在时,做为一个发行版,我们希望确保这些软件包使用发行版里已有的副本。这提高资源使用率(依赖库只构建一次,存储一份),并且使发行版更容易管理,如仅在一个地方对某个软件包进行安全更新就可以影响整个系统--捆绑软件会妨碍这么做。"
544cab3d
LC
1236
1237#. type: enumerate
1238#: doc/contributing.texi:868
1239msgid "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."
32747aa9 1240msgstr "看一下@command{guix size}(@pxref{Invoking guix size})的分析报告。这会让你注意到对其它软件包无意中的引用。它也可以帮助决定是否要把一个软件包分割成几个输出(@pxref{有多个输出的软件包}),以及需要使用哪些可选的依赖。特别地,避免把@code{texlive}添加为依赖:因为它太大了,请使用@code{texlive-tiny}或@code{texlive-union}代替它。"
544cab3d
LC
1241
1242#. type: enumerate
1243#: doc/contributing.texi:873
1244msgid "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})."
32747aa9 1245msgstr "对于重要的更改,确保依赖它的软件包没有受到影响。@code{guix refresh --list-dependent @var{软件包}}会帮你检查(@pxref{Invoking guix refresh})。"
544cab3d
LC
1246
1247#. type: cindex
1248#: doc/contributing.texi:875
1249#, no-wrap
1250msgid "branching strategy"
32747aa9 1251msgstr "分支策略"
544cab3d
LC
1252
1253#. type: cindex
1254#: doc/contributing.texi:876
1255#, no-wrap
1256msgid "rebuild scheduling strategy"
32747aa9 1257msgstr "重新构建的调度策略"
544cab3d
LC
1258
1259#. type: enumerate
1260#: doc/contributing.texi:879
1261msgid "Depending on the number of dependent packages and thus the amount of rebuilding induced, commits go to different branches, along these lines:"
32747aa9 1262msgstr "取决于受影响的软件包的数量,即需要重新构建的数量,commit需要被提交到不同的分支,具体如下:"
544cab3d
LC
1263
1264#. type: item
1265#: doc/contributing.texi:881
1266#, no-wrap
1267msgid "300 dependent packages or less"
32747aa9 1268msgstr "300个或更少的受影响的软件包"
544cab3d
LC
1269
1270#. type: table
1271#: doc/contributing.texi:883
1272msgid "@code{master} branch (non-disruptive changes)."
32747aa9 1273msgstr "@code{master}分支(非破坏性的更改)。"
544cab3d
LC
1274
1275#. type: item
1276#: doc/contributing.texi:884
1277#, no-wrap
1278msgid "between 300 and 1,200 dependent packages"
32747aa9 1279msgstr "300至1200个受影响的软件包"
544cab3d
LC
1280
1281#. type: table
1282#: doc/contributing.texi:889
1283msgid "@code{staging} branch (non-disruptive changes). This branch is intended to be merged in @code{master} every 3 weeks or so. Topical changes (e.g., an update of the GNOME stack) can instead go to a specific branch (say, @code{gnome-updates})."
32747aa9 1284msgstr "@code{staging}分支(非破坏性的更改)。这个分支每隔大约3周会被合并进@code{master}。对某个主题的更改(如对GNOME系列的更新)可以放进一个特定的分支(如@code{gnome-updates})。"
544cab3d
LC
1285
1286#. type: item
1287#: doc/contributing.texi:890
1288#, no-wrap
1289msgid "more than 1,200 dependent packages"
32747aa9 1290msgstr "超过1200个受影响的软件包"
544cab3d
LC
1291
1292#. type: table
1293#: doc/contributing.texi:894
1294msgid "@code{core-updates} branch (may include major and potentially disruptive changes). This branch is intended to be merged in @code{master} every 2.5 months or so."
32747aa9 1295msgstr "@code{core-updates}分支(可能含有重要的或破坏性的更改)。这个分支每隔大约2.5个月会被合并进@code{master}。"
544cab3d
LC
1296
1297#. type: enumerate
1298#: doc/contributing.texi:901
1299msgid "All these branches are @uref{https://hydra.gnu.org/project/gnu, 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."
32747aa9 1300msgstr "所有这些分支都被@uref{https://hydra.gnu.org/project/gnu, 构建农场}跟踪,并且当一切都被顺利构建时合并进@code{master}。这使我们在影响到用户之前就能改正问题,并且缩小没有准备好预构建的二进制包的窗口期。"
544cab3d
LC
1301
1302#. type: enumerate
1303#: doc/contributing.texi:908
1304msgid "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."
32747aa9 1305msgstr "通常,@code{master}之外的其它分支如果最近被评审过,或有一个对应的@code{-next}分支,则被视为@emph{冻结}状态。如果不清楚该把补丁放到哪里,请在邮件列表或IRC上提问。"
544cab3d
LC
1306
1307#. type: cindex
1308#: doc/contributing.texi:910
1309#, no-wrap
1310msgid "determinism, of build processes"
32747aa9 1311msgstr "构建过程的确定性"
544cab3d
LC
1312
1313#. type: cindex
1314#: doc/contributing.texi:911
1315#, no-wrap
1316msgid "reproducible builds, checking"
32747aa9 1317msgstr "检查可复现的构建"
544cab3d
LC
1318
1319#. type: enumerate
1320#: doc/contributing.texi:915
1321msgid "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."
32747aa9 1322msgstr "检查软件包的构建过程是不是确定性的。这通常意味着检查对软件包的独立构建是否能得到每一个比特都完全相同的结果。"
544cab3d
LC
1323
1324#. type: enumerate
1325#: doc/contributing.texi:918
1326msgid "A simple way to do that is by building the same package several times in a row on your machine (@pxref{Invoking guix build}):"
32747aa9 1327msgstr "为此,一个简单的做法是在你的机器上多次构建同一个软件包(@pxref{Invoking guix build}):"
544cab3d
LC
1328
1329#. type: example
1330#: doc/contributing.texi:921
1331#, no-wrap
1332msgid "guix build --rounds=2 my-package\n"
32747aa9 1333msgstr "guix build --rounds=2 <我的软件包>\n"
544cab3d
LC
1334
1335#. type: enumerate
1336#: doc/contributing.texi:925
1337msgid "This is enough to catch a class of common non-determinism issues, such as timestamps or randomly-generated output in the build result."
32747aa9 1338msgstr "这足以查出一批普通的不确定性问题,如构建结果里存在时间戳或随机生成的输出。"
544cab3d
LC
1339
1340#. type: enumerate
1341#: doc/contributing.texi:935
1342msgid "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."
32747aa9 1343msgstr "另一个选择是使用@command{guix challenge}(@pxref{Invoking guix challenge})。当软件包被提交并且被@code{@value{SUBSTITUTE-SERVER}}构建之后,你可以运行这个命令检查你是否得到相同的构建结果。更好的:找另一台可以构建的机器,运行@command{guix publish}。由于远程的构建机器很可能和你的机器不同,这可以捕捉到由硬件不同引起的不确定性问题--如,使用不同的指令集--或不同操作系统内核引起的问题--如,对@code{uname}或@file{/proc}文件的依赖。"
544cab3d
LC
1344
1345#. type: enumerate
1346#: doc/contributing.texi:941
1347msgid "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."
32747aa9 1348msgstr "在编写文档时,请用性别中立的词语指代人,如@uref{https://en.wikipedia.org/wiki/Singular_they, “他”@comma{} “他的”},等。"
544cab3d
LC
1349
1350#. type: enumerate
1351#: doc/contributing.texi:945
1352msgid "Verify that your patch contains only one set of related changes. Bundling unrelated changes together makes reviewing harder and slower."
32747aa9 1353msgstr "检查你的补丁只包含一些相关的更改。把不相关的更改捆绑在一起会让评审更困难和更慢。"
544cab3d
LC
1354
1355#. type: enumerate
1356#: doc/contributing.texi:948
1357msgid "Examples of unrelated changes include the addition of several packages, or a package update along with fixes to that package."
32747aa9 1358msgstr "不相关的更改的例子有:同时新增多个软件包,或更新软件包同时修补这个软件包。"
544cab3d
LC
1359
1360#. type: enumerate
1361#: doc/contributing.texi:953
1362msgid "Please follow our code formatting rules, possibly running the @command{etc/indent-code.el} script to do that automatically for you (@pxref{Formatting Code})."
32747aa9 1363msgstr "请遵守我们的代码格式规范,最好运行@command{etc/indent-code.el}脚本以自动为你格式化(@pxref{Formatting Code})。"
544cab3d
LC
1364
1365#. type: enumerate
1366#: doc/contributing.texi:961
1367msgid "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."
32747aa9 1368msgstr "当可能时,请在源URL里使用镜像@pxref{Invoking guix download}。使用可靠的而不是生成的URL。例如,GitHub的下载文件每次生成时不一定是相同的,所以这时最好克隆仓库。不要在URL里使用@command{name}变量:这没有什么用,而且如果名字变了,URL很可能就错了。"
544cab3d
LC
1369
1370#. type: Plain text
1371#: doc/contributing.texi:971
1372msgid "When posting a patch to the mailing list, use @samp{[PATCH] @dots{}} as a subject. 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."
32747aa9 1373msgstr "在提交补丁到邮件列表时,使用@samp{[PATCH] @dots{}}做为主题。你可以使用你的邮件客户端或者@command{git send-email}命令(@pxref{Sending a Patch Series})。我们倾向于接收纯文本的邮件,无论是在正文里还是在MIME附件里。建议你注意你的邮件客户端是否会自动修改换行或缩进,这可能会损坏补丁。"
544cab3d
LC
1374
1375#. type: Plain text
1376#: doc/contributing.texi:974
1377msgid "When a bug is resolved, please close the thread by sending an email to @email{@var{NNN}-done@@debbugs.gnu.org}."
32747aa9 1378msgstr "当一个bug被修复时,请通过向@email{@var{NNN}-done@@debbugs.gnu.org}发邮件的方式关闭thread。"
544cab3d
LC
1379
1380#. type: anchor{#1}
1381#: doc/contributing.texi:975 doc/contributing.texi:977
1382#, no-wrap
1383msgid "Sending a Patch Series"
32747aa9 1384msgstr "发送补丁系列"
544cab3d
LC
1385
1386#. type: cindex
1387#: doc/contributing.texi:977
1388#, no-wrap
1389msgid "patch series"
32747aa9 1390msgstr "补丁系列"
544cab3d
LC
1391
1392#. type: code{#1}
1393#: doc/contributing.texi:978
1394#, no-wrap
1395msgid "git send-email"
32747aa9 1396msgstr "git send-email"
544cab3d
LC
1397
1398#. type: code{#1}
1399#: doc/contributing.texi:979
1400#, no-wrap
1401msgid "git-send-email"
32747aa9 1402msgstr "git-send-email"
544cab3d
LC
1403
1404#. type: Plain text
1405#: doc/contributing.texi:987
1406msgid "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."
32747aa9 1407msgstr "在发送补丁系列时(如,使用@code{git send-email}),请先向@email{guix-patches@@gnu.org}发送一封邮件,再把后续的补丁发送到@email{@var{NNN}@@debbugs.gnu.org},以确保他们被归在一起。见@uref{https://debbugs.gnu.org/Advanced.html, Debbugs文档}以了解更多信息。"
544cab3d
LC
1408
1409#. type: Plain text
1410#: doc/guix.texi:7
1411msgid "@documentencoding UTF-8"
1412msgstr "@documentencoding UTF-8"
1413
1414#. type: title
32747aa9 1415#: doc/guix.texi:7 doc/guix.texi:92
544cab3d
LC
1416#, no-wrap
1417msgid "GNU Guix Reference Manual"
1418msgstr "GNU Guix参考手册"
1419
1420#. type: include
1421#: doc/guix.texi:10
1422#, no-wrap
1423msgid "version.texi"
615b147f 1424msgstr "version-zh_CN.texi"
544cab3d
LC
1425
1426#. type: copying
32747aa9
LC
1427#: doc/guix.texi:66
1428msgid "Copyright @copyright{} 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 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 Leo Famulari@* Copyright @copyright{} 2015, 2016, 2017, 2018, 2019 Ricardo Wurmus@* Copyright @copyright{} 2016 Ben Woodcroft@* Copyright @copyright{} 2016, 2017, 2018 Chris Marusich@* Copyright @copyright{} 2016, 2017, 2018, 2019 Efraim Flashner@* Copyright @copyright{} 2016 John Darrington@* Copyright @copyright{} 2016, 2017 ng0@* Copyright @copyright{} 2016, 2017, 2018, 2019 Jan Nieuwenhuizen@* Copyright @copyright{} 2016 Julien Lepiller@* Copyright @copyright{} 2016 Alex ter Weele@* Copyright @copyright{} 2016, 2017, 2018, 2019 Christopher Baines@* Copyright @copyright{} 2017, 2018 Clément Lassieur@* Copyright @copyright{} 2017, 2018 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 Marius Bakke@* Copyright @copyright{} 2017 Hartmut Goebel@* Copyright @copyright{} 2017 Maxim Cournoyer@* Copyright @copyright{} 2017, 2018 Tobias Geerinckx-Rice@* Copyright @copyright{} 2017 George Clemmer@* Copyright @copyright{} 2017 Andy Wingo@* Copyright @copyright{} 2017, 2018, 2019 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 Gábor Boskovits@* Copyright @copyright{} 2018 Florian Pelz@* Copyright @copyright{} 2018 Laura Lazzati@* Copyright @copyright{} 2018 Alex Vong@* Copyright @copyright{} 2019 Josh Holland@*"
544cab3d
LC
1429msgstr ""
1430
1431#. type: copying
32747aa9 1432#: doc/guix.texi:73
544cab3d
LC
1433msgid "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''."
1434msgstr ""
1435
1436#. type: dircategory
32747aa9 1437#: doc/guix.texi:75
544cab3d
LC
1438#, no-wrap
1439msgid "System administration"
32747aa9 1440msgstr "系统管理"
544cab3d
LC
1441
1442#. type: menuentry
32747aa9 1443#: doc/guix.texi:82
544cab3d 1444msgid "Guix: (guix)"
32747aa9 1445msgstr "Guix:(guix)"
544cab3d
LC
1446
1447#. type: menuentry
32747aa9 1448#: doc/guix.texi:82
544cab3d 1449msgid "Manage installed software and system configuration."
32747aa9 1450msgstr "管理安装的软件和系统配置。"
544cab3d
LC
1451
1452#. type: menuentry
32747aa9 1453#: doc/guix.texi:82
544cab3d 1454msgid "guix package: (guix)Invoking guix package"
32747aa9 1455msgstr "guix package:调用guix package"
544cab3d
LC
1456
1457#. type: menuentry
32747aa9 1458#: doc/guix.texi:82
544cab3d 1459msgid "Installing, removing, and upgrading packages."
32747aa9 1460msgstr "安装、删除和升级软件包。"
544cab3d
LC
1461
1462#. type: menuentry
32747aa9 1463#: doc/guix.texi:82
544cab3d 1464msgid "guix gc: (guix)Invoking guix gc"
32747aa9 1465msgstr "guix gc:调用guix gc"
544cab3d
LC
1466
1467#. type: menuentry
32747aa9 1468#: doc/guix.texi:82
544cab3d 1469msgid "Reclaiming unused disk space."
32747aa9 1470msgstr "回收不使用的硬盘空间。"
544cab3d
LC
1471
1472#. type: menuentry
32747aa9 1473#: doc/guix.texi:82
544cab3d 1474msgid "guix pull: (guix)Invoking guix pull"
32747aa9 1475msgstr "guix pull:调用guix pull"
544cab3d
LC
1476
1477#. type: menuentry
32747aa9 1478#: doc/guix.texi:82
544cab3d 1479msgid "Update the list of available packages."
32747aa9 1480msgstr "更新可用的软件包列表。"
544cab3d
LC
1481
1482#. type: menuentry
32747aa9 1483#: doc/guix.texi:82
544cab3d 1484msgid "guix system: (guix)Invoking guix system"
32747aa9 1485msgstr "guix system:调用guix system"
544cab3d
LC
1486
1487#. type: menuentry
32747aa9 1488#: doc/guix.texi:82
544cab3d 1489msgid "Manage the operating system configuration."
32747aa9 1490msgstr "管理操作系统配置。"
544cab3d
LC
1491
1492#. type: dircategory
32747aa9 1493#: doc/guix.texi:84
544cab3d
LC
1494#, no-wrap
1495msgid "Software development"
32747aa9 1496msgstr "软件开发"
544cab3d
LC
1497
1498#. type: menuentry
32747aa9 1499#: doc/guix.texi:89
544cab3d 1500msgid "guix environment: (guix)Invoking guix environment"
32747aa9 1501msgstr "guix environment:调用guix environment"
544cab3d
LC
1502
1503#. type: menuentry
32747aa9 1504#: doc/guix.texi:89
544cab3d 1505msgid "Building development environments with Guix."
32747aa9 1506msgstr "用Guix构建开发环境。"
544cab3d
LC
1507
1508#. type: menuentry
32747aa9 1509#: doc/guix.texi:89
544cab3d 1510msgid "guix build: (guix)Invoking guix build"
32747aa9 1511msgstr "guix build:(guix)调用guix build"
544cab3d
LC
1512
1513#. type: menuentry
32747aa9 1514#: doc/guix.texi:89
544cab3d 1515msgid "Building packages."
32747aa9 1516msgstr "构建软件包。"
544cab3d
LC
1517
1518#. type: menuentry
32747aa9 1519#: doc/guix.texi:89
544cab3d 1520msgid "guix pack: (guix)Invoking guix pack"
32747aa9 1521msgstr "guix pack:(guix)调用guix pack"
544cab3d
LC
1522
1523#. type: menuentry
32747aa9 1524#: doc/guix.texi:89
544cab3d 1525msgid "Creating binary bundles."
32747aa9 1526msgstr "创建二进制bundle。"
544cab3d
LC
1527
1528#. type: subtitle
32747aa9 1529#: doc/guix.texi:93
544cab3d
LC
1530#, no-wrap
1531msgid "Using the GNU Guix Functional Package Manager"
32747aa9 1532msgstr "使用GNU Guix函数式包管理器"
544cab3d
LC
1533
1534#. type: author
32747aa9 1535#: doc/guix.texi:94
544cab3d
LC
1536#, no-wrap
1537msgid "The GNU Guix Developers"
32747aa9 1538msgstr "GNU Guix开发者"
544cab3d
LC
1539
1540#. type: titlepage
32747aa9 1541#: doc/guix.texi:100
544cab3d 1542msgid "Edition @value{EDITION} @* @value{UPDATED} @*"
32747aa9 1543msgstr "版本@value{EDITION} @* @value{UPDATED} @*"
544cab3d
LC
1544
1545#. type: node
32747aa9 1546#: doc/guix.texi:107
544cab3d
LC
1547#, no-wrap
1548msgid "Top"
32747aa9 1549msgstr "Top"
544cab3d
LC
1550
1551#. type: top
32747aa9 1552#: doc/guix.texi:108
544cab3d
LC
1553#, no-wrap
1554msgid "GNU Guix"
32747aa9 1555msgstr "GNU Guix"
544cab3d
LC
1556
1557#. type: Plain text
32747aa9 1558#: doc/guix.texi:112
544cab3d 1559msgid "This document describes GNU Guix version @value{VERSION}, a functional package management tool written for the GNU system."
32747aa9 1560msgstr "这份文档介绍GNU Guix版本@value{VERSION},一个为GNU系统编写的函数式包管理器。"
544cab3d
LC
1561
1562#. type: Plain text
32747aa9
LC
1563#: doc/guix.texi:123
1564msgid "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}), and Spanish (@pxref{Top,,, guix.es, Manual de referencia de 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}."
1565msgstr "这个用户手册还提供简体中文版(@pxref{Top,,, guix.zh_CN, GNU Guix参考手册}),法语版(@pxref{Top,,, guix.fr, Manuel de référence de GNU Guix}),德语版(@pxref{Top,,, guix.de, Referenzhandbuch zu GNU Guix}),和西班牙语版(@pxref{Top,,, guix.es, Manual de referencia de GNU Guix})。如果你想把它翻译成你的母语,请考虑加入@uref{https://translationproject.org/domain/guix-manual.html, Translation Project}。"
544cab3d
LC
1566
1567#. type: chapter
32747aa9 1568#: doc/guix.texi:139 doc/guix.texi:149 doc/guix.texi:312 doc/guix.texi:313
544cab3d
LC
1569#, no-wrap
1570msgid "Introduction"
32747aa9 1571msgstr "介绍"
544cab3d
LC
1572
1573#. type: menuentry
32747aa9 1574#: doc/guix.texi:139
544cab3d 1575msgid "What is Guix about?"
32747aa9 1576msgstr "Guix是关于什么的?"
544cab3d
LC
1577
1578#. type: chapter
32747aa9 1579#: doc/guix.texi:139 doc/guix.texi:154 doc/guix.texi:471 doc/guix.texi:472
544cab3d
LC
1580#, no-wrap
1581msgid "Installation"
32747aa9 1582msgstr "安装"
544cab3d
LC
1583
1584#. type: menuentry
32747aa9 1585#: doc/guix.texi:139
544cab3d 1586msgid "Installing Guix."
32747aa9 1587msgstr "安装Guix。"
544cab3d
LC
1588
1589#. type: chapter
32747aa9 1590#: doc/guix.texi:139 doc/guix.texi:169 doc/guix.texi:1768 doc/guix.texi:1769
544cab3d
LC
1591#, no-wrap
1592msgid "System Installation"
32747aa9 1593msgstr "系统安装"
544cab3d
LC
1594
1595#. type: menuentry
32747aa9 1596#: doc/guix.texi:139
544cab3d 1597msgid "Installing the whole operating system."
32747aa9 1598msgstr "安装整个操作系统。"
544cab3d
LC
1599
1600#. type: chapter
32747aa9 1601#: doc/guix.texi:139 doc/guix.texi:186 doc/guix.texi:2479 doc/guix.texi:2480
544cab3d
LC
1602#, no-wrap
1603msgid "Package Management"
32747aa9 1604msgstr "软件包管理"
544cab3d
LC
1605
1606#. type: menuentry
32747aa9 1607#: doc/guix.texi:139
544cab3d 1608msgid "Package installation, upgrade, etc."
32747aa9 1609msgstr "软件包安装,升级,等"
544cab3d
LC
1610
1611#. type: chapter
32747aa9 1612#: doc/guix.texi:139 doc/guix.texi:208 doc/guix.texi:4331 doc/guix.texi:4332
544cab3d
LC
1613#, no-wrap
1614msgid "Development"
32747aa9 1615msgstr "开发"
544cab3d
LC
1616
1617#. type: menuentry
32747aa9 1618#: doc/guix.texi:139
544cab3d 1619msgid "Guix-aided software development."
32747aa9 1620msgstr "Guix辅助的软件开发。"
544cab3d
LC
1621
1622#. type: chapter
32747aa9 1623#: doc/guix.texi:139 doc/guix.texi:213 doc/guix.texi:4955 doc/guix.texi:4956
544cab3d
LC
1624#, no-wrap
1625msgid "Programming Interface"
32747aa9 1626msgstr "编程接口"
544cab3d
LC
1627
1628#. type: menuentry
32747aa9 1629#: doc/guix.texi:139
544cab3d 1630msgid "Using Guix in Scheme."
32747aa9 1631msgstr "在Scheme里使用Guix。"
544cab3d
LC
1632
1633#. type: chapter
32747aa9 1634#: doc/guix.texi:139 doc/guix.texi:229 doc/guix.texi:7583 doc/guix.texi:7584
544cab3d
LC
1635#, no-wrap
1636msgid "Utilities"
32747aa9 1637msgstr "工具"
544cab3d
LC
1638
1639#. type: menuentry
32747aa9 1640#: doc/guix.texi:139
544cab3d 1641msgid "Package management commands."
32747aa9 1642msgstr "软件包管理命令。"
544cab3d
LC
1643
1644#. type: chapter
32747aa9 1645#: doc/guix.texi:139 doc/guix.texi:254 doc/guix.texi:10194 doc/guix.texi:10195
544cab3d
LC
1646#, no-wrap
1647msgid "System Configuration"
32747aa9 1648msgstr "系统配置"
544cab3d
LC
1649
1650#. type: menuentry
32747aa9 1651#: doc/guix.texi:139
544cab3d 1652msgid "Configuring the operating system."
32747aa9 1653msgstr "配置操作系统。"
544cab3d
LC
1654
1655#. type: chapter
32747aa9 1656#: doc/guix.texi:139 doc/guix.texi:25392 doc/guix.texi:25393
544cab3d
LC
1657#, no-wrap
1658msgid "Documentation"
32747aa9 1659msgstr "文档"
544cab3d
LC
1660
1661#. type: menuentry
32747aa9 1662#: doc/guix.texi:139
544cab3d 1663msgid "Browsing software user manuals."
32747aa9 1664msgstr "浏览软件用户手册。"
544cab3d
LC
1665
1666#. type: chapter
32747aa9 1667#: doc/guix.texi:139 doc/guix.texi:25456 doc/guix.texi:25457
544cab3d
LC
1668#, no-wrap
1669msgid "Installing Debugging Files"
32747aa9 1670msgstr "安装调试文件"
544cab3d
LC
1671
1672#. type: menuentry
32747aa9 1673#: doc/guix.texi:139
544cab3d 1674msgid "Feeding the debugger."
32747aa9 1675msgstr "为调试工具提供输入。"
544cab3d
LC
1676
1677#. type: chapter
32747aa9 1678#: doc/guix.texi:139 doc/guix.texi:25522 doc/guix.texi:25523
544cab3d
LC
1679#, no-wrap
1680msgid "Security Updates"
32747aa9 1681msgstr "安全更新"
544cab3d
LC
1682
1683#. type: menuentry
32747aa9 1684#: doc/guix.texi:139
544cab3d 1685msgid "Deploying security fixes quickly."
32747aa9 1686msgstr "快速部署安全补丁。"
544cab3d
LC
1687
1688#. type: chapter
32747aa9 1689#: doc/guix.texi:139 doc/guix.texi:25642 doc/guix.texi:25643
544cab3d
LC
1690#, no-wrap
1691msgid "Bootstrapping"
32747aa9 1692msgstr "引导"
544cab3d
LC
1693
1694#. type: menuentry
32747aa9 1695#: doc/guix.texi:139
544cab3d 1696msgid "GNU/Linux built from scratch."
32747aa9 1697msgstr "从头开始构建GNU/Linux。"
544cab3d
LC
1698
1699#. type: node
32747aa9 1700#: doc/guix.texi:139 doc/guix.texi:25826
544cab3d
LC
1701#, no-wrap
1702msgid "Porting"
32747aa9 1703msgstr "移植"
544cab3d
LC
1704
1705#. type: menuentry
32747aa9 1706#: doc/guix.texi:139
544cab3d 1707msgid "Targeting another platform or kernel."
32747aa9 1708msgstr "以别的平台或内核为目标。"
544cab3d
LC
1709
1710#. type: menuentry
32747aa9 1711#: doc/guix.texi:139
544cab3d 1712msgid "Your help needed!"
32747aa9 1713msgstr "你需要帮助!"
544cab3d
LC
1714
1715#. type: chapter
32747aa9 1716#: doc/guix.texi:144 doc/guix.texi:25874 doc/guix.texi:25875
544cab3d
LC
1717#, no-wrap
1718msgid "Acknowledgments"
32747aa9 1719msgstr "致谢"
544cab3d
LC
1720
1721#. type: menuentry
32747aa9 1722#: doc/guix.texi:144
544cab3d 1723msgid "Thanks!"
32747aa9 1724msgstr "感谢!"
544cab3d
LC
1725
1726#. type: appendix
32747aa9 1727#: doc/guix.texi:144 doc/guix.texi:25896 doc/guix.texi:25897
544cab3d
LC
1728#, no-wrap
1729msgid "GNU Free Documentation License"
32747aa9 1730msgstr "GNU自由文档许可证"
544cab3d
LC
1731
1732#. type: menuentry
32747aa9 1733#: doc/guix.texi:144
544cab3d 1734msgid "The license of this manual."
32747aa9 1735msgstr "这个用户手册的许可证。"
544cab3d
LC
1736
1737#. type: unnumbered
32747aa9 1738#: doc/guix.texi:144 doc/guix.texi:25902 doc/guix.texi:25903
544cab3d
LC
1739#, no-wrap
1740msgid "Concept Index"
32747aa9 1741msgstr "概念索引"
544cab3d
LC
1742
1743#. type: menuentry
32747aa9 1744#: doc/guix.texi:144
544cab3d 1745msgid "Concepts."
32747aa9 1746msgstr "概念。"
544cab3d
LC
1747
1748#. type: unnumbered
32747aa9 1749#: doc/guix.texi:144 doc/guix.texi:25906 doc/guix.texi:25907
544cab3d
LC
1750#, no-wrap
1751msgid "Programming Index"
32747aa9 1752msgstr "编程索引"
544cab3d
LC
1753
1754#. type: menuentry
32747aa9 1755#: doc/guix.texi:144
544cab3d 1756msgid "Data types, functions, and variables."
32747aa9 1757msgstr "数据类型、函数和变量。"
544cab3d
LC
1758
1759#. type: menuentry
32747aa9 1760#: doc/guix.texi:147
544cab3d 1761msgid "--- The Detailed Node Listing ---"
32747aa9 1762msgstr "---详细的章节列表---"
544cab3d
LC
1763
1764#. type: section
32747aa9 1765#: doc/guix.texi:152 doc/guix.texi:339 doc/guix.texi:341 doc/guix.texi:342
544cab3d
LC
1766#, no-wrap
1767msgid "Managing Software the Guix Way"
32747aa9 1768msgstr "以Guix的方式管理软件"
544cab3d
LC
1769
1770#. type: menuentry
32747aa9 1771#: doc/guix.texi:152 doc/guix.texi:339
544cab3d 1772msgid "What's special."
32747aa9 1773msgstr "特殊的地方。"
544cab3d
LC
1774
1775#. type: section
32747aa9 1776#: doc/guix.texi:152 doc/guix.texi:339 doc/guix.texi:396 doc/guix.texi:397
544cab3d
LC
1777#, no-wrap
1778msgid "GNU Distribution"
32747aa9 1779msgstr "GNU发行版"
544cab3d
LC
1780
1781#. type: menuentry
32747aa9 1782#: doc/guix.texi:152 doc/guix.texi:339
544cab3d 1783msgid "The packages and tools."
32747aa9 1784msgstr "软件包和工具。"
544cab3d
LC
1785
1786#. type: section
32747aa9 1787#: doc/guix.texi:161 doc/guix.texi:510 doc/guix.texi:512 doc/guix.texi:513
544cab3d
LC
1788#, no-wrap
1789msgid "Binary Installation"
32747aa9 1790msgstr "二进制文件安装"
544cab3d
LC
1791
1792#. type: menuentry
32747aa9 1793#: doc/guix.texi:161 doc/guix.texi:510
544cab3d 1794msgid "Getting Guix running in no time!"
32747aa9 1795msgstr "立刻运行Guix!"
544cab3d
LC
1796
1797#. type: section
32747aa9 1798#: doc/guix.texi:161 doc/guix.texi:510 doc/guix.texi:714 doc/guix.texi:715
544cab3d
LC
1799#, no-wrap
1800msgid "Requirements"
32747aa9 1801msgstr "需求"
544cab3d
LC
1802
1803#. type: menuentry
32747aa9 1804#: doc/guix.texi:161 doc/guix.texi:510
544cab3d 1805msgid "Software needed to build and run Guix."
32747aa9 1806msgstr "构建和运行Guix需要的软件。"
544cab3d
LC
1807
1808#. type: section
32747aa9 1809#: doc/guix.texi:161 doc/guix.texi:510 doc/guix.texi:798 doc/guix.texi:799
544cab3d
LC
1810#, no-wrap
1811msgid "Running the Test Suite"
32747aa9 1812msgstr "运行测试套件"
544cab3d
LC
1813
1814#. type: menuentry
32747aa9 1815#: doc/guix.texi:161 doc/guix.texi:510
544cab3d 1816msgid "Testing Guix."
32747aa9 1817msgstr "测试Guix。"
544cab3d
LC
1818
1819#. type: section
32747aa9
LC
1820#: doc/guix.texi:161 doc/guix.texi:163 doc/guix.texi:510 doc/guix.texi:863
1821#: doc/guix.texi:864
544cab3d
LC
1822#, no-wrap
1823msgid "Setting Up the Daemon"
32747aa9 1824msgstr "设置后台进程"
544cab3d
LC
1825
1826#. type: menuentry
32747aa9 1827#: doc/guix.texi:161 doc/guix.texi:510
544cab3d 1828msgid "Preparing the build daemon's environment."
32747aa9 1829msgstr "准备“构建后台进程”的环境。"
544cab3d
LC
1830
1831#. type: node
32747aa9 1832#: doc/guix.texi:161 doc/guix.texi:510 doc/guix.texi:1294
544cab3d
LC
1833#, no-wrap
1834msgid "Invoking guix-daemon"
32747aa9 1835msgstr "调用guix-daemon"
544cab3d
LC
1836
1837#. type: menuentry
32747aa9 1838#: doc/guix.texi:161 doc/guix.texi:510
544cab3d 1839msgid "Running the build daemon."
32747aa9 1840msgstr "运行“构建后台进程”"
544cab3d
LC
1841
1842#. type: section
32747aa9 1843#: doc/guix.texi:161 doc/guix.texi:510 doc/guix.texi:1562 doc/guix.texi:1563
544cab3d
LC
1844#, no-wrap
1845msgid "Application Setup"
32747aa9 1846msgstr "设置应用程序"
544cab3d
LC
1847
1848#. type: menuentry
32747aa9 1849#: doc/guix.texi:161 doc/guix.texi:510
544cab3d 1850msgid "Application-specific setup."
32747aa9 1851msgstr "应用程序相关的设置。"
544cab3d
LC
1852
1853#. type: subsection
32747aa9 1854#: doc/guix.texi:167 doc/guix.texi:883 doc/guix.texi:885 doc/guix.texi:886
544cab3d
LC
1855#, no-wrap
1856msgid "Build Environment Setup"
32747aa9 1857msgstr "设置构建环境"
544cab3d
LC
1858
1859#. type: menuentry
32747aa9 1860#: doc/guix.texi:167 doc/guix.texi:883
544cab3d 1861msgid "Preparing the isolated build environment."
32747aa9 1862msgstr "准备隔离的构建环境。"
544cab3d
LC
1863
1864#. type: node
32747aa9 1865#: doc/guix.texi:167 doc/guix.texi:883 doc/guix.texi:1002
544cab3d
LC
1866#, no-wrap
1867msgid "Daemon Offload Setup"
32747aa9 1868msgstr "下发工作给后台进程的设置"
544cab3d
LC
1869
1870#. type: menuentry
32747aa9 1871#: doc/guix.texi:167 doc/guix.texi:883
544cab3d 1872msgid "Offloading builds to remote machines."
32747aa9 1873msgstr "下发构建工作给远程的机器。"
544cab3d
LC
1874
1875#. type: subsection
32747aa9 1876#: doc/guix.texi:167 doc/guix.texi:883 doc/guix.texi:1208 doc/guix.texi:1209
544cab3d
LC
1877#, no-wrap
1878msgid "SELinux Support"
32747aa9 1879msgstr "SELinux的支持"
544cab3d
LC
1880
1881#. type: menuentry
32747aa9 1882#: doc/guix.texi:167 doc/guix.texi:883
544cab3d 1883msgid "Using an SELinux policy for the daemon."
32747aa9 1884msgstr "为后台进程使用SELinux规则。"
544cab3d
LC
1885
1886#. type: section
32747aa9
LC
1887#: doc/guix.texi:179 doc/guix.texi:1244 doc/guix.texi:1802 doc/guix.texi:1804
1888#: doc/guix.texi:1805
544cab3d
LC
1889#, no-wrap
1890msgid "Limitations"
32747aa9 1891msgstr "限制"
544cab3d
LC
1892
1893#. type: menuentry
32747aa9 1894#: doc/guix.texi:179 doc/guix.texi:1802
544cab3d 1895msgid "What you can expect."
32747aa9 1896msgstr "你可以期待什么。"
544cab3d
LC
1897
1898#. type: section
32747aa9 1899#: doc/guix.texi:179 doc/guix.texi:1802 doc/guix.texi:1833 doc/guix.texi:1834
544cab3d
LC
1900#, no-wrap
1901msgid "Hardware Considerations"
32747aa9 1902msgstr "硬件的考虑"
544cab3d
LC
1903
1904#. type: menuentry
32747aa9 1905#: doc/guix.texi:179 doc/guix.texi:1802
544cab3d 1906msgid "Supported hardware."
32747aa9 1907msgstr "支持的硬件。"
544cab3d
LC
1908
1909#. type: section
32747aa9 1910#: doc/guix.texi:179 doc/guix.texi:1802 doc/guix.texi:1868 doc/guix.texi:1869
544cab3d
LC
1911#, no-wrap
1912msgid "USB Stick and DVD Installation"
32747aa9 1913msgstr "U盘和DVD安装"
544cab3d
LC
1914
1915#. type: menuentry
32747aa9 1916#: doc/guix.texi:179 doc/guix.texi:1802
544cab3d 1917msgid "Preparing the installation medium."
32747aa9 1918msgstr "准备安装介质。"
544cab3d
LC
1919
1920#. type: section
32747aa9 1921#: doc/guix.texi:179 doc/guix.texi:1802 doc/guix.texi:1967 doc/guix.texi:1968
544cab3d
LC
1922#, no-wrap
1923msgid "Preparing for Installation"
32747aa9 1924msgstr "准备安装"
544cab3d
LC
1925
1926#. type: menuentry
32747aa9 1927#: doc/guix.texi:179 doc/guix.texi:1802
544cab3d 1928msgid "Networking, partitioning, etc."
32747aa9 1929msgstr "网络、分区、等"
544cab3d
LC
1930
1931#. type: section
32747aa9 1932#: doc/guix.texi:179 doc/guix.texi:1802 doc/guix.texi:1990 doc/guix.texi:1991
544cab3d
LC
1933#, no-wrap
1934msgid "Guided Graphical Installation"
32747aa9 1935msgstr "指导的图形安装"
544cab3d
LC
1936
1937#. type: menuentry
32747aa9 1938#: doc/guix.texi:179 doc/guix.texi:1802
544cab3d 1939msgid "Easy graphical installation."
32747aa9 1940msgstr "简单的图形安装"
544cab3d
LC
1941
1942#. type: section
32747aa9
LC
1943#: doc/guix.texi:179 doc/guix.texi:181 doc/guix.texi:1802 doc/guix.texi:2021
1944#: doc/guix.texi:2022
544cab3d
LC
1945#, no-wrap
1946msgid "Manual Installation"
32747aa9 1947msgstr "手动安装"
544cab3d
LC
1948
1949#. type: menuentry
32747aa9 1950#: doc/guix.texi:179 doc/guix.texi:1802
544cab3d 1951msgid "Manual installation for wizards."
32747aa9 1952msgstr "适合巫师的手动安装。"
544cab3d
LC
1953
1954#. type: section
32747aa9 1955#: doc/guix.texi:179 doc/guix.texi:1802 doc/guix.texi:2364 doc/guix.texi:2365
544cab3d
LC
1956#, no-wrap
1957msgid "After System Installation"
32747aa9 1958msgstr "系统安装之后"
544cab3d
LC
1959
1960#. type: menuentry
32747aa9 1961#: doc/guix.texi:179 doc/guix.texi:1802
544cab3d 1962msgid "When installation succeeded."
32747aa9 1963msgstr "当安装成功后。"
544cab3d
LC
1964
1965#. type: node
32747aa9 1966#: doc/guix.texi:179 doc/guix.texi:1802 doc/guix.texi:2392
544cab3d
LC
1967#, no-wrap
1968msgid "Installing Guix in a VM"
32747aa9 1969msgstr "在虚拟机里安装Guix。"
544cab3d
LC
1970
1971#. type: menuentry
32747aa9 1972#: doc/guix.texi:179 doc/guix.texi:1802
544cab3d 1973msgid "Guix System playground."
32747aa9 1974msgstr "Guix系统游乐场。"
544cab3d
LC
1975
1976#. type: section
32747aa9 1977#: doc/guix.texi:179 doc/guix.texi:1802 doc/guix.texi:2446 doc/guix.texi:2447
544cab3d
LC
1978#, no-wrap
1979msgid "Building the Installation Image"
32747aa9 1980msgstr "构建安装镜像"
544cab3d
LC
1981
1982#. type: menuentry
32747aa9 1983#: doc/guix.texi:179 doc/guix.texi:1802
544cab3d 1984msgid "How this comes to be."
32747aa9 1985msgstr "这是怎样实现的。"
544cab3d
LC
1986
1987#. type: node
32747aa9 1988#: doc/guix.texi:184 doc/guix.texi:2039 doc/guix.texi:2041
544cab3d
LC
1989#, no-wrap
1990msgid "Keyboard Layout and Networking and Partitioning"
32747aa9 1991msgstr "键盘布局、网络和分区"
544cab3d
LC
1992
1993#. type: menuentry
32747aa9 1994#: doc/guix.texi:184 doc/guix.texi:2039
544cab3d 1995msgid "Initial setup."
32747aa9 1996msgstr "初始设置。"
544cab3d
LC
1997
1998#. type: subsection
32747aa9 1999#: doc/guix.texi:184 doc/guix.texi:2039 doc/guix.texi:2276 doc/guix.texi:2277
544cab3d
LC
2000#, no-wrap
2001msgid "Proceeding with the Installation"
32747aa9 2002msgstr "继续安装步骤。"
544cab3d
LC
2003
2004#. type: menuentry
32747aa9 2005#: doc/guix.texi:184 doc/guix.texi:2039
544cab3d 2006msgid "Installing."
32747aa9 2007msgstr "安装。"
544cab3d
LC
2008
2009#. type: section
32747aa9 2010#: doc/guix.texi:197 doc/guix.texi:2511 doc/guix.texi:2513 doc/guix.texi:2514
544cab3d
LC
2011#, no-wrap
2012msgid "Features"
32747aa9 2013msgstr "功能"
544cab3d
LC
2014
2015#. type: menuentry
32747aa9 2016#: doc/guix.texi:197 doc/guix.texi:2511
544cab3d 2017msgid "How Guix will make your life brighter."
32747aa9 2018msgstr "Guix怎样让你的生活更美好。"
544cab3d
LC
2019
2020#. type: node
32747aa9 2021#: doc/guix.texi:197 doc/guix.texi:2511 doc/guix.texi:2599
544cab3d
LC
2022#, no-wrap
2023msgid "Invoking guix package"
32747aa9 2024msgstr "调用guix package"
544cab3d
LC
2025
2026#. type: menuentry
32747aa9 2027#: doc/guix.texi:197 doc/guix.texi:2511
544cab3d 2028msgid "Package installation, removal, etc."
32747aa9 2029msgstr "软件包安装,删除,等"
544cab3d
LC
2030
2031#. type: section
32747aa9
LC
2032#: doc/guix.texi:197 doc/guix.texi:199 doc/guix.texi:2511 doc/guix.texi:3100
2033#: doc/guix.texi:3101
544cab3d
LC
2034#, no-wrap
2035msgid "Substitutes"
2036msgstr ""
2037
2038#. type: menuentry
32747aa9 2039#: doc/guix.texi:197 doc/guix.texi:2511
544cab3d 2040msgid "Downloading pre-built binaries."
32747aa9 2041msgstr "下载构建好的二进制文件。"
544cab3d
LC
2042
2043#. type: section
32747aa9 2044#: doc/guix.texi:197 doc/guix.texi:2511 doc/guix.texi:3328 doc/guix.texi:3329
544cab3d
LC
2045#, no-wrap
2046msgid "Packages with Multiple Outputs"
32747aa9 2047msgstr "有多个输出的软件包"
544cab3d
LC
2048
2049#. type: menuentry
32747aa9 2050#: doc/guix.texi:197 doc/guix.texi:2511
544cab3d 2051msgid "Single source package, multiple outputs."
32747aa9 2052msgstr "单个输入多个输出的软件包。"
544cab3d
LC
2053
2054#. type: node
32747aa9 2055#: doc/guix.texi:197 doc/guix.texi:2511 doc/guix.texi:3382
544cab3d
LC
2056#, no-wrap
2057msgid "Invoking guix gc"
32747aa9 2058msgstr "调用guix gc"
544cab3d
LC
2059
2060#. type: menuentry
32747aa9 2061#: doc/guix.texi:197 doc/guix.texi:2511
544cab3d 2062msgid "Running the garbage collector."
32747aa9 2063msgstr "运行垃圾回收器。"
544cab3d
LC
2064
2065#. type: node
32747aa9 2066#: doc/guix.texi:197 doc/guix.texi:2511 doc/guix.texi:3588
544cab3d
LC
2067#, no-wrap
2068msgid "Invoking guix pull"
32747aa9 2069msgstr "调用guix pull"
544cab3d
LC
2070
2071#. type: menuentry
32747aa9 2072#: doc/guix.texi:197 doc/guix.texi:2511
544cab3d 2073msgid "Fetching the latest Guix and distribution."
32747aa9 2074msgstr "获取最新的Guix和发行版。"
544cab3d
LC
2075
2076#. type: section
32747aa9 2077#: doc/guix.texi:197 doc/guix.texi:2511 doc/guix.texi:3743 doc/guix.texi:3744
544cab3d
LC
2078#, no-wrap
2079msgid "Channels"
32747aa9 2080msgstr "通道"
544cab3d
LC
2081
2082#. type: menuentry
32747aa9 2083#: doc/guix.texi:197 doc/guix.texi:2511
544cab3d 2084msgid "Customizing the package collection."
32747aa9 2085msgstr "定制软件包集合。"
544cab3d
LC
2086
2087#. type: section
32747aa9 2088#: doc/guix.texi:197 doc/guix.texi:2511 doc/guix.texi:3956 doc/guix.texi:3957
544cab3d
LC
2089#, no-wrap
2090msgid "Inferiors"
2091msgstr ""
2092
2093#. type: menuentry
32747aa9 2094#: doc/guix.texi:197 doc/guix.texi:2511
544cab3d 2095msgid "Interacting with another revision of Guix."
32747aa9 2096msgstr "和其它版本的Guix交互。"
544cab3d
LC
2097
2098#. type: node
32747aa9 2099#: doc/guix.texi:197 doc/guix.texi:2511 doc/guix.texi:4084
544cab3d
LC
2100#, no-wrap
2101msgid "Invoking guix describe"
32747aa9 2102msgstr "调用guix describe"
544cab3d
LC
2103
2104#. type: menuentry
32747aa9 2105#: doc/guix.texi:197 doc/guix.texi:2511
544cab3d 2106msgid "Display information about your Guix revision."
32747aa9 2107msgstr "显示你的Guix版本信息。"
544cab3d
LC
2108
2109#. type: node
32747aa9 2110#: doc/guix.texi:197 doc/guix.texi:2511 doc/guix.texi:4165
544cab3d
LC
2111#, no-wrap
2112msgid "Invoking guix archive"
32747aa9 2113msgstr "调用guix archive"
544cab3d
LC
2114
2115#. type: menuentry
32747aa9 2116#: doc/guix.texi:197 doc/guix.texi:2511
544cab3d 2117msgid "Exporting and importing store files."
32747aa9 2118msgstr "导出和导入仓库文件。"
544cab3d
LC
2119
2120#. type: subsection
32747aa9 2121#: doc/guix.texi:206 doc/guix.texi:3123 doc/guix.texi:3125 doc/guix.texi:3126
544cab3d
LC
2122#, no-wrap
2123msgid "Official Substitute Server"
32747aa9 2124msgstr "官方的substitute服务器"
544cab3d
LC
2125
2126#. type: menuentry
32747aa9 2127#: doc/guix.texi:206 doc/guix.texi:3123
544cab3d 2128msgid "One particular source of substitutes."
32747aa9 2129msgstr "substitute的一个特殊来源。"
544cab3d
LC
2130
2131#. type: subsection
32747aa9 2132#: doc/guix.texi:206 doc/guix.texi:3123 doc/guix.texi:3155 doc/guix.texi:3156
544cab3d
LC
2133#, no-wrap
2134msgid "Substitute Server Authorization"
32747aa9 2135msgstr "授权substitute服务器。"
544cab3d
LC
2136
2137#. type: menuentry
32747aa9 2138#: doc/guix.texi:206 doc/guix.texi:3123
544cab3d 2139msgid "How to enable or disable substitutes."
32747aa9 2140msgstr "怎么开启或关闭substitute。"
544cab3d
LC
2141
2142#. type: subsection
32747aa9 2143#: doc/guix.texi:206 doc/guix.texi:3123 doc/guix.texi:3223 doc/guix.texi:3224
544cab3d
LC
2144#, no-wrap
2145msgid "Substitute Authentication"
32747aa9 2146msgstr "验证substitute"
544cab3d
LC
2147
2148#. type: menuentry
32747aa9 2149#: doc/guix.texi:206 doc/guix.texi:3123
544cab3d 2150msgid "How Guix verifies substitutes."
32747aa9 2151msgstr "Guix怎样验证substitute。"
544cab3d
LC
2152
2153#. type: subsection
32747aa9 2154#: doc/guix.texi:206 doc/guix.texi:3123 doc/guix.texi:3258 doc/guix.texi:3259
544cab3d
LC
2155#, no-wrap
2156msgid "Proxy Settings"
32747aa9 2157msgstr "代理设置"
544cab3d
LC
2158
2159#. type: menuentry
32747aa9 2160#: doc/guix.texi:206 doc/guix.texi:3123
544cab3d 2161msgid "How to get substitutes via proxy."
32747aa9 2162msgstr "怎样通过代理获取substitute。"
544cab3d
LC
2163
2164#. type: subsection
32747aa9 2165#: doc/guix.texi:206 doc/guix.texi:3123 doc/guix.texi:3270 doc/guix.texi:3271
544cab3d
LC
2166#, no-wrap
2167msgid "Substitution Failure"
32747aa9 2168msgstr "substitute失败"
544cab3d
LC
2169
2170#. type: menuentry
32747aa9 2171#: doc/guix.texi:206 doc/guix.texi:3123
544cab3d 2172msgid "What happens when substitution fails."
32747aa9 2173msgstr "当substitute失败时会发生什么。"
544cab3d
LC
2174
2175#. type: subsection
32747aa9 2176#: doc/guix.texi:206 doc/guix.texi:3123 doc/guix.texi:3298 doc/guix.texi:3299
544cab3d
LC
2177#, no-wrap
2178msgid "On Trusting Binaries"
32747aa9 2179msgstr "关于信任二进制文件"
544cab3d
LC
2180
2181#. type: menuentry
32747aa9 2182#: doc/guix.texi:206 doc/guix.texi:3123
544cab3d 2183msgid "How can you trust that binary blob?"
32747aa9 2184msgstr "你怎么信任二进制块。"
544cab3d
LC
2185
2186#. type: node
32747aa9 2187#: doc/guix.texi:211 doc/guix.texi:4348 doc/guix.texi:4350
544cab3d
LC
2188#, no-wrap
2189msgid "Invoking guix environment"
32747aa9 2190msgstr "调用guix environment"
544cab3d
LC
2191
2192#. type: menuentry
32747aa9 2193#: doc/guix.texi:211 doc/guix.texi:4348
544cab3d 2194msgid "Setting up development environments."
32747aa9 2195msgstr "设置开发环境。"
544cab3d
LC
2196
2197#. type: node
32747aa9 2198#: doc/guix.texi:211 doc/guix.texi:4348 doc/guix.texi:4689
544cab3d
LC
2199#, no-wrap
2200msgid "Invoking guix pack"
32747aa9 2201msgstr "调用guix pack"
544cab3d
LC
2202
2203#. type: menuentry
32747aa9 2204#: doc/guix.texi:211 doc/guix.texi:4348
544cab3d 2205msgid "Creating software bundles."
32747aa9 2206msgstr "创建软件bundle。"
544cab3d
LC
2207
2208#. type: section
32747aa9 2209#: doc/guix.texi:222 doc/guix.texi:4992 doc/guix.texi:4994 doc/guix.texi:4995
544cab3d
LC
2210#, no-wrap
2211msgid "Package Modules"
32747aa9 2212msgstr "软件包模块"
544cab3d
LC
2213
2214#. type: menuentry
32747aa9 2215#: doc/guix.texi:222 doc/guix.texi:4992
544cab3d 2216msgid "Packages from the programmer's viewpoint."
32747aa9 2217msgstr "从程序员的角度看软件包。"
544cab3d
LC
2218
2219#. type: section
32747aa9
LC
2220#: doc/guix.texi:222 doc/guix.texi:224 doc/guix.texi:4992 doc/guix.texi:5056
2221#: doc/guix.texi:5057
544cab3d
LC
2222#, no-wrap
2223msgid "Defining Packages"
32747aa9 2224msgstr "定义软件包"
544cab3d
LC
2225
2226#. type: menuentry
32747aa9 2227#: doc/guix.texi:222 doc/guix.texi:4992
544cab3d 2228msgid "Defining new packages."
32747aa9 2229msgstr "定义新软件包。"
544cab3d
LC
2230
2231#. type: section
32747aa9 2232#: doc/guix.texi:222 doc/guix.texi:4992 doc/guix.texi:5559 doc/guix.texi:5560
544cab3d
LC
2233#, no-wrap
2234msgid "Build Systems"
32747aa9 2235msgstr "构建系统"
544cab3d
LC
2236
2237#. type: menuentry
32747aa9 2238#: doc/guix.texi:222 doc/guix.texi:4992
544cab3d 2239msgid "Specifying how packages are built."
32747aa9 2240msgstr "指定如何构建软件包。"
544cab3d
LC
2241
2242#. type: section
32747aa9 2243#: doc/guix.texi:222 doc/guix.texi:4992 doc/guix.texi:6297 doc/guix.texi:6298
544cab3d
LC
2244#, no-wrap
2245msgid "The Store"
32747aa9 2246msgstr "仓库"
544cab3d
LC
2247
2248#. type: menuentry
32747aa9 2249#: doc/guix.texi:222 doc/guix.texi:4992
544cab3d 2250msgid "Manipulating the package store."
32747aa9 2251msgstr "操纵软件包仓库。"
544cab3d
LC
2252
2253#. type: section
32747aa9 2254#: doc/guix.texi:222 doc/guix.texi:4992 doc/guix.texi:6447 doc/guix.texi:6448
544cab3d
LC
2255#, no-wrap
2256msgid "Derivations"
2257msgstr ""
2258
2259#. type: menuentry
32747aa9 2260#: doc/guix.texi:222 doc/guix.texi:4992
544cab3d 2261msgid "Low-level interface to package derivations."
32747aa9 2262msgstr "软件包derivation的底层接口。"
544cab3d
LC
2263
2264#. type: section
32747aa9 2265#: doc/guix.texi:222 doc/guix.texi:4992 doc/guix.texi:6641 doc/guix.texi:6642
544cab3d
LC
2266#, no-wrap
2267msgid "The Store Monad"
32747aa9 2268msgstr "仓库monad"
544cab3d
LC
2269
2270#. type: menuentry
32747aa9 2271#: doc/guix.texi:222 doc/guix.texi:4992
544cab3d 2272msgid "Purely functional interface to the store."
32747aa9 2273msgstr "仓库的纯函数式接口。"
544cab3d
LC
2274
2275#. type: section
32747aa9 2276#: doc/guix.texi:222 doc/guix.texi:4992 doc/guix.texi:6956 doc/guix.texi:6957
544cab3d
LC
2277#, no-wrap
2278msgid "G-Expressions"
32747aa9 2279msgstr "G-表达式"
544cab3d
LC
2280
2281#. type: menuentry
32747aa9 2282#: doc/guix.texi:222 doc/guix.texi:4992
544cab3d 2283msgid "Manipulating build expressions."
32747aa9 2284msgstr "操纵构建表达式。"
544cab3d
LC
2285
2286#. type: node
32747aa9 2287#: doc/guix.texi:222 doc/guix.texi:4992 doc/guix.texi:7530
544cab3d
LC
2288#, no-wrap
2289msgid "Invoking guix repl"
32747aa9 2290msgstr "调用guix repl"
544cab3d
LC
2291
2292#. type: menuentry
32747aa9 2293#: doc/guix.texi:222 doc/guix.texi:4992
544cab3d 2294msgid "Fiddling with Guix interactively."
32747aa9 2295msgstr "交互式地操作Guix。"
544cab3d
LC
2296
2297#. type: node
32747aa9 2298#: doc/guix.texi:227 doc/guix.texi:5324 doc/guix.texi:5327
544cab3d
LC
2299#, no-wrap
2300msgid "package Reference"
32747aa9 2301msgstr "软件包引用"
544cab3d
LC
2302
2303#. type: menuentry
32747aa9 2304#: doc/guix.texi:227 doc/guix.texi:5324
544cab3d 2305msgid "The package data type."
32747aa9 2306msgstr "软件包数据类型。"
544cab3d
LC
2307
2308#. type: node
32747aa9 2309#: doc/guix.texi:227 doc/guix.texi:5324 doc/guix.texi:5471
544cab3d
LC
2310#, no-wrap
2311msgid "origin Reference"
32747aa9 2312msgstr "origin参考手册"
544cab3d
LC
2313
2314#. type: menuentry
32747aa9 2315#: doc/guix.texi:227 doc/guix.texi:5324
544cab3d 2316msgid "The origin data type."
32747aa9 2317msgstr "origin数据类型。"
544cab3d
LC
2318
2319#. type: node
32747aa9 2320#: doc/guix.texi:245 doc/guix.texi:7607 doc/guix.texi:7609
544cab3d
LC
2321#, no-wrap
2322msgid "Invoking guix build"
32747aa9 2323msgstr "调用guix build"
544cab3d
LC
2324
2325#. type: menuentry
32747aa9 2326#: doc/guix.texi:245 doc/guix.texi:7607
544cab3d 2327msgid "Building packages from the command line."
32747aa9 2328msgstr "用命令行构建软件包。"
544cab3d
LC
2329
2330#. type: node
32747aa9 2331#: doc/guix.texi:245 doc/guix.texi:7607 doc/guix.texi:8260
544cab3d
LC
2332#, no-wrap
2333msgid "Invoking guix edit"
32747aa9 2334msgstr "调用guix edit。"
544cab3d
LC
2335
2336#. type: menuentry
32747aa9 2337#: doc/guix.texi:245 doc/guix.texi:7607
544cab3d 2338msgid "Editing package definitions."
32747aa9 2339msgstr "编辑软件包定义。"
544cab3d
LC
2340
2341#. type: node
32747aa9 2342#: doc/guix.texi:245 doc/guix.texi:7607 doc/guix.texi:8286
544cab3d
LC
2343#, no-wrap
2344msgid "Invoking guix download"
32747aa9 2345msgstr "调用guix download"
544cab3d
LC
2346
2347#. type: menuentry
32747aa9 2348#: doc/guix.texi:245 doc/guix.texi:7607
544cab3d 2349msgid "Downloading a file and printing its hash."
32747aa9 2350msgstr "下载一个文件并打印它的hash。"
544cab3d
LC
2351
2352#. type: node
32747aa9 2353#: doc/guix.texi:245 doc/guix.texi:7607 doc/guix.texi:8339
544cab3d
LC
2354#, no-wrap
2355msgid "Invoking guix hash"
32747aa9 2356msgstr "调用guix hash"
544cab3d
LC
2357
2358#. type: menuentry
32747aa9 2359#: doc/guix.texi:245 doc/guix.texi:7607
544cab3d 2360msgid "Computing the cryptographic hash of a file."
32747aa9 2361msgstr "计算一个文件的密码学hash。"
544cab3d
LC
2362
2363#. type: node
32747aa9 2364#: doc/guix.texi:245 doc/guix.texi:7607 doc/guix.texi:8401
544cab3d
LC
2365#, no-wrap
2366msgid "Invoking guix import"
32747aa9 2367msgstr "调用guix import"
544cab3d
LC
2368
2369#. type: menuentry
32747aa9 2370#: doc/guix.texi:245 doc/guix.texi:7607
544cab3d 2371msgid "Importing package definitions."
32747aa9 2372msgstr "导入软件包定义。"
544cab3d
LC
2373
2374#. type: node
32747aa9 2375#: doc/guix.texi:245 doc/guix.texi:7607 doc/guix.texi:8799
544cab3d
LC
2376#, no-wrap
2377msgid "Invoking guix refresh"
32747aa9 2378msgstr "调用guix refresh"
544cab3d
LC
2379
2380#. type: menuentry
32747aa9 2381#: doc/guix.texi:245 doc/guix.texi:7607
544cab3d 2382msgid "Updating package definitions."
32747aa9 2383msgstr "更新软件包定义。"
544cab3d
LC
2384
2385#. type: node
32747aa9 2386#: doc/guix.texi:245 doc/guix.texi:7607 doc/guix.texi:9110
544cab3d
LC
2387#, no-wrap
2388msgid "Invoking guix lint"
32747aa9 2389msgstr "调用guix lint"
544cab3d
LC
2390
2391#. type: menuentry
32747aa9 2392#: doc/guix.texi:245 doc/guix.texi:7607
544cab3d 2393msgid "Finding errors in package definitions."
32747aa9 2394msgstr "从软件包定义里寻找错误。"
544cab3d
LC
2395
2396#. type: node
32747aa9 2397#: doc/guix.texi:245 doc/guix.texi:7607 doc/guix.texi:9226
544cab3d
LC
2398#, no-wrap
2399msgid "Invoking guix size"
32747aa9 2400msgstr "调用guix size"
544cab3d
LC
2401
2402#. type: menuentry
32747aa9 2403#: doc/guix.texi:245 doc/guix.texi:7607
544cab3d 2404msgid "Profiling disk usage."
32747aa9 2405msgstr "分析硬盘使用情况。"
544cab3d
LC
2406
2407#. type: node
32747aa9 2408#: doc/guix.texi:245 doc/guix.texi:7607 doc/guix.texi:9350
544cab3d
LC
2409#, no-wrap
2410msgid "Invoking guix graph"
32747aa9 2411msgstr "调用guix graph"
544cab3d
LC
2412
2413#. type: menuentry
32747aa9 2414#: doc/guix.texi:245 doc/guix.texi:7607
544cab3d 2415msgid "Visualizing the graph of packages."
32747aa9 2416msgstr "展示软件包的关系图。"
544cab3d
LC
2417
2418#. type: node
32747aa9 2419#: doc/guix.texi:245 doc/guix.texi:7607 doc/guix.texi:9553
544cab3d
LC
2420#, no-wrap
2421msgid "Invoking guix publish"
32747aa9 2422msgstr "调用guix publish"
544cab3d
LC
2423
2424#. type: menuentry
32747aa9 2425#: doc/guix.texi:245 doc/guix.texi:7607
544cab3d 2426msgid "Sharing substitutes."
32747aa9 2427msgstr "分享substitute。"
544cab3d
LC
2428
2429#. type: node
32747aa9 2430#: doc/guix.texi:245 doc/guix.texi:7607 doc/guix.texi:9770
544cab3d
LC
2431#, no-wrap
2432msgid "Invoking guix challenge"
32747aa9 2433msgstr "调用guix challenge"
544cab3d
LC
2434
2435#. type: menuentry
32747aa9 2436#: doc/guix.texi:245 doc/guix.texi:7607
544cab3d 2437msgid "Challenging substitute servers."
32747aa9 2438msgstr "挑战subtitute服务器。"
544cab3d
LC
2439
2440#. type: node
32747aa9 2441#: doc/guix.texi:245 doc/guix.texi:7607 doc/guix.texi:9909
544cab3d
LC
2442#, no-wrap
2443msgid "Invoking guix copy"
32747aa9 2444msgstr "调用guix copy"
544cab3d
LC
2445
2446#. type: menuentry
32747aa9 2447#: doc/guix.texi:245 doc/guix.texi:7607
544cab3d 2448msgid "Copying to and from a remote store."
32747aa9 2449msgstr "复制到远程的仓库,或从远程的仓库复制。"
544cab3d
LC
2450
2451#. type: node
32747aa9 2452#: doc/guix.texi:245 doc/guix.texi:7607 doc/guix.texi:9972
544cab3d
LC
2453#, no-wrap
2454msgid "Invoking guix container"
32747aa9 2455msgstr "调用guix container"
544cab3d
LC
2456
2457#. type: menuentry
32747aa9 2458#: doc/guix.texi:245 doc/guix.texi:7607
544cab3d 2459msgid "Process isolation."
32747aa9 2460msgstr "进程隔离。"
544cab3d
LC
2461
2462#. type: node
32747aa9 2463#: doc/guix.texi:245 doc/guix.texi:7607 doc/guix.texi:10026
544cab3d
LC
2464#, no-wrap
2465msgid "Invoking guix weather"
32747aa9 2466msgstr "调用guix weather"
544cab3d
LC
2467
2468#. type: menuentry
32747aa9 2469#: doc/guix.texi:245 doc/guix.texi:7607
544cab3d 2470msgid "Assessing substitute availability."
32747aa9 2471msgstr "评估substitute的可用性。"
544cab3d
LC
2472
2473#. type: node
32747aa9 2474#: doc/guix.texi:245 doc/guix.texi:7607 doc/guix.texi:10137
544cab3d
LC
2475#, no-wrap
2476msgid "Invoking guix processes"
32747aa9 2477msgstr "调用guix processes"
544cab3d
LC
2478
2479#. type: menuentry
32747aa9 2480#: doc/guix.texi:245 doc/guix.texi:7607
544cab3d 2481msgid "Listing client processes."
32747aa9 2482msgstr "列出客户端进程。"
544cab3d
LC
2483
2484#. type: section
32747aa9 2485#: doc/guix.texi:247 doc/guix.texi:7610
544cab3d
LC
2486#, no-wrap
2487msgid "Invoking @command{guix build}"
32747aa9 2488msgstr "调用@command{guix build}"
544cab3d
LC
2489
2490#. type: subsection
32747aa9 2491#: doc/guix.texi:252 doc/guix.texi:7661 doc/guix.texi:7663 doc/guix.texi:7664
544cab3d
LC
2492#, no-wrap
2493msgid "Common Build Options"
32747aa9 2494msgstr "普通的构建选项"
544cab3d
LC
2495
2496#. type: menuentry
32747aa9 2497#: doc/guix.texi:252 doc/guix.texi:7661
544cab3d 2498msgid "Build options for most commands."
32747aa9 2499msgstr "大部分命令的构建选项。"
544cab3d
LC
2500
2501#. type: subsection
32747aa9 2502#: doc/guix.texi:252 doc/guix.texi:7661 doc/guix.texi:7819 doc/guix.texi:7820
544cab3d
LC
2503#, no-wrap
2504msgid "Package Transformation Options"
32747aa9 2505msgstr "软件包变换选项。"
544cab3d
LC
2506
2507#. type: menuentry
32747aa9 2508#: doc/guix.texi:252 doc/guix.texi:7661
544cab3d 2509msgid "Creating variants of packages."
32747aa9 2510msgstr "创建软件包的变体。"
544cab3d
LC
2511
2512#. type: subsection
32747aa9 2513#: doc/guix.texi:252 doc/guix.texi:7661 doc/guix.texi:7968 doc/guix.texi:7969
544cab3d
LC
2514#, no-wrap
2515msgid "Additional Build Options"
32747aa9 2516msgstr "额外的构建选项"
544cab3d
LC
2517
2518#. type: menuentry
32747aa9 2519#: doc/guix.texi:252 doc/guix.texi:7661
544cab3d 2520msgid "Options specific to 'guix build'."
32747aa9 2521msgstr "只属于'guix build'的选项。"
544cab3d
LC
2522
2523#. type: subsection
32747aa9 2524#: doc/guix.texi:252 doc/guix.texi:7661 doc/guix.texi:8180 doc/guix.texi:8181
544cab3d
LC
2525#, no-wrap
2526msgid "Debugging Build Failures"
32747aa9 2527msgstr "调试构建错误"
544cab3d
LC
2528
2529#. type: menuentry
32747aa9 2530#: doc/guix.texi:252 doc/guix.texi:7661
544cab3d 2531msgid "Real life packaging experience."
32747aa9 2532msgstr "真实的打包经验。"
544cab3d
LC
2533
2534#. type: section
32747aa9
LC
2535#: doc/guix.texi:271 doc/guix.texi:10236 doc/guix.texi:10238
2536#: doc/guix.texi:10239
544cab3d
LC
2537#, no-wrap
2538msgid "Using the Configuration System"
32747aa9 2539msgstr "使用配置系统"
544cab3d
LC
2540
2541#. type: menuentry
32747aa9 2542#: doc/guix.texi:271 doc/guix.texi:10236
544cab3d 2543msgid "Customizing your GNU system."
32747aa9 2544msgstr "定制你的GNU系统。"
544cab3d
LC
2545
2546#. type: node
32747aa9 2547#: doc/guix.texi:271 doc/guix.texi:10236 doc/guix.texi:10474
544cab3d
LC
2548#, no-wrap
2549msgid "operating-system Reference"
32747aa9 2550msgstr "操作系统参考"
544cab3d
LC
2551
2552#. type: menuentry
32747aa9 2553#: doc/guix.texi:271 doc/guix.texi:10236
544cab3d 2554msgid "Detail of operating-system declarations."
32747aa9 2555msgstr "操作系统声明详情。"
544cab3d
LC
2556
2557#. type: section
32747aa9
LC
2558#: doc/guix.texi:271 doc/guix.texi:10236 doc/guix.texi:10678
2559#: doc/guix.texi:10679
544cab3d
LC
2560#, no-wrap
2561msgid "File Systems"
32747aa9 2562msgstr "文件系统"
544cab3d
LC
2563
2564#. type: menuentry
32747aa9 2565#: doc/guix.texi:271 doc/guix.texi:10236
544cab3d 2566msgid "Configuring file system mounts."
32747aa9 2567msgstr "设置文件系统挂载。"
544cab3d
LC
2568
2569#. type: section
32747aa9
LC
2570#: doc/guix.texi:271 doc/guix.texi:10236 doc/guix.texi:10848
2571#: doc/guix.texi:10849
544cab3d
LC
2572#, no-wrap
2573msgid "Mapped Devices"
32747aa9 2574msgstr "映射的设备"
544cab3d
LC
2575
2576#. type: menuentry
32747aa9 2577#: doc/guix.texi:271 doc/guix.texi:10236
544cab3d 2578msgid "Block device extra processing."
32747aa9 2579msgstr "块设备额外的处理。"
544cab3d
LC
2580
2581#. type: section
32747aa9
LC
2582#: doc/guix.texi:271 doc/guix.texi:10236 doc/guix.texi:10969
2583#: doc/guix.texi:10970
544cab3d
LC
2584#, no-wrap
2585msgid "User Accounts"
32747aa9 2586msgstr "用户帐号"
544cab3d
LC
2587
2588#. type: menuentry
32747aa9 2589#: doc/guix.texi:271 doc/guix.texi:10236
544cab3d 2590msgid "Specifying user accounts."
32747aa9 2591msgstr "指定用户帐号。"
544cab3d
LC
2592
2593#. type: section
32747aa9
LC
2594#: doc/guix.texi:271 doc/guix.texi:2048 doc/guix.texi:10236
2595#: doc/guix.texi:11122 doc/guix.texi:11123
544cab3d
LC
2596#, no-wrap
2597msgid "Keyboard Layout"
32747aa9 2598msgstr "键盘布局"
544cab3d
LC
2599
2600#. type: menuentry
32747aa9 2601#: doc/guix.texi:271 doc/guix.texi:10236
544cab3d 2602msgid "How the system interprets key strokes."
32747aa9 2603msgstr "系统怎样理解按键。"
544cab3d
LC
2604
2605#. type: section
32747aa9
LC
2606#: doc/guix.texi:271 doc/guix.texi:1570 doc/guix.texi:10236
2607#: doc/guix.texi:11254 doc/guix.texi:11255
544cab3d
LC
2608#, no-wrap
2609msgid "Locales"
32747aa9 2610msgstr "区域"
544cab3d
LC
2611
2612#. type: menuentry
32747aa9 2613#: doc/guix.texi:271 doc/guix.texi:10236
544cab3d 2614msgid "Language and cultural convention settings."
32747aa9 2615msgstr "语言和文化惯例设置。"
544cab3d
LC
2616
2617#. type: section
32747aa9
LC
2618#: doc/guix.texi:271 doc/guix.texi:273 doc/guix.texi:10236 doc/guix.texi:11394
2619#: doc/guix.texi:11395
544cab3d
LC
2620#, no-wrap
2621msgid "Services"
32747aa9 2622msgstr "服务"
544cab3d
LC
2623
2624#. type: menuentry
32747aa9 2625#: doc/guix.texi:271 doc/guix.texi:10236
544cab3d 2626msgid "Specifying system services."
32747aa9 2627msgstr "指定系统服务。"
544cab3d
LC
2628
2629#. type: section
32747aa9
LC
2630#: doc/guix.texi:271 doc/guix.texi:10236 doc/guix.texi:23607
2631#: doc/guix.texi:23608
544cab3d
LC
2632#, no-wrap
2633msgid "Setuid Programs"
32747aa9 2634msgstr "setuid程序"
544cab3d
LC
2635
2636#. type: menuentry
32747aa9 2637#: doc/guix.texi:271 doc/guix.texi:10236
544cab3d 2638msgid "Programs running with root privileges."
32747aa9 2639msgstr "以root权限运行的程序。"
544cab3d
LC
2640
2641#. type: section
32747aa9
LC
2642#: doc/guix.texi:271 doc/guix.texi:1715 doc/guix.texi:10236
2643#: doc/guix.texi:23653 doc/guix.texi:23654
544cab3d
LC
2644#, no-wrap
2645msgid "X.509 Certificates"
32747aa9 2646msgstr "X.509证书"
544cab3d
LC
2647
2648#. type: menuentry
32747aa9 2649#: doc/guix.texi:271 doc/guix.texi:10236
544cab3d 2650msgid "Authenticating HTTPS servers."
32747aa9 2651msgstr "认证HTTPS服务器。"
544cab3d
LC
2652
2653#. type: section
32747aa9
LC
2654#: doc/guix.texi:271 doc/guix.texi:1613 doc/guix.texi:10236
2655#: doc/guix.texi:23716 doc/guix.texi:23717
544cab3d
LC
2656#, no-wrap
2657msgid "Name Service Switch"
32747aa9 2658msgstr "Name Service Switch"
544cab3d
LC
2659
2660#. type: menuentry
32747aa9 2661#: doc/guix.texi:271 doc/guix.texi:10236
544cab3d 2662msgid "Configuring libc's name service switch."
32747aa9 2663msgstr "设置libc的name service switch。"
544cab3d
LC
2664
2665#. type: section
32747aa9
LC
2666#: doc/guix.texi:271 doc/guix.texi:10236 doc/guix.texi:23854
2667#: doc/guix.texi:23855
544cab3d
LC
2668#, no-wrap
2669msgid "Initial RAM Disk"
32747aa9 2670msgstr "初始的内存虚拟硬盘"
544cab3d
LC
2671
2672#. type: menuentry
32747aa9 2673#: doc/guix.texi:271 doc/guix.texi:10236
544cab3d 2674msgid "Linux-Libre bootstrapping."
32747aa9 2675msgstr "Linux-Libre引导。"
544cab3d
LC
2676
2677#. type: section
32747aa9
LC
2678#: doc/guix.texi:271 doc/guix.texi:10236 doc/guix.texi:24028
2679#: doc/guix.texi:24029
544cab3d
LC
2680#, no-wrap
2681msgid "Bootloader Configuration"
32747aa9 2682msgstr "引导设置"
544cab3d
LC
2683
2684#. type: menuentry
32747aa9 2685#: doc/guix.texi:271 doc/guix.texi:10236
544cab3d 2686msgid "Configuring the boot loader."
32747aa9 2687msgstr "设置引导程序。"
544cab3d
LC
2688
2689#. type: node
32747aa9 2690#: doc/guix.texi:271 doc/guix.texi:10236 doc/guix.texi:24225
544cab3d
LC
2691#, no-wrap
2692msgid "Invoking guix system"
32747aa9 2693msgstr "调用guix system"
544cab3d
LC
2694
2695#. type: menuentry
32747aa9 2696#: doc/guix.texi:271 doc/guix.texi:10236
544cab3d 2697msgid "Instantiating a system configuration."
32747aa9 2698msgstr "实例化一个系统配置。"
544cab3d
LC
2699
2700#. type: node
32747aa9 2701#: doc/guix.texi:271 doc/guix.texi:10236 doc/guix.texi:24680
544cab3d
LC
2702#, no-wrap
2703msgid "Running Guix in a VM"
32747aa9 2704msgstr "在虚拟机里运行Guix"
544cab3d
LC
2705
2706#. type: menuentry
32747aa9 2707#: doc/guix.texi:271 doc/guix.texi:10236
544cab3d 2708msgid "How to run Guix System in a virtual machine."
32747aa9 2709msgstr "怎样在虚拟机里运行Guix。"
544cab3d
LC
2710
2711#. type: section
32747aa9
LC
2712#: doc/guix.texi:271 doc/guix.texi:302 doc/guix.texi:10236 doc/guix.texi:24810
2713#: doc/guix.texi:24811
544cab3d
LC
2714#, no-wrap
2715msgid "Defining Services"
32747aa9 2716msgstr "定义服务"
544cab3d
LC
2717
2718#. type: menuentry
32747aa9 2719#: doc/guix.texi:271 doc/guix.texi:10236
544cab3d 2720msgid "Adding new service definitions."
32747aa9 2721msgstr "添加新的服务定义。"
544cab3d
LC
2722
2723#. type: subsection
32747aa9
LC
2724#: doc/guix.texi:300 doc/guix.texi:11471 doc/guix.texi:11473
2725#: doc/guix.texi:11474
544cab3d
LC
2726#, no-wrap
2727msgid "Base Services"
32747aa9 2728msgstr "基础服务"
544cab3d
LC
2729
2730#. type: menuentry
32747aa9 2731#: doc/guix.texi:300 doc/guix.texi:11471
544cab3d 2732msgid "Essential system services."
32747aa9 2733msgstr "必要的系统服务。"
544cab3d
LC
2734
2735#. type: subsection
32747aa9
LC
2736#: doc/guix.texi:300 doc/guix.texi:11471 doc/guix.texi:12266
2737#: doc/guix.texi:12267
544cab3d
LC
2738#, no-wrap
2739msgid "Scheduled Job Execution"
32747aa9 2740msgstr "执行计划任务"
544cab3d
LC
2741
2742#. type: menuentry
32747aa9 2743#: doc/guix.texi:300 doc/guix.texi:11471
544cab3d 2744msgid "The mcron service."
32747aa9 2745msgstr "mcron服务。"
544cab3d
LC
2746
2747#. type: subsection
32747aa9
LC
2748#: doc/guix.texi:300 doc/guix.texi:11471 doc/guix.texi:12367
2749#: doc/guix.texi:12368
544cab3d
LC
2750#, no-wrap
2751msgid "Log Rotation"
32747aa9 2752msgstr "日志轮替"
544cab3d
LC
2753
2754#. type: menuentry
32747aa9 2755#: doc/guix.texi:300 doc/guix.texi:11471
544cab3d 2756msgid "The rottlog service."
32747aa9 2757msgstr "rottlog服务。"
544cab3d
LC
2758
2759#. type: subsection
32747aa9
LC
2760#: doc/guix.texi:300 doc/guix.texi:11471 doc/guix.texi:12469
2761#: doc/guix.texi:12470
544cab3d
LC
2762#, no-wrap
2763msgid "Networking Services"
32747aa9 2764msgstr "网络服务"
544cab3d
LC
2765
2766#. type: menuentry
32747aa9 2767#: doc/guix.texi:300 doc/guix.texi:11471
544cab3d 2768msgid "Network setup, SSH daemon, etc."
32747aa9 2769msgstr "网络设置,SSH后台进程,等"
544cab3d
LC
2770
2771#. type: subsection
32747aa9
LC
2772#: doc/guix.texi:300 doc/guix.texi:11471 doc/guix.texi:13415
2773#: doc/guix.texi:13416
544cab3d
LC
2774#, no-wrap
2775msgid "X Window"
32747aa9 2776msgstr "X窗口"
544cab3d
LC
2777
2778#. type: menuentry
32747aa9 2779#: doc/guix.texi:300 doc/guix.texi:11471
544cab3d 2780msgid "Graphical display."
32747aa9 2781msgstr "图形显示器。"
544cab3d
LC
2782
2783#. type: subsection
32747aa9
LC
2784#: doc/guix.texi:300 doc/guix.texi:11471 doc/guix.texi:13762
2785#: doc/guix.texi:13763
544cab3d
LC
2786#, no-wrap
2787msgid "Printing Services"
32747aa9 2788msgstr "打印服务"
544cab3d
LC
2789
2790#. type: menuentry
32747aa9 2791#: doc/guix.texi:300 doc/guix.texi:11471
544cab3d 2792msgid "Local and remote printer support."
32747aa9 2793msgstr "本地和远程打印机的支持。"
544cab3d
LC
2794
2795#. type: subsection
32747aa9
LC
2796#: doc/guix.texi:300 doc/guix.texi:11471 doc/guix.texi:14603
2797#: doc/guix.texi:14604
544cab3d
LC
2798#, no-wrap
2799msgid "Desktop Services"
32747aa9 2800msgstr "桌面服务"
544cab3d
LC
2801
2802#. type: menuentry
32747aa9 2803#: doc/guix.texi:300 doc/guix.texi:11471
544cab3d 2804msgid "D-Bus and desktop services."
32747aa9 2805msgstr "D-Bus和桌面服务。"
544cab3d
LC
2806
2807#. type: subsection
32747aa9
LC
2808#: doc/guix.texi:300 doc/guix.texi:11471 doc/guix.texi:15004
2809#: doc/guix.texi:15005
544cab3d
LC
2810#, no-wrap
2811msgid "Sound Services"
32747aa9 2812msgstr "声音服务"
544cab3d
LC
2813
2814#. type: menuentry
32747aa9 2815#: doc/guix.texi:300 doc/guix.texi:11471
544cab3d 2816msgid "ALSA and Pulseaudio services."
32747aa9 2817msgstr "ALSA和Pulseaudio服务。"
544cab3d
LC
2818
2819#. type: subsection
32747aa9
LC
2820#: doc/guix.texi:300 doc/guix.texi:11471 doc/guix.texi:15085
2821#: doc/guix.texi:15086
544cab3d
LC
2822#, no-wrap
2823msgid "Database Services"
32747aa9 2824msgstr "数据库服务"
544cab3d
LC
2825
2826#. type: menuentry
32747aa9 2827#: doc/guix.texi:300 doc/guix.texi:11471
544cab3d 2828msgid "SQL databases, key-value stores, etc."
32747aa9 2829msgstr "SQL数据库,键值仓库,等"
544cab3d
LC
2830
2831#. type: subsection
32747aa9
LC
2832#: doc/guix.texi:300 doc/guix.texi:11471 doc/guix.texi:15245
2833#: doc/guix.texi:15246
544cab3d
LC
2834#, no-wrap
2835msgid "Mail Services"
32747aa9 2836msgstr "邮件服务"
544cab3d
LC
2837
2838#. type: menuentry
32747aa9 2839#: doc/guix.texi:300 doc/guix.texi:11471
544cab3d 2840msgid "IMAP, POP3, SMTP, and all that."
32747aa9 2841msgstr "IMAP,POP3,SMTP,等"
544cab3d
LC
2842
2843#. type: subsection
32747aa9
LC
2844#: doc/guix.texi:300 doc/guix.texi:11471 doc/guix.texi:16746
2845#: doc/guix.texi:16747
544cab3d
LC
2846#, no-wrap
2847msgid "Messaging Services"
32747aa9 2848msgstr "消息服务"
544cab3d
LC
2849
2850#. type: menuentry
32747aa9 2851#: doc/guix.texi:300 doc/guix.texi:11471
544cab3d 2852msgid "Messaging services."
32747aa9 2853msgstr "消息服务。"
544cab3d
LC
2854
2855#. type: subsection
32747aa9
LC
2856#: doc/guix.texi:300 doc/guix.texi:11471 doc/guix.texi:17248
2857#: doc/guix.texi:17249
544cab3d
LC
2858#, no-wrap
2859msgid "Telephony Services"
32747aa9 2860msgstr "电话服务"
544cab3d
LC
2861
2862#. type: menuentry
32747aa9 2863#: doc/guix.texi:300 doc/guix.texi:11471
544cab3d 2864msgid "Telephony services."
32747aa9 2865msgstr "电话服务。"
544cab3d
LC
2866
2867#. type: subsection
32747aa9
LC
2868#: doc/guix.texi:300 doc/guix.texi:11471 doc/guix.texi:17453
2869#: doc/guix.texi:17454
544cab3d
LC
2870#, no-wrap
2871msgid "Monitoring Services"
32747aa9 2872msgstr "监控服务"
544cab3d
LC
2873
2874#. type: menuentry
32747aa9 2875#: doc/guix.texi:300 doc/guix.texi:11471
544cab3d 2876msgid "Monitoring services."
32747aa9 2877msgstr "监控服务。"
544cab3d
LC
2878
2879#. type: subsection
32747aa9
LC
2880#: doc/guix.texi:300 doc/guix.texi:11471 doc/guix.texi:17958
2881#: doc/guix.texi:17959
544cab3d
LC
2882#, no-wrap
2883msgid "Kerberos Services"
32747aa9 2884msgstr "Kerberos服务"
544cab3d
LC
2885
2886#. type: menuentry
32747aa9 2887#: doc/guix.texi:300 doc/guix.texi:11471
544cab3d 2888msgid "Kerberos services."
32747aa9 2889msgstr "Kerberos服务。"
544cab3d
LC
2890
2891#. type: subsection
32747aa9
LC
2892#: doc/guix.texi:300 doc/guix.texi:11471 doc/guix.texi:18562
2893#: doc/guix.texi:18563
544cab3d
LC
2894#, no-wrap
2895msgid "Web Services"
32747aa9 2896msgstr "Web服务"
544cab3d
LC
2897
2898#. type: menuentry
32747aa9 2899#: doc/guix.texi:300 doc/guix.texi:11471
544cab3d 2900msgid "Web servers."
32747aa9 2901msgstr "Web服务。"
544cab3d
LC
2902
2903#. type: subsection
32747aa9
LC
2904#: doc/guix.texi:300 doc/guix.texi:11471 doc/guix.texi:19363
2905#: doc/guix.texi:19364
544cab3d
LC
2906#, no-wrap
2907msgid "Certificate Services"
32747aa9 2908msgstr "证书服务"
544cab3d
LC
2909
2910#. type: menuentry
32747aa9 2911#: doc/guix.texi:300 doc/guix.texi:11471
544cab3d 2912msgid "TLS certificates via Let's Encrypt."
32747aa9 2913msgstr "Let's Encrypt TLS证书。"
544cab3d
LC
2914
2915#. type: subsection
32747aa9
LC
2916#: doc/guix.texi:300 doc/guix.texi:11471 doc/guix.texi:19529
2917#: doc/guix.texi:19530
544cab3d
LC
2918#, no-wrap
2919msgid "DNS Services"
32747aa9 2920msgstr "DNS服务"
544cab3d
LC
2921
2922#. type: menuentry
32747aa9 2923#: doc/guix.texi:300 doc/guix.texi:11471
544cab3d 2924msgid "DNS daemons."
32747aa9 2925msgstr "DNS后台进程。"
544cab3d
LC
2926
2927#. type: subsection
32747aa9
LC
2928#: doc/guix.texi:300 doc/guix.texi:11471 doc/guix.texi:20150
2929#: doc/guix.texi:20151
544cab3d
LC
2930#, no-wrap
2931msgid "VPN Services"
32747aa9 2932msgstr "VPN服务"
544cab3d
LC
2933
2934#. type: menuentry
32747aa9 2935#: doc/guix.texi:300 doc/guix.texi:11471
544cab3d 2936msgid "VPN daemons."
32747aa9 2937msgstr "VPN后台进程。"
544cab3d
LC
2938
2939#. type: subsection
32747aa9
LC
2940#: doc/guix.texi:300 doc/guix.texi:11471 doc/guix.texi:20508
2941#: doc/guix.texi:20509
544cab3d
LC
2942#, no-wrap
2943msgid "Network File System"
32747aa9 2944msgstr "网络文件系统"
544cab3d
LC
2945
2946#. type: menuentry
32747aa9 2947#: doc/guix.texi:300 doc/guix.texi:11471
544cab3d 2948msgid "NFS related services."
32747aa9 2949msgstr "网络文件系统相关的服务。"
544cab3d
LC
2950
2951#. type: subsection
32747aa9
LC
2952#: doc/guix.texi:300 doc/guix.texi:11471 doc/guix.texi:20623
2953#: doc/guix.texi:20624
544cab3d
LC
2954#, no-wrap
2955msgid "Continuous Integration"
32747aa9 2956msgstr "持续集成"
544cab3d
LC
2957
2958#. type: menuentry
32747aa9 2959#: doc/guix.texi:300 doc/guix.texi:11471
544cab3d 2960msgid "The Cuirass service."
32747aa9 2961msgstr "Cuirass服务。"
544cab3d
LC
2962
2963#. type: subsection
32747aa9
LC
2964#: doc/guix.texi:300 doc/guix.texi:11471 doc/guix.texi:20740
2965#: doc/guix.texi:20741
544cab3d
LC
2966#, no-wrap
2967msgid "Power Management Services"
32747aa9 2968msgstr "电源管理服务"
544cab3d
LC
2969
2970#. type: menuentry
32747aa9 2971#: doc/guix.texi:300 doc/guix.texi:11471
544cab3d 2972msgid "Extending battery life."
32747aa9 2973msgstr "延长电池寿命。"
544cab3d
LC
2974
2975#. type: subsection
32747aa9
LC
2976#: doc/guix.texi:300 doc/guix.texi:11471 doc/guix.texi:21274
2977#: doc/guix.texi:21275
544cab3d
LC
2978#, no-wrap
2979msgid "Audio Services"
32747aa9 2980msgstr "音频服务"
544cab3d
LC
2981
2982#. type: menuentry
32747aa9 2983#: doc/guix.texi:300 doc/guix.texi:11471
544cab3d 2984msgid "The MPD."
32747aa9 2985msgstr "MPD。"
544cab3d
LC
2986
2987#. type: node
32747aa9 2988#: doc/guix.texi:300 doc/guix.texi:11471 doc/guix.texi:21333
544cab3d
LC
2989#, no-wrap
2990msgid "Virtualization Services"
32747aa9 2991msgstr "虚拟化服务"
544cab3d
LC
2992
2993#. type: menuentry
32747aa9 2994#: doc/guix.texi:300 doc/guix.texi:11471
544cab3d 2995msgid "Virtualization services."
32747aa9 2996msgstr "虚拟化服务。"
544cab3d
LC
2997
2998#. type: subsection
32747aa9
LC
2999#: doc/guix.texi:300 doc/guix.texi:11471 doc/guix.texi:22126
3000#: doc/guix.texi:22127
544cab3d
LC
3001#, no-wrap
3002msgid "Version Control Services"
32747aa9 3003msgstr "版本控制服务"
544cab3d
LC
3004
3005#. type: menuentry
32747aa9 3006#: doc/guix.texi:300 doc/guix.texi:11471
544cab3d 3007msgid "Providing remote access to Git repositories."
32747aa9 3008msgstr "远程访问Git仓库。"
544cab3d
LC
3009
3010#. type: subsection
32747aa9
LC
3011#: doc/guix.texi:300 doc/guix.texi:11471 doc/guix.texi:23314
3012#: doc/guix.texi:23315
544cab3d
LC
3013#, no-wrap
3014msgid "Game Services"
32747aa9 3015msgstr "游戏服务"
544cab3d
LC
3016
3017#. type: menuentry
32747aa9 3018#: doc/guix.texi:300 doc/guix.texi:11471
544cab3d 3019msgid "Game servers."
32747aa9 3020msgstr "游戏服务器。"
544cab3d
LC
3021
3022#. type: subsection
32747aa9
LC
3023#: doc/guix.texi:300 doc/guix.texi:11471 doc/guix.texi:23345
3024#: doc/guix.texi:23346
544cab3d
LC
3025#, no-wrap
3026msgid "Miscellaneous Services"
32747aa9 3027msgstr "其它各种服务"
544cab3d
LC
3028
3029#. type: menuentry
32747aa9 3030#: doc/guix.texi:300 doc/guix.texi:11471
544cab3d 3031msgid "Other services."
32747aa9 3032msgstr "其它服务。"
544cab3d
LC
3033
3034#. type: subsection
32747aa9
LC
3035#: doc/guix.texi:307 doc/guix.texi:24822 doc/guix.texi:24824
3036#: doc/guix.texi:24825
544cab3d
LC
3037#, no-wrap
3038msgid "Service Composition"
32747aa9 3039msgstr "合成服务"
544cab3d
LC
3040
3041#. type: menuentry
32747aa9 3042#: doc/guix.texi:307 doc/guix.texi:24822
544cab3d 3043msgid "The model for composing services."
32747aa9 3044msgstr "服务合成的模型。"
544cab3d
LC
3045
3046#. type: subsection
32747aa9
LC
3047#: doc/guix.texi:307 doc/guix.texi:24822 doc/guix.texi:24880
3048#: doc/guix.texi:24881
544cab3d
LC
3049#, no-wrap
3050msgid "Service Types and Services"
32747aa9 3051msgstr "服务类型和服务"
544cab3d
LC
3052
3053#. type: menuentry
32747aa9 3054#: doc/guix.texi:307 doc/guix.texi:24822
544cab3d 3055msgid "Types and services."
32747aa9 3056msgstr "类型和服务。"
544cab3d
LC
3057
3058#. type: subsection
32747aa9
LC
3059#: doc/guix.texi:307 doc/guix.texi:24822 doc/guix.texi:25017
3060#: doc/guix.texi:25018
544cab3d
LC
3061#, no-wrap
3062msgid "Service Reference"
32747aa9 3063msgstr "服务参考"
544cab3d
LC
3064
3065#. type: menuentry
32747aa9 3066#: doc/guix.texi:307 doc/guix.texi:24822
544cab3d 3067msgid "API reference."
32747aa9 3068msgstr "API参考。"
544cab3d
LC
3069
3070#. type: subsection
32747aa9
LC
3071#: doc/guix.texi:307 doc/guix.texi:24822 doc/guix.texi:25242
3072#: doc/guix.texi:25243
544cab3d
LC
3073#, no-wrap
3074msgid "Shepherd Services"
32747aa9 3075msgstr "Shepherd服务"
544cab3d
LC
3076
3077#. type: menuentry
32747aa9 3078#: doc/guix.texi:307 doc/guix.texi:24822
544cab3d 3079msgid "A particular type of service."
32747aa9 3080msgstr "一种特别的服务。"
544cab3d
LC
3081
3082#. type: cindex
32747aa9 3083#: doc/guix.texi:315
544cab3d
LC
3084#, no-wrap
3085msgid "purpose"
32747aa9 3086msgstr "目的"
544cab3d
LC
3087
3088#. type: Plain text
32747aa9 3089#: doc/guix.texi:323
544cab3d 3090msgid "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."
32747aa9 3091msgstr "GNU Guix@footnote{``Guix''读做``geeks'',或``ɡiːks''(国际音标)}是GNU系统的包管理器和发行版。Guix让无特权的用户可以轻松地安装,升级,或删除软件包,回滚到前一个软件包集合,从源代码构建软件包,及辅助软件环境的创建和维护。"
544cab3d
LC
3092
3093#. type: cindex
32747aa9 3094#: doc/guix.texi:324 doc/guix.texi:399
544cab3d
LC
3095#, no-wrap
3096msgid "Guix System"
32747aa9 3097msgstr "Guix系统"
544cab3d
LC
3098
3099#. type: cindex
32747aa9 3100#: doc/guix.texi:325
544cab3d
LC
3101#, no-wrap
3102msgid "GuixSD, now Guix System"
32747aa9 3103msgstr "GuixSD,现在称为Guix系统"
544cab3d
LC
3104
3105#. type: cindex
32747aa9 3106#: doc/guix.texi:326
544cab3d
LC
3107#, no-wrap
3108msgid "Guix System Distribution, now Guix System"
32747aa9 3109msgstr "Guix系统发行版,现在称为Guix系统"
544cab3d
LC
3110
3111#. type: Plain text
32747aa9 3112#: doc/guix.texi:335
544cab3d 3113msgid "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}."
32747aa9 3114msgstr "你可以在现有的GNU/Linux发行版上安装GNU@tie{}Guix(@pxref{Installation}),Guix可以补充已有的工具,并且不会和它们产生冲突。或者你可以把它当作独立的操作系统发行版(@dfn{Guix@tie{}系统}@footnote{我们以前把Guix系统称为``Guix系统发行版''或``GuixSD''。我们现在觉得把一切都统一在``Guix''的旗帜下更合理,因为,毕竟即使在别的发行版上你也可以随时通过@command{guix system}命令获得Guix系统})。@xref{GNU Distribution}."
544cab3d
LC
3115
3116#. type: cindex
32747aa9 3117#: doc/guix.texi:344
544cab3d
LC
3118#, no-wrap
3119msgid "user interfaces"
32747aa9 3120msgstr "用户界面"
544cab3d
LC
3121
3122#. type: Plain text
32747aa9 3123#: doc/guix.texi:350
544cab3d 3124msgid "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})."
32747aa9 3125msgstr "Guix提供了命令行软件包管理接口(@pxref{Package Management}),辅助软件开发的工具(@pxref{Development}),高级用法的命令行接口(@pxref{Utilities}),以及Scheme编程语言接口(@pxref{Programming Interface})。"
544cab3d
LC
3126
3127#. type: cindex
32747aa9 3128#: doc/guix.texi:350
544cab3d
LC
3129#, no-wrap
3130msgid "build daemon"
32747aa9 3131msgstr "构建后台进程"
544cab3d
LC
3132
3133#. type: Plain text
32747aa9 3134#: doc/guix.texi:354
544cab3d 3135msgid "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})."
32747aa9 3136msgstr "@dfn{构建后台进程}为用户构建软件包(@pxref{Setting Up the Daemon}),及从授权的源(@pxref{Substitutes})下载预构建的二进制文件。"
544cab3d
LC
3137
3138#. type: cindex
32747aa9 3139#: doc/guix.texi:355
544cab3d
LC
3140#, no-wrap
3141msgid "extensibility of the distribution"
32747aa9 3142msgstr "发行版的扩展性"
544cab3d
LC
3143
3144#. type: cindex
32747aa9 3145#: doc/guix.texi:356 doc/guix.texi:5016
544cab3d
LC
3146#, no-wrap
3147msgid "customization, of packages"
32747aa9 3148msgstr "定制软件包"
544cab3d
LC
3149
3150#. type: Plain text
32747aa9 3151#: doc/guix.texi:365
544cab3d 3152msgid "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})."
32747aa9 3153msgstr "Guix包含很多GNU和非GNU的软件包定义,所有的这些软件包都@uref{https://www.gnu.org/philosophy/free-sw.html, 尊重用户的自由}。它是@emph{可扩展的}:用户可以编写自己的软件包定义(@pxref{Defining Packages}),并且把它们作为独立的软件包模块@pxref{Package Modules}。它也是@emph{可定制的}:用户可以从现有的软件包定义衍生出特殊的软件包,包括从命令行(@pxref{Package Transformation Options})。"
544cab3d
LC
3154
3155#. type: cindex
32747aa9 3156#: doc/guix.texi:366
544cab3d
LC
3157#, no-wrap
3158msgid "functional package management"
32747aa9 3159msgstr "函数式包管理器"
544cab3d
LC
3160
3161#. type: cindex
32747aa9 3162#: doc/guix.texi:367
544cab3d
LC
3163#, no-wrap
3164msgid "isolation"
32747aa9 3165msgstr "隔离"
544cab3d
LC
3166
3167#. type: Plain text
32747aa9 3168#: doc/guix.texi:382
544cab3d 3169msgid "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."
32747aa9 3170msgstr "在底层,Guix实现了由Nix(@pxref{Acknowledgments})开创的@dfn{函数式包管理器}。在Guix里,软件包构建和安装过程被视为数学意义上的@emph{函数}。函数获取输入,如构建脚本、编译器和库,并且返回一个安装好的软件包。作为一个纯函数,它的结果只取决于它的输入--例如,它不能引用没有作为显式输入传入的软件和脚本。当传入特定的输入时,一个构建函数总是得到相同的结果。它不能以任何方式修改运行系统的环境,例如,它不能创建,修改,或删除构建和安装环境之外的文件夹。这是通过在隔离的环境(@dfn{容器})里运行构建进程实现的,在这个环境里只能访问到显式的输入。"
544cab3d
LC
3171
3172#. type: cindex
32747aa9 3173#: doc/guix.texi:383 doc/guix.texi:6300
544cab3d
LC
3174#, no-wrap
3175msgid "store"
32747aa9 3176msgstr "仓库"
544cab3d
LC
3177
3178#. type: Plain text
32747aa9 3179#: doc/guix.texi:390
544cab3d 3180msgid "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."
32747aa9 3181msgstr "软件包构建函数的结果被@dfn{缓存}在文件系统里的一个叫做@dfn{仓库}(@pxref{The Store})的特殊文件夹内。每个软件包都被安装在仓库(默认在@file{/gnu/store})里的一个独立的文件夹内。这个文件夹的名字含有用于构建这个软件包的所有输入的hash,所以,修改输入会得到一个不同的文件夹名。"
544cab3d
LC
3182
3183#. type: Plain text
32747aa9 3184#: doc/guix.texi:394
544cab3d 3185msgid "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})."
32747aa9 3186msgstr "这种手段是实现Guix的突出功能的基础:对事务型软件包升级和回滚的支持,每个用户独立的安装,软件包垃圾回收@pxref{Features}。"
544cab3d
LC
3187
3188#. type: Plain text
32747aa9
LC
3189#: doc/guix.texi:409
3190msgid "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."
3191msgstr "Guix提供了一个GNU系统发行版,这个发新版只包含自由软件@footnote{这里的“自由”指的是@url{https://www.gnu.org/philosophy/free-sw.html,软件提供给用户的自由}。}。这个发行版可以独立安装(@pxref{System Installation}),但是把Guix安装为一个已经安装好的GNU/Linux系统的包管理器也是可行的(@pxref{Installation})。当我们需要区分这两者时,我们把独立的发行版称为“Guix系统”。"
544cab3d
LC
3192
3193#. type: Plain text
32747aa9
LC
3194#: doc/guix.texi:415
3195msgid "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}):"
3196msgstr "这个发行版提供了GNU核心软件包,如libc、gcc和Binutils,以及很多GNU和非GNU应用程序。可用的软件包的完整列表可以在@url{https://www.gnu.org/software/guix/packages,on-line}浏览,或者通过运行@command{guix package}(@pxref{Invoking guix package})获得:"
544cab3d
LC
3197
3198#. type: example
32747aa9 3199#: doc/guix.texi:418
544cab3d
LC
3200#, no-wrap
3201msgid "guix package --list-available\n"
32747aa9 3202msgstr "guix package --list-available\n"
544cab3d
LC
3203
3204#. type: Plain text
32747aa9 3205#: doc/guix.texi:424
544cab3d 3206msgid "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."
32747aa9 3207msgstr "我们的目标是提供一个基于Linux和其它GNU变体的可用的100%自由的软件发行版,我们的重点是推广和紧密集成GNU组件,以及强调帮助用户行使那些自由的程序和工具。"
544cab3d
LC
3208
3209#. type: Plain text
32747aa9 3210#: doc/guix.texi:426
544cab3d 3211msgid "Packages are currently available on the following platforms:"
32747aa9 3212msgstr "目前这些平台提供软件包:"
544cab3d
LC
3213
3214#. type: item
32747aa9 3215#: doc/guix.texi:429 doc/guix.texi:1877
544cab3d
LC
3216#, no-wrap
3217msgid "x86_64-linux"
32747aa9 3218msgstr "x86_64-linux"
544cab3d
LC
3219
3220#. type: table
32747aa9 3221#: doc/guix.texi:431
544cab3d 3222msgid "Intel/AMD @code{x86_64} architecture, Linux-Libre kernel;"
32747aa9 3223msgstr "Intel/AMD @code{x86_64}架构,Linux-Libre内核;"
544cab3d
LC
3224
3225#. type: item
32747aa9 3226#: doc/guix.texi:432 doc/guix.texi:1880
544cab3d
LC
3227#, no-wrap
3228msgid "i686-linux"
32747aa9 3229msgstr "i686-linux"
544cab3d
LC
3230
3231#. type: table
32747aa9 3232#: doc/guix.texi:434
544cab3d 3233msgid "Intel 32-bit architecture (IA32), Linux-Libre kernel;"
32747aa9 3234msgstr "Intel 32位架构(IA32),Linux-Libre内核;"
544cab3d
LC
3235
3236#. type: item
32747aa9 3237#: doc/guix.texi:435
544cab3d
LC
3238#, no-wrap
3239msgid "armhf-linux"
32747aa9 3240msgstr "armhf-linux"
544cab3d
LC
3241
3242#. type: table
32747aa9 3243#: doc/guix.texi:439
544cab3d 3244msgid "ARMv7-A architecture with hard float, Thumb-2 and NEON, using the EABI hard-float application binary interface (ABI), and Linux-Libre kernel."
32747aa9 3245msgstr "ARMv7-A架构,带硬件浮点数、Thumb-2和NEON扩展,EABI硬件浮点数应用二进制接口(ABI),和Linux-Libre内核。"
544cab3d
LC
3246
3247#. type: item
32747aa9 3248#: doc/guix.texi:440
544cab3d
LC
3249#, no-wrap
3250msgid "aarch64-linux"
32747aa9 3251msgstr "aarch64-linux"
544cab3d
LC
3252
3253#. type: table
32747aa9 3254#: doc/guix.texi:444
544cab3d 3255msgid "little-endian 64-bit ARMv8-A processors, Linux-Libre kernel. This is currently in an experimental stage, with limited support. @xref{Contributing}, for how to help!"
32747aa9 3256msgstr "小端序64位ARMv8-A处理器,Linux-Libre内核。目前处于实验阶段,支持有限。@xref{Contributing},提供帮助!"
544cab3d
LC
3257
3258#. type: item
32747aa9 3259#: doc/guix.texi:445
544cab3d
LC
3260#, no-wrap
3261msgid "mips64el-linux"
32747aa9 3262msgstr "mips64el-linux"
544cab3d
LC
3263
3264#. type: table
32747aa9 3265#: doc/guix.texi:448
544cab3d 3266msgid "little-endian 64-bit MIPS processors, specifically the Loongson series, n32 ABI, and Linux-Libre kernel."
32747aa9 3267msgstr "小端序64位MIPS处理器,龙芯系列,n32 ABI,Linux-Libre内核。"
544cab3d
LC
3268
3269#. type: Plain text
32747aa9 3270#: doc/guix.texi:458
544cab3d 3271msgid "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."
32747aa9 3272msgstr "在Guix系统里,你@emph{声明}操作系统所有方面的配置,然后Guix以事务型的,可重复的,和无状态的方式解决实例化配置的问题(@pxref{System Configuration})。Guix系统使用Linux-Libre内核,Shepherd初始化系统@pxref{Introduction,,, shepherd, GNU Shepherd用户手册},知名的GNU工具和工具链,以及你可选的图形界面环境和系统服务。"
544cab3d
LC
3273
3274#. type: Plain text
32747aa9 3275#: doc/guix.texi:461
544cab3d 3276msgid "Guix System is available on all the above platforms except @code{mips64el-linux}."
32747aa9 3277msgstr "Guix系统在上面所有的平台上都可用,除了@code{mips64el-linux}。"
544cab3d
LC
3278
3279#. type: Plain text
32747aa9 3280#: doc/guix.texi:465
544cab3d 3281msgid "For information on porting to other architectures or kernels, @pxref{Porting}."
32747aa9 3282msgstr "关于移植到其它架构或内核的信息,@pxref{Porting}。"
544cab3d
LC
3283
3284#. type: Plain text
32747aa9 3285#: doc/guix.texi:468
544cab3d 3286msgid "Building this distribution is a cooperative effort, and you are invited to join! @xref{Contributing}, for information about how you can help."
32747aa9 3287msgstr "构建这个发行版需要努力合作,欢迎你加入!关于你可以怎样提供帮助的信息,@xref{Contributing}。"
544cab3d
LC
3288
3289#. type: cindex
32747aa9 3290#: doc/guix.texi:474
544cab3d
LC
3291#, no-wrap
3292msgid "installing Guix"
32747aa9 3293msgstr "安装Guix"
544cab3d
LC
3294
3295#. type: quotation
32747aa9
LC
3296#: doc/guix.texi:476 doc/guix.texi:524 doc/guix.texi:1548 doc/guix.texi:1779
3297#: doc/guix.texi:1984 doc/guix.texi:2186 doc/guix.texi:2381 doc/guix.texi:3180
3298#: doc/guix.texi:3960 doc/guix.texi:4176 doc/guix.texi:4465 doc/guix.texi:4697
3299#: doc/guix.texi:4844 doc/guix.texi:6319 doc/guix.texi:6387 doc/guix.texi:8073
3300#: doc/guix.texi:8085 doc/guix.texi:9976 doc/guix.texi:10513
3301#: doc/guix.texi:11062 doc/guix.texi:13544 doc/guix.texi:19352
3302#: doc/guix.texi:24107 doc/guix.texi:24302 doc/guix.texi:24421
3303#: doc/guix.texi:24536 doc/guix.texi:25545
544cab3d
LC
3304#, no-wrap
3305msgid "Note"
32747aa9 3306msgstr "注"
544cab3d
LC
3307
3308#. type: quotation
32747aa9 3309#: doc/guix.texi:486
544cab3d 3310msgid "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."
32747aa9 3311msgstr "我们推荐使用@uref{https://git.savannah.gnu.org/cgit/guix.git/plain/etc/guix-install.sh, shell安装脚本}在已有的GNU/Linux系统(即@dfn{foreign distro})上安装Guix。@footnote{这个小节是关于安装包管理器的,可以在GNU/Linux系统上完成。如果你想安装完整的GNU操作系统,@pxref{System Installation}。}这个脚本自动下载、安装并且初始化Guix,它需要以root用户身份运行。"
544cab3d
LC
3312
3313#. type: cindex
32747aa9 3314#: doc/guix.texi:488 doc/guix.texi:1565
544cab3d
LC
3315#, no-wrap
3316msgid "foreign distro"
32747aa9 3317msgstr "别的发行版"
544cab3d
LC
3318
3319#. type: cindex
32747aa9 3320#: doc/guix.texi:489
544cab3d
LC
3321#, no-wrap
3322msgid "directories related to foreign distro"
32747aa9 3323msgstr "和foreign distro相关的文件夹"
544cab3d
LC
3324
3325#. type: Plain text
32747aa9 3326#: doc/guix.texi:494
544cab3d 3327msgid "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."
32747aa9 3328msgstr "在foreign distro上安装时,GNU@tie{}Guix可以在不引起冲突的前提下补充现有的工具。它的数据只存放在两个文件夹里,通常是@file{/gnu/store}和@file{/var/guix};系统上的其它文件,如@file{/etc},不会被修改。"
544cab3d
LC
3329
3330#. type: Plain text
32747aa9 3331#: doc/guix.texi:497
544cab3d 3332msgid "Once installed, Guix can be updated by running @command{guix pull} (@pxref{Invoking guix pull})."
32747aa9 3333msgstr "一旦安装好了,可以通过运行@command{guix pull}升级Guix(@pxref{Invoking guix pull})。"
544cab3d
LC
3334
3335#. type: Plain text
32747aa9 3336#: doc/guix.texi:502
544cab3d 3337msgid "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."
32747aa9 3338msgstr "如果你希望手动执行安装步骤,或者想改变安装步骤,接下来这些小节会很有用。它们介绍Guix的软件依赖,以及如何手动安装和使用Guix。"
544cab3d
LC
3339
3340#. type: cindex
32747aa9 3341#: doc/guix.texi:515
544cab3d
LC
3342#, no-wrap
3343msgid "installing Guix from binaries"
32747aa9 3344msgstr "用二进制文件安装Guix"
544cab3d
LC
3345
3346#. type: cindex
32747aa9 3347#: doc/guix.texi:516
544cab3d
LC
3348#, no-wrap
3349msgid "installer script"
32747aa9 3350msgstr "安装脚本"
544cab3d
LC
3351
3352#. type: Plain text
32747aa9 3353#: doc/guix.texi:522
544cab3d 3354msgid "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."
32747aa9
LC
3355msgstr "这个小节介绍如何在任意的系统上用独立的Guix二进制文件包安装Guix和它的依赖。这通常比从源代码安装更快,下一小节会介绍如何从源代码安装。唯一的需求是有GNU@tie{}tar和Xz。"
3356
3357#. type: quotation
3358#: doc/guix.texi:530
3359msgid "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."
3360msgstr "我们推荐使用这个@uref{https://git.savannah.gnu.org/cgit/guix.git/plain/etc/guix-install.sh, shell安装脚本}。这个脚本自动执行下述的下载、安装并且初始化Guix的过程。它需要以root用户身份运行。"
544cab3d
LC
3361
3362#. type: Plain text
32747aa9 3363#: doc/guix.texi:533
544cab3d 3364msgid "Installing goes along these lines:"
32747aa9 3365msgstr "安装步骤如下:"
544cab3d
LC
3366
3367#. type: cindex
32747aa9 3368#: doc/guix.texi:536
544cab3d
LC
3369#, no-wrap
3370msgid "downloading Guix binary"
32747aa9 3371msgstr "下载Guix二进制文件"
544cab3d
LC
3372
3373#. type: enumerate
32747aa9
LC
3374#: doc/guix.texi:541
3375msgid "Download the binary tarball from @indicateurl{@value{BASE-URL}/guix-binary-@value{VERSION}.@var{system}.tar.xz}, where @var{system} is @code{x86_64-linux} for an @code{x86_64} machine already running the kernel Linux, and so on."
3376msgstr "从@indicateurl{@value{BASE-URL}/guix-binary-@value{VERSION}.@var{系统}.tar.xz}下载二进制安装包,对于运行Linux内核的@code{x86_64}机器来说@var{系统}是@code{x86_64-linux},以此类推。"
544cab3d
LC
3377
3378#. type: enumerate
32747aa9 3379#: doc/guix.texi:545
544cab3d 3380msgid "Make sure to download the associated @file{.sig} file and to verify the authenticity of the tarball against it, along these lines:"
32747aa9 3381msgstr "请确保下载相关的@file{.sig}文件,并且用它验证文件包的可靠性,方法如下:"
544cab3d
LC
3382
3383#. type: example
32747aa9 3384#: doc/guix.texi:549
544cab3d
LC
3385#, no-wrap
3386msgid ""
32747aa9 3387"$ wget @value{BASE-URL}/guix-binary-@value{VERSION}.@var{system}.tar.xz.sig\n"
544cab3d
LC
3388"$ gpg --verify guix-binary-@value{VERSION}.@var{system}.tar.xz.sig\n"
3389msgstr ""
32747aa9
LC
3390"$ wget @value{BASE-URL}/guix-binary-@value{VERSION}.@var{系统}.tar.xz.sig\n"
3391"$ gpg --verify guix-binary-@value{VERSION}.@var{系统}.tar.xz.sig\n"
544cab3d
LC
3392
3393#. type: Plain text
32747aa9 3394#: doc/guix.texi:553 doc/guix.texi:1895
544cab3d 3395msgid "If that command fails because you do not have the required public key, then run this command to import it:"
32747aa9 3396msgstr "如果那个命令因为缺少所需的公钥而失败了,那么用这个命令导入它:"
544cab3d
LC
3397
3398#. type: example
32747aa9 3399#: doc/guix.texi:557 doc/guix.texi:1899
544cab3d
LC
3400#, no-wrap
3401msgid ""
3402"$ gpg --keyserver @value{KEY-SERVER} \\\n"
3403" --recv-keys @value{OPENPGP-SIGNING-KEY-ID}\n"
3404msgstr ""
32747aa9
LC
3405"$ gpg --keyserver @value{KEY-SERVER} \\\n"
3406" --recv-keys @value{OPENPGP-SIGNING-KEY-ID}\n"
544cab3d
LC
3407
3408#. type: Plain text
32747aa9 3409#: doc/guix.texi:562 doc/guix.texi:1904
544cab3d 3410msgid "and rerun the @code{gpg --verify} command."
32747aa9 3411msgstr "再次运行@code{gpg --verify}命令。"
544cab3d
LC
3412
3413#. type: enumerate
32747aa9 3414#: doc/guix.texi:566
544cab3d 3415msgid "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:"
32747aa9 3416msgstr "现在你需要成为@code{root}用户。基于你的发行版,你可能需要执行@code{su -}或@code{sudo -i}。以@code{root}用户身份,执行:"
544cab3d
LC
3417
3418#. type: example
32747aa9 3419#: doc/guix.texi:572
544cab3d
LC
3420#, no-wrap
3421msgid ""
3422"# cd /tmp\n"
3423"# tar --warning=no-timestamp -xf \\\n"
3424" guix-binary-@value{VERSION}.@var{system}.tar.xz\n"
3425"# mv var/guix /var/ && mv gnu /\n"
3426msgstr ""
32747aa9
LC
3427"# cd /tmp\n"
3428"# tar --warning=no-timestamp -xf \\\n"
3429" guix-binary-@value{VERSION}.@var{系统}.tar.xz\n"
3430"# mv var/guix /var/ && mv gnu /\n"
544cab3d
LC
3431
3432#. type: enumerate
32747aa9 3433#: doc/guix.texi:577
544cab3d 3434msgid "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.)"
32747aa9 3435msgstr "这会创建@file{/gnu/store}(@pxref{The Store})和@file{/var/guix}。后一个文件夹为@code{root}用户提供了一个立即可用的profile(见下一步)。"
544cab3d
LC
3436
3437#. type: enumerate
32747aa9 3438#: doc/guix.texi:580
544cab3d 3439msgid "Do @emph{not} unpack the tarball on a working Guix system since that would overwrite its own essential files."
32747aa9 3440msgstr "@emph{不要}在一个正常的Guix系统上解压这个文件包,因为那会把现有的重要的文件覆盖。"
544cab3d
LC
3441
3442#. type: enumerate
32747aa9 3443#: doc/guix.texi:590
544cab3d 3444msgid "The @code{--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 zero (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."
32747aa9 3445msgstr "@code{--warning=no-timestamp}选项使GNU@tie{}tar不输出有关“implausibly old time stamps”的警告(这类警告会被GNU@tie{}tar 1.26或更老的版本触发;新的版本没事)。这类警告是因为文件包里的所有文件的修改时间戳都被设置为0(即1970年1月1日)。这是故意的,为了确保文件包的内容独立于创建的时间,从而使它可再现。"
544cab3d
LC
3446
3447#. type: enumerate
32747aa9 3448#: doc/guix.texi:594
544cab3d 3449msgid "Make the profile available under @file{~root/.config/guix/current}, which is where @command{guix pull} will install updates (@pxref{Invoking guix pull}):"
32747aa9 3450msgstr "使profile出现在@file{~root/.config/guix/current},这是@command{guix pull}安装更新的位置(@pxref{Invoking guix pull}):"
544cab3d
LC
3451
3452#. type: example
32747aa9 3453#: doc/guix.texi:599
544cab3d
LC
3454#, no-wrap
3455msgid ""
3456"# mkdir -p ~root/.config/guix\n"
3457"# ln -sf /var/guix/profiles/per-user/root/current-guix \\\n"
3458" ~root/.config/guix/current\n"
3459msgstr ""
32747aa9
LC
3460"# mkdir -p ~root/.config/guix\n"
3461"# ln -sf /var/guix/profiles/per-user/root/current-guix \\\n"
3462" ~root/.config/guix/current\n"
544cab3d
LC
3463
3464#. type: enumerate
32747aa9 3465#: doc/guix.texi:603
544cab3d 3466msgid "Source @file{etc/profile} to augment @code{PATH} and other relevant environment variables:"
32747aa9 3467msgstr "执行@file{etc/profile}以更新@code{PATH}和其它相关的环境变量:"
544cab3d
LC
3468
3469#. type: example
32747aa9 3470#: doc/guix.texi:607
544cab3d
LC
3471#, no-wrap
3472msgid ""
3473"# GUIX_PROFILE=\"`echo ~root`/.config/guix/current\" ; \\\n"
3474" source $GUIX_PROFILE/etc/profile\n"
3475msgstr ""
32747aa9
LC
3476"# GUIX_PROFILE=\"`echo ~root`/.config/guix/current\" ; \\\n"
3477" source $GUIX_PROFILE/etc/profile\n"
544cab3d
LC
3478
3479#. type: enumerate
32747aa9 3480#: doc/guix.texi:612
544cab3d 3481msgid "Create the group and user accounts for build users as explained below (@pxref{Build Environment Setup})."
32747aa9 3482msgstr "像下面解释的那样为“构建用户”创建用户组和用户(@pxref{Build Environment Setup})。"
544cab3d
LC
3483
3484#. type: enumerate
32747aa9 3485#: doc/guix.texi:615
544cab3d 3486msgid "Run the daemon, and set it to automatically start on boot."
32747aa9 3487msgstr "运行后台进程,并设置为开机自启动。"
544cab3d
LC
3488
3489#. type: enumerate
32747aa9 3490#: doc/guix.texi:618
544cab3d 3491msgid "If your host distro uses the systemd init system, this can be achieved with these commands:"
32747aa9 3492msgstr "如果你的主机的发行版使用systemd init系统,可以用这些命令:"
544cab3d
LC
3493
3494#. type: example
32747aa9 3495#: doc/guix.texi:630
544cab3d
LC
3496#, no-wrap
3497msgid ""
3498"# cp ~root/.config/guix/current/lib/systemd/system/guix-daemon.service \\\n"
3499" /etc/systemd/system/\n"
3500"# systemctl start guix-daemon && systemctl enable guix-daemon\n"
3501msgstr ""
32747aa9
LC
3502"# cp ~root/.config/guix/current/lib/systemd/system/guix-daemon.service \\\n"
3503" /etc/systemd/system/\n"
3504"# systemctl start guix-daemon && systemctl enable guix-daemon\n"
544cab3d
LC
3505
3506#. type: itemize
32747aa9 3507#: doc/guix.texi:633 doc/guix.texi:9760
544cab3d 3508msgid "If your host distro uses the Upstart init system:"
32747aa9 3509msgstr "如果你的主机的发行版使用Upstart init系统:"
544cab3d
LC
3510
3511#. type: example
32747aa9 3512#: doc/guix.texi:639
544cab3d
LC
3513#, no-wrap
3514msgid ""
3515"# initctl reload-configuration\n"
3516"# cp ~root/.config/guix/current/lib/upstart/system/guix-daemon.conf \\\n"
3517" /etc/init/\n"
3518"# start guix-daemon\n"
3519msgstr ""
32747aa9
LC
3520"# initctl reload-configuration\n"
3521"# cp ~root/.config/guix/current/lib/upstart/system/guix-daemon.conf \\\n"
3522" /etc/init/\n"
3523"# start guix-daemon\n"
544cab3d
LC
3524
3525#. type: enumerate
32747aa9 3526#: doc/guix.texi:642
544cab3d 3527msgid "Otherwise, you can still start the daemon manually with:"
32747aa9 3528msgstr "此外,你可以手动启动后台进程:"
544cab3d
LC
3529
3530#. type: example
32747aa9 3531#: doc/guix.texi:646
544cab3d
LC
3532#, no-wrap
3533msgid ""
3534"# ~root/.config/guix/current/bin/guix-daemon \\\n"
3535" --build-users-group=guixbuild\n"
3536msgstr ""
32747aa9
LC
3537"# ~root/.config/guix/current/bin/guix-daemon \\\n"
3538" --build-users-group=guixbuild\n"
544cab3d
LC
3539
3540#. type: enumerate
32747aa9 3541#: doc/guix.texi:651
544cab3d 3542msgid "Make the @command{guix} command available to other users on the machine, for instance with:"
32747aa9 3543msgstr "使机器上的其他用户也可以使用@command{guix}命令:"
544cab3d
LC
3544
3545#. type: example
32747aa9 3546#: doc/guix.texi:656
544cab3d
LC
3547#, no-wrap
3548msgid ""
3549"# mkdir -p /usr/local/bin\n"
3550"# cd /usr/local/bin\n"
3551"# ln -s /var/guix/profiles/per-user/root/current-guix/bin/guix\n"
3552msgstr ""
32747aa9
LC
3553"# mkdir -p /usr/local/bin\n"
3554"# cd /usr/local/bin\n"
3555"# ln -s /var/guix/profiles/per-user/root/current-guix/bin/guix\n"
544cab3d
LC
3556
3557#. type: enumerate
32747aa9 3558#: doc/guix.texi:660
544cab3d 3559msgid "It is also a good idea to make the Info version of this manual available there:"
32747aa9 3560msgstr "最好让这个用户手册的Info版也可以被访问:"
544cab3d
LC
3561
3562#. type: example
32747aa9 3563#: doc/guix.texi:666
544cab3d
LC
3564#, no-wrap
3565msgid ""
3566"# mkdir -p /usr/local/share/info\n"
3567"# cd /usr/local/share/info\n"
3568"# for i in /var/guix/profiles/per-user/root/current-guix/share/info/* ;\n"
3569" do ln -s $i ; done\n"
3570msgstr ""
32747aa9
LC
3571"# mkdir -p /usr/local/share/info\n"
3572"# cd /usr/local/share/info\n"
3573"# for i in /var/guix/profiles/per-user/root/current-guix/share/info/* ;\n"
3574" do ln -s $i ; done\n"
544cab3d
LC
3575
3576#. type: enumerate
32747aa9 3577#: doc/guix.texi:672
544cab3d 3578msgid "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.)"
32747aa9 3579msgstr "那样,假设@file{/usr/local/share/info}在搜索路径里,运行@command{info guix}命令就会打开这个用户手册(@pxref{Other Info Directories,,, texinfo, GNU Texinfo},更多关于Info搜索路径的信息)。"
544cab3d
LC
3580
3581#. type: cindex
32747aa9 3582#: doc/guix.texi:674 doc/guix.texi:3159 doc/guix.texi:11980
544cab3d
LC
3583#, no-wrap
3584msgid "substitutes, authorization thereof"
32747aa9 3585msgstr "substitutes,对其授权"
544cab3d
LC
3586
3587#. type: enumerate
32747aa9 3588#: doc/guix.texi:677
544cab3d 3589msgid "To use substitutes from @code{@value{SUBSTITUTE-SERVER}} or one of its mirrors (@pxref{Substitutes}), authorize them:"
32747aa9 3590msgstr "为了使用@code{@value{SUBSTITUTE-SERVER}}或其镜像的substitute(@pxref{Substitutes}),对其授权:"
544cab3d
LC
3591
3592#. type: example
32747aa9 3593#: doc/guix.texi:681
544cab3d
LC
3594#, no-wrap
3595msgid ""
3596"# guix archive --authorize < \\\n"
3597" ~root/.config/guix/current/share/guix/@value{SUBSTITUTE-SERVER}.pub\n"
3598msgstr ""
32747aa9
LC
3599"# guix archive --authorize < \\\n"
3600" ~root/.config/guix/current/share/guix/@value{SUBSTITUTE-SERVER}.pub\n"
544cab3d
LC
3601
3602#. type: enumerate
32747aa9 3603#: doc/guix.texi:686
544cab3d 3604msgid "Each user may need to perform a few additional steps to make their Guix environment ready for use, @pxref{Application Setup}."
32747aa9 3605msgstr "每个用户可能需要执行一些额外的步骤以使各自的Guix环境可用,@pxref{Application Setup}。"
544cab3d
LC
3606
3607#. type: Plain text
32747aa9 3608#: doc/guix.texi:689
544cab3d 3609msgid "Voilà, the installation is complete!"
32747aa9 3610msgstr "瞧,安装完成了!"
544cab3d
LC
3611
3612#. type: Plain text
32747aa9 3613#: doc/guix.texi:692
544cab3d 3614msgid "You can confirm that Guix is working by installing a sample package into the root profile:"
32747aa9 3615msgstr "你可以通过给root profile安装一个软件包来确认Guix可以正常工作。"
544cab3d
LC
3616
3617#. type: example
32747aa9 3618#: doc/guix.texi:695
544cab3d 3619#, no-wrap
32747aa9
LC
3620msgid "# guix install hello\n"
3621msgstr "# guix install hello\n"
544cab3d
LC
3622
3623#. type: Plain text
32747aa9 3624#: doc/guix.texi:699
544cab3d 3625msgid "The binary installation tarball can be (re)produced and verified simply by running the following command in the Guix source tree:"
32747aa9 3626msgstr "二进制安装包可以通过在Guix源代码树里运行下面这些命令来重现和验证:"
544cab3d
LC
3627
3628#. type: example
32747aa9 3629#: doc/guix.texi:702
544cab3d
LC
3630#, no-wrap
3631msgid "make guix-binary.@var{system}.tar.xz\n"
32747aa9 3632msgstr "make guix-binary.@var{系统}.tar.xz\n"
544cab3d
LC
3633
3634#. type: Plain text
32747aa9 3635#: doc/guix.texi:706
544cab3d 3636msgid "...@: which, in turn, runs:"
32747aa9 3637msgstr "...@: 这个命令会执行:"
544cab3d
LC
3638
3639#. type: example
32747aa9 3640#: doc/guix.texi:710
544cab3d
LC
3641#, no-wrap
3642msgid ""
3643"guix pack -s @var{system} --localstatedir \\\n"
3644" --profile-name=current-guix guix\n"
3645msgstr ""
32747aa9
LC
3646"guix pack -s @var{系统} --localstatedir \\\n"
3647" --profile-name=current-guix guix\n"
544cab3d
LC
3648
3649#. type: Plain text
32747aa9 3650#: doc/guix.texi:713
544cab3d 3651msgid "@xref{Invoking guix pack}, for more info on this handy tool."
32747aa9 3652msgstr "@xref{Invoking guix pack},了解这个方便的工具。"
544cab3d
LC
3653
3654#. type: Plain text
32747aa9 3655#: doc/guix.texi:721
544cab3d 3656msgid "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."
32747aa9 3657msgstr "这个小节列举了从源代码构建Guix的需求。构建Guix的步骤和其它GNU软件相同,这里不介绍。请阅读Guix源代码树里的@file{README}和@file{INSTALL}文件以了解更多的信息。"
544cab3d
LC
3658
3659#. type: cindex
32747aa9 3660#: doc/guix.texi:722
544cab3d
LC
3661#, no-wrap
3662msgid "official website"
32747aa9 3663msgstr "官方网站"
544cab3d
LC
3664
3665#. type: Plain text
32747aa9 3666#: doc/guix.texi:725
544cab3d 3667msgid "GNU Guix is available for download from its website at @url{https://www.gnu.org/software/guix/}."
32747aa9 3668msgstr "GNU Guix可以从它的网站下载@url{https://www.gnu.org/software/guix/}。"
544cab3d
LC
3669
3670#. type: Plain text
32747aa9 3671#: doc/guix.texi:727
544cab3d 3672msgid "GNU Guix depends on the following packages:"
32747aa9 3673msgstr "GNU Guix依赖这些软件包:"
544cab3d
LC
3674
3675#. type: item
32747aa9 3676#: doc/guix.texi:729
544cab3d 3677#, no-wrap
32747aa9
LC
3678msgid "@url{https://gnu.org/software/guile/, GNU Guile}, version 2.2.x;"
3679msgstr "@url{https://gnu.org/software/guile/, GNU Guile},版本2.2.x;"
544cab3d
LC
3680
3681#. type: item
32747aa9 3682#: doc/guix.texi:730
544cab3d
LC
3683#, no-wrap
3684msgid "@url{https://notabug.org/cwebber/guile-gcrypt, Guile-Gcrypt}, version"
32747aa9 3685msgstr "@url{https://notabug.org/cwebber/guile-gcrypt, Guile-Gcrypt},版本"
544cab3d
LC
3686
3687#. type: itemize
32747aa9 3688#: doc/guix.texi:732
544cab3d 3689msgid "0.1.0 or later;"
32747aa9 3690msgstr "0.1.0或更新;"
544cab3d
LC
3691
3692#. type: itemize
32747aa9
LC
3693#: doc/guix.texi:736
3694msgid "@uref{https://gnutls.org/, GnuTLS}, specifically its Guile bindings (@pxref{Guile Preparations, how to install the GnuTLS bindings for Guile,, gnutls-guile, GnuTLS-Guile});"
3695msgstr "@uref{https://gnutls.org/, GnuTLS},特别是它的Guile接口(@pxref{Guile Preparations, 怎样为Guile安装GnuTLS接口,, gnutls-guile, GnuTLS-Guile});"
544cab3d
LC
3696
3697#. type: itemize
32747aa9 3698#: doc/guix.texi:739
544cab3d 3699msgid "@uref{https://notabug.org/guile-sqlite3/guile-sqlite3, Guile-SQLite3}, version 0.1.0 or later;"
32747aa9 3700msgstr "@uref{https://notabug.org/guile-sqlite3/guile-sqlite3, Guile-SQLite3},版本0.1.0或更新;"
544cab3d
LC
3701
3702#. type: itemize
32747aa9 3703#: doc/guix.texi:743
544cab3d 3704msgid "@uref{https://gitlab.com/guile-git/guile-git, Guile-Git}, from August 2017 or later;"
32747aa9 3705msgstr "@uref{https://gitlab.com/guile-git/guile-git, Guile-Git},2017年8月及之后的版本;"
544cab3d
LC
3706
3707#. type: item
32747aa9 3708#: doc/guix.texi:743
544cab3d
LC
3709#, no-wrap
3710msgid "@uref{https://savannah.nongnu.org/projects/guile-json/, Guile-JSON};"
32747aa9 3711msgstr "@uref{https://savannah.nongnu.org/projects/guile-json/, Guile-JSON};"
544cab3d
LC
3712
3713#. type: item
32747aa9 3714#: doc/guix.texi:744
544cab3d 3715#, no-wrap
32747aa9
LC
3716msgid "@url{https://zlib.net, zlib};"
3717msgstr "@url{https://zlib.net, zlib};"
544cab3d
LC
3718
3719#. type: item
32747aa9 3720#: doc/guix.texi:745
544cab3d 3721#, no-wrap
32747aa9
LC
3722msgid "@url{https://www.gnu.org/software/make/, GNU Make}."
3723msgstr "@url{https://www.gnu.org/software/make/, GNU Make}。"
544cab3d
LC
3724
3725#. type: Plain text
32747aa9 3726#: doc/guix.texi:749
544cab3d 3727msgid "The following dependencies are optional:"
32747aa9 3728msgstr "这些依赖是可选的:"
544cab3d
LC
3729
3730#. type: itemize
32747aa9 3731#: doc/guix.texi:757
544cab3d 3732msgid "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.10.2 or later."
32747aa9 3733msgstr "对下发构建任务(@pxref{Daemon Offload Setup})和@command{guix copy}(@pxref{Invoking guix copy})的支持依赖于@uref{https://github.com/artyom-poptsov/guile-ssh, Guile-SSH},版本0.10.2或更新。"
544cab3d
LC
3734
3735#. type: itemize
32747aa9 3736#: doc/guix.texi:761
544cab3d 3737msgid "When @url{http://www.bzip.org, libbz2} is available, @command{guix-daemon} can use it to compress build logs."
32747aa9 3738msgstr "当@url{http://www.bzip.org, libbz2}存在时,@command{guix-daemon}可以用它压缩构建日志。"
544cab3d
LC
3739
3740#. type: Plain text
32747aa9 3741#: doc/guix.texi:765
544cab3d 3742msgid "Unless @code{--disable-daemon} was passed to @command{configure}, the following packages are also needed:"
32747aa9 3743msgstr "除非@code{--disable-daemon}参数被传给@command{configure},这些软件包也是需要的依赖:"
544cab3d
LC
3744
3745#. type: item
32747aa9 3746#: doc/guix.texi:767
544cab3d 3747#, no-wrap
32747aa9
LC
3748msgid "@url{https://gnupg.org/, GNU libgcrypt};"
3749msgstr "@url{https://gnupg.org/, GNU libgcrypt};"
544cab3d
LC
3750
3751#. type: item
32747aa9 3752#: doc/guix.texi:768
544cab3d 3753#, no-wrap
32747aa9
LC
3754msgid "@url{https://sqlite.org, SQLite 3};"
3755msgstr "@url{https://sqlite.org, SQLite 3};"
544cab3d
LC
3756
3757#. type: item
32747aa9 3758#: doc/guix.texi:769
544cab3d 3759#, no-wrap
32747aa9
LC
3760msgid "@url{https://gcc.gnu.org, GCC's g++}, with support for the"
3761msgstr "@url{https://gcc.gnu.org, GCC's g++},支持"
544cab3d
LC
3762
3763#. type: itemize
32747aa9 3764#: doc/guix.texi:771
544cab3d 3765msgid "C++11 standard."
32747aa9 3766msgstr "C++11标准。"
544cab3d
LC
3767
3768#. type: cindex
32747aa9 3769#: doc/guix.texi:773
544cab3d
LC
3770#, no-wrap
3771msgid "state directory"
32747aa9 3772msgstr "状态文件夹"
544cab3d
LC
3773
3774#. type: Plain text
32747aa9 3775#: doc/guix.texi:781
544cab3d 3776msgid "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 @code{--localstatedir} option of the @command{configure} script (@pxref{Directory Variables, @code{localstatedir},, standards, GNU Coding Standards}). The @command{configure} script protects against unintended misconfiguration of @var{localstatedir} so you do not inadvertently corrupt your store (@pxref{The Store})."
32747aa9 3777msgstr "当在一个已经安装Guix的系统上配置Guix时,请确保用@command{configure}的@code{--localstatedir}参数指定和现有的安装相同的状态文件夹(@pxref{Directory Variables, @code{localstatedir},, standards, GNU Coding Standards})。@command{configure}保护你免于误设置@var{localstatedir},从而不会无意中损坏仓库(@pxref{The Store})。"
544cab3d
LC
3778
3779#. type: cindex
32747aa9 3780#: doc/guix.texi:782
544cab3d
LC
3781#, no-wrap
3782msgid "Nix, compatibility"
32747aa9 3783msgstr "Nix,兼容性"
544cab3d
LC
3784
3785#. type: Plain text
32747aa9
LC
3786#: doc/guix.texi:787
3787msgid "When a working installation of @url{https://nixos.org/nix/, the Nix package manager} is available, you can instead configure Guix with @code{--disable-daemon}. In that case, Nix replaces the three dependencies above."
3788msgstr "当一个已经安装的且可用的@url{https://nixos.org/nix/, Nix包管理器}存在时,你可以为Guix配置@code{--disable-daemon}参数。那样Nix可以替换上面的三个依赖。"
544cab3d
LC
3789
3790#. type: Plain text
32747aa9 3791#: doc/guix.texi:797
544cab3d 3792msgid "Guix is compatible with Nix, so it is possible to share the same store between both. To do so, you must pass @command{configure} not only the same @code{--with-store-dir} value, but also the same @code{--localstatedir} value. The latter is essential because it specifies where the database that stores metadata about the store is located, among other things. The default values for Nix are @code{--with-store-dir=/nix/store} and @code{--localstatedir=/nix/var}. Note that @code{--disable-daemon} is not required if your goal is to share the store with Nix."
32747aa9 3793msgstr "Guix和Nix兼容,所以两者共享相同的仓库是可行的。如果这样做,你必须传给@command{configure}相同的@code{--with-store-dir},以及相同的@code{--localstatedir}。后者很重要,因为它指定了储存仓库元数据以及其它信息的数据库的位置,。Nix的默认值是@code{--with-store-dir=/nix/store}和@code{--localstatedir=/nix/var}。注意,如果你的目的是和Nix共享仓库,那么@code{--disable-daemon}参数不是必须的。"
544cab3d
LC
3794
3795#. type: cindex
32747aa9 3796#: doc/guix.texi:801
544cab3d
LC
3797#, no-wrap
3798msgid "test suite"
32747aa9 3799msgstr "测试套件"
544cab3d
LC
3800
3801#. type: Plain text
32747aa9 3802#: doc/guix.texi:807
544cab3d 3803msgid "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:"
32747aa9 3804msgstr "成功执行@command{configure}和@code{make}之后,最好运行测试套件。它可以帮助查找设置和环境的错误,或者是Guix自身的bug--并且,报告测试错误是帮助改进软件的好方法。输入下面的命令以执行测试套件。"
544cab3d
LC
3805
3806#. type: example
32747aa9 3807#: doc/guix.texi:810
544cab3d
LC
3808#, no-wrap
3809msgid "make check\n"
32747aa9 3810msgstr "make check\n"
544cab3d
LC
3811
3812#. type: Plain text
32747aa9 3813#: doc/guix.texi:817
544cab3d 3814msgid "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."
32747aa9 3815msgstr "测试用例可以并行运行:你可以用GNU@tie{}make的@code{-j}参数来加速运行。才一台较新的机器上第一次运行可能会花几分钟,后续的运行会更快,因为为测试创建的仓库已经包含了各种缓存。"
544cab3d
LC
3816
3817#. type: Plain text
32747aa9 3818#: doc/guix.texi:820
544cab3d 3819msgid "It is also possible to run a subset of the tests by defining the @code{TESTS} makefile variable as in this example:"
32747aa9 3820msgstr "你还可以通过定义makefile的@code{TESTS}变量只运行测试的一个子集:"
544cab3d
LC
3821
3822#. type: example
32747aa9 3823#: doc/guix.texi:823
544cab3d
LC
3824#, no-wrap
3825msgid "make check TESTS=\"tests/store.scm tests/cpio.scm\"\n"
32747aa9 3826msgstr "make check TESTS=\"tests/store.scm tests/cpio.scm\"\n"
544cab3d
LC
3827
3828#. type: Plain text
32747aa9 3829#: doc/guix.texi:828
544cab3d 3830msgid "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:"
32747aa9 3831msgstr "默认情况下,测试结果只展示到文件层级。为了看每个独立的测试用例的详情,可以像这样定义@code{SCM_LOG_DRIVER_FLAGS} makefile变量:"
544cab3d
LC
3832
3833#. type: example
32747aa9 3834#: doc/guix.texi:831
544cab3d
LC
3835#, no-wrap
3836msgid "make check TESTS=\"tests/base64.scm\" SCM_LOG_DRIVER_FLAGS=\"--brief=no\"\n"
32747aa9 3837msgstr "make check TESTS=\"tests/base64.scm\" SCM_LOG_DRIVER_FLAGS=\"--brief=no\"\n"
544cab3d
LC
3838
3839#. type: Plain text
32747aa9 3840#: doc/guix.texi:837
544cab3d 3841msgid "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."
32747aa9 3842msgstr "遇到错误时,请给@email{bug-guix@@gnu.org}发邮件,并附带@file{test-suite.log}文件。请在消息里说明使用的Guix的版本信息和依赖(@pxref{Requirements})的版本信息。"
544cab3d
LC
3843
3844#. type: Plain text
32747aa9 3845#: doc/guix.texi:841
544cab3d 3846msgid "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:"
32747aa9 3847msgstr "Guix还附带了一个可以测试整个Guix系统实例的全系统测试套件。它只能在已经安装Guix的系统上运行:"
544cab3d
LC
3848
3849#. type: example
32747aa9 3850#: doc/guix.texi:844
544cab3d
LC
3851#, no-wrap
3852msgid "make check-system\n"
32747aa9 3853msgstr "make check-system\n"
544cab3d
LC
3854
3855#. type: Plain text
32747aa9 3856#: doc/guix.texi:848
544cab3d 3857msgid "or, again, by defining @code{TESTS} to select a subset of tests to run:"
32747aa9 3858msgstr "或者,同样的,通过定义@code{TESTS}只运行测试的一个子集:"
544cab3d
LC
3859
3860#. type: example
32747aa9 3861#: doc/guix.texi:851
544cab3d
LC
3862#, no-wrap
3863msgid "make check-system TESTS=\"basic mcron\"\n"
32747aa9 3864msgstr "make check-system TESTS=\"basic mcron\"\n"
544cab3d
LC
3865
3866#. type: Plain text
32747aa9 3867#: doc/guix.texi:859
544cab3d 3868msgid "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."
32747aa9 3869msgstr "这些系统测试是在@code{(gnu tests @dots{})}模块里定义的。它们在虚拟机(VM)里运行轻量的指令。它们的计算量可能很多也可能很少,这取决于它们依赖的substitute(@pxref{Substitutes})是否已经存在。它们之中有些需要很多存储空间以保存虚拟机硬盘。"
544cab3d
LC
3870
3871#. type: Plain text
32747aa9 3872#: doc/guix.texi:862
544cab3d 3873msgid "Again in case of test failures, please send @email{bug-guix@@gnu.org} all the details."
32747aa9 3874msgstr "再重复一遍,如果遇到测试错误,请给@email{bug-guix@@gnu.org}发邮件,并附带详细的说明。"
544cab3d
LC
3875
3876#. type: cindex
32747aa9 3877#: doc/guix.texi:866
544cab3d
LC
3878#, no-wrap
3879msgid "daemon"
32747aa9 3880msgstr "后台进程"
544cab3d
LC
3881
3882#. type: Plain text
32747aa9 3883#: doc/guix.texi:874
544cab3d 3884msgid "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."
32747aa9 3885msgstr "构建软件包或运行垃圾回收器之类的操作都是由一个特殊的进程代替客户执行的,即@dfn{构建后台进程}。只有这个进程可以访问仓库和相关的数据库。因此,所有修改仓库的操作都通过这个后台进程执行。例如,@command{guix package}和@command{guix build}之类的命令行工具通过和这个后台进程通信(@i{通过}远程过程调用)来指示它该做什么。"
544cab3d
LC
3886
3887#. type: Plain text
32747aa9 3888#: doc/guix.texi:878
544cab3d 3889msgid "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."
32747aa9 3890msgstr "接下来的几个小节介绍如何准备“构建后台进程”的环境。参考@ref{Substitutes},了解怎样允许这个后台进程下载预构建好的二进制文件。"
544cab3d
LC
3891
3892#. type: cindex
32747aa9 3893#: doc/guix.texi:888 doc/guix.texi:1311
544cab3d
LC
3894#, no-wrap
3895msgid "build environment"
32747aa9 3896msgstr "构建环境"
544cab3d
LC
3897
3898#. type: Plain text
32747aa9 3899#: doc/guix.texi:896
544cab3d 3900msgid "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."
32747aa9 3901msgstr "在一个标准的多用户设置里,Guix和它的后台进程--@command{guix-daemon}程序--是由@code{root}用户安装的,并且@command{guix-daemon}以@code{root}用户身份运行。无特权的用户可以用Guix的工具构建软件包或访问仓库,这个后台进程会代替用户进行这些操作,以确保仓库保持一致的状态,并且允许构建好的软件包可以在不同用户间共享。"
544cab3d
LC
3902
3903#. type: cindex
32747aa9 3904#: doc/guix.texi:897
544cab3d
LC
3905#, no-wrap
3906msgid "build users"
32747aa9 3907msgstr "构建用户"
544cab3d
LC
3908
3909#. type: Plain text
32747aa9 3910#: doc/guix.texi:908
544cab3d 3911msgid "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})."
32747aa9 3912msgstr "当@command{guix-daemon}以@code{root}用户身份运行时,由于安全方面的考虑,你可能不希望软件包构建进程也以@code{root}用户身份运行。为了避免那样,我们需要创建一个@dfn{构建用户}池,以供后台进程启动的构建进程使用。这些构建用户不需要拥有shell和家目录:他们只会在后台进程为构建进程剥夺@code{root}特权时使用。拥有多个这类用户使后台进程可以以不同的UID启动不同的构建进程,这保证它们不会互相干扰--这是一个重要的功能,因为构建被视为纯函数(@pxref{Introduction})。"
544cab3d
LC
3913
3914#. type: Plain text
32747aa9 3915#: doc/guix.texi:911
544cab3d 3916msgid "On a GNU/Linux system, a build user pool may be created like this (using Bash syntax and the @code{shadow} commands):"
32747aa9 3917msgstr "在一个GNU/Linux系统上,可以这样创建一个构建用户池(用bash语法和@code{shadow}命令):"
544cab3d
LC
3918
3919#. type: example
32747aa9 3920#: doc/guix.texi:923
544cab3d
LC
3921#, no-wrap
3922msgid ""
3923"# groupadd --system guixbuild\n"
3924"# for i in `seq -w 1 10`;\n"
3925" do\n"
3926" useradd -g guixbuild -G guixbuild \\\n"
3927" -d /var/empty -s `which nologin` \\\n"
3928" -c \"Guix build user $i\" --system \\\n"
3929" guixbuilder$i;\n"
3930" done\n"
3931msgstr ""
32747aa9
LC
3932"# groupadd --system guixbuild\n"
3933"# for i in `seq -w 1 10`;\n"
3934" do\n"
3935" useradd -g guixbuild -G guixbuild \\\n"
3936" -d /var/empty -s `which nologin` \\\n"
3937" -c \"Guix build user $i\" --system \\\n"
3938" guixbuilder$i;\n"
3939" done\n"
544cab3d
LC
3940
3941#. type: Plain text
32747aa9 3942#: doc/guix.texi:933
544cab3d 3943msgid "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})."
32747aa9 3944msgstr "构建用户的数量决定了有多少个构建任务可以并行执行,即@option{--max-jobs}参数(@pxref{Invoking guix-daemon, @option{--max-jobs}})。为了使用@command{guix system vm}和相关的命令,你需要把构建用户添加到@code{kvm}用户组,以使它们访问@file{/dev/kvm}。为此,把@code{-G guixbuild}替换成@code{-G guixbuild,kvm}(@pxref{Invoking guix system})。"
544cab3d
LC
3945
3946#. type: Plain text
32747aa9 3947#: doc/guix.texi:942
544cab3d 3948msgid "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}.}:"
32747aa9 3949msgstr "之后以@code{root}身份用下面的命令运行@code{guix-daemon}程序command@footnote{如果你的机器使用systemd init系统,把@file{@var{prefix}/lib/systemd/system/guix-daemon.service}文件复制到@file{/etc/systemd/system}文件夹里可以使@command{guix-daemon}自启动。类似的,如果你的机器使用Upstart init系统,把@file{@var{prefix}/lib/upstart/system/guix-daemon.conf}文件复制到@file{/etc/init}文件夹里}:"
544cab3d
LC
3950
3951#. type: example
32747aa9 3952#: doc/guix.texi:945 doc/guix.texi:1304
544cab3d
LC
3953#, no-wrap
3954msgid "# guix-daemon --build-users-group=guixbuild\n"
32747aa9 3955msgstr "# guix-daemon --build-users-group=guixbuild\n"
544cab3d
LC
3956
3957#. type: cindex
32747aa9 3958#: doc/guix.texi:947 doc/guix.texi:1309
544cab3d
LC
3959#, no-wrap
3960msgid "chroot"
32747aa9 3961msgstr "chroot"
544cab3d
LC
3962
3963#. type: Plain text
32747aa9 3964#: doc/guix.texi:952
544cab3d 3965msgid "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:"
32747aa9 3966msgstr "这样,后台进程在一个chroot环境里,以一个@code{guixbuilder}用户组成员的身份启动构建进程。在GNU/Linux上,默认的,这个chroot环境仅包含这些东西:"
544cab3d
LC
3967
3968#. type: itemize
32747aa9 3969#: doc/guix.texi:960
544cab3d 3970msgid "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.};"
32747aa9 3971msgstr "一个和主机@code{/dev}独立的@footnote{大致这样,因为虽然chroot环境里的@code{/dev}包含的文件是固定的,大部分这些文件只有在主机有对应的文件时才能创建。},最小的@code{/dev}文件夹;"
544cab3d
LC
3972
3973#. type: itemize
32747aa9 3974#: doc/guix.texi:964
544cab3d 3975msgid "the @code{/proc} directory; it only shows the processes of the container since a separate PID name space is used;"
32747aa9 3976msgstr "@code{/proc}文件夹;它只含有当前容器的进程,因为用了一个独立的进程PID命名空间;"
544cab3d
LC
3977
3978#. type: itemize
32747aa9 3979#: doc/guix.texi:968
544cab3d 3980msgid "@file{/etc/passwd} with an entry for the current user and an entry for user @file{nobody};"
32747aa9 3981msgstr "@file{/etc/passwd},仅包含当前用户和@file{nobody};"
544cab3d
LC
3982
3983#. type: itemize
32747aa9 3984#: doc/guix.texi:971
544cab3d 3985msgid "@file{/etc/group} with an entry for the user's group;"
32747aa9 3986msgstr "@file{/etc/group},包含用户的组;"
544cab3d
LC
3987
3988#. type: itemize
32747aa9 3989#: doc/guix.texi:975
544cab3d 3990msgid "@file{/etc/hosts} with an entry that maps @code{localhost} to @code{127.0.0.1};"
32747aa9 3991msgstr "@file{/etc/hosts},包含@code{localhost}映射到@code{127.0.0.1}的条目;"
544cab3d
LC
3992
3993#. type: itemize
32747aa9 3994#: doc/guix.texi:978
544cab3d 3995msgid "a writable @file{/tmp} directory."
32747aa9 3996msgstr "一个可写的@file{/tmp}文件夹。"
544cab3d
LC
3997
3998#. type: Plain text
32747aa9 3999#: doc/guix.texi:987
544cab3d 4000msgid "You can influence the directory where the daemon stores build trees @i{via} the @code{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 @code{TMPDIR} does not leak inside build environments, which avoids discrepancies in cases where build processes capture the name of their build tree."
32747aa9 4001msgstr "你可以@i{通过}@code{TMPDIR}环境变量修改后台进程保存构建树的位置。但是,chroot里的构建树总是在@file{/tmp/guix-build-@var{名字}.drv-0},@var{名字}是derivation的名字--如@code{coreutils-8.24}。这样,@code{TMPDIR}的值就不会泄漏到构建环境里,这可以避免由构建进程读取构建树名字引起的问题。"
544cab3d
LC
4002
4003#. type: vindex
32747aa9 4004#: doc/guix.texi:988 doc/guix.texi:3261
544cab3d
LC
4005#, no-wrap
4006msgid "http_proxy"
32747aa9 4007msgstr "http_proxy"
544cab3d
LC
4008
4009#. type: Plain text
32747aa9 4010#: doc/guix.texi:992
544cab3d 4011msgid "The daemon also honors the @code{http_proxy} environment variable for HTTP downloads it performs, be it for fixed-output derivations (@pxref{Derivations}) or for substitutes (@pxref{Substitutes})."
32747aa9 4012msgstr "后台进程通过HTTP下载时还遵守@code{http_proxy}环境变量,无论是下载derivation(@pxref{Derivations}),还是下载substitute(@pxref{Substitutes})。"
544cab3d
LC
4013
4014#. type: Plain text
32747aa9 4015#: doc/guix.texi:1000
544cab3d 4016msgid "If you are installing Guix as an unprivileged user, it is still possible to run @command{guix-daemon} provided you pass @code{--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."
32747aa9 4017msgstr "如果你是以无特权的用户的身份安装Guix,你仍可以运行@command{guix-daemon},只要添加@code{--disable-chroot}参数就行了。但是,构建进程不会互相隔离,也不会和系统的其它部分隔离。因此,构建进程有可能互相干扰,可以访问程序、库和系统上的其它文件--这样就很难把它看作@emph{纯}函数。"
544cab3d
LC
4018
4019#. type: subsection
32747aa9 4020#: doc/guix.texi:1003
544cab3d
LC
4021#, no-wrap
4022msgid "Using the Offload Facility"
32747aa9 4023msgstr "使用任务下发设施"
544cab3d
LC
4024
4025#. type: cindex
32747aa9 4026#: doc/guix.texi:1005
544cab3d
LC
4027#, no-wrap
4028msgid "offloading"
32747aa9 4029msgstr "下发"
544cab3d
LC
4030
4031#. type: cindex
32747aa9 4032#: doc/guix.texi:1006 doc/guix.texi:1367
544cab3d
LC
4033#, no-wrap
4034msgid "build hook"
32747aa9 4035msgstr "构建钩子"
544cab3d
LC
4036
4037#. type: Plain text
32747aa9 4038#: doc/guix.texi:1020
544cab3d 4039msgid "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 type---e.g., @file{x86_64-linux}. 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."
32747aa9 4040msgstr "当需要时,构建后台进程可以把构建derivation的任务@dfn{下发}给其它运行Guix的机器,这通过@code{下发} @dfn{构建钩子}实现@footnote{这个功能只有当@uref{https://github.com/artyom-poptsov/guile-ssh, Guile-SSH}存在时才可用。}。当那个功能被启用时,会从@file{/etc/guix/machines.scm}读取一列用户指定的机器;每次发送构建请求时,如执行@code{guix build},后台进程尝试把它下发到某一台满足derivation的约束(特别是系统类型--如@file{x86_64-linux})的机器上。缺少的必备构建依赖通过SSH复制到目标机器,然后继续构建;成功后,构建输出的结果被复制回初始的机器上。"
544cab3d
LC
4041
4042#. type: Plain text
32747aa9 4043#: doc/guix.texi:1022
544cab3d 4044msgid "The @file{/etc/guix/machines.scm} file typically looks like this:"
32747aa9 4045msgstr "@file{/etc/guix/machines.scm}文件通常是这样的:"
544cab3d
LC
4046
4047#. type: example
32747aa9 4048#: doc/guix.texi:1030
544cab3d
LC
4049#, no-wrap
4050msgid ""
4051"(list (build-machine\n"
4052" (name \"eightysix.example.org\")\n"
4053" (system \"x86_64-linux\")\n"
4054" (host-key \"ssh-ed25519 AAAAC3Nza@dots{}\")\n"
4055" (user \"bob\")\n"
4056" (speed 2.)) ;incredibly fast!\n"
4057"\n"
4058msgstr ""
32747aa9
LC
4059"(list (build-machine\n"
4060" (name \"eightysix.example.org\")\n"
4061" (system \"x86_64-linux\")\n"
4062" (host-key \"ssh-ed25519 AAAAC3Nza@dots{}\")\n"
4063" (user \"bob\")\n"
4064" (speed 2.)) ;非常快!\n"
4065"\n"
544cab3d
LC
4066
4067#. type: example
32747aa9 4068#: doc/guix.texi:1039
544cab3d
LC
4069#, no-wrap
4070msgid ""
4071" (build-machine\n"
4072" (name \"meeps.example.org\")\n"
4073" (system \"mips64el-linux\")\n"
4074" (host-key \"ssh-rsa AAAAB3Nza@dots{}\")\n"
4075" (user \"alice\")\n"
4076" (private-key\n"
4077" (string-append (getenv \"HOME\")\n"
4078" \"/.ssh/identity-for-guix\"))))\n"
4079msgstr ""
32747aa9
LC
4080" (build-machine\n"
4081" (name \"meeps.example.org\")\n"
4082" (system \"mips64el-linux\")\n"
4083" (host-key \"ssh-rsa AAAAB3Nza@dots{}\")\n"
4084" (user \"alice\")\n"
4085" (private-key\n"
4086" (string-append (getenv \"HOME\")\n"
4087" \"/.ssh/identity-for-guix\"))))\n"
544cab3d
LC
4088
4089#. type: Plain text
32747aa9 4090#: doc/guix.texi:1045
544cab3d 4091msgid "In the example above we specify a list of two build machines, one for the @code{x86_64} architecture and one for the @code{mips64el} architecture."
32747aa9 4092msgstr "在上面的例子里,我们指定了一个包含两个构建机器的列表,一个是@code{x86_64}架构,一个是@code{mips64el}架构。"
544cab3d
LC
4093
4094#. type: Plain text
32747aa9 4095#: doc/guix.texi:1054
544cab3d 4096msgid "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."
32747aa9 4097msgstr "事实上,这个文件--并不意外地--是一个Scheme文件,当@code{下发}钩子被启动时执行。它的返回值必须是一个包含@code{build-machine}对象的列表。虽然这个例子展示的是一个固定的列表,你可以想象,使用DNS-SD来返回一个包含从局域网内发现的构建机器的列表,@pxref{Introduction, Guile-Avahi,, guile-avahi, 在Guile Scheme程序里使用Avahi}。@code{build-machine}数据类型的详细信息如下。"
544cab3d
LC
4098
4099#. type: deftp
32747aa9 4100#: doc/guix.texi:1055
544cab3d
LC
4101#, no-wrap
4102msgid "{Data Type} build-machine"
32747aa9 4103msgstr "{数据类型} build-machine"
544cab3d
LC
4104
4105#. type: deftp
32747aa9 4106#: doc/guix.texi:1058
544cab3d 4107msgid "This data type represents build machines to which the daemon may offload builds. The important fields are:"
32747aa9 4108msgstr "这个数据类型表示后台进程可以下发构建任务的构建机器。重要的项有:"
544cab3d
LC
4109
4110#. type: item
32747aa9
LC
4111#: doc/guix.texi:1061 doc/guix.texi:5337 doc/guix.texi:11004
4112#: doc/guix.texi:11086 doc/guix.texi:11313 doc/guix.texi:12897
4113#: doc/guix.texi:17434 doc/guix.texi:18019 doc/guix.texi:18630
4114#: doc/guix.texi:18938 doc/guix.texi:18979 doc/guix.texi:23523
4115#: doc/guix.texi:23540 doc/guix.texi:23833 doc/guix.texi:25130
4116#: doc/guix.texi:25336
544cab3d
LC
4117#, no-wrap
4118msgid "name"
32747aa9 4119msgstr "名字"
544cab3d
LC
4120
4121#. type: table
32747aa9 4122#: doc/guix.texi:1063
544cab3d 4123msgid "The host name of the remote machine."
32747aa9 4124msgstr "远程机器的主机名。"
544cab3d
LC
4125
4126#. type: item
32747aa9 4127#: doc/guix.texi:1064
544cab3d
LC
4128#, no-wrap
4129msgid "system"
32747aa9 4130msgstr "系统"
544cab3d
LC
4131
4132#. type: table
32747aa9 4133#: doc/guix.texi:1066
544cab3d 4134msgid "The system type of the remote machine---e.g., @code{\"x86_64-linux\"}."
32747aa9 4135msgstr "远程机器的系统类型--如,@code{\"x86_64-linux\"}。"
544cab3d
LC
4136
4137#. type: code{#1}
32747aa9 4138#: doc/guix.texi:1067 doc/guix.texi:12907
544cab3d
LC
4139#, no-wrap
4140msgid "user"
32747aa9 4141msgstr "用户"
544cab3d
LC
4142
4143#. type: table
32747aa9 4144#: doc/guix.texi:1071
544cab3d 4145msgid "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."
32747aa9 4146msgstr "通过SSH连接远程机器时使用的用户帐号。注意,SSH密钥@emph{不}能被密码保护,以支持无交互的登录。"
544cab3d
LC
4147
4148#. type: item
32747aa9 4149#: doc/guix.texi:1072
544cab3d
LC
4150#, no-wrap
4151msgid "host-key"
32747aa9 4152msgstr "主机公钥"
544cab3d
LC
4153
4154#. type: table
32747aa9 4155#: doc/guix.texi:1076
544cab3d 4156msgid "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:"
32747aa9 4157msgstr "这必须是机器的OpenSSH格式的SSH@dfn{公钥}。这是用来在连接机器时认证身份的。它是一个像这样的长字符串:"
544cab3d
LC
4158
4159#. type: example
32747aa9 4160#: doc/guix.texi:1079
544cab3d
LC
4161#, no-wrap
4162msgid "ssh-ed25519 AAAAC3NzaC@dots{}mde+UhL hint@@example.org\n"
32747aa9 4163msgstr "ssh-ed25519 AAAAC3NzaC@dots{}mde+UhL hint@@example.org\n"
544cab3d
LC
4164
4165#. type: table
32747aa9 4166#: doc/guix.texi:1084
544cab3d 4167msgid "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}."
32747aa9 4168msgstr "如果这个机器正在运行OpenSSH后台进程,@command{sshd},那么主机公钥可以在@file{/etc/ssh/ssh_host_ed25519_key.pub}找到。"
544cab3d
LC
4169
4170#. type: table
32747aa9 4171#: doc/guix.texi:1089
544cab3d 4172msgid "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}):"
32747aa9 4173msgstr "如果这个机器正在运行GNU@tie{}lsh,@command{lshd},那么主机公钥可以在@file{/etc/lsh/host-key.pub}或类似的位置找到。它可以通过@command{lsh-export-key}命令转换成OpenSSH格式(@pxref{Converting keys,,, lsh, LSH用户手册}):"
544cab3d
LC
4174
4175#. type: example
32747aa9 4176#: doc/guix.texi:1093
544cab3d
LC
4177#, no-wrap
4178msgid ""
4179"$ lsh-export-key --openssh < /etc/lsh/host-key.pub \n"
4180"ssh-rsa AAAAB3NzaC1yc2EAAAAEOp8FoQAAAQEAs1eB46LV@dots{}\n"
4181msgstr ""
32747aa9
LC
4182"$ lsh-export-key --openssh < /etc/lsh/host-key.pub \n"
4183"ssh-rsa AAAAB3NzaC1yc2EAAAAEOp8FoQAAAQEAs1eB46LV@dots{}\n"
544cab3d
LC
4184
4185#. type: deftp
32747aa9 4186#: doc/guix.texi:1098
544cab3d 4187msgid "A number of optional fields may be specified:"
32747aa9 4188msgstr "一些可选的项:"
544cab3d
LC
4189
4190#. type: item
32747aa9 4191#: doc/guix.texi:1101
544cab3d
LC
4192#, no-wrap
4193msgid "@code{port} (default: @code{22})"
32747aa9 4194msgstr "@code{port}(默认值:@code{22})"
544cab3d
LC
4195
4196#. type: table
32747aa9 4197#: doc/guix.texi:1103
544cab3d 4198msgid "Port number of SSH server on the machine."
32747aa9 4199msgstr "机器上的SSH服务器的端口号。"
544cab3d
LC
4200
4201#. type: item
32747aa9 4202#: doc/guix.texi:1104
544cab3d
LC
4203#, no-wrap
4204msgid "@code{private-key} (default: @file{~root/.ssh/id_rsa})"
32747aa9 4205msgstr "@code{private-key}(默认值:@file{~root/.ssh/id_rsa})"
544cab3d
LC
4206
4207#. type: table
32747aa9 4208#: doc/guix.texi:1107
544cab3d 4209msgid "The SSH private key file to use when connecting to the machine, in OpenSSH format. This key must not be protected with a passphrase."
32747aa9 4210msgstr "连接机器时使用的SSH私钥,OpenSSH格式。这个私钥不能被密码保护。"
544cab3d
LC
4211
4212#. type: table
32747aa9 4213#: doc/guix.texi:1110
544cab3d 4214msgid "Note that the default value is the private key @emph{of the root account}. Make sure it exists if you use the default."
32747aa9 4215msgstr "注意,默认值是@emph{root帐号}的私钥。使用默认值时请确保它存在。"
544cab3d
LC
4216
4217#. type: item
32747aa9 4218#: doc/guix.texi:1111
544cab3d
LC
4219#, no-wrap
4220msgid "@code{compression} (default: @code{\"zlib@@openssh.com,zlib\"})"
32747aa9 4221msgstr "@code{compression}(默认值:@code{\"zlib@@openssh.com,zlib\"})"
544cab3d
LC
4222
4223#. type: item
32747aa9 4224#: doc/guix.texi:1112 doc/guix.texi:12200
544cab3d
LC
4225#, no-wrap
4226msgid "@code{compression-level} (default: @code{3})"
32747aa9 4227msgstr "@code{compression-level}(默认值:@code{3})"
544cab3d
LC
4228
4229#. type: table
32747aa9 4230#: doc/guix.texi:1114
544cab3d 4231msgid "The SSH-level compression methods and compression level requested."
32747aa9 4232msgstr "SSH压缩算法和压缩级别。"
544cab3d
LC
4233
4234#. type: table
32747aa9 4235#: doc/guix.texi:1117
544cab3d 4236msgid "Note that offloading relies on SSH compression to reduce bandwidth usage when transferring files to and from build machines."
32747aa9 4237msgstr "下发任务依赖SSH压缩来减少传输文件到构建机器时使用的带宽。"
544cab3d
LC
4238
4239#. type: item
32747aa9 4240#: doc/guix.texi:1118
544cab3d
LC
4241#, no-wrap
4242msgid "@code{daemon-socket} (default: @code{\"/var/guix/daemon-socket/socket\"})"
32747aa9 4243msgstr "@code{daemon-socket}(默认值:@code{\"/var/guix/daemon-socket/socket\"})"
544cab3d
LC
4244
4245#. type: table
32747aa9 4246#: doc/guix.texi:1121
544cab3d 4247msgid "File name of the Unix-domain socket @command{guix-daemon} is listening to on that machine."
32747aa9 4248msgstr "那台机器上的@command{guix-daemon}监听的Unix套接字文件名。"
544cab3d
LC
4249
4250#. type: item
32747aa9 4251#: doc/guix.texi:1122
544cab3d
LC
4252#, no-wrap
4253msgid "@code{parallel-builds} (default: @code{1})"
32747aa9 4254msgstr "@code{parallel-builds}(默认值:@code{1})"
544cab3d
LC
4255
4256#. type: table
32747aa9 4257#: doc/guix.texi:1124
544cab3d 4258msgid "The number of builds that may run in parallel on the machine."
32747aa9 4259msgstr "那台机器上可以并行运行的构建任务数量。"
544cab3d
LC
4260
4261#. type: item
32747aa9 4262#: doc/guix.texi:1125
544cab3d
LC
4263#, no-wrap
4264msgid "@code{speed} (default: @code{1.0})"
32747aa9 4265msgstr "@code{speed}(默认值:@code{1.0})"
544cab3d
LC
4266
4267#. type: table
32747aa9 4268#: doc/guix.texi:1128
544cab3d 4269msgid "A ``relative speed factor''. The offload scheduler will tend to prefer machines with a higher speed factor."
32747aa9 4270msgstr "一个相对的速度值。下发调度器会偏好速度更快的机器。"
544cab3d
LC
4271
4272#. type: item
32747aa9 4273#: doc/guix.texi:1129
544cab3d
LC
4274#, no-wrap
4275msgid "@code{features} (default: @code{'()})"
32747aa9 4276msgstr "@code{features} (@code{'()})"
544cab3d
LC
4277
4278#. type: table
32747aa9 4279#: doc/guix.texi:1134
544cab3d 4280msgid "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."
32747aa9 4281msgstr "一个表示机器支持的功能的字符串列表。例如,@code{\"kvm\"}表示机器有KVM Linux模块和相关的硬件支持。Derivation可以通过名字请求需要的功能,然后被分发到匹配的机器的任务队列里。"
544cab3d
LC
4282
4283#. type: Plain text
32747aa9 4284#: doc/guix.texi:1140
544cab3d 4285msgid "The @command{guix} command must be in the search path on the build machines. You can check whether this is the case by running:"
32747aa9 4286msgstr "@command{guix}命令必须在构建机器的搜素路径里。你可以通过这个命令检查:"
544cab3d
LC
4287
4288#. type: example
32747aa9 4289#: doc/guix.texi:1143
544cab3d
LC
4290#, no-wrap
4291msgid "ssh build-machine guix repl --version\n"
32747aa9 4292msgstr "ssh build-machine guix repl --version\n"
544cab3d
LC
4293
4294#. type: Plain text
32747aa9 4295#: doc/guix.texi:1150
544cab3d 4296msgid "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}):"
32747aa9 4297msgstr "@file{machines.scm}到位后,还有一件要做的事。如上所述,下发任务时会在机器的仓库之间传输文件。为此,你需要在每台机器上生成一个密钥对,以使后台进程可以从仓库导出签名后的文件包(@pxref{Invoking guix archive}):"
544cab3d
LC
4298
4299#. type: example
32747aa9 4300#: doc/guix.texi:1153
544cab3d
LC
4301#, no-wrap
4302msgid "# guix archive --generate-key\n"
32747aa9 4303msgstr "# guix archive --generate-key\n"
544cab3d
LC
4304
4305#. type: Plain text
32747aa9 4306#: doc/guix.texi:1158
544cab3d 4307msgid "Each build machine must authorize the key of the master machine so that it accepts store items it receives from the master:"
32747aa9 4308msgstr "每台构建机器都必须认证主机器的公钥,从而接收从主机器接收的仓库文件:"
544cab3d
LC
4309
4310#. type: example
32747aa9 4311#: doc/guix.texi:1161
544cab3d
LC
4312#, no-wrap
4313msgid "# guix archive --authorize < master-public-key.txt\n"
32747aa9 4314msgstr "# guix archive --authorize < master-public-key.txt\n"
544cab3d
LC
4315
4316#. type: Plain text
32747aa9 4317#: doc/guix.texi:1165
544cab3d 4318msgid "Likewise, the master machine must authorize the key of each build machine."
32747aa9 4319msgstr "类似的,主机器必须认证每台构建机器的公钥:"
544cab3d
LC
4320
4321#. type: Plain text
32747aa9 4322#: doc/guix.texi:1171
544cab3d 4323msgid "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."
32747aa9 4324msgstr "所有这些有关公钥的繁琐事宜都是为了表达主服务器和构建服务器之间成对的互相信任关系。具体地,当主机器从构建机器接收文件时(反之亦然),它的构建后台进程可以确保文件是原样的,没有被篡改,并且被认证的公钥签名过。"
544cab3d
LC
4325
4326#. type: cindex
32747aa9 4327#: doc/guix.texi:1172
544cab3d
LC
4328#, no-wrap
4329msgid "offload test"
32747aa9 4330msgstr "下发测试"
544cab3d
LC
4331
4332#. type: Plain text
32747aa9 4333#: doc/guix.texi:1175
544cab3d 4334msgid "To test whether your setup is operational, run this command on the master node:"
32747aa9 4335msgstr "为了测试你的设置是否能正常工作,在主节点上运行这个命令:"
544cab3d
LC
4336
4337#. type: example
32747aa9 4338#: doc/guix.texi:1178
544cab3d
LC
4339#, no-wrap
4340msgid "# guix offload test\n"
32747aa9 4341msgstr "# guix offload test\n"
544cab3d
LC
4342
4343#. type: Plain text
32747aa9 4344#: doc/guix.texi:1184
544cab3d 4345msgid "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."
32747aa9 4346msgstr "这会尝试连接每台在@file{/etc/guix/machines.scm}里指定的构建机器,确保Guile和Guix模块在每台机器上都可用,尝试导出到这些机器和从这些机器导入,并且报告这个过程中遇到的任何错误。"
544cab3d
LC
4347
4348#. type: Plain text
32747aa9 4349#: doc/guix.texi:1187
544cab3d 4350msgid "If you want to test a different machine file, just specify it on the command line:"
32747aa9 4351msgstr "如果你希望用别的文件测试,只需要在命令行指定它:"
544cab3d
LC
4352
4353#. type: example
32747aa9 4354#: doc/guix.texi:1190
544cab3d
LC
4355#, no-wrap
4356msgid "# guix offload test machines-qualif.scm\n"
32747aa9 4357msgstr "# guix offload test machines-qualif.scm\n"
544cab3d
LC
4358
4359#. type: Plain text
32747aa9 4360#: doc/guix.texi:1194
544cab3d 4361msgid "Last, you can test the subset of the machines whose name matches a regular expression like this:"
32747aa9 4362msgstr "最后,你可以像这样只测试机器列表里名字匹配某个正则表达式的子集:"
544cab3d
LC
4363
4364#. type: example
32747aa9 4365#: doc/guix.texi:1197
544cab3d
LC
4366#, no-wrap
4367msgid "# guix offload test machines.scm '\\.gnu\\.org$'\n"
32747aa9 4368msgstr "# guix offload test machines.scm '\\.gnu\\.org$'\n"
544cab3d
LC
4369
4370#. type: cindex
32747aa9 4371#: doc/guix.texi:1199
544cab3d
LC
4372#, no-wrap
4373msgid "offload status"
32747aa9 4374msgstr "下发状态"
544cab3d
LC
4375
4376#. type: Plain text
32747aa9 4377#: doc/guix.texi:1202
544cab3d 4378msgid "To display the current load of all build hosts, run this command on the main node:"
32747aa9 4379msgstr "若想展示所有构建主机的当前负载,在主节点上运行这个命令:"
544cab3d
LC
4380
4381#. type: example
32747aa9 4382#: doc/guix.texi:1205
544cab3d
LC
4383#, no-wrap
4384msgid "# guix offload status\n"
32747aa9 4385msgstr "# guix offload status\n"
544cab3d
LC
4386
4387#. type: cindex
32747aa9 4388#: doc/guix.texi:1211
544cab3d
LC
4389#, no-wrap
4390msgid "SELinux, daemon policy"
32747aa9 4391msgstr "SELinux,后台进程策略"
544cab3d
LC
4392
4393#. type: cindex
32747aa9 4394#: doc/guix.texi:1212
544cab3d
LC
4395#, no-wrap
4396msgid "mandatory access control, SELinux"
32747aa9 4397msgstr "强制访问控制,SELinux"
544cab3d
LC
4398
4399#. type: cindex
32747aa9 4400#: doc/guix.texi:1213
544cab3d
LC
4401#, no-wrap
4402msgid "security, guix-daemon"
32747aa9 4403msgstr "安全,guix-daemon"
544cab3d
LC
4404
4405#. type: Plain text
32747aa9 4406#: doc/guix.texi:1219
544cab3d 4407msgid "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."
32747aa9 4408msgstr "Guix附带一个SELinux策略文件,位置在@file{etc/guix-daemon.cil},它可以在启用SELinux的系统上安装,为Guix的文件添加标签及指定后台进程的期望行为。由于Guix系统不提供SELinux基础策略,这个后台进程策略不能在Guix系统上使用。"
544cab3d
LC
4409
4410#. type: subsubsection
32747aa9 4411#: doc/guix.texi:1220
544cab3d
LC
4412#, no-wrap
4413msgid "Installing the SELinux policy"
32747aa9 4414msgstr "安装SELinux策略"
544cab3d
LC
4415
4416#. type: cindex
32747aa9 4417#: doc/guix.texi:1221
544cab3d
LC
4418#, no-wrap
4419msgid "SELinux, policy installation"
32747aa9 4420msgstr "SELinux,安装策略"
544cab3d
LC
4421
4422#. type: Plain text
32747aa9 4423#: doc/guix.texi:1223
544cab3d 4424msgid "To install the policy run this command as root:"
32747aa9 4425msgstr "用root用户执行这个命令以安装策略:"
544cab3d
LC
4426
4427#. type: example
32747aa9 4428#: doc/guix.texi:1226
544cab3d
LC
4429#, no-wrap
4430msgid "semodule -i etc/guix-daemon.cil\n"
32747aa9 4431msgstr "semodule -i etc/guix-daemon.cil\n"
544cab3d
LC
4432
4433#. type: Plain text
32747aa9 4434#: doc/guix.texi:1230
544cab3d 4435msgid "Then relabel the file system with @code{restorecon} or by a different mechanism provided by your system."
32747aa9 4436msgstr "用@code{restorecon}或者你的系统提供的其它机制重新给文件系统打标签。"
544cab3d
LC
4437
4438#. type: Plain text
32747aa9 4439#: doc/guix.texi:1235
544cab3d 4440msgid "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:"
32747aa9 4441msgstr "一旦安装好策略,为文件系统重新打好标签,并且重启了后台进程,它应该在@code{guix_daemon_t}环境里运行。你可以用下面这个命令确认:"
544cab3d
LC
4442
4443#. type: example
32747aa9 4444#: doc/guix.texi:1238
544cab3d
LC
4445#, no-wrap
4446msgid "ps -Zax | grep guix-daemon\n"
32747aa9 4447msgstr "ps -Zax | grep guix-daemon\n"
544cab3d
LC
4448
4449#. type: Plain text
32747aa9 4450#: doc/guix.texi:1243
544cab3d 4451msgid "Monitor the SELinux log files as you run a command like @code{guix build hello} to convince yourself that SELinux permits all necessary operations."
32747aa9 4452msgstr "运行@code{guix build hello}之类的命令并监控SELinux日志以说服你自己SELinux允许所有的操作。"
544cab3d
LC
4453
4454#. type: cindex
32747aa9 4455#: doc/guix.texi:1245
544cab3d
LC
4456#, no-wrap
4457msgid "SELinux, limitations"
32747aa9 4458msgstr "SELinux,限制"
544cab3d
LC
4459
4460#. type: Plain text
32747aa9 4461#: doc/guix.texi:1250
544cab3d 4462msgid "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."
32747aa9 4463msgstr "这个策略不是完美的。这里有一个关于限制和缺陷的列表,当为Guix后台进程部署提供的SELinux策略时该认真考虑。"
544cab3d
LC
4464
4465#. type: enumerate
32747aa9 4466#: doc/guix.texi:1257
544cab3d 4467msgid "@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."
32747aa9 4468msgstr "@code{guix_daemon_socket_t}没有被实际使用。所有的套接字操作都和@code{guix_daemon_socket_t}没有任何关系。存在这个没被使用的标签并不碍事,但是为这个标签定义套接字规则是更好的选择。"
544cab3d
LC
4469
4470#. type: enumerate
32747aa9 4471#: doc/guix.texi:1268
544cab3d 4472msgid "@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."
32747aa9 4473msgstr "@code{guix gc}不可以任意访问指向profile的链接。由于设计的原因,符号链接的目标的文件标签和符号链接本身的文件标签是不同的。尽管$localstatedir里的所有profile都被打上了标签,指向这些profile的符号链接继承它们所在的文件夹的标签。对于普通用户的家目录里的链接,标签是@code{user_home_t}。但是对于root用户的家目录,或@file{/tmp},或HTTP服务器的工作目录等文件夹里的链接不是这样。@code{guix gc}会被阻止读取和跟随这些链接。"
544cab3d
LC
4474
4475#. type: enumerate
32747aa9 4476#: doc/guix.texi:1273
544cab3d 4477msgid "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."
32747aa9 4478msgstr "后台进程监听TCP连接的功能不再可用。这可能需要额外的规则,因为SELinux区别对待网络套接字和文件。"
544cab3d
LC
4479
4480#. type: enumerate
32747aa9 4481#: doc/guix.texi:1284
544cab3d 4482msgid "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."
32747aa9 4483msgstr "目前,所有匹配正则表达式@code{/gnu/store/.+-(guix-.+|profile)/bin/guix-daemon}的文件都被赋予@code{guix_daemon_exec_t}标签;这意味着@emph{任何}profile里的任何有这样名字的的文件都会被允许在@code{guix_daemon_t}域里执行。这不够理想。一个攻击者可以构建提供这个可执行程序的软件包,并说服一个用户安装、运行它,以此进入@code{guix_daemon_t}域。那时,SELinux无法阻止它访问所在域的进程可以访问的文件。"
544cab3d
LC
4484
4485#. type: enumerate
32747aa9 4486#: doc/guix.texi:1292
544cab3d 4487msgid "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."
32747aa9 4488msgstr "我们可以在安装时生成一个更严格的策略,仅当前安装的@code{guix-daemon}的@emph{精确的}的文件名会被打上@code{guix_daemon_exec_t}标签,而不是用一个宽泛的正则表达式。这样的缺点是root必须在每次安装提供@code{guix-daemon}的Guix软件包时安装或升级策略。"
544cab3d
LC
4489
4490#. type: section
32747aa9 4491#: doc/guix.texi:1295
544cab3d
LC
4492#, no-wrap
4493msgid "Invoking @command{guix-daemon}"
32747aa9 4494msgstr "调用@command{guix-daemon}"
544cab3d
LC
4495
4496#. type: Plain text
32747aa9 4497#: doc/guix.texi:1301
544cab3d 4498msgid "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:"
32747aa9 4499msgstr "@command{guix-daemon}程序实现了所有访问仓库的功能。包括启动构建进程,运行垃圾回收器,查询构建结果,等。它通常以@code{root}身份运行:"
544cab3d
LC
4500
4501#. type: Plain text
32747aa9 4502#: doc/guix.texi:1308
544cab3d 4503msgid "For details on how to set it up, @pxref{Setting Up the Daemon}."
32747aa9 4504msgstr "关于如何设置它,@pxref{Setting Up the Daemon}。"
544cab3d
LC
4505
4506#. type: cindex
32747aa9 4507#: doc/guix.texi:1310
544cab3d
LC
4508#, no-wrap
4509msgid "container, build environment"
32747aa9 4510msgstr "容器,构建环境"
544cab3d
LC
4511
4512#. type: cindex
32747aa9 4513#: doc/guix.texi:1312 doc/guix.texi:2561 doc/guix.texi:3242 doc/guix.texi:9773
544cab3d
LC
4514#, no-wrap
4515msgid "reproducible builds"
32747aa9 4516msgstr "可复现的构建"
544cab3d
LC
4517
4518#. type: Plain text
32747aa9 4519#: doc/guix.texi:1324
544cab3d 4520msgid "By default, @command{guix-daemon} launches build processes under different UIDs, taken from the build group specified with @code{--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})."
32747aa9 4521msgstr "默认情况下,@command{guix-daemon}用不同的UID启动构建进程,这些用户是从@code{--build-users-group}参数指定的用户组里获取的。并且,每个构建进程都在一个chroot环境里运行,这个环境只包含构建进程依赖的仓库的子集(由derivation(@pxref{Programming Interface, derivation})的内容决定),以及一些系统文件夹。默认情况下,后者包含@file{/dev}和@file{/dev/pts}。并且,在GNU/Linux上,构建环境是一个@dfn{容器}:它不仅有自己的文件系统树,还有独立的挂载命名空间,独立的PID命名空间,网络命名空间,等。这帮助实现可复现构建的目的(@pxref{Features})。"
544cab3d
LC
4522
4523#. type: Plain text
32747aa9 4524#: doc/guix.texi:1330
544cab3d 4525msgid "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 @code{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}."
32747aa9 4526msgstr "当后台进程代替用户执行构建时,它在@file{/tmp}或@code{TMPDIR}环境变量指定的文件夹里创建一个文件夹。在构建期间,这个文件夹被共享给容器,然而容器内,这个构建树总是叫做@file{/tmp/guix-build-@var{name}.drv-0}。"
544cab3d
LC
4527
4528#. type: Plain text
32747aa9 4529#: doc/guix.texi:1334
544cab3d 4530msgid "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}})."
32747aa9 4531msgstr "结束时构建文件夹就被自动删除了,除非构建失败并且客户端指定了@option{--keep-failed}参数(@pxref{Invoking guix build, @option{--keep-failed}})。"
544cab3d
LC
4532
4533#. type: Plain text
32747aa9 4534#: doc/guix.texi:1340
544cab3d 4535msgid "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."
32747aa9 4536msgstr "后台进程监听连接并且为每个客户端(@command{guix}的子命令)启动的会话生成一个子进程。@command{guix processes}命令允许你获取系统上的活动的概况,浏览每个活动会话和客户端。@xref{Invoking guix processes},以了解更多信息。"
544cab3d
LC
4537
4538#. type: Plain text
32747aa9 4539#: doc/guix.texi:1342
544cab3d 4540msgid "The following command-line options are supported:"
32747aa9 4541msgstr "下面这些命令行选项受支持:"
544cab3d
LC
4542
4543#. type: item
32747aa9 4544#: doc/guix.texi:1344
544cab3d
LC
4545#, no-wrap
4546msgid "--build-users-group=@var{group}"
32747aa9 4547msgstr "--build-users-group=@var{用户组}"
544cab3d
LC
4548
4549#. type: table
32747aa9 4550#: doc/guix.texi:1347
544cab3d 4551msgid "Take users from @var{group} to run build processes (@pxref{Setting Up the Daemon, build users})."
32747aa9 4552msgstr "这会从@var{用户组}里选取用户,以运行构建进程(@pxref{Setting Up the Daemon,构建用户})。"
544cab3d
LC
4553
4554#. type: item
32747aa9 4555#: doc/guix.texi:1348 doc/guix.texi:7723
544cab3d
LC
4556#, no-wrap
4557msgid "--no-substitutes"
32747aa9 4558msgstr "--no-substitutes"
544cab3d
LC
4559
4560#. type: cindex
32747aa9 4561#: doc/guix.texi:1349 doc/guix.texi:2573 doc/guix.texi:3103
544cab3d
LC
4562#, no-wrap
4563msgid "substitutes"
32747aa9 4564msgstr "substitutes"
544cab3d
LC
4565
4566#. type: table
32747aa9 4567#: doc/guix.texi:1353 doc/guix.texi:7727
544cab3d 4568msgid "Do not use substitutes for build products. That is, always build things locally instead of allowing downloads of pre-built binaries (@pxref{Substitutes})."
32747aa9 4569msgstr "不要为构建商品使用substitute。即,总是在本地构建,而不是下载预构建的二进制文件(@pxref{Substitutes})。"
544cab3d
LC
4570
4571#. type: table
32747aa9 4572#: doc/guix.texi:1357
544cab3d 4573msgid "When the daemon runs with @code{--no-substitutes}, clients can still explicitly enable substitution @i{via} the @code{set-build-options} remote procedure call (@pxref{The Store})."
32747aa9 4574msgstr "当后台进程用@code{--no-substitutes}参数启动时,客户端仍然可以显式地@i{通过}@code{set-build-options}远程过程调用来启用substitute(@pxref{The Store})。"
544cab3d
LC
4575
4576#. type: item
32747aa9
LC
4577#: doc/guix.texi:1358 doc/guix.texi:7710 doc/guix.texi:9317 doc/guix.texi:9898
4578#: doc/guix.texi:10088
544cab3d
LC
4579#, no-wrap
4580msgid "--substitute-urls=@var{urls}"
32747aa9 4581msgstr "--substitute-urls=@var{urls}"
544cab3d
LC
4582
4583#. type: anchor{#1}
32747aa9 4584#: doc/guix.texi:1363
544cab3d 4585msgid "daemon-substitute-urls"
32747aa9 4586msgstr "daemon-substitute-urls"
544cab3d
LC
4587
4588#. type: table
32747aa9 4589#: doc/guix.texi:1363
544cab3d 4590msgid "Consider @var{urls} the default whitespace-separated list of substitute source URLs. When this option is omitted, @indicateurl{https://@value{SUBSTITUTE-SERVER}} is used."
32747aa9 4591msgstr "@var{urls}是用空格分隔的substitute源URL列表。当这个选项被省略时,默认使用@indicateurl{https://@value{SUBSTITUTE-SERVER}}。"
544cab3d
LC
4592
4593#. type: table
32747aa9 4594#: doc/guix.texi:1366
544cab3d 4595msgid "This means that substitutes may be downloaded from @var{urls}, as long as they are signed by a trusted signature (@pxref{Substitutes})."
32747aa9 4596msgstr "这意味着可以从@var{urls}下载substitute,只要它们的签名可信(@pxref{Substitutes})。"
544cab3d
LC
4597
4598#. type: item
32747aa9 4599#: doc/guix.texi:1368 doc/guix.texi:7748
544cab3d
LC
4600#, no-wrap
4601msgid "--no-build-hook"
32747aa9 4602msgstr "--no-build-hook"
544cab3d
LC
4603
4604#. type: table
32747aa9 4605#: doc/guix.texi:1370
544cab3d 4606msgid "Do not use the @dfn{build hook}."
32747aa9 4607msgstr "不要使用@dfn{构建钩子}。"
544cab3d
LC
4608
4609#. type: table
32747aa9 4610#: doc/guix.texi:1374
544cab3d 4611msgid "The build hook is a helper program that the daemon can start and to which it submits build requests. This mechanism is used to offload builds to other machines (@pxref{Daemon Offload Setup})."
32747aa9 4612msgstr "构建钩子是一个可以被后台进程启动并且提交构建请求的辅助程序。这个机制被用来向其它机器下发构建。(@pxref{Daemon Offload Setup})。"
544cab3d
LC
4613
4614#. type: item
32747aa9 4615#: doc/guix.texi:1375
544cab3d
LC
4616#, no-wrap
4617msgid "--cache-failures"
32747aa9 4618msgstr "--cache-failures"
544cab3d
LC
4619
4620#. type: table
32747aa9 4621#: doc/guix.texi:1377
544cab3d 4622msgid "Cache build failures. By default, only successful builds are cached."
32747aa9 4623msgstr "缓存失败的构建。默认地,只缓存成功的构建。"
544cab3d
LC
4624
4625#. type: table
32747aa9 4626#: doc/guix.texi:1382
544cab3d 4627msgid "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}."
32747aa9 4628msgstr "当这个选项被使用时,可以用@command{guix gc --list-failures}查询被标记为失败的仓库文件;@command{guix gc --clear-failures}从仓库里删除失败的缓存。@xref{Invoking guix gc}。"
544cab3d
LC
4629
4630#. type: item
32747aa9 4631#: doc/guix.texi:1383 doc/guix.texi:7777
544cab3d
LC
4632#, no-wrap
4633msgid "--cores=@var{n}"
32747aa9 4634msgstr "--cores=@var{n}"
544cab3d
LC
4635
4636#. type: itemx
32747aa9 4637#: doc/guix.texi:1384 doc/guix.texi:7778
544cab3d
LC
4638#, no-wrap
4639msgid "-c @var{n}"
32747aa9 4640msgstr "-c @var{n}"
544cab3d
LC
4641
4642#. type: table
32747aa9 4643#: doc/guix.texi:1387
544cab3d 4644msgid "Use @var{n} CPU cores to build each derivation; @code{0} means as many as available."
32747aa9 4645msgstr "用@var{n}个CPU核来构建每个derivation;@code{0}表示有多少就用多少。"
544cab3d
LC
4646
4647#. type: table
32747aa9 4648#: doc/guix.texi:1391
544cab3d 4649msgid "The default value is @code{0}, but it may be overridden by clients, such as the @code{--cores} option of @command{guix build} (@pxref{Invoking guix build})."
32747aa9 4650msgstr "默认值是@code{0},但是它的值可以被客户端覆盖,例如@command{guix build}的@code{--cores}选项(@pxref{Invoking guix build})。"
544cab3d
LC
4651
4652#. type: table
32747aa9 4653#: doc/guix.texi:1395
544cab3d 4654msgid "The effect is to define the @code{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}."
32747aa9 4655msgstr "他的作用是在构建进程里设置@code{NIX_BUILD_CORES}环境变量,从而用它来利用内部的并行机制--例如,通过运行@code{make -j$NIX_BUILD_CORES}。"
544cab3d
LC
4656
4657#. type: item
32747aa9 4658#: doc/guix.texi:1396 doc/guix.texi:7782
544cab3d
LC
4659#, no-wrap
4660msgid "--max-jobs=@var{n}"
32747aa9 4661msgstr "--max-jobs=@var{n}"
544cab3d
LC
4662
4663#. type: itemx
32747aa9 4664#: doc/guix.texi:1397 doc/guix.texi:7783
544cab3d
LC
4665#, no-wrap
4666msgid "-M @var{n}"
32747aa9 4667msgstr "-M @var{n}"
544cab3d
LC
4668
4669#. type: table
32747aa9 4670#: doc/guix.texi:1402
544cab3d 4671msgid "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."
32747aa9 4672msgstr "最多允许@var{n}个并行的构建任务。默认值是@code{1}。设置为@code{0}表示不在本地执行构建;而是下发构建任务(@pxref{Daemon Offload Setup}),或者直接失败。"
544cab3d
LC
4673
4674#. type: item
32747aa9 4675#: doc/guix.texi:1403 doc/guix.texi:7753
544cab3d
LC
4676#, no-wrap
4677msgid "--max-silent-time=@var{seconds}"
32747aa9 4678msgstr "--max-silent-time=@var{seconds}"
544cab3d
LC
4679
4680#. type: table
32747aa9 4681#: doc/guix.texi:1406 doc/guix.texi:7756
544cab3d 4682msgid "When the build or substitution process remains silent for more than @var{seconds}, terminate it and report a build failure."
32747aa9 4683msgstr "当构建或substitution进程超过@var{seconds}秒仍然保持静默,就把它结束掉并报告构建失败。"
544cab3d
LC
4684
4685#. type: table
32747aa9 4686#: doc/guix.texi:1408 doc/guix.texi:1417
544cab3d 4687msgid "The default value is @code{0}, which disables the timeout."
32747aa9 4688msgstr "默认值是@code{0},表示关闭超时。"
544cab3d
LC
4689
4690#. type: table
32747aa9 4691#: doc/guix.texi:1411
544cab3d 4692msgid "The value specified here can be overridden by clients (@pxref{Common Build Options, @code{--max-silent-time}})."
32747aa9 4693msgstr "这里指定的值可以被客户端覆盖(@pxref{Common Build Options, @code{--max-silent-time}})。"
544cab3d
LC
4694
4695#. type: item
32747aa9 4696#: doc/guix.texi:1412 doc/guix.texi:7760
544cab3d
LC
4697#, no-wrap
4698msgid "--timeout=@var{seconds}"
32747aa9 4699msgstr "--timeout=@var{seconds}"
544cab3d
LC
4700
4701#. type: table
32747aa9 4702#: doc/guix.texi:1415 doc/guix.texi:7763
544cab3d 4703msgid "Likewise, when the build or substitution process lasts for more than @var{seconds}, terminate it and report a build failure."
32747aa9 4704msgstr "类似地,当构建或substitution进程执行超过@var{seconds}秒,就把它结束掉并报告构建失败。"
544cab3d
LC
4705
4706#. type: table
32747aa9 4707#: doc/guix.texi:1420
544cab3d 4708msgid "The value specified here can be overridden by clients (@pxref{Common Build Options, @code{--timeout}})."
32747aa9 4709msgstr "这里指定的值可以被客户端覆盖(@pxref{Common Build Options, @code{--timeout}})。"
544cab3d
LC
4710
4711#. type: item
32747aa9 4712#: doc/guix.texi:1421
544cab3d
LC
4713#, no-wrap
4714msgid "--rounds=@var{N}"
32747aa9 4715msgstr "--rounds=@var{N}"
544cab3d
LC
4716
4717#. type: table
32747aa9 4718#: doc/guix.texi:1426
544cab3d 4719msgid "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})."
32747aa9 4720msgstr "为每个derivation构建@var{n}次,如果连续的构建结果不是每个比特都相同就报告错误。这个设置可以被@command{guix build}之类的客户端覆盖(@pxref{Invoking guix build})。"
544cab3d
LC
4721
4722#. type: table
32747aa9 4723#: doc/guix.texi:1430 doc/guix.texi:8122
544cab3d 4724msgid "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."
32747aa9 4725msgstr "当和@option{--keep-failed}一起使用时,不同的输出保存在@file{/gnu/store/@dots{}-check}。这让检查两个结果的区别更容易。"
544cab3d
LC
4726
4727#. type: item
32747aa9 4728#: doc/guix.texi:1431
544cab3d
LC
4729#, no-wrap
4730msgid "--debug"
32747aa9 4731msgstr "--debug"
544cab3d
LC
4732
4733#. type: table
32747aa9 4734#: doc/guix.texi:1433
544cab3d 4735msgid "Produce debugging output."
32747aa9 4736msgstr "生成调试输出。"
544cab3d
LC
4737
4738#. type: table
32747aa9 4739#: doc/guix.texi:1437
544cab3d 4740msgid "This is useful to debug daemon start-up issues, but then it may be overridden by clients, for example the @code{--verbosity} option of @command{guix build} (@pxref{Invoking guix build})."
32747aa9 4741msgstr "这对调试后台进程的启动问题很有用,但是之后它可能会被客户端覆盖,例如@command{guix build}命令的@code{--verbosity}选项(@pxref{Invoking guix build})。"
544cab3d
LC
4742
4743#. type: item
32747aa9 4744#: doc/guix.texi:1438
544cab3d
LC
4745#, no-wrap
4746msgid "--chroot-directory=@var{dir}"
32747aa9 4747msgstr "--chroot-directory=@var{dir}"
544cab3d
LC
4748
4749#. type: table
32747aa9 4750#: doc/guix.texi:1440
544cab3d 4751msgid "Add @var{dir} to the build chroot."
32747aa9 4752msgstr "把@var{dir}添加到构建的chroot。"
544cab3d
LC
4753
4754#. type: table
32747aa9 4755#: doc/guix.texi:1446
544cab3d 4756msgid "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."
32747aa9 4757msgstr "这么做可能会改变构建进程的结果--例如,如果它们使用了在@var{dir}里发现的可选依赖。因此,建议不要这么做,而是确保每个derivation声明所需的全部输入。"
544cab3d
LC
4758
4759#. type: item
32747aa9 4760#: doc/guix.texi:1447
544cab3d
LC
4761#, no-wrap
4762msgid "--disable-chroot"
32747aa9 4763msgstr "--disable-chroot"
544cab3d
LC
4764
4765#. type: table
32747aa9 4766#: doc/guix.texi:1449
544cab3d 4767msgid "Disable chroot builds."
32747aa9 4768msgstr "关闭chroot构建。"
544cab3d
LC
4769
4770#. type: table
32747aa9 4771#: doc/guix.texi:1454
544cab3d 4772msgid "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."
32747aa9 4773msgstr "不建议使用这个选项,因为它会允许构建进程访问到没被声明的依赖。但是,当@command{guix-daemon}以没有特权的用户身份运行时,这个选项是必须的。"
544cab3d
LC
4774
4775#. type: item
32747aa9 4776#: doc/guix.texi:1455
544cab3d
LC
4777#, no-wrap
4778msgid "--log-compression=@var{type}"
32747aa9 4779msgstr "--log-compression=@var{type}"
544cab3d
LC
4780
4781#. type: table
32747aa9 4782#: doc/guix.texi:1458
544cab3d 4783msgid "Compress build logs according to @var{type}, one of @code{gzip}, @code{bzip2}, or @code{none}."
32747aa9 4784msgstr "以@var{type}方式压缩构建日志,可选的值:@code{gzip},@code{bzip2},@code{none}。"
544cab3d
LC
4785
4786#. type: table
32747aa9 4787#: doc/guix.texi:1462
544cab3d 4788msgid "Unless @code{--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."
32747aa9 4789msgstr "除非使用了@code{--lose-logs},所有的构建日志都保存在@var{localstatedir}里。为了节省空间,后台进程默认使用bzip2对它们进行压缩。"
544cab3d
LC
4790
4791#. type: item
32747aa9 4792#: doc/guix.texi:1463
544cab3d
LC
4793#, no-wrap
4794msgid "--disable-deduplication"
32747aa9 4795msgstr "--disable-deduplication"
544cab3d
LC
4796
4797#. type: cindex
32747aa9 4798#: doc/guix.texi:1464 doc/guix.texi:3576
544cab3d
LC
4799#, no-wrap
4800msgid "deduplication"
32747aa9 4801msgstr "去重"
544cab3d
LC
4802
4803#. type: table
32747aa9 4804#: doc/guix.texi:1466
544cab3d 4805msgid "Disable automatic file ``deduplication'' in the store."
32747aa9 4806msgstr "关闭自动对仓库文件“去重”。"
544cab3d
LC
4807
4808#. type: table
32747aa9 4809#: doc/guix.texi:1473
544cab3d 4810msgid "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."
32747aa9 4811msgstr "默认地,添加到仓库的文件会被自动“去重”:如果新添加的文件和仓库里找到的某个文件完全相同,后台进程把这个新文件变成另一个文件的硬链接。这可以明显地减少硬盘使用,代价是构建结束后轻微地增加输入/输出负载。这个选项关闭这个优化。"
544cab3d
LC
4812
4813#. type: item
32747aa9 4814#: doc/guix.texi:1474
544cab3d
LC
4815#, no-wrap
4816msgid "--gc-keep-outputs[=yes|no]"
32747aa9 4817msgstr "--gc-keep-outputs[=yes|no]"
544cab3d
LC
4818
4819#. type: table
32747aa9 4820#: doc/guix.texi:1477
544cab3d 4821msgid "Tell whether the garbage collector (GC) must keep outputs of live derivations."
32747aa9 4822msgstr "垃圾收集器(GC)是否必须保留存活的derivation的输出。"
544cab3d
LC
4823
4824#. type: cindex
32747aa9 4825#: doc/guix.texi:1478 doc/guix.texi:3393
544cab3d
LC
4826#, no-wrap
4827msgid "GC roots"
32747aa9 4828msgstr "GC根"
544cab3d
LC
4829
4830#. type: cindex
32747aa9 4831#: doc/guix.texi:1479 doc/guix.texi:3394
544cab3d
LC
4832#, no-wrap
4833msgid "garbage collector roots"
32747aa9 4834msgstr "垃圾收集的根"
544cab3d
LC
4835
4836#. type: table
32747aa9 4837#: doc/guix.texi:1484
544cab3d 4838msgid "When set to ``yes'', the GC will keep the outputs of any live derivation available in the store---the @code{.drv} files. The default is ``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."
32747aa9 4839msgstr "当设置为“yes”时,GC会保留仓库里每个存活的derivation(@code{.drv}文件)的输出。默认是“no”,表示只有当从GC根可以访问时才保留derivation的输出。@xref{Invoking guix gc},了解更多关于GC根的信息。"
544cab3d
LC
4840
4841#. type: item
32747aa9 4842#: doc/guix.texi:1485
544cab3d
LC
4843#, no-wrap
4844msgid "--gc-keep-derivations[=yes|no]"
32747aa9 4845msgstr "--gc-keep-derivations[=yes|no]"
544cab3d
LC
4846
4847#. type: table
32747aa9 4848#: doc/guix.texi:1488
544cab3d 4849msgid "Tell whether the garbage collector (GC) must keep derivations corresponding to live outputs."
32747aa9 4850msgstr "垃圾收集器(GC)是否必须保留和存活的输出相关的derivation。"
544cab3d
LC
4851
4852#. type: table
32747aa9 4853#: doc/guix.texi:1493
544cab3d 4854msgid "When set to ``yes'', as is the case by default, the GC keeps derivations---i.e., @code{.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 ``no'' saves a bit of disk space."
32747aa9 4855msgstr "当设置为“yes”时(默认),只要derivation(即@code{.drv}文件)的输出至少有一个是存活的,GC就将其保留。这让用户可以追踪仓库里物品的源头。设置为“no”可以节省一点硬盘空间。"
544cab3d
LC
4856
4857#. type: table
32747aa9 4858#: doc/guix.texi:1501
544cab3d 4859msgid "In this way, setting @code{--gc-keep-derivations} to ``yes'' causes liveness to flow from outputs to derivations, and setting @code{--gc-keep-outputs} to ``yes'' causes liveness to flow from derivations to outputs. When both are set to ``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."
32747aa9 4860msgstr "这样,设置@code{--gc-keep-derivations}为“yes”使存活性从“输出”传递到“derivation”,设置@code{--gc-keep-outputs}为“yes”使存活性从“derivation”传递到“输出”。当两者都设置为“yes”时,效果是保留所有在仓库里的存活对象的构建先决条件(源代码,编译器,库,和其它构建时的工具),不管这些先决条件是否能从某个GC根访问到。这对开发者来说很方便,因为它避免了重复构建和下载。"
544cab3d
LC
4861
4862#. type: item
32747aa9 4863#: doc/guix.texi:1502
544cab3d
LC
4864#, no-wrap
4865msgid "--impersonate-linux-2.6"
32747aa9 4866msgstr "--impersonate-linux-2.6"
544cab3d
LC
4867
4868#. type: table
32747aa9 4869#: doc/guix.texi:1505
544cab3d 4870msgid "On Linux-based systems, impersonate Linux 2.6. This means that the kernel's @code{uname} system call will report 2.6 as the release number."
32747aa9 4871msgstr "在基于Linux的系统上,伪装成Linux 2.6。这意味着内核的@code{uname}系统调用会把版本号报告为2.6。"
544cab3d
LC
4872
4873#. type: table
32747aa9 4874#: doc/guix.texi:1508
544cab3d 4875msgid "This might be helpful to build programs that (usually wrongfully) depend on the kernel version number."
32747aa9 4876msgstr "这可能会有助于构建那些(通常是错误地)依赖内核版本号的程序。"
544cab3d
LC
4877
4878#. type: item
32747aa9 4879#: doc/guix.texi:1509
544cab3d
LC
4880#, no-wrap
4881msgid "--lose-logs"
32747aa9 4882msgstr "--lose-logs"
544cab3d
LC
4883
4884#. type: table
32747aa9 4885#: doc/guix.texi:1512
544cab3d 4886msgid "Do not keep build logs. By default they are kept under @code{@var{localstatedir}/guix/log}."
32747aa9 4887msgstr "不保留构建日志。默认保存在@code{@var{localstatedir}/guix/log}。"
544cab3d
LC
4888
4889#. type: item
32747aa9
LC
4890#: doc/guix.texi:1513 doc/guix.texi:3722 doc/guix.texi:4590 doc/guix.texi:4883
4891#: doc/guix.texi:8066 doc/guix.texi:9344 doc/guix.texi:9543
4892#: doc/guix.texi:10093 doc/guix.texi:23935 doc/guix.texi:24555
544cab3d
LC
4893#, no-wrap
4894msgid "--system=@var{system}"
32747aa9 4895msgstr "--system=@var{system}"
544cab3d
LC
4896
4897#. type: table
32747aa9 4898#: doc/guix.texi:1517
544cab3d 4899msgid "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}."
32747aa9 4900msgstr "假设@var{system}是当前的系统类型。默认值是configure时发现的架构/内核元组,如@code{x86_64-linux}。"
544cab3d
LC
4901
4902#. type: item
32747aa9 4903#: doc/guix.texi:1518 doc/guix.texi:7568
544cab3d
LC
4904#, no-wrap
4905msgid "--listen=@var{endpoint}"
32747aa9 4906msgstr "--listen=@var{endpoint}"
544cab3d
LC
4907
4908#. type: table
32747aa9 4909#: doc/guix.texi:1523
544cab3d
LC
4910msgid "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:"
4911msgstr ""
4912
4913#. type: item
32747aa9 4914#: doc/guix.texi:1525
544cab3d
LC
4915#, no-wrap
4916msgid "--listen=/gnu/var/daemon"
4917msgstr ""
4918
4919#. type: table
32747aa9 4920#: doc/guix.texi:1528
544cab3d
LC
4921msgid "Listen for connections on the @file{/gnu/var/daemon} Unix-domain socket, creating it if needed."
4922msgstr ""
4923
4924#. type: item
32747aa9 4925#: doc/guix.texi:1529
544cab3d
LC
4926#, no-wrap
4927msgid "--listen=localhost"
4928msgstr ""
4929
4930#. type: cindex
32747aa9 4931#: doc/guix.texi:1530 doc/guix.texi:6349
544cab3d
LC
4932#, no-wrap
4933msgid "daemon, remote access"
4934msgstr ""
4935
4936#. type: cindex
32747aa9 4937#: doc/guix.texi:1531 doc/guix.texi:6350
544cab3d
LC
4938#, no-wrap
4939msgid "remote access to the daemon"
4940msgstr ""
4941
4942#. type: cindex
32747aa9 4943#: doc/guix.texi:1532 doc/guix.texi:6351
544cab3d
LC
4944#, no-wrap
4945msgid "daemon, cluster setup"
4946msgstr ""
4947
4948#. type: cindex
32747aa9 4949#: doc/guix.texi:1533 doc/guix.texi:6352
544cab3d
LC
4950#, no-wrap
4951msgid "clusters, daemon setup"
4952msgstr ""
4953
4954#. type: table
32747aa9 4955#: doc/guix.texi:1536
544cab3d
LC
4956msgid "Listen for TCP connections on the network interface corresponding to @code{localhost}, on port 44146."
4957msgstr ""
4958
4959#. type: item
32747aa9 4960#: doc/guix.texi:1537
544cab3d
LC
4961#, no-wrap
4962msgid "--listen=128.0.0.42:1234"
4963msgstr ""
4964
4965#. type: table
32747aa9 4966#: doc/guix.texi:1540
544cab3d
LC
4967msgid "Listen for TCP connections on the network interface corresponding to @code{128.0.0.42}, on port 1234."
4968msgstr ""
4969
4970#. type: table
32747aa9 4971#: doc/guix.texi:1547
544cab3d
LC
4972msgid "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 @code{GUIX_DAEMON_SOCKET} environment variable (@pxref{The Store, @code{GUIX_DAEMON_SOCKET}})."
4973msgstr ""
4974
4975#. type: quotation
32747aa9 4976#: doc/guix.texi:1554
544cab3d
LC
4977msgid "The daemon protocol is @emph{unauthenticated and unencrypted}. Using @code{--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."
4978msgstr ""
4979
4980#. type: table
32747aa9 4981#: doc/guix.texi:1559
544cab3d
LC
4982msgid "When @code{--listen} is omitted, @command{guix-daemon} listens for connections on the Unix-domain socket located at @file{@var{localstatedir}/guix/daemon-socket/socket}."
4983msgstr ""
4984
4985#. type: Plain text
32747aa9 4986#: doc/guix.texi:1569
544cab3d
LC
4987msgid "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."
4988msgstr ""
4989
4990#. type: anchor{#1}
32747aa9 4991#: doc/guix.texi:1573
544cab3d
LC
4992msgid "locales-and-locpath"
4993msgstr ""
4994
4995#. type: cindex
32747aa9 4996#: doc/guix.texi:1573
544cab3d
LC
4997#, no-wrap
4998msgid "locales, when not on Guix System"
4999msgstr ""
5000
5001#. type: vindex
32747aa9 5002#: doc/guix.texi:1574 doc/guix.texi:11297
544cab3d
LC
5003#, no-wrap
5004msgid "LOCPATH"
5005msgstr ""
5006
5007#. type: vindex
32747aa9 5008#: doc/guix.texi:1575
544cab3d
LC
5009#, no-wrap
5010msgid "GUIX_LOCPATH"
5011msgstr ""
5012
5013#. type: Plain text
32747aa9 5014#: doc/guix.texi:1580
544cab3d
LC
5015msgid "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 @code{GUIX_LOCPATH} environment variable:"
5016msgstr ""
5017
5018#. type: example
32747aa9 5019#: doc/guix.texi:1584
544cab3d
LC
5020#, no-wrap
5021msgid ""
32747aa9 5022"$ guix install glibc-locales\n"
544cab3d
LC
5023"$ export GUIX_LOCPATH=$HOME/.guix-profile/lib/locale\n"
5024msgstr ""
5025
5026#. type: Plain text
32747aa9 5027#: doc/guix.texi:1590
544cab3d
LC
5028msgid "Note that the @code{glibc-locales} package contains data for all the locales supported by the GNU@tie{}libc and weighs in at around 110@tie{}MiB. Alternatively, the @code{glibc-utf8-locales} is smaller but limited to a few UTF-8 locales."
5029msgstr ""
5030
5031#. type: Plain text
32747aa9 5032#: doc/guix.texi:1594
544cab3d
LC
5033msgid "The @code{GUIX_LOCPATH} variable plays a role similar to @code{LOCPATH} (@pxref{Locale Names, @code{LOCPATH},, libc, The GNU C Library Reference Manual}). There are two important differences though:"
5034msgstr ""
5035
5036#. type: enumerate
32747aa9 5037#: doc/guix.texi:1601
544cab3d
LC
5038msgid "@code{GUIX_LOCPATH} is honored only by the libc in Guix, and not by the libc provided by foreign distros. Thus, using @code{GUIX_LOCPATH} allows you to make sure the programs of the foreign distro will not end up loading incompatible locale data."
5039msgstr ""
5040
5041#. type: enumerate
32747aa9 5042#: doc/guix.texi:1608
544cab3d
LC
5043msgid "libc suffixes each entry of @code{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."
5044msgstr ""
5045
5046#. type: Plain text
32747aa9 5047#: doc/guix.texi:1612
544cab3d
LC
5048msgid "This is important because the locale data format used by different libc versions may be incompatible."
5049msgstr ""
5050
5051#. type: cindex
32747aa9 5052#: doc/guix.texi:1615
544cab3d
LC
5053#, no-wrap
5054msgid "name service switch, glibc"
5055msgstr ""
5056
5057#. type: cindex
32747aa9 5058#: doc/guix.texi:1616
544cab3d
LC
5059#, no-wrap
5060msgid "NSS (name service switch), glibc"
5061msgstr ""
5062
5063#. type: cindex
32747aa9 5064#: doc/guix.texi:1617
544cab3d
LC
5065#, no-wrap
5066msgid "nscd (name service caching daemon)"
5067msgstr ""
5068
5069#. type: cindex
32747aa9 5070#: doc/guix.texi:1618
544cab3d
LC
5071#, no-wrap
5072msgid "name service caching daemon (nscd)"
5073msgstr ""
5074
5075#. type: Plain text
32747aa9 5076#: doc/guix.texi:1625
544cab3d
LC
5077msgid "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."
5078msgstr ""
5079
5080#. type: file{#1}
32747aa9 5081#: doc/guix.texi:1626
544cab3d
LC
5082#, no-wrap
5083msgid "nsswitch.conf"
5084msgstr ""
5085
5086#. type: Plain text
32747aa9 5087#: doc/guix.texi:1631
544cab3d
LC
5088msgid "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})."
5089msgstr ""
5090
5091#. type: cindex
32747aa9 5092#: doc/guix.texi:1632
544cab3d
LC
5093#, no-wrap
5094msgid "Network information service (NIS)"
5095msgstr ""
5096
5097#. type: cindex
32747aa9 5098#: doc/guix.texi:1633
544cab3d
LC
5099#, no-wrap
5100msgid "NIS (Network information service)"
5101msgstr ""
5102
5103#. type: Plain text
32747aa9 5104#: doc/guix.texi:1642
544cab3d
LC
5105msgid "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})."
5106msgstr ""
5107
5108#. type: Plain text
32747aa9 5109#: doc/guix.texi:1652
544cab3d
LC
5110msgid "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)."
5111msgstr ""
5112
5113#. type: Plain text
32747aa9 5114#: doc/guix.texi:1657
544cab3d
LC
5115msgid "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."
5116msgstr ""
5117
5118#. type: Plain text
32747aa9 5119#: doc/guix.texi:1662
544cab3d
LC
5120msgid "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."
5121msgstr ""
5122
5123#. type: subsection
32747aa9 5124#: doc/guix.texi:1663
544cab3d
LC
5125#, no-wrap
5126msgid "X11 Fonts"
5127msgstr ""
5128
5129#. type: Plain text
32747aa9 5130#: doc/guix.texi:1673
544cab3d
LC
5131msgid "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-ttf}."
5132msgstr ""
5133
5134#. type: Plain text
32747aa9 5135#: doc/guix.texi:1680
544cab3d
LC
5136msgid "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:"
5137msgstr ""
5138
5139#. type: example
32747aa9 5140#: doc/guix.texi:1683
544cab3d 5141#, no-wrap
32747aa9 5142msgid "guix install font-adobe-source-han-sans:cn\n"
544cab3d
LC
5143msgstr ""
5144
5145#. type: code{#1}
32747aa9 5146#: doc/guix.texi:1685
544cab3d
LC
5147#, no-wrap
5148msgid "xterm"
5149msgstr ""
5150
5151#. type: Plain text
32747aa9 5152#: doc/guix.texi:1689
544cab3d
LC
5153msgid "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:"
5154msgstr ""
5155
5156#. type: example
32747aa9 5157#: doc/guix.texi:1692
544cab3d
LC
5158#, no-wrap
5159msgid "-*-dejavu sans-medium-r-normal-*-*-100-*-*-*-*-*-1\n"
5160msgstr ""
5161
5162#. type: Plain text
32747aa9 5163#: doc/guix.texi:1696
544cab3d
LC
5164msgid "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:"
5165msgstr ""
5166
5167#. type: example
32747aa9 5168#: doc/guix.texi:1701
544cab3d
LC
5169#, no-wrap
5170msgid "xset +fp $(dirname $(readlink -f ~/.guix-profile/share/fonts/truetype/fonts.dir))\n"
5171msgstr ""
5172
5173#. type: code{#1}
32747aa9 5174#: doc/guix.texi:1703
544cab3d
LC
5175#, no-wrap
5176msgid "xlsfonts"
5177msgstr ""
5178
5179#. type: Plain text
32747aa9 5180#: doc/guix.texi:1706
544cab3d
LC
5181msgid "After that, you can run @code{xlsfonts} (from @code{xlsfonts} package) to make sure your TrueType fonts are listed there."
5182msgstr ""
5183
5184#. type: code{#1}
32747aa9 5185#: doc/guix.texi:1707
544cab3d
LC
5186#, no-wrap
5187msgid "fc-cache"
5188msgstr ""
5189
5190#. type: cindex
32747aa9 5191#: doc/guix.texi:1708
544cab3d
LC
5192#, no-wrap
5193msgid "font cache"
5194msgstr ""
5195
5196#. type: Plain text
32747aa9 5197#: doc/guix.texi:1714
544cab3d
LC
5198msgid "After installing fonts you may have to refresh the font cache to use them in applications. The same applies when applications installed via Guix do not seem to find fonts. To force rebuilding of the font cache run @code{fc-cache -f}. The @code{fc-cache} command is provided by the @code{fontconfig} package."
5199msgstr ""
5200
5201#. type: code{#1}
32747aa9 5202#: doc/guix.texi:1717 doc/guix.texi:23674
544cab3d
LC
5203#, no-wrap
5204msgid "nss-certs"
5205msgstr ""
5206
5207#. type: Plain text
32747aa9 5208#: doc/guix.texi:1720
544cab3d
LC
5209msgid "The @code{nss-certs} package provides X.509 certificates, which allow programs to authenticate Web servers accessed over HTTPS."
5210msgstr ""
5211
5212#. type: Plain text
32747aa9 5213#: doc/guix.texi:1725
544cab3d
LC
5214msgid "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."
5215msgstr ""
5216
5217#. type: subsection
32747aa9 5218#: doc/guix.texi:1726
544cab3d
LC
5219#, no-wrap
5220msgid "Emacs Packages"
5221msgstr ""
5222
5223#. type: code{#1}
32747aa9 5224#: doc/guix.texi:1728
544cab3d
LC
5225#, no-wrap
5226msgid "emacs"
5227msgstr ""
5228
5229#. type: Plain text
32747aa9 5230#: doc/guix.texi:1739
544cab3d
LC
5231msgid "When you install Emacs packages with Guix, the elisp files may be placed either in @file{$HOME/.guix-profile/share/emacs/site-lisp/} or in sub-directories of @file{$HOME/.guix-profile/share/emacs/site-lisp/guix.d/}. The latter directory exists because potentially there may exist thousands of Emacs packages and storing all their files in a single directory may not be reliable (because of name conflicts). So we think using a separate directory for each package is a good idea. It is very similar to how the Emacs package system organizes the file structure (@pxref{Package Files,,, emacs, The GNU Emacs Manual})."
5232msgstr ""
5233
5234#. type: Plain text
32747aa9 5235#: doc/guix.texi:1745
544cab3d
LC
5236msgid "By default, Emacs (installed with Guix) ``knows'' where these packages are placed, so you do not need to perform any configuration. If, for some reason, you want to avoid auto-loading Emacs packages installed with Guix, you can do so by running Emacs with @code{--no-site-file} option (@pxref{Init File,,, emacs, The GNU Emacs Manual})."
5237msgstr ""
5238
5239#. type: subsection
32747aa9 5240#: doc/guix.texi:1746
544cab3d
LC
5241#, no-wrap
5242msgid "The GCC toolchain"
5243msgstr ""
5244
5245#. type: cindex
32747aa9 5246#: doc/guix.texi:1748
544cab3d
LC
5247#, no-wrap
5248msgid "GCC"
5249msgstr ""
5250
5251#. type: cindex
32747aa9 5252#: doc/guix.texi:1749
544cab3d
LC
5253#, no-wrap
5254msgid "ld-wrapper"
5255msgstr ""
5256
5257#. type: Plain text
32747aa9 5258#: doc/guix.texi:1758
544cab3d
LC
5259msgid "Guix offers individual compiler packages such as @code{gcc} but if you are in need of a complete toolchain for compiling and linking source code what you really want is 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."
5260msgstr ""
5261
5262#. type: Plain text
32747aa9 5263#: doc/guix.texi:1764
544cab3d
LC
5264msgid "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 @code{GUIX_LD_WRAPPER_ALLOW_IMPURITIES} environment variable to @code{no}."
5265msgstr ""
5266
5267#. type: cindex
32747aa9 5268#: doc/guix.texi:1771
544cab3d
LC
5269#, no-wrap
5270msgid "installing Guix System"
5271msgstr ""
5272
5273#. type: cindex
32747aa9 5274#: doc/guix.texi:1772
544cab3d
LC
5275#, no-wrap
5276msgid "Guix System, installation"
5277msgstr ""
5278
5279#. type: Plain text
32747aa9 5280#: doc/guix.texi:1777
544cab3d
LC
5281msgid "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}."
5282msgstr ""
5283
5284#. type: quotation
32747aa9 5285#: doc/guix.texi:1786
544cab3d
LC
5286msgid "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."
5287msgstr ""
5288
5289#. type: quotation
32747aa9 5290#: doc/guix.texi:1789
544cab3d
LC
5291msgid "Alternately, run @command{info info} in another tty to keep the manual available."
5292msgstr ""
5293
544cab3d
LC
5294#. type: Plain text
5295#: doc/guix.texi:1810
32747aa9 5296msgid "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."
544cab3d
LC
5297msgstr ""
5298
32747aa9
LC
5299#. type: Plain text
5300#: doc/guix.texi:1813
5301msgid "Nevertheless, before you proceed with the installation, be aware of the following noteworthy limitations applicable to version @value{VERSION}:"
544cab3d
LC
5302msgstr ""
5303
5304#. type: itemize
32747aa9 5305#: doc/guix.texi:1817
544cab3d
LC
5306msgid "Support for the Logical Volume Manager (LVM) is missing."
5307msgstr ""
5308
5309#. type: itemize
32747aa9 5310#: doc/guix.texi:1821
544cab3d
LC
5311msgid "More and more system services are provided (@pxref{Services}), but some may be missing."
5312msgstr ""
5313
5314#. type: itemize
32747aa9
LC
5315#: doc/guix.texi:1826
5316msgid "GNOME, Xfce, LXDE, and Enlightenment are available (@pxref{Desktop Services}), as well as a number of X11 window managers. However, KDE is currently missing."
544cab3d
LC
5317msgstr ""
5318
5319#. type: Plain text
32747aa9
LC
5320#: doc/guix.texi:1831
5321msgid "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."
544cab3d
LC
5322msgstr ""
5323
5324#. type: cindex
32747aa9 5325#: doc/guix.texi:1836
544cab3d
LC
5326#, no-wrap
5327msgid "hardware support on Guix System"
5328msgstr ""
5329
5330#. type: Plain text
32747aa9 5331#: doc/guix.texi:1845
544cab3d
LC
5332msgid "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."
5333msgstr ""
5334
5335#. type: cindex
32747aa9 5336#: doc/guix.texi:1846
544cab3d
LC
5337#, no-wrap
5338msgid "WiFi, hardware support"
5339msgstr ""
5340
5341#. type: Plain text
32747aa9
LC
5342#: doc/guix.texi:1855
5343msgid "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}})."
544cab3d
LC
5344msgstr ""
5345
5346#. type: cindex
32747aa9 5347#: doc/guix.texi:1856
544cab3d
LC
5348#, no-wrap
5349msgid "RYF, Respects Your Freedom"
5350msgstr ""
5351
5352#. type: Plain text
32747aa9 5353#: doc/guix.texi:1862
544cab3d
LC
5354msgid "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."
5355msgstr ""
5356
5357#. type: Plain text
32747aa9 5358#: doc/guix.texi:1866
544cab3d
LC
5359msgid "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."
5360msgstr ""
5361
5362#. type: Plain text
32747aa9
LC
5363#: doc/guix.texi:1875
5364msgid "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}.@var{system}.iso.xz}, where @var{system} is one of:"
544cab3d
LC
5365msgstr ""
5366
5367#. type: table
32747aa9 5368#: doc/guix.texi:1879
544cab3d
LC
5369msgid "for a GNU/Linux system on Intel/AMD-compatible 64-bit CPUs;"
5370msgstr ""
5371
5372#. type: table
32747aa9 5373#: doc/guix.texi:1882
544cab3d
LC
5374msgid "for a 32-bit GNU/Linux system on Intel-compatible CPUs."
5375msgstr ""
5376
5377#. type: Plain text
32747aa9 5378#: doc/guix.texi:1887
544cab3d
LC
5379msgid "Make sure to download the associated @file{.sig} file and to verify the authenticity of the image against it, along these lines:"
5380msgstr ""
5381
5382#. type: example
32747aa9 5383#: doc/guix.texi:1891
544cab3d
LC
5384#, no-wrap
5385msgid ""
32747aa9 5386"$ wget @value{BASE-URL}/guix-system-install-@value{VERSION}.@var{system}.iso.xz.sig\n"
544cab3d
LC
5387"$ gpg --verify guix-system-install-@value{VERSION}.@var{system}.iso.xz.sig\n"
5388msgstr ""
32747aa9
LC
5389"$ wget @value{BASE-URL}/guix-system-install-@value{VERSION}.@var{系统}.iso.xz.sig\n"
5390"$ gpg --verify guix-system-install-@value{VERSION}.@var{系统}.iso.xz.sig\n"
544cab3d
LC
5391
5392#. type: Plain text
32747aa9 5393#: doc/guix.texi:1907
544cab3d
LC
5394msgid "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."
5395msgstr ""
5396
5397#. type: unnumberedsubsec
32747aa9 5398#: doc/guix.texi:1908
544cab3d
LC
5399#, no-wrap
5400msgid "Copying to a USB Stick"
5401msgstr ""
5402
5403#. type: Plain text
32747aa9 5404#: doc/guix.texi:1911
544cab3d
LC
5405msgid "To copy the image to a USB stick, follow these steps:"
5406msgstr ""
5407
5408#. type: enumerate
32747aa9 5409#: doc/guix.texi:1915 doc/guix.texi:1940
544cab3d
LC
5410msgid "Decompress the image using the @command{xz} command:"
5411msgstr ""
5412
5413#. type: example
32747aa9 5414#: doc/guix.texi:1918 doc/guix.texi:1943
544cab3d
LC
5415#, no-wrap
5416msgid "xz -d guix-system-install-@value{VERSION}.@var{system}.iso.xz\n"
5417msgstr ""
5418
5419#. type: enumerate
32747aa9 5420#: doc/guix.texi:1924
544cab3d
LC
5421msgid "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:"
5422msgstr ""
5423
5424#. type: example
32747aa9 5425#: doc/guix.texi:1928
544cab3d
LC
5426#, no-wrap
5427msgid ""
5428"dd if=guix-system-install-@value{VERSION}.@var{system}.iso of=/dev/sdX\n"
5429"sync\n"
5430msgstr ""
5431
5432#. type: enumerate
32747aa9 5433#: doc/guix.texi:1931
544cab3d
LC
5434msgid "Access to @file{/dev/sdX} usually requires root privileges."
5435msgstr ""
5436
5437#. type: unnumberedsubsec
32747aa9 5438#: doc/guix.texi:1933
544cab3d
LC
5439#, no-wrap
5440msgid "Burning on a DVD"
5441msgstr ""
5442
5443#. type: Plain text
32747aa9 5444#: doc/guix.texi:1936
544cab3d
LC
5445msgid "To copy the image to a DVD, follow these steps:"
5446msgstr ""
5447
5448#. type: enumerate
32747aa9 5449#: doc/guix.texi:1949
544cab3d
LC
5450msgid "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:"
5451msgstr ""
5452
5453#. type: example
32747aa9 5454#: doc/guix.texi:1952
544cab3d
LC
5455#, no-wrap
5456msgid "growisofs -dvd-compat -Z /dev/srX=guix-system-install-@value{VERSION}.@var{system}.iso\n"
5457msgstr ""
5458
5459#. type: enumerate
32747aa9 5460#: doc/guix.texi:1955
544cab3d
LC
5461msgid "Access to @file{/dev/srX} usually requires root privileges."
5462msgstr ""
5463
5464#. type: unnumberedsubsec
32747aa9 5465#: doc/guix.texi:1957
544cab3d
LC
5466#, no-wrap
5467msgid "Booting"
5468msgstr ""
5469
5470#. type: Plain text
32747aa9 5471#: doc/guix.texi:1962
544cab3d
LC
5472msgid "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."
5473msgstr ""
5474
5475#. type: Plain text
32747aa9 5476#: doc/guix.texi:1965
544cab3d
LC
5477msgid "@xref{Installing Guix in a VM}, if, instead, you would like to install Guix System in a virtual machine (VM)."
5478msgstr ""
5479
5480#. type: Plain text
32747aa9 5481#: doc/guix.texi:1975
544cab3d
LC
5482msgid "Once you have booted, you can use the guided graphical installer, which makes it easy to get started (@pxref{Guided Graphical Installation}). Alternately, 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})."
5483msgstr ""
5484
5485#. type: Plain text
32747aa9 5486#: doc/guix.texi:1983
544cab3d
LC
5487msgid "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."
5488msgstr ""
5489
5490#. type: quotation
32747aa9 5491#: doc/guix.texi:1988
544cab3d
LC
5492msgid "Installation requires access to the Internet so that any missing dependencies of your system configuration can be downloaded. See the ``Networking'' section below."
5493msgstr ""
5494
5495#. type: Plain text
32747aa9 5496#: doc/guix.texi:1995
544cab3d
LC
5497msgid "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."
5498msgstr ""
5499
5500#. type: Plain text
32747aa9 5501#: doc/guix.texi:2000
544cab3d
LC
5502msgid "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."
5503msgstr ""
5504
5505#. type: Plain text
32747aa9 5506#: doc/guix.texi:2002
544cab3d
LC
5507msgid "@image{images/installer-network,5in,, networking setup with the graphical installer}"
5508msgstr ""
5509
5510#. type: Plain text
32747aa9 5511#: doc/guix.texi:2007
544cab3d
LC
5512msgid "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."
5513msgstr ""
5514
5515#. type: Plain text
32747aa9 5516#: doc/guix.texi:2009
544cab3d
LC
5517msgid "@image{images/installer-partitions,5in,, partitioning with the graphical installer}"
5518msgstr ""
5519
5520#. type: Plain text
32747aa9 5521#: doc/guix.texi:2012
544cab3d
LC
5522msgid "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."
5523msgstr ""
5524
5525#. type: Plain text
32747aa9 5526#: doc/guix.texi:2014
544cab3d
LC
5527msgid "@image{images/installer-resume,5in,, resuming the installation process}"
5528msgstr ""
5529
5530#. type: Plain text
32747aa9 5531#: doc/guix.texi:2019
544cab3d
LC
5532msgid "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!"
5533msgstr ""
5534
5535#. type: Plain text
32747aa9 5536#: doc/guix.texi:2029
544cab3d
LC
5537msgid "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})."
5538msgstr ""
5539
5540#. type: Plain text
32747aa9 5541#: doc/guix.texi:2035
544cab3d
LC
5542msgid "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})."
5543msgstr ""
5544
5545#. type: subsection
32747aa9 5546#: doc/guix.texi:2042
544cab3d
LC
5547#, no-wrap
5548msgid "Keyboard Layout, Networking, and Partitioning"
5549msgstr ""
5550
5551#. type: Plain text
32747aa9 5552#: doc/guix.texi:2047
544cab3d
LC
5553msgid "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."
5554msgstr ""
5555
5556#. type: cindex
32747aa9 5557#: doc/guix.texi:2050 doc/guix.texi:11125
544cab3d
LC
5558#, no-wrap
5559msgid "keyboard layout"
5560msgstr ""
5561
5562#. type: Plain text
32747aa9 5563#: doc/guix.texi:2054
544cab3d
LC
5564msgid "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:"
5565msgstr ""
5566
5567#. type: example
32747aa9 5568#: doc/guix.texi:2057
544cab3d
LC
5569#, no-wrap
5570msgid "loadkeys dvorak\n"
5571msgstr ""
5572
5573#. type: Plain text
32747aa9 5574#: doc/guix.texi:2062
544cab3d
LC
5575msgid "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."
5576msgstr ""
5577
5578#. type: subsubsection
32747aa9 5579#: doc/guix.texi:2063
544cab3d
LC
5580#, no-wrap
5581msgid "Networking"
5582msgstr ""
5583
5584#. type: Plain text
32747aa9 5585#: doc/guix.texi:2066
544cab3d
LC
5586msgid "Run the following command to see what your network interfaces are called:"
5587msgstr ""
5588
5589#. type: example
32747aa9 5590#: doc/guix.texi:2069
544cab3d
LC
5591#, no-wrap
5592msgid "ifconfig -a\n"
5593msgstr ""
5594
5595#. type: Plain text
32747aa9 5596#: doc/guix.texi:2073
544cab3d
LC
5597msgid "@dots{} or, using the GNU/Linux-specific @command{ip} command:"
5598msgstr ""
5599
5600#. type: example
32747aa9 5601#: doc/guix.texi:2076
544cab3d
LC
5602#, no-wrap
5603msgid "ip a\n"
5604msgstr ""
5605
5606#. type: Plain text
32747aa9 5607#: doc/guix.texi:2083
544cab3d
LC
5608msgid "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}."
5609msgstr ""
5610
5611#. type: item
32747aa9 5612#: doc/guix.texi:2085
544cab3d
LC
5613#, no-wrap
5614msgid "Wired connection"
5615msgstr ""
5616
5617#. type: table
32747aa9 5618#: doc/guix.texi:2088
544cab3d
LC
5619msgid "To configure a wired network run the following command, substituting @var{interface} with the name of the wired interface you want to use."
5620msgstr ""
5621
5622#. type: example
32747aa9 5623#: doc/guix.texi:2091
544cab3d
LC
5624#, no-wrap
5625msgid "ifconfig @var{interface} up\n"
5626msgstr ""
5627
5628#. type: item
32747aa9 5629#: doc/guix.texi:2093
544cab3d
LC
5630#, no-wrap
5631msgid "Wireless connection"
5632msgstr ""
5633
5634#. type: cindex
32747aa9 5635#: doc/guix.texi:2094 doc/guix.texi:12556
544cab3d
LC
5636#, no-wrap
5637msgid "wireless"
5638msgstr ""
5639
5640#. type: cindex
32747aa9 5641#: doc/guix.texi:2095 doc/guix.texi:12557
544cab3d
LC
5642#, no-wrap
5643msgid "WiFi"
5644msgstr ""
5645
5646#. type: table
32747aa9 5647#: doc/guix.texi:2100
544cab3d
LC
5648msgid "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}:"
5649msgstr ""
5650
5651#. type: example
32747aa9 5652#: doc/guix.texi:2103
544cab3d
LC
5653#, no-wrap
5654msgid "nano wpa_supplicant.conf\n"
5655msgstr ""
5656
5657#. type: table
32747aa9 5658#: doc/guix.texi:2108
544cab3d
LC
5659msgid "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:"
5660msgstr ""
5661
5662#. type: example
32747aa9 5663#: doc/guix.texi:2115
544cab3d
LC
5664#, no-wrap
5665msgid ""
5666"network=@{\n"
5667" ssid=\"@var{my-ssid}\"\n"
5668" key_mgmt=WPA-PSK\n"
5669" psk=\"the network's secret passphrase\"\n"
5670"@}\n"
5671msgstr ""
5672
5673#. type: table
32747aa9 5674#: doc/guix.texi:2120
544cab3d
LC
5675msgid "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):"
5676msgstr ""
5677
5678#. type: example
32747aa9 5679#: doc/guix.texi:2123
544cab3d
LC
5680#, no-wrap
5681msgid "wpa_supplicant -c wpa_supplicant.conf -i @var{interface} -B\n"
5682msgstr ""
5683
5684#. type: table
32747aa9 5685#: doc/guix.texi:2126
544cab3d
LC
5686msgid "Run @command{man wpa_supplicant} for more information."
5687msgstr ""
5688
5689#. type: cindex
32747aa9 5690#: doc/guix.texi:2128
544cab3d
LC
5691#, no-wrap
5692msgid "DHCP"
5693msgstr ""
5694
5695#. type: Plain text
32747aa9 5696#: doc/guix.texi:2131
544cab3d
LC
5697msgid "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:"
5698msgstr ""
5699
5700#. type: example
32747aa9 5701#: doc/guix.texi:2134
544cab3d
LC
5702#, no-wrap
5703msgid "dhclient -v @var{interface}\n"
5704msgstr ""
5705
5706#. type: Plain text
32747aa9 5707#: doc/guix.texi:2137
544cab3d
LC
5708msgid "Try to ping a server to see if networking is up and running:"
5709msgstr ""
5710
5711#. type: example
32747aa9 5712#: doc/guix.texi:2140
544cab3d
LC
5713#, no-wrap
5714msgid "ping -c 3 gnu.org\n"
5715msgstr ""
5716
5717#. type: Plain text
32747aa9 5718#: doc/guix.texi:2144
544cab3d
LC
5719msgid "Setting up network access is almost always a requirement because the image does not contain all the software and tools that may be needed."
5720msgstr ""
5721
5722#. type: cindex
32747aa9 5723#: doc/guix.texi:2145
544cab3d
LC
5724#, no-wrap
5725msgid "installing over SSH"
5726msgstr ""
5727
5728#. type: Plain text
32747aa9 5729#: doc/guix.texi:2148
544cab3d
LC
5730msgid "If you want to, you can continue the installation remotely by starting an SSH server:"
5731msgstr ""
5732
5733#. type: example
32747aa9 5734#: doc/guix.texi:2151
544cab3d
LC
5735#, no-wrap
5736msgid "herd start ssh-daemon\n"
5737msgstr ""
5738
5739#. type: Plain text
32747aa9 5740#: doc/guix.texi:2155
544cab3d
LC
5741msgid "Make sure to either set a password with @command{passwd}, or configure OpenSSH public key authentication before logging in."
5742msgstr ""
5743
5744#. type: subsubsection
32747aa9 5745#: doc/guix.texi:2156
544cab3d
LC
5746#, no-wrap
5747msgid "Disk Partitioning"
5748msgstr ""
5749
5750#. type: Plain text
32747aa9 5751#: doc/guix.texi:2160
544cab3d
LC
5752msgid "Unless this has already been done, the next step is to partition, and then format the target partition(s)."
5753msgstr ""
5754
5755#. type: Plain text
32747aa9 5756#: doc/guix.texi:2165
544cab3d
LC
5757msgid "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:"
5758msgstr ""
5759
5760#. type: example
32747aa9 5761#: doc/guix.texi:2168
544cab3d
LC
5762#, no-wrap
5763msgid "cfdisk\n"
5764msgstr ""
5765
5766#. type: Plain text
32747aa9 5767#: doc/guix.texi:2174
544cab3d
LC
5768msgid "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})."
5769msgstr ""
5770
5771#. type: cindex
32747aa9 5772#: doc/guix.texi:2175
544cab3d
LC
5773#, no-wrap
5774msgid "EFI, installation"
5775msgstr ""
5776
5777#. type: cindex
32747aa9 5778#: doc/guix.texi:2176
544cab3d
LC
5779#, no-wrap
5780msgid "UEFI, installation"
5781msgstr ""
5782
5783#. type: cindex
32747aa9 5784#: doc/guix.texi:2177
544cab3d
LC
5785#, no-wrap
5786msgid "ESP, EFI system partition"
5787msgstr ""
5788
5789#. type: Plain text
32747aa9 5790#: doc/guix.texi:2181
544cab3d
LC
5791msgid "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}:"
5792msgstr ""
5793
5794#. type: example
32747aa9 5795#: doc/guix.texi:2184
544cab3d
LC
5796#, no-wrap
5797msgid "parted /dev/sda set 1 esp on\n"
5798msgstr ""
5799
5800#. type: vindex
32747aa9 5801#: doc/guix.texi:2187 doc/guix.texi:24064
544cab3d
LC
5802#, no-wrap
5803msgid "grub-bootloader"
5804msgstr ""
5805
5806#. type: vindex
32747aa9 5807#: doc/guix.texi:2188 doc/guix.texi:24058
544cab3d
LC
5808#, no-wrap
5809msgid "grub-efi-bootloader"
5810msgstr ""
5811
5812#. type: quotation
32747aa9 5813#: doc/guix.texi:2195
544cab3d
LC
5814msgid "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."
5815msgstr ""
5816
5817#. type: Plain text
32747aa9 5818#: doc/guix.texi:2203
544cab3d
LC
5819msgid "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 and btrfs 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:"
5820msgstr ""
5821
5822#. type: example
32747aa9 5823#: doc/guix.texi:2206
544cab3d
LC
5824#, no-wrap
5825msgid "mkfs.fat -F32 /dev/sda1\n"
5826msgstr ""
5827
5828#. type: Plain text
32747aa9 5829#: doc/guix.texi:2214
544cab3d
LC
5830msgid "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:"
5831msgstr ""
5832
5833#. type: example
32747aa9 5834#: doc/guix.texi:2217
544cab3d
LC
5835#, no-wrap
5836msgid "mkfs.ext4 -L my-root /dev/sda2\n"
5837msgstr ""
5838
5839#. type: cindex
32747aa9 5840#: doc/guix.texi:2219 doc/guix.texi:10382
544cab3d
LC
5841#, no-wrap
5842msgid "encrypted disk"
5843msgstr ""
5844
5845#. type: Plain text
32747aa9 5846#: doc/guix.texi:2226
544cab3d
LC
5847msgid "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:"
5848msgstr ""
5849
5850#. type: example
32747aa9 5851#: doc/guix.texi:2231
544cab3d
LC
5852#, no-wrap
5853msgid ""
5854"cryptsetup luksFormat /dev/sda2\n"
5855"cryptsetup open --type luks /dev/sda2 my-partition\n"
5856"mkfs.ext4 -L my-root /dev/mapper/my-partition\n"
5857msgstr ""
5858
5859#. type: Plain text
32747aa9 5860#: doc/guix.texi:2236
544cab3d
LC
5861msgid "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):"
5862msgstr ""
5863
5864#. type: example
32747aa9 5865#: doc/guix.texi:2239
544cab3d
LC
5866#, no-wrap
5867msgid "mount LABEL=my-root /mnt\n"
5868msgstr ""
5869
5870#. type: Plain text
32747aa9 5871#: doc/guix.texi:2245
544cab3d
LC
5872msgid "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."
5873msgstr ""
5874
5875#. type: Plain text
32747aa9 5876#: doc/guix.texi:2250
544cab3d
LC
5877msgid "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:"
5878msgstr ""
5879
5880#. type: example
32747aa9 5881#: doc/guix.texi:2254
544cab3d
LC
5882#, no-wrap
5883msgid ""
5884"mkswap /dev/sda3\n"
5885"swapon /dev/sda3\n"
5886msgstr ""
5887
5888#. type: Plain text
32747aa9 5889#: doc/guix.texi:2262
544cab3d
LC
5890msgid "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}.}:"
5891msgstr ""
5892
5893#. type: example
32747aa9 5894#: doc/guix.texi:2270
544cab3d
LC
5895#, no-wrap
5896msgid ""
5897"# This is 10 GiB of swap space. Adjust \"count\" to change the size.\n"
5898"dd if=/dev/zero of=/mnt/swapfile bs=1MiB count=10240\n"
5899"# For security, make the file readable and writable only by root.\n"
5900"chmod 600 /mnt/swapfile\n"
5901"mkswap /mnt/swapfile\n"
5902"swapon /mnt/swapfile\n"
5903msgstr ""
5904
5905#. type: Plain text
32747aa9 5906#: doc/guix.texi:2275
544cab3d
LC
5907msgid "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."
5908msgstr ""
5909
5910#. type: Plain text
32747aa9 5911#: doc/guix.texi:2281
544cab3d
LC
5912msgid "With the target partitions ready and the target root mounted on @file{/mnt}, we're ready to go. First, run:"
5913msgstr ""
5914
5915#. type: example
32747aa9 5916#: doc/guix.texi:2284
544cab3d
LC
5917#, no-wrap
5918msgid "herd start cow-store /mnt\n"
5919msgstr ""
5920
5921#. type: Plain text
32747aa9 5922#: doc/guix.texi:2291
544cab3d
LC
5923msgid "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."
5924msgstr ""
5925
5926#. type: Plain text
32747aa9 5927#: doc/guix.texi:2302
544cab3d
LC
5928msgid "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."
5929msgstr ""
5930
5931#. type: Plain text
32747aa9 5932#: doc/guix.texi:2309
544cab3d
LC
5933msgid "@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:"
5934msgstr ""
5935
5936#. type: example
32747aa9 5937#: doc/guix.texi:2314
544cab3d
LC
5938#, no-wrap
5939msgid ""
5940"# mkdir /mnt/etc\n"
5941"# cp /etc/configuration/desktop.scm /mnt/etc/config.scm\n"
5942"# nano /mnt/etc/config.scm\n"
5943msgstr ""
5944
5945#. type: Plain text
32747aa9 5946#: doc/guix.texi:2318
544cab3d
LC
5947msgid "You should pay attention to what your configuration file contains, and in particular:"
5948msgstr ""
5949
5950#. type: itemize
32747aa9 5951#: doc/guix.texi:2329
544cab3d
LC
5952msgid "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."
5953msgstr ""
5954
5955#. type: itemize
32747aa9 5956#: doc/guix.texi:2335
544cab3d
LC
5957msgid "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."
5958msgstr ""
5959
5960#. type: itemize
32747aa9 5961#: doc/guix.texi:2339
544cab3d
LC
5962msgid "If there are encrypted or RAID partitions, make sure to add a @code{mapped-devices} field to describe them (@pxref{Mapped Devices})."
5963msgstr ""
5964
5965#. type: Plain text
32747aa9 5966#: doc/guix.texi:2344
544cab3d
LC
5967msgid "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}):"
5968msgstr ""
5969
5970#. type: example
32747aa9 5971#: doc/guix.texi:2347
544cab3d
LC
5972#, no-wrap
5973msgid "guix system init /mnt/etc/config.scm /mnt\n"
5974msgstr ""
5975
5976#. type: Plain text
32747aa9 5977#: doc/guix.texi:2354
544cab3d
LC
5978msgid "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."
5979msgstr ""
5980
5981#. type: Plain text
32747aa9 5982#: doc/guix.texi:2362
544cab3d
LC
5983msgid "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!"
5984msgstr ""
5985
5986#. type: Plain text
32747aa9 5987#: doc/guix.texi:2369
544cab3d
LC
5988msgid "Success, you've now booted into Guix System! From then on, you can update the system whenever you want by running, say:"
5989msgstr ""
5990
5991#. type: example
32747aa9 5992#: doc/guix.texi:2373
544cab3d
LC
5993#, no-wrap
5994msgid ""
5995"guix pull\n"
5996"sudo guix system reconfigure /etc/config.scm\n"
5997msgstr ""
5998
5999#. type: Plain text
32747aa9 6000#: doc/guix.texi:2379
544cab3d
LC
6001msgid "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})."
6002msgstr ""
6003
6004#. type: cindex
32747aa9 6005#: doc/guix.texi:2382
544cab3d
LC
6006#, no-wrap
6007msgid "sudo vs. @command{guix pull}"
6008msgstr ""
6009
6010#. type: quotation
32747aa9 6011#: doc/guix.texi:2386
544cab3d
LC
6012msgid "Note that @command{sudo guix} runs your user's @command{guix} command and @emph{not} root's, because @command{sudo} leaves @code{PATH} unchanged. To explicitly run root's @command{guix}, type @command{sudo -i guix @dots{}}."
6013msgstr ""
6014
6015#. type: Plain text
32747aa9 6016#: doc/guix.texi:2390
544cab3d
LC
6017msgid "Join us on @code{#guix} on the Freenode IRC network or on @email{guix-devel@@gnu.org} to share your experience!"
6018msgstr ""
6019
6020#. type: section
32747aa9 6021#: doc/guix.texi:2393
544cab3d
LC
6022#, no-wrap
6023msgid "Installing Guix in a Virtual Machine"
6024msgstr ""
6025
6026#. type: cindex
32747aa9 6027#: doc/guix.texi:2395
544cab3d
LC
6028#, no-wrap
6029msgid "virtual machine, Guix System installation"
6030msgstr ""
6031
6032#. type: cindex
32747aa9 6033#: doc/guix.texi:2396
544cab3d
LC
6034#, no-wrap
6035msgid "virtual private server (VPS)"
6036msgstr ""
6037
6038#. type: cindex
32747aa9 6039#: doc/guix.texi:2397
544cab3d
LC
6040#, no-wrap
6041msgid "VPS (virtual private server)"
6042msgstr ""
6043
6044#. type: Plain text
32747aa9 6045#: doc/guix.texi:2401
544cab3d
LC
6046msgid "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."
6047msgstr ""
6048
6049#. type: Plain text
32747aa9
LC
6050#: doc/guix.texi:2404
6051msgid "To boot a @uref{https://qemu.org/,QEMU} VM for installing Guix System in a disk image, follow these steps:"
544cab3d
LC
6052msgstr ""
6053
6054#. type: enumerate
32747aa9 6055#: doc/guix.texi:2409
544cab3d
LC
6056msgid "First, retrieve and decompress the Guix system installation image as described previously (@pxref{USB Stick and DVD Installation})."
6057msgstr ""
6058
6059#. type: enumerate
32747aa9 6060#: doc/guix.texi:2413
544cab3d
LC
6061msgid "Create a disk image that will hold the installed system. To make a qcow2-formatted disk image, use the @command{qemu-img} command:"
6062msgstr ""
6063
6064#. type: example
32747aa9 6065#: doc/guix.texi:2416
544cab3d
LC
6066#, no-wrap
6067msgid "qemu-img create -f qcow2 guixsd.img 50G\n"
6068msgstr ""
6069
6070#. type: enumerate
32747aa9 6071#: doc/guix.texi:2420
544cab3d
LC
6072msgid "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."
6073msgstr ""
6074
6075#. type: enumerate
32747aa9 6076#: doc/guix.texi:2423
544cab3d
LC
6077msgid "Boot the USB installation image in an VM:"
6078msgstr ""
6079
6080#. type: example
32747aa9 6081#: doc/guix.texi:2429
544cab3d
LC
6082#, no-wrap
6083msgid ""
6084"qemu-system-x86_64 -m 1024 -smp 1 \\\n"
6085" -net user -net nic,model=virtio -boot menu=on \\\n"
6086" -drive file=guix-system-install-@value{VERSION}.@var{system}.iso \\\n"
6087" -drive file=guixsd.img\n"
6088msgstr ""
6089
6090#. type: enumerate
32747aa9 6091#: doc/guix.texi:2432
544cab3d
LC
6092msgid "The ordering of the drives matters."
6093msgstr ""
6094
6095#. type: enumerate
32747aa9 6096#: doc/guix.texi:2436
544cab3d
LC
6097msgid "In the VM console, quickly press the @kbd{F12} key to enter the boot menu. Then press the @kbd{2} key and the @kbd{RET} key to validate your selection."
6098msgstr ""
6099
6100#. type: enumerate
32747aa9 6101#: doc/guix.texi:2440
544cab3d
LC
6102msgid "You're now root in the VM, proceed with the installation process. @xref{Preparing for Installation}, and follow the instructions."
6103msgstr ""
6104
6105#. type: Plain text
32747aa9 6106#: doc/guix.texi:2445
544cab3d
LC
6107msgid "Once installation is complete, you can boot the system that's on your @file{guixsd.img} image. @xref{Running Guix in a VM}, for how to do that."
6108msgstr ""
6109
6110#. type: cindex
32747aa9 6111#: doc/guix.texi:2449
544cab3d
LC
6112#, no-wrap
6113msgid "installation image"
6114msgstr ""
6115
6116#. type: Plain text
32747aa9 6117#: doc/guix.texi:2452
544cab3d
LC
6118msgid "The installation image described above was built using the @command{guix system} command, specifically:"
6119msgstr ""
6120
6121#. type: example
32747aa9 6122#: doc/guix.texi:2456
544cab3d
LC
6123#, no-wrap
6124msgid ""
6125"guix system disk-image --file-system-type=iso9660 \\\n"
6126" gnu/system/install.scm\n"
6127msgstr ""
6128
6129#. type: Plain text
32747aa9 6130#: doc/guix.texi:2461
544cab3d
LC
6131msgid "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."
6132msgstr ""
6133
6134#. type: section
32747aa9 6135#: doc/guix.texi:2462
544cab3d
LC
6136#, no-wrap
6137msgid "Building the Installation Image for ARM Boards"
6138msgstr ""
6139
6140#. type: Plain text
32747aa9
LC
6141#: doc/guix.texi:2466
6142msgid "Many ARM boards require a specific variant of the @uref{https://www.denx.de/wiki/U-Boot/, U-Boot} bootloader."
544cab3d
LC
6143msgstr ""
6144
6145#. type: Plain text
32747aa9 6146#: doc/guix.texi:2470
544cab3d
LC
6147msgid "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:"
6148msgstr ""
6149
6150#. type: example
32747aa9 6151#: doc/guix.texi:2473
544cab3d
LC
6152#, no-wrap
6153msgid "guix system disk-image --system=armhf-linux -e '((@@ (gnu system install) os-with-u-boot) (@@ (gnu system install) installation-os) \"A20-OLinuXino-Lime2\")'\n"
6154msgstr ""
6155
6156#. type: Plain text
32747aa9 6157#: doc/guix.texi:2477
544cab3d
LC
6158msgid "@code{A20-OLinuXino-Lime2} is the name of the board. If you specify an invalid board, a list of possible boards will be printed."
6159msgstr ""
6160
6161#. type: cindex
32747aa9 6162#: doc/guix.texi:2482
544cab3d
LC
6163#, no-wrap
6164msgid "packages"
6165msgstr ""
6166
6167#. type: Plain text
32747aa9 6168#: doc/guix.texi:2487
544cab3d
LC
6169msgid "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."
6170msgstr ""
6171
6172#. type: Plain text
32747aa9 6173#: doc/guix.texi:2495
544cab3d
LC
6174msgid "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):"
6175msgstr ""
6176
6177#. type: example
32747aa9 6178#: doc/guix.texi:2498
544cab3d 6179#, no-wrap
32747aa9
LC
6180msgid "guix install emacs-guix\n"
6181msgstr "guix install emacs-guix\n"
544cab3d
LC
6182
6183#. type: Plain text
32747aa9 6184#: doc/guix.texi:2519
544cab3d
LC
6185msgid "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."
6186msgstr ""
6187
6188#. type: Plain text
32747aa9 6189#: doc/guix.texi:2524
544cab3d
LC
6190msgid "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}."
6191msgstr ""
6192
6193#. type: Plain text
32747aa9 6194#: doc/guix.texi:2532
544cab3d
LC
6195msgid "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."
6196msgstr ""
6197
6198#. type: Plain text
32747aa9 6199#: doc/guix.texi:2536
544cab3d
LC
6200msgid "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}."
6201msgstr ""
6202
6203#. type: cindex
32747aa9 6204#: doc/guix.texi:2537 doc/guix.texi:2616
544cab3d
LC
6205#, no-wrap
6206msgid "transactions"
6207msgstr ""
6208
6209#. type: Plain text
32747aa9 6210#: doc/guix.texi:2544
544cab3d
LC
6211msgid "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."
6212msgstr ""
6213
6214#. type: Plain text
32747aa9 6215#: doc/guix.texi:2552
544cab3d
LC
6216msgid "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})."
6217msgstr ""
6218
6219#. type: Plain text
32747aa9 6220#: doc/guix.texi:2559
544cab3d
LC
6221msgid "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."
6222msgstr ""
6223
6224#. type: cindex
32747aa9 6225#: doc/guix.texi:2560 doc/guix.texi:4087
544cab3d
LC
6226#, no-wrap
6227msgid "reproducibility"
6228msgstr ""
6229
6230#. type: Plain text
32747aa9 6231#: doc/guix.texi:2572
544cab3d
LC
6232msgid "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})."
6233msgstr ""
6234
6235#. type: Plain text
32747aa9 6236#: doc/guix.texi:2583
544cab3d
LC
6237msgid "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})."
6238msgstr ""
6239
6240#. type: Plain text
32747aa9 6241#: doc/guix.texi:2589
544cab3d
LC
6242msgid "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})."
6243msgstr ""
6244
6245#. type: cindex
32747aa9 6246#: doc/guix.texi:2590
544cab3d
LC
6247#, no-wrap
6248msgid "replication, of software environments"
6249msgstr ""
6250
6251#. type: cindex
32747aa9 6252#: doc/guix.texi:2591
544cab3d
LC
6253#, no-wrap
6254msgid "provenance tracking, of software artifacts"
6255msgstr ""
6256
6257#. type: Plain text
32747aa9 6258#: doc/guix.texi:2598
544cab3d
LC
6259msgid "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."
6260msgstr ""
6261
6262#. type: section
32747aa9 6263#: doc/guix.texi:2600
544cab3d
LC
6264#, no-wrap
6265msgid "Invoking @command{guix package}"
6266msgstr ""
6267
6268#. type: cindex
32747aa9 6269#: doc/guix.texi:2602
544cab3d
LC
6270#, no-wrap
6271msgid "installing packages"
6272msgstr ""
6273
6274#. type: cindex
32747aa9 6275#: doc/guix.texi:2603
544cab3d
LC
6276#, no-wrap
6277msgid "removing packages"
6278msgstr ""
6279
6280#. type: cindex
32747aa9 6281#: doc/guix.texi:2604
544cab3d
LC
6282#, no-wrap
6283msgid "package installation"
6284msgstr ""
6285
6286#. type: cindex
32747aa9 6287#: doc/guix.texi:2605
544cab3d
LC
6288#, no-wrap
6289msgid "package removal"
6290msgstr ""
6291
6292#. type: Plain text
32747aa9 6293#: doc/guix.texi:2611
544cab3d
LC
6294msgid "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:"
6295msgstr ""
6296
6297#. type: example
32747aa9 6298#: doc/guix.texi:2614
544cab3d
LC
6299#, no-wrap
6300msgid "guix package @var{options}\n"
6301msgstr ""
6302
6303#. type: Plain text
32747aa9 6304#: doc/guix.texi:2621
544cab3d
LC
6305msgid "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."
6306msgstr ""
6307
6308#. type: Plain text
32747aa9 6309#: doc/guix.texi:2624
544cab3d
LC
6310msgid "For example, to remove @code{lua} and install @code{guile} and @code{guile-cairo} in a single transaction:"
6311msgstr ""
6312
6313#. type: example
32747aa9 6314#: doc/guix.texi:2627
544cab3d
LC
6315#, no-wrap
6316msgid "guix package -r lua -i guile guile-cairo\n"
6317msgstr ""
6318
32747aa9
LC
6319#. type: cindex
6320#: doc/guix.texi:2629
6321#, no-wrap
6322msgid "aliases, for @command{guix package}"
6323msgstr ""
6324
544cab3d 6325#. type: Plain text
32747aa9
LC
6326#: doc/guix.texi:2631
6327msgid "For your convenience, we also provide the following aliases:"
6328msgstr ""
6329
6330#. type: itemize
6331#: doc/guix.texi:2635
6332msgid "@command{guix search} is an alias for @command{guix package -s},"
6333msgstr ""
6334
6335#. type: itemize
6336#: doc/guix.texi:2637
6337msgid "@command{guix install} is an alias for @command{guix package -i},"
6338msgstr ""
6339
6340#. type: itemize
6341#: doc/guix.texi:2639
6342msgid "@command{guix remove} is an alias for @command{guix package -r},"
6343msgstr ""
6344
6345#. type: itemize
6346#: doc/guix.texi:2641
6347msgid "and @command{guix upgrade} is an alias for @command{guix package -u}."
6348msgstr ""
6349
6350#. type: Plain text
6351#: doc/guix.texi:2646
6352msgid "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."
6353msgstr ""
6354
6355#. type: Plain text
6356#: doc/guix.texi:2651
544cab3d
LC
6357msgid "@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}})."
6358msgstr ""
6359
6360#. type: cindex
32747aa9 6361#: doc/guix.texi:2652
544cab3d
LC
6362#, no-wrap
6363msgid "profile"
6364msgstr ""
6365
6366#. type: Plain text
32747aa9 6367#: doc/guix.texi:2658
544cab3d
LC
6368msgid "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 @code{PATH} environment variable, and so on."
6369msgstr ""
6370
6371#. type: cindex
32747aa9 6372#: doc/guix.texi:2658 doc/guix.texi:2855
544cab3d
LC
6373#, no-wrap
6374msgid "search paths"
6375msgstr ""
6376
6377#. type: Plain text
32747aa9
LC
6378#: doc/guix.texi:2663
6379msgid "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:"
544cab3d
LC
6380msgstr ""
6381
6382#. type: example
32747aa9 6383#: doc/guix.texi:2667
544cab3d
LC
6384#, no-wrap
6385msgid ""
6386"GUIX_PROFILE=\"$HOME/.guix-profile\" ; \\\n"
6387"source \"$HOME/.guix-profile/etc/profile\"\n"
6388msgstr ""
6389
6390#. type: Plain text
32747aa9 6391#: doc/guix.texi:2678
544cab3d
LC
6392msgid "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 @code{--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}."
6393msgstr ""
6394
6395#. type: Plain text
32747aa9 6396#: doc/guix.texi:2680
544cab3d
LC
6397msgid "The @var{options} can be among the following:"
6398msgstr ""
6399
6400#. type: item
32747aa9 6401#: doc/guix.texi:2683
544cab3d
LC
6402#, no-wrap
6403msgid "--install=@var{package} @dots{}"
6404msgstr ""
6405
6406#. type: itemx
32747aa9 6407#: doc/guix.texi:2684
544cab3d
LC
6408#, no-wrap
6409msgid "-i @var{package} @dots{}"
6410msgstr ""
6411
6412#. type: table
32747aa9 6413#: doc/guix.texi:2686
544cab3d
LC
6414msgid "Install the specified @var{package}s."
6415msgstr ""
6416
6417#. type: table
32747aa9 6418#: doc/guix.texi:2691
544cab3d
LC
6419msgid "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.)"
6420msgstr ""
6421
6422#. type: table
32747aa9 6423#: doc/guix.texi:2699
544cab3d
LC
6424msgid "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})."
6425msgstr ""
6426
6427#. type: cindex
32747aa9 6428#: doc/guix.texi:2700
544cab3d
LC
6429#, no-wrap
6430msgid "propagated inputs"
6431msgstr ""
6432
6433#. type: table
32747aa9 6434#: doc/guix.texi:2706
544cab3d
LC
6435msgid "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)."
6436msgstr ""
6437
6438#. type: anchor{#1}
32747aa9 6439#: doc/guix.texi:2713
544cab3d
LC
6440msgid "package-cmd-propagated-inputs"
6441msgstr ""
6442
6443#. type: table
32747aa9 6444#: doc/guix.texi:2713
544cab3d
LC
6445msgid "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."
6446msgstr ""
6447
6448#. type: table
32747aa9 6449#: doc/guix.texi:2718
544cab3d
LC
6450msgid "Besides, packages sometimes rely on the definition of environment variables for their search paths (see explanation of @code{--search-paths} below). Any missing or possibly incorrect environment variable definitions are reported here."
6451msgstr ""
6452
6453#. type: item
32747aa9 6454#: doc/guix.texi:2719
544cab3d
LC
6455#, no-wrap
6456msgid "--install-from-expression=@var{exp}"
6457msgstr ""
6458
6459#. type: itemx
32747aa9 6460#: doc/guix.texi:2720
544cab3d
LC
6461#, no-wrap
6462msgid "-e @var{exp}"
6463msgstr ""
6464
6465#. type: table
32747aa9 6466#: doc/guix.texi:2722
544cab3d
LC
6467msgid "Install the package @var{exp} evaluates to."
6468msgstr ""
6469
6470#. type: table
32747aa9 6471#: doc/guix.texi:2727
544cab3d
LC
6472msgid "@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)}."
6473msgstr ""
6474
6475#. type: table
32747aa9 6476#: doc/guix.texi:2731
544cab3d
LC
6477msgid "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."
6478msgstr ""
6479
6480#. type: item
32747aa9 6481#: doc/guix.texi:2732
544cab3d
LC
6482#, no-wrap
6483msgid "--install-from-file=@var{file}"
6484msgstr ""
6485
6486#. type: itemx
32747aa9 6487#: doc/guix.texi:2733 doc/guix.texi:7983
544cab3d
LC
6488#, no-wrap
6489msgid "-f @var{file}"
6490msgstr ""
6491
6492#. type: table
32747aa9 6493#: doc/guix.texi:2735
544cab3d
LC
6494msgid "Install the package that the code within @var{file} evaluates to."
6495msgstr ""
6496
6497#. type: table
32747aa9 6498#: doc/guix.texi:2738 doc/guix.texi:4524
544cab3d
LC
6499msgid "As an example, @var{file} might contain a definition like this (@pxref{Defining Packages}):"
6500msgstr ""
6501
6502#. type: example
32747aa9 6503#: doc/guix.texi:2741 doc/guix.texi:7992
544cab3d
LC
6504#, no-wrap
6505msgid "@verbatiminclude package-hello.scm\n"
6506msgstr ""
6507
6508#. type: table
32747aa9 6509#: doc/guix.texi:2747
544cab3d
LC
6510msgid "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})."
6511msgstr ""
6512
6513#. type: item
32747aa9 6514#: doc/guix.texi:2748
544cab3d
LC
6515#, no-wrap
6516msgid "--remove=@var{package} @dots{}"
6517msgstr ""
6518
6519#. type: itemx
32747aa9 6520#: doc/guix.texi:2749
544cab3d
LC
6521#, no-wrap
6522msgid "-r @var{package} @dots{}"
6523msgstr ""
6524
6525#. type: table
32747aa9 6526#: doc/guix.texi:2751
544cab3d
LC
6527msgid "Remove the specified @var{package}s."
6528msgstr ""
6529
6530#. type: table
32747aa9 6531#: doc/guix.texi:2756
544cab3d
LC
6532msgid "As for @code{--install}, each @var{package} may specify a version number and/or output name in addition to the package name. For instance, @code{-r glibc:debug} would remove the @code{debug} output of @code{glibc}."
6533msgstr ""
6534
6535#. type: item
32747aa9 6536#: doc/guix.texi:2757
544cab3d
LC
6537#, no-wrap
6538msgid "--upgrade[=@var{regexp} @dots{}]"
6539msgstr ""
6540
6541#. type: itemx
32747aa9 6542#: doc/guix.texi:2758
544cab3d
LC
6543#, no-wrap
6544msgid "-u [@var{regexp} @dots{}]"
6545msgstr ""
6546
6547#. type: cindex
32747aa9 6548#: doc/guix.texi:2759
544cab3d
LC
6549#, no-wrap
6550msgid "upgrading packages"
6551msgstr ""
6552
6553#. type: table
32747aa9 6554#: doc/guix.texi:2763
544cab3d
LC
6555msgid "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 @code{--do-not-upgrade} option below."
6556msgstr ""
6557
6558#. type: table
32747aa9 6559#: doc/guix.texi:2768
544cab3d
LC
6560msgid "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})."
6561msgstr ""
6562
6563#. type: item
32747aa9 6564#: doc/guix.texi:2769
544cab3d
LC
6565#, no-wrap
6566msgid "--do-not-upgrade[=@var{regexp} @dots{}]"
6567msgstr ""
6568
6569#. type: table
32747aa9 6570#: doc/guix.texi:2774
544cab3d
LC
6571msgid "When used together with the @code{--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'':"
6572msgstr ""
6573
6574#. type: example
32747aa9 6575#: doc/guix.texi:2777
544cab3d
LC
6576#, no-wrap
6577msgid "$ guix package --upgrade . --do-not-upgrade emacs\n"
6578msgstr ""
6579
6580#. type: anchor{#1}
32747aa9 6581#: doc/guix.texi:2779
544cab3d
LC
6582#, no-wrap
6583msgid "profile-manifest"
6584msgstr ""
6585
6586#. type: item
32747aa9
LC
6587#: doc/guix.texi:2779 doc/guix.texi:4529 doc/guix.texi:4870 doc/guix.texi:8916
6588#: doc/guix.texi:10099
544cab3d
LC
6589#, no-wrap
6590msgid "--manifest=@var{file}"
6591msgstr ""
6592
6593#. type: itemx
32747aa9 6594#: doc/guix.texi:2780 doc/guix.texi:4530 doc/guix.texi:4871 doc/guix.texi:8917
544cab3d
LC
6595#, no-wrap
6596msgid "-m @var{file}"
6597msgstr ""
6598
6599#. type: cindex
32747aa9 6600#: doc/guix.texi:2781
544cab3d
LC
6601#, no-wrap
6602msgid "profile declaration"
6603msgstr ""
6604
6605#. type: cindex
32747aa9 6606#: doc/guix.texi:2782
544cab3d
LC
6607#, no-wrap
6608msgid "profile manifest"
6609msgstr ""
6610
6611#. type: table
32747aa9 6612#: doc/guix.texi:2785
544cab3d
LC
6613msgid "Create a new generation of the profile from the manifest object returned by the Scheme code in @var{file}."
6614msgstr ""
6615
6616#. type: table
32747aa9 6617#: doc/guix.texi:2791
544cab3d
LC
6618msgid "This allows you to @emph{declare} the profile's contents rather than constructing it through a sequence of @code{--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."
6619msgstr ""
6620
6621#. type: table
32747aa9 6622#: doc/guix.texi:2795
544cab3d
LC
6623msgid "@var{file} must return a @dfn{manifest} object, which is roughly a list of packages:"
6624msgstr ""
6625
6626#. type: findex
32747aa9 6627#: doc/guix.texi:2796
544cab3d
LC
6628#, no-wrap
6629msgid "packages->manifest"
6630msgstr ""
6631
6632#. type: example
32747aa9 6633#: doc/guix.texi:2799
544cab3d
LC
6634#, no-wrap
6635msgid ""
6636"(use-package-modules guile emacs)\n"
6637"\n"
6638msgstr ""
6639
6640#. type: example
32747aa9 6641#: doc/guix.texi:2805
544cab3d
LC
6642#, no-wrap
6643msgid ""
6644"(packages->manifest\n"
6645" (list emacs\n"
6646" guile-2.0\n"
6647" ;; Use a specific package output.\n"
6648" (list guile-2.0 \"debug\")))\n"
6649msgstr ""
6650
6651#. type: findex
32747aa9 6652#: doc/guix.texi:2807
544cab3d
LC
6653#, no-wrap
6654msgid "specifications->manifest"
6655msgstr ""
6656
6657#. type: table
32747aa9 6658#: doc/guix.texi:2814
544cab3d
LC
6659msgid "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:"
6660msgstr ""
6661
6662#. type: example
32747aa9 6663#: doc/guix.texi:2818
544cab3d
LC
6664#, no-wrap
6665msgid ""
6666"(specifications->manifest\n"
6667" '(\"emacs\" \"guile@@2.2\" \"guile@@2.2:debug\"))\n"
6668msgstr ""
6669
6670#. type: item
32747aa9 6671#: doc/guix.texi:2820
544cab3d
LC
6672#, no-wrap
6673msgid "--roll-back"
6674msgstr ""
6675
6676#. type: cindex
32747aa9 6677#: doc/guix.texi:2821 doc/guix.texi:24354
544cab3d
LC
6678#, no-wrap
6679msgid "rolling back"
6680msgstr ""
6681
6682#. type: cindex
32747aa9 6683#: doc/guix.texi:2822
544cab3d
LC
6684#, no-wrap
6685msgid "undoing transactions"
6686msgstr ""
6687
6688#. type: cindex
32747aa9 6689#: doc/guix.texi:2823
544cab3d
LC
6690#, no-wrap
6691msgid "transactions, undoing"
6692msgstr ""
6693
6694#. type: table
32747aa9 6695#: doc/guix.texi:2826
544cab3d
LC
6696msgid "Roll back to the previous @dfn{generation} of the profile---i.e., undo the last transaction."
6697msgstr ""
6698
6699#. type: table
32747aa9 6700#: doc/guix.texi:2829
544cab3d
LC
6701msgid "When combined with options such as @code{--install}, roll back occurs before any other actions."
6702msgstr ""
6703
6704#. type: table
32747aa9 6705#: doc/guix.texi:2833
544cab3d
LC
6706msgid "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."
6707msgstr ""
6708
6709#. type: table
32747aa9 6710#: doc/guix.texi:2837
544cab3d
LC
6711msgid "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."
6712msgstr ""
6713
6714#. type: item
32747aa9 6715#: doc/guix.texi:2838
544cab3d
LC
6716#, no-wrap
6717msgid "--switch-generation=@var{pattern}"
6718msgstr ""
6719
6720#. type: itemx
32747aa9 6721#: doc/guix.texi:2839
544cab3d
LC
6722#, no-wrap
6723msgid "-S @var{pattern}"
6724msgstr ""
6725
6726#. type: cindex
32747aa9 6727#: doc/guix.texi:2840 doc/guix.texi:3036 doc/guix.texi:24312
544cab3d
LC
6728#, no-wrap
6729msgid "generations"
6730msgstr ""
6731
6732#. type: table
32747aa9 6733#: doc/guix.texi:2842
544cab3d
LC
6734msgid "Switch to a particular generation defined by @var{pattern}."
6735msgstr ""
6736
6737#. type: table
32747aa9 6738#: doc/guix.texi:2848
544cab3d
LC
6739msgid "@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 @code{--roll-back}, use @code{--switch-generation=+1}."
6740msgstr ""
6741
6742#. type: table
32747aa9 6743#: doc/guix.texi:2853
544cab3d
LC
6744msgid "The difference between @code{--roll-back} and @code{--switch-generation=-1} is that @code{--switch-generation} will not make a zeroth generation, so if a specified generation does not exist, the current generation will not be changed."
6745msgstr ""
6746
6747#. type: item
32747aa9 6748#: doc/guix.texi:2854
544cab3d
LC
6749#, no-wrap
6750msgid "--search-paths[=@var{kind}]"
6751msgstr ""
6752
6753#. type: table
32747aa9 6754#: doc/guix.texi:2860
544cab3d
LC
6755msgid "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."
6756msgstr ""
6757
6758#. type: table
32747aa9 6759#: doc/guix.texi:2868
544cab3d
LC
6760msgid "For example, GCC needs the @code{CPATH} and @code{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 @code{--search-paths} will suggest setting these variables to @code{@var{profile}/include} and @code{@var{profile}/lib}, respectively."
6761msgstr ""
6762
6763#. type: table
32747aa9 6764#: doc/guix.texi:2871
544cab3d
LC
6765msgid "The typical use case is to define these environment variables in the shell:"
6766msgstr ""
6767
6768#. type: example
32747aa9 6769#: doc/guix.texi:2874
544cab3d
LC
6770#, no-wrap
6771msgid "$ eval `guix package --search-paths`\n"
6772msgstr ""
6773
6774#. type: table
32747aa9 6775#: doc/guix.texi:2880
544cab3d
LC
6776msgid "@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}."
6777msgstr ""
6778
6779#. type: table
32747aa9 6780#: doc/guix.texi:2883
544cab3d
LC
6781msgid "This option can also be used to compute the @emph{combined} search paths of several profiles. Consider this example:"
6782msgstr ""
6783
6784#. type: example
32747aa9 6785#: doc/guix.texi:2888
544cab3d
LC
6786#, no-wrap
6787msgid ""
6788"$ guix package -p foo -i guile\n"
6789"$ guix package -p bar -i guile-json\n"
6790"$ guix package -p foo -p bar --search-paths\n"
6791msgstr ""
6792
6793#. type: table
32747aa9 6794#: doc/guix.texi:2893
544cab3d
LC
6795msgid "The last command above reports about the @code{GUILE_LOAD_PATH} variable, even though, taken individually, neither @file{foo} nor @file{bar} would lead to that recommendation."
6796msgstr ""
6797
6798#. type: item
32747aa9 6799#: doc/guix.texi:2895 doc/guix.texi:3713 doc/guix.texi:4160
544cab3d
LC
6800#, no-wrap
6801msgid "--profile=@var{profile}"
6802msgstr ""
6803
6804#. type: itemx
32747aa9 6805#: doc/guix.texi:2896 doc/guix.texi:3714 doc/guix.texi:4161
544cab3d
LC
6806#, no-wrap
6807msgid "-p @var{profile}"
6808msgstr ""
6809
6810#. type: table
32747aa9 6811#: doc/guix.texi:2898
544cab3d
LC
6812msgid "Use @var{profile} instead of the user's default profile."
6813msgstr ""
6814
6815#. type: cindex
32747aa9 6816#: doc/guix.texi:2899
544cab3d
LC
6817#, no-wrap
6818msgid "collisions, in a profile"
6819msgstr ""
6820
6821#. type: cindex
32747aa9 6822#: doc/guix.texi:2900
544cab3d
LC
6823#, no-wrap
6824msgid "colliding packages in profiles"
6825msgstr ""
6826
6827#. type: cindex
32747aa9 6828#: doc/guix.texi:2901
544cab3d
LC
6829#, no-wrap
6830msgid "profile collisions"
6831msgstr ""
6832
6833#. type: item
32747aa9 6834#: doc/guix.texi:2902
544cab3d
LC
6835#, no-wrap
6836msgid "--allow-collisions"
6837msgstr ""
6838
6839#. type: table
32747aa9 6840#: doc/guix.texi:2904
544cab3d
LC
6841msgid "Allow colliding packages in the new profile. Use at your own risk!"
6842msgstr ""
6843
6844#. type: table
32747aa9 6845#: doc/guix.texi:2908
544cab3d
LC
6846msgid "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."
6847msgstr ""
6848
6849#. type: item
32747aa9 6850#: doc/guix.texi:2909 doc/guix.texi:3730 doc/guix.texi:4944
544cab3d
LC
6851#, no-wrap
6852msgid "--bootstrap"
6853msgstr ""
6854
6855#. type: table
32747aa9 6856#: doc/guix.texi:2912
544cab3d
LC
6857msgid "Use the bootstrap Guile to build the profile. This option is only useful to distribution developers."
6858msgstr ""
6859
6860#. type: Plain text
32747aa9 6861#: doc/guix.texi:2918
544cab3d
LC
6862msgid "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:"
6863msgstr ""
6864
6865#. type: item
32747aa9 6866#: doc/guix.texi:2921
544cab3d
LC
6867#, no-wrap
6868msgid "--search=@var{regexp}"
6869msgstr ""
6870
6871#. type: itemx
32747aa9 6872#: doc/guix.texi:2922
544cab3d
LC
6873#, no-wrap
6874msgid "-s @var{regexp}"
6875msgstr ""
6876
6877#. type: cindex
32747aa9 6878#: doc/guix.texi:2923
544cab3d
LC
6879#, no-wrap
6880msgid "searching for packages"
6881msgstr ""
6882
6883#. type: table
32747aa9 6884#: doc/guix.texi:2929
544cab3d
LC
6885msgid "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})."
6886msgstr ""
6887
6888#. type: table
32747aa9 6889#: doc/guix.texi:2932
544cab3d
LC
6890msgid "This allows specific fields to be extracted using the @command{recsel} command, for instance:"
6891msgstr ""
6892
6893#. type: example
32747aa9 6894#: doc/guix.texi:2938
544cab3d
LC
6895#, no-wrap
6896msgid ""
6897"$ guix package -s malloc | recsel -p name,version,relevance\n"
6898"name: jemalloc\n"
6899"version: 4.5.0\n"
6900"relevance: 6\n"
6901"\n"
6902msgstr ""
6903
6904#. type: example
32747aa9 6905#: doc/guix.texi:2942
544cab3d
LC
6906#, no-wrap
6907msgid ""
6908"name: glibc\n"
6909"version: 2.25\n"
6910"relevance: 1\n"
6911"\n"
6912msgstr ""
6913
6914#. type: example
32747aa9 6915#: doc/guix.texi:2946
544cab3d
LC
6916#, no-wrap
6917msgid ""
6918"name: libgc\n"
6919"version: 7.6.0\n"
6920"relevance: 1\n"
6921msgstr ""
6922
6923#. type: table
32747aa9 6924#: doc/guix.texi:2950
544cab3d
LC
6925msgid "Similarly, to show the name of all the packages available under the terms of the GNU@tie{}LGPL version 3:"
6926msgstr ""
6927
6928#. type: example
32747aa9 6929#: doc/guix.texi:2954
544cab3d
LC
6930#, no-wrap
6931msgid ""
6932"$ guix package -s \"\" | recsel -p name -e 'license ~ \"LGPL 3\"'\n"
6933"name: elfutils\n"
6934"\n"
6935msgstr ""
6936
6937#. type: example
32747aa9 6938#: doc/guix.texi:2957
544cab3d
LC
6939#, no-wrap
6940msgid ""
6941"name: gmp\n"
6942"@dots{}\n"
6943msgstr ""
6944
6945#. type: table
32747aa9
LC
6946#: doc/guix.texi:2963
6947msgid "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):"
544cab3d
LC
6948msgstr ""
6949
6950#. type: example
32747aa9 6951#: doc/guix.texi:2968
544cab3d
LC
6952#, no-wrap
6953msgid ""
32747aa9 6954"$ guix search '\\<board\\>' game | recsel -p name\n"
544cab3d
LC
6955"name: gnubg\n"
6956"@dots{}\n"
6957msgstr ""
6958
6959#. type: table
32747aa9 6960#: doc/guix.texi:2974
544cab3d
LC
6961msgid "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."
6962msgstr ""
6963
6964#. type: table
32747aa9 6965#: doc/guix.texi:2978
544cab3d
LC
6966msgid "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:"
6967msgstr ""
6968
6969#. type: example
32747aa9 6970#: doc/guix.texi:2982
544cab3d
LC
6971#, no-wrap
6972msgid ""
32747aa9 6973"$ guix search crypto library | \\\n"
544cab3d
LC
6974" recsel -e '! (name ~ \"^(ghc|perl|python|ruby)\")' -p name,synopsis\n"
6975msgstr ""
6976
6977#. type: table
32747aa9 6978#: doc/guix.texi:2987
544cab3d
LC
6979msgid "@xref{Selection Expressions,,, recutils, GNU recutils manual}, for more information on @dfn{selection expressions} for @code{recsel -e}."
6980msgstr ""
6981
6982#. type: item
32747aa9 6983#: doc/guix.texi:2988
544cab3d
LC
6984#, no-wrap
6985msgid "--show=@var{package}"
6986msgstr ""
6987
6988#. type: table
32747aa9 6989#: doc/guix.texi:2992
544cab3d
LC
6990msgid "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})."
6991msgstr ""
6992
6993#. type: example
32747aa9 6994#: doc/guix.texi:2997
544cab3d
LC
6995#, no-wrap
6996msgid ""
6997"$ guix package --show=python | recsel -p name,version\n"
6998"name: python\n"
6999"version: 2.7.6\n"
7000"\n"
7001msgstr ""
7002
7003#. type: example
32747aa9 7004#: doc/guix.texi:3000
544cab3d
LC
7005#, no-wrap
7006msgid ""
7007"name: python\n"
7008"version: 3.3.5\n"
7009msgstr ""
7010
7011#. type: table
32747aa9 7012#: doc/guix.texi:3004
544cab3d
LC
7013msgid "You may also specify the full name of a package to only get details about a specific version of it:"
7014msgstr ""
7015
7016#. type: example
32747aa9 7017#: doc/guix.texi:3008
544cab3d
LC
7018#, no-wrap
7019msgid ""
7020"$ guix package --show=python@@3.4 | recsel -p name,version\n"
7021"name: python\n"
7022"version: 3.4.3\n"
7023msgstr ""
7024
7025#. type: item
32747aa9 7026#: doc/guix.texi:3012
544cab3d
LC
7027#, no-wrap
7028msgid "--list-installed[=@var{regexp}]"
7029msgstr ""
7030
7031#. type: itemx
32747aa9 7032#: doc/guix.texi:3013
544cab3d
LC
7033#, no-wrap
7034msgid "-I [@var{regexp}]"
7035msgstr ""
7036
7037#. type: table
32747aa9 7038#: doc/guix.texi:3017
544cab3d
LC
7039msgid "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}."
7040msgstr ""
7041
7042#. type: table
32747aa9 7043#: doc/guix.texi:3023
544cab3d
LC
7044msgid "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."
7045msgstr ""
7046
7047#. type: item
32747aa9 7048#: doc/guix.texi:3024
544cab3d
LC
7049#, no-wrap
7050msgid "--list-available[=@var{regexp}]"
7051msgstr ""
7052
7053#. type: itemx
32747aa9 7054#: doc/guix.texi:3025
544cab3d
LC
7055#, no-wrap
7056msgid "-A [@var{regexp}]"
7057msgstr ""
7058
7059#. type: table
32747aa9 7060#: doc/guix.texi:3029
544cab3d
LC
7061msgid "List packages currently available in the distribution for this system (@pxref{GNU Distribution}). When @var{regexp} is specified, list only installed packages whose name matches @var{regexp}."
7062msgstr ""
7063
7064#. type: table
32747aa9 7065#: doc/guix.texi:3033
544cab3d
LC
7066msgid "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."
7067msgstr ""
7068
7069#. type: item
32747aa9 7070#: doc/guix.texi:3034 doc/guix.texi:3703
544cab3d
LC
7071#, no-wrap
7072msgid "--list-generations[=@var{pattern}]"
7073msgstr ""
7074
7075#. type: itemx
32747aa9 7076#: doc/guix.texi:3035 doc/guix.texi:3704
544cab3d
LC
7077#, no-wrap
7078msgid "-l [@var{pattern}]"
7079msgstr ""
7080
7081#. type: table
32747aa9 7082#: doc/guix.texi:3041
544cab3d
LC
7083msgid "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."
7084msgstr ""
7085
7086#. type: table
32747aa9 7087#: doc/guix.texi:3046
544cab3d
LC
7088msgid "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."
7089msgstr ""
7090
7091#. type: table
32747aa9 7092#: doc/guix.texi:3049
544cab3d
LC
7093msgid "When @var{pattern} is used, the command returns only matching generations. Valid patterns include:"
7094msgstr ""
7095
7096#. type: item
32747aa9 7097#: doc/guix.texi:3051
544cab3d
LC
7098#, no-wrap
7099msgid "@emph{Integers and comma-separated integers}. Both patterns denote"
7100msgstr ""
7101
7102#. type: itemize
32747aa9 7103#: doc/guix.texi:3054
544cab3d
LC
7104msgid "generation numbers. For instance, @code{--list-generations=1} returns the first one."
7105msgstr ""
7106
7107#. type: itemize
32747aa9 7108#: doc/guix.texi:3057
544cab3d
LC
7109msgid "And @code{--list-generations=1,8,2} outputs three generations in the specified order. Neither spaces nor trailing commas are allowed."
7110msgstr ""
7111
7112#. type: item
32747aa9 7113#: doc/guix.texi:3058
544cab3d
LC
7114#, no-wrap
7115msgid "@emph{Ranges}. @code{--list-generations=2..9} prints the"
7116msgstr ""
7117
7118#. type: itemize
32747aa9 7119#: doc/guix.texi:3061
544cab3d
LC
7120msgid "specified generations and everything in between. Note that the start of a range must be smaller than its end."
7121msgstr ""
7122
7123#. type: itemize
32747aa9 7124#: doc/guix.texi:3065
544cab3d
LC
7125msgid "It is also possible to omit the endpoint. For example, @code{--list-generations=2..}, returns all generations starting from the second one."
7126msgstr ""
7127
7128#. type: item
32747aa9 7129#: doc/guix.texi:3066
544cab3d
LC
7130#, no-wrap
7131msgid "@emph{Durations}. You can also get the last @emph{N}@tie{}days, weeks,"
7132msgstr ""
7133
7134#. type: itemize
32747aa9 7135#: doc/guix.texi:3070
544cab3d
LC
7136msgid "or months by passing an integer along with the first letter of the duration. For example, @code{--list-generations=20d} lists generations that are up to 20 days old."
7137msgstr ""
7138
7139#. type: item
32747aa9 7140#: doc/guix.texi:3072
544cab3d
LC
7141#, no-wrap
7142msgid "--delete-generations[=@var{pattern}]"
7143msgstr ""
7144
7145#. type: itemx
32747aa9 7146#: doc/guix.texi:3073
544cab3d
LC
7147#, no-wrap
7148msgid "-d [@var{pattern}]"
7149msgstr ""
7150
7151#. type: table
32747aa9 7152#: doc/guix.texi:3076
544cab3d
LC
7153msgid "When @var{pattern} is omitted, delete all generations except the current one."
7154msgstr ""
7155
7156#. type: table
32747aa9 7157#: doc/guix.texi:3082
544cab3d
LC
7158msgid "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, @code{--delete-generations=1m} deletes generations that are more than one month old."
7159msgstr ""
7160
7161#. type: table
32747aa9 7162#: doc/guix.texi:3085
544cab3d
LC
7163msgid "If the current generation matches, it is @emph{not} deleted. Also, the zeroth generation is never deleted."
7164msgstr ""
7165
7166#. type: table
32747aa9 7167#: doc/guix.texi:3088
544cab3d
LC
7168msgid "Note that deleting generations prevents rolling back to them. Consequently, this command must be used with care."
7169msgstr ""
7170
7171#. type: Plain text
32747aa9 7172#: doc/guix.texi:3099
544cab3d
LC
7173msgid "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 @code{GUIX_PACKAGE_PATH} (@pxref{Defining Packages})."
7174msgstr ""
7175
7176#. type: cindex
32747aa9 7177#: doc/guix.texi:3104
544cab3d
LC
7178#, no-wrap
7179msgid "pre-built binaries"
7180msgstr ""
7181
7182#. type: Plain text
32747aa9 7183#: doc/guix.texi:3110
544cab3d
LC
7184msgid "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."
7185msgstr ""
7186
7187#. type: Plain text
32747aa9 7188#: doc/guix.texi:3115
544cab3d
LC
7189msgid "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."
7190msgstr ""
7191
7192#. type: cindex
32747aa9 7193#: doc/guix.texi:3128
544cab3d
LC
7194#, no-wrap
7195msgid "hydra"
7196msgstr ""
7197
7198#. type: cindex
32747aa9 7199#: doc/guix.texi:3129
544cab3d
LC
7200#, no-wrap
7201msgid "build farm"
7202msgstr ""
7203
7204#. type: Plain text
32747aa9 7205#: doc/guix.texi:3139
544cab3d
LC
7206msgid "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})."
7207msgstr ""
7208
7209#. type: Plain text
32747aa9 7210#: doc/guix.texi:3145
544cab3d
LC
7211msgid "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."
7212msgstr ""
7213
7214#. type: Plain text
32747aa9
LC
7215#: doc/guix.texi:3154
7216msgid "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."
544cab3d
LC
7217msgstr ""
7218
7219#. type: cindex
32747aa9 7220#: doc/guix.texi:3158
544cab3d
LC
7221#, no-wrap
7222msgid "security"
7223msgstr ""
7224
7225#. type: cindex
32747aa9 7226#: doc/guix.texi:3160
544cab3d
LC
7227#, no-wrap
7228msgid "access control list (ACL), for substitutes"
7229msgstr ""
7230
7231#. type: cindex
32747aa9 7232#: doc/guix.texi:3161
544cab3d
LC
7233#, no-wrap
7234msgid "ACL (access control list), for substitutes"
7235msgstr ""
7236
7237#. type: Plain text
32747aa9 7238#: doc/guix.texi:3168
544cab3d
LC
7239msgid "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."
7240msgstr ""
7241
7242#. type: Plain text
32747aa9 7243#: doc/guix.texi:3175
544cab3d
LC
7244msgid "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:"
7245msgstr ""
7246
7247#. type: example
32747aa9 7248#: doc/guix.texi:3178
544cab3d
LC
7249#, no-wrap
7250msgid "# guix archive --authorize < @var{prefix}/share/guix/@value{SUBSTITUTE-SERVER}.pub\n"
7251msgstr ""
7252
7253#. type: quotation
32747aa9 7254#: doc/guix.texi:3184
544cab3d
LC
7255msgid "Similarly, the @file{hydra.gnu.org.pub} file contains the public key of an independent build farm also run by the project, reachable at @indicateurl{https://mirror.hydra.gnu.org}."
7256msgstr ""
7257
7258#. type: Plain text
32747aa9 7259#: doc/guix.texi:3188
544cab3d
LC
7260msgid "Once this is in place, the output of a command like @code{guix build} should change from something like:"
7261msgstr ""
7262
7263#. type: example
32747aa9 7264#: doc/guix.texi:3197
544cab3d
LC
7265#, no-wrap
7266msgid ""
7267"$ guix build emacs --dry-run\n"
7268"The following derivations would be built:\n"
7269" /gnu/store/yr7bnx8xwcayd6j95r2clmkdl1qh688w-emacs-24.3.drv\n"
7270" /gnu/store/x8qsh1hlhgjx6cwsjyvybnfv2i37z23w-dbus-1.6.4.tar.gz.drv\n"
7271" /gnu/store/1ixwp12fl950d15h2cj11c73733jay0z-alsa-lib-1.0.27.1.tar.bz2.drv\n"
7272" /gnu/store/nlma1pw0p603fpfiqy7kn4zm105r5dmw-util-linux-2.21.drv\n"
7273"@dots{}\n"
7274msgstr ""
7275
7276#. type: Plain text
32747aa9 7277#: doc/guix.texi:3201
544cab3d
LC
7278msgid "to something like:"
7279msgstr ""
7280
7281#. type: example
32747aa9 7282#: doc/guix.texi:3210
544cab3d
LC
7283#, no-wrap
7284msgid ""
7285"$ guix build emacs --dry-run\n"
7286"112.3 MB would be downloaded:\n"
7287" /gnu/store/pk3n22lbq6ydamyymqkkz7i69wiwjiwi-emacs-24.3\n"
7288" /gnu/store/2ygn4ncnhrpr61rssa6z0d9x22si0va3-libjpeg-8d\n"
7289" /gnu/store/71yz6lgx4dazma9dwn2mcjxaah9w77jq-cairo-1.12.16\n"
7290" /gnu/store/7zdhgp0n1518lvfn8mb96sxqfmvqrl7v-libxrender-0.9.7\n"
7291"@dots{}\n"
7292msgstr ""
7293
7294#. type: Plain text
32747aa9 7295#: doc/guix.texi:3215
544cab3d
LC
7296msgid "This indicates that substitutes from @code{@value{SUBSTITUTE-SERVER}} are usable and will be downloaded, when possible, for future builds."
7297msgstr ""
7298
7299#. type: cindex
32747aa9 7300#: doc/guix.texi:3216
544cab3d
LC
7301#, no-wrap
7302msgid "substitutes, how to disable"
7303msgstr ""
7304
7305#. type: Plain text
32747aa9 7306#: doc/guix.texi:3222
544cab3d
LC
7307msgid "The substitute mechanism can be disabled globally by running @code{guix-daemon} with @code{--no-substitutes} (@pxref{Invoking guix-daemon}). It can also be disabled temporarily by passing the @code{--no-substitutes} option to @command{guix package}, @command{guix build}, and other command-line tools."
7308msgstr ""
7309
7310#. type: cindex
32747aa9 7311#: doc/guix.texi:3226
544cab3d
LC
7312#, no-wrap
7313msgid "digital signatures"
7314msgstr ""
7315
7316#. type: Plain text
32747aa9 7317#: doc/guix.texi:3230
544cab3d
LC
7318msgid "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."
7319msgstr ""
7320
7321#. type: Plain text
32747aa9 7322#: doc/guix.texi:3236
544cab3d
LC
7323msgid "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:"
7324msgstr ""
7325
7326#. type: example
32747aa9 7327#: doc/guix.texi:3239
544cab3d
LC
7328#, no-wrap
7329msgid "--substitute-urls=\"https://a.example.org https://b.example.org\"\n"
7330msgstr ""
7331
7332#. type: Plain text
32747aa9 7333#: doc/guix.texi:3250
544cab3d
LC
7334msgid "If the ACL contains only the key for @code{b.example.org}, and if @code{a.example.org} happens to serve the @emph{exact same} substitutes, then Guix will download substitutes from @code{a.example.org} because it comes first in the list and can be considered a mirror of @code{b.example.org}. In practice, independent build machines usually produce the same binaries, thanks to bit-reproducible builds (see below)."
7335msgstr ""
7336
7337#. type: Plain text
32747aa9 7338#: doc/guix.texi:3257
544cab3d
LC
7339msgid "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.)"
7340msgstr ""
7341
7342#. type: Plain text
32747aa9 7343#: doc/guix.texi:3269
544cab3d
LC
7344msgid "Substitutes are downloaded over HTTP or HTTPS. The @code{http_proxy} environment variable can be set in the environment of @command{guix-daemon} and is honored for downloads of substitutes. Note that the value of @code{http_proxy} in the environment where @command{guix build}, @command{guix package}, and other client commands are run has @emph{absolutely no effect}."
7345msgstr ""
7346
7347#. type: Plain text
32747aa9 7348#: doc/guix.texi:3278
544cab3d
LC
7349msgid "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."
7350msgstr ""
7351
7352#. type: Plain text
32747aa9 7353#: doc/guix.texi:3292
544cab3d
LC
7354msgid "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 @code{--fallback} was given (@pxref{fallback-option,, common build option @code{--fallback}}). Specifically, if @code{--fallback} was omitted, then no local build will be performed, and the derivation is considered to have failed. However, if @code{--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 @code{--fallback} was given."
7355msgstr ""
7356
7357#. type: Plain text
32747aa9 7358#: doc/guix.texi:3297
544cab3d
LC
7359msgid "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."
7360msgstr ""
7361
7362#. type: cindex
32747aa9 7363#: doc/guix.texi:3301
544cab3d
LC
7364#, no-wrap
7365msgid "trust, of pre-built binaries"
7366msgstr ""
7367
7368#. type: Plain text
32747aa9 7369#: doc/guix.texi:3311
544cab3d
LC
7370msgid "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})."
7371msgstr ""
7372
7373#. type: Plain text
32747aa9 7374#: doc/guix.texi:3323
544cab3d
LC
7375msgid "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}})."
7376msgstr ""
7377
7378#. type: Plain text
32747aa9 7379#: doc/guix.texi:3327
544cab3d
LC
7380msgid "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}."
7381msgstr ""
7382
7383#. type: cindex
32747aa9 7384#: doc/guix.texi:3331
544cab3d
LC
7385#, no-wrap
7386msgid "multiple-output packages"
7387msgstr ""
7388
7389#. type: cindex
32747aa9 7390#: doc/guix.texi:3332
544cab3d
LC
7391#, no-wrap
7392msgid "package outputs"
7393msgstr ""
7394
7395#. type: cindex
32747aa9 7396#: doc/guix.texi:3333
544cab3d
LC
7397#, no-wrap
7398msgid "outputs"
7399msgstr ""
7400
7401#. type: Plain text
32747aa9
LC
7402#: doc/guix.texi:3343
7403msgid "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."
544cab3d
LC
7404msgstr ""
7405
7406#. type: Plain text
32747aa9 7407#: doc/guix.texi:3351
544cab3d
LC
7408msgid "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:"
7409msgstr ""
7410
7411#. type: example
32747aa9 7412#: doc/guix.texi:3354
544cab3d 7413#, no-wrap
32747aa9
LC
7414msgid "guix install glib\n"
7415msgstr "guix install glib\n"
544cab3d
LC
7416
7417#. type: item
32747aa9 7418#: doc/guix.texi:3356 doc/guix.texi:25314 doc/guix.texi:25339
544cab3d
LC
7419#, no-wrap
7420msgid "documentation"
7421msgstr ""
7422
7423#. type: Plain text
32747aa9 7424#: doc/guix.texi:3358
544cab3d
LC
7425msgid "The command to install its documentation is:"
7426msgstr ""
7427
7428#. type: example
32747aa9 7429#: doc/guix.texi:3361
544cab3d 7430#, no-wrap
32747aa9 7431msgid "guix install glib:doc\n"
544cab3d
LC
7432msgstr ""
7433
7434#. type: Plain text
32747aa9 7435#: doc/guix.texi:3372
544cab3d
LC
7436msgid "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})."
7437msgstr ""
7438
7439#. type: Plain text
32747aa9 7440#: doc/guix.texi:3380
544cab3d
LC
7441msgid "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})."
7442msgstr ""
7443
7444#. type: section
32747aa9 7445#: doc/guix.texi:3383
544cab3d
LC
7446#, no-wrap
7447msgid "Invoking @command{guix gc}"
7448msgstr ""
7449
7450#. type: cindex
32747aa9 7451#: doc/guix.texi:3385
544cab3d
LC
7452#, no-wrap
7453msgid "garbage collector"
7454msgstr ""
7455
7456#. type: cindex
32747aa9 7457#: doc/guix.texi:3386
544cab3d
LC
7458#, no-wrap
7459msgid "disk space"
7460msgstr ""
7461
7462#. type: Plain text
32747aa9 7463#: doc/guix.texi:3392
544cab3d
LC
7464msgid "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!"
7465msgstr ""
7466
7467#. type: Plain text
32747aa9 7468#: doc/guix.texi:3403
544cab3d
LC
7469msgid "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."
7470msgstr ""
7471
7472#. type: Plain text
32747aa9 7473#: doc/guix.texi:3409
544cab3d
LC
7474msgid "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})."
7475msgstr ""
7476
7477#. type: Plain text
32747aa9 7478#: doc/guix.texi:3413
544cab3d
LC
7479msgid "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:"
7480msgstr ""
7481
7482#. type: example
32747aa9 7483#: doc/guix.texi:3416
544cab3d
LC
7484#, no-wrap
7485msgid "guix gc -F 5G\n"
7486msgstr ""
7487
7488#. type: Plain text
32747aa9 7489#: doc/guix.texi:3425
544cab3d
LC
7490msgid "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."
7491msgstr ""
7492
7493#. type: Plain text
32747aa9 7494#: doc/guix.texi:3431
544cab3d
LC
7495msgid "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 @code{--delete} option), to print garbage-collector information, or for more advanced queries. The garbage collection options are as follows:"
7496msgstr ""
7497
7498#. type: item
32747aa9 7499#: doc/guix.texi:3433
544cab3d
LC
7500#, no-wrap
7501msgid "--collect-garbage[=@var{min}]"
7502msgstr ""
7503
7504#. type: itemx
32747aa9 7505#: doc/guix.texi:3434
544cab3d
LC
7506#, no-wrap
7507msgid "-C [@var{min}]"
7508msgstr ""
7509
7510#. type: table
32747aa9 7511#: doc/guix.texi:3438
544cab3d
LC
7512msgid "Collect garbage---i.e., unreachable @file{/gnu/store} files and sub-directories. This is the default operation when no option is specified."
7513msgstr ""
7514
7515#. type: table
32747aa9 7516#: doc/guix.texi:3443
544cab3d
LC
7517msgid "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})."
7518msgstr ""
7519
7520#. type: table
32747aa9 7521#: doc/guix.texi:3445
544cab3d
LC
7522msgid "When @var{min} is omitted, collect all the garbage."
7523msgstr ""
7524
7525#. type: item
32747aa9 7526#: doc/guix.texi:3446
544cab3d
LC
7527#, no-wrap
7528msgid "--free-space=@var{free}"
7529msgstr ""
7530
7531#. type: itemx
32747aa9 7532#: doc/guix.texi:3447
544cab3d
LC
7533#, no-wrap
7534msgid "-F @var{free}"
7535msgstr ""
7536
7537#. type: table
32747aa9 7538#: doc/guix.texi:3451
544cab3d
LC
7539msgid "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."
7540msgstr ""
7541
7542#. type: table
32747aa9 7543#: doc/guix.texi:3454
544cab3d
LC
7544msgid "When @var{free} or more is already available in @file{/gnu/store}, do nothing and exit immediately."
7545msgstr ""
7546
7547#. type: item
32747aa9 7548#: doc/guix.texi:3455
544cab3d
LC
7549#, no-wrap
7550msgid "--delete-generations[=@var{duration}]"
7551msgstr ""
7552
7553#. type: itemx
32747aa9 7554#: doc/guix.texi:3456
544cab3d
LC
7555#, no-wrap
7556msgid "-d [@var{duration}]"
7557msgstr ""
7558
7559#. type: table
32747aa9 7560#: doc/guix.texi:3460
544cab3d
LC
7561msgid "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}."
7562msgstr ""
7563
7564#. type: table
32747aa9 7565#: doc/guix.texi:3464
544cab3d
LC
7566msgid "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:"
7567msgstr ""
7568
7569#. type: example
32747aa9 7570#: doc/guix.texi:3467
544cab3d
LC
7571#, no-wrap
7572msgid "guix gc -d 2m -F 10G\n"
7573msgstr ""
7574
7575#. type: item
32747aa9 7576#: doc/guix.texi:3469
544cab3d
LC
7577#, no-wrap
7578msgid "--delete"
7579msgstr ""
7580
7581#. type: itemx
32747aa9 7582#: doc/guix.texi:3470
544cab3d
LC
7583#, no-wrap
7584msgid "-D"
7585msgstr ""
7586
7587#. type: table
32747aa9 7588#: doc/guix.texi:3474
544cab3d
LC
7589msgid "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."
7590msgstr ""
7591
7592#. type: item
32747aa9 7593#: doc/guix.texi:3475
544cab3d
LC
7594#, no-wrap
7595msgid "--list-failures"
7596msgstr ""
7597
7598#. type: table
32747aa9 7599#: doc/guix.texi:3477
544cab3d
LC
7600msgid "List store items corresponding to cached build failures."
7601msgstr ""
7602
7603#. type: table
32747aa9 7604#: doc/guix.texi:3481
544cab3d
LC
7605msgid "This prints nothing unless the daemon was started with @option{--cache-failures} (@pxref{Invoking guix-daemon, @option{--cache-failures}})."
7606msgstr ""
7607
7608#. type: item
32747aa9 7609#: doc/guix.texi:3482
544cab3d
LC
7610#, no-wrap
7611msgid "--list-roots"
7612msgstr ""
7613
7614#. type: table
32747aa9 7615#: doc/guix.texi:3485
544cab3d
LC
7616msgid "List the GC roots owned by the user; when run as root, list @emph{all} the GC roots."
7617msgstr ""
7618
7619#. type: item
32747aa9 7620#: doc/guix.texi:3486
544cab3d
LC
7621#, no-wrap
7622msgid "--clear-failures"
7623msgstr ""
7624
7625#. type: table
32747aa9 7626#: doc/guix.texi:3488
544cab3d
LC
7627msgid "Remove the specified store items from the failed-build cache."
7628msgstr ""
7629
7630#. type: table
32747aa9 7631#: doc/guix.texi:3491
544cab3d
LC
7632msgid "Again, this option only makes sense when the daemon is started with @option{--cache-failures}. Otherwise, it does nothing."
7633msgstr ""
7634
7635#. type: item
32747aa9 7636#: doc/guix.texi:3492
544cab3d
LC
7637#, no-wrap
7638msgid "--list-dead"
7639msgstr ""
7640
7641#. type: table
32747aa9 7642#: doc/guix.texi:3495
544cab3d
LC
7643msgid "Show the list of dead files and directories still present in the store---i.e., files and directories no longer reachable from any root."
7644msgstr ""
7645
7646#. type: item
32747aa9 7647#: doc/guix.texi:3496
544cab3d
LC
7648#, no-wrap
7649msgid "--list-live"
7650msgstr ""
7651
7652#. type: table
32747aa9 7653#: doc/guix.texi:3498
544cab3d
LC
7654msgid "Show the list of live store files and directories."
7655msgstr ""
7656
7657#. type: Plain text
32747aa9 7658#: doc/guix.texi:3502
544cab3d
LC
7659msgid "In addition, the references among existing store files can be queried:"
7660msgstr ""
7661
7662#. type: item
32747aa9 7663#: doc/guix.texi:3505
544cab3d
LC
7664#, no-wrap
7665msgid "--references"
7666msgstr ""
7667
7668#. type: itemx
32747aa9 7669#: doc/guix.texi:3506
544cab3d
LC
7670#, no-wrap
7671msgid "--referrers"
7672msgstr ""
7673
7674#. type: cindex
32747aa9 7675#: doc/guix.texi:3507 doc/guix.texi:9355
544cab3d
LC
7676#, no-wrap
7677msgid "package dependencies"
7678msgstr ""
7679
7680#. type: table
32747aa9 7681#: doc/guix.texi:3510
544cab3d
LC
7682msgid "List the references (respectively, the referrers) of store files given as arguments."
7683msgstr ""
7684
7685#. type: item
32747aa9 7686#: doc/guix.texi:3511
544cab3d
LC
7687#, no-wrap
7688msgid "--requisites"
7689msgstr ""
7690
7691#. type: itemx
32747aa9 7692#: doc/guix.texi:3512 doc/guix.texi:4810
544cab3d
LC
7693#, no-wrap
7694msgid "-R"
7695msgstr ""
7696
7697#. type: item
32747aa9 7698#: doc/guix.texi:3513 doc/guix.texi:9231 doc/guix.texi:9259 doc/guix.texi:9327
544cab3d
LC
7699#, no-wrap
7700msgid "closure"
7701msgstr ""
7702
7703#. type: table
32747aa9 7704#: doc/guix.texi:3518
544cab3d
LC
7705msgid "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."
7706msgstr ""
7707
7708#. type: table
32747aa9 7709#: doc/guix.texi:3522
544cab3d
LC
7710msgid "@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."
7711msgstr ""
7712
7713#. type: item
32747aa9 7714#: doc/guix.texi:3523
544cab3d
LC
7715#, no-wrap
7716msgid "--derivers"
7717msgstr ""
7718
7719#. type: item
32747aa9 7720#: doc/guix.texi:3524 doc/guix.texi:4971 doc/guix.texi:9456
544cab3d
LC
7721#, no-wrap
7722msgid "derivation"
7723msgstr ""
7724
7725#. type: table
32747aa9 7726#: doc/guix.texi:3527
544cab3d
LC
7727msgid "Return the derivation(s) leading to the given store items (@pxref{Derivations})."
7728msgstr ""
7729
7730#. type: table
32747aa9 7731#: doc/guix.texi:3529
544cab3d
LC
7732msgid "For example, this command:"
7733msgstr ""
7734
7735#. type: example
32747aa9 7736#: doc/guix.texi:3532
544cab3d
LC
7737#, no-wrap
7738msgid "guix gc --derivers `guix package -I ^emacs$ | cut -f4`\n"
7739msgstr ""
7740
7741#. type: table
32747aa9 7742#: doc/guix.texi:3537
544cab3d
LC
7743msgid "returns the @file{.drv} file(s) leading to the @code{emacs} package installed in your profile."
7744msgstr ""
7745
7746#. type: table
32747aa9 7747#: doc/guix.texi:3541
544cab3d
LC
7748msgid "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."
7749msgstr ""
7750
7751#. type: Plain text
32747aa9 7752#: doc/guix.texi:3545
544cab3d
LC
7753msgid "Lastly, the following options allow you to check the integrity of the store and to control disk usage."
7754msgstr ""
7755
7756#. type: item
32747aa9 7757#: doc/guix.texi:3548
544cab3d
LC
7758#, no-wrap
7759msgid "--verify[=@var{options}]"
7760msgstr ""
7761
7762#. type: cindex
32747aa9 7763#: doc/guix.texi:3549
544cab3d
LC
7764#, no-wrap
7765msgid "integrity, of the store"
7766msgstr ""
7767
7768#. type: cindex
32747aa9 7769#: doc/guix.texi:3550
544cab3d
LC
7770#, no-wrap
7771msgid "integrity checking"
7772msgstr ""
7773
7774#. type: table
32747aa9 7775#: doc/guix.texi:3552
544cab3d
LC
7776msgid "Verify the integrity of the store."
7777msgstr ""
7778
7779#. type: table
32747aa9 7780#: doc/guix.texi:3555
544cab3d
LC
7781msgid "By default, make sure that all the store items marked as valid in the database of the daemon actually exist in @file{/gnu/store}."
7782msgstr ""
7783
7784#. type: table
32747aa9 7785#: doc/guix.texi:3558
544cab3d
LC
7786msgid "When provided, @var{options} must be a comma-separated list containing one or more of @code{contents} and @code{repair}."
7787msgstr ""
7788
7789#. type: table
32747aa9 7790#: doc/guix.texi:3564
544cab3d
LC
7791msgid "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."
7792msgstr ""
7793
7794#. type: cindex
32747aa9 7795#: doc/guix.texi:3565
544cab3d
LC
7796#, no-wrap
7797msgid "repairing the store"
7798msgstr ""
7799
7800#. type: cindex
32747aa9 7801#: doc/guix.texi:3566 doc/guix.texi:8125
544cab3d
LC
7802#, no-wrap
7803msgid "corruption, recovering from"
7804msgstr ""
7805
7806#. type: table
32747aa9 7807#: doc/guix.texi:3574
544cab3d
LC
7808msgid "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})."
7809msgstr ""
7810
7811#. type: item
32747aa9 7812#: doc/guix.texi:3575
544cab3d
LC
7813#, no-wrap
7814msgid "--optimize"
7815msgstr ""
7816
7817#. type: table
32747aa9 7818#: doc/guix.texi:3579
544cab3d
LC
7819msgid "Optimize the store by hard-linking identical files---this is @dfn{deduplication}."
7820msgstr ""
7821
7822#. type: table
32747aa9 7823#: doc/guix.texi:3585
544cab3d
LC
7824msgid "The daemon performs deduplication after each successful build or archive import, unless it was started with @code{--disable-deduplication} (@pxref{Invoking guix-daemon, @code{--disable-deduplication}}). Thus, this option is primarily useful when the daemon was running with @code{--disable-deduplication}."
7825msgstr ""
7826
7827#. type: section
32747aa9 7828#: doc/guix.texi:3589
544cab3d
LC
7829#, no-wrap
7830msgid "Invoking @command{guix pull}"
7831msgstr ""
7832
7833#. type: cindex
32747aa9 7834#: doc/guix.texi:3591
544cab3d
LC
7835#, no-wrap
7836msgid "upgrading Guix"
7837msgstr ""
7838
7839#. type: cindex
32747aa9 7840#: doc/guix.texi:3592
544cab3d
LC
7841#, no-wrap
7842msgid "updating Guix"
7843msgstr ""
7844
7845#. type: command{#1}
32747aa9 7846#: doc/guix.texi:3593
544cab3d
LC
7847#, no-wrap
7848msgid "guix pull"
7849msgstr ""
7850
7851#. type: cindex
32747aa9 7852#: doc/guix.texi:3594
544cab3d
LC
7853#, no-wrap
7854msgid "pull"
7855msgstr ""
7856
7857#. type: Plain text
32747aa9 7858#: doc/guix.texi:3602
544cab3d
LC
7859msgid "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."
7860msgstr ""
7861
7862#. type: Plain text
32747aa9 7863#: doc/guix.texi:3608
544cab3d
LC
7864msgid "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."
7865msgstr ""
7866
7867#. type: Plain text
32747aa9 7868#: doc/guix.texi:3614
544cab3d
LC
7869msgid "Any user can update their Guix copy using @command{guix pull}, and the effect is limited to the user who run @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."
7870msgstr ""
7871
7872#. type: Plain text
32747aa9 7873#: doc/guix.texi:3620
544cab3d
LC
7874msgid "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}):"
7875msgstr ""
7876
7877#. type: example
32747aa9 7878#: doc/guix.texi:3624
544cab3d
LC
7879#, no-wrap
7880msgid ""
7881"export PATH=\"$HOME/.config/guix/current/bin:$PATH\"\n"
7882"export INFOPATH=\"$HOME/.config/guix/current/share/info:$INFOPATH\"\n"
7883msgstr ""
7884
7885#. type: Plain text
32747aa9 7886#: doc/guix.texi:3628
544cab3d
LC
7887msgid "The @code{--list-generations} or @code{-l} option lists past generations produced by @command{guix pull}, along with details about their provenance:"
7888msgstr ""
7889
7890#. type: example
32747aa9 7891#: doc/guix.texi:3636
544cab3d
LC
7892#, no-wrap
7893msgid ""
7894"$ guix pull -l\n"
7895"Generation 1\tJun 10 2018 00:18:18\n"
7896" guix 65956ad\n"
7897" repository URL: https://git.savannah.gnu.org/git/guix.git\n"
7898" branch: origin/master\n"
7899" commit: 65956ad3526ba09e1f7a40722c96c6ef7c0936fe\n"
7900"\n"
7901msgstr ""
7902
7903#. type: example
32747aa9 7904#: doc/guix.texi:3646
544cab3d
LC
7905#, no-wrap
7906msgid ""
7907"Generation 2\tJun 11 2018 11:02:49\n"
7908" guix e0cc7f6\n"
7909" repository URL: https://git.savannah.gnu.org/git/guix.git\n"
7910" branch: origin/master\n"
7911" commit: e0cc7f669bec22c37481dd03a7941c7d11a64f1d\n"
7912" 2 new packages: keepalived, libnfnetlink\n"
7913" 6 packages upgraded: emacs-nix-mode@@2.0.4,\n"
7914" guile2.0-guix@@0.14.0-12.77a1aac, guix@@0.14.0-12.77a1aac,\n"
7915" heimdal@@7.5.0, milkytracker@@1.02.00, nix@@2.0.4\n"
7916"\n"
7917msgstr ""
7918
7919#. type: example
32747aa9 7920#: doc/guix.texi:3654
544cab3d
LC
7921#, no-wrap
7922msgid ""
7923"Generation 3\tJun 13 2018 23:31:07\t(current)\n"
7924" guix 844cc1c\n"
7925" repository URL: https://git.savannah.gnu.org/git/guix.git\n"
7926" branch: origin/master\n"
7927" commit: 844cc1c8f394f03b404c5bb3aee086922373490c\n"
7928" 28 new packages: emacs-helm-ls-git, emacs-helm-mu, @dots{}\n"
7929" 69 packages upgraded: borg@@1.1.6, cheese@@3.28.0, @dots{}\n"
7930msgstr ""
7931
7932#. type: Plain text
32747aa9 7933#: doc/guix.texi:3658
544cab3d
LC
7934msgid "@xref{Invoking guix describe, @command{guix describe}}, for other ways to describe the current status of Guix."
7935msgstr ""
7936
7937#. type: Plain text
32747aa9 7938#: doc/guix.texi:3663
544cab3d
LC
7939msgid "This @code{~/.config/guix/current} profile works like any other profile 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:"
7940msgstr ""
7941
7942#. type: example
32747aa9 7943#: doc/guix.texi:3669
544cab3d
LC
7944#, no-wrap
7945msgid ""
7946"$ guix package -p ~/.config/guix/current --roll-back\n"
7947"switched from generation 3 to 2\n"
7948"$ guix package -p ~/.config/guix/current --delete-generations=1\n"
7949"deleting /var/guix/profiles/per-user/charlie/current-guix-1-link\n"
7950msgstr ""
7951
7952#. type: Plain text
32747aa9 7953#: doc/guix.texi:3673
544cab3d
LC
7954msgid "The @command{guix pull} command is usually invoked with no arguments, but it supports the following options:"
7955msgstr ""
7956
7957#. type: item
32747aa9 7958#: doc/guix.texi:3675
544cab3d
LC
7959#, no-wrap
7960msgid "--url=@var{url}"
7961msgstr ""
7962
7963#. type: itemx
32747aa9 7964#: doc/guix.texi:3676
544cab3d
LC
7965#, no-wrap
7966msgid "--commit=@var{commit}"
7967msgstr ""
7968
7969#. type: itemx
32747aa9 7970#: doc/guix.texi:3677
544cab3d
LC
7971#, no-wrap
7972msgid "--branch=@var{branch}"
7973msgstr ""
7974
7975#. type: table
32747aa9
LC
7976#: doc/guix.texi:3681
7977msgid "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}."
544cab3d
LC
7978msgstr ""
7979
7980#. type: cindex
32747aa9 7981#: doc/guix.texi:3682 doc/guix.texi:3747
544cab3d
LC
7982#, no-wrap
7983msgid "@file{channels.scm}, configuration file"
7984msgstr ""
7985
7986#. type: cindex
32747aa9 7987#: doc/guix.texi:3683 doc/guix.texi:3748
544cab3d
LC
7988#, no-wrap
7989msgid "configuration file for channels"
7990msgstr ""
7991
7992#. type: table
32747aa9 7993#: doc/guix.texi:3687
544cab3d
LC
7994msgid "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)."
7995msgstr ""
7996
7997#. type: item
32747aa9 7998#: doc/guix.texi:3688
544cab3d
LC
7999#, no-wrap
8000msgid "--channels=@var{file}"
8001msgstr ""
8002
8003#. type: itemx
32747aa9 8004#: doc/guix.texi:3689
544cab3d
LC
8005#, no-wrap
8006msgid "-C @var{file}"
8007msgstr ""
8008
8009#. type: table
32747aa9 8010#: doc/guix.texi:3694
544cab3d
LC
8011msgid "Read the list of channels from @var{file} instead of @file{~/.config/guix/channels.scm}. @var{file} must contain Scheme code that evaluates to a list of channel objects. @xref{Channels}, for more information."
8012msgstr ""
8013
32747aa9
LC
8014#. type: item
8015#: doc/guix.texi:3695
8016#, no-wrap
8017msgid "--news"
8018msgstr ""
8019
8020#. type: itemx
8021#: doc/guix.texi:3696 doc/guix.texi:4608
8022#, no-wrap
8023msgid "-N"
8024msgstr ""
8025
8026#. type: table
8027#: doc/guix.texi:3698
8028msgid "Display the list of packages added or upgraded since the previous generation."
8029msgstr ""
8030
8031#. type: table
8032#: doc/guix.texi:3702
8033msgid "This is the same information 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)."
8034msgstr ""
8035
544cab3d 8036#. type: table
32747aa9 8037#: doc/guix.texi:3709
544cab3d
LC
8038msgid "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})."
8039msgstr ""
8040
8041#. type: table
32747aa9 8042#: doc/guix.texi:3712
544cab3d
LC
8043msgid "@xref{Invoking guix describe}, for a way to display information about the current generation only."
8044msgstr ""
8045
8046#. type: table
32747aa9 8047#: doc/guix.texi:3716
544cab3d
LC
8048msgid "Use @var{profile} instead of @file{~/.config/guix/current}."
8049msgstr ""
8050
8051#. type: item
32747aa9 8052#: doc/guix.texi:3717 doc/guix.texi:7701
544cab3d
LC
8053#, no-wrap
8054msgid "--dry-run"
8055msgstr ""
8056
8057#. type: itemx
32747aa9 8058#: doc/guix.texi:3718 doc/guix.texi:7702
544cab3d
LC
8059#, no-wrap
8060msgid "-n"
8061msgstr ""
8062
8063#. type: table
32747aa9 8064#: doc/guix.texi:3721
544cab3d
LC
8065msgid "Show which channel commit(s) would be used and what would be built or substituted but do not actually do it."
8066msgstr ""
8067
8068#. type: itemx
32747aa9
LC
8069#: doc/guix.texi:3723 doc/guix.texi:4591 doc/guix.texi:4884 doc/guix.texi:8067
8070#: doc/guix.texi:9345 doc/guix.texi:9544 doc/guix.texi:10094
8071#: doc/guix.texi:24556
544cab3d
LC
8072#, no-wrap
8073msgid "-s @var{system}"
8074msgstr ""
8075
8076#. type: table
32747aa9 8077#: doc/guix.texi:3726 doc/guix.texi:4887
544cab3d
LC
8078msgid "Attempt to build for @var{system}---e.g., @code{i686-linux}---instead of the system type of the build host."
8079msgstr ""
8080
8081#. type: item
32747aa9 8082#: doc/guix.texi:3727 doc/guix.texi:9902
544cab3d
LC
8083#, no-wrap
8084msgid "--verbose"
8085msgstr ""
8086
8087#. type: table
32747aa9 8088#: doc/guix.texi:3729
544cab3d
LC
8089msgid "Produce verbose output, writing build logs to the standard error output."
8090msgstr ""
8091
8092#. type: table
32747aa9 8093#: doc/guix.texi:3733
544cab3d
LC
8094msgid "Use the bootstrap Guile to build the latest Guix. This option is only useful to Guix developers."
8095msgstr ""
8096
8097#. type: Plain text
32747aa9 8098#: doc/guix.texi:3739
544cab3d
LC
8099msgid "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."
8100msgstr ""
8101
8102#. type: Plain text
32747aa9 8103#: doc/guix.texi:3742
544cab3d
LC
8104msgid "In addition, @command{guix pull} supports all the common build options (@pxref{Common Build Options})."
8105msgstr ""
8106
8107#. type: item
32747aa9 8108#: doc/guix.texi:3746 doc/guix.texi:4149
544cab3d
LC
8109#, no-wrap
8110msgid "channels"
8111msgstr ""
8112
8113#. type: cindex
32747aa9 8114#: doc/guix.texi:3749
544cab3d
LC
8115#, no-wrap
8116msgid "@command{guix pull}, configuration file"
8117msgstr ""
8118
8119#. type: cindex
32747aa9 8120#: doc/guix.texi:3750
544cab3d
LC
8121#, no-wrap
8122msgid "configuration of @command{guix pull}"
8123msgstr ""
8124
8125#. type: Plain text
32747aa9 8126#: doc/guix.texi:3759
544cab3d
LC
8127msgid "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."
8128msgstr ""
8129
8130#. type: subsection
32747aa9 8131#: doc/guix.texi:3760
544cab3d
LC
8132#, no-wrap
8133msgid "Using a Custom Guix Channel"
8134msgstr ""
8135
8136#. type: Plain text
32747aa9 8137#: doc/guix.texi:3767
544cab3d
LC
8138msgid "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 your own 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:"
8139msgstr ""
8140
8141#. type: lisp
32747aa9 8142#: doc/guix.texi:3774
544cab3d
LC
8143#, no-wrap
8144msgid ""
8145";; Tell 'guix pull' to use my own repo.\n"
8146"(list (channel\n"
8147" (name 'guix)\n"
8148" (url \"https://example.org/my-guix.git\")\n"
8149" (branch \"super-hacks\")))\n"
8150msgstr ""
8151
8152#. type: Plain text
32747aa9 8153#: doc/guix.texi:3779
544cab3d
LC
8154msgid "From there on, @command{guix pull} will fetch code from the @code{super-hacks} branch of the repository at @code{example.org}."
8155msgstr ""
8156
8157#. type: subsection
32747aa9 8158#: doc/guix.texi:3780
544cab3d
LC
8159#, no-wrap
8160msgid "Specifying Additional Channels"
8161msgstr ""
8162
8163#. type: cindex
32747aa9 8164#: doc/guix.texi:3782
544cab3d
LC
8165#, no-wrap
8166msgid "extending the package collection (channels)"
8167msgstr ""
8168
8169#. type: cindex
32747aa9 8170#: doc/guix.texi:3783
544cab3d
LC
8171#, no-wrap
8172msgid "personal packages (channels)"
8173msgstr ""
8174
8175#. type: cindex
32747aa9 8176#: doc/guix.texi:3784
544cab3d
LC
8177#, no-wrap
8178msgid "channels, for personal packages"
8179msgstr ""
8180
8181#. type: Plain text
32747aa9 8182#: doc/guix.texi:3792
544cab3d
LC
8183msgid "You can also specify @emph{additional channels} to pull from. 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?"
8184msgstr ""
8185
8186#. type: quotation
32747aa9 8187#: doc/guix.texi:3796
544cab3d
LC
8188#, no-wrap
8189msgid "Warning"
8190msgstr ""
8191
8192#. type: quotation
32747aa9 8193#: doc/guix.texi:3800
544cab3d
LC
8194msgid "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:"
8195msgstr ""
8196
8197#. type: itemize
32747aa9 8198#: doc/guix.texi:3808
544cab3d
LC
8199msgid "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."
8200msgstr ""
8201
8202#. type: itemize
32747aa9 8203#: doc/guix.texi:3817
544cab3d
LC
8204msgid "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."
8205msgstr ""
8206
8207#. type: itemize
32747aa9 8208#: doc/guix.texi:3821
544cab3d
LC
8209msgid "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."
8210msgstr ""
8211
8212#. type: quotation
32747aa9 8213#: doc/guix.texi:3828
544cab3d
LC
8214msgid "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."
8215msgstr ""
8216
8217#. type: Plain text
32747aa9 8218#: doc/guix.texi:3833
544cab3d
LC
8219msgid "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):"
8220msgstr ""
8221
8222#. type: vindex
32747aa9 8223#: doc/guix.texi:3834
544cab3d
LC
8224#, no-wrap
8225msgid "%default-channels"
8226msgstr ""
8227
8228#. type: lisp
32747aa9 8229#: doc/guix.texi:3841
544cab3d
LC
8230#, no-wrap
8231msgid ""
8232";; Add my personal packages to those Guix provides.\n"
8233"(cons (channel\n"
8234" (name 'my-personal-packages)\n"
8235" (url \"https://example.org/personal-packages.git\"))\n"
8236" %default-channels)\n"
8237msgstr ""
8238
8239#. type: Plain text
32747aa9 8240#: doc/guix.texi:3851
544cab3d
LC
8241msgid "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:"
8242msgstr ""
8243
8244#. type: example
32747aa9 8245#: doc/guix.texi:3866
544cab3d
LC
8246#, no-wrap
8247msgid ""
8248"$ guix pull --list-generations\n"
8249"@dots{}\n"
8250"Generation 19\tAug 27 2018 16:20:48\n"
8251" guix d894ab8\n"
8252" repository URL: https://git.savannah.gnu.org/git/guix.git\n"
8253" branch: master\n"
8254" commit: d894ab8e9bfabcefa6c49d9ba2e834dd5a73a300\n"
8255" my-personal-packages dd3df5e\n"
8256" repository URL: https://example.org/personal-packages.git\n"
8257" branch: master\n"
8258" commit: dd3df5e2c8818760a8fc0bd699e55d3b69fef2bb\n"
8259" 11 new packages: my-gimp, my-emacs-with-cool-features, @dots{}\n"
8260" 4 packages upgraded: emacs-racket-mode@@0.0.2-2.1b78827, @dots{}\n"
8261msgstr ""
8262
8263#. type: Plain text
32747aa9 8264#: doc/guix.texi:3874
544cab3d
LC
8265msgid "The output of @command{guix pull} above shows that Generation@tie{}19 includes both Guix and packages from the @code{my-personal-packages} channel. Among the new and upgraded packages that are listed, some like @code{my-gimp} and @code{my-emacs-with-cool-features} might come from @code{my-personal-packages}, while others come from the Guix default channel."
8266msgstr ""
8267
8268#. type: Plain text
32747aa9 8269#: doc/guix.texi:3885
544cab3d
LC
8270msgid "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})."
8271msgstr ""
8272
8273#. type: cindex
32747aa9 8274#: doc/guix.texi:3886
544cab3d
LC
8275#, no-wrap
8276msgid "dependencies, channels"
8277msgstr ""
8278
8279#. type: cindex
32747aa9 8280#: doc/guix.texi:3887
544cab3d
LC
8281#, no-wrap
8282msgid "meta-data, channels"
8283msgstr ""
8284
8285#. type: subsection
32747aa9 8286#: doc/guix.texi:3888
544cab3d
LC
8287#, no-wrap
8288msgid "Declaring Channel Dependencies"
8289msgstr ""
8290
8291#. type: Plain text
32747aa9 8292#: doc/guix.texi:3894
544cab3d
LC
8293msgid "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."
8294msgstr ""
8295
8296#. type: Plain text
32747aa9 8297#: doc/guix.texi:3896
544cab3d
LC
8298msgid "The meta-data file should contain a simple S-expression like this:"
8299msgstr ""
8300
8301#. type: lisp
32747aa9 8302#: doc/guix.texi:3908
544cab3d
LC
8303#, no-wrap
8304msgid ""
8305"(channel\n"
8306" (version 0)\n"
8307" (dependencies\n"
8308" (channel\n"
8309" (name some-collection)\n"
8310" (url \"https://example.org/first-collection.git\"))\n"
8311" (channel\n"
8312" (name some-other-collection)\n"
8313" (url \"https://example.org/second-collection.git\")\n"
8314" (branch \"testing\"))))\n"
8315msgstr ""
8316
8317#. type: Plain text
32747aa9 8318#: doc/guix.texi:3914
544cab3d
LC
8319msgid "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."
8320msgstr ""
8321
8322#. type: Plain text
32747aa9 8323#: doc/guix.texi:3918
544cab3d
LC
8324msgid "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."
8325msgstr ""
8326
8327#. type: subsection
32747aa9 8328#: doc/guix.texi:3919
544cab3d
LC
8329#, no-wrap
8330msgid "Replicating Guix"
8331msgstr ""
8332
8333#. type: cindex
32747aa9 8334#: doc/guix.texi:3921
544cab3d
LC
8335#, no-wrap
8336msgid "pinning, channels"
8337msgstr ""
8338
8339#. type: cindex
32747aa9 8340#: doc/guix.texi:3922 doc/guix.texi:4088
544cab3d
LC
8341#, no-wrap
8342msgid "replicating Guix"
8343msgstr ""
8344
8345#. type: cindex
32747aa9 8346#: doc/guix.texi:3923
544cab3d
LC
8347#, no-wrap
8348msgid "reproducibility, of Guix"
8349msgstr ""
8350
8351#. type: Plain text
32747aa9 8352#: doc/guix.texi:3928
544cab3d
LC
8353msgid "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:"
8354msgstr ""
8355
8356#. type: lisp
32747aa9 8357#: doc/guix.texi:3939
544cab3d
LC
8358#, no-wrap
8359msgid ""
8360";; Deploy specific commits of my channels of interest.\n"
8361"(list (channel\n"
8362" (name 'guix)\n"
8363" (url \"https://git.savannah.gnu.org/git/guix.git\")\n"
8364" (commit \"d894ab8e9bfabcefa6c49d9ba2e834dd5a73a300\"))\n"
8365" (channel\n"
8366" (name 'my-personal-packages)\n"
8367" (url \"https://example.org/personal-packages.git\")\n"
8368" (branch \"dd3df5e2c8818760a8fc0bd699e55d3b69fef2bb\")))\n"
8369msgstr ""
8370
8371#. type: Plain text
32747aa9 8372#: doc/guix.texi:3943
544cab3d
LC
8373msgid "The @command{guix describe --format=channels} command can even generate this list of channels directly (@pxref{Invoking guix describe})."
8374msgstr ""
8375
8376#. type: Plain text
32747aa9 8377#: doc/guix.texi:3950
544cab3d
LC
8378msgid "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."
8379msgstr ""
8380
8381#. type: Plain text
32747aa9 8382#: doc/guix.texi:3955
544cab3d
LC
8383msgid "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."
8384msgstr ""
8385
8386#. type: quotation
32747aa9 8387#: doc/guix.texi:3963
544cab3d
LC
8388msgid "The functionality described here is a ``technology preview'' as of version @value{VERSION}. As such, the interface is subject to change."
8389msgstr ""
8390
8391#. type: cindex
32747aa9 8392#: doc/guix.texi:3965 doc/guix.texi:7547
544cab3d
LC
8393#, no-wrap
8394msgid "inferiors"
8395msgstr ""
8396
8397#. type: cindex
32747aa9 8398#: doc/guix.texi:3966
544cab3d
LC
8399#, no-wrap
8400msgid "composition of Guix revisions"
8401msgstr ""
8402
8403#. type: Plain text
32747aa9 8404#: doc/guix.texi:3971
544cab3d
LC
8405msgid "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."
8406msgstr ""
8407
8408#. type: cindex
32747aa9 8409#: doc/guix.texi:3972 doc/guix.texi:4037
544cab3d
LC
8410#, no-wrap
8411msgid "inferior packages"
8412msgstr ""
8413
8414#. type: Plain text
32747aa9 8415#: doc/guix.texi:3978
544cab3d
LC
8416msgid "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}."
8417msgstr ""
8418
8419#. type: Plain text
32747aa9 8420#: doc/guix.texi:3988
544cab3d
LC
8421msgid "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:"
8422msgstr ""
8423
8424#. type: lisp
32747aa9 8425#: doc/guix.texi:3992
544cab3d
LC
8426#, no-wrap
8427msgid ""
8428"(use-modules (guix inferior) (guix channels)\n"
8429" (srfi srfi-1)) ;for 'first'\n"
8430"\n"
8431msgstr ""
8432
8433#. type: lisp
32747aa9 8434#: doc/guix.texi:4001
544cab3d
LC
8435#, no-wrap
8436msgid ""
8437"(define channels\n"
8438" ;; This is the old revision from which we want to\n"
8439" ;; extract guile-json.\n"
8440" (list (channel\n"
8441" (name 'guix)\n"
8442" (url \"https://git.savannah.gnu.org/git/guix.git\")\n"
8443" (commit\n"
8444" \"65956ad3526ba09e1f7a40722c96c6ef7c0936fe\"))))\n"
8445"\n"
8446msgstr ""
8447
8448#. type: lisp
32747aa9 8449#: doc/guix.texi:4005
544cab3d
LC
8450#, no-wrap
8451msgid ""
8452"(define inferior\n"
8453" ;; An inferior representing the above revision.\n"
8454" (inferior-for-channels channels))\n"
8455"\n"
8456msgstr ""
8457
8458#. type: lisp
32747aa9 8459#: doc/guix.texi:4011
544cab3d
LC
8460#, no-wrap
8461msgid ""
8462";; Now create a manifest with the current \"guile\" package\n"
8463";; and the old \"guile-json\" package.\n"
8464"(packages->manifest\n"
8465" (list (first (lookup-inferior-packages inferior \"guile-json\"))\n"
8466" (specification->package \"guile\")))\n"
8467msgstr ""
8468
8469#. type: Plain text
32747aa9 8470#: doc/guix.texi:4016
544cab3d
LC
8471msgid "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."
8472msgstr ""
8473
8474#. type: Plain text
32747aa9 8475#: doc/guix.texi:4019
544cab3d
LC
8476msgid "The @code{(guix inferior)} module provides the following procedures to open an inferior:"
8477msgstr ""
8478
8479#. type: deffn
32747aa9 8480#: doc/guix.texi:4020
544cab3d
LC
8481#, no-wrap
8482msgid "{Scheme Procedure} inferior-for-channels @var{channels} @"
8483msgstr ""
8484
8485#. type: deffn
32747aa9 8486#: doc/guix.texi:4025
544cab3d
LC
8487msgid "[#: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."
8488msgstr ""
8489
8490#. type: deffn
32747aa9 8491#: doc/guix.texi:4028
544cab3d
LC
8492msgid "As a side effect, this procedure may build or substitute binaries for @var{channels}, which can take time."
8493msgstr ""
8494
8495#. type: deffn
32747aa9 8496#: doc/guix.texi:4030
544cab3d
LC
8497#, no-wrap
8498msgid "{Scheme Procedure} open-inferior @var{directory} @"
8499msgstr ""
8500
8501#. type: deffn
32747aa9 8502#: doc/guix.texi:4035
544cab3d
LC
8503msgid "[#: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."
8504msgstr ""
8505
8506#. type: Plain text
32747aa9 8507#: doc/guix.texi:4040
544cab3d
LC
8508msgid "The procedures listed below allow you to obtain and manipulate inferior packages."
8509msgstr ""
8510
8511#. type: deffn
32747aa9 8512#: doc/guix.texi:4041
544cab3d
LC
8513#, no-wrap
8514msgid "{Scheme Procedure} inferior-packages @var{inferior}"
8515msgstr ""
8516
8517#. type: deffn
32747aa9 8518#: doc/guix.texi:4043
544cab3d
LC
8519msgid "Return the list of packages known to @var{inferior}."
8520msgstr ""
8521
8522#. type: deffn
32747aa9 8523#: doc/guix.texi:4045
544cab3d
LC
8524#, no-wrap
8525msgid "{Scheme Procedure} lookup-inferior-packages @var{inferior} @var{name} @"
8526msgstr ""
8527
8528#. type: deffn
32747aa9 8529#: doc/guix.texi:4050
544cab3d
LC
8530msgid "[@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}."
8531msgstr ""
8532
8533#. type: deffn
32747aa9 8534#: doc/guix.texi:4052
544cab3d
LC
8535#, no-wrap
8536msgid "{Scheme Procedure} inferior-package? @var{obj}"
8537msgstr ""
8538
8539#. type: deffn
32747aa9 8540#: doc/guix.texi:4054
544cab3d
LC
8541msgid "Return true if @var{obj} is an inferior package."
8542msgstr ""
8543
8544#. type: deffn
32747aa9 8545#: doc/guix.texi:4056
544cab3d
LC
8546#, no-wrap
8547msgid "{Scheme Procedure} inferior-package-name @var{package}"
8548msgstr ""
8549
8550#. type: deffnx
32747aa9 8551#: doc/guix.texi:4057
544cab3d
LC
8552#, no-wrap
8553msgid "{Scheme Procedure} inferior-package-version @var{package}"
8554msgstr ""
8555
8556#. type: deffnx
32747aa9 8557#: doc/guix.texi:4058
544cab3d
LC
8558#, no-wrap
8559msgid "{Scheme Procedure} inferior-package-synopsis @var{package}"
8560msgstr ""
8561
8562#. type: deffnx
32747aa9 8563#: doc/guix.texi:4059
544cab3d
LC
8564#, no-wrap
8565msgid "{Scheme Procedure} inferior-package-description @var{package}"
8566msgstr ""
8567
8568#. type: deffnx
32747aa9 8569#: doc/guix.texi:4060
544cab3d
LC
8570#, no-wrap
8571msgid "{Scheme Procedure} inferior-package-home-page @var{package}"
8572msgstr ""
8573
8574#. type: deffnx
32747aa9 8575#: doc/guix.texi:4061
544cab3d
LC
8576#, no-wrap
8577msgid "{Scheme Procedure} inferior-package-location @var{package}"
8578msgstr ""
8579
8580#. type: deffnx
32747aa9 8581#: doc/guix.texi:4062
544cab3d
LC
8582#, no-wrap
8583msgid "{Scheme Procedure} inferior-package-inputs @var{package}"
8584msgstr ""
8585
8586#. type: deffnx
32747aa9 8587#: doc/guix.texi:4063
544cab3d
LC
8588#, no-wrap
8589msgid "{Scheme Procedure} inferior-package-native-inputs @var{package}"
8590msgstr ""
8591
8592#. type: deffnx
32747aa9 8593#: doc/guix.texi:4064
544cab3d
LC
8594#, no-wrap
8595msgid "{Scheme Procedure} inferior-package-propagated-inputs @var{package}"
8596msgstr ""
8597
8598#. type: deffnx
32747aa9 8599#: doc/guix.texi:4065
544cab3d
LC
8600#, no-wrap
8601msgid "{Scheme Procedure} inferior-package-transitive-propagated-inputs @var{package}"
8602msgstr ""
8603
8604#. type: deffnx
32747aa9 8605#: doc/guix.texi:4066
544cab3d
LC
8606#, no-wrap
8607msgid "{Scheme Procedure} inferior-package-native-search-paths @var{package}"
8608msgstr ""
8609
8610#. type: deffnx
32747aa9 8611#: doc/guix.texi:4067
544cab3d
LC
8612#, no-wrap
8613msgid "{Scheme Procedure} inferior-package-transitive-native-search-paths @var{package}"
8614msgstr ""
8615
8616#. type: deffnx
32747aa9 8617#: doc/guix.texi:4068
544cab3d
LC
8618#, no-wrap
8619msgid "{Scheme Procedure} inferior-package-search-paths @var{package}"
8620msgstr ""
8621
8622#. type: deffn
32747aa9 8623#: doc/guix.texi:4073
544cab3d
LC
8624msgid "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."
8625msgstr ""
8626
8627#. type: Plain text
32747aa9 8628#: doc/guix.texi:4083
544cab3d
LC
8629msgid "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."
8630msgstr ""
8631
8632#. type: section
32747aa9 8633#: doc/guix.texi:4085
544cab3d
LC
8634#, no-wrap
8635msgid "Invoking @command{guix describe}"
8636msgstr ""
8637
8638#. type: Plain text
32747aa9 8639#: doc/guix.texi:4096
544cab3d
LC
8640msgid "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."
8641msgstr ""
8642
8643#. type: Plain text
32747aa9 8644#: doc/guix.texi:4100
544cab3d
LC
8645msgid "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}):"
8646msgstr ""
8647
8648#. type: example
32747aa9 8649#: doc/guix.texi:4108
544cab3d
LC
8650#, no-wrap
8651msgid ""
8652"$ guix describe\n"
8653"Generation 10\tSep 03 2018 17:32:44\t(current)\n"
8654" guix e0fa68c\n"
8655" repository URL: https://git.savannah.gnu.org/git/guix.git\n"
8656" branch: master\n"
8657" commit: e0fa68c7718fffd33d81af415279d6ddb518f727\n"
8658msgstr ""
8659
8660#. type: Plain text
32747aa9 8661#: doc/guix.texi:4117
544cab3d
LC
8662msgid "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."
8663msgstr ""
8664
8665#. type: Plain text
32747aa9 8666#: doc/guix.texi:4120
544cab3d
LC
8667msgid "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:"
8668msgstr ""
8669
8670#. type: example
32747aa9 8671#: doc/guix.texi:4128
544cab3d
LC
8672#, no-wrap
8673msgid ""
8674"$ guix describe -f channels\n"
8675"(list (channel\n"
8676" (name 'guix)\n"
8677" (url \"https://git.savannah.gnu.org/git/guix.git\")\n"
8678" (commit\n"
8679" \"e0fa68c7718fffd33d81af415279d6ddb518f727\")))\n"
8680msgstr ""
8681
8682#. type: Plain text
32747aa9 8683#: doc/guix.texi:4137
544cab3d
LC
8684msgid "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!"
8685msgstr ""
8686
8687#. type: Plain text
32747aa9 8688#: doc/guix.texi:4140
544cab3d
LC
8689msgid "The details of the options supported by @command{guix describe} are as follows:"
8690msgstr ""
8691
8692#. type: item
32747aa9 8693#: doc/guix.texi:4142 doc/guix.texi:4786
544cab3d
LC
8694#, no-wrap
8695msgid "--format=@var{format}"
8696msgstr ""
8697
8698#. type: itemx
32747aa9 8699#: doc/guix.texi:4143 doc/guix.texi:4787
544cab3d
LC
8700#, no-wrap
8701msgid "-f @var{format}"
8702msgstr ""
8703
8704#. type: table
32747aa9 8705#: doc/guix.texi:4145
544cab3d
LC
8706msgid "Produce output in the specified @var{format}, one of:"
8707msgstr ""
8708
8709#. type: item
32747aa9 8710#: doc/guix.texi:4147
544cab3d
LC
8711#, no-wrap
8712msgid "human"
8713msgstr ""
8714
8715#. type: table
32747aa9 8716#: doc/guix.texi:4149
544cab3d
LC
8717msgid "produce human-readable output;"
8718msgstr ""
8719
8720#. type: table
32747aa9 8721#: doc/guix.texi:4153
544cab3d
LC
8722msgid "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});"
8723msgstr ""
8724
8725#. type: item
32747aa9 8726#: doc/guix.texi:4153 doc/guix.texi:8584
544cab3d
LC
8727#, no-wrap
8728msgid "json"
8729msgstr ""
8730
8731#. type: cindex
32747aa9 8732#: doc/guix.texi:4154
544cab3d
LC
8733#, no-wrap
8734msgid "JSON"
8735msgstr ""
8736
8737#. type: table
32747aa9 8738#: doc/guix.texi:4156
544cab3d
LC
8739msgid "produce a list of channel specifications in JSON format;"
8740msgstr ""
8741
8742#. type: item
32747aa9 8743#: doc/guix.texi:4156
544cab3d
LC
8744#, no-wrap
8745msgid "recutils"
8746msgstr ""
8747
8748#. type: table
32747aa9 8749#: doc/guix.texi:4158
544cab3d
LC
8750msgid "produce a list of channel specifications in Recutils format."
8751msgstr ""
8752
8753#. type: table
32747aa9 8754#: doc/guix.texi:4163
544cab3d
LC
8755msgid "Display information about @var{profile}."
8756msgstr ""
8757
8758#. type: section
32747aa9 8759#: doc/guix.texi:4166
544cab3d
LC
8760#, no-wrap
8761msgid "Invoking @command{guix archive}"
8762msgstr ""
8763
8764#. type: command{#1}
32747aa9 8765#: doc/guix.texi:4168
544cab3d
LC
8766#, no-wrap
8767msgid "guix archive"
8768msgstr ""
8769
8770#. type: cindex
32747aa9 8771#: doc/guix.texi:4169
544cab3d
LC
8772#, no-wrap
8773msgid "archive"
8774msgstr ""
8775
8776#. type: Plain text
32747aa9 8777#: doc/guix.texi:4175
544cab3d
LC
8778msgid "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."
8779msgstr ""
8780
8781#. type: quotation
32747aa9 8782#: doc/guix.texi:4179
544cab3d
LC
8783msgid "If you're looking for a way to produce archives in a format suitable for tools other than Guix, @pxref{Invoking guix pack}."
8784msgstr ""
8785
8786#. type: cindex
32747aa9 8787#: doc/guix.texi:4181
544cab3d
LC
8788#, no-wrap
8789msgid "exporting store items"
8790msgstr ""
8791
8792#. type: Plain text
32747aa9 8793#: doc/guix.texi:4183
544cab3d
LC
8794msgid "To export store files as an archive to standard output, run:"
8795msgstr ""
8796
8797#. type: example
32747aa9 8798#: doc/guix.texi:4186
544cab3d
LC
8799#, no-wrap
8800msgid "guix archive --export @var{options} @var{specifications}...\n"
8801msgstr ""
8802
8803#. type: Plain text
32747aa9 8804#: doc/guix.texi:4193
544cab3d
LC
8805msgid "@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}:"
8806msgstr ""
8807
8808#. type: example
32747aa9 8809#: doc/guix.texi:4196
544cab3d
LC
8810#, no-wrap
8811msgid "guix archive --export git:gui /gnu/store/...-emacs-24.3 > great.nar\n"
8812msgstr ""
8813
8814#. type: Plain text
32747aa9 8815#: doc/guix.texi:4201
544cab3d
LC
8816msgid "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})."
8817msgstr ""
8818
8819#. type: Plain text
32747aa9 8820#: doc/guix.texi:4204
544cab3d
LC
8821msgid "To transfer the @code{emacs} package to a machine connected over SSH, one would run:"
8822msgstr ""
8823
8824#. type: example
32747aa9 8825#: doc/guix.texi:4207
544cab3d
LC
8826#, no-wrap
8827msgid "guix archive --export -r emacs | ssh the-machine guix archive --import\n"
8828msgstr ""
8829
8830#. type: Plain text
32747aa9 8831#: doc/guix.texi:4212
544cab3d
LC
8832msgid "Similarly, a complete user profile may be transferred from one machine to another like this:"
8833msgstr ""
8834
8835#. type: example
32747aa9 8836#: doc/guix.texi:4216
544cab3d
LC
8837#, no-wrap
8838msgid ""
8839"guix archive --export -r $(readlink -f ~/.guix-profile) | \\\n"
8840" ssh the-machine guix-archive --import\n"
8841msgstr ""
8842
8843#. type: Plain text
32747aa9 8844#: doc/guix.texi:4226
544cab3d
LC
8845msgid "However, note that, in both examples, all of @code{emacs} and the profile as well as all of their dependencies are transferred (due to @code{-r}), regardless of what is already available in the store on the target machine. The @code{--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})."
8846msgstr ""
8847
8848#. type: cindex
32747aa9 8849#: doc/guix.texi:4227
544cab3d
LC
8850#, no-wrap
8851msgid "nar, archive format"
8852msgstr ""
8853
8854#. type: cindex
32747aa9 8855#: doc/guix.texi:4228
544cab3d
LC
8856#, no-wrap
8857msgid "normalized archive (nar)"
8858msgstr ""
8859
8860#. type: Plain text
32747aa9 8861#: doc/guix.texi:4238
544cab3d
LC
8862msgid "Archives are stored in the ``normalized archive'' or ``nar'' format, which 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."
8863msgstr ""
8864
8865#. type: Plain text
32747aa9 8866#: doc/guix.texi:4244
544cab3d
LC
8867msgid "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."
8868msgstr ""
8869
8870#. type: Plain text
32747aa9 8871#: doc/guix.texi:4246
544cab3d
LC
8872msgid "The main options are:"
8873msgstr ""
8874
8875#. type: item
32747aa9 8876#: doc/guix.texi:4248
544cab3d
LC
8877#, no-wrap
8878msgid "--export"
8879msgstr ""
8880
8881#. type: table
32747aa9 8882#: doc/guix.texi:4251
544cab3d
LC
8883msgid "Export the specified store files or packages (see below.) Write the resulting archive to the standard output."
8884msgstr ""
8885
8886#. type: table
32747aa9 8887#: doc/guix.texi:4254
544cab3d
LC
8888msgid "Dependencies are @emph{not} included in the output, unless @code{--recursive} is passed."
8889msgstr ""
8890
8891#. type: itemx
32747aa9
LC
8892#: doc/guix.texi:4255 doc/guix.texi:8372 doc/guix.texi:8469 doc/guix.texi:8494
8893#: doc/guix.texi:8689 doc/guix.texi:8730 doc/guix.texi:8777
544cab3d
LC
8894#, no-wrap
8895msgid "-r"
8896msgstr ""
8897
8898#. type: item
32747aa9
LC
8899#: doc/guix.texi:4256 doc/guix.texi:8371 doc/guix.texi:8468 doc/guix.texi:8493
8900#: doc/guix.texi:8688 doc/guix.texi:8729 doc/guix.texi:8776 doc/guix.texi:8833
544cab3d
LC
8901#, no-wrap
8902msgid "--recursive"
8903msgstr ""
8904
8905#. type: table
32747aa9 8906#: doc/guix.texi:4261
544cab3d
LC
8907msgid "When combined with @code{--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."
8908msgstr ""
8909
8910#. type: item
32747aa9 8911#: doc/guix.texi:4262
544cab3d
LC
8912#, no-wrap
8913msgid "--import"
8914msgstr ""
8915
8916#. type: table
32747aa9 8917#: doc/guix.texi:4267
544cab3d
LC
8918msgid "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 @code{--authorize} below.)"
8919msgstr ""
8920
8921#. type: item
32747aa9 8922#: doc/guix.texi:4268
544cab3d
LC
8923#, no-wrap
8924msgid "--missing"
8925msgstr ""
8926
8927#. type: table
32747aa9 8928#: doc/guix.texi:4272
544cab3d
LC
8929msgid "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."
8930msgstr ""
8931
8932#. type: item
32747aa9 8933#: doc/guix.texi:4273
544cab3d
LC
8934#, no-wrap
8935msgid "--generate-key[=@var{parameters}]"
8936msgstr ""
8937
8938#. type: cindex
32747aa9 8939#: doc/guix.texi:4274
544cab3d
LC
8940#, no-wrap
8941msgid "signing, archives"
8942msgstr ""
8943
8944#. type: table
32747aa9 8945#: doc/guix.texi:4279
544cab3d
LC
8946msgid "Generate a new key pair for the daemon. This is a prerequisite before archives can be exported with @code{--export}. Note that this operation usually takes time, because it needs to gather enough entropy to generate the key pair."
8947msgstr ""
8948
8949#. type: table
32747aa9 8950#: doc/guix.texi:4289
544cab3d
LC
8951msgid "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})."
8952msgstr ""
8953
8954#. type: item
32747aa9 8955#: doc/guix.texi:4290
544cab3d
LC
8956#, no-wrap
8957msgid "--authorize"
8958msgstr ""
8959
8960#. type: cindex
32747aa9 8961#: doc/guix.texi:4291
544cab3d
LC
8962#, no-wrap
8963msgid "authorizing, archives"
8964msgstr ""
8965
8966#. type: table
32747aa9 8967#: doc/guix.texi:4295
544cab3d
LC
8968msgid "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."
8969msgstr ""
8970
8971#. type: table
32747aa9
LC
8972#: doc/guix.texi:4302
8973msgid "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)}."
544cab3d
LC
8974msgstr ""
8975
8976#. type: item
32747aa9 8977#: doc/guix.texi:4303
544cab3d
LC
8978#, no-wrap
8979msgid "--extract=@var{directory}"
8980msgstr ""
8981
8982#. type: itemx
32747aa9 8983#: doc/guix.texi:4304
544cab3d
LC
8984#, no-wrap
8985msgid "-x @var{directory}"
8986msgstr ""
8987
8988#. type: table
32747aa9 8989#: doc/guix.texi:4308
544cab3d
LC
8990msgid "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."
8991msgstr ""
8992
8993#. type: table
32747aa9 8994#: doc/guix.texi:4311
544cab3d
LC
8995msgid "For example, the following command extracts the substitute for Emacs served by @code{@value{SUBSTITUTE-SERVER}} to @file{/tmp/emacs}:"
8996msgstr ""
8997
8998#. type: example
32747aa9 8999#: doc/guix.texi:4316
544cab3d
LC
9000#, no-wrap
9001msgid ""
9002"$ wget -O - \\\n"
9003" https://@value{SUBSTITUTE-SERVER}/nar/@dots{}-emacs-24.5 \\\n"
9004" | bunzip2 | guix archive -x /tmp/emacs\n"
9005msgstr ""
9006
9007#. type: table
32747aa9 9008#: doc/guix.texi:4323
544cab3d
LC
9009msgid "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."
9010msgstr ""
9011
9012#. type: table
32747aa9 9013#: doc/guix.texi:4326
544cab3d
LC
9014msgid "The primary purpose of this operation is to facilitate inspection of archive contents coming from possibly untrusted substitute servers."
9015msgstr ""
9016
9017#. type: cindex
32747aa9 9018#: doc/guix.texi:4334
544cab3d
LC
9019#, no-wrap
9020msgid "software development"
9021msgstr ""
9022
9023#. type: Plain text
32747aa9 9024#: doc/guix.texi:4338
544cab3d
LC
9025msgid "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."
9026msgstr ""
9027
9028#. type: Plain text
32747aa9 9029#: doc/guix.texi:4344
544cab3d
LC
9030msgid "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."
9031msgstr ""
9032
9033#. type: section
32747aa9 9034#: doc/guix.texi:4351
544cab3d
LC
9035#, no-wrap
9036msgid "Invoking @command{guix environment}"
9037msgstr ""
9038
9039#. type: cindex
32747aa9 9040#: doc/guix.texi:4353
544cab3d
LC
9041#, no-wrap
9042msgid "reproducible build environments"
9043msgstr ""
9044
9045#. type: cindex
32747aa9 9046#: doc/guix.texi:4354
544cab3d
LC
9047#, no-wrap
9048msgid "development environments"
9049msgstr ""
9050
9051#. type: command{#1}
32747aa9 9052#: doc/guix.texi:4355
544cab3d
LC
9053#, no-wrap
9054msgid "guix environment"
9055msgstr ""
9056
9057#. type: cindex
32747aa9 9058#: doc/guix.texi:4356
544cab3d
LC
9059#, no-wrap
9060msgid "environment, package build environment"
9061msgstr ""
9062
9063#. type: Plain text
32747aa9 9064#: doc/guix.texi:4362
544cab3d
LC
9065msgid "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."
9066msgstr ""
9067
9068#. type: Plain text
32747aa9
LC
9069#: doc/guix.texi:4364 doc/guix.texi:7621 doc/guix.texi:8349 doc/guix.texi:8416
9070#: doc/guix.texi:9205 doc/guix.texi:9578 doc/guix.texi:9883 doc/guix.texi:9949
9071#: doc/guix.texi:9988
544cab3d
LC
9072msgid "The general syntax is:"
9073msgstr ""
9074
9075#. type: example
32747aa9 9076#: doc/guix.texi:4367
544cab3d
LC
9077#, no-wrap
9078msgid "guix environment @var{options} @var{package}@dots{}\n"
9079msgstr ""
9080
9081#. type: Plain text
32747aa9 9082#: doc/guix.texi:4371
544cab3d
LC
9083msgid "The following example spawns a new shell set up for the development of GNU@tie{}Guile:"
9084msgstr ""
9085
9086#. type: example
32747aa9 9087#: doc/guix.texi:4374
544cab3d
LC
9088#, no-wrap
9089msgid "guix environment guile\n"
9090msgstr ""
9091
9092#. type: Plain text
32747aa9 9093#: doc/guix.texi:4391
544cab3d
LC
9094msgid "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 @code{--pure} option@footnote{Users sometimes wrongfully augment environment variables such as @code{PATH} in their @file{~/.bashrc} file. As a consequence, when @code{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.}."
9095msgstr ""
9096
9097#. type: vindex
32747aa9 9098#: doc/guix.texi:4392
544cab3d
LC
9099#, no-wrap
9100msgid "GUIX_ENVIRONMENT"
9101msgstr ""
9102
9103#. type: Plain text
32747aa9 9104#: doc/guix.texi:4398
544cab3d
LC
9105msgid "@command{guix environment} defines the @code{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}):"
9106msgstr ""
9107
9108#. type: example
32747aa9 9109#: doc/guix.texi:4404
544cab3d
LC
9110#, no-wrap
9111msgid ""
9112"if [ -n \"$GUIX_ENVIRONMENT\" ]\n"
9113"then\n"
9114" export PS1=\"\\u@@\\h \\w [dev]\\$ \"\n"
9115"fi\n"
9116msgstr ""
9117
9118#. type: Plain text
32747aa9 9119#: doc/guix.texi:4408
544cab3d
LC
9120msgid "...@: or to browse the profile:"
9121msgstr ""
9122
9123#. type: example
32747aa9 9124#: doc/guix.texi:4411
544cab3d
LC
9125#, no-wrap
9126msgid "$ ls \"$GUIX_ENVIRONMENT/bin\"\n"
9127msgstr ""
9128
9129#. type: Plain text
32747aa9 9130#: doc/guix.texi:4417
544cab3d
LC
9131msgid "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:"
9132msgstr ""
9133
9134#. type: example
32747aa9 9135#: doc/guix.texi:4420
544cab3d
LC
9136#, no-wrap
9137msgid "guix environment guile emacs\n"
9138msgstr ""
9139
9140#. type: Plain text
32747aa9 9141#: doc/guix.texi:4425
544cab3d
LC
9142msgid "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:"
9143msgstr ""
9144
9145#. type: example
32747aa9 9146#: doc/guix.texi:4428
544cab3d
LC
9147#, no-wrap
9148msgid "guix environment guile -- make -j4\n"
9149msgstr ""
9150
9151#. type: Plain text
32747aa9 9152#: doc/guix.texi:4434
544cab3d
LC
9153msgid "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:"
9154msgstr ""
9155
9156#. type: example
32747aa9 9157#: doc/guix.texi:4437
544cab3d
LC
9158#, no-wrap
9159msgid "guix environment --ad-hoc python2-numpy python-2.7 -- python\n"
9160msgstr ""
9161
9162#. type: Plain text
32747aa9 9163#: doc/guix.texi:4448
544cab3d
LC
9164msgid "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 @code{--ad-hoc} flag is positional. Packages appearing before @code{--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:"
9165msgstr ""
9166
9167#. type: example
32747aa9 9168#: doc/guix.texi:4451
544cab3d
LC
9169#, no-wrap
9170msgid "guix environment guix --ad-hoc git strace\n"
9171msgstr ""
9172
9173#. type: Plain text
32747aa9 9174#: doc/guix.texi:4460
544cab3d
LC
9175msgid "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:"
9176msgstr ""
9177
9178#. type: example
32747aa9 9179#: doc/guix.texi:4463
544cab3d
LC
9180#, no-wrap
9181msgid "guix environment --ad-hoc --container guile -- guile\n"
9182msgstr ""
9183
9184#. type: quotation
32747aa9 9185#: doc/guix.texi:4467
544cab3d
LC
9186msgid "The @code{--container} option requires Linux-libre 3.19 or newer."
9187msgstr ""
9188
9189#. type: Plain text
32747aa9 9190#: doc/guix.texi:4470
544cab3d
LC
9191msgid "The available options are summarized below."
9192msgstr ""
9193
9194#. type: item
32747aa9 9195#: doc/guix.texi:4472 doc/guix.texi:8136 doc/guix.texi:24588
544cab3d
LC
9196#, no-wrap
9197msgid "--root=@var{file}"
9198msgstr ""
9199
9200#. type: itemx
32747aa9 9201#: doc/guix.texi:4473 doc/guix.texi:8137 doc/guix.texi:24589
544cab3d
LC
9202#, no-wrap
9203msgid "-r @var{file}"
9204msgstr ""
9205
9206#. type: cindex
32747aa9 9207#: doc/guix.texi:4474
544cab3d
LC
9208#, no-wrap
9209msgid "persistent environment"
9210msgstr ""
9211
9212#. type: cindex
32747aa9 9213#: doc/guix.texi:4475
544cab3d
LC
9214#, no-wrap
9215msgid "garbage collector root, for environments"
9216msgstr ""
9217
9218#. type: table
32747aa9 9219#: doc/guix.texi:4478
544cab3d
LC
9220msgid "Make @var{file} a symlink to the profile for this environment, and register it as a garbage collector root."
9221msgstr ""
9222
9223#. type: table
32747aa9 9224#: doc/guix.texi:4481
544cab3d
LC
9225msgid "This is useful if you want to protect your environment from garbage collection, to make it ``persistent''."
9226msgstr ""
9227
9228#. type: table
32747aa9 9229#: doc/guix.texi:4487
544cab3d
LC
9230msgid "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."
9231msgstr ""
9232
9233#. type: item
32747aa9
LC
9234#: doc/guix.texi:4488 doc/guix.texi:4862 doc/guix.texi:7994 doc/guix.texi:8875
9235#: doc/guix.texi:9533 doc/guix.texi:24547
544cab3d
LC
9236#, no-wrap
9237msgid "--expression=@var{expr}"
9238msgstr ""
9239
9240#. type: itemx
32747aa9
LC
9241#: doc/guix.texi:4489 doc/guix.texi:4863 doc/guix.texi:7995 doc/guix.texi:8876
9242#: doc/guix.texi:9534 doc/guix.texi:24548
544cab3d
LC
9243#, no-wrap
9244msgid "-e @var{expr}"
9245msgstr ""
9246
9247#. type: table
32747aa9 9248#: doc/guix.texi:4492
544cab3d
LC
9249msgid "Create an environment for the package or list of packages that @var{expr} evaluates to."
9250msgstr ""
9251
9252#. type: table
32747aa9 9253#: doc/guix.texi:4494
544cab3d
LC
9254msgid "For example, running:"
9255msgstr ""
9256
9257#. type: example
32747aa9 9258#: doc/guix.texi:4497
544cab3d
LC
9259#, no-wrap
9260msgid "guix environment -e '(@@ (gnu packages maths) petsc-openmpi)'\n"
9261msgstr ""
9262
9263#. type: table
32747aa9 9264#: doc/guix.texi:4501
544cab3d
LC
9265msgid "starts a shell with the environment for this specific variant of the PETSc package."
9266msgstr ""
9267
9268#. type: table
32747aa9 9269#: doc/guix.texi:4503
544cab3d
LC
9270msgid "Running:"
9271msgstr ""
9272
9273#. type: example
32747aa9 9274#: doc/guix.texi:4506
544cab3d
LC
9275#, no-wrap
9276msgid "guix environment --ad-hoc -e '(@@ (gnu) %base-packages)'\n"
9277msgstr ""
9278
9279#. type: table
32747aa9 9280#: doc/guix.texi:4509
544cab3d
LC
9281msgid "starts a shell with all the base system packages available."
9282msgstr ""
9283
9284#. type: table
32747aa9 9285#: doc/guix.texi:4512
544cab3d
LC
9286msgid "The above commands only use the default output of the given packages. To select other outputs, two element tuples can be specified:"
9287msgstr ""
9288
9289#. type: example
32747aa9 9290#: doc/guix.texi:4515
544cab3d
LC
9291#, no-wrap
9292msgid "guix environment --ad-hoc -e '(list (@@ (gnu packages bash) bash) \"include\")'\n"
9293msgstr ""
9294
9295#. type: item
32747aa9 9296#: doc/guix.texi:4517
544cab3d
LC
9297#, no-wrap
9298msgid "--load=@var{file}"
9299msgstr ""
9300
9301#. type: itemx
32747aa9 9302#: doc/guix.texi:4518
544cab3d
LC
9303#, no-wrap
9304msgid "-l @var{file}"
9305msgstr ""
9306
9307#. type: table
32747aa9 9308#: doc/guix.texi:4521
544cab3d
LC
9309msgid "Create an environment for the package or list of packages that the code within @var{file} evaluates to."
9310msgstr ""
9311
9312#. type: example
32747aa9 9313#: doc/guix.texi:4527
544cab3d
LC
9314#, no-wrap
9315msgid "@verbatiminclude environment-gdb.scm\n"
9316msgstr ""
9317
9318#. type: table
32747aa9 9319#: doc/guix.texi:4533
544cab3d
LC
9320msgid "Create an environment for the packages contained in the manifest object returned by the Scheme code in @var{file}."
9321msgstr ""
9322
9323#. type: table
32747aa9 9324#: doc/guix.texi:4537
544cab3d
LC
9325msgid "This is similar to the same-named option in @command{guix package} (@pxref{profile-manifest, @option{--manifest}}) and uses the same manifest files."
9326msgstr ""
9327
9328#. type: item
32747aa9 9329#: doc/guix.texi:4538
544cab3d
LC
9330#, no-wrap
9331msgid "--ad-hoc"
9332msgstr ""
9333
9334#. type: table
32747aa9 9335#: doc/guix.texi:4543
544cab3d
LC
9336msgid "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."
9337msgstr ""
9338
9339#. type: table
32747aa9 9340#: doc/guix.texi:4545
544cab3d
LC
9341msgid "For instance, the command:"
9342msgstr ""
9343
9344#. type: example
32747aa9 9345#: doc/guix.texi:4548
544cab3d
LC
9346#, no-wrap
9347msgid "guix environment --ad-hoc guile guile-sdl -- guile\n"
9348msgstr ""
9349
9350#. type: table
32747aa9 9351#: doc/guix.texi:4552
544cab3d
LC
9352msgid "runs @command{guile} in an environment where Guile and Guile-SDL are available."
9353msgstr ""
9354
9355#. type: table
32747aa9 9356#: doc/guix.texi:4557
544cab3d
LC
9357msgid "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})."
9358msgstr ""
9359
9360#. type: table
32747aa9 9361#: doc/guix.texi:4563
544cab3d
LC
9362msgid "This option may be composed with the default behavior of @command{guix environment}. Packages appearing before @code{--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."
9363msgstr ""
9364
9365#. type: item
32747aa9 9366#: doc/guix.texi:4564
544cab3d
LC
9367#, no-wrap
9368msgid "--pure"
9369msgstr ""
9370
9371#. type: table
32747aa9 9372#: doc/guix.texi:4568
544cab3d
LC
9373msgid "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."
9374msgstr ""
9375
9376#. type: item
32747aa9 9377#: doc/guix.texi:4569
544cab3d
LC
9378#, no-wrap
9379msgid "--preserve=@var{regexp}"
9380msgstr ""
9381
9382#. type: itemx
32747aa9 9383#: doc/guix.texi:4570
544cab3d
LC
9384#, no-wrap
9385msgid "-E @var{regexp}"
9386msgstr ""
9387
9388#. type: table
32747aa9 9389#: doc/guix.texi:4575
544cab3d
LC
9390msgid "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."
9391msgstr ""
9392
9393#. type: example
32747aa9 9394#: doc/guix.texi:4579
544cab3d
LC
9395#, no-wrap
9396msgid ""
9397"guix environment --pure --preserve=^SLURM --ad-hoc openmpi @dots{} \\\n"
9398" -- mpirun @dots{}\n"
9399msgstr ""
9400
9401#. type: table
32747aa9 9402#: doc/guix.texi:4585
544cab3d
LC
9403msgid "This example runs @command{mpirun} in a context where the only environment variables defined are @code{PATH}, environment variables whose name starts with @code{SLURM}, as well as the usual ``precious'' variables (@code{HOME}, @code{USER}, etc.)"
9404msgstr ""
9405
9406#. type: item
32747aa9 9407#: doc/guix.texi:4586
544cab3d
LC
9408#, no-wrap
9409msgid "--search-paths"
9410msgstr ""
9411
9412#. type: table
32747aa9 9413#: doc/guix.texi:4589
544cab3d
LC
9414msgid "Display the environment variable definitions that make up the environment."
9415msgstr ""
9416
9417#. type: table
32747aa9 9418#: doc/guix.texi:4593
544cab3d
LC
9419msgid "Attempt to build for @var{system}---e.g., @code{i686-linux}."
9420msgstr ""
9421
9422#. type: item
32747aa9 9423#: doc/guix.texi:4594
544cab3d
LC
9424#, no-wrap
9425msgid "--container"
9426msgstr ""
9427
9428#. type: itemx
32747aa9 9429#: doc/guix.texi:4595
544cab3d
LC
9430#, no-wrap
9431msgid "-C"
9432msgstr ""
9433
9434#. type: item
32747aa9 9435#: doc/guix.texi:4596 doc/guix.texi:9974 doc/guix.texi:24515
544cab3d
LC
9436#, no-wrap
9437msgid "container"
9438msgstr ""
9439
9440#. type: table
32747aa9 9441#: doc/guix.texi:4602
544cab3d
LC
9442msgid "Run @var{command} within an isolated container. The current working directory outside the container is mapped inside the container. Additionally, unless overridden with @code{--user}, a dummy home directory is created that matches the current user's home directory, and @file{/etc/passwd} is configured accordingly."
9443msgstr ""
9444
9445#. type: table
32747aa9 9446#: doc/guix.texi:4606
544cab3d
LC
9447msgid "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.)"
9448msgstr ""
9449
9450#. type: item
32747aa9 9451#: doc/guix.texi:4607
544cab3d
LC
9452#, no-wrap
9453msgid "--network"
9454msgstr ""
9455
544cab3d 9456#. type: table
32747aa9 9457#: doc/guix.texi:4612
544cab3d
LC
9458msgid "For containers, share the network namespace with the host system. Containers created without this flag only have access to the loopback device."
9459msgstr ""
9460
9461#. type: item
32747aa9 9462#: doc/guix.texi:4613
544cab3d
LC
9463#, no-wrap
9464msgid "--link-profile"
9465msgstr ""
9466
9467#. type: itemx
32747aa9 9468#: doc/guix.texi:4614
544cab3d
LC
9469#, no-wrap
9470msgid "-P"
9471msgstr ""
9472
9473#. type: table
32747aa9 9474#: doc/guix.texi:4621
544cab3d
LC
9475msgid "For containers, link the environment profile to @file{~/.guix-profile} within the container. This is equivalent to running the command @command{ln -s $GUIX_ENVIRONMENT ~/.guix-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."
9476msgstr ""
9477
9478#. type: table
32747aa9 9479#: doc/guix.texi:4628
544cab3d
LC
9480msgid "Certain packages are configured to look in @code{~/.guix-profile} for configuration files and data;@footnote{For example, the @code{fontconfig} package inspects @file{~/.guix-profile/share/fonts} for additional fonts.} @code{--link-profile} allows these programs to behave as expected within the environment."
9481msgstr ""
9482
9483#. type: item
32747aa9 9484#: doc/guix.texi:4629 doc/guix.texi:9646
544cab3d
LC
9485#, no-wrap
9486msgid "--user=@var{user}"
9487msgstr ""
9488
9489#. type: itemx
32747aa9 9490#: doc/guix.texi:4630 doc/guix.texi:9647
544cab3d
LC
9491#, no-wrap
9492msgid "-u @var{user}"
9493msgstr ""
9494
9495#. type: table
32747aa9 9496#: doc/guix.texi:4637
544cab3d
LC
9497msgid "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."
9498msgstr ""
9499
9500#. type: table
32747aa9 9501#: doc/guix.texi:4642
544cab3d
LC
9502msgid "Additionally, any shared or exposed path (see @code{--share} and @code{--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."
9503msgstr ""
9504
9505#. type: example
32747aa9 9506#: doc/guix.texi:4649
544cab3d
LC
9507#, no-wrap
9508msgid ""
9509"# will expose paths as /home/foo/wd, /home/foo/test, and /home/foo/target\n"
9510"cd $HOME/wd\n"
9511"guix environment --container --user=foo \\\n"
9512" --expose=$HOME/test \\\n"
9513" --expose=/tmp/target=$HOME/target\n"
9514msgstr ""
9515
9516#. type: table
32747aa9 9517#: doc/guix.texi:4654
544cab3d
LC
9518msgid "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."
9519msgstr ""
9520
9521#. type: item
32747aa9 9522#: doc/guix.texi:4655
544cab3d
LC
9523#, no-wrap
9524msgid "--expose=@var{source}[=@var{target}]"
9525msgstr ""
9526
9527#. type: table
32747aa9 9528#: doc/guix.texi:4660
544cab3d
LC
9529msgid "For containers, expose the file system @var{source} from the host system as the read-only 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."
9530msgstr ""
9531
9532#. type: table
32747aa9 9533#: doc/guix.texi:4664
544cab3d
LC
9534msgid "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:"
9535msgstr ""
9536
9537#. type: example
32747aa9 9538#: doc/guix.texi:4667
544cab3d
LC
9539#, no-wrap
9540msgid "guix environment --container --expose=$HOME=/exchange --ad-hoc guile -- guile\n"
9541msgstr ""
9542
9543#. type: item
32747aa9 9544#: doc/guix.texi:4669
544cab3d
LC
9545#, no-wrap
9546msgid "--share=@var{source}[=@var{target}]"
9547msgstr ""
9548
9549#. type: table
32747aa9 9550#: doc/guix.texi:4674
544cab3d
LC
9551msgid "For containers, share the file system @var{source} from the host system as the 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."
9552msgstr ""
9553
9554#. type: table
32747aa9 9555#: doc/guix.texi:4678
544cab3d
LC
9556msgid "The example below spawns a Guile REPL in a container in which the user's home directory is accessible for both reading and writing via the @file{/exchange} directory:"
9557msgstr ""
9558
9559#. type: example
32747aa9 9560#: doc/guix.texi:4681
544cab3d
LC
9561#, no-wrap
9562msgid "guix environment --container --share=$HOME=/exchange --ad-hoc guile -- guile\n"
9563msgstr ""
9564
9565#. type: Plain text
32747aa9 9566#: doc/guix.texi:4688
544cab3d
LC
9567msgid "@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})."
9568msgstr ""
9569
9570#. type: section
32747aa9 9571#: doc/guix.texi:4690
544cab3d
LC
9572#, no-wrap
9573msgid "Invoking @command{guix pack}"
9574msgstr ""
9575
9576#. type: Plain text
32747aa9 9577#: doc/guix.texi:4696
544cab3d
LC
9578msgid "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."
9579msgstr ""
9580
9581#. type: quotation
32747aa9 9582#: doc/guix.texi:4701
544cab3d
LC
9583msgid "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}."
9584msgstr ""
9585
9586#. type: cindex
32747aa9 9587#: doc/guix.texi:4703
544cab3d
LC
9588#, no-wrap
9589msgid "pack"
9590msgstr ""
9591
9592#. type: cindex
32747aa9 9593#: doc/guix.texi:4704
544cab3d
LC
9594#, no-wrap
9595msgid "bundle"
9596msgstr ""
9597
9598#. type: cindex
32747aa9 9599#: doc/guix.texi:4705
544cab3d
LC
9600#, no-wrap
9601msgid "application bundle"
9602msgstr ""
9603
9604#. type: cindex
32747aa9 9605#: doc/guix.texi:4706
544cab3d
LC
9606#, no-wrap
9607msgid "software bundle"
9608msgstr ""
9609
9610#. type: Plain text
32747aa9 9611#: doc/guix.texi:4715
544cab3d
LC
9612msgid "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."
9613msgstr ""
9614
9615#. type: Plain text
32747aa9 9616#: doc/guix.texi:4718
544cab3d
LC
9617msgid "For example, to create a bundle containing Guile, Emacs, Geiser, and all their dependencies, you can run:"
9618msgstr ""
9619
9620#. type: example
32747aa9 9621#: doc/guix.texi:4723
544cab3d
LC
9622#, no-wrap
9623msgid ""
9624"$ guix pack guile emacs geiser\n"
9625"@dots{}\n"
9626"/gnu/store/@dots{}-pack.tar.gz\n"
9627msgstr ""
9628
9629#. type: Plain text
32747aa9 9630#: doc/guix.texi:4731
544cab3d
LC
9631msgid "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})."
9632msgstr ""
9633
9634#. type: Plain text
32747aa9 9635#: doc/guix.texi:4736
544cab3d
LC
9636msgid "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:"
9637msgstr ""
9638
9639#. type: example
32747aa9 9640#: doc/guix.texi:4739
544cab3d
LC
9641#, no-wrap
9642msgid "guix pack -S /opt/gnu/bin=bin guile emacs geiser\n"
9643msgstr ""
9644
9645#. type: Plain text
32747aa9 9646#: doc/guix.texi:4743
544cab3d
LC
9647msgid "That way, users can happily type @file{/opt/gnu/bin/guile} and enjoy."
9648msgstr ""
9649
9650#. type: cindex
32747aa9 9651#: doc/guix.texi:4744
544cab3d
LC
9652#, no-wrap
9653msgid "relocatable binaries, with @command{guix pack}"
9654msgstr ""
9655
9656#. type: Plain text
32747aa9 9657#: doc/guix.texi:4752
544cab3d
LC
9658msgid "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 @code{--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}."
9659msgstr ""
9660
9661#. type: cindex
32747aa9 9662#: doc/guix.texi:4753
544cab3d
LC
9663#, no-wrap
9664msgid "Docker, build an image with guix pack"
9665msgstr ""
9666
9667#. type: Plain text
32747aa9 9668#: doc/guix.texi:4756
544cab3d
LC
9669msgid "Alternatively, you can produce a pack in the Docker image format using the following command:"
9670msgstr ""
9671
9672#. type: example
32747aa9 9673#: doc/guix.texi:4759
544cab3d
LC
9674#, no-wrap
9675msgid "guix pack -f docker guile emacs geiser\n"
9676msgstr ""
9677
9678#. type: Plain text
32747aa9 9679#: doc/guix.texi:4766
544cab3d
LC
9680msgid "The result is a tarball that can be passed to the @command{docker load} command. See the @uref{https://docs.docker.com/engine/reference/commandline/load/, Docker documentation} for more information."
9681msgstr ""
9682
9683#. type: cindex
32747aa9 9684#: doc/guix.texi:4767
544cab3d
LC
9685#, no-wrap
9686msgid "Singularity, build an image with guix pack"
9687msgstr ""
9688
9689#. type: cindex
32747aa9 9690#: doc/guix.texi:4768
544cab3d
LC
9691#, no-wrap
9692msgid "SquashFS, build an image with guix pack"
9693msgstr ""
9694
9695#. type: Plain text
32747aa9 9696#: doc/guix.texi:4771
544cab3d
LC
9697msgid "Yet another option is to produce a SquashFS image with the following command:"
9698msgstr ""
9699
9700#. type: example
32747aa9 9701#: doc/guix.texi:4774
544cab3d
LC
9702#, no-wrap
9703msgid "guix pack -f squashfs guile emacs geiser\n"
9704msgstr ""
9705
9706#. type: Plain text
32747aa9
LC
9707#: doc/guix.texi:4782
9708msgid "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://singularity.lbl.gov, Singularity container execution environment}, using commands like @command{singularity shell} or @command{singularity exec}."
544cab3d
LC
9709msgstr ""
9710
9711#. type: Plain text
32747aa9 9712#: doc/guix.texi:4784
544cab3d
LC
9713msgid "Several command-line options allow you to customize your pack:"
9714msgstr ""
9715
9716#. type: table
32747aa9 9717#: doc/guix.texi:4789
544cab3d
LC
9718msgid "Produce a pack in the given @var{format}."
9719msgstr ""
9720
9721#. type: table
32747aa9 9722#: doc/guix.texi:4791
544cab3d
LC
9723msgid "The available formats are:"
9724msgstr ""
9725
9726#. type: item
32747aa9 9727#: doc/guix.texi:4793
544cab3d
LC
9728#, no-wrap
9729msgid "tarball"
9730msgstr ""
9731
9732#. type: table
32747aa9 9733#: doc/guix.texi:4796
544cab3d
LC
9734msgid "This is the default format. It produces a tarball containing all the specified binaries and symlinks."
9735msgstr ""
9736
9737#. type: item
32747aa9 9738#: doc/guix.texi:4797
544cab3d
LC
9739#, no-wrap
9740msgid "docker"
9741msgstr ""
9742
9743#. type: table
32747aa9 9744#: doc/guix.texi:4801
544cab3d
LC
9745msgid "This produces a tarball that follows the @uref{https://github.com/docker/docker/blob/master/image/spec/v1.2.md, Docker Image Specification}."
9746msgstr ""
9747
9748#. type: item
32747aa9 9749#: doc/guix.texi:4802
544cab3d
LC
9750#, no-wrap
9751msgid "squashfs"
9752msgstr ""
9753
9754#. type: table
32747aa9 9755#: doc/guix.texi:4806
544cab3d
LC
9756msgid "This produces a SquashFS image containing all the specified binaries and symlinks, as well as empty mount points for virtual file systems like procfs."
9757msgstr ""
9758
9759#. type: cindex
32747aa9 9760#: doc/guix.texi:4808
544cab3d
LC
9761#, no-wrap
9762msgid "relocatable binaries"
9763msgstr ""
9764
9765#. type: item
32747aa9 9766#: doc/guix.texi:4809
544cab3d
LC
9767#, no-wrap
9768msgid "--relocatable"
9769msgstr ""
9770
9771#. type: table
32747aa9 9772#: doc/guix.texi:4813
544cab3d
LC
9773msgid "Produce @dfn{relocatable binaries}---i.e., binaries that can be placed anywhere in the file system hierarchy and run from there."
9774msgstr ""
9775
9776#. type: table
32747aa9 9777#: doc/guix.texi:4821
544cab3d
LC
9778msgid "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 PRoot if user namespaces are unavailable, and essentially work anywhere---see below for the implications."
9779msgstr ""
9780
9781#. type: table
32747aa9 9782#: doc/guix.texi:4823
544cab3d
LC
9783msgid "For example, if you create a pack containing Bash with:"
9784msgstr ""
9785
9786#. type: example
32747aa9 9787#: doc/guix.texi:4826
544cab3d
LC
9788#, no-wrap
9789msgid "guix pack -RR -S /mybin=bin bash\n"
9790msgstr ""
9791
9792#. type: table
32747aa9 9793#: doc/guix.texi:4831
544cab3d
LC
9794msgid "...@: you can copy that pack to a machine that lacks Guix, and from your home directory as a normal user, run:"
9795msgstr ""
9796
9797#. type: example
32747aa9 9798#: doc/guix.texi:4835
544cab3d
LC
9799#, no-wrap
9800msgid ""
9801"tar xf pack.tar.gz\n"
9802"./mybin/sh\n"
9803msgstr ""
9804
9805#. type: table
32747aa9 9806#: doc/guix.texi:4843
544cab3d
LC
9807msgid "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."
9808msgstr ""
9809
9810#. type: quotation
32747aa9 9811#: doc/guix.texi:4849
544cab3d
LC
9812msgid "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."
9813msgstr ""
9814
9815#. type: quotation
32747aa9 9816#: doc/guix.texi:4854
544cab3d
LC
9817msgid "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 PRoot if user namespaces are not supported."
9818msgstr ""
9819
9820#. type: quotation
32747aa9 9821#: doc/guix.texi:4860
544cab3d
LC
9822msgid "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."
9823msgstr ""
9824
9825#. type: table
32747aa9 9826#: doc/guix.texi:4865 doc/guix.texi:8878 doc/guix.texi:9536
544cab3d
LC
9827msgid "Consider the package @var{expr} evaluates to."
9828msgstr ""
9829
9830#. type: table
32747aa9 9831#: doc/guix.texi:4869
544cab3d
LC
9832msgid "This has the same purpose as the same-named option in @command{guix build} (@pxref{Additional Build Options, @code{--expression} in @command{guix build}})."
9833msgstr ""
9834
9835#. type: table
32747aa9 9836#: doc/guix.texi:4874
544cab3d
LC
9837msgid "Use the packages contained in the manifest object returned by the Scheme code in @var{file}."
9838msgstr ""
9839
9840#. type: table
32747aa9 9841#: doc/guix.texi:4882
544cab3d
LC
9842msgid "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."
9843msgstr ""
9844
9845#. type: item
32747aa9 9846#: doc/guix.texi:4888 doc/guix.texi:8100
544cab3d
LC
9847#, no-wrap
9848msgid "--target=@var{triplet}"
9849msgstr ""
9850
9851#. type: cindex
32747aa9 9852#: doc/guix.texi:4889 doc/guix.texi:5235 doc/guix.texi:8101
544cab3d
LC
9853#, no-wrap
9854msgid "cross-compilation"
9855msgstr ""
9856
9857#. type: table
32747aa9 9858#: doc/guix.texi:4893
544cab3d
LC
9859msgid "Cross-build for @var{triplet}, which must be a valid GNU triplet, such as @code{\"mips64el-linux-gnu\"} (@pxref{Specifying target triplets, GNU configuration triplets,, autoconf, Autoconf})."
9860msgstr ""
9861
9862#. type: item
32747aa9 9863#: doc/guix.texi:4894
544cab3d
LC
9864#, no-wrap
9865msgid "--compression=@var{tool}"
9866msgstr ""
9867
9868#. type: itemx
32747aa9 9869#: doc/guix.texi:4895
544cab3d
LC
9870#, no-wrap
9871msgid "-C @var{tool}"
9872msgstr ""
9873
9874#. type: table
32747aa9 9875#: doc/guix.texi:4898
544cab3d
LC
9876msgid "Compress the resulting tarball using @var{tool}---one of @code{gzip}, @code{bzip2}, @code{xz}, @code{lzip}, or @code{none} for no compression."
9877msgstr ""
9878
9879#. type: item
32747aa9 9880#: doc/guix.texi:4899
544cab3d
LC
9881#, no-wrap
9882msgid "--symlink=@var{spec}"
9883msgstr ""
9884
9885#. type: itemx
32747aa9 9886#: doc/guix.texi:4900
544cab3d
LC
9887#, no-wrap
9888msgid "-S @var{spec}"
9889msgstr ""
9890
9891#. type: table
32747aa9 9892#: doc/guix.texi:4903
544cab3d
LC
9893msgid "Add the symlinks specified by @var{spec} to the pack. This option can appear several times."
9894msgstr ""
9895
9896#. type: table
32747aa9 9897#: doc/guix.texi:4907
544cab3d
LC
9898msgid "@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."
9899msgstr ""
9900
9901#. type: table
32747aa9 9902#: doc/guix.texi:4910
544cab3d
LC
9903msgid "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."
9904msgstr ""
9905
9906#. type: item
32747aa9 9907#: doc/guix.texi:4911
544cab3d
LC
9908#, no-wrap
9909msgid "--save-provenance"
9910msgstr ""
9911
9912#. type: table
32747aa9 9913#: doc/guix.texi:4915
544cab3d
LC
9914msgid "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})."
9915msgstr ""
9916
9917#. type: table
32747aa9 9918#: doc/guix.texi:4921
544cab3d
LC
9919msgid "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."
9920msgstr ""
9921
9922#. type: table
32747aa9 9923#: doc/guix.texi:4927
544cab3d
LC
9924msgid "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."
9925msgstr ""
9926
9927#. type: item
32747aa9 9928#: doc/guix.texi:4928
544cab3d
LC
9929#, no-wrap
9930msgid "--localstatedir"
9931msgstr ""
9932
9933#. type: itemx
32747aa9 9934#: doc/guix.texi:4929
544cab3d
LC
9935#, no-wrap
9936msgid "--profile-name=@var{name}"
9937msgstr ""
9938
9939#. type: table
32747aa9 9940#: doc/guix.texi:4934
544cab3d
LC
9941msgid "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}."
9942msgstr ""
9943
9944#. type: table
32747aa9 9945#: doc/guix.texi:4940
544cab3d
LC
9946msgid "@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."
9947msgstr ""
9948
9949#. type: table
32747aa9 9950#: doc/guix.texi:4943
544cab3d
LC
9951msgid "One use case for this is the Guix self-contained binary tarball (@pxref{Binary Installation})."
9952msgstr ""
9953
9954#. type: table
32747aa9 9955#: doc/guix.texi:4947
544cab3d
LC
9956msgid "Use the bootstrap binaries to build the pack. This option is only useful to Guix developers."
9957msgstr ""
9958
9959#. type: Plain text
32747aa9 9960#: doc/guix.texi:4952
544cab3d
LC
9961msgid "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})."
9962msgstr ""
9963
9964#. type: Plain text
32747aa9 9965#: doc/guix.texi:4964
544cab3d
LC
9966msgid "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."
9967msgstr ""
9968
9969#. type: Plain text
32747aa9 9970#: doc/guix.texi:4970
544cab3d
LC
9971msgid "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 a specific build users, to minimize interference with the rest of the system."
9972msgstr ""
9973
9974#. type: Plain text
32747aa9 9975#: doc/guix.texi:4979
544cab3d
LC
9976msgid "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."
9977msgstr ""
9978
9979#. type: Plain text
32747aa9 9980#: doc/guix.texi:4982
544cab3d
LC
9981msgid "This chapter describes all these APIs in turn, starting from high-level package definitions."
9982msgstr ""
9983
9984#. type: Plain text
32747aa9 9985#: doc/guix.texi:5008
544cab3d
LC
9986msgid "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})."
9987msgstr ""
9988
9989#. type: Plain text
32747aa9
LC
9990#: doc/guix.texi:5015
9991msgid "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."
544cab3d
LC
9992msgstr ""
9993
9994#. type: cindex
32747aa9 9995#: doc/guix.texi:5017
544cab3d
LC
9996#, no-wrap
9997msgid "package module search path"
9998msgstr ""
9999
10000#. type: Plain text
32747aa9 10001#: doc/guix.texi:5026
544cab3d
LC
10002msgid "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 @code{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:"
10003msgstr ""
10004
10005#. type: enumerate
32747aa9 10006#: doc/guix.texi:5033
544cab3d
LC
10007msgid "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 @code{GUIX_PACKAGE_PATH} environment variable described below."
10008msgstr ""
10009
10010#. type: enumerate
32747aa9 10011#: doc/guix.texi:5039
544cab3d
LC
10012msgid "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."
10013msgstr ""
10014
10015#. type: Plain text
32747aa9 10016#: doc/guix.texi:5042
544cab3d
LC
10017msgid "@code{GUIX_PACKAGE_PATH} works similarly to other search path variables:"
10018msgstr ""
10019
10020#. type: defvr
32747aa9 10021#: doc/guix.texi:5043
544cab3d
LC
10022#, no-wrap
10023msgid "{Environment Variable} GUIX_PACKAGE_PATH"
10024msgstr ""
10025
10026#. type: defvr
32747aa9 10027#: doc/guix.texi:5047
544cab3d
LC
10028msgid "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."
10029msgstr ""
10030
10031#. type: Plain text
32747aa9 10032#: doc/guix.texi:5055
544cab3d
LC
10033msgid "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}."
10034msgstr ""
10035
10036#. type: Plain text
32747aa9 10037#: doc/guix.texi:5063
544cab3d
LC
10038msgid "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:"
10039msgstr ""
10040
10041#. type: example
32747aa9 10042#: doc/guix.texi:5071
544cab3d
LC
10043#, no-wrap
10044msgid ""
10045"(define-module (gnu packages hello)\n"
10046" #:use-module (guix packages)\n"
10047" #:use-module (guix download)\n"
10048" #:use-module (guix build-system gnu)\n"
10049" #:use-module (guix licenses)\n"
10050" #:use-module (gnu packages gawk))\n"
10051"\n"
10052msgstr ""
10053
10054#. type: example
32747aa9 10055#: doc/guix.texi:5090
544cab3d
LC
10056#, no-wrap
10057msgid ""
10058"(define-public hello\n"
10059" (package\n"
10060" (name \"hello\")\n"
10061" (version \"2.10\")\n"
10062" (source (origin\n"
10063" (method url-fetch)\n"
10064" (uri (string-append \"mirror://gnu/hello/hello-\" version\n"
10065" \".tar.gz\"))\n"
10066" (sha256\n"
10067" (base32\n"
10068" \"0ssi1wpaf7plaswqqjwigppsg5fyh99vdlb9kzl7c9lng89ndq1i\"))))\n"
10069" (build-system gnu-build-system)\n"
10070" (arguments '(#:configure-flags '(\"--enable-silent-rules\")))\n"
10071" (inputs `((\"gawk\" ,gawk)))\n"
10072" (synopsis \"Hello, GNU world: An example GNU package\")\n"
10073" (description \"Guess what GNU Hello prints!\")\n"
32747aa9 10074" (home-page \"https://www.gnu.org/software/hello/\")\n"
544cab3d
LC
10075" (license gpl3+)))\n"
10076msgstr ""
10077
10078#. type: Plain text
32747aa9 10079#: doc/guix.texi:5100
544cab3d
LC
10080msgid "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\"}."
10081msgstr ""
10082
10083#. type: Plain text
32747aa9 10084#: doc/guix.texi:5104
544cab3d
LC
10085msgid "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})."
10086msgstr ""
10087
10088#. type: Plain text
32747aa9 10089#: doc/guix.texi:5110
544cab3d
LC
10090msgid "In the example above, @var{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})."
10091msgstr ""
10092
10093#. type: Plain text
32747aa9 10094#: doc/guix.texi:5112
544cab3d
LC
10095msgid "There are a few points worth noting in the above package definition:"
10096msgstr ""
10097
10098#. type: itemize
32747aa9 10099#: doc/guix.texi:5119
544cab3d
LC
10100msgid "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."
10101msgstr ""
10102
10103#. type: itemize
32747aa9 10104#: doc/guix.texi:5122
544cab3d
LC
10105msgid "The @code{mirror://gnu} prefix instructs @code{url-fetch} to use one of the GNU mirrors defined in @code{(guix download)}."
10106msgstr ""
10107
10108#. type: itemize
32747aa9 10109#: doc/guix.texi:5129
544cab3d
LC
10110msgid "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})."
10111msgstr ""
10112
10113#. type: cindex
32747aa9 10114#: doc/guix.texi:5130
544cab3d
LC
10115#, no-wrap
10116msgid "patches"
10117msgstr ""
10118
10119#. type: itemize
32747aa9 10120#: doc/guix.texi:5134
544cab3d
LC
10121msgid "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."
10122msgstr ""
10123
10124#. type: cindex
32747aa9 10125#: doc/guix.texi:5136
544cab3d
LC
10126#, no-wrap
10127msgid "GNU Build System"
10128msgstr ""
10129
10130#. type: itemize
32747aa9 10131#: doc/guix.texi:5142
544cab3d
LC
10132msgid "The @code{build-system} field specifies the procedure to build the package (@pxref{Build Systems}). Here, @var{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."
10133msgstr ""
10134
10135#. type: itemize
32747aa9 10136#: doc/guix.texi:5148
544cab3d
LC
10137msgid "The @code{arguments} field specifies options for the build system (@pxref{Build Systems}). Here it is interpreted by @var{gnu-build-system} as a request run @file{configure} with the @code{--enable-silent-rules} flag."
10138msgstr ""
10139
10140#. type: findex
32747aa9 10141#: doc/guix.texi:5149 doc/guix.texi:5152
544cab3d
LC
10142#, no-wrap
10143msgid "quote"
10144msgstr ""
10145
10146#. type: cindex
32747aa9 10147#: doc/guix.texi:5150
544cab3d
LC
10148#, no-wrap
10149msgid "quoting"
10150msgstr ""
10151
10152#. type: findex
32747aa9 10153#: doc/guix.texi:5151
544cab3d
LC
10154#, no-wrap
10155msgid "'"
10156msgstr ""
10157
10158#. type: itemize
32747aa9 10159#: doc/guix.texi:5160
544cab3d
LC
10160msgid "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})."
10161msgstr ""
10162
10163#. type: itemize
32747aa9 10164#: doc/guix.texi:5166
544cab3d
LC
10165msgid "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})."
10166msgstr ""
10167
10168#. type: itemize
32747aa9 10169#: doc/guix.texi:5172
544cab3d
LC
10170msgid "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 @var{gawk} variable; @var{gawk} is itself bound to a @code{<package>} object."
10171msgstr ""
10172
10173#. type: cindex
32747aa9 10174#: doc/guix.texi:5173
544cab3d
LC
10175#, no-wrap
10176msgid "backquote (quasiquote)"
10177msgstr ""
10178
10179#. type: findex
32747aa9 10180#: doc/guix.texi:5174
544cab3d
LC
10181#, no-wrap
10182msgid "`"
10183msgstr ""
10184
10185#. type: findex
32747aa9 10186#: doc/guix.texi:5175
544cab3d
LC
10187#, no-wrap
10188msgid "quasiquote"
10189msgstr ""
10190
10191#. type: cindex
32747aa9 10192#: doc/guix.texi:5176
544cab3d
LC
10193#, no-wrap
10194msgid "comma (unquote)"
10195msgstr ""
10196
10197#. type: findex
32747aa9 10198#: doc/guix.texi:5177
544cab3d
LC
10199#, no-wrap
10200msgid ","
10201msgstr ""
10202
10203#. type: findex
32747aa9 10204#: doc/guix.texi:5178
544cab3d
LC
10205#, no-wrap
10206msgid "unquote"
10207msgstr ""
10208
10209#. type: findex
32747aa9 10210#: doc/guix.texi:5179
544cab3d
LC
10211#, no-wrap
10212msgid ",@@"
10213msgstr ""
10214
10215#. type: findex
32747aa9 10216#: doc/guix.texi:5180
544cab3d
LC
10217#, no-wrap
10218msgid "unquote-splicing"
10219msgstr ""
10220
10221#. type: itemize
32747aa9 10222#: doc/guix.texi:5186
544cab3d
LC
10223msgid "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})."
10224msgstr ""
10225
10226#. type: itemize
32747aa9 10227#: doc/guix.texi:5190
544cab3d
LC
10228msgid "Note that GCC, Coreutils, Bash, and other essential tools do not need to be specified as inputs here. Instead, @var{gnu-build-system} takes care of ensuring that they are present (@pxref{Build Systems})."
10229msgstr ""
10230
10231#. type: itemize
32747aa9 10232#: doc/guix.texi:5194
544cab3d
LC
10233msgid "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."
10234msgstr ""
10235
10236#. type: Plain text
32747aa9 10237#: doc/guix.texi:5197
544cab3d
LC
10238msgid "@xref{package Reference}, for a full description of possible fields."
10239msgstr ""
10240
10241#. type: Plain text
32747aa9 10242#: doc/guix.texi:5208
544cab3d
LC
10243msgid "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."
10244msgstr ""
10245
10246#. type: vindex
32747aa9 10247#: doc/guix.texi:5208
544cab3d
LC
10248#, no-wrap
10249msgid "GUIX_PACKAGE_PATH"
10250msgstr ""
10251
10252#. type: Plain text
32747aa9 10253#: doc/guix.texi:5212
544cab3d
LC
10254msgid "Lastly, @pxref{Channels}, for information on how to extend the distribution by adding your own package definitions in a ``channel''."
10255msgstr ""
10256
10257#. type: Plain text
32747aa9 10258#: doc/guix.texi:5216
544cab3d
LC
10259msgid "Finally, updating the package definition to a new upstream version can be partly automated by the @command{guix refresh} command (@pxref{Invoking guix refresh})."
10260msgstr ""
10261
10262#. type: Plain text
32747aa9 10263#: doc/guix.texi:5222
544cab3d
LC
10264msgid "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 @code{.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})."
10265msgstr ""
10266
10267#. type: deffn
32747aa9 10268#: doc/guix.texi:5223
544cab3d
LC
10269#, no-wrap
10270msgid "{Scheme Procedure} package-derivation @var{store} @var{package} [@var{system}]"
10271msgstr ""
10272
10273#. type: deffn
32747aa9 10274#: doc/guix.texi:5226
544cab3d
LC
10275msgid "Return the @code{<derivation>} object of @var{package} for @var{system} (@pxref{Derivations})."
10276msgstr ""
10277
10278#. type: deffn
32747aa9 10279#: doc/guix.texi:5232
544cab3d
LC
10280msgid "@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})."
10281msgstr ""
10282
10283#. type: Plain text
32747aa9 10284#: doc/guix.texi:5238
544cab3d
LC
10285msgid "Similarly, it is possible to compute a derivation that cross-builds a package for some other system:"
10286msgstr ""
10287
10288#. type: deffn
32747aa9 10289#: doc/guix.texi:5239
544cab3d
LC
10290#, no-wrap
10291msgid "{Scheme Procedure} package-cross-derivation @var{store} @"
10292msgstr ""
10293
10294#. type: deffn
32747aa9 10295#: doc/guix.texi:5243
544cab3d
LC
10296msgid "@var{package} @var{target} [@var{system}] Return the @code{<derivation>} object of @var{package} cross-built from @var{system} to @var{target}."
10297msgstr ""
10298
10299#. type: deffn
32747aa9
LC
10300#: doc/guix.texi:5247
10301msgid "@var{target} must be a valid GNU triplet denoting the target hardware and operating system, such as @code{\"mips64el-linux-gnu\"} (@pxref{Specifying Target Triplets,,, autoconf, Autoconf})."
544cab3d
LC
10302msgstr ""
10303
10304#. type: cindex
32747aa9 10305#: doc/guix.texi:5249
544cab3d
LC
10306#, no-wrap
10307msgid "package transformations"
10308msgstr ""
10309
10310#. type: cindex
32747aa9 10311#: doc/guix.texi:5250
544cab3d
LC
10312#, no-wrap
10313msgid "input rewriting"
10314msgstr ""
10315
10316#. type: cindex
32747aa9 10317#: doc/guix.texi:5251
544cab3d
LC
10318#, no-wrap
10319msgid "dependency tree rewriting"
10320msgstr ""
10321
10322#. type: Plain text
32747aa9 10323#: doc/guix.texi:5255
544cab3d
LC
10324msgid "Packages can be manipulated in arbitrary ways. An example of a useful transformation is @dfn{input rewriting}, whereby the dependency tree of a package is rewritten by replacing specific inputs by others:"
10325msgstr ""
10326
10327#. type: deffn
32747aa9 10328#: doc/guix.texi:5256
544cab3d
LC
10329#, no-wrap
10330msgid "{Scheme Procedure} package-input-rewriting @var{replacements} @"
10331msgstr ""
10332
10333#. type: deffn
32747aa9 10334#: doc/guix.texi:5263
544cab3d
LC
10335msgid "[@var{rewrite-name}] Return a procedure that, when passed a package, replaces its direct and indirect dependencies (but not its implicit inputs) 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."
10336msgstr ""
10337
10338#. type: deffn
32747aa9 10339#: doc/guix.texi:5266
544cab3d
LC
10340msgid "Optionally, @var{rewrite-name} is a one-argument procedure that takes the name of a package and returns its new name after rewrite."
10341msgstr ""
10342
10343#. type: Plain text
32747aa9 10344#: doc/guix.texi:5270
544cab3d
LC
10345msgid "Consider this example:"
10346msgstr ""
10347
10348#. type: example
32747aa9 10349#: doc/guix.texi:5276
544cab3d
LC
10350#, no-wrap
10351msgid ""
10352"(define libressl-instead-of-openssl\n"
10353" ;; This is a procedure to replace OPENSSL by LIBRESSL,\n"
10354" ;; recursively.\n"
10355" (package-input-rewriting `((,openssl . ,libressl))))\n"
10356"\n"
10357msgstr ""
10358
10359#. type: example
32747aa9 10360#: doc/guix.texi:5279
544cab3d
LC
10361#, no-wrap
10362msgid ""
10363"(define git-with-libressl\n"
10364" (libressl-instead-of-openssl git))\n"
10365msgstr ""
10366
10367#. type: Plain text
32747aa9 10368#: doc/guix.texi:5287
544cab3d
LC
10369msgid "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}})."
10370msgstr ""
10371
10372#. type: Plain text
32747aa9 10373#: doc/guix.texi:5290
544cab3d
LC
10374msgid "The following variant of @code{package-input-rewriting} can match packages to be replaced by name rather than by identity."
10375msgstr ""
10376
10377#. type: deffn
32747aa9 10378#: doc/guix.texi:5291
544cab3d
LC
10379#, no-wrap
10380msgid "{Scheme Procedure} package-input-rewriting/spec @var{replacements}"
10381msgstr ""
10382
10383#. type: deffn
32747aa9 10384#: doc/guix.texi:5297
544cab3d
LC
10385msgid "Return a procedure that, given a package, applies the given @var{replacements} to all the package graph (excluding implicit inputs). @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."
10386msgstr ""
10387
10388#. type: Plain text
32747aa9 10389#: doc/guix.texi:5300
544cab3d
LC
10390msgid "The example above could be rewritten this way:"
10391msgstr ""
10392
10393#. type: example
32747aa9 10394#: doc/guix.texi:5305
544cab3d
LC
10395#, no-wrap
10396msgid ""
10397"(define libressl-instead-of-openssl\n"
10398" ;; Replace all the packages called \"openssl\" with LibreSSL.\n"
10399" (package-input-rewriting/spec `((\"openssl\" . ,(const libressl)))))\n"
10400msgstr ""
10401
10402#. type: Plain text
32747aa9 10403#: doc/guix.texi:5310
544cab3d
LC
10404msgid "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."
10405msgstr ""
10406
10407#. type: Plain text
32747aa9 10408#: doc/guix.texi:5314
544cab3d
LC
10409msgid "A more generic procedure to rewrite a package dependency graph is @code{package-mapping}: it supports arbitrary changes to nodes in the graph."
10410msgstr ""
10411
10412#. type: deffn
32747aa9 10413#: doc/guix.texi:5315
544cab3d
LC
10414#, no-wrap
10415msgid "{Scheme Procedure} package-mapping @var{proc} [@var{cut?}]"
10416msgstr ""
10417
10418#. type: deffn
32747aa9 10419#: doc/guix.texi:5319
544cab3d
LC
10420msgid "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."
10421msgstr ""
10422
10423#. type: subsection
32747aa9 10424#: doc/guix.texi:5328
544cab3d
LC
10425#, no-wrap
10426msgid "@code{package} Reference"
10427msgstr ""
10428
10429#. type: Plain text
32747aa9 10430#: doc/guix.texi:5332
544cab3d
LC
10431msgid "This section summarizes all the options available in @code{package} declarations (@pxref{Defining Packages})."
10432msgstr ""
10433
10434#. type: deftp
32747aa9 10435#: doc/guix.texi:5333
544cab3d
LC
10436#, no-wrap
10437msgid "{Data Type} package"
10438msgstr ""
10439
10440#. type: deftp
32747aa9 10441#: doc/guix.texi:5335
544cab3d
LC
10442msgid "This is the data type representing a package recipe."
10443msgstr ""
10444
10445#. type: table
32747aa9 10446#: doc/guix.texi:5339
544cab3d
LC
10447msgid "The name of the package, as a string."
10448msgstr ""
10449
10450#. type: code{#1}
32747aa9 10451#: doc/guix.texi:5340
544cab3d
LC
10452#, no-wrap
10453msgid "version"
10454msgstr ""
10455
10456#. type: table
32747aa9 10457#: doc/guix.texi:5342
544cab3d
LC
10458msgid "The version of the package, as a string."
10459msgstr ""
10460
10461#. type: code{#1}
32747aa9
LC
10462#: doc/guix.texi:5343 doc/guix.texi:9130 doc/guix.texi:10879
10463#: doc/guix.texi:11317
544cab3d
LC
10464#, no-wrap
10465msgid "source"
10466msgstr ""
10467
10468#. type: table
32747aa9 10469#: doc/guix.texi:5350
544cab3d
LC
10470msgid "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}})."
10471msgstr ""
10472
10473#. type: code{#1}
32747aa9 10474#: doc/guix.texi:5351
544cab3d
LC
10475#, no-wrap
10476msgid "build-system"
10477msgstr ""
10478
10479#. type: table
32747aa9 10480#: doc/guix.texi:5354
544cab3d
LC
10481msgid "The build system that should be used to build the package (@pxref{Build Systems})."
10482msgstr ""
10483
10484#. type: item
32747aa9 10485#: doc/guix.texi:5355 doc/guix.texi:12915
544cab3d
LC
10486#, no-wrap
10487msgid "@code{arguments} (default: @code{'()})"
10488msgstr ""
10489
10490#. type: table
32747aa9 10491#: doc/guix.texi:5358
544cab3d
LC
10492msgid "The arguments that should be passed to the build system. This is a list, typically containing sequential keyword-value pairs."
10493msgstr ""
10494
10495#. type: item
32747aa9 10496#: doc/guix.texi:5359
544cab3d
LC
10497#, no-wrap
10498msgid "@code{inputs} (default: @code{'()})"
10499msgstr ""
10500
10501#. type: itemx
32747aa9 10502#: doc/guix.texi:5360
544cab3d
LC
10503#, no-wrap
10504msgid "@code{native-inputs} (default: @code{'()})"
10505msgstr ""
10506
10507#. type: itemx
32747aa9 10508#: doc/guix.texi:5361
544cab3d
LC
10509#, no-wrap
10510msgid "@code{propagated-inputs} (default: @code{'()})"
10511msgstr ""
10512
10513#. type: cindex
32747aa9 10514#: doc/guix.texi:5362
544cab3d
LC
10515#, no-wrap
10516msgid "inputs, of packages"
10517msgstr ""
10518
10519#. type: table
32747aa9 10520#: doc/guix.texi:5370
544cab3d
LC
10521msgid "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:"
10522msgstr ""
10523
10524#. type: example
32747aa9 10525#: doc/guix.texi:5375
544cab3d
LC
10526#, no-wrap
10527msgid ""
10528"`((\"libffi\" ,libffi)\n"
10529" (\"libunistring\" ,libunistring)\n"
10530" (\"glib:bin\" ,glib \"bin\")) ;the \"bin\" output of Glib\n"
10531msgstr ""
10532
10533#. type: cindex
32747aa9 10534#: doc/guix.texi:5377
544cab3d
LC
10535#, no-wrap
10536msgid "cross compilation, package dependencies"
10537msgstr ""
10538
10539#. type: table
32747aa9 10540#: doc/guix.texi:5383
544cab3d
LC
10541msgid "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."
10542msgstr ""
10543
10544#. type: table
32747aa9 10545#: doc/guix.texi:5388
544cab3d
LC
10546msgid "@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})."
10547msgstr ""
10548
10549#. type: anchor{#1}
32747aa9 10550#: doc/guix.texi:5395
544cab3d
LC
10551msgid "package-propagated-inputs"
10552msgstr ""
10553
10554#. type: table
32747aa9 10555#: doc/guix.texi:5395
544cab3d
LC
10556msgid "Lastly, @code{propagated-inputs} is similar to @code{inputs}, but the specified packages will be automatically installed 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.)"
10557msgstr ""
10558
10559#. type: table
32747aa9 10560#: doc/guix.texi:5399
544cab3d
LC
10561msgid "For example this is necessary when a C/C++ library needs headers of another library to compile, or when a pkg-config file refers to another one @i{via} its @code{Requires} field."
10562msgstr ""
10563
10564#. type: table
32747aa9 10565#: doc/guix.texi:5406
544cab3d
LC
10566msgid "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. To ensure that libraries written in those languages can find library code they depend on at run time, run-time dependencies must be listed in @code{propagated-inputs} rather than @code{inputs}."
10567msgstr ""
10568
10569#. type: item
32747aa9 10570#: doc/guix.texi:5407
544cab3d
LC
10571#, no-wrap
10572msgid "@code{outputs} (default: @code{'(\"out\")})"
10573msgstr ""
10574
10575#. type: table
32747aa9 10576#: doc/guix.texi:5410
544cab3d
LC
10577msgid "The list of output names of the package. @xref{Packages with Multiple Outputs}, for typical uses of additional outputs."
10578msgstr ""
10579
10580#. type: item
32747aa9 10581#: doc/guix.texi:5411
544cab3d
LC
10582#, no-wrap
10583msgid "@code{native-search-paths} (default: @code{'()})"
10584msgstr ""
10585
10586#. type: itemx
32747aa9 10587#: doc/guix.texi:5412
544cab3d
LC
10588#, no-wrap
10589msgid "@code{search-paths} (default: @code{'()})"
10590msgstr ""
10591
10592#. type: table
32747aa9 10593#: doc/guix.texi:5415
544cab3d
LC
10594msgid "A list of @code{search-path-specification} objects describing search-path environment variables honored by the package."
10595msgstr ""
10596
10597#. type: item
32747aa9 10598#: doc/guix.texi:5416
544cab3d
LC
10599#, no-wrap
10600msgid "@code{replacement} (default: @code{#f})"
10601msgstr ""
10602
10603#. type: table
32747aa9 10604#: doc/guix.texi:5420
544cab3d
LC
10605msgid "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."
10606msgstr ""
10607
10608#. type: item
32747aa9 10609#: doc/guix.texi:5421 doc/guix.texi:9122
544cab3d
LC
10610#, no-wrap
10611msgid "synopsis"
10612msgstr ""
10613
10614#. type: table
32747aa9 10615#: doc/guix.texi:5423
544cab3d
LC
10616msgid "A one-line description of the package."
10617msgstr ""
10618
10619#. type: item
32747aa9 10620#: doc/guix.texi:5424 doc/guix.texi:9123 doc/guix.texi:25003
544cab3d
LC
10621#, no-wrap
10622msgid "description"
10623msgstr ""
10624
10625#. type: table
32747aa9 10626#: doc/guix.texi:5426
544cab3d
LC
10627msgid "A more elaborate description of the package."
10628msgstr ""
10629
10630#. type: code{#1}
32747aa9 10631#: doc/guix.texi:5427
544cab3d
LC
10632#, no-wrap
10633msgid "license"
10634msgstr ""
10635
10636#. type: cindex
32747aa9 10637#: doc/guix.texi:5428
544cab3d
LC
10638#, no-wrap
10639msgid "license, of packages"
10640msgstr ""
10641
10642#. type: table
32747aa9 10643#: doc/guix.texi:5431
544cab3d
LC
10644msgid "The license of the package; a value from @code{(guix licenses)}, or a list of such values."
10645msgstr ""
10646
10647#. type: itemx
32747aa9 10648#: doc/guix.texi:5432 doc/guix.texi:9131
544cab3d
LC
10649#, no-wrap
10650msgid "home-page"
10651msgstr ""
10652
10653#. type: table
32747aa9 10654#: doc/guix.texi:5434
544cab3d
LC
10655msgid "The URL to the home-page of the package, as a string."
10656msgstr ""
10657
10658#. type: item
32747aa9 10659#: doc/guix.texi:5435
544cab3d
LC
10660#, no-wrap
10661msgid "@code{supported-systems} (default: @var{%supported-systems})"
10662msgstr ""
10663
10664#. type: table
32747aa9 10665#: doc/guix.texi:5438
544cab3d
LC
10666msgid "The list of systems supported by the package, as strings of the form @code{architecture-kernel}, for example @code{\"x86_64-linux\"}."
10667msgstr ""
10668
10669#. type: item
32747aa9 10670#: doc/guix.texi:5439
544cab3d
LC
10671#, no-wrap
10672msgid "@code{maintainers} (default: @code{'()})"
10673msgstr ""
10674
10675#. type: table
32747aa9 10676#: doc/guix.texi:5441
544cab3d
LC
10677msgid "The list of maintainers of the package, as @code{maintainer} objects."
10678msgstr ""
10679
10680#. type: item
32747aa9 10681#: doc/guix.texi:5442
544cab3d
LC
10682#, no-wrap
10683msgid "@code{location} (default: source location of the @code{package} form)"
10684msgstr ""
10685
10686#. type: table
32747aa9 10687#: doc/guix.texi:5446
544cab3d
LC
10688msgid "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."
10689msgstr ""
10690
32747aa9
LC
10691#. type: deffn
10692#: doc/guix.texi:5449
10693#, no-wrap
10694msgid "{Scheme Syntax} this-package"
10695msgstr ""
10696
10697#. type: deffn
10698#: doc/guix.texi:5452
10699msgid "When used in the @emph{lexical scope} of a package field definition, this identifier resolves to the package being defined."
10700msgstr ""
10701
10702#. type: deffn
10703#: doc/guix.texi:5455
10704msgid "The example below shows how to add a package as a native input of itself when cross-compiling:"
10705msgstr ""
10706
10707#. type: example
10708#: doc/guix.texi:5460
10709#, no-wrap
10710msgid ""
10711"(package\n"
10712" (name \"guile\")\n"
10713" ;; ...\n"
10714"\n"
10715msgstr ""
10716
10717#. type: example
10718#: doc/guix.texi:5466
10719#, no-wrap
10720msgid ""
10721" ;; When cross-compiled, Guile, for example, depends on\n"
10722" ;; a native version of itself. Add it here.\n"
10723" (native-inputs (if (%current-target-system)\n"
10724" `((\"self\" ,this-package))\n"
10725" '())))\n"
10726msgstr ""
10727
10728#. type: deffn
10729#: doc/guix.texi:5469
10730msgid "It is an error to refer to @code{this-package} outside a package definition."
10731msgstr ""
10732
544cab3d 10733#. type: subsection
32747aa9 10734#: doc/guix.texi:5472
544cab3d
LC
10735#, no-wrap
10736msgid "@code{origin} Reference"
10737msgstr ""
10738
10739#. type: Plain text
32747aa9 10740#: doc/guix.texi:5476
544cab3d
LC
10741msgid "This section summarizes all the options available in @code{origin} declarations (@pxref{Defining Packages})."
10742msgstr ""
10743
10744#. type: deftp
32747aa9 10745#: doc/guix.texi:5477
544cab3d
LC
10746#, no-wrap
10747msgid "{Data Type} origin"
10748msgstr ""
10749
10750#. type: deftp
32747aa9 10751#: doc/guix.texi:5479
544cab3d
LC
10752msgid "This is the data type representing a source code origin."
10753msgstr ""
10754
10755#. type: code{#1}
32747aa9 10756#: doc/guix.texi:5481 doc/guix.texi:18957
544cab3d
LC
10757#, no-wrap
10758msgid "uri"
10759msgstr ""
10760
10761#. type: table
32747aa9 10762#: doc/guix.texi:5486
544cab3d
LC
10763msgid "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."
10764msgstr ""
10765
10766#. type: code{#1}
32747aa9 10767#: doc/guix.texi:5487
544cab3d
LC
10768#, no-wrap
10769msgid "method"
10770msgstr ""
10771
10772#. type: table
32747aa9 10773#: doc/guix.texi:5489
544cab3d
LC
10774msgid "A procedure that handles the URI."
10775msgstr ""
10776
10777#. type: table
32747aa9 10778#: doc/guix.texi:5491
544cab3d
LC
10779msgid "Examples include:"
10780msgstr ""
10781
10782#. type: item
32747aa9 10783#: doc/guix.texi:5493
544cab3d
LC
10784#, no-wrap
10785msgid "@var{url-fetch} from @code{(guix download)}"
10786msgstr ""
10787
10788#. type: table
32747aa9 10789#: doc/guix.texi:5496
544cab3d
LC
10790msgid "download a file from the HTTP, HTTPS, or FTP URL specified in the @code{uri} field;"
10791msgstr ""
10792
10793#. type: vindex
32747aa9 10794#: doc/guix.texi:5497 doc/guix.texi:8389
544cab3d
LC
10795#, no-wrap
10796msgid "git-fetch"
10797msgstr ""
10798
10799#. type: item
32747aa9 10800#: doc/guix.texi:5498
544cab3d
LC
10801#, no-wrap
10802msgid "@var{git-fetch} from @code{(guix git-download)}"
10803msgstr ""
10804
10805#. type: table
32747aa9 10806#: doc/guix.texi:5502
544cab3d
LC
10807msgid "clone the Git version control repository, and check out the revision specified in the @code{uri} field as a @code{git-reference} object; a @code{git-reference} looks like this:"
10808msgstr ""
10809
10810#. type: example
32747aa9 10811#: doc/guix.texi:5507
544cab3d
LC
10812#, no-wrap
10813msgid ""
10814"(git-reference\n"
10815" (url \"git://git.debian.org/git/pkg-shadow/shadow\")\n"
10816" (commit \"v4.1.5.1\"))\n"
10817msgstr ""
10818
10819#. type: code{#1}
32747aa9 10820#: doc/guix.texi:5510
544cab3d
LC
10821#, no-wrap
10822msgid "sha256"
10823msgstr ""
10824
10825#. type: table
32747aa9 10826#: doc/guix.texi:5514
544cab3d
LC
10827msgid "A bytevector containing the SHA-256 hash of the source. Typically the @code{base32} form is used here to generate the bytevector from a base-32 string."
10828msgstr ""
10829
10830#. type: table
32747aa9 10831#: doc/guix.texi:5518
544cab3d
LC
10832msgid "You can obtain this information using @code{guix download} (@pxref{Invoking guix download}) or @code{guix hash} (@pxref{Invoking guix hash})."
10833msgstr ""
10834
10835#. type: item
32747aa9 10836#: doc/guix.texi:5519
544cab3d
LC
10837#, no-wrap
10838msgid "@code{file-name} (default: @code{#f})"
10839msgstr ""
10840
10841#. type: table
32747aa9 10842#: doc/guix.texi:5525
544cab3d
LC
10843msgid "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."
10844msgstr ""
10845
10846#. type: item
32747aa9 10847#: doc/guix.texi:5526
544cab3d
LC
10848#, no-wrap
10849msgid "@code{patches} (default: @code{'()})"
10850msgstr ""
10851
10852#. type: table
32747aa9 10853#: doc/guix.texi:5529
544cab3d
LC
10854msgid "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."
10855msgstr ""
10856
10857#. type: table
32747aa9 10858#: doc/guix.texi:5533
544cab3d
LC
10859msgid "This list of patches must be unconditional. In particular, it cannot depend on the value of @code{%current-system} or @code{%current-target-system}."
10860msgstr ""
10861
10862#. type: item
32747aa9 10863#: doc/guix.texi:5534
544cab3d
LC
10864#, no-wrap
10865msgid "@code{snippet} (default: @code{#f})"
10866msgstr ""
10867
10868#. type: table
32747aa9 10869#: doc/guix.texi:5538
544cab3d
LC
10870msgid "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."
10871msgstr ""
10872
10873#. type: item
32747aa9 10874#: doc/guix.texi:5539
544cab3d
LC
10875#, no-wrap
10876msgid "@code{patch-flags} (default: @code{'(\"-p1\")})"
10877msgstr ""
10878
10879#. type: table
32747aa9 10880#: doc/guix.texi:5542
544cab3d
LC
10881msgid "A list of command-line flags that should be passed to the @code{patch} command."
10882msgstr ""
10883
10884#. type: item
32747aa9 10885#: doc/guix.texi:5543
544cab3d
LC
10886#, no-wrap
10887msgid "@code{patch-inputs} (default: @code{#f})"
10888msgstr ""
10889
10890#. type: table
32747aa9 10891#: doc/guix.texi:5547
544cab3d
LC
10892msgid "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."
10893msgstr ""
10894
10895#. type: item
32747aa9 10896#: doc/guix.texi:5548
544cab3d
LC
10897#, no-wrap
10898msgid "@code{modules} (default: @code{'()})"
10899msgstr ""
10900
10901#. type: table
32747aa9 10902#: doc/guix.texi:5551
544cab3d
LC
10903msgid "A list of Guile modules that should be loaded during the patching process and while running the code in the @code{snippet} field."
10904msgstr ""
10905
10906#. type: item
32747aa9 10907#: doc/guix.texi:5552
544cab3d
LC
10908#, no-wrap
10909msgid "@code{patch-guile} (default: @code{#f})"
10910msgstr ""
10911
10912#. type: table
32747aa9 10913#: doc/guix.texi:5555
544cab3d
LC
10914msgid "The Guile package that should be used in the patching process. When this is @code{#f}, a sensible default is used."
10915msgstr ""
10916
10917#. type: cindex
32747aa9 10918#: doc/guix.texi:5562
544cab3d
LC
10919#, no-wrap
10920msgid "build system"
10921msgstr ""
10922
10923#. type: Plain text
32747aa9 10924#: doc/guix.texi:5567
544cab3d
LC
10925msgid "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."
10926msgstr ""
10927
10928#. type: Plain text
32747aa9 10929#: doc/guix.texi:5571
544cab3d
LC
10930msgid "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."
10931msgstr ""
10932
10933#. type: cindex
32747aa9 10934#: doc/guix.texi:5572
544cab3d
LC
10935#, no-wrap
10936msgid "bag (low-level package representation)"
10937msgstr ""
10938
10939#. type: Plain text
32747aa9 10940#: doc/guix.texi:5579
544cab3d
LC
10941msgid "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})."
10942msgstr ""
10943
10944#. type: Plain text
32747aa9 10945#: doc/guix.texi:5587
544cab3d
LC
10946msgid "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})."
10947msgstr ""
10948
10949#. type: Plain text
32747aa9 10950#: doc/guix.texi:5591
544cab3d
LC
10951msgid "The main build system is @var{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."
10952msgstr ""
10953
10954#. type: defvr
32747aa9 10955#: doc/guix.texi:5592
544cab3d
LC
10956#, no-wrap
10957msgid "{Scheme Variable} gnu-build-system"
10958msgstr ""
10959
10960#. type: defvr
32747aa9 10961#: doc/guix.texi:5596
544cab3d
LC
10962msgid "@var{gnu-build-system} represents the GNU Build System, and variants thereof (@pxref{Configuration, configuration and makefile conventions,, standards, GNU Coding Standards})."
10963msgstr ""
10964
10965#. type: cindex
32747aa9 10966#: doc/guix.texi:5597 doc/guix.texi:6259
544cab3d
LC
10967#, no-wrap
10968msgid "build phases"
10969msgstr ""
10970
10971#. type: defvr
32747aa9 10972#: doc/guix.texi:5604
544cab3d
LC
10973msgid "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.}:"
10974msgstr ""
10975
10976#. type: item
32747aa9 10977#: doc/guix.texi:5606
544cab3d
LC
10978#, no-wrap
10979msgid "unpack"
10980msgstr ""
10981
10982#. type: table
32747aa9 10983#: doc/guix.texi:5610
544cab3d
LC
10984msgid "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."
10985msgstr ""
10986
10987#. type: item
32747aa9 10988#: doc/guix.texi:5611
544cab3d
LC
10989#, no-wrap
10990msgid "patch-source-shebangs"
10991msgstr ""
10992
10993#. type: table
32747aa9 10994#: doc/guix.texi:5615
544cab3d
LC
10995msgid "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}."
10996msgstr ""
10997
10998#. type: item
32747aa9 10999#: doc/guix.texi:5616 doc/guix.texi:6217 doc/guix.texi:6265
544cab3d
LC
11000#, no-wrap
11001msgid "configure"
11002msgstr ""
11003
11004#. type: table
32747aa9 11005#: doc/guix.texi:5620
544cab3d
LC
11006msgid "Run the @file{configure} script with a number of default options, such as @code{--prefix=/gnu/store/@dots{}}, as well as the options specified by the @code{#:configure-flags} argument."
11007msgstr ""
11008
11009#. type: item
32747aa9
LC
11010#: doc/guix.texi:5621 doc/guix.texi:5810 doc/guix.texi:6222 doc/guix.texi:6269
11011#: doc/guix.texi:24390
544cab3d
LC
11012#, no-wrap
11013msgid "build"
11014msgstr ""
11015
11016#. type: table
32747aa9 11017#: doc/guix.texi:5625
544cab3d
LC
11018msgid "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}."
11019msgstr ""
11020
11021#. type: item
32747aa9 11022#: doc/guix.texi:5626 doc/guix.texi:5820 doc/guix.texi:6226
544cab3d
LC
11023#, no-wrap
11024msgid "check"
11025msgstr ""
11026
11027#. type: table
32747aa9 11028#: doc/guix.texi:5631
544cab3d
LC
11029msgid "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}."
11030msgstr ""
11031
11032#. type: item
32747aa9 11033#: doc/guix.texi:5632 doc/guix.texi:5828 doc/guix.texi:6230 doc/guix.texi:6273
544cab3d
LC
11034#, no-wrap
11035msgid "install"
11036msgstr ""
11037
11038#. type: table
32747aa9 11039#: doc/guix.texi:5634
544cab3d
LC
11040msgid "Run @code{make install} with the flags listed in @code{#:make-flags}."
11041msgstr ""
11042
11043#. type: item
32747aa9 11044#: doc/guix.texi:5635
544cab3d
LC
11045#, no-wrap
11046msgid "patch-shebangs"
11047msgstr ""
11048
11049#. type: table
32747aa9 11050#: doc/guix.texi:5637
544cab3d
LC
11051msgid "Patch shebangs on the installed executable files."
11052msgstr ""
11053
11054#. type: item
32747aa9 11055#: doc/guix.texi:5638
544cab3d
LC
11056#, no-wrap
11057msgid "strip"
11058msgstr ""
11059
11060#. type: table
32747aa9 11061#: doc/guix.texi:5642
544cab3d
LC
11062msgid "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})."
11063msgstr ""
11064
11065#. type: vindex
32747aa9 11066#: doc/guix.texi:5644
544cab3d
LC
11067#, no-wrap
11068msgid "%standard-phases"
11069msgstr ""
11070
11071#. type: defvr
32747aa9 11072#: doc/guix.texi:5649
544cab3d
LC
11073msgid "The build-side module @code{(guix build gnu-build-system)} defines @var{%standard-phases} as the default list of build phases. @var{%standard-phases} is a list of symbol/procedure pairs, where the procedure implements the actual phase."
11074msgstr ""
11075
11076#. type: defvr
32747aa9 11077#: doc/guix.texi:5652
544cab3d
LC
11078msgid "The list of phases used for a particular package can be changed with the @code{#:phases} parameter. For instance, passing:"
11079msgstr ""
11080
11081#. type: example
32747aa9 11082#: doc/guix.texi:5655
544cab3d
LC
11083#, no-wrap
11084msgid "#:phases (modify-phases %standard-phases (delete 'configure))\n"
11085msgstr ""
11086
11087#. type: defvr
32747aa9 11088#: doc/guix.texi:5659
544cab3d
LC
11089msgid "means that all the phases described above will be used, except the @code{configure} phase."
11090msgstr ""
11091
11092#. type: defvr
32747aa9 11093#: doc/guix.texi:5666
544cab3d
LC
11094msgid "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."
11095msgstr ""
11096
11097#. type: Plain text
32747aa9 11098#: doc/guix.texi:5673
544cab3d
LC
11099msgid "Other @code{<build-system>} objects are defined to support other conventions and tools used by free software packages. They inherit most of @var{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."
11100msgstr ""
11101
11102#. type: defvr
32747aa9 11103#: doc/guix.texi:5674
544cab3d
LC
11104#, no-wrap
11105msgid "{Scheme Variable} ant-build-system"
11106msgstr ""
11107
11108#. type: defvr
32747aa9
LC
11109#: doc/guix.texi:5678
11110msgid "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}."
544cab3d
LC
11111msgstr ""
11112
11113#. type: defvr
32747aa9 11114#: doc/guix.texi:5683
544cab3d
LC
11115msgid "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."
11116msgstr ""
11117
11118#. type: defvr
32747aa9 11119#: doc/guix.texi:5689
544cab3d
LC
11120msgid "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''."
11121msgstr ""
11122
11123#. type: defvr
32747aa9 11124#: doc/guix.texi:5697
544cab3d
LC
11125msgid "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."
11126msgstr ""
11127
11128#. type: defvr
32747aa9 11129#: doc/guix.texi:5701
544cab3d
LC
11130msgid "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."
11131msgstr ""
11132
11133#. type: defvr
32747aa9 11134#: doc/guix.texi:5704
544cab3d
LC
11135#, no-wrap
11136msgid "{Scheme Variable} android-ndk-build-system"
11137msgstr ""
11138
11139#. type: cindex
32747aa9 11140#: doc/guix.texi:5705
544cab3d
LC
11141#, no-wrap
11142msgid "Android distribution"
11143msgstr ""
11144
11145#. type: cindex
32747aa9 11146#: doc/guix.texi:5706
544cab3d
LC
11147#, no-wrap
11148msgid "Android NDK build system"
11149msgstr ""
11150
11151#. type: defvr
32747aa9 11152#: doc/guix.texi:5710
544cab3d
LC
11153msgid "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."
11154msgstr ""
11155
11156#. type: defvr
32747aa9 11157#: doc/guix.texi:5714
544cab3d
LC
11158msgid "The build system assumes that packages install their public interface (header) files to the subdirectory \"include\" of the \"out\" output and their libraries to the subdirectory \"lib\" of the \"out\" output."
11159msgstr ""
11160
11161#. type: defvr
32747aa9 11162#: doc/guix.texi:5717
544cab3d
LC
11163msgid "It's also assumed that the union of all the dependencies of a package has no conflicting files."
11164msgstr ""
11165
11166#. type: defvr
32747aa9 11167#: doc/guix.texi:5720
544cab3d
LC
11168msgid "For the time being, cross-compilation is not supported - so right now the libraries and header files are assumed to be host tools."
11169msgstr ""
11170
11171#. type: defvr
32747aa9 11172#: doc/guix.texi:5723
544cab3d
LC
11173#, no-wrap
11174msgid "{Scheme Variable} asdf-build-system/source"
11175msgstr ""
11176
11177#. type: defvrx
32747aa9 11178#: doc/guix.texi:5724
544cab3d
LC
11179#, no-wrap
11180msgid "{Scheme Variable} asdf-build-system/sbcl"
11181msgstr ""
11182
11183#. type: defvrx
32747aa9 11184#: doc/guix.texi:5725
544cab3d
LC
11185#, no-wrap
11186msgid "{Scheme Variable} asdf-build-system/ecl"
11187msgstr ""
11188
11189#. type: defvr
32747aa9 11190#: doc/guix.texi:5731
544cab3d
LC
11191msgid "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."
11192msgstr ""
11193
11194#. type: defvr
32747aa9 11195#: doc/guix.texi:5738
544cab3d
LC
11196msgid "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."
11197msgstr ""
11198
11199#. type: defvr
32747aa9 11200#: doc/guix.texi:5742
544cab3d
LC
11201msgid "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}."
11202msgstr ""
11203
11204#. type: defvr
32747aa9 11205#: doc/guix.texi:5746
544cab3d
LC
11206msgid "Additionally, the corresponding source package should be labeled using the same convention as python packages (see @ref{Python Modules}), using the @code{cl-} prefix."
11207msgstr ""
11208
11209#. type: defvr
32747aa9 11210#: doc/guix.texi:5751
544cab3d
LC
11211msgid "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."
11212msgstr ""
11213
11214#. type: defvr
32747aa9 11215#: doc/guix.texi:5758
544cab3d
LC
11216msgid "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."
11217msgstr ""
11218
11219#. type: defvr
32747aa9 11220#: doc/guix.texi:5767
544cab3d
LC
11221msgid "If the system is not defined within its own @code{.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."
11222msgstr ""
11223
11224#. type: defvr
32747aa9 11225#: doc/guix.texi:5771
544cab3d
LC
11226msgid "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."
11227msgstr ""
11228
11229#. type: defvr
32747aa9 11230#: doc/guix.texi:5774
544cab3d
LC
11231#, no-wrap
11232msgid "{Scheme Variable} cargo-build-system"
11233msgstr ""
11234
11235#. type: cindex
32747aa9 11236#: doc/guix.texi:5775
544cab3d
LC
11237#, no-wrap
11238msgid "Rust programming language"
11239msgstr ""
11240
11241#. type: cindex
32747aa9 11242#: doc/guix.texi:5776
544cab3d
LC
11243#, no-wrap
11244msgid "Cargo (Rust build system)"
11245msgstr ""
11246
11247#. type: defvr
32747aa9 11248#: doc/guix.texi:5780
544cab3d
LC
11249msgid "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}."
11250msgstr ""
11251
11252#. type: defvr
32747aa9
LC
11253#: doc/guix.texi:5785
11254msgid "In its @code{configure} phase, this build system replaces dependencies specified in the @file{Cargo.toml} file with inputs to the Guix package. The @code{install} phase installs the binaries, and it also installs the source code and @file{Cargo.toml} file."
544cab3d
LC
11255msgstr ""
11256
11257#. type: cindex
32747aa9 11258#: doc/guix.texi:5787
544cab3d
LC
11259#, no-wrap
11260msgid "Clojure (programming language)"
11261msgstr ""
11262
11263#. type: cindex
32747aa9 11264#: doc/guix.texi:5788
544cab3d
LC
11265#, no-wrap
11266msgid "simple Clojure build system"
11267msgstr ""
11268
11269#. type: defvr
32747aa9 11270#: doc/guix.texi:5789
544cab3d
LC
11271#, no-wrap
11272msgid "{Scheme Variable} clojure-build-system"
11273msgstr ""
11274
11275#. type: defvr
32747aa9 11276#: doc/guix.texi:5794
544cab3d
LC
11277msgid "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."
11278msgstr ""
11279
11280#. type: defvr
32747aa9 11281#: doc/guix.texi:5798
544cab3d
LC
11282msgid "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."
11283msgstr ""
11284
11285#. type: defvr
32747aa9 11286#: doc/guix.texi:5804
544cab3d
LC
11287msgid "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."
11288msgstr ""
11289
11290#. type: defvr
32747aa9 11291#: doc/guix.texi:5807
544cab3d
LC
11292msgid "This build system is an extension of @var{ant-build-system}, but with the following phases changed:"
11293msgstr ""
11294
11295#. type: table
32747aa9 11296#: doc/guix.texi:5819
544cab3d
LC
11297msgid "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."
11298msgstr ""
11299
11300#. type: table
32747aa9 11301#: doc/guix.texi:5827
544cab3d
LC
11302msgid "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."
11303msgstr ""
11304
11305#. type: table
32747aa9 11306#: doc/guix.texi:5830
544cab3d
LC
11307msgid "This phase installs all jars built previously."
11308msgstr ""
11309
11310#. type: defvr
32747aa9 11311#: doc/guix.texi:5833
544cab3d
LC
11312msgid "Apart from the above, this build system also contains an additional phase:"
11313msgstr ""
11314
11315#. type: item
32747aa9 11316#: doc/guix.texi:5836
544cab3d
LC
11317#, no-wrap
11318msgid "install-doc"
11319msgstr ""
11320
11321#. type: table
32747aa9 11322#: doc/guix.texi:5841
544cab3d
LC
11323msgid "This phase installs all top-level files with base name matching @var{%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."
11324msgstr ""
11325
11326#. type: defvr
32747aa9 11327#: doc/guix.texi:5844
544cab3d
LC
11328#, no-wrap
11329msgid "{Scheme Variable} cmake-build-system"
11330msgstr ""
11331
11332#. type: defvr
32747aa9
LC
11333#: doc/guix.texi:5848
11334msgid "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}."
544cab3d
LC
11335msgstr ""
11336
11337#. type: defvr
32747aa9 11338#: doc/guix.texi:5852
544cab3d
LC
11339msgid "It automatically adds the @code{cmake} package to the set of inputs. Which package is used can be specified with the @code{#:cmake} parameter."
11340msgstr ""
11341
11342#. type: defvr
32747aa9 11343#: doc/guix.texi:5859
544cab3d
LC
11344msgid "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."
11345msgstr ""
11346
11347#. type: defvr
32747aa9 11348#: doc/guix.texi:5861
544cab3d
LC
11349#, no-wrap
11350msgid "{Scheme Variable} dune-build-system"
11351msgstr ""
11352
11353#. type: defvr
32747aa9 11354#: doc/guix.texi:5868
544cab3d
LC
11355msgid "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."
11356msgstr ""
11357
11358#. type: defvr
32747aa9 11359#: doc/guix.texi:5872
544cab3d
LC
11360msgid "It automatically adds the @code{dune} package to the set of inputs. Which package is used can be specified with the @code{#:dune} parameter."
11361msgstr ""
11362
11363#. type: defvr
32747aa9 11364#: doc/guix.texi:5876
544cab3d
LC
11365msgid "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."
11366msgstr ""
11367
11368#. type: defvr
32747aa9 11369#: doc/guix.texi:5880
544cab3d
LC
11370msgid "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}."
11371msgstr ""
11372
11373#. type: defvr
32747aa9 11374#: doc/guix.texi:5885
544cab3d
LC
11375msgid "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}."
11376msgstr ""
11377
11378#. type: defvr
32747aa9 11379#: doc/guix.texi:5887
544cab3d
LC
11380#, no-wrap
11381msgid "{Scheme Variable} go-build-system"
11382msgstr ""
11383
11384#. type: defvr
32747aa9 11385#: doc/guix.texi:5892
544cab3d
LC
11386msgid "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}."
11387msgstr ""
11388
11389#. type: defvr
32747aa9 11390#: doc/guix.texi:5903
544cab3d
LC
11391msgid "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."
11392msgstr ""
11393
11394#. type: defvr
32747aa9 11395#: doc/guix.texi:5908
544cab3d
LC
11396msgid "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."
11397msgstr ""
11398
11399#. type: defvr
32747aa9 11400#: doc/guix.texi:5910
544cab3d
LC
11401#, no-wrap
11402msgid "{Scheme Variable} glib-or-gtk-build-system"
11403msgstr ""
11404
11405#. type: defvr
32747aa9 11406#: doc/guix.texi:5913
544cab3d
LC
11407msgid "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+."
11408msgstr ""
11409
11410#. type: defvr
32747aa9 11411#: doc/guix.texi:5916
544cab3d
LC
11412msgid "This build system adds the following two phases to the ones defined by @var{gnu-build-system}:"
11413msgstr ""
11414
11415#. type: item
32747aa9 11416#: doc/guix.texi:5918 doc/guix.texi:6246
544cab3d
LC
11417#, no-wrap
11418msgid "glib-or-gtk-wrap"
11419msgstr ""
11420
11421#. type: table
32747aa9 11422#: doc/guix.texi:5925
544cab3d
LC
11423msgid "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 @code{XDG_DATA_DIRS} and @code{GTK_PATH} environment variables."
11424msgstr ""
11425
11426#. type: table
32747aa9 11427#: doc/guix.texi:5932
544cab3d
LC
11428msgid "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+."
11429msgstr ""
11430
11431#. type: item
32747aa9 11432#: doc/guix.texi:5933 doc/guix.texi:6250
544cab3d
LC
11433#, no-wrap
11434msgid "glib-or-gtk-compile-schemas"
11435msgstr ""
11436
11437#. type: table
32747aa9 11438#: doc/guix.texi:5941
544cab3d
LC
11439msgid "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."
11440msgstr ""
11441
11442#. type: defvr
32747aa9 11443#: doc/guix.texi:5944
544cab3d
LC
11444msgid "Both phases are executed after the @code{install} phase."
11445msgstr ""
11446
11447#. type: defvr
32747aa9 11448#: doc/guix.texi:5946
544cab3d
LC
11449#, no-wrap
11450msgid "{Scheme Variable} guile-build-system"
11451msgstr ""
11452
11453#. type: defvr
32747aa9 11454#: doc/guix.texi:5953
544cab3d
LC
11455msgid "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."
11456msgstr ""
11457
11458#. type: defvr
32747aa9 11459#: doc/guix.texi:5956
544cab3d
LC
11460msgid "This build system supports cross-compilation by using the @code{--target} option of @command{guild compile}."
11461msgstr ""
11462
11463#. type: defvr
32747aa9 11464#: doc/guix.texi:5959
544cab3d
LC
11465msgid "Packages built with @code{guile-build-system} must provide a Guile package in their @code{native-inputs} field."
11466msgstr ""
11467
11468#. type: defvr
32747aa9 11469#: doc/guix.texi:5961
544cab3d
LC
11470#, no-wrap
11471msgid "{Scheme Variable} minify-build-system"
11472msgstr ""
11473
11474#. type: defvr
32747aa9 11475#: doc/guix.texi:5964
544cab3d
LC
11476msgid "This variable is exported by @code{(guix build-system minify)}. It implements a minification procedure for simple JavaScript packages."
11477msgstr ""
11478
11479#. type: defvr
32747aa9 11480#: doc/guix.texi:5970
544cab3d
LC
11481msgid "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."
11482msgstr ""
11483
11484#. type: defvr
32747aa9 11485#: doc/guix.texi:5974
544cab3d
LC
11486msgid "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."
11487msgstr ""
11488
11489#. type: defvr
32747aa9 11490#: doc/guix.texi:5976
544cab3d
LC
11491#, no-wrap
11492msgid "{Scheme Variable} ocaml-build-system"
11493msgstr ""
11494
11495#. type: defvr
32747aa9 11496#: doc/guix.texi:5982
544cab3d
LC
11497msgid "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."
11498msgstr ""
11499
11500#. type: defvr
32747aa9 11501#: doc/guix.texi:5992
544cab3d
LC
11502msgid "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."
11503msgstr ""
11504
11505#. type: defvr
32747aa9 11506#: doc/guix.texi:5997
544cab3d
LC
11507msgid "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."
11508msgstr ""
11509
11510#. type: defvr
32747aa9 11511#: doc/guix.texi:6001
544cab3d
LC
11512msgid "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."
11513msgstr ""
11514
11515#. type: defvr
32747aa9 11516#: doc/guix.texi:6009
544cab3d
LC
11517msgid "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."
11518msgstr ""
11519
11520#. type: defvr
32747aa9 11521#: doc/guix.texi:6017
544cab3d
LC
11522msgid "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 @code{CAML_LD_LIBRARY_PATH}. This variable points to @file{lib/ocaml/site-lib/stubslibs} and this is where @file{.so} libraries should be installed."
11523msgstr ""
11524
11525#. type: defvr
32747aa9 11526#: doc/guix.texi:6019
544cab3d
LC
11527#, no-wrap
11528msgid "{Scheme Variable} python-build-system"
11529msgstr ""
11530
11531#. type: defvr
32747aa9 11532#: doc/guix.texi:6024
544cab3d
LC
11533msgid "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{}}."
11534msgstr ""
11535
11536#. type: defvr
32747aa9 11537#: doc/guix.texi:6028
544cab3d
LC
11538msgid "For packages that install stand-alone Python programs under @code{bin/}, it takes care of wrapping these programs so that their @code{PYTHONPATH} environment variable points to all the Python libraries they depend on."
11539msgstr ""
11540
11541#. type: defvr
32747aa9 11542#: doc/guix.texi:6034
544cab3d
LC
11543msgid "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."
11544msgstr ""
11545
11546#. type: defvr
32747aa9 11547#: doc/guix.texi:6039
544cab3d
LC
11548msgid "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}."
11549msgstr ""
11550
11551#. type: defvr
32747aa9 11552#: doc/guix.texi:6041
544cab3d
LC
11553#, no-wrap
11554msgid "{Scheme Variable} perl-build-system"
11555msgstr ""
11556
11557#. type: defvr
32747aa9 11558#: doc/guix.texi:6053
544cab3d
LC
11559msgid "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."
11560msgstr ""
11561
11562#. type: defvr
32747aa9 11563#: doc/guix.texi:6057
544cab3d
LC
11564msgid "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."
11565msgstr ""
11566
11567#. type: defvr
32747aa9 11568#: doc/guix.texi:6059
544cab3d
LC
11569msgid "Which Perl package is used can be specified with @code{#:perl}."
11570msgstr ""
11571
11572#. type: defvr
32747aa9 11573#: doc/guix.texi:6061
544cab3d
LC
11574#, no-wrap
11575msgid "{Scheme Variable} r-build-system"
11576msgstr ""
11577
11578#. type: defvr
32747aa9
LC
11579#: doc/guix.texi:6069
11580msgid "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 @code{R CMD INSTALL --library=/gnu/store/@dots{}} in an environment where @code{R_LIBS_SITE} contains the paths to all R package inputs. Tests are run after installation using the R function @code{tools::testInstalledPackage}."
544cab3d
LC
11581msgstr ""
11582
11583#. type: defvr
32747aa9 11584#: doc/guix.texi:6071
544cab3d
LC
11585#, no-wrap
11586msgid "{Scheme Variable} rakudo-build-system"
11587msgstr ""
11588
11589#. type: defvr
32747aa9
LC
11590#: doc/guix.texi:6079
11591msgid "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."
544cab3d
LC
11592msgstr ""
11593
11594#. type: defvr
32747aa9 11595#: doc/guix.texi:6087
544cab3d
LC
11596msgid "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."
11597msgstr ""
11598
11599#. type: defvr
32747aa9 11600#: doc/guix.texi:6089
544cab3d
LC
11601#, no-wrap
11602msgid "{Scheme Variable} texlive-build-system"
11603msgstr ""
11604
11605#. type: defvr
32747aa9 11606#: doc/guix.texi:6094
544cab3d
LC
11607msgid "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 @code{TEXINPUTS} variable to find all TeX source files in the inputs."
11608msgstr ""
11609
11610#. type: defvr
32747aa9 11611#: doc/guix.texi:6103
544cab3d
LC
11612msgid "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."
11613msgstr ""
11614
11615#. type: defvr
32747aa9 11616#: doc/guix.texi:6106
544cab3d
LC
11617msgid "The @code{#:tex-directory} parameter tells the build system where to install the built files under the texmf tree."
11618msgstr ""
11619
11620#. type: defvr
32747aa9 11621#: doc/guix.texi:6108
544cab3d
LC
11622#, no-wrap
11623msgid "{Scheme Variable} ruby-build-system"
11624msgstr ""
11625
11626#. type: defvr
32747aa9 11627#: doc/guix.texi:6112
544cab3d
LC
11628msgid "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}."
11629msgstr ""
11630
11631#. type: defvr
32747aa9 11632#: doc/guix.texi:6120
544cab3d
LC
11633msgid "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."
11634msgstr ""
11635
11636#. type: defvr
32747aa9 11637#: doc/guix.texi:6124
544cab3d
LC
11638msgid "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."
11639msgstr ""
11640
11641#. type: defvr
32747aa9 11642#: doc/guix.texi:6126
544cab3d
LC
11643#, no-wrap
11644msgid "{Scheme Variable} waf-build-system"
11645msgstr ""
11646
11647#. type: defvr
32747aa9 11648#: doc/guix.texi:6132
544cab3d
LC
11649msgid "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."
11650msgstr ""
11651
11652#. type: defvr
32747aa9 11653#: doc/guix.texi:6136
544cab3d
LC
11654msgid "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."
11655msgstr ""
11656
11657#. type: defvr
32747aa9 11658#: doc/guix.texi:6138
544cab3d
LC
11659#, no-wrap
11660msgid "{Scheme Variable} scons-build-system"
11661msgstr ""
11662
11663#. type: defvr
32747aa9 11664#: doc/guix.texi:6144
544cab3d
LC
11665msgid "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."
11666msgstr ""
11667
11668#. type: defvr
32747aa9 11669#: doc/guix.texi:6149
544cab3d
LC
11670msgid "Additional flags to be passed to @code{scons} can be specified with the @code{#:scons-flags} parameter. The version of Python used to run SCons can be specified by selecting the appropriate SCons package with the @code{#:scons} parameter."
11671msgstr ""
11672
11673#. type: defvr
32747aa9 11674#: doc/guix.texi:6151
544cab3d
LC
11675#, no-wrap
11676msgid "{Scheme Variable} haskell-build-system"
11677msgstr ""
11678
11679#. type: defvr
32747aa9 11680#: doc/guix.texi:6165
544cab3d
LC
11681msgid "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."
11682msgstr ""
11683
11684#. type: defvr
32747aa9 11685#: doc/guix.texi:6168
544cab3d
LC
11686msgid "Which Haskell compiler is used can be specified with the @code{#:haskell} parameter which defaults to @code{ghc}."
11687msgstr ""
11688
11689#. type: defvr
32747aa9 11690#: doc/guix.texi:6170
544cab3d
LC
11691#, no-wrap
11692msgid "{Scheme Variable} dub-build-system"
11693msgstr ""
11694
11695#. type: defvr
32747aa9 11696#: doc/guix.texi:6175
544cab3d
LC
11697msgid "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."
11698msgstr ""
11699
11700#. type: defvr
32747aa9 11701#: doc/guix.texi:6178
544cab3d
LC
11702msgid "Which D compiler is used can be specified with the @code{#:ldc} parameter which defaults to @code{ldc}."
11703msgstr ""
11704
11705#. type: defvr
32747aa9 11706#: doc/guix.texi:6180
544cab3d
LC
11707#, no-wrap
11708msgid "{Scheme Variable} emacs-build-system"
11709msgstr ""
11710
11711#. type: defvr
32747aa9 11712#: doc/guix.texi:6184
544cab3d
LC
11713msgid "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})."
11714msgstr ""
11715
11716#. type: defvr
32747aa9 11717#: doc/guix.texi:6191
544cab3d
LC
11718msgid "It first creates the @code{@var{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. Each package is installed in its own directory under @file{share/emacs/site-lisp/guix.d}."
11719msgstr ""
11720
11721#. type: defvr
32747aa9 11722#: doc/guix.texi:6193
544cab3d
LC
11723#, no-wrap
11724msgid "{Scheme Variable} font-build-system"
11725msgstr ""
11726
11727#. type: defvr
32747aa9 11728#: doc/guix.texi:6199
544cab3d
LC
11729msgid "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."
11730msgstr ""
11731
11732#. type: defvr
32747aa9 11733#: doc/guix.texi:6201
544cab3d
LC
11734#, no-wrap
11735msgid "{Scheme Variable} meson-build-system"
11736msgstr ""
11737
11738#. type: defvr
32747aa9
LC
11739#: doc/guix.texi:6205
11740msgid "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."
544cab3d
LC
11741msgstr ""
11742
11743#. type: defvr
32747aa9 11744#: doc/guix.texi:6211
544cab3d
LC
11745msgid "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."
11746msgstr ""
11747
11748#. type: defvr
32747aa9 11749#: doc/guix.texi:6214
544cab3d
LC
11750msgid "This build system is an extension of @var{gnu-build-system}, but with the following phases changed to some specific for Meson:"
11751msgstr ""
11752
11753#. type: table
32747aa9 11754#: doc/guix.texi:6221
544cab3d
LC
11755msgid "The phase runs @code{meson} with the flags specified in @code{#:configure-flags}. The flag @code{--build-type} is always set to @code{plain} unless something else is specified in @code{#:build-type}."
11756msgstr ""
11757
11758#. type: table
32747aa9 11759#: doc/guix.texi:6225
544cab3d
LC
11760msgid "The phase runs @code{ninja} to build the package in parallel by default, but this can be changed with @code{#:parallel-build?}."
11761msgstr ""
11762
11763#. type: table
32747aa9 11764#: doc/guix.texi:6229
544cab3d
LC
11765msgid "The phase runs @code{ninja} with the target specified in @code{#:test-target}, which is @code{\"test\"} by default."
11766msgstr ""
11767
11768#. type: table
32747aa9 11769#: doc/guix.texi:6232
544cab3d
LC
11770msgid "The phase runs @code{ninja install} and can not be changed."
11771msgstr ""
11772
11773#. type: defvr
32747aa9 11774#: doc/guix.texi:6235
544cab3d
LC
11775msgid "Apart from that, the build system also adds the following phases:"
11776msgstr ""
11777
11778#. type: item
32747aa9 11779#: doc/guix.texi:6238
544cab3d
LC
11780#, no-wrap
11781msgid "fix-runpath"
11782msgstr ""
11783
11784#. type: table
32747aa9 11785#: doc/guix.texi:6245
544cab3d
LC
11786msgid "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."
11787msgstr ""
11788
11789#. type: table
32747aa9 11790#: doc/guix.texi:6249 doc/guix.texi:6253
544cab3d
LC
11791msgid "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?}."
11792msgstr ""
11793
32747aa9
LC
11794#. type: defvr
11795#: doc/guix.texi:6256
11796#, no-wrap
11797msgid "{Scheme Variable} linux-module-build-system"
11798msgstr ""
11799
11800#. type: defvr
11801#: doc/guix.texi:6258
11802msgid "@var{linux-module-build-system} allows building Linux kernel modules."
11803msgstr ""
11804
11805#. type: defvr
11806#: doc/guix.texi:6262
11807msgid "This build system is an extension of @var{gnu-build-system}, but with the following phases changed:"
11808msgstr ""
11809
11810#. type: table
11811#: doc/guix.texi:6268
11812msgid "This phase configures the environment so that the Linux kernel's Makefile can be used to build the external kernel module."
11813msgstr ""
11814
11815#. type: table
11816#: doc/guix.texi:6272
11817msgid "This phase uses the Linux kernel's Makefile in order to build the external kernel module."
11818msgstr ""
11819
11820#. type: table
11821#: doc/guix.texi:6276
11822msgid "This phase uses the Linux kernel's Makefile in order to install the external kernel module."
11823msgstr ""
11824
11825#. type: defvr
11826#: doc/guix.texi:6281
11827msgid "It is possible and useful to specify the Linux kernel to use for building the module (in the \"arguments\" form of a package using the linux-module-build-system, use the key #:linux to specify it)."
11828msgstr ""
11829
544cab3d 11830#. type: Plain text
32747aa9 11831#: doc/guix.texi:6287
544cab3d
LC
11832msgid "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."
11833msgstr ""
11834
11835#. type: defvr
32747aa9 11836#: doc/guix.texi:6288
544cab3d
LC
11837#, no-wrap
11838msgid "{Scheme Variable} trivial-build-system"
11839msgstr ""
11840
11841#. type: defvr
32747aa9 11842#: doc/guix.texi:6290
544cab3d
LC
11843msgid "This variable is exported by @code{(guix build-system trivial)}."
11844msgstr ""
11845
11846#. type: defvr
32747aa9 11847#: doc/guix.texi:6295
544cab3d
LC
11848msgid "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}})."
11849msgstr ""
11850
11851#. type: cindex
32747aa9 11852#: doc/guix.texi:6301
544cab3d
LC
11853#, no-wrap
11854msgid "store items"
11855msgstr ""
11856
11857#. type: cindex
32747aa9 11858#: doc/guix.texi:6302
544cab3d
LC
11859#, no-wrap
11860msgid "store paths"
11861msgstr ""
11862
11863#. type: Plain text
32747aa9 11864#: doc/guix.texi:6313
544cab3d
LC
11865msgid "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}."
11866msgstr ""
11867
11868#. type: Plain text
32747aa9 11869#: doc/guix.texi:6318
544cab3d
LC
11870msgid "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."
11871msgstr ""
11872
11873#. type: quotation
32747aa9 11874#: doc/guix.texi:6323
544cab3d
LC
11875msgid "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})."
11876msgstr ""
11877
11878#. type: quotation
32747aa9 11879#: doc/guix.texi:6327
544cab3d
LC
11880msgid "@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."
11881msgstr ""
11882
11883#. type: Plain text
32747aa9 11884#: doc/guix.texi:6334
544cab3d
LC
11885msgid "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 @code{GUIX_DAEMON_SOCKET} environment variable."
11886msgstr ""
11887
11888#. type: defvr
32747aa9 11889#: doc/guix.texi:6335
544cab3d
LC
11890#, no-wrap
11891msgid "{Environment Variable} GUIX_DAEMON_SOCKET"
11892msgstr ""
11893
11894#. type: defvr
32747aa9 11895#: doc/guix.texi:6340
544cab3d
LC
11896msgid "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:"
11897msgstr ""
11898
11899#. type: code{#1}
32747aa9 11900#: doc/guix.texi:6342 doc/guix.texi:18633
544cab3d
LC
11901#, no-wrap
11902msgid "file"
11903msgstr ""
11904
11905#. type: itemx
32747aa9 11906#: doc/guix.texi:6343
544cab3d
LC
11907#, no-wrap
11908msgid "unix"
11909msgstr ""
11910
11911#. type: table
32747aa9 11912#: doc/guix.texi:6347
544cab3d
LC
11913msgid "These are for Unix-domain sockets. @code{file:///var/guix/daemon-socket/socket} is equivalent to @file{/var/guix/daemon-socket/socket}."
11914msgstr ""
11915
11916#. type: item
32747aa9 11917#: doc/guix.texi:6348
544cab3d
LC
11918#, no-wrap
11919msgid "guix"
11920msgstr ""
11921
11922#. type: table
32747aa9 11923#: doc/guix.texi:6356
544cab3d
LC
11924msgid "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):"
11925msgstr ""
11926
11927#. type: example
32747aa9 11928#: doc/guix.texi:6359
544cab3d
LC
11929#, no-wrap
11930msgid "guix://master.guix.example.org:1234\n"
11931msgstr ""
11932
11933#. type: table
32747aa9 11934#: doc/guix.texi:6364
544cab3d
LC
11935msgid "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}."
11936msgstr ""
11937
11938#. type: table
32747aa9 11939#: doc/guix.texi:6368
544cab3d
LC
11940msgid "The @code{--listen} option of @command{guix-daemon} can be used to instruct it to listen for TCP connections (@pxref{Invoking guix-daemon, @code{--listen}})."
11941msgstr ""
11942
11943#. type: item
32747aa9 11944#: doc/guix.texi:6369
544cab3d
LC
11945#, no-wrap
11946msgid "ssh"
11947msgstr ""
11948
11949#. type: cindex
32747aa9 11950#: doc/guix.texi:6370
544cab3d
LC
11951#, no-wrap
11952msgid "SSH access to build daemons"
11953msgstr ""
11954
11955#. type: table
32747aa9 11956#: doc/guix.texi:6374
544cab3d
LC
11957msgid "These URIs allow you to connect to a remote daemon over SSH@footnote{This feature requires Guile-SSH (@pxref{Requirements}).}. A typical URL might look like this:"
11958msgstr ""
11959
11960#. type: example
32747aa9 11961#: doc/guix.texi:6377
544cab3d
LC
11962#, no-wrap
11963msgid "ssh://charlie@@guix.example.org:22\n"
11964msgstr ""
11965
11966#. type: table
32747aa9 11967#: doc/guix.texi:6381
544cab3d
LC
11968msgid "As for @command{guix copy}, the usual OpenSSH client configuration files are honored (@pxref{Invoking guix copy})."
11969msgstr ""
11970
11971#. type: defvr
32747aa9 11972#: doc/guix.texi:6384
544cab3d
LC
11973msgid "Additional URI schemes may be supported in the future."
11974msgstr ""
11975
11976#. type: quotation
32747aa9 11977#: doc/guix.texi:6391
544cab3d
LC
11978msgid "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})."
11979msgstr ""
11980
11981#. type: deffn
32747aa9 11982#: doc/guix.texi:6394
544cab3d
LC
11983#, no-wrap
11984msgid "{Scheme Procedure} open-connection [@var{uri}] [#:reserve-space? #t]"
11985msgstr ""
11986
11987#. type: deffn
32747aa9 11988#: doc/guix.texi:6399
544cab3d
LC
11989msgid "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."
11990msgstr ""
11991
11992#. type: deffn
32747aa9 11993#: doc/guix.texi:6402
544cab3d
LC
11994msgid "@var{file} defaults to @var{%default-socket-path}, which is the normal location given the options that were passed to @command{configure}."
11995msgstr ""
11996
11997#. type: deffn
32747aa9 11998#: doc/guix.texi:6404
544cab3d
LC
11999#, no-wrap
12000msgid "{Scheme Procedure} close-connection @var{server}"
12001msgstr ""
12002
12003#. type: deffn
32747aa9 12004#: doc/guix.texi:6406
544cab3d
LC
12005msgid "Close the connection to @var{server}."
12006msgstr ""
12007
12008#. type: defvr
32747aa9 12009#: doc/guix.texi:6408
544cab3d
LC
12010#, no-wrap
12011msgid "{Scheme Variable} current-build-output-port"
12012msgstr ""
12013
12014#. type: defvr
32747aa9 12015#: doc/guix.texi:6411
544cab3d
LC
12016msgid "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."
12017msgstr ""
12018
12019#. type: Plain text
32747aa9 12020#: doc/guix.texi:6415
544cab3d
LC
12021msgid "Procedures that make RPCs all take a server object as their first argument."
12022msgstr ""
12023
12024#. type: deffn
32747aa9 12025#: doc/guix.texi:6416
544cab3d
LC
12026#, no-wrap
12027msgid "{Scheme Procedure} valid-path? @var{server} @var{path}"
12028msgstr ""
12029
12030#. type: cindex
32747aa9 12031#: doc/guix.texi:6417
544cab3d
LC
12032#, no-wrap
12033msgid "invalid store items"
12034msgstr ""
12035
12036#. type: deffn
32747aa9 12037#: doc/guix.texi:6422
544cab3d
LC
12038msgid "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.)"
12039msgstr ""
12040
12041#. type: deffn
32747aa9 12042#: doc/guix.texi:6425
544cab3d
LC
12043msgid "A @code{&store-protocol-error} condition is raised if @var{path} is not prefixed by the store directory (@file{/gnu/store})."
12044msgstr ""
12045
12046#. type: deffn
32747aa9 12047#: doc/guix.texi:6427
544cab3d
LC
12048#, no-wrap
12049msgid "{Scheme Procedure} add-text-to-store @var{server} @var{name} @var{text} [@var{references}]"
12050msgstr ""
12051
12052#. type: deffn
32747aa9 12053#: doc/guix.texi:6431
544cab3d
LC
12054msgid "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."
12055msgstr ""
12056
12057#. type: deffn
32747aa9 12058#: doc/guix.texi:6433
544cab3d
LC
12059#, no-wrap
12060msgid "{Scheme Procedure} build-derivations @var{server} @var{derivations}"
12061msgstr ""
12062
12063#. type: deffn
32747aa9 12064#: doc/guix.texi:6437
544cab3d
LC
12065msgid "Build @var{derivations} (a list of @code{<derivation>} objects or derivation paths), and return when the worker is done building them. Return @code{#t} on success."
12066msgstr ""
12067
12068#. type: Plain text
32747aa9 12069#: doc/guix.texi:6443
544cab3d
LC
12070msgid "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})."
12071msgstr ""
12072
12073#. type: i{#1}
32747aa9 12074#: doc/guix.texi:6446
544cab3d
LC
12075msgid "This section is currently incomplete."
12076msgstr ""
12077
12078#. type: cindex
32747aa9 12079#: doc/guix.texi:6450
544cab3d
LC
12080#, no-wrap
12081msgid "derivations"
12082msgstr ""
12083
12084#. type: Plain text
32747aa9 12085#: doc/guix.texi:6454
544cab3d
LC
12086msgid "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:"
12087msgstr ""
12088
12089#. type: itemize
32747aa9 12090#: doc/guix.texi:6459
544cab3d
LC
12091msgid "The outputs of the derivation---derivations produce at least one file or directory in the store, but may produce more."
12092msgstr ""
12093
12094#. type: cindex
32747aa9 12095#: doc/guix.texi:6461
544cab3d
LC
12096#, no-wrap
12097msgid "build-time dependencies"
12098msgstr ""
12099
12100#. type: cindex
32747aa9 12101#: doc/guix.texi:6462
544cab3d
LC
12102#, no-wrap
12103msgid "dependencies, build-time"
12104msgstr ""
12105
12106#. type: itemize
32747aa9 12107#: doc/guix.texi:6466
544cab3d
LC
12108msgid "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.)"
12109msgstr ""
12110
12111#. type: itemize
32747aa9 12112#: doc/guix.texi:6469
544cab3d
LC
12113msgid "The system type targeted by the derivation---e.g., @code{x86_64-linux}."
12114msgstr ""
12115
12116#. type: itemize
32747aa9 12117#: doc/guix.texi:6473
544cab3d
LC
12118msgid "The file name of a build script in the store, along with the arguments to be passed."
12119msgstr ""
12120
12121#. type: itemize
32747aa9 12122#: doc/guix.texi:6476
544cab3d
LC
12123msgid "A list of environment variables to be defined."
12124msgstr ""
12125
12126#. type: cindex
32747aa9 12127#: doc/guix.texi:6479
544cab3d
LC
12128#, no-wrap
12129msgid "derivation path"
12130msgstr ""
12131
12132#. type: Plain text
32747aa9 12133#: doc/guix.texi:6487
544cab3d
LC
12134msgid "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 @code{.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})."
12135msgstr ""
12136
12137#. type: cindex
32747aa9 12138#: doc/guix.texi:6488
544cab3d
LC
12139#, no-wrap
12140msgid "fixed-output derivations"
12141msgstr ""
12142
12143#. type: Plain text
32747aa9 12144#: doc/guix.texi:6495
544cab3d
LC
12145msgid "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."
12146msgstr ""
12147
12148#. type: item
32747aa9 12149#: doc/guix.texi:6496 doc/guix.texi:9483
544cab3d
LC
12150#, no-wrap
12151msgid "references"
12152msgstr ""
12153
12154#. type: cindex
32747aa9 12155#: doc/guix.texi:6497
544cab3d
LC
12156#, no-wrap
12157msgid "run-time dependencies"
12158msgstr ""
12159
12160#. type: cindex
32747aa9 12161#: doc/guix.texi:6498
544cab3d
LC
12162#, no-wrap
12163msgid "dependencies, run-time"
12164msgstr ""
12165
12166#. type: Plain text
32747aa9 12167#: doc/guix.texi:6505
544cab3d
LC
12168msgid "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."
12169msgstr ""
12170
12171#. type: Plain text
32747aa9 12172#: doc/guix.texi:6510
544cab3d
LC
12173msgid "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:"
12174msgstr ""
12175
12176#. type: deffn
32747aa9 12177#: doc/guix.texi:6511
544cab3d
LC
12178#, no-wrap
12179msgid "{Scheme Procedure} derivation @var{store} @var{name} @var{builder} @"
12180msgstr ""
12181
12182#. type: deffn
32747aa9 12183#: doc/guix.texi:6520
544cab3d
LC
12184msgid "@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."
12185msgstr ""
12186
12187#. type: deffn
32747aa9 12188#: doc/guix.texi:6527
544cab3d
LC
12189msgid "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."
12190msgstr ""
12191
12192#. type: deffn
32747aa9 12193#: doc/guix.texi:6532
544cab3d
LC
12194msgid "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."
12195msgstr ""
12196
12197#. type: deffn
32747aa9 12198#: doc/guix.texi:6537
544cab3d
LC
12199msgid "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."
12200msgstr ""
12201
12202#. type: deffn
32747aa9 12203#: doc/guix.texi:6544
544cab3d
LC
12204msgid "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."
12205msgstr ""
12206
12207#. type: deffn
32747aa9 12208#: doc/guix.texi:6549
544cab3d
LC
12209msgid "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."
12210msgstr ""
12211
12212#. type: deffn
32747aa9 12213#: doc/guix.texi:6554
544cab3d
LC
12214msgid "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."
12215msgstr ""
12216
12217#. type: deffn
32747aa9 12218#: doc/guix.texi:6557
544cab3d
LC
12219msgid "@var{properties} must be an association list describing ``properties'' of the derivation. It is kept as-is, uninterpreted, in the derivation."
12220msgstr ""
12221
12222#. type: Plain text
32747aa9 12223#: doc/guix.texi:6563
544cab3d
LC
12224msgid "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:"
12225msgstr ""
12226
12227#. type: lisp
32747aa9 12228#: doc/guix.texi:6568
544cab3d
LC
12229#, no-wrap
12230msgid ""
12231"(use-modules (guix utils)\n"
12232" (guix store)\n"
12233" (guix derivations))\n"
12234"\n"
12235msgstr ""
12236
12237#. type: lisp
32747aa9 12238#: doc/guix.texi:6577
544cab3d
LC
12239#, no-wrap
12240msgid ""
12241"(let ((builder ; add the Bash script to the store\n"
12242" (add-text-to-store store \"my-builder.sh\"\n"
12243" \"echo hello world > $out\\n\" '())))\n"
12244" (derivation store \"foo\"\n"
12245" bash `(\"-e\" ,builder)\n"
12246" #:inputs `((,bash) (,builder))\n"
12247" #:env-vars '((\"HOME\" . \"/homeless\"))))\n"
12248"@result{} #<derivation /gnu/store/@dots{}-foo.drv => /gnu/store/@dots{}-foo>\n"
12249msgstr ""
12250
12251#. type: Plain text
32747aa9 12252#: doc/guix.texi:6584
544cab3d
LC
12253msgid "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}."
12254msgstr ""
12255
12256#. type: Plain text
32747aa9 12257#: doc/guix.texi:6589
544cab3d
LC
12258msgid "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}."
12259msgstr ""
12260
12261#. type: deffn
32747aa9 12262#: doc/guix.texi:6590
544cab3d
LC
12263#, no-wrap
12264msgid "{Scheme Procedure} build-expression->derivation @var{store} @"
12265msgstr ""
12266
12267#. type: deffn
32747aa9 12268#: doc/guix.texi:6606
544cab3d
LC
12269msgid "@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))}."
12270msgstr ""
12271
12272#. type: deffn
32747aa9 12273#: doc/guix.texi:6614
544cab3d
LC
12274msgid "@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."
12275msgstr ""
12276
12277#. type: deffn
32747aa9 12278#: doc/guix.texi:6618
544cab3d
LC
12279msgid "@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."
12280msgstr ""
12281
12282#. type: deffn
32747aa9 12283#: doc/guix.texi:6623
544cab3d
LC
12284msgid "See the @code{derivation} procedure for the meaning of @var{references-graphs}, @var{allowed-references}, @var{disallowed-references}, @var{local-build?}, and @var{substitutable?}."
12285msgstr ""
12286
12287#. type: Plain text
32747aa9 12288#: doc/guix.texi:6628
544cab3d
LC
12289msgid "Here's an example of a single-output derivation that creates a directory containing one file:"
12290msgstr ""
12291
12292#. type: lisp
32747aa9 12293#: doc/guix.texi:6636
544cab3d
LC
12294#, no-wrap
12295msgid ""
12296"(let ((builder '(let ((out (assoc-ref %outputs \"out\")))\n"
12297" (mkdir out) ; create /gnu/store/@dots{}-goo\n"
12298" (call-with-output-file (string-append out \"/test\")\n"
12299" (lambda (p)\n"
12300" (display '(hello guix) p))))))\n"
12301" (build-expression->derivation store \"goo\" builder))\n"
12302"\n"
12303msgstr ""
12304
12305#. type: lisp
32747aa9 12306#: doc/guix.texi:6638
544cab3d
LC
12307#, no-wrap
12308msgid "@result{} #<derivation /gnu/store/@dots{}-goo.drv => @dots{}>\n"
12309msgstr ""
12310
12311#. type: cindex
32747aa9 12312#: doc/guix.texi:6644
544cab3d
LC
12313#, no-wrap
12314msgid "monad"
12315msgstr ""
12316
12317#. type: Plain text
32747aa9 12318#: doc/guix.texi:6650
544cab3d
LC
12319msgid "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."
12320msgstr ""
12321
12322#. type: Plain text
32747aa9 12323#: doc/guix.texi:6656
544cab3d
LC
12324msgid "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."
12325msgstr ""
12326
12327#. type: cindex
32747aa9 12328#: doc/guix.texi:6657
544cab3d
LC
12329#, no-wrap
12330msgid "monadic values"
12331msgstr ""
12332
12333#. type: cindex
32747aa9 12334#: doc/guix.texi:6658
544cab3d
LC
12335#, no-wrap
12336msgid "monadic functions"
12337msgstr ""
12338
12339#. type: Plain text
32747aa9 12340#: doc/guix.texi:6668
544cab3d
LC
12341msgid "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}."
12342msgstr ""
12343
12344#. type: Plain text
32747aa9 12345#: doc/guix.texi:6670
544cab3d
LC
12346msgid "Consider this ``normal'' procedure:"
12347msgstr ""
12348
12349#. type: example
32747aa9 12350#: doc/guix.texi:6679
544cab3d
LC
12351#, no-wrap
12352msgid ""
12353"(define (sh-symlink store)\n"
12354" ;; Return a derivation that symlinks the 'bash' executable.\n"
12355" (let* ((drv (package-derivation store bash))\n"
12356" (out (derivation->output-path drv))\n"
12357" (sh (string-append out \"/bin/bash\")))\n"
12358" (build-expression->derivation store \"sh\"\n"
12359" `(symlink ,sh %output))))\n"
12360msgstr ""
12361
12362#. type: Plain text
32747aa9 12363#: doc/guix.texi:6683
544cab3d
LC
12364msgid "Using @code{(guix monads)} and @code{(guix gexp)}, it may be rewritten as a monadic function:"
12365msgstr ""
12366
12367#. type: example
32747aa9 12368#: doc/guix.texi:6691
544cab3d
LC
12369#, no-wrap
12370msgid ""
12371"(define (sh-symlink)\n"
12372" ;; Same, but return a monadic value.\n"
12373" (mlet %store-monad ((drv (package->derivation bash)))\n"
12374" (gexp->derivation \"sh\"\n"
12375" #~(symlink (string-append #$drv \"/bin/bash\")\n"
12376" #$output))))\n"
12377msgstr ""
12378
12379#. type: Plain text
32747aa9 12380#: doc/guix.texi:6698
544cab3d
LC
12381msgid "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}."
12382msgstr ""
12383
12384#. type: Plain text
32747aa9 12385#: doc/guix.texi:6702
544cab3d
LC
12386msgid "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}):"
12387msgstr ""
12388
12389#. type: example
32747aa9 12390#: doc/guix.texi:6708
544cab3d
LC
12391#, no-wrap
12392msgid ""
12393"(define (sh-symlink)\n"
12394" (gexp->derivation \"sh\"\n"
12395" #~(symlink (string-append #$bash \"/bin/bash\")\n"
12396" #$output)))\n"
12397msgstr ""
12398
12399#. type: Plain text
32747aa9 12400#: doc/guix.texi:6717
544cab3d
LC
12401msgid "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}:"
12402msgstr ""
12403
12404#. type: example
32747aa9 12405#: doc/guix.texi:6721
544cab3d
LC
12406#, no-wrap
12407msgid ""
12408"(run-with-store (open-connection) (sh-symlink))\n"
12409"@result{} /gnu/store/...-sh-symlink\n"
12410msgstr ""
12411
12412#. type: Plain text
32747aa9 12413#: doc/guix.texi:6727
544cab3d
LC
12414msgid "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:"
12415msgstr ""
12416
12417#. type: example
32747aa9 12418#: doc/guix.texi:6731
544cab3d
LC
12419#, no-wrap
12420msgid ""
12421"scheme@@(guile-user)> ,run-in-store (package->derivation hello)\n"
12422"$1 = #<derivation /gnu/store/@dots{}-hello-2.9.drv => @dots{}>\n"
12423msgstr ""
12424
12425#. type: Plain text
32747aa9 12426#: doc/guix.texi:6735
544cab3d
LC
12427msgid "The latter enters a recursive REPL, where all the return values are automatically run through the store:"
12428msgstr ""
12429
12430#. type: example
32747aa9 12431#: doc/guix.texi:6744
544cab3d
LC
12432#, no-wrap
12433msgid ""
12434"scheme@@(guile-user)> ,enter-store-monad\n"
12435"store-monad@@(guile-user) [1]> (package->derivation hello)\n"
12436"$2 = #<derivation /gnu/store/@dots{}-hello-2.9.drv => @dots{}>\n"
12437"store-monad@@(guile-user) [1]> (text-file \"foo\" \"Hello!\")\n"
12438"$3 = \"/gnu/store/@dots{}-foo\"\n"
12439"store-monad@@(guile-user) [1]> ,q\n"
12440"scheme@@(guile-user)>\n"
12441msgstr ""
12442
12443#. type: Plain text
32747aa9 12444#: doc/guix.texi:6749
544cab3d
LC
12445msgid "Note that non-monadic values cannot be returned in the @code{store-monad} REPL."
12446msgstr ""
12447
12448#. type: Plain text
32747aa9 12449#: doc/guix.texi:6752
544cab3d
LC
12450msgid "The main syntactic forms to deal with monads in general are provided by the @code{(guix monads)} module and are described below."
12451msgstr ""
12452
12453#. type: deffn
32747aa9 12454#: doc/guix.texi:6753
544cab3d
LC
12455#, no-wrap
12456msgid "{Scheme Syntax} with-monad @var{monad} @var{body} ..."
12457msgstr ""
12458
12459#. type: deffn
32747aa9 12460#: doc/guix.texi:6756
544cab3d
LC
12461msgid "Evaluate any @code{>>=} or @code{return} forms in @var{body} as being in @var{monad}."
12462msgstr ""
12463
12464#. type: deffn
32747aa9 12465#: doc/guix.texi:6758
544cab3d
LC
12466#, no-wrap
12467msgid "{Scheme Syntax} return @var{val}"
12468msgstr ""
12469
12470#. type: deffn
32747aa9 12471#: doc/guix.texi:6760
544cab3d
LC
12472msgid "Return a monadic value that encapsulates @var{val}."
12473msgstr ""
12474
12475#. type: deffn
32747aa9 12476#: doc/guix.texi:6762
544cab3d
LC
12477#, no-wrap
12478msgid "{Scheme Syntax} >>= @var{mval} @var{mproc} ..."
12479msgstr ""
12480
12481#. type: deffn
32747aa9 12482#: doc/guix.texi:6769
544cab3d
LC
12483msgid "@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:"
12484msgstr ""
12485
12486#. type: example
32747aa9 12487#: doc/guix.texi:6777
544cab3d
LC
12488#, no-wrap
12489msgid ""
12490"(run-with-state\n"
12491" (with-monad %state-monad\n"
12492" (>>= (return 1)\n"
12493" (lambda (x) (return (+ 1 x)))\n"
12494" (lambda (x) (return (* 2 x)))))\n"
12495" 'some-state)\n"
12496"\n"
12497msgstr ""
12498
12499#. type: example
32747aa9 12500#: doc/guix.texi:6780
544cab3d
LC
12501#, no-wrap
12502msgid ""
12503"@result{} 4\n"
12504"@result{} some-state\n"
12505msgstr ""
12506
12507#. type: deffn
32747aa9 12508#: doc/guix.texi:6783
544cab3d
LC
12509#, no-wrap
12510msgid "{Scheme Syntax} mlet @var{monad} ((@var{var} @var{mval}) ...) @"
12511msgstr ""
12512
12513#. type: deffn
32747aa9 12514#: doc/guix.texi:6785
544cab3d
LC
12515msgid "@var{body} ..."
12516msgstr ""
12517
12518#. type: deffnx
32747aa9 12519#: doc/guix.texi:6785
544cab3d
LC
12520#, no-wrap
12521msgid "{Scheme Syntax} mlet* @var{monad} ((@var{var} @var{mval}) ...) @"
12522msgstr ""
12523
12524#. type: deffn
32747aa9 12525#: doc/guix.texi:6797
544cab3d
LC
12526msgid "@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}."
12527msgstr ""
12528
12529#. type: deffn
32747aa9 12530#: doc/guix.texi:6800
544cab3d
LC
12531msgid "@code{mlet*} is to @code{mlet} what @code{let*} is to @code{let} (@pxref{Local Bindings,,, guile, GNU Guile Reference Manual})."
12532msgstr ""
12533
12534#. type: deffn
32747aa9 12535#: doc/guix.texi:6802
544cab3d
LC
12536#, no-wrap
12537msgid "{Scheme System} mbegin @var{monad} @var{mexp} ..."
12538msgstr ""
12539
12540#. type: deffn
32747aa9 12541#: doc/guix.texi:6806
544cab3d
LC
12542msgid "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."
12543msgstr ""
12544
12545#. type: deffn
32747aa9 12546#: doc/guix.texi:6810
544cab3d
LC
12547msgid "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."
12548msgstr ""
12549
12550#. type: deffn
32747aa9 12551#: doc/guix.texi:6812
544cab3d
LC
12552#, no-wrap
12553msgid "{Scheme System} mwhen @var{condition} @var{mexp0} @var{mexp*} ..."
12554msgstr ""
12555
12556#. type: deffn
32747aa9 12557#: doc/guix.texi:6817
544cab3d
LC
12558msgid "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."
12559msgstr ""
12560
12561#. type: deffn
32747aa9 12562#: doc/guix.texi:6819
544cab3d
LC
12563#, no-wrap
12564msgid "{Scheme System} munless @var{condition} @var{mexp0} @var{mexp*} ..."
12565msgstr ""
12566
12567#. type: deffn
32747aa9 12568#: doc/guix.texi:6824
544cab3d
LC
12569msgid "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."
12570msgstr ""
12571
12572#. type: cindex
32747aa9 12573#: doc/guix.texi:6826
544cab3d
LC
12574#, no-wrap
12575msgid "state monad"
12576msgstr ""
12577
12578#. type: Plain text
32747aa9 12579#: doc/guix.texi:6830
544cab3d
LC
12580msgid "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."
12581msgstr ""
12582
12583#. type: defvr
32747aa9 12584#: doc/guix.texi:6831
544cab3d
LC
12585#, no-wrap
12586msgid "{Scheme Variable} %state-monad"
12587msgstr ""
12588
12589#. type: defvr
32747aa9 12590#: doc/guix.texi:6834
544cab3d
LC
12591msgid "The state monad. Procedures in the state monad can access and change the state that is threaded."
12592msgstr ""
12593
12594#. type: defvr
32747aa9 12595#: doc/guix.texi:6838
544cab3d
LC
12596msgid "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:"
12597msgstr ""
12598
12599#. type: example
32747aa9 12600#: doc/guix.texi:6845
544cab3d
LC
12601#, no-wrap
12602msgid ""
12603"(define (square x)\n"
12604" (mlet %state-monad ((count (current-state)))\n"
12605" (mbegin %state-monad\n"
12606" (set-current-state (+ 1 count))\n"
12607" (return (* x x)))))\n"
12608"\n"
12609msgstr ""
12610
12611#. type: example
32747aa9 12612#: doc/guix.texi:6849
544cab3d
LC
12613#, no-wrap
12614msgid ""
12615"(run-with-state (sequence %state-monad (map square (iota 3))) 0)\n"
12616"@result{} (0 1 4)\n"
12617"@result{} 3\n"
12618msgstr ""
12619
12620#. type: defvr
32747aa9 12621#: doc/guix.texi:6853
544cab3d
LC
12622msgid "When ``run'' through @var{%state-monad}, we obtain that additional state value, which is the number of @code{square} calls."
12623msgstr ""
12624
12625#. type: deffn
32747aa9 12626#: doc/guix.texi:6855
544cab3d
LC
12627#, no-wrap
12628msgid "{Monadic Procedure} current-state"
12629msgstr ""
12630
12631#. type: deffn
32747aa9 12632#: doc/guix.texi:6857
544cab3d
LC
12633msgid "Return the current state as a monadic value."
12634msgstr ""
12635
12636#. type: deffn
32747aa9 12637#: doc/guix.texi:6859
544cab3d
LC
12638#, no-wrap
12639msgid "{Monadic Procedure} set-current-state @var{value}"
12640msgstr ""
12641
12642#. type: deffn
32747aa9 12643#: doc/guix.texi:6862
544cab3d
LC
12644msgid "Set the current state to @var{value} and return the previous state as a monadic value."
12645msgstr ""
12646
12647#. type: deffn
32747aa9 12648#: doc/guix.texi:6864
544cab3d
LC
12649#, no-wrap
12650msgid "{Monadic Procedure} state-push @var{value}"
12651msgstr ""
12652
12653#. type: deffn
32747aa9 12654#: doc/guix.texi:6867
544cab3d
LC
12655msgid "Push @var{value} to the current state, which is assumed to be a list, and return the previous state as a monadic value."
12656msgstr ""
12657
12658#. type: deffn
32747aa9 12659#: doc/guix.texi:6869
544cab3d
LC
12660#, no-wrap
12661msgid "{Monadic Procedure} state-pop"
12662msgstr ""
12663
12664#. type: deffn
32747aa9 12665#: doc/guix.texi:6872
544cab3d
LC
12666msgid "Pop a value from the current state and return it as a monadic value. The state is assumed to be a list."
12667msgstr ""
12668
12669#. type: deffn
32747aa9 12670#: doc/guix.texi:6874
544cab3d
LC
12671#, no-wrap
12672msgid "{Scheme Procedure} run-with-state @var{mval} [@var{state}]"
12673msgstr ""
12674
12675#. type: deffn
32747aa9 12676#: doc/guix.texi:6877
544cab3d
LC
12677msgid "Run monadic value @var{mval} starting with @var{state} as the initial state. Return two values: the resulting value, and the resulting state."
12678msgstr ""
12679
12680#. type: Plain text
32747aa9 12681#: doc/guix.texi:6881
544cab3d
LC
12682msgid "The main interface to the store monad, provided by the @code{(guix store)} module, is as follows."
12683msgstr ""
12684
12685#. type: defvr
32747aa9 12686#: doc/guix.texi:6882
544cab3d
LC
12687#, no-wrap
12688msgid "{Scheme Variable} %store-monad"
12689msgstr ""
12690
12691#. type: defvr
32747aa9 12692#: doc/guix.texi:6884
544cab3d
LC
12693msgid "The store monad---an alias for @var{%state-monad}."
12694msgstr ""
12695
12696#. type: defvr
32747aa9 12697#: doc/guix.texi:6888
544cab3d
LC
12698msgid "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.)"
12699msgstr ""
12700
12701#. type: deffn
32747aa9 12702#: doc/guix.texi:6890
544cab3d
LC
12703#, no-wrap
12704msgid "{Scheme Procedure} run-with-store @var{store} @var{mval} [#:guile-for-build] [#:system (%current-system)]"
12705msgstr ""
12706
12707#. type: deffn
32747aa9 12708#: doc/guix.texi:6893
544cab3d
LC
12709msgid "Run @var{mval}, a monadic value in the store monad, in @var{store}, an open store connection."
12710msgstr ""
12711
12712#. type: deffn
32747aa9 12713#: doc/guix.texi:6895
544cab3d
LC
12714#, no-wrap
12715msgid "{Monadic Procedure} text-file @var{name} @var{text} [@var{references}]"
12716msgstr ""
12717
12718#. type: deffn
32747aa9 12719#: doc/guix.texi:6899
544cab3d
LC
12720msgid "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."
12721msgstr ""
12722
12723#. type: deffn
32747aa9 12724#: doc/guix.texi:6901
544cab3d
LC
12725#, no-wrap
12726msgid "{Monadic Procedure} binary-file @var{name} @var{data} [@var{references}]"
12727msgstr ""
12728
12729#. type: deffn
32747aa9 12730#: doc/guix.texi:6905
544cab3d
LC
12731msgid "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."
12732msgstr ""
12733
12734#. type: deffn
32747aa9 12735#: doc/guix.texi:6907
544cab3d
LC
12736#, no-wrap
12737msgid "{Monadic Procedure} interned-file @var{file} [@var{name}] @"
12738msgstr ""
12739
12740#. type: deffn
32747aa9 12741#: doc/guix.texi:6912
544cab3d
LC
12742msgid "[#: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."
12743msgstr ""
12744
12745#. type: deffn
32747aa9 12746#: doc/guix.texi:6916 doc/guix.texi:7329
544cab3d
LC
12747msgid "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."
12748msgstr ""
12749
12750#. type: deffn
32747aa9 12751#: doc/guix.texi:6921 doc/guix.texi:7334
544cab3d
LC
12752msgid "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."
12753msgstr ""
12754
12755#. type: deffn
32747aa9 12756#: doc/guix.texi:6923
544cab3d
LC
12757msgid "The example below adds a file to the store, under two different names:"
12758msgstr ""
12759
12760#. type: example
32747aa9 12761#: doc/guix.texi:6929
544cab3d
LC
12762#, no-wrap
12763msgid ""
12764"(run-with-store (open-connection)\n"
12765" (mlet %store-monad ((a (interned-file \"README\"))\n"
12766" (b (interned-file \"README\" \"LEGU-MIN\")))\n"
12767" (return (list a b))))\n"
12768"\n"
12769msgstr ""
12770
12771#. type: example
32747aa9 12772#: doc/guix.texi:6931
544cab3d
LC
12773#, no-wrap
12774msgid "@result{} (\"/gnu/store/rwm@dots{}-README\" \"/gnu/store/44i@dots{}-LEGU-MIN\")\n"
12775msgstr ""
12776
12777#. type: Plain text
32747aa9 12778#: doc/guix.texi:6937
544cab3d
LC
12779msgid "The @code{(guix packages)} module exports the following package-related monadic procedures:"
12780msgstr ""
12781
12782#. type: deffn
32747aa9 12783#: doc/guix.texi:6938
544cab3d
LC
12784#, no-wrap
12785msgid "{Monadic Procedure} package-file @var{package} [@var{file}] @"
12786msgstr ""
12787
12788#. type: deffn
32747aa9 12789#: doc/guix.texi:6946
544cab3d
LC
12790msgid "[#: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."
12791msgstr ""
12792
12793#. type: deffn
32747aa9 12794#: doc/guix.texi:6948
544cab3d
LC
12795#, no-wrap
12796msgid "{Monadic Procedure} package->derivation @var{package} [@var{system}]"
12797msgstr ""
12798
12799#. type: deffnx
32747aa9 12800#: doc/guix.texi:6949
544cab3d
LC
12801#, no-wrap
12802msgid "{Monadic Procedure} package->cross-derivation @var{package} @"
12803msgstr ""
12804
12805#. type: deffn
32747aa9 12806#: doc/guix.texi:6953
544cab3d
LC
12807msgid "@var{target} [@var{system}] Monadic version of @code{package-derivation} and @code{package-cross-derivation} (@pxref{Defining Packages})."
12808msgstr ""
12809
12810#. type: cindex
32747aa9 12811#: doc/guix.texi:6959
544cab3d
LC
12812#, no-wrap
12813msgid "G-expression"
12814msgstr ""
12815
12816#. type: cindex
32747aa9 12817#: doc/guix.texi:6960
544cab3d
LC
12818#, no-wrap
12819msgid "build code quoting"
12820msgstr ""
12821
12822#. type: Plain text
32747aa9 12823#: doc/guix.texi:6966
544cab3d
LC
12824msgid "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})."
12825msgstr ""
12826
12827#. type: cindex
32747aa9 12828#: doc/guix.texi:6967
544cab3d
LC
12829#, no-wrap
12830msgid "strata of code"
12831msgstr ""
12832
12833#. type: Plain text
32747aa9 12834#: doc/guix.texi:6979
544cab3d
LC
12835msgid "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}, etc."
12836msgstr ""
12837
12838#. type: Plain text
32747aa9 12839#: doc/guix.texi:6986
544cab3d
LC
12840msgid "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."
12841msgstr ""
12842
12843#. type: Plain text
32747aa9 12844#: doc/guix.texi:6995
544cab3d
LC
12845msgid "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:"
12846msgstr ""
12847
12848#. type: itemize
32747aa9 12849#: doc/guix.texi:7000
544cab3d
LC
12850msgid "Gexps are meant to be written to a file and run or manipulated by other processes."
12851msgstr ""
12852
12853#. type: itemize
32747aa9 12854#: doc/guix.texi:7005
544cab3d
LC
12855msgid "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."
12856msgstr ""
12857
12858#. type: itemize
32747aa9 12859#: doc/guix.texi:7010
544cab3d
LC
12860msgid "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."
12861msgstr ""
12862
12863#. type: cindex
32747aa9 12864#: doc/guix.texi:7012 doc/guix.texi:7516
544cab3d
LC
12865#, no-wrap
12866msgid "lowering, of high-level objects in gexps"
12867msgstr ""
12868
12869#. type: Plain text
32747aa9 12870#: doc/guix.texi:7022
544cab3d
LC
12871msgid "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.)"
12872msgstr ""
12873
12874#. type: Plain text
32747aa9 12875#: doc/guix.texi:7024
544cab3d
LC
12876msgid "To illustrate the idea, here is an example of a gexp:"
12877msgstr ""
12878
12879#. type: example
32747aa9 12880#: doc/guix.texi:7032
544cab3d
LC
12881#, no-wrap
12882msgid ""
12883"(define build-exp\n"
12884" #~(begin\n"
12885" (mkdir #$output)\n"
12886" (chdir #$output)\n"
12887" (symlink (string-append #$coreutils \"/bin/ls\")\n"
12888" \"list-files\")))\n"
12889msgstr ""
12890
12891#. type: Plain text
32747aa9 12892#: doc/guix.texi:7037
544cab3d
LC
12893msgid "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}:"
12894msgstr ""
12895
12896#. type: example
32747aa9 12897#: doc/guix.texi:7040
544cab3d
LC
12898#, no-wrap
12899msgid "(gexp->derivation \"the-thing\" build-exp)\n"
12900msgstr ""
12901
12902#. type: Plain text
32747aa9 12903#: doc/guix.texi:7048
544cab3d
LC
12904msgid "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."
12905msgstr ""
12906
12907#. type: cindex
32747aa9 12908#: doc/guix.texi:7049
544cab3d
LC
12909#, no-wrap
12910msgid "cross compilation"
12911msgstr ""
12912
12913#. type: Plain text
32747aa9 12914#: doc/guix.texi:7055
544cab3d
LC
12915msgid "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:"
12916msgstr ""
12917
12918#. type: example
32747aa9 12919#: doc/guix.texi:7065
544cab3d
LC
12920#, no-wrap
12921msgid ""
12922"(gexp->derivation \"vi\"\n"
12923" #~(begin\n"
12924" (mkdir #$output)\n"
12925" (system* (string-append #+coreutils \"/bin/ln\")\n"
12926" \"-s\"\n"
12927" (string-append #$emacs \"/bin/emacs\")\n"
12928" (string-append #$output \"/bin/vi\")))\n"
12929" #:target \"mips64el-linux-gnu\")\n"
12930msgstr ""
12931
12932#. type: Plain text
32747aa9 12933#: doc/guix.texi:7071
544cab3d
LC
12934msgid "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."
12935msgstr ""
12936
12937#. type: cindex
32747aa9 12938#: doc/guix.texi:7072
544cab3d
LC
12939#, no-wrap
12940msgid "imported modules, for gexps"
12941msgstr ""
12942
12943#. type: findex
32747aa9 12944#: doc/guix.texi:7073
544cab3d
LC
12945#, no-wrap
12946msgid "with-imported-modules"
12947msgstr ""
12948
12949#. type: Plain text
32747aa9 12950#: doc/guix.texi:7078
544cab3d
LC
12951msgid "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:"
12952msgstr ""
12953
12954#. type: example
32747aa9 12955#: doc/guix.texi:7089
544cab3d
LC
12956#, no-wrap
12957msgid ""
12958"(let ((build (with-imported-modules '((guix build utils))\n"
12959" #~(begin\n"
12960" (use-modules (guix build utils))\n"
12961" (mkdir-p (string-append #$output \"/bin\"))))))\n"
12962" (gexp->derivation \"empty-dir\"\n"
12963" #~(begin\n"
12964" #$build\n"
12965" (display \"success!\\n\")\n"
12966" #t)))\n"
12967msgstr ""
12968
12969#. type: Plain text
32747aa9 12970#: doc/guix.texi:7095
544cab3d
LC
12971msgid "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."
12972msgstr ""
12973
12974#. type: cindex
32747aa9 12975#: doc/guix.texi:7096
544cab3d
LC
12976#, no-wrap
12977msgid "module closure"
12978msgstr ""
12979
12980#. type: findex
32747aa9 12981#: doc/guix.texi:7097
544cab3d
LC
12982#, no-wrap
12983msgid "source-module-closure"
12984msgstr ""
12985
12986#. type: Plain text
32747aa9 12987#: doc/guix.texi:7104
544cab3d
LC
12988msgid "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:"
12989msgstr ""
12990
12991#. type: example
32747aa9 12992#: doc/guix.texi:7107
544cab3d
LC
12993#, no-wrap
12994msgid ""
12995"(use-modules (guix modules)) ;for 'source-module-closure'\n"
12996"\n"
12997msgstr ""
12998
12999#. type: example
32747aa9 13000#: doc/guix.texi:7116
544cab3d
LC
13001#, no-wrap
13002msgid ""
13003"(with-imported-modules (source-module-closure\n"
13004" '((guix build utils)\n"
13005" (gnu build vm)))\n"
13006" (gexp->derivation \"something-with-vms\"\n"
13007" #~(begin\n"
13008" (use-modules (guix build utils)\n"
13009" (gnu build vm))\n"
13010" @dots{})))\n"
13011msgstr ""
13012
13013#. type: cindex
32747aa9 13014#: doc/guix.texi:7118
544cab3d
LC
13015#, no-wrap
13016msgid "extensions, for gexps"
13017msgstr ""
13018
13019#. type: findex
32747aa9 13020#: doc/guix.texi:7119
544cab3d
LC
13021#, no-wrap
13022msgid "with-extensions"
13023msgstr ""
13024
13025#. type: Plain text
32747aa9 13026#: doc/guix.texi:7124
544cab3d
LC
13027msgid "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:"
13028msgstr ""
13029
13030#. type: example
32747aa9 13031#: doc/guix.texi:7127
544cab3d
LC
13032#, no-wrap
13033msgid ""
13034"(use-modules (gnu packages guile)) ;for 'guile-json'\n"
13035"\n"
13036msgstr ""
13037
13038#. type: example
32747aa9 13039#: doc/guix.texi:7133
544cab3d
LC
13040#, no-wrap
13041msgid ""
13042"(with-extensions (list guile-json)\n"
13043" (gexp->derivation \"something-with-json\"\n"
13044" #~(begin\n"
13045" (use-modules (json))\n"
13046" @dots{})))\n"
13047msgstr ""
13048
13049#. type: Plain text
32747aa9 13050#: doc/guix.texi:7136
544cab3d
LC
13051msgid "The syntactic form to construct gexps is summarized below."
13052msgstr ""
13053
13054#. type: deffn
32747aa9 13055#: doc/guix.texi:7137
544cab3d
LC
13056#, no-wrap
13057msgid "{Scheme Syntax} #~@var{exp}"
13058msgstr ""
13059
13060#. type: deffnx
32747aa9 13061#: doc/guix.texi:7138
544cab3d
LC
13062#, no-wrap
13063msgid "{Scheme Syntax} (gexp @var{exp})"
13064msgstr ""
13065
13066#. type: deffn
32747aa9 13067#: doc/guix.texi:7141
544cab3d
LC
13068msgid "Return a G-expression containing @var{exp}. @var{exp} may contain one or more of the following forms:"
13069msgstr ""
13070
13071#. type: item
32747aa9 13072#: doc/guix.texi:7143
544cab3d
LC
13073#, no-wrap
13074msgid "#$@var{obj}"
13075msgstr ""
13076
13077#. type: itemx
32747aa9 13078#: doc/guix.texi:7144
544cab3d
LC
13079#, no-wrap
13080msgid "(ungexp @var{obj})"
13081msgstr ""
13082
13083#. type: table
32747aa9 13084#: doc/guix.texi:7149
544cab3d
LC
13085msgid "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}."
13086msgstr ""
13087
13088#. type: table
32747aa9 13089#: doc/guix.texi:7152
544cab3d
LC
13090msgid "If @var{obj} is a list, it is traversed and references to supported objects are substituted similarly."
13091msgstr ""
13092
13093#. type: table
32747aa9 13094#: doc/guix.texi:7155
544cab3d
LC
13095msgid "If @var{obj} is another gexp, its contents are inserted and its dependencies are added to those of the containing gexp."
13096msgstr ""
13097
13098#. type: table
32747aa9 13099#: doc/guix.texi:7157
544cab3d
LC
13100msgid "If @var{obj} is another kind of object, it is inserted as is."
13101msgstr ""
13102
13103#. type: item
32747aa9 13104#: doc/guix.texi:7158
544cab3d
LC
13105#, no-wrap
13106msgid "#$@var{obj}:@var{output}"
13107msgstr ""
13108
13109#. type: itemx
32747aa9 13110#: doc/guix.texi:7159
544cab3d
LC
13111#, no-wrap
13112msgid "(ungexp @var{obj} @var{output})"
13113msgstr ""
13114
13115#. type: table
32747aa9 13116#: doc/guix.texi:7163
544cab3d
LC
13117msgid "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})."
13118msgstr ""
13119
13120#. type: item
32747aa9 13121#: doc/guix.texi:7164
544cab3d
LC
13122#, no-wrap
13123msgid "#+@var{obj}"
13124msgstr ""
13125
13126#. type: itemx
32747aa9 13127#: doc/guix.texi:7165
544cab3d
LC
13128#, no-wrap
13129msgid "#+@var{obj}:output"
13130msgstr ""
13131
13132#. type: itemx
32747aa9 13133#: doc/guix.texi:7166
544cab3d
LC
13134#, no-wrap
13135msgid "(ungexp-native @var{obj})"
13136msgstr ""
13137
13138#. type: itemx
32747aa9 13139#: doc/guix.texi:7167
544cab3d
LC
13140#, no-wrap
13141msgid "(ungexp-native @var{obj} @var{output})"
13142msgstr ""
13143
13144#. type: table
32747aa9 13145#: doc/guix.texi:7170
544cab3d
LC
13146msgid "Same as @code{ungexp}, but produces a reference to the @emph{native} build of @var{obj} when used in a cross compilation context."
13147msgstr ""
13148
13149#. type: item
32747aa9 13150#: doc/guix.texi:7171
544cab3d
LC
13151#, no-wrap
13152msgid "#$output[:@var{output}]"
13153msgstr ""
13154
13155#. type: itemx
32747aa9 13156#: doc/guix.texi:7172
544cab3d
LC
13157#, no-wrap
13158msgid "(ungexp output [@var{output}])"
13159msgstr ""
13160
13161#. type: table
32747aa9 13162#: doc/guix.texi:7175
544cab3d
LC
13163msgid "Insert a reference to derivation output @var{output}, or to the main output when @var{output} is omitted."
13164msgstr ""
13165
13166#. type: table
32747aa9 13167#: doc/guix.texi:7177
544cab3d
LC
13168msgid "This only makes sense for gexps passed to @code{gexp->derivation}."
13169msgstr ""
13170
13171#. type: item
32747aa9 13172#: doc/guix.texi:7178
544cab3d
LC
13173#, no-wrap
13174msgid "#$@@@var{lst}"
13175msgstr ""
13176
13177#. type: itemx
32747aa9 13178#: doc/guix.texi:7179
544cab3d
LC
13179#, no-wrap
13180msgid "(ungexp-splicing @var{lst})"
13181msgstr ""
13182
13183#. type: table
32747aa9 13184#: doc/guix.texi:7182
544cab3d
LC
13185msgid "Like the above, but splices the contents of @var{lst} inside the containing list."
13186msgstr ""
13187
13188#. type: item
32747aa9 13189#: doc/guix.texi:7183
544cab3d
LC
13190#, no-wrap
13191msgid "#+@@@var{lst}"
13192msgstr ""
13193
13194#. type: itemx
32747aa9 13195#: doc/guix.texi:7184
544cab3d
LC
13196#, no-wrap
13197msgid "(ungexp-native-splicing @var{lst})"
13198msgstr ""
13199
13200#. type: table
32747aa9 13201#: doc/guix.texi:7187
544cab3d
LC
13202msgid "Like the above, but refers to native builds of the objects listed in @var{lst}."
13203msgstr ""
13204
13205#. type: deffn
32747aa9 13206#: doc/guix.texi:7192
544cab3d
LC
13207msgid "G-expressions created by @code{gexp} or @code{#~} are run-time objects of the @code{gexp?} type (see below.)"
13208msgstr ""
13209
13210#. type: deffn
32747aa9 13211#: doc/guix.texi:7194
544cab3d
LC
13212#, no-wrap
13213msgid "{Scheme Syntax} with-imported-modules @var{modules} @var{body}@dots{}"
13214msgstr ""
13215
13216#. type: deffn
32747aa9 13217#: doc/guix.texi:7197
544cab3d
LC
13218msgid "Mark the gexps defined in @var{body}@dots{} as requiring @var{modules} in their execution environment."
13219msgstr ""
13220
13221#. type: deffn
32747aa9 13222#: doc/guix.texi:7201
544cab3d
LC
13223msgid "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:"
13224msgstr ""
13225
13226#. type: example
32747aa9 13227#: doc/guix.texi:7207
544cab3d
LC
13228#, no-wrap
13229msgid ""
13230"`((guix build utils)\n"
13231" (guix gcrypt)\n"
13232" ((guix config) => ,(scheme-file \"config.scm\"\n"
13233" #~(define-module @dots{}))))\n"
13234msgstr ""
13235
13236#. type: deffn
32747aa9 13237#: doc/guix.texi:7212
544cab3d
LC
13238msgid "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."
13239msgstr ""
13240
13241#. type: deffn
32747aa9 13242#: doc/guix.texi:7216
544cab3d
LC
13243msgid "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{}."
13244msgstr ""
13245
13246#. type: deffn
32747aa9 13247#: doc/guix.texi:7218
544cab3d
LC
13248#, no-wrap
13249msgid "{Scheme Syntax} with-extensions @var{extensions} @var{body}@dots{}"
13250msgstr ""
13251
13252#. type: deffn
32747aa9 13253#: doc/guix.texi:7223
544cab3d
LC
13254msgid "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."
13255msgstr ""
13256
13257#. type: deffn
32747aa9 13258#: doc/guix.texi:7228
544cab3d
LC
13259msgid "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{}."
13260msgstr ""
13261
13262#. type: deffn
32747aa9 13263#: doc/guix.texi:7230
544cab3d
LC
13264#, no-wrap
13265msgid "{Scheme Procedure} gexp? @var{obj}"
13266msgstr ""
13267
13268#. type: deffn
32747aa9 13269#: doc/guix.texi:7232
544cab3d
LC
13270msgid "Return @code{#t} if @var{obj} is a G-expression."
13271msgstr ""
13272
13273#. type: Plain text
32747aa9 13274#: doc/guix.texi:7238
544cab3d
LC
13275msgid "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.)"
13276msgstr ""
13277
13278#. type: deffn
32747aa9 13279#: doc/guix.texi:7239
544cab3d
LC
13280#, no-wrap
13281msgid "{Monadic Procedure} gexp->derivation @var{name} @var{exp} @"
13282msgstr ""
13283
13284#. type: deffn
32747aa9 13285#: doc/guix.texi:7257
544cab3d
LC
13286msgid "[#:system (%current-system)] [#:target #f] [#:graft? #t] @ [#:hash #f] [#:hash-algo #f] @ [#:recursive? #f] [#:env-vars '()] [#:modules '()] @ [#:module-path @var{%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}."
13287msgstr ""
13288
13289#. type: deffn
32747aa9 13290#: doc/guix.texi:7265
544cab3d
LC
13291msgid "@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))}."
13292msgstr ""
13293
13294#. type: deffn
32747aa9 13295#: doc/guix.texi:7268
544cab3d
LC
13296msgid "@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\"}."
13297msgstr ""
13298
13299#. type: deffn
32747aa9 13300#: doc/guix.texi:7271
544cab3d
LC
13301msgid "@var{graft?} determines whether packages referred to by @var{exp} should be grafted when applicable."
13302msgstr ""
13303
13304#. type: deffn
32747aa9 13305#: doc/guix.texi:7274
544cab3d
LC
13306msgid "When @var{references-graphs} is true, it must be a list of tuples of one of the following forms:"
13307msgstr ""
13308
13309#. type: example
32747aa9 13310#: doc/guix.texi:7281
544cab3d
LC
13311#, no-wrap
13312msgid ""
13313"(@var{file-name} @var{package})\n"
13314"(@var{file-name} @var{package} @var{output})\n"
13315"(@var{file-name} @var{derivation})\n"
13316"(@var{file-name} @var{derivation} @var{output})\n"
13317"(@var{file-name} @var{store-item})\n"
13318msgstr ""
13319
13320#. type: deffn
32747aa9 13321#: doc/guix.texi:7287
544cab3d
LC
13322msgid "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."
13323msgstr ""
13324
13325#. type: deffn
32747aa9 13326#: doc/guix.texi:7293
544cab3d
LC
13327msgid "@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."
13328msgstr ""
13329
13330#. type: deffn
32747aa9 13331#: doc/guix.texi:7296
544cab3d
LC
13332msgid "@var{deprecation-warnings} determines whether to show deprecation warnings while compiling modules. It can be @code{#f}, @code{#t}, or @code{'detailed}."
13333msgstr ""
13334
13335#. type: deffn
32747aa9 13336#: doc/guix.texi:7298
544cab3d
LC
13337msgid "The other arguments are as for @code{derivation} (@pxref{Derivations})."
13338msgstr ""
13339
13340#. type: cindex
32747aa9 13341#: doc/guix.texi:7300
544cab3d
LC
13342#, no-wrap
13343msgid "file-like objects"
13344msgstr ""
13345
13346#. type: Plain text
32747aa9 13347#: doc/guix.texi:7305
544cab3d
LC
13348msgid "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:"
13349msgstr ""
13350
13351#. type: example
32747aa9 13352#: doc/guix.texi:7309
544cab3d
LC
13353#, no-wrap
13354msgid ""
13355"#~(system* #$(file-append glibc \"/sbin/nscd\") \"-f\"\n"
13356" #$(local-file \"/tmp/my-nscd.conf\"))\n"
13357msgstr ""
13358
13359#. type: Plain text
32747aa9 13360#: doc/guix.texi:7318
544cab3d
LC
13361msgid "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."
13362msgstr ""
13363
13364#. type: deffn
32747aa9 13365#: doc/guix.texi:7319
544cab3d
LC
13366#, no-wrap
13367msgid "{Scheme Procedure} local-file @var{file} [@var{name}] @"
13368msgstr ""
13369
13370#. type: deffn
32747aa9 13371#: doc/guix.texi:7325
544cab3d
LC
13372msgid "[#: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 relative file name, it is looked up relative to the source file where this form appears. @var{file} will be added to the store under @var{name}--by default the base name of @var{file}."
13373msgstr ""
13374
13375#. type: deffn
32747aa9 13376#: doc/guix.texi:7337
544cab3d
LC
13377msgid "This is the declarative counterpart of the @code{interned-file} monadic procedure (@pxref{The Store Monad, @code{interned-file}})."
13378msgstr ""
13379
13380#. type: deffn
32747aa9 13381#: doc/guix.texi:7339
544cab3d
LC
13382#, no-wrap
13383msgid "{Scheme Procedure} plain-file @var{name} @var{content}"
13384msgstr ""
13385
13386#. type: deffn
32747aa9 13387#: doc/guix.texi:7342
544cab3d
LC
13388msgid "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."
13389msgstr ""
13390
13391#. type: deffn
32747aa9 13392#: doc/guix.texi:7344
544cab3d
LC
13393msgid "This is the declarative counterpart of @code{text-file}."
13394msgstr ""
13395
13396#. type: deffn
32747aa9 13397#: doc/guix.texi:7346
544cab3d
LC
13398#, no-wrap
13399msgid "{Scheme Procedure} computed-file @var{name} @var{gexp} @"
13400msgstr ""
13401
13402#. type: deffn
32747aa9 13403#: doc/guix.texi:7351
544cab3d
LC
13404msgid "[#:options '(#:local-build? #t)] Return an object representing the store item @var{name}, a file or directory computed by @var{gexp}. @var{options} is a list of additional arguments to pass to @code{gexp->derivation}."
13405msgstr ""
13406
13407#. type: deffn
32747aa9 13408#: doc/guix.texi:7353
544cab3d
LC
13409msgid "This is the declarative counterpart of @code{gexp->derivation}."
13410msgstr ""
13411
13412#. type: deffn
32747aa9 13413#: doc/guix.texi:7355
544cab3d
LC
13414#, no-wrap
13415msgid "{Monadic Procedure} gexp->script @var{name} @var{exp} @"
13416msgstr ""
13417
13418#. type: deffn
32747aa9 13419#: doc/guix.texi:7360
544cab3d
LC
13420msgid "[#:guile (default-guile)] [#:module-path %load-path] 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}."
13421msgstr ""
13422
13423#. type: deffn
32747aa9 13424#: doc/guix.texi:7363
544cab3d
LC
13425msgid "The example below builds a script that simply invokes the @command{ls} command:"
13426msgstr ""
13427
13428#. type: example
32747aa9 13429#: doc/guix.texi:7366
544cab3d
LC
13430#, no-wrap
13431msgid ""
13432"(use-modules (guix gexp) (gnu packages base))\n"
13433"\n"
13434msgstr ""
13435
13436#. type: example
32747aa9 13437#: doc/guix.texi:7370
544cab3d
LC
13438#, no-wrap
13439msgid ""
13440"(gexp->script \"list-files\"\n"
13441" #~(execl #$(file-append coreutils \"/bin/ls\")\n"
13442" \"ls\"))\n"
13443msgstr ""
13444
13445#. type: deffn
32747aa9 13446#: doc/guix.texi:7375
544cab3d
LC
13447msgid "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:"
13448msgstr ""
13449
13450#. type: example
32747aa9 13451#: doc/guix.texi:7380
544cab3d
LC
13452#, no-wrap
13453msgid ""
13454"#!/gnu/store/@dots{}-guile-2.0.11/bin/guile -ds\n"
13455"!#\n"
13456"(execl \"/gnu/store/@dots{}-coreutils-8.22\"/bin/ls\" \"ls\")\n"
13457msgstr ""
13458
13459#. type: deffn
32747aa9 13460#: doc/guix.texi:7383
544cab3d
LC
13461#, no-wrap
13462msgid "{Scheme Procedure} program-file @var{name} @var{exp} @"
13463msgstr ""
13464
13465#. type: deffn
32747aa9 13466#: doc/guix.texi:7388
544cab3d
LC
13467msgid "[#: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}."
13468msgstr ""
13469
13470#. type: deffn
32747aa9 13471#: doc/guix.texi:7390
544cab3d
LC
13472msgid "This is the declarative counterpart of @code{gexp->script}."
13473msgstr ""
13474
13475#. type: deffn
32747aa9 13476#: doc/guix.texi:7392
544cab3d
LC
13477#, no-wrap
13478msgid "{Monadic Procedure} gexp->file @var{name} @var{exp} @"
13479msgstr ""
13480
13481#. type: deffn
32747aa9 13482#: doc/guix.texi:7399
544cab3d
LC
13483msgid "[#: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."
13484msgstr ""
13485
13486#. type: deffn
32747aa9 13487#: doc/guix.texi:7404
544cab3d
LC
13488msgid "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}."
13489msgstr ""
13490
13491#. type: deffn
32747aa9 13492#: doc/guix.texi:7407
544cab3d
LC
13493msgid "The resulting file holds references to all the dependencies of @var{exp} or a subset thereof."
13494msgstr ""
13495
13496#. type: deffn
32747aa9 13497#: doc/guix.texi:7409
544cab3d
LC
13498#, no-wrap
13499msgid "{Scheme Procedure} scheme-file @var{name} @var{exp} [#:splice? #f]"
13500msgstr ""
13501
13502#. type: deffn
32747aa9 13503#: doc/guix.texi:7412
544cab3d
LC
13504msgid "Return an object representing the Scheme file @var{name} that contains @var{exp}."
13505msgstr ""
13506
13507#. type: deffn
32747aa9 13508#: doc/guix.texi:7414
544cab3d
LC
13509msgid "This is the declarative counterpart of @code{gexp->file}."
13510msgstr ""
13511
13512#. type: deffn
32747aa9 13513#: doc/guix.texi:7416
544cab3d
LC
13514#, no-wrap
13515msgid "{Monadic Procedure} text-file* @var{name} @var{text} @dots{}"
13516msgstr ""
13517
13518#. type: deffn
32747aa9 13519#: doc/guix.texi:7422
544cab3d
LC
13520msgid "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."
13521msgstr ""
13522
13523#. type: deffn
32747aa9 13524#: doc/guix.texi:7427
544cab3d
LC
13525msgid "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:"
13526msgstr ""
13527
13528#. type: example
32747aa9 13529#: doc/guix.texi:7435
544cab3d
LC
13530#, no-wrap
13531msgid ""
13532"(define (profile.sh)\n"
13533" ;; Return the name of a shell script in the store that\n"
13534" ;; initializes the 'PATH' environment variable.\n"
13535" (text-file* \"profile.sh\"\n"
13536" \"export PATH=\" coreutils \"/bin:\"\n"
13537" grep \"/bin:\" sed \"/bin\\n\"))\n"
13538msgstr ""
13539
13540#. type: deffn
32747aa9 13541#: doc/guix.texi:7440
544cab3d
LC
13542msgid "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."
13543msgstr ""
13544
13545#. type: deffn
32747aa9 13546#: doc/guix.texi:7442
544cab3d
LC
13547#, no-wrap
13548msgid "{Scheme Procedure} mixed-text-file @var{name} @var{text} @dots{}"
13549msgstr ""
13550
13551#. type: deffn
32747aa9 13552#: doc/guix.texi:7446
544cab3d
LC
13553msgid "Return an object representing store file @var{name} containing @var{text}. @var{text} is a sequence of strings and file-like objects, as in:"
13554msgstr ""
13555
13556#. type: example
32747aa9 13557#: doc/guix.texi:7450
544cab3d
LC
13558#, no-wrap
13559msgid ""
13560"(mixed-text-file \"profile\"\n"
13561" \"export PATH=\" coreutils \"/bin:\" grep \"/bin\")\n"
13562msgstr ""
13563
13564#. type: deffn
32747aa9 13565#: doc/guix.texi:7453
544cab3d
LC
13566msgid "This is the declarative counterpart of @code{text-file*}."
13567msgstr ""
13568
13569#. type: deffn
32747aa9 13570#: doc/guix.texi:7455
544cab3d
LC
13571#, no-wrap
13572msgid "{Scheme Procedure} file-union @var{name} @var{files}"
13573msgstr ""
13574
13575#. type: deffn
32747aa9 13576#: doc/guix.texi:7460
544cab3d
LC
13577msgid "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:"
13578msgstr ""
13579
13580#. type: example
32747aa9 13581#: doc/guix.texi:7467
544cab3d
LC
13582#, no-wrap
13583msgid ""
13584"(file-union \"etc\"\n"
13585" `((\"hosts\" ,(plain-file \"hosts\"\n"
13586" \"127.0.0.1 localhost\"))\n"
13587" (\"bashrc\" ,(plain-file \"bashrc\"\n"
13588" \"alias ls='ls --color=auto'\"))))\n"
13589msgstr ""
13590
13591#. type: deffn
32747aa9 13592#: doc/guix.texi:7470
544cab3d
LC
13593msgid "This yields an @code{etc} directory containing these two files."
13594msgstr ""
13595
13596#. type: deffn
32747aa9 13597#: doc/guix.texi:7472
544cab3d
LC
13598#, no-wrap
13599msgid "{Scheme Procedure} directory-union @var{name} @var{things}"
13600msgstr ""
13601
13602#. type: deffn
32747aa9 13603#: doc/guix.texi:7475
544cab3d
LC
13604msgid "Return a directory that is the union of @var{things}, where @var{things} is a list of file-like objects denoting directories. For example:"
13605msgstr ""
13606
13607#. type: example
32747aa9 13608#: doc/guix.texi:7478
544cab3d
LC
13609#, no-wrap
13610msgid "(directory-union \"guile+emacs\" (list guile emacs))\n"
13611msgstr ""
13612
13613#. type: deffn
32747aa9 13614#: doc/guix.texi:7481
544cab3d
LC
13615msgid "yields a directory that is the union of the @code{guile} and @code{emacs} packages."
13616msgstr ""
13617
13618#. type: deffn
32747aa9 13619#: doc/guix.texi:7483
544cab3d
LC
13620#, no-wrap
13621msgid "{Scheme Procedure} file-append @var{obj} @var{suffix} @dots{}"
13622msgstr ""
13623
13624#. type: deffn
32747aa9 13625#: doc/guix.texi:7487
544cab3d
LC
13626msgid "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."
13627msgstr ""
13628
13629#. type: deffn
32747aa9 13630#: doc/guix.texi:7489
544cab3d
LC
13631msgid "As an example, consider this gexp:"
13632msgstr ""
13633
13634#. type: example
32747aa9 13635#: doc/guix.texi:7494
544cab3d
LC
13636#, no-wrap
13637msgid ""
13638"(gexp->script \"run-uname\"\n"
13639" #~(system* #$(file-append coreutils\n"
13640" \"/bin/uname\")))\n"
13641msgstr ""
13642
13643#. type: deffn
32747aa9 13644#: doc/guix.texi:7497
544cab3d
LC
13645msgid "The same effect could be achieved with:"
13646msgstr ""
13647
13648#. type: example
32747aa9 13649#: doc/guix.texi:7502
544cab3d
LC
13650#, no-wrap
13651msgid ""
13652"(gexp->script \"run-uname\"\n"
13653" #~(system* (string-append #$coreutils\n"
13654" \"/bin/uname\")))\n"
13655msgstr ""
13656
13657#. type: deffn
32747aa9 13658#: doc/guix.texi:7508
544cab3d
LC
13659msgid "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}."
13660msgstr ""
13661
13662#. type: Plain text
32747aa9 13663#: doc/guix.texi:7515
544cab3d
LC
13664msgid "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."
13665msgstr ""
13666
13667#. type: Plain text
32747aa9 13668#: doc/guix.texi:7521
544cab3d
LC
13669msgid "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."
13670msgstr ""
13671
13672#. type: deffn
32747aa9 13673#: doc/guix.texi:7522
544cab3d
LC
13674#, no-wrap
13675msgid "{Monadic Procedure} lower-object @var{obj} [@var{system}] @"
13676msgstr ""
13677
13678#. type: deffn
32747aa9 13679#: doc/guix.texi:7528
544cab3d
LC
13680msgid "[#:target #f] Return as a value in @var{%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>}."
13681msgstr ""
13682
13683#. type: section
32747aa9 13684#: doc/guix.texi:7531
544cab3d
LC
13685#, no-wrap
13686msgid "Invoking @command{guix repl}"
13687msgstr ""
13688
13689#. type: cindex
32747aa9 13690#: doc/guix.texi:7533
544cab3d
LC
13691#, no-wrap
13692msgid "REPL, read-eval-print loop"
13693msgstr ""
13694
13695#. type: Plain text
32747aa9 13696#: doc/guix.texi:7539
544cab3d
LC
13697msgid "The @command{guix repl} command spawns a Guile @dfn{read-eval-print loop} (REPL) for interactive programming (@pxref{Using Guile Interactively,,, 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. You can use it this way:"
13698msgstr ""
13699
13700#. type: example
32747aa9 13701#: doc/guix.texi:7545
544cab3d
LC
13702#, no-wrap
13703msgid ""
13704"$ guix repl\n"
13705"scheme@@(guile-user)> ,use (gnu packages base)\n"
13706"scheme@@(guile-user)> coreutils\n"
13707"$1 = #<package coreutils@@8.29 gnu/packages/base.scm:327 3e28300>\n"
13708msgstr ""
13709
13710#. type: Plain text
32747aa9 13711#: doc/guix.texi:7552
544cab3d
LC
13712msgid "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."
13713msgstr ""
13714
13715#. type: Plain text
32747aa9 13716#: doc/guix.texi:7554
544cab3d
LC
13717msgid "The available options are as follows:"
13718msgstr ""
13719
13720#. type: item
32747aa9 13721#: doc/guix.texi:7556 doc/guix.texi:9516
544cab3d
LC
13722#, no-wrap
13723msgid "--type=@var{type}"
13724msgstr ""
13725
13726#. type: itemx
32747aa9 13727#: doc/guix.texi:7557 doc/guix.texi:9517 doc/guix.texi:24566
544cab3d
LC
13728#, no-wrap
13729msgid "-t @var{type}"
13730msgstr ""
13731
13732#. type: table
32747aa9 13733#: doc/guix.texi:7559
544cab3d
LC
13734msgid "Start a REPL of the given @var{TYPE}, which can be one of the following:"
13735msgstr ""
13736
13737#. type: item
32747aa9 13738#: doc/guix.texi:7561
544cab3d
LC
13739#, no-wrap
13740msgid "guile"
13741msgstr ""
13742
13743#. type: table
32747aa9 13744#: doc/guix.texi:7563
544cab3d
LC
13745msgid "This is default, and it spawns a standard full-featured Guile REPL."
13746msgstr ""
13747
13748#. type: item
32747aa9 13749#: doc/guix.texi:7563
544cab3d
LC
13750#, no-wrap
13751msgid "machine"
13752msgstr ""
13753
13754#. type: table
32747aa9 13755#: doc/guix.texi:7566
544cab3d
LC
13756msgid "Spawn a REPL that uses the machine-readable protocol. This is the protocol that the @code{(guix inferior)} module speaks."
13757msgstr ""
13758
13759#. type: table
32747aa9 13760#: doc/guix.texi:7572
544cab3d
LC
13761msgid "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:"
13762msgstr ""
13763
13764#. type: item
32747aa9 13765#: doc/guix.texi:7574
544cab3d
LC
13766#, no-wrap
13767msgid "--listen=tcp:37146"
13768msgstr ""
13769
13770#. type: table
32747aa9 13771#: doc/guix.texi:7576
544cab3d
LC
13772msgid "Accept connections on localhost on port 37146."
13773msgstr ""
13774
13775#. type: item
32747aa9 13776#: doc/guix.texi:7577
544cab3d
LC
13777#, no-wrap
13778msgid "--listen=unix:/tmp/socket"
13779msgstr ""
13780
13781#. type: table
32747aa9 13782#: doc/guix.texi:7579
544cab3d
LC
13783msgid "Accept connections on the Unix-domain socket @file{/tmp/socket}."
13784msgstr ""
13785
13786#. type: Plain text
32747aa9 13787#: doc/guix.texi:7590
544cab3d
LC
13788msgid "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."
13789msgstr ""
13790
13791#. type: cindex
32747aa9 13792#: doc/guix.texi:7612
544cab3d
LC
13793#, no-wrap
13794msgid "package building"
13795msgstr ""
13796
13797#. type: command{#1}
32747aa9 13798#: doc/guix.texi:7613
544cab3d
LC
13799#, no-wrap
13800msgid "guix build"
13801msgstr ""
13802
13803#. type: Plain text
32747aa9 13804#: doc/guix.texi:7619
544cab3d
LC
13805msgid "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."
13806msgstr ""
13807
13808#. type: example
32747aa9 13809#: doc/guix.texi:7624
544cab3d
LC
13810#, no-wrap
13811msgid "guix build @var{options} @var{package-or-derivation}@dots{}\n"
13812msgstr ""
13813
13814#. type: Plain text
32747aa9 13815#: doc/guix.texi:7629
544cab3d
LC
13816msgid "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:"
13817msgstr ""
13818
13819#. type: example
32747aa9 13820#: doc/guix.texi:7632
544cab3d
LC
13821#, no-wrap
13822msgid "guix build emacs guile\n"
13823msgstr ""
13824
13825#. type: Plain text
32747aa9 13826#: doc/guix.texi:7635
544cab3d
LC
13827msgid "Similarly, the following command builds all the available packages:"
13828msgstr ""
13829
13830#. type: example
32747aa9 13831#: doc/guix.texi:7639
544cab3d
LC
13832#, no-wrap
13833msgid ""
13834"guix build --quiet --keep-going \\\n"
13835" `guix package -A | cut -f1,2 --output-delimiter=@@`\n"
13836msgstr ""
13837
13838#. type: Plain text
32747aa9 13839#: doc/guix.texi:7647
544cab3d
LC
13840msgid "@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})."
13841msgstr ""
13842
13843#. type: Plain text
32747aa9 13844#: doc/guix.texi:7652
544cab3d
LC
13845msgid "Alternatively, the @code{--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."
13846msgstr ""
13847
13848#. type: Plain text
32747aa9 13849#: doc/guix.texi:7655
544cab3d
LC
13850msgid "There may be zero or more @var{options}. The available options are described in the subsections below."
13851msgstr ""
13852
13853#. type: Plain text
32747aa9 13854#: doc/guix.texi:7670
544cab3d
LC
13855msgid "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:"
13856msgstr ""
13857
13858#. type: item
32747aa9 13859#: doc/guix.texi:7673
544cab3d
LC
13860#, no-wrap
13861msgid "--load-path=@var{directory}"
13862msgstr ""
13863
13864#. type: itemx
32747aa9 13865#: doc/guix.texi:7674
544cab3d
LC
13866#, no-wrap
13867msgid "-L @var{directory}"
13868msgstr ""
13869
13870#. type: table
32747aa9 13871#: doc/guix.texi:7677
544cab3d
LC
13872msgid "Add @var{directory} to the front of the package module search path (@pxref{Package Modules})."
13873msgstr ""
13874
13875#. type: table
32747aa9 13876#: doc/guix.texi:7680
544cab3d
LC
13877msgid "This allows users to define their own packages and make them visible to the command-line tools."
13878msgstr ""
13879
13880#. type: item
32747aa9 13881#: doc/guix.texi:7681
544cab3d
LC
13882#, no-wrap
13883msgid "--keep-failed"
13884msgstr ""
13885
13886#. type: itemx
32747aa9 13887#: doc/guix.texi:7682
544cab3d
LC
13888#, no-wrap
13889msgid "-K"
13890msgstr ""
13891
13892#. type: table
32747aa9 13893#: doc/guix.texi:7688
544cab3d
LC
13894msgid "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."
13895msgstr ""
13896
13897#. type: table
32747aa9 13898#: doc/guix.texi:7692
544cab3d
LC
13899msgid "This option has no effect when connecting to a remote daemon with a @code{guix://} URI (@pxref{The Store, the @code{GUIX_DAEMON_SOCKET} variable})."
13900msgstr ""
13901
13902#. type: item
32747aa9 13903#: doc/guix.texi:7693
544cab3d
LC
13904#, no-wrap
13905msgid "--keep-going"
13906msgstr ""
13907
13908#. type: itemx
32747aa9 13909#: doc/guix.texi:7694
544cab3d
LC
13910#, no-wrap
13911msgid "-k"
13912msgstr ""
13913
13914#. type: table
32747aa9 13915#: doc/guix.texi:7697
544cab3d
LC
13916msgid "Keep going when some of the derivations fail to build; return only once all the builds have either completed or failed."
13917msgstr ""
13918
13919#. type: table
32747aa9 13920#: doc/guix.texi:7700
544cab3d
LC
13921msgid "The default behavior is to stop as soon as one of the specified derivations has failed."
13922msgstr ""
13923
13924#. type: table
32747aa9 13925#: doc/guix.texi:7704
544cab3d
LC
13926msgid "Do not build the derivations."
13927msgstr ""
13928
13929#. type: anchor{#1}
32747aa9 13930#: doc/guix.texi:7706
544cab3d
LC
13931msgid "fallback-option"
13932msgstr ""
13933
13934#. type: item
32747aa9 13935#: doc/guix.texi:7706
544cab3d
LC
13936#, no-wrap
13937msgid "--fallback"
13938msgstr ""
13939
13940#. type: table
32747aa9 13941#: doc/guix.texi:7709
544cab3d
LC
13942msgid "When substituting a pre-built binary fails, fall back to building packages locally (@pxref{Substitution Failure})."
13943msgstr ""
13944
13945#. type: anchor{#1}
32747aa9 13946#: doc/guix.texi:7715
544cab3d
LC
13947msgid "client-substitute-urls"
13948msgstr ""
13949
13950#. type: table
32747aa9 13951#: doc/guix.texi:7715
544cab3d
LC
13952msgid "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})."
13953msgstr ""
13954
13955#. type: table
32747aa9 13956#: doc/guix.texi:7719
544cab3d
LC
13957msgid "This means that substitutes may be downloaded from @var{urls}, provided they are signed by a key authorized by the system administrator (@pxref{Substitutes})."
13958msgstr ""
13959
13960#. type: table
32747aa9 13961#: doc/guix.texi:7722
544cab3d
LC
13962msgid "When @var{urls} is the empty string, substitutes are effectively disabled."
13963msgstr ""
13964
13965#. type: item
32747aa9 13966#: doc/guix.texi:7728
544cab3d
LC
13967#, no-wrap
13968msgid "--no-grafts"
13969msgstr ""
13970
13971#. type: table
32747aa9 13972#: doc/guix.texi:7732
544cab3d
LC
13973msgid "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."
13974msgstr ""
13975
13976#. type: item
32747aa9 13977#: doc/guix.texi:7733
544cab3d
LC
13978#, no-wrap
13979msgid "--rounds=@var{n}"
13980msgstr ""
13981
13982#. type: table
32747aa9 13983#: doc/guix.texi:7736
544cab3d
LC
13984msgid "Build each derivation @var{n} times in a row, and raise an error if consecutive build results are not bit-for-bit identical."
13985msgstr ""
13986
13987#. type: table
32747aa9 13988#: doc/guix.texi:7741
544cab3d
LC
13989msgid "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."
13990msgstr ""
13991
13992#. type: table
32747aa9 13993#: doc/guix.texi:7747
544cab3d
LC
13994msgid "Note that, currently, the differing build results are not kept around, so you will have to manually investigate in case of an error---e.g., by stashing one of the build results with @code{guix archive --export} (@pxref{Invoking guix archive}), then rebuilding, and finally comparing the two results."
13995msgstr ""
13996
13997#. type: table
32747aa9 13998#: doc/guix.texi:7752
544cab3d
LC
13999msgid "Do not attempt to offload builds @i{via} the ``build hook'' of the daemon (@pxref{Daemon Offload Setup}). That is, always build things locally instead of offloading builds to remote machines."
14000msgstr ""
14001
14002#. type: table
32747aa9 14003#: doc/guix.texi:7759
544cab3d
LC
14004msgid "By default, the daemon's setting is honored (@pxref{Invoking guix-daemon, @code{--max-silent-time}})."
14005msgstr ""
14006
14007#. type: table
32747aa9 14008#: doc/guix.texi:7766
544cab3d
LC
14009msgid "By default, the daemon's setting is honored (@pxref{Invoking guix-daemon, @code{--timeout}})."
14010msgstr ""
14011
14012#. type: cindex
32747aa9 14013#: doc/guix.texi:7769
544cab3d
LC
14014#, no-wrap
14015msgid "verbosity, of the command-line tools"
14016msgstr ""
14017
14018#. type: cindex
32747aa9 14019#: doc/guix.texi:7770
544cab3d
LC
14020#, no-wrap
14021msgid "build logs, verbosity"
14022msgstr ""
14023
14024#. type: item
32747aa9 14025#: doc/guix.texi:7771
544cab3d
LC
14026#, no-wrap
14027msgid "-v @var{level}"
14028msgstr ""
14029
14030#. type: itemx
32747aa9 14031#: doc/guix.texi:7772
544cab3d
LC
14032#, no-wrap
14033msgid "--verbosity=@var{level}"
14034msgstr ""
14035
14036#. type: table
32747aa9 14037#: doc/guix.texi:7776
544cab3d
LC
14038msgid "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."
14039msgstr ""
14040
14041#. type: table
32747aa9 14042#: doc/guix.texi:7781
544cab3d
LC
14043msgid "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."
14044msgstr ""
14045
14046#. type: table
32747aa9 14047#: doc/guix.texi:7787
544cab3d
LC
14048msgid "Allow at most @var{n} build jobs in parallel. @xref{Invoking guix-daemon, @code{--max-jobs}}, for details about this option and the equivalent @command{guix-daemon} option."
14049msgstr ""
14050
14051#. type: item
32747aa9 14052#: doc/guix.texi:7788
544cab3d
LC
14053#, no-wrap
14054msgid "--debug=@var{level}"
14055msgstr ""
14056
14057#. type: table
32747aa9 14058#: doc/guix.texi:7792
544cab3d
LC
14059msgid "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."
14060msgstr ""
14061
14062#. type: Plain text
32747aa9 14063#: doc/guix.texi:7799
544cab3d
LC
14064msgid "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."
14065msgstr ""
14066
14067#. type: Plain text
32747aa9 14068#: doc/guix.texi:7803
544cab3d
LC
14069msgid "In addition to options explicitly passed on the command line, @command{guix build} and other @command{guix} commands that support building honor the @code{GUIX_BUILD_OPTIONS} environment variable."
14070msgstr ""
14071
14072#. type: defvr
32747aa9 14073#: doc/guix.texi:7804
544cab3d
LC
14074#, no-wrap
14075msgid "{Environment Variable} GUIX_BUILD_OPTIONS"
14076msgstr ""
14077
14078#. type: defvr
32747aa9 14079#: doc/guix.texi:7809
544cab3d
LC
14080msgid "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:"
14081msgstr ""
14082
14083#. type: example
32747aa9 14084#: doc/guix.texi:7812
544cab3d
LC
14085#, no-wrap
14086msgid "$ export GUIX_BUILD_OPTIONS=\"--no-substitutes -c 2 -L /foo/bar\"\n"
14087msgstr ""
14088
14089#. type: defvr
32747aa9 14090#: doc/guix.texi:7816
544cab3d
LC
14091msgid "These options are parsed independently, and the result is appended to the parsed command-line options."
14092msgstr ""
14093
14094#. type: cindex
32747aa9 14095#: doc/guix.texi:7822
544cab3d
LC
14096#, no-wrap
14097msgid "package variants"
14098msgstr ""
14099
14100#. type: Plain text
32747aa9 14101#: doc/guix.texi:7830
544cab3d
LC
14102msgid "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})."
14103msgstr ""
14104
14105#. type: item
32747aa9 14106#: doc/guix.texi:7833
544cab3d
LC
14107#, no-wrap
14108msgid "--with-source=@var{source}"
14109msgstr ""
14110
14111#. type: itemx
32747aa9 14112#: doc/guix.texi:7834
544cab3d
LC
14113#, no-wrap
14114msgid "--with-source=@var{package}=@var{source}"
14115msgstr ""
14116
14117#. type: itemx
32747aa9 14118#: doc/guix.texi:7835
544cab3d
LC
14119#, no-wrap
14120msgid "--with-source=@var{package}@@@var{version}=@var{source}"
14121msgstr ""
14122
14123#. type: table
32747aa9 14124#: doc/guix.texi:7840
544cab3d
LC
14125msgid "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})."
14126msgstr ""
14127
14128#. type: table
32747aa9 14129#: doc/guix.texi:7846
544cab3d
LC
14130msgid "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}."
14131msgstr ""
14132
14133#. type: table
32747aa9 14134#: doc/guix.texi:7849
544cab3d
LC
14135msgid "Likewise, when @var{version} is omitted, the version string is inferred from @var{source}; in the previous example, it is @code{2.0.10}."
14136msgstr ""
14137
14138#. type: table
32747aa9 14139#: doc/guix.texi:7854
544cab3d
LC
14140msgid "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:"
14141msgstr ""
14142
14143#. type: example
32747aa9 14144#: doc/guix.texi:7857
544cab3d
LC
14145#, no-wrap
14146msgid "guix build ed --with-source=mirror://gnu/ed/ed-1.7.tar.gz\n"
14147msgstr ""
14148
14149#. type: table
32747aa9 14150#: doc/guix.texi:7861
544cab3d
LC
14151msgid "As a developer, @code{--with-source} makes it easy to test release candidates:"
14152msgstr ""
14153
14154#. type: example
32747aa9 14155#: doc/guix.texi:7864
544cab3d
LC
14156#, no-wrap
14157msgid "guix build guile --with-source=../guile-2.0.9.219-e1bb7.tar.xz\n"
14158msgstr ""
14159
14160#. type: table
32747aa9 14161#: doc/guix.texi:7867
544cab3d
LC
14162msgid "@dots{} or to build from a checkout in a pristine environment:"
14163msgstr ""
14164
14165#. type: example
32747aa9 14166#: doc/guix.texi:7871
544cab3d
LC
14167#, no-wrap
14168msgid ""
14169"$ git clone git://git.sv.gnu.org/guix.git\n"
14170"$ guix build guix --with-source=guix@@1.0=./guix\n"
14171msgstr ""
14172
14173#. type: item
32747aa9 14174#: doc/guix.texi:7873
544cab3d
LC
14175#, no-wrap
14176msgid "--with-input=@var{package}=@var{replacement}"
14177msgstr ""
14178
14179#. type: table
32747aa9 14180#: doc/guix.texi:7878
544cab3d
LC
14181msgid "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}."
14182msgstr ""
14183
14184#. type: table
32747aa9 14185#: doc/guix.texi:7882
544cab3d
LC
14186msgid "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}:"
14187msgstr ""
14188
14189#. type: example
32747aa9 14190#: doc/guix.texi:7885
544cab3d
LC
14191#, no-wrap
14192msgid "guix build --with-input=guile=guile@@2.0 guix\n"
14193msgstr ""
14194
14195#. type: table
32747aa9 14196#: doc/guix.texi:7890
544cab3d
LC
14197msgid "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}."
14198msgstr ""
14199
14200#. type: table
32747aa9 14201#: doc/guix.texi:7893
544cab3d
LC
14202msgid "This is implemented using the @code{package-input-rewriting} Scheme procedure (@pxref{Defining Packages, @code{package-input-rewriting}})."
14203msgstr ""
14204
14205#. type: item
32747aa9 14206#: doc/guix.texi:7894
544cab3d
LC
14207#, no-wrap
14208msgid "--with-graft=@var{package}=@var{replacement}"
14209msgstr ""
14210
14211#. type: table
32747aa9 14212#: doc/guix.texi:7900
544cab3d
LC
14213msgid "This is similar to @code{--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."
14214msgstr ""
14215
14216#. type: table
32747aa9 14217#: doc/guix.texi:7904
544cab3d
LC
14218msgid "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:"
14219msgstr ""
14220
14221#. type: example
32747aa9 14222#: doc/guix.texi:7907
544cab3d
LC
14223#, no-wrap
14224msgid "guix build --with-graft=gnutls=gnutls@@3.5.4 wget\n"
14225msgstr ""
14226
14227#. type: table
32747aa9 14228#: doc/guix.texi:7916
544cab3d
LC
14229msgid "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!"
14230msgstr ""
14231
14232#. type: item
32747aa9 14233#: doc/guix.texi:7917
544cab3d
LC
14234#, no-wrap
14235msgid "--with-git-url=@var{package}=@var{url}"
14236msgstr ""
14237
14238#. type: cindex
32747aa9 14239#: doc/guix.texi:7918
544cab3d
LC
14240#, no-wrap
14241msgid "Git, using the latest commit"
14242msgstr ""
14243
14244#. type: cindex
32747aa9 14245#: doc/guix.texi:7919
544cab3d
LC
14246#, no-wrap
14247msgid "latest commit, building"
14248msgstr ""
14249
14250#. type: table
32747aa9 14251#: doc/guix.texi:7923
544cab3d
LC
14252msgid "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."
14253msgstr ""
14254
14255#. type: table
32747aa9 14256#: doc/guix.texi:7926
544cab3d
LC
14257msgid "For example, the following command builds the NumPy Python library against the latest commit of the master branch of Python itself:"
14258msgstr ""
14259
14260#. type: example
32747aa9 14261#: doc/guix.texi:7930
544cab3d
LC
14262#, no-wrap
14263msgid ""
14264"guix build python-numpy \\\n"
14265" --with-git-url=python=https://github.com/python/cpython\n"
14266msgstr ""
14267
14268#. type: table
32747aa9 14269#: doc/guix.texi:7934
544cab3d
LC
14270msgid "This option can also be combined with @code{--with-branch} or @code{--with-commit} (see below)."
14271msgstr ""
14272
14273#. type: cindex
32747aa9 14274#: doc/guix.texi:7935 doc/guix.texi:20626
544cab3d
LC
14275#, no-wrap
14276msgid "continuous integration"
14277msgstr ""
14278
14279#. type: table
32747aa9 14280#: doc/guix.texi:7941
544cab3d
LC
14281msgid "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)."
14282msgstr ""
14283
14284#. type: table
32747aa9 14285#: doc/guix.texi:7945
544cab3d
LC
14286msgid "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."
14287msgstr ""
14288
14289#. type: item
32747aa9 14290#: doc/guix.texi:7946
544cab3d
LC
14291#, no-wrap
14292msgid "--with-branch=@var{package}=@var{branch}"
14293msgstr ""
14294
14295#. type: table
32747aa9 14296#: doc/guix.texi:7952
544cab3d
LC
14297msgid "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 @code{--with-git-url} to specify the URL of the Git repository."
14298msgstr ""
14299
14300#. type: table
32747aa9 14301#: doc/guix.texi:7957
544cab3d
LC
14302msgid "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:"
14303msgstr ""
14304
14305#. type: example
32747aa9 14306#: doc/guix.texi:7960
544cab3d
LC
14307#, no-wrap
14308msgid "guix build --with-branch=guile-sqlite3=master cuirass\n"
14309msgstr ""
14310
14311#. type: item
32747aa9 14312#: doc/guix.texi:7962
544cab3d
LC
14313#, no-wrap
14314msgid "--with-commit=@var{package}=@var{commit}"
14315msgstr ""
14316
14317#. type: table
32747aa9 14318#: doc/guix.texi:7966
544cab3d
LC
14319msgid "This is similar to @code{--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."
14320msgstr ""
14321
14322#. type: Plain text
32747aa9 14323#: doc/guix.texi:7973
544cab3d
LC
14324msgid "The command-line options presented below are specific to @command{guix build}."
14325msgstr ""
14326
14327#. type: item
32747aa9 14328#: doc/guix.texi:7976
544cab3d
LC
14329#, no-wrap
14330msgid "--quiet"
14331msgstr ""
14332
14333#. type: itemx
32747aa9 14334#: doc/guix.texi:7977
544cab3d
LC
14335#, no-wrap
14336msgid "-q"
14337msgstr ""
14338
14339#. type: table
32747aa9 14340#: doc/guix.texi:7981
544cab3d
LC
14341msgid "Build quietly, without displaying the build log; this is equivalent to @code{--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."
14342msgstr ""
14343
14344#. type: item
32747aa9 14345#: doc/guix.texi:7982
544cab3d
LC
14346#, no-wrap
14347msgid "--file=@var{file}"
14348msgstr ""
14349
14350#. type: table
32747aa9 14351#: doc/guix.texi:7986
544cab3d
LC
14352msgid "Build the package, derivation, or other file-like object that the code within @var{file} evaluates to (@pxref{G-Expressions, file-like objects})."
14353msgstr ""
14354
14355#. type: table
32747aa9 14356#: doc/guix.texi:7989
544cab3d
LC
14357msgid "As an example, @var{file} might contain a package definition like this (@pxref{Defining Packages}):"
14358msgstr ""
14359
14360#. type: table
32747aa9 14361#: doc/guix.texi:7997
544cab3d
LC
14362msgid "Build the package or derivation @var{expr} evaluates to."
14363msgstr ""
14364
14365#. type: table
32747aa9 14366#: doc/guix.texi:8001
544cab3d
LC
14367msgid "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."
14368msgstr ""
14369
14370#. type: table
32747aa9 14371#: doc/guix.texi:8005
544cab3d
LC
14372msgid "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})."
14373msgstr ""
14374
14375#. type: table
32747aa9 14376#: doc/guix.texi:8009
544cab3d
LC
14377msgid "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}."
14378msgstr ""
14379
14380#. type: item
32747aa9 14381#: doc/guix.texi:8010
544cab3d
LC
14382#, no-wrap
14383msgid "--source"
14384msgstr ""
14385
14386#. type: itemx
32747aa9 14387#: doc/guix.texi:8011
544cab3d
LC
14388#, no-wrap
14389msgid "-S"
14390msgstr ""
14391
14392#. type: table
32747aa9 14393#: doc/guix.texi:8014
544cab3d
LC
14394msgid "Build the source derivations of the packages, rather than the packages themselves."
14395msgstr ""
14396
14397#. type: table
32747aa9 14398#: doc/guix.texi:8018
544cab3d
LC
14399msgid "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."
14400msgstr ""
14401
14402#. type: table
32747aa9 14403#: doc/guix.texi:8022
544cab3d
LC
14404msgid "The returned source tarball is the result of applying any patches and code snippets specified in the package @code{origin} (@pxref{Defining Packages})."
14405msgstr ""
14406
14407#. type: item
32747aa9 14408#: doc/guix.texi:8023
544cab3d
LC
14409#, no-wrap
14410msgid "--sources"
14411msgstr ""
14412
14413#. type: table
32747aa9 14414#: doc/guix.texi:8030
544cab3d
LC
14415msgid "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 @code{--source} option and can accept one of the following optional argument values:"
14416msgstr ""
14417
14418#. type: item
32747aa9 14419#: doc/guix.texi:8032 doc/guix.texi:9394
544cab3d
LC
14420#, no-wrap
14421msgid "package"
14422msgstr ""
14423
14424#. type: table
32747aa9 14425#: doc/guix.texi:8035
544cab3d
LC
14426msgid "This value causes the @code{--sources} option to behave in the same way as the @code{--source} option."
14427msgstr ""
14428
14429#. type: item
32747aa9 14430#: doc/guix.texi:8036 doc/guix.texi:13887
544cab3d
LC
14431#, no-wrap
14432msgid "all"
14433msgstr ""
14434
14435#. type: table
32747aa9 14436#: doc/guix.texi:8039
544cab3d
LC
14437msgid "Build the source derivations of all packages, including any source that might be listed as @code{inputs}. This is the default value."
14438msgstr ""
14439
14440#. type: example
32747aa9 14441#: doc/guix.texi:8045
544cab3d
LC
14442#, no-wrap
14443msgid ""
14444"$ guix build --sources tzdata\n"
14445"The following derivations will be built:\n"
14446" /gnu/store/@dots{}-tzdata2015b.tar.gz.drv\n"
14447" /gnu/store/@dots{}-tzcode2015b.tar.gz.drv\n"
14448msgstr ""
14449
14450#. type: item
32747aa9 14451#: doc/guix.texi:8047
544cab3d
LC
14452#, no-wrap
14453msgid "transitive"
14454msgstr ""
14455
14456#. type: table
32747aa9 14457#: doc/guix.texi:8051
544cab3d
LC
14458msgid "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."
14459msgstr ""
14460
14461#. type: example
32747aa9 14462#: doc/guix.texi:8062
544cab3d
LC
14463#, no-wrap
14464msgid ""
14465"$ guix build --sources=transitive tzdata\n"
14466"The following derivations will be built:\n"
14467" /gnu/store/@dots{}-tzcode2015b.tar.gz.drv\n"
14468" /gnu/store/@dots{}-findutils-4.4.2.tar.xz.drv\n"
14469" /gnu/store/@dots{}-grep-2.21.tar.xz.drv\n"
14470" /gnu/store/@dots{}-coreutils-8.23.tar.xz.drv\n"
14471" /gnu/store/@dots{}-make-4.1.tar.xz.drv\n"
14472" /gnu/store/@dots{}-bash-4.3.tar.xz.drv\n"
14473"@dots{}\n"
14474msgstr ""
14475
32747aa9
LC
14476#. type: table
14477#: doc/guix.texi:8072
14478msgid "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."
14479msgstr ""
14480
544cab3d 14481#. type: quotation
32747aa9 14482#: doc/guix.texi:8077
544cab3d
LC
14483msgid "The @code{--system} flag is for @emph{native} compilation and must not be confused with cross-compilation. See @code{--target} below for information on cross-compilation."
14484msgstr ""
14485
14486#. type: table
32747aa9 14487#: doc/guix.texi:8084
544cab3d
LC
14488msgid "An example use of this is on Linux-based systems, which can emulate different personalities. For instance, passing @code{--system=i686-linux} on an @code{x86_64-linux} system or @code{--system=armhf-linux} on an @code{aarch64-linux} system allows you to build packages in a complete 32-bit environment."
14489msgstr ""
14490
14491#. type: quotation
32747aa9 14492#: doc/guix.texi:8089
544cab3d
LC
14493msgid "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."
14494msgstr ""
14495
14496#. type: table
32747aa9 14497#: doc/guix.texi:8095
544cab3d
LC
14498msgid "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."
14499msgstr ""
14500
14501#. type: table
32747aa9 14502#: doc/guix.texi:8099
544cab3d
LC
14503msgid "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."
14504msgstr ""
14505
32747aa9
LC
14506#. type: table
14507#: doc/guix.texi:8105
14508msgid "Cross-build for @var{triplet}, which must be a valid GNU triplet, such as @code{\"mips64el-linux-gnu\"} (@pxref{Specifying Target Triplets, GNU configuration triplets,, autoconf, Autoconf})."
14509msgstr ""
14510
544cab3d 14511#. type: anchor{#1}
32747aa9 14512#: doc/guix.texi:8107
544cab3d
LC
14513msgid "build-check"
14514msgstr ""
14515
14516#. type: item
32747aa9 14517#: doc/guix.texi:8107
544cab3d
LC
14518#, no-wrap
14519msgid "--check"
14520msgstr ""
14521
14522#. type: cindex
32747aa9 14523#: doc/guix.texi:8108
544cab3d
LC
14524#, no-wrap
14525msgid "determinism, checking"
14526msgstr ""
14527
14528#. type: cindex
32747aa9 14529#: doc/guix.texi:8109
544cab3d
LC
14530#, no-wrap
14531msgid "reproducibility, checking"
14532msgstr ""
14533
14534#. type: table
32747aa9 14535#: doc/guix.texi:8113
544cab3d
LC
14536msgid "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."
14537msgstr ""
14538
14539#. type: table
32747aa9 14540#: doc/guix.texi:8118
544cab3d
LC
14541msgid "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."
14542msgstr ""
14543
14544#. type: item
32747aa9 14545#: doc/guix.texi:8123
544cab3d
LC
14546#, no-wrap
14547msgid "--repair"
14548msgstr ""
14549
14550#. type: cindex
32747aa9 14551#: doc/guix.texi:8124
544cab3d
LC
14552#, no-wrap
14553msgid "repairing store items"
14554msgstr ""
14555
14556#. type: table
32747aa9 14557#: doc/guix.texi:8128
544cab3d
LC
14558msgid "Attempt to repair the specified store items, if they are corrupt, by re-downloading or rebuilding them."
14559msgstr ""
14560
14561#. type: table
32747aa9 14562#: doc/guix.texi:8130
544cab3d
LC
14563msgid "This operation is not atomic and thus restricted to @code{root}."
14564msgstr ""
14565
14566#. type: item
32747aa9 14567#: doc/guix.texi:8131
544cab3d
LC
14568#, no-wrap
14569msgid "--derivations"
14570msgstr ""
14571
14572#. type: itemx
32747aa9 14573#: doc/guix.texi:8132 doc/guix.texi:24561
544cab3d
LC
14574#, no-wrap
14575msgid "-d"
14576msgstr ""
14577
14578#. type: table
32747aa9 14579#: doc/guix.texi:8135
544cab3d
LC
14580msgid "Return the derivation paths, not the output paths, of the given packages."
14581msgstr ""
14582
14583#. type: cindex
32747aa9 14584#: doc/guix.texi:8138
544cab3d
LC
14585#, no-wrap
14586msgid "GC roots, adding"
14587msgstr ""
14588
14589#. type: cindex
32747aa9 14590#: doc/guix.texi:8139
544cab3d
LC
14591#, no-wrap
14592msgid "garbage collector roots, adding"
14593msgstr ""
14594
14595#. type: table
32747aa9 14596#: doc/guix.texi:8142 doc/guix.texi:24592
544cab3d
LC
14597msgid "Make @var{file} a symlink to the result, and register it as a garbage collector root."
14598msgstr ""
14599
14600#. type: table
32747aa9 14601#: doc/guix.texi:8148
544cab3d
LC
14602msgid "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."
14603msgstr ""
14604
14605#. type: item
32747aa9 14606#: doc/guix.texi:8149
544cab3d
LC
14607#, no-wrap
14608msgid "--log-file"
14609msgstr ""
14610
14611#. type: cindex
32747aa9 14612#: doc/guix.texi:8150
544cab3d
LC
14613#, no-wrap
14614msgid "build logs, access"
14615msgstr ""
14616
14617#. type: table
32747aa9 14618#: doc/guix.texi:8154
544cab3d
LC
14619msgid "Return the build log file names or URLs for the given @var{package-or-derivation}, or raise an error if build logs are missing."
14620msgstr ""
14621
14622#. type: table
32747aa9 14623#: doc/guix.texi:8157
544cab3d
LC
14624msgid "This works regardless of how packages or derivations are specified. For instance, the following invocations are equivalent:"
14625msgstr ""
14626
14627#. type: example
32747aa9 14628#: doc/guix.texi:8163
544cab3d
LC
14629#, no-wrap
14630msgid ""
14631"guix build --log-file `guix build -d guile`\n"
14632"guix build --log-file `guix build guile`\n"
14633"guix build --log-file guile\n"
14634"guix build --log-file -e '(@@ (gnu packages guile) guile-2.0)'\n"
14635msgstr ""
14636
14637#. type: table
32747aa9 14638#: doc/guix.texi:8168
544cab3d
LC
14639msgid "If a log is unavailable locally, and unless @code{--no-substitutes} is passed, the command looks for a corresponding log on one of the substitute servers (as specified with @code{--substitute-urls}.)"
14640msgstr ""
14641
14642#. type: table
32747aa9 14643#: doc/guix.texi:8171
544cab3d
LC
14644msgid "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:"
14645msgstr ""
14646
14647#. type: example
32747aa9 14648#: doc/guix.texi:8175
544cab3d
LC
14649#, no-wrap
14650msgid ""
14651"$ guix build --log-file gdb -s mips64el-linux\n"
14652"https://@value{SUBSTITUTE-SERVER}/log/@dots{}-gdb-7.10\n"
14653msgstr ""
14654
14655#. type: table
32747aa9 14656#: doc/guix.texi:8178
544cab3d
LC
14657msgid "You can freely access a huge library of build logs!"
14658msgstr ""
14659
14660#. type: cindex
32747aa9 14661#: doc/guix.texi:8183
544cab3d
LC
14662#, no-wrap
14663msgid "build failures, debugging"
14664msgstr ""
14665
14666#. type: Plain text
32747aa9 14667#: doc/guix.texi:8189
544cab3d
LC
14668msgid "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."
14669msgstr ""
14670
14671#. type: Plain text
32747aa9 14672#: doc/guix.texi:8194
544cab3d
LC
14673msgid "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 @code{TMPDIR} (@pxref{Invoking guix build, @code{--keep-failed}})."
14674msgstr ""
14675
14676#. type: Plain text
32747aa9 14677#: doc/guix.texi:8200
544cab3d
LC
14678msgid "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:"
14679msgstr ""
14680
14681#. type: example
32747aa9 14682#: doc/guix.texi:8207
544cab3d
LC
14683#, no-wrap
14684msgid ""
14685"$ guix build foo -K\n"
14686"@dots{} @i{build fails}\n"
14687"$ cd /tmp/guix-build-foo.drv-0\n"
14688"$ source ./environment-variables\n"
14689"$ cd foo-1.2\n"
14690msgstr ""
14691
14692#. type: Plain text
32747aa9 14693#: doc/guix.texi:8211
544cab3d
LC
14694msgid "Now, you can invoke commands as if you were the daemon (almost) and troubleshoot your build process."
14695msgstr ""
14696
14697#. type: Plain text
32747aa9 14698#: doc/guix.texi:8217
544cab3d
LC
14699msgid "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})."
14700msgstr ""
14701
14702#. type: Plain text
32747aa9 14703#: doc/guix.texi:8220
544cab3d
LC
14704msgid "In such cases, you may need to run inspect the build process from within a container similar to the one the build daemon creates:"
14705msgstr ""
14706
14707#. type: example
32747aa9 14708#: doc/guix.texi:8228
544cab3d
LC
14709#, no-wrap
14710msgid ""
14711"$ guix build -K foo\n"
14712"@dots{}\n"
14713"$ cd /tmp/guix-build-foo.drv-0\n"
14714"$ guix environment --no-grafts -C foo --ad-hoc strace gdb\n"
14715"[env]# source ./environment-variables\n"
14716"[env]# cd foo-1.2\n"
14717msgstr ""
14718
14719#. type: Plain text
32747aa9 14720#: doc/guix.texi:8237
544cab3d
LC
14721msgid "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 would 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)."
14722msgstr ""
14723
14724#. type: Plain text
32747aa9 14725#: doc/guix.texi:8240
544cab3d
LC
14726msgid "To get closer to a container like that used by the build daemon, we can remove @file{/bin/sh}:"
14727msgstr ""
14728
14729#. type: example
32747aa9 14730#: doc/guix.texi:8243
544cab3d
LC
14731#, no-wrap
14732msgid "[env]# rm /bin/sh\n"
14733msgstr ""
14734
14735#. type: Plain text
32747aa9 14736#: doc/guix.texi:8247
544cab3d
LC
14737msgid "(Don't worry, this is harmless: this is all happening in the throw-away container created by @command{guix environment}.)"
14738msgstr ""
14739
14740#. type: Plain text
32747aa9 14741#: doc/guix.texi:8250
544cab3d
LC
14742msgid "The @command{strace} command is probably not in the search path, but we can run:"
14743msgstr ""
14744
14745#. type: example
32747aa9 14746#: doc/guix.texi:8253
544cab3d
LC
14747#, no-wrap
14748msgid "[env]# $GUIX_ENVIRONMENT/bin/strace -f -o log make check\n"
14749msgstr ""
14750
14751#. type: Plain text
32747aa9 14752#: doc/guix.texi:8258
544cab3d
LC
14753msgid "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."
14754msgstr ""
14755
14756#. type: section
32747aa9 14757#: doc/guix.texi:8261
544cab3d
LC
14758#, no-wrap
14759msgid "Invoking @command{guix edit}"
14760msgstr ""
14761
14762#. type: command{#1}
32747aa9 14763#: doc/guix.texi:8263
544cab3d
LC
14764#, no-wrap
14765msgid "guix edit"
14766msgstr ""
14767
14768#. type: cindex
32747aa9 14769#: doc/guix.texi:8264
544cab3d
LC
14770#, no-wrap
14771msgid "package definition, editing"
14772msgstr ""
14773
14774#. type: Plain text
32747aa9 14775#: doc/guix.texi:8269
544cab3d
LC
14776msgid "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:"
14777msgstr ""
14778
14779#. type: example
32747aa9 14780#: doc/guix.texi:8272
544cab3d
LC
14781#, no-wrap
14782msgid "guix edit gcc@@4.9 vim\n"
14783msgstr ""
14784
14785#. type: Plain text
32747aa9 14786#: doc/guix.texi:8278
544cab3d
LC
14787msgid "launches the program specified in the @code{VISUAL} or in the @code{EDITOR} environment variable to view the recipe of GCC@tie{}4.9.3 and that of Vim."
14788msgstr ""
14789
14790#. type: Plain text
32747aa9 14791#: doc/guix.texi:8284
544cab3d
LC
14792msgid "If you are using a Guix Git checkout (@pxref{Building from Git}), or have created your own packages on @code{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."
14793msgstr ""
14794
14795#. type: section
32747aa9 14796#: doc/guix.texi:8287
544cab3d
LC
14797#, no-wrap
14798msgid "Invoking @command{guix download}"
14799msgstr ""
14800
14801#. type: command{#1}
32747aa9 14802#: doc/guix.texi:8289
544cab3d
LC
14803#, no-wrap
14804msgid "guix download"
14805msgstr ""
14806
14807#. type: cindex
32747aa9 14808#: doc/guix.texi:8290
544cab3d
LC
14809#, no-wrap
14810msgid "downloading package sources"
14811msgstr ""
14812
14813#. type: Plain text
32747aa9 14814#: doc/guix.texi:8297
544cab3d
LC
14815msgid "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."
14816msgstr ""
14817
14818#. type: Plain text
32747aa9 14819#: doc/guix.texi:8304
544cab3d
LC
14820msgid "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})."
14821msgstr ""
14822
14823#. type: Plain text
32747aa9 14824#: doc/guix.texi:8312
544cab3d
LC
14825msgid "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."
14826msgstr ""
14827
14828#. type: Plain text
32747aa9 14829#: doc/guix.texi:8317
544cab3d
LC
14830msgid "@command{guix download} verifies HTTPS server certificates by loading the certificates of X.509 authorities from the directory pointed to by the @code{SSL_CERT_DIR} environment variable (@pxref{X.509 Certificates}), unless @option{--no-check-certificate} is used."
14831msgstr ""
14832
14833#. type: Plain text
32747aa9 14834#: doc/guix.texi:8319 doc/guix.texi:9636
544cab3d
LC
14835msgid "The following options are available:"
14836msgstr ""
14837
14838#. type: item
32747aa9 14839#: doc/guix.texi:8321 doc/guix.texi:8360
544cab3d
LC
14840#, no-wrap
14841msgid "--format=@var{fmt}"
14842msgstr ""
14843
14844#. type: itemx
32747aa9 14845#: doc/guix.texi:8322 doc/guix.texi:8361
544cab3d
LC
14846#, no-wrap
14847msgid "-f @var{fmt}"
14848msgstr ""
14849
14850#. type: table
32747aa9 14851#: doc/guix.texi:8325
544cab3d
LC
14852msgid "Write the hash in the format specified by @var{fmt}. For more information on the valid values for @var{fmt}, @pxref{Invoking guix hash}."
14853msgstr ""
14854
14855#. type: item
32747aa9 14856#: doc/guix.texi:8326
544cab3d
LC
14857#, no-wrap
14858msgid "--no-check-certificate"
14859msgstr ""
14860
14861#. type: table
32747aa9 14862#: doc/guix.texi:8328
544cab3d
LC
14863msgid "Do not validate the X.509 certificates of HTTPS servers."
14864msgstr ""
14865
14866#. type: table
32747aa9 14867#: doc/guix.texi:8332
544cab3d
LC
14868msgid "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."
14869msgstr ""
14870
14871#. type: item
32747aa9 14872#: doc/guix.texi:8333
544cab3d
LC
14873#, no-wrap
14874msgid "--output=@var{file}"
14875msgstr ""
14876
14877#. type: itemx
32747aa9 14878#: doc/guix.texi:8334
544cab3d
LC
14879#, no-wrap
14880msgid "-o @var{file}"
14881msgstr ""
14882
14883#. type: table
32747aa9 14884#: doc/guix.texi:8337
544cab3d
LC
14885msgid "Save the downloaded file to @var{file} instead of adding it to the store."
14886msgstr ""
14887
14888#. type: section
32747aa9 14889#: doc/guix.texi:8340
544cab3d
LC
14890#, no-wrap
14891msgid "Invoking @command{guix hash}"
14892msgstr ""
14893
14894#. type: command{#1}
32747aa9 14895#: doc/guix.texi:8342
544cab3d
LC
14896#, no-wrap
14897msgid "guix hash"
14898msgstr ""
14899
14900#. type: Plain text
32747aa9 14901#: doc/guix.texi:8347
544cab3d
LC
14902msgid "The @command{guix hash} command computes the SHA256 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})."
14903msgstr ""
14904
14905#. type: example
32747aa9 14906#: doc/guix.texi:8352
544cab3d
LC
14907#, no-wrap
14908msgid "guix hash @var{option} @var{file}\n"
14909msgstr ""
14910
14911#. type: Plain text
32747aa9 14912#: doc/guix.texi:8357
544cab3d
LC
14913msgid "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:"
14914msgstr ""
14915
14916#. type: table
32747aa9 14917#: doc/guix.texi:8363
544cab3d
LC
14918msgid "Write the hash in the format specified by @var{fmt}."
14919msgstr ""
14920
14921#. type: table
32747aa9 14922#: doc/guix.texi:8366
544cab3d
LC
14923msgid "Supported formats: @code{nix-base32}, @code{base32}, @code{base16} (@code{hex} and @code{hexadecimal} can be used as well)."
14924msgstr ""
14925
14926#. type: table
32747aa9 14927#: doc/guix.texi:8370
544cab3d
LC
14928msgid "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."
14929msgstr ""
14930
14931#. type: table
32747aa9 14932#: doc/guix.texi:8374
544cab3d
LC
14933msgid "Compute the hash on @var{file} recursively."
14934msgstr ""
14935
14936#. type: table
32747aa9 14937#: doc/guix.texi:8383
544cab3d
LC
14938msgid "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})."
14939msgstr ""
14940
14941#. type: item
32747aa9 14942#: doc/guix.texi:8384
544cab3d
LC
14943#, no-wrap
14944msgid "--exclude-vcs"
14945msgstr ""
14946
14947#. type: itemx
32747aa9 14948#: doc/guix.texi:8385
544cab3d
LC
14949#, no-wrap
14950msgid "-x"
14951msgstr ""
14952
14953#. type: table
32747aa9 14954#: doc/guix.texi:8388
544cab3d
LC
14955msgid "When combined with @option{--recursive}, exclude version control system directories (@file{.bzr}, @file{.git}, @file{.hg}, etc.)"
14956msgstr ""
14957
14958#. type: table
32747aa9 14959#: doc/guix.texi:8393
544cab3d
LC
14960msgid "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}):"
14961msgstr ""
14962
14963#. type: example
32747aa9 14964#: doc/guix.texi:8398
544cab3d
LC
14965#, no-wrap
14966msgid ""
14967"$ git clone http://example.org/foo.git\n"
14968"$ cd foo\n"
14969"$ guix hash -rx .\n"
14970msgstr ""
14971
14972#. type: cindex
32747aa9 14973#: doc/guix.texi:8402 doc/guix.texi:8407
544cab3d
LC
14974#, no-wrap
14975msgid "Invoking @command{guix import}"
14976msgstr ""
14977
14978#. type: cindex
32747aa9 14979#: doc/guix.texi:8404
544cab3d
LC
14980#, no-wrap
14981msgid "importing packages"
14982msgstr ""
14983
14984#. type: cindex
32747aa9 14985#: doc/guix.texi:8405
544cab3d
LC
14986#, no-wrap
14987msgid "package import"
14988msgstr ""
14989
14990#. type: cindex
32747aa9 14991#: doc/guix.texi:8406
544cab3d
LC
14992#, no-wrap
14993msgid "package conversion"
14994msgstr ""
14995
14996#. type: Plain text
32747aa9 14997#: doc/guix.texi:8414
544cab3d
LC
14998msgid "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})."
14999msgstr ""
15000
15001#. type: example
32747aa9 15002#: doc/guix.texi:8419
544cab3d
LC
15003#, no-wrap
15004msgid "guix import @var{importer} @var{options}@dots{}\n"
15005msgstr ""
15006
15007#. type: Plain text
32747aa9 15008#: doc/guix.texi:8425
544cab3d
LC
15009msgid "@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}. Currently, the available ``importers'' are:"
15010msgstr ""
15011
15012#. type: item
32747aa9 15013#: doc/guix.texi:8427 doc/guix.texi:8927
544cab3d
LC
15014#, no-wrap
15015msgid "gnu"
15016msgstr ""
15017
15018#. type: table
32747aa9 15019#: doc/guix.texi:8431
544cab3d
LC
15020msgid "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."
15021msgstr ""
15022
15023#. type: table
32747aa9 15024#: doc/guix.texi:8434
544cab3d
LC
15025msgid "Additional information such as the package dependencies and its license needs to be figured out manually."
15026msgstr ""
15027
15028#. type: table
32747aa9 15029#: doc/guix.texi:8437
544cab3d
LC
15030msgid "For example, the following command returns a package definition for GNU@tie{}Hello:"
15031msgstr ""
15032
15033#. type: example
32747aa9 15034#: doc/guix.texi:8440
544cab3d
LC
15035#, no-wrap
15036msgid "guix import gnu hello\n"
15037msgstr ""
15038
15039#. type: table
32747aa9 15040#: doc/guix.texi:8443 doc/guix.texi:8670 doc/guix.texi:8720 doc/guix.texi:8749
544cab3d
LC
15041msgid "Specific command-line options are:"
15042msgstr ""
15043
15044#. type: item
32747aa9 15045#: doc/guix.texi:8445 doc/guix.texi:9076
544cab3d
LC
15046#, no-wrap
15047msgid "--key-download=@var{policy}"
15048msgstr ""
15049
15050#. type: table
32747aa9 15051#: doc/guix.texi:8449
544cab3d
LC
15052msgid "As for @code{guix refresh}, specify the policy to handle missing OpenPGP keys when verifying the package signature. @xref{Invoking guix refresh, @code{--key-download}}."
15053msgstr ""
15054
15055#. type: item
32747aa9 15056#: doc/guix.texi:8451 doc/guix.texi:8452 doc/guix.texi:8945
544cab3d
LC
15057#, no-wrap
15058msgid "pypi"
15059msgstr ""
15060
15061#. type: table
32747aa9 15062#: doc/guix.texi:8459
544cab3d
LC
15063msgid "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."
15064msgstr ""
15065
15066#. type: table
32747aa9 15067#: doc/guix.texi:8462
544cab3d
LC
15068msgid "The command below imports metadata for the @code{itsdangerous} Python package:"
15069msgstr ""
15070
15071#. type: example
32747aa9 15072#: doc/guix.texi:8465
544cab3d
LC
15073#, no-wrap
15074msgid "guix import pypi itsdangerous\n"
15075msgstr ""
15076
15077#. type: table
32747aa9
LC
15078#: doc/guix.texi:8473 doc/guix.texi:8498 doc/guix.texi:8693 doc/guix.texi:8734
15079#: doc/guix.texi:8781
544cab3d
LC
15080msgid "Traverse the dependency graph of the given upstream package recursively and generate package expressions for all those packages that are not yet in Guix."
15081msgstr ""
15082
15083#. type: item
32747aa9 15084#: doc/guix.texi:8475 doc/guix.texi:8476 doc/guix.texi:8947
544cab3d
LC
15085#, no-wrap
15086msgid "gem"
15087msgstr ""
15088
15089#. type: table
32747aa9 15090#: doc/guix.texi:8485
544cab3d
LC
15091msgid "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."
15092msgstr ""
15093
15094#. type: table
32747aa9 15095#: doc/guix.texi:8487
544cab3d
LC
15096msgid "The command below imports metadata for the @code{rails} Ruby package:"
15097msgstr ""
15098
15099#. type: example
32747aa9 15100#: doc/guix.texi:8490
544cab3d
LC
15101#, no-wrap
15102msgid "guix import gem rails\n"
15103msgstr ""
15104
15105#. type: item
32747aa9 15106#: doc/guix.texi:8500 doc/guix.texi:8943
544cab3d
LC
15107#, no-wrap
15108msgid "cpan"
15109msgstr ""
15110
15111#. type: cindex
32747aa9 15112#: doc/guix.texi:8501
544cab3d
LC
15113#, no-wrap
15114msgid "CPAN"
15115msgstr ""
15116
15117#. type: table
32747aa9 15118#: doc/guix.texi:8509
544cab3d
LC
15119msgid "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."
15120msgstr ""
15121
15122#. type: table
32747aa9 15123#: doc/guix.texi:8512
544cab3d
LC
15124msgid "The command command below imports metadata for the @code{Acme::Boolean} Perl module:"
15125msgstr ""
15126
15127#. type: example
32747aa9 15128#: doc/guix.texi:8515
544cab3d
LC
15129#, no-wrap
15130msgid "guix import cpan Acme::Boolean\n"
15131msgstr ""
15132
15133#. type: item
32747aa9 15134#: doc/guix.texi:8517 doc/guix.texi:8939
544cab3d
LC
15135#, no-wrap
15136msgid "cran"
15137msgstr ""
15138
15139#. type: cindex
32747aa9 15140#: doc/guix.texi:8518
544cab3d
LC
15141#, no-wrap
15142msgid "CRAN"
15143msgstr ""
15144
15145#. type: cindex
32747aa9 15146#: doc/guix.texi:8519
544cab3d
LC
15147#, no-wrap
15148msgid "Bioconductor"
15149msgstr ""
15150
15151#. type: table
32747aa9
LC
15152#: doc/guix.texi:8523
15153msgid "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}."
544cab3d
LC
15154msgstr ""
15155
15156#. type: table
32747aa9 15157#: doc/guix.texi:8525
544cab3d
LC
15158msgid "Information is extracted from the @code{DESCRIPTION} file of the package."
15159msgstr ""
15160
15161#. type: table
32747aa9 15162#: doc/guix.texi:8528
544cab3d
LC
15163msgid "The command command below imports metadata for the @code{Cairo} R package:"
15164msgstr ""
15165
15166#. type: example
32747aa9 15167#: doc/guix.texi:8531
544cab3d
LC
15168#, no-wrap
15169msgid "guix import cran Cairo\n"
15170msgstr ""
15171
15172#. type: table
32747aa9 15173#: doc/guix.texi:8536
544cab3d
LC
15174msgid "When @code{--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."
15175msgstr ""
15176
15177#. type: table
32747aa9 15178#: doc/guix.texi:8541
544cab3d
LC
15179msgid "When @code{--archive=bioconductor} is added, metadata is imported from @uref{https://www.bioconductor.org/, Bioconductor}, a repository of R packages for for the analysis and comprehension of high-throughput genomic data in bioinformatics."
15180msgstr ""
15181
15182#. type: table
32747aa9 15183#: doc/guix.texi:8544
544cab3d
LC
15184msgid "Information is extracted from the @code{DESCRIPTION} file of a package published on the web interface of the Bioconductor SVN repository."
15185msgstr ""
15186
15187#. type: table
32747aa9 15188#: doc/guix.texi:8547
544cab3d
LC
15189msgid "The command below imports metadata for the @code{GenomicRanges} R package:"
15190msgstr ""
15191
15192#. type: example
32747aa9 15193#: doc/guix.texi:8550
544cab3d
LC
15194#, no-wrap
15195msgid "guix import cran --archive=bioconductor GenomicRanges\n"
15196msgstr ""
15197
15198#. type: item
32747aa9 15199#: doc/guix.texi:8552
544cab3d
LC
15200#, no-wrap
15201msgid "texlive"
15202msgstr ""
15203
15204#. type: cindex
32747aa9 15205#: doc/guix.texi:8553
544cab3d
LC
15206#, no-wrap
15207msgid "TeX Live"
15208msgstr ""
15209
15210#. type: cindex
32747aa9 15211#: doc/guix.texi:8554
544cab3d
LC
15212#, no-wrap
15213msgid "CTAN"
15214msgstr ""
15215
15216#. type: table
32747aa9
LC
15217#: doc/guix.texi:8558
15218msgid "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}."
544cab3d
LC
15219msgstr ""
15220
15221#. type: table
32747aa9 15222#: doc/guix.texi:8563
544cab3d
LC
15223msgid "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."
15224msgstr ""
15225
15226#. type: table
32747aa9 15227#: doc/guix.texi:8566
544cab3d
LC
15228msgid "The command command below imports metadata for the @code{fontspec} TeX package:"
15229msgstr ""
15230
15231#. type: example
32747aa9 15232#: doc/guix.texi:8569
544cab3d
LC
15233#, no-wrap
15234msgid "guix import texlive fontspec\n"
15235msgstr ""
15236
15237#. type: table
32747aa9 15238#: doc/guix.texi:8575
544cab3d
LC
15239msgid "When @code{--archive=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 directory under the same root."
15240msgstr ""
15241
15242#. type: table
32747aa9 15243#: doc/guix.texi:8579
544cab3d
LC
15244msgid "The command below imports metadata for the @code{ifxetex} package from CTAN while fetching the sources from the directory @file{texmf/source/generic}:"
15245msgstr ""
15246
15247#. type: example
32747aa9 15248#: doc/guix.texi:8582
544cab3d
LC
15249#, no-wrap
15250msgid "guix import texlive --archive=generic ifxetex\n"
15251msgstr ""
15252
15253#. type: cindex
32747aa9 15254#: doc/guix.texi:8585
544cab3d
LC
15255#, no-wrap
15256msgid "JSON, import"
15257msgstr ""
15258
15259#. type: table
32747aa9 15260#: doc/guix.texi:8588
544cab3d
LC
15261msgid "Import package metadata from a local JSON file. Consider the following example package definition in JSON format:"
15262msgstr ""
15263
15264#. type: example
32747aa9 15265#: doc/guix.texi:8601
544cab3d
LC
15266#, no-wrap
15267msgid ""
15268"@{\n"
15269" \"name\": \"hello\",\n"
15270" \"version\": \"2.10\",\n"
15271" \"source\": \"mirror://gnu/hello/hello-2.10.tar.gz\",\n"
15272" \"build-system\": \"gnu\",\n"
15273" \"home-page\": \"https://www.gnu.org/software/hello/\",\n"
15274" \"synopsis\": \"Hello, GNU world: An example GNU package\",\n"
15275" \"description\": \"GNU Hello prints a greeting.\",\n"
15276" \"license\": \"GPL-3.0+\",\n"
15277" \"native-inputs\": [\"gcc@@6\"]\n"
15278"@}\n"
15279msgstr ""
15280
15281#. type: table
32747aa9 15282#: doc/guix.texi:8607
544cab3d
LC
15283msgid "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}."
15284msgstr ""
15285
15286#. type: table
32747aa9 15287#: doc/guix.texi:8610
544cab3d
LC
15288msgid "The importer also supports a more explicit source definition using the common fields for @code{<origin>} records:"
15289msgstr ""
15290
15291#. type: example
32747aa9 15292#: doc/guix.texi:8623
544cab3d
LC
15293#, no-wrap
15294msgid ""
15295"@{\n"
15296" @dots{}\n"
15297" \"source\": @{\n"
15298" \"method\": \"url-fetch\",\n"
15299" \"uri\": \"mirror://gnu/hello/hello-2.10.tar.gz\",\n"
15300" \"sha256\": @{\n"
15301" \"base32\": \"0ssi1wpaf7plaswqqjwigppsg5fyh99vdlb9kzl7c9lng89ndq1i\"\n"
15302" @}\n"
15303" @}\n"
15304" @dots{}\n"
15305"@}\n"
15306msgstr ""
15307
15308#. type: table
32747aa9 15309#: doc/guix.texi:8627
544cab3d
LC
15310msgid "The command below reads metadata from the JSON file @code{hello.json} and outputs a package expression:"
15311msgstr ""
15312
15313#. type: example
32747aa9 15314#: doc/guix.texi:8630
544cab3d
LC
15315#, no-wrap
15316msgid "guix import json hello.json\n"
15317msgstr ""
15318
15319#. type: item
32747aa9 15320#: doc/guix.texi:8632
544cab3d
LC
15321#, no-wrap
15322msgid "nix"
15323msgstr ""
15324
15325#. type: table
32747aa9
LC
15326#: doc/guix.texi:8641
15327msgid "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."
544cab3d
LC
15328msgstr ""
15329
15330#. type: table
32747aa9 15331#: doc/guix.texi:8644
544cab3d
LC
15332msgid "When importing a GNU package, the synopsis and descriptions are replaced by their canonical upstream variant."
15333msgstr ""
15334
15335#. type: table
32747aa9 15336#: doc/guix.texi:8646
544cab3d
LC
15337msgid "Usually, you will first need to do:"
15338msgstr ""
15339
15340#. type: example
32747aa9 15341#: doc/guix.texi:8649
544cab3d
LC
15342#, no-wrap
15343msgid "export NIX_REMOTE=daemon\n"
15344msgstr ""
15345
15346#. type: table
32747aa9 15347#: doc/guix.texi:8653
544cab3d
LC
15348msgid "so that @command{nix-instantiate} does not try to open the Nix database."
15349msgstr ""
15350
15351#. type: table
32747aa9 15352#: doc/guix.texi:8657
544cab3d
LC
15353msgid "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):"
15354msgstr ""
15355
15356#. type: example
32747aa9 15357#: doc/guix.texi:8660
544cab3d
LC
15358#, no-wrap
15359msgid "guix import nix ~/path/to/nixpkgs libreoffice\n"
15360msgstr ""
15361
15362#. type: item
32747aa9 15363#: doc/guix.texi:8662 doc/guix.texi:8663 doc/guix.texi:8951
544cab3d
LC
15364#, no-wrap
15365msgid "hackage"
15366msgstr ""
15367
15368#. type: table
32747aa9 15369#: doc/guix.texi:8668
544cab3d
LC
15370msgid "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."
15371msgstr ""
15372
15373#. type: item
32747aa9 15374#: doc/guix.texi:8672
544cab3d
LC
15375#, no-wrap
15376msgid "--stdin"
15377msgstr ""
15378
15379#. type: itemx
32747aa9 15380#: doc/guix.texi:8673
544cab3d
LC
15381#, no-wrap
15382msgid "-s"
15383msgstr ""
15384
15385#. type: table
32747aa9 15386#: doc/guix.texi:8675
544cab3d
LC
15387msgid "Read a Cabal file from standard input."
15388msgstr ""
15389
15390#. type: item
32747aa9 15391#: doc/guix.texi:8675 doc/guix.texi:8722
544cab3d
LC
15392#, no-wrap
15393msgid "--no-test-dependencies"
15394msgstr ""
15395
15396#. type: itemx
32747aa9 15397#: doc/guix.texi:8676 doc/guix.texi:8723
544cab3d
LC
15398#, no-wrap
15399msgid "-t"
15400msgstr ""
15401
15402#. type: table
32747aa9 15403#: doc/guix.texi:8678 doc/guix.texi:8725
544cab3d
LC
15404msgid "Do not include dependencies required only by the test suites."
15405msgstr ""
15406
15407#. type: item
32747aa9 15408#: doc/guix.texi:8678
544cab3d
LC
15409#, no-wrap
15410msgid "--cabal-environment=@var{alist}"
15411msgstr ""
15412
15413#. type: itemx
32747aa9 15414#: doc/guix.texi:8679
544cab3d
LC
15415#, no-wrap
15416msgid "-e @var{alist}"
15417msgstr ""
15418
15419#. type: table
32747aa9 15420#: doc/guix.texi:8688
544cab3d
LC
15421msgid "@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."
15422msgstr ""
15423
15424#. type: table
32747aa9 15425#: doc/guix.texi:8698
544cab3d
LC
15426msgid "The command below imports metadata for the latest version of the @code{HTTP} Haskell package without including test dependencies and specifying the value of the flag @samp{network-uri} as @code{false}:"
15427msgstr ""
15428
15429#. type: example
32747aa9 15430#: doc/guix.texi:8701
544cab3d
LC
15431#, no-wrap
15432msgid "guix import hackage -t -e \"'((\\\"network-uri\\\" . false))\" HTTP\n"
15433msgstr ""
15434
15435#. type: table
32747aa9 15436#: doc/guix.texi:8705
544cab3d
LC
15437msgid "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:"
15438msgstr ""
15439
15440#. type: example
32747aa9 15441#: doc/guix.texi:8708
544cab3d
LC
15442#, no-wrap
15443msgid "guix import hackage mtl@@2.1.3.1\n"
15444msgstr ""
15445
15446#. type: item
32747aa9 15447#: doc/guix.texi:8710 doc/guix.texi:8711 doc/guix.texi:8953
544cab3d
LC
15448#, no-wrap
15449msgid "stackage"
15450msgstr ""
15451
15452#. type: table
32747aa9 15453#: doc/guix.texi:8718
544cab3d
LC
15454msgid "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."
15455msgstr ""
15456
15457#. type: item
32747aa9 15458#: doc/guix.texi:8725
544cab3d
LC
15459#, no-wrap
15460msgid "--lts-version=@var{version}"
15461msgstr ""
15462
15463#. type: itemx
32747aa9 15464#: doc/guix.texi:8726
544cab3d
LC
15465#, no-wrap
15466msgid "-l @var{version}"
15467msgstr ""
15468
15469#. type: table
32747aa9 15470#: doc/guix.texi:8729
544cab3d
LC
15471msgid "@var{version} is the desired LTS release version. If omitted the latest release is used."
15472msgstr ""
15473
15474#. type: table
32747aa9 15475#: doc/guix.texi:8738
544cab3d
LC
15476msgid "The command below imports metadata for the @code{HTTP} Haskell package included in the LTS Stackage release version 7.18:"
15477msgstr ""
15478
15479#. type: example
32747aa9 15480#: doc/guix.texi:8741
544cab3d
LC
15481#, no-wrap
15482msgid "guix import stackage --lts-version=7.18 HTTP\n"
15483msgstr ""
15484
15485#. type: item
32747aa9 15486#: doc/guix.texi:8743 doc/guix.texi:8744 doc/guix.texi:8937
544cab3d
LC
15487#, no-wrap
15488msgid "elpa"
15489msgstr ""
15490
15491#. type: table
32747aa9 15492#: doc/guix.texi:8747
544cab3d
LC
15493msgid "Import metadata from an Emacs Lisp Package Archive (ELPA) package repository (@pxref{Packages,,, emacs, The GNU Emacs Manual})."
15494msgstr ""
15495
15496#. type: item
32747aa9 15497#: doc/guix.texi:8751
544cab3d
LC
15498#, no-wrap
15499msgid "--archive=@var{repo}"
15500msgstr ""
15501
15502#. type: itemx
32747aa9 15503#: doc/guix.texi:8752
544cab3d
LC
15504#, no-wrap
15505msgid "-a @var{repo}"
15506msgstr ""
15507
15508#. type: table
32747aa9 15509#: doc/guix.texi:8756
544cab3d
LC
15510msgid "@var{repo} identifies the archive repository from which to retrieve the information. Currently the supported repositories and their identifiers are:"
15511msgstr ""
15512
15513#. type: itemize
32747aa9
LC
15514#: doc/guix.texi:8760
15515msgid "@uref{https://elpa.gnu.org/packages, GNU}, selected by the @code{gnu} identifier. This is the default."
544cab3d
LC
15516msgstr ""
15517
15518#. type: itemize
32747aa9 15519#: doc/guix.texi:8766
544cab3d
LC
15520msgid "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})."
15521msgstr ""
15522
15523#. type: itemize
32747aa9
LC
15524#: doc/guix.texi:8770
15525msgid "@uref{https://stable.melpa.org/packages, MELPA-Stable}, selected by the @code{melpa-stable} identifier."
544cab3d
LC
15526msgstr ""
15527
15528#. type: itemize
32747aa9
LC
15529#: doc/guix.texi:8774
15530msgid "@uref{https://melpa.org/packages, MELPA}, selected by the @code{melpa} identifier."
544cab3d
LC
15531msgstr ""
15532
15533#. type: item
32747aa9 15534#: doc/guix.texi:8783 doc/guix.texi:8784 doc/guix.texi:8955
544cab3d
LC
15535#, no-wrap
15536msgid "crate"
15537msgstr ""
15538
15539#. type: table
32747aa9 15540#: doc/guix.texi:8787
544cab3d
LC
15541msgid "Import metadata from the crates.io Rust package repository @uref{https://crates.io, crates.io}."
15542msgstr ""
15543
15544#. type: item
32747aa9 15545#: doc/guix.texi:8788
544cab3d
LC
15546#, no-wrap
15547msgid "opam"
15548msgstr ""
15549
15550#. type: cindex
32747aa9 15551#: doc/guix.texi:8789
544cab3d
LC
15552#, no-wrap
15553msgid "OPAM"
15554msgstr ""
15555
15556#. type: cindex
32747aa9 15557#: doc/guix.texi:8790
544cab3d
LC
15558#, no-wrap
15559msgid "OCaml"
15560msgstr ""
15561
15562#. type: table
32747aa9 15563#: doc/guix.texi:8793
544cab3d
LC
15564msgid "Import metadata from the @uref{https://opam.ocaml.org/, OPAM} package repository used by the OCaml community."
15565msgstr ""
15566
15567#. type: Plain text
32747aa9 15568#: doc/guix.texi:8798
544cab3d
LC
15569msgid "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})."
15570msgstr ""
15571
15572#. type: section
32747aa9 15573#: doc/guix.texi:8800
544cab3d
LC
15574#, no-wrap
15575msgid "Invoking @command{guix refresh}"
15576msgstr ""
15577
15578#. type: command{#1}
32747aa9 15579#: doc/guix.texi:8802
544cab3d
LC
15580#, no-wrap
15581msgid "guix refresh"
15582msgstr ""
15583
15584#. type: Plain text
32747aa9 15585#: doc/guix.texi:8807
544cab3d
LC
15586msgid "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:"
15587msgstr ""
15588
15589#. type: example
32747aa9 15590#: doc/guix.texi:8812
544cab3d
LC
15591#, no-wrap
15592msgid ""
15593"$ guix refresh\n"
15594"gnu/packages/gettext.scm:29:13: gettext would be upgraded from 0.18.1.1 to 0.18.2.1\n"
15595"gnu/packages/glib.scm:77:12: glib would be upgraded from 2.34.3 to 2.37.0\n"
15596msgstr ""
15597
15598#. type: Plain text
32747aa9 15599#: doc/guix.texi:8816
544cab3d
LC
15600msgid "Alternately, one can specify packages to consider, in which case a warning is emitted for packages that lack an updater:"
15601msgstr ""
15602
15603#. type: example
32747aa9 15604#: doc/guix.texi:8821
544cab3d
LC
15605#, no-wrap
15606msgid ""
15607"$ guix refresh coreutils guile guile-ssh\n"
15608"gnu/packages/ssh.scm:205:2: warning: no updater for guile-ssh\n"
15609"gnu/packages/guile.scm:136:12: guile would be upgraded from 2.0.12 to 2.0.13\n"
15610msgstr ""
15611
15612#. type: Plain text
32747aa9 15613#: doc/guix.texi:8830
544cab3d
LC
15614msgid "@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!"
15615msgstr ""
15616
15617#. type: table
32747aa9 15618#: doc/guix.texi:8835
544cab3d
LC
15619msgid "Consider the packages specified, and all the packages upon which they depend."
15620msgstr ""
15621
15622#. type: example
32747aa9 15623#: doc/guix.texi:8843
544cab3d
LC
15624#, no-wrap
15625msgid ""
15626"$ guix refresh --recursive coreutils\n"
15627"gnu/packages/acl.scm:35:2: warning: no updater for acl\n"
15628"gnu/packages/m4.scm:30:12: info: 1.4.18 is already the latest version of m4\n"
15629"gnu/packages/xml.scm:68:2: warning: no updater for expat\n"
15630"gnu/packages/multiprecision.scm:40:12: info: 6.1.2 is already the latest version of gmp\n"
15631"@dots{}\n"
15632msgstr ""
15633
15634#. type: Plain text
32747aa9 15635#: doc/guix.texi:8851
544cab3d
LC
15636msgid "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:"
15637msgstr ""
15638
15639#. type: example
32747aa9 15640#: doc/guix.texi:8858
544cab3d
LC
15641#, no-wrap
15642msgid ""
15643"(define-public network-manager\n"
15644" (package\n"
15645" (name \"network-manager\")\n"
15646" ;; @dots{}\n"
15647" (properties '((upstream-name . \"NetworkManager\")))))\n"
15648msgstr ""
15649
15650#. type: Plain text
32747aa9 15651#: doc/guix.texi:8870
544cab3d
LC
15652msgid "When passed @code{--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{gpg}, and finally computing its hash. 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."
15653msgstr ""
15654
15655#. type: Plain text
32747aa9 15656#: doc/guix.texi:8872
544cab3d
LC
15657msgid "The following options are supported:"
15658msgstr ""
15659
15660#. type: table
32747aa9 15661#: doc/guix.texi:8880 doc/guix.texi:9538
544cab3d
LC
15662msgid "This is useful to precisely refer to a package, as in this example:"
15663msgstr ""
15664
15665#. type: example
32747aa9 15666#: doc/guix.texi:8883
544cab3d
LC
15667#, no-wrap
15668msgid "guix refresh -l -e '(@@@@ (gnu packages commencement) glibc-final)'\n"
15669msgstr ""
15670
15671#. type: table
32747aa9 15672#: doc/guix.texi:8887
544cab3d
LC
15673msgid "This command lists the dependents of the ``final'' libc (essentially all the packages.)"
15674msgstr ""
15675
15676#. type: item
32747aa9 15677#: doc/guix.texi:8888
544cab3d
LC
15678#, no-wrap
15679msgid "--update"
15680msgstr ""
15681
15682#. type: itemx
32747aa9 15683#: doc/guix.texi:8889
544cab3d
LC
15684#, no-wrap
15685msgid "-u"
15686msgstr ""
15687
15688#. type: table
32747aa9 15689#: doc/guix.texi:8893
544cab3d
LC
15690msgid "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}):"
15691msgstr ""
15692
15693#. type: example
32747aa9 15694#: doc/guix.texi:8896
544cab3d
LC
15695#, no-wrap
15696msgid "$ ./pre-inst-env guix refresh -s non-core -u\n"
15697msgstr ""
15698
15699#. type: table
32747aa9 15700#: doc/guix.texi:8899
544cab3d
LC
15701msgid "@xref{Defining Packages}, for more information on package definitions."
15702msgstr ""
15703
15704#. type: item
32747aa9 15705#: doc/guix.texi:8900
544cab3d
LC
15706#, no-wrap
15707msgid "--select=[@var{subset}]"
15708msgstr ""
15709
15710#. type: itemx
32747aa9 15711#: doc/guix.texi:8901
544cab3d
LC
15712#, no-wrap
15713msgid "-s @var{subset}"
15714msgstr ""
15715
15716#. type: table
32747aa9 15717#: doc/guix.texi:8904
544cab3d
LC
15718msgid "Select all the packages in @var{subset}, one of @code{core} or @code{non-core}."
15719msgstr ""
15720
15721#. type: table
32747aa9 15722#: doc/guix.texi:8911
544cab3d
LC
15723msgid "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."
15724msgstr ""
15725
15726#. type: table
32747aa9 15727#: doc/guix.texi:8915
544cab3d
LC
15728msgid "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."
15729msgstr ""
15730
15731#. type: table
32747aa9 15732#: doc/guix.texi:8920
544cab3d
LC
15733msgid "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."
15734msgstr ""
15735
15736#. type: item
32747aa9 15737#: doc/guix.texi:8921
544cab3d
LC
15738#, no-wrap
15739msgid "--type=@var{updater}"
15740msgstr ""
15741
15742#. type: itemx
32747aa9 15743#: doc/guix.texi:8922
544cab3d
LC
15744#, no-wrap
15745msgid "-t @var{updater}"
15746msgstr ""
15747
15748#. type: table
32747aa9 15749#: doc/guix.texi:8925
544cab3d
LC
15750msgid "Select only packages handled by @var{updater} (may be a comma-separated list of updaters). Currently, @var{updater} may be one of:"
15751msgstr ""
15752
15753#. type: table
32747aa9 15754#: doc/guix.texi:8929
544cab3d
LC
15755msgid "the updater for GNU packages;"
15756msgstr ""
15757
15758#. type: item
32747aa9 15759#: doc/guix.texi:8929
544cab3d
LC
15760#, no-wrap
15761msgid "gnome"
15762msgstr ""
15763
15764#. type: table
32747aa9 15765#: doc/guix.texi:8931
544cab3d
LC
15766msgid "the updater for GNOME packages;"
15767msgstr ""
15768
15769#. type: item
32747aa9 15770#: doc/guix.texi:8931
544cab3d
LC
15771#, no-wrap
15772msgid "kde"
15773msgstr ""
15774
15775#. type: table
32747aa9 15776#: doc/guix.texi:8933
544cab3d
LC
15777msgid "the updater for KDE packages;"
15778msgstr ""
15779
15780#. type: item
32747aa9 15781#: doc/guix.texi:8933
544cab3d
LC
15782#, no-wrap
15783msgid "xorg"
15784msgstr ""
15785
15786#. type: table
32747aa9 15787#: doc/guix.texi:8935
544cab3d
LC
15788msgid "the updater for X.org packages;"
15789msgstr ""
15790
15791#. type: item
32747aa9 15792#: doc/guix.texi:8935
544cab3d
LC
15793#, no-wrap
15794msgid "kernel.org"
15795msgstr ""
15796
15797#. type: table
32747aa9 15798#: doc/guix.texi:8937
544cab3d
LC
15799msgid "the updater for packages hosted on kernel.org;"
15800msgstr ""
15801
15802#. type: table
32747aa9
LC
15803#: doc/guix.texi:8939
15804msgid "the updater for @uref{https://elpa.gnu.org/, ELPA} packages;"
544cab3d
LC
15805msgstr ""
15806
15807#. type: table
32747aa9 15808#: doc/guix.texi:8941
544cab3d
LC
15809msgid "the updater for @uref{https://cran.r-project.org/, CRAN} packages;"
15810msgstr ""
15811
15812#. type: item
32747aa9 15813#: doc/guix.texi:8941
544cab3d
LC
15814#, no-wrap
15815msgid "bioconductor"
15816msgstr ""
15817
15818#. type: table
32747aa9 15819#: doc/guix.texi:8943
544cab3d
LC
15820msgid "the updater for @uref{https://www.bioconductor.org/, Bioconductor} R packages;"
15821msgstr ""
15822
15823#. type: table
32747aa9
LC
15824#: doc/guix.texi:8945
15825msgid "the updater for @uref{https://www.cpan.org/, CPAN} packages;"
544cab3d
LC
15826msgstr ""
15827
15828#. type: table
32747aa9 15829#: doc/guix.texi:8947
544cab3d
LC
15830msgid "the updater for @uref{https://pypi.python.org, PyPI} packages."
15831msgstr ""
15832
15833#. type: table
32747aa9 15834#: doc/guix.texi:8949
544cab3d
LC
15835msgid "the updater for @uref{https://rubygems.org, RubyGems} packages."
15836msgstr ""
15837
15838#. type: item
32747aa9 15839#: doc/guix.texi:8949
544cab3d
LC
15840#, no-wrap
15841msgid "github"
15842msgstr ""
15843
15844#. type: table
32747aa9 15845#: doc/guix.texi:8951
544cab3d
LC
15846msgid "the updater for @uref{https://github.com, GitHub} packages."
15847msgstr ""
15848
15849#. type: table
32747aa9 15850#: doc/guix.texi:8953
544cab3d
LC
15851msgid "the updater for @uref{https://hackage.haskell.org, Hackage} packages."
15852msgstr ""
15853
15854#. type: table
32747aa9 15855#: doc/guix.texi:8955
544cab3d
LC
15856msgid "the updater for @uref{https://www.stackage.org, Stackage} packages."
15857msgstr ""
15858
15859#. type: table
32747aa9 15860#: doc/guix.texi:8957
544cab3d
LC
15861msgid "the updater for @uref{https://crates.io, Crates} packages."
15862msgstr ""
15863
15864#. type: item
32747aa9 15865#: doc/guix.texi:8957
544cab3d
LC
15866#, no-wrap
15867msgid "launchpad"
15868msgstr ""
15869
15870#. type: table
32747aa9 15871#: doc/guix.texi:8959
544cab3d
LC
15872msgid "the updater for @uref{https://launchpad.net, Launchpad} packages."
15873msgstr ""
15874
15875#. type: table
32747aa9 15876#: doc/guix.texi:8963
544cab3d
LC
15877msgid "For instance, the following command only checks for updates of Emacs packages hosted at @code{elpa.gnu.org} and for updates of CRAN packages:"
15878msgstr ""
15879
15880#. type: example
32747aa9 15881#: doc/guix.texi:8968
544cab3d
LC
15882#, no-wrap
15883msgid ""
15884"$ guix refresh --type=elpa,cran\n"
15885"gnu/packages/statistics.scm:819:13: r-testthat would be upgraded from 0.10.0 to 0.11.0\n"
15886"gnu/packages/emacs.scm:856:13: emacs-auctex would be upgraded from 11.88.6 to 11.88.9\n"
15887msgstr ""
15888
15889#. type: Plain text
32747aa9 15890#: doc/guix.texi:8974
544cab3d
LC
15891msgid "In addition, @command{guix refresh} can be passed one or more package names, as in this example:"
15892msgstr ""
15893
15894#. type: example
32747aa9 15895#: doc/guix.texi:8977
544cab3d
LC
15896#, no-wrap
15897msgid "$ ./pre-inst-env guix refresh -u emacs idutils gcc@@4.8\n"
15898msgstr ""
15899
15900#. type: Plain text
32747aa9 15901#: doc/guix.texi:8983
544cab3d
LC
15902msgid "The command above specifically updates the @code{emacs} and @code{idutils} packages. The @code{--select} option would have no effect in this case."
15903msgstr ""
15904
15905#. type: Plain text
32747aa9 15906#: doc/guix.texi:8988
544cab3d
LC
15907msgid "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:"
15908msgstr ""
15909
15910#. type: item
32747aa9 15911#: doc/guix.texi:8991
544cab3d
LC
15912#, no-wrap
15913msgid "--list-updaters"
15914msgstr ""
15915
15916#. type: itemx
32747aa9 15917#: doc/guix.texi:8992
544cab3d
LC
15918#, no-wrap
15919msgid "-L"
15920msgstr ""
15921
15922#. type: table
32747aa9 15923#: doc/guix.texi:8994
544cab3d
LC
15924msgid "List available updaters and exit (see @option{--type} above.)"
15925msgstr ""
15926
15927#. type: table
32747aa9 15928#: doc/guix.texi:8997
544cab3d
LC
15929msgid "For each updater, display the fraction of packages it covers; at the end, display the fraction of packages covered by all these updaters."
15930msgstr ""
15931
15932#. type: item
32747aa9 15933#: doc/guix.texi:8998
544cab3d
LC
15934#, no-wrap
15935msgid "--list-dependent"
15936msgstr ""
15937
15938#. type: itemx
32747aa9 15939#: doc/guix.texi:8999 doc/guix.texi:9215
544cab3d
LC
15940#, no-wrap
15941msgid "-l"
15942msgstr ""
15943
15944#. type: table
32747aa9 15945#: doc/guix.texi:9002
544cab3d
LC
15946msgid "List top-level dependent packages that would need to be rebuilt as a result of upgrading one or more packages."
15947msgstr ""
15948
15949#. type: table
32747aa9 15950#: doc/guix.texi:9006
544cab3d
LC
15951msgid "@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."
15952msgstr ""
15953
15954#. type: Plain text
32747aa9 15955#: doc/guix.texi:9012
544cab3d
LC
15956msgid "Be aware that the @code{--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."
15957msgstr ""
15958
15959#. type: example
32747aa9 15960#: doc/guix.texi:9017
544cab3d
LC
15961#, no-wrap
15962msgid ""
15963"$ guix refresh --list-dependent flex\n"
15964"Building the following 120 packages would ensure 213 dependent packages are rebuilt:\n"
15965"hop@@2.4.0 geiser@@0.4 notmuch@@0.18 mu@@0.9.9.5 cflow@@1.4 idutils@@4.6 @dots{}\n"
15966msgstr ""
15967
15968#. type: Plain text
32747aa9 15969#: doc/guix.texi:9021
544cab3d
LC
15970msgid "The command above lists a set of packages that could be built to check for compatibility with an upgraded @code{flex} package."
15971msgstr ""
15972
15973#. type: item
32747aa9 15974#: doc/guix.texi:9024
544cab3d
LC
15975#, no-wrap
15976msgid "--list-transitive"
15977msgstr ""
15978
15979#. type: table
32747aa9 15980#: doc/guix.texi:9026
544cab3d
LC
15981msgid "List all the packages which one or more packages depend upon."
15982msgstr ""
15983
15984#. type: example
32747aa9 15985#: doc/guix.texi:9031
544cab3d
LC
15986#, no-wrap
15987msgid ""
15988"$ guix refresh --list-transitive flex\n"
15989"flex@@2.6.4 depends on the following 25 packages: perl@@5.28.0 help2man@@1.47.6\n"
15990"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"
15991msgstr ""
15992
15993#. type: Plain text
32747aa9 15994#: doc/guix.texi:9037
544cab3d
LC
15995msgid "The command above lists a set of packages which, when changed, would cause @code{flex} to be rebuilt."
15996msgstr ""
15997
15998#. type: Plain text
32747aa9 15999#: doc/guix.texi:9039
544cab3d
LC
16000msgid "The following options can be used to customize GnuPG operation:"
16001msgstr ""
16002
16003#. type: item
32747aa9 16004#: doc/guix.texi:9042
544cab3d
LC
16005#, no-wrap
16006msgid "--gpg=@var{command}"
16007msgstr ""
16008
16009#. type: table
32747aa9 16010#: doc/guix.texi:9045
544cab3d
LC
16011msgid "Use @var{command} as the GnuPG 2.x command. @var{command} is searched for in @code{$PATH}."
16012msgstr ""
16013
16014#. type: item
32747aa9 16015#: doc/guix.texi:9046
544cab3d
LC
16016#, no-wrap
16017msgid "--keyring=@var{file}"
16018msgstr ""
16019
16020#. type: table
32747aa9 16021#: doc/guix.texi:9052
544cab3d
LC
16022msgid "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)."
16023msgstr ""
16024
16025#. type: table
32747aa9 16026#: doc/guix.texi:9058
544cab3d
LC
16027msgid "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.)"
16028msgstr ""
16029
16030#. type: table
32747aa9 16031#: doc/guix.texi:9061
544cab3d
LC
16032msgid "You can export keys from your default GPG keyring into a keybox file using commands like this one:"
16033msgstr ""
16034
16035#. type: example
32747aa9 16036#: doc/guix.texi:9064
544cab3d
LC
16037#, no-wrap
16038msgid "gpg --export rms@@gnu.org | kbxutil --import-openpgp >> mykeyring.kbx\n"
16039msgstr ""
16040
16041#. type: table
32747aa9 16042#: doc/guix.texi:9067
544cab3d
LC
16043msgid "Likewise, you can fetch keys to a specific keybox file like this:"
16044msgstr ""
16045
16046#. type: example
32747aa9 16047#: doc/guix.texi:9071
544cab3d
LC
16048#, no-wrap
16049msgid ""
16050"gpg --no-default-keyring --keyring mykeyring.kbx \\\n"
16051" --recv-keys @value{OPENPGP-SIGNING-KEY-ID}\n"
16052msgstr ""
16053
16054#. type: table
32747aa9 16055#: doc/guix.texi:9075
544cab3d
LC
16056msgid "@ref{GPG Configuration Options, @option{--keyring},, gnupg, Using the GNU Privacy Guard}, for more information on GPG's @option{--keyring} option."
16057msgstr ""
16058
16059#. type: table
32747aa9 16060#: doc/guix.texi:9079
544cab3d
LC
16061msgid "Handle missing OpenPGP keys according to @var{policy}, which may be one of:"
16062msgstr ""
16063
16064#. type: item
32747aa9 16065#: doc/guix.texi:9081 doc/guix.texi:16048
544cab3d
LC
16066#, no-wrap
16067msgid "always"
16068msgstr ""
16069
16070#. type: table
32747aa9 16071#: doc/guix.texi:9084
544cab3d
LC
16072msgid "Always download missing OpenPGP keys from the key server, and add them to the user's GnuPG keyring."
16073msgstr ""
16074
16075#. type: item
32747aa9 16076#: doc/guix.texi:9085 doc/guix.texi:16050
544cab3d
LC
16077#, no-wrap
16078msgid "never"
16079msgstr ""
16080
16081#. type: table
32747aa9 16082#: doc/guix.texi:9087
544cab3d
LC
16083msgid "Never try to download missing OpenPGP keys. Instead just bail out."
16084msgstr ""
16085
16086#. type: item
32747aa9 16087#: doc/guix.texi:9088
544cab3d
LC
16088#, no-wrap
16089msgid "interactive"
16090msgstr ""
16091
16092#. type: table
32747aa9 16093#: doc/guix.texi:9091
544cab3d
LC
16094msgid "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."
16095msgstr ""
16096
16097#. type: item
32747aa9 16098#: doc/guix.texi:9093
544cab3d
LC
16099#, no-wrap
16100msgid "--key-server=@var{host}"
16101msgstr ""
16102
16103#. type: table
32747aa9 16104#: doc/guix.texi:9095
544cab3d
LC
16105msgid "Use @var{host} as the OpenPGP key server when importing a public key."
16106msgstr ""
16107
16108#. type: Plain text
32747aa9 16109#: doc/guix.texi:9108
544cab3d
LC
16110msgid "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 @code{GUIX_GITHUB_TOKEN} to a token procured from @uref{https://github.com/settings/tokens} or otherwise."
16111msgstr ""
16112
16113#. type: section
32747aa9 16114#: doc/guix.texi:9111
544cab3d
LC
16115#, no-wrap
16116msgid "Invoking @command{guix lint}"
16117msgstr ""
16118
16119#. type: command{#1}
32747aa9 16120#: doc/guix.texi:9113
544cab3d
LC
16121#, no-wrap
16122msgid "guix lint"
16123msgstr ""
16124
16125#. type: cindex
32747aa9 16126#: doc/guix.texi:9114
544cab3d
LC
16127#, no-wrap
16128msgid "package, checking for errors"
16129msgstr ""
16130
16131#. type: Plain text
32747aa9 16132#: doc/guix.texi:9120
544cab3d
LC
16133msgid "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 @code{--list-checkers} for a complete list):"
16134msgstr ""
16135
16136#. type: table
32747aa9 16137#: doc/guix.texi:9126
544cab3d
LC
16138msgid "Validate certain typographical and stylistic rules about package descriptions and synopses."
16139msgstr ""
16140
16141#. type: item
32747aa9 16142#: doc/guix.texi:9127
544cab3d
LC
16143#, no-wrap
16144msgid "inputs-should-be-native"
16145msgstr ""
16146
16147#. type: table
32747aa9 16148#: doc/guix.texi:9129
544cab3d
LC
16149msgid "Identify inputs that should most likely be native inputs."
16150msgstr ""
16151
16152#. type: itemx
32747aa9 16153#: doc/guix.texi:9132
544cab3d
LC
16154#, no-wrap
16155msgid "mirror-url"
16156msgstr ""
16157
16158#. type: itemx
32747aa9 16159#: doc/guix.texi:9133
544cab3d
LC
16160#, no-wrap
16161msgid "github-url"
16162msgstr ""
16163
16164#. type: itemx
32747aa9 16165#: doc/guix.texi:9134
544cab3d
LC
16166#, no-wrap
16167msgid "source-file-name"
16168msgstr ""
16169
16170#. type: table
32747aa9 16171#: doc/guix.texi:9141
544cab3d
LC
16172msgid "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})."
16173msgstr ""
16174
16175#. type: item
32747aa9 16176#: doc/guix.texi:9142
544cab3d
LC
16177#, no-wrap
16178msgid "source-unstable-tarball"
16179msgstr ""
16180
16181#. type: table
32747aa9 16182#: doc/guix.texi:9146
544cab3d
LC
16183msgid "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."
16184msgstr ""
16185
16186#. type: item
32747aa9 16187#: doc/guix.texi:9147
544cab3d
LC
16188#, no-wrap
16189msgid "cve"
16190msgstr ""
16191
16192#. type: cindex
32747aa9 16193#: doc/guix.texi:9148 doc/guix.texi:25526
544cab3d
LC
16194#, no-wrap
16195msgid "security vulnerabilities"
16196msgstr ""
16197
16198#. type: cindex
32747aa9 16199#: doc/guix.texi:9149
544cab3d
LC
16200#, no-wrap
16201msgid "CVE, Common Vulnerabilities and Exposures"
16202msgstr ""
16203
16204#. type: table
32747aa9 16205#: doc/guix.texi:9154
544cab3d
LC
16206msgid "Report known vulnerabilities found in the Common Vulnerabilities and Exposures (CVE) databases of the current and past year @uref{https://nvd.nist.gov/download.cfm#CVE_FEED, published by the US NIST}."
16207msgstr ""
16208
16209#. type: table
32747aa9 16210#: doc/guix.texi:9156
544cab3d
LC
16211msgid "To view information about a particular vulnerability, visit pages such as:"
16212msgstr ""
16213
16214#. type: indicateurl{#1}
32747aa9 16215#: doc/guix.texi:9160
544cab3d
LC
16216msgid "https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-YYYY-ABCD"
16217msgstr ""
16218
16219#. type: indicateurl{#1}
32747aa9 16220#: doc/guix.texi:9162
544cab3d
LC
16221msgid "https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-YYYY-ABCD"
16222msgstr ""
16223
16224#. type: table
32747aa9 16225#: doc/guix.texi:9167
544cab3d
LC
16226msgid "where @code{CVE-YYYY-ABCD} is the CVE identifier---e.g., @code{CVE-2015-7554}."
16227msgstr ""
16228
16229#. type: table
32747aa9 16230#: doc/guix.texi:9172
544cab3d
LC
16231msgid "Package developers can specify in package recipes the @uref{https://nvd.nist.gov/cpe.cfm,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:"
16232msgstr ""
16233
16234#. type: example
32747aa9 16235#: doc/guix.texi:9180
544cab3d
LC
16236#, no-wrap
16237msgid ""
16238"(package\n"
16239" (name \"grub\")\n"
16240" ;; @dots{}\n"
16241" ;; CPE calls this package \"grub2\".\n"
16242" (properties '((cpe-name . \"grub2\")\n"
16243" (cpe-version . \"2.3\")))\n"
16244msgstr ""
16245
16246#. type: table
32747aa9 16247#: doc/guix.texi:9187
544cab3d
LC
16248msgid "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:"
16249msgstr ""
16250
16251#. type: example
32747aa9 16252#: doc/guix.texi:9197
544cab3d
LC
16253#, no-wrap
16254msgid ""
16255"(package\n"
16256" (name \"t1lib\")\n"
16257" ;; @dots{}\n"
16258" ;; These CVEs no longer apply and can be safely ignored.\n"
16259" (properties `((lint-hidden-cve . (\"CVE-2011-0433\"\n"
16260" \"CVE-2011-1553\"\n"
16261" \"CVE-2011-1554\"\n"
16262" \"CVE-2011-5244\")))))\n"
16263msgstr ""
16264
16265#. type: item
32747aa9 16266#: doc/guix.texi:9199
544cab3d
LC
16267#, no-wrap
16268msgid "formatting"
16269msgstr ""
16270
16271#. type: table
32747aa9 16272#: doc/guix.texi:9202
544cab3d
LC
16273msgid "Warn about obvious source code formatting issues: trailing white space, use of tabulations, etc."
16274msgstr ""
16275
16276#. type: example
32747aa9 16277#: doc/guix.texi:9208
544cab3d
LC
16278#, no-wrap
16279msgid "guix lint @var{options} @var{package}@dots{}\n"
16280msgstr ""
16281
16282#. type: Plain text
32747aa9 16283#: doc/guix.texi:9212
544cab3d
LC
16284msgid "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:"
16285msgstr ""
16286
16287#. type: item
32747aa9 16288#: doc/guix.texi:9214
544cab3d
LC
16289#, no-wrap
16290msgid "--list-checkers"
16291msgstr ""
16292
16293#. type: table
32747aa9 16294#: doc/guix.texi:9218
544cab3d
LC
16295msgid "List and describe all the available checkers that will be run on packages and exit."
16296msgstr ""
16297
16298#. type: item
32747aa9 16299#: doc/guix.texi:9219
544cab3d
LC
16300#, no-wrap
16301msgid "--checkers"
16302msgstr ""
16303
16304#. type: itemx
32747aa9 16305#: doc/guix.texi:9220
544cab3d
LC
16306#, no-wrap
16307msgid "-c"
16308msgstr ""
16309
16310#. type: table
32747aa9 16311#: doc/guix.texi:9223
544cab3d
LC
16312msgid "Only enable the checkers specified in a comma-separated list using the names returned by @code{--list-checkers}."
16313msgstr ""
16314
16315#. type: section
32747aa9 16316#: doc/guix.texi:9227
544cab3d
LC
16317#, no-wrap
16318msgid "Invoking @command{guix size}"
16319msgstr ""
16320
16321#. type: cindex
32747aa9 16322#: doc/guix.texi:9229
544cab3d
LC
16323#, no-wrap
16324msgid "size"
16325msgstr ""
16326
16327#. type: cindex
32747aa9 16328#: doc/guix.texi:9230
544cab3d
LC
16329#, no-wrap
16330msgid "package size"
16331msgstr ""
16332
16333#. type: command{#1}
32747aa9 16334#: doc/guix.texi:9232
544cab3d
LC
16335#, no-wrap
16336msgid "guix size"
16337msgstr ""
16338
16339#. type: Plain text
32747aa9 16340#: doc/guix.texi:9239
544cab3d
LC
16341msgid "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."
16342msgstr ""
16343
16344#. type: Plain text
32747aa9 16345#: doc/guix.texi:9244
544cab3d
LC
16346msgid "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:"
16347msgstr ""
16348
16349#. type: example
32747aa9 16350#: doc/guix.texi:9257
544cab3d
LC
16351#, no-wrap
16352msgid ""
16353"$ guix size coreutils\n"
16354"store item total self\n"
16355"/gnu/store/@dots{}-gcc-5.5.0-lib 60.4 30.1 38.1%\n"
16356"/gnu/store/@dots{}-glibc-2.27 30.3 28.8 36.6%\n"
16357"/gnu/store/@dots{}-coreutils-8.28 78.9 15.0 19.0%\n"
16358"/gnu/store/@dots{}-gmp-6.1.2 63.1 2.7 3.4%\n"
16359"/gnu/store/@dots{}-bash-static-4.4.12 1.5 1.5 1.9%\n"
16360"/gnu/store/@dots{}-acl-2.2.52 61.1 0.4 0.5%\n"
16361"/gnu/store/@dots{}-attr-2.4.47 60.6 0.2 0.3%\n"
16362"/gnu/store/@dots{}-libcap-2.25 60.5 0.2 0.2%\n"
16363"total: 78.9 MiB\n"
16364msgstr ""
16365
16366#. type: Plain text
32747aa9 16367#: doc/guix.texi:9263
544cab3d
LC
16368msgid "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:"
16369msgstr ""
16370
16371#. type: example
32747aa9 16372#: doc/guix.texi:9266
544cab3d
LC
16373#, no-wrap
16374msgid "$ guix gc -R /gnu/store/@dots{}-coreutils-8.23\n"
16375msgstr ""
16376
16377#. type: Plain text
32747aa9 16378#: doc/guix.texi:9274
544cab3d
LC
16379msgid "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."
16380msgstr ""
16381
16382#. type: Plain text
32747aa9 16383#: doc/guix.texi:9280
544cab3d
LC
16384msgid "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.)"
16385msgstr ""
16386
16387#. type: Plain text
32747aa9 16388#: doc/guix.texi:9289
544cab3d
LC
16389msgid "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})."
16390msgstr ""
16391
16392#. type: Plain text
32747aa9 16393#: doc/guix.texi:9294
544cab3d
LC
16394msgid "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."
16395msgstr ""
16396
16397#. type: Plain text
32747aa9 16398#: doc/guix.texi:9296
544cab3d
LC
16399msgid "You can also specify several package names:"
16400msgstr ""
16401
16402#. type: example
32747aa9 16403#: doc/guix.texi:9306
544cab3d
LC
16404#, no-wrap
16405msgid ""
16406"$ guix size coreutils grep sed bash\n"
16407"store item total self\n"
16408"/gnu/store/@dots{}-coreutils-8.24 77.8 13.8 13.4%\n"
16409"/gnu/store/@dots{}-grep-2.22 73.1 0.8 0.8%\n"
16410"/gnu/store/@dots{}-bash-4.3.42 72.3 4.7 4.6%\n"
16411"/gnu/store/@dots{}-readline-6.3 67.6 1.2 1.2%\n"
16412"@dots{}\n"
16413"total: 102.3 MiB\n"
16414msgstr ""
16415
16416#. type: Plain text
32747aa9 16417#: doc/guix.texi:9312
544cab3d
LC
16418msgid "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."
16419msgstr ""
16420
16421#. type: Plain text
32747aa9 16422#: doc/guix.texi:9314
544cab3d
LC
16423msgid "The available options are:"
16424msgstr ""
16425
16426#. type: table
32747aa9 16427#: doc/guix.texi:9320
544cab3d
LC
16428msgid "Use substitute information from @var{urls}. @xref{client-substitute-urls, the same option for @code{guix build}}."
16429msgstr ""
16430
16431#. type: item
32747aa9 16432#: doc/guix.texi:9321
544cab3d
LC
16433#, no-wrap
16434msgid "--sort=@var{key}"
16435msgstr ""
16436
16437#. type: table
32747aa9 16438#: doc/guix.texi:9323
544cab3d
LC
16439msgid "Sort lines according to @var{key}, one of the following options:"
16440msgstr ""
16441
16442#. type: item
32747aa9 16443#: doc/guix.texi:9325
544cab3d
LC
16444#, no-wrap
16445msgid "self"
16446msgstr ""
16447
16448#. type: table
32747aa9 16449#: doc/guix.texi:9327
544cab3d
LC
16450msgid "the size of each item (the default);"
16451msgstr ""
16452
16453#. type: table
32747aa9 16454#: doc/guix.texi:9329
544cab3d
LC
16455msgid "the total size of the item's closure."
16456msgstr ""
16457
16458#. type: item
32747aa9 16459#: doc/guix.texi:9331
544cab3d
LC
16460#, no-wrap
16461msgid "--map-file=@var{file}"
16462msgstr ""
16463
16464#. type: table
32747aa9 16465#: doc/guix.texi:9333
544cab3d
LC
16466msgid "Write a graphical map of disk usage in PNG format to @var{file}."
16467msgstr ""
16468
16469#. type: table
32747aa9 16470#: doc/guix.texi:9335
544cab3d
LC
16471msgid "For the example above, the map looks like this:"
16472msgstr ""
16473
16474#. type: table
32747aa9 16475#: doc/guix.texi:9338
544cab3d
LC
16476msgid "@image{images/coreutils-size-map,5in,, map of Coreutils disk usage produced by @command{guix size}}"
16477msgstr ""
16478
16479#. type: table
32747aa9
LC
16480#: doc/guix.texi:9343
16481msgid "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."
544cab3d
LC
16482msgstr ""
16483
16484#. type: table
32747aa9 16485#: doc/guix.texi:9347
544cab3d
LC
16486msgid "Consider packages for @var{system}---e.g., @code{x86_64-linux}."
16487msgstr ""
16488
16489#. type: section
32747aa9 16490#: doc/guix.texi:9351
544cab3d
LC
16491#, no-wrap
16492msgid "Invoking @command{guix graph}"
16493msgstr ""
16494
16495#. type: cindex
32747aa9 16496#: doc/guix.texi:9353
544cab3d
LC
16497#, no-wrap
16498msgid "DAG"
16499msgstr ""
16500
16501#. type: command{#1}
32747aa9 16502#: doc/guix.texi:9354
544cab3d
LC
16503#, no-wrap
16504msgid "guix graph"
16505msgstr ""
16506
16507#. type: Plain text
32747aa9
LC
16508#: doc/guix.texi:9368
16509msgid "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. The general syntax is:"
544cab3d
LC
16510msgstr ""
16511
16512#. type: example
32747aa9 16513#: doc/guix.texi:9371
544cab3d
LC
16514#, no-wrap
16515msgid "guix graph @var{options} @var{package}@dots{}\n"
16516msgstr ""
16517
16518#. type: Plain text
32747aa9 16519#: doc/guix.texi:9376
544cab3d
LC
16520msgid "For example, the following command generates a PDF file representing the package DAG for the GNU@tie{}Core Utilities, showing its build-time dependencies:"
16521msgstr ""
16522
16523#. type: example
32747aa9 16524#: doc/guix.texi:9379
544cab3d
LC
16525#, no-wrap
16526msgid "guix graph coreutils | dot -Tpdf > dag.pdf\n"
16527msgstr ""
16528
16529#. type: Plain text
32747aa9 16530#: doc/guix.texi:9382
544cab3d
LC
16531msgid "The output looks like this:"
16532msgstr ""
16533
16534#. type: Plain text
32747aa9 16535#: doc/guix.texi:9384
544cab3d
LC
16536msgid "@image{images/coreutils-graph,2in,,Dependency graph of the GNU Coreutils}"
16537msgstr ""
16538
16539#. type: Plain text
32747aa9 16540#: doc/guix.texi:9386
544cab3d
LC
16541msgid "Nice little graph, no?"
16542msgstr ""
16543
16544#. type: Plain text
32747aa9 16545#: doc/guix.texi:9392
544cab3d
LC
16546msgid "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:"
16547msgstr ""
16548
16549#. type: table
32747aa9 16550#: doc/guix.texi:9398
544cab3d
LC
16551msgid "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."
16552msgstr ""
16553
16554#. type: item
32747aa9 16555#: doc/guix.texi:9399
544cab3d
LC
16556#, no-wrap
16557msgid "reverse-package"
16558msgstr ""
16559
16560#. type: table
32747aa9 16561#: doc/guix.texi:9401
544cab3d
LC
16562msgid "This shows the @emph{reverse} DAG of packages. For example:"
16563msgstr ""
16564
16565#. type: example
32747aa9 16566#: doc/guix.texi:9404
544cab3d
LC
16567#, no-wrap
16568msgid "guix graph --type=reverse-package ocaml\n"
16569msgstr ""
16570
16571#. type: table
32747aa9 16572#: doc/guix.texi:9409
544cab3d
LC
16573msgid "...@: 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.)"
16574msgstr ""
16575
16576#. type: table
32747aa9 16577#: doc/guix.texi:9414
544cab3d
LC
16578msgid "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}})."
16579msgstr ""
16580
16581#. type: item
32747aa9 16582#: doc/guix.texi:9415
544cab3d
LC
16583#, no-wrap
16584msgid "bag-emerged"
16585msgstr ""
16586
16587#. type: table
32747aa9 16588#: doc/guix.texi:9417
544cab3d
LC
16589msgid "This is the package DAG, @emph{including} implicit inputs."
16590msgstr ""
16591
16592#. type: table
32747aa9 16593#: doc/guix.texi:9419
544cab3d
LC
16594msgid "For instance, the following command:"
16595msgstr ""
16596
16597#. type: example
32747aa9 16598#: doc/guix.texi:9422
544cab3d
LC
16599#, no-wrap
16600msgid "guix graph --type=bag-emerged coreutils | dot -Tpdf > dag.pdf\n"
16601msgstr ""
16602
16603#. type: table
32747aa9 16604#: doc/guix.texi:9425
544cab3d
LC
16605msgid "...@: yields this bigger graph:"
16606msgstr ""
16607
16608#. type: table
32747aa9 16609#: doc/guix.texi:9427
544cab3d
LC
16610msgid "@image{images/coreutils-bag-graph,,5in,Detailed dependency graph of the GNU Coreutils}"
16611msgstr ""
16612
16613#. type: table
32747aa9 16614#: doc/guix.texi:9430
544cab3d
LC
16615msgid "At the bottom of the graph, we see all the implicit inputs of @var{gnu-build-system} (@pxref{Build Systems, @code{gnu-build-system}})."
16616msgstr ""
16617
16618#. type: table
32747aa9 16619#: doc/guix.texi:9434
544cab3d
LC
16620msgid "Now, note that the dependencies of these implicit inputs---that is, the @dfn{bootstrap dependencies} (@pxref{Bootstrapping})---are not shown here, for conciseness."
16621msgstr ""
16622
16623#. type: item
32747aa9 16624#: doc/guix.texi:9435
544cab3d
LC
16625#, no-wrap
16626msgid "bag"
16627msgstr ""
16628
16629#. type: table
32747aa9 16630#: doc/guix.texi:9438
544cab3d
LC
16631msgid "Similar to @code{bag-emerged}, but this time including all the bootstrap dependencies."
16632msgstr ""
16633
16634#. type: item
32747aa9 16635#: doc/guix.texi:9439
544cab3d
LC
16636#, no-wrap
16637msgid "bag-with-origins"
16638msgstr ""
16639
16640#. type: table
32747aa9 16641#: doc/guix.texi:9441
544cab3d
LC
16642msgid "Similar to @code{bag}, but also showing origins and their dependencies."
16643msgstr ""
16644
16645#. type: item
32747aa9 16646#: doc/guix.texi:9442
544cab3d
LC
16647#, no-wrap
16648msgid "reverse-bag"
16649msgstr ""
16650
16651#. type: table
32747aa9 16652#: doc/guix.texi:9445
544cab3d
LC
16653msgid "This shows the @emph{reverse} DAG of packages. Unlike @code{reverse-package}, it also takes implicit dependencies into account. For example:"
16654msgstr ""
16655
16656#. type: example
32747aa9 16657#: doc/guix.texi:9448
544cab3d
LC
16658#, no-wrap
16659msgid "guix graph -t reverse-bag dune\n"
16660msgstr ""
16661
16662#. type: table
32747aa9 16663#: doc/guix.texi:9455
544cab3d
LC
16664msgid "...@: 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."
16665msgstr ""
16666
16667#. type: table
32747aa9 16668#: doc/guix.texi:9461
544cab3d
LC
16669msgid "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."
16670msgstr ""
16671
16672#. type: table
32747aa9 16673#: doc/guix.texi:9464
544cab3d
LC
16674msgid "For this type of graph, it is also possible to pass a @file{.drv} file name instead of a package name, as in:"
16675msgstr ""
16676
16677#. type: example
32747aa9 16678#: doc/guix.texi:9467
544cab3d
LC
16679#, no-wrap
16680msgid "guix graph -t derivation `guix system build -d my-config.scm`\n"
16681msgstr ""
16682
16683#. type: item
32747aa9 16684#: doc/guix.texi:9469
544cab3d
LC
16685#, no-wrap
16686msgid "module"
16687msgstr ""
16688
16689#. type: table
32747aa9 16690#: doc/guix.texi:9473
544cab3d
LC
16691msgid "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:"
16692msgstr ""
16693
16694#. type: example
32747aa9 16695#: doc/guix.texi:9476
544cab3d
LC
16696#, no-wrap
16697msgid "guix graph -t module guile | dot -Tpdf > module-graph.pdf\n"
16698msgstr ""
16699
16700#. type: Plain text
32747aa9 16701#: doc/guix.texi:9481
544cab3d
LC
16702msgid "All the types above correspond to @emph{build-time dependencies}. The following graph type represents the @emph{run-time dependencies}:"
16703msgstr ""
16704
16705#. type: table
32747aa9 16706#: doc/guix.texi:9486
544cab3d
LC
16707msgid "This is the graph of @dfn{references} of a package output, as returned by @command{guix gc --references} (@pxref{Invoking guix gc})."
16708msgstr ""
16709
16710#. type: table
32747aa9 16711#: doc/guix.texi:9489
544cab3d
LC
16712msgid "If the given package output is not available in the store, @command{guix graph} attempts to obtain dependency information from substitutes."
16713msgstr ""
16714
16715#. type: table
32747aa9 16716#: doc/guix.texi:9493
544cab3d
LC
16717msgid "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!):"
16718msgstr ""
16719
16720#. type: example
32747aa9 16721#: doc/guix.texi:9496
544cab3d
LC
16722#, no-wrap
16723msgid "guix graph -t references `readlink -f ~/.guix-profile`\n"
16724msgstr ""
16725
16726#. type: item
32747aa9 16727#: doc/guix.texi:9498
544cab3d
LC
16728#, no-wrap
16729msgid "referrers"
16730msgstr ""
16731
16732#. type: table
32747aa9 16733#: doc/guix.texi:9501
544cab3d
LC
16734msgid "This is the graph of the @dfn{referrers} of a store item, as returned by @command{guix gc --referrers} (@pxref{Invoking guix gc})."
16735msgstr ""
16736
16737#. type: table
32747aa9 16738#: doc/guix.texi:9507
544cab3d
LC
16739msgid "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."
16740msgstr ""
16741
16742#. type: table
32747aa9 16743#: doc/guix.texi:9510
544cab3d
LC
16744msgid "It can help determine what is preventing a store item from being garbage collected."
16745msgstr ""
16746
16747#. type: Plain text
32747aa9 16748#: doc/guix.texi:9514
544cab3d
LC
16749msgid "The available options are the following:"
16750msgstr ""
16751
16752#. type: table
32747aa9 16753#: doc/guix.texi:9520
544cab3d
LC
16754msgid "Produce a graph output of @var{type}, where @var{type} must be one of the values listed above."
16755msgstr ""
16756
16757#. type: item
32747aa9 16758#: doc/guix.texi:9521
544cab3d
LC
16759#, no-wrap
16760msgid "--list-types"
16761msgstr ""
16762
16763#. type: table
32747aa9 16764#: doc/guix.texi:9523
544cab3d
LC
16765msgid "List the supported graph types."
16766msgstr ""
16767
16768#. type: item
32747aa9 16769#: doc/guix.texi:9524
544cab3d
LC
16770#, no-wrap
16771msgid "--backend=@var{backend}"
16772msgstr ""
16773
16774#. type: itemx
32747aa9 16775#: doc/guix.texi:9525
544cab3d
LC
16776#, no-wrap
16777msgid "-b @var{backend}"
16778msgstr ""
16779
16780#. type: table
32747aa9 16781#: doc/guix.texi:9527
544cab3d
LC
16782msgid "Produce a graph using the selected @var{backend}."
16783msgstr ""
16784
16785#. type: item
32747aa9 16786#: doc/guix.texi:9528
544cab3d
LC
16787#, no-wrap
16788msgid "--list-backends"
16789msgstr ""
16790
16791#. type: table
32747aa9 16792#: doc/guix.texi:9530
544cab3d
LC
16793msgid "List the supported graph backends."
16794msgstr ""
16795
16796#. type: table
32747aa9 16797#: doc/guix.texi:9532
544cab3d
LC
16798msgid "Currently, the available backends are Graphviz and d3.js."
16799msgstr ""
16800
16801#. type: example
32747aa9 16802#: doc/guix.texi:9541
544cab3d
LC
16803#, no-wrap
16804msgid "guix graph -e '(@@@@ (gnu packages commencement) gnu-make-final)'\n"
16805msgstr ""
16806
16807#. type: table
32747aa9 16808#: doc/guix.texi:9546
544cab3d
LC
16809msgid "Display the graph for @var{system}---e.g., @code{i686-linux}."
16810msgstr ""
16811
16812#. type: table
32747aa9 16813#: doc/guix.texi:9549
544cab3d
LC
16814msgid "The package dependency graph is largely architecture-independent, but there are some architecture-dependent bits that this option allows you to visualize."
16815msgstr ""
16816
16817#. type: section
32747aa9 16818#: doc/guix.texi:9554
544cab3d
LC
16819#, no-wrap
16820msgid "Invoking @command{guix publish}"
16821msgstr ""
16822
16823#. type: command{#1}
32747aa9 16824#: doc/guix.texi:9556
544cab3d
LC
16825#, no-wrap
16826msgid "guix publish"
16827msgstr ""
16828
16829#. type: Plain text
32747aa9 16830#: doc/guix.texi:9560
544cab3d
LC
16831msgid "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})."
16832msgstr ""
16833
16834#. type: Plain text
32747aa9 16835#: doc/guix.texi:9566
544cab3d
LC
16836msgid "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 Hydra, the software behind the @code{@value{SUBSTITUTE-SERVER}} build farm."
16837msgstr ""
16838
16839#. type: Plain text
32747aa9 16840#: doc/guix.texi:9572
544cab3d
LC
16841msgid "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 @code{--user} option makes it drop root privileges early on."
16842msgstr ""
16843
16844#. type: Plain text
32747aa9 16845#: doc/guix.texi:9576
544cab3d
LC
16846msgid "The signing key pair must be generated before @command{guix publish} is launched, using @command{guix archive --generate-key} (@pxref{Invoking guix archive})."
16847msgstr ""
16848
16849#. type: example
32747aa9 16850#: doc/guix.texi:9581
544cab3d
LC
16851#, no-wrap
16852msgid "guix publish @var{options}@dots{}\n"
16853msgstr ""
16854
16855#. type: Plain text
32747aa9 16856#: doc/guix.texi:9585
544cab3d
LC
16857msgid "Running @command{guix publish} without any additional arguments will spawn an HTTP server on port 8080:"
16858msgstr ""
16859
16860#. type: example
32747aa9 16861#: doc/guix.texi:9588
544cab3d
LC
16862#, no-wrap
16863msgid "guix publish\n"
16864msgstr ""
16865
16866#. type: Plain text
32747aa9 16867#: doc/guix.texi:9592
544cab3d
LC
16868msgid "Once a publishing server has been authorized (@pxref{Invoking guix archive}), the daemon may download substitutes from it:"
16869msgstr ""
16870
16871#. type: example
32747aa9 16872#: doc/guix.texi:9595
544cab3d
LC
16873#, no-wrap
16874msgid "guix-daemon --substitute-urls=http://example.org:8080\n"
16875msgstr ""
16876
16877#. type: Plain text
32747aa9 16878#: doc/guix.texi:9604
544cab3d
LC
16879msgid "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})."
16880msgstr ""
16881
16882#. type: Plain text
32747aa9 16883#: doc/guix.texi:9611
544cab3d
LC
16884msgid "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}):"
16885msgstr ""
16886
16887#. type: example
32747aa9 16888#: doc/guix.texi:9614
544cab3d
LC
16889#, no-wrap
16890msgid "http://example.org/file/hello-2.10.tar.gz/sha256/0ssi1@dots{}ndq1i\n"
16891msgstr ""
16892
16893#. type: Plain text
32747aa9 16894#: doc/guix.texi:9618
544cab3d
LC
16895msgid "Obviously, these URLs only work for files that are in the store; in other cases, they return 404 (``Not Found'')."
16896msgstr ""
16897
16898#. type: cindex
32747aa9 16899#: doc/guix.texi:9619
544cab3d
LC
16900#, no-wrap
16901msgid "build logs, publication"
16902msgstr ""
16903
16904#. type: Plain text
32747aa9 16905#: doc/guix.texi:9621
544cab3d
LC
16906msgid "Build logs are available from @code{/log} URLs like:"
16907msgstr ""
16908
16909#. type: example
32747aa9 16910#: doc/guix.texi:9624
544cab3d
LC
16911#, no-wrap
16912msgid "http://example.org/log/gwspk@dots{}-guile-2.2.3\n"
16913msgstr ""
16914
16915#. type: Plain text
32747aa9 16916#: doc/guix.texi:9634
544cab3d
LC
16917msgid "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 @code{--log-compression=gzip} since Web browsers can automatically decompress it, which is not the case with bzip2 compression."
16918msgstr ""
16919
16920#. type: item
32747aa9 16921#: doc/guix.texi:9638
544cab3d
LC
16922#, no-wrap
16923msgid "--port=@var{port}"
16924msgstr ""
16925
16926#. type: itemx
32747aa9 16927#: doc/guix.texi:9639
544cab3d
LC
16928#, no-wrap
16929msgid "-p @var{port}"
16930msgstr ""
16931
16932#. type: table
32747aa9 16933#: doc/guix.texi:9641
544cab3d
LC
16934msgid "Listen for HTTP requests on @var{port}."
16935msgstr ""
16936
16937#. type: item
32747aa9 16938#: doc/guix.texi:9642 doc/guix.texi:20713
544cab3d
LC
16939#, no-wrap
16940msgid "--listen=@var{host}"
16941msgstr ""
16942
16943#. type: table
32747aa9 16944#: doc/guix.texi:9645
544cab3d
LC
16945msgid "Listen on the network interface for @var{host}. The default is to accept connections from any interface."
16946msgstr ""
16947
16948#. type: table
32747aa9 16949#: doc/guix.texi:9650
544cab3d
LC
16950msgid "Change privileges to @var{user} as soon as possible---i.e., once the server socket is open and the signing key has been read."
16951msgstr ""
16952
16953#. type: item
32747aa9 16954#: doc/guix.texi:9651
544cab3d
LC
16955#, no-wrap
16956msgid "--compression[=@var{level}]"
16957msgstr ""
16958
16959#. type: itemx
32747aa9 16960#: doc/guix.texi:9652
544cab3d
LC
16961#, no-wrap
16962msgid "-C [@var{level}]"
16963msgstr ""
16964
16965#. type: table
32747aa9 16966#: doc/guix.texi:9657
544cab3d
LC
16967msgid "Compress data using the given @var{level}. When @var{level} is zero, disable compression. The range 1 to 9 corresponds to different gzip compression levels: 1 is the fastest, and 9 is the best (CPU-intensive). The default is 3."
16968msgstr ""
16969
16970#. type: table
32747aa9 16971#: doc/guix.texi:9666
544cab3d
LC
16972msgid "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."
16973msgstr ""
16974
16975#. type: item
32747aa9 16976#: doc/guix.texi:9667
544cab3d
LC
16977#, no-wrap
16978msgid "--cache=@var{directory}"
16979msgstr ""
16980
16981#. type: itemx
32747aa9 16982#: doc/guix.texi:9668
544cab3d
LC
16983#, no-wrap
16984msgid "-c @var{directory}"
16985msgstr ""
16986
16987#. type: table
32747aa9 16988#: doc/guix.texi:9671
544cab3d
LC
16989msgid "Cache archives and meta-data (@code{.narinfo} URLs) to @var{directory} and only serve archives that are in cache."
16990msgstr ""
16991
16992#. type: table
32747aa9 16993#: doc/guix.texi:9679
544cab3d
LC
16994msgid "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."
16995msgstr ""
16996
16997#. type: table
32747aa9 16998#: doc/guix.texi:9687
544cab3d
LC
16999msgid "Conversely, when @option{--cache} is used, the first request for a store item (@i{via} a @code{.narinfo} URL) returns 404 and 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."
17000msgstr ""
17001
17002#. type: table
32747aa9 17003#: doc/guix.texi:9691
544cab3d
LC
17004msgid "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."
17005msgstr ""
17006
17007#. type: table
32747aa9 17008#: doc/guix.texi:9694
544cab3d
LC
17009msgid "When @option{--ttl} is used, cached entries are automatically deleted when they have expired."
17010msgstr ""
17011
17012#. type: item
32747aa9 17013#: doc/guix.texi:9695
544cab3d
LC
17014#, no-wrap
17015msgid "--workers=@var{N}"
17016msgstr ""
17017
17018#. type: table
32747aa9 17019#: doc/guix.texi:9698
544cab3d
LC
17020msgid "When @option{--cache} is used, request the allocation of @var{N} worker threads to ``bake'' archives."
17021msgstr ""
17022
17023#. type: item
32747aa9 17024#: doc/guix.texi:9699
544cab3d
LC
17025#, no-wrap
17026msgid "--ttl=@var{ttl}"
17027msgstr ""
17028
17029#. type: table
32747aa9 17030#: doc/guix.texi:9703
544cab3d
LC
17031msgid "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."
17032msgstr ""
17033
17034#. type: table
32747aa9 17035#: doc/guix.texi:9708
544cab3d
LC
17036msgid "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}."
17037msgstr ""
17038
17039#. type: table
32747aa9 17040#: doc/guix.texi:9712
544cab3d
LC
17041msgid "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."
17042msgstr ""
17043
17044#. type: item
32747aa9 17045#: doc/guix.texi:9713
544cab3d
LC
17046#, no-wrap
17047msgid "--nar-path=@var{path}"
17048msgstr ""
17049
17050#. type: table
32747aa9 17051#: doc/guix.texi:9716
544cab3d
LC
17052msgid "Use @var{path} as the prefix for the URLs of ``nar'' files (@pxref{Invoking guix archive, normalized archives})."
17053msgstr ""
17054
17055#. type: table
32747aa9 17056#: doc/guix.texi:9720
544cab3d
LC
17057msgid "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}."
17058msgstr ""
17059
17060#. type: item
32747aa9 17061#: doc/guix.texi:9721
544cab3d
LC
17062#, no-wrap
17063msgid "--public-key=@var{file}"
17064msgstr ""
17065
17066#. type: itemx
32747aa9 17067#: doc/guix.texi:9722
544cab3d
LC
17068#, no-wrap
17069msgid "--private-key=@var{file}"
17070msgstr ""
17071
17072#. type: table
32747aa9 17073#: doc/guix.texi:9725
544cab3d
LC
17074msgid "Use the specific @var{file}s as the public/private key pair used to sign the store items being published."
17075msgstr ""
17076
17077#. type: table
32747aa9 17078#: doc/guix.texi:9732
544cab3d
LC
17079msgid "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."
17080msgstr ""
17081
17082#. type: item
32747aa9 17083#: doc/guix.texi:9733
544cab3d
LC
17084#, no-wrap
17085msgid "--repl[=@var{port}]"
17086msgstr ""
17087
17088#. type: itemx
32747aa9 17089#: doc/guix.texi:9734
544cab3d
LC
17090#, no-wrap
17091msgid "-r [@var{port}]"
17092msgstr ""
17093
17094#. type: table
32747aa9 17095#: doc/guix.texi:9738
544cab3d
LC
17096msgid "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."
17097msgstr ""
17098
17099#. type: Plain text
32747aa9 17100#: doc/guix.texi:9744
544cab3d
LC
17101msgid "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}})."
17102msgstr ""
17103
17104#. type: Plain text
32747aa9 17105#: doc/guix.texi:9747
544cab3d
LC
17106msgid "If you are instead running Guix on a ``foreign distro'', follow these instructions:”"
17107msgstr ""
17108
17109#. type: itemize
32747aa9 17110#: doc/guix.texi:9751
544cab3d
LC
17111msgid "If your host distro uses the systemd init system:"
17112msgstr ""
17113
17114#. type: example
32747aa9 17115#: doc/guix.texi:9756
544cab3d
LC
17116#, no-wrap
17117msgid ""
17118"# ln -s ~root/.guix-profile/lib/systemd/system/guix-publish.service \\\n"
17119" /etc/systemd/system/\n"
17120"# systemctl start guix-publish && systemctl enable guix-publish\n"
17121msgstr ""
17122
17123#. type: example
32747aa9 17124#: doc/guix.texi:9764
544cab3d
LC
17125#, no-wrap
17126msgid ""
17127"# ln -s ~root/.guix-profile/lib/upstart/system/guix-publish.conf /etc/init/\n"
17128"# start guix-publish\n"
17129msgstr ""
17130
17131#. type: itemize
32747aa9 17132#: doc/guix.texi:9768
544cab3d
LC
17133msgid "Otherwise, proceed similarly with your distro's init system."
17134msgstr ""
17135
17136#. type: section
32747aa9 17137#: doc/guix.texi:9771
544cab3d
LC
17138#, no-wrap
17139msgid "Invoking @command{guix challenge}"
17140msgstr ""
17141
17142#. type: cindex
32747aa9 17143#: doc/guix.texi:9774
544cab3d
LC
17144#, no-wrap
17145msgid "verifiable builds"
17146msgstr ""
17147
17148#. type: command{#1}
32747aa9 17149#: doc/guix.texi:9775
544cab3d
LC
17150#, no-wrap
17151msgid "guix challenge"
17152msgstr ""
17153
17154#. type: cindex
32747aa9 17155#: doc/guix.texi:9776
544cab3d
LC
17156#, no-wrap
17157msgid "challenge"
17158msgstr ""
17159
17160#. type: Plain text
32747aa9 17161#: doc/guix.texi:9781
544cab3d
LC
17162msgid "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."
17163msgstr ""
17164
17165#. type: Plain text
32747aa9 17166#: doc/guix.texi:9789
544cab3d
LC
17167msgid "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."
17168msgstr ""
17169
17170#. type: Plain text
32747aa9 17171#: doc/guix.texi:9798
544cab3d
LC
17172msgid "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."
17173msgstr ""
17174
17175#. type: Plain text
32747aa9 17176#: doc/guix.texi:9800
544cab3d
LC
17177msgid "The command output looks like this:"
17178msgstr ""
17179
17180#. type: smallexample
32747aa9 17181#: doc/guix.texi:9817
544cab3d
LC
17182#, no-wrap
17183msgid ""
17184"$ guix challenge --substitute-urls=\"https://@value{SUBSTITUTE-SERVER} https://guix.example.org\"\n"
17185"updating list of substitutes from 'https://@value{SUBSTITUTE-SERVER}'... 100.0%\n"
17186"updating list of substitutes from 'https://guix.example.org'... 100.0%\n"
17187"/gnu/store/@dots{}-openssl-1.0.2d contents differ:\n"
17188" local hash: 0725l22r5jnzazaacncwsvp9kgf42266ayyp814v7djxs7nk963q\n"
17189" https://@value{SUBSTITUTE-SERVER}/nar/@dots{}-openssl-1.0.2d: 0725l22r5jnzazaacncwsvp9kgf42266ayyp814v7djxs7nk963q\n"
17190" https://guix.example.org/nar/@dots{}-openssl-1.0.2d: 1zy4fmaaqcnjrzzajkdn3f5gmjk754b43qkq47llbyak9z0qjyim\n"
17191"/gnu/store/@dots{}-git-2.5.0 contents differ:\n"
17192" local hash: 00p3bmryhjxrhpn2gxs2fy0a15lnip05l97205pgbk5ra395hyha\n"
17193" https://@value{SUBSTITUTE-SERVER}/nar/@dots{}-git-2.5.0: 069nb85bv4d4a6slrwjdy8v1cn4cwspm3kdbmyb81d6zckj3nq9f\n"
17194" https://guix.example.org/nar/@dots{}-git-2.5.0: 0mdqa9w1p6cmli6976v4wi0sw9r4p5prkj7lzfd1877wk11c9c73\n"
17195"/gnu/store/@dots{}-pius-2.1.1 contents differ:\n"
17196" local hash: 0k4v3m9z1zp8xzzizb7d8kjj72f9172xv078sq4wl73vnq9ig3ax\n"
17197" https://@value{SUBSTITUTE-SERVER}/nar/@dots{}-pius-2.1.1: 0k4v3m9z1zp8xzzizb7d8kjj72f9172xv078sq4wl73vnq9ig3ax\n"
17198" https://guix.example.org/nar/@dots{}-pius-2.1.1: 1cy25x1a4fzq5rk0pmvc8xhwyffnqz95h2bpvqsz2mpvlbccy0gs\n"
17199"\n"
17200msgstr ""
17201
17202#. type: smallexample
32747aa9 17203#: doc/guix.texi:9819
544cab3d
LC
17204#, no-wrap
17205msgid ""
17206"@dots{}\n"
17207"\n"
17208msgstr ""
17209
17210#. type: smallexample
32747aa9 17211#: doc/guix.texi:9824
544cab3d
LC
17212#, no-wrap
17213msgid ""
17214"6,406 store items were analyzed:\n"
17215" - 4,749 (74.1%) were identical\n"
17216" - 525 (8.2%) differed\n"
17217" - 1,132 (17.7%) were inconclusive\n"
17218msgstr ""
17219
17220#. type: Plain text
32747aa9 17221#: doc/guix.texi:9832
544cab3d
LC
17222msgid "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."
17223msgstr ""
17224
17225#. type: cindex
32747aa9 17226#: doc/guix.texi:9833
544cab3d
LC
17227#, no-wrap
17228msgid "non-determinism, in package builds"
17229msgstr ""
17230
17231#. type: Plain text
32747aa9 17232#: doc/guix.texi:9844
544cab3d
LC
17233msgid "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."
17234msgstr ""
17235
17236#. type: Plain text
32747aa9 17237#: doc/guix.texi:9847
544cab3d
LC
17238msgid "To find out what is wrong with this Git binary, we can do something along these lines (@pxref{Invoking guix archive}):"
17239msgstr ""
17240
17241#. type: example
32747aa9 17242#: doc/guix.texi:9852
544cab3d
LC
17243#, no-wrap
17244msgid ""
17245"$ wget -q -O - https://@value{SUBSTITUTE-SERVER}/nar/@dots{}-git-2.5.0 \\\n"
17246" | guix archive -x /tmp/git\n"
17247"$ diff -ur --no-dereference /gnu/store/@dots{}-git.2.5.0 /tmp/git\n"
17248msgstr ""
17249
17250#. type: Plain text
32747aa9 17251#: doc/guix.texi:9861
544cab3d
LC
17252msgid "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."
17253msgstr ""
17254
17255#. type: Plain text
32747aa9 17256#: doc/guix.texi:9869
544cab3d
LC
17257msgid "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."
17258msgstr ""
17259
17260#. type: Plain text
32747aa9 17261#: doc/guix.texi:9873
544cab3d
LC
17262msgid "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:"
17263msgstr ""
17264
17265#. type: example
32747aa9 17266#: doc/guix.texi:9876
544cab3d
LC
17267#, no-wrap
17268msgid "$ guix challenge @var{package}\n"
17269msgstr ""
17270
17271#. type: Plain text
32747aa9 17272#: doc/guix.texi:9881
544cab3d
LC
17273msgid "where @var{package} is a package specification such as @code{guile@@2.0} or @code{glibc:debug}."
17274msgstr ""
17275
17276#. type: example
32747aa9 17277#: doc/guix.texi:9886
544cab3d
LC
17278#, no-wrap
17279msgid "guix challenge @var{options} [@var{packages}@dots{}]\n"
17280msgstr ""
17281
17282#. type: Plain text
32747aa9 17283#: doc/guix.texi:9893
544cab3d
LC
17284msgid "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.)"
17285msgstr ""
17286
17287#. type: Plain text
32747aa9 17288#: doc/guix.texi:9895
544cab3d
LC
17289msgid "The one option that matters is:"
17290msgstr ""
17291
17292#. type: table
32747aa9 17293#: doc/guix.texi:9901
544cab3d
LC
17294msgid "Consider @var{urls} the whitespace-separated list of substitute source URLs to compare to."
17295msgstr ""
17296
17297#. type: itemx
32747aa9 17298#: doc/guix.texi:9903
544cab3d
LC
17299#, no-wrap
17300msgid "-v"
17301msgstr ""
17302
17303#. type: table
32747aa9 17304#: doc/guix.texi:9906
544cab3d
LC
17305msgid "Show details about matches (identical contents) in addition to information about mismatches."
17306msgstr ""
17307
17308#. type: section
32747aa9 17309#: doc/guix.texi:9910
544cab3d
LC
17310#, no-wrap
17311msgid "Invoking @command{guix copy}"
17312msgstr ""
17313
17314#. type: cindex
32747aa9 17315#: doc/guix.texi:9912
544cab3d
LC
17316#, no-wrap
17317msgid "copy, of store items, over SSH"
17318msgstr ""
17319
17320#. type: cindex
32747aa9 17321#: doc/guix.texi:9913
544cab3d
LC
17322#, no-wrap
17323msgid "SSH, copy of store items"
17324msgstr ""
17325
17326#. type: cindex
32747aa9 17327#: doc/guix.texi:9914
544cab3d
LC
17328#, no-wrap
17329msgid "sharing store items across machines"
17330msgstr ""
17331
17332#. type: cindex
32747aa9 17333#: doc/guix.texi:9915
544cab3d
LC
17334#, no-wrap
17335msgid "transferring store items across machines"
17336msgstr ""
17337
17338#. type: Plain text
32747aa9 17339#: doc/guix.texi:9922
544cab3d
LC
17340msgid "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}:"
17341msgstr ""
17342
17343#. type: example
32747aa9 17344#: doc/guix.texi:9926
544cab3d
LC
17345#, no-wrap
17346msgid ""
17347"guix copy --to=@var{user}@@@var{host} \\\n"
17348" coreutils `readlink -f ~/.guix-profile`\n"
17349msgstr ""
17350
17351#. type: Plain text
32747aa9 17352#: doc/guix.texi:9930
544cab3d
LC
17353msgid "If some of the items to be copied are already present on @var{host}, they are not actually sent."
17354msgstr ""
17355
17356#. type: Plain text
32747aa9 17357#: doc/guix.texi:9933
544cab3d
LC
17358msgid "The command below retrieves @code{libreoffice} and @code{gimp} from @var{host}, assuming they are available there:"
17359msgstr ""
17360
17361#. type: example
32747aa9 17362#: doc/guix.texi:9936
544cab3d
LC
17363#, no-wrap
17364msgid "guix copy --from=@var{host} libreoffice gimp\n"
17365msgstr ""
17366
17367#. type: Plain text
32747aa9 17368#: doc/guix.texi:9941
544cab3d
LC
17369msgid "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."
17370msgstr ""
17371
17372#. type: Plain text
32747aa9 17373#: doc/guix.texi:9947
544cab3d
LC
17374msgid "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."
17375msgstr ""
17376
17377#. type: example
32747aa9 17378#: doc/guix.texi:9952
544cab3d
LC
17379#, no-wrap
17380msgid "guix copy [--to=@var{spec}|--from=@var{spec}] @var{items}@dots{}\n"
17381msgstr ""
17382
17383#. type: Plain text
32747aa9 17384#: doc/guix.texi:9955
544cab3d
LC
17385msgid "You must always specify one of the following options:"
17386msgstr ""
17387
17388#. type: item
32747aa9 17389#: doc/guix.texi:9957
544cab3d
LC
17390#, no-wrap
17391msgid "--to=@var{spec}"
17392msgstr ""
17393
17394#. type: itemx
32747aa9 17395#: doc/guix.texi:9958
544cab3d
LC
17396#, no-wrap
17397msgid "--from=@var{spec}"
17398msgstr ""
17399
17400#. type: table
32747aa9 17401#: doc/guix.texi:9962
544cab3d
LC
17402msgid "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}."
17403msgstr ""
17404
17405#. type: Plain text
32747aa9 17406#: doc/guix.texi:9966
544cab3d
LC
17407msgid "The @var{items} can be either package names, such as @code{gimp}, or store items, such as @file{/gnu/store/@dots{}-idutils-4.6}."
17408msgstr ""
17409
17410#. type: Plain text
32747aa9 17411#: doc/guix.texi:9970
544cab3d
LC
17412msgid "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})."
17413msgstr ""
17414
17415#. type: section
32747aa9 17416#: doc/guix.texi:9973
544cab3d
LC
17417#, no-wrap
17418msgid "Invoking @command{guix container}"
17419msgstr ""
17420
17421#. type: command{#1}
32747aa9 17422#: doc/guix.texi:9975
544cab3d
LC
17423#, no-wrap
17424msgid "guix container"
17425msgstr ""
17426
17427#. type: quotation
32747aa9 17428#: doc/guix.texi:9979
544cab3d
LC
17429msgid "As of version @value{VERSION}, this tool is experimental. The interface is subject to radical change in the future."
17430msgstr ""
17431
17432#. type: Plain text
32747aa9 17433#: doc/guix.texi:9986
544cab3d
LC
17434msgid "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."
17435msgstr ""
17436
17437#. type: example
32747aa9 17438#: doc/guix.texi:9991
544cab3d
LC
17439#, no-wrap
17440msgid "guix container @var{action} @var{options}@dots{}\n"
17441msgstr ""
17442
17443#. type: Plain text
32747aa9 17444#: doc/guix.texi:9995
544cab3d
LC
17445msgid "@var{action} specifies the operation to perform with a container, and @var{options} specifies the context-specific arguments for the action."
17446msgstr ""
17447
17448#. type: Plain text
32747aa9 17449#: doc/guix.texi:9997
544cab3d
LC
17450msgid "The following actions are available:"
17451msgstr ""
17452
17453#. type: item
32747aa9 17454#: doc/guix.texi:9999
544cab3d
LC
17455#, no-wrap
17456msgid "exec"
17457msgstr ""
17458
17459#. type: table
32747aa9 17460#: doc/guix.texi:10001
544cab3d
LC
17461msgid "Execute a command within the context of a running container."
17462msgstr ""
17463
17464#. type: table
32747aa9 17465#: doc/guix.texi:10003
544cab3d
LC
17466msgid "The syntax is:"
17467msgstr ""
17468
17469#. type: example
32747aa9 17470#: doc/guix.texi:10006
544cab3d
LC
17471#, no-wrap
17472msgid "guix container exec @var{pid} @var{program} @var{arguments}@dots{}\n"
17473msgstr ""
17474
17475#. type: table
32747aa9 17476#: doc/guix.texi:10012
544cab3d
LC
17477msgid "@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}."
17478msgstr ""
17479
17480#. type: table
32747aa9 17481#: doc/guix.texi:10016
544cab3d
LC
17482msgid "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:"
17483msgstr ""
17484
17485#. type: example
32747aa9 17486#: doc/guix.texi:10019
544cab3d
LC
17487#, no-wrap
17488msgid "guix container exec 9001 /run/current-system/profile/bin/bash --login\n"
17489msgstr ""
17490
17491#. type: table
32747aa9 17492#: doc/guix.texi:10023
544cab3d
LC
17493msgid "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."
17494msgstr ""
17495
17496#. type: section
32747aa9 17497#: doc/guix.texi:10027
544cab3d
LC
17498#, no-wrap
17499msgid "Invoking @command{guix weather}"
17500msgstr ""
17501
17502#. type: Plain text
32747aa9 17503#: doc/guix.texi:10036
544cab3d
LC
17504msgid "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})."
17505msgstr ""
17506
17507#. type: cindex
32747aa9 17508#: doc/guix.texi:10037
544cab3d
LC
17509#, no-wrap
17510msgid "statistics, for substitutes"
17511msgstr ""
17512
17513#. type: cindex
32747aa9 17514#: doc/guix.texi:10038
544cab3d
LC
17515#, no-wrap
17516msgid "availability of substitutes"
17517msgstr ""
17518
17519#. type: cindex
32747aa9 17520#: doc/guix.texi:10039
544cab3d
LC
17521#, no-wrap
17522msgid "substitute availability"
17523msgstr ""
17524
17525#. type: cindex
32747aa9 17526#: doc/guix.texi:10040
544cab3d
LC
17527#, no-wrap
17528msgid "weather, substitute availability"
17529msgstr ""
17530
17531#. type: Plain text
32747aa9 17532#: doc/guix.texi:10042
544cab3d
LC
17533msgid "Here's a sample run:"
17534msgstr ""
17535
17536#. type: example
32747aa9 17537#: doc/guix.texi:10054
544cab3d
LC
17538#, no-wrap
17539msgid ""
17540"$ guix weather --substitute-urls=https://guix.example.org\n"
17541"computing 5,872 package derivations for x86_64-linux...\n"
17542"looking for 6,128 store items on https://guix.example.org..\n"
17543"updating list of substitutes from 'https://guix.example.org'... 100.0%\n"
17544"https://guix.example.org\n"
17545" 43.4% substitutes available (2,658 out of 6,128)\n"
17546" 7,032.5 MiB of nars (compressed)\n"
17547" 19,824.2 MiB on disk (uncompressed)\n"
17548" 0.030 seconds per request (182.9 seconds in total)\n"
17549" 33.5 requests per second\n"
17550"\n"
17551msgstr ""
17552
17553#. type: example
32747aa9 17554#: doc/guix.texi:10064
544cab3d
LC
17555#, no-wrap
17556msgid ""
17557" 9.8% (342 out of 3,470) of the missing items are queued\n"
17558" 867 queued builds\n"
17559" x86_64-linux: 518 (59.7%)\n"
17560" i686-linux: 221 (25.5%)\n"
17561" aarch64-linux: 128 (14.8%)\n"
17562" build rate: 23.41 builds per hour\n"
17563" x86_64-linux: 11.16 builds per hour\n"
17564" i686-linux: 6.03 builds per hour\n"
17565" aarch64-linux: 6.41 builds per hour\n"
17566msgstr ""
17567
17568#. type: cindex
32747aa9 17569#: doc/guix.texi:10066
544cab3d
LC
17570#, no-wrap
17571msgid "continuous integration, statistics"
17572msgstr ""
17573
17574#. type: Plain text
32747aa9 17575#: doc/guix.texi:10077
544cab3d
LC
17576msgid "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)."
17577msgstr ""
17578
17579#. type: Plain text
32747aa9 17580#: doc/guix.texi:10083
544cab3d
LC
17581msgid "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."
17582msgstr ""
17583
17584#. type: Plain text
32747aa9 17585#: doc/guix.texi:10086
544cab3d
LC
17586msgid "Among other things, it is possible to query specific system types and specific package sets. The available options are listed below."
17587msgstr ""
17588
17589#. type: table
32747aa9 17590#: doc/guix.texi:10092
544cab3d
LC
17591msgid "@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."
17592msgstr ""
17593
17594#. type: table
32747aa9 17595#: doc/guix.texi:10098
544cab3d
LC
17596msgid "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."
17597msgstr ""
17598
17599#. type: table
32747aa9 17600#: doc/guix.texi:10104
544cab3d
LC
17601msgid "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})."
17602msgstr ""
17603
17604#. type: item
32747aa9 17605#: doc/guix.texi:10105
544cab3d
LC
17606#, no-wrap
17607msgid "--coverage[=@var{count}]"
17608msgstr ""
17609
17610#. type: itemx
32747aa9 17611#: doc/guix.texi:10106
544cab3d
LC
17612#, no-wrap
17613msgid "-c [@var{count}]"
17614msgstr ""
17615
17616#. type: table
32747aa9 17617#: doc/guix.texi:10112
544cab3d
LC
17618msgid "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:"
17619msgstr ""
17620
17621#. type: example
32747aa9 17622#: doc/guix.texi:10126
544cab3d
LC
17623#, no-wrap
17624msgid ""
32747aa9 17625"$ guix weather --substitute-urls=@value{SUBSTITUTE-URL} -c 10\n"
544cab3d 17626"computing 8,983 package derivations for x86_64-linux...\n"
32747aa9
LC
17627"looking for 9,343 store items on @value{SUBSTITUTE-URL}...\n"
17628"updating substitutes from '@value{SUBSTITUTE-URL}'... 100.0%\n"
17629"@value{SUBSTITUTE-URL}\n"
544cab3d
LC
17630" 64.7% substitutes available (6,047 out of 9,343)\n"
17631"@dots{}\n"
32747aa9 17632"2502 packages are missing from '@value{SUBSTITUTE-URL}' for 'x86_64-linux', among which:\n"
544cab3d
LC
17633" 58 kcoreaddons@@5.49.0 /gnu/store/@dots{}-kcoreaddons-5.49.0\n"
17634" 46 qgpgme@@1.11.1 /gnu/store/@dots{}-qgpgme-1.11.1\n"
17635" 37 perl-http-cookiejar@@0.008 /gnu/store/@dots{}-perl-http-cookiejar-0.008\n"
17636" @dots{}\n"
17637msgstr ""
17638
17639#. type: table
32747aa9 17640#: doc/guix.texi:10131
544cab3d
LC
17641msgid "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."
17642msgstr ""
17643
17644#. type: table
32747aa9 17645#: doc/guix.texi:10135
544cab3d
LC
17646msgid "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."
17647msgstr ""
17648
17649#. type: section
32747aa9 17650#: doc/guix.texi:10138
544cab3d
LC
17651#, no-wrap
17652msgid "Invoking @command{guix processes}"
17653msgstr ""
17654
17655#. type: Plain text
32747aa9 17656#: doc/guix.texi:10146
544cab3d
LC
17657msgid "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:"
17658msgstr ""
17659
17660#. type: example
32747aa9 17661#: doc/guix.texi:10152
544cab3d
LC
17662#, no-wrap
17663msgid ""
17664"$ sudo guix processes\n"
17665"SessionPID: 19002\n"
17666"ClientPID: 19090\n"
17667"ClientCommand: guix environment --ad-hoc python\n"
17668"\n"
17669msgstr ""
17670
17671#. type: example
32747aa9 17672#: doc/guix.texi:10156
544cab3d
LC
17673#, no-wrap
17674msgid ""
17675"SessionPID: 19402\n"
17676"ClientPID: 19367\n"
17677"ClientCommand: guix publish -u guix-publish -p 3000 -C 9 @dots{}\n"
17678"\n"
17679msgstr ""
17680
17681#. type: example
32747aa9 17682#: doc/guix.texi:10166
544cab3d
LC
17683#, no-wrap
17684msgid ""
17685"SessionPID: 19444\n"
17686"ClientPID: 19419\n"
17687"ClientCommand: cuirass --cache-directory /var/cache/cuirass @dots{}\n"
17688"LockHeld: /gnu/store/@dots{}-perl-ipc-cmd-0.96.lock\n"
17689"LockHeld: /gnu/store/@dots{}-python-six-bootstrap-1.11.0.lock\n"
17690"LockHeld: /gnu/store/@dots{}-libjpeg-turbo-2.0.0.lock\n"
17691"ChildProcess: 20495: guix offload x86_64-linux 7200 1 28800\n"
17692"ChildProcess: 27733: guix offload x86_64-linux 7200 1 28800\n"
17693"ChildProcess: 27793: guix offload x86_64-linux 7200 1 28800\n"
17694msgstr ""
17695
17696#. type: Plain text
32747aa9 17697#: doc/guix.texi:10173
544cab3d
LC
17698msgid "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."
17699msgstr ""
17700
17701#. type: Plain text
32747aa9 17702#: doc/guix.texi:10180
544cab3d
LC
17703msgid "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})."
17704msgstr ""
17705
17706#. type: Plain text
32747aa9 17707#: doc/guix.texi:10185
544cab3d
LC
17708msgid "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:"
17709msgstr ""
17710
17711#. type: example
32747aa9 17712#: doc/guix.texi:10191
544cab3d
LC
17713#, no-wrap
17714msgid ""
17715"$ sudo guix processes | \\\n"
17716" recsel -p ClientPID,ClientCommand -e 'LockHeld ~ \"perl\"'\n"
17717"ClientPID: 19419\n"
17718"ClientCommand: cuirass --cache-directory /var/cache/cuirass @dots{}\n"
17719msgstr ""
17720
17721#. type: cindex
32747aa9 17722#: doc/guix.texi:10197
544cab3d
LC
17723#, no-wrap
17724msgid "system configuration"
17725msgstr ""
17726
17727#. type: Plain text
32747aa9
LC
17728#: doc/guix.texi:10203
17729msgid "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."
544cab3d
LC
17730msgstr ""
17731
17732#. type: Plain text
32747aa9 17733#: doc/guix.texi:10213
544cab3d
LC
17734msgid "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."
17735msgstr ""
17736
17737#. type: Plain text
32747aa9 17738#: doc/guix.texi:10218
544cab3d
LC
17739msgid "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."
17740msgstr ""
17741
17742#. type: Plain text
32747aa9 17743#: doc/guix.texi:10246
544cab3d
LC
17744msgid "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:"
17745msgstr ""
17746
17747#. type: findex
32747aa9 17748#: doc/guix.texi:10247
544cab3d
LC
17749#, no-wrap
17750msgid "operating-system"
17751msgstr ""
17752
17753#. type: include
32747aa9 17754#: doc/guix.texi:10249
544cab3d
LC
17755#, no-wrap
17756msgid "os-config-bare-bones.texi"
17757msgstr ""
17758
17759#. type: Plain text
32747aa9 17760#: doc/guix.texi:10256
544cab3d
LC
17761msgid "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."
17762msgstr ""
17763
17764#. type: Plain text
32747aa9 17765#: doc/guix.texi:10261
544cab3d
LC
17766msgid "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}."
17767msgstr ""
17768
17769#. type: unnumberedsubsec
32747aa9 17770#: doc/guix.texi:10262
544cab3d
LC
17771#, no-wrap
17772msgid "Bootloader"
17773msgstr ""
17774
17775#. type: cindex
32747aa9 17776#: doc/guix.texi:10264
544cab3d
LC
17777#, no-wrap
17778msgid "legacy boot, on Intel machines"
17779msgstr ""
17780
17781#. type: cindex
32747aa9 17782#: doc/guix.texi:10265
544cab3d
LC
17783#, no-wrap
17784msgid "BIOS boot, on Intel machines"
17785msgstr ""
17786
17787#. type: cindex
32747aa9 17788#: doc/guix.texi:10266
544cab3d
LC
17789#, no-wrap
17790msgid "UEFI boot"
17791msgstr ""
17792
17793#. type: cindex
32747aa9 17794#: doc/guix.texi:10267
544cab3d
LC
17795#, no-wrap
17796msgid "EFI boot"
17797msgstr ""
17798
17799#. type: Plain text
32747aa9 17800#: doc/guix.texi:10273
544cab3d
LC
17801msgid "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:"
17802msgstr ""
17803
17804#. type: example
32747aa9 17805#: doc/guix.texi:10278
544cab3d
LC
17806#, no-wrap
17807msgid ""
17808"(bootloader-configuration\n"
17809" (bootloader grub-efi-bootloader)\n"
17810" (target \"/boot/efi\"))\n"
17811msgstr ""
17812
17813#. type: Plain text
32747aa9 17814#: doc/guix.texi:10282
544cab3d
LC
17815msgid "@xref{Bootloader Configuration}, for more information on the available configuration options."
17816msgstr ""
17817
17818#. type: unnumberedsubsec
32747aa9 17819#: doc/guix.texi:10283
544cab3d
LC
17820#, no-wrap
17821msgid "Globally-Visible Packages"
17822msgstr ""
17823
17824#. type: vindex
32747aa9 17825#: doc/guix.texi:10285
544cab3d
LC
17826#, no-wrap
17827msgid "%base-packages"
17828msgstr ""
17829
17830#. type: Plain text
32747aa9 17831#: doc/guix.texi:10298
544cab3d
LC
17832msgid "The @code{packages} field lists packages that will be globally visible on the system, for all user accounts---i.e., in every user's @code{PATH} environment variable---in addition to the per-user profiles (@pxref{Invoking guix package}). The @var{%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:"
17833msgstr ""
17834
17835#. type: lisp
32747aa9 17836#: doc/guix.texi:10302
544cab3d
LC
17837#, no-wrap
17838msgid ""
17839"(use-modules (gnu packages))\n"
17840"(use-modules (gnu packages dns))\n"
17841"\n"
17842msgstr ""
17843
17844#. type: lisp
32747aa9 17845#: doc/guix.texi:10307
544cab3d
LC
17846#, no-wrap
17847msgid ""
17848"(operating-system\n"
17849" ;; ...\n"
17850" (packages (cons (list bind \"utils\")\n"
17851" %base-packages)))\n"
17852msgstr ""
17853
17854#. type: findex
32747aa9 17855#: doc/guix.texi:10309
544cab3d
LC
17856#, no-wrap
17857msgid "specification->package"
17858msgstr ""
17859
17860#. type: Plain text
32747aa9 17861#: doc/guix.texi:10318
544cab3d
LC
17862msgid "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:"
17863msgstr ""
17864
17865#. type: lisp
32747aa9 17866#: doc/guix.texi:10321
544cab3d
LC
17867#, no-wrap
17868msgid ""
17869"(use-modules (gnu packages))\n"
17870"\n"
17871msgstr ""
17872
17873#. type: lisp
32747aa9 17874#: doc/guix.texi:10327
544cab3d
LC
17875#, no-wrap
17876msgid ""
17877"(operating-system\n"
17878" ;; ...\n"
17879" (packages (append (map specification->package\n"
17880" '(\"tcpdump\" \"htop\" \"gnupg@@2.0\"))\n"
17881" %base-packages)))\n"
17882msgstr ""
17883
17884#. type: unnumberedsubsec
32747aa9 17885#: doc/guix.texi:10329
544cab3d
LC
17886#, no-wrap
17887msgid "System Services"
17888msgstr ""
17889
17890#. type: cindex
32747aa9 17891#: doc/guix.texi:10331 doc/guix.texi:23820 doc/guix.texi:24827
544cab3d
LC
17892#, no-wrap
17893msgid "services"
17894msgstr ""
17895
17896#. type: vindex
32747aa9 17897#: doc/guix.texi:10332
544cab3d
LC
17898#, no-wrap
17899msgid "%base-services"
17900msgstr ""
17901
17902#. type: Plain text
32747aa9 17903#: doc/guix.texi:10342
544cab3d
LC
17904msgid "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})."
17905msgstr ""
17906
17907#. type: cindex
32747aa9 17908#: doc/guix.texi:10343
544cab3d
LC
17909#, no-wrap
17910msgid "customization, of services"
17911msgstr ""
17912
17913#. type: findex
32747aa9 17914#: doc/guix.texi:10344
544cab3d
LC
17915#, no-wrap
17916msgid "modify-services"
17917msgstr ""
17918
17919#. type: Plain text
32747aa9 17920#: doc/guix.texi:10348
544cab3d
LC
17921msgid "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."
17922msgstr ""
17923
17924#. type: Plain text
32747aa9 17925#: doc/guix.texi:10353
544cab3d
LC
17926msgid "For example, suppose you want to modify @code{guix-daemon} and Mingetty (the console log-in) in the @var{%base-services} list (@pxref{Base Services, @code{%base-services}}). To do that, you can write the following in your operating system declaration:"
17927msgstr ""
17928
17929#. type: lisp
32747aa9 17930#: doc/guix.texi:10366
544cab3d
LC
17931#, no-wrap
17932msgid ""
17933"(define %my-services\n"
17934" ;; My very own list of services.\n"
17935" (modify-services %base-services\n"
17936" (guix-service-type config =>\n"
17937" (guix-configuration\n"
17938" (inherit config)\n"
17939" (use-substitutes? #f)\n"
17940" (extra-options '(\"--gc-keep-derivations\"))))\n"
17941" (mingetty-service-type config =>\n"
17942" (mingetty-configuration\n"
17943" (inherit config)))))\n"
17944"\n"
17945msgstr ""
17946
17947#. type: lisp
32747aa9 17948#: doc/guix.texi:10370
544cab3d
LC
17949#, no-wrap
17950msgid ""
17951"(operating-system\n"
17952" ;; @dots{}\n"
17953" (services %my-services))\n"
17954msgstr ""
17955
17956#. type: Plain text
32747aa9 17957#: doc/guix.texi:10381
544cab3d
LC
17958msgid "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 @var{%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."
17959msgstr ""
17960
17961#. type: Plain text
32747aa9 17962#: doc/guix.texi:10388
544cab3d
LC
17963msgid "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:"
17964msgstr ""
17965
17966#. type: include
32747aa9 17967#: doc/guix.texi:10390
544cab3d
LC
17968#, no-wrap
17969msgid "os-config-desktop.texi"
17970msgstr ""
17971
17972#. type: Plain text
32747aa9 17973#: doc/guix.texi:10395
544cab3d
LC
17974msgid "A graphical system with a choice of lightweight window managers instead of full-blown desktop environments would look like this:"
17975msgstr ""
17976
17977#. type: include
32747aa9 17978#: doc/guix.texi:10397
544cab3d
LC
17979#, no-wrap
17980msgid "os-config-lightweight-desktop.texi"
17981msgstr ""
17982
17983#. type: Plain text
32747aa9 17984#: doc/guix.texi:10403
544cab3d
LC
17985msgid "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."
17986msgstr ""
17987
17988#. type: Plain text
32747aa9 17989#: doc/guix.texi:10407
544cab3d
LC
17990msgid "@xref{Desktop Services}, for the exact list of services provided by @var{%desktop-services}. @xref{X.509 Certificates}, for background information about the @code{nss-certs} package that is used here."
17991msgstr ""
17992
17993#. type: Plain text
32747aa9 17994#: doc/guix.texi:10414
544cab3d
LC
17995msgid "Again, @var{%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 @var{%desktop-services} minus the Avahi service:"
17996msgstr ""
17997
17998#. type: example
32747aa9 17999#: doc/guix.texi:10419
544cab3d
LC
18000#, no-wrap
18001msgid ""
18002"(remove (lambda (service)\n"
18003" (eq? (service-kind service) avahi-service-type))\n"
18004" %desktop-services)\n"
18005msgstr ""
18006
18007#. type: unnumberedsubsec
32747aa9 18008#: doc/guix.texi:10421
544cab3d
LC
18009#, no-wrap
18010msgid "Instantiating the System"
18011msgstr ""
18012
18013#. type: Plain text
32747aa9 18014#: doc/guix.texi:10428
544cab3d
LC
18015msgid "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})."
18016msgstr ""
18017
18018#. type: Plain text
32747aa9 18019#: doc/guix.texi:10436
544cab3d
LC
18020msgid "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."
18021msgstr ""
18022
18023#. type: cindex
32747aa9 18024#: doc/guix.texi:10437
544cab3d
LC
18025#, no-wrap
18026msgid "roll-back, of the operating system"
18027msgstr ""
18028
18029#. type: Plain text
32747aa9 18030#: doc/guix.texi:10447
544cab3d
LC
18031msgid "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}."
18032msgstr ""
18033
18034#. type: Plain text
32747aa9 18035#: doc/guix.texi:10453
544cab3d
LC
18036msgid "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})."
18037msgstr ""
18038
18039#. type: unnumberedsubsec
32747aa9 18040#: doc/guix.texi:10454
544cab3d
LC
18041#, no-wrap
18042msgid "The Programming Interface"
18043msgstr ""
18044
18045#. type: Plain text
32747aa9 18046#: doc/guix.texi:10459
544cab3d
LC
18047msgid "At the Scheme level, the bulk of an @code{operating-system} declaration is instantiated with the following monadic procedure (@pxref{The Store Monad}):"
18048msgstr ""
18049
18050#. type: deffn
32747aa9 18051#: doc/guix.texi:10460
544cab3d
LC
18052#, no-wrap
18053msgid "{Monadic Procedure} operating-system-derivation os"
18054msgstr ""
18055
18056#. type: deffn
32747aa9 18057#: doc/guix.texi:10463
544cab3d
LC
18058msgid "Return a derivation that builds @var{os}, an @code{operating-system} object (@pxref{Derivations})."
18059msgstr ""
18060
18061#. type: deffn
32747aa9 18062#: doc/guix.texi:10467
544cab3d
LC
18063msgid "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}."
18064msgstr ""
18065
18066#. type: Plain text
32747aa9 18067#: doc/guix.texi:10472
544cab3d
LC
18068msgid "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!"
18069msgstr ""
18070
18071#. type: section
32747aa9 18072#: doc/guix.texi:10475
544cab3d
LC
18073#, no-wrap
18074msgid "@code{operating-system} Reference"
18075msgstr ""
18076
18077#. type: Plain text
32747aa9 18078#: doc/guix.texi:10480
544cab3d
LC
18079msgid "This section summarizes all the options available in @code{operating-system} declarations (@pxref{Using the Configuration System})."
18080msgstr ""
18081
18082#. type: deftp
32747aa9 18083#: doc/guix.texi:10481
544cab3d
LC
18084#, no-wrap
18085msgid "{Data Type} operating-system"
18086msgstr ""
18087
18088#. type: deftp
32747aa9 18089#: doc/guix.texi:10485
544cab3d
LC
18090msgid "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})."
18091msgstr ""
18092
18093#. type: item
32747aa9 18094#: doc/guix.texi:10487
544cab3d
LC
18095#, no-wrap
18096msgid "@code{kernel} (default: @var{linux-libre})"
18097msgstr ""
18098
18099#. type: table
32747aa9 18100#: doc/guix.texi:10491
544cab3d
LC
18101msgid "The package object of the operating system kernel to use@footnote{Currently only the Linux-libre kernel is supported. In the future, it will be possible to use the GNU@tie{}Hurd.}."
18102msgstr ""
18103
18104#. type: item
32747aa9 18105#: doc/guix.texi:10492
544cab3d 18106#, no-wrap
32747aa9 18107msgid "@code{kernel-arguments} (default: @code{'(\"quiet\")})"
544cab3d
LC
18108msgstr ""
18109
18110#. type: table
32747aa9 18111#: doc/guix.texi:10495
544cab3d
LC
18112msgid "List of strings or gexps representing additional arguments to pass on the command-line of the kernel---e.g., @code{(\"console=ttyS0\")}."
18113msgstr ""
18114
18115#. type: code{#1}
32747aa9 18116#: doc/guix.texi:10496 doc/guix.texi:24031 doc/guix.texi:24050
544cab3d
LC
18117#, no-wrap
18118msgid "bootloader"
18119msgstr ""
18120
18121#. type: table
32747aa9 18122#: doc/guix.texi:10498
544cab3d
LC
18123msgid "The system bootloader configuration object. @xref{Bootloader Configuration}."
18124msgstr ""
18125
32747aa9
LC
18126#. type: code{#1}
18127#: doc/guix.texi:10499 doc/guix.texi:24170
18128#, no-wrap
18129msgid "label"
18130msgstr ""
18131
18132#. type: table
18133#: doc/guix.texi:10502
18134msgid "This is the label (a string) as it appears in the bootloader's menu entry. The default label includes the kernel name and version."
18135msgstr ""
18136
544cab3d 18137#. type: item
32747aa9 18138#: doc/guix.texi:10503 doc/guix.texi:13709 doc/guix.texi:24100
544cab3d
LC
18139#, no-wrap
18140msgid "@code{keyboard-layout} (default: @code{#f})"
18141msgstr ""
18142
18143#. type: table
32747aa9 18144#: doc/guix.texi:10507
544cab3d
LC
18145msgid "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."
18146msgstr ""
18147
18148#. type: table
32747aa9 18149#: doc/guix.texi:10512
544cab3d
LC
18150msgid "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})."
18151msgstr ""
18152
18153#. type: quotation
32747aa9 18154#: doc/guix.texi:10519
544cab3d
LC
18155msgid "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."
18156msgstr ""
18157
18158#. type: item
32747aa9 18159#: doc/guix.texi:10521
544cab3d
LC
18160#, no-wrap
18161msgid "@code{initrd-modules} (default: @code{%base-initrd-modules})"
18162msgstr ""
18163
18164#. type: code{#1}
32747aa9
LC
18165#: doc/guix.texi:10522 doc/guix.texi:23857 doc/guix.texi:23960
18166#: doc/guix.texi:24195
544cab3d
LC
18167#, no-wrap
18168msgid "initrd"
18169msgstr ""
18170
18171#. type: cindex
32747aa9 18172#: doc/guix.texi:10523 doc/guix.texi:23858 doc/guix.texi:23961
544cab3d
LC
18173#, no-wrap
18174msgid "initial RAM disk"
18175msgstr ""
18176
18177#. type: table
32747aa9 18178#: doc/guix.texi:10526
544cab3d
LC
18179msgid "The list of Linux kernel modules that need to be available in the initial RAM disk. @xref{Initial RAM Disk}."
18180msgstr ""
18181
18182#. type: item
32747aa9 18183#: doc/guix.texi:10527
544cab3d
LC
18184#, no-wrap
18185msgid "@code{initrd} (default: @code{base-initrd})"
18186msgstr ""
18187
18188#. type: table
32747aa9 18189#: doc/guix.texi:10531
544cab3d
LC
18190msgid "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}."
18191msgstr ""
18192
18193#. type: item
32747aa9 18194#: doc/guix.texi:10532
544cab3d
LC
18195#, no-wrap
18196msgid "@code{firmware} (default: @var{%base-firmware})"
18197msgstr ""
18198
18199#. type: cindex
32747aa9 18200#: doc/guix.texi:10533
544cab3d
LC
18201#, no-wrap
18202msgid "firmware"
18203msgstr ""
18204
18205#. type: table
32747aa9 18206#: doc/guix.texi:10535
544cab3d
LC
18207msgid "List of firmware packages loadable by the operating system kernel."
18208msgstr ""
18209
18210#. type: table
32747aa9 18211#: doc/guix.texi:10540
544cab3d
LC
18212msgid "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."
18213msgstr ""
18214
18215#. type: code{#1}
32747aa9 18216#: doc/guix.texi:10541
544cab3d
LC
18217#, no-wrap
18218msgid "host-name"
18219msgstr ""
18220
18221#. type: table
32747aa9 18222#: doc/guix.texi:10543
544cab3d
LC
18223msgid "The host name."
18224msgstr ""
18225
18226#. type: code{#1}
32747aa9 18227#: doc/guix.texi:10544
544cab3d
LC
18228#, no-wrap
18229msgid "hosts-file"
18230msgstr ""
18231
18232#. type: cindex
32747aa9 18233#: doc/guix.texi:10545
544cab3d
LC
18234#, no-wrap
18235msgid "hosts file"
18236msgstr ""
18237
18238#. type: table
32747aa9 18239#: doc/guix.texi:10550
544cab3d
LC
18240msgid "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}."
18241msgstr ""
18242
18243#. type: item
32747aa9 18244#: doc/guix.texi:10551
544cab3d
LC
18245#, no-wrap
18246msgid "@code{mapped-devices} (default: @code{'()})"
18247msgstr ""
18248
18249#. type: table
32747aa9 18250#: doc/guix.texi:10553
544cab3d
LC
18251msgid "A list of mapped devices. @xref{Mapped Devices}."
18252msgstr ""
18253
18254#. type: code{#1}
32747aa9 18255#: doc/guix.texi:10554
544cab3d
LC
18256#, no-wrap
18257msgid "file-systems"
18258msgstr ""
18259
18260#. type: table
32747aa9 18261#: doc/guix.texi:10556
544cab3d
LC
18262msgid "A list of file systems. @xref{File Systems}."
18263msgstr ""
18264
18265#. type: item
32747aa9 18266#: doc/guix.texi:10557
544cab3d
LC
18267#, no-wrap
18268msgid "@code{swap-devices} (default: @code{'()})"
18269msgstr ""
18270
18271#. type: cindex
32747aa9 18272#: doc/guix.texi:10558
544cab3d
LC
18273#, no-wrap
18274msgid "swap devices"
18275msgstr ""
18276
18277#. type: table
32747aa9 18278#: doc/guix.texi:10565
544cab3d
LC
18279msgid "A list of strings identifying devices or files to be used for ``swap space'' (@pxref{Memory Concepts,,, libc, The GNU C Library Reference Manual}). For example, @code{'(\"/dev/sda3\")} or @code{'(\"/swapfile\")}. It is possible to specify a swap file in a file system on a mapped device, provided that the necessary device mapping and file system are also specified. @xref{Mapped Devices} and @ref{File Systems}."
18280msgstr ""
18281
18282#. type: item
32747aa9 18283#: doc/guix.texi:10566
544cab3d
LC
18284#, no-wrap
18285msgid "@code{users} (default: @code{%base-user-accounts})"
18286msgstr ""
18287
18288#. type: itemx
32747aa9 18289#: doc/guix.texi:10567
544cab3d
LC
18290#, no-wrap
18291msgid "@code{groups} (default: @var{%base-groups})"
18292msgstr ""
18293
18294#. type: table
32747aa9 18295#: doc/guix.texi:10569
544cab3d
LC
18296msgid "List of user accounts and groups. @xref{User Accounts}."
18297msgstr ""
18298
18299#. type: table
32747aa9 18300#: doc/guix.texi:10572
544cab3d
LC
18301msgid "If the @code{users} list lacks a user account with UID@tie{}0, a ``root'' account with UID@tie{}0 is automatically added."
18302msgstr ""
18303
18304#. type: item
32747aa9 18305#: doc/guix.texi:10573
544cab3d
LC
18306#, no-wrap
18307msgid "@code{skeletons} (default: @code{(default-skeletons)})"
18308msgstr ""
18309
18310#. type: table
32747aa9 18311#: doc/guix.texi:10577
544cab3d
LC
18312msgid "A list 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."
18313msgstr ""
18314
18315#. type: table
32747aa9 18316#: doc/guix.texi:10579
544cab3d
LC
18317msgid "For instance, a valid value may look like this:"
18318msgstr ""
18319
18320#. type: example
32747aa9 18321#: doc/guix.texi:10585
544cab3d
LC
18322#, no-wrap
18323msgid ""
18324"`((\".bashrc\" ,(plain-file \"bashrc\" \"echo Hello\\n\"))\n"
18325" (\".guile\" ,(plain-file \"guile\"\n"
18326" \"(use-modules (ice-9 readline))\n"
18327" (activate-readline)\")))\n"
18328msgstr ""
18329
18330#. type: item
32747aa9 18331#: doc/guix.texi:10587
544cab3d
LC
18332#, no-wrap
18333msgid "@code{issue} (default: @var{%default-issue})"
18334msgstr ""
18335
18336#. type: table
32747aa9 18337#: doc/guix.texi:10590
544cab3d
LC
18338msgid "A string denoting the contents of the @file{/etc/issue} file, which is displayed when users log in on a text console."
18339msgstr ""
18340
18341#. type: item
32747aa9 18342#: doc/guix.texi:10591
544cab3d
LC
18343#, no-wrap
18344msgid "@code{packages} (default: @var{%base-packages})"
18345msgstr ""
18346
18347#. type: table
32747aa9 18348#: doc/guix.texi:10594
544cab3d
LC
18349msgid "The set of packages installed in the global profile, which is accessible at @file{/run/current-system/profile}."
18350msgstr ""
18351
18352#. type: table
32747aa9 18353#: doc/guix.texi:10598
544cab3d
LC
18354msgid "The default set includes core utilities and it is good practice to install non-core utilities in user profiles (@pxref{Invoking guix package})."
18355msgstr ""
18356
18357#. type: code{#1}
32747aa9 18358#: doc/guix.texi:10599
544cab3d
LC
18359#, no-wrap
18360msgid "timezone"
18361msgstr ""
18362
18363#. type: table
32747aa9 18364#: doc/guix.texi:10601
544cab3d
LC
18365msgid "A timezone identifying string---e.g., @code{\"Europe/Paris\"}."
18366msgstr ""
18367
18368#. type: table
32747aa9 18369#: doc/guix.texi:10605
544cab3d
LC
18370msgid "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."
18371msgstr ""
18372
18373#. type: item
32747aa9 18374#: doc/guix.texi:10606
544cab3d
LC
18375#, no-wrap
18376msgid "@code{locale} (default: @code{\"en_US.utf8\"})"
18377msgstr ""
18378
18379#. type: table
32747aa9 18380#: doc/guix.texi:10609
544cab3d
LC
18381msgid "The name of the default locale (@pxref{Locale Names,,, libc, The GNU C Library Reference Manual}). @xref{Locales}, for more information."
18382msgstr ""
18383
18384#. type: item
32747aa9 18385#: doc/guix.texi:10610
544cab3d
LC
18386#, no-wrap
18387msgid "@code{locale-definitions} (default: @var{%default-locale-definitions})"
18388msgstr ""
18389
18390#. type: table
32747aa9 18391#: doc/guix.texi:10613
544cab3d
LC
18392msgid "The list of locale definitions to be compiled and that may be used at run time. @xref{Locales}."
18393msgstr ""
18394
18395#. type: item
32747aa9 18396#: doc/guix.texi:10614
544cab3d
LC
18397#, no-wrap
18398msgid "@code{locale-libcs} (default: @code{(list @var{glibc})})"
18399msgstr ""
18400
18401#. type: table
32747aa9 18402#: doc/guix.texi:10618
544cab3d
LC
18403msgid "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."
18404msgstr ""
18405
18406#. type: item
32747aa9 18407#: doc/guix.texi:10619
544cab3d
LC
18408#, no-wrap
18409msgid "@code{name-service-switch} (default: @var{%default-nss})"
18410msgstr ""
18411
18412#. type: table
32747aa9 18413#: doc/guix.texi:10623
544cab3d
LC
18414msgid "Configuration of the libc name service switch (NSS)---a @code{<name-service-switch>} object. @xref{Name Service Switch}, for details."
18415msgstr ""
18416
18417#. type: item
32747aa9 18418#: doc/guix.texi:10624
544cab3d
LC
18419#, no-wrap
18420msgid "@code{services} (default: @var{%base-services})"
18421msgstr ""
18422
18423#. type: table
32747aa9 18424#: doc/guix.texi:10626
544cab3d
LC
18425msgid "A list of service objects denoting system services. @xref{Services}."
18426msgstr ""
18427
18428#. type: cindex
32747aa9 18429#: doc/guix.texi:10627
544cab3d
LC
18430#, no-wrap
18431msgid "essential services"
18432msgstr ""
18433
18434#. type: item
32747aa9 18435#: doc/guix.texi:10628
544cab3d
LC
18436#, no-wrap
18437msgid "@code{essential-services} (default: ...)"
18438msgstr ""
18439
18440#. type: table
32747aa9 18441#: doc/guix.texi:10633
544cab3d
LC
18442msgid "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."
18443msgstr ""
18444
18445#. type: item
32747aa9 18446#: doc/guix.texi:10634
544cab3d
LC
18447#, no-wrap
18448msgid "@code{pam-services} (default: @code{(base-pam-services)})"
18449msgstr ""
18450
18451#. type: cindex
32747aa9 18452#: doc/guix.texi:10635
544cab3d
LC
18453#, no-wrap
18454msgid "PAM"
18455msgstr ""
18456
18457#. type: cindex
32747aa9 18458#: doc/guix.texi:10636
544cab3d
LC
18459#, no-wrap
18460msgid "pluggable authentication modules"
18461msgstr ""
18462
18463#. type: table
32747aa9 18464#: doc/guix.texi:10639
544cab3d
LC
18465msgid "Linux @dfn{pluggable authentication module} (PAM) services."
18466msgstr ""
18467
18468#. type: item
32747aa9 18469#: doc/guix.texi:10640
544cab3d
LC
18470#, no-wrap
18471msgid "@code{setuid-programs} (default: @var{%setuid-programs})"
18472msgstr ""
18473
18474#. type: table
32747aa9 18475#: doc/guix.texi:10643
544cab3d
LC
18476msgid "List of string-valued G-expressions denoting setuid programs. @xref{Setuid Programs}."
18477msgstr ""
18478
18479#. type: item
32747aa9 18480#: doc/guix.texi:10644
544cab3d
LC
18481#, no-wrap
18482msgid "@code{sudoers-file} (default: @var{%sudoers-specification})"
18483msgstr ""
18484
18485#. type: cindex
32747aa9 18486#: doc/guix.texi:10645
544cab3d
LC
18487#, no-wrap
18488msgid "sudoers file"
18489msgstr ""
18490
18491#. type: table
32747aa9 18492#: doc/guix.texi:10648
544cab3d
LC
18493msgid "The contents of the @file{/etc/sudoers} file as a file-like object (@pxref{G-Expressions, @code{local-file} and @code{plain-file}})."
18494msgstr ""
18495
18496#. type: table
32747aa9 18497#: doc/guix.texi:10653
544cab3d
LC
18498msgid "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}."
18499msgstr ""
18500
32747aa9
LC
18501#. type: deffn
18502#: doc/guix.texi:10656
18503#, no-wrap
18504msgid "{Scheme Syntax} this-operating-system"
18505msgstr ""
18506
18507#. type: deffn
18508#: doc/guix.texi:10659
18509msgid "When used in the @emph{lexical scope} of an operating system field definition, this identifier resolves to the operating system being defined."
18510msgstr ""
18511
18512#. type: deffn
18513#: doc/guix.texi:10662
18514msgid "The example below shows how to refer to the operating system being defined in the definition of the @code{label} field:"
18515msgstr ""
18516
18517#. type: example
18518#: doc/guix.texi:10665 doc/guix.texi:13330
18519#, no-wrap
18520msgid ""
18521"(use-modules (gnu) (guix))\n"
18522"\n"
18523msgstr ""
18524
18525#. type: example
18526#: doc/guix.texi:10670
18527#, no-wrap
18528msgid ""
18529"(operating-system\n"
18530" ;; ...\n"
18531" (label (package-full-name\n"
18532" (operating-system-kernel this-operating-system))))\n"
18533msgstr ""
18534
18535#. type: deffn
18536#: doc/guix.texi:10674
18537msgid "It is an error to refer to @code{this-operating-system} outside an operating system definition."
18538msgstr ""
18539
544cab3d 18540#. type: Plain text
32747aa9 18541#: doc/guix.texi:10685
544cab3d
LC
18542msgid "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:"
18543msgstr ""
18544
18545#. type: example
32747aa9 18546#: doc/guix.texi:10691
544cab3d
LC
18547#, no-wrap
18548msgid ""
18549"(file-system\n"
18550" (mount-point \"/home\")\n"
18551" (device \"/dev/sda3\")\n"
18552" (type \"ext4\"))\n"
18553msgstr ""
18554
18555#. type: Plain text
32747aa9 18556#: doc/guix.texi:10695
544cab3d
LC
18557msgid "As usual, some of the fields are mandatory---those shown in the example above---while others can be omitted. These are described below."
18558msgstr ""
18559
18560#. type: deftp
32747aa9 18561#: doc/guix.texi:10696
544cab3d
LC
18562#, no-wrap
18563msgid "{Data Type} file-system"
18564msgstr ""
18565
18566#. type: deftp
32747aa9 18567#: doc/guix.texi:10699
544cab3d
LC
18568msgid "Objects of this type represent file systems to be mounted. They contain the following members:"
18569msgstr ""
18570
18571#. type: item
32747aa9 18572#: doc/guix.texi:10701 doc/guix.texi:10892
544cab3d
LC
18573#, no-wrap
18574msgid "type"
18575msgstr ""
18576
18577#. type: table
32747aa9 18578#: doc/guix.texi:10704
544cab3d
LC
18579msgid "This is a string specifying the type of the file system---e.g., @code{\"ext4\"}."
18580msgstr ""
18581
18582#. type: code{#1}
32747aa9 18583#: doc/guix.texi:10705
544cab3d
LC
18584#, no-wrap
18585msgid "mount-point"
18586msgstr ""
18587
18588#. type: table
32747aa9 18589#: doc/guix.texi:10707
544cab3d
LC
18590msgid "This designates the place where the file system is to be mounted."
18591msgstr ""
18592
18593#. type: code{#1}
32747aa9 18594#: doc/guix.texi:10708
544cab3d
LC
18595#, no-wrap
18596msgid "device"
18597msgstr ""
18598
18599#. type: table
32747aa9 18600#: doc/guix.texi:10718
544cab3d
LC
18601msgid "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.}."
18602msgstr ""
18603
18604#. type: findex
32747aa9 18605#: doc/guix.texi:10719
544cab3d
LC
18606#, no-wrap
18607msgid "file-system-label"
18608msgstr ""
18609
18610#. type: table
32747aa9 18611#: doc/guix.texi:10724
544cab3d
LC
18612msgid "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:"
18613msgstr ""
18614
18615#. type: example
32747aa9 18616#: doc/guix.texi:10730
544cab3d
LC
18617#, no-wrap
18618msgid ""
18619"(file-system\n"
18620" (mount-point \"/home\")\n"
18621" (type \"ext4\")\n"
18622" (device (file-system-label \"my-home\")))\n"
18623msgstr ""
18624
18625#. type: findex
32747aa9 18626#: doc/guix.texi:10732
544cab3d
LC
18627#, no-wrap
18628msgid "uuid"
18629msgstr ""
18630
18631#. type: table
32747aa9 18632#: doc/guix.texi:10740
544cab3d
LC
18633msgid "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:"
18634msgstr ""
18635
18636#. type: example
32747aa9 18637#: doc/guix.texi:10746
544cab3d
LC
18638#, no-wrap
18639msgid ""
18640"(file-system\n"
18641" (mount-point \"/home\")\n"
18642" (type \"ext4\")\n"
18643" (device (uuid \"4dab5feb-d176-45de-b287-9b0a6e4c01cb\")))\n"
18644msgstr ""
18645
18646#. type: table
32747aa9 18647#: doc/guix.texi:10754
544cab3d
LC
18648msgid "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."
18649msgstr ""
18650
18651#. type: item
32747aa9 18652#: doc/guix.texi:10755
544cab3d
LC
18653#, no-wrap
18654msgid "@code{flags} (default: @code{'()})"
18655msgstr ""
18656
18657#. type: table
32747aa9
LC
18658#: doc/guix.texi:10762
18659msgid "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), and @code{no-exec} (disallow program execution). @xref{Mount-Unmount-Remount,,, libc, The GNU C Library Reference Manual}, for more information on these flags."
544cab3d
LC
18660msgstr ""
18661
18662#. type: item
32747aa9 18663#: doc/guix.texi:10763
544cab3d
LC
18664#, no-wrap
18665msgid "@code{options} (default: @code{#f})"
18666msgstr ""
18667
18668#. type: table
32747aa9
LC
18669#: doc/guix.texi:10768
18670msgid "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."
544cab3d
LC
18671msgstr ""
18672
18673#. type: item
32747aa9 18674#: doc/guix.texi:10769
544cab3d
LC
18675#, no-wrap
18676msgid "@code{mount?} (default: @code{#t})"
18677msgstr ""
18678
18679#. type: table
32747aa9 18680#: doc/guix.texi:10774
544cab3d
LC
18681msgid "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."
18682msgstr ""
18683
18684#. type: item
32747aa9 18685#: doc/guix.texi:10775
544cab3d
LC
18686#, no-wrap
18687msgid "@code{needed-for-boot?} (default: @code{#f})"
18688msgstr ""
18689
18690#. type: table
32747aa9 18691#: doc/guix.texi:10780
544cab3d
LC
18692msgid "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."
18693msgstr ""
18694
18695#. type: item
32747aa9 18696#: doc/guix.texi:10781
544cab3d
LC
18697#, no-wrap
18698msgid "@code{check?} (default: @code{#t})"
18699msgstr ""
18700
18701#. type: table
32747aa9 18702#: doc/guix.texi:10784
544cab3d
LC
18703msgid "This Boolean indicates whether the file system needs to be checked for errors before being mounted."
18704msgstr ""
18705
18706#. type: item
32747aa9 18707#: doc/guix.texi:10785
544cab3d
LC
18708#, no-wrap
18709msgid "@code{create-mount-point?} (default: @code{#f})"
18710msgstr ""
18711
18712#. type: table
32747aa9 18713#: doc/guix.texi:10787
544cab3d
LC
18714msgid "When true, the mount point is created if it does not exist yet."
18715msgstr ""
18716
18717#. type: item
32747aa9 18718#: doc/guix.texi:10788
544cab3d
LC
18719#, no-wrap
18720msgid "@code{dependencies} (default: @code{'()})"
18721msgstr ""
18722
18723#. type: table
32747aa9 18724#: doc/guix.texi:10792
544cab3d
LC
18725msgid "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."
18726msgstr ""
18727
18728#. type: table
32747aa9 18729#: doc/guix.texi:10796
544cab3d
LC
18730msgid "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}."
18731msgstr ""
18732
18733#. type: table
32747aa9 18734#: doc/guix.texi:10799
544cab3d
LC
18735msgid "Another example is a file system that depends on a mapped device, for example for an encrypted partition (@pxref{Mapped Devices})."
18736msgstr ""
18737
18738#. type: Plain text
32747aa9 18739#: doc/guix.texi:10804
544cab3d
LC
18740msgid "The @code{(gnu system file-systems)} exports the following useful variables."
18741msgstr ""
18742
18743#. type: defvr
32747aa9 18744#: doc/guix.texi:10805
544cab3d
LC
18745#, no-wrap
18746msgid "{Scheme Variable} %base-file-systems"
18747msgstr ""
18748
18749#. type: defvr
32747aa9 18750#: doc/guix.texi:10810
544cab3d
LC
18751msgid "These are essential file systems that are required on normal systems, such as @var{%pseudo-terminal-file-system} and @var{%immutable-store} (see below.) Operating system declarations should always contain at least these."
18752msgstr ""
18753
18754#. type: defvr
32747aa9 18755#: doc/guix.texi:10812
544cab3d
LC
18756#, no-wrap
18757msgid "{Scheme Variable} %pseudo-terminal-file-system"
18758msgstr ""
18759
18760#. type: defvr
32747aa9 18761#: doc/guix.texi:10818
544cab3d
LC
18762msgid "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}."
18763msgstr ""
18764
18765#. type: defvr
32747aa9 18766#: doc/guix.texi:10820
544cab3d
LC
18767#, no-wrap
18768msgid "{Scheme Variable} %shared-memory-file-system"
18769msgstr ""
18770
18771#. type: defvr
32747aa9 18772#: doc/guix.texi:10824
544cab3d
LC
18773msgid "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})."
18774msgstr ""
18775
18776#. type: defvr
32747aa9 18777#: doc/guix.texi:10826
544cab3d
LC
18778#, no-wrap
18779msgid "{Scheme Variable} %immutable-store"
18780msgstr ""
18781
18782#. type: defvr
32747aa9 18783#: doc/guix.texi:10831
544cab3d
LC
18784msgid "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."
18785msgstr ""
18786
18787#. type: defvr
32747aa9 18788#: doc/guix.texi:10834
544cab3d
LC
18789msgid "The daemon itself is still able to write to the store: it remounts it read-write in its own ``name space.''"
18790msgstr ""
18791
18792#. type: defvr
32747aa9 18793#: doc/guix.texi:10836
544cab3d
LC
18794#, no-wrap
18795msgid "{Scheme Variable} %binary-format-file-system"
18796msgstr ""
18797
18798#. type: defvr
32747aa9 18799#: doc/guix.texi:10840
544cab3d
LC
18800msgid "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."
18801msgstr ""
18802
18803#. type: defvr
32747aa9 18804#: doc/guix.texi:10842
544cab3d
LC
18805#, no-wrap
18806msgid "{Scheme Variable} %fuse-control-file-system"
18807msgstr ""
18808
18809#. type: defvr
32747aa9 18810#: doc/guix.texi:10846
544cab3d
LC
18811msgid "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."
18812msgstr ""
18813
18814#. type: cindex
32747aa9 18815#: doc/guix.texi:10851
544cab3d
LC
18816#, no-wrap
18817msgid "device mapping"
18818msgstr ""
18819
18820#. type: cindex
32747aa9 18821#: doc/guix.texi:10852
544cab3d
LC
18822#, no-wrap
18823msgid "mapped devices"
18824msgstr ""
18825
18826#. type: Plain text
32747aa9 18827#: doc/guix.texi:10870
544cab3d
LC
18828msgid "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."
18829msgstr ""
18830
18831#. type: Plain text
32747aa9 18832#: doc/guix.texi:10873
544cab3d
LC
18833msgid "Mapped devices are declared using the @code{mapped-device} form, defined as follows; for examples, see below."
18834msgstr ""
18835
18836#. type: deftp
32747aa9 18837#: doc/guix.texi:10874
544cab3d
LC
18838#, no-wrap
18839msgid "{Data Type} mapped-device"
18840msgstr ""
18841
18842#. type: deftp
32747aa9 18843#: doc/guix.texi:10877
544cab3d
LC
18844msgid "Objects of this type represent device mappings that will be made when the system boots up."
18845msgstr ""
18846
18847#. type: table
32747aa9 18848#: doc/guix.texi:10883
544cab3d
LC
18849msgid "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."
18850msgstr ""
18851
18852#. type: code{#1}
32747aa9 18853#: doc/guix.texi:10884 doc/guix.texi:24075
544cab3d
LC
18854#, no-wrap
18855msgid "target"
18856msgstr ""
18857
18858#. type: table
32747aa9 18859#: doc/guix.texi:10891
544cab3d
LC
18860msgid "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."
18861msgstr ""
18862
18863#. type: table
32747aa9 18864#: doc/guix.texi:10895
544cab3d
LC
18865msgid "This must be a @code{mapped-device-kind} object, which specifies how @var{source} is mapped to @var{target}."
18866msgstr ""
18867
18868#. type: defvr
32747aa9 18869#: doc/guix.texi:10898
544cab3d
LC
18870#, no-wrap
18871msgid "{Scheme Variable} luks-device-mapping"
18872msgstr ""
18873
18874#. type: defvr
32747aa9 18875#: doc/guix.texi:10902
544cab3d
LC
18876msgid "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."
18877msgstr ""
18878
18879#. type: defvr
32747aa9 18880#: doc/guix.texi:10904
544cab3d
LC
18881#, no-wrap
18882msgid "{Scheme Variable} raid-device-mapping"
18883msgstr ""
18884
18885#. type: defvr
32747aa9 18886#: doc/guix.texi:10909
544cab3d
LC
18887msgid "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."
18888msgstr ""
18889
18890#. type: cindex
32747aa9 18891#: doc/guix.texi:10911
544cab3d
LC
18892#, no-wrap
18893msgid "disk encryption"
18894msgstr ""
18895
18896#. type: cindex
32747aa9 18897#: doc/guix.texi:10912
544cab3d
LC
18898#, no-wrap
18899msgid "LUKS"
18900msgstr ""
18901
18902#. type: Plain text
32747aa9 18903#: doc/guix.texi:10920
544cab3d
LC
18904msgid "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})."
18905msgstr ""
18906
18907#. type: example
32747aa9 18908#: doc/guix.texi:10926
544cab3d
LC
18909#, no-wrap
18910msgid ""
18911"(mapped-device\n"
18912" (source \"/dev/sda3\")\n"
18913" (target \"home\")\n"
18914" (type luks-device-mapping))\n"
18915msgstr ""
18916
18917#. type: Plain text
32747aa9 18918#: doc/guix.texi:10931
544cab3d
LC
18919msgid "Alternatively, to become independent of device numbering, one may obtain the LUKS UUID (@dfn{unique identifier}) of the source device by a command like:"
18920msgstr ""
18921
18922#. type: example
32747aa9 18923#: doc/guix.texi:10934
544cab3d
LC
18924#, no-wrap
18925msgid "cryptsetup luksUUID /dev/sda3\n"
18926msgstr ""
18927
18928#. type: Plain text
32747aa9 18929#: doc/guix.texi:10937
544cab3d
LC
18930msgid "and use it as follows:"
18931msgstr ""
18932
18933#. type: example
32747aa9 18934#: doc/guix.texi:10943
544cab3d
LC
18935#, no-wrap
18936msgid ""
18937"(mapped-device\n"
18938" (source (uuid \"cb67fc72-0d54-4c88-9d4b-b225f30b0f44\"))\n"
18939" (target \"home\")\n"
18940" (type luks-device-mapping))\n"
18941msgstr ""
18942
18943#. type: cindex
32747aa9 18944#: doc/guix.texi:10945
544cab3d
LC
18945#, no-wrap
18946msgid "swap encryption"
18947msgstr ""
18948
18949#. type: Plain text
32747aa9 18950#: doc/guix.texi:10951
544cab3d
LC
18951msgid "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."
18952msgstr ""
18953
18954#. type: Plain text
32747aa9 18955#: doc/guix.texi:10954
544cab3d
LC
18956msgid "A RAID device formed of the partitions @file{/dev/sda1} and @file{/dev/sdb1} may be declared as follows:"
18957msgstr ""
18958
18959#. type: example
32747aa9 18960#: doc/guix.texi:10960
544cab3d
LC
18961#, no-wrap
18962msgid ""
18963"(mapped-device\n"
18964" (source (list \"/dev/sda1\" \"/dev/sdb1\"))\n"
18965" (target \"/dev/md0\")\n"
18966" (type raid-device-mapping))\n"
18967msgstr ""
18968
18969#. type: Plain text
32747aa9 18970#: doc/guix.texi:10967
544cab3d
LC
18971msgid "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."
18972msgstr ""
18973
18974#. type: cindex
32747aa9 18975#: doc/guix.texi:10972
544cab3d
LC
18976#, no-wrap
18977msgid "users"
18978msgstr ""
18979
18980#. type: cindex
32747aa9 18981#: doc/guix.texi:10973
544cab3d
LC
18982#, no-wrap
18983msgid "accounts"
18984msgstr ""
18985
18986#. type: cindex
32747aa9 18987#: doc/guix.texi:10974
544cab3d
LC
18988#, no-wrap
18989msgid "user accounts"
18990msgstr ""
18991
18992#. type: Plain text
32747aa9 18993#: doc/guix.texi:10978
544cab3d
LC
18994msgid "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:"
18995msgstr ""
18996
18997#. type: example
32747aa9 18998#: doc/guix.texi:10989
544cab3d
LC
18999#, no-wrap
19000msgid ""
19001"(user-account\n"
19002" (name \"alice\")\n"
19003" (group \"users\")\n"
19004" (supplementary-groups '(\"wheel\" ;allow use of sudo, etc.\n"
19005" \"audio\" ;sound card\n"
19006" \"video\" ;video devices such as webcams\n"
19007" \"cdrom\")) ;the good ol' CD-ROM\n"
19008" (comment \"Bob's sister\")\n"
19009" (home-directory \"/home/alice\"))\n"
19010msgstr ""
19011
19012#. type: Plain text
32747aa9 19013#: doc/guix.texi:10998
544cab3d
LC
19014msgid "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."
19015msgstr ""
19016
19017#. type: deftp
32747aa9 19018#: doc/guix.texi:10999
544cab3d
LC
19019#, no-wrap
19020msgid "{Data Type} user-account"
19021msgstr ""
19022
19023#. type: deftp
32747aa9 19024#: doc/guix.texi:11002
544cab3d
LC
19025msgid "Objects of this type represent user accounts. The following members may be specified:"
19026msgstr ""
19027
19028#. type: table
32747aa9 19029#: doc/guix.texi:11006
544cab3d
LC
19030msgid "The name of the user account."
19031msgstr ""
19032
19033#. type: itemx
32747aa9 19034#: doc/guix.texi:11007 doc/guix.texi:23811
544cab3d
LC
19035#, no-wrap
19036msgid "group"
19037msgstr ""
19038
19039#. type: cindex
32747aa9 19040#: doc/guix.texi:11008 doc/guix.texi:11075
544cab3d
LC
19041#, no-wrap
19042msgid "groups"
19043msgstr ""
19044
19045#. type: table
32747aa9 19046#: doc/guix.texi:11011
544cab3d
LC
19047msgid "This is the name (a string) or identifier (a number) of the user group this account belongs to."
19048msgstr ""
19049
19050#. type: item
32747aa9 19051#: doc/guix.texi:11012
544cab3d
LC
19052#, no-wrap
19053msgid "@code{supplementary-groups} (default: @code{'()})"
19054msgstr ""
19055
19056#. type: table
32747aa9 19057#: doc/guix.texi:11015
544cab3d
LC
19058msgid "Optionally, this can be defined as a list of group names that this account belongs to."
19059msgstr ""
19060
19061#. type: item
32747aa9 19062#: doc/guix.texi:11016
544cab3d
LC
19063#, no-wrap
19064msgid "@code{uid} (default: @code{#f})"
19065msgstr ""
19066
19067#. type: table
32747aa9 19068#: doc/guix.texi:11020
544cab3d
LC
19069msgid "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."
19070msgstr ""
19071
19072#. type: item
32747aa9 19073#: doc/guix.texi:11021
544cab3d
LC
19074#, no-wrap
19075msgid "@code{comment} (default: @code{\"\"})"
19076msgstr ""
19077
19078#. type: table
32747aa9 19079#: doc/guix.texi:11023
544cab3d
LC
19080msgid "A comment about the account, such as the account owner's full name."
19081msgstr ""
19082
19083#. type: code{#1}
32747aa9 19084#: doc/guix.texi:11024
544cab3d
LC
19085#, no-wrap
19086msgid "home-directory"
19087msgstr ""
19088
19089#. type: table
32747aa9 19090#: doc/guix.texi:11026
544cab3d
LC
19091msgid "This is the name of the home directory for the account."
19092msgstr ""
19093
19094#. type: item
32747aa9 19095#: doc/guix.texi:11027
544cab3d
LC
19096#, no-wrap
19097msgid "@code{create-home-directory?} (default: @code{#t})"
19098msgstr ""
19099
19100#. type: table
32747aa9 19101#: doc/guix.texi:11030
544cab3d
LC
19102msgid "Indicates whether the home directory of this account should be created if it does not exist yet."
19103msgstr ""
19104
19105#. type: item
32747aa9 19106#: doc/guix.texi:11031
544cab3d
LC
19107#, no-wrap
19108msgid "@code{shell} (default: Bash)"
19109msgstr ""
19110
19111#. type: table
32747aa9 19112#: doc/guix.texi:11034
544cab3d
LC
19113msgid "This is a G-expression denoting the file name of a program to be used as the shell (@pxref{G-Expressions})."
19114msgstr ""
19115
19116#. type: item
32747aa9 19117#: doc/guix.texi:11035 doc/guix.texi:11093
544cab3d
LC
19118#, no-wrap
19119msgid "@code{system?} (default: @code{#f})"
19120msgstr ""
19121
19122#. type: table
32747aa9 19123#: doc/guix.texi:11039
544cab3d
LC
19124msgid "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."
19125msgstr ""
19126
19127#. type: anchor{#1}
32747aa9 19128#: doc/guix.texi:11041
544cab3d
LC
19129msgid "user-account-password"
19130msgstr ""
19131
19132#. type: cindex
32747aa9 19133#: doc/guix.texi:11041
544cab3d
LC
19134#, no-wrap
19135msgid "password, for user accounts"
19136msgstr ""
19137
19138#. type: item
32747aa9 19139#: doc/guix.texi:11042 doc/guix.texi:11097
544cab3d
LC
19140#, no-wrap
19141msgid "@code{password} (default: @code{#f})"
19142msgstr ""
19143
19144#. type: table
32747aa9 19145#: doc/guix.texi:11048
544cab3d
LC
19146msgid "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."
19147msgstr ""
19148
19149#. type: table
32747aa9 19150#: doc/guix.texi:11052
544cab3d
LC
19151msgid "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:"
19152msgstr ""
19153
19154#. type: example
32747aa9 19155#: doc/guix.texi:11057
544cab3d
LC
19156#, no-wrap
19157msgid ""
19158"(user-account\n"
19159" (name \"charlie\")\n"
19160" (group \"users\")\n"
19161"\n"
19162msgstr ""
19163
19164#. type: example
32747aa9 19165#: doc/guix.texi:11060
544cab3d
LC
19166#, no-wrap
19167msgid ""
19168" ;; Specify a SHA-512-hashed initial password.\n"
19169" (password (crypt \"InitialPassword!\" \"$6$abc\")))\n"
19170msgstr ""
19171
19172#. type: quotation
32747aa9 19173#: doc/guix.texi:11066
544cab3d
LC
19174msgid "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."
19175msgstr ""
19176
19177#. type: table
32747aa9 19178#: doc/guix.texi:11071
544cab3d
LC
19179msgid "@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."
19180msgstr ""
19181
19182#. type: Plain text
32747aa9 19183#: doc/guix.texi:11077
544cab3d
LC
19184msgid "User group declarations are even simpler:"
19185msgstr ""
19186
19187#. type: example
32747aa9 19188#: doc/guix.texi:11080
544cab3d
LC
19189#, no-wrap
19190msgid "(user-group (name \"students\"))\n"
19191msgstr ""
19192
19193#. type: deftp
32747aa9 19194#: doc/guix.texi:11082
544cab3d
LC
19195#, no-wrap
19196msgid "{Data Type} user-group"
19197msgstr ""
19198
19199#. type: deftp
32747aa9 19200#: doc/guix.texi:11084
544cab3d
LC
19201msgid "This type is for, well, user groups. There are just a few fields:"
19202msgstr ""
19203
19204#. type: table
32747aa9 19205#: doc/guix.texi:11088
544cab3d
LC
19206msgid "The name of the group."
19207msgstr ""
19208
19209#. type: item
32747aa9 19210#: doc/guix.texi:11089
544cab3d
LC
19211#, no-wrap
19212msgid "@code{id} (default: @code{#f})"
19213msgstr ""
19214
19215#. type: table
32747aa9 19216#: doc/guix.texi:11092
544cab3d
LC
19217msgid "The group identifier (a number). If @code{#f}, a new number is automatically allocated when the group is created."
19218msgstr ""
19219
19220#. type: table
32747aa9 19221#: doc/guix.texi:11096
544cab3d
LC
19222msgid "This Boolean value indicates whether the group is a ``system'' group. System groups have low numerical IDs."
19223msgstr ""
19224
19225#. type: table
32747aa9 19226#: doc/guix.texi:11100
544cab3d
LC
19227msgid "What, user groups can have a password? Well, apparently yes. Unless @code{#f}, this field specifies the password of the group."
19228msgstr ""
19229
19230#. type: Plain text
32747aa9 19231#: doc/guix.texi:11106
544cab3d
LC
19232msgid "For convenience, a variable lists all the basic user groups one may expect:"
19233msgstr ""
19234
19235#. type: defvr
32747aa9 19236#: doc/guix.texi:11107
544cab3d
LC
19237#, no-wrap
19238msgid "{Scheme Variable} %base-groups"
19239msgstr ""
19240
19241#. type: defvr
32747aa9 19242#: doc/guix.texi:11112
544cab3d
LC
19243msgid "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''."
19244msgstr ""
19245
19246#. type: defvr
32747aa9 19247#: doc/guix.texi:11114
544cab3d
LC
19248#, no-wrap
19249msgid "{Scheme Variable} %base-user-accounts"
19250msgstr ""
19251
19252#. type: defvr
32747aa9 19253#: doc/guix.texi:11117
544cab3d
LC
19254msgid "This is the list of basic system accounts that programs may expect to find on a GNU/Linux system, such as the ``nobody'' account."
19255msgstr ""
19256
19257#. type: defvr
32747aa9 19258#: doc/guix.texi:11120
544cab3d
LC
19259msgid "Note that the ``root'' account is not included here. It is a special-case and is automatically added whether or not it is specified."
19260msgstr ""
19261
19262#. type: cindex
32747aa9 19263#: doc/guix.texi:11126
544cab3d
LC
19264#, no-wrap
19265msgid "keymap"
19266msgstr ""
19267
19268#. type: Plain text
32747aa9 19269#: doc/guix.texi:11134
544cab3d
LC
19270msgid "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."
19271msgstr ""
19272
19273#. type: cindex
32747aa9 19274#: doc/guix.texi:11135
544cab3d
LC
19275#, no-wrap
19276msgid "keyboard layout, definition"
19277msgstr ""
19278
19279#. type: Plain text
32747aa9 19280#: doc/guix.texi:11137
544cab3d
LC
19281msgid "There are three components that will want to know about your keyboard layout:"
19282msgstr ""
19283
19284#. type: itemize
32747aa9 19285#: doc/guix.texi:11144
544cab3d
LC
19286msgid "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."
19287msgstr ""
19288
19289#. type: itemize
32747aa9 19290#: doc/guix.texi:11149
544cab3d
LC
19291msgid "The @emph{operating system kernel}, Linux, will need that so that the console is properly configured (@pxref{operating-system Reference, @code{keyboard-layout}})."
19292msgstr ""
19293
19294#. type: itemize
32747aa9 19295#: doc/guix.texi:11153
544cab3d
LC
19296msgid "The @emph{graphical display server}, usually Xorg, also has its own idea of the keyboard layout (@pxref{X Window, @code{keyboard-layout}})."
19297msgstr ""
19298
19299#. type: Plain text
32747aa9 19300#: doc/guix.texi:11157
544cab3d
LC
19301msgid "Guix allows you to configure all three separately but, fortunately, it allows you to share the same keyboard layout for all three components."
19302msgstr ""
19303
19304#. type: cindex
32747aa9 19305#: doc/guix.texi:11158
544cab3d
LC
19306#, no-wrap
19307msgid "XKB, keyboard layouts"
19308msgstr ""
19309
19310#. type: Plain text
32747aa9 19311#: doc/guix.texi:11166
544cab3d
LC
19312msgid "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. Here are a few example:"
19313msgstr ""
19314
19315#. type: example
32747aa9 19316#: doc/guix.texi:11171
544cab3d
LC
19317#, no-wrap
19318msgid ""
19319";; The German QWERTZ layout. Here we assume a standard\n"
19320";; \"pc105\" keyboard model.\n"
19321"(keyboard-layout \"de\")\n"
19322"\n"
19323msgstr ""
19324
19325#. type: example
32747aa9 19326#: doc/guix.texi:11174
544cab3d
LC
19327#, no-wrap
19328msgid ""
19329";; The bépo variant of the French layout.\n"
19330"(keyboard-layout \"fr\" \"bepo\")\n"
19331"\n"
19332msgstr ""
19333
19334#. type: example
32747aa9 19335#: doc/guix.texi:11177
544cab3d
LC
19336#, no-wrap
19337msgid ""
19338";; The Catalan layout.\n"
19339"(keyboard-layout \"es\" \"cat\")\n"
19340"\n"
19341msgstr ""
19342
19343#. type: example
32747aa9 19344#: doc/guix.texi:11184
544cab3d
LC
19345#, no-wrap
19346msgid ""
19347";; The Latin American Spanish layout. In addition, the\n"
19348";; \"Caps Lock\" key is used as an additional \"Ctrl\" key,\n"
19349";; and the \"Menu\" key is used as a \"Compose\" key to enter\n"
19350";; accented letters.\n"
19351"(keyboard-layout \"latam\"\n"
19352" #:options '(\"ctrl:nocaps\" \"compose:menu\"))\n"
19353"\n"
19354msgstr ""
19355
19356#. type: example
32747aa9 19357#: doc/guix.texi:11187
544cab3d
LC
19358#, no-wrap
19359msgid ""
19360";; The Russian layout for a ThinkPad keyboard.\n"
19361"(keyboard-layout \"ru\" #:model \"thinkpad\")\n"
19362"\n"
19363msgstr ""
19364
19365#. type: example
32747aa9 19366#: doc/guix.texi:11192
544cab3d
LC
19367#, no-wrap
19368msgid ""
19369";; The \"US international\" layout, which is the US layout plus\n"
19370";; dead keys to enter accented characters. This is for an\n"
19371";; Apple MacBook keyboard.\n"
19372"(keyboard-layout \"us\" \"intl\" #:model \"macbook78\")\n"
19373msgstr ""
19374
19375#. type: Plain text
32747aa9 19376#: doc/guix.texi:11196
544cab3d
LC
19377msgid "See the @file{share/X11/xkb} directory of the @code{xkeyboard-config} package for a complete list of supported layouts, variants, and models."
19378msgstr ""
19379
19380#. type: cindex
32747aa9 19381#: doc/guix.texi:11197
544cab3d
LC
19382#, no-wrap
19383msgid "keyboard layout, configuration"
19384msgstr ""
19385
19386#. type: Plain text
32747aa9 19387#: doc/guix.texi:11201
544cab3d
LC
19388msgid "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:"
19389msgstr ""
19390
19391#. type: findex
32747aa9 19392#: doc/guix.texi:11202
544cab3d
LC
19393#, no-wrap
19394msgid "set-xorg-configuration"
19395msgstr ""
19396
19397#. type: lisp
32747aa9 19398#: doc/guix.texi:11206
544cab3d
LC
19399#, no-wrap
19400msgid ""
19401";; Using the Turkish layout for the bootloader, the console,\n"
19402";; and for Xorg.\n"
19403"\n"
19404msgstr ""
19405
19406#. type: lisp
32747aa9 19407#: doc/guix.texi:11218
544cab3d
LC
19408#, no-wrap
19409msgid ""
19410"(operating-system\n"
19411" ;; ...\n"
19412" (keyboard-layout (keyboard-layout \"tr\")) ;for the console\n"
19413" (bootloader (bootloader-configuration\n"
19414" (bootloader grub-efi-bootloader)\n"
19415" (target \"/boot/efi\")\n"
19416" (keyboard-layout keyboard-layout))) ;for GRUB\n"
19417" (services (cons (set-xorg-configuration\n"
19418" (xorg-configuration ;for Xorg\n"
19419" (keyboard-layout keyboard-layout)))\n"
19420" %desktop-services)))\n"
19421msgstr ""
19422
19423#. type: Plain text
32747aa9 19424#: doc/guix.texi:11225
544cab3d
LC
19425msgid "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."
19426msgstr ""
19427
19428#. type: Plain text
32747aa9 19429#: doc/guix.texi:11228
544cab3d
LC
19430msgid "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:"
19431msgstr ""
19432
19433#. type: itemize
32747aa9 19434#: doc/guix.texi:11233
544cab3d
LC
19435msgid "If you're using GNOME, its settings panel has a ``Region & Language'' entry where you can select one or more keyboard layouts."
19436msgstr ""
19437
19438#. type: itemize
32747aa9 19439#: doc/guix.texi:11238
544cab3d
LC
19440msgid "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:"
19441msgstr ""
19442
19443#. type: example
32747aa9 19444#: doc/guix.texi:11241
544cab3d
LC
19445#, no-wrap
19446msgid "setxkbmap us dvorak\n"
19447msgstr ""
19448
19449#. type: itemize
32747aa9 19450#: doc/guix.texi:11248
544cab3d
LC
19451msgid "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:"
19452msgstr ""
19453
19454#. type: example
32747aa9 19455#: doc/guix.texi:11251
544cab3d
LC
19456#, no-wrap
19457msgid "loadkeys fr-bepo\n"
19458msgstr ""
19459
19460#. type: cindex
32747aa9 19461#: doc/guix.texi:11257
544cab3d
LC
19462#, no-wrap
19463msgid "locale"
19464msgstr ""
19465
19466#. type: Plain text
32747aa9 19467#: doc/guix.texi:11264
544cab3d
LC
19468msgid "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."
19469msgstr ""
19470
19471#. type: cindex
32747aa9 19472#: doc/guix.texi:11265
544cab3d
LC
19473#, no-wrap
19474msgid "locale definition"
19475msgstr ""
19476
19477#. type: Plain text
32747aa9 19478#: doc/guix.texi:11269
544cab3d
LC
19479msgid "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}})."
19480msgstr ""
19481
19482#. type: Plain text
32747aa9 19483#: doc/guix.texi:11278
544cab3d
LC
19484msgid "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."
19485msgstr ""
19486
19487#. type: Plain text
32747aa9 19488#: doc/guix.texi:11281
544cab3d
LC
19489msgid "For instance, to add the North Frisian locale for Germany, the value of that field may be:"
19490msgstr ""
19491
19492#. type: example
32747aa9 19493#: doc/guix.texi:11286
544cab3d
LC
19494#, no-wrap
19495msgid ""
19496"(cons (locale-definition\n"
19497" (name \"fy_DE.utf8\") (source \"fy_DE\"))\n"
19498" %default-locale-definitions)\n"
19499msgstr ""
19500
19501#. type: Plain text
32747aa9 19502#: doc/guix.texi:11290
544cab3d
LC
19503msgid "Likewise, to save space, one might want @code{locale-definitions} to list only the locales that are actually used, as in:"
19504msgstr ""
19505
19506#. type: example
32747aa9 19507#: doc/guix.texi:11295
544cab3d
LC
19508#, no-wrap
19509msgid ""
19510"(list (locale-definition\n"
19511" (name \"ja_JP.eucjp\") (source \"ja_JP\")\n"
19512" (charset \"EUC-JP\")))\n"
19513msgstr ""
19514
19515#. type: Plain text
32747aa9 19516#: doc/guix.texi:11304
544cab3d
LC
19517msgid "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 @code{LOCPATH} environment variable (@pxref{locales-and-locpath, @code{LOCPATH} and locale packages})."
19518msgstr ""
19519
19520#. type: Plain text
32747aa9 19521#: doc/guix.texi:11307
544cab3d
LC
19522msgid "The @code{locale-definition} form is provided by the @code{(gnu system locale)} module. Details are given below."
19523msgstr ""
19524
19525#. type: deftp
32747aa9 19526#: doc/guix.texi:11308
544cab3d
LC
19527#, no-wrap
19528msgid "{Data Type} locale-definition"
19529msgstr ""
19530
19531#. type: deftp
32747aa9 19532#: doc/guix.texi:11310
544cab3d
LC
19533msgid "This is the data type of a locale definition."
19534msgstr ""
19535
19536#. type: table
32747aa9 19537#: doc/guix.texi:11316
544cab3d
LC
19538msgid "The name of the locale. @xref{Locale Names,,, libc, The GNU C Library Reference Manual}, for more information on locale names."
19539msgstr ""
19540
19541#. type: table
32747aa9 19542#: doc/guix.texi:11320
544cab3d
LC
19543msgid "The name of the source for that locale. This is typically the @code{@var{language}_@var{territory}} part of the locale name."
19544msgstr ""
19545
19546#. type: item
32747aa9 19547#: doc/guix.texi:11321
544cab3d
LC
19548#, no-wrap
19549msgid "@code{charset} (default: @code{\"UTF-8\"})"
19550msgstr ""
19551
19552#. type: table
32747aa9
LC
19553#: doc/guix.texi:11325
19554msgid "The ``character set'' or ``code set'' for that locale, @uref{https://www.iana.org/assignments/character-sets, as defined by IANA}."
544cab3d
LC
19555msgstr ""
19556
19557#. type: defvr
32747aa9 19558#: doc/guix.texi:11329
544cab3d
LC
19559#, no-wrap
19560msgid "{Scheme Variable} %default-locale-definitions"
19561msgstr ""
19562
19563#. type: defvr
32747aa9 19564#: doc/guix.texi:11333
544cab3d
LC
19565msgid "A list of commonly used UTF-8 locales, used as the default value of the @code{locale-definitions} field of @code{operating-system} declarations."
19566msgstr ""
19567
19568#. type: cindex
32747aa9 19569#: doc/guix.texi:11334
544cab3d
LC
19570#, no-wrap
19571msgid "locale name"
19572msgstr ""
19573
19574#. type: cindex
32747aa9 19575#: doc/guix.texi:11335
544cab3d
LC
19576#, no-wrap
19577msgid "normalized codeset in locale names"
19578msgstr ""
19579
19580#. type: defvr
32747aa9 19581#: doc/guix.texi:11341
544cab3d
LC
19582msgid "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}."
19583msgstr ""
19584
19585#. type: subsection
32747aa9 19586#: doc/guix.texi:11343
544cab3d
LC
19587#, no-wrap
19588msgid "Locale Data Compatibility Considerations"
19589msgstr ""
19590
19591#. type: cindex
32747aa9 19592#: doc/guix.texi:11345
544cab3d
LC
19593#, no-wrap
19594msgid "incompatibility, of locale data"
19595msgstr ""
19596
19597#. type: Plain text
32747aa9 19598#: doc/guix.texi:11352
544cab3d
LC
19599msgid "@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."
19600msgstr ""
19601
19602#. type: Plain text
32747aa9 19603#: doc/guix.texi:11364
544cab3d
LC
19604msgid "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, @code{LC_COLLATE} data is incompatible); thus calls to @code{setlocale} may fail, but programs will not abort."
19605msgstr ""
19606
19607#. type: Plain text
32747aa9 19608#: doc/guix.texi:11369
544cab3d
LC
19609msgid "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."
19610msgstr ""
19611
19612#. type: Plain text
32747aa9 19613#: doc/guix.texi:11373
544cab3d
LC
19614msgid "Fortunately, unprivileged users can also install their own locale data and define @var{GUIX_LOCPATH} accordingly (@pxref{locales-and-locpath, @code{GUIX_LOCPATH} and locale packages})."
19615msgstr ""
19616
19617#. type: Plain text
32747aa9 19618#: doc/guix.texi:11380
544cab3d
LC
19619msgid "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}:"
19620msgstr ""
19621
19622#. type: example
32747aa9 19623#: doc/guix.texi:11383
544cab3d
LC
19624#, no-wrap
19625msgid ""
19626"(use-package-modules base)\n"
19627"\n"
19628msgstr ""
19629
19630#. type: example
32747aa9 19631#: doc/guix.texi:11387
544cab3d
LC
19632#, no-wrap
19633msgid ""
19634"(operating-system\n"
19635" ;; @dots{}\n"
19636" (locale-libcs (list glibc-2.21 (canonical-package glibc))))\n"
19637msgstr ""
19638
19639#. type: Plain text
32747aa9 19640#: doc/guix.texi:11392
544cab3d
LC
19641msgid "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}."
19642msgstr ""
19643
19644#. type: cindex
32747aa9 19645#: doc/guix.texi:11397
544cab3d
LC
19646#, no-wrap
19647msgid "system services"
19648msgstr ""
19649
19650#. type: Plain text
32747aa9 19651#: doc/guix.texi:11403
544cab3d
LC
19652msgid "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."
19653msgstr ""
19654
19655#. type: Plain text
32747aa9 19656#: doc/guix.texi:11410
544cab3d
LC
19657msgid "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:"
19658msgstr ""
19659
19660#. type: example
32747aa9 19661#: doc/guix.texi:11413
544cab3d
LC
19662#, no-wrap
19663msgid "# herd status\n"
19664msgstr ""
19665
19666#. type: Plain text
32747aa9 19667#: doc/guix.texi:11418
544cab3d
LC
19668msgid "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:"
19669msgstr ""
19670
19671#. type: example
32747aa9 19672#: doc/guix.texi:11422
544cab3d
LC
19673#, no-wrap
19674msgid ""
19675"# herd doc nscd\n"
19676"Run libc's name service cache daemon (nscd).\n"
19677"\n"
19678msgstr ""
19679
19680#. type: example
32747aa9 19681#: doc/guix.texi:11425
544cab3d
LC
19682#, no-wrap
19683msgid ""
19684"# herd doc nscd action invalidate\n"
19685"invalidate: Invalidate the given cache--e.g., 'hosts' for host name lookups.\n"
19686msgstr ""
19687
19688#. type: Plain text
32747aa9 19689#: doc/guix.texi:11430
544cab3d
LC
19690msgid "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:"
19691msgstr ""
19692
19693#. type: example
32747aa9 19694#: doc/guix.texi:11437
544cab3d
LC
19695#, no-wrap
19696msgid ""
19697"# herd stop nscd\n"
19698"Service nscd has been stopped.\n"
19699"# herd restart xorg-server\n"
19700"Service xorg-server has been stopped.\n"
19701"Service xorg-server has been started.\n"
19702msgstr ""
19703
19704#. type: Plain text
32747aa9 19705#: doc/guix.texi:11442
544cab3d
LC
19706msgid "The following sections document the available services, starting with the core services, that may be used in an @code{operating-system} declaration."
19707msgstr ""
19708
19709#. type: subsection
32747aa9 19710#: doc/guix.texi:11471 doc/guix.texi:18084 doc/guix.texi:18085
544cab3d
LC
19711#, no-wrap
19712msgid "LDAP Services"
19713msgstr ""
19714
19715#. type: menuentry
32747aa9 19716#: doc/guix.texi:11471
544cab3d
LC
19717msgid "LDAP services."
19718msgstr ""
19719
19720#. type: Plain text
32747aa9 19721#: doc/guix.texi:11479
544cab3d
LC
19722msgid "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."
19723msgstr ""
19724
19725#. type: defvr
32747aa9 19726#: doc/guix.texi:11480
544cab3d
LC
19727#, no-wrap
19728msgid "{Scheme Variable} %base-services"
19729msgstr ""
19730
19731#. type: defvr
32747aa9 19732#: doc/guix.texi:11486
544cab3d
LC
19733msgid "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."
19734msgstr ""
19735
19736#. type: defvr
32747aa9 19737#: doc/guix.texi:11491
544cab3d
LC
19738msgid "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 @var{%base-services}, like this:"
19739msgstr ""
19740
19741#. type: example
32747aa9 19742#: doc/guix.texi:11496
544cab3d
LC
19743#, no-wrap
19744msgid ""
19745"(append (list (service avahi-service-type)\n"
19746" (service openssh-service-type))\n"
19747" %base-services)\n"
19748msgstr ""
19749
19750#. type: defvr
32747aa9 19751#: doc/guix.texi:11499
544cab3d
LC
19752#, no-wrap
19753msgid "{Scheme Variable} special-files-service-type"
19754msgstr ""
19755
19756#. type: defvr
32747aa9 19757#: doc/guix.texi:11502
544cab3d
LC
19758msgid "This is the service that sets up ``special files'' such as @file{/bin/sh}; an instance of it is part of @code{%base-services}."
19759msgstr ""
19760
19761#. type: defvr
32747aa9 19762#: doc/guix.texi:11506
544cab3d
LC
19763msgid "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:"
19764msgstr ""
19765
19766#. type: file{#1}
32747aa9 19767#: doc/guix.texi:11507
544cab3d
LC
19768#, no-wrap
19769msgid "/bin/sh"
19770msgstr ""
19771
19772#. type: cindex
32747aa9 19773#: doc/guix.texi:11508
544cab3d
LC
19774#, no-wrap
19775msgid "@file{sh}, in @file{/bin}"
19776msgstr ""
19777
19778#. type: example
32747aa9 19779#: doc/guix.texi:11511
544cab3d
LC
19780#, no-wrap
19781msgid "`((\"/bin/sh\" ,(file-append @var{bash} \"/bin/sh\")))\n"
19782msgstr ""
19783
19784#. type: file{#1}
32747aa9 19785#: doc/guix.texi:11513
544cab3d
LC
19786#, no-wrap
19787msgid "/usr/bin/env"
19788msgstr ""
19789
19790#. type: cindex
32747aa9 19791#: doc/guix.texi:11514
544cab3d
LC
19792#, no-wrap
19793msgid "@file{env}, in @file{/usr/bin}"
19794msgstr ""
19795
19796#. type: defvr
32747aa9 19797#: doc/guix.texi:11517
544cab3d
LC
19798msgid "If you want to add, say, @code{/usr/bin/env} to your system, you can change it to:"
19799msgstr ""
19800
19801#. type: example
32747aa9 19802#: doc/guix.texi:11521
544cab3d
LC
19803#, no-wrap
19804msgid ""
19805"`((\"/bin/sh\" ,(file-append @var{bash} \"/bin/sh\"))\n"
19806" (\"/usr/bin/env\" ,(file-append @var{coreutils} \"/bin/env\")))\n"
19807msgstr ""
19808
19809#. type: defvr
32747aa9 19810#: doc/guix.texi:11528
544cab3d
LC
19811msgid "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.)"
19812msgstr ""
19813
19814#. type: deffn
32747aa9 19815#: doc/guix.texi:11530
544cab3d
LC
19816#, no-wrap
19817msgid "{Scheme Procedure} extra-special-file @var{file} @var{target}"
19818msgstr ""
19819
19820#. type: deffn
32747aa9 19821#: doc/guix.texi:11532
544cab3d
LC
19822msgid "Use @var{target} as the ``special file'' @var{file}."
19823msgstr ""
19824
19825#. type: deffn
32747aa9 19826#: doc/guix.texi:11536
544cab3d
LC
19827msgid "For example, adding the following lines to the @code{services} field of your operating system declaration leads to a @file{/usr/bin/env} symlink:"
19828msgstr ""
19829
19830#. type: example
32747aa9 19831#: doc/guix.texi:11540
544cab3d
LC
19832#, no-wrap
19833msgid ""
19834"(extra-special-file \"/usr/bin/env\"\n"
19835" (file-append coreutils \"/bin/env\"))\n"
19836msgstr ""
19837
19838#. type: deffn
32747aa9 19839#: doc/guix.texi:11543
544cab3d
LC
19840#, no-wrap
19841msgid "{Scheme Procedure} host-name-service @var{name}"
19842msgstr ""
19843
19844#. type: deffn
32747aa9 19845#: doc/guix.texi:11545
544cab3d
LC
19846msgid "Return a service that sets the host name to @var{name}."
19847msgstr ""
19848
19849#. type: deffn
32747aa9 19850#: doc/guix.texi:11547
544cab3d
LC
19851#, no-wrap
19852msgid "{Scheme Procedure} login-service @var{config}"
19853msgstr ""
19854
19855#. type: deffn
32747aa9 19856#: doc/guix.texi:11551
544cab3d
LC
19857msgid "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."
19858msgstr ""
19859
19860#. type: deftp
32747aa9 19861#: doc/guix.texi:11553
544cab3d
LC
19862#, no-wrap
19863msgid "{Data Type} login-configuration"
19864msgstr ""
19865
19866#. type: deftp
32747aa9 19867#: doc/guix.texi:11555
544cab3d
LC
19868msgid "This is the data type representing the configuration of login."
19869msgstr ""
19870
19871#. type: code{#1}
32747aa9 19872#: doc/guix.texi:11558
544cab3d
LC
19873#, no-wrap
19874msgid "motd"
19875msgstr ""
19876
19877#. type: cindex
32747aa9 19878#: doc/guix.texi:11559
544cab3d
LC
19879#, no-wrap
19880msgid "message of the day"
19881msgstr ""
19882
19883#. type: table
32747aa9 19884#: doc/guix.texi:11561
544cab3d
LC
19885msgid "A file-like object containing the ``message of the day''."
19886msgstr ""
19887
19888#. type: item
32747aa9 19889#: doc/guix.texi:11562 doc/guix.texi:13522
544cab3d
LC
19890#, no-wrap
19891msgid "@code{allow-empty-passwords?} (default: @code{#t})"
19892msgstr ""
19893
19894#. type: table
32747aa9 19895#: doc/guix.texi:11565
544cab3d
LC
19896msgid "Allow empty passwords by default so that first-time users can log in when the 'root' account has just been created."
19897msgstr ""
19898
19899#. type: deffn
32747aa9 19900#: doc/guix.texi:11569
544cab3d
LC
19901#, no-wrap
19902msgid "{Scheme Procedure} mingetty-service @var{config}"
19903msgstr ""
19904
19905#. type: deffn
32747aa9 19906#: doc/guix.texi:11573
544cab3d
LC
19907msgid "Return a service to run mingetty according to @var{config}, a @code{<mingetty-configuration>} object, which specifies the tty to run, among other things."
19908msgstr ""
19909
19910#. type: deftp
32747aa9 19911#: doc/guix.texi:11575
544cab3d
LC
19912#, no-wrap
19913msgid "{Data Type} mingetty-configuration"
19914msgstr ""
19915
19916#. type: deftp
32747aa9 19917#: doc/guix.texi:11578
544cab3d
LC
19918msgid "This is the data type representing the configuration of Mingetty, which provides the default implementation of virtual console log-in."
19919msgstr ""
19920
19921#. type: code{#1}
32747aa9 19922#: doc/guix.texi:11581 doc/guix.texi:11617
544cab3d
LC
19923#, no-wrap
19924msgid "tty"
19925msgstr ""
19926
19927#. type: table
32747aa9 19928#: doc/guix.texi:11583
544cab3d
LC
19929msgid "The name of the console this Mingetty runs on---e.g., @code{\"tty1\"}."
19930msgstr ""
19931
19932#. type: item
32747aa9 19933#: doc/guix.texi:11584 doc/guix.texi:11646 doc/guix.texi:11805
544cab3d
LC
19934#, no-wrap
19935msgid "@code{auto-login} (default: @code{#f})"
19936msgstr ""
19937
19938#. type: table
32747aa9 19939#: doc/guix.texi:11588
544cab3d
LC
19940msgid "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."
19941msgstr ""
19942
19943#. type: item
32747aa9 19944#: doc/guix.texi:11589
544cab3d
LC
19945#, no-wrap
19946msgid "@code{login-program} (default: @code{#f})"
19947msgstr ""
19948
19949#. type: table
32747aa9 19950#: doc/guix.texi:11593
544cab3d
LC
19951msgid "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."
19952msgstr ""
19953
19954#. type: item
32747aa9 19955#: doc/guix.texi:11594
544cab3d
LC
19956#, no-wrap
19957msgid "@code{login-pause?} (default: @code{#f})"
19958msgstr ""
19959
19960#. type: table
32747aa9 19961#: doc/guix.texi:11597
544cab3d
LC
19962msgid "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."
19963msgstr ""
19964
19965#. type: item
32747aa9 19966#: doc/guix.texi:11598
544cab3d
LC
19967#, no-wrap
19968msgid "@code{mingetty} (default: @var{mingetty})"
19969msgstr ""
19970
19971#. type: table
32747aa9 19972#: doc/guix.texi:11600
544cab3d
LC
19973msgid "The Mingetty package to use."
19974msgstr ""
19975
19976#. type: deffn
32747aa9 19977#: doc/guix.texi:11604
544cab3d
LC
19978#, no-wrap
19979msgid "{Scheme Procedure} agetty-service @var{config}"
19980msgstr ""
19981
19982#. type: deffn
32747aa9 19983#: doc/guix.texi:11608
544cab3d
LC
19984msgid "Return a service to run agetty according to @var{config}, an @code{<agetty-configuration>} object, which specifies the tty to run, among other things."
19985msgstr ""
19986
19987#. type: deftp
32747aa9 19988#: doc/guix.texi:11610
544cab3d
LC
19989#, no-wrap
19990msgid "{Data Type} agetty-configuration"
19991msgstr ""
19992
19993#. type: deftp
32747aa9 19994#: doc/guix.texi:11614
544cab3d
LC
19995msgid "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."
19996msgstr ""
19997
19998#. type: table
32747aa9 19999#: doc/guix.texi:11621
544cab3d
LC
20000msgid "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."
20001msgstr ""
20002
20003#. type: table
32747aa9 20004#: doc/guix.texi:11625
544cab3d
LC
20005msgid "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."
20006msgstr ""
20007
20008#. type: table
32747aa9 20009#: doc/guix.texi:11629
544cab3d
LC
20010msgid "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."
20011msgstr ""
20012
20013#. type: table
32747aa9 20014#: doc/guix.texi:11633
544cab3d
LC
20015msgid "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."
20016msgstr ""
20017
20018#. type: item
32747aa9 20019#: doc/guix.texi:11634
544cab3d
LC
20020#, no-wrap
20021msgid "@code{baud-rate} (default: @code{#f})"
20022msgstr ""
20023
20024#. type: table
32747aa9 20025#: doc/guix.texi:11637
544cab3d
LC
20026msgid "A string containing a comma-separated list of one or more baud rates, in descending order."
20027msgstr ""
20028
20029#. type: item
32747aa9 20030#: doc/guix.texi:11638
544cab3d
LC
20031#, no-wrap
20032msgid "@code{term} (default: @code{#f})"
20033msgstr ""
20034
20035#. type: table
32747aa9 20036#: doc/guix.texi:11641
544cab3d
LC
20037msgid "A string containing the value used for the @code{TERM} environment variable."
20038msgstr ""
20039
20040#. type: item
32747aa9 20041#: doc/guix.texi:11642
544cab3d
LC
20042#, no-wrap
20043msgid "@code{eight-bits?} (default: @code{#f})"
20044msgstr ""
20045
20046#. type: table
32747aa9 20047#: doc/guix.texi:11645
544cab3d
LC
20048msgid "When @code{#t}, the tty is assumed to be 8-bit clean, and parity detection is disabled."
20049msgstr ""
20050
20051#. type: table
32747aa9 20052#: doc/guix.texi:11649 doc/guix.texi:11808
544cab3d
LC
20053msgid "When passed a login name, as a string, the specified user will be logged in automatically without prompting for their login name or password."
20054msgstr ""
20055
20056#. type: item
32747aa9 20057#: doc/guix.texi:11650
544cab3d
LC
20058#, no-wrap
20059msgid "@code{no-reset?} (default: @code{#f})"
20060msgstr ""
20061
20062#. type: table
32747aa9 20063#: doc/guix.texi:11652
544cab3d
LC
20064msgid "When @code{#t}, don't reset terminal cflags (control modes)."
20065msgstr ""
20066
20067#. type: item
32747aa9 20068#: doc/guix.texi:11653
544cab3d
LC
20069#, no-wrap
20070msgid "@code{host} (default: @code{#f})"
20071msgstr ""
20072
20073#. type: table
32747aa9 20074#: doc/guix.texi:11656
544cab3d
LC
20075msgid "This accepts a string containing the \"login_host\", which will be written into the @file{/var/run/utmpx} file."
20076msgstr ""
20077
20078#. type: item
32747aa9 20079#: doc/guix.texi:11657
544cab3d
LC
20080#, no-wrap
20081msgid "@code{remote?} (default: @code{#f})"
20082msgstr ""
20083
20084#. type: table
32747aa9 20085#: doc/guix.texi:11661
544cab3d
LC
20086msgid "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}."
20087msgstr ""
20088
20089#. type: item
32747aa9 20090#: doc/guix.texi:11662
544cab3d
LC
20091#, no-wrap
20092msgid "@code{flow-control?} (default: @code{#f})"
20093msgstr ""
20094
20095#. type: table
32747aa9 20096#: doc/guix.texi:11664
544cab3d
LC
20097msgid "When set to @code{#t}, enable hardware (RTS/CTS) flow control."
20098msgstr ""
20099
20100#. type: item
32747aa9 20101#: doc/guix.texi:11665
544cab3d
LC
20102#, no-wrap
20103msgid "@code{no-issue?} (default: @code{#f})"
20104msgstr ""
20105
20106#. type: table
32747aa9 20107#: doc/guix.texi:11668
544cab3d
LC
20108msgid "When set to @code{#t}, the contents of the @file{/etc/issue} file will not be displayed before presenting the login prompt."
20109msgstr ""
20110
20111#. type: item
32747aa9 20112#: doc/guix.texi:11669
544cab3d
LC
20113#, no-wrap
20114msgid "@code{init-string} (default: @code{#f})"
20115msgstr ""
20116
20117#. type: table
32747aa9 20118#: doc/guix.texi:11672
544cab3d
LC
20119msgid "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."
20120msgstr ""
20121
20122#. type: item
32747aa9 20123#: doc/guix.texi:11673
544cab3d
LC
20124#, no-wrap
20125msgid "@code{no-clear?} (default: @code{#f})"
20126msgstr ""
20127
20128#. type: table
32747aa9 20129#: doc/guix.texi:11676
544cab3d
LC
20130msgid "When set to @code{#t}, agetty will not clear the screen before showing the login prompt."
20131msgstr ""
20132
20133#. type: item
32747aa9 20134#: doc/guix.texi:11677
544cab3d
LC
20135#, no-wrap
20136msgid "@code{login-program} (default: (file-append shadow \"/bin/login\"))"
20137msgstr ""
20138
20139#. type: table
32747aa9 20140#: doc/guix.texi:11681
544cab3d
LC
20141msgid "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."
20142msgstr ""
20143
20144#. type: item
32747aa9 20145#: doc/guix.texi:11682
544cab3d
LC
20146#, no-wrap
20147msgid "@code{local-line} (default: @code{#f})"
20148msgstr ""
20149
20150#. type: table
32747aa9 20151#: doc/guix.texi:11686
544cab3d
LC
20152msgid "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}."
20153msgstr ""
20154
20155#. type: item
32747aa9 20156#: doc/guix.texi:11687
544cab3d
LC
20157#, no-wrap
20158msgid "@code{extract-baud?} (default: @code{#f})"
20159msgstr ""
20160
20161#. type: table
32747aa9 20162#: doc/guix.texi:11690
544cab3d
LC
20163msgid "When set to @code{#t}, instruct agetty to try to extract the baud rate from the status messages produced by certain types of modems."
20164msgstr ""
20165
20166#. type: item
32747aa9 20167#: doc/guix.texi:11691
544cab3d
LC
20168#, no-wrap
20169msgid "@code{skip-login?} (default: @code{#f})"
20170msgstr ""
20171
20172#. type: table
32747aa9 20173#: doc/guix.texi:11695
544cab3d
LC
20174msgid "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."
20175msgstr ""
20176
20177#. type: item
32747aa9 20178#: doc/guix.texi:11696
544cab3d
LC
20179#, no-wrap
20180msgid "@code{no-newline?} (default: @code{#f})"
20181msgstr ""
20182
20183#. type: table
32747aa9 20184#: doc/guix.texi:11699
544cab3d
LC
20185msgid "When set to @code{#t}, do not print a newline before printing the @file{/etc/issue} file."
20186msgstr ""
20187
20188#. type: item
32747aa9 20189#: doc/guix.texi:11701
544cab3d
LC
20190#, no-wrap
20191msgid "@code{login-options} (default: @code{#f})"
20192msgstr ""
20193
20194#. type: table
32747aa9 20195#: doc/guix.texi:11706
544cab3d
LC
20196msgid "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."
20197msgstr ""
20198
20199#. type: item
32747aa9 20200#: doc/guix.texi:11707
544cab3d
LC
20201#, no-wrap
20202msgid "@code{login-pause} (default: @code{#f})"
20203msgstr ""
20204
20205#. type: table
32747aa9 20206#: doc/guix.texi:11711
544cab3d
LC
20207msgid "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."
20208msgstr ""
20209
20210#. type: item
32747aa9 20211#: doc/guix.texi:11712
544cab3d
LC
20212#, no-wrap
20213msgid "@code{chroot} (default: @code{#f})"
20214msgstr ""
20215
20216#. type: table
32747aa9 20217#: doc/guix.texi:11715
544cab3d
LC
20218msgid "Change root to the specified directory. This option accepts a directory path as a string."
20219msgstr ""
20220
20221#. type: item
32747aa9 20222#: doc/guix.texi:11716
544cab3d
LC
20223#, no-wrap
20224msgid "@code{hangup?} (default: @code{#f})"
20225msgstr ""
20226
20227#. type: table
32747aa9 20228#: doc/guix.texi:11719
544cab3d
LC
20229msgid "Use the Linux system call @code{vhangup} to do a virtual hangup of the specified terminal."
20230msgstr ""
20231
20232#. type: item
32747aa9 20233#: doc/guix.texi:11720
544cab3d
LC
20234#, no-wrap
20235msgid "@code{keep-baud?} (default: @code{#f})"
20236msgstr ""
20237
20238#. type: table
32747aa9 20239#: doc/guix.texi:11724
544cab3d
LC
20240msgid "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."
20241msgstr ""
20242
20243#. type: item
32747aa9 20244#: doc/guix.texi:11725
544cab3d
LC
20245#, no-wrap
20246msgid "@code{timeout} (default: @code{#f})"
20247msgstr ""
20248
20249#. type: table
32747aa9 20250#: doc/guix.texi:11728
544cab3d
LC
20251msgid "When set to an integer value, terminate if no user name could be read within @var{timeout} seconds."
20252msgstr ""
20253
20254#. type: item
32747aa9 20255#: doc/guix.texi:11729
544cab3d
LC
20256#, no-wrap
20257msgid "@code{detect-case?} (default: @code{#f})"
20258msgstr ""
20259
20260#. type: table
32747aa9 20261#: doc/guix.texi:11735
544cab3d
LC
20262msgid "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."
20263msgstr ""
20264
20265#. type: item
32747aa9 20266#: doc/guix.texi:11736
544cab3d
LC
20267#, no-wrap
20268msgid "@code{wait-cr?} (default: @code{#f})"
20269msgstr ""
20270
20271#. type: table
32747aa9 20272#: doc/guix.texi:11741
544cab3d
LC
20273msgid "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."
20274msgstr ""
20275
20276#. type: item
32747aa9 20277#: doc/guix.texi:11742
544cab3d
LC
20278#, no-wrap
20279msgid "@code{no-hints?} (default: @code{#f})"
20280msgstr ""
20281
20282#. type: table
32747aa9 20283#: doc/guix.texi:11745
544cab3d
LC
20284msgid "When set to @code{#t}, do not print hints about Num, Caps, and Scroll locks."
20285msgstr ""
20286
20287#. type: item
32747aa9 20288#: doc/guix.texi:11746
544cab3d
LC
20289#, no-wrap
20290msgid "@code{no-hostname?} (default: @code{#f})"
20291msgstr ""
20292
20293#. type: table
32747aa9 20294#: doc/guix.texi:11749
544cab3d
LC
20295msgid "By default, the hostname is printed. When this option is set to @code{#t}, no hostname will be shown at all."
20296msgstr ""
20297
20298#. type: item
32747aa9 20299#: doc/guix.texi:11750
544cab3d
LC
20300#, no-wrap
20301msgid "@code{long-hostname?} (default: @code{#f})"
20302msgstr ""
20303
20304#. type: table
32747aa9 20305#: doc/guix.texi:11754
544cab3d
LC
20306msgid "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."
20307msgstr ""
20308
20309#. type: item
32747aa9 20310#: doc/guix.texi:11755
544cab3d
LC
20311#, no-wrap
20312msgid "@code{erase-characters} (default: @code{#f})"
20313msgstr ""
20314
20315#. type: table
32747aa9 20316#: doc/guix.texi:11758
544cab3d
LC
20317msgid "This option accepts a string of additional characters that should be interpreted as backspace when the user types their login name."
20318msgstr ""
20319
20320#. type: item
32747aa9 20321#: doc/guix.texi:11759
544cab3d
LC
20322#, no-wrap
20323msgid "@code{kill-characters} (default: @code{#f})"
20324msgstr ""
20325
20326#. type: table
32747aa9
LC
20327#: doc/guix.texi:11763
20328msgid "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."
544cab3d
LC
20329msgstr ""
20330
20331#. type: item
32747aa9 20332#: doc/guix.texi:11764
544cab3d
LC
20333#, no-wrap
20334msgid "@code{chdir} (default: @code{#f})"
20335msgstr ""
20336
20337#. type: table
32747aa9 20338#: doc/guix.texi:11767
544cab3d
LC
20339msgid "This option accepts, as a string, a directory path that will be changed to before login."
20340msgstr ""
20341
20342#. type: item
32747aa9 20343#: doc/guix.texi:11768
544cab3d
LC
20344#, no-wrap
20345msgid "@code{delay} (default: @code{#f})"
20346msgstr ""
20347
20348#. type: table
32747aa9 20349#: doc/guix.texi:11771
544cab3d
LC
20350msgid "This options accepts, as an integer, the number of seconds to sleep before opening the tty and displaying the login prompt."
20351msgstr ""
20352
20353#. type: item
32747aa9 20354#: doc/guix.texi:11772
544cab3d
LC
20355#, no-wrap
20356msgid "@code{nice} (default: @code{#f})"
20357msgstr ""
20358
20359#. type: table
32747aa9 20360#: doc/guix.texi:11775
544cab3d
LC
20361msgid "This option accepts, as an integer, the nice value with which to run the @command{login} program."
20362msgstr ""
20363
20364#. type: item
32747aa9
LC
20365#: doc/guix.texi:11776 doc/guix.texi:12007 doc/guix.texi:12694
20366#: doc/guix.texi:19064
544cab3d
LC
20367#, no-wrap
20368msgid "@code{extra-options} (default: @code{'()})"
20369msgstr ""
20370
20371#. type: table
32747aa9 20372#: doc/guix.texi:11779
544cab3d
LC
20373msgid "This option provides an \"escape hatch\" for the user to provide arbitrary command-line arguments to @command{agetty} as a list of strings."
20374msgstr ""
20375
20376#. type: deffn
32747aa9 20377#: doc/guix.texi:11783
544cab3d
LC
20378#, no-wrap
20379msgid "{Scheme Procedure} kmscon-service-type @var{config}"
20380msgstr ""
20381
20382#. type: deffn
32747aa9 20383#: doc/guix.texi:11787
544cab3d
LC
20384msgid "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."
20385msgstr ""
20386
20387#. type: deftp
32747aa9 20388#: doc/guix.texi:11789
544cab3d
LC
20389#, no-wrap
20390msgid "{Data Type} kmscon-configuration"
20391msgstr ""
20392
20393#. type: deftp
32747aa9 20394#: doc/guix.texi:11792
544cab3d
LC
20395msgid "This is the data type representing the configuration of Kmscon, which implements virtual console log-in."
20396msgstr ""
20397
20398#. type: code{#1}
32747aa9 20399#: doc/guix.texi:11795
544cab3d
LC
20400#, no-wrap
20401msgid "virtual-terminal"
20402msgstr ""
20403
20404#. type: table
32747aa9 20405#: doc/guix.texi:11797
544cab3d
LC
20406msgid "The name of the console this Kmscon runs on---e.g., @code{\"tty1\"}."
20407msgstr ""
20408
20409#. type: item
32747aa9 20410#: doc/guix.texi:11798
544cab3d
LC
20411#, no-wrap
20412msgid "@code{login-program} (default: @code{#~(string-append #$shadow \"/bin/login\")})"
20413msgstr ""
20414
20415#. type: table
32747aa9 20416#: doc/guix.texi:11801
544cab3d
LC
20417msgid "A gexp denoting the name of the log-in program. The default log-in program is @command{login} from the Shadow tool suite."
20418msgstr ""
20419
20420#. type: item
32747aa9 20421#: doc/guix.texi:11802
544cab3d
LC
20422#, no-wrap
20423msgid "@code{login-arguments} (default: @code{'(\"-p\")})"
20424msgstr ""
20425
20426#. type: table
32747aa9 20427#: doc/guix.texi:11804
544cab3d
LC
20428msgid "A list of arguments to pass to @command{login}."
20429msgstr ""
20430
20431#. type: item
32747aa9 20432#: doc/guix.texi:11809
544cab3d
LC
20433#, no-wrap
20434msgid "@code{hardware-acceleration?} (default: #f)"
20435msgstr ""
20436
20437#. type: table
32747aa9 20438#: doc/guix.texi:11811
544cab3d
LC
20439msgid "Whether to use hardware acceleration."
20440msgstr ""
20441
20442#. type: item
32747aa9 20443#: doc/guix.texi:11812
544cab3d
LC
20444#, no-wrap
20445msgid "@code{kmscon} (default: @var{kmscon})"
20446msgstr ""
20447
20448#. type: table
32747aa9 20449#: doc/guix.texi:11814
544cab3d
LC
20450msgid "The Kmscon package to use."
20451msgstr ""
20452
20453#. type: cindex
32747aa9 20454#: doc/guix.texi:11818
544cab3d
LC
20455#, no-wrap
20456msgid "name service cache daemon"
20457msgstr ""
20458
20459#. type: cindex
32747aa9 20460#: doc/guix.texi:11819
544cab3d
LC
20461#, no-wrap
20462msgid "nscd"
20463msgstr ""
20464
20465#. type: deffn
32747aa9 20466#: doc/guix.texi:11820
544cab3d
LC
20467#, no-wrap
20468msgid "{Scheme Procedure} nscd-service [@var{config}] [#:glibc glibc] @"
20469msgstr ""
20470
20471#. type: deffn
32747aa9 20472#: doc/guix.texi:11825
544cab3d
LC
20473msgid "[#: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."
20474msgstr ""
20475
20476#. type: deffn
32747aa9 20477#: doc/guix.texi:11827
544cab3d
LC
20478msgid "For convenience, the Shepherd service for nscd provides the following actions:"
20479msgstr ""
20480
20481#. type: item
32747aa9 20482#: doc/guix.texi:11829
544cab3d
LC
20483#, no-wrap
20484msgid "invalidate"
20485msgstr ""
20486
20487#. type: cindex
32747aa9 20488#: doc/guix.texi:11830
544cab3d
LC
20489#, no-wrap
20490msgid "cache invalidation, nscd"
20491msgstr ""
20492
20493#. type: cindex
32747aa9 20494#: doc/guix.texi:11831
544cab3d
LC
20495#, no-wrap
20496msgid "nscd, cache invalidation"
20497msgstr ""
20498
20499#. type: table
32747aa9 20500#: doc/guix.texi:11833
544cab3d
LC
20501msgid "This invalidate the given cache. For instance, running:"
20502msgstr ""
20503
20504#. type: example
32747aa9 20505#: doc/guix.texi:11836
544cab3d
LC
20506#, no-wrap
20507msgid "herd invalidate nscd hosts\n"
20508msgstr ""
20509
20510#. type: table
32747aa9 20511#: doc/guix.texi:11840
544cab3d
LC
20512msgid "invalidates the host name lookup cache of nscd."
20513msgstr ""
20514
20515#. type: item
32747aa9 20516#: doc/guix.texi:11841
544cab3d
LC
20517#, no-wrap
20518msgid "statistics"
20519msgstr ""
20520
20521#. type: table
32747aa9 20522#: doc/guix.texi:11844
544cab3d
LC
20523msgid "Running @command{herd statistics nscd} displays information about nscd usage and caches."
20524msgstr ""
20525
20526#. type: defvr
32747aa9 20527#: doc/guix.texi:11848
544cab3d
LC
20528#, no-wrap
20529msgid "{Scheme Variable} %nscd-default-configuration"
20530msgstr ""
20531
20532#. type: defvr
32747aa9 20533#: doc/guix.texi:11852
544cab3d
LC
20534msgid "This is the default @code{<nscd-configuration>} value (see below) used by @code{nscd-service}. It uses the caches defined by @var{%nscd-default-caches}; see below."
20535msgstr ""
20536
20537#. type: deftp
32747aa9 20538#: doc/guix.texi:11854
544cab3d
LC
20539#, no-wrap
20540msgid "{Data Type} nscd-configuration"
20541msgstr ""
20542
20543#. type: deftp
32747aa9 20544#: doc/guix.texi:11857
544cab3d
LC
20545msgid "This is the data type representing the name service cache daemon (nscd) configuration."
20546msgstr ""
20547
20548#. type: item
32747aa9 20549#: doc/guix.texi:11860
544cab3d
LC
20550#, no-wrap
20551msgid "@code{name-services} (default: @code{'()})"
20552msgstr ""
20553
20554#. type: table
32747aa9 20555#: doc/guix.texi:11863
544cab3d
LC
20556msgid "List of packages denoting @dfn{name services} that must be visible to the nscd---e.g., @code{(list @var{nss-mdns})}."
20557msgstr ""
20558
20559#. type: item
32747aa9 20560#: doc/guix.texi:11864
544cab3d
LC
20561#, no-wrap
20562msgid "@code{glibc} (default: @var{glibc})"
20563msgstr ""
20564
20565#. type: table
32747aa9 20566#: doc/guix.texi:11867
544cab3d
LC
20567msgid "Package object denoting the GNU C Library providing the @command{nscd} command."
20568msgstr ""
20569
20570#. type: item
32747aa9 20571#: doc/guix.texi:11868
544cab3d
LC
20572#, no-wrap
20573msgid "@code{log-file} (default: @code{\"/var/log/nscd.log\"})"
20574msgstr ""
20575
20576#. type: table
32747aa9 20577#: doc/guix.texi:11871
544cab3d
LC
20578msgid "Name of the nscd log file. This is where debugging output goes when @code{debug-level} is strictly positive."
20579msgstr ""
20580
20581#. type: item
32747aa9 20582#: doc/guix.texi:11872
544cab3d
LC
20583#, no-wrap
20584msgid "@code{debug-level} (default: @code{0})"
20585msgstr ""
20586
20587#. type: table
32747aa9 20588#: doc/guix.texi:11875
544cab3d
LC
20589msgid "Integer denoting the debugging levels. Higher numbers mean that more debugging output is logged."
20590msgstr ""
20591
20592#. type: item
32747aa9 20593#: doc/guix.texi:11876
544cab3d
LC
20594#, no-wrap
20595msgid "@code{caches} (default: @var{%nscd-default-caches})"
20596msgstr ""
20597
20598#. type: table
32747aa9 20599#: doc/guix.texi:11879
544cab3d
LC
20600msgid "List of @code{<nscd-cache>} objects denoting things to be cached; see below."
20601msgstr ""
20602
20603#. type: deftp
32747aa9 20604#: doc/guix.texi:11883
544cab3d
LC
20605#, no-wrap
20606msgid "{Data Type} nscd-cache"
20607msgstr ""
20608
20609#. type: deftp
32747aa9 20610#: doc/guix.texi:11885
544cab3d
LC
20611msgid "Data type representing a cache database of nscd and its parameters."
20612msgstr ""
20613
20614#. type: cindex
32747aa9 20615#: doc/guix.texi:11888 doc/guix.texi:15088
544cab3d
LC
20616#, no-wrap
20617msgid "database"
20618msgstr ""
20619
20620#. type: table
32747aa9 20621#: doc/guix.texi:11893
544cab3d
LC
20622msgid "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})."
20623msgstr ""
20624
20625#. type: code{#1}
32747aa9 20626#: doc/guix.texi:11894
544cab3d
LC
20627#, no-wrap
20628msgid "positive-time-to-live"
20629msgstr ""
20630
20631#. type: itemx
32747aa9 20632#: doc/guix.texi:11895
544cab3d
LC
20633#, no-wrap
20634msgid "@code{negative-time-to-live} (default: @code{20})"
20635msgstr ""
20636
20637#. type: table
32747aa9 20638#: doc/guix.texi:11898
544cab3d
LC
20639msgid "A number representing the number of seconds during which a positive or negative lookup result remains in cache."
20640msgstr ""
20641
20642#. type: item
32747aa9 20643#: doc/guix.texi:11899
544cab3d
LC
20644#, no-wrap
20645msgid "@code{check-files?} (default: @code{#t})"
20646msgstr ""
20647
20648#. type: table
32747aa9 20649#: doc/guix.texi:11902
544cab3d
LC
20650msgid "Whether to check for updates of the files corresponding to @var{database}."
20651msgstr ""
20652
20653#. type: table
32747aa9 20654#: doc/guix.texi:11906
544cab3d
LC
20655msgid "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."
20656msgstr ""
20657
20658#. type: item
32747aa9 20659#: doc/guix.texi:11907
544cab3d
LC
20660#, no-wrap
20661msgid "@code{persistent?} (default: @code{#t})"
20662msgstr ""
20663
20664#. type: table
32747aa9 20665#: doc/guix.texi:11909
544cab3d
LC
20666msgid "Whether the cache should be stored persistently on disk."
20667msgstr ""
20668
20669#. type: item
32747aa9 20670#: doc/guix.texi:11910
544cab3d
LC
20671#, no-wrap
20672msgid "@code{shared?} (default: @code{#t})"
20673msgstr ""
20674
20675#. type: table
32747aa9 20676#: doc/guix.texi:11912
544cab3d
LC
20677msgid "Whether the cache should be shared among users."
20678msgstr ""
20679
20680#. type: item
32747aa9 20681#: doc/guix.texi:11913
544cab3d
LC
20682#, no-wrap
20683msgid "@code{max-database-size} (default: 32@tie{}MiB)"
20684msgstr ""
20685
20686#. type: table
32747aa9 20687#: doc/guix.texi:11915
544cab3d
LC
20688msgid "Maximum size in bytes of the database cache."
20689msgstr ""
20690
20691#. type: defvr
32747aa9 20692#: doc/guix.texi:11922
544cab3d
LC
20693#, no-wrap
20694msgid "{Scheme Variable} %nscd-default-caches"
20695msgstr ""
20696
20697#. type: defvr
32747aa9 20698#: doc/guix.texi:11925
544cab3d
LC
20699msgid "List of @code{<nscd-cache>} objects used by default by @code{nscd-configuration} (see above)."
20700msgstr ""
20701
20702#. type: defvr
32747aa9 20703#: doc/guix.texi:11931
544cab3d
LC
20704msgid "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."
20705msgstr ""
20706
20707#. type: anchor{#1}
32747aa9 20708#: doc/guix.texi:11934
544cab3d
LC
20709msgid "syslog-configuration-type"
20710msgstr ""
20711
20712#. type: cindex
32747aa9 20713#: doc/guix.texi:11934 doc/guix.texi:11950
544cab3d
LC
20714#, no-wrap
20715msgid "syslog"
20716msgstr ""
20717
20718#. type: cindex
32747aa9 20719#: doc/guix.texi:11935 doc/guix.texi:12372
544cab3d
LC
20720#, no-wrap
20721msgid "logging"
20722msgstr ""
20723
20724#. type: deftp
32747aa9 20725#: doc/guix.texi:11936
544cab3d
LC
20726#, no-wrap
20727msgid "{Data Type} syslog-configuration"
20728msgstr ""
20729
20730#. type: deftp
32747aa9 20731#: doc/guix.texi:11938
544cab3d
LC
20732msgid "This data type represents the configuration of the syslog daemon."
20733msgstr ""
20734
20735#. type: item
32747aa9 20736#: doc/guix.texi:11940
544cab3d
LC
20737#, no-wrap
20738msgid "@code{syslogd} (default: @code{#~(string-append #$inetutils \"/libexec/syslogd\")})"
20739msgstr ""
20740
20741#. type: table
32747aa9 20742#: doc/guix.texi:11942
544cab3d
LC
20743msgid "The syslog daemon to use."
20744msgstr ""
20745
20746#. type: item
32747aa9 20747#: doc/guix.texi:11943
544cab3d
LC
20748#, no-wrap
20749msgid "@code{config-file} (default: @code{%default-syslog.conf})"
20750msgstr ""
20751
20752#. type: table
32747aa9 20753#: doc/guix.texi:11945
544cab3d
LC
20754msgid "The syslog configuration file to use."
20755msgstr ""
20756
20757#. type: anchor{#1}
32747aa9 20758#: doc/guix.texi:11950
544cab3d
LC
20759msgid "syslog-service"
20760msgstr ""
20761
20762#. type: deffn
32747aa9 20763#: doc/guix.texi:11951
544cab3d
LC
20764#, no-wrap
20765msgid "{Scheme Procedure} syslog-service @var{config}"
20766msgstr ""
20767
20768#. type: deffn
32747aa9 20769#: doc/guix.texi:11953
544cab3d
LC
20770msgid "Return a service that runs a syslog daemon according to @var{config}."
20771msgstr ""
20772
20773#. type: deffn
32747aa9 20774#: doc/guix.texi:11956
544cab3d
LC
20775msgid "@xref{syslogd invocation,,, inetutils, GNU Inetutils}, for more information on the configuration file syntax."
20776msgstr ""
20777
20778#. type: defvr
32747aa9 20779#: doc/guix.texi:11958
544cab3d
LC
20780#, no-wrap
20781msgid "{Scheme Variable} guix-service-type"
20782msgstr ""
20783
20784#. type: defvr
32747aa9 20785#: doc/guix.texi:11962
544cab3d
LC
20786msgid "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."
20787msgstr ""
20788
20789#. type: anchor{#1}
32747aa9 20790#: doc/guix.texi:11965
544cab3d
LC
20791msgid "guix-configuration-type"
20792msgstr ""
20793
20794#. type: deftp
32747aa9 20795#: doc/guix.texi:11965
544cab3d
LC
20796#, no-wrap
20797msgid "{Data Type} guix-configuration"
20798msgstr ""
20799
20800#. type: deftp
32747aa9 20801#: doc/guix.texi:11968
544cab3d
LC
20802msgid "This data type represents the configuration of the Guix build daemon. @xref{Invoking guix-daemon}, for more information."
20803msgstr ""
20804
20805#. type: item
32747aa9 20806#: doc/guix.texi:11970
544cab3d
LC
20807#, no-wrap
20808msgid "@code{guix} (default: @var{guix})"
20809msgstr ""
20810
20811#. type: table
32747aa9 20812#: doc/guix.texi:11972 doc/guix.texi:12192
544cab3d
LC
20813msgid "The Guix package to use."
20814msgstr ""
20815
20816#. type: item
32747aa9 20817#: doc/guix.texi:11973
544cab3d
LC
20818#, no-wrap
20819msgid "@code{build-group} (default: @code{\"guixbuild\"})"
20820msgstr ""
20821
20822#. type: table
32747aa9 20823#: doc/guix.texi:11975
544cab3d
LC
20824msgid "Name of the group for build user accounts."
20825msgstr ""
20826
20827#. type: item
32747aa9 20828#: doc/guix.texi:11976
544cab3d
LC
20829#, no-wrap
20830msgid "@code{build-accounts} (default: @code{10})"
20831msgstr ""
20832
20833#. type: table
32747aa9 20834#: doc/guix.texi:11978
544cab3d
LC
20835msgid "Number of build user accounts to create."
20836msgstr ""
20837
20838#. type: item
32747aa9 20839#: doc/guix.texi:11979
544cab3d
LC
20840#, no-wrap
20841msgid "@code{authorize-key?} (default: @code{#t})"
20842msgstr ""
20843
20844#. type: table
32747aa9 20845#: doc/guix.texi:11984
544cab3d
LC
20846msgid "Whether to authorize the substitute keys listed in @code{authorized-keys}---by default that of @code{@value{SUBSTITUTE-SERVER}} (@pxref{Substitutes})."
20847msgstr ""
20848
20849#. type: vindex
32747aa9 20850#: doc/guix.texi:11985
544cab3d
LC
20851#, no-wrap
20852msgid "%default-authorized-guix-keys"
20853msgstr ""
20854
20855#. type: item
32747aa9 20856#: doc/guix.texi:11986
544cab3d
LC
20857#, no-wrap
20858msgid "@code{authorized-keys} (default: @var{%default-authorized-guix-keys})"
20859msgstr ""
20860
20861#. type: table
32747aa9 20862#: doc/guix.texi:11990
544cab3d
LC
20863msgid "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})."
20864msgstr ""
20865
20866#. type: item
32747aa9 20867#: doc/guix.texi:11991
544cab3d
LC
20868#, no-wrap
20869msgid "@code{use-substitutes?} (default: @code{#t})"
20870msgstr ""
20871
20872#. type: table
32747aa9 20873#: doc/guix.texi:11993
544cab3d
LC
20874msgid "Whether to use substitutes."
20875msgstr ""
20876
20877#. type: item
32747aa9 20878#: doc/guix.texi:11994
544cab3d
LC
20879#, no-wrap
20880msgid "@code{substitute-urls} (default: @var{%default-substitute-urls})"
20881msgstr ""
20882
20883#. type: table
32747aa9 20884#: doc/guix.texi:11996
544cab3d
LC
20885msgid "The list of URLs where to look for substitutes by default."
20886msgstr ""
20887
20888#. type: item
32747aa9 20889#: doc/guix.texi:11997
544cab3d
LC
20890#, no-wrap
20891msgid "@code{max-silent-time} (default: @code{0})"
20892msgstr ""
20893
20894#. type: itemx
32747aa9 20895#: doc/guix.texi:11998
544cab3d
LC
20896#, no-wrap
20897msgid "@code{timeout} (default: @code{0})"
20898msgstr ""
20899
20900#. type: table
32747aa9 20901#: doc/guix.texi:12002
544cab3d
LC
20902msgid "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."
20903msgstr ""
20904
20905#. type: item
32747aa9 20906#: doc/guix.texi:12003
544cab3d
LC
20907#, no-wrap
20908msgid "@code{log-compression} (default: @code{'bzip2})"
20909msgstr ""
20910
20911#. type: table
32747aa9 20912#: doc/guix.texi:12006
544cab3d
LC
20913msgid "The type of compression used for build logs---one of @code{gzip}, @code{bzip2}, or @code{none}."
20914msgstr ""
20915
20916#. type: table
32747aa9 20917#: doc/guix.texi:12009
544cab3d
LC
20918msgid "List of extra command-line options for @command{guix-daemon}."
20919msgstr ""
20920
20921#. type: item
32747aa9 20922#: doc/guix.texi:12010
544cab3d
LC
20923#, no-wrap
20924msgid "@code{log-file} (default: @code{\"/var/log/guix-daemon.log\"})"
20925msgstr ""
20926
20927#. type: table
32747aa9 20928#: doc/guix.texi:12013
544cab3d
LC
20929msgid "File where @command{guix-daemon}'s standard output and standard error are written."
20930msgstr ""
20931
20932#. type: item
32747aa9 20933#: doc/guix.texi:12014
544cab3d
LC
20934#, no-wrap
20935msgid "@code{http-proxy} (default: @code{#f})"
20936msgstr ""
20937
20938#. type: table
32747aa9 20939#: doc/guix.texi:12017
544cab3d
LC
20940msgid "The HTTP proxy used for downloading fixed-output derivations and substitutes."
20941msgstr ""
20942
20943#. type: item
32747aa9 20944#: doc/guix.texi:12018
544cab3d
LC
20945#, no-wrap
20946msgid "@code{tmpdir} (default: @code{#f})"
20947msgstr ""
20948
20949#. type: table
32747aa9 20950#: doc/guix.texi:12020
544cab3d
LC
20951msgid "A directory path where the @command{guix-daemon} will perform builds."
20952msgstr ""
20953
20954#. type: deffn
32747aa9 20955#: doc/guix.texi:12024
544cab3d
LC
20956#, no-wrap
20957msgid "{Scheme Procedure} udev-service [#:udev @var{eudev} #:rules @code{'()}]"
20958msgstr ""
20959
20960#. type: deffn
32747aa9
LC
20961#: doc/guix.texi:12029
20962msgid "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} and @code{file->udev-rule} from @code{(gnu services base)} simplify the creation of such rule files."
544cab3d
LC
20963msgstr ""
20964
20965#. type: deffn
32747aa9 20966#: doc/guix.texi:12031
544cab3d
LC
20967#, no-wrap
20968msgid "{Scheme Procedure} udev-rule [@var{file-name} @var{contents}]"
20969msgstr ""
20970
20971#. type: deffn
32747aa9 20972#: doc/guix.texi:12034
544cab3d
LC
20973msgid "Return a udev-rule file named @var{file-name} containing the rules defined by the @var{contents} literal."
20974msgstr ""
20975
20976#. type: deffn
32747aa9 20977#: doc/guix.texi:12038
544cab3d
LC
20978msgid "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."
20979msgstr ""
20980
20981#. type: example
32747aa9 20982#: doc/guix.texi:12046
544cab3d
LC
20983#, no-wrap
20984msgid ""
20985"(define %example-udev-rule\n"
20986" (udev-rule\n"
20987" \"90-usb-thing.rules\"\n"
20988" (string-append \"ACTION==\\\"add\\\", SUBSYSTEM==\\\"usb\\\", \"\n"
20989" \"ATTR@{product@}==\\\"Example\\\", \"\n"
20990" \"RUN+=\\\"/path/to/script\\\"\")))\n"
20991msgstr ""
20992
20993#. type: deffn
32747aa9 20994#: doc/guix.texi:12050
544cab3d
LC
20995msgid "The @command{herd rules udev} command, as root, returns the name of the directory containing all the active udev rules."
20996msgstr ""
20997
20998#. type: Plain text
32747aa9 20999#: doc/guix.texi:12053
544cab3d
LC
21000msgid "Here we show how the default @var{udev-service} can be extended with it."
21001msgstr ""
21002
21003#. type: example
32747aa9 21004#: doc/guix.texi:12063
544cab3d
LC
21005#, no-wrap
21006msgid ""
21007"(operating-system\n"
21008" ;; @dots{}\n"
21009" (services\n"
21010" (modify-services %desktop-services\n"
21011" (udev-service-type config =>\n"
21012" (udev-configuration (inherit config)\n"
21013" (rules (append (udev-configuration-rules config)\n"
21014" (list %example-udev-rule))))))))\n"
21015msgstr ""
21016
21017#. type: deffn
32747aa9 21018#: doc/guix.texi:12065
544cab3d
LC
21019#, no-wrap
21020msgid "{Scheme Procedure} file->udev-rule [@var{file-name} @var{file}]"
21021msgstr ""
21022
21023#. type: deffn
32747aa9 21024#: doc/guix.texi:12068
544cab3d
LC
21025msgid "Return a udev file named @var{file-name} containing the rules defined within @var{file}, a file-like object."
21026msgstr ""
21027
21028#. type: deffn
32747aa9 21029#: doc/guix.texi:12070
544cab3d
LC
21030msgid "The following example showcases how we can use an existing rule file."
21031msgstr ""
21032
21033#. type: example
32747aa9 21034#: doc/guix.texi:12075
544cab3d
LC
21035#, no-wrap
21036msgid ""
21037"(use-modules (guix download) ;for url-fetch\n"
21038" (guix packages) ;for origin\n"
21039" ;; @dots{})\n"
21040"\n"
21041msgstr ""
21042
21043#. type: example
32747aa9 21044#: doc/guix.texi:12086
544cab3d
LC
21045#, no-wrap
21046msgid ""
21047"(define %android-udev-rules\n"
21048" (file->udev-rule\n"
21049" \"51-android-udev.rules\"\n"
21050" (let ((version \"20170910\"))\n"
21051" (origin\n"
21052" (method url-fetch)\n"
21053" (uri (string-append \"https://raw.githubusercontent.com/M0Rf30/\"\n"
21054" \"android-udev-rules/\" version \"/51-android.rules\"))\n"
21055" (sha256\n"
21056" (base32 \"0lmmagpyb6xsq6zcr2w1cyx9qmjqmajkvrdbhjx32gqf1d9is003\"))))))\n"
21057msgstr ""
21058
21059#. type: Plain text
32747aa9 21060#: doc/guix.texi:12095
544cab3d
LC
21061msgid "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."
21062msgstr ""
21063
21064#. type: Plain text
32747aa9 21065#: doc/guix.texi:12104
544cab3d
LC
21066msgid "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 @var{android-udev-rules} package. To create such a group, we must define it both as part of the @var{supplementary-groups} of our @var{user-account} declaration, as well as in the @var{groups} field of the @var{operating-system} record."
21067msgstr ""
21068
21069#. type: example
32747aa9 21070#: doc/guix.texi:12109
544cab3d
LC
21071#, no-wrap
21072msgid ""
21073"(use-modules (gnu packages android) ;for android-udev-rules\n"
21074" (gnu system shadow) ;for user-group\n"
21075" ;; @dots{})\n"
21076"\n"
21077msgstr ""
21078
21079#. type: example
32747aa9 21080#: doc/guix.texi:12118
544cab3d
LC
21081#, no-wrap
21082msgid ""
21083"(operating-system\n"
21084" ;; @dots{}\n"
21085" (users (cons (user-acount\n"
21086" ;; @dots{}\n"
21087" (supplementary-groups\n"
21088" '(\"adbusers\" ;for adb\n"
21089" \"wheel\" \"netdev\" \"audio\" \"video\"))\n"
21090" ;; @dots{})))\n"
21091"\n"
21092msgstr ""
21093
21094#. type: example
32747aa9 21095#: doc/guix.texi:12121
544cab3d
LC
21096#, no-wrap
21097msgid ""
21098" (groups (cons (user-group (system? #t) (name \"adbusers\"))\n"
21099" %base-groups))\n"
21100"\n"
21101msgstr ""
21102
21103#. type: example
32747aa9 21104#: doc/guix.texi:12123
544cab3d
LC
21105#, no-wrap
21106msgid ""
21107" ;; @dots{}\n"
21108"\n"
21109msgstr ""
21110
21111#. type: example
32747aa9 21112#: doc/guix.texi:12131
544cab3d
LC
21113#, no-wrap
21114msgid ""
21115" (services\n"
21116" (modify-services %desktop-services\n"
21117" (udev-service-type\n"
21118" config =>\n"
21119" (udev-configuration (inherit config)\n"
21120" (rules (cons android-udev-rules\n"
21121" (udev-configuration-rules config))))))))\n"
21122msgstr ""
21123
21124#. type: defvr
32747aa9 21125#: doc/guix.texi:12133
544cab3d
LC
21126#, no-wrap
21127msgid "{Scheme Variable} urandom-seed-service-type"
21128msgstr ""
21129
21130#. type: defvr
32747aa9 21131#: doc/guix.texi:12138
544cab3d
LC
21132msgid "Save some entropy in @var{%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."
21133msgstr ""
21134
21135#. type: defvr
32747aa9 21136#: doc/guix.texi:12140
544cab3d
LC
21137#, no-wrap
21138msgid "{Scheme Variable} %random-seed-file"
21139msgstr ""
21140
21141#. type: defvr
32747aa9 21142#: doc/guix.texi:12144
544cab3d
LC
21143msgid "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}."
21144msgstr ""
21145
21146#. type: cindex
32747aa9 21147#: doc/guix.texi:12146
544cab3d
LC
21148#, no-wrap
21149msgid "mouse"
21150msgstr ""
21151
21152#. type: cindex
32747aa9 21153#: doc/guix.texi:12147
544cab3d
LC
21154#, no-wrap
21155msgid "gpm"
21156msgstr ""
21157
21158#. type: defvr
32747aa9 21159#: doc/guix.texi:12148
544cab3d
LC
21160#, no-wrap
21161msgid "{Scheme Variable} gpm-service-type"
21162msgstr ""
21163
21164#. type: defvr
32747aa9 21165#: doc/guix.texi:12153
544cab3d
LC
21166msgid "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."
21167msgstr ""
21168
21169#. type: defvr
32747aa9 21170#: doc/guix.texi:12156
544cab3d
LC
21171msgid "The value for services of this type must be a @code{gpm-configuration} (see below). This service is not part of @var{%base-services}."
21172msgstr ""
21173
21174#. type: deftp
32747aa9 21175#: doc/guix.texi:12158
544cab3d
LC
21176#, no-wrap
21177msgid "{Data Type} gpm-configuration"
21178msgstr ""
21179
21180#. type: deftp
32747aa9 21181#: doc/guix.texi:12160
544cab3d
LC
21182msgid "Data type representing the configuration of GPM."
21183msgstr ""
21184
21185#. type: item
32747aa9 21186#: doc/guix.texi:12162
544cab3d
LC
21187#, no-wrap
21188msgid "@code{options} (default: @code{%default-gpm-options})"
21189msgstr ""
21190
21191#. type: table
32747aa9 21192#: doc/guix.texi:12167
544cab3d
LC
21193msgid "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."
21194msgstr ""
21195
21196#. type: item
32747aa9 21197#: doc/guix.texi:12168
544cab3d
LC
21198#, no-wrap
21199msgid "@code{gpm} (default: @code{gpm})"
21200msgstr ""
21201
21202#. type: table
32747aa9 21203#: doc/guix.texi:12170
544cab3d
LC
21204msgid "The GPM package to use."
21205msgstr ""
21206
21207#. type: anchor{#1}
32747aa9 21208#: doc/guix.texi:12175
544cab3d
LC
21209msgid "guix-publish-service-type"
21210msgstr ""
21211
21212#. type: deffn
32747aa9 21213#: doc/guix.texi:12175
544cab3d
LC
21214#, no-wrap
21215msgid "{Scheme Variable} guix-publish-service-type"
21216msgstr ""
21217
21218#. type: deffn
32747aa9 21219#: doc/guix.texi:12179
544cab3d
LC
21220msgid "This is the service type for @command{guix publish} (@pxref{Invoking guix publish}). Its value must be a @code{guix-configuration} object, as described below."
21221msgstr ""
21222
21223#. type: deffn
32747aa9 21224#: doc/guix.texi:12183
544cab3d
LC
21225msgid "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."
21226msgstr ""
21227
21228#. type: deftp
32747aa9 21229#: doc/guix.texi:12185
544cab3d
LC
21230#, no-wrap
21231msgid "{Data Type} guix-publish-configuration"
21232msgstr ""
21233
21234#. type: deftp
32747aa9 21235#: doc/guix.texi:12188
544cab3d
LC
21236msgid "Data type representing the configuration of the @code{guix publish} service."
21237msgstr ""
21238
21239#. type: item
32747aa9 21240#: doc/guix.texi:12190
544cab3d
LC
21241#, no-wrap
21242msgid "@code{guix} (default: @code{guix})"
21243msgstr ""
21244
21245#. type: item
32747aa9 21246#: doc/guix.texi:12193
544cab3d
LC
21247#, no-wrap
21248msgid "@code{port} (default: @code{80})"
21249msgstr ""
21250
21251#. type: table
32747aa9 21252#: doc/guix.texi:12195
544cab3d
LC
21253msgid "The TCP port to listen for connections."
21254msgstr ""
21255
21256#. type: item
32747aa9 21257#: doc/guix.texi:12196
544cab3d
LC
21258#, no-wrap
21259msgid "@code{host} (default: @code{\"localhost\"})"
21260msgstr ""
21261
21262#. type: table
32747aa9 21263#: doc/guix.texi:12199
544cab3d
LC
21264msgid "The host (and thus, network interface) to listen to. Use @code{\"0.0.0.0\"} to listen on all the network interfaces."
21265msgstr ""
21266
21267#. type: table
32747aa9 21268#: doc/guix.texi:12204
544cab3d
LC
21269msgid "The gzip compression level at which substitutes are compressed. Use @code{0} to disable compression altogether, and @code{9} to get the best compression ratio at the expense of increased CPU usage."
21270msgstr ""
21271
21272#. type: item
32747aa9 21273#: doc/guix.texi:12205
544cab3d
LC
21274#, no-wrap
21275msgid "@code{nar-path} (default: @code{\"nar\"})"
21276msgstr ""
21277
21278#. type: table
32747aa9 21279#: doc/guix.texi:12208
544cab3d
LC
21280msgid "The URL path at which ``nars'' can be fetched. @xref{Invoking guix publish, @code{--nar-path}}, for details."
21281msgstr ""
21282
21283#. type: item
32747aa9 21284#: doc/guix.texi:12209
544cab3d
LC
21285#, no-wrap
21286msgid "@code{cache} (default: @code{#f})"
21287msgstr ""
21288
21289#. type: table
32747aa9 21290#: doc/guix.texi:12215
544cab3d
LC
21291msgid "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."
21292msgstr ""
21293
21294#. type: item
32747aa9 21295#: doc/guix.texi:12216
544cab3d
LC
21296#, no-wrap
21297msgid "@code{workers} (default: @code{#f})"
21298msgstr ""
21299
21300#. type: table
32747aa9 21301#: doc/guix.texi:12220
544cab3d
LC
21302msgid "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."
21303msgstr ""
21304
21305#. type: item
32747aa9 21306#: doc/guix.texi:12221
544cab3d
LC
21307#, no-wrap
21308msgid "@code{ttl} (default: @code{#f})"
21309msgstr ""
21310
21311#. type: table
32747aa9 21312#: doc/guix.texi:12225
544cab3d
LC
21313msgid "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."
21314msgstr ""
21315
21316#. type: anchor{#1}
32747aa9 21317#: doc/guix.texi:12229
544cab3d
LC
21318msgid "rngd-service"
21319msgstr ""
21320
21321#. type: deffn
32747aa9 21322#: doc/guix.texi:12229
544cab3d
LC
21323#, no-wrap
21324msgid "{Scheme Procedure} rngd-service [#:rng-tools @var{rng-tools}] @"
21325msgstr ""
21326
21327#. type: deffn
32747aa9 21328#: doc/guix.texi:12234
544cab3d
LC
21329msgid "[#: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."
21330msgstr ""
21331
21332#. type: anchor{#1}
32747aa9 21333#: doc/guix.texi:12237
544cab3d
LC
21334msgid "pam-limits-service"
21335msgstr ""
21336
21337#. type: cindex
32747aa9 21338#: doc/guix.texi:12237
544cab3d
LC
21339#, no-wrap
21340msgid "session limits"
21341msgstr ""
21342
21343#. type: cindex
32747aa9 21344#: doc/guix.texi:12238
544cab3d
LC
21345#, no-wrap
21346msgid "ulimit"
21347msgstr ""
21348
21349#. type: cindex
32747aa9 21350#: doc/guix.texi:12239
544cab3d
LC
21351#, no-wrap
21352msgid "priority"
21353msgstr ""
21354
21355#. type: cindex
32747aa9 21356#: doc/guix.texi:12240
544cab3d
LC
21357#, no-wrap
21358msgid "realtime"
21359msgstr ""
21360
21361#. type: cindex
32747aa9 21362#: doc/guix.texi:12241
544cab3d
LC
21363#, no-wrap
21364msgid "jackd"
21365msgstr ""
21366
21367#. type: deffn
32747aa9 21368#: doc/guix.texi:12242
544cab3d
LC
21369#, no-wrap
21370msgid "{Scheme Procedure} pam-limits-service [#:limits @code{'()}]"
21371msgstr ""
21372
21373#. type: deffn
32747aa9 21374#: doc/guix.texi:12249
544cab3d
LC
21375msgid "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."
21376msgstr ""
21377
21378#. type: deffn
32747aa9 21379#: doc/guix.texi:12252
544cab3d
LC
21380msgid "The following limits definition sets two hard and soft limits for all login sessions of users in the @code{realtime} group:"
21381msgstr ""
21382
21383#. type: example
32747aa9 21384#: doc/guix.texi:12258
544cab3d
LC
21385#, no-wrap
21386msgid ""
21387"(pam-limits-service\n"
21388" (list\n"
21389" (pam-limits-entry \"@@realtime\" 'both 'rtprio 99)\n"
21390" (pam-limits-entry \"@@realtime\" 'both 'memlock 'unlimited)))\n"
21391msgstr ""
21392
21393#. type: deffn
32747aa9 21394#: doc/guix.texi:12264
544cab3d
LC
21395msgid "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."
21396msgstr ""
21397
21398#. type: cindex
32747aa9 21399#: doc/guix.texi:12269
544cab3d
LC
21400#, no-wrap
21401msgid "cron"
21402msgstr ""
21403
21404#. type: cindex
32747aa9 21405#: doc/guix.texi:12270
544cab3d
LC
21406#, no-wrap
21407msgid "mcron"
21408msgstr ""
21409
21410#. type: cindex
32747aa9 21411#: doc/guix.texi:12271
544cab3d
LC
21412#, no-wrap
21413msgid "scheduling jobs"
21414msgstr ""
21415
21416#. type: Plain text
32747aa9 21417#: doc/guix.texi:12278
544cab3d
LC
21418msgid "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."
21419msgstr ""
21420
21421#. type: Plain text
32747aa9 21422#: doc/guix.texi:12286
544cab3d
LC
21423msgid "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})."
21424msgstr ""
21425
21426#. type: lisp
32747aa9 21427#: doc/guix.texi:12290
544cab3d
LC
21428#, no-wrap
21429msgid ""
21430"(use-modules (guix) (gnu) (gnu services mcron))\n"
21431"(use-package-modules base idutils)\n"
21432"\n"
21433msgstr ""
21434
21435#. type: lisp
32747aa9 21436#: doc/guix.texi:12299
544cab3d
LC
21437#, no-wrap
21438msgid ""
21439"(define updatedb-job\n"
21440" ;; Run 'updatedb' at 3AM every day. Here we write the\n"
21441" ;; job's action as a Scheme procedure.\n"
21442" #~(job '(next-hour '(3))\n"
21443" (lambda ()\n"
21444" (execl (string-append #$findutils \"/bin/updatedb\")\n"
21445" \"updatedb\"\n"
21446" \"--prunepaths=/tmp /var/tmp /gnu/store\"))))\n"
21447"\n"
21448msgstr ""
21449
21450#. type: lisp
32747aa9 21451#: doc/guix.texi:12305
544cab3d
LC
21452#, no-wrap
21453msgid ""
21454"(define garbage-collector-job\n"
21455" ;; Collect garbage 5 minutes after midnight every day.\n"
21456" ;; The job's action is a shell command.\n"
21457" #~(job \"5 0 * * *\" ;Vixie cron syntax\n"
21458" \"guix gc -F 1G\"))\n"
21459"\n"
21460msgstr ""
21461
21462#. type: lisp
32747aa9 21463#: doc/guix.texi:12312
544cab3d
LC
21464#, no-wrap
21465msgid ""
21466"(define idutils-job\n"
21467" ;; Update the index database as user \"charlie\" at 12:15PM\n"
21468" ;; and 19:15PM. This runs from the user's home directory.\n"
21469" #~(job '(next-minute-from (next-hour '(12 19)) '(15))\n"
21470" (string-append #$idutils \"/bin/mkid src\")\n"
21471" #:user \"charlie\"))\n"
21472"\n"
21473msgstr ""
21474
21475#. type: lisp
32747aa9 21476#: doc/guix.texi:12321
544cab3d
LC
21477#, no-wrap
21478msgid ""
21479"(operating-system\n"
21480" ;; @dots{}\n"
21481" (services (cons (service mcron-service-type\n"
21482" (mcron-configuration\n"
21483" (jobs (list garbage-collector-job\n"
21484" updatedb-job\n"
21485" idutils-job))))\n"
21486" %base-services)))\n"
21487msgstr ""
21488
21489#. type: Plain text
32747aa9 21490#: doc/guix.texi:12326
544cab3d
LC
21491msgid "@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."
21492msgstr ""
21493
21494#. type: Plain text
32747aa9 21495#: doc/guix.texi:12329
544cab3d
LC
21496msgid "On a running system, you can use the @code{schedule} action of the service to visualize the mcron jobs that will be executed next:"
21497msgstr ""
21498
21499#. type: example
32747aa9 21500#: doc/guix.texi:12332
544cab3d
LC
21501#, no-wrap
21502msgid "# herd schedule mcron\n"
21503msgstr ""
21504
21505#. type: Plain text
32747aa9 21506#: doc/guix.texi:12337
544cab3d
LC
21507msgid "The example above lists the next five tasks that will be executed, but you can also specify the number of tasks to display:"
21508msgstr ""
21509
21510#. type: example
32747aa9 21511#: doc/guix.texi:12340
544cab3d
LC
21512#, no-wrap
21513msgid "# herd schedule mcron 10\n"
21514msgstr ""
21515
21516#. type: defvr
32747aa9 21517#: doc/guix.texi:12342
544cab3d
LC
21518#, no-wrap
21519msgid "{Scheme Variable} mcron-service-type"
21520msgstr ""
21521
21522#. type: defvr
32747aa9 21523#: doc/guix.texi:12345
544cab3d
LC
21524msgid "This is the type of the @code{mcron} service, whose value is an @code{mcron-configuration} object."
21525msgstr ""
21526
21527#. type: defvr
32747aa9 21528#: doc/guix.texi:12350
544cab3d
LC
21529msgid "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."
21530msgstr ""
21531
21532#. type: deftp
32747aa9 21533#: doc/guix.texi:12352
544cab3d
LC
21534#, no-wrap
21535msgid "{Data Type} mcron-configuration"
21536msgstr ""
21537
21538#. type: deftp
32747aa9 21539#: doc/guix.texi:12354
544cab3d
LC
21540msgid "Data type representing the configuration of mcron."
21541msgstr ""
21542
21543#. type: item
32747aa9 21544#: doc/guix.texi:12356
544cab3d
LC
21545#, no-wrap
21546msgid "@code{mcron} (default: @var{mcron})"
21547msgstr ""
21548
21549#. type: table
32747aa9 21550#: doc/guix.texi:12358
544cab3d
LC
21551msgid "The mcron package to use."
21552msgstr ""
21553
21554#. type: code{#1}
32747aa9 21555#: doc/guix.texi:12359 doc/guix.texi:12418
544cab3d
LC
21556#, no-wrap
21557msgid "jobs"
21558msgstr ""
21559
21560#. type: table
32747aa9 21561#: doc/guix.texi:12363
544cab3d
LC
21562msgid "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})."
21563msgstr ""
21564
21565#. type: cindex
32747aa9 21566#: doc/guix.texi:12370
544cab3d
LC
21567#, no-wrap
21568msgid "rottlog"
21569msgstr ""
21570
21571#. type: cindex
32747aa9 21572#: doc/guix.texi:12371
544cab3d
LC
21573#, no-wrap
21574msgid "log rotation"
21575msgstr ""
21576
21577#. type: Plain text
32747aa9 21578#: doc/guix.texi:12378
544cab3d
LC
21579msgid "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})."
21580msgstr ""
21581
21582#. type: Plain text
32747aa9 21583#: doc/guix.texi:12381
544cab3d
LC
21584msgid "The example below defines an operating system that provides log rotation with the default settings, for commonly encountered log files."
21585msgstr ""
21586
21587#. type: lisp
32747aa9 21588#: doc/guix.texi:12386
544cab3d
LC
21589#, no-wrap
21590msgid ""
21591"(use-modules (guix) (gnu))\n"
21592"(use-service-modules admin mcron)\n"
21593"(use-package-modules base idutils)\n"
21594"\n"
21595msgstr ""
21596
21597#. type: lisp
32747aa9 21598#: doc/guix.texi:12391
544cab3d
LC
21599#, no-wrap
21600msgid ""
21601"(operating-system\n"
21602" ;; @dots{}\n"
21603" (services (cons (service rottlog-service-type)\n"
21604" %base-services)))\n"
21605msgstr ""
21606
21607#. type: defvr
32747aa9 21608#: doc/guix.texi:12393
544cab3d
LC
21609#, no-wrap
21610msgid "{Scheme Variable} rottlog-service-type"
21611msgstr ""
21612
21613#. type: defvr
32747aa9 21614#: doc/guix.texi:12396
544cab3d
LC
21615msgid "This is the type of the Rottlog service, whose value is a @code{rottlog-configuration} object."
21616msgstr ""
21617
21618#. type: defvr
32747aa9 21619#: doc/guix.texi:12399
544cab3d
LC
21620msgid "Other services can extend this one with new @code{log-rotation} objects (see below), thereby augmenting the set of files to be rotated."
21621msgstr ""
21622
21623#. type: defvr
32747aa9 21624#: doc/guix.texi:12402
544cab3d
LC
21625msgid "This service type can define mcron jobs (@pxref{Scheduled Job Execution}) to run the rottlog service."
21626msgstr ""
21627
21628#. type: deftp
32747aa9 21629#: doc/guix.texi:12404
544cab3d
LC
21630#, no-wrap
21631msgid "{Data Type} rottlog-configuration"
21632msgstr ""
21633
21634#. type: deftp
32747aa9 21635#: doc/guix.texi:12406
544cab3d
LC
21636msgid "Data type representing the configuration of rottlog."
21637msgstr ""
21638
21639#. type: item
32747aa9 21640#: doc/guix.texi:12408
544cab3d
LC
21641#, no-wrap
21642msgid "@code{rottlog} (default: @code{rottlog})"
21643msgstr ""
21644
21645#. type: table
32747aa9 21646#: doc/guix.texi:12410
544cab3d
LC
21647msgid "The Rottlog package to use."
21648msgstr ""
21649
21650#. type: item
32747aa9 21651#: doc/guix.texi:12411
544cab3d
LC
21652#, no-wrap
21653msgid "@code{rc-file} (default: @code{(file-append rottlog \"/etc/rc\")})"
21654msgstr ""
21655
21656#. type: table
32747aa9 21657#: doc/guix.texi:12414
544cab3d
LC
21658msgid "The Rottlog configuration file to use (@pxref{Mandatory RC Variables,,, rottlog, GNU Rot[t]log Manual})."
21659msgstr ""
21660
21661#. type: item
32747aa9 21662#: doc/guix.texi:12415
544cab3d
LC
21663#, no-wrap
21664msgid "@code{rotations} (default: @code{%default-rotations})"
21665msgstr ""
21666
21667#. type: table
32747aa9 21668#: doc/guix.texi:12417
544cab3d
LC
21669msgid "A list of @code{log-rotation} objects as defined below."
21670msgstr ""
21671
21672#. type: table
32747aa9 21673#: doc/guix.texi:12421
544cab3d
LC
21674msgid "This is a list of gexps where each gexp corresponds to an mcron job specification (@pxref{Scheduled Job Execution})."
21675msgstr ""
21676
21677#. type: deftp
32747aa9 21678#: doc/guix.texi:12424
544cab3d
LC
21679#, no-wrap
21680msgid "{Data Type} log-rotation"
21681msgstr ""
21682
21683#. type: deftp
32747aa9 21684#: doc/guix.texi:12426
544cab3d
LC
21685msgid "Data type representing the rotation of a group of log files."
21686msgstr ""
21687
21688#. type: deftp
32747aa9 21689#: doc/guix.texi:12430
544cab3d
LC
21690msgid "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:"
21691msgstr ""
21692
21693#. type: example
32747aa9 21694#: doc/guix.texi:12439
544cab3d
LC
21695#, no-wrap
21696msgid ""
21697"(log-rotation\n"
21698" (frequency 'daily)\n"
21699" (files '(\"/var/log/apache/*\"))\n"
21700" (options '(\"storedir apache-archives\"\n"
21701" \"rotate 6\"\n"
21702" \"notifempty\"\n"
21703" \"nocompress\")))\n"
21704msgstr ""
21705
21706#. type: deftp
32747aa9 21707#: doc/guix.texi:12442
544cab3d
LC
21708msgid "The list of fields is as follows:"
21709msgstr ""
21710
21711#. type: item
32747aa9 21712#: doc/guix.texi:12444
544cab3d
LC
21713#, no-wrap
21714msgid "@code{frequency} (default: @code{'weekly})"
21715msgstr ""
21716
21717#. type: table
32747aa9 21718#: doc/guix.texi:12446
544cab3d
LC
21719msgid "The log rotation frequency, a symbol."
21720msgstr ""
21721
21722#. type: code{#1}
32747aa9 21723#: doc/guix.texi:12447
544cab3d
LC
21724#, no-wrap
21725msgid "files"
21726msgstr ""
21727
21728#. type: table
32747aa9 21729#: doc/guix.texi:12449
544cab3d
LC
21730msgid "The list of files or file glob patterns to rotate."
21731msgstr ""
21732
21733#. type: item
32747aa9 21734#: doc/guix.texi:12450
544cab3d
LC
21735#, no-wrap
21736msgid "@code{options} (default: @code{'()})"
21737msgstr ""
21738
21739#. type: table
32747aa9 21740#: doc/guix.texi:12453
544cab3d
LC
21741msgid "The list of rottlog options for this rotation (@pxref{Configuration parameters,,, rottlog, GNU Rot[t]lg Manual})."
21742msgstr ""
21743
21744#. type: item
32747aa9 21745#: doc/guix.texi:12454
544cab3d
LC
21746#, no-wrap
21747msgid "@code{post-rotate} (default: @code{#f})"
21748msgstr ""
21749
21750#. type: table
32747aa9 21751#: doc/guix.texi:12456
544cab3d
LC
21752msgid "Either @code{#f} or a gexp to execute once the rotation has completed."
21753msgstr ""
21754
21755#. type: defvr
32747aa9 21756#: doc/guix.texi:12459
544cab3d
LC
21757#, no-wrap
21758msgid "{Scheme Variable} %default-rotations"
21759msgstr ""
21760
21761#. type: defvr
32747aa9 21762#: doc/guix.texi:12462
544cab3d
LC
21763msgid "Specifies weekly rotation of @var{%rotated-files} and a couple of other files."
21764msgstr ""
21765
21766#. type: defvr
32747aa9 21767#: doc/guix.texi:12464
544cab3d
LC
21768#, no-wrap
21769msgid "{Scheme Variable} %rotated-files"
21770msgstr ""
21771
21772#. type: defvr
32747aa9 21773#: doc/guix.texi:12467
544cab3d
LC
21774msgid "The list of syslog-controlled files to be rotated. By default it is: @code{'(\"/var/log/messages\" \"/var/log/secure\")}."
21775msgstr ""
21776
21777#. type: Plain text
32747aa9 21778#: doc/guix.texi:12474
544cab3d
LC
21779msgid "The @code{(gnu services networking)} module provides services to configure the network interface."
21780msgstr ""
21781
21782#. type: cindex
32747aa9 21783#: doc/guix.texi:12475
544cab3d
LC
21784#, no-wrap
21785msgid "DHCP, networking service"
21786msgstr ""
21787
21788#. type: defvr
32747aa9 21789#: doc/guix.texi:12476
544cab3d
LC
21790#, no-wrap
21791msgid "{Scheme Variable} dhcp-client-service-type"
21792msgstr ""
21793
21794#. type: defvr
32747aa9 21795#: doc/guix.texi:12480
544cab3d
LC
21796msgid "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."
21797msgstr ""
21798
21799#. type: deffn
32747aa9 21800#: doc/guix.texi:12482
544cab3d
LC
21801#, no-wrap
21802msgid "{Scheme Procedure} dhcpd-service-type"
21803msgstr ""
21804
21805#. type: deffn
32747aa9 21806#: doc/guix.texi:12486
544cab3d
LC
21807msgid "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:"
21808msgstr ""
21809
21810#. type: example
32747aa9 21811#: doc/guix.texi:12492
544cab3d
LC
21812#, no-wrap
21813msgid ""
21814"(service dhcpd-service-type\n"
21815" (dhcpd-configuration\n"
21816" (config-file (local-file \"my-dhcpd.conf\"))\n"
21817" (interfaces '(\"enp0s25\"))))\n"
21818msgstr ""
21819
21820#. type: deftp
32747aa9 21821#: doc/guix.texi:12495
544cab3d
LC
21822#, no-wrap
21823msgid "{Data Type} dhcpd-configuration"
21824msgstr ""
21825
21826#. type: item
32747aa9 21827#: doc/guix.texi:12497
544cab3d
LC
21828#, no-wrap
21829msgid "@code{package} (default: @code{isc-dhcp})"
21830msgstr ""
21831
21832#. type: table
32747aa9
LC
21833#: doc/guix.texi:12502
21834msgid "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}."
544cab3d
LC
21835msgstr ""
21836
21837#. type: item
32747aa9 21838#: doc/guix.texi:12502 doc/guix.texi:12691 doc/guix.texi:16678
544cab3d
LC
21839#, no-wrap
21840msgid "@code{config-file} (default: @code{#f})"
21841msgstr ""
21842
21843#. type: table
32747aa9 21844#: doc/guix.texi:12507
544cab3d
LC
21845msgid "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."
21846msgstr ""
21847
21848#. type: item
32747aa9 21849#: doc/guix.texi:12507
544cab3d
LC
21850#, no-wrap
21851msgid "@code{version} (default: @code{\"4\"})"
21852msgstr ""
21853
21854#. type: table
32747aa9 21855#: doc/guix.texi:12512
544cab3d
LC
21856msgid "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."
21857msgstr ""
21858
21859#. type: item
32747aa9 21860#: doc/guix.texi:12512
544cab3d
LC
21861#, no-wrap
21862msgid "@code{run-directory} (default: @code{\"/run/dhcpd\"})"
21863msgstr ""
21864
21865#. type: table
32747aa9 21866#: doc/guix.texi:12515
544cab3d
LC
21867msgid "The run directory to use. At service activation time, this directory will be created if it does not exist."
21868msgstr ""
21869
21870#. type: item
32747aa9 21871#: doc/guix.texi:12515
544cab3d
LC
21872#, no-wrap
21873msgid "@code{pid-file} (default: @code{\"/run/dhcpd/dhcpd.pid\"})"
21874msgstr ""
21875
21876#. type: table
32747aa9 21877#: doc/guix.texi:12518
544cab3d
LC
21878msgid "The PID file to use. This corresponds to the @code{-pf} option of @code{dhcpd}. See @code{man dhcpd} for details."
21879msgstr ""
21880
21881#. type: item
32747aa9 21882#: doc/guix.texi:12518
544cab3d
LC
21883#, no-wrap
21884msgid "@code{interfaces} (default: @code{'()})"
21885msgstr ""
21886
21887#. type: table
32747aa9 21888#: doc/guix.texi:12524
544cab3d
LC
21889msgid "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."
21890msgstr ""
21891
21892#. type: defvr
32747aa9 21893#: doc/guix.texi:12527
544cab3d
LC
21894#, no-wrap
21895msgid "{Scheme Variable} static-networking-service-type"
21896msgstr ""
21897
21898#. type: defvr
32747aa9 21899#: doc/guix.texi:12530
544cab3d
LC
21900msgid "This is the type for statically-configured network interfaces."
21901msgstr ""
21902
21903#. type: deffn
32747aa9 21904#: doc/guix.texi:12532
544cab3d
LC
21905#, no-wrap
21906msgid "{Scheme Procedure} static-networking-service @var{interface} @var{ip} @"
21907msgstr ""
21908
21909#. type: deffn
32747aa9 21910#: doc/guix.texi:12540
544cab3d
LC
21911msgid "[#: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."
21912msgstr ""
21913
21914#. type: deffn
32747aa9 21915#: doc/guix.texi:12545
544cab3d
LC
21916msgid "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."
21917msgstr ""
21918
21919#. type: deffn
32747aa9 21920#: doc/guix.texi:12547
544cab3d
LC
21921msgid "For example:"
21922msgstr ""
21923
21924#. type: example
32747aa9 21925#: doc/guix.texi:12552
544cab3d
LC
21926#, no-wrap
21927msgid ""
21928"(static-networking-service \"eno1\" \"192.168.1.82\"\n"
21929" #:gateway \"192.168.1.2\"\n"
21930" #:name-servers '(\"192.168.1.2\"))\n"
21931msgstr ""
21932
21933#. type: cindex
32747aa9 21934#: doc/guix.texi:12555
544cab3d
LC
21935#, no-wrap
21936msgid "wicd"
21937msgstr ""
21938
21939#. type: cindex
32747aa9 21940#: doc/guix.texi:12558
544cab3d
LC
21941#, no-wrap
21942msgid "network management"
21943msgstr ""
21944
21945#. type: deffn
32747aa9 21946#: doc/guix.texi:12559
544cab3d
LC
21947#, no-wrap
21948msgid "{Scheme Procedure} wicd-service [#:wicd @var{wicd}]"
21949msgstr ""
21950
21951#. type: deffn
32747aa9 21952#: doc/guix.texi:12562
544cab3d
LC
21953msgid "Return a service that runs @url{https://launchpad.net/wicd,Wicd}, a network management daemon that aims to simplify wired and wireless networking."
21954msgstr ""
21955
21956#. type: deffn
32747aa9 21957#: doc/guix.texi:12567
544cab3d
LC
21958msgid "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."
21959msgstr ""
21960
21961#. type: cindex
32747aa9 21962#: doc/guix.texi:12569
544cab3d
LC
21963#, no-wrap
21964msgid "ModemManager"
21965msgstr ""
21966
21967#. type: defvr
32747aa9 21968#: doc/guix.texi:12571
544cab3d
LC
21969#, no-wrap
21970msgid "{Scheme Variable} modem-manager-service-type"
21971msgstr ""
21972
21973#. type: defvr
32747aa9 21974#: doc/guix.texi:12576
544cab3d
LC
21975msgid "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."
21976msgstr ""
21977
21978#. type: defvr
32747aa9 21979#: doc/guix.texi:12579 doc/guix.texi:12601
544cab3d
LC
21980msgid "This service is part of @code{%desktop-services} (@pxref{Desktop Services})."
21981msgstr ""
21982
21983#. type: deftp
32747aa9 21984#: doc/guix.texi:12581
544cab3d
LC
21985#, no-wrap
21986msgid "{Data Type} modem-manager-configuration"
21987msgstr ""
21988
21989#. type: deftp
32747aa9 21990#: doc/guix.texi:12583
544cab3d
LC
21991msgid "Data type representing the configuration of ModemManager."
21992msgstr ""
21993
21994#. type: item
32747aa9 21995#: doc/guix.texi:12585
544cab3d
LC
21996#, no-wrap
21997msgid "@code{modem-manager} (default: @code{modem-manager})"
21998msgstr ""
21999
22000#. type: table
32747aa9 22001#: doc/guix.texi:12587
544cab3d
LC
22002msgid "The ModemManager package to use."
22003msgstr ""
22004
22005#. type: cindex
32747aa9 22006#: doc/guix.texi:12591
544cab3d
LC
22007#, no-wrap
22008msgid "NetworkManager"
22009msgstr ""
22010
22011#. type: defvr
32747aa9 22012#: doc/guix.texi:12593
544cab3d
LC
22013#, no-wrap
22014msgid "{Scheme Variable} network-manager-service-type"
22015msgstr ""
22016
22017#. type: defvr
32747aa9 22018#: doc/guix.texi:12598
544cab3d
LC
22019msgid "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."
22020msgstr ""
22021
22022#. type: deftp
32747aa9 22023#: doc/guix.texi:12603
544cab3d
LC
22024#, no-wrap
22025msgid "{Data Type} network-manager-configuration"
22026msgstr ""
22027
22028#. type: deftp
32747aa9 22029#: doc/guix.texi:12605
544cab3d
LC
22030msgid "Data type representing the configuration of NetworkManager."
22031msgstr ""
22032
22033#. type: item
32747aa9 22034#: doc/guix.texi:12607
544cab3d
LC
22035#, no-wrap
22036msgid "@code{network-manager} (default: @code{network-manager})"
22037msgstr ""
22038
22039#. type: table
32747aa9 22040#: doc/guix.texi:12609
544cab3d
LC
22041msgid "The NetworkManager package to use."
22042msgstr ""
22043
22044#. type: item
32747aa9 22045#: doc/guix.texi:12610
544cab3d
LC
22046#, no-wrap
22047msgid "@code{dns} (default: @code{\"default\"})"
22048msgstr ""
22049
22050#. type: table
32747aa9 22051#: doc/guix.texi:12613
544cab3d
LC
22052msgid "Processing mode for DNS, which affects how NetworkManager uses the @code{resolv.conf} configuration file."
22053msgstr ""
22054
22055#. type: item
32747aa9 22056#: doc/guix.texi:12615
544cab3d
LC
22057#, no-wrap
22058msgid "default"
22059msgstr ""
22060
22061#. type: table
32747aa9 22062#: doc/guix.texi:12618
544cab3d
LC
22063msgid "NetworkManager will update @code{resolv.conf} to reflect the nameservers provided by currently active connections."
22064msgstr ""
22065
22066#. type: item
32747aa9 22067#: doc/guix.texi:12619
544cab3d
LC
22068#, no-wrap
22069msgid "dnsmasq"
22070msgstr ""
22071
22072#. type: table
32747aa9 22073#: doc/guix.texi:12623
544cab3d
LC
22074msgid "NetworkManager will run @code{dnsmasq} as a local caching nameserver, using a \"split DNS\" configuration if you are connected to a VPN, and then update @code{resolv.conf} to point to the local nameserver."
22075msgstr ""
22076
22077#. type: item
32747aa9 22078#: doc/guix.texi:12624 doc/guix.texi:13884
544cab3d
LC
22079#, no-wrap
22080msgid "none"
22081msgstr ""
22082
22083#. type: table
32747aa9 22084#: doc/guix.texi:12626
544cab3d
LC
22085msgid "NetworkManager will not modify @code{resolv.conf}."
22086msgstr ""
22087
22088#. type: item
32747aa9 22089#: doc/guix.texi:12628
544cab3d
LC
22090#, no-wrap
22091msgid "@code{vpn-plugins} (default: @code{'()})"
22092msgstr ""
22093
22094#. type: table
32747aa9 22095#: doc/guix.texi:12632
544cab3d
LC
22096msgid "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."
22097msgstr ""
22098
22099#. type: cindex
32747aa9 22100#: doc/guix.texi:12636
544cab3d
LC
22101#, no-wrap
22102msgid "Connman"
22103msgstr ""
22104
22105#. type: deffn
32747aa9 22106#: doc/guix.texi:12637
544cab3d
LC
22107#, no-wrap
22108msgid "{Scheme Variable} connman-service-type"
22109msgstr ""
22110
22111#. type: deffn
32747aa9 22112#: doc/guix.texi:12640
544cab3d
LC
22113msgid "This is the service type to run @url{https://01.org/connman,Connman}, a network connection manager."
22114msgstr ""
22115
22116#. type: deffn
32747aa9 22117#: doc/guix.texi:12643
544cab3d
LC
22118msgid "Its value must be an @code{connman-configuration} record as in this example:"
22119msgstr ""
22120
22121#. type: example
32747aa9 22122#: doc/guix.texi:12648
544cab3d
LC
22123#, no-wrap
22124msgid ""
22125"(service connman-service-type\n"
22126" (connman-configuration\n"
22127" (disable-vpn? #t)))\n"
22128msgstr ""
22129
22130#. type: deffn
32747aa9 22131#: doc/guix.texi:12651
544cab3d
LC
22132msgid "See below for details about @code{connman-configuration}."
22133msgstr ""
22134
22135#. type: deftp
32747aa9 22136#: doc/guix.texi:12653
544cab3d
LC
22137#, no-wrap
22138msgid "{Data Type} connman-configuration"
22139msgstr ""
22140
22141#. type: deftp
32747aa9 22142#: doc/guix.texi:12655
544cab3d
LC
22143msgid "Data Type representing the configuration of connman."
22144msgstr ""
22145
22146#. type: item
32747aa9 22147#: doc/guix.texi:12657
544cab3d
LC
22148#, no-wrap
22149msgid "@code{connman} (default: @var{connman})"
22150msgstr ""
22151
22152#. type: table
32747aa9 22153#: doc/guix.texi:12659
544cab3d
LC
22154msgid "The connman package to use."
22155msgstr ""
22156
22157#. type: item
32747aa9 22158#: doc/guix.texi:12660
544cab3d
LC
22159#, no-wrap
22160msgid "@code{disable-vpn?} (default: @code{#f})"
22161msgstr ""
22162
22163#. type: table
32747aa9 22164#: doc/guix.texi:12662
544cab3d
LC
22165msgid "When true, disable connman's vpn plugin."
22166msgstr ""
22167
22168#. type: cindex
32747aa9 22169#: doc/guix.texi:12665
544cab3d
LC
22170#, no-wrap
22171msgid "WPA Supplicant"
22172msgstr ""
22173
22174#. type: defvr
32747aa9 22175#: doc/guix.texi:12666
544cab3d
LC
22176#, no-wrap
22177msgid "{Scheme Variable} wpa-supplicant-service-type"
22178msgstr ""
22179
22180#. type: defvr
32747aa9 22181#: doc/guix.texi:12670
544cab3d
LC
22182msgid "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."
22183msgstr ""
22184
22185#. type: deftp
32747aa9 22186#: doc/guix.texi:12672
544cab3d
LC
22187#, no-wrap
22188msgid "{Data Type} wpa-supplicant-configuration"
22189msgstr ""
22190
22191#. type: deftp
32747aa9 22192#: doc/guix.texi:12674
544cab3d
LC
22193msgid "Data type representing the configuration of WPA Supplicant."
22194msgstr ""
22195
22196#. type: deftp
32747aa9 22197#: doc/guix.texi:12676
544cab3d
LC
22198msgid "It takes the following parameters:"
22199msgstr ""
22200
22201#. type: item
32747aa9 22202#: doc/guix.texi:12678
544cab3d
LC
22203#, no-wrap
22204msgid "@code{wpa-supplicant} (default: @code{wpa-supplicant})"
22205msgstr ""
22206
22207#. type: table
32747aa9 22208#: doc/guix.texi:12680
544cab3d
LC
22209msgid "The WPA Supplicant package to use."
22210msgstr ""
22211
22212#. type: item
32747aa9 22213#: doc/guix.texi:12681
544cab3d
LC
22214#, no-wrap
22215msgid "@code{dbus?} (default: @code{#t})"
22216msgstr ""
22217
22218#. type: table
32747aa9 22219#: doc/guix.texi:12683
544cab3d
LC
22220msgid "Whether to listen for requests on D-Bus."
22221msgstr ""
22222
22223#. type: item
32747aa9 22224#: doc/guix.texi:12684
544cab3d
LC
22225#, no-wrap
22226msgid "@code{pid-file} (default: @code{\"/var/run/wpa_supplicant.pid\"})"
22227msgstr ""
22228
22229#. type: table
32747aa9 22230#: doc/guix.texi:12686
544cab3d
LC
22231msgid "Where to store the PID file."
22232msgstr ""
22233
22234#. type: item
32747aa9 22235#: doc/guix.texi:12687
544cab3d
LC
22236#, no-wrap
22237msgid "@code{interface} (default: @code{#f})"
22238msgstr ""
22239
22240#. type: table
32747aa9 22241#: doc/guix.texi:12690
544cab3d
LC
22242msgid "If this is set, it must specify the name of a network interface that WPA supplicant will control."
22243msgstr ""
22244
22245#. type: table
32747aa9 22246#: doc/guix.texi:12693
544cab3d
LC
22247msgid "Optional configuration file to use."
22248msgstr ""
22249
22250#. type: table
32747aa9 22251#: doc/guix.texi:12696
544cab3d
LC
22252msgid "List of additional command-line arguments to pass to the daemon."
22253msgstr ""
22254
22255#. type: cindex
32747aa9 22256#: doc/guix.texi:12699
544cab3d
LC
22257#, no-wrap
22258msgid "iptables"
22259msgstr ""
22260
22261#. type: defvr
32747aa9 22262#: doc/guix.texi:12700
544cab3d
LC
22263#, no-wrap
22264msgid "{Scheme Variable} iptables-service-type"
22265msgstr ""
22266
22267#. type: defvr
32747aa9 22268#: doc/guix.texi:12706
544cab3d
LC
22269msgid "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."
22270msgstr ""
22271
22272#. type: lisp
32747aa9 22273#: doc/guix.texi:12726
544cab3d
LC
22274#, no-wrap
22275msgid ""
22276"(service iptables-service-type\n"
22277" (iptables-configuration\n"
22278" (ipv4-rules (plain-file \"iptables.rules\" \"*filter\n"
22279":INPUT ACCEPT\n"
22280":FORWARD ACCEPT\n"
22281":OUTPUT ACCEPT\n"
22282"-A INPUT -p tcp --dport 22 -j ACCEPT\n"
22283"-A INPUT -j REJECT --reject-with icmp-port-unreachable\n"
22284"COMMIT\n"
22285"\"))\n"
22286" (ipv6-rules (plain-file \"ip6tables.rules\" \"*filter\n"
22287":INPUT ACCEPT\n"
22288":FORWARD ACCEPT\n"
22289":OUTPUT ACCEPT\n"
22290"-A INPUT -p tcp --dport 22 -j ACCEPT\n"
22291"-A INPUT -j REJECT --reject-with icmp6-port-unreachable\n"
22292"COMMIT\n"
22293"\"))))\n"
22294msgstr ""
22295
22296#. type: deftp
32747aa9 22297#: doc/guix.texi:12729
544cab3d
LC
22298#, no-wrap
22299msgid "{Data Type} iptables-configuration"
22300msgstr ""
22301
22302#. type: deftp
32747aa9 22303#: doc/guix.texi:12731
544cab3d
LC
22304msgid "The data type representing the configuration of iptables."
22305msgstr ""
22306
22307#. type: item
32747aa9 22308#: doc/guix.texi:12733
544cab3d
LC
22309#, no-wrap
22310msgid "@code{iptables} (default: @code{iptables})"
22311msgstr ""
22312
22313#. type: table
32747aa9 22314#: doc/guix.texi:12736
544cab3d
LC
22315msgid "The iptables package that provides @code{iptables-restore} and @code{ip6tables-restore}."
22316msgstr ""
22317
22318#. type: item
32747aa9 22319#: doc/guix.texi:12736
544cab3d
LC
22320#, no-wrap
22321msgid "@code{ipv4-rules} (default: @code{%iptables-accept-all-rules})"
22322msgstr ""
22323
22324#. type: table
32747aa9 22325#: doc/guix.texi:12740
544cab3d
LC
22326msgid "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})."
22327msgstr ""
22328
22329#. type: item
32747aa9 22330#: doc/guix.texi:12740
544cab3d
LC
22331#, no-wrap
22332msgid "@code{ipv6-rules} (default: @code{%iptables-accept-all-rules})"
22333msgstr ""
22334
22335#. type: table
32747aa9 22336#: doc/guix.texi:12744
544cab3d
LC
22337msgid "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})."
22338msgstr ""
22339
22340#. type: cindex
32747aa9 22341#: doc/guix.texi:12747
544cab3d
LC
22342#, no-wrap
22343msgid "NTP (Network Time Protocol), service"
22344msgstr ""
22345
22346#. type: cindex
32747aa9 22347#: doc/guix.texi:12748
544cab3d
LC
22348#, no-wrap
22349msgid "real time clock"
22350msgstr ""
22351
22352#. type: defvr
32747aa9 22353#: doc/guix.texi:12749
544cab3d
LC
22354#, no-wrap
22355msgid "{Scheme Variable} ntp-service-type"
22356msgstr ""
22357
22358#. type: defvr
32747aa9 22359#: doc/guix.texi:12753
544cab3d
LC
22360msgid "This is the type of the service running the @uref{http://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."
22361msgstr ""
22362
22363#. type: defvr
32747aa9 22364#: doc/guix.texi:12756
544cab3d
LC
22365msgid "The value of this service is an @code{ntpd-configuration} object, as described below."
22366msgstr ""
22367
22368#. type: deftp
32747aa9 22369#: doc/guix.texi:12758
544cab3d
LC
22370#, no-wrap
22371msgid "{Data Type} ntp-configuration"
22372msgstr ""
22373
22374#. type: deftp
32747aa9 22375#: doc/guix.texi:12760
544cab3d
LC
22376msgid "This is the data type for the NTP service configuration."
22377msgstr ""
22378
22379#. type: item
32747aa9 22380#: doc/guix.texi:12762
544cab3d
LC
22381#, no-wrap
22382msgid "@code{servers} (default: @code{%ntp-servers})"
22383msgstr ""
22384
22385#. type: table
32747aa9 22386#: doc/guix.texi:12765
544cab3d
LC
22387msgid "This is the list of servers (host names) with which @command{ntpd} will be synchronized."
22388msgstr ""
22389
22390#. type: item
32747aa9 22391#: doc/guix.texi:12766 doc/guix.texi:12827
544cab3d
LC
22392#, no-wrap
22393msgid "@code{allow-large-adjustment?} (default: @code{#f})"
22394msgstr ""
22395
22396#. type: table
32747aa9 22397#: doc/guix.texi:12769
544cab3d
LC
22398msgid "This determines whether @command{ntpd} is allowed to make an initial adjustment of more than 1,000 seconds."
22399msgstr ""
22400
22401#. type: item
32747aa9 22402#: doc/guix.texi:12770
544cab3d
LC
22403#, no-wrap
22404msgid "@code{ntp} (default: @code{ntp})"
22405msgstr ""
22406
22407#. type: table
32747aa9 22408#: doc/guix.texi:12772
544cab3d
LC
22409msgid "The NTP package to use."
22410msgstr ""
22411
22412#. type: defvr
32747aa9 22413#: doc/guix.texi:12775
544cab3d
LC
22414#, no-wrap
22415msgid "{Scheme Variable} %ntp-servers"
22416msgstr ""
22417
22418#. type: defvr
32747aa9 22419#: doc/guix.texi:12778
544cab3d
LC
22420msgid "List of host names used as the default NTP servers. These are servers of the @uref{https://www.ntppool.org/en/, NTP Pool Project}."
22421msgstr ""
22422
22423#. type: cindex
32747aa9 22424#: doc/guix.texi:12780
544cab3d
LC
22425#, no-wrap
22426msgid "OpenNTPD"
22427msgstr ""
22428
22429#. type: deffn
32747aa9 22430#: doc/guix.texi:12781
544cab3d
LC
22431#, no-wrap
22432msgid "{Scheme Procedure} openntpd-service-type"
22433msgstr ""
22434
22435#. type: deffn
32747aa9 22436#: doc/guix.texi:12785
544cab3d
LC
22437msgid "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."
22438msgstr ""
22439
22440#. type: example
32747aa9 22441#: doc/guix.texi:12795
544cab3d
LC
22442#, no-wrap
22443msgid ""
22444"(service\n"
22445" openntpd-service-type\n"
22446" (openntpd-configuration\n"
22447" (listen-on '(\"127.0.0.1\" \"::1\"))\n"
22448" (sensor '(\"udcf0 correction 70000\"))\n"
22449" (constraint-from '(\"www.gnu.org\"))\n"
22450" (constraints-from '(\"https://www.google.com/\"))\n"
22451" (allow-large-adjustment? #t)))\n"
22452"\n"
22453msgstr ""
22454
22455#. type: deftp
32747aa9 22456#: doc/guix.texi:12799
544cab3d
LC
22457#, no-wrap
22458msgid "{Data Type} openntpd-configuration"
22459msgstr ""
22460
22461#. type: item
32747aa9 22462#: doc/guix.texi:12801
544cab3d
LC
22463#, no-wrap
22464msgid "@code{openntpd} (default: @code{(file-append openntpd \"/sbin/ntpd\")})"
22465msgstr ""
22466
22467#. type: table
32747aa9 22468#: doc/guix.texi:12803
544cab3d
LC
22469msgid "The openntpd executable to use."
22470msgstr ""
22471
22472#. type: item
32747aa9 22473#: doc/guix.texi:12803
544cab3d
LC
22474#, no-wrap
22475msgid "@code{listen-on} (default: @code{'(\"127.0.0.1\" \"::1\")})"
22476msgstr ""
22477
22478#. type: table
32747aa9 22479#: doc/guix.texi:12805
544cab3d
LC
22480msgid "A list of local IP addresses or hostnames the ntpd daemon should listen on."
22481msgstr ""
22482
22483#. type: item
32747aa9 22484#: doc/guix.texi:12805
544cab3d
LC
22485#, no-wrap
22486msgid "@code{query-from} (default: @code{'()})"
22487msgstr ""
22488
22489#. type: table
32747aa9 22490#: doc/guix.texi:12807
544cab3d
LC
22491msgid "A list of local IP address the ntpd daemon should use for outgoing queries."
22492msgstr ""
22493
22494#. type: item
32747aa9 22495#: doc/guix.texi:12807
544cab3d
LC
22496#, no-wrap
22497msgid "@code{sensor} (default: @code{'()})"
22498msgstr ""
22499
22500#. type: table
32747aa9
LC
22501#: doc/guix.texi:12812
22502msgid "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."
544cab3d
LC
22503msgstr ""
22504
22505#. type: item
32747aa9 22506#: doc/guix.texi:12812
544cab3d
LC
22507#, no-wrap
22508msgid "@code{server} (default: @var{%ntp-servers})"
22509msgstr ""
22510
22511#. type: table
32747aa9 22512#: doc/guix.texi:12814
544cab3d
LC
22513msgid "Specify a list of IP addresses or hostnames of NTP servers to synchronize to."
22514msgstr ""
22515
22516#. type: item
32747aa9 22517#: doc/guix.texi:12814 doc/guix.texi:20029
544cab3d
LC
22518#, no-wrap
22519msgid "@code{servers} (default: @code{'()})"
22520msgstr ""
22521
22522#. type: table
32747aa9 22523#: doc/guix.texi:12816
544cab3d
LC
22524msgid "Specify a list of IP addresses or hostnames of NTP pools to synchronize to."
22525msgstr ""
22526
22527#. type: item
32747aa9 22528#: doc/guix.texi:12816
544cab3d
LC
22529#, no-wrap
22530msgid "@code{constraint-from} (default: @code{'()})"
22531msgstr ""
22532
22533#. type: table
32747aa9 22534#: doc/guix.texi:12823
544cab3d
LC
22535msgid "@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."
22536msgstr ""
22537
22538#. type: item
32747aa9 22539#: doc/guix.texi:12823
544cab3d
LC
22540#, no-wrap
22541msgid "@code{constraints-from} (default: @code{'()})"
22542msgstr ""
22543
22544#. type: table
32747aa9 22545#: doc/guix.texi:12827
544cab3d
LC
22546msgid "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."
22547msgstr ""
22548
22549#. type: table
32747aa9 22550#: doc/guix.texi:12830
544cab3d
LC
22551msgid "Determines if @code{ntpd} is allowed to make an initial adjustment of more than 180 seconds."
22552msgstr ""
22553
22554#. type: cindex
32747aa9 22555#: doc/guix.texi:12833
544cab3d
LC
22556#, no-wrap
22557msgid "inetd"
22558msgstr ""
22559
22560#. type: deffn
32747aa9 22561#: doc/guix.texi:12834
544cab3d
LC
22562#, no-wrap
22563msgid "{Scheme variable} inetd-service-type"
22564msgstr ""
22565
22566#. type: deffn
32747aa9 22567#: doc/guix.texi:12839
544cab3d
LC
22568msgid "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."
22569msgstr ""
22570
22571#. type: deffn
32747aa9 22572#: doc/guix.texi:12845
544cab3d
LC
22573msgid "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}:"
22574msgstr ""
22575
22576#. type: example
32747aa9 22577#: doc/guix.texi:12868
544cab3d
LC
22578#, no-wrap
22579msgid ""
22580"(service\n"
22581" inetd-service-type\n"
22582" (inetd-configuration\n"
22583" (entries (list\n"
22584" (inetd-entry\n"
22585" (name \"echo\")\n"
22586" (socket-type 'stream)\n"
22587" (protocol \"tcp\")\n"
22588" (wait? #f)\n"
22589" (user \"root\"))\n"
22590" (inetd-entry\n"
22591" (node \"127.0.0.1\")\n"
22592" (name \"smtp\")\n"
22593" (socket-type 'stream)\n"
22594" (protocol \"tcp\")\n"
22595" (wait? #f)\n"
22596" (user \"root\")\n"
22597" (program (file-append openssh \"/bin/ssh\"))\n"
22598" (arguments\n"
22599" '(\"ssh\" \"-qT\" \"-i\" \"/path/to/ssh_key\"\n"
22600" \"-W\" \"smtp-server:25\" \"user@@hostname\")))))\n"
22601msgstr ""
22602
22603#. type: deffn
32747aa9 22604#: doc/guix.texi:12871
544cab3d
LC
22605msgid "See below for more details about @code{inetd-configuration}."
22606msgstr ""
22607
22608#. type: deftp
32747aa9 22609#: doc/guix.texi:12873
544cab3d
LC
22610#, no-wrap
22611msgid "{Data Type} inetd-configuration"
22612msgstr ""
22613
22614#. type: deftp
32747aa9 22615#: doc/guix.texi:12875
544cab3d
LC
22616msgid "Data type representing the configuration of @command{inetd}."
22617msgstr ""
22618
22619#. type: item
32747aa9 22620#: doc/guix.texi:12877
544cab3d
LC
22621#, no-wrap
22622msgid "@code{program} (default: @code{(file-append inetutils \"/libexec/inetd\")})"
22623msgstr ""
22624
22625#. type: table
32747aa9 22626#: doc/guix.texi:12879
544cab3d
LC
22627msgid "The @command{inetd} executable to use."
22628msgstr ""
22629
22630#. type: item
32747aa9 22631#: doc/guix.texi:12880 doc/guix.texi:19683
544cab3d
LC
22632#, no-wrap
22633msgid "@code{entries} (default: @code{'()})"
22634msgstr ""
22635
22636#. type: table
32747aa9 22637#: doc/guix.texi:12883
544cab3d
LC
22638msgid "A list of @command{inetd} service entries. Each entry should be created by the @code{inetd-entry} constructor."
22639msgstr ""
22640
22641#. type: deftp
32747aa9 22642#: doc/guix.texi:12886
544cab3d
LC
22643#, no-wrap
22644msgid "{Data Type} inetd-entry"
22645msgstr ""
22646
22647#. type: deftp
32747aa9 22648#: doc/guix.texi:12890
544cab3d
LC
22649msgid "Data type representing an entry in the @command{inetd} configuration. Each entry corresponds to a socket where @command{inetd} will listen for requests."
22650msgstr ""
22651
22652#. type: item
32747aa9 22653#: doc/guix.texi:12892
544cab3d
LC
22654#, no-wrap
22655msgid "@code{node} (default: @code{#f})"
22656msgstr ""
22657
22658#. type: table
32747aa9 22659#: doc/guix.texi:12897
544cab3d
LC
22660msgid "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."
22661msgstr ""
22662
22663#. type: table
32747aa9 22664#: doc/guix.texi:12899
544cab3d
LC
22665msgid "A string, the name must correspond to an entry in @code{/etc/services}."
22666msgstr ""
22667
22668#. type: code{#1}
32747aa9 22669#: doc/guix.texi:12899
544cab3d
LC
22670#, no-wrap
22671msgid "socket-type"
22672msgstr ""
22673
22674#. type: table
32747aa9 22675#: doc/guix.texi:12902
544cab3d
LC
22676msgid "One of @code{'stream}, @code{'dgram}, @code{'raw}, @code{'rdm} or @code{'seqpacket}."
22677msgstr ""
22678
22679#. type: code{#1}
32747aa9 22680#: doc/guix.texi:12902
544cab3d
LC
22681#, no-wrap
22682msgid "protocol"
22683msgstr ""
22684
22685#. type: table
32747aa9 22686#: doc/guix.texi:12904
544cab3d
LC
22687msgid "A string, must correspond to an entry in @code{/etc/protocols}."
22688msgstr ""
22689
22690#. type: item
32747aa9 22691#: doc/guix.texi:12904
544cab3d
LC
22692#, no-wrap
22693msgid "@code{wait?} (default: @code{#t})"
22694msgstr ""
22695
22696#. type: table
32747aa9 22697#: doc/guix.texi:12907
544cab3d
LC
22698msgid "Whether @command{inetd} should wait for the server to exit before listening to new service requests."
22699msgstr ""
22700
22701#. type: table
32747aa9 22702#: doc/guix.texi:12912
544cab3d
LC
22703msgid "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\"}."
22704msgstr ""
22705
22706#. type: item
32747aa9 22707#: doc/guix.texi:12912
544cab3d
LC
22708#, no-wrap
22709msgid "@code{program} (default: @code{\"internal\"})"
22710msgstr ""
22711
22712#. type: table
32747aa9 22713#: doc/guix.texi:12915
544cab3d
LC
22714msgid "The server program which will serve the requests, or @code{\"internal\"} if @command{inetd} should use a built-in service."
22715msgstr ""
22716
22717#. type: table
32747aa9 22718#: doc/guix.texi:12920
544cab3d
LC
22719msgid "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\")}."
22720msgstr ""
22721
22722#. type: deftp
32747aa9 22723#: doc/guix.texi:12924
544cab3d
LC
22724msgid "@xref{Configuration file,,, inetutils, GNU Inetutils} for a more detailed discussion of each configuration field."
22725msgstr ""
22726
22727#. type: cindex
32747aa9 22728#: doc/guix.texi:12926
544cab3d
LC
22729#, no-wrap
22730msgid "Tor"
22731msgstr ""
22732
22733#. type: defvr
32747aa9 22734#: doc/guix.texi:12927
544cab3d
LC
22735#, no-wrap
22736msgid "{Scheme Variable} tor-service-type"
22737msgstr ""
22738
22739#. type: defvr
32747aa9 22740#: doc/guix.texi:12932
544cab3d
LC
22741msgid "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."
22742msgstr ""
22743
22744#. type: deftp
32747aa9 22745#: doc/guix.texi:12935
544cab3d
LC
22746#, no-wrap
22747msgid "{Data Type} tor-configuration"
22748msgstr ""
22749
22750#. type: item
32747aa9 22751#: doc/guix.texi:12937
544cab3d
LC
22752#, no-wrap
22753msgid "@code{tor} (default: @code{tor})"
22754msgstr ""
22755
22756#. type: table
32747aa9 22757#: doc/guix.texi:12942
544cab3d
LC
22758msgid "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."
22759msgstr ""
22760
22761#. type: item
32747aa9 22762#: doc/guix.texi:12943
544cab3d
LC
22763#, no-wrap
22764msgid "@code{config-file} (default: @code{(plain-file \"empty\" \"\")})"
22765msgstr ""
22766
22767#. type: table
32747aa9 22768#: doc/guix.texi:12949
544cab3d
LC
22769msgid "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."
22770msgstr ""
22771
22772#. type: item
32747aa9 22773#: doc/guix.texi:12950
544cab3d
LC
22774#, no-wrap
22775msgid "@code{hidden-services} (default: @code{'()})"
22776msgstr ""
22777
22778#. type: table
32747aa9 22779#: doc/guix.texi:12956
544cab3d
LC
22780msgid "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."
22781msgstr ""
22782
22783#. type: item
32747aa9 22784#: doc/guix.texi:12957
544cab3d
LC
22785#, no-wrap
22786msgid "@code{socks-socket-type} (default: @code{'tcp})"
22787msgstr ""
22788
22789#. type: table
32747aa9 22790#: doc/guix.texi:12964
544cab3d
LC
22791msgid "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."
22792msgstr ""
22793
22794#. type: table
32747aa9 22795#: doc/guix.texi:12969
544cab3d
LC
22796msgid "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."
22797msgstr ""
22798
22799#. type: cindex
32747aa9 22800#: doc/guix.texi:12972
544cab3d
LC
22801#, no-wrap
22802msgid "hidden service"
22803msgstr ""
22804
22805#. type: deffn
32747aa9 22806#: doc/guix.texi:12973
544cab3d
LC
22807#, no-wrap
22808msgid "{Scheme Procedure} tor-hidden-service @var{name} @var{mapping}"
22809msgstr ""
22810
22811#. type: deffn
32747aa9 22812#: doc/guix.texi:12976
544cab3d
LC
22813msgid "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:"
22814msgstr ""
22815
22816#. type: example
32747aa9 22817#: doc/guix.texi:12980
544cab3d
LC
22818#, no-wrap
22819msgid ""
22820" '((22 \"127.0.0.1:22\")\n"
22821" (80 \"127.0.0.1:8080\"))\n"
22822msgstr ""
22823
22824#. type: deffn
32747aa9 22825#: doc/guix.texi:12984
544cab3d
LC
22826msgid "In this example, port 22 of the hidden service is mapped to local port 22, and port 80 is mapped to local port 8080."
22827msgstr ""
22828
22829#. type: deffn
32747aa9 22830#: doc/guix.texi:12988
544cab3d
LC
22831msgid "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."
22832msgstr ""
22833
22834#. type: deffn
32747aa9 22835#: doc/guix.texi:12991
544cab3d
LC
22836msgid "See @uref{https://www.torproject.org/docs/tor-hidden-service.html.en, the Tor project's documentation} for more information."
22837msgstr ""
22838
22839#. type: Plain text
32747aa9 22840#: doc/guix.texi:12994
544cab3d
LC
22841msgid "The @code{(gnu services rsync)} module provides the following services:"
22842msgstr ""
22843
22844#. type: Plain text
32747aa9 22845#: doc/guix.texi:12998
544cab3d
LC
22846msgid "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."
22847msgstr ""
22848
22849#. type: deffn
32747aa9 22850#: doc/guix.texi:12999
544cab3d
LC
22851#, no-wrap
22852msgid "{Scheme Variable} rsync-service-type"
22853msgstr ""
22854
22855#. type: deffn
32747aa9
LC
22856#: doc/guix.texi:13003
22857msgid "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:"
544cab3d
LC
22858msgstr ""
22859
22860#. type: example
32747aa9 22861#: doc/guix.texi:13006
544cab3d
LC
22862#, no-wrap
22863msgid "(service rsync-service-type)\n"
22864msgstr ""
22865
22866#. type: deffn
32747aa9 22867#: doc/guix.texi:13009
544cab3d
LC
22868msgid "See below for details about @code{rsync-configuration}."
22869msgstr ""
22870
22871#. type: deftp
32747aa9 22872#: doc/guix.texi:13011
544cab3d
LC
22873#, no-wrap
22874msgid "{Data Type} rsync-configuration"
22875msgstr ""
22876
22877#. type: deftp
32747aa9 22878#: doc/guix.texi:13013
544cab3d
LC
22879msgid "Data type representing the configuration for @code{rsync-service}."
22880msgstr ""
22881
22882#. type: item
32747aa9 22883#: doc/guix.texi:13015
544cab3d
LC
22884#, no-wrap
22885msgid "@code{package} (default: @var{rsync})"
22886msgstr ""
22887
22888#. type: table
32747aa9 22889#: doc/guix.texi:13017
544cab3d
LC
22890msgid "@code{rsync} package to use."
22891msgstr ""
22892
22893#. type: item
32747aa9 22894#: doc/guix.texi:13018
544cab3d
LC
22895#, no-wrap
22896msgid "@code{port-number} (default: @code{873})"
22897msgstr ""
22898
22899#. type: table
32747aa9 22900#: doc/guix.texi:13022
544cab3d
LC
22901msgid "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."
22902msgstr ""
22903
22904#. type: item
32747aa9 22905#: doc/guix.texi:13023
544cab3d
LC
22906#, no-wrap
22907msgid "@code{pid-file} (default: @code{\"/var/run/rsyncd/rsyncd.pid\"})"
22908msgstr ""
22909
22910#. type: table
32747aa9 22911#: doc/guix.texi:13025
544cab3d
LC
22912msgid "Name of the file where @command{rsync} writes its PID."
22913msgstr ""
22914
22915#. type: item
32747aa9 22916#: doc/guix.texi:13026
544cab3d
LC
22917#, no-wrap
22918msgid "@code{lock-file} (default: @code{\"/var/run/rsyncd/rsyncd.lock\"})"
22919msgstr ""
22920
22921#. type: table
32747aa9 22922#: doc/guix.texi:13028
544cab3d
LC
22923msgid "Name of the file where @command{rsync} writes its lock file."
22924msgstr ""
22925
22926#. type: item
32747aa9 22927#: doc/guix.texi:13029
544cab3d
LC
22928#, no-wrap
22929msgid "@code{log-file} (default: @code{\"/var/log/rsyncd.log\"})"
22930msgstr ""
22931
22932#. type: table
32747aa9 22933#: doc/guix.texi:13031
544cab3d
LC
22934msgid "Name of the file where @command{rsync} writes its log file."
22935msgstr ""
22936
22937#. type: item
32747aa9 22938#: doc/guix.texi:13032
544cab3d
LC
22939#, no-wrap
22940msgid "@code{use-chroot?} (default: @var{#t})"
22941msgstr ""
22942
22943#. type: table
32747aa9 22944#: doc/guix.texi:13034
544cab3d
LC
22945msgid "Whether to use chroot for @command{rsync} shared directory."
22946msgstr ""
22947
22948#. type: item
32747aa9 22949#: doc/guix.texi:13035
544cab3d
LC
22950#, no-wrap
22951msgid "@code{share-path} (default: @file{/srv/rsync})"
22952msgstr ""
22953
22954#. type: table
32747aa9 22955#: doc/guix.texi:13037
544cab3d
LC
22956msgid "Location of the @command{rsync} shared directory."
22957msgstr ""
22958
22959#. type: item
32747aa9 22960#: doc/guix.texi:13038
544cab3d
LC
22961#, no-wrap
22962msgid "@code{share-comment} (default: @code{\"Rsync share\"})"
22963msgstr ""
22964
22965#. type: table
32747aa9 22966#: doc/guix.texi:13040
544cab3d
LC
22967msgid "Comment of the @command{rsync} shared directory."
22968msgstr ""
22969
22970#. type: item
32747aa9 22971#: doc/guix.texi:13041
544cab3d
LC
22972#, no-wrap
22973msgid "@code{read-only?} (default: @var{#f})"
22974msgstr ""
22975
22976#. type: table
32747aa9 22977#: doc/guix.texi:13043
544cab3d
LC
22978msgid "Read-write permissions to shared directory."
22979msgstr ""
22980
22981#. type: item
32747aa9 22982#: doc/guix.texi:13044
544cab3d
LC
22983#, no-wrap
22984msgid "@code{timeout} (default: @code{300})"
22985msgstr ""
22986
22987#. type: table
32747aa9 22988#: doc/guix.texi:13046
544cab3d
LC
22989msgid "I/O timeout in seconds."
22990msgstr ""
22991
22992#. type: item
32747aa9 22993#: doc/guix.texi:13047
544cab3d
LC
22994#, no-wrap
22995msgid "@code{user} (default: @var{\"root\"})"
22996msgstr ""
22997
22998#. type: table
32747aa9 22999#: doc/guix.texi:13049
544cab3d
LC
23000msgid "Owner of the @code{rsync} process."
23001msgstr ""
23002
23003#. type: item
32747aa9 23004#: doc/guix.texi:13050
544cab3d
LC
23005#, no-wrap
23006msgid "@code{group} (default: @var{\"root\"})"
23007msgstr ""
23008
23009#. type: table
32747aa9 23010#: doc/guix.texi:13052
544cab3d
LC
23011msgid "Group of the @code{rsync} process."
23012msgstr ""
23013
23014#. type: item
32747aa9 23015#: doc/guix.texi:13053
544cab3d
LC
23016#, no-wrap
23017msgid "@code{uid} (default: @var{\"rsyncd\"})"
23018msgstr ""
23019
23020#. type: table
32747aa9 23021#: doc/guix.texi:13056
544cab3d
LC
23022msgid "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}."
23023msgstr ""
23024
23025#. type: item
32747aa9 23026#: doc/guix.texi:13057
544cab3d
LC
23027#, no-wrap
23028msgid "@code{gid} (default: @var{\"rsyncd\"})"
23029msgstr ""
23030
23031#. type: table
32747aa9 23032#: doc/guix.texi:13059
544cab3d
LC
23033msgid "Group name or group ID that will be used when accessing the module."
23034msgstr ""
23035
23036#. type: Plain text
32747aa9 23037#: doc/guix.texi:13064
544cab3d
LC
23038msgid "Furthermore, @code{(gnu services ssh)} provides the following services."
23039msgstr ""
23040
23041#. type: cindex
32747aa9 23042#: doc/guix.texi:13064 doc/guix.texi:13103 doc/guix.texi:24768
544cab3d
LC
23043#, no-wrap
23044msgid "SSH"
23045msgstr ""
23046
23047#. type: cindex
32747aa9 23048#: doc/guix.texi:13065 doc/guix.texi:13104 doc/guix.texi:24769
544cab3d
LC
23049#, no-wrap
23050msgid "SSH server"
23051msgstr ""
23052
23053#. type: deffn
32747aa9 23054#: doc/guix.texi:13067
544cab3d
LC
23055#, no-wrap
23056msgid "{Scheme Procedure} lsh-service [#:host-key \"/etc/lsh/host-key\"] @"
23057msgstr ""
23058
23059#. type: deffn
32747aa9 23060#: doc/guix.texi:13076
544cab3d
LC
23061msgid "[#: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."
23062msgstr ""
23063
23064#. type: deffn
32747aa9 23065#: doc/guix.texi:13082
544cab3d
LC
23066msgid "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}."
23067msgstr ""
23068
23069#. type: deffn
32747aa9 23070#: doc/guix.texi:13086
544cab3d
LC
23071msgid "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."
23072msgstr ""
23073
23074#. type: deffn
32747aa9 23075#: doc/guix.texi:13091
544cab3d
LC
23076msgid "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})."
23077msgstr ""
23078
23079#. type: deffn
32747aa9 23080#: doc/guix.texi:13095
544cab3d
LC
23081msgid "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."
23082msgstr ""
23083
23084#. type: deffn
32747aa9 23085#: doc/guix.texi:13099
544cab3d
LC
23086msgid "@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."
23087msgstr ""
23088
23089#. type: deffn
32747aa9 23090#: doc/guix.texi:13101
544cab3d
LC
23091msgid "The other options should be self-descriptive."
23092msgstr ""
23093
23094#. type: deffn
32747aa9 23095#: doc/guix.texi:13105
544cab3d
LC
23096#, no-wrap
23097msgid "{Scheme Variable} openssh-service-type"
23098msgstr ""
23099
23100#. type: deffn
32747aa9 23101#: doc/guix.texi:13109
544cab3d
LC
23102msgid "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:"
23103msgstr ""
23104
23105#. type: example
32747aa9 23106#: doc/guix.texi:13118
544cab3d
LC
23107#, no-wrap
23108msgid ""
23109"(service openssh-service-type\n"
23110" (openssh-configuration\n"
23111" (x11-forwarding? #t)\n"
23112" (permit-root-login 'without-password)\n"
23113" (authorized-keys\n"
23114" `((\"alice\" ,(local-file \"alice.pub\"))\n"
23115" (\"bob\" ,(local-file \"bob.pub\"))))))\n"
23116msgstr ""
23117
23118#. type: deffn
32747aa9 23119#: doc/guix.texi:13121
544cab3d
LC
23120msgid "See below for details about @code{openssh-configuration}."
23121msgstr ""
23122
23123#. type: deffn
32747aa9 23124#: doc/guix.texi:13124
544cab3d
LC
23125msgid "This service can be extended with extra authorized keys, as in this example:"
23126msgstr ""
23127
23128#. type: example
32747aa9 23129#: doc/guix.texi:13129
544cab3d
LC
23130#, no-wrap
23131msgid ""
23132"(service-extension openssh-service-type\n"
23133" (const `((\"charlie\"\n"
23134" ,(local-file \"charlie.pub\")))))\n"
23135msgstr ""
23136
23137#. type: deftp
32747aa9 23138#: doc/guix.texi:13132
544cab3d
LC
23139#, no-wrap
23140msgid "{Data Type} openssh-configuration"
23141msgstr ""
23142
23143#. type: deftp
32747aa9 23144#: doc/guix.texi:13134
544cab3d
LC
23145msgid "This is the configuration record for OpenSSH's @command{sshd}."
23146msgstr ""
23147
23148#. type: item
32747aa9 23149#: doc/guix.texi:13136
544cab3d
LC
23150#, no-wrap
23151msgid "@code{pid-file} (default: @code{\"/var/run/sshd.pid\"})"
23152msgstr ""
23153
23154#. type: table
32747aa9 23155#: doc/guix.texi:13138
544cab3d
LC
23156msgid "Name of the file where @command{sshd} writes its PID."
23157msgstr ""
23158
23159#. type: item
32747aa9 23160#: doc/guix.texi:13139
544cab3d
LC
23161#, no-wrap
23162msgid "@code{port-number} (default: @code{22})"
23163msgstr ""
23164
23165#. type: table
32747aa9 23166#: doc/guix.texi:13141
544cab3d
LC
23167msgid "TCP port on which @command{sshd} listens for incoming connections."
23168msgstr ""
23169
23170#. type: item
32747aa9 23171#: doc/guix.texi:13142
544cab3d
LC
23172#, no-wrap
23173msgid "@code{permit-root-login} (default: @code{#f})"
23174msgstr ""
23175
23176#. type: table
32747aa9 23177#: doc/guix.texi:13147
544cab3d
LC
23178msgid "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."
23179msgstr ""
23180
23181#. type: item
32747aa9 23182#: doc/guix.texi:13148 doc/guix.texi:13309
544cab3d
LC
23183#, no-wrap
23184msgid "@code{allow-empty-passwords?} (default: @code{#f})"
23185msgstr ""
23186
23187#. type: table
32747aa9 23188#: doc/guix.texi:13151
544cab3d
LC
23189msgid "When true, users with empty passwords may log in. When false, they may not."
23190msgstr ""
23191
23192#. type: item
32747aa9 23193#: doc/guix.texi:13152 doc/guix.texi:13312
544cab3d
LC
23194#, no-wrap
23195msgid "@code{password-authentication?} (default: @code{#t})"
23196msgstr ""
23197
23198#. type: table
32747aa9 23199#: doc/guix.texi:13155
544cab3d
LC
23200msgid "When true, users may log in with their password. When false, they have other authentication methods."
23201msgstr ""
23202
23203#. type: item
32747aa9 23204#: doc/guix.texi:13156
544cab3d
LC
23205#, no-wrap
23206msgid "@code{public-key-authentication?} (default: @code{#t})"
23207msgstr ""
23208
23209#. type: table
32747aa9 23210#: doc/guix.texi:13159
544cab3d
LC
23211msgid "When true, users may log in using public key authentication. When false, users have to use other authentication method."
23212msgstr ""
23213
23214#. type: table
32747aa9 23215#: doc/guix.texi:13162
544cab3d
LC
23216msgid "Authorized public keys are stored in @file{~/.ssh/authorized_keys}. This is used only by protocol version 2."
23217msgstr ""
23218
23219#. type: item
32747aa9 23220#: doc/guix.texi:13163
544cab3d
LC
23221#, no-wrap
23222msgid "@code{x11-forwarding?} (default: @code{#f})"
23223msgstr ""
23224
23225#. type: table
32747aa9 23226#: doc/guix.texi:13167
544cab3d
LC
23227msgid "When true, forwarding of X11 graphical client connections is enabled---in other words, @command{ssh} options @option{-X} and @option{-Y} will work."
23228msgstr ""
23229
23230#. type: item
32747aa9 23231#: doc/guix.texi:13168
544cab3d
LC
23232#, no-wrap
23233msgid "@code{allow-agent-forwarding?} (default: @code{#t})"
23234msgstr ""
23235
23236#. type: table
32747aa9 23237#: doc/guix.texi:13170
544cab3d
LC
23238msgid "Whether to allow agent forwarding."
23239msgstr ""
23240
23241#. type: item
32747aa9 23242#: doc/guix.texi:13171
544cab3d
LC
23243#, no-wrap
23244msgid "@code{allow-tcp-forwarding?} (default: @code{#t})"
23245msgstr ""
23246
23247#. type: table
32747aa9 23248#: doc/guix.texi:13173
544cab3d
LC
23249msgid "Whether to allow TCP forwarding."
23250msgstr ""
23251
23252#. type: item
32747aa9 23253#: doc/guix.texi:13174
544cab3d
LC
23254#, no-wrap
23255msgid "@code{gateway-ports?} (default: @code{#f})"
23256msgstr ""
23257
23258#. type: table
32747aa9 23259#: doc/guix.texi:13176
544cab3d
LC
23260msgid "Whether to allow gateway ports."
23261msgstr ""
23262
23263#. type: item
32747aa9 23264#: doc/guix.texi:13177
544cab3d
LC
23265#, no-wrap
23266msgid "@code{challenge-response-authentication?} (default: @code{#f})"
23267msgstr ""
23268
23269#. type: table
32747aa9 23270#: doc/guix.texi:13180
544cab3d
LC
23271msgid "Specifies whether challenge response authentication is allowed (e.g.@: via PAM)."
23272msgstr ""
23273
23274#. type: item
32747aa9 23275#: doc/guix.texi:13181
544cab3d
LC
23276#, no-wrap
23277msgid "@code{use-pam?} (default: @code{#t})"
23278msgstr ""
23279
23280#. type: table
32747aa9 23281#: doc/guix.texi:13187
544cab3d
LC
23282msgid "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."
23283msgstr ""
23284
23285#. type: table
32747aa9 23286#: doc/guix.texi:13192
544cab3d
LC
23287msgid "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?}."
23288msgstr ""
23289
23290#. type: item
32747aa9 23291#: doc/guix.texi:13193
544cab3d
LC
23292#, no-wrap
23293msgid "@code{print-last-log?} (default: @code{#t})"
23294msgstr ""
23295
23296#. type: table
32747aa9 23297#: doc/guix.texi:13196
544cab3d
LC
23298msgid "Specifies whether @command{sshd} should print the date and time of the last user login when a user logs in interactively."
23299msgstr ""
23300
23301#. type: item
32747aa9 23302#: doc/guix.texi:13197
544cab3d
LC
23303#, no-wrap
23304msgid "@code{subsystems} (default: @code{'((\"sftp\" \"internal-sftp\"))})"
23305msgstr ""
23306
23307#. type: table
32747aa9 23308#: doc/guix.texi:13199
544cab3d
LC
23309msgid "Configures external subsystems (e.g.@: file transfer daemon)."
23310msgstr ""
23311
23312#. type: table
32747aa9 23313#: doc/guix.texi:13203
544cab3d
LC
23314msgid "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."
23315msgstr ""
23316
23317#. type: table
32747aa9 23318#: doc/guix.texi:13206
544cab3d
LC
23319msgid "The command @command{internal-sftp} implements an in-process SFTP server. Alternately, one can specify the @command{sftp-server} command:"
23320msgstr ""
23321
23322#. type: example
32747aa9 23323#: doc/guix.texi:13211
544cab3d
LC
23324#, no-wrap
23325msgid ""
23326"(service openssh-service-type\n"
23327" (openssh-configuration\n"
23328" (subsystems\n"
23329" `((\"sftp\" ,(file-append openssh \"/libexec/sftp-server\"))))))\n"
23330msgstr ""
23331
23332#. type: item
32747aa9 23333#: doc/guix.texi:13213
544cab3d
LC
23334#, no-wrap
23335msgid "@code{accepted-environment} (default: @code{'()})"
23336msgstr ""
23337
23338#. type: table
32747aa9 23339#: doc/guix.texi:13215
544cab3d
LC
23340msgid "List of strings describing which environment variables may be exported."
23341msgstr ""
23342
23343#. type: table
32747aa9 23344#: doc/guix.texi:13218
544cab3d
LC
23345msgid "Each string gets on its own line. See the @code{AcceptEnv} option in @code{man sshd_config}."
23346msgstr ""
23347
23348#. type: table
32747aa9 23349#: doc/guix.texi:13223
544cab3d
LC
23350msgid "This example allows ssh-clients to export the @code{COLORTERM} variable. It is set by terminal emulators, which support colors. You can use it in your shell's ressource file to enable colors for the prompt and commands if this variable is set."
23351msgstr ""
23352
23353#. type: example
32747aa9 23354#: doc/guix.texi:13228
544cab3d
LC
23355#, no-wrap
23356msgid ""
23357"(service openssh-service-type\n"
23358" (openssh-configuration\n"
23359" (accepted-environment '(\"COLORTERM\"))))\n"
23360msgstr ""
23361
23362#. type: item
32747aa9 23363#: doc/guix.texi:13230
544cab3d
LC
23364#, no-wrap
23365msgid "@code{authorized-keys} (default: @code{'()})"
23366msgstr ""
23367
23368#. type: cindex
32747aa9 23369#: doc/guix.texi:13231
544cab3d
LC
23370#, no-wrap
23371msgid "authorized keys, SSH"
23372msgstr ""
23373
23374#. type: cindex
32747aa9 23375#: doc/guix.texi:13232
544cab3d
LC
23376#, no-wrap
23377msgid "SSH authorized keys"
23378msgstr ""
23379
23380#. type: table
32747aa9 23381#: doc/guix.texi:13236
544cab3d
LC
23382msgid "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:"
23383msgstr ""
23384
23385#. type: example
32747aa9 23386#: doc/guix.texi:13243
544cab3d
LC
23387#, no-wrap
23388msgid ""
23389"(openssh-configuration\n"
23390" (authorized-keys\n"
23391" `((\"rekado\" ,(local-file \"rekado.pub\"))\n"
23392" (\"chris\" ,(local-file \"chris.pub\"))\n"
23393" (\"root\" ,(local-file \"rekado.pub\") ,(local-file \"chris.pub\")))))\n"
23394msgstr ""
23395
23396#. type: table
32747aa9 23397#: doc/guix.texi:13248
544cab3d
LC
23398msgid "registers the specified public keys for user accounts @code{rekado}, @code{chris}, and @code{root}."
23399msgstr ""
23400
23401#. type: table
32747aa9 23402#: doc/guix.texi:13251
544cab3d
LC
23403msgid "Additional authorized keys can be specified @i{via} @code{service-extension}."
23404msgstr ""
23405
23406#. type: table
32747aa9 23407#: doc/guix.texi:13254
544cab3d
LC
23408msgid "Note that this does @emph{not} interfere with the use of @file{~/.ssh/authorized_keys}."
23409msgstr ""
23410
23411#. type: item
32747aa9 23412#: doc/guix.texi:13255
544cab3d
LC
23413#, no-wrap
23414msgid "@code{log-level} (default: @code{'info})"
23415msgstr ""
23416
23417#. type: table
32747aa9 23418#: doc/guix.texi:13259
544cab3d
LC
23419msgid "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."
23420msgstr ""
23421
23422#. type: item
32747aa9 23423#: doc/guix.texi:13260 doc/guix.texi:18874
544cab3d
LC
23424#, no-wrap
23425msgid "@code{extra-content} (default: @code{\"\"})"
23426msgstr ""
23427
23428#. type: table
32747aa9 23429#: doc/guix.texi:13265
544cab3d
LC
23430msgid "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:"
23431msgstr ""
23432
23433#. type: example
32747aa9 23434#: doc/guix.texi:13271
544cab3d
LC
23435#, no-wrap
23436msgid ""
23437"(openssh-configuration\n"
23438" (extra-content \"\\\n"
23439"Match Address 192.168.0.1\n"
23440" PermitRootLogin yes\"))\n"
23441msgstr ""
23442
23443#. type: deffn
32747aa9 23444#: doc/guix.texi:13276
544cab3d
LC
23445#, no-wrap
23446msgid "{Scheme Procedure} dropbear-service [@var{config}]"
23447msgstr ""
23448
23449#. type: deffn
32747aa9 23450#: doc/guix.texi:13280
544cab3d
LC
23451msgid "Run the @uref{https://matt.ucc.asn.au/dropbear/dropbear.html,Dropbear SSH daemon} with the given @var{config}, a @code{<dropbear-configuration>} object."
23452msgstr ""
23453
23454#. type: deffn
32747aa9 23455#: doc/guix.texi:13283
544cab3d
LC
23456msgid "For example, to specify a Dropbear service listening on port 1234, add this call to the operating system's @code{services} field:"
23457msgstr ""
23458
23459#. type: example
32747aa9 23460#: doc/guix.texi:13287
544cab3d
LC
23461#, no-wrap
23462msgid ""
23463"(dropbear-service (dropbear-configuration\n"
23464" (port-number 1234)))\n"
23465msgstr ""
23466
23467#. type: deftp
32747aa9 23468#: doc/guix.texi:13290
544cab3d
LC
23469#, no-wrap
23470msgid "{Data Type} dropbear-configuration"
23471msgstr ""
23472
23473#. type: deftp
32747aa9 23474#: doc/guix.texi:13292
544cab3d
LC
23475msgid "This data type represents the configuration of a Dropbear SSH daemon."
23476msgstr ""
23477
23478#. type: item
32747aa9 23479#: doc/guix.texi:13294
544cab3d
LC
23480#, no-wrap
23481msgid "@code{dropbear} (default: @var{dropbear})"
23482msgstr ""
23483
23484#. type: table
32747aa9 23485#: doc/guix.texi:13296
544cab3d
LC
23486msgid "The Dropbear package to use."
23487msgstr ""
23488
23489#. type: item
32747aa9 23490#: doc/guix.texi:13297
544cab3d
LC
23491#, no-wrap
23492msgid "@code{port-number} (default: 22)"
23493msgstr ""
23494
23495#. type: table
32747aa9 23496#: doc/guix.texi:13299
544cab3d
LC
23497msgid "The TCP port where the daemon waits for incoming connections."
23498msgstr ""
23499
23500#. type: item
32747aa9 23501#: doc/guix.texi:13300
544cab3d
LC
23502#, no-wrap
23503msgid "@code{syslog-output?} (default: @code{#t})"
23504msgstr ""
23505
23506#. type: table
32747aa9 23507#: doc/guix.texi:13302
544cab3d
LC
23508msgid "Whether to enable syslog output."
23509msgstr ""
23510
23511#. type: item
32747aa9 23512#: doc/guix.texi:13303
544cab3d
LC
23513#, no-wrap
23514msgid "@code{pid-file} (default: @code{\"/var/run/dropbear.pid\"})"
23515msgstr ""
23516
23517#. type: table
32747aa9 23518#: doc/guix.texi:13305
544cab3d
LC
23519msgid "File name of the daemon's PID file."
23520msgstr ""
23521
23522#. type: item
32747aa9 23523#: doc/guix.texi:13306
544cab3d
LC
23524#, no-wrap
23525msgid "@code{root-login?} (default: @code{#f})"
23526msgstr ""
23527
23528#. type: table
32747aa9 23529#: doc/guix.texi:13308
544cab3d
LC
23530msgid "Whether to allow @code{root} logins."
23531msgstr ""
23532
23533#. type: table
32747aa9 23534#: doc/guix.texi:13311
544cab3d
LC
23535msgid "Whether to allow empty passwords."
23536msgstr ""
23537
23538#. type: table
32747aa9 23539#: doc/guix.texi:13314
544cab3d
LC
23540msgid "Whether to enable password-based authentication."
23541msgstr ""
23542
23543#. type: defvr
32747aa9 23544#: doc/guix.texi:13317
544cab3d
LC
23545#, no-wrap
23546msgid "{Scheme Variable} %facebook-host-aliases"
23547msgstr ""
23548
23549#. type: defvr
32747aa9 23550#: doc/guix.texi:13323
544cab3d
LC
23551msgid "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}."
23552msgstr ""
23553
23554#. type: defvr
32747aa9 23555#: doc/guix.texi:13327
544cab3d
LC
23556msgid "This variable is typically used in the @code{hosts-file} field of an @code{operating-system} declaration (@pxref{operating-system Reference, @file{/etc/hosts}}):"
23557msgstr ""
23558
23559#. type: example
32747aa9 23560#: doc/guix.texi:13340
544cab3d
LC
23561#, no-wrap
23562msgid ""
23563"(operating-system\n"
23564" (host-name \"mymachine\")\n"
23565" ;; ...\n"
23566" (hosts-file\n"
23567" ;; Create a /etc/hosts file with aliases for \"localhost\"\n"
23568" ;; and \"mymachine\", as well as for Facebook servers.\n"
23569" (plain-file \"hosts\"\n"
23570" (string-append (local-host-aliases host-name)\n"
23571" %facebook-host-aliases))))\n"
23572msgstr ""
23573
23574#. type: defvr
32747aa9 23575#: doc/guix.texi:13344
544cab3d
LC
23576msgid "This mechanism can prevent programs running locally, such as Web browsers, from accessing Facebook."
23577msgstr ""
23578
23579#. type: Plain text
32747aa9 23580#: doc/guix.texi:13347
544cab3d
LC
23581msgid "The @code{(gnu services avahi)} provides the following definition."
23582msgstr ""
23583
23584#. type: defvr
32747aa9 23585#: doc/guix.texi:13348
544cab3d
LC
23586#, no-wrap
23587msgid "{Scheme Variable} avahi-service-type"
23588msgstr ""
23589
23590#. type: defvr
32747aa9
LC
23591#: doc/guix.texi:13353
23592msgid "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 a @code{zero-configuration} record---see below."
544cab3d
LC
23593msgstr ""
23594
23595#. type: defvr
32747aa9 23596#: doc/guix.texi:13358
544cab3d
LC
23597msgid "This service extends the name service cache daemon (nscd) so that it can resolve @code{.local} host names using @uref{http://0pointer.de/lennart/projects/nss-mdns/, nss-mdns}. @xref{Name Service Switch}, for information on host name resolution."
23598msgstr ""
23599
23600#. type: defvr
32747aa9 23601#: doc/guix.texi:13361
544cab3d
LC
23602msgid "Additionally, add the @var{avahi} package to the system profile so that commands such as @command{avahi-browse} are directly usable."
23603msgstr ""
23604
23605#. type: deftp
32747aa9 23606#: doc/guix.texi:13363
544cab3d
LC
23607#, no-wrap
23608msgid "{Data Type} avahi-configuration"
23609msgstr ""
23610
23611#. type: deftp
32747aa9 23612#: doc/guix.texi:13365
544cab3d
LC
23613msgid "Data type representation the configuration for Avahi."
23614msgstr ""
23615
23616#. type: item
32747aa9 23617#: doc/guix.texi:13368
544cab3d
LC
23618#, no-wrap
23619msgid "@code{host-name} (default: @code{#f})"
23620msgstr ""
23621
23622#. type: table
32747aa9 23623#: doc/guix.texi:13371
544cab3d
LC
23624msgid "If different from @code{#f}, use that as the host name to publish for this machine; otherwise, use the machine's actual host name."
23625msgstr ""
23626
23627#. type: item
32747aa9 23628#: doc/guix.texi:13372
544cab3d
LC
23629#, no-wrap
23630msgid "@code{publish?} (default: @code{#t})"
23631msgstr ""
23632
23633#. type: table
32747aa9 23634#: doc/guix.texi:13375
544cab3d
LC
23635msgid "When true, allow host names and services to be published (broadcast) over the network."
23636msgstr ""
23637
23638#. type: item
32747aa9 23639#: doc/guix.texi:13376
544cab3d
LC
23640#, no-wrap
23641msgid "@code{publish-workstation?} (default: @code{#t})"
23642msgstr ""
23643
23644#. type: table
32747aa9 23645#: doc/guix.texi:13380
544cab3d
LC
23646msgid "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:"
23647msgstr ""
23648
23649#. type: example
32747aa9 23650#: doc/guix.texi:13383
544cab3d
LC
23651#, no-wrap
23652msgid "avahi-browse _workstation._tcp\n"
23653msgstr ""
23654
23655#. type: item
32747aa9 23656#: doc/guix.texi:13385
544cab3d
LC
23657#, no-wrap
23658msgid "@code{wide-area?} (default: @code{#f})"
23659msgstr ""
23660
23661#. type: table
32747aa9 23662#: doc/guix.texi:13387
544cab3d
LC
23663msgid "When true, DNS-SD over unicast DNS is enabled."
23664msgstr ""
23665
23666#. type: item
32747aa9 23667#: doc/guix.texi:13388
544cab3d
LC
23668#, no-wrap
23669msgid "@code{ipv4?} (default: @code{#t})"
23670msgstr ""
23671
23672#. type: itemx
32747aa9 23673#: doc/guix.texi:13389
544cab3d
LC
23674#, no-wrap
23675msgid "@code{ipv6?} (default: @code{#t})"
23676msgstr ""
23677
23678#. type: table
32747aa9 23679#: doc/guix.texi:13391
544cab3d
LC
23680msgid "These fields determine whether to use IPv4/IPv6 sockets."
23681msgstr ""
23682
23683#. type: item
32747aa9 23684#: doc/guix.texi:13392
544cab3d
LC
23685#, no-wrap
23686msgid "@code{domains-to-browse} (default: @code{'()})"
23687msgstr ""
23688
23689#. type: table
32747aa9 23690#: doc/guix.texi:13394
544cab3d
LC
23691msgid "This is a list of domains to browse."
23692msgstr ""
23693
23694#. type: deffn
32747aa9 23695#: doc/guix.texi:13397
544cab3d
LC
23696#, no-wrap
23697msgid "{Scheme Variable} openvswitch-service-type"
23698msgstr ""
23699
23700#. type: deffn
32747aa9
LC
23701#: doc/guix.texi:13401
23702msgid "This is the type of the @uref{https://www.openvswitch.org, Open vSwitch} service, whose value should be an @code{openvswitch-configuration} object."
544cab3d
LC
23703msgstr ""
23704
23705#. type: deftp
32747aa9 23706#: doc/guix.texi:13403
544cab3d
LC
23707#, no-wrap
23708msgid "{Data Type} openvswitch-configuration"
23709msgstr ""
23710
23711#. type: deftp
32747aa9 23712#: doc/guix.texi:13407
544cab3d
LC
23713msgid "Data type representing the configuration of Open vSwitch, a multilayer virtual switch which is designed to enable massive network automation through programmatic extension."
23714msgstr ""
23715
23716#. type: item
32747aa9 23717#: doc/guix.texi:13409
544cab3d
LC
23718#, no-wrap
23719msgid "@code{package} (default: @var{openvswitch})"
23720msgstr ""
23721
23722#. type: table
32747aa9 23723#: doc/guix.texi:13411
544cab3d
LC
23724msgid "Package object of the Open vSwitch."
23725msgstr ""
23726
23727#. type: cindex
32747aa9 23728#: doc/guix.texi:13418
544cab3d
LC
23729#, no-wrap
23730msgid "X11"
23731msgstr ""
23732
23733#. type: cindex
32747aa9 23734#: doc/guix.texi:13419
544cab3d
LC
23735#, no-wrap
23736msgid "X Window System"
23737msgstr ""
23738
23739#. type: cindex
32747aa9 23740#: doc/guix.texi:13420 doc/guix.texi:13669
544cab3d
LC
23741#, no-wrap
23742msgid "login manager"
23743msgstr ""
23744
23745#. type: Plain text
32747aa9 23746#: doc/guix.texi:13425
544cab3d
LC
23747msgid "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)."
23748msgstr ""
23749
23750#. type: cindex
32747aa9 23751#: doc/guix.texi:13426
544cab3d
LC
23752#, no-wrap
23753msgid "GDM"
23754msgstr ""
23755
23756#. type: cindex
32747aa9 23757#: doc/guix.texi:13427
544cab3d
LC
23758#, no-wrap
23759msgid "GNOME, login manager"
23760msgstr ""
23761
23762#. type: Plain text
32747aa9 23763#: doc/guix.texi:13431
544cab3d
LC
23764msgid "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."
23765msgstr ""
23766
23767#. type: cindex
32747aa9 23768#: doc/guix.texi:13432
544cab3d
LC
23769#, no-wrap
23770msgid "window manager"
23771msgstr ""
23772
23773#. type: Plain text
32747aa9 23774#: doc/guix.texi:13437
544cab3d
LC
23775msgid "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})."
23776msgstr ""
23777
23778#. type: defvr
32747aa9 23779#: doc/guix.texi:13438
544cab3d
LC
23780#, no-wrap
23781msgid "{Scheme Variable} gdm-service-type"
23782msgstr ""
23783
23784#. type: defvr
32747aa9 23785#: doc/guix.texi:13443
544cab3d
LC
23786msgid "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.)"
23787msgstr ""
23788
23789#. type: cindex
32747aa9 23790#: doc/guix.texi:13444
544cab3d
LC
23791#, no-wrap
23792msgid "session types (X11)"
23793msgstr ""
23794
23795#. type: cindex
32747aa9 23796#: doc/guix.texi:13445
544cab3d
LC
23797#, no-wrap
23798msgid "X11 session types"
23799msgstr ""
23800
23801#. type: defvr
32747aa9 23802#: doc/guix.texi:13451
544cab3d
LC
23803msgid "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."
23804msgstr ""
23805
23806#. type: defvr
32747aa9 23807#: doc/guix.texi:13455
544cab3d
LC
23808msgid "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."
23809msgstr ""
23810
23811#. type: deftp
32747aa9 23812#: doc/guix.texi:13457
544cab3d
LC
23813#, no-wrap
23814msgid "{Data Type} gdm-configuration"
23815msgstr ""
23816
23817#. type: item
32747aa9 23818#: doc/guix.texi:13459 doc/guix.texi:13525
544cab3d
LC
23819#, no-wrap
23820msgid "@code{auto-login?} (default: @code{#f})"
23821msgstr ""
23822
23823#. type: itemx
32747aa9 23824#: doc/guix.texi:13460
544cab3d
LC
23825#, no-wrap
23826msgid "@code{default-user} (default: @code{#f})"
23827msgstr ""
23828
23829#. type: table
32747aa9 23830#: doc/guix.texi:13462
544cab3d
LC
23831msgid "When @code{auto-login?} is false, GDM presents a log-in screen."
23832msgstr ""
23833
23834#. type: table
32747aa9 23835#: doc/guix.texi:13465
544cab3d
LC
23836msgid "When @code{auto-login?} is true, GDM logs in directly as @code{default-user}."
23837msgstr ""
23838
23839#. type: item
32747aa9 23840#: doc/guix.texi:13466
544cab3d
LC
23841#, no-wrap
23842msgid "@code{gnome-shell-assets} (default: ...)"
23843msgstr ""
23844
23845#. type: table
32747aa9 23846#: doc/guix.texi:13468
544cab3d
LC
23847msgid "List of GNOME Shell assets needed by GDM: icon theme, fonts, etc."
23848msgstr ""
23849
23850#. type: item
32747aa9 23851#: doc/guix.texi:13469
544cab3d
LC
23852#, no-wrap
23853msgid "@code{xorg-configuration} (default: @code{(xorg-configuration)})"
23854msgstr ""
23855
23856#. type: table
32747aa9 23857#: doc/guix.texi:13471 doc/guix.texi:13552 doc/guix.texi:13635
544cab3d
LC
23858msgid "Configuration of the Xorg graphical server."
23859msgstr ""
23860
23861#. type: item
32747aa9 23862#: doc/guix.texi:13472
544cab3d
LC
23863#, no-wrap
23864msgid "@code{xsession} (default: @code{(xinitrc)})"
23865msgstr ""
23866
23867#. type: table
32747aa9 23868#: doc/guix.texi:13474 doc/guix.texi:13650
544cab3d
LC
23869msgid "Script to run before starting a X session."
23870msgstr ""
23871
23872#. type: item
32747aa9 23873#: doc/guix.texi:13475
544cab3d
LC
23874#, no-wrap
23875msgid "@code{dbus-daemon} (default: @code{dbus-daemon-wrapper})"
23876msgstr ""
23877
23878#. type: table
32747aa9 23879#: doc/guix.texi:13477
544cab3d
LC
23880msgid "File name of the @code{dbus-daemon} executable."
23881msgstr ""
23882
23883#. type: item
32747aa9 23884#: doc/guix.texi:13478
544cab3d
LC
23885#, no-wrap
23886msgid "@code{gdm} (default: @code{gdm})"
23887msgstr ""
23888
23889#. type: table
32747aa9 23890#: doc/guix.texi:13480
544cab3d
LC
23891msgid "The GDM package to use."
23892msgstr ""
23893
23894#. type: defvr
32747aa9 23895#: doc/guix.texi:13483
544cab3d
LC
23896#, no-wrap
23897msgid "{Scheme Variable} slim-service-type"
23898msgstr ""
23899
23900#. type: defvr
32747aa9 23901#: doc/guix.texi:13485
544cab3d
LC
23902msgid "This is the type for the SLiM graphical login manager for X11."
23903msgstr ""
23904
23905#. type: defvr
32747aa9 23906#: doc/guix.texi:13489
544cab3d
LC
23907msgid "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."
23908msgstr ""
23909
32747aa9
LC
23910#. type: defvr
23911#: doc/guix.texi:13496
23912msgid "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."
23913msgstr ""
23914
23915#. type: lisp
23916#: doc/guix.texi:13502
23917#, no-wrap
23918msgid ""
23919"(use-modules (gnu services)\n"
23920" (gnu services desktop)\n"
23921" (gnu services xorg)\n"
23922" (srfi srfi-1)) ;for 'remove'\n"
23923"\n"
23924msgstr ""
23925
23926#. type: lisp
23927#: doc/guix.texi:13514
23928#, no-wrap
23929msgid ""
23930"(operating-system\n"
23931" ;; ...\n"
23932" (services (cons* (service slim-service-type (slim-configuration\n"
23933" (display \":0\")\n"
23934" (vt \"vt7\")))\n"
23935" (service slim-service-type (slim-configuration\n"
23936" (display \":1\")\n"
23937" (vt \"vt8\")))\n"
23938" (remove (lambda (service)\n"
23939" (eq? (service-kind service) gdm-service-type))\n"
23940" %desktop-services))))\n"
23941msgstr ""
23942
544cab3d 23943#. type: deftp
32747aa9 23944#: doc/guix.texi:13518
544cab3d
LC
23945#, no-wrap
23946msgid "{Data Type} slim-configuration"
23947msgstr ""
23948
23949#. type: deftp
32747aa9 23950#: doc/guix.texi:13520
544cab3d
LC
23951msgid "Data type representing the configuration of @code{slim-service-type}."
23952msgstr ""
23953
23954#. type: table
32747aa9 23955#: doc/guix.texi:13524
544cab3d
LC
23956msgid "Whether to allow logins with empty passwords."
23957msgstr ""
23958
23959#. type: itemx
32747aa9 23960#: doc/guix.texi:13526
544cab3d
LC
23961#, no-wrap
23962msgid "@code{default-user} (default: @code{\"\"})"
23963msgstr ""
23964
23965#. type: table
32747aa9 23966#: doc/guix.texi:13528
544cab3d
LC
23967msgid "When @code{auto-login?} is false, SLiM presents a log-in screen."
23968msgstr ""
23969
23970#. type: table
32747aa9 23971#: doc/guix.texi:13531
544cab3d
LC
23972msgid "When @code{auto-login?} is true, SLiM logs in directly as @code{default-user}."
23973msgstr ""
23974
23975#. type: item
32747aa9 23976#: doc/guix.texi:13532
544cab3d
LC
23977#, no-wrap
23978msgid "@code{theme} (default: @code{%default-slim-theme})"
23979msgstr ""
23980
23981#. type: itemx
32747aa9 23982#: doc/guix.texi:13533
544cab3d
LC
23983#, no-wrap
23984msgid "@code{theme-name} (default: @code{%default-slim-theme-name})"
23985msgstr ""
23986
23987#. type: table
32747aa9 23988#: doc/guix.texi:13535
544cab3d
LC
23989msgid "The graphical theme to use and its name."
23990msgstr ""
23991
23992#. type: item
32747aa9 23993#: doc/guix.texi:13536
544cab3d
LC
23994#, no-wrap
23995msgid "@code{auto-login-session} (default: @code{#f})"
23996msgstr ""
23997
23998#. type: table
32747aa9 23999#: doc/guix.texi:13539
544cab3d
LC
24000msgid "If true, this must be the name of the executable to start as the default session---e.g., @code{(file-append windowmaker \"/bin/windowmaker\")}."
24001msgstr ""
24002
24003#. type: table
32747aa9 24004#: doc/guix.texi:13543
544cab3d
LC
24005msgid "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."
24006msgstr ""
24007
24008#. type: quotation
32747aa9 24009#: doc/guix.texi:13548
544cab3d
LC
24010msgid "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."
24011msgstr ""
24012
24013#. type: item
32747aa9 24014#: doc/guix.texi:13550 doc/guix.texi:13633
544cab3d
LC
24015#, no-wrap
24016msgid "@code{xorg-configuration} (default @code{(xorg-configuration)})"
24017msgstr ""
24018
24019#. type: item
32747aa9
LC
24020#: doc/guix.texi:13553
24021#, no-wrap
24022msgid "@code{display} (default @code{\":0\"})"
24023msgstr "@code{display}(默认值:@code{\":0\"})"
24024
24025#. type: table
24026#: doc/guix.texi:13555
24027msgid "The display on which to start the Xorg graphical server."
24028msgstr ""
24029
24030#. type: item
24031#: doc/guix.texi:13556
24032#, no-wrap
24033msgid "@code{vt} (default @code{\"vt7\"})"
24034msgstr "@code{vt}(默认值:@code{\"vt7\"})"
24035
24036#. type: table
24037#: doc/guix.texi:13558
24038msgid "The VT on which to start the Xorg graphical server."
24039msgstr ""
24040
24041#. type: item
24042#: doc/guix.texi:13559
544cab3d
LC
24043#, no-wrap
24044msgid "@code{xauth} (default: @code{xauth})"
24045msgstr ""
24046
24047#. type: table
32747aa9 24048#: doc/guix.texi:13561
544cab3d
LC
24049msgid "The XAuth package to use."
24050msgstr ""
24051
24052#. type: item
32747aa9 24053#: doc/guix.texi:13562
544cab3d
LC
24054#, no-wrap
24055msgid "@code{shepherd} (default: @code{shepherd})"
24056msgstr ""
24057
24058#. type: table
32747aa9 24059#: doc/guix.texi:13565
544cab3d
LC
24060msgid "The Shepherd package used when invoking @command{halt} and @command{reboot}."
24061msgstr ""
24062
24063#. type: item
32747aa9 24064#: doc/guix.texi:13566
544cab3d
LC
24065#, no-wrap
24066msgid "@code{sessreg} (default: @code{sessreg})"
24067msgstr ""
24068
24069#. type: table
32747aa9 24070#: doc/guix.texi:13568
544cab3d
LC
24071msgid "The sessreg package used in order to register the session."
24072msgstr ""
24073
24074#. type: item
32747aa9 24075#: doc/guix.texi:13569
544cab3d
LC
24076#, no-wrap
24077msgid "@code{slim} (default: @code{slim})"
24078msgstr ""
24079
24080#. type: table
32747aa9 24081#: doc/guix.texi:13571
544cab3d
LC
24082msgid "The SLiM package to use."
24083msgstr ""
24084
24085#. type: defvr
32747aa9 24086#: doc/guix.texi:13574 doc/guix.texi:24215
544cab3d
LC
24087#, no-wrap
24088msgid "{Scheme Variable} %default-theme"
24089msgstr ""
24090
24091#. type: defvrx
32747aa9 24092#: doc/guix.texi:13575
544cab3d
LC
24093#, no-wrap
24094msgid "{Scheme Variable} %default-theme-name"
24095msgstr ""
24096
24097#. type: defvr
32747aa9 24098#: doc/guix.texi:13577
544cab3d
LC
24099msgid "The default SLiM theme and its name."
24100msgstr ""
24101
24102#. type: deftp
32747aa9 24103#: doc/guix.texi:13580
544cab3d
LC
24104#, no-wrap
24105msgid "{Data Type} sddm-configuration"
24106msgstr ""
24107
24108#. type: deftp
32747aa9 24109#: doc/guix.texi:13582
544cab3d
LC
24110msgid "This is the data type representing the sddm service configuration."
24111msgstr ""
24112
24113#. type: item
32747aa9 24114#: doc/guix.texi:13584
544cab3d
LC
24115#, no-wrap
24116msgid "@code{display-server} (default: \"x11\")"
24117msgstr ""
24118
24119#. type: table
32747aa9 24120#: doc/guix.texi:13587
544cab3d
LC
24121msgid "Select display server to use for the greeter. Valid values are \"x11\" or \"wayland\"."
24122msgstr ""
24123
24124#. type: item
32747aa9 24125#: doc/guix.texi:13588
544cab3d
LC
24126#, no-wrap
24127msgid "@code{numlock} (default: \"on\")"
24128msgstr ""
24129
24130#. type: table
32747aa9 24131#: doc/guix.texi:13590
544cab3d
LC
24132msgid "Valid values are \"on\", \"off\" or \"none\"."
24133msgstr ""
24134
24135#. type: item
32747aa9 24136#: doc/guix.texi:13591
544cab3d
LC
24137#, no-wrap
24138msgid "@code{halt-command} (default @code{#~(string-apppend #$shepherd \"/sbin/halt\")})"
24139msgstr ""
24140
24141#. type: table
32747aa9 24142#: doc/guix.texi:13593
544cab3d
LC
24143msgid "Command to run when halting."
24144msgstr ""
24145
24146#. type: item
32747aa9 24147#: doc/guix.texi:13594
544cab3d
LC
24148#, no-wrap
24149msgid "@code{reboot-command} (default @code{#~(string-append #$shepherd \"/sbin/reboot\")})"
24150msgstr ""
24151
24152#. type: table
32747aa9 24153#: doc/guix.texi:13596
544cab3d
LC
24154msgid "Command to run when rebooting."
24155msgstr ""
24156
24157#. type: item
32747aa9 24158#: doc/guix.texi:13597
544cab3d
LC
24159#, no-wrap
24160msgid "@code{theme} (default \"maldives\")"
24161msgstr ""
24162
24163#. type: table
32747aa9 24164#: doc/guix.texi:13599
544cab3d
LC
24165msgid "Theme to use. Default themes provided by SDDM are \"elarun\" or \"maldives\"."
24166msgstr ""
24167
24168#. type: item
32747aa9 24169#: doc/guix.texi:13600
544cab3d
LC
24170#, no-wrap
24171msgid "@code{themes-directory} (default \"/run/current-system/profile/share/sddm/themes\")"
24172msgstr ""
24173
24174#. type: table
32747aa9 24175#: doc/guix.texi:13602
544cab3d
LC
24176msgid "Directory to look for themes."
24177msgstr ""
24178
24179#. type: item
32747aa9 24180#: doc/guix.texi:13603
544cab3d
LC
24181#, no-wrap
24182msgid "@code{faces-directory} (default \"/run/current-system/profile/share/sddm/faces\")"
24183msgstr ""
24184
24185#. type: table
32747aa9 24186#: doc/guix.texi:13605
544cab3d
LC
24187msgid "Directory to look for faces."
24188msgstr ""
24189
24190#. type: item
32747aa9 24191#: doc/guix.texi:13606
544cab3d
LC
24192#, no-wrap
24193msgid "@code{default-path} (default \"/run/current-system/profile/bin\")"
24194msgstr ""
24195
24196#. type: table
32747aa9 24197#: doc/guix.texi:13608
544cab3d
LC
24198msgid "Default PATH to use."
24199msgstr ""
24200
24201#. type: item
32747aa9 24202#: doc/guix.texi:13609
544cab3d
LC
24203#, no-wrap
24204msgid "@code{minimum-uid} (default 1000)"
24205msgstr ""
24206
24207#. type: table
32747aa9 24208#: doc/guix.texi:13611
544cab3d
LC
24209msgid "Minimum UID to display in SDDM."
24210msgstr ""
24211
24212#. type: item
32747aa9 24213#: doc/guix.texi:13612
544cab3d
LC
24214#, no-wrap
24215msgid "@code{maximum-uid} (default 2000)"
24216msgstr ""
24217
24218#. type: table
32747aa9 24219#: doc/guix.texi:13614
544cab3d
LC
24220msgid "Maximum UID to display in SDDM"
24221msgstr ""
24222
24223#. type: item
32747aa9 24224#: doc/guix.texi:13615
544cab3d
LC
24225#, no-wrap
24226msgid "@code{remember-last-user?} (default #t)"
24227msgstr ""
24228
24229#. type: table
32747aa9 24230#: doc/guix.texi:13617
544cab3d
LC
24231msgid "Remember last user."
24232msgstr ""
24233
24234#. type: item
32747aa9 24235#: doc/guix.texi:13618
544cab3d
LC
24236#, no-wrap
24237msgid "@code{remember-last-session?} (default #t)"
24238msgstr ""
24239
24240#. type: table
32747aa9 24241#: doc/guix.texi:13620
544cab3d
LC
24242msgid "Remember last session."
24243msgstr ""
24244
24245#. type: item
32747aa9 24246#: doc/guix.texi:13621
544cab3d
LC
24247#, no-wrap
24248msgid "@code{hide-users} (default \"\")"
24249msgstr ""
24250
24251#. type: table
32747aa9 24252#: doc/guix.texi:13623
544cab3d
LC
24253msgid "Usernames to hide from SDDM greeter."
24254msgstr ""
24255
24256#. type: item
32747aa9 24257#: doc/guix.texi:13624
544cab3d
LC
24258#, no-wrap
24259msgid "@code{hide-shells} (default @code{#~(string-append #$shadow \"/sbin/nologin\")})"
24260msgstr ""
24261
24262#. type: table
32747aa9 24263#: doc/guix.texi:13626
544cab3d
LC
24264msgid "Users with shells listed will be hidden from the SDDM greeter."
24265msgstr ""
24266
24267#. type: item
32747aa9 24268#: doc/guix.texi:13627
544cab3d
LC
24269#, no-wrap
24270msgid "@code{session-command} (default @code{#~(string-append #$sddm \"/share/sddm/scripts/wayland-session\")})"
24271msgstr ""
24272
24273#. type: table
32747aa9 24274#: doc/guix.texi:13629
544cab3d
LC
24275msgid "Script to run before starting a wayland session."
24276msgstr ""
24277
24278#. type: item
32747aa9 24279#: doc/guix.texi:13630
544cab3d
LC
24280#, no-wrap
24281msgid "@code{sessions-directory} (default \"/run/current-system/profile/share/wayland-sessions\")"
24282msgstr ""
24283
24284#. type: table
32747aa9 24285#: doc/guix.texi:13632
544cab3d
LC
24286msgid "Directory to look for desktop files starting wayland sessions."
24287msgstr ""
24288
24289#. type: item
32747aa9 24290#: doc/guix.texi:13636
544cab3d
LC
24291#, no-wrap
24292msgid "@code{xauth-path} (default @code{#~(string-append #$xauth \"/bin/xauth\")})"
24293msgstr ""
24294
24295#. type: table
32747aa9 24296#: doc/guix.texi:13638
544cab3d
LC
24297msgid "Path to xauth."
24298msgstr ""
24299
24300#. type: item
32747aa9 24301#: doc/guix.texi:13639
544cab3d
LC
24302#, no-wrap
24303msgid "@code{xephyr-path} (default @code{#~(string-append #$xorg-server \"/bin/Xephyr\")})"
24304msgstr ""
24305
24306#. type: table
32747aa9 24307#: doc/guix.texi:13641
544cab3d
LC
24308msgid "Path to Xephyr."
24309msgstr ""
24310
24311#. type: item
32747aa9 24312#: doc/guix.texi:13642
544cab3d
LC
24313#, no-wrap
24314msgid "@code{xdisplay-start} (default @code{#~(string-append #$sddm \"/share/sddm/scripts/Xsetup\")})"
24315msgstr ""
24316
24317#. type: table
32747aa9 24318#: doc/guix.texi:13644
544cab3d
LC
24319msgid "Script to run after starting xorg-server."
24320msgstr ""
24321
24322#. type: item
32747aa9 24323#: doc/guix.texi:13645
544cab3d
LC
24324#, no-wrap
24325msgid "@code{xdisplay-stop} (default @code{#~(string-append #$sddm \"/share/sddm/scripts/Xstop\")})"
24326msgstr ""
24327
24328#. type: table
32747aa9 24329#: doc/guix.texi:13647
544cab3d
LC
24330msgid "Script to run before stopping xorg-server."
24331msgstr ""
24332
24333#. type: item
32747aa9 24334#: doc/guix.texi:13648
544cab3d
LC
24335#, no-wrap
24336msgid "@code{xsession-command} (default: @code{xinitrc})"
24337msgstr ""
24338
24339#. type: item
32747aa9 24340#: doc/guix.texi:13651
544cab3d
LC
24341#, no-wrap
24342msgid "@code{xsessions-directory} (default: \"/run/current-system/profile/share/xsessions\")"
24343msgstr ""
24344
24345#. type: table
32747aa9 24346#: doc/guix.texi:13653
544cab3d
LC
24347msgid "Directory to look for desktop files starting X sessions."
24348msgstr ""
24349
24350#. type: item
32747aa9 24351#: doc/guix.texi:13654
544cab3d
LC
24352#, no-wrap
24353msgid "@code{minimum-vt} (default: 7)"
24354msgstr ""
24355
24356#. type: table
32747aa9 24357#: doc/guix.texi:13656
544cab3d
LC
24358msgid "Minimum VT to use."
24359msgstr ""
24360
24361#. type: item
32747aa9 24362#: doc/guix.texi:13657
544cab3d
LC
24363#, no-wrap
24364msgid "@code{auto-login-user} (default \"\")"
24365msgstr ""
24366
24367#. type: table
32747aa9 24368#: doc/guix.texi:13659
544cab3d
LC
24369msgid "User to use for auto-login."
24370msgstr ""
24371
24372#. type: item
32747aa9 24373#: doc/guix.texi:13660
544cab3d
LC
24374#, no-wrap
24375msgid "@code{auto-login-session} (default \"\")"
24376msgstr ""
24377
24378#. type: table
32747aa9 24379#: doc/guix.texi:13662
544cab3d
LC
24380msgid "Desktop file to use for auto-login."
24381msgstr ""
24382
24383#. type: item
32747aa9 24384#: doc/guix.texi:13663
544cab3d
LC
24385#, no-wrap
24386msgid "@code{relogin?} (default #f)"
24387msgstr ""
24388
24389#. type: table
32747aa9 24390#: doc/guix.texi:13665
544cab3d
LC
24391msgid "Relogin after logout."
24392msgstr ""
24393
24394#. type: cindex
32747aa9 24395#: doc/guix.texi:13670
544cab3d
LC
24396#, no-wrap
24397msgid "X11 login"
24398msgstr ""
24399
24400#. type: deffn
32747aa9 24401#: doc/guix.texi:13671
544cab3d
LC
24402#, no-wrap
24403msgid "{Scheme Procedure} sddm-service config"
24404msgstr ""
24405
24406#. type: deffn
32747aa9 24407#: doc/guix.texi:13674
544cab3d
LC
24408msgid "Return a service that spawns the SDDM graphical login manager for config of type @code{<sddm-configuration>}."
24409msgstr ""
24410
24411#. type: example
32747aa9 24412#: doc/guix.texi:13679
544cab3d
LC
24413#, no-wrap
24414msgid ""
24415" (sddm-service (sddm-configuration\n"
24416" (auto-login-user \"Alice\")\n"
24417" (auto-login-session \"xfce.desktop\")))\n"
24418msgstr ""
24419
24420#. type: cindex
32747aa9 24421#: doc/guix.texi:13682
544cab3d
LC
24422#, no-wrap
24423msgid "Xorg, configuration"
24424msgstr ""
24425
24426#. type: deftp
32747aa9 24427#: doc/guix.texi:13683
544cab3d
LC
24428#, no-wrap
24429msgid "{Data Type} xorg-configuration"
24430msgstr ""
24431
24432#. type: deftp
32747aa9 24433#: doc/guix.texi:13688
544cab3d
LC
24434msgid "This data type represents the configuration of the Xorg graphical display server. Note that there is not 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."
24435msgstr ""
24436
24437#. type: item
32747aa9 24438#: doc/guix.texi:13690
544cab3d
LC
24439#, no-wrap
24440msgid "@code{modules} (default: @code{%default-xorg-modules})"
24441msgstr ""
24442
24443#. type: table
32747aa9 24444#: doc/guix.texi:13693
544cab3d
LC
24445msgid "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."
24446msgstr ""
24447
24448#. type: item
32747aa9 24449#: doc/guix.texi:13694
544cab3d
LC
24450#, no-wrap
24451msgid "@code{fonts} (default: @code{%default-xorg-fonts})"
24452msgstr ""
24453
24454#. type: table
32747aa9 24455#: doc/guix.texi:13696
544cab3d
LC
24456msgid "This is a list of font directories to add to the server's @dfn{font path}."
24457msgstr ""
24458
24459#. type: item
32747aa9 24460#: doc/guix.texi:13697
544cab3d
LC
24461#, no-wrap
24462msgid "@code{drivers} (default: @code{'()})"
24463msgstr ""
24464
24465#. type: table
32747aa9 24466#: doc/guix.texi:13701
544cab3d
LC
24467msgid "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\")}."
24468msgstr ""
24469
24470#. type: item
32747aa9 24471#: doc/guix.texi:13702
544cab3d
LC
24472#, no-wrap
24473msgid "@code{resolutions} (default: @code{'()})"
24474msgstr ""
24475
24476#. type: table
32747aa9 24477#: doc/guix.texi:13706
544cab3d
LC
24478msgid "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))}."
24479msgstr ""
24480
24481#. type: cindex
32747aa9 24482#: doc/guix.texi:13707
544cab3d
LC
24483#, no-wrap
24484msgid "keyboard layout, for Xorg"
24485msgstr ""
24486
24487#. type: cindex
32747aa9 24488#: doc/guix.texi:13708
544cab3d
LC
24489#, no-wrap
24490msgid "keymap, for Xorg"
24491msgstr ""
24492
24493#. type: table
32747aa9 24494#: doc/guix.texi:13712
544cab3d
LC
24495msgid "If this is @code{#f}, Xorg uses the default keyboard layout---usually US English (``qwerty'') for a 105-key PC keyboard."
24496msgstr ""
24497
24498#. type: table
32747aa9 24499#: doc/guix.texi:13716
544cab3d
LC
24500msgid "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."
24501msgstr ""
24502
24503#. type: item
32747aa9 24504#: doc/guix.texi:13717
544cab3d
LC
24505#, no-wrap
24506msgid "@code{extra-config} (default: @code{'()})"
24507msgstr ""
24508
24509#. type: table
32747aa9 24510#: doc/guix.texi:13720
544cab3d
LC
24511msgid "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."
24512msgstr ""
24513
24514#. type: item
32747aa9 24515#: doc/guix.texi:13721
544cab3d
LC
24516#, no-wrap
24517msgid "@code{server} (default: @code{xorg-server})"
24518msgstr ""
24519
24520#. type: table
32747aa9 24521#: doc/guix.texi:13723
544cab3d
LC
24522msgid "This is the package providing the Xorg server."
24523msgstr ""
24524
24525#. type: item
32747aa9 24526#: doc/guix.texi:13724
544cab3d
LC
24527#, no-wrap
24528msgid "@code{server-arguments} (default: @code{%default-xorg-server-arguments})"
24529msgstr ""
24530
24531#. type: table
32747aa9 24532#: doc/guix.texi:13727
544cab3d
LC
24533msgid "This is the list of command-line arguments to pass to the X server. The default is @code{-nolisten tcp}."
24534msgstr ""
24535
24536#. type: deffn
32747aa9 24537#: doc/guix.texi:13730
544cab3d
LC
24538#, no-wrap
24539msgid "{Scheme Procedure} set-xorg-configuration @var{config} @"
24540msgstr ""
24541
24542#. type: deffn
32747aa9
LC
24543#: doc/guix.texi:13734
24544msgid "[@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."
544cab3d
LC
24545msgstr ""
24546
24547#. type: deffn
32747aa9 24548#: doc/guix.texi:13738
544cab3d
LC
24549msgid "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."
24550msgstr ""
24551
24552#. type: deffn
32747aa9 24553#: doc/guix.texi:13740
544cab3d
LC
24554#, no-wrap
24555msgid "{Scheme Procedure} xorg-start-command [@var{config}]"
24556msgstr ""
24557
24558#. type: deffn
32747aa9 24559#: doc/guix.texi:13744
544cab3d
LC
24560msgid "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}."
24561msgstr ""
24562
24563#. type: deffn
32747aa9 24564#: doc/guix.texi:13746
544cab3d
LC
24565msgid "Usually the X server is started by a login manager."
24566msgstr ""
24567
24568#. type: deffn
32747aa9 24569#: doc/guix.texi:13749
544cab3d
LC
24570#, no-wrap
24571msgid "{Scheme Procedure} screen-locker-service @var{package} [@var{program}]"
24572msgstr ""
24573
24574#. type: deffn
32747aa9 24575#: doc/guix.texi:13753
544cab3d
LC
24576msgid "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:"
24577msgstr ""
24578
24579#. type: lisp
32747aa9 24580#: doc/guix.texi:13756
544cab3d
LC
24581#, no-wrap
24582msgid "(screen-locker-service xlockmore \"xlock\")\n"
24583msgstr ""
24584
24585#. type: deffn
32747aa9 24586#: doc/guix.texi:13759
544cab3d
LC
24587msgid "makes the good ol' XlockMore usable."
24588msgstr ""
24589
24590#. type: cindex
32747aa9 24591#: doc/guix.texi:13765
544cab3d
LC
24592#, no-wrap
24593msgid "printer support with CUPS"
24594msgstr ""
24595
24596#. type: Plain text
32747aa9 24597#: doc/guix.texi:13769
544cab3d
LC
24598msgid "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:"
24599msgstr ""
24600
24601#. type: deffn
32747aa9 24602#: doc/guix.texi:13770
544cab3d
LC
24603#, no-wrap
24604msgid "{Scheme Variable} cups-service-type"
24605msgstr ""
24606
24607#. type: deffn
32747aa9 24608#: doc/guix.texi:13774
544cab3d
LC
24609msgid "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:"
24610msgstr ""
24611
24612#. type: example
32747aa9 24613#: doc/guix.texi:13776
544cab3d
LC
24614#, no-wrap
24615msgid "(service cups-service-type)\n"
24616msgstr ""
24617
24618#. type: Plain text
32747aa9 24619#: doc/guix.texi:13786
544cab3d
LC
24620msgid "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."
24621msgstr ""
24622
24623#. type: Plain text
32747aa9 24624#: doc/guix.texi:13791
544cab3d
LC
24625msgid "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):"
24626msgstr ""
24627
24628#. type: example
32747aa9 24629#: doc/guix.texi:13798
544cab3d
LC
24630#, no-wrap
24631msgid ""
24632"(service cups-service-type\n"
24633" (cups-configuration\n"
24634" (web-interface? #t)\n"
24635" (extensions\n"
24636" (list cups-filters escpr hplip-minimal))))\n"
24637msgstr ""
24638
24639#. type: Plain text
32747aa9 24640#: doc/guix.texi:13803
544cab3d
LC
24641msgid "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."
24642msgstr ""
24643
24644#. type: Plain text
32747aa9 24645#: doc/guix.texi:13810
544cab3d
LC
24646msgid "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."
24647msgstr ""
24648
24649#. type: Plain text
32747aa9 24650#: doc/guix.texi:13821
544cab3d
LC
24651msgid "Available @code{cups-configuration} fields are:"
24652msgstr ""
24653
24654#. type: deftypevr
32747aa9 24655#: doc/guix.texi:13822
544cab3d
LC
24656#, no-wrap
24657msgid "{@code{cups-configuration} parameter} package cups"
24658msgstr ""
24659
24660#. type: deftypevr
32747aa9 24661#: doc/guix.texi:13824 doc/guix.texi:14581
544cab3d
LC
24662msgid "The CUPS package."
24663msgstr ""
24664
24665#. type: deftypevr
32747aa9 24666#: doc/guix.texi:13826
544cab3d
LC
24667#, no-wrap
24668msgid "{@code{cups-configuration} parameter} package-list extensions"
24669msgstr ""
24670
24671#. type: deftypevr
32747aa9 24672#: doc/guix.texi:13828
544cab3d
LC
24673msgid "Drivers and other extensions to the CUPS package."
24674msgstr ""
24675
24676#. type: deftypevr
32747aa9 24677#: doc/guix.texi:13830
544cab3d
LC
24678#, no-wrap
24679msgid "{@code{cups-configuration} parameter} files-configuration files-configuration"
24680msgstr ""
24681
24682#. type: deftypevr
32747aa9 24683#: doc/guix.texi:13833
544cab3d
LC
24684msgid "Configuration of where to write logs, what directories to use for print spools, and related privileged configuration parameters."
24685msgstr ""
24686
24687#. type: deftypevr
32747aa9 24688#: doc/guix.texi:13835
544cab3d
LC
24689msgid "Available @code{files-configuration} fields are:"
24690msgstr ""
24691
24692#. type: deftypevr
32747aa9 24693#: doc/guix.texi:13836
544cab3d
LC
24694#, no-wrap
24695msgid "{@code{files-configuration} parameter} log-location access-log"
24696msgstr ""
24697
24698#. type: deftypevr
32747aa9 24699#: doc/guix.texi:13844
544cab3d
LC
24700msgid "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}."
24701msgstr ""
24702
24703#. type: deftypevr
32747aa9 24704#: doc/guix.texi:13846
544cab3d
LC
24705msgid "Defaults to @samp{\"/var/log/cups/access_log\"}."
24706msgstr ""
24707
24708#. type: deftypevr
32747aa9 24709#: doc/guix.texi:13848
544cab3d
LC
24710#, no-wrap
24711msgid "{@code{files-configuration} parameter} file-name cache-dir"
24712msgstr ""
24713
24714#. type: deftypevr
32747aa9 24715#: doc/guix.texi:13850
544cab3d
LC
24716msgid "Where CUPS should cache data."
24717msgstr ""
24718
24719#. type: deftypevr
32747aa9 24720#: doc/guix.texi:13852
544cab3d
LC
24721msgid "Defaults to @samp{\"/var/cache/cups\"}."
24722msgstr ""
24723
24724#. type: deftypevr
32747aa9 24725#: doc/guix.texi:13854
544cab3d
LC
24726#, no-wrap
24727msgid "{@code{files-configuration} parameter} string config-file-perm"
24728msgstr ""
24729
24730#. type: deftypevr
32747aa9 24731#: doc/guix.texi:13857
544cab3d
LC
24732msgid "Specifies the permissions for all configuration files that the scheduler writes."
24733msgstr ""
24734
24735#. type: deftypevr
32747aa9 24736#: doc/guix.texi:13863
544cab3d
LC
24737msgid "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."
24738msgstr ""
24739
24740#. type: deftypevr
32747aa9 24741#: doc/guix.texi:13865
544cab3d
LC
24742msgid "Defaults to @samp{\"0640\"}."
24743msgstr ""
24744
24745#. type: deftypevr
32747aa9 24746#: doc/guix.texi:13867
544cab3d
LC
24747#, no-wrap
24748msgid "{@code{files-configuration} parameter} log-location error-log"
24749msgstr ""
24750
24751#. type: deftypevr
32747aa9
LC
24752#: doc/guix.texi:13875
24753msgid "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}."
544cab3d
LC
24754msgstr ""
24755
24756#. type: deftypevr
32747aa9 24757#: doc/guix.texi:13877
544cab3d
LC
24758msgid "Defaults to @samp{\"/var/log/cups/error_log\"}."
24759msgstr ""
24760
24761#. type: deftypevr
32747aa9 24762#: doc/guix.texi:13879
544cab3d
LC
24763#, no-wrap
24764msgid "{@code{files-configuration} parameter} string fatal-errors"
24765msgstr ""
24766
24767#. type: deftypevr
32747aa9 24768#: doc/guix.texi:13882
544cab3d
LC
24769msgid "Specifies which errors are fatal, causing the scheduler to exit. The kind strings are:"
24770msgstr ""
24771
24772#. type: table
32747aa9 24773#: doc/guix.texi:13886
544cab3d
LC
24774msgid "No errors are fatal."
24775msgstr ""
24776
24777#. type: table
32747aa9 24778#: doc/guix.texi:13889
544cab3d
LC
24779msgid "All of the errors below are fatal."
24780msgstr ""
24781
24782#. type: item
32747aa9 24783#: doc/guix.texi:13890
544cab3d
LC
24784#, no-wrap
24785msgid "browse"
24786msgstr ""
24787
24788#. type: table
32747aa9 24789#: doc/guix.texi:13893
544cab3d
LC
24790msgid "Browsing initialization errors are fatal, for example failed connections to the DNS-SD daemon."
24791msgstr ""
24792
24793#. type: item
32747aa9 24794#: doc/guix.texi:13894
544cab3d
LC
24795#, no-wrap
24796msgid "config"
24797msgstr ""
24798
24799#. type: table
32747aa9 24800#: doc/guix.texi:13896
544cab3d
LC
24801msgid "Configuration file syntax errors are fatal."
24802msgstr ""
24803
24804#. type: item
32747aa9 24805#: doc/guix.texi:13897
544cab3d
LC
24806#, no-wrap
24807msgid "listen"
24808msgstr ""
24809
24810#. type: table
32747aa9 24811#: doc/guix.texi:13900
544cab3d
LC
24812msgid "Listen or Port errors are fatal, except for IPv6 failures on the loopback or @code{any} addresses."
24813msgstr ""
24814
24815#. type: item
32747aa9 24816#: doc/guix.texi:13901
544cab3d
LC
24817#, no-wrap
24818msgid "log"
24819msgstr ""
24820
24821#. type: table
32747aa9 24822#: doc/guix.texi:13903
544cab3d
LC
24823msgid "Log file creation or write errors are fatal."
24824msgstr ""
24825
24826#. type: item
32747aa9 24827#: doc/guix.texi:13904
544cab3d
LC
24828#, no-wrap
24829msgid "permissions"
24830msgstr ""
24831
24832#. type: table
32747aa9 24833#: doc/guix.texi:13907
544cab3d
LC
24834msgid "Bad startup file permissions are fatal, for example shared TLS certificate and key files with world-read permissions."
24835msgstr ""
24836
24837#. type: deftypevr
32747aa9 24838#: doc/guix.texi:13910
544cab3d
LC
24839msgid "Defaults to @samp{\"all -browse\"}."
24840msgstr ""
24841
24842#. type: deftypevr
32747aa9 24843#: doc/guix.texi:13912
544cab3d
LC
24844#, no-wrap
24845msgid "{@code{files-configuration} parameter} boolean file-device?"
24846msgstr ""
24847
24848#. type: deftypevr
32747aa9 24849#: doc/guix.texi:13915
544cab3d
LC
24850msgid "Specifies whether the file pseudo-device can be used for new printer queues. The URI @uref{file:///dev/null} is always allowed."
24851msgstr ""
24852
24853#. type: deftypevr
32747aa9
LC
24854#: doc/guix.texi:13917 doc/guix.texi:13987 doc/guix.texi:14023
24855#: doc/guix.texi:14035 doc/guix.texi:14041 doc/guix.texi:14057
24856#: doc/guix.texi:14145 doc/guix.texi:14239 doc/guix.texi:14555
24857#: doc/guix.texi:14568 doc/guix.texi:20262 doc/guix.texi:20276
24858#: doc/guix.texi:20398 doc/guix.texi:20419 doc/guix.texi:20440
24859#: doc/guix.texi:20447 doc/guix.texi:20492 doc/guix.texi:20499
24860#: doc/guix.texi:20926 doc/guix.texi:20940 doc/guix.texi:21112
24861#: doc/guix.texi:21157 doc/guix.texi:21244 doc/guix.texi:21385
24862#: doc/guix.texi:21418 doc/guix.texi:21558 doc/guix.texi:21569
24863#: doc/guix.texi:21819 doc/guix.texi:22461 doc/guix.texi:22470
24864#: doc/guix.texi:22478 doc/guix.texi:22486 doc/guix.texi:22502
24865#: doc/guix.texi:22518 doc/guix.texi:22526 doc/guix.texi:22534
24866#: doc/guix.texi:22543 doc/guix.texi:22552 doc/guix.texi:22568
24867#: doc/guix.texi:22632 doc/guix.texi:22738 doc/guix.texi:22746
24868#: doc/guix.texi:22754 doc/guix.texi:22779 doc/guix.texi:22833
24869#: doc/guix.texi:22881 doc/guix.texi:23082 doc/guix.texi:23089
544cab3d
LC
24870msgid "Defaults to @samp{#f}."
24871msgstr ""
24872
24873#. type: deftypevr
32747aa9 24874#: doc/guix.texi:13919
544cab3d
LC
24875#, no-wrap
24876msgid "{@code{files-configuration} parameter} string group"
24877msgstr ""
24878
24879#. type: deftypevr
32747aa9 24880#: doc/guix.texi:13922
544cab3d
LC
24881msgid "Specifies the group name or ID that will be used when executing external programs."
24882msgstr ""
24883
24884#. type: deftypevr
32747aa9 24885#: doc/guix.texi:13924 doc/guix.texi:14004
544cab3d
LC
24886msgid "Defaults to @samp{\"lp\"}."
24887msgstr ""
24888
24889#. type: deftypevr
32747aa9 24890#: doc/guix.texi:13926
544cab3d
LC
24891#, no-wrap
24892msgid "{@code{files-configuration} parameter} string log-file-perm"
24893msgstr ""
24894
24895#. type: deftypevr
32747aa9 24896#: doc/guix.texi:13928
544cab3d
LC
24897msgid "Specifies the permissions for all log files that the scheduler writes."
24898msgstr ""
24899
24900#. type: deftypevr
32747aa9 24901#: doc/guix.texi:13930
544cab3d
LC
24902msgid "Defaults to @samp{\"0644\"}."
24903msgstr ""
24904
24905#. type: deftypevr
32747aa9 24906#: doc/guix.texi:13932
544cab3d
LC
24907#, no-wrap
24908msgid "{@code{files-configuration} parameter} log-location page-log"
24909msgstr ""
24910
24911#. type: deftypevr
32747aa9
LC
24912#: doc/guix.texi:13940
24913msgid "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}."
544cab3d
LC
24914msgstr ""
24915
24916#. type: deftypevr
32747aa9 24917#: doc/guix.texi:13942
544cab3d
LC
24918msgid "Defaults to @samp{\"/var/log/cups/page_log\"}."
24919msgstr ""
24920
24921#. type: deftypevr
32747aa9 24922#: doc/guix.texi:13944
544cab3d
LC
24923#, no-wrap
24924msgid "{@code{files-configuration} parameter} string remote-root"
24925msgstr ""
24926
24927#. type: deftypevr
32747aa9 24928#: doc/guix.texi:13947
544cab3d
LC
24929msgid "Specifies the username that is associated with unauthenticated accesses by clients claiming to be the root user. The default is @code{remroot}."
24930msgstr ""
24931
24932#. type: deftypevr
32747aa9 24933#: doc/guix.texi:13949
544cab3d
LC
24934msgid "Defaults to @samp{\"remroot\"}."
24935msgstr ""
24936
24937#. type: deftypevr
32747aa9 24938#: doc/guix.texi:13951
544cab3d
LC
24939#, no-wrap
24940msgid "{@code{files-configuration} parameter} file-name request-root"
24941msgstr ""
24942
24943#. type: deftypevr
32747aa9 24944#: doc/guix.texi:13954
544cab3d
LC
24945msgid "Specifies the directory that contains print jobs and other HTTP request data."
24946msgstr ""
24947
24948#. type: deftypevr
32747aa9 24949#: doc/guix.texi:13956
544cab3d
LC
24950msgid "Defaults to @samp{\"/var/spool/cups\"}."
24951msgstr ""
24952
24953#. type: deftypevr
32747aa9 24954#: doc/guix.texi:13958
544cab3d
LC
24955#, no-wrap
24956msgid "{@code{files-configuration} parameter} sandboxing sandboxing"
24957msgstr ""
24958
24959#. type: deftypevr
32747aa9 24960#: doc/guix.texi:13963
544cab3d
LC
24961msgid "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."
24962msgstr ""
24963
24964#. type: deftypevr
32747aa9 24965#: doc/guix.texi:13965
544cab3d
LC
24966msgid "Defaults to @samp{strict}."
24967msgstr ""
24968
24969#. type: deftypevr
32747aa9 24970#: doc/guix.texi:13967
544cab3d
LC
24971#, no-wrap
24972msgid "{@code{files-configuration} parameter} file-name server-keychain"
24973msgstr ""
24974
24975#. type: deftypevr
32747aa9 24976#: doc/guix.texi:13972
544cab3d
LC
24977msgid "Specifies the location of TLS certificates and private keys. CUPS will look for public and private keys in this directory: a @code{.crt} files for PEM-encoded certificates and corresponding @code{.key} files for PEM-encoded private keys."
24978msgstr ""
24979
24980#. type: deftypevr
32747aa9 24981#: doc/guix.texi:13974
544cab3d
LC
24982msgid "Defaults to @samp{\"/etc/cups/ssl\"}."
24983msgstr ""
24984
24985#. type: deftypevr
32747aa9 24986#: doc/guix.texi:13976
544cab3d
LC
24987#, no-wrap
24988msgid "{@code{files-configuration} parameter} file-name server-root"
24989msgstr ""
24990
24991#. type: deftypevr
32747aa9 24992#: doc/guix.texi:13978
544cab3d
LC
24993msgid "Specifies the directory containing the server configuration files."
24994msgstr ""
24995
24996#. type: deftypevr
32747aa9 24997#: doc/guix.texi:13980
544cab3d
LC
24998msgid "Defaults to @samp{\"/etc/cups\"}."
24999msgstr ""
25000
25001#. type: deftypevr
32747aa9 25002#: doc/guix.texi:13982
544cab3d
LC
25003#, no-wrap
25004msgid "{@code{files-configuration} parameter} boolean sync-on-close?"
25005msgstr ""
25006
25007#. type: deftypevr
32747aa9 25008#: doc/guix.texi:13985
544cab3d
LC
25009msgid "Specifies whether the scheduler calls fsync(2) after writing configuration or state files."
25010msgstr ""
25011
25012#. type: deftypevr
32747aa9 25013#: doc/guix.texi:13989
544cab3d
LC
25014#, no-wrap
25015msgid "{@code{files-configuration} parameter} space-separated-string-list system-group"
25016msgstr ""
25017
25018#. type: deftypevr
32747aa9 25019#: doc/guix.texi:13991
544cab3d
LC
25020msgid "Specifies the group(s) to use for @code{@@SYSTEM} group authentication."
25021msgstr ""
25022
25023#. type: deftypevr
32747aa9 25024#: doc/guix.texi:13993
544cab3d
LC
25025#, no-wrap
25026msgid "{@code{files-configuration} parameter} file-name temp-dir"
25027msgstr ""
25028
25029#. type: deftypevr
32747aa9 25030#: doc/guix.texi:13995
544cab3d
LC
25031msgid "Specifies the directory where temporary files are stored."
25032msgstr ""
25033
25034#. type: deftypevr
32747aa9 25035#: doc/guix.texi:13997
544cab3d
LC
25036msgid "Defaults to @samp{\"/var/spool/cups/tmp\"}."
25037msgstr ""
25038
25039#. type: deftypevr
32747aa9 25040#: doc/guix.texi:13999
544cab3d
LC
25041#, no-wrap
25042msgid "{@code{files-configuration} parameter} string user"
25043msgstr ""
25044
25045#. type: deftypevr
32747aa9 25046#: doc/guix.texi:14002
544cab3d
LC
25047msgid "Specifies the user name or ID that is used when running external programs."
25048msgstr ""
25049
25050#. type: deftypevr
32747aa9 25051#: doc/guix.texi:14007
544cab3d
LC
25052#, no-wrap
25053msgid "{@code{cups-configuration} parameter} access-log-level access-log-level"
25054msgstr ""
25055
25056#. type: deftypevr
32747aa9 25057#: doc/guix.texi:14014
544cab3d
LC
25058msgid "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."
25059msgstr ""
25060
25061#. type: deftypevr
32747aa9 25062#: doc/guix.texi:14016
544cab3d
LC
25063msgid "Defaults to @samp{actions}."
25064msgstr ""
25065
25066#. type: deftypevr
32747aa9 25067#: doc/guix.texi:14018
544cab3d
LC
25068#, no-wrap
25069msgid "{@code{cups-configuration} parameter} boolean auto-purge-jobs?"
25070msgstr ""
25071
25072#. type: deftypevr
32747aa9 25073#: doc/guix.texi:14021
544cab3d
LC
25074msgid "Specifies whether to purge job history data automatically when it is no longer required for quotas."
25075msgstr ""
25076
25077#. type: deftypevr
32747aa9 25078#: doc/guix.texi:14025
544cab3d
LC
25079#, no-wrap
25080msgid "{@code{cups-configuration} parameter} browse-local-protocols browse-local-protocols"
25081msgstr ""
25082
25083#. type: deftypevr
32747aa9 25084#: doc/guix.texi:14027
544cab3d
LC
25085msgid "Specifies which protocols to use for local printer sharing."
25086msgstr ""
25087
25088#. type: deftypevr
32747aa9 25089#: doc/guix.texi:14029
544cab3d
LC
25090msgid "Defaults to @samp{dnssd}."
25091msgstr ""
25092
25093#. type: deftypevr
32747aa9 25094#: doc/guix.texi:14031
544cab3d
LC
25095#, no-wrap
25096msgid "{@code{cups-configuration} parameter} boolean browse-web-if?"
25097msgstr ""
25098
25099#. type: deftypevr
32747aa9 25100#: doc/guix.texi:14033
544cab3d
LC
25101msgid "Specifies whether the CUPS web interface is advertised."
25102msgstr ""
25103
25104#. type: deftypevr
32747aa9 25105#: doc/guix.texi:14037
544cab3d
LC
25106#, no-wrap
25107msgid "{@code{cups-configuration} parameter} boolean browsing?"
25108msgstr ""
25109
25110#. type: deftypevr
32747aa9 25111#: doc/guix.texi:14039
544cab3d
LC
25112msgid "Specifies whether shared printers are advertised."
25113msgstr ""
25114
25115#. type: deftypevr
32747aa9 25116#: doc/guix.texi:14043
544cab3d
LC
25117#, no-wrap
25118msgid "{@code{cups-configuration} parameter} string classification"
25119msgstr ""
25120
25121#. type: deftypevr
32747aa9 25122#: doc/guix.texi:14048
544cab3d
LC
25123msgid "Specifies the security classification of the server. Any valid banner name can be used, including \"classified\", \"confidential\", \"secret\", \"topsecret\", and \"unclassified\", or the banner can be omitted to disable secure printing functions."
25124msgstr ""
25125
25126#. type: deftypevr
32747aa9
LC
25127#: doc/guix.texi:14050 doc/guix.texi:14387 doc/guix.texi:15990
25128#: doc/guix.texi:16002 doc/guix.texi:17704 doc/guix.texi:17730
25129#: doc/guix.texi:17766 doc/guix.texi:17831 doc/guix.texi:17870
25130#: doc/guix.texi:17929 doc/guix.texi:17938 doc/guix.texi:21524
25131#: doc/guix.texi:21532 doc/guix.texi:21540 doc/guix.texi:21548
25132#: doc/guix.texi:21826 doc/guix.texi:22304 doc/guix.texi:22312
25133#: doc/guix.texi:22320 doc/guix.texi:22428 doc/guix.texi:22453
25134#: doc/guix.texi:22584 doc/guix.texi:22592 doc/guix.texi:22600
25135#: doc/guix.texi:22608 doc/guix.texi:22616 doc/guix.texi:22624
25136#: doc/guix.texi:22647 doc/guix.texi:22655 doc/guix.texi:22707
25137#: doc/guix.texi:22723 doc/guix.texi:22731 doc/guix.texi:22770
25138#: doc/guix.texi:22793 doc/guix.texi:22815 doc/guix.texi:22822
25139#: doc/guix.texi:22857 doc/guix.texi:22865 doc/guix.texi:22889
25140#: doc/guix.texi:22921 doc/guix.texi:22950 doc/guix.texi:22957
25141#: doc/guix.texi:22964 doc/guix.texi:22972 doc/guix.texi:22986
25142#: doc/guix.texi:22995 doc/guix.texi:23005 doc/guix.texi:23012
25143#: doc/guix.texi:23019 doc/guix.texi:23026 doc/guix.texi:23097
25144#: doc/guix.texi:23104 doc/guix.texi:23111 doc/guix.texi:23120
25145#: doc/guix.texi:23136 doc/guix.texi:23143 doc/guix.texi:23150
25146#: doc/guix.texi:23157 doc/guix.texi:23165 doc/guix.texi:23173
544cab3d
LC
25147msgid "Defaults to @samp{\"\"}."
25148msgstr ""
25149
25150#. type: deftypevr
32747aa9 25151#: doc/guix.texi:14052
544cab3d
LC
25152#, no-wrap
25153msgid "{@code{cups-configuration} parameter} boolean classify-override?"
25154msgstr ""
25155
25156#. type: deftypevr
32747aa9 25157#: doc/guix.texi:14055
544cab3d
LC
25158msgid "Specifies whether users may override the classification (cover page) of individual print jobs using the @code{job-sheets} option."
25159msgstr ""
25160
25161#. type: deftypevr
32747aa9 25162#: doc/guix.texi:14059
544cab3d
LC
25163#, no-wrap
25164msgid "{@code{cups-configuration} parameter} default-auth-type default-auth-type"
25165msgstr ""
25166
25167#. type: deftypevr
32747aa9 25168#: doc/guix.texi:14061
544cab3d
LC
25169msgid "Specifies the default type of authentication to use."
25170msgstr ""
25171
25172#. type: deftypevr
32747aa9 25173#: doc/guix.texi:14063
544cab3d
LC
25174msgid "Defaults to @samp{Basic}."
25175msgstr ""
25176
25177#. type: deftypevr
32747aa9 25178#: doc/guix.texi:14065
544cab3d
LC
25179#, no-wrap
25180msgid "{@code{cups-configuration} parameter} default-encryption default-encryption"
25181msgstr ""
25182
25183#. type: deftypevr
32747aa9 25184#: doc/guix.texi:14067
544cab3d
LC
25185msgid "Specifies whether encryption will be used for authenticated requests."
25186msgstr ""
25187
25188#. type: deftypevr
32747aa9 25189#: doc/guix.texi:14069
544cab3d
LC
25190msgid "Defaults to @samp{Required}."
25191msgstr ""
25192
25193#. type: deftypevr
32747aa9 25194#: doc/guix.texi:14071
544cab3d
LC
25195#, no-wrap
25196msgid "{@code{cups-configuration} parameter} string default-language"
25197msgstr ""
25198
25199#. type: deftypevr
32747aa9 25200#: doc/guix.texi:14073
544cab3d
LC
25201msgid "Specifies the default language to use for text and web content."
25202msgstr ""
25203
25204#. type: deftypevr
32747aa9 25205#: doc/guix.texi:14075
544cab3d
LC
25206msgid "Defaults to @samp{\"en\"}."
25207msgstr ""
25208
25209#. type: deftypevr
32747aa9 25210#: doc/guix.texi:14077
544cab3d
LC
25211#, no-wrap
25212msgid "{@code{cups-configuration} parameter} string default-paper-size"
25213msgstr ""
25214
25215#. type: deftypevr
32747aa9 25216#: doc/guix.texi:14082
544cab3d
LC
25217msgid "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\"}."
25218msgstr ""
25219
25220#. type: deftypevr
32747aa9 25221#: doc/guix.texi:14084
544cab3d
LC
25222msgid "Defaults to @samp{\"Auto\"}."
25223msgstr ""
25224
25225#. type: deftypevr
32747aa9 25226#: doc/guix.texi:14086
544cab3d
LC
25227#, no-wrap
25228msgid "{@code{cups-configuration} parameter} string default-policy"
25229msgstr ""
25230
25231#. type: deftypevr
32747aa9 25232#: doc/guix.texi:14088
544cab3d
LC
25233msgid "Specifies the default access policy to use."
25234msgstr ""
25235
25236#. type: deftypevr
32747aa9 25237#: doc/guix.texi:14090
544cab3d
LC
25238msgid "Defaults to @samp{\"default\"}."
25239msgstr ""
25240
25241#. type: deftypevr
32747aa9 25242#: doc/guix.texi:14092
544cab3d
LC
25243#, no-wrap
25244msgid "{@code{cups-configuration} parameter} boolean default-shared?"
25245msgstr ""
25246
25247#. type: deftypevr
32747aa9 25248#: doc/guix.texi:14094
544cab3d
LC
25249msgid "Specifies whether local printers are shared by default."
25250msgstr ""
25251
25252#. type: deftypevr
32747aa9
LC
25253#: doc/guix.texi:14096 doc/guix.texi:14176 doc/guix.texi:14472
25254#: doc/guix.texi:20084 doc/guix.texi:20112 doc/guix.texi:20232
25255#: doc/guix.texi:20239 doc/guix.texi:20247 doc/guix.texi:20269
25256#: doc/guix.texi:20283 doc/guix.texi:20368 doc/guix.texi:20375
25257#: doc/guix.texi:20383 doc/guix.texi:20793 doc/guix.texi:20933
25258#: doc/guix.texi:21119 doc/guix.texi:21126 doc/guix.texi:21148
25259#: doc/guix.texi:21187 doc/guix.texi:21207 doc/guix.texi:21221
25260#: doc/guix.texi:21373 doc/guix.texi:22406 doc/guix.texi:22494
25261#: doc/guix.texi:22510 doc/guix.texi:22560
544cab3d
LC
25262msgid "Defaults to @samp{#t}."
25263msgstr ""
25264
25265#. type: deftypevr
32747aa9 25266#: doc/guix.texi:14098
544cab3d
LC
25267#, no-wrap
25268msgid "{@code{cups-configuration} parameter} non-negative-integer dirty-clean-interval"
25269msgstr ""
25270
25271#. type: deftypevr
32747aa9 25272#: doc/guix.texi:14102
544cab3d
LC
25273msgid "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."
25274msgstr ""
25275
25276#. type: deftypevr
32747aa9
LC
25277#: doc/guix.texi:14104 doc/guix.texi:14152 doc/guix.texi:14161
25278#: doc/guix.texi:14182 doc/guix.texi:14479
544cab3d
LC
25279msgid "Defaults to @samp{30}."
25280msgstr ""
25281
25282#. type: deftypevr
32747aa9 25283#: doc/guix.texi:14106
544cab3d
LC
25284#, no-wrap
25285msgid "{@code{cups-configuration} parameter} error-policy error-policy"
25286msgstr ""
25287
25288#. type: deftypevr
32747aa9 25289#: doc/guix.texi:14112
544cab3d
LC
25290msgid "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-this-job}, which retries the failed job immediately; and @code{stop-printer}, which stops the printer."
25291msgstr ""
25292
25293#. type: deftypevr
32747aa9 25294#: doc/guix.texi:14114
544cab3d
LC
25295msgid "Defaults to @samp{stop-printer}."
25296msgstr ""
25297
25298#. type: deftypevr
32747aa9 25299#: doc/guix.texi:14116
544cab3d
LC
25300#, no-wrap
25301msgid "{@code{cups-configuration} parameter} non-negative-integer filter-limit"
25302msgstr ""
25303
25304#. type: deftypevr
32747aa9 25305#: doc/guix.texi:14124
544cab3d
LC
25306msgid "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."
25307msgstr ""
25308
25309#. type: deftypevr
32747aa9
LC
25310#: doc/guix.texi:14126 doc/guix.texi:14134 doc/guix.texi:14189
25311#: doc/guix.texi:14305 doc/guix.texi:14319 doc/guix.texi:14326
25312#: doc/guix.texi:15432 doc/guix.texi:15448 doc/guix.texi:16094
25313#: doc/guix.texi:16106 doc/guix.texi:20809 doc/guix.texi:21134
25314#: doc/guix.texi:22399 doc/guix.texi:22699 doc/guix.texi:22873
544cab3d
LC
25315msgid "Defaults to @samp{0}."
25316msgstr ""
25317
25318#. type: deftypevr
32747aa9 25319#: doc/guix.texi:14128
544cab3d
LC
25320#, no-wrap
25321msgid "{@code{cups-configuration} parameter} non-negative-integer filter-nice"
25322msgstr ""
25323
25324#. type: deftypevr
32747aa9 25325#: doc/guix.texi:14132
544cab3d
LC
25326msgid "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."
25327msgstr ""
25328
25329#. type: deftypevr
32747aa9 25330#: doc/guix.texi:14136
544cab3d
LC
25331#, no-wrap
25332msgid "{@code{cups-configuration} parameter} host-name-lookups host-name-lookups"
25333msgstr ""
25334
25335#. type: deftypevr
32747aa9 25336#: doc/guix.texi:14143
544cab3d
LC
25337msgid "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."
25338msgstr ""
25339
25340#. type: deftypevr
32747aa9 25341#: doc/guix.texi:14147
544cab3d
LC
25342#, no-wrap
25343msgid "{@code{cups-configuration} parameter} non-negative-integer job-kill-delay"
25344msgstr ""
25345
25346#. type: deftypevr
32747aa9 25347#: doc/guix.texi:14150
544cab3d
LC
25348msgid "Specifies the number of seconds to wait before killing the filters and backend associated with a canceled or held job."
25349msgstr ""
25350
25351#. type: deftypevr
32747aa9 25352#: doc/guix.texi:14154
544cab3d
LC
25353#, no-wrap
25354msgid "{@code{cups-configuration} parameter} non-negative-integer job-retry-interval"
25355msgstr ""
25356
25357#. type: deftypevr
32747aa9 25358#: doc/guix.texi:14159
544cab3d
LC
25359msgid "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}."
25360msgstr ""
25361
25362#. type: deftypevr
32747aa9 25363#: doc/guix.texi:14163
544cab3d
LC
25364#, no-wrap
25365msgid "{@code{cups-configuration} parameter} non-negative-integer job-retry-limit"
25366msgstr ""
25367
25368#. type: deftypevr
32747aa9 25369#: doc/guix.texi:14168
544cab3d
LC
25370msgid "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}."
25371msgstr ""
25372
25373#. type: deftypevr
32747aa9
LC
25374#: doc/guix.texi:14170 doc/guix.texi:21625 doc/guix.texi:21645
25375#: doc/guix.texi:21661 doc/guix.texi:21675 doc/guix.texi:21682
25376#: doc/guix.texi:21689 doc/guix.texi:21696 doc/guix.texi:21855
25377#: doc/guix.texi:21871 doc/guix.texi:21878 doc/guix.texi:21885
25378#: doc/guix.texi:21896 doc/guix.texi:22351 doc/guix.texi:22359
25379#: doc/guix.texi:22367 doc/guix.texi:22391
544cab3d
LC
25380msgid "Defaults to @samp{5}."
25381msgstr ""
25382
25383#. type: deftypevr
32747aa9 25384#: doc/guix.texi:14172
544cab3d
LC
25385#, no-wrap
25386msgid "{@code{cups-configuration} parameter} boolean keep-alive?"
25387msgstr ""
25388
25389#. type: deftypevr
32747aa9 25390#: doc/guix.texi:14174
544cab3d
LC
25391msgid "Specifies whether to support HTTP keep-alive connections."
25392msgstr ""
25393
25394#. type: deftypevr
32747aa9 25395#: doc/guix.texi:14178
544cab3d
LC
25396#, no-wrap
25397msgid "{@code{cups-configuration} parameter} non-negative-integer keep-alive-timeout"
25398msgstr ""
25399
25400#. type: deftypevr
32747aa9 25401#: doc/guix.texi:14180
544cab3d
LC
25402msgid "Specifies how long an idle client connection remains open, in seconds."
25403msgstr ""
25404
25405#. type: deftypevr
32747aa9 25406#: doc/guix.texi:14184
544cab3d
LC
25407#, no-wrap
25408msgid "{@code{cups-configuration} parameter} non-negative-integer limit-request-body"
25409msgstr ""
25410
25411#. type: deftypevr
32747aa9 25412#: doc/guix.texi:14187
544cab3d
LC
25413msgid "Specifies the maximum size of print files, IPP requests, and HTML form data. A limit of 0 disables the limit check."
25414msgstr ""
25415
25416#. type: deftypevr
32747aa9 25417#: doc/guix.texi:14191
544cab3d
LC
25418#, no-wrap
25419msgid "{@code{cups-configuration} parameter} multiline-string-list listen"
25420msgstr ""
25421
25422#. type: deftypevr
32747aa9 25423#: doc/guix.texi:14198
544cab3d
LC
25424msgid "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."
25425msgstr ""
25426
25427#. type: deftypevr
32747aa9 25428#: doc/guix.texi:14200
544cab3d
LC
25429#, no-wrap
25430msgid "{@code{cups-configuration} parameter} non-negative-integer listen-back-log"
25431msgstr ""
25432
25433#. type: deftypevr
32747aa9 25434#: doc/guix.texi:14207
544cab3d
LC
25435msgid "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."
25436msgstr ""
25437
25438#. type: deftypevr
32747aa9 25439#: doc/guix.texi:14209
544cab3d
LC
25440msgid "Defaults to @samp{128}."
25441msgstr ""
25442
25443#. type: deftypevr
32747aa9 25444#: doc/guix.texi:14211
544cab3d
LC
25445#, no-wrap
25446msgid "{@code{cups-configuration} parameter} location-access-control-list location-access-controls"
25447msgstr ""
25448
25449#. type: deftypevr
32747aa9 25450#: doc/guix.texi:14213
544cab3d
LC
25451msgid "Specifies a set of additional access controls."
25452msgstr ""
25453
25454#. type: deftypevr
32747aa9 25455#: doc/guix.texi:14215
544cab3d
LC
25456msgid "Available @code{location-access-controls} fields are:"
25457msgstr ""
25458
25459#. type: deftypevr
32747aa9 25460#: doc/guix.texi:14216
544cab3d
LC
25461#, no-wrap
25462msgid "{@code{location-access-controls} parameter} file-name path"
25463msgstr ""
25464
25465#. type: deftypevr
32747aa9 25466#: doc/guix.texi:14218
544cab3d
LC
25467msgid "Specifies the URI path to which the access control applies."
25468msgstr ""
25469
25470#. type: deftypevr
32747aa9 25471#: doc/guix.texi:14220
544cab3d
LC
25472#, no-wrap
25473msgid "{@code{location-access-controls} parameter} access-control-list access-controls"
25474msgstr ""
25475
25476#. type: deftypevr
32747aa9 25477#: doc/guix.texi:14223
544cab3d
LC
25478msgid "Access controls for all access to this path, in the same format as the @code{access-controls} of @code{operation-access-control}."
25479msgstr ""
25480
25481#. type: deftypevr
32747aa9
LC
25482#: doc/guix.texi:14225 doc/guix.texi:14231 doc/guix.texi:14245
25483#: doc/guix.texi:14252 doc/guix.texi:14394 doc/guix.texi:14453
25484#: doc/guix.texi:14537 doc/guix.texi:14548 doc/guix.texi:16580
25485#: doc/guix.texi:17774 doc/guix.texi:17878 doc/guix.texi:18303
25486#: doc/guix.texi:18311 doc/guix.texi:18556 doc/guix.texi:20143
25487#: doc/guix.texi:20290 doc/guix.texi:20478 doc/guix.texi:21516
25488#: doc/guix.texi:21576 doc/guix.texi:21584 doc/guix.texi:22414
25489#: doc/guix.texi:22421 doc/guix.texi:22763 doc/guix.texi:22841
25490#: doc/guix.texi:22935 doc/guix.texi:22943 doc/guix.texi:22979
25491#: doc/guix.texi:23129 doc/guix.texi:23180 doc/guix.texi:23189
544cab3d
LC
25492msgid "Defaults to @samp{()}."
25493msgstr ""
25494
25495#. type: deftypevr
32747aa9 25496#: doc/guix.texi:14227
544cab3d
LC
25497#, no-wrap
25498msgid "{@code{location-access-controls} parameter} method-access-control-list method-access-controls"
25499msgstr ""
25500
25501#. type: deftypevr
32747aa9 25502#: doc/guix.texi:14229
544cab3d
LC
25503msgid "Access controls for method-specific access to this path."
25504msgstr ""
25505
25506#. type: deftypevr
32747aa9 25507#: doc/guix.texi:14233
544cab3d
LC
25508msgid "Available @code{method-access-controls} fields are:"
25509msgstr ""
25510
25511#. type: deftypevr
32747aa9 25512#: doc/guix.texi:14234
544cab3d
LC
25513#, no-wrap
25514msgid "{@code{method-access-controls} parameter} boolean reverse?"
25515msgstr ""
25516
25517#. type: deftypevr
32747aa9 25518#: doc/guix.texi:14237
544cab3d
LC
25519msgid "If @code{#t}, apply access controls to all methods except the listed methods. Otherwise apply to only the listed methods."
25520msgstr ""
25521
25522#. type: deftypevr
32747aa9 25523#: doc/guix.texi:14241
544cab3d
LC
25524#, no-wrap
25525msgid "{@code{method-access-controls} parameter} method-list methods"
25526msgstr ""
25527
25528#. type: deftypevr
32747aa9 25529#: doc/guix.texi:14243
544cab3d
LC
25530msgid "Methods to which this access control applies."
25531msgstr ""
25532
25533#. type: deftypevr
32747aa9 25534#: doc/guix.texi:14247
544cab3d
LC
25535#, no-wrap
25536msgid "{@code{method-access-controls} parameter} access-control-list access-controls"
25537msgstr ""
25538
25539#. type: deftypevr
32747aa9 25540#: doc/guix.texi:14250
544cab3d
LC
25541msgid "Access control directives, as a list of strings. Each string should be one directive, such as \"Order allow,deny\"."
25542msgstr ""
25543
25544#. type: deftypevr
32747aa9 25545#: doc/guix.texi:14256
544cab3d
LC
25546#, no-wrap
25547msgid "{@code{cups-configuration} parameter} non-negative-integer log-debug-history"
25548msgstr ""
25549
25550#. type: deftypevr
32747aa9 25551#: doc/guix.texi:14260
544cab3d
LC
25552msgid "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."
25553msgstr ""
25554
25555#. type: deftypevr
32747aa9
LC
25556#: doc/guix.texi:14262 doc/guix.texi:14283 doc/guix.texi:14290
25557#: doc/guix.texi:16340 doc/guix.texi:20463
544cab3d
LC
25558msgid "Defaults to @samp{100}."
25559msgstr ""
25560
25561#. type: deftypevr
32747aa9 25562#: doc/guix.texi:14264
544cab3d
LC
25563#, no-wrap
25564msgid "{@code{cups-configuration} parameter} log-level log-level"
25565msgstr ""
25566
25567#. type: deftypevr
32747aa9 25568#: doc/guix.texi:14267
544cab3d
LC
25569msgid "Specifies the level of logging for the ErrorLog file. The value @code{none} stops all logging while @code{debug2} logs everything."
25570msgstr ""
25571
25572#. type: deftypevr
32747aa9 25573#: doc/guix.texi:14269
544cab3d
LC
25574msgid "Defaults to @samp{info}."
25575msgstr ""
25576
25577#. type: deftypevr
32747aa9 25578#: doc/guix.texi:14271
544cab3d
LC
25579#, no-wrap
25580msgid "{@code{cups-configuration} parameter} log-time-format log-time-format"
25581msgstr ""
25582
25583#. type: deftypevr
32747aa9 25584#: doc/guix.texi:14274
544cab3d
LC
25585msgid "Specifies the format of the date and time in the log files. The value @code{standard} logs whole seconds while @code{usecs} logs microseconds."
25586msgstr ""
25587
25588#. type: deftypevr
32747aa9 25589#: doc/guix.texi:14276
544cab3d
LC
25590msgid "Defaults to @samp{standard}."
25591msgstr ""
25592
25593#. type: deftypevr
32747aa9 25594#: doc/guix.texi:14278
544cab3d
LC
25595#, no-wrap
25596msgid "{@code{cups-configuration} parameter} non-negative-integer max-clients"
25597msgstr ""
25598
25599#. type: deftypevr
32747aa9 25600#: doc/guix.texi:14281
544cab3d
LC
25601msgid "Specifies the maximum number of simultaneous clients that are allowed by the scheduler."
25602msgstr ""
25603
25604#. type: deftypevr
32747aa9 25605#: doc/guix.texi:14285
544cab3d
LC
25606#, no-wrap
25607msgid "{@code{cups-configuration} parameter} non-negative-integer max-clients-per-host"
25608msgstr ""
25609
25610#. type: deftypevr
32747aa9 25611#: doc/guix.texi:14288
544cab3d
LC
25612msgid "Specifies the maximum number of simultaneous clients that are allowed from a single address."
25613msgstr ""
25614
25615#. type: deftypevr
32747aa9 25616#: doc/guix.texi:14292
544cab3d
LC
25617#, no-wrap
25618msgid "{@code{cups-configuration} parameter} non-negative-integer max-copies"
25619msgstr ""
25620
25621#. type: deftypevr
32747aa9 25622#: doc/guix.texi:14295
544cab3d
LC
25623msgid "Specifies the maximum number of copies that a user can print of each job."
25624msgstr ""
25625
25626#. type: deftypevr
32747aa9 25627#: doc/guix.texi:14297
544cab3d
LC
25628msgid "Defaults to @samp{9999}."
25629msgstr ""
25630
25631#. type: deftypevr
32747aa9 25632#: doc/guix.texi:14299
544cab3d
LC
25633#, no-wrap
25634msgid "{@code{cups-configuration} parameter} non-negative-integer max-hold-time"
25635msgstr ""
25636
25637#. type: deftypevr
32747aa9 25638#: doc/guix.texi:14303
544cab3d
LC
25639msgid "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."
25640msgstr ""
25641
25642#. type: deftypevr
32747aa9 25643#: doc/guix.texi:14307
544cab3d
LC
25644#, no-wrap
25645msgid "{@code{cups-configuration} parameter} non-negative-integer max-jobs"
25646msgstr ""
25647
25648#. type: deftypevr
32747aa9 25649#: doc/guix.texi:14310
544cab3d
LC
25650msgid "Specifies the maximum number of simultaneous jobs that are allowed. Set to 0 to allow an unlimited number of jobs."
25651msgstr ""
25652
25653#. type: deftypevr
32747aa9 25654#: doc/guix.texi:14312
544cab3d
LC
25655msgid "Defaults to @samp{500}."
25656msgstr ""
25657
25658#. type: deftypevr
32747aa9 25659#: doc/guix.texi:14314
544cab3d
LC
25660#, no-wrap
25661msgid "{@code{cups-configuration} parameter} non-negative-integer max-jobs-per-printer"
25662msgstr ""
25663
25664#. type: deftypevr
32747aa9 25665#: doc/guix.texi:14317
544cab3d
LC
25666msgid "Specifies the maximum number of simultaneous jobs that are allowed per printer. A value of 0 allows up to MaxJobs jobs per printer."
25667msgstr ""
25668
25669#. type: deftypevr
32747aa9 25670#: doc/guix.texi:14321
544cab3d
LC
25671#, no-wrap
25672msgid "{@code{cups-configuration} parameter} non-negative-integer max-jobs-per-user"
25673msgstr ""
25674
25675#. type: deftypevr
32747aa9 25676#: doc/guix.texi:14324
544cab3d
LC
25677msgid "Specifies the maximum number of simultaneous jobs that are allowed per user. A value of 0 allows up to MaxJobs jobs per user."
25678msgstr ""
25679
25680#. type: deftypevr
32747aa9 25681#: doc/guix.texi:14328
544cab3d
LC
25682#, no-wrap
25683msgid "{@code{cups-configuration} parameter} non-negative-integer max-job-time"
25684msgstr ""
25685
25686#. type: deftypevr
32747aa9 25687#: doc/guix.texi:14331
544cab3d
LC
25688msgid "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."
25689msgstr ""
25690
25691#. type: deftypevr
32747aa9 25692#: doc/guix.texi:14333
544cab3d
LC
25693msgid "Defaults to @samp{10800}."
25694msgstr ""
25695
25696#. type: deftypevr
32747aa9 25697#: doc/guix.texi:14335
544cab3d
LC
25698#, no-wrap
25699msgid "{@code{cups-configuration} parameter} non-negative-integer max-log-size"
25700msgstr ""
25701
25702#. type: deftypevr
32747aa9 25703#: doc/guix.texi:14338
544cab3d
LC
25704msgid "Specifies the maximum size of the log files before they are rotated, in bytes. The value 0 disables log rotation."
25705msgstr ""
25706
25707#. type: deftypevr
32747aa9 25708#: doc/guix.texi:14340
544cab3d
LC
25709msgid "Defaults to @samp{1048576}."
25710msgstr ""
25711
25712#. type: deftypevr
32747aa9 25713#: doc/guix.texi:14342
544cab3d
LC
25714#, no-wrap
25715msgid "{@code{cups-configuration} parameter} non-negative-integer multiple-operation-timeout"
25716msgstr ""
25717
25718#. type: deftypevr
32747aa9 25719#: doc/guix.texi:14345
544cab3d
LC
25720msgid "Specifies the maximum amount of time to allow between files in a multiple file print job, in seconds."
25721msgstr ""
25722
25723#. type: deftypevr
32747aa9 25724#: doc/guix.texi:14347 doc/guix.texi:14561 doc/guix.texi:20077
544cab3d
LC
25725msgid "Defaults to @samp{300}."
25726msgstr ""
25727
25728#. type: deftypevr
32747aa9 25729#: doc/guix.texi:14349
544cab3d
LC
25730#, no-wrap
25731msgid "{@code{cups-configuration} parameter} string page-log-format"
25732msgstr ""
25733
25734#. type: deftypevr
32747aa9 25735#: doc/guix.texi:14354
544cab3d
LC
25736msgid "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:"
25737msgstr ""
25738
25739#. type: item
32747aa9 25740#: doc/guix.texi:14356
544cab3d
LC
25741#, no-wrap
25742msgid "%%"
25743msgstr ""
25744
25745#. type: table
32747aa9 25746#: doc/guix.texi:14358
544cab3d
LC
25747msgid "insert a single percent character"
25748msgstr ""
25749
25750#. type: item
32747aa9 25751#: doc/guix.texi:14359
544cab3d
LC
25752#, no-wrap
25753msgid "%@{name@}"
25754msgstr ""
25755
25756#. type: table
32747aa9 25757#: doc/guix.texi:14361
544cab3d
LC
25758msgid "insert the value of the specified IPP attribute"
25759msgstr ""
25760
25761#. type: item
32747aa9 25762#: doc/guix.texi:14362
544cab3d
LC
25763#, no-wrap
25764msgid "%C"
25765msgstr ""
25766
25767#. type: table
32747aa9 25768#: doc/guix.texi:14364
544cab3d
LC
25769msgid "insert the number of copies for the current page"
25770msgstr ""
25771
25772#. type: item
32747aa9 25773#: doc/guix.texi:14365
544cab3d
LC
25774#, no-wrap
25775msgid "%P"
25776msgstr ""
25777
25778#. type: table
32747aa9 25779#: doc/guix.texi:14367
544cab3d
LC
25780msgid "insert the current page number"
25781msgstr ""
25782
25783#. type: item
32747aa9 25784#: doc/guix.texi:14368
544cab3d
LC
25785#, no-wrap
25786msgid "%T"
25787msgstr ""
25788
25789#. type: table
32747aa9 25790#: doc/guix.texi:14370
544cab3d
LC
25791msgid "insert the current date and time in common log format"
25792msgstr ""
25793
25794#. type: item
32747aa9 25795#: doc/guix.texi:14371
544cab3d
LC
25796#, no-wrap
25797msgid "%j"
25798msgstr ""
25799
25800#. type: table
32747aa9 25801#: doc/guix.texi:14373
544cab3d
LC
25802msgid "insert the job ID"
25803msgstr ""
25804
25805#. type: item
32747aa9 25806#: doc/guix.texi:14374 doc/guix.texi:15950
544cab3d
LC
25807#, no-wrap
25808msgid "%p"
25809msgstr ""
25810
25811#. type: table
32747aa9 25812#: doc/guix.texi:14376
544cab3d
LC
25813msgid "insert the printer name"
25814msgstr ""
25815
25816#. type: item
32747aa9 25817#: doc/guix.texi:14377 doc/guix.texi:15973
544cab3d
LC
25818#, no-wrap
25819msgid "%u"
25820msgstr ""
25821
25822#. type: table
32747aa9 25823#: doc/guix.texi:14379
544cab3d
LC
25824msgid "insert the username"
25825msgstr ""
25826
25827#. type: deftypevr
32747aa9 25828#: doc/guix.texi:14385
544cab3d
LC
25829msgid "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."
25830msgstr ""
25831
25832#. type: deftypevr
32747aa9 25833#: doc/guix.texi:14389
544cab3d
LC
25834#, no-wrap
25835msgid "{@code{cups-configuration} parameter} environment-variables environment-variables"
25836msgstr ""
25837
25838#. type: deftypevr
32747aa9 25839#: doc/guix.texi:14392
544cab3d
LC
25840msgid "Passes the specified environment variable(s) to child processes; a list of strings."
25841msgstr ""
25842
25843#. type: deftypevr
32747aa9 25844#: doc/guix.texi:14396
544cab3d
LC
25845#, no-wrap
25846msgid "{@code{cups-configuration} parameter} policy-configuration-list policies"
25847msgstr ""
25848
25849#. type: deftypevr
32747aa9 25850#: doc/guix.texi:14398
544cab3d
LC
25851msgid "Specifies named access control policies."
25852msgstr ""
25853
25854#. type: deftypevr
32747aa9 25855#: doc/guix.texi:14400
544cab3d
LC
25856msgid "Available @code{policy-configuration} fields are:"
25857msgstr ""
25858
25859#. type: deftypevr
32747aa9 25860#: doc/guix.texi:14401
544cab3d
LC
25861#, no-wrap
25862msgid "{@code{policy-configuration} parameter} string name"
25863msgstr ""
25864
25865#. type: deftypevr
32747aa9 25866#: doc/guix.texi:14403
544cab3d
LC
25867msgid "Name of the policy."
25868msgstr ""
25869
25870#. type: deftypevr
32747aa9 25871#: doc/guix.texi:14405
544cab3d
LC
25872#, no-wrap
25873msgid "{@code{policy-configuration} parameter} string job-private-access"
25874msgstr ""
25875
25876#. type: deftypevr
32747aa9 25877#: doc/guix.texi:14415
544cab3d
LC
25878msgid "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}."
25879msgstr ""
25880
25881#. type: deftypevr
32747aa9 25882#: doc/guix.texi:14417 doc/guix.texi:14439
544cab3d
LC
25883msgid "Defaults to @samp{\"@@OWNER @@SYSTEM\"}."
25884msgstr ""
25885
25886#. type: deftypevr
32747aa9 25887#: doc/guix.texi:14419
544cab3d
LC
25888#, no-wrap
25889msgid "{@code{policy-configuration} parameter} string job-private-values"
25890msgstr ""
25891
25892#. type: deftypevr
32747aa9 25893#: doc/guix.texi:14422 doc/guix.texi:14444
544cab3d
LC
25894msgid "Specifies the list of job values to make private, or @code{all}, @code{default}, or @code{none}."
25895msgstr ""
25896
25897#. type: deftypevr
32747aa9 25898#: doc/guix.texi:14425
544cab3d
LC
25899msgid "Defaults to @samp{\"job-name job-originating-host-name job-originating-user-name phone\"}."
25900msgstr ""
25901
25902#. type: deftypevr
32747aa9 25903#: doc/guix.texi:14427
544cab3d
LC
25904#, no-wrap
25905msgid "{@code{policy-configuration} parameter} string subscription-private-access"
25906msgstr ""
25907
25908#. type: deftypevr
32747aa9 25909#: doc/guix.texi:14437
544cab3d
LC
25910msgid "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}."
25911msgstr ""
25912
25913#. type: deftypevr
32747aa9 25914#: doc/guix.texi:14441
544cab3d
LC
25915#, no-wrap
25916msgid "{@code{policy-configuration} parameter} string subscription-private-values"
25917msgstr ""
25918
25919#. type: deftypevr
32747aa9 25920#: doc/guix.texi:14447
544cab3d
LC
25921msgid "Defaults to @samp{\"notify-events notify-pull-method notify-recipient-uri notify-subscriber-user-name notify-user-data\"}."
25922msgstr ""
25923
25924#. type: deftypevr
32747aa9 25925#: doc/guix.texi:14449
544cab3d
LC
25926#, no-wrap
25927msgid "{@code{policy-configuration} parameter} operation-access-control-list access-controls"
25928msgstr ""
25929
25930#. type: deftypevr
32747aa9 25931#: doc/guix.texi:14451
544cab3d
LC
25932msgid "Access control by IPP operation."
25933msgstr ""
25934
25935#. type: deftypevr
32747aa9 25936#: doc/guix.texi:14456
544cab3d
LC
25937#, no-wrap
25938msgid "{@code{cups-configuration} parameter} boolean-or-non-negative-integer preserve-job-files"
25939msgstr ""
25940
25941#. type: deftypevr
32747aa9 25942#: doc/guix.texi:14461
544cab3d
LC
25943msgid "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."
25944msgstr ""
25945
25946#. type: deftypevr
32747aa9 25947#: doc/guix.texi:14463
544cab3d
LC
25948msgid "Defaults to @samp{86400}."
25949msgstr ""
25950
25951#. type: deftypevr
32747aa9 25952#: doc/guix.texi:14465
544cab3d
LC
25953#, no-wrap
25954msgid "{@code{cups-configuration} parameter} boolean-or-non-negative-integer preserve-job-history"
25955msgstr ""
25956
25957#. type: deftypevr
32747aa9 25958#: doc/guix.texi:14470
544cab3d
LC
25959msgid "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."
25960msgstr ""
25961
25962#. type: deftypevr
32747aa9 25963#: doc/guix.texi:14474
544cab3d
LC
25964#, no-wrap
25965msgid "{@code{cups-configuration} parameter} non-negative-integer reload-timeout"
25966msgstr ""
25967
25968#. type: deftypevr
32747aa9 25969#: doc/guix.texi:14477
544cab3d
LC
25970msgid "Specifies the amount of time to wait for job completion before restarting the scheduler."
25971msgstr ""
25972
25973#. type: deftypevr
32747aa9 25974#: doc/guix.texi:14481
544cab3d
LC
25975#, no-wrap
25976msgid "{@code{cups-configuration} parameter} string rip-cache"
25977msgstr ""
25978
25979#. type: deftypevr
32747aa9 25980#: doc/guix.texi:14484
544cab3d
LC
25981msgid "Specifies the maximum amount of memory to use when converting documents into bitmaps for a printer."
25982msgstr ""
25983
25984#. type: deftypevr
32747aa9 25985#: doc/guix.texi:14486
544cab3d
LC
25986msgid "Defaults to @samp{\"128m\"}."
25987msgstr ""
25988
25989#. type: deftypevr
32747aa9 25990#: doc/guix.texi:14488
544cab3d
LC
25991#, no-wrap
25992msgid "{@code{cups-configuration} parameter} string server-admin"
25993msgstr ""
25994
25995#. type: deftypevr
32747aa9 25996#: doc/guix.texi:14490
544cab3d
LC
25997msgid "Specifies the email address of the server administrator."
25998msgstr ""
25999
26000#. type: deftypevr
32747aa9 26001#: doc/guix.texi:14492
544cab3d
LC
26002msgid "Defaults to @samp{\"root@@localhost.localdomain\"}."
26003msgstr ""
26004
26005#. type: deftypevr
32747aa9 26006#: doc/guix.texi:14494
544cab3d
LC
26007#, no-wrap
26008msgid "{@code{cups-configuration} parameter} host-name-list-or-* server-alias"
26009msgstr ""
26010
26011#. type: deftypevr
32747aa9 26012#: doc/guix.texi:14502
544cab3d
LC
26013msgid "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{*}."
26014msgstr ""
26015
26016#. type: deftypevr
32747aa9 26017#: doc/guix.texi:14504
544cab3d
LC
26018msgid "Defaults to @samp{*}."
26019msgstr ""
26020
26021#. type: deftypevr
32747aa9 26022#: doc/guix.texi:14506
544cab3d
LC
26023#, no-wrap
26024msgid "{@code{cups-configuration} parameter} string server-name"
26025msgstr ""
26026
26027#. type: deftypevr
32747aa9 26028#: doc/guix.texi:14508
544cab3d
LC
26029msgid "Specifies the fully-qualified host name of the server."
26030msgstr ""
26031
26032#. type: deftypevr
32747aa9 26033#: doc/guix.texi:14510 doc/guix.texi:17901 doc/guix.texi:17945
544cab3d
LC
26034msgid "Defaults to @samp{\"localhost\"}."
26035msgstr ""
26036
26037#. type: deftypevr
32747aa9 26038#: doc/guix.texi:14512
544cab3d
LC
26039#, no-wrap
26040msgid "{@code{cups-configuration} parameter} server-tokens server-tokens"
26041msgstr ""
26042
26043#. type: deftypevr
32747aa9 26044#: doc/guix.texi:14520
544cab3d
LC
26045msgid "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}."
26046msgstr ""
26047
26048#. type: deftypevr
32747aa9 26049#: doc/guix.texi:14522
544cab3d
LC
26050msgid "Defaults to @samp{Minimal}."
26051msgstr ""
26052
26053#. type: deftypevr
32747aa9 26054#: doc/guix.texi:14524
544cab3d
LC
26055#, no-wrap
26056msgid "{@code{cups-configuration} parameter} string set-env"
26057msgstr ""
26058
26059#. type: deftypevr
32747aa9 26060#: doc/guix.texi:14526
544cab3d
LC
26061msgid "Set the specified environment variable to be passed to child processes."
26062msgstr ""
26063
26064#. type: deftypevr
32747aa9 26065#: doc/guix.texi:14528
544cab3d
LC
26066msgid "Defaults to @samp{\"variable value\"}."
26067msgstr ""
26068
26069#. type: deftypevr
32747aa9 26070#: doc/guix.texi:14530
544cab3d
LC
26071#, no-wrap
26072msgid "{@code{cups-configuration} parameter} multiline-string-list ssl-listen"
26073msgstr ""
26074
26075#. type: deftypevr
32747aa9 26076#: doc/guix.texi:14535
544cab3d
LC
26077msgid "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."
26078msgstr ""
26079
26080#. type: deftypevr
32747aa9 26081#: doc/guix.texi:14539
544cab3d
LC
26082#, no-wrap
26083msgid "{@code{cups-configuration} parameter} ssl-options ssl-options"
26084msgstr ""
26085
26086#. type: deftypevr
32747aa9 26087#: doc/guix.texi:14546
544cab3d
LC
26088msgid "Sets encryption options. By default, CUPS only supports encryption using TLS v1.0 or higher using known secure cipher suites. The @code{AllowRC4} option enables the 128-bit RC4 cipher suites, which are required for some older clients that do not implement newer ones. The @code{AllowSSL3} option enables SSL v3.0, which is required for some older clients that do not support TLS v1.0."
26089msgstr ""
26090
26091#. type: deftypevr
32747aa9 26092#: doc/guix.texi:14550
544cab3d
LC
26093#, no-wrap
26094msgid "{@code{cups-configuration} parameter} boolean strict-conformance?"
26095msgstr ""
26096
26097#. type: deftypevr
32747aa9 26098#: doc/guix.texi:14553
544cab3d
LC
26099msgid "Specifies whether the scheduler requires clients to strictly adhere to the IPP specifications."
26100msgstr ""
26101
26102#. type: deftypevr
32747aa9 26103#: doc/guix.texi:14557
544cab3d
LC
26104#, no-wrap
26105msgid "{@code{cups-configuration} parameter} non-negative-integer timeout"
26106msgstr ""
26107
26108#. type: deftypevr
32747aa9 26109#: doc/guix.texi:14559
544cab3d
LC
26110msgid "Specifies the HTTP request timeout, in seconds."
26111msgstr ""
26112
26113#. type: deftypevr
32747aa9 26114#: doc/guix.texi:14564
544cab3d
LC
26115#, no-wrap
26116msgid "{@code{cups-configuration} parameter} boolean web-interface?"
26117msgstr ""
26118
26119#. type: deftypevr
32747aa9 26120#: doc/guix.texi:14566
544cab3d
LC
26121msgid "Specifies whether the web interface is enabled."
26122msgstr ""
26123
26124#. type: Plain text
32747aa9 26125#: doc/guix.texi:14576
544cab3d
LC
26126msgid "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}."
26127msgstr ""
26128
26129#. type: Plain text
32747aa9 26130#: doc/guix.texi:14578
544cab3d
LC
26131msgid "Available @code{opaque-cups-configuration} fields are:"
26132msgstr ""
26133
26134#. type: deftypevr
32747aa9 26135#: doc/guix.texi:14579
544cab3d
LC
26136#, no-wrap
26137msgid "{@code{opaque-cups-configuration} parameter} package cups"
26138msgstr ""
26139
26140#. type: deftypevr
32747aa9 26141#: doc/guix.texi:14583
544cab3d
LC
26142#, no-wrap
26143msgid "{@code{opaque-cups-configuration} parameter} string cupsd.conf"
26144msgstr ""
26145
26146#. type: deftypevr
32747aa9 26147#: doc/guix.texi:14585
544cab3d
LC
26148msgid "The contents of the @code{cupsd.conf}, as a string."
26149msgstr ""
26150
26151#. type: deftypevr
32747aa9 26152#: doc/guix.texi:14587
544cab3d
LC
26153#, no-wrap
26154msgid "{@code{opaque-cups-configuration} parameter} string cups-files.conf"
26155msgstr ""
26156
26157#. type: deftypevr
32747aa9 26158#: doc/guix.texi:14589
544cab3d
LC
26159msgid "The contents of the @code{cups-files.conf} file, as a string."
26160msgstr ""
26161
26162#. type: Plain text
32747aa9 26163#: doc/guix.texi:14594
544cab3d
LC
26164msgid "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:"
26165msgstr ""
26166
26167#. type: example
32747aa9 26168#: doc/guix.texi:14600
544cab3d
LC
26169#, no-wrap
26170msgid ""
26171"(service cups-service-type\n"
26172" (opaque-cups-configuration\n"
26173" (cupsd.conf cupsd.conf)\n"
26174" (cups-files.conf cups-files.conf)))\n"
26175msgstr ""
26176
26177#. type: Plain text
32747aa9 26178#: doc/guix.texi:14611
544cab3d
LC
26179msgid "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."
26180msgstr ""
26181
26182#. type: Plain text
32747aa9 26183#: doc/guix.texi:14615
544cab3d
LC
26184msgid "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:"
26185msgstr ""
26186
26187#. type: defvr
32747aa9 26188#: doc/guix.texi:14616
544cab3d
LC
26189#, no-wrap
26190msgid "{Scheme Variable} %desktop-services"
26191msgstr ""
26192
26193#. type: defvr
32747aa9 26194#: doc/guix.texi:14619
544cab3d
LC
26195msgid "This is a list of services that builds upon @var{%base-services} and adds or adjusts services for a typical ``desktop'' setup."
26196msgstr ""
26197
26198#. type: defvr
32747aa9 26199#: doc/guix.texi:14629
544cab3d
LC
26200msgid "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}}), 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})."
26201msgstr ""
26202
26203#. type: Plain text
32747aa9 26204#: doc/guix.texi:14634
544cab3d
LC
26205msgid "The @var{%desktop-services} variable can be used as the @code{services} field of an @code{operating-system} declaration (@pxref{operating-system Reference, @code{services}})."
26206msgstr ""
26207
26208#. type: Plain text
32747aa9 26209#: doc/guix.texi:14657
544cab3d
LC
26210msgid "Additionally, the @code{gnome-desktop-service-type}, @code{xfce-desktop-service}, @code{mate-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 expetected."
26211msgstr ""
26212
26213#. type: Plain text
32747aa9 26214#: doc/guix.texi:14666
544cab3d
LC
26215msgid "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."
26216msgstr ""
26217
26218#. type: defvr
32747aa9 26219#: doc/guix.texi:14667
544cab3d
LC
26220#, no-wrap
26221msgid "{Scheme Variable} gnome-desktop-service-type"
26222msgstr ""
26223
26224#. type: defvr
32747aa9 26225#: doc/guix.texi:14671
544cab3d
LC
26226msgid "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.)"
26227msgstr ""
26228
26229#. type: defvr
32747aa9 26230#: doc/guix.texi:14674
544cab3d
LC
26231msgid "This service adds the @code{gnome} package to the system profile, and extends polkit with the actions from @code{gnome-settings-daemon}."
26232msgstr ""
26233
26234#. type: deftp
32747aa9 26235#: doc/guix.texi:14676
544cab3d
LC
26236#, no-wrap
26237msgid "{Data Type} gnome-desktop-configuration"
26238msgstr ""
26239
26240#. type: deftp
32747aa9 26241#: doc/guix.texi:14678
544cab3d
LC
26242msgid "Configuration record for the GNOME desktop environment."
26243msgstr ""
26244
26245#. type: item
32747aa9 26246#: doc/guix.texi:14680
544cab3d 26247#, no-wrap
32747aa9
LC
26248msgid "@code{gnome} (default: @code{gnome})"
26249msgstr "@code{gnome}(默认值:@code{gnome})"
544cab3d
LC
26250
26251#. type: table
32747aa9 26252#: doc/guix.texi:14682
544cab3d
LC
26253msgid "The GNOME package to use."
26254msgstr ""
26255
26256#. type: defvr
32747aa9 26257#: doc/guix.texi:14685
544cab3d
LC
26258#, no-wrap
26259msgid "{Scheme Variable} xfce-desktop-service-type"
26260msgstr ""
26261
26262#. type: defvr
32747aa9 26263#: doc/guix.texi:14689
544cab3d
LC
26264msgid "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.)"
26265msgstr ""
26266
26267#. type: defvr
32747aa9
LC
26268#: doc/guix.texi:14694
26269msgid "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."
544cab3d
LC
26270msgstr ""
26271
26272#. type: deftp
32747aa9 26273#: doc/guix.texi:14696
544cab3d
LC
26274#, no-wrap
26275msgid "{Data Type} xfce-desktop-configuration"
26276msgstr ""
26277
26278#. type: deftp
32747aa9 26279#: doc/guix.texi:14698
544cab3d
LC
26280msgid "Configuration record for the Xfce desktop environment."
26281msgstr ""
26282
26283#. type: item
32747aa9 26284#: doc/guix.texi:14700
544cab3d 26285#, no-wrap
32747aa9
LC
26286msgid "@code{xfce} (default: @code{xfce})"
26287msgstr "@code{xfce}(默认值:@code{xfce})"
544cab3d
LC
26288
26289#. type: table
32747aa9 26290#: doc/guix.texi:14702
544cab3d
LC
26291msgid "The Xfce package to use."
26292msgstr ""
26293
26294#. type: deffn
32747aa9 26295#: doc/guix.texi:14705
544cab3d
LC
26296#, no-wrap
26297msgid "{Scheme Variable} mate-desktop-service-type"
26298msgstr ""
26299
26300#. type: deffn
32747aa9 26301#: doc/guix.texi:14709
544cab3d
LC
26302msgid "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.)"
26303msgstr ""
26304
26305#. type: deffn
32747aa9 26306#: doc/guix.texi:14713
544cab3d
LC
26307msgid "This service adds the @code{mate} package to the system profile, and extends polkit with the actions from @code{mate-settings-daemon}."
26308msgstr ""
26309
26310#. type: deftp
32747aa9 26311#: doc/guix.texi:14715
544cab3d
LC
26312#, no-wrap
26313msgid "{Data Type} mate-desktop-configuration"
26314msgstr ""
26315
26316#. type: deftp
32747aa9 26317#: doc/guix.texi:14717
544cab3d
LC
26318msgid "Configuration record for the MATE desktop environment."
26319msgstr ""
26320
26321#. type: item
32747aa9 26322#: doc/guix.texi:14719
544cab3d 26323#, no-wrap
32747aa9
LC
26324msgid "@code{mate} (default: @code{mate})"
26325msgstr "@code{mate}(默认值:@code{mate})"
544cab3d
LC
26326
26327#. type: table
32747aa9 26328#: doc/guix.texi:14721
544cab3d
LC
26329msgid "The MATE package to use."
26330msgstr ""
26331
26332#. type: deffn
32747aa9 26333#: doc/guix.texi:14724
544cab3d
LC
26334#, no-wrap
26335msgid "{Scheme Variable} enlightenment-desktop-service-type"
26336msgstr ""
26337
26338#. type: deffn
32747aa9 26339#: doc/guix.texi:14727
544cab3d
LC
26340msgid "Return a service that adds the @code{enlightenment} package to the system profile, and extends dbus with actions from @code{efl}."
26341msgstr ""
26342
26343#. type: deftp
32747aa9 26344#: doc/guix.texi:14729
544cab3d
LC
26345#, no-wrap
26346msgid "{Data Type} enlightenment-desktop-service-configuration"
26347msgstr ""
26348
26349#. type: item
32747aa9 26350#: doc/guix.texi:14731
544cab3d 26351#, no-wrap
32747aa9
LC
26352msgid "@code{enlightenment} (default: @code{enlightenment})"
26353msgstr "@code{enlightenment}(默认值:@code{enlightenment})"
544cab3d
LC
26354
26355#. type: table
32747aa9 26356#: doc/guix.texi:14733
544cab3d
LC
26357msgid "The enlightenment package to use."
26358msgstr ""
26359
26360#. type: Plain text
32747aa9 26361#: doc/guix.texi:14741
544cab3d
LC
26362msgid "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}:"
26363msgstr ""
26364
26365#. type: example
32747aa9 26366#: doc/guix.texi:14752
544cab3d
LC
26367#, no-wrap
26368msgid ""
26369"(use-modules (gnu))\n"
26370"(use-service-modules desktop)\n"
26371"(operating-system\n"
26372" ...\n"
26373" ;; cons* adds items to the list given as its last argument.\n"
26374" (services (cons* (service gnome-desktop-service-type)\n"
26375" (service xfce-desktop-service)\n"
26376" %desktop-services))\n"
26377" ...)\n"
26378msgstr ""
26379
26380#. type: Plain text
32747aa9 26381#: doc/guix.texi:14756
544cab3d
LC
26382msgid "These desktop environments will then be available as options in the graphical login window."
26383msgstr ""
26384
26385#. type: Plain text
32747aa9 26386#: doc/guix.texi:14760
544cab3d
LC
26387msgid "The actual service definitions included in @code{%desktop-services} and provided by @code{(gnu services dbus)} and @code{(gnu services desktop)} are described below."
26388msgstr ""
26389
26390#. type: deffn
32747aa9 26391#: doc/guix.texi:14761
544cab3d
LC
26392#, no-wrap
26393msgid "{Scheme Procedure} dbus-service [#:dbus @var{dbus}] [#:services '()]"
26394msgstr ""
26395
26396#. type: deffn
32747aa9 26397#: doc/guix.texi:14764
544cab3d
LC
26398msgid "Return a service that runs the ``system bus'', using @var{dbus}, with support for @var{services}."
26399msgstr ""
26400
26401#. type: deffn
32747aa9
LC
26402#: doc/guix.texi:14768
26403msgid "@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."
544cab3d
LC
26404msgstr ""
26405
26406#. type: deffn
32747aa9 26407#: doc/guix.texi:14773
544cab3d
LC
26408msgid "@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)}."
26409msgstr ""
26410
26411#. type: deffn
32747aa9 26412#: doc/guix.texi:14775
544cab3d
LC
26413#, no-wrap
26414msgid "{Scheme Procedure} elogind-service [#:config @var{config}]"
26415msgstr ""
26416
26417#. type: deffn
32747aa9 26418#: doc/guix.texi:14781
544cab3d
LC
26419msgid "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."
26420msgstr ""
26421
26422#. type: deffn
32747aa9 26423#: doc/guix.texi:14785
544cab3d
LC
26424msgid "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."
26425msgstr ""
26426
26427#. type: deffn
32747aa9 26428#: doc/guix.texi:14790
544cab3d
LC
26429msgid "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:"
26430msgstr ""
26431
26432#. type: item
32747aa9 26433#: doc/guix.texi:14792
544cab3d
LC
26434#, no-wrap
26435msgid "kill-user-processes?"
26436msgstr ""
26437
26438#. type: code{#1}
32747aa9
LC
26439#: doc/guix.texi:14794 doc/guix.texi:14812 doc/guix.texi:14814
26440#: doc/guix.texi:14816 doc/guix.texi:14828
544cab3d
LC
26441msgid "#f"
26442msgstr ""
26443
26444#. type: item
32747aa9 26445#: doc/guix.texi:14794
544cab3d
LC
26446#, no-wrap
26447msgid "kill-only-users"
26448msgstr ""
26449
26450#. type: code{#1}
32747aa9 26451#: doc/guix.texi:14796 doc/guix.texi:14834
544cab3d
LC
26452msgid "()"
26453msgstr ""
26454
26455#. type: item
32747aa9 26456#: doc/guix.texi:14796
544cab3d
LC
26457#, no-wrap
26458msgid "kill-exclude-users"
26459msgstr ""
26460
26461#. type: code{#1}
32747aa9 26462#: doc/guix.texi:14798
544cab3d
LC
26463msgid "(\"root\")"
26464msgstr ""
26465
26466#. type: item
32747aa9 26467#: doc/guix.texi:14798
544cab3d
LC
26468#, no-wrap
26469msgid "inhibit-delay-max-seconds"
26470msgstr ""
26471
26472#. type: code{#1}
32747aa9 26473#: doc/guix.texi:14800
544cab3d
LC
26474msgid "5"
26475msgstr ""
26476
26477#. type: item
32747aa9 26478#: doc/guix.texi:14800
544cab3d
LC
26479#, no-wrap
26480msgid "handle-power-key"
26481msgstr ""
26482
26483#. type: code{#1}
32747aa9 26484#: doc/guix.texi:14802
544cab3d
LC
26485msgid "poweroff"
26486msgstr ""
26487
26488#. type: item
32747aa9 26489#: doc/guix.texi:14802
544cab3d
LC
26490#, no-wrap
26491msgid "handle-suspend-key"
26492msgstr ""
26493
26494#. type: code{#1}
32747aa9 26495#: doc/guix.texi:14804 doc/guix.texi:14808
544cab3d
LC
26496msgid "suspend"
26497msgstr ""
26498
26499#. type: item
32747aa9 26500#: doc/guix.texi:14804
544cab3d
LC
26501#, no-wrap
26502msgid "handle-hibernate-key"
26503msgstr ""
26504
26505#. type: code{#1}
32747aa9 26506#: doc/guix.texi:14806
544cab3d
LC
26507msgid "hibernate"
26508msgstr ""
26509
26510#. type: item
32747aa9 26511#: doc/guix.texi:14806
544cab3d
LC
26512#, no-wrap
26513msgid "handle-lid-switch"
26514msgstr ""
26515
26516#. type: item
32747aa9 26517#: doc/guix.texi:14808
544cab3d
LC
26518#, no-wrap
26519msgid "handle-lid-switch-docked"
26520msgstr ""
26521
26522#. type: code{#1}
32747aa9 26523#: doc/guix.texi:14810 doc/guix.texi:14822
544cab3d
LC
26524msgid "ignore"
26525msgstr ""
26526
26527#. type: item
32747aa9 26528#: doc/guix.texi:14810
544cab3d
LC
26529#, no-wrap
26530msgid "power-key-ignore-inhibited?"
26531msgstr ""
26532
26533#. type: item
32747aa9 26534#: doc/guix.texi:14812
544cab3d
LC
26535#, no-wrap
26536msgid "suspend-key-ignore-inhibited?"
26537msgstr ""
26538
26539#. type: item
32747aa9 26540#: doc/guix.texi:14814
544cab3d
LC
26541#, no-wrap
26542msgid "hibernate-key-ignore-inhibited?"
26543msgstr ""
26544
26545#. type: item
32747aa9 26546#: doc/guix.texi:14816
544cab3d
LC
26547#, no-wrap
26548msgid "lid-switch-ignore-inhibited?"
26549msgstr ""
26550
26551#. type: code{#1}
32747aa9 26552#: doc/guix.texi:14818 doc/guix.texi:14830
544cab3d
LC
26553msgid "#t"
26554msgstr ""
26555
26556#. type: item
32747aa9 26557#: doc/guix.texi:14818
544cab3d
LC
26558#, no-wrap
26559msgid "holdoff-timeout-seconds"
26560msgstr ""
26561
26562#. type: code{#1}
32747aa9 26563#: doc/guix.texi:14820
544cab3d
LC
26564msgid "30"
26565msgstr ""
26566
26567#. type: item
32747aa9 26568#: doc/guix.texi:14820
544cab3d
LC
26569#, no-wrap
26570msgid "idle-action"
26571msgstr ""
26572
26573#. type: item
32747aa9 26574#: doc/guix.texi:14822
544cab3d
LC
26575#, no-wrap
26576msgid "idle-action-seconds"
26577msgstr ""
26578
26579#. type: code{#1}
32747aa9 26580#: doc/guix.texi:14824
544cab3d
LC
26581msgid "(* 30 60)"
26582msgstr ""
26583
26584#. type: item
32747aa9 26585#: doc/guix.texi:14824
544cab3d
LC
26586#, no-wrap
26587msgid "runtime-directory-size-percent"
26588msgstr ""
26589
26590#. type: code{#1}
32747aa9 26591#: doc/guix.texi:14826
544cab3d
LC
26592msgid "10"
26593msgstr ""
26594
26595#. type: item
32747aa9 26596#: doc/guix.texi:14826
544cab3d
LC
26597#, no-wrap
26598msgid "runtime-directory-size"
26599msgstr ""
26600
26601#. type: item
32747aa9 26602#: doc/guix.texi:14828
544cab3d
LC
26603#, no-wrap
26604msgid "remove-ipc?"
26605msgstr ""
26606
26607#. type: item
32747aa9 26608#: doc/guix.texi:14830
544cab3d
LC
26609#, no-wrap
26610msgid "suspend-state"
26611msgstr ""
26612
26613#. type: code{#1}
32747aa9 26614#: doc/guix.texi:14832
544cab3d
LC
26615msgid "(\"mem\" \"standby\" \"freeze\")"
26616msgstr ""
26617
26618#. type: item
32747aa9 26619#: doc/guix.texi:14832
544cab3d
LC
26620#, no-wrap
26621msgid "suspend-mode"
26622msgstr ""
26623
26624#. type: item
32747aa9 26625#: doc/guix.texi:14834
544cab3d
LC
26626#, no-wrap
26627msgid "hibernate-state"
26628msgstr ""
26629
26630#. type: code{#1}
32747aa9 26631#: doc/guix.texi:14836 doc/guix.texi:14840
544cab3d
LC
26632msgid "(\"disk\")"
26633msgstr ""
26634
26635#. type: item
32747aa9 26636#: doc/guix.texi:14836
544cab3d
LC
26637#, no-wrap
26638msgid "hibernate-mode"
26639msgstr ""
26640
26641#. type: code{#1}
32747aa9 26642#: doc/guix.texi:14838
544cab3d
LC
26643msgid "(\"platform\" \"shutdown\")"
26644msgstr ""
26645
26646#. type: item
32747aa9 26647#: doc/guix.texi:14838
544cab3d
LC
26648#, no-wrap
26649msgid "hybrid-sleep-state"
26650msgstr ""
26651
26652#. type: item
32747aa9 26653#: doc/guix.texi:14840
544cab3d
LC
26654#, no-wrap
26655msgid "hybrid-sleep-mode"
26656msgstr ""
26657
26658#. type: code{#1}
32747aa9 26659#: doc/guix.texi:14842
544cab3d
LC
26660msgid "(\"suspend\" \"platform\" \"shutdown\")"
26661msgstr ""
26662
26663#. type: deffn
32747aa9 26664#: doc/guix.texi:14845
544cab3d
LC
26665#, no-wrap
26666msgid "{Scheme Procedure} accountsservice-service @"
26667msgstr ""
26668
26669#. type: deffn
32747aa9 26670#: doc/guix.texi:14853
544cab3d
LC
26671msgid "[#: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."
26672msgstr ""
26673
26674#. type: deffn
32747aa9 26675#: doc/guix.texi:14856
544cab3d
LC
26676msgid "The @var{accountsservice} keyword argument is the @code{accountsservice} package to expose as a service."
26677msgstr ""
26678
26679#. type: deffn
32747aa9 26680#: doc/guix.texi:14858
544cab3d
LC
26681#, no-wrap
26682msgid "{Scheme Procedure} polkit-service @"
26683msgstr ""
26684
26685#. type: deffn
32747aa9
LC
26686#: doc/guix.texi:14867
26687msgid "[#: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."
544cab3d
LC
26688msgstr ""
26689
26690#. type: defvr
32747aa9 26691#: doc/guix.texi:14869
544cab3d
LC
26692#, no-wrap
26693msgid "{Scheme Variable} upower-service-type"
26694msgstr ""
26695
26696#. type: defvr
32747aa9
LC
26697#: doc/guix.texi:14873
26698msgid "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."
544cab3d
LC
26699msgstr ""
26700
26701#. type: defvr
32747aa9 26702#: doc/guix.texi:14876
544cab3d
LC
26703msgid "It implements the @code{org.freedesktop.UPower} D-Bus interface, and is notably used by GNOME."
26704msgstr ""
26705
26706#. type: deftp
32747aa9 26707#: doc/guix.texi:14878
544cab3d
LC
26708#, no-wrap
26709msgid "{Data Type} upower-configuration"
26710msgstr ""
26711
26712#. type: deftp
32747aa9 26713#: doc/guix.texi:14880
544cab3d
LC
26714msgid "Data type representation the configuration for UPower."
26715msgstr ""
26716
26717#. type: item
32747aa9 26718#: doc/guix.texi:14883
544cab3d
LC
26719#, no-wrap
26720msgid "@code{upower} (default: @var{upower})"
26721msgstr ""
26722
26723#. type: table
32747aa9 26724#: doc/guix.texi:14885
544cab3d
LC
26725msgid "Package to use for @code{upower}."
26726msgstr ""
26727
26728#. type: item
32747aa9 26729#: doc/guix.texi:14886
544cab3d
LC
26730#, no-wrap
26731msgid "@code{watts-up-pro?} (default: @code{#f})"
26732msgstr ""
26733
26734#. type: table
32747aa9 26735#: doc/guix.texi:14888
544cab3d
LC
26736msgid "Enable the Watts Up Pro device."
26737msgstr ""
26738
26739#. type: item
32747aa9 26740#: doc/guix.texi:14889
544cab3d
LC
26741#, no-wrap
26742msgid "@code{poll-batteries?} (default: @code{#t})"
26743msgstr ""
26744
26745#. type: table
32747aa9 26746#: doc/guix.texi:14891
544cab3d
LC
26747msgid "Enable polling the kernel for battery level changes."
26748msgstr ""
26749
26750#. type: item
32747aa9 26751#: doc/guix.texi:14892
544cab3d
LC
26752#, no-wrap
26753msgid "@code{ignore-lid?} (default: @code{#f})"
26754msgstr ""
26755
26756#. type: table
32747aa9 26757#: doc/guix.texi:14894
544cab3d
LC
26758msgid "Ignore the lid state, this can be useful if it's incorrect on a device."
26759msgstr ""
26760
26761#. type: item
32747aa9 26762#: doc/guix.texi:14895
544cab3d
LC
26763#, no-wrap
26764msgid "@code{use-percentage-for-policy?} (default: @code{#f})"
26765msgstr ""
26766
26767#. type: table
32747aa9 26768#: doc/guix.texi:14898
544cab3d
LC
26769msgid "Whether battery percentage based policy should be used. The default is to use the time left, change to @code{#t} to use the percentage."
26770msgstr ""
26771
26772#. type: item
32747aa9 26773#: doc/guix.texi:14899
544cab3d
LC
26774#, no-wrap
26775msgid "@code{percentage-low} (default: @code{10})"
26776msgstr ""
26777
26778#. type: table
32747aa9 26779#: doc/guix.texi:14902
544cab3d
LC
26780msgid "When @code{use-percentage-for-policy?} is @code{#t}, this sets the percentage at which the battery is considered low."
26781msgstr ""
26782
26783#. type: item
32747aa9 26784#: doc/guix.texi:14903
544cab3d
LC
26785#, no-wrap
26786msgid "@code{percentage-critical} (default: @code{3})"
26787msgstr ""
26788
26789#. type: table
32747aa9 26790#: doc/guix.texi:14906
544cab3d
LC
26791msgid "When @code{use-percentage-for-policy?} is @code{#t}, this sets the percentage at which the battery is considered critical."
26792msgstr ""
26793
26794#. type: item
32747aa9 26795#: doc/guix.texi:14907
544cab3d
LC
26796#, no-wrap
26797msgid "@code{percentage-action} (default: @code{2})"
26798msgstr ""
26799
26800#. type: table
32747aa9 26801#: doc/guix.texi:14910
544cab3d
LC
26802msgid "When @code{use-percentage-for-policy?} is @code{#t}, this sets the percentage at which action will be taken."
26803msgstr ""
26804
26805#. type: item
32747aa9 26806#: doc/guix.texi:14911
544cab3d
LC
26807#, no-wrap
26808msgid "@code{time-low} (default: @code{1200})"
26809msgstr ""
26810
26811#. type: table
32747aa9 26812#: doc/guix.texi:14914
544cab3d
LC
26813msgid "When @code{use-time-for-policy?} is @code{#f}, this sets the time remaining in seconds at which the battery is considered low."
26814msgstr ""
26815
26816#. type: item
32747aa9 26817#: doc/guix.texi:14915
544cab3d
LC
26818#, no-wrap
26819msgid "@code{time-critical} (default: @code{300})"
26820msgstr ""
26821
26822#. type: table
32747aa9 26823#: doc/guix.texi:14918
544cab3d
LC
26824msgid "When @code{use-time-for-policy?} is @code{#f}, this sets the time remaining in seconds at which the battery is considered critical."
26825msgstr ""
26826
26827#. type: item
32747aa9 26828#: doc/guix.texi:14919
544cab3d
LC
26829#, no-wrap
26830msgid "@code{time-action} (default: @code{120})"
26831msgstr ""
26832
26833#. type: table
32747aa9 26834#: doc/guix.texi:14922
544cab3d
LC
26835msgid "When @code{use-time-for-policy?} is @code{#f}, this sets the time remaining in seconds at which action will be taken."
26836msgstr ""
26837
26838#. type: item
32747aa9 26839#: doc/guix.texi:14923
544cab3d
LC
26840#, no-wrap
26841msgid "@code{critical-power-action} (default: @code{'hybrid-sleep})"
26842msgstr ""
26843
26844#. type: table
32747aa9 26845#: doc/guix.texi:14926
544cab3d
LC
26846msgid "The action taken when @code{percentage-action} or @code{time-action} is reached (depending on the configuration of @code{use-percentage-for-policy?})."
26847msgstr ""
26848
26849#. type: table
32747aa9 26850#: doc/guix.texi:14928
544cab3d
LC
26851msgid "Possible values are:"
26852msgstr ""
26853
26854#. type: code{#1}
32747aa9 26855#: doc/guix.texi:14932
544cab3d
LC
26856msgid "'power-off"
26857msgstr ""
26858
26859#. type: code{#1}
32747aa9 26860#: doc/guix.texi:14935
544cab3d
LC
26861msgid "'hibernate"
26862msgstr ""
26863
26864#. type: itemize
32747aa9 26865#: doc/guix.texi:14938
544cab3d
LC
26866msgid "@code{'hybrid-sleep}."
26867msgstr ""
26868
26869#. type: deffn
32747aa9 26870#: doc/guix.texi:14943
544cab3d
LC
26871#, no-wrap
26872msgid "{Scheme Procedure} udisks-service [#:udisks @var{udisks}]"
26873msgstr ""
26874
26875#. type: deffn
32747aa9
LC
26876#: doc/guix.texi:14948
26877msgid "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."
544cab3d
LC
26878msgstr ""
26879
26880#. type: deffn
32747aa9 26881#: doc/guix.texi:14950
544cab3d
LC
26882#, no-wrap
26883msgid "{Scheme Procedure} colord-service [#:colord @var{colord}]"
26884msgstr ""
26885
26886#. type: deffn
32747aa9
LC
26887#: doc/guix.texi:14956
26888msgid "Return a 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."
544cab3d
LC
26889msgstr ""
26890
26891#. type: deffn
32747aa9 26892#: doc/guix.texi:14958
544cab3d
LC
26893#, no-wrap
26894msgid "{Scheme Procedure} geoclue-application name [#:allowed? #t] [#:system? #f] [#:users '()]"
26895msgstr ""
26896
26897#. type: deffn
32747aa9 26898#: doc/guix.texi:14967
544cab3d
LC
26899msgid "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."
26900msgstr ""
26901
26902#. type: defvr
32747aa9 26903#: doc/guix.texi:14969
544cab3d
LC
26904#, no-wrap
26905msgid "{Scheme Variable} %standard-geoclue-applications"
26906msgstr ""
26907
26908#. type: defvr
32747aa9 26909#: doc/guix.texi:14976
544cab3d
LC
26910msgid "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."
26911msgstr ""
26912
26913#. type: deffn
32747aa9 26914#: doc/guix.texi:14978
544cab3d
LC
26915#, no-wrap
26916msgid "{Scheme Procedure} geoclue-service [#:colord @var{colord}] @"
26917msgstr ""
26918
26919#. type: deffn
32747aa9 26920#: doc/guix.texi:14991
544cab3d
LC
26921msgid "[#: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."
26922msgstr ""
26923
26924#. type: deffn
32747aa9 26925#: doc/guix.texi:14993
544cab3d
LC
26926#, no-wrap
26927msgid "{Scheme Procedure} bluetooth-service [#:bluez @var{bluez}] @"
26928msgstr ""
26929
26930#. type: deffn
32747aa9 26931#: doc/guix.texi:15000
544cab3d
LC
26932msgid "[@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."
26933msgstr ""
26934
26935#. type: deffn
32747aa9 26936#: doc/guix.texi:15002
544cab3d
LC
26937msgid "Users need to be in the @code{lp} group to access the D-Bus service."
26938msgstr ""
26939
26940#. type: cindex
32747aa9 26941#: doc/guix.texi:15007
544cab3d
LC
26942#, no-wrap
26943msgid "sound support"
26944msgstr ""
26945
26946#. type: cindex
32747aa9 26947#: doc/guix.texi:15008
544cab3d
LC
26948#, no-wrap
26949msgid "ALSA"
26950msgstr ""
26951
26952#. type: cindex
32747aa9 26953#: doc/guix.texi:15009
544cab3d
LC
26954#, no-wrap
26955msgid "PulseAudio, sound support"
26956msgstr ""
26957
26958#. type: Plain text
32747aa9 26959#: doc/guix.texi:15014
544cab3d
LC
26960msgid "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."
26961msgstr ""
26962
26963#. type: deffn
32747aa9 26964#: doc/guix.texi:15015
544cab3d
LC
26965#, no-wrap
26966msgid "{Scheme Variable} alsa-service-type"
26967msgstr ""
26968
26969#. type: deffn
32747aa9 26970#: doc/guix.texi:15020
544cab3d
LC
26971msgid "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:"
26972msgstr ""
26973
26974#. type: example
32747aa9 26975#: doc/guix.texi:15023
544cab3d
LC
26976#, no-wrap
26977msgid "(service alsa-service-type)\n"
26978msgstr ""
26979
26980#. type: deffn
32747aa9 26981#: doc/guix.texi:15026
544cab3d
LC
26982msgid "See below for details about @code{alsa-configuration}."
26983msgstr ""
26984
26985#. type: deftp
32747aa9 26986#: doc/guix.texi:15028
544cab3d
LC
26987#, no-wrap
26988msgid "{Data Type} alsa-configuration"
26989msgstr ""
26990
26991#. type: deftp
32747aa9 26992#: doc/guix.texi:15030
544cab3d
LC
26993msgid "Data type representing the configuration for @code{alsa-service}."
26994msgstr ""
26995
26996#. type: item
32747aa9 26997#: doc/guix.texi:15032
544cab3d
LC
26998#, no-wrap
26999msgid "@code{alsa-plugins} (default: @var{alsa-plugins})"
27000msgstr ""
27001
27002#. type: table
32747aa9 27003#: doc/guix.texi:15034
544cab3d
LC
27004msgid "@code{alsa-plugins} package to use."
27005msgstr ""
27006
27007#. type: item
32747aa9 27008#: doc/guix.texi:15035
544cab3d
LC
27009#, no-wrap
27010msgid "@code{pulseaudio?} (default: @var{#t})"
27011msgstr ""
27012
27013#. type: table
32747aa9 27014#: doc/guix.texi:15038
544cab3d
LC
27015msgid "Whether ALSA applications should transparently be made to use the @uref{http://www.pulseaudio.org/, PulseAudio} sound server."
27016msgstr ""
27017
27018#. type: table
32747aa9 27019#: doc/guix.texi:15042
544cab3d
LC
27020msgid "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."
27021msgstr ""
27022
27023#. type: item
32747aa9 27024#: doc/guix.texi:15043
544cab3d
LC
27025#, no-wrap
27026msgid "@code{extra-options} (default: @var{\"\"})"
27027msgstr ""
27028
27029#. type: table
32747aa9 27030#: doc/guix.texi:15045
544cab3d
LC
27031msgid "String to append to the @file{/etc/asound.conf} file."
27032msgstr ""
27033
27034#. type: Plain text
32747aa9 27035#: doc/guix.texi:15051
544cab3d
LC
27036msgid "Individual users who want to override the system configuration of ALSA can do it with the @file{~/.asoundrc} file:"
27037msgstr ""
27038
27039#. type: example
32747aa9 27040#: doc/guix.texi:15057
544cab3d
LC
27041#, no-wrap
27042msgid ""
27043"# In guix, we have to specify the absolute path for plugins.\n"
27044"pcm_type.jack @{\n"
27045" lib \"/home/alice/.guix-profile/lib/alsa-lib/libasound_module_pcm_jack.so\"\n"
27046"@}\n"
27047"\n"
27048msgstr ""
27049
27050#. type: example
32747aa9 27051#: doc/guix.texi:15066
544cab3d
LC
27052#, no-wrap
27053msgid ""
27054"# Routing ALSA to jack:\n"
27055"# <http://jackaudio.org/faq/routing_alsa.html>.\n"
27056"pcm.rawjack @{\n"
27057" type jack\n"
27058" playback_ports @{\n"
27059" 0 system:playback_1\n"
27060" 1 system:playback_2\n"
27061" @}\n"
27062"\n"
27063msgstr ""
27064
27065#. type: example
32747aa9 27066#: doc/guix.texi:15072
544cab3d
LC
27067#, no-wrap
27068msgid ""
27069" capture_ports @{\n"
27070" 0 system:capture_1\n"
27071" 1 system:capture_2\n"
27072" @}\n"
27073"@}\n"
27074"\n"
27075msgstr ""
27076
27077#. type: example
32747aa9 27078#: doc/guix.texi:15079
544cab3d
LC
27079#, no-wrap
27080msgid ""
27081"pcm.!default @{\n"
27082" type plug\n"
27083" slave @{\n"
27084" pcm \"rawjack\"\n"
27085" @}\n"
27086"@}\n"
27087msgstr ""
27088
27089#. type: Plain text
32747aa9 27090#: doc/guix.texi:15083
544cab3d
LC
27091msgid "See @uref{https://www.alsa-project.org/main/index.php/Asoundrc} for the details."
27092msgstr ""
27093
27094#. type: cindex
32747aa9 27095#: doc/guix.texi:15089
544cab3d
LC
27096#, no-wrap
27097msgid "SQL"
27098msgstr ""
27099
27100#. type: Plain text
32747aa9 27101#: doc/guix.texi:15091
544cab3d
LC
27102msgid "The @code{(gnu services databases)} module provides the following services."
27103msgstr ""
27104
27105#. type: deffn
32747aa9 27106#: doc/guix.texi:15092
544cab3d
LC
27107#, no-wrap
27108msgid "{Scheme Procedure} postgresql-service [#:postgresql postgresql] @"
27109msgstr ""
27110
27111#. type: deffn
32747aa9 27112#: doc/guix.texi:15097
544cab3d
LC
27113msgid "[#:config-file] [#:data-directory ``/var/lib/postgresql/data''] @ [#:port 5432] [#:locale ``en_US.utf8''] [#:extension-packages '()] Return a service that runs @var{postgresql}, the PostgreSQL database server."
27114msgstr ""
27115
27116#. type: deffn
32747aa9 27117#: doc/guix.texi:15101
544cab3d
LC
27118msgid "The PostgreSQL daemon loads its runtime configuration from @var{config-file}, creates a database cluster with @var{locale} as the default locale, stored in @var{data-directory}. It then listens on @var{port}."
27119msgstr ""
27120
27121#. type: cindex
32747aa9 27122#: doc/guix.texi:15102
544cab3d
LC
27123#, no-wrap
27124msgid "postgresql extension-packages"
27125msgstr ""
27126
27127#. type: deffn
32747aa9 27128#: doc/guix.texi:15107
544cab3d
LC
27129msgid "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:"
27130msgstr ""
27131
27132#. type: cindex
32747aa9 27133#: doc/guix.texi:15108
544cab3d
LC
27134#, no-wrap
27135msgid "postgis"
27136msgstr ""
27137
27138#. type: example
32747aa9 27139#: doc/guix.texi:15111
544cab3d
LC
27140#, no-wrap
27141msgid ""
27142"(use-package-modules databases geo)\n"
27143"\n"
27144msgstr ""
27145
27146#. type: example
32747aa9 27147#: doc/guix.texi:15121
544cab3d
LC
27148#, no-wrap
27149msgid ""
27150"(operating-system\n"
27151" ...\n"
27152" ;; postgresql is required to run `psql' but postgis is not required for\n"
27153" ;; proper operation.\n"
27154" (packages (cons* postgresql %base-packages))\n"
27155" (services\n"
27156" (cons*\n"
27157" (postgresql-service #:extension-packages (list postgis))\n"
27158" %base-services)))\n"
27159msgstr ""
27160
27161#. type: deffn
32747aa9 27162#: doc/guix.texi:15125
544cab3d
LC
27163msgid "Then the extension becomes visible and you can initialise an empty geographic database in this way:"
27164msgstr ""
27165
27166#. type: example
32747aa9 27167#: doc/guix.texi:15132
544cab3d
LC
27168#, no-wrap
27169msgid ""
27170"psql -U postgres\n"
27171"> create database postgistest;\n"
27172"> \\connect postgistest;\n"
27173"> create extension postgis;\n"
27174"> create extension postgis_topology;\n"
27175msgstr ""
27176
27177#. type: deffn
32747aa9 27178#: doc/guix.texi:15137
544cab3d
LC
27179msgid "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."
27180msgstr ""
27181
27182#. type: deffn
32747aa9 27183#: doc/guix.texi:15139
544cab3d
LC
27184#, no-wrap
27185msgid "{Scheme Procedure} mysql-service [#:config (mysql-configuration)]"
27186msgstr ""
27187
27188#. type: deffn
32747aa9 27189#: doc/guix.texi:15142
544cab3d
LC
27190msgid "Return a service that runs @command{mysqld}, the MySQL or MariaDB database server."
27191msgstr ""
27192
27193#. type: deffn
32747aa9 27194#: doc/guix.texi:15145
544cab3d
LC
27195msgid "The optional @var{config} argument specifies the configuration for @command{mysqld}, which should be a @code{<mysql-configuration>} object."
27196msgstr ""
27197
27198#. type: deftp
32747aa9 27199#: doc/guix.texi:15147
544cab3d
LC
27200#, no-wrap
27201msgid "{Data Type} mysql-configuration"
27202msgstr ""
27203
27204#. type: deftp
32747aa9 27205#: doc/guix.texi:15149
544cab3d
LC
27206msgid "Data type representing the configuration of @var{mysql-service}."
27207msgstr ""
27208
27209#. type: item
32747aa9 27210#: doc/guix.texi:15151
544cab3d
LC
27211#, no-wrap
27212msgid "@code{mysql} (default: @var{mariadb})"
27213msgstr ""
27214
27215#. type: table
32747aa9 27216#: doc/guix.texi:15154
544cab3d
LC
27217msgid "Package object of the MySQL database server, can be either @var{mariadb} or @var{mysql}."
27218msgstr ""
27219
27220#. type: table
32747aa9 27221#: doc/guix.texi:15157
544cab3d
LC
27222msgid "For MySQL, a temporary root password will be displayed at activation time. For MariaDB, the root password is empty."
27223msgstr ""
27224
27225#. type: item
32747aa9 27226#: doc/guix.texi:15158
544cab3d
LC
27227#, no-wrap
27228msgid "@code{port} (default: @code{3306})"
27229msgstr ""
27230
27231#. type: table
32747aa9 27232#: doc/guix.texi:15160
544cab3d
LC
27233msgid "TCP port on which the database server listens for incoming connections."
27234msgstr ""
27235
27236#. type: defvr
32747aa9 27237#: doc/guix.texi:15163
544cab3d
LC
27238#, no-wrap
27239msgid "{Scheme Variable} memcached-service-type"
27240msgstr ""
27241
27242#. type: defvr
32747aa9 27243#: doc/guix.texi:15167
544cab3d
LC
27244msgid "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."
27245msgstr ""
27246
27247#. type: example
32747aa9 27248#: doc/guix.texi:15171
544cab3d
LC
27249#, no-wrap
27250msgid "(service memcached-service-type)\n"
27251msgstr ""
27252
27253#. type: deftp
32747aa9 27254#: doc/guix.texi:15173
544cab3d
LC
27255#, no-wrap
27256msgid "{Data Type} memcached-configuration"
27257msgstr ""
27258
27259#. type: deftp
32747aa9 27260#: doc/guix.texi:15175
544cab3d
LC
27261msgid "Data type representing the configuration of memcached."
27262msgstr ""
27263
27264#. type: item
32747aa9 27265#: doc/guix.texi:15177
544cab3d
LC
27266#, no-wrap
27267msgid "@code{memcached} (default: @code{memcached})"
27268msgstr ""
27269
27270#. type: table
32747aa9 27271#: doc/guix.texi:15179
544cab3d
LC
27272msgid "The Memcached package to use."
27273msgstr ""
27274
27275#. type: item
32747aa9 27276#: doc/guix.texi:15180
544cab3d
LC
27277#, no-wrap
27278msgid "@code{interfaces} (default: @code{'(\"0.0.0.0\")})"
27279msgstr ""
27280
27281#. type: table
32747aa9 27282#: doc/guix.texi:15182
544cab3d
LC
27283msgid "Network interfaces on which to listen."
27284msgstr ""
27285
27286#. type: item
32747aa9 27287#: doc/guix.texi:15183
544cab3d
LC
27288#, no-wrap
27289msgid "@code{tcp-port} (default: @code{11211})"
27290msgstr ""
27291
27292#. type: table
32747aa9 27293#: doc/guix.texi:15185
544cab3d
LC
27294msgid "Port on which to accept connections on,"
27295msgstr ""
27296
27297#. type: item
32747aa9 27298#: doc/guix.texi:15186
544cab3d
LC
27299#, no-wrap
27300msgid "@code{udp-port} (default: @code{11211})"
27301msgstr ""
27302
27303#. type: table
32747aa9 27304#: doc/guix.texi:15189
544cab3d
LC
27305msgid "Port on which to accept UDP connections on, a value of 0 will disable listening on a UDP socket."
27306msgstr ""
27307
27308#. type: item
32747aa9 27309#: doc/guix.texi:15190
544cab3d
LC
27310#, no-wrap
27311msgid "@code{additional-options} (default: @code{'()})"
27312msgstr ""
27313
27314#. type: table
32747aa9 27315#: doc/guix.texi:15192
544cab3d
LC
27316msgid "Additional command line options to pass to @code{memcached}."
27317msgstr ""
27318
27319#. type: defvr
32747aa9 27320#: doc/guix.texi:15195
544cab3d
LC
27321#, no-wrap
27322msgid "{Scheme Variable} mongodb-service-type"
27323msgstr ""
27324
27325#. type: defvr
32747aa9 27326#: doc/guix.texi:15198
544cab3d
LC
27327msgid "This is the service type for @uref{https://www.mongodb.com/, MongoDB}. The value for the service type is a @code{mongodb-configuration} object."
27328msgstr ""
27329
27330#. type: example
32747aa9 27331#: doc/guix.texi:15202
544cab3d
LC
27332#, no-wrap
27333msgid "(service mongodb-service-type)\n"
27334msgstr ""
27335
27336#. type: deftp
32747aa9 27337#: doc/guix.texi:15204
544cab3d
LC
27338#, no-wrap
27339msgid "{Data Type} mongodb-configuration"
27340msgstr ""
27341
27342#. type: deftp
32747aa9 27343#: doc/guix.texi:15206
544cab3d
LC
27344msgid "Data type representing the configuration of mongodb."
27345msgstr ""
27346
27347#. type: item
32747aa9 27348#: doc/guix.texi:15208
544cab3d
LC
27349#, no-wrap
27350msgid "@code{mongodb} (default: @code{mongodb})"
27351msgstr ""
27352
27353#. type: table
32747aa9 27354#: doc/guix.texi:15210
544cab3d
LC
27355msgid "The MongoDB package to use."
27356msgstr ""
27357
27358#. type: item
32747aa9 27359#: doc/guix.texi:15211
544cab3d
LC
27360#, no-wrap
27361msgid "@code{config-file} (default: @code{%default-mongodb-configuration-file})"
27362msgstr ""
27363
27364#. type: table
32747aa9 27365#: doc/guix.texi:15213
544cab3d
LC
27366msgid "The configuration file for MongoDB."
27367msgstr ""
27368
27369#. type: item
32747aa9 27370#: doc/guix.texi:15214
544cab3d
LC
27371#, no-wrap
27372msgid "@code{data-directory} (default: @code{\"/var/lib/mongodb\"})"
27373msgstr ""
27374
27375#. type: table
32747aa9 27376#: doc/guix.texi:15218
544cab3d
LC
27377msgid "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."
27378msgstr ""
27379
27380#. type: defvr
32747aa9 27381#: doc/guix.texi:15221
544cab3d
LC
27382#, no-wrap
27383msgid "{Scheme Variable} redis-service-type"
27384msgstr ""
27385
27386#. type: defvr
32747aa9 27387#: doc/guix.texi:15224
544cab3d
LC
27388msgid "This is the service type for the @uref{https://redis.io/, Redis} key/value store, whose value is a @code{redis-configuration} object."
27389msgstr ""
27390
27391#. type: deftp
32747aa9 27392#: doc/guix.texi:15226
544cab3d
LC
27393#, no-wrap
27394msgid "{Data Type} redis-configuration"
27395msgstr ""
27396
27397#. type: deftp
32747aa9 27398#: doc/guix.texi:15228
544cab3d
LC
27399msgid "Data type representing the configuration of redis."
27400msgstr ""
27401
27402#. type: item
32747aa9 27403#: doc/guix.texi:15230
544cab3d
LC
27404#, no-wrap
27405msgid "@code{redis} (default: @code{redis})"
27406msgstr ""
27407
27408#. type: table
32747aa9 27409#: doc/guix.texi:15232
544cab3d
LC
27410msgid "The Redis package to use."
27411msgstr ""
27412
27413#. type: item
32747aa9 27414#: doc/guix.texi:15233
544cab3d
LC
27415#, no-wrap
27416msgid "@code{bind} (default: @code{\"127.0.0.1\"})"
27417msgstr ""
27418
27419#. type: table
32747aa9 27420#: doc/guix.texi:15235
544cab3d
LC
27421msgid "Network interface on which to listen."
27422msgstr ""
27423
27424#. type: item
32747aa9 27425#: doc/guix.texi:15236
544cab3d
LC
27426#, no-wrap
27427msgid "@code{port} (default: @code{6379})"
27428msgstr ""
27429
27430#. type: table
32747aa9 27431#: doc/guix.texi:15239
544cab3d
LC
27432msgid "Port on which to accept connections on, a value of 0 will disable listening on a TCP socket."
27433msgstr ""
27434
27435#. type: item
32747aa9 27436#: doc/guix.texi:15240
544cab3d
LC
27437#, no-wrap
27438msgid "@code{working-directory} (default: @code{\"/var/lib/redis\"})"
27439msgstr ""
27440
27441#. type: table
32747aa9 27442#: doc/guix.texi:15242
544cab3d
LC
27443msgid "Directory in which to store the database and related files."
27444msgstr ""
27445
27446#. type: cindex
32747aa9 27447#: doc/guix.texi:15248
544cab3d
LC
27448#, no-wrap
27449msgid "mail"
27450msgstr ""
27451
27452#. type: code{#1}
32747aa9 27453#: doc/guix.texi:15249 doc/guix.texi:19449
544cab3d
LC
27454#, no-wrap
27455msgid "email"
27456msgstr ""
27457
27458#. type: Plain text
32747aa9 27459#: doc/guix.texi:15254
544cab3d
LC
27460msgid "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."
27461msgstr ""
27462
27463#. type: subsubheading
32747aa9 27464#: doc/guix.texi:15255
544cab3d
LC
27465#, no-wrap
27466msgid "Dovecot Service"
27467msgstr ""
27468
27469#. type: deffn
32747aa9 27470#: doc/guix.texi:15257
544cab3d
LC
27471#, no-wrap
27472msgid "{Scheme Procedure} dovecot-service [#:config (dovecot-configuration)]"
27473msgstr ""
27474
27475#. type: deffn
32747aa9 27476#: doc/guix.texi:15259
544cab3d
LC
27477msgid "Return a service that runs the Dovecot IMAP/POP3/LMTP mail server."
27478msgstr ""
27479
27480#. type: Plain text
32747aa9 27481#: doc/guix.texi:15269
544cab3d
LC
27482msgid "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."
27483msgstr ""
27484
27485#. type: Plain text
32747aa9 27486#: doc/guix.texi:15272
544cab3d
LC
27487msgid "For example, to specify that mail is located at @code{maildir~/.mail}, one would instantiate the Dovecot service like this:"
27488msgstr ""
27489
27490#. type: example
32747aa9 27491#: doc/guix.texi:15277
544cab3d
LC
27492#, no-wrap
27493msgid ""
27494"(dovecot-service #:config\n"
27495" (dovecot-configuration\n"
27496" (mail-location \"maildir:~/.mail\")))\n"
27497msgstr ""
27498
27499#. type: Plain text
32747aa9 27500#: doc/guix.texi:15285
544cab3d
LC
27501msgid "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."
27502msgstr ""
27503
27504#. type: Plain text
32747aa9 27505#: doc/guix.texi:15295
544cab3d
LC
27506msgid "Available @code{dovecot-configuration} fields are:"
27507msgstr ""
27508
27509#. type: deftypevr
32747aa9 27510#: doc/guix.texi:15296
544cab3d
LC
27511#, no-wrap
27512msgid "{@code{dovecot-configuration} parameter} package dovecot"
27513msgstr ""
27514
27515#. type: deftypevr
32747aa9 27516#: doc/guix.texi:15298 doc/guix.texi:16604
544cab3d
LC
27517msgid "The dovecot package."
27518msgstr ""
27519
27520#. type: deftypevr
32747aa9 27521#: doc/guix.texi:15300
544cab3d
LC
27522#, no-wrap
27523msgid "{@code{dovecot-configuration} parameter} comma-separated-string-list listen"
27524msgstr ""
27525
27526#. type: deftypevr
32747aa9 27527#: doc/guix.texi:15306
544cab3d
LC
27528msgid "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."
27529msgstr ""
27530
27531#. type: deftypevr
32747aa9 27532#: doc/guix.texi:15308
544cab3d
LC
27533#, no-wrap
27534msgid "{@code{dovecot-configuration} parameter} protocol-configuration-list protocols"
27535msgstr ""
27536
27537#. type: deftypevr
32747aa9 27538#: doc/guix.texi:15311
544cab3d
LC
27539msgid "List of protocols we want to serve. Available protocols include @samp{imap}, @samp{pop3}, and @samp{lmtp}."
27540msgstr ""
27541
27542#. type: deftypevr
32747aa9 27543#: doc/guix.texi:15313
544cab3d
LC
27544msgid "Available @code{protocol-configuration} fields are:"
27545msgstr ""
27546
27547#. type: deftypevr
32747aa9 27548#: doc/guix.texi:15314
544cab3d
LC
27549#, no-wrap
27550msgid "{@code{protocol-configuration} parameter} string name"
27551msgstr ""
27552
27553#. type: deftypevr
32747aa9 27554#: doc/guix.texi:15316
544cab3d
LC
27555msgid "The name of the protocol."
27556msgstr ""
27557
27558#. type: deftypevr
32747aa9 27559#: doc/guix.texi:15318
544cab3d
LC
27560#, no-wrap
27561msgid "{@code{protocol-configuration} parameter} string auth-socket-path"
27562msgstr ""
27563
27564#. type: deftypevr
32747aa9 27565#: doc/guix.texi:15322
544cab3d
LC
27566msgid "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\"}."
27567msgstr ""
27568
27569#. type: deftypevr
32747aa9 27570#: doc/guix.texi:15324
544cab3d
LC
27571#, no-wrap
27572msgid "{@code{protocol-configuration} parameter} space-separated-string-list mail-plugins"
27573msgstr ""
27574
27575#. type: deftypevr
32747aa9 27576#: doc/guix.texi:15326
544cab3d
LC
27577msgid "Space separated list of plugins to load."
27578msgstr ""
27579
27580#. type: deftypevr
32747aa9 27581#: doc/guix.texi:15328
544cab3d
LC
27582#, no-wrap
27583msgid "{@code{protocol-configuration} parameter} non-negative-integer mail-max-userip-connections"
27584msgstr ""
27585
27586#. type: deftypevr
32747aa9 27587#: doc/guix.texi:15332
544cab3d
LC
27588msgid "Maximum number of IMAP connections allowed for a user from each IP address. NOTE: The username is compared case-sensitively. Defaults to @samp{10}."
27589msgstr ""
27590
27591#. type: deftypevr
32747aa9 27592#: doc/guix.texi:15336
544cab3d
LC
27593#, no-wrap
27594msgid "{@code{dovecot-configuration} parameter} service-configuration-list services"
27595msgstr ""
27596
27597#. type: deftypevr
32747aa9 27598#: doc/guix.texi:15340
544cab3d
LC
27599msgid "List of services to enable. Available services include @samp{imap}, @samp{imap-login}, @samp{pop3}, @samp{pop3-login}, @samp{auth}, and @samp{lmtp}."
27600msgstr ""
27601
27602#. type: deftypevr
32747aa9 27603#: doc/guix.texi:15342
544cab3d
LC
27604msgid "Available @code{service-configuration} fields are:"
27605msgstr ""
27606
27607#. type: deftypevr
32747aa9 27608#: doc/guix.texi:15343
544cab3d
LC
27609#, no-wrap
27610msgid "{@code{service-configuration} parameter} string kind"
27611msgstr ""
27612
27613#. type: deftypevr
32747aa9 27614#: doc/guix.texi:15348
544cab3d
LC
27615msgid "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."
27616msgstr ""
27617
27618#. type: deftypevr
32747aa9 27619#: doc/guix.texi:15350
544cab3d
LC
27620#, no-wrap
27621msgid "{@code{service-configuration} parameter} listener-configuration-list listeners"
27622msgstr ""
27623
27624#. type: deftypevr
32747aa9 27625#: doc/guix.texi:15355
544cab3d
LC
27626msgid "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{()}."
27627msgstr ""
27628
27629#. type: deftypevr
32747aa9 27630#: doc/guix.texi:15357
544cab3d
LC
27631msgid "Available @code{unix-listener-configuration} fields are:"
27632msgstr ""
27633
27634#. type: deftypevr
32747aa9 27635#: doc/guix.texi:15358
544cab3d
LC
27636#, no-wrap
27637msgid "{@code{unix-listener-configuration} parameter} string path"
27638msgstr ""
27639
27640#. type: deftypevr
32747aa9 27641#: doc/guix.texi:15361 doc/guix.texi:15384
544cab3d
LC
27642msgid "Path to the file, relative to @code{base-dir} field. This is also used as the section name."
27643msgstr ""
27644
27645#. type: deftypevr
32747aa9 27646#: doc/guix.texi:15363
544cab3d
LC
27647#, no-wrap
27648msgid "{@code{unix-listener-configuration} parameter} string mode"
27649msgstr ""
27650
27651#. type: deftypevr
32747aa9 27652#: doc/guix.texi:15366 doc/guix.texi:15389
544cab3d
LC
27653msgid "The access mode for the socket. Defaults to @samp{\"0600\"}."
27654msgstr ""
27655
27656#. type: deftypevr
32747aa9 27657#: doc/guix.texi:15368
544cab3d
LC
27658#, no-wrap
27659msgid "{@code{unix-listener-configuration} parameter} string user"
27660msgstr ""
27661
27662#. type: deftypevr
32747aa9 27663#: doc/guix.texi:15371 doc/guix.texi:15394
544cab3d
LC
27664msgid "The user to own the socket. Defaults to @samp{\"\"}."
27665msgstr ""
27666
27667#. type: deftypevr
32747aa9 27668#: doc/guix.texi:15373
544cab3d
LC
27669#, no-wrap
27670msgid "{@code{unix-listener-configuration} parameter} string group"
27671msgstr ""
27672
27673#. type: deftypevr
32747aa9 27674#: doc/guix.texi:15376 doc/guix.texi:15399
544cab3d
LC
27675msgid "The group to own the socket. Defaults to @samp{\"\"}."
27676msgstr ""
27677
27678#. type: deftypevr
32747aa9 27679#: doc/guix.texi:15380
544cab3d
LC
27680msgid "Available @code{fifo-listener-configuration} fields are:"
27681msgstr ""
27682
27683#. type: deftypevr
32747aa9 27684#: doc/guix.texi:15381
544cab3d
LC
27685#, no-wrap
27686msgid "{@code{fifo-listener-configuration} parameter} string path"
27687msgstr ""
27688
27689#. type: deftypevr
32747aa9 27690#: doc/guix.texi:15386
544cab3d
LC
27691#, no-wrap
27692msgid "{@code{fifo-listener-configuration} parameter} string mode"
27693msgstr ""
27694
27695#. type: deftypevr
32747aa9 27696#: doc/guix.texi:15391
544cab3d
LC
27697#, no-wrap
27698msgid "{@code{fifo-listener-configuration} parameter} string user"
27699msgstr ""
27700
27701#. type: deftypevr
32747aa9 27702#: doc/guix.texi:15396
544cab3d
LC
27703#, no-wrap
27704msgid "{@code{fifo-listener-configuration} parameter} string group"
27705msgstr ""
27706
27707#. type: deftypevr
32747aa9 27708#: doc/guix.texi:15403
544cab3d
LC
27709msgid "Available @code{inet-listener-configuration} fields are:"
27710msgstr ""
27711
27712#. type: deftypevr
32747aa9 27713#: doc/guix.texi:15404
544cab3d
LC
27714#, no-wrap
27715msgid "{@code{inet-listener-configuration} parameter} string protocol"
27716msgstr ""
27717
27718#. type: deftypevr
32747aa9 27719#: doc/guix.texi:15406
544cab3d
LC
27720msgid "The protocol to listen for."
27721msgstr ""
27722
27723#. type: deftypevr
32747aa9 27724#: doc/guix.texi:15408
544cab3d
LC
27725#, no-wrap
27726msgid "{@code{inet-listener-configuration} parameter} string address"
27727msgstr ""
27728
27729#. type: deftypevr
32747aa9 27730#: doc/guix.texi:15411
544cab3d
LC
27731msgid "The address on which to listen, or empty for all addresses. Defaults to @samp{\"\"}."
27732msgstr ""
27733
27734#. type: deftypevr
32747aa9 27735#: doc/guix.texi:15413
544cab3d
LC
27736#, no-wrap
27737msgid "{@code{inet-listener-configuration} parameter} non-negative-integer port"
27738msgstr ""
27739
27740#. type: deftypevr
32747aa9 27741#: doc/guix.texi:15415
544cab3d
LC
27742msgid "The port on which to listen."
27743msgstr ""
27744
27745#. type: deftypevr
32747aa9 27746#: doc/guix.texi:15417
544cab3d
LC
27747#, no-wrap
27748msgid "{@code{inet-listener-configuration} parameter} boolean ssl?"
27749msgstr ""
27750
27751#. type: deftypevr
32747aa9 27752#: doc/guix.texi:15421
544cab3d
LC
27753msgid "Whether to use SSL for this service; @samp{yes}, @samp{no}, or @samp{required}. Defaults to @samp{#t}."
27754msgstr ""
27755
27756#. type: deftypevr
32747aa9 27757#: doc/guix.texi:15425
544cab3d
LC
27758#, no-wrap
27759msgid "{@code{service-configuration} parameter} non-negative-integer client-limit"
27760msgstr ""
27761
27762#. type: deftypevr
32747aa9 27763#: doc/guix.texi:15430
544cab3d
LC
27764msgid "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."
27765msgstr ""
27766
27767#. type: deftypevr
32747aa9 27768#: doc/guix.texi:15435
544cab3d
LC
27769#, no-wrap
27770msgid "{@code{service-configuration} parameter} non-negative-integer service-count"
27771msgstr ""
27772
27773#. type: deftypevr
32747aa9 27774#: doc/guix.texi:15440
544cab3d
LC
27775msgid "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}."
27776msgstr ""
27777
27778#. type: deftypevr
32747aa9 27779#: doc/guix.texi:15443
544cab3d
LC
27780#, no-wrap
27781msgid "{@code{service-configuration} parameter} non-negative-integer process-limit"
27782msgstr ""
27783
27784#. type: deftypevr
32747aa9 27785#: doc/guix.texi:15446
544cab3d
LC
27786msgid "Maximum number of processes that can exist for this service. If set to 0, @code{default-process-limit} is used instead."
27787msgstr ""
27788
27789#. type: deftypevr
32747aa9 27790#: doc/guix.texi:15451
544cab3d
LC
27791#, no-wrap
27792msgid "{@code{service-configuration} parameter} non-negative-integer process-min-avail"
27793msgstr ""
27794
27795#. type: deftypevr
32747aa9 27796#: doc/guix.texi:15454
544cab3d
LC
27797msgid "Number of processes to always keep waiting for more connections. Defaults to @samp{0}."
27798msgstr ""
27799
27800#. type: deftypevr
32747aa9 27801#: doc/guix.texi:15456
544cab3d
LC
27802#, no-wrap
27803msgid "{@code{service-configuration} parameter} non-negative-integer vsz-limit"
27804msgstr ""
27805
27806#. type: deftypevr
32747aa9 27807#: doc/guix.texi:15460
544cab3d
LC
27808msgid "If you set @samp{service-count 0}, you probably need to grow this. Defaults to @samp{256000000}."
27809msgstr ""
27810
27811#. type: deftypevr
32747aa9 27812#: doc/guix.texi:15464
544cab3d
LC
27813#, no-wrap
27814msgid "{@code{dovecot-configuration} parameter} dict-configuration dict"
27815msgstr ""
27816
27817#. type: deftypevr
32747aa9 27818#: doc/guix.texi:15467
544cab3d
LC
27819msgid "Dict configuration, as created by the @code{dict-configuration} constructor."
27820msgstr ""
27821
27822#. type: deftypevr
32747aa9 27823#: doc/guix.texi:15469
544cab3d
LC
27824msgid "Available @code{dict-configuration} fields are:"
27825msgstr ""
27826
27827#. type: deftypevr
32747aa9 27828#: doc/guix.texi:15470
544cab3d
LC
27829#, no-wrap
27830msgid "{@code{dict-configuration} parameter} free-form-fields entries"
27831msgstr ""
27832
27833#. type: deftypevr
32747aa9 27834#: doc/guix.texi:15473
544cab3d
LC
27835msgid "A list of key-value pairs that this dict should hold. Defaults to @samp{()}."
27836msgstr ""
27837
27838#. type: deftypevr
32747aa9 27839#: doc/guix.texi:15477
544cab3d
LC
27840#, no-wrap
27841msgid "{@code{dovecot-configuration} parameter} passdb-configuration-list passdbs"
27842msgstr ""
27843
27844#. type: deftypevr
32747aa9 27845#: doc/guix.texi:15480
544cab3d
LC
27846msgid "A list of passdb configurations, each one created by the @code{passdb-configuration} constructor."
27847msgstr ""
27848
27849#. type: deftypevr
32747aa9 27850#: doc/guix.texi:15482
544cab3d
LC
27851msgid "Available @code{passdb-configuration} fields are:"
27852msgstr ""
27853
27854#. type: deftypevr
32747aa9 27855#: doc/guix.texi:15483
544cab3d
LC
27856#, no-wrap
27857msgid "{@code{passdb-configuration} parameter} string driver"
27858msgstr ""
27859
27860#. type: deftypevr
32747aa9 27861#: doc/guix.texi:15488
544cab3d
LC
27862msgid "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\"}."
27863msgstr ""
27864
27865#. type: deftypevr
32747aa9 27866#: doc/guix.texi:15490
544cab3d
LC
27867#, no-wrap
27868msgid "{@code{passdb-configuration} parameter} space-separated-string-list args"
27869msgstr ""
27870
27871#. type: deftypevr
32747aa9 27872#: doc/guix.texi:15493
544cab3d
LC
27873msgid "Space separated list of arguments to the passdb driver. Defaults to @samp{\"\"}."
27874msgstr ""
27875
27876#. type: deftypevr
32747aa9 27877#: doc/guix.texi:15497
544cab3d
LC
27878#, no-wrap
27879msgid "{@code{dovecot-configuration} parameter} userdb-configuration-list userdbs"
27880msgstr ""
27881
27882#. type: deftypevr
32747aa9 27883#: doc/guix.texi:15500
544cab3d
LC
27884msgid "List of userdb configurations, each one created by the @code{userdb-configuration} constructor."
27885msgstr ""
27886
27887#. type: deftypevr
32747aa9 27888#: doc/guix.texi:15502
544cab3d
LC
27889msgid "Available @code{userdb-configuration} fields are:"
27890msgstr ""
27891
27892#. type: deftypevr
32747aa9 27893#: doc/guix.texi:15503
544cab3d
LC
27894#, no-wrap
27895msgid "{@code{userdb-configuration} parameter} string driver"
27896msgstr ""
27897
27898#. type: deftypevr
32747aa9 27899#: doc/guix.texi:15507
544cab3d
LC
27900msgid "The driver that the userdb should use. Valid values include @samp{passwd} and @samp{static}. Defaults to @samp{\"passwd\"}."
27901msgstr ""
27902
27903#. type: deftypevr
32747aa9 27904#: doc/guix.texi:15509
544cab3d
LC
27905#, no-wrap
27906msgid "{@code{userdb-configuration} parameter} space-separated-string-list args"
27907msgstr ""
27908
27909#. type: deftypevr
32747aa9 27910#: doc/guix.texi:15512
544cab3d
LC
27911msgid "Space separated list of arguments to the userdb driver. Defaults to @samp{\"\"}."
27912msgstr ""
27913
27914#. type: deftypevr
32747aa9 27915#: doc/guix.texi:15514
544cab3d
LC
27916#, no-wrap
27917msgid "{@code{userdb-configuration} parameter} free-form-args override-fields"
27918msgstr ""
27919
27920#. type: deftypevr
32747aa9 27921#: doc/guix.texi:15517
544cab3d
LC
27922msgid "Override fields from passwd. Defaults to @samp{()}."
27923msgstr ""
27924
27925#. type: deftypevr
32747aa9 27926#: doc/guix.texi:15521
544cab3d
LC
27927#, no-wrap
27928msgid "{@code{dovecot-configuration} parameter} plugin-configuration plugin-configuration"
27929msgstr ""
27930
27931#. type: deftypevr
32747aa9 27932#: doc/guix.texi:15524
544cab3d
LC
27933msgid "Plug-in configuration, created by the @code{plugin-configuration} constructor."
27934msgstr ""
27935
27936#. type: deftypevr
32747aa9 27937#: doc/guix.texi:15526
544cab3d
LC
27938#, no-wrap
27939msgid "{@code{dovecot-configuration} parameter} list-of-namespace-configuration namespaces"
27940msgstr ""
27941
27942#. type: deftypevr
32747aa9 27943#: doc/guix.texi:15529
544cab3d
LC
27944msgid "List of namespaces. Each item in the list is created by the @code{namespace-configuration} constructor."
27945msgstr ""
27946
27947#. type: deftypevr
32747aa9 27948#: doc/guix.texi:15531
544cab3d
LC
27949msgid "Available @code{namespace-configuration} fields are:"
27950msgstr ""
27951
27952#. type: deftypevr
32747aa9 27953#: doc/guix.texi:15532
544cab3d
LC
27954#, no-wrap
27955msgid "{@code{namespace-configuration} parameter} string name"
27956msgstr ""
27957
27958#. type: deftypevr
32747aa9 27959#: doc/guix.texi:15534
544cab3d
LC
27960msgid "Name for this namespace."
27961msgstr ""
27962
27963#. type: deftypevr
32747aa9 27964#: doc/guix.texi:15536
544cab3d
LC
27965#, no-wrap
27966msgid "{@code{namespace-configuration} parameter} string type"
27967msgstr ""
27968
27969#. type: deftypevr
32747aa9 27970#: doc/guix.texi:15539
544cab3d
LC
27971msgid "Namespace type: @samp{private}, @samp{shared} or @samp{public}. Defaults to @samp{\"private\"}."
27972msgstr ""
27973
27974#. type: deftypevr
32747aa9 27975#: doc/guix.texi:15541
544cab3d
LC
27976#, no-wrap
27977msgid "{@code{namespace-configuration} parameter} string separator"
27978msgstr ""
27979
27980#. type: deftypevr
32747aa9 27981#: doc/guix.texi:15547
544cab3d
LC
27982msgid "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{\"\"}."
27983msgstr ""
27984
27985#. type: deftypevr
32747aa9 27986#: doc/guix.texi:15549
544cab3d
LC
27987#, no-wrap
27988msgid "{@code{namespace-configuration} parameter} string prefix"
27989msgstr ""
27990
27991#. type: deftypevr
32747aa9 27992#: doc/guix.texi:15553
544cab3d
LC
27993msgid "Prefix required to access this namespace. This needs to be different for all namespaces. For example @samp{Public/}. Defaults to @samp{\"\"}."
27994msgstr ""
27995
27996#. type: deftypevr
32747aa9 27997#: doc/guix.texi:15555
544cab3d
LC
27998#, no-wrap
27999msgid "{@code{namespace-configuration} parameter} string location"
28000msgstr ""
28001
28002#. type: deftypevr
32747aa9 28003#: doc/guix.texi:15559
544cab3d
LC
28004msgid "Physical location of the mailbox. This is in the same format as mail_location, which is also the default for it. Defaults to @samp{\"\"}."
28005msgstr ""
28006
28007#. type: deftypevr
32747aa9 28008#: doc/guix.texi:15561
544cab3d
LC
28009#, no-wrap
28010msgid "{@code{namespace-configuration} parameter} boolean inbox?"
28011msgstr ""
28012
28013#. type: deftypevr
32747aa9 28014#: doc/guix.texi:15565
544cab3d
LC
28015msgid "There can be only one INBOX, and this setting defines which namespace has it. Defaults to @samp{#f}."
28016msgstr ""
28017
28018#. type: deftypevr
32747aa9 28019#: doc/guix.texi:15567
544cab3d
LC
28020#, no-wrap
28021msgid "{@code{namespace-configuration} parameter} boolean hidden?"
28022msgstr ""
28023
28024#. type: deftypevr
32747aa9 28025#: doc/guix.texi:15575
544cab3d
LC
28026msgid "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}."
28027msgstr ""
28028
28029#. type: deftypevr
32747aa9 28030#: doc/guix.texi:15577
544cab3d
LC
28031#, no-wrap
28032msgid "{@code{namespace-configuration} parameter} boolean list?"
28033msgstr ""
28034
28035#. type: deftypevr
32747aa9 28036#: doc/guix.texi:15583
544cab3d
LC
28037msgid "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}."
28038msgstr ""
28039
28040#. type: deftypevr
32747aa9 28041#: doc/guix.texi:15585
544cab3d
LC
28042#, no-wrap
28043msgid "{@code{namespace-configuration} parameter} boolean subscriptions?"
28044msgstr ""
28045
28046#. type: deftypevr
32747aa9 28047#: doc/guix.texi:15590
544cab3d
LC
28048msgid "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}."
28049msgstr ""
28050
28051#. type: deftypevr
32747aa9 28052#: doc/guix.texi:15592
544cab3d
LC
28053#, no-wrap
28054msgid "{@code{namespace-configuration} parameter} mailbox-configuration-list mailboxes"
28055msgstr ""
28056
28057#. type: deftypevr
32747aa9 28058#: doc/guix.texi:15595
544cab3d
LC
28059msgid "List of predefined mailboxes in this namespace. Defaults to @samp{()}."
28060msgstr ""
28061
28062#. type: deftypevr
32747aa9 28063#: doc/guix.texi:15597
544cab3d
LC
28064msgid "Available @code{mailbox-configuration} fields are:"
28065msgstr ""
28066
28067#. type: deftypevr
32747aa9 28068#: doc/guix.texi:15598
544cab3d
LC
28069#, no-wrap
28070msgid "{@code{mailbox-configuration} parameter} string name"
28071msgstr ""
28072
28073#. type: deftypevr
32747aa9 28074#: doc/guix.texi:15600
544cab3d
LC
28075msgid "Name for this mailbox."
28076msgstr ""
28077
28078#. type: deftypevr
32747aa9 28079#: doc/guix.texi:15602
544cab3d
LC
28080#, no-wrap
28081msgid "{@code{mailbox-configuration} parameter} string auto"
28082msgstr ""
28083
28084#. type: deftypevr
32747aa9 28085#: doc/guix.texi:15606
544cab3d
LC
28086msgid "@samp{create} will automatically create this mailbox. @samp{subscribe} will both create and subscribe to the mailbox. Defaults to @samp{\"no\"}."
28087msgstr ""
28088
28089#. type: deftypevr
32747aa9 28090#: doc/guix.texi:15608
544cab3d
LC
28091#, no-wrap
28092msgid "{@code{mailbox-configuration} parameter} space-separated-string-list special-use"
28093msgstr ""
28094
28095#. type: deftypevr
32747aa9 28096#: doc/guix.texi:15613
544cab3d
LC
28097msgid "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{()}."
28098msgstr ""
28099
28100#. type: deftypevr
32747aa9 28101#: doc/guix.texi:15619
544cab3d
LC
28102#, no-wrap
28103msgid "{@code{dovecot-configuration} parameter} file-name base-dir"
28104msgstr ""
28105
28106#. type: deftypevr
32747aa9 28107#: doc/guix.texi:15622
544cab3d
LC
28108msgid "Base directory where to store runtime data. Defaults to @samp{\"/var/run/dovecot/\"}."
28109msgstr ""
28110
28111#. type: deftypevr
32747aa9 28112#: doc/guix.texi:15624
544cab3d
LC
28113#, no-wrap
28114msgid "{@code{dovecot-configuration} parameter} string login-greeting"
28115msgstr ""
28116
28117#. type: deftypevr
32747aa9 28118#: doc/guix.texi:15627
544cab3d
LC
28119msgid "Greeting message for clients. Defaults to @samp{\"Dovecot ready.\"}."
28120msgstr ""
28121
28122#. type: deftypevr
32747aa9 28123#: doc/guix.texi:15629
544cab3d
LC
28124#, no-wrap
28125msgid "{@code{dovecot-configuration} parameter} space-separated-string-list login-trusted-networks"
28126msgstr ""
28127
28128#. type: deftypevr
32747aa9 28129#: doc/guix.texi:15636
544cab3d
LC
28130msgid "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{()}."
28131msgstr ""
28132
28133#. type: deftypevr
32747aa9 28134#: doc/guix.texi:15638
544cab3d
LC
28135#, no-wrap
28136msgid "{@code{dovecot-configuration} parameter} space-separated-string-list login-access-sockets"
28137msgstr ""
28138
28139#. type: deftypevr
32747aa9 28140#: doc/guix.texi:15641
544cab3d
LC
28141msgid "List of login access check sockets (e.g.@: tcpwrap). Defaults to @samp{()}."
28142msgstr ""
28143
28144#. type: deftypevr
32747aa9 28145#: doc/guix.texi:15643
544cab3d
LC
28146#, no-wrap
28147msgid "{@code{dovecot-configuration} parameter} boolean verbose-proctitle?"
28148msgstr ""
28149
28150#. type: deftypevr
32747aa9 28151#: doc/guix.texi:15649
544cab3d
LC
28152msgid "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}."
28153msgstr ""
28154
28155#. type: deftypevr
32747aa9 28156#: doc/guix.texi:15651
544cab3d
LC
28157#, no-wrap
28158msgid "{@code{dovecot-configuration} parameter} boolean shutdown-clients?"
28159msgstr ""
28160
28161#. type: deftypevr
32747aa9 28162#: doc/guix.texi:15657
544cab3d
LC
28163msgid "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}."
28164msgstr ""
28165
28166#. type: deftypevr
32747aa9 28167#: doc/guix.texi:15659
544cab3d
LC
28168#, no-wrap
28169msgid "{@code{dovecot-configuration} parameter} non-negative-integer doveadm-worker-count"
28170msgstr ""
28171
28172#. type: deftypevr
32747aa9 28173#: doc/guix.texi:15663
544cab3d
LC
28174msgid "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}."
28175msgstr ""
28176
28177#. type: deftypevr
32747aa9 28178#: doc/guix.texi:15665
544cab3d
LC
28179#, no-wrap
28180msgid "{@code{dovecot-configuration} parameter} string doveadm-socket-path"
28181msgstr ""
28182
28183#. type: deftypevr
32747aa9 28184#: doc/guix.texi:15668
544cab3d
LC
28185msgid "UNIX socket or host:port used for connecting to doveadm server. Defaults to @samp{\"doveadm-server\"}."
28186msgstr ""
28187
28188#. type: deftypevr
32747aa9 28189#: doc/guix.texi:15670
544cab3d
LC
28190#, no-wrap
28191msgid "{@code{dovecot-configuration} parameter} space-separated-string-list import-environment"
28192msgstr ""
28193
28194#. type: deftypevr
32747aa9 28195#: doc/guix.texi:15674
544cab3d
LC
28196msgid "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."
28197msgstr ""
28198
28199#. type: deftypevr
32747aa9 28200#: doc/guix.texi:15676
544cab3d
LC
28201#, no-wrap
28202msgid "{@code{dovecot-configuration} parameter} boolean disable-plaintext-auth?"
28203msgstr ""
28204
28205#. type: deftypevr
32747aa9 28206#: doc/guix.texi:15683
544cab3d
LC
28207msgid "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}."
28208msgstr ""
28209
28210#. type: deftypevr
32747aa9 28211#: doc/guix.texi:15685
544cab3d
LC
28212#, no-wrap
28213msgid "{@code{dovecot-configuration} parameter} non-negative-integer auth-cache-size"
28214msgstr ""
28215
28216#. type: deftypevr
32747aa9 28217#: doc/guix.texi:15690
544cab3d
LC
28218msgid "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}."
28219msgstr ""
28220
28221#. type: deftypevr
32747aa9 28222#: doc/guix.texi:15692
544cab3d
LC
28223#, no-wrap
28224msgid "{@code{dovecot-configuration} parameter} string auth-cache-ttl"
28225msgstr ""
28226
28227#. type: deftypevr
32747aa9 28228#: doc/guix.texi:15700
544cab3d
LC
28229msgid "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\"}."
28230msgstr ""
28231
28232#. type: deftypevr
32747aa9 28233#: doc/guix.texi:15702
544cab3d
LC
28234#, no-wrap
28235msgid "{@code{dovecot-configuration} parameter} string auth-cache-negative-ttl"
28236msgstr ""
28237
28238#. type: deftypevr
32747aa9 28239#: doc/guix.texi:15706
544cab3d
LC
28240msgid "TTL for negative hits (user not found, password mismatch). 0 disables caching them completely. Defaults to @samp{\"1 hour\"}."
28241msgstr ""
28242
28243#. type: deftypevr
32747aa9 28244#: doc/guix.texi:15708
544cab3d
LC
28245#, no-wrap
28246msgid "{@code{dovecot-configuration} parameter} space-separated-string-list auth-realms"
28247msgstr ""
28248
28249#. type: deftypevr
32747aa9 28250#: doc/guix.texi:15714
544cab3d
LC
28251msgid "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{()}."
28252msgstr ""
28253
28254#. type: deftypevr
32747aa9 28255#: doc/guix.texi:15716
544cab3d
LC
28256#, no-wrap
28257msgid "{@code{dovecot-configuration} parameter} string auth-default-realm"
28258msgstr ""
28259
28260#. type: deftypevr
32747aa9 28261#: doc/guix.texi:15721
544cab3d
LC
28262msgid "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{\"\"}."
28263msgstr ""
28264
28265#. type: deftypevr
32747aa9 28266#: doc/guix.texi:15723
544cab3d
LC
28267#, no-wrap
28268msgid "{@code{dovecot-configuration} parameter} string auth-username-chars"
28269msgstr ""
28270
28271#. type: deftypevr
32747aa9 28272#: doc/guix.texi:15730
544cab3d
LC
28273msgid "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.-_@@\"}."
28274msgstr ""
28275
28276#. type: deftypevr
32747aa9 28277#: doc/guix.texi:15732
544cab3d
LC
28278#, no-wrap
28279msgid "{@code{dovecot-configuration} parameter} string auth-username-translation"
28280msgstr ""
28281
28282#. type: deftypevr
32747aa9 28283#: doc/guix.texi:15738
544cab3d
LC
28284msgid "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{\"\"}."
28285msgstr ""
28286
28287#. type: deftypevr
32747aa9 28288#: doc/guix.texi:15740
544cab3d
LC
28289#, no-wrap
28290msgid "{@code{dovecot-configuration} parameter} string auth-username-format"
28291msgstr ""
28292
28293#. type: deftypevr
32747aa9 28294#: doc/guix.texi:15747
544cab3d
LC
28295msgid "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\"}."
28296msgstr ""
28297
28298#. type: deftypevr
32747aa9 28299#: doc/guix.texi:15749
544cab3d
LC
28300#, no-wrap
28301msgid "{@code{dovecot-configuration} parameter} string auth-master-user-separator"
28302msgstr ""
28303
28304#. type: deftypevr
32747aa9 28305#: doc/guix.texi:15757
544cab3d
LC
28306msgid "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{\"\"}."
28307msgstr ""
28308
28309#. type: deftypevr
32747aa9 28310#: doc/guix.texi:15759
544cab3d
LC
28311#, no-wrap
28312msgid "{@code{dovecot-configuration} parameter} string auth-anonymous-username"
28313msgstr ""
28314
28315#. type: deftypevr
32747aa9 28316#: doc/guix.texi:15763
544cab3d
LC
28317msgid "Username to use for users logging in with ANONYMOUS SASL mechanism. Defaults to @samp{\"anonymous\"}."
28318msgstr ""
28319
28320#. type: deftypevr
32747aa9 28321#: doc/guix.texi:15765
544cab3d
LC
28322#, no-wrap
28323msgid "{@code{dovecot-configuration} parameter} non-negative-integer auth-worker-max-count"
28324msgstr ""
28325
28326#. type: deftypevr
32747aa9 28327#: doc/guix.texi:15770
544cab3d
LC
28328msgid "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}."
28329msgstr ""
28330
28331#. type: deftypevr
32747aa9 28332#: doc/guix.texi:15772
544cab3d
LC
28333#, no-wrap
28334msgid "{@code{dovecot-configuration} parameter} string auth-gssapi-hostname"
28335msgstr ""
28336
28337#. type: deftypevr
32747aa9 28338#: doc/guix.texi:15777
544cab3d
LC
28339msgid "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{\"\"}."
28340msgstr ""
28341
28342#. type: deftypevr
32747aa9 28343#: doc/guix.texi:15779
544cab3d
LC
28344#, no-wrap
28345msgid "{@code{dovecot-configuration} parameter} string auth-krb5-keytab"
28346msgstr ""
28347
28348#. type: deftypevr
32747aa9 28349#: doc/guix.texi:15785
544cab3d
LC
28350msgid "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{\"\"}."
28351msgstr ""
28352
28353#. type: deftypevr
32747aa9 28354#: doc/guix.texi:15787
544cab3d
LC
28355#, no-wrap
28356msgid "{@code{dovecot-configuration} parameter} boolean auth-use-winbind?"
28357msgstr ""
28358
28359#. type: deftypevr
32747aa9 28360#: doc/guix.texi:15792
544cab3d
LC
28361msgid "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}."
28362msgstr ""
28363
28364#. type: deftypevr
32747aa9 28365#: doc/guix.texi:15794
544cab3d
LC
28366#, no-wrap
28367msgid "{@code{dovecot-configuration} parameter} file-name auth-winbind-helper-path"
28368msgstr ""
28369
28370#. type: deftypevr
32747aa9 28371#: doc/guix.texi:15797
544cab3d
LC
28372msgid "Path for Samba's @samp{ntlm-auth} helper binary. Defaults to @samp{\"/usr/bin/ntlm_auth\"}."
28373msgstr ""
28374
28375#. type: deftypevr
32747aa9 28376#: doc/guix.texi:15799
544cab3d
LC
28377#, no-wrap
28378msgid "{@code{dovecot-configuration} parameter} string auth-failure-delay"
28379msgstr ""
28380
28381#. type: deftypevr
32747aa9 28382#: doc/guix.texi:15802
544cab3d
LC
28383msgid "Time to delay before replying to failed authentications. Defaults to @samp{\"2 secs\"}."
28384msgstr ""
28385
28386#. type: deftypevr
32747aa9 28387#: doc/guix.texi:15804
544cab3d
LC
28388#, no-wrap
28389msgid "{@code{dovecot-configuration} parameter} boolean auth-ssl-require-client-cert?"
28390msgstr ""
28391
28392#. type: deftypevr
32747aa9 28393#: doc/guix.texi:15808
544cab3d
LC
28394msgid "Require a valid SSL client certificate or the authentication fails. Defaults to @samp{#f}."
28395msgstr ""
28396
28397#. type: deftypevr
32747aa9 28398#: doc/guix.texi:15810
544cab3d
LC
28399#, no-wrap
28400msgid "{@code{dovecot-configuration} parameter} boolean auth-ssl-username-from-cert?"
28401msgstr ""
28402
28403#. type: deftypevr
32747aa9 28404#: doc/guix.texi:15815
544cab3d
LC
28405msgid "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}."
28406msgstr ""
28407
28408#. type: deftypevr
32747aa9 28409#: doc/guix.texi:15817
544cab3d
LC
28410#, no-wrap
28411msgid "{@code{dovecot-configuration} parameter} space-separated-string-list auth-mechanisms"
28412msgstr ""
28413
28414#. type: deftypevr
32747aa9 28415#: doc/guix.texi:15823
544cab3d
LC
28416msgid "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."
28417msgstr ""
28418
28419#. type: deftypevr
32747aa9 28420#: doc/guix.texi:15825
544cab3d
LC
28421#, no-wrap
28422msgid "{@code{dovecot-configuration} parameter} space-separated-string-list director-servers"
28423msgstr ""
28424
28425#. type: deftypevr
32747aa9 28426#: doc/guix.texi:15830
544cab3d
LC
28427msgid "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{()}."
28428msgstr ""
28429
28430#. type: deftypevr
32747aa9 28431#: doc/guix.texi:15832
544cab3d
LC
28432#, no-wrap
28433msgid "{@code{dovecot-configuration} parameter} space-separated-string-list director-mail-servers"
28434msgstr ""
28435
28436#. type: deftypevr
32747aa9 28437#: doc/guix.texi:15836
544cab3d
LC
28438msgid "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{()}."
28439msgstr ""
28440
28441#. type: deftypevr
32747aa9 28442#: doc/guix.texi:15838
544cab3d
LC
28443#, no-wrap
28444msgid "{@code{dovecot-configuration} parameter} string director-user-expire"
28445msgstr ""
28446
28447#. type: deftypevr
32747aa9 28448#: doc/guix.texi:15842
544cab3d
LC
28449msgid "How long to redirect users to a specific server after it no longer has any connections. Defaults to @samp{\"15 min\"}."
28450msgstr ""
28451
28452#. type: deftypevr
32747aa9 28453#: doc/guix.texi:15844
544cab3d
LC
28454#, no-wrap
28455msgid "{@code{dovecot-configuration} parameter} string director-username-hash"
28456msgstr ""
28457
28458#. type: deftypevr
32747aa9 28459#: doc/guix.texi:15849
544cab3d
LC
28460msgid "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\"}."
28461msgstr ""
28462
28463#. type: deftypevr
32747aa9 28464#: doc/guix.texi:15851
544cab3d
LC
28465#, no-wrap
28466msgid "{@code{dovecot-configuration} parameter} string log-path"
28467msgstr ""
28468
28469#. type: deftypevr
32747aa9 28470#: doc/guix.texi:15855
544cab3d
LC
28471msgid "Log file to use for error messages. @samp{syslog} logs to syslog, @samp{/dev/stderr} logs to stderr. Defaults to @samp{\"syslog\"}."
28472msgstr ""
28473
28474#. type: deftypevr
32747aa9 28475#: doc/guix.texi:15857
544cab3d
LC
28476#, no-wrap
28477msgid "{@code{dovecot-configuration} parameter} string info-log-path"
28478msgstr ""
28479
28480#. type: deftypevr
32747aa9 28481#: doc/guix.texi:15861
544cab3d
LC
28482msgid "Log file to use for informational messages. Defaults to @samp{log-path}. Defaults to @samp{\"\"}."
28483msgstr ""
28484
28485#. type: deftypevr
32747aa9 28486#: doc/guix.texi:15863
544cab3d
LC
28487#, no-wrap
28488msgid "{@code{dovecot-configuration} parameter} string debug-log-path"
28489msgstr ""
28490
28491#. type: deftypevr
32747aa9 28492#: doc/guix.texi:15867
544cab3d
LC
28493msgid "Log file to use for debug messages. Defaults to @samp{info-log-path}. Defaults to @samp{\"\"}."
28494msgstr ""
28495
28496#. type: deftypevr
32747aa9 28497#: doc/guix.texi:15869
544cab3d
LC
28498#, no-wrap
28499msgid "{@code{dovecot-configuration} parameter} string syslog-facility"
28500msgstr ""
28501
28502#. type: deftypevr
32747aa9 28503#: doc/guix.texi:15874
544cab3d
LC
28504msgid "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\"}."
28505msgstr ""
28506
28507#. type: deftypevr
32747aa9 28508#: doc/guix.texi:15876
544cab3d
LC
28509#, no-wrap
28510msgid "{@code{dovecot-configuration} parameter} boolean auth-verbose?"
28511msgstr ""
28512
28513#. type: deftypevr
32747aa9 28514#: doc/guix.texi:15880
544cab3d
LC
28515msgid "Log unsuccessful authentication attempts and the reasons why they failed. Defaults to @samp{#f}."
28516msgstr ""
28517
28518#. type: deftypevr
32747aa9 28519#: doc/guix.texi:15882
544cab3d 28520#, no-wrap
32747aa9 28521msgid "{@code{dovecot-configuration} parameter} string auth-verbose-passwords"
544cab3d
LC
28522msgstr ""
28523
28524#. type: deftypevr
32747aa9
LC
28525#: doc/guix.texi:15889
28526msgid "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\"}."
544cab3d
LC
28527msgstr ""
28528
28529#. type: deftypevr
32747aa9 28530#: doc/guix.texi:15891
544cab3d
LC
28531#, no-wrap
28532msgid "{@code{dovecot-configuration} parameter} boolean auth-debug?"
28533msgstr ""
28534
28535#. type: deftypevr
32747aa9 28536#: doc/guix.texi:15895
544cab3d
LC
28537msgid "Even more verbose logging for debugging purposes. Shows for example SQL queries. Defaults to @samp{#f}."
28538msgstr ""
28539
28540#. type: deftypevr
32747aa9 28541#: doc/guix.texi:15897
544cab3d
LC
28542#, no-wrap
28543msgid "{@code{dovecot-configuration} parameter} boolean auth-debug-passwords?"
28544msgstr ""
28545
28546#. type: deftypevr
32747aa9 28547#: doc/guix.texi:15902
544cab3d
LC
28548msgid "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}."
28549msgstr ""
28550
28551#. type: deftypevr
32747aa9 28552#: doc/guix.texi:15904
544cab3d
LC
28553#, no-wrap
28554msgid "{@code{dovecot-configuration} parameter} boolean mail-debug?"
28555msgstr ""
28556
28557#. type: deftypevr
32747aa9 28558#: doc/guix.texi:15908
544cab3d
LC
28559msgid "Enable mail process debugging. This can help you figure out why Dovecot isn't finding your mails. Defaults to @samp{#f}."
28560msgstr ""
28561
28562#. type: deftypevr
32747aa9 28563#: doc/guix.texi:15910
544cab3d
LC
28564#, no-wrap
28565msgid "{@code{dovecot-configuration} parameter} boolean verbose-ssl?"
28566msgstr ""
28567
28568#. type: deftypevr
32747aa9 28569#: doc/guix.texi:15913
544cab3d
LC
28570msgid "Show protocol level SSL errors. Defaults to @samp{#f}."
28571msgstr ""
28572
28573#. type: deftypevr
32747aa9 28574#: doc/guix.texi:15915
544cab3d
LC
28575#, no-wrap
28576msgid "{@code{dovecot-configuration} parameter} string log-timestamp"
28577msgstr ""
28578
28579#. type: deftypevr
32747aa9 28580#: doc/guix.texi:15919
544cab3d
LC
28581msgid "Prefix for each line written to log file. % codes are in strftime(3) format. Defaults to @samp{\"\\\"%b %d %H:%M:%S \\\"\"}."
28582msgstr ""
28583
28584#. type: deftypevr
32747aa9 28585#: doc/guix.texi:15921
544cab3d
LC
28586#, no-wrap
28587msgid "{@code{dovecot-configuration} parameter} space-separated-string-list login-log-format-elements"
28588msgstr ""
28589
28590#. type: deftypevr
32747aa9 28591#: doc/guix.texi:15925
544cab3d
LC
28592msgid "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."
28593msgstr ""
28594
28595#. type: deftypevr
32747aa9 28596#: doc/guix.texi:15927
544cab3d
LC
28597#, no-wrap
28598msgid "{@code{dovecot-configuration} parameter} string login-log-format"
28599msgstr ""
28600
28601#. type: deftypevr
32747aa9 28602#: doc/guix.texi:15931
544cab3d
LC
28603msgid "Login log format. %s contains @samp{login-log-format-elements} string, %$ contains the data we want to log. Defaults to @samp{\"%$: %s\"}."
28604msgstr ""
28605
28606#. type: deftypevr
32747aa9 28607#: doc/guix.texi:15933
544cab3d
LC
28608#, no-wrap
28609msgid "{@code{dovecot-configuration} parameter} string mail-log-prefix"
28610msgstr ""
28611
28612#. type: deftypevr
32747aa9 28613#: doc/guix.texi:15937
544cab3d
LC
28614msgid "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@}>: \\\"\"}."
28615msgstr ""
28616
28617#. type: deftypevr
32747aa9 28618#: doc/guix.texi:15939
544cab3d
LC
28619#, no-wrap
28620msgid "{@code{dovecot-configuration} parameter} string deliver-log-format"
28621msgstr ""
28622
28623#. type: deftypevr
32747aa9 28624#: doc/guix.texi:15941
544cab3d
LC
28625msgid "Format to use for logging mail deliveries. You can use variables:"
28626msgstr ""
28627
28628#. type: item
32747aa9 28629#: doc/guix.texi:15942
544cab3d
LC
28630#, no-wrap
28631msgid "%$"
28632msgstr ""
28633
28634#. type: table
32747aa9 28635#: doc/guix.texi:15944
544cab3d
LC
28636msgid "Delivery status message (e.g.@: @samp{saved to INBOX})"
28637msgstr ""
28638
28639#. type: item
32747aa9 28640#: doc/guix.texi:15944
544cab3d
LC
28641#, no-wrap
28642msgid "%m"
28643msgstr ""
28644
28645#. type: table
32747aa9 28646#: doc/guix.texi:15946
544cab3d
LC
28647msgid "Message-ID"
28648msgstr ""
28649
28650#. type: item
32747aa9 28651#: doc/guix.texi:15946 doc/guix.texi:16478
544cab3d
LC
28652#, no-wrap
28653msgid "%s"
28654msgstr ""
28655
28656#. type: table
32747aa9 28657#: doc/guix.texi:15948
544cab3d
LC
28658msgid "Subject"
28659msgstr ""
28660
28661#. type: item
32747aa9 28662#: doc/guix.texi:15948
544cab3d
LC
28663#, no-wrap
28664msgid "%f"
28665msgstr ""
28666
28667#. type: table
32747aa9 28668#: doc/guix.texi:15950
544cab3d
LC
28669msgid "From address"
28670msgstr ""
28671
28672#. type: table
32747aa9 28673#: doc/guix.texi:15952
544cab3d
LC
28674msgid "Physical size"
28675msgstr ""
28676
28677#. type: item
32747aa9 28678#: doc/guix.texi:15952
544cab3d
LC
28679#, no-wrap
28680msgid "%w"
28681msgstr ""
28682
28683#. type: table
32747aa9 28684#: doc/guix.texi:15954
544cab3d
LC
28685msgid "Virtual size."
28686msgstr ""
28687
28688#. type: deftypevr
32747aa9 28689#: doc/guix.texi:15956
544cab3d
LC
28690msgid "Defaults to @samp{\"msgid=%m: %$\"}."
28691msgstr ""
28692
28693#. type: deftypevr
32747aa9 28694#: doc/guix.texi:15958
544cab3d
LC
28695#, no-wrap
28696msgid "{@code{dovecot-configuration} parameter} string mail-location"
28697msgstr ""
28698
28699#. type: deftypevr
32747aa9 28700#: doc/guix.texi:15963
544cab3d
LC
28701msgid "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."
28702msgstr ""
28703
28704#. type: deftypevr
32747aa9 28705#: doc/guix.texi:15969
544cab3d
LC
28706msgid "If you're using mbox, giving a path to the INBOX file (e.g.@: /var/mail/%u) isn't enough. You'll also need to tell Dovecot where the other mailboxes are kept. This is called the \"root mail directory\", and it must be the first path given in the @samp{mail-location} setting."
28707msgstr ""
28708
28709#. type: deftypevr
32747aa9 28710#: doc/guix.texi:15971
544cab3d
LC
28711msgid "There are a few special variables you can use, eg.:"
28712msgstr ""
28713
28714#. type: table
32747aa9 28715#: doc/guix.texi:15975
544cab3d
LC
28716msgid "username"
28717msgstr ""
28718
28719#. type: item
32747aa9 28720#: doc/guix.texi:15975 doc/guix.texi:16474
544cab3d
LC
28721#, no-wrap
28722msgid "%n"
28723msgstr ""
28724
28725#. type: table
32747aa9 28726#: doc/guix.texi:15977
544cab3d
LC
28727msgid "user part in user@@domain, same as %u if there's no domain"
28728msgstr ""
28729
28730#. type: item
32747aa9 28731#: doc/guix.texi:15977
544cab3d
LC
28732#, no-wrap
28733msgid "%d"
28734msgstr ""
28735
28736#. type: table
32747aa9 28737#: doc/guix.texi:15979
544cab3d
LC
28738msgid "domain part in user@@domain, empty if there's no domain"
28739msgstr ""
28740
28741#. type: item
32747aa9 28742#: doc/guix.texi:15979
544cab3d
LC
28743#, no-wrap
28744msgid "%h"
28745msgstr ""
28746
28747#. type: table
32747aa9 28748#: doc/guix.texi:15981
544cab3d
LC
28749msgid "home director"
28750msgstr ""
28751
28752#. type: deftypevr
32747aa9 28753#: doc/guix.texi:15984
544cab3d
LC
28754msgid "See doc/wiki/Variables.txt for full list. Some examples:"
28755msgstr ""
28756
28757#. type: item
32747aa9 28758#: doc/guix.texi:15985
544cab3d
LC
28759#, no-wrap
28760msgid "maildir:~/Maildir"
28761msgstr ""
28762
28763#. type: item
32747aa9 28764#: doc/guix.texi:15986
544cab3d
LC
28765#, no-wrap
28766msgid "mbox:~/mail:INBOX=/var/mail/%u"
28767msgstr ""
28768
28769#. type: item
32747aa9 28770#: doc/guix.texi:15987
544cab3d
LC
28771#, no-wrap
28772msgid "mbox:/var/mail/%d/%1n/%n:INDEX=/var/indexes/%d/%1n/%"
28773msgstr ""
28774
28775#. type: deftypevr
32747aa9 28776#: doc/guix.texi:15992
544cab3d
LC
28777#, no-wrap
28778msgid "{@code{dovecot-configuration} parameter} string mail-uid"
28779msgstr ""
28780
28781#. type: deftypevr
32747aa9 28782#: doc/guix.texi:15997
544cab3d
LC
28783msgid "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{\"\"}."
28784msgstr ""
28785
28786#. type: deftypevr
32747aa9 28787#: doc/guix.texi:15999
544cab3d
LC
28788#, no-wrap
28789msgid "{@code{dovecot-configuration} parameter} string mail-gid"
28790msgstr ""
28791
28792#. type: deftypevr
32747aa9 28793#: doc/guix.texi:16004
544cab3d
LC
28794#, no-wrap
28795msgid "{@code{dovecot-configuration} parameter} string mail-privileged-group"
28796msgstr ""
28797
28798#. type: deftypevr
32747aa9 28799#: doc/guix.texi:16010
544cab3d
LC
28800msgid "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 \"mail\" to give access to /var/mail. Defaults to @samp{\"\"}."
28801msgstr ""
28802
28803#. type: deftypevr
32747aa9 28804#: doc/guix.texi:16012
544cab3d
LC
28805#, no-wrap
28806msgid "{@code{dovecot-configuration} parameter} string mail-access-groups"
28807msgstr ""
28808
28809#. type: deftypevr
32747aa9 28810#: doc/guix.texi:16020
544cab3d
LC
28811msgid "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 \"mail\" group is set here, ln -s /var/mail ~/mail/var could allow a user to delete others' mailboxes, or ln -s /secret/shared/box ~/mail/mybox would allow reading it). Defaults to @samp{\"\"}."
28812msgstr ""
28813
28814#. type: deftypevr
32747aa9 28815#: doc/guix.texi:16022
544cab3d
LC
28816#, no-wrap
28817msgid "{@code{dovecot-configuration} parameter} boolean mail-full-filesystem-access?"
28818msgstr ""
28819
28820#. type: deftypevr
32747aa9 28821#: doc/guix.texi:16028
544cab3d
LC
28822msgid "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.@: /path/ or ~user/. Defaults to @samp{#f}."
28823msgstr ""
28824
28825#. type: deftypevr
32747aa9 28826#: doc/guix.texi:16030
544cab3d
LC
28827#, no-wrap
28828msgid "{@code{dovecot-configuration} parameter} boolean mmap-disable?"
28829msgstr ""
28830
28831#. type: deftypevr
32747aa9 28832#: doc/guix.texi:16034
544cab3d
LC
28833msgid "Don't use mmap() at all. This is required if you store indexes to shared file systems (NFS or clustered file system). Defaults to @samp{#f}."
28834msgstr ""
28835
28836#. type: deftypevr
32747aa9 28837#: doc/guix.texi:16036
544cab3d
LC
28838#, no-wrap
28839msgid "{@code{dovecot-configuration} parameter} boolean dotlock-use-excl?"
28840msgstr ""
28841
28842#. type: deftypevr
32747aa9 28843#: doc/guix.texi:16041
544cab3d
LC
28844msgid "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}."
28845msgstr ""
28846
28847#. type: deftypevr
32747aa9 28848#: doc/guix.texi:16043
544cab3d
LC
28849#, no-wrap
28850msgid "{@code{dovecot-configuration} parameter} string mail-fsync"
28851msgstr ""
28852
28853#. type: deftypevr
32747aa9 28854#: doc/guix.texi:16045
544cab3d
LC
28855msgid "When to use fsync() or fdatasync() calls:"
28856msgstr ""
28857
28858#. type: item
32747aa9 28859#: doc/guix.texi:16046
544cab3d
LC
28860#, no-wrap
28861msgid "optimized"
28862msgstr ""
28863
28864#. type: table
32747aa9 28865#: doc/guix.texi:16048
544cab3d
LC
28866msgid "Whenever necessary to avoid losing important data"
28867msgstr ""
28868
28869#. type: table
32747aa9 28870#: doc/guix.texi:16050
544cab3d
LC
28871msgid "Useful with e.g.@: NFS when write()s are delayed"
28872msgstr ""
28873
28874#. type: table
32747aa9 28875#: doc/guix.texi:16052
544cab3d
LC
28876msgid "Never use it (best performance, but crashes can lose data)."
28877msgstr ""
28878
28879#. type: deftypevr
32747aa9 28880#: doc/guix.texi:16054
544cab3d
LC
28881msgid "Defaults to @samp{\"optimized\"}."
28882msgstr ""
28883
28884#. type: deftypevr
32747aa9 28885#: doc/guix.texi:16056
544cab3d
LC
28886#, no-wrap
28887msgid "{@code{dovecot-configuration} parameter} boolean mail-nfs-storage?"
28888msgstr ""
28889
28890#. type: deftypevr
32747aa9 28891#: doc/guix.texi:16061
544cab3d
LC
28892msgid "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}."
28893msgstr ""
28894
28895#. type: deftypevr
32747aa9 28896#: doc/guix.texi:16063
544cab3d
LC
28897#, no-wrap
28898msgid "{@code{dovecot-configuration} parameter} boolean mail-nfs-index?"
28899msgstr ""
28900
28901#. type: deftypevr
32747aa9 28902#: doc/guix.texi:16067
544cab3d
LC
28903msgid "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}."
28904msgstr ""
28905
28906#. type: deftypevr
32747aa9 28907#: doc/guix.texi:16069
544cab3d
LC
28908#, no-wrap
28909msgid "{@code{dovecot-configuration} parameter} string lock-method"
28910msgstr ""
28911
28912#. type: deftypevr
32747aa9 28913#: doc/guix.texi:16075
544cab3d
LC
28914msgid "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\"}."
28915msgstr ""
28916
28917#. type: deftypevr
32747aa9 28918#: doc/guix.texi:16077
544cab3d
LC
28919#, no-wrap
28920msgid "{@code{dovecot-configuration} parameter} file-name mail-temp-dir"
28921msgstr ""
28922
28923#. type: deftypevr
32747aa9 28924#: doc/guix.texi:16081
544cab3d
LC
28925msgid "Directory in which LDA/LMTP temporarily stores incoming mails >128 kB. Defaults to @samp{\"/tmp\"}."
28926msgstr ""
28927
28928#. type: deftypevr
32747aa9 28929#: doc/guix.texi:16083
544cab3d
LC
28930#, no-wrap
28931msgid "{@code{dovecot-configuration} parameter} non-negative-integer first-valid-uid"
28932msgstr ""
28933
28934#. type: deftypevr
32747aa9 28935#: doc/guix.texi:16089
544cab3d
LC
28936msgid "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}."
28937msgstr ""
28938
28939#. type: deftypevr
32747aa9 28940#: doc/guix.texi:16091
544cab3d
LC
28941#, no-wrap
28942msgid "{@code{dovecot-configuration} parameter} non-negative-integer last-valid-uid"
28943msgstr ""
28944
28945#. type: deftypevr
32747aa9 28946#: doc/guix.texi:16096
544cab3d
LC
28947#, no-wrap
28948msgid "{@code{dovecot-configuration} parameter} non-negative-integer first-valid-gid"
28949msgstr ""
28950
28951#. type: deftypevr
32747aa9 28952#: doc/guix.texi:16101
544cab3d
LC
28953msgid "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}."
28954msgstr ""
28955
28956#. type: deftypevr
32747aa9 28957#: doc/guix.texi:16103
544cab3d
LC
28958#, no-wrap
28959msgid "{@code{dovecot-configuration} parameter} non-negative-integer last-valid-gid"
28960msgstr ""
28961
28962#. type: deftypevr
32747aa9 28963#: doc/guix.texi:16108
544cab3d
LC
28964#, no-wrap
28965msgid "{@code{dovecot-configuration} parameter} non-negative-integer mail-max-keyword-length"
28966msgstr ""
28967
28968#. type: deftypevr
32747aa9 28969#: doc/guix.texi:16112
544cab3d
LC
28970msgid "Maximum allowed length for mail keyword name. It's only forced when trying to create new keywords. Defaults to @samp{50}."
28971msgstr ""
28972
28973#. type: deftypevr
32747aa9 28974#: doc/guix.texi:16114
544cab3d
LC
28975#, no-wrap
28976msgid "{@code{dovecot-configuration} parameter} colon-separated-file-name-list valid-chroot-dirs"
28977msgstr ""
28978
28979#. type: deftypevr
32747aa9 28980#: doc/guix.texi:16124
544cab3d
LC
28981msgid "List of directories under which chrooting is allowed for mail processes (i.e.@: /var/mail will allow chrooting to /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, \"/./\" 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{()}."
28982msgstr ""
28983
28984#. type: deftypevr
32747aa9 28985#: doc/guix.texi:16126
544cab3d
LC
28986#, no-wrap
28987msgid "{@code{dovecot-configuration} parameter} string mail-chroot"
28988msgstr ""
28989
28990#. type: deftypevr
32747aa9 28991#: doc/guix.texi:16135
544cab3d
LC
28992msgid "Default chroot directory for mail processes. This can be overridden for specific users in user database by giving /./ in user's home directory (e.g.@: /home/./user chroots into /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 \"/.\"@: to @samp{mail-chroot}. <doc/wiki/Chrooting.txt>. Defaults to @samp{\"\"}."
28993msgstr ""
28994
28995#. type: deftypevr
32747aa9 28996#: doc/guix.texi:16137
544cab3d
LC
28997#, no-wrap
28998msgid "{@code{dovecot-configuration} parameter} file-name auth-socket-path"
28999msgstr ""
29000
29001#. type: deftypevr
32747aa9 29002#: doc/guix.texi:16141
544cab3d
LC
29003msgid "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\"}."
29004msgstr ""
29005
29006#. type: deftypevr
32747aa9 29007#: doc/guix.texi:16143
544cab3d
LC
29008#, no-wrap
29009msgid "{@code{dovecot-configuration} parameter} file-name mail-plugin-dir"
29010msgstr ""
29011
29012#. type: deftypevr
32747aa9 29013#: doc/guix.texi:16146
544cab3d
LC
29014msgid "Directory where to look up mail plugins. Defaults to @samp{\"/usr/lib/dovecot\"}."
29015msgstr ""
29016
29017#. type: deftypevr
32747aa9 29018#: doc/guix.texi:16148
544cab3d
LC
29019#, no-wrap
29020msgid "{@code{dovecot-configuration} parameter} space-separated-string-list mail-plugins"
29021msgstr ""
29022
29023#. type: deftypevr
32747aa9 29024#: doc/guix.texi:16152
544cab3d
LC
29025msgid "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{()}."
29026msgstr ""
29027
29028#. type: deftypevr
32747aa9 29029#: doc/guix.texi:16154
544cab3d
LC
29030#, no-wrap
29031msgid "{@code{dovecot-configuration} parameter} non-negative-integer mail-cache-min-mail-count"
29032msgstr ""
29033
29034#. type: deftypevr
32747aa9 29035#: doc/guix.texi:16159
544cab3d
LC
29036msgid "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}."
29037msgstr ""
29038
29039#. type: deftypevr
32747aa9 29040#: doc/guix.texi:16161
544cab3d
LC
29041#, no-wrap
29042msgid "{@code{dovecot-configuration} parameter} string mailbox-idle-check-interval"
29043msgstr ""
29044
29045#. type: deftypevr
32747aa9 29046#: doc/guix.texi:16168
544cab3d
LC
29047msgid "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\"}."
29048msgstr ""
29049
29050#. type: deftypevr
32747aa9 29051#: doc/guix.texi:16170
544cab3d
LC
29052#, no-wrap
29053msgid "{@code{dovecot-configuration} parameter} boolean mail-save-crlf?"
29054msgstr ""
29055
29056#. type: deftypevr
32747aa9 29057#: doc/guix.texi:16177
544cab3d
LC
29058msgid "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}."
29059msgstr ""
29060
29061#. type: deftypevr
32747aa9 29062#: doc/guix.texi:16179
544cab3d
LC
29063#, no-wrap
29064msgid "{@code{dovecot-configuration} parameter} boolean maildir-stat-dirs?"
29065msgstr ""
29066
29067#. type: deftypevr
32747aa9 29068#: doc/guix.texi:16187
544cab3d
LC
29069msgid "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}."
29070msgstr ""
29071
29072#. type: deftypevr
32747aa9 29073#: doc/guix.texi:16189
544cab3d
LC
29074#, no-wrap
29075msgid "{@code{dovecot-configuration} parameter} boolean maildir-copy-with-hardlinks?"
29076msgstr ""
29077
29078#. type: deftypevr
32747aa9 29079#: doc/guix.texi:16194
544cab3d
LC
29080msgid "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}."
29081msgstr ""
29082
29083#. type: deftypevr
32747aa9 29084#: doc/guix.texi:16196
544cab3d
LC
29085#, no-wrap
29086msgid "{@code{dovecot-configuration} parameter} boolean maildir-very-dirty-syncs?"
29087msgstr ""
29088
29089#. type: deftypevr
32747aa9 29090#: doc/guix.texi:16201
544cab3d
LC
29091msgid "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}."
29092msgstr ""
29093
29094#. type: deftypevr
32747aa9 29095#: doc/guix.texi:16203
544cab3d
LC
29096#, no-wrap
29097msgid "{@code{dovecot-configuration} parameter} space-separated-string-list mbox-read-locks"
29098msgstr ""
29099
29100#. type: deftypevr
32747aa9 29101#: doc/guix.texi:16206
544cab3d
LC
29102msgid "Which locking methods to use for locking mbox. There are four available:"
29103msgstr ""
29104
29105#. type: item
32747aa9 29106#: doc/guix.texi:16208
544cab3d
LC
29107#, no-wrap
29108msgid "dotlock"
29109msgstr ""
29110
29111#. type: table
32747aa9 29112#: doc/guix.texi:16212
544cab3d
LC
29113msgid "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."
29114msgstr ""
29115
29116#. type: item
32747aa9 29117#: doc/guix.texi:16212
544cab3d
LC
29118#, no-wrap
29119msgid "dotlock-try"
29120msgstr ""
29121
29122#. type: table
32747aa9 29123#: doc/guix.texi:16215
544cab3d
LC
29124msgid "Same as dotlock, but if it fails because of permissions or because there isn't enough disk space, just skip it."
29125msgstr ""
29126
29127#. type: item
32747aa9 29128#: doc/guix.texi:16215
544cab3d
LC
29129#, no-wrap
29130msgid "fcntl"
29131msgstr ""
29132
29133#. type: table
32747aa9 29134#: doc/guix.texi:16217
544cab3d
LC
29135msgid "Use this if possible. Works with NFS too if lockd is used."
29136msgstr ""
29137
29138#. type: item
32747aa9 29139#: doc/guix.texi:16217
544cab3d
LC
29140#, no-wrap
29141msgid "flock"
29142msgstr ""
29143
29144#. type: table
32747aa9 29145#: doc/guix.texi:16219 doc/guix.texi:16221
544cab3d
LC
29146msgid "May not exist in all systems. Doesn't work with NFS."
29147msgstr ""
29148
29149#. type: item
32747aa9 29150#: doc/guix.texi:16219
544cab3d
LC
29151#, no-wrap
29152msgid "lockf"
29153msgstr ""
29154
29155#. type: deftypevr
32747aa9 29156#: doc/guix.texi:16227
544cab3d
LC
29157msgid "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."
29158msgstr ""
29159
29160#. type: deftypevr
32747aa9 29161#: doc/guix.texi:16229
544cab3d
LC
29162#, no-wrap
29163msgid "{@code{dovecot-configuration} parameter} space-separated-string-list mbox-write-locks"
29164msgstr ""
29165
29166#. type: deftypevr
32747aa9 29167#: doc/guix.texi:16233
544cab3d
LC
29168#, no-wrap
29169msgid "{@code{dovecot-configuration} parameter} string mbox-lock-timeout"
29170msgstr ""
29171
29172#. type: deftypevr
32747aa9 29173#: doc/guix.texi:16236
544cab3d
LC
29174msgid "Maximum time to wait for lock (all of them) before aborting. Defaults to @samp{\"5 mins\"}."
29175msgstr ""
29176
29177#. type: deftypevr
32747aa9 29178#: doc/guix.texi:16238
544cab3d
LC
29179#, no-wrap
29180msgid "{@code{dovecot-configuration} parameter} string mbox-dotlock-change-timeout"
29181msgstr ""
29182
29183#. type: deftypevr
32747aa9 29184#: doc/guix.texi:16242
544cab3d
LC
29185msgid "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\"}."
29186msgstr ""
29187
29188#. type: deftypevr
32747aa9 29189#: doc/guix.texi:16244
544cab3d
LC
29190#, no-wrap
29191msgid "{@code{dovecot-configuration} parameter} boolean mbox-dirty-syncs?"
29192msgstr ""
29193
29194#. type: deftypevr
32747aa9 29195#: doc/guix.texi:16255
544cab3d
LC
29196msgid "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}."
29197msgstr ""
29198
29199#. type: deftypevr
32747aa9 29200#: doc/guix.texi:16257
544cab3d
LC
29201#, no-wrap
29202msgid "{@code{dovecot-configuration} parameter} boolean mbox-very-dirty-syncs?"
29203msgstr ""
29204
29205#. type: deftypevr
32747aa9 29206#: doc/guix.texi:16262
544cab3d
LC
29207msgid "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}."
29208msgstr ""
29209
29210#. type: deftypevr
32747aa9 29211#: doc/guix.texi:16264
544cab3d
LC
29212#, no-wrap
29213msgid "{@code{dovecot-configuration} parameter} boolean mbox-lazy-writes?"
29214msgstr ""
29215
29216#. type: deftypevr
32747aa9 29217#: doc/guix.texi:16270
544cab3d
LC
29218msgid "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}."
29219msgstr ""
29220
29221#. type: deftypevr
32747aa9 29222#: doc/guix.texi:16272
544cab3d
LC
29223#, no-wrap
29224msgid "{@code{dovecot-configuration} parameter} non-negative-integer mbox-min-index-size"
29225msgstr ""
29226
29227#. type: deftypevr
32747aa9 29228#: doc/guix.texi:16277
544cab3d
LC
29229msgid "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}."
29230msgstr ""
29231
29232#. type: deftypevr
32747aa9 29233#: doc/guix.texi:16279
544cab3d
LC
29234#, no-wrap
29235msgid "{@code{dovecot-configuration} parameter} non-negative-integer mdbox-rotate-size"
29236msgstr ""
29237
29238#. type: deftypevr
32747aa9 29239#: doc/guix.texi:16282
544cab3d
LC
29240msgid "Maximum dbox file size until it's rotated. Defaults to @samp{10000000}."
29241msgstr ""
29242
29243#. type: deftypevr
32747aa9 29244#: doc/guix.texi:16284
544cab3d
LC
29245#, no-wrap
29246msgid "{@code{dovecot-configuration} parameter} string mdbox-rotate-interval"
29247msgstr ""
29248
29249#. type: deftypevr
32747aa9 29250#: doc/guix.texi:16289
544cab3d
LC
29251msgid "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\"}."
29252msgstr ""
29253
29254#. type: deftypevr
32747aa9 29255#: doc/guix.texi:16291
544cab3d
LC
29256#, no-wrap
29257msgid "{@code{dovecot-configuration} parameter} boolean mdbox-preallocate-space?"
29258msgstr ""
29259
29260#. type: deftypevr
32747aa9 29261#: doc/guix.texi:16296
544cab3d
LC
29262msgid "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}."
29263msgstr ""
29264
29265#. type: deftypevr
32747aa9 29266#: doc/guix.texi:16298
544cab3d
LC
29267#, no-wrap
29268msgid "{@code{dovecot-configuration} parameter} string mail-attachment-dir"
29269msgstr ""
29270
29271#. type: deftypevr
32747aa9 29272#: doc/guix.texi:16302
544cab3d
LC
29273msgid "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."
29274msgstr ""
29275
29276#. type: deftypevr
32747aa9 29277#: doc/guix.texi:16304
544cab3d
LC
29278msgid "WARNING: This feature hasn't been tested much yet. Use at your own risk."
29279msgstr ""
29280
29281#. type: deftypevr
32747aa9 29282#: doc/guix.texi:16307
544cab3d
LC
29283msgid "Directory root where to store mail attachments. Disabled, if empty. Defaults to @samp{\"\"}."
29284msgstr ""
29285
29286#. type: deftypevr
32747aa9 29287#: doc/guix.texi:16309
544cab3d
LC
29288#, no-wrap
29289msgid "{@code{dovecot-configuration} parameter} non-negative-integer mail-attachment-min-size"
29290msgstr ""
29291
29292#. type: deftypevr
32747aa9 29293#: doc/guix.texi:16314
544cab3d
LC
29294msgid "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}."
29295msgstr ""
29296
29297#. type: deftypevr
32747aa9 29298#: doc/guix.texi:16316
544cab3d
LC
29299#, no-wrap
29300msgid "{@code{dovecot-configuration} parameter} string mail-attachment-fs"
29301msgstr ""
29302
29303#. type: deftypevr
32747aa9 29304#: doc/guix.texi:16318
544cab3d
LC
29305msgid "File system backend to use for saving attachments:"
29306msgstr ""
29307
29308#. type: item
32747aa9 29309#: doc/guix.texi:16319
544cab3d
LC
29310#, no-wrap
29311msgid "posix"
29312msgstr ""
29313
29314#. type: table
32747aa9 29315#: doc/guix.texi:16321
544cab3d
LC
29316msgid "No SiS done by Dovecot (but this might help FS's own deduplication)"
29317msgstr ""
29318
29319#. type: item
32747aa9 29320#: doc/guix.texi:16321
544cab3d
LC
29321#, no-wrap
29322msgid "sis posix"
29323msgstr ""
29324
29325#. type: table
32747aa9 29326#: doc/guix.texi:16323
544cab3d
LC
29327msgid "SiS with immediate byte-by-byte comparison during saving"
29328msgstr ""
29329
29330#. type: item
32747aa9 29331#: doc/guix.texi:16323
544cab3d
LC
29332#, no-wrap
29333msgid "sis-queue posix"
29334msgstr ""
29335
29336#. type: table
32747aa9 29337#: doc/guix.texi:16325
544cab3d
LC
29338msgid "SiS with delayed comparison and deduplication."
29339msgstr ""
29340
29341#. type: deftypevr
32747aa9 29342#: doc/guix.texi:16327
544cab3d
LC
29343msgid "Defaults to @samp{\"sis posix\"}."
29344msgstr ""
29345
29346#. type: deftypevr
32747aa9 29347#: doc/guix.texi:16329
544cab3d
LC
29348#, no-wrap
29349msgid "{@code{dovecot-configuration} parameter} string mail-attachment-hash"
29350msgstr ""
29351
29352#. type: deftypevr
32747aa9 29353#: doc/guix.texi:16335
544cab3d
LC
29354msgid "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@}\"}."
29355msgstr ""
29356
29357#. type: deftypevr
32747aa9 29358#: doc/guix.texi:16337
544cab3d
LC
29359#, no-wrap
29360msgid "{@code{dovecot-configuration} parameter} non-negative-integer default-process-limit"
29361msgstr ""
29362
29363#. type: deftypevr
32747aa9 29364#: doc/guix.texi:16342
544cab3d
LC
29365#, no-wrap
29366msgid "{@code{dovecot-configuration} parameter} non-negative-integer default-client-limit"
29367msgstr ""
29368
29369#. type: deftypevr
32747aa9 29370#: doc/guix.texi:16345 doc/guix.texi:21610
544cab3d
LC
29371msgid "Defaults to @samp{1000}."
29372msgstr ""
29373
29374#. type: deftypevr
32747aa9 29375#: doc/guix.texi:16347
544cab3d
LC
29376#, no-wrap
29377msgid "{@code{dovecot-configuration} parameter} non-negative-integer default-vsz-limit"
29378msgstr ""
29379
29380#. type: deftypevr
32747aa9 29381#: doc/guix.texi:16352
544cab3d
LC
29382msgid "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}."
29383msgstr ""
29384
29385#. type: deftypevr
32747aa9 29386#: doc/guix.texi:16354
544cab3d
LC
29387#, no-wrap
29388msgid "{@code{dovecot-configuration} parameter} string default-login-user"
29389msgstr ""
29390
29391#. type: deftypevr
32747aa9 29392#: doc/guix.texi:16359
544cab3d
LC
29393msgid "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\"}."
29394msgstr ""
29395
29396#. type: deftypevr
32747aa9 29397#: doc/guix.texi:16361
544cab3d
LC
29398#, no-wrap
29399msgid "{@code{dovecot-configuration} parameter} string default-internal-user"
29400msgstr ""
29401
29402#. type: deftypevr
32747aa9 29403#: doc/guix.texi:16366
544cab3d
LC
29404msgid "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\"}."
29405msgstr ""
29406
29407#. type: deftypevr
32747aa9 29408#: doc/guix.texi:16368
544cab3d
LC
29409#, no-wrap
29410msgid "{@code{dovecot-configuration} parameter} string ssl?"
29411msgstr ""
29412
29413#. type: deftypevr
32747aa9 29414#: doc/guix.texi:16371
544cab3d
LC
29415msgid "SSL/TLS support: yes, no, required. <doc/wiki/SSL.txt>. Defaults to @samp{\"required\"}."
29416msgstr ""
29417
29418#. type: deftypevr
32747aa9 29419#: doc/guix.texi:16373
544cab3d
LC
29420#, no-wrap
29421msgid "{@code{dovecot-configuration} parameter} string ssl-cert"
29422msgstr ""
29423
29424#. type: deftypevr
32747aa9 29425#: doc/guix.texi:16376
544cab3d
LC
29426msgid "PEM encoded X.509 SSL/TLS certificate (public key). Defaults to @samp{\"</etc/dovecot/default.pem\"}."
29427msgstr ""
29428
29429#. type: deftypevr
32747aa9 29430#: doc/guix.texi:16378
544cab3d
LC
29431#, no-wrap
29432msgid "{@code{dovecot-configuration} parameter} string ssl-key"
29433msgstr ""
29434
29435#. type: deftypevr
32747aa9 29436#: doc/guix.texi:16383
544cab3d
LC
29437msgid "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\"}."
29438msgstr ""
29439
29440#. type: deftypevr
32747aa9 29441#: doc/guix.texi:16385
544cab3d
LC
29442#, no-wrap
29443msgid "{@code{dovecot-configuration} parameter} string ssl-key-password"
29444msgstr ""
29445
29446#. type: deftypevr
32747aa9 29447#: doc/guix.texi:16391
544cab3d
LC
29448msgid "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{\"\"}."
29449msgstr ""
29450
29451#. type: deftypevr
32747aa9 29452#: doc/guix.texi:16393
544cab3d
LC
29453#, no-wrap
29454msgid "{@code{dovecot-configuration} parameter} string ssl-ca"
29455msgstr ""
29456
29457#. type: deftypevr
32747aa9 29458#: doc/guix.texi:16399
544cab3d
LC
29459msgid "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{\"\"}."
29460msgstr ""
29461
29462#. type: deftypevr
32747aa9 29463#: doc/guix.texi:16401
544cab3d
LC
29464#, no-wrap
29465msgid "{@code{dovecot-configuration} parameter} boolean ssl-require-crl?"
29466msgstr ""
29467
29468#. type: deftypevr
32747aa9 29469#: doc/guix.texi:16404
544cab3d
LC
29470msgid "Require that CRL check succeeds for client certificates. Defaults to @samp{#t}."
29471msgstr ""
29472
29473#. type: deftypevr
32747aa9 29474#: doc/guix.texi:16406
544cab3d
LC
29475#, no-wrap
29476msgid "{@code{dovecot-configuration} parameter} boolean ssl-verify-client-cert?"
29477msgstr ""
29478
29479#. type: deftypevr
32747aa9 29480#: doc/guix.texi:16410
544cab3d
LC
29481msgid "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}."
29482msgstr ""
29483
29484#. type: deftypevr
32747aa9 29485#: doc/guix.texi:16412
544cab3d
LC
29486#, no-wrap
29487msgid "{@code{dovecot-configuration} parameter} string ssl-cert-username-field"
29488msgstr ""
29489
29490#. type: deftypevr
32747aa9 29491#: doc/guix.texi:16417
544cab3d
LC
29492msgid "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\"}."
29493msgstr ""
29494
29495#. type: deftypevr
32747aa9 29496#: doc/guix.texi:16419
544cab3d
LC
29497#, no-wrap
29498msgid "{@code{dovecot-configuration} parameter} string ssl-min-protocol"
29499msgstr ""
29500
29501#. type: deftypevr
32747aa9 29502#: doc/guix.texi:16422
544cab3d
LC
29503msgid "Minimum SSL protocol version to accept. Defaults to @samp{\"TLSv1\"}."
29504msgstr ""
29505
29506#. type: deftypevr
32747aa9 29507#: doc/guix.texi:16424
544cab3d
LC
29508#, no-wrap
29509msgid "{@code{dovecot-configuration} parameter} string ssl-cipher-list"
29510msgstr ""
29511
29512#. type: deftypevr
32747aa9 29513#: doc/guix.texi:16427
544cab3d
LC
29514msgid "SSL ciphers to use. Defaults to @samp{\"ALL:!kRSA:!SRP:!kDHd:!DSS:!aNULL:!eNULL:!EXPORT:!DES:!3DES:!MD5:!PSK:!RC4:!ADH:!LOW@@STRENGTH\"}."
29515msgstr ""
29516
29517#. type: deftypevr
32747aa9 29518#: doc/guix.texi:16429
544cab3d
LC
29519#, no-wrap
29520msgid "{@code{dovecot-configuration} parameter} string ssl-crypto-device"
29521msgstr ""
29522
29523#. type: deftypevr
32747aa9 29524#: doc/guix.texi:16432
544cab3d
LC
29525msgid "SSL crypto device to use, for valid values run \"openssl engine\". Defaults to @samp{\"\"}."
29526msgstr ""
29527
29528#. type: deftypevr
32747aa9 29529#: doc/guix.texi:16434
544cab3d
LC
29530#, no-wrap
29531msgid "{@code{dovecot-configuration} parameter} string postmaster-address"
29532msgstr ""
29533
29534#. type: deftypevr
32747aa9 29535#: doc/guix.texi:16438
544cab3d
LC
29536msgid "Address to use when sending rejection mails. %d expands to recipient domain. Defaults to @samp{\"postmaster@@%d\"}."
29537msgstr ""
29538
29539#. type: deftypevr
32747aa9 29540#: doc/guix.texi:16440
544cab3d
LC
29541#, no-wrap
29542msgid "{@code{dovecot-configuration} parameter} string hostname"
29543msgstr ""
29544
29545#. type: deftypevr
32747aa9 29546#: doc/guix.texi:16444
544cab3d
LC
29547msgid "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{\"\"}."
29548msgstr ""
29549
29550#. type: deftypevr
32747aa9 29551#: doc/guix.texi:16446
544cab3d
LC
29552#, no-wrap
29553msgid "{@code{dovecot-configuration} parameter} boolean quota-full-tempfail?"
29554msgstr ""
29555
29556#. type: deftypevr
32747aa9 29557#: doc/guix.texi:16450
544cab3d
LC
29558msgid "If user is over quota, return with temporary failure instead of bouncing the mail. Defaults to @samp{#f}."
29559msgstr ""
29560
29561#. type: deftypevr
32747aa9 29562#: doc/guix.texi:16452
544cab3d
LC
29563#, no-wrap
29564msgid "{@code{dovecot-configuration} parameter} file-name sendmail-path"
29565msgstr ""
29566
29567#. type: deftypevr
32747aa9 29568#: doc/guix.texi:16455
544cab3d
LC
29569msgid "Binary to use for sending mails. Defaults to @samp{\"/usr/sbin/sendmail\"}."
29570msgstr ""
29571
29572#. type: deftypevr
32747aa9 29573#: doc/guix.texi:16457
544cab3d
LC
29574#, no-wrap
29575msgid "{@code{dovecot-configuration} parameter} string submission-host"
29576msgstr ""
29577
29578#. type: deftypevr
32747aa9 29579#: doc/guix.texi:16461
544cab3d
LC
29580msgid "If non-empty, send mails via this SMTP host[:port] instead of sendmail. Defaults to @samp{\"\"}."
29581msgstr ""
29582
29583#. type: deftypevr
32747aa9 29584#: doc/guix.texi:16463
544cab3d
LC
29585#, no-wrap
29586msgid "{@code{dovecot-configuration} parameter} string rejection-subject"
29587msgstr ""
29588
29589#. type: deftypevr
32747aa9 29590#: doc/guix.texi:16467
544cab3d
LC
29591msgid "Subject: header to use for rejection mails. You can use the same variables as for @samp{rejection-reason} below. Defaults to @samp{\"Rejected: %s\"}."
29592msgstr ""
29593
29594#. type: deftypevr
32747aa9 29595#: doc/guix.texi:16469
544cab3d
LC
29596#, no-wrap
29597msgid "{@code{dovecot-configuration} parameter} string rejection-reason"
29598msgstr ""
29599
29600#. type: deftypevr
32747aa9 29601#: doc/guix.texi:16472
544cab3d
LC
29602msgid "Human readable error message for rejection mails. You can use variables:"
29603msgstr ""
29604
29605#. type: table
32747aa9 29606#: doc/guix.texi:16476
544cab3d
LC
29607msgid "CRLF"
29608msgstr ""
29609
29610#. type: item
32747aa9 29611#: doc/guix.texi:16476
544cab3d
LC
29612#, no-wrap
29613msgid "%r"
29614msgstr ""
29615
29616#. type: table
32747aa9 29617#: doc/guix.texi:16478
544cab3d
LC
29618msgid "reason"
29619msgstr ""
29620
29621#. type: table
32747aa9 29622#: doc/guix.texi:16480
544cab3d
LC
29623msgid "original subject"
29624msgstr ""
29625
29626#. type: item
32747aa9 29627#: doc/guix.texi:16480
544cab3d
LC
29628#, no-wrap
29629msgid "%t"
29630msgstr ""
29631
29632#. type: table
32747aa9 29633#: doc/guix.texi:16482
544cab3d
LC
29634msgid "recipient"
29635msgstr ""
29636
29637#. type: deftypevr
32747aa9 29638#: doc/guix.texi:16484
544cab3d
LC
29639msgid "Defaults to @samp{\"Your message to <%t> was automatically rejected:%n%r\"}."
29640msgstr ""
29641
29642#. type: deftypevr
32747aa9 29643#: doc/guix.texi:16486
544cab3d
LC
29644#, no-wrap
29645msgid "{@code{dovecot-configuration} parameter} string recipient-delimiter"
29646msgstr ""
29647
29648#. type: deftypevr
32747aa9 29649#: doc/guix.texi:16490
544cab3d
LC
29650msgid "Delimiter character between local-part and detail in email address. Defaults to @samp{\"+\"}."
29651msgstr ""
29652
29653#. type: deftypevr
32747aa9 29654#: doc/guix.texi:16492
544cab3d
LC
29655#, no-wrap
29656msgid "{@code{dovecot-configuration} parameter} string lda-original-recipient-header"
29657msgstr ""
29658
29659#. type: deftypevr
32747aa9 29660#: doc/guix.texi:16498
544cab3d
LC
29661msgid "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{\"\"}."
29662msgstr ""
29663
29664#. type: deftypevr
32747aa9 29665#: doc/guix.texi:16500
544cab3d
LC
29666#, no-wrap
29667msgid "{@code{dovecot-configuration} parameter} boolean lda-mailbox-autocreate?"
29668msgstr ""
29669
29670#. type: deftypevr
32747aa9 29671#: doc/guix.texi:16504
544cab3d
LC
29672msgid "Should saving a mail to a nonexistent mailbox automatically create it?. Defaults to @samp{#f}."
29673msgstr ""
29674
29675#. type: deftypevr
32747aa9 29676#: doc/guix.texi:16506
544cab3d
LC
29677#, no-wrap
29678msgid "{@code{dovecot-configuration} parameter} boolean lda-mailbox-autosubscribe?"
29679msgstr ""
29680
29681#. type: deftypevr
32747aa9 29682#: doc/guix.texi:16510
544cab3d
LC
29683msgid "Should automatically created mailboxes be also automatically subscribed?. Defaults to @samp{#f}."
29684msgstr ""
29685
29686#. type: deftypevr
32747aa9 29687#: doc/guix.texi:16512
544cab3d
LC
29688#, no-wrap
29689msgid "{@code{dovecot-configuration} parameter} non-negative-integer imap-max-line-length"
29690msgstr ""
29691
29692#. type: deftypevr
32747aa9 29693#: doc/guix.texi:16518
544cab3d
LC
29694msgid "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}."
29695msgstr ""
29696
29697#. type: deftypevr
32747aa9 29698#: doc/guix.texi:16520
544cab3d
LC
29699#, no-wrap
29700msgid "{@code{dovecot-configuration} parameter} string imap-logout-format"
29701msgstr ""
29702
29703#. type: deftypevr
32747aa9 29704#: doc/guix.texi:16522
544cab3d
LC
29705msgid "IMAP logout format string:"
29706msgstr ""
29707
29708#. type: item
32747aa9 29709#: doc/guix.texi:16523
544cab3d
LC
29710#, no-wrap
29711msgid "%i"
29712msgstr ""
29713
29714#. type: table
32747aa9 29715#: doc/guix.texi:16525
544cab3d
LC
29716msgid "total number of bytes read from client"
29717msgstr ""
29718
29719#. type: item
32747aa9 29720#: doc/guix.texi:16525
544cab3d
LC
29721#, no-wrap
29722msgid "%o"
29723msgstr ""
29724
29725#. type: table
32747aa9 29726#: doc/guix.texi:16527
544cab3d
LC
29727msgid "total number of bytes sent to client."
29728msgstr ""
29729
29730#. type: deftypevr
32747aa9 29731#: doc/guix.texi:16530
544cab3d
LC
29732msgid "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@}\"}."
29733msgstr ""
29734
29735#. type: deftypevr
32747aa9 29736#: doc/guix.texi:16532
544cab3d
LC
29737#, no-wrap
29738msgid "{@code{dovecot-configuration} parameter} string imap-capability"
29739msgstr ""
29740
29741#. type: deftypevr
32747aa9 29742#: doc/guix.texi:16536
544cab3d
LC
29743msgid "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{\"\"}."
29744msgstr ""
29745
29746#. type: deftypevr
32747aa9 29747#: doc/guix.texi:16538
544cab3d
LC
29748#, no-wrap
29749msgid "{@code{dovecot-configuration} parameter} string imap-idle-notify-interval"
29750msgstr ""
29751
29752#. type: deftypevr
32747aa9 29753#: doc/guix.texi:16542
544cab3d
LC
29754msgid "How long to wait between \"OK Still here\" notifications when client is IDLEing. Defaults to @samp{\"2 mins\"}."
29755msgstr ""
29756
29757#. type: deftypevr
32747aa9 29758#: doc/guix.texi:16544
544cab3d
LC
29759#, no-wrap
29760msgid "{@code{dovecot-configuration} parameter} string imap-id-send"
29761msgstr ""
29762
29763#. type: deftypevr
32747aa9 29764#: doc/guix.texi:16550
544cab3d
LC
29765msgid "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{\"\"}."
29766msgstr ""
29767
29768#. type: deftypevr
32747aa9 29769#: doc/guix.texi:16552
544cab3d
LC
29770#, no-wrap
29771msgid "{@code{dovecot-configuration} parameter} string imap-id-log"
29772msgstr ""
29773
29774#. type: deftypevr
32747aa9 29775#: doc/guix.texi:16555
544cab3d
LC
29776msgid "ID fields sent by client to log. * means everything. Defaults to @samp{\"\"}."
29777msgstr ""
29778
29779#. type: deftypevr
32747aa9 29780#: doc/guix.texi:16557
544cab3d
LC
29781#, no-wrap
29782msgid "{@code{dovecot-configuration} parameter} space-separated-string-list imap-client-workarounds"
29783msgstr ""
29784
29785#. type: deftypevr
32747aa9 29786#: doc/guix.texi:16559
544cab3d
LC
29787msgid "Workarounds for various client bugs:"
29788msgstr ""
29789
29790#. type: item
32747aa9 29791#: doc/guix.texi:16561
544cab3d
LC
29792#, no-wrap
29793msgid "delay-newmail"
29794msgstr ""
29795
29796#. type: table
32747aa9 29797#: doc/guix.texi:16568
544cab3d
LC
29798msgid "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\"."
29799msgstr ""
29800
29801#. type: item
32747aa9 29802#: doc/guix.texi:16569
544cab3d
LC
29803#, no-wrap
29804msgid "tb-extra-mailbox-sep"
29805msgstr ""
29806
29807#. type: table
32747aa9 29808#: doc/guix.texi:16573
544cab3d
LC
29809msgid "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."
29810msgstr ""
29811
29812#. type: item
32747aa9 29813#: doc/guix.texi:16574
544cab3d
LC
29814#, no-wrap
29815msgid "tb-lsub-flags"
29816msgstr ""
29817
29818#. type: table
32747aa9 29819#: doc/guix.texi:16578
544cab3d
LC
29820msgid "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."
29821msgstr ""
29822
29823#. type: deftypevr
32747aa9 29824#: doc/guix.texi:16582
544cab3d
LC
29825#, no-wrap
29826msgid "{@code{dovecot-configuration} parameter} string imap-urlauth-host"
29827msgstr ""
29828
29829#. type: deftypevr
32747aa9 29830#: doc/guix.texi:16585
544cab3d
LC
29831msgid "Host allowed in URLAUTH URLs sent by client. \"*\" allows all. Defaults to @samp{\"\"}."
29832msgstr ""
29833
29834#. type: Plain text
32747aa9 29835#: doc/guix.texi:16593
544cab3d
LC
29836msgid "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."
29837msgstr ""
29838
29839#. type: Plain text
32747aa9 29840#: doc/guix.texi:16599
544cab3d
LC
29841msgid "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."
29842msgstr ""
29843
29844#. type: Plain text
32747aa9 29845#: doc/guix.texi:16601
544cab3d
LC
29846msgid "Available @code{opaque-dovecot-configuration} fields are:"
29847msgstr ""
29848
29849#. type: deftypevr
32747aa9 29850#: doc/guix.texi:16602
544cab3d
LC
29851#, no-wrap
29852msgid "{@code{opaque-dovecot-configuration} parameter} package dovecot"
29853msgstr ""
29854
29855#. type: deftypevr
32747aa9 29856#: doc/guix.texi:16606
544cab3d
LC
29857#, no-wrap
29858msgid "{@code{opaque-dovecot-configuration} parameter} string string"
29859msgstr ""
29860
29861#. type: deftypevr
32747aa9 29862#: doc/guix.texi:16608
544cab3d
LC
29863msgid "The contents of the @code{dovecot.conf}, as a string."
29864msgstr ""
29865
29866#. type: Plain text
32747aa9 29867#: doc/guix.texi:16612
544cab3d
LC
29868msgid "For example, if your @code{dovecot.conf} is just the empty string, you could instantiate a dovecot service like this:"
29869msgstr ""
29870
29871#. type: example
32747aa9 29872#: doc/guix.texi:16617
544cab3d
LC
29873#, no-wrap
29874msgid ""
29875"(dovecot-service #:config\n"
29876" (opaque-dovecot-configuration\n"
29877" (string \"\")))\n"
29878msgstr ""
29879
29880#. type: subsubheading
32747aa9 29881#: doc/guix.texi:16619
544cab3d
LC
29882#, no-wrap
29883msgid "OpenSMTPD Service"
29884msgstr ""
29885
29886#. type: deffn
32747aa9 29887#: doc/guix.texi:16621
544cab3d
LC
29888#, no-wrap
29889msgid "{Scheme Variable} opensmtpd-service-type"
29890msgstr ""
29891
29892#. type: deffn
32747aa9 29893#: doc/guix.texi:16625
544cab3d
LC
29894msgid "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:"
29895msgstr ""
29896
29897#. type: example
32747aa9 29898#: doc/guix.texi:16630
544cab3d
LC
29899#, no-wrap
29900msgid ""
29901"(service opensmtpd-service-type\n"
29902" (opensmtpd-configuration\n"
29903" (config-file (local-file \"./my-smtpd.conf\"))))\n"
29904msgstr ""
29905
29906#. type: deftp
32747aa9 29907#: doc/guix.texi:16633
544cab3d
LC
29908#, no-wrap
29909msgid "{Data Type} opensmtpd-configuration"
29910msgstr ""
29911
29912#. type: deftp
32747aa9 29913#: doc/guix.texi:16635
544cab3d
LC
29914msgid "Data type representing the configuration of opensmtpd."
29915msgstr ""
29916
29917#. type: item
32747aa9 29918#: doc/guix.texi:16637
544cab3d
LC
29919#, no-wrap
29920msgid "@code{package} (default: @var{opensmtpd})"
29921msgstr ""
29922
29923#. type: table
32747aa9 29924#: doc/guix.texi:16639
544cab3d
LC
29925msgid "Package object of the OpenSMTPD SMTP server."
29926msgstr ""
29927
29928#. type: item
32747aa9 29929#: doc/guix.texi:16640
544cab3d
LC
29930#, no-wrap
29931msgid "@code{config-file} (default: @var{%default-opensmtpd-file})"
29932msgstr ""
29933
29934#. type: table
32747aa9 29935#: doc/guix.texi:16645
544cab3d
LC
29936msgid "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."
29937msgstr ""
29938
29939#. type: subsubheading
32747aa9 29940#: doc/guix.texi:16649
544cab3d
LC
29941#, no-wrap
29942msgid "Exim Service"
29943msgstr ""
29944
29945#. type: cindex
32747aa9 29946#: doc/guix.texi:16651
544cab3d
LC
29947#, no-wrap
29948msgid "mail transfer agent (MTA)"
29949msgstr ""
29950
29951#. type: cindex
32747aa9 29952#: doc/guix.texi:16652
544cab3d
LC
29953#, no-wrap
29954msgid "MTA (mail transfer agent)"
29955msgstr ""
29956
29957#. type: cindex
32747aa9 29958#: doc/guix.texi:16653
544cab3d
LC
29959#, no-wrap
29960msgid "SMTP"
29961msgstr ""
29962
29963#. type: deffn
32747aa9 29964#: doc/guix.texi:16655
544cab3d
LC
29965#, no-wrap
29966msgid "{Scheme Variable} exim-service-type"
29967msgstr ""
29968
29969#. type: deffn
32747aa9 29970#: doc/guix.texi:16659
544cab3d
LC
29971msgid "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:"
29972msgstr ""
29973
29974#. type: example
32747aa9 29975#: doc/guix.texi:16664
544cab3d
LC
29976#, no-wrap
29977msgid ""
29978"(service exim-service-type\n"
29979" (exim-configuration\n"
29980" (config-file (local-file \"./my-exim.conf\"))))\n"
29981msgstr ""
29982
29983#. type: Plain text
32747aa9 29984#: doc/guix.texi:16670
544cab3d
LC
29985msgid "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)."
29986msgstr ""
29987
29988#. type: deftp
32747aa9 29989#: doc/guix.texi:16671
544cab3d
LC
29990#, no-wrap
29991msgid "{Data Type} exim-configuration"
29992msgstr ""
29993
29994#. type: deftp
32747aa9 29995#: doc/guix.texi:16673
544cab3d
LC
29996msgid "Data type representing the configuration of exim."
29997msgstr ""
29998
29999#. type: item
32747aa9 30000#: doc/guix.texi:16675
544cab3d
LC
30001#, no-wrap
30002msgid "@code{package} (default: @var{exim})"
30003msgstr ""
30004
30005#. type: table
32747aa9 30006#: doc/guix.texi:16677
544cab3d
LC
30007msgid "Package object of the Exim server."
30008msgstr ""
30009
30010#. type: table
32747aa9 30011#: doc/guix.texi:16684
544cab3d
LC
30012msgid "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."
30013msgstr ""
30014
30015#. type: subsubheading
32747aa9 30016#: doc/guix.texi:16688
544cab3d
LC
30017#, no-wrap
30018msgid "Mail Aliases Service"
30019msgstr ""
30020
30021#. type: cindex
32747aa9 30022#: doc/guix.texi:16690
544cab3d
LC
30023#, no-wrap
30024msgid "email aliases"
30025msgstr ""
30026
30027#. type: cindex
32747aa9 30028#: doc/guix.texi:16691
544cab3d
LC
30029#, no-wrap
30030msgid "aliases, for email addresses"
30031msgstr ""
30032
30033#. type: deffn
32747aa9 30034#: doc/guix.texi:16693
544cab3d
LC
30035#, no-wrap
30036msgid "{Scheme Variable} mail-aliases-service-type"
30037msgstr ""
30038
30039#. type: deffn
32747aa9 30040#: doc/guix.texi:16696
544cab3d
LC
30041msgid "This is the type of the service which provides @code{/etc/aliases}, specifying how to deliver mail to users on this system."
30042msgstr ""
30043
30044#. type: example
32747aa9 30045#: doc/guix.texi:16701
544cab3d
LC
30046#, no-wrap
30047msgid ""
30048"(service mail-aliases-service-type\n"
30049" '((\"postmaster\" \"bob\")\n"
30050" (\"bob\" \"bob@@example.com\" \"bob@@example2.com\")))\n"
30051msgstr ""
30052
30053#. type: Plain text
32747aa9 30054#: doc/guix.texi:16709
544cab3d
LC
30055msgid "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."
30056msgstr ""
30057
30058#. type: Plain text
32747aa9 30059#: doc/guix.texi:16715
544cab3d
LC
30060msgid "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})."
30061msgstr ""
30062
30063#. type: cindex
32747aa9 30064#: doc/guix.texi:16716 doc/guix.texi:16717
544cab3d
LC
30065#, no-wrap
30066msgid "GNU Mailutils IMAP4 Daemon"
30067msgstr ""
30068
30069#. type: deffn
32747aa9 30070#: doc/guix.texi:16719
544cab3d
LC
30071#, no-wrap
30072msgid "{Scheme Variable} imap4d-service-type"
30073msgstr ""
30074
30075#. type: deffn
32747aa9 30076#: doc/guix.texi:16723
544cab3d
LC
30077msgid "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:"
30078msgstr ""
30079
30080#. type: example
32747aa9 30081#: doc/guix.texi:16728
544cab3d
LC
30082#, no-wrap
30083msgid ""
30084"(service imap4d-service-type\n"
30085" (imap4d-configuration\n"
30086" (config-file (local-file \"imap4d.conf\"))))\n"
30087msgstr ""
30088
30089#. type: deftp
32747aa9 30090#: doc/guix.texi:16731
544cab3d
LC
30091#, no-wrap
30092msgid "{Data Type} imap4d-configuration"
30093msgstr ""
30094
30095#. type: deftp
32747aa9 30096#: doc/guix.texi:16733
544cab3d
LC
30097msgid "Data type representing the configuration of @command{imap4d}."
30098msgstr ""
30099
30100#. type: item
32747aa9 30101#: doc/guix.texi:16735
544cab3d
LC
30102#, no-wrap
30103msgid "@code{package} (default: @code{mailutils})"
30104msgstr ""
30105
30106#. type: table
32747aa9 30107#: doc/guix.texi:16737
544cab3d
LC
30108msgid "The package that provides @command{imap4d}."
30109msgstr ""
30110
30111#. type: item
32747aa9 30112#: doc/guix.texi:16738
544cab3d
LC
30113#, no-wrap
30114msgid "@code{config-file} (default: @code{%default-imap4d-config-file})"
30115msgstr ""
30116
30117#. type: table
32747aa9 30118#: doc/guix.texi:16742
544cab3d
LC
30119msgid "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."
30120msgstr ""
30121
30122#. type: cindex
32747aa9 30123#: doc/guix.texi:16749
544cab3d
LC
30124#, no-wrap
30125msgid "messaging"
30126msgstr ""
30127
30128#. type: cindex
32747aa9 30129#: doc/guix.texi:16750
544cab3d
LC
30130#, no-wrap
30131msgid "jabber"
30132msgstr ""
30133
30134#. type: cindex
32747aa9 30135#: doc/guix.texi:16751
544cab3d
LC
30136#, no-wrap
30137msgid "XMPP"
30138msgstr ""
30139
30140#. type: Plain text
32747aa9 30141#: doc/guix.texi:16754
544cab3d
LC
30142msgid "The @code{(gnu services messaging)} module provides Guix service definitions for messaging services: currently only Prosody is supported."
30143msgstr ""
30144
30145#. type: subsubheading
32747aa9 30146#: doc/guix.texi:16755
544cab3d
LC
30147#, no-wrap
30148msgid "Prosody Service"
30149msgstr ""
30150
30151#. type: deffn
32747aa9 30152#: doc/guix.texi:16757
544cab3d
LC
30153#, no-wrap
30154msgid "{Scheme Variable} prosody-service-type"
30155msgstr ""
30156
30157#. type: deffn
32747aa9 30158#: doc/guix.texi:16761
544cab3d
LC
30159msgid "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:"
30160msgstr ""
30161
30162#. type: example
32747aa9 30163#: doc/guix.texi:16776
544cab3d
LC
30164#, no-wrap
30165msgid ""
30166"(service prosody-service-type\n"
30167" (prosody-configuration\n"
30168" (modules-enabled (cons \"groups\" \"mam\" %default-modules-enabled))\n"
30169" (int-components\n"
30170" (list\n"
30171" (int-component-configuration\n"
30172" (hostname \"conference.example.net\")\n"
30173" (plugin \"muc\")\n"
30174" (mod-muc (mod-muc-configuration)))))\n"
30175" (virtualhosts\n"
30176" (list\n"
30177" (virtualhost-configuration\n"
30178" (domain \"example.net\"))))))\n"
30179msgstr ""
30180
30181#. type: deffn
32747aa9 30182#: doc/guix.texi:16779
544cab3d
LC
30183msgid "See below for details about @code{prosody-configuration}."
30184msgstr ""
30185
30186#. type: Plain text
32747aa9 30187#: doc/guix.texi:16785
544cab3d
LC
30188msgid "By default, Prosody does not need much configuration. Only one @code{virtualhosts} field is needed: it specifies the domain you wish Prosody to serve."
30189msgstr ""
30190
30191#. type: Plain text
32747aa9 30192#: doc/guix.texi:16788
544cab3d
LC
30193msgid "You can perform various sanity checks on the generated configuration with the @code{prosodyctl check} command."
30194msgstr ""
30195
30196#. type: Plain text
32747aa9 30197#: doc/guix.texi:16792
544cab3d
LC
30198msgid "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}."
30199msgstr ""
30200
30201#. type: example
32747aa9 30202#: doc/guix.texi:16795
544cab3d
LC
30203#, no-wrap
30204msgid "prosodyctl --root cert import /etc/letsencrypt/live\n"
30205msgstr ""
30206
30207#. type: Plain text
32747aa9 30208#: doc/guix.texi:16802
544cab3d
LC
30209msgid "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}."
30210msgstr ""
30211
30212#. type: Plain text
32747aa9 30213#: doc/guix.texi:16806
544cab3d
LC
30214msgid "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."
30215msgstr ""
30216
30217#. type: Plain text
32747aa9 30218#: doc/guix.texi:16809
544cab3d
LC
30219msgid "The @code{file-object} type designates either a file-like object (@pxref{G-Expressions, file-like objects}) or a file name."
30220msgstr ""
30221
30222#. type: Plain text
32747aa9 30223#: doc/guix.texi:16819
544cab3d
LC
30224msgid "Available @code{prosody-configuration} fields are:"
30225msgstr ""
30226
30227#. type: deftypevr
32747aa9 30228#: doc/guix.texi:16820
544cab3d
LC
30229#, no-wrap
30230msgid "{@code{prosody-configuration} parameter} package prosody"
30231msgstr ""
30232
30233#. type: deftypevr
32747aa9 30234#: doc/guix.texi:16822
544cab3d
LC
30235msgid "The Prosody package."
30236msgstr ""
30237
30238#. type: deftypevr
32747aa9 30239#: doc/guix.texi:16824
544cab3d
LC
30240#, no-wrap
30241msgid "{@code{prosody-configuration} parameter} file-name data-path"
30242msgstr ""
30243
30244#. type: deftypevr
32747aa9 30245#: doc/guix.texi:16828
544cab3d
LC
30246msgid "Location of the Prosody data storage directory. See @url{https://prosody.im/doc/configure}. Defaults to @samp{\"/var/lib/prosody\"}."
30247msgstr ""
30248
30249#. type: deftypevr
32747aa9 30250#: doc/guix.texi:16830
544cab3d
LC
30251#, no-wrap
30252msgid "{@code{prosody-configuration} parameter} file-object-list plugin-paths"
30253msgstr ""
30254
30255#. type: deftypevr
32747aa9 30256#: doc/guix.texi:16834
544cab3d
LC
30257msgid "Additional plugin directories. They are searched in all the specified paths in order. See @url{https://prosody.im/doc/plugins_directory}. Defaults to @samp{()}."
30258msgstr ""
30259
30260#. type: deftypevr
32747aa9 30261#: doc/guix.texi:16836
544cab3d
LC
30262#, no-wrap
30263msgid "{@code{prosody-configuration} parameter} file-name certificates"
30264msgstr ""
30265
30266#. type: deftypevr
32747aa9 30267#: doc/guix.texi:16841
544cab3d
LC
30268msgid "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\"}."
30269msgstr ""
30270
30271#. type: deftypevr
32747aa9 30272#: doc/guix.texi:16843
544cab3d
LC
30273#, no-wrap
30274msgid "{@code{prosody-configuration} parameter} string-list admins"
30275msgstr ""
30276
30277#. type: deftypevr
32747aa9 30278#: doc/guix.texi:16849
544cab3d
LC
30279msgid "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{()}."
30280msgstr ""
30281
30282#. type: deftypevr
32747aa9 30283#: doc/guix.texi:16851
544cab3d
LC
30284#, no-wrap
30285msgid "{@code{prosody-configuration} parameter} boolean use-libevent?"
30286msgstr ""
30287
30288#. type: deftypevr
32747aa9 30289#: doc/guix.texi:16855
544cab3d
LC
30290msgid "Enable use of libevent for better performance under high load. See @url{https://prosody.im/doc/libevent}. Defaults to @samp{#f}."
30291msgstr ""
30292
30293#. type: deftypevr
32747aa9 30294#: doc/guix.texi:16857
544cab3d
LC
30295#, no-wrap
30296msgid "{@code{prosody-configuration} parameter} module-list modules-enabled"
30297msgstr ""
30298
30299#. type: deftypevr
32747aa9 30300#: doc/guix.texi:16863
544cab3d
LC
30301msgid "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\")}."
30302msgstr ""
30303
30304#. type: deftypevr
32747aa9 30305#: doc/guix.texi:16865
544cab3d
LC
30306#, no-wrap
30307msgid "{@code{prosody-configuration} parameter} string-list modules-disabled"
30308msgstr ""
30309
30310#. type: deftypevr
32747aa9 30311#: doc/guix.texi:16869
544cab3d
LC
30312msgid "@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{()}."
30313msgstr ""
30314
30315#. type: deftypevr
32747aa9 30316#: doc/guix.texi:16871
544cab3d
LC
30317#, no-wrap
30318msgid "{@code{prosody-configuration} parameter} file-object groups-file"
30319msgstr ""
30320
30321#. type: deftypevr
32747aa9 30322#: doc/guix.texi:16876
544cab3d
LC
30323msgid "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\"}."
30324msgstr ""
30325
30326#. type: deftypevr
32747aa9 30327#: doc/guix.texi:16878
544cab3d
LC
30328#, no-wrap
30329msgid "{@code{prosody-configuration} parameter} boolean allow-registration?"
30330msgstr ""
30331
30332#. type: deftypevr
32747aa9 30333#: doc/guix.texi:16882
544cab3d
LC
30334msgid "Disable account creation by default, for security. See @url{https://prosody.im/doc/creating_accounts}. Defaults to @samp{#f}."
30335msgstr ""
30336
30337#. type: deftypevr
32747aa9 30338#: doc/guix.texi:16884
544cab3d
LC
30339#, no-wrap
30340msgid "{@code{prosody-configuration} parameter} maybe-ssl-configuration ssl"
30341msgstr ""
30342
30343#. type: deftypevr
32747aa9 30344#: doc/guix.texi:16889
544cab3d
LC
30345msgid "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}."
30346msgstr ""
30347
30348#. type: deftypevr
32747aa9 30349#: doc/guix.texi:16891
544cab3d
LC
30350msgid "Available @code{ssl-configuration} fields are:"
30351msgstr ""
30352
30353#. type: deftypevr
32747aa9 30354#: doc/guix.texi:16892
544cab3d
LC
30355#, no-wrap
30356msgid "{@code{ssl-configuration} parameter} maybe-string protocol"
30357msgstr ""
30358
30359#. type: deftypevr
32747aa9 30360#: doc/guix.texi:16894
544cab3d
LC
30361msgid "This determines what handshake to use."
30362msgstr ""
30363
30364#. type: deftypevr
32747aa9 30365#: doc/guix.texi:16896
544cab3d
LC
30366#, no-wrap
30367msgid "{@code{ssl-configuration} parameter} maybe-file-name key"
30368msgstr ""
30369
30370#. type: deftypevr
32747aa9 30371#: doc/guix.texi:16898
544cab3d
LC
30372msgid "Path to your private key file."
30373msgstr ""
30374
30375#. type: deftypevr
32747aa9 30376#: doc/guix.texi:16900
544cab3d
LC
30377#, no-wrap
30378msgid "{@code{ssl-configuration} parameter} maybe-file-name certificate"
30379msgstr ""
30380
30381#. type: deftypevr
32747aa9 30382#: doc/guix.texi:16902
544cab3d
LC
30383msgid "Path to your certificate file."
30384msgstr ""
30385
30386#. type: deftypevr
32747aa9 30387#: doc/guix.texi:16904
544cab3d
LC
30388#, no-wrap
30389msgid "{@code{ssl-configuration} parameter} file-object capath"
30390msgstr ""
30391
30392#. type: deftypevr
32747aa9 30393#: doc/guix.texi:16908
544cab3d
LC
30394msgid "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\"}."
30395msgstr ""
30396
30397#. type: deftypevr
32747aa9 30398#: doc/guix.texi:16910
544cab3d
LC
30399#, no-wrap
30400msgid "{@code{ssl-configuration} parameter} maybe-file-object cafile"
30401msgstr ""
30402
30403#. type: deftypevr
32747aa9 30404#: doc/guix.texi:16913
544cab3d
LC
30405msgid "Path to a file containing root certificates that you wish Prosody to trust. Similar to @code{capath} but with all certificates concatenated together."
30406msgstr ""
30407
30408#. type: deftypevr
32747aa9 30409#: doc/guix.texi:16915
544cab3d
LC
30410#, no-wrap
30411msgid "{@code{ssl-configuration} parameter} maybe-string-list verify"
30412msgstr ""
30413
30414#. type: deftypevr
32747aa9 30415#: doc/guix.texi:16918
544cab3d
LC
30416msgid "A list of verification options (these mostly map to OpenSSL's @code{set_verify()} flags)."
30417msgstr ""
30418
30419#. type: deftypevr
32747aa9 30420#: doc/guix.texi:16920
544cab3d
LC
30421#, no-wrap
30422msgid "{@code{ssl-configuration} parameter} maybe-string-list options"
30423msgstr ""
30424
30425#. type: deftypevr
32747aa9 30426#: doc/guix.texi:16924
544cab3d
LC
30427msgid "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."
30428msgstr ""
30429
30430#. type: deftypevr
32747aa9 30431#: doc/guix.texi:16926
544cab3d
LC
30432#, no-wrap
30433msgid "{@code{ssl-configuration} parameter} maybe-non-negative-integer depth"
30434msgstr ""
30435
30436#. type: deftypevr
32747aa9 30437#: doc/guix.texi:16929
544cab3d
LC
30438msgid "How long a chain of certificate authorities to check when looking for a trusted root certificate."
30439msgstr ""
30440
30441#. type: deftypevr
32747aa9 30442#: doc/guix.texi:16931
544cab3d
LC
30443#, no-wrap
30444msgid "{@code{ssl-configuration} parameter} maybe-string ciphers"
30445msgstr ""
30446
30447#. type: deftypevr
32747aa9 30448#: doc/guix.texi:16934
544cab3d
LC
30449msgid "An OpenSSL cipher string. This selects what ciphers Prosody will offer to clients, and in what order."
30450msgstr ""
30451
30452#. type: deftypevr
32747aa9 30453#: doc/guix.texi:16936
544cab3d
LC
30454#, no-wrap
30455msgid "{@code{ssl-configuration} parameter} maybe-file-name dhparam"
30456msgstr ""
30457
30458#. type: deftypevr
32747aa9 30459#: doc/guix.texi:16940
544cab3d
LC
30460msgid "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}"
30461msgstr ""
30462
30463#. type: deftypevr
32747aa9 30464#: doc/guix.texi:16942
544cab3d
LC
30465#, no-wrap
30466msgid "{@code{ssl-configuration} parameter} maybe-string curve"
30467msgstr ""
30468
30469#. type: deftypevr
32747aa9 30470#: doc/guix.texi:16945
544cab3d
LC
30471msgid "Curve for Elliptic curve Diffie-Hellman. Prosody's default is @samp{\"secp384r1\"}."
30472msgstr ""
30473
30474#. type: deftypevr
32747aa9 30475#: doc/guix.texi:16947
544cab3d
LC
30476#, no-wrap
30477msgid "{@code{ssl-configuration} parameter} maybe-string-list verifyext"
30478msgstr ""
30479
30480#. type: deftypevr
32747aa9 30481#: doc/guix.texi:16949
544cab3d
LC
30482msgid "A list of \"extra\" verification options."
30483msgstr ""
30484
30485#. type: deftypevr
32747aa9 30486#: doc/guix.texi:16951
544cab3d
LC
30487#, no-wrap
30488msgid "{@code{ssl-configuration} parameter} maybe-string password"
30489msgstr ""
30490
30491#. type: deftypevr
32747aa9 30492#: doc/guix.texi:16953
544cab3d
LC
30493msgid "Password for encrypted private keys."
30494msgstr ""
30495
30496#. type: deftypevr
32747aa9 30497#: doc/guix.texi:16957
544cab3d
LC
30498#, no-wrap
30499msgid "{@code{prosody-configuration} parameter} boolean c2s-require-encryption?"
30500msgstr ""
30501
30502#. type: deftypevr
32747aa9 30503#: doc/guix.texi:16961
544cab3d
LC
30504msgid "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}."
30505msgstr ""
30506
30507#. type: deftypevr
32747aa9 30508#: doc/guix.texi:16963
544cab3d
LC
30509#, no-wrap
30510msgid "{@code{prosody-configuration} parameter} string-list disable-sasl-mechanisms"
30511msgstr ""
30512
30513#. type: deftypevr
32747aa9 30514#: doc/guix.texi:16967
544cab3d
LC
30515msgid "Set of mechanisms that will never be offered. See @url{https://prosody.im/doc/modules/mod_saslauth}. Defaults to @samp{(\"DIGEST-MD5\")}."
30516msgstr ""
30517
30518#. type: deftypevr
32747aa9 30519#: doc/guix.texi:16969
544cab3d
LC
30520#, no-wrap
30521msgid "{@code{prosody-configuration} parameter} boolean s2s-require-encryption?"
30522msgstr ""
30523
30524#. type: deftypevr
32747aa9 30525#: doc/guix.texi:16973
544cab3d
LC
30526msgid "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}."
30527msgstr ""
30528
30529#. type: deftypevr
32747aa9 30530#: doc/guix.texi:16975
544cab3d
LC
30531#, no-wrap
30532msgid "{@code{prosody-configuration} parameter} boolean s2s-secure-auth?"
30533msgstr ""
30534
30535#. type: deftypevr
32747aa9 30536#: doc/guix.texi:16981
544cab3d
LC
30537msgid "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}."
30538msgstr ""
30539
30540#. type: deftypevr
32747aa9 30541#: doc/guix.texi:16983
544cab3d
LC
30542#, no-wrap
30543msgid "{@code{prosody-configuration} parameter} string-list s2s-insecure-domains"
30544msgstr ""
30545
30546#. type: deftypevr
32747aa9 30547#: doc/guix.texi:16989
544cab3d
LC
30548msgid "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{()}."
30549msgstr ""
30550
30551#. type: deftypevr
32747aa9 30552#: doc/guix.texi:16991
544cab3d
LC
30553#, no-wrap
30554msgid "{@code{prosody-configuration} parameter} string-list s2s-secure-domains"
30555msgstr ""
30556
30557#. type: deftypevr
32747aa9 30558#: doc/guix.texi:16996
544cab3d
LC
30559msgid "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{()}."
30560msgstr ""
30561
30562#. type: deftypevr
32747aa9 30563#: doc/guix.texi:16998
544cab3d
LC
30564#, no-wrap
30565msgid "{@code{prosody-configuration} parameter} string authentication"
30566msgstr ""
30567
30568#. type: deftypevr
32747aa9 30569#: doc/guix.texi:17006
544cab3d
LC
30570msgid "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\"}."
30571msgstr ""
30572
30573#. type: deftypevr
32747aa9 30574#: doc/guix.texi:17008
544cab3d
LC
30575#, no-wrap
30576msgid "{@code{prosody-configuration} parameter} maybe-string log"
30577msgstr ""
30578
30579#. type: deftypevr
32747aa9 30580#: doc/guix.texi:17012
544cab3d
LC
30581msgid "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\"}."
30582msgstr ""
30583
30584#. type: deftypevr
32747aa9 30585#: doc/guix.texi:17014
544cab3d
LC
30586#, no-wrap
30587msgid "{@code{prosody-configuration} parameter} file-name pidfile"
30588msgstr ""
30589
30590#. type: deftypevr
32747aa9 30591#: doc/guix.texi:17017
544cab3d
LC
30592msgid "File to write pid in. See @url{https://prosody.im/doc/modules/mod_posix}. Defaults to @samp{\"/var/run/prosody/prosody.pid\"}."
30593msgstr ""
30594
30595#. type: deftypevr
32747aa9 30596#: doc/guix.texi:17019
544cab3d
LC
30597#, no-wrap
30598msgid "{@code{prosody-configuration} parameter} maybe-non-negative-integer http-max-content-size"
30599msgstr ""
30600
30601#. type: deftypevr
32747aa9 30602#: doc/guix.texi:17021
544cab3d
LC
30603msgid "Maximum allowed size of the HTTP body (in bytes)."
30604msgstr ""
30605
30606#. type: deftypevr
32747aa9 30607#: doc/guix.texi:17023
544cab3d
LC
30608#, no-wrap
30609msgid "{@code{prosody-configuration} parameter} maybe-string http-external-url"
30610msgstr ""
30611
30612#. type: deftypevr
32747aa9 30613#: doc/guix.texi:17028
544cab3d
LC
30614msgid "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}."
30615msgstr ""
30616
30617#. type: deftypevr
32747aa9 30618#: doc/guix.texi:17030
544cab3d
LC
30619#, no-wrap
30620msgid "{@code{prosody-configuration} parameter} virtualhost-configuration-list virtualhosts"
30621msgstr ""
30622
30623#. type: deftypevr
32747aa9 30624#: doc/guix.texi:17035
544cab3d
LC
30625msgid "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."
30626msgstr ""
30627
30628#. type: deftypevr
32747aa9 30629#: doc/guix.texi:17041
544cab3d
LC
30630msgid "Note: the name \"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."
30631msgstr ""
30632
30633#. type: deftypevr
32747aa9 30634#: doc/guix.texi:17043
544cab3d
LC
30635msgid "See @url{https://prosody.im/doc/configure#virtual_host_settings}."
30636msgstr ""
30637
30638#. type: deftypevr
32747aa9 30639#: doc/guix.texi:17045
544cab3d
LC
30640msgid "Available @code{virtualhost-configuration} fields are:"
30641msgstr ""
30642
30643#. type: deftypevr
32747aa9 30644#: doc/guix.texi:17047 doc/guix.texi:17069 doc/guix.texi:17122
544cab3d
LC
30645msgid "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:"
30646msgstr ""
30647
30648#. type: deftypevr
32747aa9 30649#: doc/guix.texi:17047
544cab3d
LC
30650#, no-wrap
30651msgid "{@code{virtualhost-configuration} parameter} string domain"
30652msgstr ""
30653
30654#. type: deftypevr
32747aa9 30655#: doc/guix.texi:17049
544cab3d
LC
30656msgid "Domain you wish Prosody to serve."
30657msgstr ""
30658
30659#. type: deftypevr
32747aa9 30660#: doc/guix.texi:17053
544cab3d
LC
30661#, no-wrap
30662msgid "{@code{prosody-configuration} parameter} int-component-configuration-list int-components"
30663msgstr ""
30664
30665#. type: deftypevr
32747aa9 30666#: doc/guix.texi:17058
544cab3d
LC
30667msgid "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."
30668msgstr ""
30669
30670#. type: deftypevr
32747aa9 30671#: doc/guix.texi:17062
544cab3d
LC
30672msgid "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."
30673msgstr ""
30674
30675#. type: deftypevr
32747aa9 30676#: doc/guix.texi:17065
544cab3d
LC
30677msgid "See @url{https://prosody.im/doc/components}. Defaults to @samp{()}."
30678msgstr ""
30679
30680#. type: deftypevr
32747aa9 30681#: doc/guix.texi:17067
544cab3d
LC
30682msgid "Available @code{int-component-configuration} fields are:"
30683msgstr ""
30684
30685#. type: deftypevr
32747aa9 30686#: doc/guix.texi:17069
544cab3d
LC
30687#, no-wrap
30688msgid "{@code{int-component-configuration} parameter} string hostname"
30689msgstr ""
30690
30691#. type: deftypevr
32747aa9 30692#: doc/guix.texi:17071 doc/guix.texi:17128
544cab3d
LC
30693msgid "Hostname of the component."
30694msgstr ""
30695
30696#. type: deftypevr
32747aa9 30697#: doc/guix.texi:17073
544cab3d
LC
30698#, no-wrap
30699msgid "{@code{int-component-configuration} parameter} string plugin"
30700msgstr ""
30701
30702#. type: deftypevr
32747aa9 30703#: doc/guix.texi:17075
544cab3d
LC
30704msgid "Plugin you wish to use for the component."
30705msgstr ""
30706
30707#. type: deftypevr
32747aa9 30708#: doc/guix.texi:17077
544cab3d
LC
30709#, no-wrap
30710msgid "{@code{int-component-configuration} parameter} maybe-mod-muc-configuration mod-muc"
30711msgstr ""
30712
30713#. type: deftypevr
32747aa9 30714#: doc/guix.texi:17080
544cab3d
LC
30715msgid "Multi-user chat (MUC) is Prosody's module for allowing you to create hosted chatrooms/conferences for XMPP users."
30716msgstr ""
30717
30718#. type: deftypevr
32747aa9 30719#: doc/guix.texi:17084
544cab3d
LC
30720msgid "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."
30721msgstr ""
30722
30723#. type: deftypevr
32747aa9 30724#: doc/guix.texi:17086
544cab3d
LC
30725msgid "See also @url{https://prosody.im/doc/modules/mod_muc}."
30726msgstr ""
30727
30728#. type: deftypevr
32747aa9 30729#: doc/guix.texi:17088
544cab3d
LC
30730msgid "Available @code{mod-muc-configuration} fields are:"
30731msgstr ""
30732
30733#. type: deftypevr
32747aa9 30734#: doc/guix.texi:17089
544cab3d
LC
30735#, no-wrap
30736msgid "{@code{mod-muc-configuration} parameter} string name"
30737msgstr ""
30738
30739#. type: deftypevr
32747aa9 30740#: doc/guix.texi:17092
544cab3d
LC
30741msgid "The name to return in service discovery responses. Defaults to @samp{\"Prosody Chatrooms\"}."
30742msgstr ""
30743
30744#. type: deftypevr
32747aa9 30745#: doc/guix.texi:17094
544cab3d
LC
30746#, no-wrap
30747msgid "{@code{mod-muc-configuration} parameter} string-or-boolean restrict-room-creation"
30748msgstr ""
30749
30750#. type: deftypevr
32747aa9 30751#: doc/guix.texi:17101
544cab3d
LC
30752msgid "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}."
30753msgstr ""
30754
30755#. type: deftypevr
32747aa9 30756#: doc/guix.texi:17103
544cab3d
LC
30757#, no-wrap
30758msgid "{@code{mod-muc-configuration} parameter} non-negative-integer max-history-messages"
30759msgstr ""
30760
30761#. type: deftypevr
32747aa9 30762#: doc/guix.texi:17107
544cab3d
LC
30763msgid "Maximum number of history messages that will be sent to the member that has just joined the room. Defaults to @samp{20}."
30764msgstr ""
30765
30766#. type: deftypevr
32747aa9 30767#: doc/guix.texi:17113
544cab3d
LC
30768#, no-wrap
30769msgid "{@code{prosody-configuration} parameter} ext-component-configuration-list ext-components"
30770msgstr ""
30771
30772#. type: deftypevr
32747aa9 30773#: doc/guix.texi:17118
544cab3d
LC
30774msgid "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{()}."
30775msgstr ""
30776
30777#. type: deftypevr
32747aa9 30778#: doc/guix.texi:17120
544cab3d
LC
30779msgid "Available @code{ext-component-configuration} fields are:"
30780msgstr ""
30781
30782#. type: deftypevr
32747aa9 30783#: doc/guix.texi:17122
544cab3d
LC
30784#, no-wrap
30785msgid "{@code{ext-component-configuration} parameter} string component-secret"
30786msgstr ""
30787
30788#. type: deftypevr
32747aa9 30789#: doc/guix.texi:17124
544cab3d
LC
30790msgid "Password which the component will use to log in."
30791msgstr ""
30792
30793#. type: deftypevr
32747aa9 30794#: doc/guix.texi:17126
544cab3d
LC
30795#, no-wrap
30796msgid "{@code{ext-component-configuration} parameter} string hostname"
30797msgstr ""
30798
30799#. type: deftypevr
32747aa9 30800#: doc/guix.texi:17132
544cab3d
LC
30801#, no-wrap
30802msgid "{@code{prosody-configuration} parameter} non-negative-integer-list component-ports"
30803msgstr ""
30804
30805#. type: deftypevr
32747aa9 30806#: doc/guix.texi:17135
544cab3d
LC
30807msgid "Port(s) Prosody listens on for component connections. Defaults to @samp{(5347)}."
30808msgstr ""
30809
30810#. type: deftypevr
32747aa9 30811#: doc/guix.texi:17137
544cab3d
LC
30812#, no-wrap
30813msgid "{@code{prosody-configuration} parameter} string component-interface"
30814msgstr ""
30815
30816#. type: deftypevr
32747aa9 30817#: doc/guix.texi:17140
544cab3d
LC
30818msgid "Interface Prosody listens on for component connections. Defaults to @samp{\"127.0.0.1\"}."
30819msgstr ""
30820
30821#. type: deftypevr
32747aa9 30822#: doc/guix.texi:17142
544cab3d
LC
30823#, no-wrap
30824msgid "{@code{prosody-configuration} parameter} maybe-raw-content raw-content"
30825msgstr ""
30826
30827#. type: deftypevr
32747aa9 30828#: doc/guix.texi:17144
544cab3d
LC
30829msgid "Raw content that will be added to the configuration file."
30830msgstr ""
30831
30832#. type: Plain text
32747aa9 30833#: doc/guix.texi:17152
544cab3d
LC
30834msgid "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:"
30835msgstr ""
30836
30837#. type: deftypevr
32747aa9 30838#: doc/guix.texi:17153
544cab3d
LC
30839#, no-wrap
30840msgid "{@code{opaque-prosody-configuration} parameter} package prosody"
30841msgstr ""
30842
30843#. type: deftypevr
32747aa9 30844#: doc/guix.texi:17155
544cab3d
LC
30845msgid "The prosody package."
30846msgstr ""
30847
30848#. type: deftypevr
32747aa9 30849#: doc/guix.texi:17157
544cab3d
LC
30850#, no-wrap
30851msgid "{@code{opaque-prosody-configuration} parameter} string prosody.cfg.lua"
30852msgstr ""
30853
30854#. type: deftypevr
32747aa9 30855#: doc/guix.texi:17159
544cab3d
LC
30856msgid "The contents of the @code{prosody.cfg.lua} to use."
30857msgstr ""
30858
30859#. type: Plain text
32747aa9 30860#: doc/guix.texi:17163
544cab3d
LC
30861msgid "For example, if your @code{prosody.cfg.lua} is just the empty string, you could instantiate a prosody service like this:"
30862msgstr ""
30863
30864#. type: example
32747aa9 30865#: doc/guix.texi:17168
544cab3d
LC
30866#, no-wrap
30867msgid ""
30868"(service prosody-service-type\n"
30869" (opaque-prosody-configuration\n"
30870" (prosody.cfg.lua \"\")))\n"
30871msgstr ""
30872
30873#. type: subsubheading
32747aa9 30874#: doc/guix.texi:17172
544cab3d
LC
30875#, no-wrap
30876msgid "BitlBee Service"
30877msgstr ""
30878
30879#. type: cindex
32747aa9 30880#: doc/guix.texi:17174 doc/guix.texi:17218
544cab3d
LC
30881#, no-wrap
30882msgid "IRC (Internet Relay Chat)"
30883msgstr ""
30884
30885#. type: cindex
32747aa9 30886#: doc/guix.texi:17175
544cab3d
LC
30887#, no-wrap
30888msgid "IRC gateway"
30889msgstr ""
30890
30891#. type: Plain text
32747aa9
LC
30892#: doc/guix.texi:17178
30893msgid "@url{https://bitlbee.org,BitlBee} is a gateway that provides an IRC interface to a variety of messaging protocols such as XMPP."
544cab3d
LC
30894msgstr ""
30895
30896#. type: defvr
32747aa9 30897#: doc/guix.texi:17179
544cab3d
LC
30898#, no-wrap
30899msgid "{Scheme Variable} bitlbee-service-type"
30900msgstr ""
30901
30902#. type: defvr
32747aa9
LC
30903#: doc/guix.texi:17183
30904msgid "This is the service type for the @url{https://bitlbee.org,BitlBee} IRC gateway daemon. Its value is a @code{bitlbee-configuration} (see below)."
544cab3d
LC
30905msgstr ""
30906
30907#. type: defvr
32747aa9 30908#: doc/guix.texi:17186
544cab3d
LC
30909msgid "To have BitlBee listen on port 6667 on localhost, add this line to your services:"
30910msgstr ""
30911
30912#. type: example
32747aa9 30913#: doc/guix.texi:17189
544cab3d
LC
30914#, no-wrap
30915msgid "(service bitlbee-service-type)\n"
30916msgstr ""
30917
30918#. type: deftp
32747aa9 30919#: doc/guix.texi:17192
544cab3d
LC
30920#, no-wrap
30921msgid "{Data Type} bitlbee-configuration"
30922msgstr ""
30923
30924#. type: deftp
32747aa9 30925#: doc/guix.texi:17194
544cab3d
LC
30926msgid "This is the configuration for BitlBee, with the following fields:"
30927msgstr ""
30928
30929#. type: item
32747aa9 30930#: doc/guix.texi:17196
544cab3d
LC
30931#, no-wrap
30932msgid "@code{interface} (default: @code{\"127.0.0.1\"})"
30933msgstr ""
30934
30935#. type: itemx
32747aa9 30936#: doc/guix.texi:17197
544cab3d
LC
30937#, no-wrap
30938msgid "@code{port} (default: @code{6667})"
30939msgstr ""
30940
30941#. type: table
32747aa9 30942#: doc/guix.texi:17200
544cab3d
LC
30943msgid "Listen on the network interface corresponding to the IP address specified in @var{interface}, on @var{port}."
30944msgstr ""
30945
30946#. type: table
32747aa9 30947#: doc/guix.texi:17204
544cab3d
LC
30948msgid "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."
30949msgstr ""
30950
30951#. type: item
32747aa9 30952#: doc/guix.texi:17205
544cab3d
LC
30953#, no-wrap
30954msgid "@code{package} (default: @code{bitlbee})"
30955msgstr ""
30956
30957#. type: table
32747aa9 30958#: doc/guix.texi:17207
544cab3d
LC
30959msgid "The BitlBee package to use."
30960msgstr ""
30961
30962#. type: item
32747aa9 30963#: doc/guix.texi:17208
544cab3d
LC
30964#, no-wrap
30965msgid "@code{plugins} (default: @code{'()})"
30966msgstr ""
30967
30968#. type: table
32747aa9 30969#: doc/guix.texi:17210
544cab3d
LC
30970msgid "List of plugin packages to use---e.g., @code{bitlbee-discord}."
30971msgstr ""
30972
30973#. type: item
32747aa9 30974#: doc/guix.texi:17211
544cab3d
LC
30975#, no-wrap
30976msgid "@code{extra-settings} (default: @code{\"\"})"
30977msgstr ""
30978
30979#. type: table
32747aa9 30980#: doc/guix.texi:17213
544cab3d
LC
30981msgid "Configuration snippet added as-is to the BitlBee configuration file."
30982msgstr ""
30983
30984#. type: subsubheading
32747aa9 30985#: doc/guix.texi:17216
544cab3d
LC
30986#, no-wrap
30987msgid "Quassel Service"
30988msgstr ""
30989
30990#. type: Plain text
32747aa9 30991#: doc/guix.texi:17222
544cab3d
LC
30992msgid "@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."
30993msgstr ""
30994
30995#. type: defvr
32747aa9 30996#: doc/guix.texi:17223
544cab3d
LC
30997#, no-wrap
30998msgid "{Scheme Variable} quassel-service-type"
30999msgstr ""
31000
31001#. type: defvr
32747aa9 31002#: doc/guix.texi:17227
544cab3d
LC
31003msgid "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)."
31004msgstr ""
31005
31006#. type: deftp
32747aa9 31007#: doc/guix.texi:17229
544cab3d
LC
31008#, no-wrap
31009msgid "{Data Type} quassel-configuration"
31010msgstr ""
31011
31012#. type: deftp
32747aa9 31013#: doc/guix.texi:17231
544cab3d
LC
31014msgid "This is the configuration for Quassel, with the following fields:"
31015msgstr ""
31016
31017#. type: item
32747aa9 31018#: doc/guix.texi:17233
544cab3d
LC
31019#, no-wrap
31020msgid "@code{quassel} (default: @code{quassel})"
31021msgstr ""
31022
31023#. type: table
32747aa9 31024#: doc/guix.texi:17235
544cab3d
LC
31025msgid "The Quassel package to use."
31026msgstr ""
31027
31028#. type: item
32747aa9 31029#: doc/guix.texi:17236
544cab3d
LC
31030#, no-wrap
31031msgid "@code{interface} (default: @code{\"::,0.0.0.0\"})"
31032msgstr ""
31033
31034#. type: item
32747aa9 31035#: doc/guix.texi:17237
544cab3d
LC
31036#, no-wrap
31037msgid "@code{port} (default: @code{4242})"
31038msgstr ""
31039
31040#. type: table
32747aa9 31041#: doc/guix.texi:17241
544cab3d
LC
31042msgid "Listen on the network interface(s) corresponding to the IPv4 or IPv6 interfaces specified in the comma delimited @var{interface}, on @var{port}."
31043msgstr ""
31044
31045#. type: item
32747aa9 31046#: doc/guix.texi:17242
544cab3d
LC
31047#, no-wrap
31048msgid "@code{loglevel} (default: @code{\"Info\"})"
31049msgstr ""
31050
31051#. type: table
32747aa9 31052#: doc/guix.texi:17245
544cab3d
LC
31053msgid "The level of logging desired. Accepted values are Debug, Info, Warning and Error."
31054msgstr ""
31055
31056#. type: cindex
32747aa9 31057#: doc/guix.texi:17251
544cab3d
LC
31058#, no-wrap
31059msgid "Murmur (VoIP server)"
31060msgstr ""
31061
31062#. type: cindex
32747aa9 31063#: doc/guix.texi:17252
544cab3d
LC
31064#, no-wrap
31065msgid "VoIP server"
31066msgstr ""
31067
31068#. type: Plain text
32747aa9 31069#: doc/guix.texi:17256
544cab3d
LC
31070msgid "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."
31071msgstr ""
31072
31073#. type: deftp
32747aa9 31074#: doc/guix.texi:17257
544cab3d
LC
31075#, no-wrap
31076msgid "{Data Type} murmur-configuration"
31077msgstr ""
31078
31079#. type: deftp
32747aa9 31080#: doc/guix.texi:17260
544cab3d
LC
31081msgid "The service type for the Murmur server. An example configuration can look like this:"
31082msgstr ""
31083
31084#. type: example
32747aa9 31085#: doc/guix.texi:17269
544cab3d
LC
31086#, no-wrap
31087msgid ""
31088"(service murmur-service-type\n"
31089" (murmur-configuration\n"
31090" (welcome-text\n"
31091" \"Welcome to this Mumble server running on Guix!\")\n"
31092" (cert-required? #t) ;disallow text password logins\n"
31093" (ssl-cert \"/etc/letsencrypt/live/mumble.example.com/fullchain.pem\")\n"
31094" (ssl-key \"/etc/letsencrypt/live/mumble.example.com/privkey.pem\")))\n"
31095msgstr ""
31096
31097#. type: deftp
32747aa9 31098#: doc/guix.texi:17273
544cab3d
LC
31099msgid "After reconfiguring your system, you can manually set the murmur @code{SuperUser} password with the command that is printed during the activation phase."
31100msgstr ""
31101
31102#. type: deftp
32747aa9 31103#: doc/guix.texi:17282
544cab3d
LC
31104msgid "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."
31105msgstr ""
31106
31107#. type: deftp
32747aa9 31108#: doc/guix.texi:17284
544cab3d
LC
31109msgid "Available @code{murmur-configuration} fields are:"
31110msgstr ""
31111
31112#. type: item
32747aa9 31113#: doc/guix.texi:17286
544cab3d
LC
31114#, no-wrap
31115msgid "@code{package} (default: @code{mumble})"
31116msgstr ""
31117
31118#. type: table
32747aa9 31119#: doc/guix.texi:17288
544cab3d
LC
31120msgid "Package that contains @code{bin/murmurd}."
31121msgstr ""
31122
31123#. type: item
32747aa9 31124#: doc/guix.texi:17289
544cab3d
LC
31125#, no-wrap
31126msgid "@code{user} (default: @code{\"murmur\"})"
31127msgstr ""
31128
31129#. type: table
32747aa9 31130#: doc/guix.texi:17291
544cab3d
LC
31131msgid "User who will run the Murmur server."
31132msgstr ""
31133
31134#. type: item
32747aa9 31135#: doc/guix.texi:17292
544cab3d
LC
31136#, no-wrap
31137msgid "@code{group} (default: @code{\"murmur\"})"
31138msgstr ""
31139
31140#. type: table
32747aa9 31141#: doc/guix.texi:17294
544cab3d
LC
31142msgid "Group of the user who will run the murmur server."
31143msgstr ""
31144
31145#. type: item
32747aa9 31146#: doc/guix.texi:17295
544cab3d
LC
31147#, no-wrap
31148msgid "@code{port} (default: @code{64738})"
31149msgstr ""
31150
31151#. type: table
32747aa9 31152#: doc/guix.texi:17297
544cab3d
LC
31153msgid "Port on which the server will listen."
31154msgstr ""
31155
31156#. type: item
32747aa9 31157#: doc/guix.texi:17298
544cab3d
LC
31158#, no-wrap
31159msgid "@code{welcome-text} (default: @code{\"\"})"
31160msgstr ""
31161
31162#. type: table
32747aa9 31163#: doc/guix.texi:17300
544cab3d
LC
31164msgid "Welcome text sent to clients when they connect."
31165msgstr ""
31166
31167#. type: item
32747aa9 31168#: doc/guix.texi:17301
544cab3d
LC
31169#, no-wrap
31170msgid "@code{server-password} (default: @code{\"\"})"
31171msgstr ""
31172
31173#. type: table
32747aa9 31174#: doc/guix.texi:17303
544cab3d
LC
31175msgid "Password the clients have to enter in order to connect."
31176msgstr ""
31177
31178#. type: item
32747aa9 31179#: doc/guix.texi:17304
544cab3d
LC
31180#, no-wrap
31181msgid "@code{max-users} (default: @code{100})"
31182msgstr ""
31183
31184#. type: table
32747aa9 31185#: doc/guix.texi:17306
544cab3d
LC
31186msgid "Maximum of users that can be connected to the server at once."
31187msgstr ""
31188
31189#. type: item
32747aa9 31190#: doc/guix.texi:17307
544cab3d
LC
31191#, no-wrap
31192msgid "@code{max-user-bandwidth} (default: @code{#f})"
31193msgstr ""
31194
31195#. type: table
32747aa9 31196#: doc/guix.texi:17309
544cab3d
LC
31197msgid "Maximum voice traffic a user can send per second."
31198msgstr ""
31199
31200#. type: item
32747aa9 31201#: doc/guix.texi:17310
544cab3d
LC
31202#, no-wrap
31203msgid "@code{database-file} (default: @code{\"/var/lib/murmur/db.sqlite\"})"
31204msgstr ""
31205
31206#. type: table
32747aa9 31207#: doc/guix.texi:17313
544cab3d
LC
31208msgid "File name of the sqlite database. The service's user will become the owner of the directory."
31209msgstr ""
31210
31211#. type: item
32747aa9 31212#: doc/guix.texi:17314
544cab3d
LC
31213#, no-wrap
31214msgid "@code{log-file} (default: @code{\"/var/log/murmur/murmur.log\"})"
31215msgstr ""
31216
31217#. type: table
32747aa9 31218#: doc/guix.texi:17317
544cab3d
LC
31219msgid "File name of the log file. The service's user will become the owner of the directory."
31220msgstr ""
31221
31222#. type: item
32747aa9 31223#: doc/guix.texi:17318
544cab3d
LC
31224#, no-wrap
31225msgid "@code{autoban-attempts} (default: @code{10})"
31226msgstr ""
31227
31228#. type: table
32747aa9 31229#: doc/guix.texi:17321
544cab3d
LC
31230msgid "Maximum number of logins a user can make in @code{autoban-timeframe} without getting auto banned for @code{autoban-time}."
31231msgstr ""
31232
31233#. type: item
32747aa9 31234#: doc/guix.texi:17322
544cab3d
LC
31235#, no-wrap
31236msgid "@code{autoban-timeframe} (default: @code{120})"
31237msgstr ""
31238
31239#. type: table
32747aa9 31240#: doc/guix.texi:17324
544cab3d
LC
31241msgid "Timeframe for autoban in seconds."
31242msgstr ""
31243
31244#. type: item
32747aa9 31245#: doc/guix.texi:17325
544cab3d
LC
31246#, no-wrap
31247msgid "@code{autoban-time} (default: @code{300})"
31248msgstr ""
31249
31250#. type: table
32747aa9 31251#: doc/guix.texi:17328
544cab3d
LC
31252msgid "Amount of time in seconds for which a client gets banned when violating the autoban limits."
31253msgstr ""
31254
31255#. type: item
32747aa9 31256#: doc/guix.texi:17329
544cab3d
LC
31257#, no-wrap
31258msgid "@code{opus-threshold} (default: @code{100})"
31259msgstr ""
31260
31261#. type: table
32747aa9 31262#: doc/guix.texi:17332
544cab3d
LC
31263msgid "Percentage of clients that need to support opus before switching over to opus audio codec."
31264msgstr ""
31265
31266#. type: item
32747aa9 31267#: doc/guix.texi:17333
544cab3d
LC
31268#, no-wrap
31269msgid "@code{channel-nesting-limit} (default: @code{10})"
31270msgstr ""
31271
31272#. type: table
32747aa9 31273#: doc/guix.texi:17335
544cab3d
LC
31274msgid "How deep channels can be nested at maximum."
31275msgstr ""
31276
31277#. type: item
32747aa9 31278#: doc/guix.texi:17336
544cab3d
LC
31279#, no-wrap
31280msgid "@code{channelname-regex} (default: @code{#f})"
31281msgstr ""
31282
31283#. type: table
32747aa9 31284#: doc/guix.texi:17338
544cab3d
LC
31285msgid "A string in form of a Qt regular expression that channel names must conform to."
31286msgstr ""
31287
31288#. type: item
32747aa9 31289#: doc/guix.texi:17339
544cab3d
LC
31290#, no-wrap
31291msgid "@code{username-regex} (default: @code{#f})"
31292msgstr ""
31293
31294#. type: table
32747aa9 31295#: doc/guix.texi:17341
544cab3d
LC
31296msgid "A string in form of a Qt regular expression that user names must conform to."
31297msgstr ""
31298
31299#. type: item
32747aa9 31300#: doc/guix.texi:17342
544cab3d
LC
31301#, no-wrap
31302msgid "@code{text-message-length} (default: @code{5000})"
31303msgstr ""
31304
31305#. type: table
32747aa9 31306#: doc/guix.texi:17344
544cab3d
LC
31307msgid "Maximum size in bytes that a user can send in one text chat message."
31308msgstr ""
31309
31310#. type: item
32747aa9 31311#: doc/guix.texi:17345
544cab3d
LC
31312#, no-wrap
31313msgid "@code{image-message-length} (default: @code{(* 128 1024)})"
31314msgstr ""
31315
31316#. type: table
32747aa9 31317#: doc/guix.texi:17347
544cab3d
LC
31318msgid "Maximum size in bytes that a user can send in one image message."
31319msgstr ""
31320
31321#. type: item
32747aa9 31322#: doc/guix.texi:17348
544cab3d
LC
31323#, no-wrap
31324msgid "@code{cert-required?} (default: @code{#f})"
31325msgstr ""
31326
31327#. type: table
32747aa9 31328#: doc/guix.texi:17351
544cab3d
LC
31329msgid "If it is set to @code{#t} clients that use weak password authentification will not be accepted. Users must have completed the certificate wizard to join."
31330msgstr ""
31331
31332#. type: item
32747aa9 31333#: doc/guix.texi:17352
544cab3d
LC
31334#, no-wrap
31335msgid "@code{remember-channel?} (default: @code{#f})"
31336msgstr ""
31337
31338#. type: table
32747aa9 31339#: doc/guix.texi:17355
544cab3d
LC
31340msgid "Should murmur remember the last channel each user was in when they disconnected and put them into the remembered channel when they rejoin."
31341msgstr ""
31342
31343#. type: item
32747aa9 31344#: doc/guix.texi:17356
544cab3d
LC
31345#, no-wrap
31346msgid "@code{allow-html?} (default: @code{#f})"
31347msgstr ""
31348
31349#. type: table
32747aa9 31350#: doc/guix.texi:17358
544cab3d
LC
31351msgid "Should html be allowed in text messages, user comments, and channel descriptions."
31352msgstr ""
31353
31354#. type: item
32747aa9 31355#: doc/guix.texi:17359
544cab3d
LC
31356#, no-wrap
31357msgid "@code{allow-ping?} (default: @code{#f})"
31358msgstr ""
31359
31360#. type: table
32747aa9 31361#: doc/guix.texi:17363
544cab3d
LC
31362msgid "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."
31363msgstr ""
31364
31365#. type: table
32747aa9 31366#: doc/guix.texi:17365
544cab3d
LC
31367msgid "Disabling this setting will prevent public listing of the server."
31368msgstr ""
31369
31370#. type: item
32747aa9 31371#: doc/guix.texi:17366
544cab3d
LC
31372#, no-wrap
31373msgid "@code{bonjour?} (default: @code{#f})"
31374msgstr ""
31375
31376#. type: table
32747aa9 31377#: doc/guix.texi:17368
544cab3d
LC
31378msgid "Should the server advertise itself in the local network through the bonjour protocol."
31379msgstr ""
31380
31381#. type: item
32747aa9 31382#: doc/guix.texi:17369
544cab3d
LC
31383#, no-wrap
31384msgid "@code{send-version?} (default: @code{#f})"
31385msgstr ""
31386
31387#. type: table
32747aa9 31388#: doc/guix.texi:17371
544cab3d
LC
31389msgid "Should the murmur server version be exposed in ping requests."
31390msgstr ""
31391
31392#. type: item
32747aa9 31393#: doc/guix.texi:17372
544cab3d
LC
31394#, no-wrap
31395msgid "@code{log-days} (default: @code{31})"
31396msgstr ""
31397
31398#. type: table
32747aa9 31399#: doc/guix.texi:17376
544cab3d
LC
31400msgid "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."
31401msgstr ""
31402
31403#. type: item
32747aa9 31404#: doc/guix.texi:17377
544cab3d
LC
31405#, no-wrap
31406msgid "@code{obfuscate-ips?} (default: @code{#t})"
31407msgstr ""
31408
31409#. type: table
32747aa9 31410#: doc/guix.texi:17379
544cab3d
LC
31411msgid "Should logged ips be obfuscated to protect the privacy of users."
31412msgstr ""
31413
31414#. type: item
32747aa9 31415#: doc/guix.texi:17380
544cab3d
LC
31416#, no-wrap
31417msgid "@code{ssl-cert} (default: @code{#f})"
31418msgstr ""
31419
31420#. type: table
32747aa9 31421#: doc/guix.texi:17382
544cab3d
LC
31422msgid "File name of the SSL/TLS certificate used for encrypted connections."
31423msgstr ""
31424
31425#. type: example
32747aa9 31426#: doc/guix.texi:17385
544cab3d
LC
31427#, no-wrap
31428msgid "(ssl-cert \"/etc/letsencrypt/live/example.com/fullchain.pem\")\n"
31429msgstr ""
31430
31431#. type: item
32747aa9 31432#: doc/guix.texi:17386
544cab3d
LC
31433#, no-wrap
31434msgid "@code{ssl-key} (default: @code{#f})"
31435msgstr ""
31436
31437#. type: table
32747aa9 31438#: doc/guix.texi:17388
544cab3d
LC
31439msgid "Filepath to the ssl private key used for encrypted connections."
31440msgstr ""
31441
31442#. type: example
32747aa9 31443#: doc/guix.texi:17390
544cab3d
LC
31444#, no-wrap
31445msgid "(ssl-key \"/etc/letsencrypt/live/example.com/privkey.pem\")\n"
31446msgstr ""
31447
31448#. type: item
32747aa9 31449#: doc/guix.texi:17392
544cab3d
LC
31450#, no-wrap
31451msgid "@code{ssl-dh-params} (default: @code{#f})"
31452msgstr ""
31453
31454#. type: table
32747aa9 31455#: doc/guix.texi:17397
544cab3d
LC
31456msgid "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."
31457msgstr ""
31458
31459#. type: item
32747aa9 31460#: doc/guix.texi:17398
544cab3d
LC
31461#, no-wrap
31462msgid "@code{ssl-ciphers} (default: @code{#f})"
31463msgstr ""
31464
31465#. type: table
32747aa9 31466#: doc/guix.texi:17401
544cab3d
LC
31467msgid "The @code{ssl-ciphers} option chooses the cipher suites to make available for use in SSL/TLS."
31468msgstr ""
31469
31470#. type: table
32747aa9 31471#: doc/guix.texi:17405
544cab3d
LC
31472msgid "This option is specified using @uref{https://www.openssl.org/docs/apps/ciphers.html#CIPHER-LIST-FORMAT, OpenSSL cipher list notation}."
31473msgstr ""
31474
31475#. type: table
32747aa9 31476#: doc/guix.texi:17410
544cab3d
LC
31477msgid "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."
31478msgstr ""
31479
31480#. type: table
32747aa9 31481#: doc/guix.texi:17414
544cab3d
LC
31482msgid "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."
31483msgstr ""
31484
31485#. type: item
32747aa9 31486#: doc/guix.texi:17415
544cab3d
LC
31487#, no-wrap
31488msgid "@code{public-registration} (default: @code{#f})"
31489msgstr ""
31490
31491#. type: table
32747aa9 31492#: doc/guix.texi:17417
544cab3d
LC
31493msgid "Must be a @code{<murmur-public-registration-configuration>} record or @code{#f}."
31494msgstr ""
31495
31496#. type: table
32747aa9 31497#: doc/guix.texi:17422
544cab3d
LC
31498msgid "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}."
31499msgstr ""
31500
31501#. type: table
32747aa9 31502#: doc/guix.texi:17424
544cab3d
LC
31503msgid "It might take a few hours until it shows up in the public list."
31504msgstr ""
31505
31506#. type: item
32747aa9 31507#: doc/guix.texi:17425 doc/guix.texi:18856
544cab3d
LC
31508#, no-wrap
31509msgid "@code{file} (default: @code{#f})"
31510msgstr ""
31511
31512#. type: table
32747aa9 31513#: doc/guix.texi:17427
544cab3d
LC
31514msgid "Optional alternative override for this configuration."
31515msgstr ""
31516
31517#. type: deftp
32747aa9 31518#: doc/guix.texi:17430
544cab3d
LC
31519#, no-wrap
31520msgid "{Data Type} murmur-public-registration-configuration"
31521msgstr ""
31522
31523#. type: deftp
32747aa9 31524#: doc/guix.texi:17432
544cab3d
LC
31525msgid "Configuration for public registration of a murmur service."
31526msgstr ""
31527
31528#. type: table
32747aa9 31529#: doc/guix.texi:17436
544cab3d
LC
31530msgid "This is a display name for your server. Not to be confused with the hostname."
31531msgstr ""
31532
31533#. type: itemx
32747aa9 31534#: doc/guix.texi:17437 doc/guix.texi:23817
544cab3d
LC
31535#, no-wrap
31536msgid "password"
31537msgstr ""
31538
31539#. type: table
32747aa9 31540#: doc/guix.texi:17440
544cab3d
LC
31541msgid "A password to identify your registration. Subsequent updates will need the same password. Don't lose your password."
31542msgstr ""
31543
31544#. type: code{#1}
32747aa9 31545#: doc/guix.texi:17441
544cab3d
LC
31546#, no-wrap
31547msgid "url"
31548msgstr ""
31549
31550#. type: table
32747aa9 31551#: doc/guix.texi:17444
544cab3d
LC
31552msgid "This should be a @code{http://} or @code{https://} link to your web site."
31553msgstr ""
31554
31555#. type: item
32747aa9 31556#: doc/guix.texi:17445
544cab3d
LC
31557#, no-wrap
31558msgid "@code{hostname} (default: @code{#f})"
31559msgstr ""
31560
31561#. type: table
32747aa9 31562#: doc/guix.texi:17448
544cab3d
LC
31563msgid "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."
31564msgstr ""
31565
31566#. type: subsubheading
32747aa9 31567#: doc/guix.texi:17456
544cab3d
LC
31568#, no-wrap
31569msgid "Tailon Service"
31570msgstr ""
31571
31572#. type: Plain text
32747aa9 31573#: doc/guix.texi:17460
544cab3d
LC
31574msgid "@uref{https://tailon.readthedocs.io/, Tailon} is a web application for viewing and searching log files."
31575msgstr ""
31576
31577#. type: Plain text
32747aa9 31578#: doc/guix.texi:17463
544cab3d
LC
31579msgid "The following example will configure the service with default values. By default, Tailon can be accessed on port 8080 (@code{http://localhost:8080})."
31580msgstr ""
31581
31582#. type: example
32747aa9 31583#: doc/guix.texi:17466
544cab3d
LC
31584#, no-wrap
31585msgid "(service tailon-service-type)\n"
31586msgstr ""
31587
31588#. type: Plain text
32747aa9 31589#: doc/guix.texi:17470
544cab3d
LC
31590msgid "The following example customises more of the Tailon configuration, adding @command{sed} to the list of allowed commands."
31591msgstr ""
31592
31593#. type: example
32747aa9 31594#: doc/guix.texi:17477
544cab3d
LC
31595#, no-wrap
31596msgid ""
31597"(service tailon-service-type\n"
31598" (tailon-configuration\n"
31599" (config-file\n"
31600" (tailon-configuration-file\n"
31601" (allowed-commands '(\"tail\" \"grep\" \"awk\" \"sed\"))))))\n"
31602msgstr ""
31603
31604#. type: deftp
32747aa9 31605#: doc/guix.texi:17480
544cab3d
LC
31606#, no-wrap
31607msgid "{Data Type} tailon-configuration"
31608msgstr ""
31609
31610#. type: deftp
32747aa9 31611#: doc/guix.texi:17483
544cab3d
LC
31612msgid "Data type representing the configuration of Tailon. This type has the following parameters:"
31613msgstr ""
31614
31615#. type: item
32747aa9 31616#: doc/guix.texi:17485
544cab3d
LC
31617#, no-wrap
31618msgid "@code{config-file} (default: @code{(tailon-configuration-file)})"
31619msgstr ""
31620
31621#. type: table
32747aa9 31622#: doc/guix.texi:17489
544cab3d
LC
31623msgid "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})."
31624msgstr ""
31625
31626#. type: table
32747aa9 31627#: doc/guix.texi:17492
544cab3d
LC
31628msgid "For example, to instead use a local file, the @code{local-file} function can be used:"
31629msgstr ""
31630
31631#. type: example
32747aa9 31632#: doc/guix.texi:17497
544cab3d
LC
31633#, no-wrap
31634msgid ""
31635"(service tailon-service-type\n"
31636" (tailon-configuration\n"
31637" (config-file (local-file \"./my-tailon.conf\"))))\n"
31638msgstr ""
31639
31640#. type: item
32747aa9 31641#: doc/guix.texi:17499
544cab3d
LC
31642#, no-wrap
31643msgid "@code{package} (default: @code{tailon})"
31644msgstr ""
31645
31646#. type: table
32747aa9 31647#: doc/guix.texi:17501
544cab3d
LC
31648msgid "The tailon package to use."
31649msgstr ""
31650
31651#. type: deftp
32747aa9 31652#: doc/guix.texi:17505
544cab3d
LC
31653#, no-wrap
31654msgid "{Data Type} tailon-configuration-file"
31655msgstr ""
31656
31657#. type: deftp
32747aa9 31658#: doc/guix.texi:17508
544cab3d
LC
31659msgid "Data type representing the configuration options for Tailon. This type has the following parameters:"
31660msgstr ""
31661
31662#. type: item
32747aa9 31663#: doc/guix.texi:17510
544cab3d
LC
31664#, no-wrap
31665msgid "@code{files} (default: @code{(list \"/var/log\")})"
31666msgstr ""
31667
31668#. type: table
32747aa9 31669#: doc/guix.texi:17515
544cab3d
LC
31670msgid "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."
31671msgstr ""
31672
31673#. type: item
32747aa9 31674#: doc/guix.texi:17516
544cab3d
LC
31675#, no-wrap
31676msgid "@code{bind} (default: @code{\"localhost:8080\"})"
31677msgstr ""
31678
31679#. type: table
32747aa9 31680#: doc/guix.texi:17518
544cab3d
LC
31681msgid "Address and port to which Tailon should bind on."
31682msgstr ""
31683
31684#. type: item
32747aa9 31685#: doc/guix.texi:17519
544cab3d
LC
31686#, no-wrap
31687msgid "@code{relative-root} (default: @code{#f})"
31688msgstr ""
31689
31690#. type: table
32747aa9 31691#: doc/guix.texi:17521
544cab3d
LC
31692msgid "URL path to use for Tailon, set to @code{#f} to not use a path."
31693msgstr ""
31694
31695#. type: item
32747aa9 31696#: doc/guix.texi:17522
544cab3d
LC
31697#, no-wrap
31698msgid "@code{allow-transfers?} (default: @code{#t})"
31699msgstr ""
31700
31701#. type: table
32747aa9 31702#: doc/guix.texi:17524
544cab3d
LC
31703msgid "Allow downloading the log files in the web interface."
31704msgstr ""
31705
31706#. type: item
32747aa9 31707#: doc/guix.texi:17525
544cab3d
LC
31708#, no-wrap
31709msgid "@code{follow-names?} (default: @code{#t})"
31710msgstr ""
31711
31712#. type: table
32747aa9 31713#: doc/guix.texi:17527
544cab3d
LC
31714msgid "Allow tailing of not-yet existent files."
31715msgstr ""
31716
31717#. type: item
32747aa9 31718#: doc/guix.texi:17528
544cab3d
LC
31719#, no-wrap
31720msgid "@code{tail-lines} (default: @code{200})"
31721msgstr ""
31722
31723#. type: table
32747aa9 31724#: doc/guix.texi:17530
544cab3d
LC
31725msgid "Number of lines to read initially from each file."
31726msgstr ""
31727
31728#. type: item
32747aa9 31729#: doc/guix.texi:17531
544cab3d
LC
31730#, no-wrap
31731msgid "@code{allowed-commands} (default: @code{(list \"tail\" \"grep\" \"awk\")})"
31732msgstr ""
31733
31734#. type: table
32747aa9 31735#: doc/guix.texi:17533
544cab3d
LC
31736msgid "Commands to allow running. By default, @code{sed} is disabled."
31737msgstr ""
31738
31739#. type: item
32747aa9 31740#: doc/guix.texi:17534
544cab3d
LC
31741#, no-wrap
31742msgid "@code{debug?} (default: @code{#f})"
31743msgstr ""
31744
31745#. type: table
32747aa9 31746#: doc/guix.texi:17536
544cab3d
LC
31747msgid "Set @code{debug?} to @code{#t} to show debug messages."
31748msgstr ""
31749
31750#. type: item
32747aa9 31751#: doc/guix.texi:17537
544cab3d
LC
31752#, no-wrap
31753msgid "@code{wrap-lines} (default: @code{#t})"
31754msgstr ""
31755
31756#. type: table
32747aa9 31757#: doc/guix.texi:17541
544cab3d
LC
31758msgid "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."
31759msgstr ""
31760
31761#. type: item
32747aa9 31762#: doc/guix.texi:17542
544cab3d
LC
31763#, no-wrap
31764msgid "@code{http-auth} (default: @code{#f})"
31765msgstr ""
31766
31767#. type: table
32747aa9 31768#: doc/guix.texi:17546
544cab3d
LC
31769msgid "HTTP authentication type to use. Set to @code{#f} to disable authentication (the default). Supported values are @code{\"digest\"} or @code{\"basic\"}."
31770msgstr ""
31771
31772#. type: item
32747aa9 31773#: doc/guix.texi:17547
544cab3d
LC
31774#, no-wrap
31775msgid "@code{users} (default: @code{#f})"
31776msgstr ""
31777
31778#. type: table
32747aa9 31779#: doc/guix.texi:17552
544cab3d
LC
31780msgid "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."
31781msgstr ""
31782
31783#. type: example
32747aa9 31784#: doc/guix.texi:17558
544cab3d
LC
31785#, no-wrap
31786msgid ""
31787"(tailon-configuration-file\n"
31788" (http-auth \"basic\")\n"
31789" (users '((\"user1\" . \"password1\")\n"
31790" (\"user2\" . \"password2\"))))\n"
31791msgstr ""
31792
31793#. type: subsubheading
32747aa9 31794#: doc/guix.texi:17564
544cab3d
LC
31795#, no-wrap
31796msgid "Darkstat Service"
31797msgstr ""
31798
31799#. type: cindex
32747aa9 31800#: doc/guix.texi:17565
544cab3d
LC
31801#, no-wrap
31802msgid "darkstat"
31803msgstr ""
31804
31805#. type: Plain text
32747aa9 31806#: doc/guix.texi:17568
544cab3d
LC
31807msgid "Darkstat is a packet sniffer that captures network traffic, calculates statistics about usage, and serves reports over HTTP."
31808msgstr ""
31809
31810#. type: defvar
32747aa9 31811#: doc/guix.texi:17569
544cab3d
LC
31812#, no-wrap
31813msgid "{Scheme Variable} darkstat-service-type"
31814msgstr ""
31815
31816#. type: defvar
32747aa9 31817#: doc/guix.texi:17574
544cab3d
LC
31818msgid "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:"
31819msgstr ""
31820
31821#. type: example
32747aa9 31822#: doc/guix.texi:17579
544cab3d
LC
31823#, no-wrap
31824msgid ""
31825"(service darkstat-service-type\n"
31826" (darkstat-configuration\n"
31827" (interface \"eno1\")))\n"
31828msgstr ""
31829
31830#. type: deftp
32747aa9 31831#: doc/guix.texi:17582
544cab3d
LC
31832#, no-wrap
31833msgid "{Data Type} darkstat-configuration"
31834msgstr ""
31835
31836#. type: deftp
32747aa9 31837#: doc/guix.texi:17584
544cab3d
LC
31838msgid "Data type representing the configuration of @command{darkstat}."
31839msgstr ""
31840
31841#. type: item
32747aa9 31842#: doc/guix.texi:17586
544cab3d
LC
31843#, no-wrap
31844msgid "@code{package} (default: @code{darkstat})"
31845msgstr ""
31846
31847#. type: table
32747aa9 31848#: doc/guix.texi:17588
544cab3d
LC
31849msgid "The darkstat package to use."
31850msgstr ""
31851
31852#. type: code{#1}
32747aa9 31853#: doc/guix.texi:17589
544cab3d
LC
31854#, no-wrap
31855msgid "interface"
31856msgstr ""
31857
31858#. type: table
32747aa9 31859#: doc/guix.texi:17591
544cab3d
LC
31860msgid "Capture traffic on the specified network interface."
31861msgstr ""
31862
31863#. type: item
32747aa9 31864#: doc/guix.texi:17592
544cab3d
LC
31865#, no-wrap
31866msgid "@code{port} (default: @code{\"667\"})"
31867msgstr ""
31868
31869#. type: table
32747aa9 31870#: doc/guix.texi:17594
544cab3d
LC
31871msgid "Bind the web interface to the specified port."
31872msgstr ""
31873
31874#. type: item
32747aa9 31875#: doc/guix.texi:17595
544cab3d
LC
31876#, no-wrap
31877msgid "@code{bind-address} (default: @code{\"127.0.0.1\"})"
31878msgstr ""
31879
31880#. type: table
32747aa9 31881#: doc/guix.texi:17597 doc/guix.texi:17635
544cab3d
LC
31882msgid "Bind the web interface to the specified address."
31883msgstr ""
31884
31885#. type: item
32747aa9 31886#: doc/guix.texi:17598
544cab3d
LC
31887#, no-wrap
31888msgid "@code{base} (default: @code{\"/\"})"
31889msgstr ""
31890
31891#. type: table
32747aa9 31892#: doc/guix.texi:17601
544cab3d
LC
31893msgid "Specify the path of the base URL. This can be useful if @command{darkstat} is accessed via a reverse proxy."
31894msgstr ""
31895
31896#. type: subsubheading
32747aa9 31897#: doc/guix.texi:17605
544cab3d
LC
31898#, no-wrap
31899msgid "Prometheus Node Exporter Service"
31900msgstr ""
31901
31902#. type: cindex
32747aa9 31903#: doc/guix.texi:17607
544cab3d
LC
31904#, no-wrap
31905msgid "prometheus-node-exporter"
31906msgstr ""
31907
31908#. type: Plain text
32747aa9 31909#: doc/guix.texi:17612
544cab3d
LC
31910msgid "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."
31911msgstr ""
31912
31913#. type: defvar
32747aa9 31914#: doc/guix.texi:17613
544cab3d
LC
31915#, no-wrap
31916msgid "{Scheme variable} prometheus-node-exporter-service-type"
31917msgstr ""
31918
31919#. type: defvar
32747aa9 31920#: doc/guix.texi:17618
544cab3d
LC
31921msgid "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:"
31922msgstr ""
31923
31924#. type: example
32747aa9 31925#: doc/guix.texi:17623
544cab3d
LC
31926#, no-wrap
31927msgid ""
31928"(service prometheus-node-exporter-service-type\n"
31929" (prometheus-node-exporter-configuration\n"
31930" (web-listen-address \":9100\")))\n"
31931msgstr ""
31932
31933#. type: deftp
32747aa9 31934#: doc/guix.texi:17626
544cab3d
LC
31935#, no-wrap
31936msgid "{Data Type} prometheus-node-exporter-configuration"
31937msgstr ""
31938
31939#. type: deftp
32747aa9 31940#: doc/guix.texi:17628
544cab3d
LC
31941msgid "Data type representing the configuration of @command{node_exporter}."
31942msgstr ""
31943
31944#. type: item
32747aa9 31945#: doc/guix.texi:17630
544cab3d
LC
31946#, no-wrap
31947msgid "@code{package} (default: @code{go-github-com-prometheus-node-exporter})"
31948msgstr ""
31949
31950#. type: table
32747aa9 31951#: doc/guix.texi:17632
544cab3d
LC
31952msgid "The prometheus-node-exporter package to use."
31953msgstr ""
31954
31955#. type: item
32747aa9 31956#: doc/guix.texi:17633
544cab3d
LC
31957#, no-wrap
31958msgid "@code{web-listen-address} (default: @code{\":9100\"})"
31959msgstr ""
31960
31961#. type: subsubheading
32747aa9 31962#: doc/guix.texi:17639
544cab3d
LC
31963#, no-wrap
31964msgid "Zabbix server"
31965msgstr ""
31966
31967#. type: cindex
32747aa9 31968#: doc/guix.texi:17640
544cab3d
LC
31969#, no-wrap
31970msgid "zabbix zabbix-server"
31971msgstr ""
31972
31973#. type: Plain text
32747aa9 31974#: doc/guix.texi:17643
544cab3d
LC
31975msgid "Zabbix provides monitoring metrics, among others network utilization, CPU load and disk space consumption:"
31976msgstr ""
31977
31978#. type: item
32747aa9 31979#: doc/guix.texi:17645
544cab3d
LC
31980#, no-wrap
31981msgid "High performance, high capacity (able to monitor hundreds of thousands of devices)."
31982msgstr ""
31983
31984#. type: item
32747aa9 31985#: doc/guix.texi:17646
544cab3d
LC
31986#, no-wrap
31987msgid "Auto-discovery of servers and network devices and interfaces."
31988msgstr ""
31989
31990#. type: item
32747aa9 31991#: doc/guix.texi:17647
544cab3d
LC
31992#, no-wrap
31993msgid "Low-level discovery, allows to automatically start monitoring new items, file systems or network interfaces among others."
31994msgstr ""
31995
31996#. type: item
32747aa9 31997#: doc/guix.texi:17648
544cab3d
LC
31998#, no-wrap
31999msgid "Distributed monitoring with centralized web administration."
32000msgstr ""
32001
32002#. type: item
32747aa9 32003#: doc/guix.texi:17649
544cab3d
LC
32004#, no-wrap
32005msgid "Native high performance agents."
32006msgstr ""
32007
32008#. type: item
32747aa9 32009#: doc/guix.texi:17650
544cab3d
LC
32010#, no-wrap
32011msgid "SLA, and ITIL KPI metrics on reporting."
32012msgstr ""
32013
32014#. type: item
32747aa9 32015#: doc/guix.texi:17651
544cab3d
LC
32016#, no-wrap
32017msgid "High-level (business) view of monitored resources through user-defined visual console screens and dashboards."
32018msgstr ""
32019
32020#. type: item
32747aa9 32021#: doc/guix.texi:17652
544cab3d
LC
32022#, no-wrap
32023msgid "Remote command execution through Zabbix proxies."
32024msgstr ""
32025
32026#. type: Plain text
32747aa9 32027#: doc/guix.texi:17658
544cab3d
LC
32028msgid "Available @code{zabbix-server-configuration} fields are:"
32029msgstr ""
32030
32031#. type: deftypevr
32747aa9 32032#: doc/guix.texi:17659
544cab3d
LC
32033#, no-wrap
32034msgid "{@code{zabbix-server-configuration} parameter} package zabbix-server"
32035msgstr ""
32036
32037#. type: deftypevr
32747aa9 32038#: doc/guix.texi:17661
544cab3d
LC
32039msgid "The zabbix-server package."
32040msgstr ""
32041
32042#. type: deftypevr
32747aa9 32043#: doc/guix.texi:17664
544cab3d
LC
32044#, no-wrap
32045msgid "{@code{zabbix-server-configuration} parameter} string user"
32046msgstr ""
32047
32048#. type: deftypevr
32747aa9 32049#: doc/guix.texi:17666
544cab3d
LC
32050msgid "User who will run the Zabbix server."
32051msgstr ""
32052
32053#. type: deftypevr
32747aa9
LC
32054#: doc/guix.texi:17668 doc/guix.texi:17675 doc/guix.texi:17689
32055#: doc/guix.texi:17696 doc/guix.texi:17797 doc/guix.texi:17804
32056#: doc/guix.texi:17915 doc/guix.texi:17922
544cab3d
LC
32057msgid "Defaults to @samp{\"zabbix\"}."
32058msgstr ""
32059
32060#. type: deftypevr
32747aa9 32061#: doc/guix.texi:17671
544cab3d
LC
32062#, no-wrap
32063msgid "{@code{zabbix-server-configuration} parameter} group group"
32064msgstr ""
32065
32066#. type: deftypevr
32747aa9 32067#: doc/guix.texi:17673
544cab3d
LC
32068msgid "Group who will run the Zabbix server."
32069msgstr ""
32070
32071#. type: deftypevr
32747aa9 32072#: doc/guix.texi:17678
544cab3d
LC
32073#, no-wrap
32074msgid "{@code{zabbix-server-configuration} parameter} string db-host"
32075msgstr ""
32076
32077#. type: deftypevr
32747aa9 32078#: doc/guix.texi:17680 doc/guix.texi:17899
544cab3d
LC
32079msgid "Database host name."
32080msgstr ""
32081
32082#. type: deftypevr
32747aa9 32083#: doc/guix.texi:17682
544cab3d
LC
32084msgid "Defaults to @samp{\"127.0.0.1\"}."
32085msgstr ""
32086
32087#. type: deftypevr
32747aa9 32088#: doc/guix.texi:17685
544cab3d
LC
32089#, no-wrap
32090msgid "{@code{zabbix-server-configuration} parameter} string db-name"
32091msgstr ""
32092
32093#. type: deftypevr
32747aa9 32094#: doc/guix.texi:17687 doc/guix.texi:17913
544cab3d
LC
32095msgid "Database name."
32096msgstr ""
32097
32098#. type: deftypevr
32747aa9 32099#: doc/guix.texi:17692
544cab3d
LC
32100#, no-wrap
32101msgid "{@code{zabbix-server-configuration} parameter} string db-user"
32102msgstr ""
32103
32104#. type: deftypevr
32747aa9 32105#: doc/guix.texi:17694 doc/guix.texi:17920
544cab3d
LC
32106msgid "Database user."
32107msgstr ""
32108
32109#. type: deftypevr
32747aa9 32110#: doc/guix.texi:17699
544cab3d
LC
32111#, no-wrap
32112msgid "{@code{zabbix-server-configuration} parameter} string db-password"
32113msgstr ""
32114
32115#. type: deftypevr
32747aa9 32116#: doc/guix.texi:17702
544cab3d
LC
32117msgid "Database password. Please, use @code{include-files} with @code{DBPassword=SECRET} inside a specified file instead."
32118msgstr ""
32119
32120#. type: deftypevr
32747aa9 32121#: doc/guix.texi:17707
544cab3d
LC
32122#, no-wrap
32123msgid "{@code{zabbix-server-configuration} parameter} number db-port"
32124msgstr ""
32125
32126#. type: deftypevr
32747aa9 32127#: doc/guix.texi:17709 doc/guix.texi:17906
544cab3d
LC
32128msgid "Database port."
32129msgstr ""
32130
32131#. type: deftypevr
32747aa9 32132#: doc/guix.texi:17711 doc/guix.texi:17908
544cab3d
LC
32133msgid "Defaults to @samp{5432}."
32134msgstr ""
32135
32136#. type: deftypevr
32747aa9 32137#: doc/guix.texi:17714
544cab3d
LC
32138#, no-wrap
32139msgid "{@code{zabbix-server-configuration} parameter} string log-type"
32140msgstr ""
32141
32142#. type: deftypevr
32747aa9 32143#: doc/guix.texi:17716 doc/guix.texi:17817
544cab3d
LC
32144msgid "Specifies where log messages are written to:"
32145msgstr ""
32146
32147#. type: itemize
32747aa9 32148#: doc/guix.texi:17720 doc/guix.texi:17821
544cab3d
LC
32149msgid "@code{system} - syslog."
32150msgstr ""
32151
32152#. type: itemize
32747aa9 32153#: doc/guix.texi:17723 doc/guix.texi:17824
544cab3d
LC
32154msgid "@code{file} - file specified with @code{log-file} parameter."
32155msgstr ""
32156
32157#. type: itemize
32747aa9 32158#: doc/guix.texi:17726 doc/guix.texi:17827
544cab3d
LC
32159msgid "@code{console} - standard output."
32160msgstr ""
32161
32162#. type: deftypevr
32747aa9 32163#: doc/guix.texi:17733
544cab3d
LC
32164#, no-wrap
32165msgid "{@code{zabbix-server-configuration} parameter} string log-file"
32166msgstr ""
32167
32168#. type: deftypevr
32747aa9 32169#: doc/guix.texi:17735 doc/guix.texi:17836
544cab3d
LC
32170msgid "Log file name for @code{log-type} @code{file} parameter."
32171msgstr ""
32172
32173#. type: deftypevr
32747aa9 32174#: doc/guix.texi:17737
544cab3d
LC
32175msgid "Defaults to @samp{\"/var/log/zabbix/server.log\"}."
32176msgstr ""
32177
32178#. type: deftypevr
32747aa9 32179#: doc/guix.texi:17740
544cab3d
LC
32180#, no-wrap
32181msgid "{@code{zabbix-server-configuration} parameter} string pid-file"
32182msgstr ""
32183
32184#. type: deftypevr
32747aa9 32185#: doc/guix.texi:17742 doc/guix.texi:17843
544cab3d
LC
32186msgid "Name of PID file."
32187msgstr ""
32188
32189#. type: deftypevr
32747aa9 32190#: doc/guix.texi:17744
544cab3d
LC
32191msgid "Defaults to @samp{\"/var/run/zabbix/zabbix_server.pid\"}."
32192msgstr ""
32193
32194#. type: deftypevr
32747aa9 32195#: doc/guix.texi:17747
544cab3d
LC
32196#, no-wrap
32197msgid "{@code{zabbix-server-configuration} parameter} string ssl-ca-location"
32198msgstr ""
32199
32200#. type: deftypevr
32747aa9 32201#: doc/guix.texi:17750
544cab3d
LC
32202msgid "The location of certificate authority (CA) files for SSL server certificate verification."
32203msgstr ""
32204
32205#. type: deftypevr
32747aa9 32206#: doc/guix.texi:17752
544cab3d
LC
32207msgid "Defaults to @samp{\"/etc/ssl/certs/ca-certificates.crt\"}."
32208msgstr ""
32209
32210#. type: deftypevr
32747aa9 32211#: doc/guix.texi:17755
544cab3d
LC
32212#, no-wrap
32213msgid "{@code{zabbix-server-configuration} parameter} string ssl-cert-location"
32214msgstr ""
32215
32216#. type: deftypevr
32747aa9 32217#: doc/guix.texi:17757
544cab3d
LC
32218msgid "Location of SSL client certificates."
32219msgstr ""
32220
32221#. type: deftypevr
32747aa9 32222#: doc/guix.texi:17759
544cab3d
LC
32223msgid "Defaults to @samp{\"/etc/ssl/certs\"}."
32224msgstr ""
32225
32226#. type: deftypevr
32747aa9 32227#: doc/guix.texi:17762
544cab3d
LC
32228#, no-wrap
32229msgid "{@code{zabbix-server-configuration} parameter} string extra-options"
32230msgstr ""
32231
32232#. type: deftypevr
32747aa9 32233#: doc/guix.texi:17764 doc/guix.texi:17868
544cab3d
LC
32234msgid "Extra options will be appended to Zabbix server configuration file."
32235msgstr ""
32236
32237#. type: deftypevr
32747aa9 32238#: doc/guix.texi:17769
544cab3d
LC
32239#, no-wrap
32240msgid "{@code{zabbix-server-configuration} parameter} include-files include-files"
32241msgstr ""
32242
32243#. type: deftypevr
32747aa9 32244#: doc/guix.texi:17772 doc/guix.texi:17876
544cab3d
LC
32245msgid "You may include individual files or all files in a directory in the configuration file."
32246msgstr ""
32247
32248#. type: subsubheading
32747aa9 32249#: doc/guix.texi:17779
544cab3d
LC
32250#, no-wrap
32251msgid "Zabbix agent"
32252msgstr ""
32253
32254#. type: cindex
32747aa9 32255#: doc/guix.texi:17780
544cab3d
LC
32256#, no-wrap
32257msgid "zabbix zabbix-agent"
32258msgstr ""
32259
32260#. type: Plain text
32747aa9 32261#: doc/guix.texi:17783
544cab3d
LC
32262msgid "Zabbix agent gathers information for Zabbix server."
32263msgstr ""
32264
32265#. type: Plain text
32747aa9 32266#: doc/guix.texi:17787
544cab3d
LC
32267msgid "Available @code{zabbix-agent-configuration} fields are:"
32268msgstr ""
32269
32270#. type: deftypevr
32747aa9 32271#: doc/guix.texi:17788
544cab3d
LC
32272#, no-wrap
32273msgid "{@code{zabbix-agent-configuration} parameter} package zabbix-agent"
32274msgstr ""
32275
32276#. type: deftypevr
32747aa9 32277#: doc/guix.texi:17790
544cab3d
LC
32278msgid "The zabbix-agent package."
32279msgstr ""
32280
32281#. type: deftypevr
32747aa9 32282#: doc/guix.texi:17793
544cab3d
LC
32283#, no-wrap
32284msgid "{@code{zabbix-agent-configuration} parameter} string user"
32285msgstr ""
32286
32287#. type: deftypevr
32747aa9 32288#: doc/guix.texi:17795
544cab3d
LC
32289msgid "User who will run the Zabbix agent."
32290msgstr ""
32291
32292#. type: deftypevr
32747aa9 32293#: doc/guix.texi:17800
544cab3d
LC
32294#, no-wrap
32295msgid "{@code{zabbix-agent-configuration} parameter} group group"
32296msgstr ""
32297
32298#. type: deftypevr
32747aa9 32299#: doc/guix.texi:17802
544cab3d
LC
32300msgid "Group who will run the Zabbix agent."
32301msgstr ""
32302
32303#. type: deftypevr
32747aa9 32304#: doc/guix.texi:17807
544cab3d
LC
32305#, no-wrap
32306msgid "{@code{zabbix-agent-configuration} parameter} string hostname"
32307msgstr ""
32308
32309#. type: deftypevr
32747aa9 32310#: doc/guix.texi:17810
544cab3d
LC
32311msgid "Unique, case sensitive hostname which is required for active checks and must match hostname as configured on the server."
32312msgstr ""
32313
32314#. type: deftypevr
32747aa9 32315#: doc/guix.texi:17812
544cab3d
LC
32316msgid "Defaults to @samp{\"Zabbix server\"}."
32317msgstr ""
32318
32319#. type: deftypevr
32747aa9 32320#: doc/guix.texi:17815
544cab3d
LC
32321#, no-wrap
32322msgid "{@code{zabbix-agent-configuration} parameter} string log-type"
32323msgstr ""
32324
32325#. type: deftypevr
32747aa9 32326#: doc/guix.texi:17834
544cab3d
LC
32327#, no-wrap
32328msgid "{@code{zabbix-agent-configuration} parameter} string log-file"
32329msgstr ""
32330
32331#. type: deftypevr
32747aa9 32332#: doc/guix.texi:17838
544cab3d
LC
32333msgid "Defaults to @samp{\"/var/log/zabbix/agent.log\"}."
32334msgstr ""
32335
32336#. type: deftypevr
32747aa9 32337#: doc/guix.texi:17841
544cab3d
LC
32338#, no-wrap
32339msgid "{@code{zabbix-agent-configuration} parameter} string pid-file"
32340msgstr ""
32341
32342#. type: deftypevr
32747aa9 32343#: doc/guix.texi:17845
544cab3d
LC
32344msgid "Defaults to @samp{\"/var/run/zabbix/zabbix_agent.pid\"}."
32345msgstr ""
32346
32347#. type: deftypevr
32747aa9 32348#: doc/guix.texi:17848
544cab3d
LC
32349#, no-wrap
32350msgid "{@code{zabbix-agent-configuration} parameter} list server"
32351msgstr ""
32352
32353#. type: deftypevr
32747aa9 32354#: doc/guix.texi:17852
544cab3d
LC
32355msgid "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."
32356msgstr ""
32357
32358#. type: deftypevr
32747aa9 32359#: doc/guix.texi:17854 doc/guix.texi:17863
544cab3d
LC
32360msgid "Defaults to @samp{(\"127.0.0.1\")}."
32361msgstr ""
32362
32363#. type: deftypevr
32747aa9 32364#: doc/guix.texi:17857
544cab3d
LC
32365#, no-wrap
32366msgid "{@code{zabbix-agent-configuration} parameter} list server-active"
32367msgstr ""
32368
32369#. type: deftypevr
32747aa9 32370#: doc/guix.texi:17861
544cab3d
LC
32371msgid "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."
32372msgstr ""
32373
32374#. type: deftypevr
32747aa9 32375#: doc/guix.texi:17866
544cab3d
LC
32376#, no-wrap
32377msgid "{@code{zabbix-agent-configuration} parameter} string extra-options"
32378msgstr ""
32379
32380#. type: deftypevr
32747aa9 32381#: doc/guix.texi:17873
544cab3d
LC
32382#, no-wrap
32383msgid "{@code{zabbix-agent-configuration} parameter} include-files include-files"
32384msgstr ""
32385
32386#. type: subsubheading
32747aa9 32387#: doc/guix.texi:17883
544cab3d
LC
32388#, no-wrap
32389msgid "Zabbix front-end"
32390msgstr ""
32391
32392#. type: cindex
32747aa9 32393#: doc/guix.texi:17884
544cab3d
LC
32394#, no-wrap
32395msgid "zabbix zabbix-front-end"
32396msgstr ""
32397
32398#. type: Plain text
32747aa9 32399#: doc/guix.texi:17887
544cab3d
LC
32400msgid "This service provides a WEB interface to Zabbix server."
32401msgstr ""
32402
32403#. type: Plain text
32747aa9 32404#: doc/guix.texi:17891
544cab3d
LC
32405msgid "Available @code{zabbix-front-end-configuration} fields are:"
32406msgstr ""
32407
32408#. type: deftypevr
32747aa9 32409#: doc/guix.texi:17892
544cab3d
LC
32410#, no-wrap
32411msgid "{@code{zabbix-front-end-configuration} parameter} nginx-server-configuration-list nginx"
32412msgstr ""
32413
32414#. type: deftypevr
32747aa9 32415#: doc/guix.texi:17894 doc/guix.texi:22296
544cab3d
LC
32416msgid "NGINX configuration."
32417msgstr ""
32418
32419#. type: deftypevr
32747aa9 32420#: doc/guix.texi:17897
544cab3d
LC
32421#, no-wrap
32422msgid "{@code{zabbix-front-end-configuration} parameter} string db-host"
32423msgstr ""
32424
32425#. type: deftypevr
32747aa9 32426#: doc/guix.texi:17904
544cab3d
LC
32427#, no-wrap
32428msgid "{@code{zabbix-front-end-configuration} parameter} number db-port"
32429msgstr ""
32430
32431#. type: deftypevr
32747aa9 32432#: doc/guix.texi:17911
544cab3d
LC
32433#, no-wrap
32434msgid "{@code{zabbix-front-end-configuration} parameter} string db-name"
32435msgstr ""
32436
32437#. type: deftypevr
32747aa9 32438#: doc/guix.texi:17918
544cab3d
LC
32439#, no-wrap
32440msgid "{@code{zabbix-front-end-configuration} parameter} string db-user"
32441msgstr ""
32442
32443#. type: deftypevr
32747aa9 32444#: doc/guix.texi:17925
544cab3d
LC
32445#, no-wrap
32446msgid "{@code{zabbix-front-end-configuration} parameter} string db-password"
32447msgstr ""
32448
32449#. type: deftypevr
32747aa9 32450#: doc/guix.texi:17927
544cab3d
LC
32451msgid "Database password. Please, use @code{db-secret-file} instead."
32452msgstr ""
32453
32454#. type: deftypevr
32747aa9 32455#: doc/guix.texi:17932
544cab3d
LC
32456#, no-wrap
32457msgid "{@code{zabbix-front-end-configuration} parameter} string db-secret-file"
32458msgstr ""
32459
32460#. type: deftypevr
32747aa9 32461#: doc/guix.texi:17936
544cab3d
LC
32462msgid "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."
32463msgstr ""
32464
32465#. type: deftypevr
32747aa9 32466#: doc/guix.texi:17941
544cab3d
LC
32467#, no-wrap
32468msgid "{@code{zabbix-front-end-configuration} parameter} string zabbix-host"
32469msgstr ""
32470
32471#. type: deftypevr
32747aa9 32472#: doc/guix.texi:17943
544cab3d
LC
32473msgid "Zabbix server hostname."
32474msgstr ""
32475
32476#. type: deftypevr
32747aa9 32477#: doc/guix.texi:17948
544cab3d
LC
32478#, no-wrap
32479msgid "{@code{zabbix-front-end-configuration} parameter} number zabbix-port"
32480msgstr ""
32481
32482#. type: deftypevr
32747aa9 32483#: doc/guix.texi:17950
544cab3d
LC
32484msgid "Zabbix server port."
32485msgstr ""
32486
32487#. type: deftypevr
32747aa9 32488#: doc/guix.texi:17952
544cab3d
LC
32489msgid "Defaults to @samp{10051}."
32490msgstr ""
32491
32492#. type: cindex
32747aa9 32493#: doc/guix.texi:17960
544cab3d
LC
32494#, no-wrap
32495msgid "Kerberos"
32496msgstr ""
32497
32498#. type: Plain text
32747aa9 32499#: doc/guix.texi:17964
544cab3d
LC
32500msgid "The @code{(gnu services kerberos)} module provides services relating to the authentication protocol @dfn{Kerberos}."
32501msgstr ""
32502
32503#. type: subsubheading
32747aa9 32504#: doc/guix.texi:17965
544cab3d
LC
32505#, no-wrap
32506msgid "Krb5 Service"
32507msgstr ""
32508
32509#. type: Plain text
32747aa9 32510#: doc/guix.texi:17972
544cab3d
LC
32511msgid "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."
32512msgstr ""
32513
32514#. type: Plain text
32747aa9 32515#: doc/guix.texi:17976
544cab3d
LC
32516msgid "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."
32517msgstr ""
32518
32519#. type: defvr
32747aa9 32520#: doc/guix.texi:17977
544cab3d
LC
32521#, no-wrap
32522msgid "{Scheme Variable} krb5-service-type"
32523msgstr ""
32524
32525#. type: defvr
32747aa9 32526#: doc/guix.texi:17979
544cab3d
LC
32527msgid "A service type for Kerberos 5 clients."
32528msgstr ""
32529
32530#. type: Plain text
32747aa9 32531#: doc/guix.texi:17983
544cab3d
LC
32532msgid "Here is an example of its use:"
32533msgstr ""
32534
32535#. type: lisp
32747aa9 32536#: doc/guix.texi:17997
544cab3d
LC
32537#, no-wrap
32538msgid ""
32539"(service krb5-service-type\n"
32540" (krb5-configuration\n"
32541" (default-realm \"EXAMPLE.COM\")\n"
32542" (allow-weak-crypto? #t)\n"
32543" (realms (list\n"
32544" (krb5-realm\n"
32545" (name \"EXAMPLE.COM\")\n"
32546" (admin-server \"groucho.example.com\")\n"
32547" (kdc \"karl.example.com\"))\n"
32548" (krb5-realm\n"
32549" (name \"ARGRX.EDU\")\n"
32550" (admin-server \"kerb-admin.argrx.edu\")\n"
32551" (kdc \"keys.argrx.edu\"))))))\n"
32552msgstr ""
32553
32554#. type: Plain text
32747aa9 32555#: doc/guix.texi:18001
544cab3d
LC
32556msgid "This example provides a Kerberos@tie{}5 client configuration which:"
32557msgstr ""
32558
32559#. type: item
32747aa9 32560#: doc/guix.texi:18002
544cab3d
LC
32561#, no-wrap
32562msgid "Recognizes two realms, @i{viz:} ``EXAMPLE.COM'' and ``ARGRX.EDU'', both"
32563msgstr ""
32564
32565#. type: itemize
32747aa9 32566#: doc/guix.texi:18004
544cab3d
LC
32567msgid "of which have distinct administration servers and key distribution centers;"
32568msgstr ""
32569
32570#. type: item
32747aa9 32571#: doc/guix.texi:18004
544cab3d
LC
32572#, no-wrap
32573msgid "Will default to the realm ``EXAMPLE.COM'' if the realm is not explicitly"
32574msgstr ""
32575
32576#. type: itemize
32747aa9 32577#: doc/guix.texi:18006
544cab3d
LC
32578msgid "specified by clients;"
32579msgstr ""
32580
32581#. type: item
32747aa9 32582#: doc/guix.texi:18006
544cab3d
LC
32583#, no-wrap
32584msgid "Accepts services which only support encryption types known to be weak."
32585msgstr ""
32586
32587#. type: Plain text
32747aa9
LC
32588#: doc/guix.texi:18014
32589msgid "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."
544cab3d
LC
32590msgstr ""
32591
32592#. type: deftp
32747aa9 32593#: doc/guix.texi:18016
544cab3d
LC
32594#, no-wrap
32595msgid "{Data Type} krb5-realm"
32596msgstr ""
32597
32598#. type: cindex
32747aa9 32599#: doc/guix.texi:18017
544cab3d
LC
32600#, no-wrap
32601msgid "realm, kerberos"
32602msgstr ""
32603
32604#. type: table
32747aa9 32605#: doc/guix.texi:18023
544cab3d
LC
32606msgid "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."
32607msgstr ""
32608
32609#. type: code{#1}
32747aa9 32610#: doc/guix.texi:18024
544cab3d
LC
32611#, no-wrap
32612msgid "admin-server"
32613msgstr ""
32614
32615#. type: table
32747aa9 32616#: doc/guix.texi:18027
544cab3d
LC
32617msgid "This field is a string identifying the host where the administration server is running."
32618msgstr ""
32619
32620#. type: code{#1}
32747aa9 32621#: doc/guix.texi:18028
544cab3d
LC
32622#, no-wrap
32623msgid "kdc"
32624msgstr ""
32625
32626#. type: table
32747aa9 32627#: doc/guix.texi:18031
544cab3d
LC
32628msgid "This field is a string identifying the key distribution center for the realm."
32629msgstr ""
32630
32631#. type: deftp
32747aa9 32632#: doc/guix.texi:18034
544cab3d
LC
32633#, no-wrap
32634msgid "{Data Type} krb5-configuration"
32635msgstr ""
32636
32637#. type: item
32747aa9 32638#: doc/guix.texi:18037
544cab3d
LC
32639#, no-wrap
32640msgid "@code{allow-weak-crypto?} (default: @code{#f})"
32641msgstr ""
32642
32643#. type: table
32747aa9 32644#: doc/guix.texi:18040
544cab3d
LC
32645msgid "If this flag is @code{#t} then services which only offer encryption algorithms known to be weak will be accepted."
32646msgstr ""
32647
32648#. type: item
32747aa9 32649#: doc/guix.texi:18041
544cab3d
LC
32650#, no-wrap
32651msgid "@code{default-realm} (default: @code{#f})"
32652msgstr ""
32653
32654#. type: table
32747aa9 32655#: doc/guix.texi:18048
544cab3d
LC
32656msgid "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}."
32657msgstr ""
32658
32659#. type: code{#1}
32747aa9 32660#: doc/guix.texi:18049
544cab3d
LC
32661#, no-wrap
32662msgid "realms"
32663msgstr ""
32664
32665#. type: table
32747aa9 32666#: doc/guix.texi:18054
544cab3d
LC
32667msgid "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."
32668msgstr ""
32669
32670#. type: subsubheading
32747aa9 32671#: doc/guix.texi:18058
544cab3d
LC
32672#, no-wrap
32673msgid "PAM krb5 Service"
32674msgstr ""
32675
32676#. type: cindex
32747aa9 32677#: doc/guix.texi:18059
544cab3d
LC
32678#, no-wrap
32679msgid "pam-krb5"
32680msgstr ""
32681
32682#. type: Plain text
32747aa9 32683#: doc/guix.texi:18065
544cab3d
LC
32684msgid "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."
32685msgstr ""
32686
32687#. type: defvr
32747aa9 32688#: doc/guix.texi:18066
544cab3d
LC
32689#, no-wrap
32690msgid "{Scheme Variable} pam-krb5-service-type"
32691msgstr ""
32692
32693#. type: defvr
32747aa9 32694#: doc/guix.texi:18068
544cab3d
LC
32695msgid "A service type for the Kerberos 5 PAM module."
32696msgstr ""
32697
32698#. type: deftp
32747aa9 32699#: doc/guix.texi:18070
544cab3d
LC
32700#, no-wrap
32701msgid "{Data Type} pam-krb5-configuration"
32702msgstr ""
32703
32704#. type: deftp
32747aa9
LC
32705#: doc/guix.texi:18073
32706msgid "Data type representing the configuration of the Kerberos 5 PAM module. This type has the following parameters:"
544cab3d
LC
32707msgstr ""
32708
32709#. type: item
32747aa9 32710#: doc/guix.texi:18074
544cab3d
LC
32711#, no-wrap
32712msgid "@code{pam-krb5} (default: @code{pam-krb5})"
32713msgstr ""
32714
32715#. type: table
32747aa9 32716#: doc/guix.texi:18076
544cab3d
LC
32717msgid "The pam-krb5 package to use."
32718msgstr ""
32719
32720#. type: item
32747aa9 32721#: doc/guix.texi:18077
544cab3d
LC
32722#, no-wrap
32723msgid "@code{minimum-uid} (default: @code{1000})"
32724msgstr ""
32725
32726#. type: table
32747aa9 32727#: doc/guix.texi:18080
544cab3d
LC
32728msgid "The smallest user ID for which Kerberos authentications should be attempted. Local accounts with lower values will silently fail to authenticate."
32729msgstr ""
32730
32731#. type: cindex
32747aa9 32732#: doc/guix.texi:18086
544cab3d
LC
32733#, no-wrap
32734msgid "LDAP"
32735msgstr ""
32736
32737#. type: cindex
32747aa9 32738#: doc/guix.texi:18087
544cab3d
LC
32739#, no-wrap
32740msgid "nslcd, LDAP service"
32741msgstr ""
32742
32743#. type: Plain text
32747aa9 32744#: doc/guix.texi:18094
544cab3d
LC
32745msgid "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."
32746msgstr ""
32747
32748#. type: Plain text
32747aa9 32749#: doc/guix.texi:18098
544cab3d
LC
32750msgid "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:"
32751msgstr ""
32752
32753#. type: example
32747aa9 32754#: doc/guix.texi:18121
544cab3d
LC
32755#, no-wrap
32756msgid ""
32757"(use-service-modules authentication)\n"
32758"(use-modules (gnu system nss))\n"
32759"...\n"
32760"(operating-system\n"
32761" ...\n"
32762" (services\n"
32763" (cons*\n"
32764" (service nslcd-service-type)\n"
32765" (service dhcp-client-service-type)\n"
32766" %base-services))\n"
32767" (name-service-switch\n"
32768" (let ((services (list (name-service (name \"db\"))\n"
32769" (name-service (name \"files\"))\n"
32770" (name-service (name \"ldap\")))))\n"
32771" (name-service-switch\n"
32772" (inherit %mdns-host-lookup-nss)\n"
32773" (password services)\n"
32774" (shadow services)\n"
32775" (group services)\n"
32776" (netgroup services)\n"
32777" (gshadow services)))))\n"
32778msgstr ""
32779
32780#. type: Plain text
32747aa9 32781#: doc/guix.texi:18126
544cab3d
LC
32782msgid "Available @code{nslcd-configuration} fields are:"
32783msgstr ""
32784
32785#. type: deftypevr
32747aa9 32786#: doc/guix.texi:18127
544cab3d
LC
32787#, no-wrap
32788msgid "{@code{nslcd-configuration} parameter} package nss-pam-ldapd"
32789msgstr ""
32790
32791#. type: deftypevr
32747aa9 32792#: doc/guix.texi:18129
544cab3d
LC
32793msgid "The @code{nss-pam-ldapd} package to use."
32794msgstr ""
32795
32796#. type: deftypevr
32747aa9 32797#: doc/guix.texi:18132
544cab3d
LC
32798#, no-wrap
32799msgid "{@code{nslcd-configuration} parameter} maybe-number threads"
32800msgstr ""
32801
32802#. type: deftypevr
32747aa9 32803#: doc/guix.texi:18136
544cab3d
LC
32804msgid "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."
32805msgstr ""
32806
32807#. type: deftypevr
32747aa9
LC
32808#: doc/guix.texi:18138 doc/guix.texi:18180 doc/guix.texi:18188
32809#: doc/guix.texi:18196 doc/guix.texi:18204 doc/guix.texi:18213
32810#: doc/guix.texi:18221 doc/guix.texi:18228 doc/guix.texi:18236
32811#: doc/guix.texi:18244 doc/guix.texi:18254 doc/guix.texi:18261
32812#: doc/guix.texi:18285 doc/guix.texi:18293 doc/guix.texi:18319
32813#: doc/guix.texi:18328 doc/guix.texi:18337 doc/guix.texi:18346
32814#: doc/guix.texi:18355 doc/guix.texi:18364 doc/guix.texi:18372
32815#: doc/guix.texi:18380 doc/guix.texi:18387 doc/guix.texi:18395
32816#: doc/guix.texi:18402 doc/guix.texi:18410 doc/guix.texi:18418
32817#: doc/guix.texi:18427 doc/guix.texi:18436 doc/guix.texi:18444
32818#: doc/guix.texi:18452 doc/guix.texi:18460 doc/guix.texi:18471
32819#: doc/guix.texi:18481 doc/guix.texi:18492 doc/guix.texi:18501
32820#: doc/guix.texi:18511 doc/guix.texi:18519 doc/guix.texi:18530
32821#: doc/guix.texi:18539 doc/guix.texi:18549 doc/guix.texi:20839
32822#: doc/guix.texi:20846 doc/guix.texi:20853 doc/guix.texi:20860
32823#: doc/guix.texi:20867 doc/guix.texi:20874 doc/guix.texi:20882
32824#: doc/guix.texi:20890 doc/guix.texi:20897 doc/guix.texi:20904
32825#: doc/guix.texi:20911 doc/guix.texi:20918 doc/guix.texi:20948
32826#: doc/guix.texi:20986 doc/guix.texi:20993 doc/guix.texi:21002
32827#: doc/guix.texi:21024 doc/guix.texi:21032 doc/guix.texi:21039
32828#: doc/guix.texi:21194 doc/guix.texi:21214 doc/guix.texi:21229
32829#: doc/guix.texi:21236 doc/guix.texi:23034 doc/guix.texi:23042
32830#: doc/guix.texi:23050 doc/guix.texi:23058 doc/guix.texi:23066
32831#: doc/guix.texi:23074
544cab3d
LC
32832msgid "Defaults to @samp{disabled}."
32833msgstr ""
32834
32835#. type: deftypevr
32747aa9 32836#: doc/guix.texi:18141
544cab3d
LC
32837#, no-wrap
32838msgid "{@code{nslcd-configuration} parameter} string uid"
32839msgstr ""
32840
32841#. type: deftypevr
32747aa9 32842#: doc/guix.texi:18143
544cab3d
LC
32843msgid "This specifies the user id with which the daemon should be run."
32844msgstr ""
32845
32846#. type: deftypevr
32747aa9 32847#: doc/guix.texi:18145 doc/guix.texi:18152
544cab3d
LC
32848msgid "Defaults to @samp{\"nslcd\"}."
32849msgstr ""
32850
32851#. type: deftypevr
32747aa9 32852#: doc/guix.texi:18148
544cab3d
LC
32853#, no-wrap
32854msgid "{@code{nslcd-configuration} parameter} string gid"
32855msgstr ""
32856
32857#. type: deftypevr
32747aa9 32858#: doc/guix.texi:18150
544cab3d
LC
32859msgid "This specifies the group id with which the daemon should be run."
32860msgstr ""
32861
32862#. type: deftypevr
32747aa9 32863#: doc/guix.texi:18155
544cab3d
LC
32864#, no-wrap
32865msgid "{@code{nslcd-configuration} parameter} log-option log"
32866msgstr ""
32867
32868#. type: deftypevr
32747aa9 32869#: doc/guix.texi:18162
544cab3d
LC
32870msgid "This option controls the way logging is done via a list containing SCHEME and LEVEL. The SCHEME argument may either be the symbols \"none\" or \"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: \"crit\", \"error\", \"warning\", \"notice\", \"info\" or \"debug\". All messages with the specified log level or higher are logged."
32871msgstr ""
32872
32873#. type: deftypevr
32747aa9 32874#: doc/guix.texi:18164
544cab3d
LC
32875msgid "Defaults to @samp{(\"/var/log/nslcd\" info)}."
32876msgstr ""
32877
32878#. type: deftypevr
32747aa9 32879#: doc/guix.texi:18167
544cab3d
LC
32880#, no-wrap
32881msgid "{@code{nslcd-configuration} parameter} list uri"
32882msgstr ""
32883
32884#. type: deftypevr
32747aa9 32885#: doc/guix.texi:18170
544cab3d
LC
32886msgid "The list of LDAP server URIs. Normally, only the first server will be used with the following servers as fall-back."
32887msgstr ""
32888
32889#. type: deftypevr
32747aa9 32890#: doc/guix.texi:18172
544cab3d
LC
32891msgid "Defaults to @samp{(\"ldap://localhost:389/\")}."
32892msgstr ""
32893
32894#. type: deftypevr
32747aa9 32895#: doc/guix.texi:18175
544cab3d
LC
32896#, no-wrap
32897msgid "{@code{nslcd-configuration} parameter} maybe-string ldap-version"
32898msgstr ""
32899
32900#. type: deftypevr
32747aa9 32901#: doc/guix.texi:18178
544cab3d
LC
32902msgid "The version of the LDAP protocol to use. The default is to use the maximum version supported by the LDAP library."
32903msgstr ""
32904
32905#. type: deftypevr
32747aa9 32906#: doc/guix.texi:18183
544cab3d
LC
32907#, no-wrap
32908msgid "{@code{nslcd-configuration} parameter} maybe-string binddn"
32909msgstr ""
32910
32911#. type: deftypevr
32747aa9 32912#: doc/guix.texi:18186
544cab3d
LC
32913msgid "Specifies the distinguished name with which to bind to the directory server for lookups. The default is to bind anonymously."
32914msgstr ""
32915
32916#. type: deftypevr
32747aa9 32917#: doc/guix.texi:18191
544cab3d
LC
32918#, no-wrap
32919msgid "{@code{nslcd-configuration} parameter} maybe-string bindpw"
32920msgstr ""
32921
32922#. type: deftypevr
32747aa9 32923#: doc/guix.texi:18194
544cab3d
LC
32924msgid "Specifies the credentials with which to bind. This option is only applicable when used with binddn."
32925msgstr ""
32926
32927#. type: deftypevr
32747aa9 32928#: doc/guix.texi:18199
544cab3d
LC
32929#, no-wrap
32930msgid "{@code{nslcd-configuration} parameter} maybe-string rootpwmoddn"
32931msgstr ""
32932
32933#. type: deftypevr
32747aa9 32934#: doc/guix.texi:18202
544cab3d
LC
32935msgid "Specifies the distinguished name to use when the root user tries to modify a user's password using the PAM module."
32936msgstr ""
32937
32938#. type: deftypevr
32747aa9 32939#: doc/guix.texi:18207
544cab3d
LC
32940#, no-wrap
32941msgid "{@code{nslcd-configuration} parameter} maybe-string rootpwmodpw"
32942msgstr ""
32943
32944#. type: deftypevr
32747aa9 32945#: doc/guix.texi:18211
544cab3d
LC
32946msgid "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"
32947msgstr ""
32948
32949#. type: deftypevr
32747aa9 32950#: doc/guix.texi:18216
544cab3d
LC
32951#, no-wrap
32952msgid "{@code{nslcd-configuration} parameter} maybe-string sasl-mech"
32953msgstr ""
32954
32955#. type: deftypevr
32747aa9 32956#: doc/guix.texi:18219
544cab3d
LC
32957msgid "Specifies the SASL mechanism to be used when performing SASL authentication."
32958msgstr ""
32959
32960#. type: deftypevr
32747aa9 32961#: doc/guix.texi:18224
544cab3d
LC
32962#, no-wrap
32963msgid "{@code{nslcd-configuration} parameter} maybe-string sasl-realm"
32964msgstr ""
32965
32966#. type: deftypevr
32747aa9 32967#: doc/guix.texi:18226
544cab3d
LC
32968msgid "Specifies the SASL realm to be used when performing SASL authentication."
32969msgstr ""
32970
32971#. type: deftypevr
32747aa9 32972#: doc/guix.texi:18231
544cab3d
LC
32973#, no-wrap
32974msgid "{@code{nslcd-configuration} parameter} maybe-string sasl-authcid"
32975msgstr ""
32976
32977#. type: deftypevr
32747aa9 32978#: doc/guix.texi:18234
544cab3d
LC
32979msgid "Specifies the authentication identity to be used when performing SASL authentication."
32980msgstr ""
32981
32982#. type: deftypevr
32747aa9 32983#: doc/guix.texi:18239
544cab3d
LC
32984#, no-wrap
32985msgid "{@code{nslcd-configuration} parameter} maybe-string sasl-authzid"
32986msgstr ""
32987
32988#. type: deftypevr
32747aa9 32989#: doc/guix.texi:18242
544cab3d
LC
32990msgid "Specifies the authorization identity to be used when performing SASL authentication."
32991msgstr ""
32992
32993#. type: deftypevr
32747aa9 32994#: doc/guix.texi:18247
544cab3d
LC
32995#, no-wrap
32996msgid "{@code{nslcd-configuration} parameter} maybe-boolean sasl-canonicalize?"
32997msgstr ""
32998
32999#. type: deftypevr
32747aa9 33000#: doc/guix.texi:18252
544cab3d
LC
33001msgid "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."
33002msgstr ""
33003
33004#. type: deftypevr
32747aa9 33005#: doc/guix.texi:18257
544cab3d
LC
33006#, no-wrap
33007msgid "{@code{nslcd-configuration} parameter} maybe-string krb5-ccname"
33008msgstr ""
33009
33010#. type: deftypevr
32747aa9 33011#: doc/guix.texi:18259
544cab3d
LC
33012msgid "Set the name for the GSS-API Kerberos credentials cache."
33013msgstr ""
33014
33015#. type: deftypevr
32747aa9 33016#: doc/guix.texi:18264
544cab3d
LC
33017#, no-wrap
33018msgid "{@code{nslcd-configuration} parameter} string base"
33019msgstr ""
33020
33021#. type: deftypevr
32747aa9 33022#: doc/guix.texi:18266
544cab3d
LC
33023msgid "The directory search base."
33024msgstr ""
33025
33026#. type: deftypevr
32747aa9 33027#: doc/guix.texi:18268
544cab3d
LC
33028msgid "Defaults to @samp{\"dc=example,dc=com\"}."
33029msgstr ""
33030
33031#. type: deftypevr
32747aa9 33032#: doc/guix.texi:18271
544cab3d
LC
33033#, no-wrap
33034msgid "{@code{nslcd-configuration} parameter} scope-option scope"
33035msgstr ""
33036
33037#. type: deftypevr
32747aa9 33038#: doc/guix.texi:18275
544cab3d
LC
33039msgid "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."
33040msgstr ""
33041
33042#. type: deftypevr
32747aa9 33043#: doc/guix.texi:18277
544cab3d
LC
33044msgid "Defaults to @samp{(subtree)}."
33045msgstr ""
33046
33047#. type: deftypevr
32747aa9 33048#: doc/guix.texi:18280
544cab3d
LC
33049#, no-wrap
33050msgid "{@code{nslcd-configuration} parameter} maybe-deref-option deref"
33051msgstr ""
33052
33053#. type: deftypevr
32747aa9 33054#: doc/guix.texi:18283
544cab3d
LC
33055msgid "Specifies the policy for dereferencing aliases. The default policy is to never dereference aliases."
33056msgstr ""
33057
33058#. type: deftypevr
32747aa9 33059#: doc/guix.texi:18288
544cab3d
LC
33060#, no-wrap
33061msgid "{@code{nslcd-configuration} parameter} maybe-boolean referrals"
33062msgstr ""
33063
33064#. type: deftypevr
32747aa9 33065#: doc/guix.texi:18291
544cab3d
LC
33066msgid "Specifies whether automatic referral chasing should be enabled. The default behaviour is to chase referrals."
33067msgstr ""
33068
33069#. type: deftypevr
32747aa9 33070#: doc/guix.texi:18296
544cab3d
LC
33071#, no-wrap
33072msgid "{@code{nslcd-configuration} parameter} list-of-map-entries maps"
33073msgstr ""
33074
33075#. type: deftypevr
32747aa9 33076#: doc/guix.texi:18301
544cab3d
LC
33077msgid "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."
33078msgstr ""
33079
33080#. type: deftypevr
32747aa9 33081#: doc/guix.texi:18306
544cab3d
LC
33082#, no-wrap
33083msgid "{@code{nslcd-configuration} parameter} list-of-filter-entries filters"
33084msgstr ""
33085
33086#. type: deftypevr
32747aa9 33087#: doc/guix.texi:18309
544cab3d
LC
33088msgid "A list of filters consisting of the name of a map to which the filter applies and an LDAP search filter expression."
33089msgstr ""
33090
33091#. type: deftypevr
32747aa9 33092#: doc/guix.texi:18314
544cab3d
LC
33093#, no-wrap
33094msgid "{@code{nslcd-configuration} parameter} maybe-number bind-timelimit"
33095msgstr ""
33096
33097#. type: deftypevr
32747aa9 33098#: doc/guix.texi:18317
544cab3d
LC
33099msgid "Specifies the time limit in seconds to use when connecting to the directory server. The default value is 10 seconds."
33100msgstr ""
33101
33102#. type: deftypevr
32747aa9 33103#: doc/guix.texi:18322
544cab3d
LC
33104#, no-wrap
33105msgid "{@code{nslcd-configuration} parameter} maybe-number timelimit"
33106msgstr ""
33107
33108#. type: deftypevr
32747aa9 33109#: doc/guix.texi:18326
544cab3d
LC
33110msgid "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."
33111msgstr ""
33112
33113#. type: deftypevr
32747aa9 33114#: doc/guix.texi:18331
544cab3d
LC
33115#, no-wrap
33116msgid "{@code{nslcd-configuration} parameter} maybe-number idle-timelimit"
33117msgstr ""
33118
33119#. type: deftypevr
32747aa9 33120#: doc/guix.texi:18335
544cab3d
LC
33121msgid "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."
33122msgstr ""
33123
33124#. type: deftypevr
32747aa9 33125#: doc/guix.texi:18340
544cab3d
LC
33126#, no-wrap
33127msgid "{@code{nslcd-configuration} parameter} maybe-number reconnect-sleeptime"
33128msgstr ""
33129
33130#. type: deftypevr
32747aa9 33131#: doc/guix.texi:18344
544cab3d
LC
33132msgid "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."
33133msgstr ""
33134
33135#. type: deftypevr
32747aa9 33136#: doc/guix.texi:18349
544cab3d
LC
33137#, no-wrap
33138msgid "{@code{nslcd-configuration} parameter} maybe-number reconnect-retrytime"
33139msgstr ""
33140
33141#. type: deftypevr
32747aa9 33142#: doc/guix.texi:18353
544cab3d
LC
33143msgid "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."
33144msgstr ""
33145
33146#. type: deftypevr
32747aa9 33147#: doc/guix.texi:18358
544cab3d
LC
33148#, no-wrap
33149msgid "{@code{nslcd-configuration} parameter} maybe-ssl-option ssl"
33150msgstr ""
33151
33152#. type: deftypevr
32747aa9 33153#: doc/guix.texi:18362
544cab3d
LC
33154msgid "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."
33155msgstr ""
33156
33157#. type: deftypevr
32747aa9 33158#: doc/guix.texi:18367
544cab3d
LC
33159#, no-wrap
33160msgid "{@code{nslcd-configuration} parameter} maybe-tls-reqcert-option tls-reqcert"
33161msgstr ""
33162
33163#. type: deftypevr
32747aa9 33164#: doc/guix.texi:18370
544cab3d
LC
33165msgid "Specifies what checks to perform on a server-supplied certificate. The meaning of the values is described in the ldap.conf(5) manual page."
33166msgstr ""
33167
33168#. type: deftypevr
32747aa9 33169#: doc/guix.texi:18375
544cab3d
LC
33170#, no-wrap
33171msgid "{@code{nslcd-configuration} parameter} maybe-string tls-cacertdir"
33172msgstr ""
33173
33174#. type: deftypevr
32747aa9 33175#: doc/guix.texi:18378
544cab3d
LC
33176msgid "Specifies the directory containing X.509 certificates for peer authen‐ tication. This parameter is ignored when using GnuTLS."
33177msgstr ""
33178
33179#. type: deftypevr
32747aa9 33180#: doc/guix.texi:18383
544cab3d
LC
33181#, no-wrap
33182msgid "{@code{nslcd-configuration} parameter} maybe-string tls-cacertfile"
33183msgstr ""
33184
33185#. type: deftypevr
32747aa9 33186#: doc/guix.texi:18385
544cab3d
LC
33187msgid "Specifies the path to the X.509 certificate for peer authentication."
33188msgstr ""
33189
33190#. type: deftypevr
32747aa9 33191#: doc/guix.texi:18390
544cab3d
LC
33192#, no-wrap
33193msgid "{@code{nslcd-configuration} parameter} maybe-string tls-randfile"
33194msgstr ""
33195
33196#. type: deftypevr
32747aa9 33197#: doc/guix.texi:18393
544cab3d
LC
33198msgid "Specifies the path to an entropy source. This parameter is ignored when using GnuTLS."
33199msgstr ""
33200
33201#. type: deftypevr
32747aa9 33202#: doc/guix.texi:18398
544cab3d
LC
33203#, no-wrap
33204msgid "{@code{nslcd-configuration} parameter} maybe-string tls-ciphers"
33205msgstr ""
33206
33207#. type: deftypevr
32747aa9 33208#: doc/guix.texi:18400
544cab3d
LC
33209msgid "Specifies the ciphers to use for TLS as a string."
33210msgstr ""
33211
33212#. type: deftypevr
32747aa9 33213#: doc/guix.texi:18405
544cab3d
LC
33214#, no-wrap
33215msgid "{@code{nslcd-configuration} parameter} maybe-string tls-cert"
33216msgstr ""
33217
33218#. type: deftypevr
32747aa9 33219#: doc/guix.texi:18408
544cab3d
LC
33220msgid "Specifies the path to the file containing the local certificate for client TLS authentication."
33221msgstr ""
33222
33223#. type: deftypevr
32747aa9 33224#: doc/guix.texi:18413
544cab3d
LC
33225#, no-wrap
33226msgid "{@code{nslcd-configuration} parameter} maybe-string tls-key"
33227msgstr ""
33228
33229#. type: deftypevr
32747aa9 33230#: doc/guix.texi:18416
544cab3d
LC
33231msgid "Specifies the path to the file containing the private key for client TLS authentication."
33232msgstr ""
33233
33234#. type: deftypevr
32747aa9 33235#: doc/guix.texi:18421
544cab3d
LC
33236#, no-wrap
33237msgid "{@code{nslcd-configuration} parameter} maybe-number pagesize"
33238msgstr ""
33239
33240#. type: deftypevr
32747aa9 33241#: doc/guix.texi:18425
544cab3d
LC
33242msgid "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."
33243msgstr ""
33244
33245#. type: deftypevr
32747aa9 33246#: doc/guix.texi:18430
544cab3d
LC
33247#, no-wrap
33248msgid "{@code{nslcd-configuration} parameter} maybe-ignore-users-option nss-initgroups-ignoreusers"
33249msgstr ""
33250
33251#. type: deftypevr
32747aa9 33252#: doc/guix.texi:18434
544cab3d
LC
33253msgid "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."
33254msgstr ""
33255
33256#. type: deftypevr
32747aa9 33257#: doc/guix.texi:18439
544cab3d
LC
33258#, no-wrap
33259msgid "{@code{nslcd-configuration} parameter} maybe-number nss-min-uid"
33260msgstr ""
33261
33262#. type: deftypevr
32747aa9 33263#: doc/guix.texi:18442
544cab3d
LC
33264msgid "This option ensures that LDAP users with a numeric user id lower than the specified value are ignored."
33265msgstr ""
33266
33267#. type: deftypevr
32747aa9 33268#: doc/guix.texi:18447
544cab3d
LC
33269#, no-wrap
33270msgid "{@code{nslcd-configuration} parameter} maybe-number nss-uid-offset"
33271msgstr ""
33272
33273#. type: deftypevr
32747aa9 33274#: doc/guix.texi:18450
544cab3d
LC
33275msgid "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."
33276msgstr ""
33277
33278#. type: deftypevr
32747aa9 33279#: doc/guix.texi:18455
544cab3d
LC
33280#, no-wrap
33281msgid "{@code{nslcd-configuration} parameter} maybe-number nss-gid-offset"
33282msgstr ""
33283
33284#. type: deftypevr
32747aa9 33285#: doc/guix.texi:18458
544cab3d
LC
33286msgid "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."
33287msgstr ""
33288
33289#. type: deftypevr
32747aa9 33290#: doc/guix.texi:18463
544cab3d
LC
33291#, no-wrap
33292msgid "{@code{nslcd-configuration} parameter} maybe-boolean nss-nested-groups"
33293msgstr ""
33294
33295#. type: deftypevr
32747aa9 33296#: doc/guix.texi:18469
544cab3d
LC
33297msgid "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."
33298msgstr ""
33299
33300#. type: deftypevr
32747aa9 33301#: doc/guix.texi:18474
544cab3d
LC
33302#, no-wrap
33303msgid "{@code{nslcd-configuration} parameter} maybe-boolean nss-getgrent-skipmembers"
33304msgstr ""
33305
33306#. type: deftypevr
32747aa9 33307#: doc/guix.texi:18479
544cab3d
LC
33308msgid "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."
33309msgstr ""
33310
33311#. type: deftypevr
32747aa9 33312#: doc/guix.texi:18484
544cab3d
LC
33313#, no-wrap
33314msgid "{@code{nslcd-configuration} parameter} maybe-boolean nss-disable-enumeration"
33315msgstr ""
33316
33317#. type: deftypevr
32747aa9 33318#: doc/guix.texi:18490
544cab3d
LC
33319msgid "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."
33320msgstr ""
33321
33322#. type: deftypevr
32747aa9 33323#: doc/guix.texi:18495
544cab3d
LC
33324#, no-wrap
33325msgid "{@code{nslcd-configuration} parameter} maybe-string validnames"
33326msgstr ""
33327
33328#. type: deftypevr
32747aa9 33329#: doc/guix.texi:18499
544cab3d
LC
33330msgid "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."
33331msgstr ""
33332
33333#. type: deftypevr
32747aa9 33334#: doc/guix.texi:18504
544cab3d
LC
33335#, no-wrap
33336msgid "{@code{nslcd-configuration} parameter} maybe-boolean ignorecase"
33337msgstr ""
33338
33339#. type: deftypevr
32747aa9 33340#: doc/guix.texi:18509
544cab3d
LC
33341msgid "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."
33342msgstr ""
33343
33344#. type: deftypevr
32747aa9 33345#: doc/guix.texi:18514
544cab3d
LC
33346#, no-wrap
33347msgid "{@code{nslcd-configuration} parameter} maybe-boolean pam-authc-ppolicy"
33348msgstr ""
33349
33350#. type: deftypevr
32747aa9 33351#: doc/guix.texi:18517
544cab3d
LC
33352msgid "This option specifies whether password policy controls are requested and handled from the LDAP server when performing user authentication."
33353msgstr ""
33354
33355#. type: deftypevr
32747aa9 33356#: doc/guix.texi:18522
544cab3d
LC
33357#, no-wrap
33358msgid "{@code{nslcd-configuration} parameter} maybe-string pam-authc-search"
33359msgstr ""
33360
33361#. type: deftypevr
32747aa9 33362#: doc/guix.texi:18528
544cab3d
LC
33363msgid "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."
33364msgstr ""
33365
33366#. type: deftypevr
32747aa9 33367#: doc/guix.texi:18533
544cab3d
LC
33368#, no-wrap
33369msgid "{@code{nslcd-configuration} parameter} maybe-string pam-authz-search"
33370msgstr ""
33371
33372#. type: deftypevr
32747aa9 33373#: doc/guix.texi:18537
544cab3d
LC
33374msgid "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."
33375msgstr ""
33376
33377#. type: deftypevr
32747aa9 33378#: doc/guix.texi:18542
544cab3d
LC
33379#, no-wrap
33380msgid "{@code{nslcd-configuration} parameter} maybe-string pam-password-prohibit-message"
33381msgstr ""
33382
33383#. type: deftypevr
32747aa9 33384#: doc/guix.texi:18547
544cab3d
LC
33385msgid "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."
33386msgstr ""
33387
33388#. type: deftypevr
32747aa9 33389#: doc/guix.texi:18552
544cab3d
LC
33390#, no-wrap
33391msgid "{@code{nslcd-configuration} parameter} list pam-services"
33392msgstr ""
33393
33394#. type: deftypevr
32747aa9 33395#: doc/guix.texi:18554
544cab3d
LC
33396msgid "List of pam service names for which LDAP authentication should suffice."
33397msgstr ""
33398
33399#. type: cindex
32747aa9 33400#: doc/guix.texi:18565
544cab3d
LC
33401#, no-wrap
33402msgid "web"
33403msgstr ""
33404
33405#. type: cindex
32747aa9 33406#: doc/guix.texi:18566
544cab3d
LC
33407#, no-wrap
33408msgid "www"
33409msgstr ""
33410
33411#. type: cindex
32747aa9 33412#: doc/guix.texi:18567
544cab3d
LC
33413#, no-wrap
33414msgid "HTTP"
33415msgstr ""
33416
33417#. type: Plain text
32747aa9 33418#: doc/guix.texi:18570
544cab3d
LC
33419msgid "The @code{(gnu services web)} module provides the Apache HTTP Server, the nginx web server, and also a fastcgi wrapper daemon."
33420msgstr ""
33421
33422#. type: subsubheading
32747aa9 33423#: doc/guix.texi:18571
544cab3d
LC
33424#, no-wrap
33425msgid "Apache HTTP Server"
33426msgstr ""
33427
33428#. type: deffn
32747aa9 33429#: doc/guix.texi:18573
544cab3d
LC
33430#, no-wrap
33431msgid "{Scheme Variable} httpd-service-type"
33432msgstr ""
33433
33434#. type: deffn
32747aa9 33435#: doc/guix.texi:18577
544cab3d
LC
33436msgid "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."
33437msgstr ""
33438
33439#. type: deffn
32747aa9 33440#: doc/guix.texi:18579 doc/guix.texi:18760
544cab3d
LC
33441msgid "A simple example configuration is given below."
33442msgstr ""
33443
33444#. type: example
32747aa9 33445#: doc/guix.texi:18587
544cab3d
LC
33446#, no-wrap
33447msgid ""
33448"(service httpd-service-type\n"
33449" (httpd-configuration\n"
33450" (config\n"
33451" (httpd-config-file\n"
33452" (server-name \"www.example.com\")\n"
33453" (document-root \"/srv/http/www.example.com\")))))\n"
33454msgstr ""
33455
33456#. type: deffn
32747aa9 33457#: doc/guix.texi:18591
544cab3d
LC
33458msgid "Other services can also extend the @code{httpd-service-type} to add to the configuration."
33459msgstr ""
33460
33461#. type: example
32747aa9 33462#: doc/guix.texi:18600 doc/guix.texi:18740
544cab3d
LC
33463#, no-wrap
33464msgid ""
33465"(simple-service 'my-extra-server httpd-service-type\n"
33466" (list\n"
33467" (httpd-virtualhost\n"
33468" \"*:80\"\n"
33469" (list (string-append\n"
33470" \"ServerName \"www.example.com\n"
33471" DocumentRoot \\\"/srv/http/www.example.com\\\"\")))))\n"
33472msgstr ""
33473
33474#. type: Plain text
32747aa9 33475#: doc/guix.texi:18606
544cab3d
LC
33476msgid "The details for the @code{httpd-configuration}, @code{httpd-module}, @code{httpd-config-file} and @code{httpd-virtualhost} record types are given below."
33477msgstr ""
33478
33479#. type: deffn
32747aa9 33480#: doc/guix.texi:18607
544cab3d
LC
33481#, no-wrap
33482msgid "{Data Type} httpd-configuration"
33483msgstr ""
33484
33485#. type: deffn
32747aa9 33486#: doc/guix.texi:18609
544cab3d
LC
33487msgid "This data type represents the configuration for the httpd service."
33488msgstr ""
33489
33490#. type: item
32747aa9 33491#: doc/guix.texi:18611
544cab3d
LC
33492#, no-wrap
33493msgid "@code{package} (default: @code{httpd})"
33494msgstr ""
33495
33496#. type: table
32747aa9 33497#: doc/guix.texi:18613
544cab3d
LC
33498msgid "The httpd package to use."
33499msgstr ""
33500
33501#. type: item
32747aa9 33502#: doc/guix.texi:18614 doc/guix.texi:18703
544cab3d
LC
33503#, no-wrap
33504msgid "@code{pid-file} (default: @code{\"/var/run/httpd\"})"
33505msgstr ""
33506
33507#. type: table
32747aa9 33508#: doc/guix.texi:18616
544cab3d
LC
33509msgid "The pid file used by the shepherd-service."
33510msgstr ""
33511
33512#. type: item
32747aa9 33513#: doc/guix.texi:18617
544cab3d
LC
33514#, no-wrap
33515msgid "@code{config} (default: @code{(httpd-config-file)})"
33516msgstr ""
33517
33518#. type: table
32747aa9 33519#: doc/guix.texi:18622
544cab3d
LC
33520msgid "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."
33521msgstr ""
33522
33523#. type: deffn
32747aa9 33524#: doc/guix.texi:18626
544cab3d
LC
33525#, no-wrap
33526msgid "{Data Type} httpd-module"
33527msgstr ""
33528
33529#. type: deffn
32747aa9 33530#: doc/guix.texi:18628
544cab3d
LC
33531msgid "This data type represents a module for the httpd service."
33532msgstr ""
33533
33534#. type: table
32747aa9 33535#: doc/guix.texi:18632
544cab3d
LC
33536msgid "The name of the module."
33537msgstr ""
33538
33539#. type: table
32747aa9 33540#: doc/guix.texi:18638
544cab3d
LC
33541msgid "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\")}."
33542msgstr ""
33543
33544#. type: defvr
32747aa9 33545#: doc/guix.texi:18642
544cab3d
LC
33546#, no-wrap
33547msgid "{Scheme Variable} %default-httpd-modules"
33548msgstr ""
33549
33550#. type: defvr
32747aa9 33551#: doc/guix.texi:18644
544cab3d
LC
33552msgid "A default list of @code{httpd-module} objects."
33553msgstr ""
33554
33555#. type: deffn
32747aa9 33556#: doc/guix.texi:18646
544cab3d
LC
33557#, no-wrap
33558msgid "{Data Type} httpd-config-file"
33559msgstr ""
33560
33561#. type: deffn
32747aa9 33562#: doc/guix.texi:18648
544cab3d
LC
33563msgid "This data type represents a configuration file for the httpd service."
33564msgstr ""
33565
33566#. type: item
32747aa9 33567#: doc/guix.texi:18650
544cab3d
LC
33568#, no-wrap
33569msgid "@code{modules} (default: @code{%default-httpd-modules})"
33570msgstr ""
33571
33572#. type: table
32747aa9 33573#: doc/guix.texi:18653
544cab3d
LC
33574msgid "The modules to load. Additional modules can be added here, or loaded by additional configuration."
33575msgstr ""
33576
33577#. type: table
32747aa9 33578#: doc/guix.texi:18656
544cab3d
LC
33579msgid "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}:"
33580msgstr ""
33581
33582#. type: example
32747aa9 33583#: doc/guix.texi:18678
544cab3d
LC
33584#, no-wrap
33585msgid ""
33586"(service httpd-service-type\n"
33587" (httpd-configuration\n"
33588" (config\n"
33589" (httpd-config-file\n"
33590" (modules (cons*\n"
33591" (httpd-module\n"
33592" (name \"proxy_module\")\n"
33593" (file \"modules/mod_proxy.so\"))\n"
33594" (httpd-module\n"
33595" (name \"proxy_fcgi_module\")\n"
33596" (file \"modules/mod_proxy_fcgi.so\"))\n"
33597" %default-httpd-modules))\n"
33598" (extra-config (list \"\\\n"
33599"<FilesMatch \\\\.php$>\n"
33600" SetHandler \\\"proxy:unix:/var/run/php-fpm.sock|fcgi://localhost/\\\"\n"
33601"</FilesMatch>\"))))))\n"
33602"(service php-fpm-service-type\n"
33603" (php-fpm-configuration\n"
33604" (socket \"/var/run/php-fpm.sock\")\n"
33605" (socket-group \"httpd\")))\n"
33606msgstr ""
33607
33608#. type: item
32747aa9 33609#: doc/guix.texi:18680
544cab3d
LC
33610#, no-wrap
33611msgid "@code{server-root} (default: @code{httpd})"
33612msgstr ""
33613
33614#. type: table
32747aa9 33615#: doc/guix.texi:18684
544cab3d
LC
33616msgid "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."
33617msgstr ""
33618
33619#. type: item
32747aa9 33620#: doc/guix.texi:18685
544cab3d
LC
33621#, no-wrap
33622msgid "@code{server-name} (default: @code{#f})"
33623msgstr ""
33624
33625#. type: table
32747aa9 33626#: doc/guix.texi:18689
544cab3d
LC
33627msgid "The @code{ServerName} in the configuration file, used to specify the request scheme, hostname and port that the server uses to identify itself."
33628msgstr ""
33629
33630#. type: table
32747aa9 33631#: doc/guix.texi:18693
544cab3d
LC
33632msgid "This doesn't need to be set in the server config, and can be specifyed in virtual hosts. The default is @code{#f} to not specify a @code{ServerName}."
33633msgstr ""
33634
33635#. type: item
32747aa9 33636#: doc/guix.texi:18694
544cab3d
LC
33637#, no-wrap
33638msgid "@code{document-root} (default: @code{\"/srv/http\"})"
33639msgstr ""
33640
33641#. type: table
32747aa9 33642#: doc/guix.texi:18696
544cab3d
LC
33643msgid "The @code{DocumentRoot} from which files will be served."
33644msgstr ""
33645
33646#. type: item
32747aa9 33647#: doc/guix.texi:18697
544cab3d
LC
33648#, no-wrap
33649msgid "@code{listen} (default: @code{'(\"80\")})"
33650msgstr ""
33651
33652#. type: table
32747aa9 33653#: doc/guix.texi:18702
544cab3d
LC
33654msgid "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."
33655msgstr ""
33656
33657#. type: table
32747aa9 33658#: doc/guix.texi:18707
544cab3d
LC
33659msgid "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."
33660msgstr ""
33661
33662#. type: item
32747aa9 33663#: doc/guix.texi:18708
544cab3d
LC
33664#, no-wrap
33665msgid "@code{error-log} (default: @code{\"/var/log/httpd/error_log\"})"
33666msgstr ""
33667
33668#. type: table
32747aa9 33669#: doc/guix.texi:18710
544cab3d
LC
33670msgid "The @code{ErrorLog} to which the server will log errors."
33671msgstr ""
33672
33673#. type: item
32747aa9 33674#: doc/guix.texi:18711
544cab3d
LC
33675#, no-wrap
33676msgid "@code{user} (default: @code{\"httpd\"})"
33677msgstr ""
33678
33679#. type: table
32747aa9 33680#: doc/guix.texi:18713
544cab3d
LC
33681msgid "The @code{User} which the server will answer requests as."
33682msgstr ""
33683
33684#. type: item
32747aa9 33685#: doc/guix.texi:18714
544cab3d
LC
33686#, no-wrap
33687msgid "@code{group} (default: @code{\"httpd\"})"
33688msgstr ""
33689
33690#. type: table
32747aa9 33691#: doc/guix.texi:18716
544cab3d
LC
33692msgid "The @code{Group} which the server will answer requests as."
33693msgstr ""
33694
33695#. type: item
32747aa9 33696#: doc/guix.texi:18717
544cab3d
LC
33697#, no-wrap
33698msgid "@code{extra-config} (default: @code{(list \"TypesConfig etc/httpd/mime.types\")})"
33699msgstr ""
33700
33701#. type: table
32747aa9 33702#: doc/guix.texi:18720
544cab3d
LC
33703msgid "A flat list of strings and G-expressions which will be added to the end of the configuration file."
33704msgstr ""
33705
33706#. type: table
32747aa9 33707#: doc/guix.texi:18723
544cab3d
LC
33708msgid "Any values which the service is extended with will be appended to this list."
33709msgstr ""
33710
33711#. type: deffn
32747aa9 33712#: doc/guix.texi:18727
544cab3d
LC
33713#, no-wrap
33714msgid "{Data Type} httpd-virtualhost"
33715msgstr ""
33716
33717#. type: deffn
32747aa9 33718#: doc/guix.texi:18729
544cab3d
LC
33719msgid "This data type represents a virtualhost configuration block for the httpd service."
33720msgstr ""
33721
33722#. type: deffn
32747aa9 33723#: doc/guix.texi:18731
544cab3d
LC
33724msgid "These should be added to the extra-config for the httpd-service."
33725msgstr ""
33726
33727#. type: code{#1}
32747aa9 33728#: doc/guix.texi:18743
544cab3d
LC
33729#, no-wrap
33730msgid "addresses-and-ports"
33731msgstr ""
33732
33733#. type: table
32747aa9 33734#: doc/guix.texi:18745
544cab3d
LC
33735msgid "The addresses and ports for the @code{VirtualHost} directive."
33736msgstr ""
33737
33738#. type: code{#1}
32747aa9 33739#: doc/guix.texi:18746
544cab3d
LC
33740#, no-wrap
33741msgid "contents"
33742msgstr ""
33743
33744#. type: table
32747aa9 33745#: doc/guix.texi:18749
544cab3d
LC
33746msgid "The contents of the @code{VirtualHost} directive, this should be a list of strings and G-expressions."
33747msgstr ""
33748
33749#. type: subsubheading
32747aa9 33750#: doc/guix.texi:18753
544cab3d
LC
33751#, no-wrap
33752msgid "NGINX"
33753msgstr ""
33754
33755#. type: deffn
32747aa9 33756#: doc/guix.texi:18755
544cab3d
LC
33757#, no-wrap
33758msgid "{Scheme Variable} nginx-service-type"
33759msgstr ""
33760
33761#. type: deffn
32747aa9 33762#: doc/guix.texi:18758
544cab3d
LC
33763msgid "Service type for the @uref{https://nginx.org/,NGinx} web server. The value for this service type is a @code{<nginx-configuration>} record."
33764msgstr ""
33765
33766#. type: example
32747aa9 33767#: doc/guix.texi:18768 doc/guix.texi:18822
544cab3d
LC
33768#, no-wrap
33769msgid ""
33770"(service nginx-service-type\n"
33771" (nginx-configuration\n"
33772" (server-blocks\n"
33773" (list (nginx-server-configuration\n"
33774" (server-name '(\"www.example.com\"))\n"
33775" (root \"/srv/http/www.example.com\"))))))\n"
33776msgstr ""
33777
33778#. type: deffn
32747aa9 33779#: doc/guix.texi:18773
544cab3d
LC
33780msgid "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:"
33781msgstr ""
33782
33783#. type: example
32747aa9 33784#: doc/guix.texi:18779
544cab3d
LC
33785#, no-wrap
33786msgid ""
33787"(simple-service 'my-extra-server nginx-service-type\n"
33788" (list (nginx-server-configuration\n"
33789" (root \"/srv/http/extra-website\")\n"
33790" (try-files (list \"$uri\" \"$uri/index.html\")))))\n"
33791msgstr ""
33792
33793#. type: Plain text
32747aa9 33794#: doc/guix.texi:18790
544cab3d
LC
33795msgid "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."
33796msgstr ""
33797
33798#. type: deffn
32747aa9 33799#: doc/guix.texi:18791
544cab3d
LC
33800#, no-wrap
33801msgid "{Data Type} nginx-configuration"
33802msgstr ""
33803
33804#. type: deffn
32747aa9 33805#: doc/guix.texi:18795
544cab3d
LC
33806msgid "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."
33807msgstr ""
33808
33809#. type: item
32747aa9 33810#: doc/guix.texi:18797
544cab3d
LC
33811#, no-wrap
33812msgid "@code{nginx} (default: @code{nginx})"
33813msgstr ""
33814
33815#. type: table
32747aa9 33816#: doc/guix.texi:18799
544cab3d
LC
33817msgid "The nginx package to use."
33818msgstr ""
33819
33820#. type: item
32747aa9 33821#: doc/guix.texi:18800
544cab3d
LC
33822#, no-wrap
33823msgid "@code{log-directory} (default: @code{\"/var/log/nginx\"})"
33824msgstr ""
33825
33826#. type: table
32747aa9 33827#: doc/guix.texi:18802
544cab3d
LC
33828msgid "The directory to which NGinx will write log files."
33829msgstr ""
33830
33831#. type: item
32747aa9 33832#: doc/guix.texi:18803
544cab3d
LC
33833#, no-wrap
33834msgid "@code{run-directory} (default: @code{\"/var/run/nginx\"})"
33835msgstr ""
33836
33837#. type: table
32747aa9 33838#: doc/guix.texi:18806
544cab3d
LC
33839msgid "The directory in which NGinx will create a pid file, and write temporary files."
33840msgstr ""
33841
33842#. type: item
32747aa9 33843#: doc/guix.texi:18807
544cab3d
LC
33844#, no-wrap
33845msgid "@code{server-blocks} (default: @code{'()})"
33846msgstr ""
33847
33848#. type: table
32747aa9 33849#: doc/guix.texi:18811
544cab3d
LC
33850msgid "A list of @dfn{server blocks} to create in the generated configuration file, the elements should be of type @code{<nginx-server-configuration>}."
33851msgstr ""
33852
33853#. type: table
32747aa9 33854#: doc/guix.texi:18815
544cab3d
LC
33855msgid "The following example would setup NGinx to serve @code{www.example.com} from the @code{/srv/http/www.example.com} directory, without using HTTPS."
33856msgstr ""
33857
33858#. type: item
32747aa9 33859#: doc/guix.texi:18824
544cab3d
LC
33860#, no-wrap
33861msgid "@code{upstream-blocks} (default: @code{'()})"
33862msgstr ""
33863
33864#. type: table
32747aa9 33865#: doc/guix.texi:18828
544cab3d
LC
33866msgid "A list of @dfn{upstream blocks} to create in the generated configuration file, the elements should be of type @code{<nginx-upstream-configuration>}."
33867msgstr ""
33868
33869#. type: table
32747aa9 33870#: doc/guix.texi:18835
544cab3d
LC
33871msgid "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."
33872msgstr ""
33873
33874#. type: example
32747aa9 33875#: doc/guix.texi:18854
544cab3d
LC
33876#, no-wrap
33877msgid ""
33878"(service\n"
33879" nginx-service-type\n"
33880" (nginx-configuration\n"
33881" (server-blocks\n"
33882" (list (nginx-server-configuration\n"
33883" (server-name '(\"www.example.com\"))\n"
33884" (root \"/srv/http/www.example.com\")\n"
33885" (locations\n"
33886" (list\n"
33887" (nginx-location-configuration\n"
33888" (uri \"/path1\")\n"
33889" (body '(\"proxy_pass http://server-proxy;\"))))))))\n"
33890" (upstream-blocks\n"
33891" (list (nginx-upstream-configuration\n"
33892" (name \"server-proxy\")\n"
33893" (servers (list \"server1.example.com\"\n"
33894" \"server2.example.com\")))))))\n"
33895msgstr ""
33896
33897#. type: table
32747aa9 33898#: doc/guix.texi:18862
544cab3d
LC
33899msgid "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."
33900msgstr ""
33901
33902#. type: table
32747aa9 33903#: doc/guix.texi:18866
544cab3d
LC
33904msgid "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."
33905msgstr ""
33906
33907#. type: item
32747aa9 33908#: doc/guix.texi:18867
544cab3d
LC
33909#, no-wrap
33910msgid "@code{server-names-hash-bucket-size} (default: @code{#f})"
33911msgstr ""
33912
33913#. type: table
32747aa9 33914#: doc/guix.texi:18870
544cab3d
LC
33915msgid "Bucket size for the server names hash tables, defaults to @code{#f} to use the size of the processors cache line."
33916msgstr ""
33917
33918#. type: item
32747aa9 33919#: doc/guix.texi:18871
544cab3d
LC
33920#, no-wrap
33921msgid "@code{server-names-hash-bucket-max-size} (default: @code{#f})"
33922msgstr ""
33923
33924#. type: table
32747aa9 33925#: doc/guix.texi:18873
544cab3d
LC
33926msgid "Maximum bucket size for the server names hash tables."
33927msgstr ""
33928
33929#. type: table
32747aa9 33930#: doc/guix.texi:18877
544cab3d
LC
33931msgid "Extra content for the @code{http} block. Should be string or a string valued G-expression."
33932msgstr ""
33933
33934#. type: deftp
32747aa9 33935#: doc/guix.texi:18881
544cab3d
LC
33936#, no-wrap
33937msgid "{Data Type} nginx-server-configuration"
33938msgstr ""
33939
33940#. type: deftp
32747aa9 33941#: doc/guix.texi:18884
544cab3d
LC
33942msgid "Data type representing the configuration of an nginx server block. This type has the following parameters:"
33943msgstr ""
33944
33945#. type: item
32747aa9 33946#: doc/guix.texi:18886
544cab3d
LC
33947#, no-wrap
33948msgid "@code{listen} (default: @code{'(\"80\" \"443 ssl\")})"
33949msgstr ""
33950
33951#. type: table
32747aa9 33952#: doc/guix.texi:18891
544cab3d
LC
33953msgid "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:"
33954msgstr ""
33955
33956#. type: example
32747aa9 33957#: doc/guix.texi:18894
544cab3d
LC
33958#, no-wrap
33959msgid "'(\"127.0.0.1:8000\" \"127.0.0.1\" \"8000\" \"*:8000\" \"localhost:8000\")\n"
33960msgstr ""
33961
33962#. type: item
32747aa9 33963#: doc/guix.texi:18896
544cab3d
LC
33964#, no-wrap
33965msgid "@code{server-name} (default: @code{(list 'default)})"
33966msgstr ""
33967
33968#. type: table
32747aa9 33969#: doc/guix.texi:18899
544cab3d
LC
33970msgid "A list of server names this server represents. @code{'default} represents the default server for connections matching no other server."
33971msgstr ""
33972
33973#. type: item
32747aa9 33974#: doc/guix.texi:18900
544cab3d
LC
33975#, no-wrap
33976msgid "@code{root} (default: @code{\"/srv/http\"})"
33977msgstr ""
33978
33979#. type: table
32747aa9 33980#: doc/guix.texi:18902
544cab3d
LC
33981msgid "Root of the website nginx will serve."
33982msgstr ""
33983
33984#. type: item
32747aa9 33985#: doc/guix.texi:18903
544cab3d
LC
33986#, no-wrap
33987msgid "@code{locations} (default: @code{'()})"
33988msgstr ""
33989
33990#. type: table
32747aa9 33991#: doc/guix.texi:18907
544cab3d
LC
33992msgid "A list of @dfn{nginx-location-configuration} or @dfn{nginx-named-location-configuration} records to use within this server block."
33993msgstr ""
33994
33995#. type: item
32747aa9 33996#: doc/guix.texi:18908
544cab3d
LC
33997#, no-wrap
33998msgid "@code{index} (default: @code{(list \"index.html\")})"
33999msgstr ""
34000
34001#. type: table
32747aa9 34002#: doc/guix.texi:18911
544cab3d
LC
34003msgid "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."
34004msgstr ""
34005
34006#. type: item
32747aa9 34007#: doc/guix.texi:18912
544cab3d
LC
34008#, no-wrap
34009msgid "@code{try-files} (default: @code{'()})"
34010msgstr ""
34011
34012#. type: table
32747aa9 34013#: doc/guix.texi:18915
544cab3d
LC
34014msgid "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."
34015msgstr ""
34016
34017#. type: item
32747aa9 34018#: doc/guix.texi:18916
544cab3d
LC
34019#, no-wrap
34020msgid "@code{ssl-certificate} (default: @code{#f})"
34021msgstr ""
34022
34023#. type: table
32747aa9 34024#: doc/guix.texi:18919
544cab3d
LC
34025msgid "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."
34026msgstr ""
34027
34028#. type: item
32747aa9 34029#: doc/guix.texi:18920
544cab3d
LC
34030#, no-wrap
34031msgid "@code{ssl-certificate-key} (default: @code{#f})"
34032msgstr ""
34033
34034#. type: table
32747aa9 34035#: doc/guix.texi:18923
544cab3d
LC
34036msgid "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."
34037msgstr ""
34038
34039#. type: item
32747aa9 34040#: doc/guix.texi:18924
544cab3d
LC
34041#, no-wrap
34042msgid "@code{server-tokens?} (default: @code{#f})"
34043msgstr ""
34044
34045#. type: table
32747aa9 34046#: doc/guix.texi:18926
544cab3d
LC
34047msgid "Whether the server should add its configuration to response."
34048msgstr ""
34049
34050#. type: item
32747aa9 34051#: doc/guix.texi:18927
544cab3d
LC
34052#, no-wrap
34053msgid "@code{raw-content} (default: @code{'()})"
34054msgstr ""
34055
34056#. type: table
32747aa9 34057#: doc/guix.texi:18929
544cab3d
LC
34058msgid "A list of raw lines added to the server block."
34059msgstr ""
34060
34061#. type: deftp
32747aa9 34062#: doc/guix.texi:18933
544cab3d
LC
34063#, no-wrap
34064msgid "{Data Type} nginx-upstream-configuration"
34065msgstr ""
34066
34067#. type: deftp
32747aa9 34068#: doc/guix.texi:18936
544cab3d
LC
34069msgid "Data type representing the configuration of an nginx @code{upstream} block. This type has the following parameters:"
34070msgstr ""
34071
34072#. type: table
32747aa9 34073#: doc/guix.texi:18940
544cab3d
LC
34074msgid "Name for this group of servers."
34075msgstr ""
34076
34077#. type: code{#1}
32747aa9 34078#: doc/guix.texi:18941
544cab3d
LC
34079#, no-wrap
34080msgid "servers"
34081msgstr ""
34082
34083#. type: table
32747aa9 34084#: doc/guix.texi:18948
544cab3d
LC
34085msgid "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."
34086msgstr ""
34087
34088#. type: deftp
32747aa9 34089#: doc/guix.texi:18952
544cab3d
LC
34090#, no-wrap
34091msgid "{Data Type} nginx-location-configuration"
34092msgstr ""
34093
34094#. type: deftp
32747aa9 34095#: doc/guix.texi:18955
544cab3d
LC
34096msgid "Data type representing the configuration of an nginx @code{location} block. This type has the following parameters:"
34097msgstr ""
34098
34099#. type: table
32747aa9 34100#: doc/guix.texi:18959
544cab3d
LC
34101msgid "URI which this location block matches."
34102msgstr ""
34103
34104#. type: anchor{#1}
32747aa9 34105#: doc/guix.texi:18961
544cab3d
LC
34106msgid "nginx-location-configuration body"
34107msgstr ""
34108
34109#. type: code{#1}
32747aa9 34110#: doc/guix.texi:18961 doc/guix.texi:18982
544cab3d
LC
34111#, no-wrap
34112msgid "body"
34113msgstr ""
34114
34115#. type: table
32747aa9 34116#: doc/guix.texi:18968
544cab3d
LC
34117msgid "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;\")}."
34118msgstr ""
34119
34120#. type: deftp
32747aa9 34121#: doc/guix.texi:18972
544cab3d
LC
34122#, no-wrap
34123msgid "{Data Type} nginx-named-location-configuration"
34124msgstr ""
34125
34126#. type: deftp
32747aa9 34127#: doc/guix.texi:18977
544cab3d
LC
34128msgid "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:"
34129msgstr ""
34130
34131#. type: table
32747aa9 34132#: doc/guix.texi:18981
544cab3d
LC
34133msgid "Name to identify this location block."
34134msgstr ""
34135
34136#. type: table
32747aa9 34137#: doc/guix.texi:18987
544cab3d
LC
34138msgid "@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."
34139msgstr ""
34140
34141#. type: subsubheading
32747aa9 34142#: doc/guix.texi:18991
544cab3d
LC
34143#, no-wrap
34144msgid "Varnish Cache"
34145msgstr ""
34146
34147#. type: cindex
32747aa9 34148#: doc/guix.texi:18992
544cab3d
LC
34149#, no-wrap
34150msgid "Varnish"
34151msgstr ""
34152
34153#. type: Plain text
32747aa9 34154#: doc/guix.texi:18997
544cab3d
LC
34155msgid "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."
34156msgstr ""
34157
34158#. type: defvr
32747aa9 34159#: doc/guix.texi:18998
544cab3d
LC
34160#, no-wrap
34161msgid "{Scheme Variable} varnish-service-type"
34162msgstr ""
34163
34164#. type: defvr
32747aa9 34165#: doc/guix.texi:19000
544cab3d
LC
34166msgid "Service type for the Varnish daemon."
34167msgstr ""
34168
34169#. type: deftp
32747aa9 34170#: doc/guix.texi:19002
544cab3d
LC
34171#, no-wrap
34172msgid "{Data Type} varnish-configuration"
34173msgstr ""
34174
34175#. type: deftp
32747aa9 34176#: doc/guix.texi:19005
544cab3d
LC
34177msgid "Data type representing the @code{varnish} service configuration. This type has the following parameters:"
34178msgstr ""
34179
34180#. type: item
32747aa9 34181#: doc/guix.texi:19007
544cab3d
LC
34182#, no-wrap
34183msgid "@code{package} (default: @code{varnish})"
34184msgstr ""
34185
34186#. type: table
32747aa9 34187#: doc/guix.texi:19009
544cab3d
LC
34188msgid "The Varnish package to use."
34189msgstr ""
34190
34191#. type: item
32747aa9 34192#: doc/guix.texi:19010
544cab3d
LC
34193#, no-wrap
34194msgid "@code{name} (default: @code{\"default\"})"
34195msgstr ""
34196
34197#. type: table
32747aa9 34198#: doc/guix.texi:19015
544cab3d
LC
34199msgid "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."
34200msgstr ""
34201
34202#. type: table
32747aa9 34203#: doc/guix.texi:19018
544cab3d
LC
34204msgid "Pass the @code{-n} argument to other Varnish programs to connect to the named instance, e.g.@: @command{varnishncsa -n default}."
34205msgstr ""
34206
34207#. type: item
32747aa9 34208#: doc/guix.texi:19019
544cab3d
LC
34209#, no-wrap
34210msgid "@code{backend} (default: @code{\"localhost:8080\"})"
34211msgstr ""
34212
34213#. type: table
32747aa9 34214#: doc/guix.texi:19021
544cab3d
LC
34215msgid "The backend to use. This option has no effect if @code{vcl} is set."
34216msgstr ""
34217
34218#. type: item
32747aa9 34219#: doc/guix.texi:19022
544cab3d
LC
34220#, no-wrap
34221msgid "@code{vcl} (default: #f)"
34222msgstr ""
34223
34224#. type: table
32747aa9 34225#: doc/guix.texi:19027
544cab3d
LC
34226msgid "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."
34227msgstr ""
34228
34229#. type: table
32747aa9 34230#: doc/guix.texi:19031
544cab3d
LC
34231msgid "For example, to mirror @url{http://www.gnu.org,www.gnu.org} with VCL you can do something along these lines:"
34232msgstr ""
34233
34234#. type: example
32747aa9 34235#: doc/guix.texi:19038
544cab3d
LC
34236#, no-wrap
34237msgid ""
34238"(define %gnu-mirror\n"
34239" (plain-file\n"
34240" \"gnu.vcl\"\n"
34241" \"vcl 4.1;\n"
34242"backend gnu @{ .host = \"www.gnu.org\"; @}\"))\n"
34243"\n"
34244msgstr ""
34245
34246#. type: example
32747aa9 34247#: doc/guix.texi:19046
544cab3d
LC
34248#, no-wrap
34249msgid ""
34250"(operating-system\n"
34251" ...\n"
34252" (services (cons (service varnish-service-type\n"
34253" (varnish-configuration\n"
34254" (listen '(\":80\"))\n"
34255" (vcl %gnu-mirror)))\n"
34256" %base-services)))\n"
34257msgstr ""
34258
34259#. type: table
32747aa9 34260#: doc/guix.texi:19050
544cab3d
LC
34261msgid "The configuration of an already running Varnish instance can be inspected and changed using the @command{varnishadm} program."
34262msgstr ""
34263
34264#. type: table
32747aa9 34265#: doc/guix.texi:19054
544cab3d
LC
34266msgid "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."
34267msgstr ""
34268
34269#. type: item
32747aa9 34270#: doc/guix.texi:19055
544cab3d
LC
34271#, no-wrap
34272msgid "@code{listen} (default: @code{'(\"localhost:80\")})"
34273msgstr ""
34274
34275#. type: table
32747aa9 34276#: doc/guix.texi:19057
544cab3d
LC
34277msgid "List of addresses Varnish will listen on."
34278msgstr ""
34279
34280#. type: item
32747aa9 34281#: doc/guix.texi:19058
544cab3d
LC
34282#, no-wrap
34283msgid "@code{storage} (default: @code{'(\"malloc,128m\")})"
34284msgstr ""
34285
34286#. type: table
32747aa9 34287#: doc/guix.texi:19060
544cab3d
LC
34288msgid "List of storage backends that will be available in VCL."
34289msgstr ""
34290
34291#. type: item
32747aa9 34292#: doc/guix.texi:19061
544cab3d
LC
34293#, no-wrap
34294msgid "@code{parameters} (default: @code{'()})"
34295msgstr ""
34296
34297#. type: table
32747aa9 34298#: doc/guix.texi:19063
544cab3d
LC
34299msgid "List of run-time parameters in the form @code{'((\"parameter\" . \"value\"))}."
34300msgstr ""
34301
34302#. type: table
32747aa9 34303#: doc/guix.texi:19066
544cab3d
LC
34304msgid "Additional arguments to pass to the @command{varnishd} process."
34305msgstr ""
34306
34307#. type: subsubheading
32747aa9 34308#: doc/guix.texi:19070
544cab3d
LC
34309#, no-wrap
34310msgid "FastCGI"
34311msgstr ""
34312
34313#. type: cindex
32747aa9 34314#: doc/guix.texi:19071
544cab3d
LC
34315#, no-wrap
34316msgid "fastcgi"
34317msgstr ""
34318
34319#. type: cindex
32747aa9 34320#: doc/guix.texi:19072
544cab3d
LC
34321#, no-wrap
34322msgid "fcgiwrap"
34323msgstr ""
34324
34325#. type: Plain text
32747aa9 34326#: doc/guix.texi:19079
544cab3d
LC
34327msgid "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."
34328msgstr ""
34329
34330#. type: Plain text
32747aa9 34331#: doc/guix.texi:19086
544cab3d
LC
34332msgid "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."
34333msgstr ""
34334
34335#. type: defvr
32747aa9 34336#: doc/guix.texi:19087
544cab3d
LC
34337#, no-wrap
34338msgid "{Scheme Variable} fcgiwrap-service-type"
34339msgstr ""
34340
34341#. type: defvr
32747aa9 34342#: doc/guix.texi:19089
544cab3d
LC
34343msgid "A service type for the @code{fcgiwrap} FastCGI proxy."
34344msgstr ""
34345
34346#. type: deftp
32747aa9 34347#: doc/guix.texi:19091
544cab3d
LC
34348#, no-wrap
34349msgid "{Data Type} fcgiwrap-configuration"
34350msgstr ""
34351
34352#. type: deftp
32747aa9 34353#: doc/guix.texi:19094
544cab3d
LC
34354msgid "Data type representing the configuration of the @code{fcgiwrap} service. This type has the following parameters:"
34355msgstr ""
34356
34357#. type: item
32747aa9 34358#: doc/guix.texi:19095
544cab3d
LC
34359#, no-wrap
34360msgid "@code{package} (default: @code{fcgiwrap})"
34361msgstr ""
34362
34363#. type: table
32747aa9 34364#: doc/guix.texi:19097
544cab3d
LC
34365msgid "The fcgiwrap package to use."
34366msgstr ""
34367
34368#. type: item
32747aa9 34369#: doc/guix.texi:19098
544cab3d
LC
34370#, no-wrap
34371msgid "@code{socket} (default: @code{tcp:127.0.0.1:9000})"
34372msgstr ""
34373
34374#. type: table
32747aa9 34375#: doc/guix.texi:19104
544cab3d
LC
34376msgid "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}."
34377msgstr ""
34378
34379#. type: item
32747aa9 34380#: doc/guix.texi:19105
544cab3d
LC
34381#, no-wrap
34382msgid "@code{user} (default: @code{fcgiwrap})"
34383msgstr ""
34384
34385#. type: itemx
32747aa9 34386#: doc/guix.texi:19106
544cab3d
LC
34387#, no-wrap
34388msgid "@code{group} (default: @code{fcgiwrap})"
34389msgstr ""
34390
34391#. type: table
32747aa9 34392#: doc/guix.texi:19111
544cab3d
LC
34393msgid "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."
34394msgstr ""
34395
34396#. type: table
32747aa9 34397#: doc/guix.texi:19118
544cab3d
LC
34398msgid "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."
34399msgstr ""
34400
34401#. type: cindex
32747aa9 34402#: doc/guix.texi:19121
544cab3d
LC
34403#, no-wrap
34404msgid "php-fpm"
34405msgstr ""
34406
34407#. type: Plain text
32747aa9 34408#: doc/guix.texi:19124
544cab3d
LC
34409msgid "PHP-FPM (FastCGI Process Manager) is an alternative PHP FastCGI implementation with some additional features useful for sites of any size."
34410msgstr ""
34411
34412#. type: Plain text
32747aa9 34413#: doc/guix.texi:19126
544cab3d
LC
34414msgid "These features include:"
34415msgstr ""
34416
34417#. type: item
32747aa9 34418#: doc/guix.texi:19127
544cab3d
LC
34419#, no-wrap
34420msgid "Adaptive process spawning"
34421msgstr ""
34422
34423#. type: item
32747aa9 34424#: doc/guix.texi:19128
544cab3d
LC
34425#, no-wrap
34426msgid "Basic statistics (similar to Apache's mod_status)"
34427msgstr ""
34428
34429#. type: item
32747aa9 34430#: doc/guix.texi:19129
544cab3d
LC
34431#, no-wrap
34432msgid "Advanced process management with graceful stop/start"
34433msgstr ""
34434
34435#. type: item
32747aa9 34436#: doc/guix.texi:19130
544cab3d
LC
34437#, no-wrap
34438msgid "Ability to start workers with different uid/gid/chroot/environment"
34439msgstr ""
34440
34441#. type: itemize
32747aa9 34442#: doc/guix.texi:19132
544cab3d
LC
34443msgid "and different php.ini (replaces safe_mode)"
34444msgstr ""
34445
34446#. type: item
32747aa9 34447#: doc/guix.texi:19132
544cab3d
LC
34448#, no-wrap
34449msgid "Stdout & stderr logging"
34450msgstr ""
34451
34452#. type: item
32747aa9 34453#: doc/guix.texi:19133
544cab3d
LC
34454#, no-wrap
34455msgid "Emergency restart in case of accidental opcode cache destruction"
34456msgstr ""
34457
34458#. type: item
32747aa9 34459#: doc/guix.texi:19134
544cab3d
LC
34460#, no-wrap
34461msgid "Accelerated upload support"
34462msgstr ""
34463
34464#. type: item
32747aa9 34465#: doc/guix.texi:19135
544cab3d
LC
34466#, no-wrap
34467msgid "Support for a \"slowlog\""
34468msgstr ""
34469
34470#. type: item
32747aa9 34471#: doc/guix.texi:19136
544cab3d
LC
34472#, no-wrap
34473msgid "Enhancements to FastCGI, such as fastcgi_finish_request() -"
34474msgstr ""
34475
34476#. type: itemize
32747aa9 34477#: doc/guix.texi:19139
544cab3d
LC
34478msgid "a special function to finish request & flush all data while continuing to do something time-consuming (video converting, stats processing, etc.)"
34479msgstr ""
34480
34481#. type: Plain text
32747aa9 34482#: doc/guix.texi:19141
544cab3d
LC
34483msgid "...@: and much more."
34484msgstr ""
34485
34486#. type: defvr
32747aa9 34487#: doc/guix.texi:19142
544cab3d
LC
34488#, no-wrap
34489msgid "{Scheme Variable} php-fpm-service-type"
34490msgstr ""
34491
34492#. type: defvr
32747aa9 34493#: doc/guix.texi:19144
544cab3d
LC
34494msgid "A Service type for @code{php-fpm}."
34495msgstr ""
34496
34497#. type: deftp
32747aa9 34498#: doc/guix.texi:19146
544cab3d
LC
34499#, no-wrap
34500msgid "{Data Type} php-fpm-configuration"
34501msgstr ""
34502
34503#. type: deftp
32747aa9 34504#: doc/guix.texi:19148
544cab3d
LC
34505msgid "Data Type for php-fpm service configuration."
34506msgstr ""
34507
34508#. type: item
32747aa9 34509#: doc/guix.texi:19149
544cab3d
LC
34510#, no-wrap
34511msgid "@code{php} (default: @code{php})"
34512msgstr ""
34513
34514#. type: table
32747aa9 34515#: doc/guix.texi:19151
544cab3d
LC
34516msgid "The php package to use."
34517msgstr ""
34518
34519#. type: item
32747aa9 34520#: doc/guix.texi:19151
544cab3d
LC
34521#, no-wrap
34522msgid "@code{socket} (default: @code{(string-append \"/var/run/php\" (version-major (package-version php)) \"-fpm.sock\")})"
34523msgstr ""
34524
34525#. type: table
32747aa9 34526#: doc/guix.texi:19153
544cab3d
LC
34527msgid "The address on which to accept FastCGI requests. Valid syntaxes are:"
34528msgstr ""
34529
34530#. type: code{#1}
32747aa9 34531#: doc/guix.texi:19154
544cab3d
LC
34532#, no-wrap
34533msgid "\"ip.add.re.ss:port\""
34534msgstr ""
34535
34536#. type: table
32747aa9 34537#: doc/guix.texi:19156
544cab3d
LC
34538msgid "Listen on a TCP socket to a specific address on a specific port."
34539msgstr ""
34540
34541#. type: code{#1}
32747aa9 34542#: doc/guix.texi:19156
544cab3d
LC
34543#, no-wrap
34544msgid "\"port\""
34545msgstr ""
34546
34547#. type: table
32747aa9 34548#: doc/guix.texi:19158
544cab3d
LC
34549msgid "Listen on a TCP socket to all addresses on a specific port."
34550msgstr ""
34551
34552#. type: code{#1}
32747aa9 34553#: doc/guix.texi:19158
544cab3d
LC
34554#, no-wrap
34555msgid "\"/path/to/unix/socket\""
34556msgstr ""
34557
34558#. type: table
32747aa9 34559#: doc/guix.texi:19160
544cab3d
LC
34560msgid "Listen on a unix socket."
34561msgstr ""
34562
34563#. type: item
32747aa9 34564#: doc/guix.texi:19162
544cab3d
LC
34565#, no-wrap
34566msgid "@code{user} (default: @code{php-fpm})"
34567msgstr ""
34568
34569#. type: table
32747aa9 34570#: doc/guix.texi:19164
544cab3d
LC
34571msgid "User who will own the php worker processes."
34572msgstr ""
34573
34574#. type: item
32747aa9 34575#: doc/guix.texi:19164
544cab3d
LC
34576#, no-wrap
34577msgid "@code{group} (default: @code{php-fpm})"
34578msgstr ""
34579
34580#. type: table
32747aa9 34581#: doc/guix.texi:19166
544cab3d
LC
34582msgid "Group of the worker processes."
34583msgstr ""
34584
34585#. type: item
32747aa9 34586#: doc/guix.texi:19166
544cab3d
LC
34587#, no-wrap
34588msgid "@code{socket-user} (default: @code{php-fpm})"
34589msgstr ""
34590
34591#. type: table
32747aa9 34592#: doc/guix.texi:19168
544cab3d
LC
34593msgid "User who can speak to the php-fpm socket."
34594msgstr ""
34595
34596#. type: item
32747aa9 34597#: doc/guix.texi:19168
544cab3d
LC
34598#, no-wrap
34599msgid "@code{socket-group} (default: @code{php-fpm})"
34600msgstr ""
34601
34602#. type: table
32747aa9 34603#: doc/guix.texi:19170
544cab3d
LC
34604msgid "Group that can speak to the php-fpm socket."
34605msgstr ""
34606
34607#. type: item
32747aa9 34608#: doc/guix.texi:19170
544cab3d
LC
34609#, no-wrap
34610msgid "@code{pid-file} (default: @code{(string-append \"/var/run/php\" (version-major (package-version php)) \"-fpm.pid\")})"
34611msgstr ""
34612
34613#. type: table
32747aa9 34614#: doc/guix.texi:19173
544cab3d
LC
34615msgid "The process id of the php-fpm process is written to this file once the service has started."
34616msgstr ""
34617
34618#. type: item
32747aa9 34619#: doc/guix.texi:19173
544cab3d
LC
34620#, no-wrap
34621msgid "@code{log-file} (default: @code{(string-append \"/var/log/php\" (version-major (package-version php)) \"-fpm.log\")})"
34622msgstr ""
34623
34624#. type: table
32747aa9 34625#: doc/guix.texi:19175
544cab3d
LC
34626msgid "Log for the php-fpm master process."
34627msgstr ""
34628
34629#. type: item
32747aa9 34630#: doc/guix.texi:19175
544cab3d
LC
34631#, no-wrap
34632msgid "@code{process-manager} (default: @code{(php-fpm-dynamic-process-manager-configuration)})"
34633msgstr ""
34634
34635#. type: table
32747aa9 34636#: doc/guix.texi:19178
544cab3d
LC
34637msgid "Detailed settings for the php-fpm process manager. Must be either:"
34638msgstr ""
34639
34640#. type: code{#1}
32747aa9 34641#: doc/guix.texi:19179
544cab3d
LC
34642#, no-wrap
34643msgid "<php-fpm-dynamic-process-manager-configuration>"
34644msgstr ""
34645
34646#. type: code{#1}
32747aa9 34647#: doc/guix.texi:19180
544cab3d
LC
34648#, no-wrap
34649msgid "<php-fpm-static-process-manager-configuration>"
34650msgstr ""
34651
34652#. type: code{#1}
32747aa9 34653#: doc/guix.texi:19181
544cab3d
LC
34654#, no-wrap
34655msgid "<php-fpm-on-demand-process-manager-configuration>"
34656msgstr ""
34657
34658#. type: item
32747aa9 34659#: doc/guix.texi:19183
544cab3d
LC
34660#, no-wrap
34661msgid "@code{display-errors} (default @code{#f})"
34662msgstr ""
34663
34664#. type: table
32747aa9 34665#: doc/guix.texi:19188
544cab3d
LC
34666msgid "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."
34667msgstr ""
34668
34669#. type: item
32747aa9 34670#: doc/guix.texi:19188
544cab3d
LC
34671#, no-wrap
34672msgid "@code{timezone} (default @code{#f})"
34673msgstr ""
34674
34675#. type: table
32747aa9 34676#: doc/guix.texi:19190
544cab3d
LC
34677msgid "Specifies @code{php_admin_value[date.timezone]} parameter."
34678msgstr ""
34679
34680#. type: item
32747aa9 34681#: doc/guix.texi:19190
544cab3d
LC
34682#, no-wrap
34683msgid "@code{workers-logfile} (default @code{(string-append \"/var/log/php\" (version-major (package-version php)) \"-fpm.www.log\")})"
34684msgstr ""
34685
34686#. type: table
32747aa9 34687#: doc/guix.texi:19193
544cab3d
LC
34688msgid "This file will log the @code{stderr} outputs of php worker processes. Can be set to @code{#f} to disable logging."
34689msgstr ""
34690
34691#. type: item
32747aa9 34692#: doc/guix.texi:19193
544cab3d
LC
34693#, no-wrap
34694msgid "@code{file} (default @code{#f})"
34695msgstr ""
34696
34697#. type: table
32747aa9 34698#: doc/guix.texi:19196
544cab3d
LC
34699msgid "An optional override of the whole configuration. You can use the @code{mixed-text-file} function or an absolute filepath for it."
34700msgstr ""
34701
34702#. type: deftp
32747aa9 34703#: doc/guix.texi:19199
544cab3d
LC
34704#, no-wrap
34705msgid "{Data type} php-fpm-dynamic-process-manager-configuration"
34706msgstr ""
34707
34708#. type: deftp
32747aa9 34709#: doc/guix.texi:19203
544cab3d
LC
34710msgid "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."
34711msgstr ""
34712
34713#. type: item
32747aa9 34714#: doc/guix.texi:19204 doc/guix.texi:19220 doc/guix.texi:19230
544cab3d
LC
34715#, no-wrap
34716msgid "@code{max-children} (default: @code{5})"
34717msgstr ""
34718
34719#. type: table
32747aa9 34720#: doc/guix.texi:19206 doc/guix.texi:19222 doc/guix.texi:19232
544cab3d
LC
34721msgid "Maximum of worker processes."
34722msgstr ""
34723
34724#. type: item
32747aa9 34725#: doc/guix.texi:19206
544cab3d
LC
34726#, no-wrap
34727msgid "@code{start-servers} (default: @code{2})"
34728msgstr ""
34729
34730#. type: table
32747aa9 34731#: doc/guix.texi:19208
544cab3d
LC
34732msgid "How many worker processes should be started on start-up."
34733msgstr ""
34734
34735#. type: item
32747aa9 34736#: doc/guix.texi:19208
544cab3d
LC
34737#, no-wrap
34738msgid "@code{min-spare-servers} (default: @code{1})"
34739msgstr ""
34740
34741#. type: table
32747aa9 34742#: doc/guix.texi:19210
544cab3d
LC
34743msgid "How many spare worker processes should be kept around at minimum."
34744msgstr ""
34745
34746#. type: item
32747aa9 34747#: doc/guix.texi:19210
544cab3d
LC
34748#, no-wrap
34749msgid "@code{max-spare-servers} (default: @code{3})"
34750msgstr ""
34751
34752#. type: table
32747aa9 34753#: doc/guix.texi:19212
544cab3d
LC
34754msgid "How many spare worker processes should be kept around at maximum."
34755msgstr ""
34756
34757#. type: deftp
32747aa9 34758#: doc/guix.texi:19215
544cab3d
LC
34759#, no-wrap
34760msgid "{Data type} php-fpm-static-process-manager-configuration"
34761msgstr ""
34762
34763#. type: deftp
32747aa9 34764#: doc/guix.texi:19219
544cab3d
LC
34765msgid "Data Type for the @code{static} php-fpm process manager. With the @code{static} process manager, an unchanging number of worker processes are created."
34766msgstr ""
34767
34768#. type: deftp
32747aa9 34769#: doc/guix.texi:19225
544cab3d
LC
34770#, no-wrap
34771msgid "{Data type} php-fpm-on-demand-process-manager-configuration"
34772msgstr ""
34773
34774#. type: deftp
32747aa9 34775#: doc/guix.texi:19229
544cab3d
LC
34776msgid "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."
34777msgstr ""
34778
34779#. type: item
32747aa9 34780#: doc/guix.texi:19232
544cab3d
LC
34781#, no-wrap
34782msgid "@code{process-idle-timeout} (default: @code{10})"
34783msgstr ""
34784
34785#. type: table
32747aa9 34786#: doc/guix.texi:19234
544cab3d
LC
34787msgid "The time in seconds after which a process with no requests is killed."
34788msgstr ""
34789
34790#. type: deffn
32747aa9 34791#: doc/guix.texi:19238
544cab3d
LC
34792#, no-wrap
34793msgid "{Scheme Procedure} nginx-php-fpm-location @"
34794msgstr ""
34795
34796#. type: deffn
32747aa9 34797#: doc/guix.texi:19244
544cab3d
LC
34798msgid "[#: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}."
34799msgstr ""
34800
34801#. type: Plain text
32747aa9 34802#: doc/guix.texi:19247
544cab3d
LC
34803msgid "A simple services setup for nginx with php can look like this:"
34804msgstr ""
34805
34806#. type: example
32747aa9 34807#: doc/guix.texi:19260
544cab3d
LC
34808#, no-wrap
34809msgid ""
34810"(services (cons* (service dhcp-client-service-type)\n"
34811" (service php-fpm-service-type)\n"
34812" (service nginx-service-type\n"
34813" (nginx-server-configuration\n"
34814" (server-name '(\"example.com\"))\n"
34815" (root \"/srv/http/\")\n"
34816" (locations\n"
34817" (list (nginx-php-location)))\n"
34818" (listen '(\"80\"))\n"
34819" (ssl-certificate #f)\n"
34820" (ssl-certificate-key #f)))\n"
34821" %base-services))\n"
34822msgstr ""
34823
34824#. type: cindex
32747aa9 34825#: doc/guix.texi:19262
544cab3d
LC
34826#, no-wrap
34827msgid "cat-avatar-generator"
34828msgstr ""
34829
34830#. type: Plain text
32747aa9 34831#: doc/guix.texi:19266
544cab3d
LC
34832msgid "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."
34833msgstr ""
34834
34835#. type: deffn
32747aa9 34836#: doc/guix.texi:19267
544cab3d
LC
34837#, no-wrap
34838msgid "{Scheme Procedure} cat-avatar-generator-service @"
34839msgstr ""
34840
34841#. type: deffn
32747aa9 34842#: doc/guix.texi:19275
544cab3d
LC
34843msgid "[#: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."
34844msgstr ""
34845
34846#. type: Plain text
32747aa9 34847#: doc/guix.texi:19278
544cab3d
LC
34848msgid "A simple setup for cat-avatar-generator can look like this:"
34849msgstr ""
34850
34851#. type: example
32747aa9 34852#: doc/guix.texi:19285
544cab3d
LC
34853#, no-wrap
34854msgid ""
34855"(services (cons* (cat-avatar-generator-service\n"
34856" #:configuration\n"
34857" (nginx-server-configuration\n"
34858" (server-name '(\"example.com\"))))\n"
34859" ...\n"
34860" %base-services))\n"
34861msgstr ""
34862
34863#. type: subsubheading
32747aa9 34864#: doc/guix.texi:19287
544cab3d
LC
34865#, no-wrap
34866msgid "Hpcguix-web"
34867msgstr ""
34868
34869#. type: cindex
32747aa9 34870#: doc/guix.texi:19289
544cab3d
LC
34871#, no-wrap
34872msgid "hpcguix-web"
34873msgstr ""
34874
34875#. type: Plain text
32747aa9 34876#: doc/guix.texi:19294
544cab3d
LC
34877msgid "The @uref{hpcguix-web, https://github.com/UMCUGenetics/hpcguix-web/} program is a customizable web interface to browse Guix packages, initially designed for users of high-performance computing (HPC) clusters."
34878msgstr ""
34879
34880#. type: defvr
32747aa9 34881#: doc/guix.texi:19295
544cab3d
LC
34882#, no-wrap
34883msgid "{Scheme Variable} hpcguix-web-service-type"
34884msgstr ""
34885
34886#. type: defvr
32747aa9 34887#: doc/guix.texi:19297
544cab3d
LC
34888msgid "The service type for @code{hpcguix-web}."
34889msgstr ""
34890
34891#. type: deftp
32747aa9 34892#: doc/guix.texi:19299
544cab3d
LC
34893#, no-wrap
34894msgid "{Data Type} hpcguix-web-configuration"
34895msgstr ""
34896
34897#. type: deftp
32747aa9 34898#: doc/guix.texi:19301
544cab3d
LC
34899msgid "Data type for the hpcguix-web service configuration."
34900msgstr ""
34901
34902#. type: code{#1}
32747aa9 34903#: doc/guix.texi:19303
544cab3d
LC
34904#, no-wrap
34905msgid "specs"
34906msgstr ""
34907
34908#. type: table
32747aa9 34909#: doc/guix.texi:19306
544cab3d
LC
34910msgid "A gexp (@pxref{G-Expressions}) specifying the hpcguix-web service configuration. The main items available in this spec are:"
34911msgstr ""
34912
34913#. type: item
32747aa9 34914#: doc/guix.texi:19308
544cab3d
LC
34915#, no-wrap
34916msgid "@code{title-prefix} (default: @code{\"hpcguix | \"})"
34917msgstr ""
34918
34919#. type: table
32747aa9 34920#: doc/guix.texi:19310
544cab3d
LC
34921msgid "The page title prefix."
34922msgstr ""
34923
34924#. type: item
32747aa9 34925#: doc/guix.texi:19311
544cab3d
LC
34926#, no-wrap
34927msgid "@code{guix-command} (default: @code{\"guix\"})"
34928msgstr ""
34929
34930#. type: table
32747aa9 34931#: doc/guix.texi:19313
544cab3d
LC
34932msgid "The @command{guix} command."
34933msgstr ""
34934
34935#. type: item
32747aa9 34936#: doc/guix.texi:19314
544cab3d
LC
34937#, no-wrap
34938msgid "@code{package-filter-proc} (default: @code{(const #t)})"
34939msgstr ""
34940
34941#. type: table
32747aa9 34942#: doc/guix.texi:19316
544cab3d
LC
34943msgid "A procedure specifying how to filter packages that are displayed."
34944msgstr ""
34945
34946#. type: item
32747aa9 34947#: doc/guix.texi:19317
544cab3d
LC
34948#, no-wrap
34949msgid "@code{package-page-extension-proc} (default: @code{(const '())})"
34950msgstr ""
34951
34952#. type: table
32747aa9 34953#: doc/guix.texi:19319
544cab3d
LC
34954msgid "Extension package for @code{hpcguix-web}."
34955msgstr ""
34956
34957#. type: item
32747aa9 34958#: doc/guix.texi:19320
544cab3d
LC
34959#, no-wrap
34960msgid "@code{menu} (default: @code{'()})"
34961msgstr ""
34962
34963#. type: table
32747aa9 34964#: doc/guix.texi:19322
544cab3d
LC
34965msgid "Additional entry in page @code{menu}."
34966msgstr ""
34967
34968#. type: item
32747aa9 34969#: doc/guix.texi:19323
544cab3d
LC
34970#, no-wrap
34971msgid "@code{channels} (default: @code{%default-channels})"
34972msgstr ""
34973
34974#. type: table
32747aa9 34975#: doc/guix.texi:19325
544cab3d
LC
34976msgid "List of channels from which the package list is built (@pxref{Channels})."
34977msgstr ""
34978
34979#. type: item
32747aa9 34980#: doc/guix.texi:19326
544cab3d
LC
34981#, no-wrap
34982msgid "@code{package-list-expiration} (default: @code{(* 12 3600)})"
34983msgstr ""
34984
34985#. type: table
32747aa9 34986#: doc/guix.texi:19329
544cab3d
LC
34987msgid "The expiration time, in seconds, after which the package list is rebuilt from the latest instances of the given channels."
34988msgstr ""
34989
34990#. type: table
32747aa9 34991#: doc/guix.texi:19334
544cab3d
LC
34992msgid "See the hpcguix-web repository for a @uref{https://github.com/UMCUGenetics/hpcguix-web/blob/master/hpcweb-configuration.scm, complete example}."
34993msgstr ""
34994
34995#. type: item
32747aa9 34996#: doc/guix.texi:19335
544cab3d
LC
34997#, no-wrap
34998msgid "@code{package} (default: @code{hpcguix-web})"
34999msgstr ""
35000
35001#. type: table
32747aa9 35002#: doc/guix.texi:19337
544cab3d
LC
35003msgid "The hpcguix-web package to use."
35004msgstr ""
35005
35006#. type: Plain text
32747aa9 35007#: doc/guix.texi:19341
544cab3d
LC
35008msgid "A typical hpcguix-web service declaration looks like this:"
35009msgstr ""
35010
35011#. type: example
32747aa9 35012#: doc/guix.texi:19350
544cab3d
LC
35013#, no-wrap
35014msgid ""
35015"(service hpcguix-web-service-type\n"
35016" (hpcguix-web-configuration\n"
35017" (specs\n"
35018" #~(define site-config\n"
35019" (hpcweb-configuration\n"
35020" (title-prefix \"Guix-HPC - \")\n"
35021" (menu '((\"/about\" \"ABOUT\"))))))))\n"
35022msgstr ""
35023
35024#. type: quotation
32747aa9 35025#: doc/guix.texi:19357
544cab3d
LC
35026msgid "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."
35027msgstr ""
35028
35029#. type: quotation
32747aa9 35030#: doc/guix.texi:19361
544cab3d
LC
35031msgid "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."
35032msgstr ""
35033
35034#. type: cindex
32747aa9 35035#: doc/guix.texi:19366
544cab3d
LC
35036#, no-wrap
35037msgid "Web"
35038msgstr ""
35039
35040#. type: cindex
32747aa9 35041#: doc/guix.texi:19367
544cab3d
LC
35042#, no-wrap
35043msgid "HTTP, HTTPS"
35044msgstr ""
35045
35046#. type: cindex
32747aa9 35047#: doc/guix.texi:19368
544cab3d
LC
35048#, no-wrap
35049msgid "Let's Encrypt"
35050msgstr ""
35051
35052#. type: cindex
32747aa9 35053#: doc/guix.texi:19369
544cab3d
LC
35054#, no-wrap
35055msgid "TLS certificates"
35056msgstr ""
35057
35058#. type: Plain text
32747aa9 35059#: doc/guix.texi:19376
544cab3d
LC
35060msgid "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."
35061msgstr ""
35062
35063#. type: Plain text
32747aa9 35064#: doc/guix.texi:19388
544cab3d
LC
35065msgid "@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."
35066msgstr ""
35067
35068#. type: Plain text
32747aa9 35069#: doc/guix.texi:19395
544cab3d
LC
35070msgid "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)."
35071msgstr ""
35072
35073#. type: Plain text
32747aa9 35074#: doc/guix.texi:19401
544cab3d
LC
35075msgid "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."
35076msgstr ""
35077
35078#. type: Plain text
32747aa9 35079#: doc/guix.texi:19405
544cab3d
LC
35080msgid "By using this service, you agree to the ACME Subscriber Agreement, which can be found there: @url{https://acme-v01.api.letsencrypt.org/directory}."
35081msgstr ""
35082
35083#. type: defvr
32747aa9 35084#: doc/guix.texi:19406
544cab3d
LC
35085#, no-wrap
35086msgid "{Scheme Variable} certbot-service-type"
35087msgstr ""
35088
35089#. type: defvr
32747aa9 35090#: doc/guix.texi:19409
544cab3d
LC
35091msgid "A service type for the @code{certbot} Let's Encrypt client. Its value must be a @code{certbot-configuration} record as in this example:"
35092msgstr ""
35093
35094#. type: example
32747aa9 35095#: doc/guix.texi:19416
544cab3d
LC
35096#, no-wrap
35097msgid ""
35098"(define %nginx-deploy-hook\n"
35099" (program-file\n"
35100" \"nginx-deploy-hook\"\n"
35101" #~(let ((pid (call-with-input-file \"/var/run/nginx/pid\" read)))\n"
35102" (kill pid SIGHUP))))\n"
35103"\n"
35104msgstr ""
35105
35106#. type: example
32747aa9 35107#: doc/guix.texi:19427
544cab3d
LC
35108#, no-wrap
35109msgid ""
35110"(service certbot-service-type\n"
35111" (certbot-configuration\n"
35112" (email \"foo@@example.net\")\n"
35113" (certificates\n"
35114" (list\n"
35115" (certificate-configuration\n"
35116" (domains '(\"example.net\" \"www.example.net\"))\n"
35117" (deploy-hook %nginx-deploy-hook))\n"
35118" (certificate-configuration\n"
35119" (domains '(\"bar.example.net\")))))))\n"
35120msgstr ""
35121
35122#. type: defvr
32747aa9 35123#: doc/guix.texi:19430
544cab3d
LC
35124msgid "See below for details about @code{certbot-configuration}."
35125msgstr ""
35126
35127#. type: deftp
32747aa9 35128#: doc/guix.texi:19432
544cab3d
LC
35129#, no-wrap
35130msgid "{Data Type} certbot-configuration"
35131msgstr ""
35132
35133#. type: deftp
32747aa9 35134#: doc/guix.texi:19435
544cab3d
LC
35135msgid "Data type representing the configuration of the @code{certbot} service. This type has the following parameters:"
35136msgstr ""
35137
35138#. type: item
32747aa9 35139#: doc/guix.texi:19437
544cab3d
LC
35140#, no-wrap
35141msgid "@code{package} (default: @code{certbot})"
35142msgstr ""
35143
35144#. type: table
32747aa9 35145#: doc/guix.texi:19439
544cab3d
LC
35146msgid "The certbot package to use."
35147msgstr ""
35148
35149#. type: item
32747aa9 35150#: doc/guix.texi:19440
544cab3d
LC
35151#, no-wrap
35152msgid "@code{webroot} (default: @code{/var/www})"
35153msgstr ""
35154
35155#. type: table
32747aa9 35156#: doc/guix.texi:19443
544cab3d
LC
35157msgid "The directory from which to serve the Let's Encrypt challenge/response files."
35158msgstr ""
35159
35160#. type: item
32747aa9 35161#: doc/guix.texi:19444
544cab3d
LC
35162#, no-wrap
35163msgid "@code{certificates} (default: @code{()})"
35164msgstr ""
35165
35166#. type: table
32747aa9 35167#: doc/guix.texi:19448
544cab3d
LC
35168msgid "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}."
35169msgstr ""
35170
35171#. type: table
32747aa9 35172#: doc/guix.texi:19452
544cab3d
LC
35173msgid "Mandatory email used for registration, recovery contact, and important account notifications."
35174msgstr ""
35175
35176#. type: item
32747aa9 35177#: doc/guix.texi:19453
544cab3d
LC
35178#, no-wrap
35179msgid "@code{rsa-key-size} (default: @code{2048})"
35180msgstr ""
35181
35182#. type: table
32747aa9 35183#: doc/guix.texi:19455
544cab3d
LC
35184msgid "Size of the RSA key."
35185msgstr ""
35186
35187#. type: item
32747aa9 35188#: doc/guix.texi:19456
544cab3d
LC
35189#, no-wrap
35190msgid "@code{default-location} (default: @i{see below})"
35191msgstr ""
35192
35193#. type: table
32747aa9 35194#: doc/guix.texi:19465
544cab3d
LC
35195msgid "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."
35196msgstr ""
35197
35198#. type: table
32747aa9 35199#: doc/guix.texi:19469
544cab3d
LC
35200msgid "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."
35201msgstr ""
35202
35203#. type: table
32747aa9 35204#: doc/guix.texi:19473
544cab3d
LC
35205msgid "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}."
35206msgstr ""
35207
35208#. type: table
32747aa9 35209#: doc/guix.texi:19475
544cab3d
LC
35210msgid "Pass @code{#f} to not issue a default location."
35211msgstr ""
35212
35213#. type: deftp
32747aa9 35214#: doc/guix.texi:19478
544cab3d
LC
35215#, no-wrap
35216msgid "{Data Type} certificate-configuration"
35217msgstr ""
35218
35219#. type: deftp
32747aa9 35220#: doc/guix.texi:19481
544cab3d
LC
35221msgid "Data type representing the configuration of a certificate. This type has the following parameters:"
35222msgstr ""
35223
35224#. type: item
32747aa9 35225#: doc/guix.texi:19483
544cab3d
LC
35226#, no-wrap
35227msgid "@code{name} (default: @i{see below})"
35228msgstr ""
35229
35230#. type: table
32747aa9 35231#: doc/guix.texi:19487
544cab3d
LC
35232msgid "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}."
35233msgstr ""
35234
35235#. type: table
32747aa9 35236#: doc/guix.texi:19489
544cab3d
LC
35237msgid "Its default is the first provided domain."
35238msgstr ""
35239
35240#. type: item
32747aa9 35241#: doc/guix.texi:19490
544cab3d
LC
35242#, no-wrap
35243msgid "@code{domains} (default: @code{()})"
35244msgstr ""
35245
35246#. type: table
32747aa9 35247#: doc/guix.texi:19493
544cab3d
LC
35248msgid "The first domain provided will be the subject CN of the certificate, and all domains will be Subject Alternative Names on the certificate."
35249msgstr ""
35250
35251#. type: item
32747aa9
LC
35252#: doc/guix.texi:19494
35253#, no-wrap
35254msgid "@code{challenge} (default: @code{#f})"
35255msgstr "@code{challenge}(默认值:@code{#f})"
35256
35257#. type: table
35258#: doc/guix.texi:19499
35259msgid "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})."
35260msgstr ""
35261
35262#. type: item
35263#: doc/guix.texi:19500
35264#, no-wrap
35265msgid "@code{authentication-hook} (default: @code{#f})"
35266msgstr "@code{authentication-hook}(默认值:@code{#f})"
35267
35268#. type: table
35269#: doc/guix.texi:19506
35270msgid "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."
35271msgstr ""
35272
35273#. type: item
35274#: doc/guix.texi:19507
35275#, no-wrap
35276msgid "@code{cleanup-hook} (default: @code{#f})"
35277msgstr "@code{cleanup-hook}(默认值:@code{#f})"
35278
35279#. type: table
35280#: doc/guix.texi:19513
35281msgid "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."
35282msgstr ""
35283
35284#. type: item
35285#: doc/guix.texi:19514
544cab3d
LC
35286#, no-wrap
35287msgid "@code{deploy-hook} (default: @code{#f})"
35288msgstr ""
35289
35290#. type: table
32747aa9 35291#: doc/guix.texi:19522
544cab3d
LC
35292msgid "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\"}."
35293msgstr ""
35294
35295#. type: Plain text
32747aa9 35296#: doc/guix.texi:19529
544cab3d
LC
35297msgid "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}."
35298msgstr ""
35299
35300#. type: cindex
32747aa9 35301#: doc/guix.texi:19531
544cab3d
LC
35302#, no-wrap
35303msgid "DNS (domain name system)"
35304msgstr ""
35305
35306#. type: cindex
32747aa9 35307#: doc/guix.texi:19532
544cab3d
LC
35308#, no-wrap
35309msgid "domain name system (DNS)"
35310msgstr ""
35311
35312#. type: Plain text
32747aa9 35313#: doc/guix.texi:19540
544cab3d
LC
35314msgid "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}."
35315msgstr ""
35316
35317#. type: subsubheading
32747aa9 35318#: doc/guix.texi:19541
544cab3d
LC
35319#, no-wrap
35320msgid "Knot Service"
35321msgstr ""
35322
35323#. type: Plain text
32747aa9 35324#: doc/guix.texi:19545
544cab3d
LC
35325msgid "An example configuration of an authoritative server for two zones, one master and one slave, is:"
35326msgstr ""
35327
35328#. type: lisp
32747aa9 35329#: doc/guix.texi:19552
544cab3d
LC
35330#, no-wrap
35331msgid ""
35332"(define-zone-entries example.org.zone\n"
35333";; Name TTL Class Type Data\n"
35334" (\"@@\" \"\" \"IN\" \"A\" \"127.0.0.1\")\n"
35335" (\"@@\" \"\" \"IN\" \"NS\" \"ns\")\n"
35336" (\"ns\" \"\" \"IN\" \"A\" \"127.0.0.1\"))\n"
35337"\n"
35338msgstr ""
35339
35340#. type: lisp
32747aa9 35341#: doc/guix.texi:19559
544cab3d
LC
35342#, no-wrap
35343msgid ""
35344"(define master-zone\n"
35345" (knot-zone-configuration\n"
35346" (domain \"example.org\")\n"
35347" (zone (zone-file\n"
35348" (origin \"example.org\")\n"
35349" (entries example.org.zone)))))\n"
35350"\n"
35351msgstr ""
35352
35353#. type: lisp
32747aa9 35354#: doc/guix.texi:19565
544cab3d
LC
35355#, no-wrap
35356msgid ""
35357"(define slave-zone\n"
35358" (knot-zone-configuration\n"
35359" (domain \"plop.org\")\n"
35360" (dnssec-policy \"default\")\n"
35361" (master (list \"plop-master\"))))\n"
35362"\n"
35363msgstr ""
35364
35365#. type: lisp
32747aa9 35366#: doc/guix.texi:19570
544cab3d
LC
35367#, no-wrap
35368msgid ""
35369"(define plop-master\n"
35370" (knot-remote-configuration\n"
35371" (id \"plop-master\")\n"
35372" (address (list \"208.76.58.171\"))))\n"
35373"\n"
35374msgstr ""
35375
35376#. type: lisp
32747aa9 35377#: doc/guix.texi:19579
544cab3d
LC
35378#, no-wrap
35379msgid ""
35380"(operating-system\n"
35381" ;; ...\n"
35382" (services (cons* (service knot-service-type\n"
35383" (knot-configuration\n"
35384" (remotes (list plop-master))\n"
35385" (zones (list master-zone slave-zone))))\n"
35386" ;; ...\n"
35387" %base-services)))\n"
35388msgstr ""
35389
35390#. type: deffn
32747aa9 35391#: doc/guix.texi:19581
544cab3d
LC
35392#, no-wrap
35393msgid "{Scheme Variable} knot-service-type"
35394msgstr ""
35395
35396#. type: deffn
32747aa9 35397#: doc/guix.texi:19583
544cab3d
LC
35398msgid "This is the type for the Knot DNS server."
35399msgstr ""
35400
35401#. type: deffn
32747aa9 35402#: doc/guix.texi:19591
544cab3d
LC
35403msgid "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."
35404msgstr ""
35405
35406#. type: deffn
32747aa9 35407#: doc/guix.texi:19593
544cab3d
LC
35408msgid "The following data types are used to configure the Knot DNS server:"
35409msgstr ""
35410
35411#. type: deftp
32747aa9 35412#: doc/guix.texi:19595
544cab3d
LC
35413#, no-wrap
35414msgid "{Data Type} knot-key-configuration"
35415msgstr ""
35416
35417#. type: deftp
32747aa9 35418#: doc/guix.texi:19598
544cab3d
LC
35419msgid "Data type representing a key. This type has the following parameters:"
35420msgstr ""
35421
35422#. type: item
32747aa9
LC
35423#: doc/guix.texi:19600 doc/guix.texi:19620 doc/guix.texi:19735
35424#: doc/guix.texi:19761 doc/guix.texi:19796
544cab3d
LC
35425#, no-wrap
35426msgid "@code{id} (default: @code{\"\"})"
35427msgstr ""
35428
35429#. type: table
32747aa9 35430#: doc/guix.texi:19603
544cab3d
LC
35431msgid "An identifier for other configuration fields to refer to this key. IDs must be unique and must not be empty."
35432msgstr ""
35433
35434#. type: item
32747aa9 35435#: doc/guix.texi:19604
544cab3d
LC
35436#, no-wrap
35437msgid "@code{algorithm} (default: @code{#f})"
35438msgstr ""
35439
35440#. type: table
32747aa9 35441#: doc/guix.texi:19608
544cab3d
LC
35442msgid "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}."
35443msgstr ""
35444
35445#. type: item
32747aa9 35446#: doc/guix.texi:19609
544cab3d
LC
35447#, no-wrap
35448msgid "@code{secret} (default: @code{\"\"})"
35449msgstr ""
35450
35451#. type: table
32747aa9 35452#: doc/guix.texi:19611
544cab3d
LC
35453msgid "The secret key itself."
35454msgstr ""
35455
35456#. type: deftp
32747aa9 35457#: doc/guix.texi:19615
544cab3d
LC
35458#, no-wrap
35459msgid "{Data Type} knot-acl-configuration"
35460msgstr ""
35461
35462#. type: deftp
32747aa9 35463#: doc/guix.texi:19618
544cab3d
LC
35464msgid "Data type representing an Access Control List (ACL) configuration. This type has the following parameters:"
35465msgstr ""
35466
35467#. type: table
32747aa9 35468#: doc/guix.texi:19623
544cab3d
LC
35469msgid "An identifier for ether configuration fields to refer to this key. IDs must be unique and must not be empty."
35470msgstr ""
35471
35472#. type: item
32747aa9 35473#: doc/guix.texi:19624 doc/guix.texi:19739
544cab3d
LC
35474#, no-wrap
35475msgid "@code{address} (default: @code{'()})"
35476msgstr ""
35477
35478#. type: table
32747aa9 35479#: doc/guix.texi:19628
544cab3d
LC
35480msgid "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."
35481msgstr ""
35482
35483#. type: item
32747aa9 35484#: doc/guix.texi:19629
544cab3d
LC
35485#, no-wrap
35486msgid "@code{key} (default: @code{'()})"
35487msgstr ""
35488
35489#. type: table
32747aa9 35490#: doc/guix.texi:19633
544cab3d
LC
35491msgid "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."
35492msgstr ""
35493
35494#. type: item
32747aa9 35495#: doc/guix.texi:19634
544cab3d
LC
35496#, no-wrap
35497msgid "@code{action} (default: @code{'()})"
35498msgstr ""
35499
35500#. type: table
32747aa9 35501#: doc/guix.texi:19638
544cab3d
LC
35502msgid "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}."
35503msgstr ""
35504
35505#. type: item
32747aa9 35506#: doc/guix.texi:19639
544cab3d
LC
35507#, no-wrap
35508msgid "@code{deny?} (default: @code{#f})"
35509msgstr ""
35510
35511#. type: table
32747aa9 35512#: doc/guix.texi:19642
544cab3d
LC
35513msgid "When true, the ACL defines restrictions. Listed actions are forbidden. When false, listed actions are allowed."
35514msgstr ""
35515
35516#. type: deftp
32747aa9 35517#: doc/guix.texi:19646
544cab3d
LC
35518#, no-wrap
35519msgid "{Data Type} zone-entry"
35520msgstr ""
35521
35522#. type: deftp
32747aa9 35523#: doc/guix.texi:19649
544cab3d
LC
35524msgid "Data type represnting a record entry in a zone file. This type has the following parameters:"
35525msgstr ""
35526
35527#. type: item
32747aa9 35528#: doc/guix.texi:19651
544cab3d
LC
35529#, no-wrap
35530msgid "@code{name} (default: @code{\"@@\"})"
35531msgstr ""
35532
35533#. type: table
32747aa9 35534#: doc/guix.texi:19657
544cab3d
LC
35535msgid "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}."
35536msgstr ""
35537
35538#. type: item
32747aa9 35539#: doc/guix.texi:19658
544cab3d
LC
35540#, no-wrap
35541msgid "@code{ttl} (default: @code{\"\"})"
35542msgstr ""
35543
35544#. type: table
32747aa9 35545#: doc/guix.texi:19660
544cab3d
LC
35546msgid "The Time-To-Live (TTL) of this record. If not set, the default TTL is used."
35547msgstr ""
35548
35549#. type: item
32747aa9 35550#: doc/guix.texi:19661
544cab3d
LC
35551#, no-wrap
35552msgid "@code{class} (default: @code{\"IN\"})"
35553msgstr ""
35554
35555#. type: table
32747aa9 35556#: doc/guix.texi:19664
544cab3d
LC
35557msgid "The class of the record. Knot currently supports only @code{\"IN\"} and partially @code{\"CH\"}."
35558msgstr ""
35559
35560#. type: item
32747aa9 35561#: doc/guix.texi:19665
544cab3d
LC
35562#, no-wrap
35563msgid "@code{type} (default: @code{\"A\"})"
35564msgstr ""
35565
35566#. type: table
32747aa9 35567#: doc/guix.texi:19669
544cab3d
LC
35568msgid "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."
35569msgstr ""
35570
35571#. type: item
32747aa9 35572#: doc/guix.texi:19670
544cab3d
LC
35573#, no-wrap
35574msgid "@code{data} (default: @code{\"\"})"
35575msgstr ""
35576
35577#. type: table
32747aa9 35578#: doc/guix.texi:19674
544cab3d
LC
35579msgid "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."
35580msgstr ""
35581
35582#. type: deftp
32747aa9 35583#: doc/guix.texi:19678
544cab3d
LC
35584#, no-wrap
35585msgid "{Data Type} zone-file"
35586msgstr ""
35587
35588#. type: deftp
32747aa9 35589#: doc/guix.texi:19681
544cab3d
LC
35590msgid "Data type representing the content of a zone file. This type has the following parameters:"
35591msgstr ""
35592
35593#. type: table
32747aa9 35594#: doc/guix.texi:19690
544cab3d
LC
35595msgid "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}."
35596msgstr ""
35597
35598#. type: item
32747aa9 35599#: doc/guix.texi:19691
544cab3d
LC
35600#, no-wrap
35601msgid "@code{origin} (default: @code{\"\"})"
35602msgstr ""
35603
35604#. type: table
32747aa9 35605#: doc/guix.texi:19693
544cab3d
LC
35606msgid "The name of your zone. This parameter cannot be empty."
35607msgstr ""
35608
35609#. type: item
32747aa9 35610#: doc/guix.texi:19694
544cab3d
LC
35611#, no-wrap
35612msgid "@code{ns} (default: @code{\"ns\"})"
35613msgstr ""
35614
35615#. type: table
32747aa9 35616#: doc/guix.texi:19699
544cab3d
LC
35617msgid "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."
35618msgstr ""
35619
35620#. type: item
32747aa9 35621#: doc/guix.texi:19700
544cab3d
LC
35622#, no-wrap
35623msgid "@code{mail} (default: @code{\"hostmaster\"})"
35624msgstr ""
35625
35626#. type: table
32747aa9 35627#: doc/guix.texi:19703
544cab3d
LC
35628msgid "An email address people can contact you at, as the owner of the zone. This is translated as @code{<mail>@@<origin>}."
35629msgstr ""
35630
35631#. type: item
32747aa9 35632#: doc/guix.texi:19704
544cab3d
LC
35633#, no-wrap
35634msgid "@code{serial} (default: @code{1})"
35635msgstr ""
35636
35637#. type: table
32747aa9 35638#: doc/guix.texi:19708
544cab3d
LC
35639msgid "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."
35640msgstr ""
35641
35642#. type: item
32747aa9 35643#: doc/guix.texi:19709
544cab3d
LC
35644#, no-wrap
35645msgid "@code{refresh} (default: @code{(* 2 24 3600)})"
35646msgstr ""
35647
35648#. type: table
32747aa9 35649#: doc/guix.texi:19713
544cab3d
LC
35650msgid "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)}."
35651msgstr ""
35652
35653#. type: item
32747aa9 35654#: doc/guix.texi:19714
544cab3d
LC
35655#, no-wrap
35656msgid "@code{retry} (default: @code{(* 15 60)})"
35657msgstr ""
35658
35659#. type: table
32747aa9 35660#: doc/guix.texi:19717
544cab3d
LC
35661msgid "The period after which a slave will retry to contact its master when it fails to do so a first time."
35662msgstr ""
35663
35664#. type: item
32747aa9 35665#: doc/guix.texi:19718
544cab3d
LC
35666#, no-wrap
35667msgid "@code{expiry} (default: @code{(* 14 24 3600)})"
35668msgstr ""
35669
35670#. type: table
32747aa9 35671#: doc/guix.texi:19722
544cab3d
LC
35672msgid "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."
35673msgstr ""
35674
35675#. type: item
32747aa9 35676#: doc/guix.texi:19723
544cab3d
LC
35677#, no-wrap
35678msgid "@code{nx} (default: @code{3600})"
35679msgstr ""
35680
35681#. type: table
32747aa9 35682#: doc/guix.texi:19726
544cab3d
LC
35683msgid "Default TTL of inexistant records. This delay is usually short because you want your new domains to reach everyone quickly."
35684msgstr ""
35685
35686#. type: deftp
32747aa9 35687#: doc/guix.texi:19730
544cab3d
LC
35688#, no-wrap
35689msgid "{Data Type} knot-remote-configuration"
35690msgstr ""
35691
35692#. type: deftp
32747aa9 35693#: doc/guix.texi:19733
544cab3d
LC
35694msgid "Data type representing a remote configuration. This type has the following parameters:"
35695msgstr ""
35696
35697#. type: table
32747aa9 35698#: doc/guix.texi:19738
544cab3d
LC
35699msgid "An identifier for other configuration fields to refer to this remote. IDs must be unique and must not be empty."
35700msgstr ""
35701
35702#. type: table
32747aa9 35703#: doc/guix.texi:19743
544cab3d
LC
35704msgid "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."
35705msgstr ""
35706
35707#. type: item
32747aa9 35708#: doc/guix.texi:19744
544cab3d
LC
35709#, no-wrap
35710msgid "@code{via} (default: @code{'()})"
35711msgstr ""
35712
35713#. type: table
32747aa9 35714#: doc/guix.texi:19748
544cab3d
LC
35715msgid "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."
35716msgstr ""
35717
35718#. type: item
32747aa9 35719#: doc/guix.texi:19749
544cab3d
LC
35720#, no-wrap
35721msgid "@code{key} (default: @code{#f})"
35722msgstr ""
35723
35724#. type: table
32747aa9 35725#: doc/guix.texi:19752
544cab3d
LC
35726msgid "A reference to a key, that is a string containing the identifier of a key defined in a @code{knot-key-configuration} field."
35727msgstr ""
35728
35729#. type: deftp
32747aa9 35730#: doc/guix.texi:19756
544cab3d
LC
35731#, no-wrap
35732msgid "{Data Type} knot-keystore-configuration"
35733msgstr ""
35734
35735#. type: deftp
32747aa9 35736#: doc/guix.texi:19759
544cab3d
LC
35737msgid "Data type representing a keystore to hold dnssec keys. This type has the following parameters:"
35738msgstr ""
35739
35740#. type: table
32747aa9 35741#: doc/guix.texi:19763
544cab3d
LC
35742msgid "The id of the keystore. It must not be empty."
35743msgstr ""
35744
35745#. type: item
32747aa9 35746#: doc/guix.texi:19764
544cab3d
LC
35747#, no-wrap
35748msgid "@code{backend} (default: @code{'pem})"
35749msgstr ""
35750
35751#. type: table
32747aa9 35752#: doc/guix.texi:19766
544cab3d
LC
35753msgid "The backend to store the keys in. Can be @code{'pem} or @code{'pkcs11}."
35754msgstr ""
35755
35756#. type: item
32747aa9 35757#: doc/guix.texi:19767
544cab3d
LC
35758#, no-wrap
35759msgid "@code{config} (default: @code{\"/var/lib/knot/keys/keys\"})"
35760msgstr ""
35761
35762#. type: table
32747aa9 35763#: doc/guix.texi:19771
544cab3d
LC
35764msgid "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 reprensents a path in the file system."
35765msgstr ""
35766
35767#. type: deftp
32747aa9 35768#: doc/guix.texi:19775
544cab3d
LC
35769#, no-wrap
35770msgid "{Data Type} knot-policy-configuration"
35771msgstr ""
35772
35773#. type: deftp
32747aa9 35774#: doc/guix.texi:19779
544cab3d
LC
35775msgid "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."
35776msgstr ""
35777
35778#. type: deftp
32747aa9 35779#: doc/guix.texi:19786
544cab3d
LC
35780msgid "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."
35781msgstr ""
35782
35783#. type: deftp
32747aa9 35784#: doc/guix.texi:19792
544cab3d
LC
35785msgid "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."
35786msgstr ""
35787
35788#. type: deftp
32747aa9 35789#: doc/guix.texi:19794
544cab3d
LC
35790msgid "This type has the following parameters:"
35791msgstr ""
35792
35793#. type: table
32747aa9 35794#: doc/guix.texi:19798
544cab3d
LC
35795msgid "The id of the policy. It must not be empty."
35796msgstr ""
35797
35798#. type: item
32747aa9 35799#: doc/guix.texi:19799
544cab3d
LC
35800#, no-wrap
35801msgid "@code{keystore} (default: @code{\"default\"})"
35802msgstr ""
35803
35804#. type: table
32747aa9 35805#: doc/guix.texi:19804
544cab3d
LC
35806msgid "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)."
35807msgstr ""
35808
35809#. type: item
32747aa9 35810#: doc/guix.texi:19805
544cab3d
LC
35811#, no-wrap
35812msgid "@code{manual?} (default: @code{#f})"
35813msgstr ""
35814
35815#. type: table
32747aa9 35816#: doc/guix.texi:19807
544cab3d
LC
35817msgid "Whether the key management is manual or automatic."
35818msgstr ""
35819
35820#. type: item
32747aa9 35821#: doc/guix.texi:19808
544cab3d
LC
35822#, no-wrap
35823msgid "@code{single-type-signing?} (default: @code{#f})"
35824msgstr ""
35825
35826#. type: table
32747aa9 35827#: doc/guix.texi:19810
544cab3d
LC
35828msgid "When @code{#t}, use the Single-Type Signing Scheme."
35829msgstr ""
35830
35831#. type: item
32747aa9 35832#: doc/guix.texi:19811
544cab3d
LC
35833#, no-wrap
35834msgid "@code{algorithm} (default: @code{\"ecdsap256sha256\"})"
35835msgstr ""
35836
35837#. type: table
32747aa9 35838#: doc/guix.texi:19813
544cab3d
LC
35839msgid "An algorithm of signing keys and issued signatures."
35840msgstr ""
35841
35842#. type: item
32747aa9 35843#: doc/guix.texi:19814
544cab3d
LC
35844#, no-wrap
35845msgid "@code{ksk-size} (default: @code{256})"
35846msgstr ""
35847
35848#. type: table
32747aa9 35849#: doc/guix.texi:19817
544cab3d
LC
35850msgid "The length of the KSK. Note that this value is correct for the default algorithm, but would be unsecure for other algorithms."
35851msgstr ""
35852
35853#. type: item
32747aa9 35854#: doc/guix.texi:19818
544cab3d
LC
35855#, no-wrap
35856msgid "@code{zsk-size} (default: @code{256})"
35857msgstr ""
35858
35859#. type: table
32747aa9 35860#: doc/guix.texi:19821
544cab3d
LC
35861msgid "The length of the ZSK. Note that this value is correct for the default algorithm, but would be unsecure for other algorithms."
35862msgstr ""
35863
35864#. type: item
32747aa9 35865#: doc/guix.texi:19822
544cab3d
LC
35866#, no-wrap
35867msgid "@code{dnskey-ttl} (default: @code{'default})"
35868msgstr ""
35869
35870#. type: table
32747aa9 35871#: doc/guix.texi:19825
544cab3d
LC
35872msgid "The TTL value for DNSKEY records added into zone apex. The special @code{'default} value means same as the zone SOA TTL."
35873msgstr ""
35874
35875#. type: item
32747aa9 35876#: doc/guix.texi:19826
544cab3d
LC
35877#, no-wrap
35878msgid "@code{zsk-lifetime} (default: @code{(* 30 24 3600)})"
35879msgstr ""
35880
35881#. type: table
32747aa9 35882#: doc/guix.texi:19828
544cab3d
LC
35883msgid "The period between ZSK publication and the next rollover initiation."
35884msgstr ""
35885
35886#. type: item
32747aa9 35887#: doc/guix.texi:19829
544cab3d
LC
35888#, no-wrap
35889msgid "@code{propagation-delay} (default: @code{(* 24 3600)})"
35890msgstr ""
35891
35892#. type: table
32747aa9 35893#: doc/guix.texi:19832
544cab3d
LC
35894msgid "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."
35895msgstr ""
35896
35897#. type: item
32747aa9 35898#: doc/guix.texi:19833
544cab3d
LC
35899#, no-wrap
35900msgid "@code{rrsig-lifetime} (default: @code{(* 14 24 3600)})"
35901msgstr ""
35902
35903#. type: table
32747aa9 35904#: doc/guix.texi:19835
544cab3d
LC
35905msgid "A validity period of newly issued signatures."
35906msgstr ""
35907
35908#. type: item
32747aa9 35909#: doc/guix.texi:19836
544cab3d
LC
35910#, no-wrap
35911msgid "@code{rrsig-refresh} (default: @code{(* 7 24 3600)})"
35912msgstr ""
35913
35914#. type: table
32747aa9 35915#: doc/guix.texi:19838
544cab3d
LC
35916msgid "A period how long before a signature expiration the signature will be refreshed."
35917msgstr ""
35918
35919#. type: item
32747aa9 35920#: doc/guix.texi:19839
544cab3d
LC
35921#, no-wrap
35922msgid "@code{nsec3?} (default: @code{#f})"
35923msgstr ""
35924
35925#. type: table
32747aa9 35926#: doc/guix.texi:19841
544cab3d
LC
35927msgid "When @code{#t}, NSEC3 will be used instead of NSEC."
35928msgstr ""
35929
35930#. type: item
32747aa9 35931#: doc/guix.texi:19842
544cab3d
LC
35932#, no-wrap
35933msgid "@code{nsec3-iterations} (default: @code{5})"
35934msgstr ""
35935
35936#. type: table
32747aa9 35937#: doc/guix.texi:19844
544cab3d
LC
35938msgid "The number of additional times the hashing is performed."
35939msgstr ""
35940
35941#. type: item
32747aa9 35942#: doc/guix.texi:19845
544cab3d
LC
35943#, no-wrap
35944msgid "@code{nsec3-salt-length} (default: @code{8})"
35945msgstr ""
35946
35947#. type: table
32747aa9 35948#: doc/guix.texi:19848
544cab3d
LC
35949msgid "The length of a salt field in octets, which is appended to the original owner name before hashing."
35950msgstr ""
35951
35952#. type: item
32747aa9 35953#: doc/guix.texi:19849
544cab3d
LC
35954#, no-wrap
35955msgid "@code{nsec3-salt-lifetime} (default: @code{(* 30 24 3600)})"
35956msgstr ""
35957
35958#. type: table
32747aa9 35959#: doc/guix.texi:19851
544cab3d
LC
35960msgid "The validity period of newly issued salt field."
35961msgstr ""
35962
35963#. type: deftp
32747aa9 35964#: doc/guix.texi:19855
544cab3d
LC
35965#, no-wrap
35966msgid "{Data Type} knot-zone-configuration"
35967msgstr ""
35968
35969#. type: deftp
32747aa9 35970#: doc/guix.texi:19858
544cab3d
LC
35971msgid "Data type representing a zone served by Knot. This type has the following parameters:"
35972msgstr ""
35973
35974#. type: item
32747aa9 35975#: doc/guix.texi:19860
544cab3d
LC
35976#, no-wrap
35977msgid "@code{domain} (default: @code{\"\"})"
35978msgstr ""
35979
35980#. type: table
32747aa9 35981#: doc/guix.texi:19862
544cab3d
LC
35982msgid "The domain served by this configuration. It must not be empty."
35983msgstr ""
35984
35985#. type: item
32747aa9 35986#: doc/guix.texi:19863
544cab3d
LC
35987#, no-wrap
35988msgid "@code{file} (default: @code{\"\"})"
35989msgstr ""
35990
35991#. type: table
32747aa9 35992#: doc/guix.texi:19866
544cab3d
LC
35993msgid "The file where this zone is saved. This parameter is ignored by master zones. Empty means default location that depends on the domain name."
35994msgstr ""
35995
35996#. type: item
32747aa9 35997#: doc/guix.texi:19867
544cab3d
LC
35998#, no-wrap
35999msgid "@code{zone} (default: @code{(zone-file)})"
36000msgstr ""
36001
36002#. type: table
32747aa9 36003#: doc/guix.texi:19870
544cab3d
LC
36004msgid "The content of the zone file. This parameter is ignored by slave zones. It must contain a zone-file record."
36005msgstr ""
36006
36007#. type: item
32747aa9 36008#: doc/guix.texi:19871
544cab3d
LC
36009#, no-wrap
36010msgid "@code{master} (default: @code{'()})"
36011msgstr ""
36012
36013#. type: table
32747aa9 36014#: doc/guix.texi:19874
544cab3d
LC
36015msgid "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."
36016msgstr ""
36017
36018#. type: item
32747aa9 36019#: doc/guix.texi:19875
544cab3d
LC
36020#, no-wrap
36021msgid "@code{ddns-master} (default: @code{#f})"
36022msgstr ""
36023
36024#. type: table
32747aa9 36025#: doc/guix.texi:19878
544cab3d
LC
36026msgid "The main master. When empty, it defaults to the first master in the list of masters."
36027msgstr ""
36028
36029#. type: item
32747aa9 36030#: doc/guix.texi:19879
544cab3d
LC
36031#, no-wrap
36032msgid "@code{notify} (default: @code{'()})"
36033msgstr ""
36034
36035#. type: table
32747aa9 36036#: doc/guix.texi:19881
544cab3d
LC
36037msgid "A list of slave remote identifiers."
36038msgstr ""
36039
36040#. type: item
32747aa9 36041#: doc/guix.texi:19882
544cab3d
LC
36042#, no-wrap
36043msgid "@code{acl} (default: @code{'()})"
36044msgstr ""
36045
36046#. type: table
32747aa9 36047#: doc/guix.texi:19884
544cab3d
LC
36048msgid "A list of acl identifiers."
36049msgstr ""
36050
36051#. type: item
32747aa9 36052#: doc/guix.texi:19885
544cab3d
LC
36053#, no-wrap
36054msgid "@code{semantic-checks?} (default: @code{#f})"
36055msgstr ""
36056
36057#. type: table
32747aa9 36058#: doc/guix.texi:19887
544cab3d
LC
36059msgid "When set, this adds more semantic checks to the zone."
36060msgstr ""
36061
36062#. type: item
32747aa9 36063#: doc/guix.texi:19888
544cab3d
LC
36064#, no-wrap
36065msgid "@code{disable-any?} (default: @code{#f})"
36066msgstr ""
36067
36068#. type: table
32747aa9 36069#: doc/guix.texi:19890
544cab3d
LC
36070msgid "When set, this forbids queries of the ANY type."
36071msgstr ""
36072
36073#. type: item
32747aa9 36074#: doc/guix.texi:19891
544cab3d
LC
36075#, no-wrap
36076msgid "@code{zonefile-sync} (default: @code{0})"
36077msgstr ""
36078
36079#. type: table
32747aa9 36080#: doc/guix.texi:19894
544cab3d
LC
36081msgid "The delay between a modification in memory and on disk. 0 means immediate synchronization."
36082msgstr ""
36083
36084#. type: item
32747aa9
LC
36085#: doc/guix.texi:19895
36086#, no-wrap
36087msgid "@code{zonefile-load} (default: @code{#f})"
36088msgstr "@code{zonefile-load}(默认值:@code{#f})"
36089
36090#. type: table
36091#: doc/guix.texi:19898
36092msgid "The way the zone file contents are applied during zone load. Possible values are:"
36093msgstr ""
36094
36095#. type: item
36096#: doc/guix.texi:19900
36097#, no-wrap
36098msgid "@code{#f} for using the default value from Knot,"
36099msgstr ""
36100
36101#. type: item
36102#: doc/guix.texi:19901
36103#, no-wrap
36104msgid "@code{'none} for not using the zone file at all,"
36105msgstr ""
36106
36107#. type: item
36108#: doc/guix.texi:19902
36109#, no-wrap
36110msgid "@code{'difference} for computing the difference between already available"
36111msgstr ""
36112
36113#. type: itemize
36114#: doc/guix.texi:19904
36115msgid "contents and zone contents and applying it to the current zone contents,"
36116msgstr ""
36117
36118#. type: item
36119#: doc/guix.texi:19904
36120#, no-wrap
36121msgid "@code{'difference-no-serial} for the same as @code{'difference}, but"
36122msgstr ""
36123
36124#. type: itemize
36125#: doc/guix.texi:19907
36126msgid "ignoring the SOA serial in the zone file, while the server takes care of it automatically."
36127msgstr ""
36128
36129#. type: item
36130#: doc/guix.texi:19907
36131#, no-wrap
36132msgid "@code{'whole} for loading zone contents from the zone file."
36133msgstr ""
36134
36135#. type: item
36136#: doc/guix.texi:19910
36137#, no-wrap
36138msgid "@code{journal-content} (default: @code{#f})"
36139msgstr "@code{journal-content}(默认值:@code{#f})"
36140
36141#. type: table
36142#: doc/guix.texi:19915
36143msgid "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."
36144msgstr ""
36145
36146#. type: item
36147#: doc/guix.texi:19916
36148#, no-wrap
36149msgid "@code{max-journal-usage} (default: @code{#f})"
36150msgstr "@code{max-journal-usage}(默认值:@code{#f})"
36151
36152#. type: table
36153#: doc/guix.texi:19919
36154msgid "The maximum size for the journal on disk. @code{#f} does not set this option, so the default value from Knot is used."
36155msgstr ""
36156
36157#. type: item
36158#: doc/guix.texi:19920
36159#, no-wrap
36160msgid "@code{max-journal-depth} (default: @code{#f})"
36161msgstr "@code{max-journal-depth}(默认值:@code{#f})"
36162
36163#. type: table
36164#: doc/guix.texi:19923
36165msgid "The maximum size of the history. @code{#f} does not set this option, so the default value from Knot is used."
36166msgstr ""
36167
36168#. type: item
36169#: doc/guix.texi:19924
36170#, no-wrap
36171msgid "@code{max-zone-size} (default: @code{#f})"
36172msgstr "@code{max-zone-size}(默认值:@code{#f})"
36173
36174#. type: table
36175#: doc/guix.texi:19928
36176msgid "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."
36177msgstr ""
36178
36179#. type: item
36180#: doc/guix.texi:19929
36181#, no-wrap
36182msgid "@code{dnssec-policy} (default: @code{#f})"
36183msgstr "@code{dnssec-policy}(默认值:@code{#f})"
36184
36185#. type: table
36186#: doc/guix.texi:19933
36187msgid "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."
36188msgstr ""
36189
36190#. type: item
36191#: doc/guix.texi:19934
544cab3d
LC
36192#, no-wrap
36193msgid "@code{serial-policy} (default: @code{'increment})"
36194msgstr ""
36195
36196#. type: table
32747aa9 36197#: doc/guix.texi:19936
544cab3d
LC
36198msgid "A policy between @code{'increment} and @code{'unixtime}."
36199msgstr ""
36200
36201#. type: deftp
32747aa9 36202#: doc/guix.texi:19940
544cab3d
LC
36203#, no-wrap
36204msgid "{Data Type} knot-configuration"
36205msgstr ""
36206
36207#. type: deftp
32747aa9 36208#: doc/guix.texi:19943
544cab3d
LC
36209msgid "Data type representing the Knot configuration. This type has the following parameters:"
36210msgstr ""
36211
36212#. type: item
32747aa9 36213#: doc/guix.texi:19945
544cab3d
LC
36214#, no-wrap
36215msgid "@code{knot} (default: @code{knot})"
36216msgstr ""
36217
36218#. type: table
32747aa9 36219#: doc/guix.texi:19947
544cab3d
LC
36220msgid "The Knot package."
36221msgstr ""
36222
36223#. type: item
32747aa9 36224#: doc/guix.texi:19948
544cab3d
LC
36225#, no-wrap
36226msgid "@code{run-directory} (default: @code{\"/var/run/knot\"})"
36227msgstr ""
36228
36229#. type: table
32747aa9 36230#: doc/guix.texi:19950
544cab3d
LC
36231msgid "The run directory. This directory will be used for pid file and sockets."
36232msgstr ""
36233
36234#. type: item
32747aa9
LC
36235#: doc/guix.texi:19951
36236#, no-wrap
36237msgid "@code{includes} (default: @code{'()})"
36238msgstr "@code{includes}(默认值:@code{'()})"
36239
36240#. type: table
36241#: doc/guix.texi:19954
36242msgid "A list of strings or file-like objects denoting other files that must be included at the top of the configuration file."
36243msgstr ""
36244
36245#. type: cindex
36246#: doc/guix.texi:19955
36247#, no-wrap
36248msgid "secrets, Knot service"
36249msgstr "秘密,Knot服务。"
36250
36251#. type: table
36252#: doc/guix.texi:19961
36253msgid "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."
36254msgstr ""
36255
36256#. type: table
36257#: doc/guix.texi:19963
36258msgid "It can also be used to add configuration not supported by this interface."
36259msgstr ""
36260
36261#. type: item
36262#: doc/guix.texi:19964
544cab3d
LC
36263#, no-wrap
36264msgid "@code{listen-v4} (default: @code{\"0.0.0.0\"})"
36265msgstr ""
36266
36267#. type: table
32747aa9 36268#: doc/guix.texi:19966 doc/guix.texi:19969
544cab3d
LC
36269msgid "An ip address on which to listen."
36270msgstr ""
36271
36272#. type: item
32747aa9 36273#: doc/guix.texi:19967
544cab3d
LC
36274#, no-wrap
36275msgid "@code{listen-v6} (default: @code{\"::\"})"
36276msgstr ""
36277
36278#. type: item
32747aa9 36279#: doc/guix.texi:19970
544cab3d
LC
36280#, no-wrap
36281msgid "@code{listen-port} (default: @code{53})"
36282msgstr ""
36283
36284#. type: table
32747aa9 36285#: doc/guix.texi:19972
544cab3d
LC
36286msgid "A port on which to listen."
36287msgstr ""
36288
36289#. type: item
32747aa9 36290#: doc/guix.texi:19973
544cab3d
LC
36291#, no-wrap
36292msgid "@code{keys} (default: @code{'()})"
36293msgstr ""
36294
36295#. type: table
32747aa9 36296#: doc/guix.texi:19975
544cab3d
LC
36297msgid "The list of knot-key-configuration used by this configuration."
36298msgstr ""
36299
36300#. type: item
32747aa9 36301#: doc/guix.texi:19976
544cab3d
LC
36302#, no-wrap
36303msgid "@code{acls} (default: @code{'()})"
36304msgstr ""
36305
36306#. type: table
32747aa9 36307#: doc/guix.texi:19978
544cab3d
LC
36308msgid "The list of knot-acl-configuration used by this configuration."
36309msgstr ""
36310
36311#. type: item
32747aa9 36312#: doc/guix.texi:19979
544cab3d
LC
36313#, no-wrap
36314msgid "@code{remotes} (default: @code{'()})"
36315msgstr ""
36316
36317#. type: table
32747aa9 36318#: doc/guix.texi:19981
544cab3d
LC
36319msgid "The list of knot-remote-configuration used by this configuration."
36320msgstr ""
36321
36322#. type: item
32747aa9 36323#: doc/guix.texi:19982
544cab3d
LC
36324#, no-wrap
36325msgid "@code{zones} (default: @code{'()})"
36326msgstr ""
36327
36328#. type: table
32747aa9 36329#: doc/guix.texi:19984
544cab3d
LC
36330msgid "The list of knot-zone-configuration used by this configuration."
36331msgstr ""
36332
36333#. type: subsubheading
32747aa9 36334#: doc/guix.texi:19988
544cab3d
LC
36335#, no-wrap
36336msgid "Dnsmasq Service"
36337msgstr ""
36338
36339#. type: deffn
32747aa9 36340#: doc/guix.texi:19990
544cab3d
LC
36341#, no-wrap
36342msgid "{Scheme Variable} dnsmasq-service-type"
36343msgstr ""
36344
36345#. type: deffn
32747aa9 36346#: doc/guix.texi:19993
544cab3d
LC
36347msgid "This is the type of the dnsmasq service, whose value should be an @code{dnsmasq-configuration} object as in this example:"
36348msgstr ""
36349
36350#. type: example
32747aa9 36351#: doc/guix.texi:19999
544cab3d
LC
36352#, no-wrap
36353msgid ""
36354"(service dnsmasq-service-type\n"
36355" (dnsmasq-configuration\n"
36356" (no-resolv? #t)\n"
36357" (servers '(\"192.168.1.1\"))))\n"
36358msgstr ""
36359
36360#. type: deftp
32747aa9 36361#: doc/guix.texi:20002
544cab3d
LC
36362#, no-wrap
36363msgid "{Data Type} dnsmasq-configuration"
36364msgstr ""
36365
36366#. type: deftp
32747aa9 36367#: doc/guix.texi:20004
544cab3d
LC
36368msgid "Data type representing the configuration of dnsmasq."
36369msgstr ""
36370
36371#. type: item
32747aa9 36372#: doc/guix.texi:20006
544cab3d
LC
36373#, no-wrap
36374msgid "@code{package} (default: @var{dnsmasq})"
36375msgstr ""
36376
36377#. type: table
32747aa9 36378#: doc/guix.texi:20008
544cab3d
LC
36379msgid "Package object of the dnsmasq server."
36380msgstr ""
36381
36382#. type: item
32747aa9 36383#: doc/guix.texi:20009
544cab3d
LC
36384#, no-wrap
36385msgid "@code{no-hosts?} (default: @code{#f})"
36386msgstr ""
36387
36388#. type: table
32747aa9 36389#: doc/guix.texi:20011
544cab3d
LC
36390msgid "When true, don't read the hostnames in /etc/hosts."
36391msgstr ""
36392
36393#. type: item
32747aa9 36394#: doc/guix.texi:20012
544cab3d
LC
36395#, no-wrap
36396msgid "@code{port} (default: @code{53})"
36397msgstr ""
36398
36399#. type: table
32747aa9 36400#: doc/guix.texi:20015
544cab3d
LC
36401msgid "The port to listen on. Setting this to zero completely disables DNS responses, leaving only DHCP and/or TFTP functions."
36402msgstr ""
36403
36404#. type: item
32747aa9 36405#: doc/guix.texi:20016
544cab3d
LC
36406#, no-wrap
36407msgid "@code{local-service?} (default: @code{#t})"
36408msgstr ""
36409
36410#. type: table
32747aa9 36411#: doc/guix.texi:20019
544cab3d
LC
36412msgid "Accept DNS queries only from hosts whose address is on a local subnet, ie a subnet for which an interface exists on the server."
36413msgstr ""
36414
36415#. type: item
32747aa9 36416#: doc/guix.texi:20020
544cab3d
LC
36417#, no-wrap
36418msgid "@code{listen-addresses} (default: @code{'()})"
36419msgstr ""
36420
36421#. type: table
32747aa9 36422#: doc/guix.texi:20022
544cab3d
LC
36423msgid "Listen on the given IP addresses."
36424msgstr ""
36425
36426#. type: item
32747aa9 36427#: doc/guix.texi:20023
544cab3d
LC
36428#, no-wrap
36429msgid "@code{resolv-file} (default: @code{\"/etc/resolv.conf\"})"
36430msgstr ""
36431
36432#. type: table
32747aa9 36433#: doc/guix.texi:20025
544cab3d
LC
36434msgid "The file to read the IP address of the upstream nameservers from."
36435msgstr ""
36436
36437#. type: item
32747aa9 36438#: doc/guix.texi:20026
544cab3d
LC
36439#, no-wrap
36440msgid "@code{no-resolv?} (default: @code{#f})"
36441msgstr ""
36442
36443#. type: table
32747aa9 36444#: doc/guix.texi:20028
544cab3d
LC
36445msgid "When true, don't read @var{resolv-file}."
36446msgstr ""
36447
36448#. type: table
32747aa9 36449#: doc/guix.texi:20031
544cab3d
LC
36450msgid "Specify IP address of upstream servers directly."
36451msgstr ""
36452
36453#. type: item
32747aa9 36454#: doc/guix.texi:20032
544cab3d
LC
36455#, no-wrap
36456msgid "@code{cache-size} (default: @code{150})"
36457msgstr ""
36458
36459#. type: table
32747aa9 36460#: doc/guix.texi:20035
544cab3d
LC
36461msgid "Set the size of dnsmasq's cache. Setting the cache size to zero disables caching."
36462msgstr ""
36463
36464#. type: item
32747aa9 36465#: doc/guix.texi:20036
544cab3d
LC
36466#, no-wrap
36467msgid "@code{negative-cache?} (default: @code{#t})"
36468msgstr ""
36469
36470#. type: table
32747aa9 36471#: doc/guix.texi:20038
544cab3d
LC
36472msgid "When false, disable negative caching."
36473msgstr ""
36474
36475#. type: subsubheading
32747aa9 36476#: doc/guix.texi:20042
544cab3d
LC
36477#, no-wrap
36478msgid "ddclient Service"
36479msgstr ""
36480
36481#. type: cindex
32747aa9 36482#: doc/guix.texi:20044
544cab3d
LC
36483#, no-wrap
36484msgid "ddclient"
36485msgstr ""
36486
36487#. type: Plain text
32747aa9 36488#: doc/guix.texi:20048
544cab3d
LC
36489msgid "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}."
36490msgstr ""
36491
36492#. type: Plain text
32747aa9 36493#: doc/guix.texi:20051
544cab3d
LC
36494msgid "The following example show instantiates the service with its default configuration:"
36495msgstr ""
36496
36497#. type: example
32747aa9 36498#: doc/guix.texi:20054
544cab3d
LC
36499#, no-wrap
36500msgid "(service ddclient-service-type)\n"
36501msgstr ""
36502
36503#. type: Plain text
32747aa9 36504#: doc/guix.texi:20063
544cab3d
LC
36505msgid "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."
36506msgstr ""
36507
36508#. type: Plain text
32747aa9 36509#: doc/guix.texi:20067
544cab3d
LC
36510msgid "Available @code{ddclient-configuration} fields are:"
36511msgstr ""
36512
36513#. type: deftypevr
32747aa9 36514#: doc/guix.texi:20068
544cab3d
LC
36515#, no-wrap
36516msgid "{@code{ddclient-configuration} parameter} package ddclient"
36517msgstr ""
36518
36519#. type: deftypevr
32747aa9 36520#: doc/guix.texi:20070
544cab3d
LC
36521msgid "The ddclient package."
36522msgstr ""
36523
36524#. type: deftypevr
32747aa9 36525#: doc/guix.texi:20073
544cab3d
LC
36526#, no-wrap
36527msgid "{@code{ddclient-configuration} parameter} integer daemon"
36528msgstr ""
36529
36530#. type: deftypevr
32747aa9 36531#: doc/guix.texi:20075
544cab3d
LC
36532msgid "The period after which ddclient will retry to check IP and domain name."
36533msgstr ""
36534
36535#. type: deftypevr
32747aa9 36536#: doc/guix.texi:20080
544cab3d
LC
36537#, no-wrap
36538msgid "{@code{ddclient-configuration} parameter} boolean syslog"
36539msgstr ""
36540
36541#. type: deftypevr
32747aa9 36542#: doc/guix.texi:20082
544cab3d
LC
36543msgid "Use syslog for the output."
36544msgstr ""
36545
36546#. type: deftypevr
32747aa9 36547#: doc/guix.texi:20087
544cab3d
LC
36548#, no-wrap
36549msgid "{@code{ddclient-configuration} parameter} string mail"
36550msgstr ""
36551
36552#. type: deftypevr
32747aa9 36553#: doc/guix.texi:20089
544cab3d
LC
36554msgid "Mail to user."
36555msgstr ""
36556
36557#. type: deftypevr
32747aa9 36558#: doc/guix.texi:20091 doc/guix.texi:20098 doc/guix.texi:21435
544cab3d
LC
36559msgid "Defaults to @samp{\"root\"}."
36560msgstr ""
36561
36562#. type: deftypevr
32747aa9 36563#: doc/guix.texi:20094
544cab3d
LC
36564#, no-wrap
36565msgid "{@code{ddclient-configuration} parameter} string mail-failure"
36566msgstr ""
36567
36568#. type: deftypevr
32747aa9 36569#: doc/guix.texi:20096
544cab3d
LC
36570msgid "Mail failed update to user."
36571msgstr ""
36572
36573#. type: deftypevr
32747aa9 36574#: doc/guix.texi:20101
544cab3d
LC
36575#, no-wrap
36576msgid "{@code{ddclient-configuration} parameter} string pid"
36577msgstr ""
36578
36579#. type: deftypevr
32747aa9 36580#: doc/guix.texi:20103
544cab3d
LC
36581msgid "The ddclient PID file."
36582msgstr ""
36583
36584#. type: deftypevr
32747aa9 36585#: doc/guix.texi:20105
544cab3d
LC
36586msgid "Defaults to @samp{\"/var/run/ddclient/ddclient.pid\"}."
36587msgstr ""
36588
36589#. type: deftypevr
32747aa9 36590#: doc/guix.texi:20108
544cab3d
LC
36591#, no-wrap
36592msgid "{@code{ddclient-configuration} parameter} boolean ssl"
36593msgstr ""
36594
36595#. type: deftypevr
32747aa9 36596#: doc/guix.texi:20110
544cab3d
LC
36597msgid "Enable SSL support."
36598msgstr ""
36599
36600#. type: deftypevr
32747aa9 36601#: doc/guix.texi:20115
544cab3d
LC
36602#, no-wrap
36603msgid "{@code{ddclient-configuration} parameter} string user"
36604msgstr ""
36605
36606#. type: deftypevr
32747aa9 36607#: doc/guix.texi:20118
544cab3d
LC
36608msgid "Specifies the user name or ID that is used when running ddclient program."
36609msgstr ""
36610
36611#. type: deftypevr
32747aa9 36612#: doc/guix.texi:20120 doc/guix.texi:20127
544cab3d
LC
36613msgid "Defaults to @samp{\"ddclient\"}."
36614msgstr ""
36615
36616#. type: deftypevr
32747aa9 36617#: doc/guix.texi:20123
544cab3d
LC
36618#, no-wrap
36619msgid "{@code{ddclient-configuration} parameter} string group"
36620msgstr ""
36621
36622#. type: deftypevr
32747aa9 36623#: doc/guix.texi:20125
544cab3d
LC
36624msgid "Group of the user who will run the ddclient program."
36625msgstr ""
36626
36627#. type: deftypevr
32747aa9 36628#: doc/guix.texi:20130
544cab3d
LC
36629#, no-wrap
36630msgid "{@code{ddclient-configuration} parameter} string secret-file"
36631msgstr ""
36632
36633#. type: deftypevr
32747aa9 36634#: doc/guix.texi:20134
544cab3d
LC
36635msgid "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."
36636msgstr ""
36637
36638#. type: deftypevr
32747aa9 36639#: doc/guix.texi:20136
544cab3d
LC
36640msgid "Defaults to @samp{\"/etc/ddclient/secrets.conf\"}."
36641msgstr ""
36642
36643#. type: deftypevr
32747aa9 36644#: doc/guix.texi:20139
544cab3d
LC
36645#, no-wrap
36646msgid "{@code{ddclient-configuration} parameter} list extra-options"
36647msgstr ""
36648
36649#. type: deftypevr
32747aa9 36650#: doc/guix.texi:20141
544cab3d
LC
36651msgid "Extra options will be appended to @file{ddclient.conf} file."
36652msgstr ""
36653
36654#. type: cindex
32747aa9 36655#: doc/guix.texi:20152
544cab3d
LC
36656#, no-wrap
36657msgid "VPN (virtual private network)"
36658msgstr ""
36659
36660#. type: cindex
32747aa9 36661#: doc/guix.texi:20153
544cab3d
LC
36662#, no-wrap
36663msgid "virtual private network (VPN)"
36664msgstr ""
36665
36666#. type: Plain text
32747aa9
LC
36667#: doc/guix.texi:20159
36668msgid "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}."
544cab3d
LC
36669msgstr ""
36670
36671#. type: deffn
32747aa9 36672#: doc/guix.texi:20160
544cab3d
LC
36673#, no-wrap
36674msgid "{Scheme Procedure} openvpn-client-service @"
36675msgstr ""
36676
36677#. type: deffn
32747aa9 36678#: doc/guix.texi:20162
544cab3d
LC
36679msgid "[#:config (openvpn-client-configuration)]"
36680msgstr ""
36681
36682#. type: deffn
32747aa9 36683#: doc/guix.texi:20164
544cab3d
LC
36684msgid "Return a service that runs @command{openvpn}, a VPN daemon, as a client."
36685msgstr ""
36686
36687#. type: deffn
32747aa9 36688#: doc/guix.texi:20166
544cab3d
LC
36689#, no-wrap
36690msgid "{Scheme Procedure} openvpn-server-service @"
36691msgstr ""
36692
36693#. type: deffn
32747aa9 36694#: doc/guix.texi:20168
544cab3d
LC
36695msgid "[#:config (openvpn-server-configuration)]"
36696msgstr ""
36697
36698#. type: deffn
32747aa9 36699#: doc/guix.texi:20170
544cab3d
LC
36700msgid "Return a service that runs @command{openvpn}, a VPN daemon, as a server."
36701msgstr ""
36702
36703#. type: deffn
32747aa9 36704#: doc/guix.texi:20172
544cab3d
LC
36705msgid "Both can be run simultaneously."
36706msgstr ""
36707
36708#. type: Plain text
32747aa9 36709#: doc/guix.texi:20177
544cab3d
LC
36710msgid "Available @code{openvpn-client-configuration} fields are:"
36711msgstr ""
36712
36713#. type: deftypevr
32747aa9 36714#: doc/guix.texi:20178
544cab3d
LC
36715#, no-wrap
36716msgid "{@code{openvpn-client-configuration} parameter} package openvpn"
36717msgstr ""
36718
36719#. type: deftypevr
32747aa9 36720#: doc/guix.texi:20180 doc/guix.texi:20316
544cab3d
LC
36721msgid "The OpenVPN package."
36722msgstr ""
36723
36724#. type: deftypevr
32747aa9 36725#: doc/guix.texi:20183
544cab3d
LC
36726#, no-wrap
36727msgid "{@code{openvpn-client-configuration} parameter} string pid-file"
36728msgstr ""
36729
36730#. type: deftypevr
32747aa9 36731#: doc/guix.texi:20185 doc/guix.texi:20321
544cab3d
LC
36732msgid "The OpenVPN pid file."
36733msgstr ""
36734
36735#. type: deftypevr
32747aa9 36736#: doc/guix.texi:20187 doc/guix.texi:20323
544cab3d
LC
36737msgid "Defaults to @samp{\"/var/run/openvpn/openvpn.pid\"}."
36738msgstr ""
36739
36740#. type: deftypevr
32747aa9 36741#: doc/guix.texi:20190
544cab3d
LC
36742#, no-wrap
36743msgid "{@code{openvpn-client-configuration} parameter} proto proto"
36744msgstr ""
36745
36746#. type: deftypevr
32747aa9 36747#: doc/guix.texi:20193 doc/guix.texi:20329
544cab3d
LC
36748msgid "The protocol (UDP or TCP) used to open a channel between clients and servers."
36749msgstr ""
36750
36751#. type: deftypevr
32747aa9 36752#: doc/guix.texi:20195 doc/guix.texi:20331
544cab3d
LC
36753msgid "Defaults to @samp{udp}."
36754msgstr ""
36755
36756#. type: deftypevr
32747aa9 36757#: doc/guix.texi:20198
544cab3d
LC
36758#, no-wrap
36759msgid "{@code{openvpn-client-configuration} parameter} dev dev"
36760msgstr ""
36761
36762#. type: deftypevr
32747aa9 36763#: doc/guix.texi:20200 doc/guix.texi:20336
544cab3d
LC
36764msgid "The device type used to represent the VPN connection."
36765msgstr ""
36766
36767#. type: deftypevr
32747aa9 36768#: doc/guix.texi:20202 doc/guix.texi:20338
544cab3d
LC
36769msgid "Defaults to @samp{tun}."
36770msgstr ""
36771
36772#. type: deftypevr
32747aa9 36773#: doc/guix.texi:20205
544cab3d
LC
36774#, no-wrap
36775msgid "{@code{openvpn-client-configuration} parameter} string ca"
36776msgstr ""
36777
36778#. type: deftypevr
32747aa9 36779#: doc/guix.texi:20207 doc/guix.texi:20343
544cab3d
LC
36780msgid "The certificate authority to check connections against."
36781msgstr ""
36782
36783#. type: deftypevr
32747aa9 36784#: doc/guix.texi:20209 doc/guix.texi:20345
544cab3d
LC
36785msgid "Defaults to @samp{\"/etc/openvpn/ca.crt\"}."
36786msgstr ""
36787
36788#. type: deftypevr
32747aa9 36789#: doc/guix.texi:20212
544cab3d
LC
36790#, no-wrap
36791msgid "{@code{openvpn-client-configuration} parameter} string cert"
36792msgstr ""
36793
36794#. type: deftypevr
32747aa9 36795#: doc/guix.texi:20215 doc/guix.texi:20351
544cab3d
LC
36796msgid "The certificate of the machine the daemon is running on. It should be signed by the authority given in @code{ca}."
36797msgstr ""
36798
36799#. type: deftypevr
32747aa9 36800#: doc/guix.texi:20217 doc/guix.texi:20353
544cab3d
LC
36801msgid "Defaults to @samp{\"/etc/openvpn/client.crt\"}."
36802msgstr ""
36803
36804#. type: deftypevr
32747aa9 36805#: doc/guix.texi:20220
544cab3d
LC
36806#, no-wrap
36807msgid "{@code{openvpn-client-configuration} parameter} string key"
36808msgstr ""
36809
36810#. type: deftypevr
32747aa9 36811#: doc/guix.texi:20223 doc/guix.texi:20359
544cab3d
LC
36812msgid "The key of the machine the daemon is running on. It must be the key whose certificate is @code{cert}."
36813msgstr ""
36814
36815#. type: deftypevr
32747aa9 36816#: doc/guix.texi:20225 doc/guix.texi:20361
544cab3d
LC
36817msgid "Defaults to @samp{\"/etc/openvpn/client.key\"}."
36818msgstr ""
36819
36820#. type: deftypevr
32747aa9 36821#: doc/guix.texi:20228
544cab3d
LC
36822#, no-wrap
36823msgid "{@code{openvpn-client-configuration} parameter} boolean comp-lzo?"
36824msgstr ""
36825
36826#. type: deftypevr
32747aa9 36827#: doc/guix.texi:20230 doc/guix.texi:20366
544cab3d
LC
36828msgid "Whether to use the lzo compression algorithm."
36829msgstr ""
36830
36831#. type: deftypevr
32747aa9 36832#: doc/guix.texi:20235
544cab3d
LC
36833#, no-wrap
36834msgid "{@code{openvpn-client-configuration} parameter} boolean persist-key?"
36835msgstr ""
36836
36837#. type: deftypevr
32747aa9 36838#: doc/guix.texi:20237 doc/guix.texi:20373
544cab3d
LC
36839msgid "Don't re-read key files across SIGUSR1 or --ping-restart."
36840msgstr ""
36841
36842#. type: deftypevr
32747aa9 36843#: doc/guix.texi:20242
544cab3d
LC
36844#, no-wrap
36845msgid "{@code{openvpn-client-configuration} parameter} boolean persist-tun?"
36846msgstr ""
36847
36848#. type: deftypevr
32747aa9 36849#: doc/guix.texi:20245 doc/guix.texi:20381
544cab3d
LC
36850msgid "Don't close and reopen TUN/TAP device or run up/down scripts across SIGUSR1 or --ping-restart restarts."
36851msgstr ""
36852
36853#. type: deftypevr
32747aa9 36854#: doc/guix.texi:20250
544cab3d
LC
36855#, no-wrap
36856msgid "{@code{openvpn-client-configuration} parameter} number verbosity"
36857msgstr ""
36858
36859#. type: deftypevr
32747aa9 36860#: doc/guix.texi:20252 doc/guix.texi:20388
544cab3d
LC
36861msgid "Verbosity level."
36862msgstr ""
36863
36864#. type: deftypevr
32747aa9
LC
36865#: doc/guix.texi:20254 doc/guix.texi:20390 doc/guix.texi:21703
36866#: doc/guix.texi:21926
544cab3d
LC
36867msgid "Defaults to @samp{3}."
36868msgstr ""
36869
36870#. type: deftypevr
32747aa9 36871#: doc/guix.texi:20257
544cab3d
LC
36872#, no-wrap
36873msgid "{@code{openvpn-client-configuration} parameter} tls-auth-client tls-auth"
36874msgstr ""
36875
36876#. type: deftypevr
32747aa9 36877#: doc/guix.texi:20260 doc/guix.texi:20396
544cab3d
LC
36878msgid "Add an additional layer of HMAC authentication on top of the TLS control channel to protect against DoS attacks."
36879msgstr ""
36880
36881#. type: deftypevr
32747aa9 36882#: doc/guix.texi:20265
544cab3d
LC
36883#, no-wrap
36884msgid "{@code{openvpn-client-configuration} parameter} key-usage verify-key-usage?"
36885msgstr ""
36886
36887#. type: deftypevr
32747aa9 36888#: doc/guix.texi:20267
544cab3d
LC
36889msgid "Whether to check the server certificate has server usage extension."
36890msgstr ""
36891
36892#. type: deftypevr
32747aa9 36893#: doc/guix.texi:20272
544cab3d
LC
36894#, no-wrap
36895msgid "{@code{openvpn-client-configuration} parameter} bind bind?"
36896msgstr ""
36897
36898#. type: deftypevr
32747aa9 36899#: doc/guix.texi:20274
544cab3d
LC
36900msgid "Bind to a specific local port number."
36901msgstr ""
36902
36903#. type: deftypevr
32747aa9 36904#: doc/guix.texi:20279
544cab3d
LC
36905#, no-wrap
36906msgid "{@code{openvpn-client-configuration} parameter} resolv-retry resolv-retry?"
36907msgstr ""
36908
36909#. type: deftypevr
32747aa9 36910#: doc/guix.texi:20281
544cab3d
LC
36911msgid "Retry resolving server address."
36912msgstr ""
36913
36914#. type: deftypevr
32747aa9 36915#: doc/guix.texi:20286
544cab3d
LC
36916#, no-wrap
36917msgid "{@code{openvpn-client-configuration} parameter} openvpn-remote-list remote"
36918msgstr ""
36919
36920#. type: deftypevr
32747aa9 36921#: doc/guix.texi:20288
544cab3d
LC
36922msgid "A list of remote servers to connect to."
36923msgstr ""
36924
36925#. type: deftypevr
32747aa9 36926#: doc/guix.texi:20292
544cab3d
LC
36927msgid "Available @code{openvpn-remote-configuration} fields are:"
36928msgstr ""
36929
36930#. type: deftypevr
32747aa9 36931#: doc/guix.texi:20293
544cab3d
LC
36932#, no-wrap
36933msgid "{@code{openvpn-remote-configuration} parameter} string name"
36934msgstr ""
36935
36936#. type: deftypevr
32747aa9 36937#: doc/guix.texi:20295
544cab3d
LC
36938msgid "Server name."
36939msgstr ""
36940
36941#. type: deftypevr
32747aa9 36942#: doc/guix.texi:20297
544cab3d
LC
36943msgid "Defaults to @samp{\"my-server\"}."
36944msgstr ""
36945
36946#. type: deftypevr
32747aa9 36947#: doc/guix.texi:20300
544cab3d
LC
36948#, no-wrap
36949msgid "{@code{openvpn-remote-configuration} parameter} number port"
36950msgstr ""
36951
36952#. type: deftypevr
32747aa9 36953#: doc/guix.texi:20302
544cab3d
LC
36954msgid "Port number the server listens to."
36955msgstr ""
36956
36957#. type: deftypevr
32747aa9 36958#: doc/guix.texi:20304 doc/guix.texi:20405
544cab3d
LC
36959msgid "Defaults to @samp{1194}."
36960msgstr ""
36961
36962#. type: Plain text
32747aa9 36963#: doc/guix.texi:20313
544cab3d
LC
36964msgid "Available @code{openvpn-server-configuration} fields are:"
36965msgstr ""
36966
36967#. type: deftypevr
32747aa9 36968#: doc/guix.texi:20314
544cab3d
LC
36969#, no-wrap
36970msgid "{@code{openvpn-server-configuration} parameter} package openvpn"
36971msgstr ""
36972
36973#. type: deftypevr
32747aa9 36974#: doc/guix.texi:20319
544cab3d
LC
36975#, no-wrap
36976msgid "{@code{openvpn-server-configuration} parameter} string pid-file"
36977msgstr ""
36978
36979#. type: deftypevr
32747aa9 36980#: doc/guix.texi:20326
544cab3d
LC
36981#, no-wrap
36982msgid "{@code{openvpn-server-configuration} parameter} proto proto"
36983msgstr ""
36984
36985#. type: deftypevr
32747aa9 36986#: doc/guix.texi:20334
544cab3d
LC
36987#, no-wrap
36988msgid "{@code{openvpn-server-configuration} parameter} dev dev"
36989msgstr ""
36990
36991#. type: deftypevr
32747aa9 36992#: doc/guix.texi:20341
544cab3d
LC
36993#, no-wrap
36994msgid "{@code{openvpn-server-configuration} parameter} string ca"
36995msgstr ""
36996
36997#. type: deftypevr
32747aa9 36998#: doc/guix.texi:20348
544cab3d
LC
36999#, no-wrap
37000msgid "{@code{openvpn-server-configuration} parameter} string cert"
37001msgstr ""
37002
37003#. type: deftypevr
32747aa9 37004#: doc/guix.texi:20356
544cab3d
LC
37005#, no-wrap
37006msgid "{@code{openvpn-server-configuration} parameter} string key"
37007msgstr ""
37008
37009#. type: deftypevr
32747aa9 37010#: doc/guix.texi:20364
544cab3d
LC
37011#, no-wrap
37012msgid "{@code{openvpn-server-configuration} parameter} boolean comp-lzo?"
37013msgstr ""
37014
37015#. type: deftypevr
32747aa9 37016#: doc/guix.texi:20371
544cab3d
LC
37017#, no-wrap
37018msgid "{@code{openvpn-server-configuration} parameter} boolean persist-key?"
37019msgstr ""
37020
37021#. type: deftypevr
32747aa9 37022#: doc/guix.texi:20378
544cab3d
LC
37023#, no-wrap
37024msgid "{@code{openvpn-server-configuration} parameter} boolean persist-tun?"
37025msgstr ""
37026
37027#. type: deftypevr
32747aa9 37028#: doc/guix.texi:20386
544cab3d
LC
37029#, no-wrap
37030msgid "{@code{openvpn-server-configuration} parameter} number verbosity"
37031msgstr ""
37032
37033#. type: deftypevr
32747aa9 37034#: doc/guix.texi:20393
544cab3d
LC
37035#, no-wrap
37036msgid "{@code{openvpn-server-configuration} parameter} tls-auth-server tls-auth"
37037msgstr ""
37038
37039#. type: deftypevr
32747aa9 37040#: doc/guix.texi:20401
544cab3d
LC
37041#, no-wrap
37042msgid "{@code{openvpn-server-configuration} parameter} number port"
37043msgstr ""
37044
37045#. type: deftypevr
32747aa9 37046#: doc/guix.texi:20403
544cab3d
LC
37047msgid "Specifies the port number on which the server listens."
37048msgstr ""
37049
37050#. type: deftypevr
32747aa9 37051#: doc/guix.texi:20408
544cab3d
LC
37052#, no-wrap
37053msgid "{@code{openvpn-server-configuration} parameter} ip-mask server"
37054msgstr ""
37055
37056#. type: deftypevr
32747aa9 37057#: doc/guix.texi:20410
544cab3d
LC
37058msgid "An ip and mask specifying the subnet inside the virtual network."
37059msgstr ""
37060
37061#. type: deftypevr
32747aa9 37062#: doc/guix.texi:20412
544cab3d
LC
37063msgid "Defaults to @samp{\"10.8.0.0 255.255.255.0\"}."
37064msgstr ""
37065
37066#. type: deftypevr
32747aa9 37067#: doc/guix.texi:20415
544cab3d
LC
37068#, no-wrap
37069msgid "{@code{openvpn-server-configuration} parameter} cidr6 server-ipv6"
37070msgstr ""
37071
37072#. type: deftypevr
32747aa9 37073#: doc/guix.texi:20417
544cab3d
LC
37074msgid "A CIDR notation specifying the IPv6 subnet inside the virtual network."
37075msgstr ""
37076
37077#. type: deftypevr
32747aa9 37078#: doc/guix.texi:20422
544cab3d
LC
37079#, no-wrap
37080msgid "{@code{openvpn-server-configuration} parameter} string dh"
37081msgstr ""
37082
37083#. type: deftypevr
32747aa9 37084#: doc/guix.texi:20424
544cab3d
LC
37085msgid "The Diffie-Hellman parameters file."
37086msgstr ""
37087
37088#. type: deftypevr
32747aa9 37089#: doc/guix.texi:20426
544cab3d
LC
37090msgid "Defaults to @samp{\"/etc/openvpn/dh2048.pem\"}."
37091msgstr ""
37092
37093#. type: deftypevr
32747aa9 37094#: doc/guix.texi:20429
544cab3d
LC
37095#, no-wrap
37096msgid "{@code{openvpn-server-configuration} parameter} string ifconfig-pool-persist"
37097msgstr ""
37098
37099#. type: deftypevr
32747aa9 37100#: doc/guix.texi:20431
544cab3d
LC
37101msgid "The file that records client IPs."
37102msgstr ""
37103
37104#. type: deftypevr
32747aa9 37105#: doc/guix.texi:20433
544cab3d
LC
37106msgid "Defaults to @samp{\"/etc/openvpn/ipp.txt\"}."
37107msgstr ""
37108
37109#. type: deftypevr
32747aa9 37110#: doc/guix.texi:20436
544cab3d
LC
37111#, no-wrap
37112msgid "{@code{openvpn-server-configuration} parameter} gateway redirect-gateway?"
37113msgstr ""
37114
37115#. type: deftypevr
32747aa9 37116#: doc/guix.texi:20438
544cab3d
LC
37117msgid "When true, the server will act as a gateway for its clients."
37118msgstr ""
37119
37120#. type: deftypevr
32747aa9 37121#: doc/guix.texi:20443
544cab3d
LC
37122#, no-wrap
37123msgid "{@code{openvpn-server-configuration} parameter} boolean client-to-client?"
37124msgstr ""
37125
37126#. type: deftypevr
32747aa9 37127#: doc/guix.texi:20445
544cab3d
LC
37128msgid "When true, clients are allowed to talk to each other inside the VPN."
37129msgstr ""
37130
37131#. type: deftypevr
32747aa9 37132#: doc/guix.texi:20450
544cab3d
LC
37133#, no-wrap
37134msgid "{@code{openvpn-server-configuration} parameter} keepalive keepalive"
37135msgstr ""
37136
37137#. type: deftypevr
32747aa9 37138#: doc/guix.texi:20456
544cab3d
LC
37139msgid "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."
37140msgstr ""
37141
37142#. type: deftypevr
32747aa9 37143#: doc/guix.texi:20459
544cab3d
LC
37144#, no-wrap
37145msgid "{@code{openvpn-server-configuration} parameter} number max-clients"
37146msgstr ""
37147
37148#. type: deftypevr
32747aa9 37149#: doc/guix.texi:20461
544cab3d
LC
37150msgid "The maximum number of clients."
37151msgstr ""
37152
37153#. type: deftypevr
32747aa9 37154#: doc/guix.texi:20466
544cab3d
LC
37155#, no-wrap
37156msgid "{@code{openvpn-server-configuration} parameter} string status"
37157msgstr ""
37158
37159#. type: deftypevr
32747aa9 37160#: doc/guix.texi:20469
544cab3d
LC
37161msgid "The status file. This file shows a small report on current connection. It is truncated and rewritten every minute."
37162msgstr ""
37163
37164#. type: deftypevr
32747aa9 37165#: doc/guix.texi:20471
544cab3d
LC
37166msgid "Defaults to @samp{\"/var/run/openvpn/status\"}."
37167msgstr ""
37168
37169#. type: deftypevr
32747aa9 37170#: doc/guix.texi:20474
544cab3d
LC
37171#, no-wrap
37172msgid "{@code{openvpn-server-configuration} parameter} openvpn-ccd-list client-config-dir"
37173msgstr ""
37174
37175#. type: deftypevr
32747aa9 37176#: doc/guix.texi:20476
544cab3d
LC
37177msgid "The list of configuration for some clients."
37178msgstr ""
37179
37180#. type: deftypevr
32747aa9 37181#: doc/guix.texi:20480
544cab3d
LC
37182msgid "Available @code{openvpn-ccd-configuration} fields are:"
37183msgstr ""
37184
37185#. type: deftypevr
32747aa9 37186#: doc/guix.texi:20481
544cab3d
LC
37187#, no-wrap
37188msgid "{@code{openvpn-ccd-configuration} parameter} string name"
37189msgstr ""
37190
37191#. type: deftypevr
32747aa9 37192#: doc/guix.texi:20483
544cab3d
LC
37193msgid "Client name."
37194msgstr ""
37195
37196#. type: deftypevr
32747aa9 37197#: doc/guix.texi:20485
544cab3d
LC
37198msgid "Defaults to @samp{\"client\"}."
37199msgstr ""
37200
37201#. type: deftypevr
32747aa9 37202#: doc/guix.texi:20488
544cab3d
LC
37203#, no-wrap
37204msgid "{@code{openvpn-ccd-configuration} parameter} ip-mask iroute"
37205msgstr ""
37206
37207#. type: deftypevr
32747aa9 37208#: doc/guix.texi:20490
544cab3d
LC
37209msgid "Client own network"
37210msgstr ""
37211
37212#. type: deftypevr
32747aa9 37213#: doc/guix.texi:20495
544cab3d
LC
37214#, no-wrap
37215msgid "{@code{openvpn-ccd-configuration} parameter} ip-mask ifconfig-push"
37216msgstr ""
37217
37218#. type: deftypevr
32747aa9 37219#: doc/guix.texi:20497
544cab3d
LC
37220msgid "Client VPN IP."
37221msgstr ""
37222
37223#. type: cindex
32747aa9 37224#: doc/guix.texi:20510
544cab3d
LC
37225#, no-wrap
37226msgid "NFS"
37227msgstr ""
37228
37229#. type: Plain text
32747aa9 37230#: doc/guix.texi:20515
544cab3d
LC
37231msgid "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)."
37232msgstr ""
37233
37234#. type: subsubheading
32747aa9 37235#: doc/guix.texi:20516
544cab3d
LC
37236#, no-wrap
37237msgid "RPC Bind Service"
37238msgstr ""
37239
37240#. type: cindex
32747aa9 37241#: doc/guix.texi:20517
544cab3d
LC
37242#, no-wrap
37243msgid "rpcbind"
37244msgstr ""
37245
37246#. type: Plain text
32747aa9 37247#: doc/guix.texi:20523
544cab3d
LC
37248msgid "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."
37249msgstr ""
37250
37251#. type: defvr
32747aa9 37252#: doc/guix.texi:20524
544cab3d
LC
37253#, no-wrap
37254msgid "{Scheme Variable} rpcbind-service-type"
37255msgstr ""
37256
37257#. type: defvr
32747aa9 37258#: doc/guix.texi:20526
544cab3d
LC
37259msgid "A service type for the RPC portmapper daemon."
37260msgstr ""
37261
37262#. type: deftp
32747aa9 37263#: doc/guix.texi:20529
544cab3d
LC
37264#, no-wrap
37265msgid "{Data Type} rpcbind-configuration"
37266msgstr ""
37267
37268#. type: deftp
32747aa9 37269#: doc/guix.texi:20532
544cab3d
LC
37270msgid "Data type representing the configuration of the RPC Bind Service. This type has the following parameters:"
37271msgstr ""
37272
37273#. type: item
32747aa9 37274#: doc/guix.texi:20533
544cab3d
LC
37275#, no-wrap
37276msgid "@code{rpcbind} (default: @code{rpcbind})"
37277msgstr ""
37278
37279#. type: table
32747aa9 37280#: doc/guix.texi:20535
544cab3d
LC
37281msgid "The rpcbind package to use."
37282msgstr ""
37283
37284#. type: item
32747aa9 37285#: doc/guix.texi:20536
544cab3d
LC
37286#, no-wrap
37287msgid "@code{warm-start?} (default: @code{#t})"
37288msgstr ""
37289
37290#. type: table
32747aa9 37291#: doc/guix.texi:20540
544cab3d
LC
37292msgid "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."
37293msgstr ""
37294
37295#. type: subsubheading
32747aa9 37296#: doc/guix.texi:20544
544cab3d
LC
37297#, no-wrap
37298msgid "Pipefs Pseudo File System"
37299msgstr ""
37300
37301#. type: cindex
32747aa9 37302#: doc/guix.texi:20545
544cab3d
LC
37303#, no-wrap
37304msgid "pipefs"
37305msgstr ""
37306
37307#. type: cindex
32747aa9 37308#: doc/guix.texi:20546
544cab3d
LC
37309#, no-wrap
37310msgid "rpc_pipefs"
37311msgstr ""
37312
37313#. type: Plain text
32747aa9 37314#: doc/guix.texi:20550
544cab3d
LC
37315msgid "The pipefs file system is used to transfer NFS related data between the kernel and user space programs."
37316msgstr ""
37317
37318#. type: defvr
32747aa9 37319#: doc/guix.texi:20551
544cab3d
LC
37320#, no-wrap
37321msgid "{Scheme Variable} pipefs-service-type"
37322msgstr ""
37323
37324#. type: defvr
32747aa9 37325#: doc/guix.texi:20553
544cab3d
LC
37326msgid "A service type for the pipefs pseudo file system."
37327msgstr ""
37328
37329#. type: deftp
32747aa9 37330#: doc/guix.texi:20555
544cab3d
LC
37331#, no-wrap
37332msgid "{Data Type} pipefs-configuration"
37333msgstr ""
37334
37335#. type: deftp
32747aa9 37336#: doc/guix.texi:20558
544cab3d
LC
37337msgid "Data type representing the configuration of the pipefs pseudo file system service. This type has the following parameters:"
37338msgstr ""
37339
37340#. type: item
32747aa9 37341#: doc/guix.texi:20559
544cab3d
LC
37342#, no-wrap
37343msgid "@code{mount-point} (default: @code{\"/var/lib/nfs/rpc_pipefs\"})"
37344msgstr ""
37345
37346#. type: table
32747aa9 37347#: doc/guix.texi:20561
544cab3d
LC
37348msgid "The directory to which the file system is to be attached."
37349msgstr ""
37350
37351#. type: subsubheading
32747aa9 37352#: doc/guix.texi:20565
544cab3d
LC
37353#, no-wrap
37354msgid "GSS Daemon Service"
37355msgstr ""
37356
37357#. type: cindex
32747aa9 37358#: doc/guix.texi:20566
544cab3d
LC
37359#, no-wrap
37360msgid "GSSD"
37361msgstr ""
37362
37363#. type: cindex
32747aa9 37364#: doc/guix.texi:20567
544cab3d
LC
37365#, no-wrap
37366msgid "GSS"
37367msgstr ""
37368
37369#. type: cindex
32747aa9 37370#: doc/guix.texi:20568
544cab3d
LC
37371#, no-wrap
37372msgid "global security system"
37373msgstr ""
37374
37375#. type: Plain text
32747aa9 37376#: doc/guix.texi:20575
544cab3d
LC
37377msgid "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})."
37378msgstr ""
37379
37380#. type: defvr
32747aa9 37381#: doc/guix.texi:20576
544cab3d
LC
37382#, no-wrap
37383msgid "{Scheme Variable} gss-service-type"
37384msgstr ""
37385
37386#. type: defvr
32747aa9 37387#: doc/guix.texi:20578
544cab3d
LC
37388msgid "A service type for the Global Security System (GSS) daemon."
37389msgstr ""
37390
37391#. type: deftp
32747aa9 37392#: doc/guix.texi:20580
544cab3d
LC
37393#, no-wrap
37394msgid "{Data Type} gss-configuration"
37395msgstr ""
37396
37397#. type: deftp
32747aa9 37398#: doc/guix.texi:20583
544cab3d
LC
37399msgid "Data type representing the configuration of the GSS daemon service. This type has the following parameters:"
37400msgstr ""
37401
37402#. type: item
32747aa9 37403#: doc/guix.texi:20584 doc/guix.texi:20609
544cab3d
LC
37404#, no-wrap
37405msgid "@code{nfs-utils} (default: @code{nfs-utils})"
37406msgstr ""
37407
37408#. type: table
32747aa9 37409#: doc/guix.texi:20586
544cab3d
LC
37410msgid "The package in which the @command{rpc.gssd} command is to be found."
37411msgstr ""
37412
37413#. type: item
32747aa9 37414#: doc/guix.texi:20587 doc/guix.texi:20612
544cab3d
LC
37415#, no-wrap
37416msgid "@code{pipefs-directory} (default: @code{\"/var/lib/nfs/rpc_pipefs\"})"
37417msgstr ""
37418
37419#. type: table
32747aa9 37420#: doc/guix.texi:20589 doc/guix.texi:20614
544cab3d
LC
37421msgid "The directory where the pipefs file system is mounted."
37422msgstr ""
37423
37424#. type: subsubheading
32747aa9 37425#: doc/guix.texi:20594
544cab3d
LC
37426#, no-wrap
37427msgid "IDMAP Daemon Service"
37428msgstr ""
37429
37430#. type: cindex
32747aa9 37431#: doc/guix.texi:20595
544cab3d
LC
37432#, no-wrap
37433msgid "idmapd"
37434msgstr ""
37435
37436#. type: cindex
32747aa9 37437#: doc/guix.texi:20596
544cab3d
LC
37438#, no-wrap
37439msgid "name mapper"
37440msgstr ""
37441
37442#. type: Plain text
32747aa9 37443#: doc/guix.texi:20600
544cab3d
LC
37444msgid "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."
37445msgstr ""
37446
37447#. type: defvr
32747aa9 37448#: doc/guix.texi:20601
544cab3d
LC
37449#, no-wrap
37450msgid "{Scheme Variable} idmap-service-type"
37451msgstr ""
37452
37453#. type: defvr
32747aa9 37454#: doc/guix.texi:20603
544cab3d
LC
37455msgid "A service type for the Identity Mapper (IDMAP) daemon."
37456msgstr ""
37457
37458#. type: deftp
32747aa9 37459#: doc/guix.texi:20605
544cab3d
LC
37460#, no-wrap
37461msgid "{Data Type} idmap-configuration"
37462msgstr ""
37463
37464#. type: deftp
32747aa9 37465#: doc/guix.texi:20608
544cab3d
LC
37466msgid "Data type representing the configuration of the IDMAP daemon service. This type has the following parameters:"
37467msgstr ""
37468
37469#. type: table
32747aa9 37470#: doc/guix.texi:20611
544cab3d
LC
37471msgid "The package in which the @command{rpc.idmapd} command is to be found."
37472msgstr ""
37473
37474#. type: item
32747aa9 37475#: doc/guix.texi:20615
544cab3d
LC
37476#, no-wrap
37477msgid "@code{domain} (default: @code{#f})"
37478msgstr ""
37479
37480#. type: table
32747aa9 37481#: doc/guix.texi:20619
544cab3d
LC
37482msgid "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."
37483msgstr ""
37484
37485#. type: Plain text
32747aa9 37486#: doc/guix.texi:20630
544cab3d
LC
37487msgid "@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})."
37488msgstr ""
37489
37490#. type: Plain text
32747aa9 37491#: doc/guix.texi:20632
544cab3d
LC
37492msgid "The @code{(gnu services cuirass)} module provides the following service."
37493msgstr ""
37494
37495#. type: defvr
32747aa9 37496#: doc/guix.texi:20633
544cab3d
LC
37497#, no-wrap
37498msgid "{Scheme Procedure} cuirass-service-type"
37499msgstr ""
37500
37501#. type: defvr
32747aa9 37502#: doc/guix.texi:20636
544cab3d
LC
37503msgid "The type of the Cuirass service. Its value must be a @code{cuirass-configuration} object, as described below."
37504msgstr ""
37505
37506#. type: Plain text
32747aa9 37507#: doc/guix.texi:20643
544cab3d
LC
37508msgid "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 @code{GUIX_PACKAGE_PATH}."
37509msgstr ""
37510
37511#. type: example
32747aa9 37512#: doc/guix.texi:20671
544cab3d
LC
37513#, no-wrap
37514msgid ""
37515"(define %cuirass-specs\n"
37516" #~(list\n"
37517" '((#:name . \"my-manifest\")\n"
37518" (#:load-path-inputs . (\"guix\"))\n"
37519" (#:package-path-inputs . (\"custom-packages\"))\n"
37520" (#:proc-input . \"guix\")\n"
37521" (#:proc-file . \"build-aux/cuirass/gnu-system.scm\")\n"
37522" (#:proc . cuirass-jobs)\n"
37523" (#:proc-args . ((subset . \"manifests\")\n"
37524" (systems . (\"x86_64-linux\"))\n"
37525" (manifests . ((\"config\" . \"guix/manifest.scm\")))))\n"
37526" (#:inputs . (((#:name . \"guix\")\n"
37527" (#:url . \"git://git.savannah.gnu.org/guix.git\")\n"
37528" (#:load-path . \".\")\n"
37529" (#:branch . \"master\")\n"
37530" (#:no-compile? . #t))\n"
37531" ((#:name . \"config\")\n"
37532" (#:url . \"git://git.example.org/config.git\")\n"
37533" (#:load-path . \".\")\n"
37534" (#:branch . \"master\")\n"
37535" (#:no-compile? . #t))\n"
37536" ((#:name . \"custom-packages\")\n"
37537" (#:url . \"git://git.example.org/custom-packages.git\")\n"
37538" (#:load-path . \".\")\n"
37539" (#:branch . \"master\")\n"
37540" (#:no-compile? . #t)))))))\n"
37541"\n"
37542msgstr ""
37543
37544#. type: example
32747aa9 37545#: doc/guix.texi:20675
544cab3d
LC
37546#, no-wrap
37547msgid ""
37548"(service cuirass-service-type\n"
37549" (cuirass-configuration\n"
37550" (specifications %cuirass-specs)))\n"
37551msgstr ""
37552
37553#. type: Plain text
32747aa9 37554#: doc/guix.texi:20680
544cab3d
LC
37555msgid "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."
37556msgstr ""
37557
37558#. type: deftp
32747aa9 37559#: doc/guix.texi:20681
544cab3d
LC
37560#, no-wrap
37561msgid "{Data Type} cuirass-configuration"
37562msgstr ""
37563
37564#. type: deftp
32747aa9 37565#: doc/guix.texi:20683
544cab3d
LC
37566msgid "Data type representing the configuration of Cuirass."
37567msgstr ""
37568
37569#. type: item
32747aa9 37570#: doc/guix.texi:20685
544cab3d
LC
37571#, no-wrap
37572msgid "@code{log-file} (default: @code{\"/var/log/cuirass.log\"})"
37573msgstr ""
37574
37575#. type: table
32747aa9 37576#: doc/guix.texi:20687
544cab3d
LC
37577msgid "Location of the log file."
37578msgstr ""
37579
37580#. type: item
32747aa9 37581#: doc/guix.texi:20688
544cab3d
LC
37582#, no-wrap
37583msgid "@code{cache-directory} (default: @code{\"/var/cache/cuirass\"})"
37584msgstr ""
37585
37586#. type: table
32747aa9 37587#: doc/guix.texi:20690
544cab3d
LC
37588msgid "Location of the repository cache."
37589msgstr ""
37590
37591#. type: item
32747aa9 37592#: doc/guix.texi:20691
544cab3d
LC
37593#, no-wrap
37594msgid "@code{user} (default: @code{\"cuirass\"})"
37595msgstr ""
37596
37597#. type: table
32747aa9 37598#: doc/guix.texi:20693
544cab3d
LC
37599msgid "Owner of the @code{cuirass} process."
37600msgstr ""
37601
37602#. type: item
32747aa9 37603#: doc/guix.texi:20694
544cab3d
LC
37604#, no-wrap
37605msgid "@code{group} (default: @code{\"cuirass\"})"
37606msgstr ""
37607
37608#. type: table
32747aa9 37609#: doc/guix.texi:20696
544cab3d
LC
37610msgid "Owner's group of the @code{cuirass} process."
37611msgstr ""
37612
37613#. type: item
32747aa9 37614#: doc/guix.texi:20697
544cab3d
LC
37615#, no-wrap
37616msgid "@code{interval} (default: @code{60})"
37617msgstr ""
37618
37619#. type: table
32747aa9 37620#: doc/guix.texi:20700
544cab3d
LC
37621msgid "Number of seconds between the poll of the repositories followed by the Cuirass jobs."
37622msgstr ""
37623
37624#. type: item
32747aa9 37625#: doc/guix.texi:20701
544cab3d
LC
37626#, no-wrap
37627msgid "@code{database} (default: @code{\"/var/lib/cuirass/cuirass.db\"})"
37628msgstr ""
37629
37630#. type: table
32747aa9 37631#: doc/guix.texi:20704
544cab3d
LC
37632msgid "Location of sqlite database which contains the build results and previously added specifications."
37633msgstr ""
37634
37635#. type: item
32747aa9 37636#: doc/guix.texi:20705
544cab3d
LC
37637#, no-wrap
37638msgid "@code{ttl} (default: @code{(* 30 24 3600)})"
37639msgstr ""
37640
37641#. type: table
32747aa9 37642#: doc/guix.texi:20709
544cab3d
LC
37643msgid "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."
37644msgstr ""
37645
37646#. type: item
32747aa9 37647#: doc/guix.texi:20710
544cab3d
LC
37648#, no-wrap
37649msgid "@code{port} (default: @code{8081})"
37650msgstr ""
37651
37652#. type: table
32747aa9 37653#: doc/guix.texi:20712
544cab3d
LC
37654msgid "Port number used by the HTTP server."
37655msgstr ""
37656
37657#. type: table
32747aa9 37658#: doc/guix.texi:20716
544cab3d
LC
37659msgid "Listen on the network interface for @var{host}. The default is to accept connections from localhost."
37660msgstr ""
37661
37662#. type: item
32747aa9 37663#: doc/guix.texi:20717
544cab3d
LC
37664#, no-wrap
37665msgid "@code{specifications} (default: @code{#~'()})"
37666msgstr ""
37667
37668#. type: table
32747aa9 37669#: doc/guix.texi:20723
544cab3d
LC
37670msgid "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."
37671msgstr ""
37672
37673#. type: item
32747aa9 37674#: doc/guix.texi:20724
544cab3d
LC
37675#, no-wrap
37676msgid "@code{use-substitutes?} (default: @code{#f})"
37677msgstr ""
37678
37679#. type: table
32747aa9 37680#: doc/guix.texi:20727
544cab3d
LC
37681msgid "This allows using substitutes to avoid building every dependencies of a job from source."
37682msgstr ""
37683
37684#. type: item
32747aa9 37685#: doc/guix.texi:20728 doc/guix.texi:25286
544cab3d
LC
37686#, no-wrap
37687msgid "@code{one-shot?} (default: @code{#f})"
37688msgstr ""
37689
37690#. type: table
32747aa9 37691#: doc/guix.texi:20730
544cab3d
LC
37692msgid "Only evaluate specifications and build derivations once."
37693msgstr ""
37694
37695#. type: item
32747aa9 37696#: doc/guix.texi:20731
544cab3d
LC
37697#, no-wrap
37698msgid "@code{fallback?} (default: @code{#f})"
37699msgstr ""
37700
37701#. type: table
32747aa9 37702#: doc/guix.texi:20734
544cab3d
LC
37703msgid "When substituting a pre-built binary fails, fall back to building packages locally."
37704msgstr ""
37705
37706#. type: item
32747aa9 37707#: doc/guix.texi:20735
544cab3d
LC
37708#, no-wrap
37709msgid "@code{cuirass} (default: @code{cuirass})"
37710msgstr ""
37711
37712#. type: table
32747aa9 37713#: doc/guix.texi:20737
544cab3d
LC
37714msgid "The Cuirass package to use."
37715msgstr ""
37716
37717#. type: cindex
32747aa9 37718#: doc/guix.texi:20743
544cab3d
LC
37719#, no-wrap
37720msgid "tlp"
37721msgstr ""
37722
37723#. type: cindex
32747aa9 37724#: doc/guix.texi:20744
544cab3d
LC
37725#, no-wrap
37726msgid "power management with TLP"
37727msgstr ""
37728
37729#. type: subsubheading
32747aa9 37730#: doc/guix.texi:20745
544cab3d
LC
37731#, no-wrap
37732msgid "TLP daemon"
37733msgstr ""
37734
37735#. type: Plain text
32747aa9 37736#: doc/guix.texi:20749
544cab3d
LC
37737msgid "The @code{(gnu services pm)} module provides a Guix service definition for the Linux power management tool TLP."
37738msgstr ""
37739
37740#. type: Plain text
32747aa9
LC
37741#: doc/guix.texi:20755
37742msgid "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}."
544cab3d
LC
37743msgstr ""
37744
37745#. type: deffn
32747aa9 37746#: doc/guix.texi:20756
544cab3d
LC
37747#, no-wrap
37748msgid "{Scheme Variable} tlp-service-type"
37749msgstr ""
37750
37751#. type: deffn
32747aa9 37752#: doc/guix.texi:20760
544cab3d
LC
37753msgid "The service type for the TLP tool. Its value should be a valid TLP configuration (see below). To use the default settings, simply write:"
37754msgstr ""
37755
37756#. type: example
32747aa9 37757#: doc/guix.texi:20762
544cab3d
LC
37758#, no-wrap
37759msgid "(service tlp-service-type)\n"
37760msgstr ""
37761
37762#. type: Plain text
32747aa9 37763#: doc/guix.texi:20767
544cab3d
LC
37764msgid "By default TLP does not need much configuration but most TLP parameters can be tweaked using @code{tlp-configuration}."
37765msgstr ""
37766
37767#. type: Plain text
32747aa9 37768#: doc/guix.texi:20773
544cab3d
LC
37769msgid "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}."
37770msgstr ""
37771
37772#. type: Plain text
32747aa9 37773#: doc/guix.texi:20783
544cab3d
LC
37774msgid "Available @code{tlp-configuration} fields are:"
37775msgstr ""
37776
37777#. type: deftypevr
32747aa9 37778#: doc/guix.texi:20784
544cab3d
LC
37779#, no-wrap
37780msgid "{@code{tlp-configuration} parameter} package tlp"
37781msgstr ""
37782
37783#. type: deftypevr
32747aa9 37784#: doc/guix.texi:20786
544cab3d
LC
37785msgid "The TLP package."
37786msgstr ""
37787
37788#. type: deftypevr
32747aa9 37789#: doc/guix.texi:20789
544cab3d
LC
37790#, no-wrap
37791msgid "{@code{tlp-configuration} parameter} boolean tlp-enable?"
37792msgstr ""
37793
37794#. type: deftypevr
32747aa9 37795#: doc/guix.texi:20791
544cab3d
LC
37796msgid "Set to true if you wish to enable TLP."
37797msgstr ""
37798
37799#. type: deftypevr
32747aa9 37800#: doc/guix.texi:20796
544cab3d
LC
37801#, no-wrap
37802msgid "{@code{tlp-configuration} parameter} string tlp-default-mode"
37803msgstr ""
37804
37805#. type: deftypevr
32747aa9 37806#: doc/guix.texi:20799
544cab3d
LC
37807msgid "Default mode when no power supply can be detected. Alternatives are AC and BAT."
37808msgstr ""
37809
37810#. type: deftypevr
32747aa9 37811#: doc/guix.texi:20801
544cab3d
LC
37812msgid "Defaults to @samp{\"AC\"}."
37813msgstr ""
37814
37815#. type: deftypevr
32747aa9 37816#: doc/guix.texi:20804
544cab3d
LC
37817#, no-wrap
37818msgid "{@code{tlp-configuration} parameter} non-negative-integer disk-idle-secs-on-ac"
37819msgstr ""
37820
37821#. type: deftypevr
32747aa9 37822#: doc/guix.texi:20807
544cab3d
LC
37823msgid "Number of seconds Linux kernel has to wait after the disk goes idle, before syncing on AC."
37824msgstr ""
37825
37826#. type: deftypevr
32747aa9 37827#: doc/guix.texi:20812
544cab3d
LC
37828#, no-wrap
37829msgid "{@code{tlp-configuration} parameter} non-negative-integer disk-idle-secs-on-bat"
37830msgstr ""
37831
37832#. type: deftypevr
32747aa9 37833#: doc/guix.texi:20814
544cab3d
LC
37834msgid "Same as @code{disk-idle-ac} but on BAT mode."
37835msgstr ""
37836
37837#. type: deftypevr
32747aa9 37838#: doc/guix.texi:20816
544cab3d
LC
37839msgid "Defaults to @samp{2}."
37840msgstr ""
37841
37842#. type: deftypevr
32747aa9 37843#: doc/guix.texi:20819
544cab3d
LC
37844#, no-wrap
37845msgid "{@code{tlp-configuration} parameter} non-negative-integer max-lost-work-secs-on-ac"
37846msgstr ""
37847
37848#. type: deftypevr
32747aa9 37849#: doc/guix.texi:20821
544cab3d
LC
37850msgid "Dirty pages flushing periodicity, expressed in seconds."
37851msgstr ""
37852
37853#. type: deftypevr
32747aa9
LC
37854#: doc/guix.texi:20823 doc/guix.texi:21046 doc/guix.texi:22375
37855#: doc/guix.texi:22383
544cab3d
LC
37856msgid "Defaults to @samp{15}."
37857msgstr ""
37858
37859#. type: deftypevr
32747aa9 37860#: doc/guix.texi:20826
544cab3d
LC
37861#, no-wrap
37862msgid "{@code{tlp-configuration} parameter} non-negative-integer max-lost-work-secs-on-bat"
37863msgstr ""
37864
37865#. type: deftypevr
32747aa9 37866#: doc/guix.texi:20828
544cab3d
LC
37867msgid "Same as @code{max-lost-work-secs-on-ac} but on BAT mode."
37868msgstr ""
37869
37870#. type: deftypevr
32747aa9 37871#: doc/guix.texi:20830
544cab3d
LC
37872msgid "Defaults to @samp{60}."
37873msgstr ""
37874
37875#. type: deftypevr
32747aa9 37876#: doc/guix.texi:20833
544cab3d
LC
37877#, no-wrap
37878msgid "{@code{tlp-configuration} parameter} maybe-space-separated-string-list cpu-scaling-governor-on-ac"
37879msgstr ""
37880
37881#. type: deftypevr
32747aa9 37882#: doc/guix.texi:20837
544cab3d
LC
37883msgid "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."
37884msgstr ""
37885
37886#. type: deftypevr
32747aa9 37887#: doc/guix.texi:20842
544cab3d
LC
37888#, no-wrap
37889msgid "{@code{tlp-configuration} parameter} maybe-space-separated-string-list cpu-scaling-governor-on-bat"
37890msgstr ""
37891
37892#. type: deftypevr
32747aa9 37893#: doc/guix.texi:20844
544cab3d
LC
37894msgid "Same as @code{cpu-scaling-governor-on-ac} but on BAT mode."
37895msgstr ""
37896
37897#. type: deftypevr
32747aa9 37898#: doc/guix.texi:20849
544cab3d
LC
37899#, no-wrap
37900msgid "{@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-scaling-min-freq-on-ac"
37901msgstr ""
37902
37903#. type: deftypevr
32747aa9 37904#: doc/guix.texi:20851
544cab3d
LC
37905msgid "Set the min available frequency for the scaling governor on AC."
37906msgstr ""
37907
37908#. type: deftypevr
32747aa9 37909#: doc/guix.texi:20856
544cab3d
LC
37910#, no-wrap
37911msgid "{@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-scaling-max-freq-on-ac"
37912msgstr ""
37913
37914#. type: deftypevr
32747aa9 37915#: doc/guix.texi:20858
544cab3d
LC
37916msgid "Set the max available frequency for the scaling governor on AC."
37917msgstr ""
37918
37919#. type: deftypevr
32747aa9 37920#: doc/guix.texi:20863
544cab3d
LC
37921#, no-wrap
37922msgid "{@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-scaling-min-freq-on-bat"
37923msgstr ""
37924
37925#. type: deftypevr
32747aa9 37926#: doc/guix.texi:20865
544cab3d
LC
37927msgid "Set the min available frequency for the scaling governor on BAT."
37928msgstr ""
37929
37930#. type: deftypevr
32747aa9 37931#: doc/guix.texi:20870
544cab3d
LC
37932#, no-wrap
37933msgid "{@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-scaling-max-freq-on-bat"
37934msgstr ""
37935
37936#. type: deftypevr
32747aa9 37937#: doc/guix.texi:20872
544cab3d
LC
37938msgid "Set the max available frequency for the scaling governor on BAT."
37939msgstr ""
37940
37941#. type: deftypevr
32747aa9 37942#: doc/guix.texi:20877
544cab3d
LC
37943#, no-wrap
37944msgid "{@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-min-perf-on-ac"
37945msgstr ""
37946
37947#. type: deftypevr
32747aa9 37948#: doc/guix.texi:20880
544cab3d
LC
37949msgid "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."
37950msgstr ""
37951
37952#. type: deftypevr
32747aa9 37953#: doc/guix.texi:20885
544cab3d
LC
37954#, no-wrap
37955msgid "{@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-max-perf-on-ac"
37956msgstr ""
37957
37958#. type: deftypevr
32747aa9 37959#: doc/guix.texi:20888
544cab3d
LC
37960msgid "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."
37961msgstr ""
37962
37963#. type: deftypevr
32747aa9 37964#: doc/guix.texi:20893
544cab3d
LC
37965#, no-wrap
37966msgid "{@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-min-perf-on-bat"
37967msgstr ""
37968
37969#. type: deftypevr
32747aa9 37970#: doc/guix.texi:20895
544cab3d
LC
37971msgid "Same as @code{cpu-min-perf-on-ac} on BAT mode."
37972msgstr ""
37973
37974#. type: deftypevr
32747aa9 37975#: doc/guix.texi:20900
544cab3d
LC
37976#, no-wrap
37977msgid "{@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-max-perf-on-bat"
37978msgstr ""
37979
37980#. type: deftypevr
32747aa9 37981#: doc/guix.texi:20902
544cab3d
LC
37982msgid "Same as @code{cpu-max-perf-on-ac} on BAT mode."
37983msgstr ""
37984
37985#. type: deftypevr
32747aa9 37986#: doc/guix.texi:20907
544cab3d
LC
37987#, no-wrap
37988msgid "{@code{tlp-configuration} parameter} maybe-boolean cpu-boost-on-ac?"
37989msgstr ""
37990
37991#. type: deftypevr
32747aa9 37992#: doc/guix.texi:20909
544cab3d
LC
37993msgid "Enable CPU turbo boost feature on AC mode."
37994msgstr ""
37995
37996#. type: deftypevr
32747aa9 37997#: doc/guix.texi:20914
544cab3d
LC
37998#, no-wrap
37999msgid "{@code{tlp-configuration} parameter} maybe-boolean cpu-boost-on-bat?"
38000msgstr ""
38001
38002#. type: deftypevr
32747aa9 38003#: doc/guix.texi:20916
544cab3d
LC
38004msgid "Same as @code{cpu-boost-on-ac?} on BAT mode."
38005msgstr ""
38006
38007#. type: deftypevr
32747aa9 38008#: doc/guix.texi:20921
544cab3d
LC
38009#, no-wrap
38010msgid "{@code{tlp-configuration} parameter} boolean sched-powersave-on-ac?"
38011msgstr ""
38012
38013#. type: deftypevr
32747aa9 38014#: doc/guix.texi:20924
544cab3d
LC
38015msgid "Allow Linux kernel to minimize the number of CPU cores/hyper-threads used under light load conditions."
38016msgstr ""
38017
38018#. type: deftypevr
32747aa9 38019#: doc/guix.texi:20929
544cab3d
LC
38020#, no-wrap
38021msgid "{@code{tlp-configuration} parameter} boolean sched-powersave-on-bat?"
38022msgstr ""
38023
38024#. type: deftypevr
32747aa9 38025#: doc/guix.texi:20931
544cab3d
LC
38026msgid "Same as @code{sched-powersave-on-ac?} but on BAT mode."
38027msgstr ""
38028
38029#. type: deftypevr
32747aa9 38030#: doc/guix.texi:20936
544cab3d
LC
38031#, no-wrap
38032msgid "{@code{tlp-configuration} parameter} boolean nmi-watchdog?"
38033msgstr ""
38034
38035#. type: deftypevr
32747aa9 38036#: doc/guix.texi:20938
544cab3d
LC
38037msgid "Enable Linux kernel NMI watchdog."
38038msgstr ""
38039
38040#. type: deftypevr
32747aa9 38041#: doc/guix.texi:20943
544cab3d
LC
38042#, no-wrap
38043msgid "{@code{tlp-configuration} parameter} maybe-string phc-controls"
38044msgstr ""
38045
38046#. type: deftypevr
32747aa9 38047#: doc/guix.texi:20946
544cab3d
LC
38048msgid "For Linux kernels with PHC patch applied, change CPU voltages. An example value would be @samp{\"F:V F:V F:V F:V\"}."
38049msgstr ""
38050
38051#. type: deftypevr
32747aa9 38052#: doc/guix.texi:20951
544cab3d
LC
38053#, no-wrap
38054msgid "{@code{tlp-configuration} parameter} string energy-perf-policy-on-ac"
38055msgstr ""
38056
38057#. type: deftypevr
32747aa9 38058#: doc/guix.texi:20954
544cab3d
LC
38059msgid "Set CPU performance versus energy saving policy on AC. Alternatives are performance, normal, powersave."
38060msgstr ""
38061
38062#. type: deftypevr
32747aa9 38063#: doc/guix.texi:20956 doc/guix.texi:21054 doc/guix.texi:21084
544cab3d
LC
38064msgid "Defaults to @samp{\"performance\"}."
38065msgstr ""
38066
38067#. type: deftypevr
32747aa9 38068#: doc/guix.texi:20959
544cab3d
LC
38069#, no-wrap
38070msgid "{@code{tlp-configuration} parameter} string energy-perf-policy-on-bat"
38071msgstr ""
38072
38073#. type: deftypevr
32747aa9 38074#: doc/guix.texi:20961
544cab3d
LC
38075msgid "Same as @code{energy-perf-policy-ac} but on BAT mode."
38076msgstr ""
38077
38078#. type: deftypevr
32747aa9 38079#: doc/guix.texi:20963 doc/guix.texi:21061
544cab3d
LC
38080msgid "Defaults to @samp{\"powersave\"}."
38081msgstr ""
38082
38083#. type: deftypevr
32747aa9 38084#: doc/guix.texi:20966
544cab3d
LC
38085#, no-wrap
38086msgid "{@code{tlp-configuration} parameter} space-separated-string-list disks-devices"
38087msgstr ""
38088
38089#. type: deftypevr
32747aa9 38090#: doc/guix.texi:20968
544cab3d
LC
38091msgid "Hard disk devices."
38092msgstr ""
38093
38094#. type: deftypevr
32747aa9 38095#: doc/guix.texi:20971
544cab3d
LC
38096#, no-wrap
38097msgid "{@code{tlp-configuration} parameter} space-separated-string-list disk-apm-level-on-ac"
38098msgstr ""
38099
38100#. type: deftypevr
32747aa9 38101#: doc/guix.texi:20973
544cab3d
LC
38102msgid "Hard disk advanced power management level."
38103msgstr ""
38104
38105#. type: deftypevr
32747aa9 38106#: doc/guix.texi:20976
544cab3d
LC
38107#, no-wrap
38108msgid "{@code{tlp-configuration} parameter} space-separated-string-list disk-apm-level-on-bat"
38109msgstr ""
38110
38111#. type: deftypevr
32747aa9 38112#: doc/guix.texi:20978
544cab3d
LC
38113msgid "Same as @code{disk-apm-bat} but on BAT mode."
38114msgstr ""
38115
38116#. type: deftypevr
32747aa9 38117#: doc/guix.texi:20981
544cab3d
LC
38118#, no-wrap
38119msgid "{@code{tlp-configuration} parameter} maybe-space-separated-string-list disk-spindown-timeout-on-ac"
38120msgstr ""
38121
38122#. type: deftypevr
32747aa9 38123#: doc/guix.texi:20984
544cab3d
LC
38124msgid "Hard disk spin down timeout. One value has to be specified for each declared hard disk."
38125msgstr ""
38126
38127#. type: deftypevr
32747aa9 38128#: doc/guix.texi:20989
544cab3d
LC
38129#, no-wrap
38130msgid "{@code{tlp-configuration} parameter} maybe-space-separated-string-list disk-spindown-timeout-on-bat"
38131msgstr ""
38132
38133#. type: deftypevr
32747aa9 38134#: doc/guix.texi:20991
544cab3d
LC
38135msgid "Same as @code{disk-spindown-timeout-on-ac} but on BAT mode."
38136msgstr ""
38137
38138#. type: deftypevr
32747aa9 38139#: doc/guix.texi:20996
544cab3d
LC
38140#, no-wrap
38141msgid "{@code{tlp-configuration} parameter} maybe-space-separated-string-list disk-iosched"
38142msgstr ""
38143
38144#. type: deftypevr
32747aa9 38145#: doc/guix.texi:21000
544cab3d
LC
38146msgid "Select IO scheduler for disk devices. One value has to be specified for each declared hard disk. Example alternatives are cfq, deadline and noop."
38147msgstr ""
38148
38149#. type: deftypevr
32747aa9 38150#: doc/guix.texi:21005
544cab3d
LC
38151#, no-wrap
38152msgid "{@code{tlp-configuration} parameter} string sata-linkpwr-on-ac"
38153msgstr ""
38154
38155#. type: deftypevr
32747aa9 38156#: doc/guix.texi:21008
544cab3d
LC
38157msgid "SATA aggressive link power management (ALPM) level. Alternatives are min_power, medium_power, max_performance."
38158msgstr ""
38159
38160#. type: deftypevr
32747aa9 38161#: doc/guix.texi:21010
544cab3d
LC
38162msgid "Defaults to @samp{\"max_performance\"}."
38163msgstr ""
38164
38165#. type: deftypevr
32747aa9 38166#: doc/guix.texi:21013
544cab3d
LC
38167#, no-wrap
38168msgid "{@code{tlp-configuration} parameter} string sata-linkpwr-on-bat"
38169msgstr ""
38170
38171#. type: deftypevr
32747aa9 38172#: doc/guix.texi:21015
544cab3d
LC
38173msgid "Same as @code{sata-linkpwr-ac} but on BAT mode."
38174msgstr ""
38175
38176#. type: deftypevr
32747aa9 38177#: doc/guix.texi:21017
544cab3d
LC
38178msgid "Defaults to @samp{\"min_power\"}."
38179msgstr ""
38180
38181#. type: deftypevr
32747aa9 38182#: doc/guix.texi:21020
544cab3d
LC
38183#, no-wrap
38184msgid "{@code{tlp-configuration} parameter} maybe-string sata-linkpwr-blacklist"
38185msgstr ""
38186
38187#. type: deftypevr
32747aa9 38188#: doc/guix.texi:21022
544cab3d
LC
38189msgid "Exclude specified SATA host devices for link power management."
38190msgstr ""
38191
38192#. type: deftypevr
32747aa9 38193#: doc/guix.texi:21027
544cab3d
LC
38194#, no-wrap
38195msgid "{@code{tlp-configuration} parameter} maybe-on-off-boolean ahci-runtime-pm-on-ac?"
38196msgstr ""
38197
38198#. type: deftypevr
32747aa9 38199#: doc/guix.texi:21030
544cab3d
LC
38200msgid "Enable Runtime Power Management for AHCI controller and disks on AC mode."
38201msgstr ""
38202
38203#. type: deftypevr
32747aa9 38204#: doc/guix.texi:21035
544cab3d
LC
38205#, no-wrap
38206msgid "{@code{tlp-configuration} parameter} maybe-on-off-boolean ahci-runtime-pm-on-bat?"
38207msgstr ""
38208
38209#. type: deftypevr
32747aa9 38210#: doc/guix.texi:21037
544cab3d
LC
38211msgid "Same as @code{ahci-runtime-pm-on-ac} on BAT mode."
38212msgstr ""
38213
38214#. type: deftypevr
32747aa9 38215#: doc/guix.texi:21042
544cab3d
LC
38216#, no-wrap
38217msgid "{@code{tlp-configuration} parameter} non-negative-integer ahci-runtime-pm-timeout"
38218msgstr ""
38219
38220#. type: deftypevr
32747aa9 38221#: doc/guix.texi:21044
544cab3d
LC
38222msgid "Seconds of inactivity before disk is suspended."
38223msgstr ""
38224
38225#. type: deftypevr
32747aa9 38226#: doc/guix.texi:21049
544cab3d
LC
38227#, no-wrap
38228msgid "{@code{tlp-configuration} parameter} string pcie-aspm-on-ac"
38229msgstr ""
38230
38231#. type: deftypevr
32747aa9 38232#: doc/guix.texi:21052
544cab3d
LC
38233msgid "PCI Express Active State Power Management level. Alternatives are default, performance, powersave."
38234msgstr ""
38235
38236#. type: deftypevr
32747aa9 38237#: doc/guix.texi:21057
544cab3d
LC
38238#, no-wrap
38239msgid "{@code{tlp-configuration} parameter} string pcie-aspm-on-bat"
38240msgstr ""
38241
38242#. type: deftypevr
32747aa9 38243#: doc/guix.texi:21059
544cab3d
LC
38244msgid "Same as @code{pcie-aspm-ac} but on BAT mode."
38245msgstr ""
38246
38247#. type: deftypevr
32747aa9 38248#: doc/guix.texi:21064
544cab3d
LC
38249#, no-wrap
38250msgid "{@code{tlp-configuration} parameter} string radeon-power-profile-on-ac"
38251msgstr ""
38252
38253#. type: deftypevr
32747aa9 38254#: doc/guix.texi:21067
544cab3d
LC
38255msgid "Radeon graphics clock speed level. Alternatives are low, mid, high, auto, default."
38256msgstr ""
38257
38258#. type: deftypevr
32747aa9 38259#: doc/guix.texi:21069
544cab3d
LC
38260msgid "Defaults to @samp{\"high\"}."
38261msgstr ""
38262
38263#. type: deftypevr
32747aa9 38264#: doc/guix.texi:21072
544cab3d
LC
38265#, no-wrap
38266msgid "{@code{tlp-configuration} parameter} string radeon-power-profile-on-bat"
38267msgstr ""
38268
38269#. type: deftypevr
32747aa9 38270#: doc/guix.texi:21074
544cab3d
LC
38271msgid "Same as @code{radeon-power-ac} but on BAT mode."
38272msgstr ""
38273
38274#. type: deftypevr
32747aa9 38275#: doc/guix.texi:21076
544cab3d
LC
38276msgid "Defaults to @samp{\"low\"}."
38277msgstr ""
38278
38279#. type: deftypevr
32747aa9 38280#: doc/guix.texi:21079
544cab3d
LC
38281#, no-wrap
38282msgid "{@code{tlp-configuration} parameter} string radeon-dpm-state-on-ac"
38283msgstr ""
38284
38285#. type: deftypevr
32747aa9 38286#: doc/guix.texi:21082
544cab3d
LC
38287msgid "Radeon dynamic power management method (DPM). Alternatives are battery, performance."
38288msgstr ""
38289
38290#. type: deftypevr
32747aa9 38291#: doc/guix.texi:21087
544cab3d
LC
38292#, no-wrap
38293msgid "{@code{tlp-configuration} parameter} string radeon-dpm-state-on-bat"
38294msgstr ""
38295
38296#. type: deftypevr
32747aa9 38297#: doc/guix.texi:21089
544cab3d
LC
38298msgid "Same as @code{radeon-dpm-state-ac} but on BAT mode."
38299msgstr ""
38300
38301#. type: deftypevr
32747aa9 38302#: doc/guix.texi:21091
544cab3d
LC
38303msgid "Defaults to @samp{\"battery\"}."
38304msgstr ""
38305
38306#. type: deftypevr
32747aa9 38307#: doc/guix.texi:21094
544cab3d
LC
38308#, no-wrap
38309msgid "{@code{tlp-configuration} parameter} string radeon-dpm-perf-level-on-ac"
38310msgstr ""
38311
38312#. type: deftypevr
32747aa9 38313#: doc/guix.texi:21096
544cab3d
LC
38314msgid "Radeon DPM performance level. Alternatives are auto, low, high."
38315msgstr ""
38316
38317#. type: deftypevr
32747aa9 38318#: doc/guix.texi:21098 doc/guix.texi:21105 doc/guix.texi:21179
544cab3d
LC
38319msgid "Defaults to @samp{\"auto\"}."
38320msgstr ""
38321
38322#. type: deftypevr
32747aa9 38323#: doc/guix.texi:21101
544cab3d
LC
38324#, no-wrap
38325msgid "{@code{tlp-configuration} parameter} string radeon-dpm-perf-level-on-bat"
38326msgstr ""
38327
38328#. type: deftypevr
32747aa9 38329#: doc/guix.texi:21103
544cab3d
LC
38330msgid "Same as @code{radeon-dpm-perf-ac} but on BAT mode."
38331msgstr ""
38332
38333#. type: deftypevr
32747aa9 38334#: doc/guix.texi:21108
544cab3d
LC
38335#, no-wrap
38336msgid "{@code{tlp-configuration} parameter} on-off-boolean wifi-pwr-on-ac?"
38337msgstr ""
38338
38339#. type: deftypevr
32747aa9 38340#: doc/guix.texi:21110
544cab3d
LC
38341msgid "Wifi power saving mode."
38342msgstr ""
38343
38344#. type: deftypevr
32747aa9 38345#: doc/guix.texi:21115
544cab3d
LC
38346#, no-wrap
38347msgid "{@code{tlp-configuration} parameter} on-off-boolean wifi-pwr-on-bat?"
38348msgstr ""
38349
38350#. type: deftypevr
32747aa9 38351#: doc/guix.texi:21117
544cab3d
LC
38352msgid "Same as @code{wifi-power-ac?} but on BAT mode."
38353msgstr ""
38354
38355#. type: deftypevr
32747aa9 38356#: doc/guix.texi:21122
544cab3d
LC
38357#, no-wrap
38358msgid "{@code{tlp-configuration} parameter} y-n-boolean wol-disable?"
38359msgstr ""
38360
38361#. type: deftypevr
32747aa9 38362#: doc/guix.texi:21124
544cab3d
LC
38363msgid "Disable wake on LAN."
38364msgstr ""
38365
38366#. type: deftypevr
32747aa9 38367#: doc/guix.texi:21129
544cab3d
LC
38368#, no-wrap
38369msgid "{@code{tlp-configuration} parameter} non-negative-integer sound-power-save-on-ac"
38370msgstr ""
38371
38372#. type: deftypevr
32747aa9 38373#: doc/guix.texi:21132
544cab3d
LC
38374msgid "Timeout duration in seconds before activating audio power saving on Intel HDA and AC97 devices. A value of 0 disables power saving."
38375msgstr ""
38376
38377#. type: deftypevr
32747aa9 38378#: doc/guix.texi:21137
544cab3d
LC
38379#, no-wrap
38380msgid "{@code{tlp-configuration} parameter} non-negative-integer sound-power-save-on-bat"
38381msgstr ""
38382
38383#. type: deftypevr
32747aa9 38384#: doc/guix.texi:21139
544cab3d
LC
38385msgid "Same as @code{sound-powersave-ac} but on BAT mode."
38386msgstr ""
38387
38388#. type: deftypevr
32747aa9 38389#: doc/guix.texi:21141 doc/guix.texi:21668 doc/guix.texi:21812
544cab3d
LC
38390msgid "Defaults to @samp{1}."
38391msgstr ""
38392
38393#. type: deftypevr
32747aa9 38394#: doc/guix.texi:21144
544cab3d
LC
38395#, no-wrap
38396msgid "{@code{tlp-configuration} parameter} y-n-boolean sound-power-save-controller?"
38397msgstr ""
38398
38399#. type: deftypevr
32747aa9 38400#: doc/guix.texi:21146
544cab3d
LC
38401msgid "Disable controller in powersaving mode on Intel HDA devices."
38402msgstr ""
38403
38404#. type: deftypevr
32747aa9 38405#: doc/guix.texi:21151
544cab3d
LC
38406#, no-wrap
38407msgid "{@code{tlp-configuration} parameter} boolean bay-poweroff-on-bat?"
38408msgstr ""
38409
38410#. type: deftypevr
32747aa9 38411#: doc/guix.texi:21155
544cab3d
LC
38412msgid "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."
38413msgstr ""
38414
38415#. type: deftypevr
32747aa9 38416#: doc/guix.texi:21160
544cab3d
LC
38417#, no-wrap
38418msgid "{@code{tlp-configuration} parameter} string bay-device"
38419msgstr ""
38420
38421#. type: deftypevr
32747aa9 38422#: doc/guix.texi:21162
544cab3d
LC
38423msgid "Name of the optical drive device to power off."
38424msgstr ""
38425
38426#. type: deftypevr
32747aa9 38427#: doc/guix.texi:21164
544cab3d
LC
38428msgid "Defaults to @samp{\"sr0\"}."
38429msgstr ""
38430
38431#. type: deftypevr
32747aa9 38432#: doc/guix.texi:21167
544cab3d
LC
38433#, no-wrap
38434msgid "{@code{tlp-configuration} parameter} string runtime-pm-on-ac"
38435msgstr ""
38436
38437#. type: deftypevr
32747aa9 38438#: doc/guix.texi:21170
544cab3d
LC
38439msgid "Runtime Power Management for PCI(e) bus devices. Alternatives are on and auto."
38440msgstr ""
38441
38442#. type: deftypevr
32747aa9 38443#: doc/guix.texi:21172
544cab3d
LC
38444msgid "Defaults to @samp{\"on\"}."
38445msgstr ""
38446
38447#. type: deftypevr
32747aa9 38448#: doc/guix.texi:21175
544cab3d
LC
38449#, no-wrap
38450msgid "{@code{tlp-configuration} parameter} string runtime-pm-on-bat"
38451msgstr ""
38452
38453#. type: deftypevr
32747aa9 38454#: doc/guix.texi:21177
544cab3d
LC
38455msgid "Same as @code{runtime-pm-ac} but on BAT mode."
38456msgstr ""
38457
38458#. type: deftypevr
32747aa9 38459#: doc/guix.texi:21182
544cab3d
LC
38460#, no-wrap
38461msgid "{@code{tlp-configuration} parameter} boolean runtime-pm-all?"
38462msgstr ""
38463
38464#. type: deftypevr
32747aa9 38465#: doc/guix.texi:21185
544cab3d
LC
38466msgid "Runtime Power Management for all PCI(e) bus devices, except blacklisted ones."
38467msgstr ""
38468
38469#. type: deftypevr
32747aa9 38470#: doc/guix.texi:21190
544cab3d
LC
38471#, no-wrap
38472msgid "{@code{tlp-configuration} parameter} maybe-space-separated-string-list runtime-pm-blacklist"
38473msgstr ""
38474
38475#. type: deftypevr
32747aa9 38476#: doc/guix.texi:21192
544cab3d
LC
38477msgid "Exclude specified PCI(e) device addresses from Runtime Power Management."
38478msgstr ""
38479
38480#. type: deftypevr
32747aa9 38481#: doc/guix.texi:21197
544cab3d
LC
38482#, no-wrap
38483msgid "{@code{tlp-configuration} parameter} space-separated-string-list runtime-pm-driver-blacklist"
38484msgstr ""
38485
38486#. type: deftypevr
32747aa9 38487#: doc/guix.texi:21200
544cab3d
LC
38488msgid "Exclude PCI(e) devices assigned to the specified drivers from Runtime Power Management."
38489msgstr ""
38490
38491#. type: deftypevr
32747aa9 38492#: doc/guix.texi:21203
544cab3d
LC
38493#, no-wrap
38494msgid "{@code{tlp-configuration} parameter} boolean usb-autosuspend?"
38495msgstr ""
38496
38497#. type: deftypevr
32747aa9 38498#: doc/guix.texi:21205
544cab3d
LC
38499msgid "Enable USB autosuspend feature."
38500msgstr ""
38501
38502#. type: deftypevr
32747aa9 38503#: doc/guix.texi:21210
544cab3d
LC
38504#, no-wrap
38505msgid "{@code{tlp-configuration} parameter} maybe-string usb-blacklist"
38506msgstr ""
38507
38508#. type: deftypevr
32747aa9 38509#: doc/guix.texi:21212
544cab3d
LC
38510msgid "Exclude specified devices from USB autosuspend."
38511msgstr ""
38512
38513#. type: deftypevr
32747aa9 38514#: doc/guix.texi:21217
544cab3d
LC
38515#, no-wrap
38516msgid "{@code{tlp-configuration} parameter} boolean usb-blacklist-wwan?"
38517msgstr ""
38518
38519#. type: deftypevr
32747aa9 38520#: doc/guix.texi:21219
544cab3d
LC
38521msgid "Exclude WWAN devices from USB autosuspend."
38522msgstr ""
38523
38524#. type: deftypevr
32747aa9 38525#: doc/guix.texi:21224
544cab3d
LC
38526#, no-wrap
38527msgid "{@code{tlp-configuration} parameter} maybe-string usb-whitelist"
38528msgstr ""
38529
38530#. type: deftypevr
32747aa9 38531#: doc/guix.texi:21227
544cab3d
LC
38532msgid "Include specified devices into USB autosuspend, even if they are already excluded by the driver or via @code{usb-blacklist-wwan?}."
38533msgstr ""
38534
38535#. type: deftypevr
32747aa9 38536#: doc/guix.texi:21232
544cab3d
LC
38537#, no-wrap
38538msgid "{@code{tlp-configuration} parameter} maybe-boolean usb-autosuspend-disable-on-shutdown?"
38539msgstr ""
38540
38541#. type: deftypevr
32747aa9 38542#: doc/guix.texi:21234
544cab3d
LC
38543msgid "Enable USB autosuspend before shutdown."
38544msgstr ""
38545
38546#. type: deftypevr
32747aa9 38547#: doc/guix.texi:21239
544cab3d
LC
38548#, no-wrap
38549msgid "{@code{tlp-configuration} parameter} boolean restore-device-state-on-startup?"
38550msgstr ""
38551
38552#. type: deftypevr
32747aa9 38553#: doc/guix.texi:21242
544cab3d
LC
38554msgid "Restore radio device state (bluetooth, wifi, wwan) from previous shutdown on system startup."
38555msgstr ""
38556
38557#. type: cindex
32747aa9 38558#: doc/guix.texi:21247
544cab3d
LC
38559#, no-wrap
38560msgid "thermald"
38561msgstr ""
38562
38563#. type: cindex
32747aa9 38564#: doc/guix.texi:21248
544cab3d
LC
38565#, no-wrap
38566msgid "CPU frequency scaling with thermald"
38567msgstr ""
38568
38569#. type: subsubheading
32747aa9 38570#: doc/guix.texi:21249
544cab3d
LC
38571#, no-wrap
38572msgid "Thermald daemon"
38573msgstr ""
38574
38575#. type: Plain text
32747aa9 38576#: doc/guix.texi:21253
544cab3d
LC
38577msgid "The @code{(gnu services pm)} module provides an interface to thermald, a CPU frequency scaling service which helps prevent overheating."
38578msgstr ""
38579
38580#. type: defvr
32747aa9 38581#: doc/guix.texi:21254
544cab3d
LC
38582#, no-wrap
38583msgid "{Scheme Variable} thermald-service-type"
38584msgstr ""
38585
38586#. type: defvr
32747aa9 38587#: doc/guix.texi:21259
544cab3d
LC
38588msgid "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."
38589msgstr ""
38590
38591#. type: deftp
32747aa9 38592#: doc/guix.texi:21261
544cab3d
LC
38593#, no-wrap
38594msgid "{Data Type} thermald-configuration"
38595msgstr ""
38596
38597#. type: deftp
32747aa9 38598#: doc/guix.texi:21263
544cab3d
LC
38599msgid "Data type representing the configuration of @code{thermald-service-type}."
38600msgstr ""
38601
38602#. type: item
32747aa9 38603#: doc/guix.texi:21265
544cab3d
LC
38604#, no-wrap
38605msgid "@code{ignore-cpuid-check?} (default: @code{#f})"
38606msgstr ""
38607
38608#. type: table
32747aa9 38609#: doc/guix.texi:21267
544cab3d
LC
38610msgid "Ignore cpuid check for supported CPU models."
38611msgstr ""
38612
38613#. type: item
32747aa9 38614#: doc/guix.texi:21268
544cab3d
LC
38615#, no-wrap
38616msgid "@code{thermald} (default: @var{thermald})"
38617msgstr ""
38618
38619#. type: table
32747aa9 38620#: doc/guix.texi:21270
544cab3d
LC
38621msgid "Package object of thermald."
38622msgstr ""
38623
38624#. type: Plain text
32747aa9 38625#: doc/guix.texi:21279
544cab3d
LC
38626msgid "The @code{(gnu services audio)} module provides a service to start MPD (the Music Player Daemon)."
38627msgstr ""
38628
38629#. type: cindex
32747aa9 38630#: doc/guix.texi:21280
544cab3d
LC
38631#, no-wrap
38632msgid "mpd"
38633msgstr ""
38634
38635#. type: subsubheading
32747aa9 38636#: doc/guix.texi:21281
544cab3d
LC
38637#, no-wrap
38638msgid "Music Player Daemon"
38639msgstr ""
38640
38641#. type: Plain text
32747aa9 38642#: doc/guix.texi:21286
544cab3d
LC
38643msgid "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."
38644msgstr ""
38645
38646#. type: Plain text
32747aa9 38647#: doc/guix.texi:21289
544cab3d
LC
38648msgid "The following example shows how one might run @code{mpd} as user @code{\"bob\"} on port @code{6666}. It uses pulseaudio for output."
38649msgstr ""
38650
38651#. type: example
32747aa9 38652#: doc/guix.texi:21295
544cab3d
LC
38653#, no-wrap
38654msgid ""
38655"(service mpd-service-type\n"
38656" (mpd-configuration\n"
38657" (user \"bob\")\n"
38658" (port \"6666\")))\n"
38659msgstr ""
38660
38661#. type: defvr
32747aa9 38662#: doc/guix.texi:21297
544cab3d
LC
38663#, no-wrap
38664msgid "{Scheme Variable} mpd-service-type"
38665msgstr ""
38666
38667#. type: defvr
32747aa9 38668#: doc/guix.texi:21299
544cab3d
LC
38669msgid "The service type for @command{mpd}"
38670msgstr ""
38671
38672#. type: deftp
32747aa9 38673#: doc/guix.texi:21301
544cab3d
LC
38674#, no-wrap
38675msgid "{Data Type} mpd-configuration"
38676msgstr ""
38677
38678#. type: deftp
32747aa9 38679#: doc/guix.texi:21303
544cab3d
LC
38680msgid "Data type representing the configuration of @command{mpd}."
38681msgstr ""
38682
38683#. type: item
32747aa9 38684#: doc/guix.texi:21305
544cab3d
LC
38685#, no-wrap
38686msgid "@code{user} (default: @code{\"mpd\"})"
38687msgstr ""
38688
38689#. type: table
32747aa9 38690#: doc/guix.texi:21307
544cab3d
LC
38691msgid "The user to run mpd as."
38692msgstr ""
38693
38694#. type: item
32747aa9 38695#: doc/guix.texi:21308
544cab3d
LC
38696#, no-wrap
38697msgid "@code{music-dir} (default: @code{\"~/Music\"})"
38698msgstr ""
38699
38700#. type: table
32747aa9 38701#: doc/guix.texi:21310
544cab3d
LC
38702msgid "The directory to scan for music files."
38703msgstr ""
38704
38705#. type: item
32747aa9 38706#: doc/guix.texi:21311
544cab3d
LC
38707#, no-wrap
38708msgid "@code{playlist-dir} (default: @code{\"~/.mpd/playlists\"})"
38709msgstr ""
38710
38711#. type: table
32747aa9 38712#: doc/guix.texi:21313
544cab3d
LC
38713msgid "The directory to store playlists."
38714msgstr ""
38715
38716#. type: item
32747aa9 38717#: doc/guix.texi:21314
544cab3d
LC
38718#, no-wrap
38719msgid "@code{db-file} (default: @code{\"~/.mpd/tag_cache\"})"
38720msgstr ""
38721
38722#. type: table
32747aa9 38723#: doc/guix.texi:21316
544cab3d
LC
38724msgid "The location of the music database."
38725msgstr ""
38726
38727#. type: item
32747aa9 38728#: doc/guix.texi:21317
544cab3d
LC
38729#, no-wrap
38730msgid "@code{state-file} (default: @code{\"~/.mpd/state\"})"
38731msgstr ""
38732
38733#. type: table
32747aa9 38734#: doc/guix.texi:21319
544cab3d
LC
38735msgid "The location of the file that stores current MPD's state."
38736msgstr ""
38737
38738#. type: item
32747aa9 38739#: doc/guix.texi:21320
544cab3d
LC
38740#, no-wrap
38741msgid "@code{sticker-file} (default: @code{\"~/.mpd/sticker.sql\"})"
38742msgstr ""
38743
38744#. type: table
32747aa9 38745#: doc/guix.texi:21322
544cab3d
LC
38746msgid "The location of the sticker database."
38747msgstr ""
38748
38749#. type: item
32747aa9 38750#: doc/guix.texi:21323
544cab3d
LC
38751#, no-wrap
38752msgid "@code{port} (default: @code{\"6600\"})"
38753msgstr ""
38754
38755#. type: table
32747aa9 38756#: doc/guix.texi:21325
544cab3d
LC
38757msgid "The port to run mpd on."
38758msgstr ""
38759
38760#. type: item
32747aa9 38761#: doc/guix.texi:21326
544cab3d
LC
38762#, no-wrap
38763msgid "@code{address} (default: @code{\"any\"})"
38764msgstr ""
38765
38766#. type: table
32747aa9 38767#: doc/guix.texi:21329
544cab3d
LC
38768msgid "The address that mpd will bind to. To use a Unix domain socket, an absolute path can be specified here."
38769msgstr ""
38770
38771#. type: subsection
32747aa9 38772#: doc/guix.texi:21334
544cab3d
LC
38773#, no-wrap
38774msgid "Virtualization services"
38775msgstr ""
38776
38777#. type: Plain text
32747aa9 38778#: doc/guix.texi:21339
544cab3d
LC
38779msgid "The @code{(gnu services virtualization)} module provides services for the libvirt and virtlog daemons, as well as other virtualization-related services."
38780msgstr ""
38781
38782#. type: subsubheading
32747aa9 38783#: doc/guix.texi:21340
544cab3d
LC
38784#, no-wrap
38785msgid "Libvirt daemon"
38786msgstr ""
38787
38788#. type: Plain text
32747aa9 38789#: doc/guix.texi:21344
544cab3d
LC
38790msgid "@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."
38791msgstr ""
38792
38793#. type: deffn
32747aa9 38794#: doc/guix.texi:21345
544cab3d
LC
38795#, no-wrap
38796msgid "{Scheme Variable} libvirt-service-type"
38797msgstr ""
38798
38799#. type: deffn
32747aa9 38800#: doc/guix.texi:21348
544cab3d
LC
38801msgid "This is the type of the @uref{https://libvirt.org, libvirt daemon}. Its value must be a @code{libvirt-configuration}."
38802msgstr ""
38803
38804#. type: example
32747aa9 38805#: doc/guix.texi:21354
544cab3d
LC
38806#, no-wrap
38807msgid ""
38808"(service libvirt-service-type\n"
38809" (libvirt-configuration\n"
38810" (unix-sock-group \"libvirt\")\n"
38811" (tls-port \"16555\")))\n"
38812msgstr ""
38813
38814#. type: Plain text
32747aa9 38815#: doc/guix.texi:21359
544cab3d
LC
38816msgid "Available @code{libvirt-configuration} fields are:"
38817msgstr ""
38818
38819#. type: deftypevr
32747aa9 38820#: doc/guix.texi:21360
544cab3d
LC
38821#, no-wrap
38822msgid "{@code{libvirt-configuration} parameter} package libvirt"
38823msgstr ""
38824
38825#. type: deftypevr
32747aa9 38826#: doc/guix.texi:21362
544cab3d
LC
38827msgid "Libvirt package."
38828msgstr ""
38829
38830#. type: deftypevr
32747aa9 38831#: doc/guix.texi:21365
544cab3d
LC
38832#, no-wrap
38833msgid "{@code{libvirt-configuration} parameter} boolean listen-tls?"
38834msgstr ""
38835
38836#. type: deftypevr
32747aa9 38837#: doc/guix.texi:21368
544cab3d
LC
38838msgid "Flag listening for secure TLS connections on the public TCP/IP port. must set @code{listen} for this to have any effect."
38839msgstr ""
38840
38841#. type: deftypevr
32747aa9 38842#: doc/guix.texi:21371
544cab3d
LC
38843msgid "It is necessary to setup a CA and issue server certificates before using this capability."
38844msgstr ""
38845
38846#. type: deftypevr
32747aa9 38847#: doc/guix.texi:21376
544cab3d
LC
38848#, no-wrap
38849msgid "{@code{libvirt-configuration} parameter} boolean listen-tcp?"
38850msgstr ""
38851
38852#. type: deftypevr
32747aa9 38853#: doc/guix.texi:21379
544cab3d
LC
38854msgid "Listen for unencrypted TCP connections on the public TCP/IP port. must set @code{listen} for this to have any effect."
38855msgstr ""
38856
38857#. type: deftypevr
32747aa9 38858#: doc/guix.texi:21383
544cab3d
LC
38859msgid "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)"
38860msgstr ""
38861
38862#. type: deftypevr
32747aa9 38863#: doc/guix.texi:21388
544cab3d
LC
38864#, no-wrap
38865msgid "{@code{libvirt-configuration} parameter} string tls-port"
38866msgstr ""
38867
38868#. type: deftypevr
32747aa9 38869#: doc/guix.texi:21391
544cab3d
LC
38870msgid "Port for accepting secure TLS connections This can be a port number, or service name"
38871msgstr ""
38872
38873#. type: deftypevr
32747aa9 38874#: doc/guix.texi:21393
544cab3d
LC
38875msgid "Defaults to @samp{\"16514\"}."
38876msgstr ""
38877
38878#. type: deftypevr
32747aa9 38879#: doc/guix.texi:21396
544cab3d
LC
38880#, no-wrap
38881msgid "{@code{libvirt-configuration} parameter} string tcp-port"
38882msgstr ""
38883
38884#. type: deftypevr
32747aa9 38885#: doc/guix.texi:21399
544cab3d
LC
38886msgid "Port for accepting insecure TCP connections This can be a port number, or service name"
38887msgstr ""
38888
38889#. type: deftypevr
32747aa9 38890#: doc/guix.texi:21401
544cab3d
LC
38891msgid "Defaults to @samp{\"16509\"}."
38892msgstr ""
38893
38894#. type: deftypevr
32747aa9 38895#: doc/guix.texi:21404
544cab3d
LC
38896#, no-wrap
38897msgid "{@code{libvirt-configuration} parameter} string listen-addr"
38898msgstr ""
38899
38900#. type: deftypevr
32747aa9 38901#: doc/guix.texi:21406
544cab3d
LC
38902msgid "IP address or hostname used for client connections."
38903msgstr ""
38904
38905#. type: deftypevr
32747aa9 38906#: doc/guix.texi:21408
544cab3d
LC
38907msgid "Defaults to @samp{\"0.0.0.0\"}."
38908msgstr ""
38909
38910#. type: deftypevr
32747aa9 38911#: doc/guix.texi:21411
544cab3d
LC
38912#, no-wrap
38913msgid "{@code{libvirt-configuration} parameter} boolean mdns-adv?"
38914msgstr ""
38915
38916#. type: deftypevr
32747aa9 38917#: doc/guix.texi:21413
544cab3d
LC
38918msgid "Flag toggling mDNS advertisement of the libvirt service."
38919msgstr ""
38920
38921#. type: deftypevr
32747aa9 38922#: doc/guix.texi:21416
544cab3d
LC
38923msgid "Alternatively can disable for all services on a host by stopping the Avahi daemon."
38924msgstr ""
38925
38926#. type: deftypevr
32747aa9 38927#: doc/guix.texi:21421
544cab3d
LC
38928#, no-wrap
38929msgid "{@code{libvirt-configuration} parameter} string mdns-name"
38930msgstr ""
38931
38932#. type: deftypevr
32747aa9 38933#: doc/guix.texi:21424
544cab3d
LC
38934msgid "Default mDNS advertisement name. This must be unique on the immediate broadcast network."
38935msgstr ""
38936
38937#. type: deftypevr
32747aa9 38938#: doc/guix.texi:21426
544cab3d
LC
38939msgid "Defaults to @samp{\"Virtualization Host <hostname>\"}."
38940msgstr ""
38941
38942#. type: deftypevr
32747aa9 38943#: doc/guix.texi:21429
544cab3d
LC
38944#, no-wrap
38945msgid "{@code{libvirt-configuration} parameter} string unix-sock-group"
38946msgstr ""
38947
38948#. type: deftypevr
32747aa9 38949#: doc/guix.texi:21433
544cab3d
LC
38950msgid "UNIX domain socket group ownership. This can be used to allow a 'trusted' set of users access to management capabilities without becoming root."
38951msgstr ""
38952
38953#. type: deftypevr
32747aa9 38954#: doc/guix.texi:21438
544cab3d
LC
38955#, no-wrap
38956msgid "{@code{libvirt-configuration} parameter} string unix-sock-ro-perms"
38957msgstr ""
38958
38959#. type: deftypevr
32747aa9 38960#: doc/guix.texi:21441
544cab3d
LC
38961msgid "UNIX socket permissions for the R/O socket. This is used for monitoring VM status only."
38962msgstr ""
38963
38964#. type: deftypevr
32747aa9 38965#: doc/guix.texi:21443 doc/guix.texi:21461
544cab3d
LC
38966msgid "Defaults to @samp{\"0777\"}."
38967msgstr ""
38968
38969#. type: deftypevr
32747aa9 38970#: doc/guix.texi:21446
544cab3d
LC
38971#, no-wrap
38972msgid "{@code{libvirt-configuration} parameter} string unix-sock-rw-perms"
38973msgstr ""
38974
38975#. type: deftypevr
32747aa9 38976#: doc/guix.texi:21450
544cab3d
LC
38977msgid "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)"
38978msgstr ""
38979
38980#. type: deftypevr
32747aa9 38981#: doc/guix.texi:21452
544cab3d
LC
38982msgid "Defaults to @samp{\"0770\"}."
38983msgstr ""
38984
38985#. type: deftypevr
32747aa9 38986#: doc/guix.texi:21455
544cab3d
LC
38987#, no-wrap
38988msgid "{@code{libvirt-configuration} parameter} string unix-sock-admin-perms"
38989msgstr ""
38990
38991#. type: deftypevr
32747aa9 38992#: doc/guix.texi:21459
544cab3d
LC
38993msgid "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."
38994msgstr ""
38995
38996#. type: deftypevr
32747aa9 38997#: doc/guix.texi:21464
544cab3d
LC
38998#, no-wrap
38999msgid "{@code{libvirt-configuration} parameter} string unix-sock-dir"
39000msgstr ""
39001
39002#. type: deftypevr
32747aa9 39003#: doc/guix.texi:21466
544cab3d
LC
39004msgid "The directory in which sockets will be found/created."
39005msgstr ""
39006
39007#. type: deftypevr
32747aa9 39008#: doc/guix.texi:21468
544cab3d
LC
39009msgid "Defaults to @samp{\"/var/run/libvirt\"}."
39010msgstr ""
39011
39012#. type: deftypevr
32747aa9 39013#: doc/guix.texi:21471
544cab3d
LC
39014#, no-wrap
39015msgid "{@code{libvirt-configuration} parameter} string auth-unix-ro"
39016msgstr ""
39017
39018#. type: deftypevr
32747aa9 39019#: doc/guix.texi:21474
544cab3d
LC
39020msgid "Authentication scheme for UNIX read-only sockets. By default socket permissions allow anyone to connect"
39021msgstr ""
39022
39023#. type: deftypevr
32747aa9 39024#: doc/guix.texi:21476 doc/guix.texi:21485
544cab3d
LC
39025msgid "Defaults to @samp{\"polkit\"}."
39026msgstr ""
39027
39028#. type: deftypevr
32747aa9 39029#: doc/guix.texi:21479
544cab3d
LC
39030#, no-wrap
39031msgid "{@code{libvirt-configuration} parameter} string auth-unix-rw"
39032msgstr ""
39033
39034#. type: deftypevr
32747aa9 39035#: doc/guix.texi:21483
544cab3d
LC
39036msgid "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."
39037msgstr ""
39038
39039#. type: deftypevr
32747aa9 39040#: doc/guix.texi:21488
544cab3d
LC
39041#, no-wrap
39042msgid "{@code{libvirt-configuration} parameter} string auth-tcp"
39043msgstr ""
39044
39045#. type: deftypevr
32747aa9 39046#: doc/guix.texi:21492
544cab3d
LC
39047msgid "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."
39048msgstr ""
39049
39050#. type: deftypevr
32747aa9 39051#: doc/guix.texi:21494
544cab3d
LC
39052msgid "Defaults to @samp{\"sasl\"}."
39053msgstr ""
39054
39055#. type: deftypevr
32747aa9 39056#: doc/guix.texi:21497
544cab3d
LC
39057#, no-wrap
39058msgid "{@code{libvirt-configuration} parameter} string auth-tls"
39059msgstr ""
39060
39061#. type: deftypevr
32747aa9 39062#: doc/guix.texi:21501
544cab3d
LC
39063msgid "Authentication scheme for TLS sockets. TLS sockets already have encryption provided by the TLS layer, and limited authentication is done by certificates."
39064msgstr ""
39065
39066#. type: deftypevr
32747aa9 39067#: doc/guix.texi:21504
544cab3d
LC
39068msgid "It is possible to make use of any SASL authentication mechanism as well, by using 'sasl' for this option"
39069msgstr ""
39070
39071#. type: deftypevr
32747aa9 39072#: doc/guix.texi:21506
544cab3d
LC
39073msgid "Defaults to @samp{\"none\"}."
39074msgstr ""
39075
39076#. type: deftypevr
32747aa9 39077#: doc/guix.texi:21509
544cab3d
LC
39078#, no-wrap
39079msgid "{@code{libvirt-configuration} parameter} optional-list access-drivers"
39080msgstr ""
39081
39082#. type: deftypevr
32747aa9 39083#: doc/guix.texi:21511
544cab3d
LC
39084msgid "API access control scheme."
39085msgstr ""
39086
39087#. type: deftypevr
32747aa9 39088#: doc/guix.texi:21514
544cab3d
LC
39089msgid "By default an authenticated user is allowed access to all APIs. Access drivers can place restrictions on this."
39090msgstr ""
39091
39092#. type: deftypevr
32747aa9 39093#: doc/guix.texi:21519
544cab3d
LC
39094#, no-wrap
39095msgid "{@code{libvirt-configuration} parameter} string key-file"
39096msgstr ""
39097
39098#. type: deftypevr
32747aa9 39099#: doc/guix.texi:21522
544cab3d
LC
39100msgid "Server key file path. If set to an empty string, then no private key is loaded."
39101msgstr ""
39102
39103#. type: deftypevr
32747aa9 39104#: doc/guix.texi:21527
544cab3d
LC
39105#, no-wrap
39106msgid "{@code{libvirt-configuration} parameter} string cert-file"
39107msgstr ""
39108
39109#. type: deftypevr
32747aa9 39110#: doc/guix.texi:21530
544cab3d
LC
39111msgid "Server key file path. If set to an empty string, then no certificate is loaded."
39112msgstr ""
39113
39114#. type: deftypevr
32747aa9 39115#: doc/guix.texi:21535
544cab3d
LC
39116#, no-wrap
39117msgid "{@code{libvirt-configuration} parameter} string ca-file"
39118msgstr ""
39119
39120#. type: deftypevr
32747aa9 39121#: doc/guix.texi:21538
544cab3d
LC
39122msgid "Server key file path. If set to an empty string, then no CA certificate is loaded."
39123msgstr ""
39124
39125#. type: deftypevr
32747aa9 39126#: doc/guix.texi:21543
544cab3d
LC
39127#, no-wrap
39128msgid "{@code{libvirt-configuration} parameter} string crl-file"
39129msgstr ""
39130
39131#. type: deftypevr
32747aa9 39132#: doc/guix.texi:21546
544cab3d
LC
39133msgid "Certificate revocation list path. If set to an empty string, then no CRL is loaded."
39134msgstr ""
39135
39136#. type: deftypevr
32747aa9 39137#: doc/guix.texi:21551
544cab3d
LC
39138#, no-wrap
39139msgid "{@code{libvirt-configuration} parameter} boolean tls-no-sanity-cert"
39140msgstr ""
39141
39142#. type: deftypevr
32747aa9 39143#: doc/guix.texi:21553
544cab3d
LC
39144msgid "Disable verification of our own server certificates."
39145msgstr ""
39146
39147#. type: deftypevr
32747aa9 39148#: doc/guix.texi:21556
544cab3d
LC
39149msgid "When libvirtd starts it performs some sanity checks against its own certificates."
39150msgstr ""
39151
39152#. type: deftypevr
32747aa9 39153#: doc/guix.texi:21561
544cab3d
LC
39154#, no-wrap
39155msgid "{@code{libvirt-configuration} parameter} boolean tls-no-verify-cert"
39156msgstr ""
39157
39158#. type: deftypevr
32747aa9 39159#: doc/guix.texi:21563
544cab3d
LC
39160msgid "Disable verification of client certificates."
39161msgstr ""
39162
39163#. type: deftypevr
32747aa9 39164#: doc/guix.texi:21567
544cab3d
LC
39165msgid "Client certificate verification is the primary authentication mechanism. Any client which does not present a certificate signed by the CA will be rejected."
39166msgstr ""
39167
39168#. type: deftypevr
32747aa9 39169#: doc/guix.texi:21572
544cab3d
LC
39170#, no-wrap
39171msgid "{@code{libvirt-configuration} parameter} optional-list tls-allowed-dn-list"
39172msgstr ""
39173
39174#. type: deftypevr
32747aa9 39175#: doc/guix.texi:21574
544cab3d
LC
39176msgid "Whitelist of allowed x509 Distinguished Name."
39177msgstr ""
39178
39179#. type: deftypevr
32747aa9 39180#: doc/guix.texi:21579
544cab3d
LC
39181#, no-wrap
39182msgid "{@code{libvirt-configuration} parameter} optional-list sasl-allowed-usernames"
39183msgstr ""
39184
39185#. type: deftypevr
32747aa9 39186#: doc/guix.texi:21582
544cab3d
LC
39187msgid "Whitelist of allowed SASL usernames. The format for username depends on the SASL authentication mechanism."
39188msgstr ""
39189
39190#. type: deftypevr
32747aa9 39191#: doc/guix.texi:21587
544cab3d
LC
39192#, no-wrap
39193msgid "{@code{libvirt-configuration} parameter} string tls-priority"
39194msgstr ""
39195
39196#. type: deftypevr
32747aa9 39197#: doc/guix.texi:21591
544cab3d
LC
39198msgid "Override the compile time default TLS priority string. The default is usually \"NORMAL\" unless overridden at build time. Only set this is it is desired for libvirt to deviate from the global default settings."
39199msgstr ""
39200
39201#. type: deftypevr
32747aa9 39202#: doc/guix.texi:21593
544cab3d
LC
39203msgid "Defaults to @samp{\"NORMAL\"}."
39204msgstr ""
39205
39206#. type: deftypevr
32747aa9 39207#: doc/guix.texi:21596
544cab3d
LC
39208#, no-wrap
39209msgid "{@code{libvirt-configuration} parameter} integer max-clients"
39210msgstr ""
39211
39212#. type: deftypevr
32747aa9 39213#: doc/guix.texi:21599 doc/guix.texi:22022
544cab3d
LC
39214msgid "Maximum number of concurrent client connections to allow over all sockets combined."
39215msgstr ""
39216
39217#. type: deftypevr
32747aa9 39218#: doc/guix.texi:21601
544cab3d
LC
39219msgid "Defaults to @samp{5000}."
39220msgstr ""
39221
39222#. type: deftypevr
32747aa9 39223#: doc/guix.texi:21604
544cab3d
LC
39224#, no-wrap
39225msgid "{@code{libvirt-configuration} parameter} integer max-queued-clients"
39226msgstr ""
39227
39228#. type: deftypevr
32747aa9 39229#: doc/guix.texi:21608
544cab3d
LC
39230msgid "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."
39231msgstr ""
39232
39233#. type: deftypevr
32747aa9 39234#: doc/guix.texi:21613
544cab3d
LC
39235#, no-wrap
39236msgid "{@code{libvirt-configuration} parameter} integer max-anonymous-clients"
39237msgstr ""
39238
39239#. type: deftypevr
32747aa9 39240#: doc/guix.texi:21616
544cab3d
LC
39241msgid "Maximum length of queue of accepted but not yet authenticated clients. Set this to zero to turn this feature off"
39242msgstr ""
39243
39244#. type: deftypevr
32747aa9 39245#: doc/guix.texi:21618 doc/guix.texi:21636 doc/guix.texi:21652
544cab3d
LC
39246msgid "Defaults to @samp{20}."
39247msgstr ""
39248
39249#. type: deftypevr
32747aa9 39250#: doc/guix.texi:21621
544cab3d
LC
39251#, no-wrap
39252msgid "{@code{libvirt-configuration} parameter} integer min-workers"
39253msgstr ""
39254
39255#. type: deftypevr
32747aa9 39256#: doc/guix.texi:21623
544cab3d
LC
39257msgid "Number of workers to start up initially."
39258msgstr ""
39259
39260#. type: deftypevr
32747aa9 39261#: doc/guix.texi:21628
544cab3d
LC
39262#, no-wrap
39263msgid "{@code{libvirt-configuration} parameter} integer max-workers"
39264msgstr ""
39265
39266#. type: deftypevr
32747aa9 39267#: doc/guix.texi:21630
544cab3d
LC
39268msgid "Maximum number of worker threads."
39269msgstr ""
39270
39271#. type: deftypevr
32747aa9 39272#: doc/guix.texi:21634
544cab3d
LC
39273msgid "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."
39274msgstr ""
39275
39276#. type: deftypevr
32747aa9 39277#: doc/guix.texi:21639
544cab3d
LC
39278#, no-wrap
39279msgid "{@code{libvirt-configuration} parameter} integer prio-workers"
39280msgstr ""
39281
39282#. type: deftypevr
32747aa9 39283#: doc/guix.texi:21643
544cab3d
LC
39284msgid "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."
39285msgstr ""
39286
39287#. type: deftypevr
32747aa9 39288#: doc/guix.texi:21648
544cab3d
LC
39289#, no-wrap
39290msgid "{@code{libvirt-configuration} parameter} integer max-requests"
39291msgstr ""
39292
39293#. type: deftypevr
32747aa9 39294#: doc/guix.texi:21650
544cab3d
LC
39295msgid "Total global limit on concurrent RPC calls."
39296msgstr ""
39297
39298#. type: deftypevr
32747aa9 39299#: doc/guix.texi:21655
544cab3d
LC
39300#, no-wrap
39301msgid "{@code{libvirt-configuration} parameter} integer max-client-requests"
39302msgstr ""
39303
39304#. type: deftypevr
32747aa9 39305#: doc/guix.texi:21659
544cab3d
LC
39306msgid "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."
39307msgstr ""
39308
39309#. type: deftypevr
32747aa9 39310#: doc/guix.texi:21664
544cab3d
LC
39311#, no-wrap
39312msgid "{@code{libvirt-configuration} parameter} integer admin-min-workers"
39313msgstr ""
39314
39315#. type: deftypevr
32747aa9 39316#: doc/guix.texi:21666
544cab3d
LC
39317msgid "Same as @code{min-workers} but for the admin interface."
39318msgstr ""
39319
39320#. type: deftypevr
32747aa9 39321#: doc/guix.texi:21671
544cab3d
LC
39322#, no-wrap
39323msgid "{@code{libvirt-configuration} parameter} integer admin-max-workers"
39324msgstr ""
39325
39326#. type: deftypevr
32747aa9 39327#: doc/guix.texi:21673
544cab3d
LC
39328msgid "Same as @code{max-workers} but for the admin interface."
39329msgstr ""
39330
39331#. type: deftypevr
32747aa9 39332#: doc/guix.texi:21678
544cab3d
LC
39333#, no-wrap
39334msgid "{@code{libvirt-configuration} parameter} integer admin-max-clients"
39335msgstr ""
39336
39337#. type: deftypevr
32747aa9 39338#: doc/guix.texi:21680
544cab3d
LC
39339msgid "Same as @code{max-clients} but for the admin interface."
39340msgstr ""
39341
39342#. type: deftypevr
32747aa9 39343#: doc/guix.texi:21685
544cab3d
LC
39344#, no-wrap
39345msgid "{@code{libvirt-configuration} parameter} integer admin-max-queued-clients"
39346msgstr ""
39347
39348#. type: deftypevr
32747aa9 39349#: doc/guix.texi:21687
544cab3d
LC
39350msgid "Same as @code{max-queued-clients} but for the admin interface."
39351msgstr ""
39352
39353#. type: deftypevr
32747aa9 39354#: doc/guix.texi:21692
544cab3d
LC
39355#, no-wrap
39356msgid "{@code{libvirt-configuration} parameter} integer admin-max-client-requests"
39357msgstr ""
39358
39359#. type: deftypevr
32747aa9 39360#: doc/guix.texi:21694
544cab3d
LC
39361msgid "Same as @code{max-client-requests} but for the admin interface."
39362msgstr ""
39363
39364#. type: deftypevr
32747aa9 39365#: doc/guix.texi:21699
544cab3d
LC
39366#, no-wrap
39367msgid "{@code{libvirt-configuration} parameter} integer log-level"
39368msgstr ""
39369
39370#. type: deftypevr
32747aa9 39371#: doc/guix.texi:21701 doc/guix.texi:21924
544cab3d
LC
39372msgid "Logging level. 4 errors, 3 warnings, 2 information, 1 debug."
39373msgstr ""
39374
39375#. type: deftypevr
32747aa9 39376#: doc/guix.texi:21706
544cab3d
LC
39377#, no-wrap
39378msgid "{@code{libvirt-configuration} parameter} string log-filters"
39379msgstr ""
39380
39381#. type: deftypevr
32747aa9 39382#: doc/guix.texi:21708 doc/guix.texi:21931
544cab3d
LC
39383msgid "Logging filters."
39384msgstr ""
39385
39386#. type: deftypevr
32747aa9 39387#: doc/guix.texi:21711 doc/guix.texi:21934
544cab3d
LC
39388msgid "A filter allows to select a different logging level for a given category of logs The format for a filter is one of:"
39389msgstr ""
39390
39391#. type: itemize
32747aa9 39392#: doc/guix.texi:21715 doc/guix.texi:21938
544cab3d
LC
39393msgid "x:name"
39394msgstr ""
39395
39396#. type: itemize
32747aa9 39397#: doc/guix.texi:21718 doc/guix.texi:21941
544cab3d
LC
39398msgid "x:+name"
39399msgstr ""
39400
39401#. type: deftypevr
32747aa9 39402#: doc/guix.texi:21728 doc/guix.texi:21951
544cab3d
LC
39403msgid "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:"
39404msgstr ""
39405
39406#. type: itemize
32747aa9
LC
39407#: doc/guix.texi:21732 doc/guix.texi:21777 doc/guix.texi:21955
39408#: doc/guix.texi:22000
544cab3d
LC
39409msgid "1: DEBUG"
39410msgstr ""
39411
39412#. type: itemize
32747aa9
LC
39413#: doc/guix.texi:21735 doc/guix.texi:21780 doc/guix.texi:21958
39414#: doc/guix.texi:22003
544cab3d
LC
39415msgid "2: INFO"
39416msgstr ""
39417
39418#. type: itemize
32747aa9
LC
39419#: doc/guix.texi:21738 doc/guix.texi:21783 doc/guix.texi:21961
39420#: doc/guix.texi:22006
544cab3d
LC
39421msgid "3: WARNING"
39422msgstr ""
39423
39424#. type: itemize
32747aa9
LC
39425#: doc/guix.texi:21741 doc/guix.texi:21786 doc/guix.texi:21964
39426#: doc/guix.texi:22009
544cab3d
LC
39427msgid "4: ERROR"
39428msgstr ""
39429
39430#. type: deftypevr
32747aa9 39431#: doc/guix.texi:21746 doc/guix.texi:21969
544cab3d
LC
39432msgid "Multiple filters can be defined in a single filters statement, they just need to be separated by spaces."
39433msgstr ""
39434
39435#. type: deftypevr
32747aa9 39436#: doc/guix.texi:21748 doc/guix.texi:21971
544cab3d
LC
39437msgid "Defaults to @samp{\"3:remote 4:event\"}."
39438msgstr ""
39439
39440#. type: deftypevr
32747aa9 39441#: doc/guix.texi:21751
544cab3d
LC
39442#, no-wrap
39443msgid "{@code{libvirt-configuration} parameter} string log-outputs"
39444msgstr ""
39445
39446#. type: deftypevr
32747aa9 39447#: doc/guix.texi:21753 doc/guix.texi:21976
544cab3d
LC
39448msgid "Logging outputs."
39449msgstr ""
39450
39451#. type: deftypevr
32747aa9
LC
39452#: doc/guix.texi:21756
39453msgid "An output is one of the places to save logging information. The format for an output can be:"
544cab3d
LC
39454msgstr ""
39455
39456#. type: item
32747aa9 39457#: doc/guix.texi:21758 doc/guix.texi:21981
544cab3d
LC
39458#, no-wrap
39459msgid "x:stderr"
39460msgstr ""
39461
39462#. type: table
32747aa9 39463#: doc/guix.texi:21760 doc/guix.texi:21983
544cab3d
LC
39464msgid "output goes to stderr"
39465msgstr ""
39466
39467#. type: item
32747aa9 39468#: doc/guix.texi:21761 doc/guix.texi:21984
544cab3d
LC
39469#, no-wrap
39470msgid "x:syslog:name"
39471msgstr ""
39472
39473#. type: table
32747aa9 39474#: doc/guix.texi:21763 doc/guix.texi:21986
544cab3d
LC
39475msgid "use syslog for the output and use the given name as the ident"
39476msgstr ""
39477
39478#. type: item
32747aa9 39479#: doc/guix.texi:21764 doc/guix.texi:21987
544cab3d
LC
39480#, no-wrap
39481msgid "x:file:file_path"
39482msgstr ""
39483
39484#. type: table
32747aa9 39485#: doc/guix.texi:21766 doc/guix.texi:21989
544cab3d
LC
39486msgid "output to a file, with the given filepath"
39487msgstr ""
39488
39489#. type: item
32747aa9 39490#: doc/guix.texi:21767 doc/guix.texi:21990
544cab3d
LC
39491#, no-wrap
39492msgid "x:journald"
39493msgstr ""
39494
39495#. type: table
32747aa9 39496#: doc/guix.texi:21769 doc/guix.texi:21992
544cab3d
LC
39497msgid "output to journald logging system"
39498msgstr ""
39499
39500#. type: deftypevr
32747aa9 39501#: doc/guix.texi:21773 doc/guix.texi:21996
544cab3d
LC
39502msgid "In all case the x prefix is the minimal level, acting as a filter"
39503msgstr ""
39504
39505#. type: deftypevr
32747aa9 39506#: doc/guix.texi:21791 doc/guix.texi:22014
544cab3d
LC
39507msgid "Multiple outputs can be defined, they just need to be separated by spaces."
39508msgstr ""
39509
39510#. type: deftypevr
32747aa9 39511#: doc/guix.texi:21793 doc/guix.texi:22016
544cab3d
LC
39512msgid "Defaults to @samp{\"3:stderr\"}."
39513msgstr ""
39514
39515#. type: deftypevr
32747aa9 39516#: doc/guix.texi:21796
544cab3d
LC
39517#, no-wrap
39518msgid "{@code{libvirt-configuration} parameter} integer audit-level"
39519msgstr ""
39520
39521#. type: deftypevr
32747aa9 39522#: doc/guix.texi:21798
544cab3d
LC
39523msgid "Allows usage of the auditing subsystem to be altered"
39524msgstr ""
39525
39526#. type: itemize
32747aa9 39527#: doc/guix.texi:21802
544cab3d
LC
39528msgid "0: disable all auditing"
39529msgstr ""
39530
39531#. type: itemize
32747aa9 39532#: doc/guix.texi:21805
544cab3d
LC
39533msgid "1: enable auditing, only if enabled on host"
39534msgstr ""
39535
39536#. type: itemize
32747aa9 39537#: doc/guix.texi:21808
544cab3d
LC
39538msgid "2: enable auditing, and exit if disabled on host."
39539msgstr ""
39540
39541#. type: deftypevr
32747aa9 39542#: doc/guix.texi:21815
544cab3d
LC
39543#, no-wrap
39544msgid "{@code{libvirt-configuration} parameter} boolean audit-logging"
39545msgstr ""
39546
39547#. type: deftypevr
32747aa9 39548#: doc/guix.texi:21817
544cab3d
LC
39549msgid "Send audit messages via libvirt logging infrastructure."
39550msgstr ""
39551
39552#. type: deftypevr
32747aa9 39553#: doc/guix.texi:21822
544cab3d
LC
39554#, no-wrap
39555msgid "{@code{libvirt-configuration} parameter} optional-string host-uuid"
39556msgstr ""
39557
39558#. type: deftypevr
32747aa9 39559#: doc/guix.texi:21824
544cab3d
LC
39560msgid "Host UUID. UUID must not have all digits be the same."
39561msgstr ""
39562
39563#. type: deftypevr
32747aa9 39564#: doc/guix.texi:21829
544cab3d
LC
39565#, no-wrap
39566msgid "{@code{libvirt-configuration} parameter} string host-uuid-source"
39567msgstr ""
39568
39569#. type: deftypevr
32747aa9 39570#: doc/guix.texi:21831
544cab3d
LC
39571msgid "Source to read host UUID."
39572msgstr ""
39573
39574#. type: itemize
32747aa9 39575#: doc/guix.texi:21835
544cab3d
LC
39576msgid "@code{smbios}: fetch the UUID from @code{dmidecode -s system-uuid}"
39577msgstr ""
39578
39579#. type: itemize
32747aa9 39580#: doc/guix.texi:21838
544cab3d
LC
39581msgid "@code{machine-id}: fetch the UUID from @code{/etc/machine-id}"
39582msgstr ""
39583
39584#. type: deftypevr
32747aa9 39585#: doc/guix.texi:21843
544cab3d
LC
39586msgid "If @code{dmidecode} does not provide a valid UUID a temporary UUID will be generated."
39587msgstr ""
39588
39589#. type: deftypevr
32747aa9 39590#: doc/guix.texi:21845
544cab3d
LC
39591msgid "Defaults to @samp{\"smbios\"}."
39592msgstr ""
39593
39594#. type: deftypevr
32747aa9 39595#: doc/guix.texi:21848
544cab3d
LC
39596#, no-wrap
39597msgid "{@code{libvirt-configuration} parameter} integer keepalive-interval"
39598msgstr ""
39599
39600#. type: deftypevr
32747aa9 39601#: doc/guix.texi:21853
544cab3d
LC
39602msgid "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."
39603msgstr ""
39604
39605#. type: deftypevr
32747aa9 39606#: doc/guix.texi:21858
544cab3d
LC
39607#, no-wrap
39608msgid "{@code{libvirt-configuration} parameter} integer keepalive-count"
39609msgstr ""
39610
39611#. type: deftypevr
32747aa9 39612#: doc/guix.texi:21862
544cab3d
LC
39613msgid "Maximum number of keepalive messages that are allowed to be sent to the client without getting any response before the connection is considered broken."
39614msgstr ""
39615
39616#. type: deftypevr
32747aa9 39617#: doc/guix.texi:21869
544cab3d
LC
39618msgid "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."
39619msgstr ""
39620
39621#. type: deftypevr
32747aa9 39622#: doc/guix.texi:21874
544cab3d
LC
39623#, no-wrap
39624msgid "{@code{libvirt-configuration} parameter} integer admin-keepalive-interval"
39625msgstr ""
39626
39627#. type: deftypevr
32747aa9 39628#: doc/guix.texi:21876 doc/guix.texi:21883
544cab3d
LC
39629msgid "Same as above but for admin interface."
39630msgstr ""
39631
39632#. type: deftypevr
32747aa9 39633#: doc/guix.texi:21881
544cab3d
LC
39634#, no-wrap
39635msgid "{@code{libvirt-configuration} parameter} integer admin-keepalive-count"
39636msgstr ""
39637
39638#. type: deftypevr
32747aa9 39639#: doc/guix.texi:21888
544cab3d
LC
39640#, no-wrap
39641msgid "{@code{libvirt-configuration} parameter} integer ovs-timeout"
39642msgstr ""
39643
39644#. type: deftypevr
32747aa9 39645#: doc/guix.texi:21890
544cab3d
LC
39646msgid "Timeout for Open vSwitch calls."
39647msgstr ""
39648
39649#. type: deftypevr
32747aa9 39650#: doc/guix.texi:21894
544cab3d
LC
39651msgid "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."
39652msgstr ""
39653
39654#. type: subsubheading
32747aa9 39655#: doc/guix.texi:21901
544cab3d
LC
39656#, no-wrap
39657msgid "Virtlog daemon"
39658msgstr ""
39659
39660#. type: Plain text
32747aa9 39661#: doc/guix.texi:21904
544cab3d
LC
39662msgid "The virtlogd service is a server side daemon component of libvirt that is used to manage logs from virtual machine consoles."
39663msgstr ""
39664
39665#. type: Plain text
32747aa9 39666#: doc/guix.texi:21910
544cab3d
LC
39667msgid "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."
39668msgstr ""
39669
39670#. type: deffn
32747aa9 39671#: doc/guix.texi:21911
544cab3d
LC
39672#, no-wrap
39673msgid "{Scheme Variable} virtlog-service-type"
39674msgstr ""
39675
39676#. type: deffn
32747aa9 39677#: doc/guix.texi:21914
544cab3d
LC
39678msgid "This is the type of the virtlog daemon. Its value must be a @code{virtlog-configuration}."
39679msgstr ""
39680
39681#. type: example
32747aa9 39682#: doc/guix.texi:21919
544cab3d
LC
39683#, no-wrap
39684msgid ""
39685"(service virtlog-service-type\n"
39686" (virtlog-configuration\n"
39687" (max-clients 1000)))\n"
39688msgstr ""
39689
39690#. type: deftypevr
32747aa9 39691#: doc/guix.texi:21922
544cab3d
LC
39692#, no-wrap
39693msgid "{@code{virtlog-configuration} parameter} integer log-level"
39694msgstr ""
39695
39696#. type: deftypevr
32747aa9 39697#: doc/guix.texi:21929
544cab3d
LC
39698#, no-wrap
39699msgid "{@code{virtlog-configuration} parameter} string log-filters"
39700msgstr ""
39701
39702#. type: deftypevr
32747aa9 39703#: doc/guix.texi:21974
544cab3d
LC
39704#, no-wrap
39705msgid "{@code{virtlog-configuration} parameter} string log-outputs"
39706msgstr ""
39707
39708#. type: deftypevr
32747aa9
LC
39709#: doc/guix.texi:21979
39710msgid "An output is one of the places to save logging information The format for an output can be:"
39711msgstr ""
39712
39713#. type: deftypevr
39714#: doc/guix.texi:22019
544cab3d
LC
39715#, no-wrap
39716msgid "{@code{virtlog-configuration} parameter} integer max-clients"
39717msgstr ""
39718
39719#. type: deftypevr
32747aa9 39720#: doc/guix.texi:22024
544cab3d
LC
39721msgid "Defaults to @samp{1024}."
39722msgstr ""
39723
39724#. type: deftypevr
32747aa9 39725#: doc/guix.texi:22027
544cab3d
LC
39726#, no-wrap
39727msgid "{@code{virtlog-configuration} parameter} integer max-size"
39728msgstr ""
39729
39730#. type: deftypevr
32747aa9 39731#: doc/guix.texi:22029
544cab3d
LC
39732msgid "Maximum file size before rolling over."
39733msgstr ""
39734
39735#. type: deftypevr
32747aa9 39736#: doc/guix.texi:22031
544cab3d
LC
39737msgid "Defaults to @samp{2MB}"
39738msgstr ""
39739
39740#. type: deftypevr
32747aa9 39741#: doc/guix.texi:22034
544cab3d
LC
39742#, no-wrap
39743msgid "{@code{virtlog-configuration} parameter} integer max-backups"
39744msgstr ""
39745
39746#. type: deftypevr
32747aa9 39747#: doc/guix.texi:22036
544cab3d
LC
39748msgid "Maximum number of backup files to keep."
39749msgstr ""
39750
39751#. type: deftypevr
32747aa9 39752#: doc/guix.texi:22038
544cab3d
LC
39753msgid "Defaults to @samp{3}"
39754msgstr ""
39755
39756#. type: subsubheading
32747aa9 39757#: doc/guix.texi:22041
544cab3d
LC
39758#, no-wrap
39759msgid "Transparent Emulation with QEMU"
39760msgstr ""
39761
39762#. type: cindex
32747aa9 39763#: doc/guix.texi:22043
544cab3d
LC
39764#, no-wrap
39765msgid "emulation"
39766msgstr ""
39767
39768#. type: code{#1}
32747aa9 39769#: doc/guix.texi:22044
544cab3d
LC
39770#, no-wrap
39771msgid "binfmt_misc"
39772msgstr ""
39773
39774#. type: Plain text
32747aa9 39775#: doc/guix.texi:22050
544cab3d
LC
39776msgid "@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."
39777msgstr ""
39778
39779#. type: defvr
32747aa9 39780#: doc/guix.texi:22051
544cab3d
LC
39781#, no-wrap
39782msgid "{Scheme Variable} qemu-binfmt-service-type"
39783msgstr ""
39784
39785#. type: defvr
32747aa9 39786#: doc/guix.texi:22056
544cab3d
LC
39787msgid "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:"
39788msgstr ""
39789
39790#. type: example
32747aa9 39791#: doc/guix.texi:22061
544cab3d
LC
39792#, no-wrap
39793msgid ""
39794"(service qemu-binfmt-service-type\n"
39795" (qemu-binfmt-configuration\n"
39796" (platforms (lookup-qemu-platforms \"arm\" \"aarch64\" \"mips64el\"))))\n"
39797msgstr ""
39798
39799#. type: defvr
32747aa9 39800#: doc/guix.texi:22067
544cab3d
LC
39801msgid "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})."
39802msgstr ""
39803
39804#. type: deftp
32747aa9 39805#: doc/guix.texi:22069
544cab3d
LC
39806#, no-wrap
39807msgid "{Data Type} qemu-binfmt-configuration"
39808msgstr ""
39809
39810#. type: deftp
32747aa9 39811#: doc/guix.texi:22071
544cab3d
LC
39812msgid "This is the configuration for the @code{qemu-binfmt} service."
39813msgstr ""
39814
39815#. type: item
32747aa9 39816#: doc/guix.texi:22073
544cab3d
LC
39817#, no-wrap
39818msgid "@code{platforms} (default: @code{'()})"
39819msgstr ""
39820
39821#. type: table
32747aa9 39822#: doc/guix.texi:22076
544cab3d
LC
39823msgid "The list of emulated QEMU platforms. Each item must be a @dfn{platform object} as returned by @code{lookup-qemu-platforms} (see below)."
39824msgstr ""
39825
39826#. type: item
32747aa9 39827#: doc/guix.texi:22077
544cab3d
LC
39828#, no-wrap
39829msgid "@code{guix-support?} (default: @code{#f})"
39830msgstr ""
39831
39832#. type: table
32747aa9 39833#: doc/guix.texi:22083
544cab3d
LC
39834msgid "When it is true, QEMU and all its dependencies are added to the build environment of @command{guix-daemon} (@pxref{Invoking guix-daemon, @code{--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."
39835msgstr ""
39836
39837#. type: table
32747aa9 39838#: doc/guix.texi:22086
544cab3d
LC
39839msgid "For example, let's suppose you're on an x86_64 machine and you have this service:"
39840msgstr ""
39841
39842#. type: example
32747aa9 39843#: doc/guix.texi:22092
544cab3d
LC
39844#, no-wrap
39845msgid ""
39846"(service qemu-binfmt-service-type\n"
39847" (qemu-binfmt-configuration\n"
39848" (platforms (lookup-qemu-platforms \"arm\"))\n"
39849" (guix-support? #t)))\n"
39850msgstr ""
39851
39852#. type: table
32747aa9 39853#: doc/guix.texi:22095
544cab3d
LC
39854msgid "You can run:"
39855msgstr ""
39856
39857#. type: example
32747aa9 39858#: doc/guix.texi:22098
544cab3d
LC
39859#, no-wrap
39860msgid "guix build -s armhf-linux inkscape\n"
39861msgstr ""
39862
39863#. type: table
32747aa9 39864#: doc/guix.texi:22105
544cab3d
LC
39865msgid "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!"
39866msgstr ""
39867
39868#. type: item
32747aa9 39869#: doc/guix.texi:22106
544cab3d
LC
39870#, no-wrap
39871msgid "@code{qemu} (default: @code{qemu})"
39872msgstr ""
39873
39874#. type: table
32747aa9 39875#: doc/guix.texi:22108
544cab3d
LC
39876msgid "The QEMU package to use."
39877msgstr ""
39878
39879#. type: deffn
32747aa9 39880#: doc/guix.texi:22111
544cab3d
LC
39881#, no-wrap
39882msgid "{Scheme Procedure} lookup-qemu-platforms @var{platforms}@dots{}"
39883msgstr ""
39884
39885#. type: deffn
32747aa9 39886#: doc/guix.texi:22116
544cab3d
LC
39887msgid "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."
39888msgstr ""
39889
39890#. type: deffn
32747aa9 39891#: doc/guix.texi:22118
544cab3d
LC
39892#, no-wrap
39893msgid "{Scheme Procedure} qemu-platform? @var{obj}"
39894msgstr ""
39895
39896#. type: deffn
32747aa9 39897#: doc/guix.texi:22120
544cab3d
LC
39898msgid "Return true if @var{obj} is a platform object."
39899msgstr ""
39900
39901#. type: deffn
32747aa9 39902#: doc/guix.texi:22122
544cab3d
LC
39903#, no-wrap
39904msgid "{Scheme Procedure} qemu-platform-name @var{platform}"
39905msgstr ""
39906
39907#. type: deffn
32747aa9 39908#: doc/guix.texi:22124
544cab3d
LC
39909msgid "Return the name of @var{platform}---a string such as @code{\"arm\"}."
39910msgstr ""
39911
39912#. type: Plain text
32747aa9 39913#: doc/guix.texi:22136
544cab3d
LC
39914msgid "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}."
39915msgstr ""
39916
39917#. type: deffn
32747aa9 39918#: doc/guix.texi:22137
544cab3d
LC
39919#, no-wrap
39920msgid "{Scheme Procedure} git-daemon-service [#:config (git-daemon-configuration)]"
39921msgstr ""
39922
39923#. type: deffn
32747aa9 39924#: doc/guix.texi:22141
544cab3d
LC
39925msgid "Return a service that runs @command{git daemon}, a simple TCP server to expose repositories over the Git protocol for anonymous access."
39926msgstr ""
39927
39928#. type: deffn
32747aa9 39929#: doc/guix.texi:22147
544cab3d
LC
39930msgid "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 \"git-daemon-export-ok\" in the repository directory.} repositories under @file{/srv/git}."
39931msgstr ""
39932
39933#. type: deftp
32747aa9 39934#: doc/guix.texi:22150
544cab3d
LC
39935#, no-wrap
39936msgid "{Data Type} git-daemon-configuration"
39937msgstr ""
39938
39939#. type: deftp
32747aa9 39940#: doc/guix.texi:22152
544cab3d
LC
39941msgid "Data type representing the configuration for @code{git-daemon-service}."
39942msgstr ""
39943
39944#. type: item
32747aa9 39945#: doc/guix.texi:22154 doc/guix.texi:22210
544cab3d
LC
39946#, no-wrap
39947msgid "@code{package} (default: @var{git})"
39948msgstr ""
39949
39950#. type: table
32747aa9 39951#: doc/guix.texi:22156 doc/guix.texi:22212
544cab3d
LC
39952msgid "Package object of the Git distributed version control system."
39953msgstr ""
39954
39955#. type: item
32747aa9 39956#: doc/guix.texi:22157 doc/guix.texi:22216
544cab3d
LC
39957#, no-wrap
39958msgid "@code{export-all?} (default: @var{#f})"
39959msgstr ""
39960
39961#. type: table
32747aa9 39962#: doc/guix.texi:22160
544cab3d
LC
39963msgid "Whether to allow access for all Git repositories, even if they do not have the @file{git-daemon-export-ok} file."
39964msgstr ""
39965
39966#. type: item
32747aa9 39967#: doc/guix.texi:22161
544cab3d
LC
39968#, no-wrap
39969msgid "@code{base-path} (default: @file{/srv/git})"
39970msgstr ""
39971
39972#. type: table
32747aa9 39973#: doc/guix.texi:22166
544cab3d
LC
39974msgid "Whether to remap all the path requests as relative to the given path. If you run git daemon with @var{(base-path \"/srv/git\")} on example.com, then if you later try to pull @code{git://example.com/hello.git}, git daemon will interpret the path as @code{/srv/git/hello.git}."
39975msgstr ""
39976
39977#. type: item
32747aa9 39978#: doc/guix.texi:22167
544cab3d
LC
39979#, no-wrap
39980msgid "@code{user-path} (default: @var{#f})"
39981msgstr ""
39982
39983#. type: table
32747aa9 39984#: doc/guix.texi:22174
544cab3d
LC
39985msgid "Whether to allow @code{~user} notation to be used in requests. When specified with empty string, requests to @code{git://host/~alice/foo} is taken as a request to access @code{foo} repository in the home directory of user @code{alice}. If @var{(user-path \"path\")} is specified, the same request is taken as a request to access @code{path/foo} repository in the home directory of user @code{alice}."
39986msgstr ""
39987
39988#. type: item
32747aa9 39989#: doc/guix.texi:22175
544cab3d
LC
39990#, no-wrap
39991msgid "@code{listen} (default: @var{'()})"
39992msgstr ""
39993
39994#. type: table
32747aa9 39995#: doc/guix.texi:22178
544cab3d
LC
39996msgid "Whether to listen on specific IP addresses or hostnames, defaults to all."
39997msgstr ""
39998
39999#. type: item
32747aa9 40000#: doc/guix.texi:22179
544cab3d
LC
40001#, no-wrap
40002msgid "@code{port} (default: @var{#f})"
40003msgstr ""
40004
40005#. type: table
32747aa9 40006#: doc/guix.texi:22181
544cab3d
LC
40007msgid "Whether to listen on an alternative port, which defaults to 9418."
40008msgstr ""
40009
40010#. type: item
32747aa9 40011#: doc/guix.texi:22182
544cab3d
LC
40012#, no-wrap
40013msgid "@code{whitelist} (default: @var{'()})"
40014msgstr ""
40015
40016#. type: table
32747aa9 40017#: doc/guix.texi:22184
544cab3d
LC
40018msgid "If not empty, only allow access to this list of directories."
40019msgstr ""
40020
40021#. type: item
32747aa9 40022#: doc/guix.texi:22185
544cab3d
LC
40023#, no-wrap
40024msgid "@code{extra-options} (default: @var{'()})"
40025msgstr ""
40026
40027#. type: table
32747aa9 40028#: doc/guix.texi:22188
544cab3d
LC
40029msgid "Extra options will be passed to @code{git daemon}, please run @command{man git-daemon} for more information."
40030msgstr ""
40031
40032#. type: Plain text
32747aa9 40033#: doc/guix.texi:22202
544cab3d
LC
40034msgid "The @code{git://} protocol lacks authentication. When you pull from a repository fetched via @code{git://}, you don't know that the data you receive was modified is really coming from the specified host, and you have 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."
40035msgstr ""
40036
40037#. type: Plain text
32747aa9 40038#: doc/guix.texi:22205
544cab3d
LC
40039msgid "Guix has a separate configuration data type for serving Git repositories over HTTP."
40040msgstr ""
40041
40042#. type: deftp
32747aa9 40043#: doc/guix.texi:22206
544cab3d
LC
40044#, no-wrap
40045msgid "{Data Type} git-http-configuration"
40046msgstr ""
40047
40048#. type: deftp
32747aa9 40049#: doc/guix.texi:22208
544cab3d
LC
40050msgid "Data type representing the configuration for @code{git-http-service}."
40051msgstr ""
40052
40053#. type: item
32747aa9 40054#: doc/guix.texi:22213
544cab3d
LC
40055#, no-wrap
40056msgid "@code{git-root} (default: @file{/srv/git})"
40057msgstr ""
40058
40059#. type: table
32747aa9 40060#: doc/guix.texi:22215
544cab3d
LC
40061msgid "Directory containing the Git repositories to expose to the world."
40062msgstr ""
40063
40064#. type: table
32747aa9 40065#: doc/guix.texi:22219
544cab3d
LC
40066msgid "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."
40067msgstr ""
40068
40069#. type: item
32747aa9 40070#: doc/guix.texi:22220
544cab3d
LC
40071#, no-wrap
40072msgid "@code{uri-path} (default: @file{/git/})"
40073msgstr ""
40074
40075#. type: table
32747aa9 40076#: doc/guix.texi:22225
544cab3d
LC
40077msgid "Path prefix for Git access. With the default @code{/git/} prefix, this will map @code{http://@var{server}/git/@var{repo}.git} to @code{/srv/git/@var{repo}.git}. Requests whose URI paths do not begin with this prefix are not passed on to this Git instance."
40078msgstr ""
40079
40080#. type: item
32747aa9 40081#: doc/guix.texi:22226
544cab3d
LC
40082#, no-wrap
40083msgid "@code{fcgiwrap-socket} (default: @code{127.0.0.1:9000})"
40084msgstr ""
40085
40086#. type: table
32747aa9 40087#: doc/guix.texi:22229
544cab3d
LC
40088msgid "The socket on which the @code{fcgiwrap} daemon is listening. @xref{Web Services}."
40089msgstr ""
40090
40091#. type: Plain text
32747aa9 40092#: doc/guix.texi:22236
544cab3d
LC
40093msgid "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."
40094msgstr ""
40095
40096#. type: deffn
32747aa9 40097#: doc/guix.texi:22237
544cab3d
LC
40098#, no-wrap
40099msgid "{Scheme Procedure} git-http-nginx-location-configuration @"
40100msgstr ""
40101
40102#. type: deffn
32747aa9 40103#: doc/guix.texi:22242
544cab3d
LC
40104msgid "[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:"
40105msgstr ""
40106
40107#. type: example
32747aa9 40108#: doc/guix.texi:22259
544cab3d
LC
40109#, no-wrap
40110msgid ""
40111"(service nginx-service-type\n"
40112" (nginx-configuration\n"
40113" (server-blocks\n"
40114" (list\n"
40115" (nginx-server-configuration\n"
40116" (listen '(\"443 ssl\"))\n"
40117" (server-name \"git.my-host.org\")\n"
40118" (ssl-certificate\n"
40119" \"/etc/letsencrypt/live/git.my-host.org/fullchain.pem\")\n"
40120" (ssl-certificate-key\n"
40121" \"/etc/letsencrypt/live/git.my-host.org/privkey.pem\")\n"
40122" (locations\n"
40123" (list\n"
40124" (git-http-nginx-location-configuration\n"
40125" (git-http-configuration (uri-path \"/\"))))))))))\n"
40126msgstr ""
40127
40128#. type: deffn
32747aa9 40129#: doc/guix.texi:22266
544cab3d
LC
40130msgid "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}."
40131msgstr ""
40132
40133#. type: subsubheading
32747aa9 40134#: doc/guix.texi:22268
544cab3d
LC
40135#, no-wrap
40136msgid "Cgit Service"
40137msgstr ""
40138
40139#. type: cindex
32747aa9 40140#: doc/guix.texi:22270
544cab3d
LC
40141#, no-wrap
40142msgid "Cgit service"
40143msgstr ""
40144
40145#. type: cindex
32747aa9 40146#: doc/guix.texi:22271
544cab3d
LC
40147#, no-wrap
40148msgid "Git, web interface"
40149msgstr ""
40150
40151#. type: Plain text
32747aa9 40152#: doc/guix.texi:22274
544cab3d
LC
40153msgid "@uref{https://git.zx2c4.com/cgit/, Cgit} is a web frontend for Git repositories written in C."
40154msgstr ""
40155
40156#. type: Plain text
32747aa9 40157#: doc/guix.texi:22277
544cab3d
LC
40158msgid "The following example will configure the service with default values. By default, Cgit can be accessed on port 80 (@code{http://localhost:80})."
40159msgstr ""
40160
40161#. type: example
32747aa9 40162#: doc/guix.texi:22280
544cab3d
LC
40163#, no-wrap
40164msgid "(service cgit-service-type)\n"
40165msgstr ""
40166
40167#. type: Plain text
32747aa9 40168#: doc/guix.texi:22284
544cab3d
LC
40169msgid "The @code{file-object} type designates either a file-like object (@pxref{G-Expressions, file-like objects}) or a string."
40170msgstr ""
40171
40172#. type: Plain text
32747aa9 40173#: doc/guix.texi:22288
544cab3d
LC
40174msgid "Available @code{cgit-configuration} fields are:"
40175msgstr ""
40176
40177#. type: deftypevr
32747aa9 40178#: doc/guix.texi:22289
544cab3d
LC
40179#, no-wrap
40180msgid "{@code{cgit-configuration} parameter} package package"
40181msgstr ""
40182
40183#. type: deftypevr
32747aa9 40184#: doc/guix.texi:22291
544cab3d
LC
40185msgid "The CGIT package."
40186msgstr ""
40187
40188#. type: deftypevr
32747aa9 40189#: doc/guix.texi:22294
544cab3d
LC
40190#, no-wrap
40191msgid "{@code{cgit-configuration} parameter} nginx-server-configuration-list nginx"
40192msgstr ""
40193
40194#. type: deftypevr
32747aa9 40195#: doc/guix.texi:22299
544cab3d
LC
40196#, no-wrap
40197msgid "{@code{cgit-configuration} parameter} file-object about-filter"
40198msgstr ""
40199
40200#. type: deftypevr
32747aa9 40201#: doc/guix.texi:22302
544cab3d
LC
40202msgid "Specifies a command which will be invoked to format the content of about pages (both top-level and for each repository)."
40203msgstr ""
40204
40205#. type: deftypevr
32747aa9 40206#: doc/guix.texi:22307
544cab3d
LC
40207#, no-wrap
40208msgid "{@code{cgit-configuration} parameter} string agefile"
40209msgstr ""
40210
40211#. type: deftypevr
32747aa9 40212#: doc/guix.texi:22310
544cab3d
LC
40213msgid "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."
40214msgstr ""
40215
40216#. type: deftypevr
32747aa9 40217#: doc/guix.texi:22315
544cab3d
LC
40218#, no-wrap
40219msgid "{@code{cgit-configuration} parameter} file-object auth-filter"
40220msgstr ""
40221
40222#. type: deftypevr
32747aa9 40223#: doc/guix.texi:22318
544cab3d
LC
40224msgid "Specifies a command that will be invoked for authenticating repository access."
40225msgstr ""
40226
40227#. type: deftypevr
32747aa9 40228#: doc/guix.texi:22323
544cab3d
LC
40229#, no-wrap
40230msgid "{@code{cgit-configuration} parameter} string branch-sort"
40231msgstr ""
40232
40233#. type: deftypevr
32747aa9 40234#: doc/guix.texi:22326
544cab3d
LC
40235msgid "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."
40236msgstr ""
40237
40238#. type: deftypevr
32747aa9 40239#: doc/guix.texi:22328
544cab3d
LC
40240msgid "Defaults to @samp{\"name\"}."
40241msgstr ""
40242
40243#. type: deftypevr
32747aa9 40244#: doc/guix.texi:22331
544cab3d
LC
40245#, no-wrap
40246msgid "{@code{cgit-configuration} parameter} string cache-root"
40247msgstr ""
40248
40249#. type: deftypevr
32747aa9 40250#: doc/guix.texi:22333
544cab3d
LC
40251msgid "Path used to store the cgit cache entries."
40252msgstr ""
40253
40254#. type: deftypevr
32747aa9 40255#: doc/guix.texi:22335
544cab3d
LC
40256msgid "Defaults to @samp{\"/var/cache/cgit\"}."
40257msgstr ""
40258
40259#. type: deftypevr
32747aa9 40260#: doc/guix.texi:22338
544cab3d
LC
40261#, no-wrap
40262msgid "{@code{cgit-configuration} parameter} integer cache-static-ttl"
40263msgstr ""
40264
40265#. type: deftypevr
32747aa9 40266#: doc/guix.texi:22341
544cab3d
LC
40267msgid "Number which specifies the time-to-live, in minutes, for the cached version of repository pages accessed with a fixed SHA1."
40268msgstr ""
40269
40270#. type: deftypevr
32747aa9 40271#: doc/guix.texi:22343 doc/guix.texi:22786
544cab3d
LC
40272msgid "Defaults to @samp{-1}."
40273msgstr ""
40274
40275#. type: deftypevr
32747aa9 40276#: doc/guix.texi:22346
544cab3d
LC
40277#, no-wrap
40278msgid "{@code{cgit-configuration} parameter} integer cache-dynamic-ttl"
40279msgstr ""
40280
40281#. type: deftypevr
32747aa9 40282#: doc/guix.texi:22349
544cab3d
LC
40283msgid "Number which specifies the time-to-live, in minutes, for the cached version of repository pages accessed without a fixed SHA1."
40284msgstr ""
40285
40286#. type: deftypevr
32747aa9 40287#: doc/guix.texi:22354
544cab3d
LC
40288#, no-wrap
40289msgid "{@code{cgit-configuration} parameter} integer cache-repo-ttl"
40290msgstr ""
40291
40292#. type: deftypevr
32747aa9 40293#: doc/guix.texi:22357
544cab3d
LC
40294msgid "Number which specifies the time-to-live, in minutes, for the cached version of the repository summary page."
40295msgstr ""
40296
40297#. type: deftypevr
32747aa9 40298#: doc/guix.texi:22362
544cab3d
LC
40299#, no-wrap
40300msgid "{@code{cgit-configuration} parameter} integer cache-root-ttl"
40301msgstr ""
40302
40303#. type: deftypevr
32747aa9 40304#: doc/guix.texi:22365
544cab3d
LC
40305msgid "Number which specifies the time-to-live, in minutes, for the cached version of the repository index page."
40306msgstr ""
40307
40308#. type: deftypevr
32747aa9 40309#: doc/guix.texi:22370
544cab3d
LC
40310#, no-wrap
40311msgid "{@code{cgit-configuration} parameter} integer cache-scanrc-ttl"
40312msgstr ""
40313
40314#. type: deftypevr
32747aa9 40315#: doc/guix.texi:22373
544cab3d
LC
40316msgid "Number which specifies the time-to-live, in minutes, for the result of scanning a path for Git repositories."
40317msgstr ""
40318
40319#. type: deftypevr
32747aa9 40320#: doc/guix.texi:22378
544cab3d
LC
40321#, no-wrap
40322msgid "{@code{cgit-configuration} parameter} integer cache-about-ttl"
40323msgstr ""
40324
40325#. type: deftypevr
32747aa9 40326#: doc/guix.texi:22381
544cab3d
LC
40327msgid "Number which specifies the time-to-live, in minutes, for the cached version of the repository about page."
40328msgstr ""
40329
40330#. type: deftypevr
32747aa9 40331#: doc/guix.texi:22386
544cab3d
LC
40332#, no-wrap
40333msgid "{@code{cgit-configuration} parameter} integer cache-snapshot-ttl"
40334msgstr ""
40335
40336#. type: deftypevr
32747aa9 40337#: doc/guix.texi:22389
544cab3d
LC
40338msgid "Number which specifies the time-to-live, in minutes, for the cached version of snapshots."
40339msgstr ""
40340
40341#. type: deftypevr
32747aa9 40342#: doc/guix.texi:22394
544cab3d
LC
40343#, no-wrap
40344msgid "{@code{cgit-configuration} parameter} integer cache-size"
40345msgstr ""
40346
40347#. type: deftypevr
32747aa9 40348#: doc/guix.texi:22397
544cab3d
LC
40349msgid "The maximum number of entries in the cgit cache. When set to @samp{0}, caching is disabled."
40350msgstr ""
40351
40352#. type: deftypevr
32747aa9 40353#: doc/guix.texi:22402
544cab3d
LC
40354#, no-wrap
40355msgid "{@code{cgit-configuration} parameter} boolean case-sensitive-sort?"
40356msgstr ""
40357
40358#. type: deftypevr
32747aa9 40359#: doc/guix.texi:22404
544cab3d
LC
40360msgid "Sort items in the repo list case sensitively."
40361msgstr ""
40362
40363#. type: deftypevr
32747aa9 40364#: doc/guix.texi:22409
544cab3d
LC
40365#, no-wrap
40366msgid "{@code{cgit-configuration} parameter} list clone-prefix"
40367msgstr ""
40368
40369#. type: deftypevr
32747aa9 40370#: doc/guix.texi:22412
544cab3d
LC
40371msgid "List of common prefixes which, when combined with a repository URL, generates valid clone URLs for the repository."
40372msgstr ""
40373
40374#. type: deftypevr
32747aa9 40375#: doc/guix.texi:22417
544cab3d
LC
40376#, no-wrap
40377msgid "{@code{cgit-configuration} parameter} list clone-url"
40378msgstr ""
40379
40380#. type: deftypevr
32747aa9 40381#: doc/guix.texi:22419
544cab3d
LC
40382msgid "List of @code{clone-url} templates."
40383msgstr ""
40384
40385#. type: deftypevr
32747aa9 40386#: doc/guix.texi:22424
544cab3d
LC
40387#, no-wrap
40388msgid "{@code{cgit-configuration} parameter} file-object commit-filter"
40389msgstr ""
40390
40391#. type: deftypevr
32747aa9 40392#: doc/guix.texi:22426
544cab3d
LC
40393msgid "Command which will be invoked to format commit messages."
40394msgstr ""
40395
40396#. type: deftypevr
32747aa9 40397#: doc/guix.texi:22431
544cab3d
LC
40398#, no-wrap
40399msgid "{@code{cgit-configuration} parameter} string commit-sort"
40400msgstr ""
40401
40402#. type: deftypevr
32747aa9 40403#: doc/guix.texi:22435 doc/guix.texi:22993
544cab3d
LC
40404msgid "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."
40405msgstr ""
40406
40407#. type: deftypevr
32747aa9 40408#: doc/guix.texi:22437
544cab3d
LC
40409msgid "Defaults to @samp{\"git log\"}."
40410msgstr ""
40411
40412#. type: deftypevr
32747aa9 40413#: doc/guix.texi:22440
544cab3d
LC
40414#, no-wrap
40415msgid "{@code{cgit-configuration} parameter} file-object css"
40416msgstr ""
40417
40418#. type: deftypevr
32747aa9 40419#: doc/guix.texi:22442
544cab3d
LC
40420msgid "URL which specifies the css document to include in all cgit pages."
40421msgstr ""
40422
40423#. type: deftypevr
32747aa9 40424#: doc/guix.texi:22444
544cab3d
LC
40425msgid "Defaults to @samp{\"/share/cgit/cgit.css\"}."
40426msgstr ""
40427
40428#. type: deftypevr
32747aa9 40429#: doc/guix.texi:22447
544cab3d
LC
40430#, no-wrap
40431msgid "{@code{cgit-configuration} parameter} file-object email-filter"
40432msgstr ""
40433
40434#. type: deftypevr
32747aa9 40435#: doc/guix.texi:22451
544cab3d
LC
40436msgid "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."
40437msgstr ""
40438
40439#. type: deftypevr
32747aa9 40440#: doc/guix.texi:22456
544cab3d
LC
40441#, no-wrap
40442msgid "{@code{cgit-configuration} parameter} boolean embedded?"
40443msgstr ""
40444
40445#. type: deftypevr
32747aa9 40446#: doc/guix.texi:22459
544cab3d
LC
40447msgid "Flag which, when set to @samp{#t}, will make cgit generate a HTML fragment suitable for embedding in other HTML pages."
40448msgstr ""
40449
40450#. type: deftypevr
32747aa9 40451#: doc/guix.texi:22464
544cab3d
LC
40452#, no-wrap
40453msgid "{@code{cgit-configuration} parameter} boolean enable-commit-graph?"
40454msgstr ""
40455
40456#. type: deftypevr
32747aa9 40457#: doc/guix.texi:22468
544cab3d
LC
40458msgid "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."
40459msgstr ""
40460
40461#. type: deftypevr
32747aa9 40462#: doc/guix.texi:22473
544cab3d
LC
40463#, no-wrap
40464msgid "{@code{cgit-configuration} parameter} boolean enable-filter-overrides?"
40465msgstr ""
40466
40467#. type: deftypevr
32747aa9 40468#: doc/guix.texi:22476
544cab3d
LC
40469msgid "Flag which, when set to @samp{#t}, allows all filter settings to be overridden in repository-specific cgitrc files."
40470msgstr ""
40471
40472#. type: deftypevr
32747aa9 40473#: doc/guix.texi:22481
544cab3d
LC
40474#, no-wrap
40475msgid "{@code{cgit-configuration} parameter} boolean enable-follow-links?"
40476msgstr ""
40477
40478#. type: deftypevr
32747aa9 40479#: doc/guix.texi:22484
544cab3d
LC
40480msgid "Flag which, when set to @samp{#t}, allows users to follow a file in the log view."
40481msgstr ""
40482
40483#. type: deftypevr
32747aa9 40484#: doc/guix.texi:22489
544cab3d
LC
40485#, no-wrap
40486msgid "{@code{cgit-configuration} parameter} boolean enable-http-clone?"
40487msgstr ""
40488
40489#. type: deftypevr
32747aa9 40490#: doc/guix.texi:22492
544cab3d
LC
40491msgid "If set to @samp{#t}, cgit will act as an dumb HTTP endpoint for Git clones."
40492msgstr ""
40493
40494#. type: deftypevr
32747aa9 40495#: doc/guix.texi:22497
544cab3d
LC
40496#, no-wrap
40497msgid "{@code{cgit-configuration} parameter} boolean enable-index-links?"
40498msgstr ""
40499
40500#. type: deftypevr
32747aa9 40501#: doc/guix.texi:22500
544cab3d
LC
40502msgid "Flag which, when set to @samp{#t}, will make cgit generate extra links \"summary\", \"commit\", \"tree\" for each repo in the repository index."
40503msgstr ""
40504
40505#. type: deftypevr
32747aa9 40506#: doc/guix.texi:22505
544cab3d
LC
40507#, no-wrap
40508msgid "{@code{cgit-configuration} parameter} boolean enable-index-owner?"
40509msgstr ""
40510
40511#. type: deftypevr
32747aa9 40512#: doc/guix.texi:22508
544cab3d
LC
40513msgid "Flag which, when set to @samp{#t}, will make cgit display the owner of each repo in the repository index."
40514msgstr ""
40515
40516#. type: deftypevr
32747aa9 40517#: doc/guix.texi:22513
544cab3d
LC
40518#, no-wrap
40519msgid "{@code{cgit-configuration} parameter} boolean enable-log-filecount?"
40520msgstr ""
40521
40522#. type: deftypevr
32747aa9 40523#: doc/guix.texi:22516
544cab3d
LC
40524msgid "Flag which, when set to @samp{#t}, will make cgit print the number of modified files for each commit on the repository log page."
40525msgstr ""
40526
40527#. type: deftypevr
32747aa9 40528#: doc/guix.texi:22521
544cab3d
LC
40529#, no-wrap
40530msgid "{@code{cgit-configuration} parameter} boolean enable-log-linecount?"
40531msgstr ""
40532
40533#. type: deftypevr
32747aa9 40534#: doc/guix.texi:22524
544cab3d
LC
40535msgid "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."
40536msgstr ""
40537
40538#. type: deftypevr
32747aa9 40539#: doc/guix.texi:22529
544cab3d
LC
40540#, no-wrap
40541msgid "{@code{cgit-configuration} parameter} boolean enable-remote-branches?"
40542msgstr ""
40543
40544#. type: deftypevr
32747aa9 40545#: doc/guix.texi:22532 doc/guix.texi:23056
544cab3d
LC
40546msgid "Flag which, when set to @code{#t}, will make cgit display remote branches in the summary and refs views."
40547msgstr ""
40548
40549#. type: deftypevr
32747aa9 40550#: doc/guix.texi:22537
544cab3d
LC
40551#, no-wrap
40552msgid "{@code{cgit-configuration} parameter} boolean enable-subject-links?"
40553msgstr ""
40554
40555#. type: deftypevr
32747aa9 40556#: doc/guix.texi:22541
544cab3d
LC
40557msgid "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."
40558msgstr ""
40559
40560#. type: deftypevr
32747aa9 40561#: doc/guix.texi:22546
544cab3d
LC
40562#, no-wrap
40563msgid "{@code{cgit-configuration} parameter} boolean enable-html-serving?"
40564msgstr ""
40565
40566#. type: deftypevr
32747aa9 40567#: doc/guix.texi:22550
544cab3d
LC
40568msgid "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."
40569msgstr ""
40570
40571#. type: deftypevr
32747aa9 40572#: doc/guix.texi:22555
544cab3d
LC
40573#, no-wrap
40574msgid "{@code{cgit-configuration} parameter} boolean enable-tree-linenumbers?"
40575msgstr ""
40576
40577#. type: deftypevr
32747aa9 40578#: doc/guix.texi:22558
544cab3d
LC
40579msgid "Flag which, when set to @samp{#t}, will make cgit generate linenumber links for plaintext blobs printed in the tree view."
40580msgstr ""
40581
40582#. type: deftypevr
32747aa9 40583#: doc/guix.texi:22563
544cab3d
LC
40584#, no-wrap
40585msgid "{@code{cgit-configuration} parameter} boolean enable-git-config?"
40586msgstr ""
40587
40588#. type: deftypevr
32747aa9 40589#: doc/guix.texi:22566
544cab3d
LC
40590msgid "Flag which, when set to @samp{#f}, will allow cgit to use Git config to set any repo specific settings."
40591msgstr ""
40592
40593#. type: deftypevr
32747aa9 40594#: doc/guix.texi:22571
544cab3d
LC
40595#, no-wrap
40596msgid "{@code{cgit-configuration} parameter} file-object favicon"
40597msgstr ""
40598
40599#. type: deftypevr
32747aa9 40600#: doc/guix.texi:22573
544cab3d
LC
40601msgid "URL used as link to a shortcut icon for cgit."
40602msgstr ""
40603
40604#. type: deftypevr
32747aa9 40605#: doc/guix.texi:22575
544cab3d
LC
40606msgid "Defaults to @samp{\"/favicon.ico\"}."
40607msgstr ""
40608
40609#. type: deftypevr
32747aa9 40610#: doc/guix.texi:22578
544cab3d
LC
40611#, no-wrap
40612msgid "{@code{cgit-configuration} parameter} string footer"
40613msgstr ""
40614
40615#. type: deftypevr
32747aa9 40616#: doc/guix.texi:22582
544cab3d
LC
40617msgid "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)."
40618msgstr ""
40619
40620#. type: deftypevr
32747aa9 40621#: doc/guix.texi:22587
544cab3d
LC
40622#, no-wrap
40623msgid "{@code{cgit-configuration} parameter} string head-include"
40624msgstr ""
40625
40626#. type: deftypevr
32747aa9 40627#: doc/guix.texi:22590
544cab3d
LC
40628msgid "The content of the file specified with this option will be included verbatim in the HTML HEAD section on all pages."
40629msgstr ""
40630
40631#. type: deftypevr
32747aa9 40632#: doc/guix.texi:22595
544cab3d
LC
40633#, no-wrap
40634msgid "{@code{cgit-configuration} parameter} string header"
40635msgstr ""
40636
40637#. type: deftypevr
32747aa9 40638#: doc/guix.texi:22598
544cab3d
LC
40639msgid "The content of the file specified with this option will be included verbatim at the top of all pages."
40640msgstr ""
40641
40642#. type: deftypevr
32747aa9 40643#: doc/guix.texi:22603
544cab3d
LC
40644#, no-wrap
40645msgid "{@code{cgit-configuration} parameter} file-object include"
40646msgstr ""
40647
40648#. type: deftypevr
32747aa9 40649#: doc/guix.texi:22606
544cab3d
LC
40650msgid "Name of a configfile to include before the rest of the current config- file is parsed."
40651msgstr ""
40652
40653#. type: deftypevr
32747aa9 40654#: doc/guix.texi:22611
544cab3d
LC
40655#, no-wrap
40656msgid "{@code{cgit-configuration} parameter} string index-header"
40657msgstr ""
40658
40659#. type: deftypevr
32747aa9 40660#: doc/guix.texi:22614
544cab3d
LC
40661msgid "The content of the file specified with this option will be included verbatim above the repository index."
40662msgstr ""
40663
40664#. type: deftypevr
32747aa9 40665#: doc/guix.texi:22619
544cab3d
LC
40666#, no-wrap
40667msgid "{@code{cgit-configuration} parameter} string index-info"
40668msgstr ""
40669
40670#. type: deftypevr
32747aa9 40671#: doc/guix.texi:22622
544cab3d
LC
40672msgid "The content of the file specified with this option will be included verbatim below the heading on the repository index page."
40673msgstr ""
40674
40675#. type: deftypevr
32747aa9 40676#: doc/guix.texi:22627
544cab3d
LC
40677#, no-wrap
40678msgid "{@code{cgit-configuration} parameter} boolean local-time?"
40679msgstr ""
40680
40681#. type: deftypevr
32747aa9 40682#: doc/guix.texi:22630
544cab3d
LC
40683msgid "Flag which, if set to @samp{#t}, makes cgit print commit and tag times in the servers timezone."
40684msgstr ""
40685
40686#. type: deftypevr
32747aa9 40687#: doc/guix.texi:22635
544cab3d
LC
40688#, no-wrap
40689msgid "{@code{cgit-configuration} parameter} file-object logo"
40690msgstr ""
40691
40692#. type: deftypevr
32747aa9 40693#: doc/guix.texi:22638
544cab3d
LC
40694msgid "URL which specifies the source of an image which will be used as a logo on all cgit pages."
40695msgstr ""
40696
40697#. type: deftypevr
32747aa9 40698#: doc/guix.texi:22640
544cab3d
LC
40699msgid "Defaults to @samp{\"/share/cgit/cgit.png\"}."
40700msgstr ""
40701
40702#. type: deftypevr
32747aa9 40703#: doc/guix.texi:22643
544cab3d
LC
40704#, no-wrap
40705msgid "{@code{cgit-configuration} parameter} string logo-link"
40706msgstr ""
40707
40708#. type: deftypevr
32747aa9 40709#: doc/guix.texi:22645 doc/guix.texi:23102
544cab3d
LC
40710msgid "URL loaded when clicking on the cgit logo image."
40711msgstr ""
40712
40713#. type: deftypevr
32747aa9 40714#: doc/guix.texi:22650
544cab3d
LC
40715#, no-wrap
40716msgid "{@code{cgit-configuration} parameter} file-object owner-filter"
40717msgstr ""
40718
40719#. type: deftypevr
32747aa9 40720#: doc/guix.texi:22653
544cab3d
LC
40721msgid "Command which will be invoked to format the Owner column of the main page."
40722msgstr ""
40723
40724#. type: deftypevr
32747aa9 40725#: doc/guix.texi:22658
544cab3d
LC
40726#, no-wrap
40727msgid "{@code{cgit-configuration} parameter} integer max-atom-items"
40728msgstr ""
40729
40730#. type: deftypevr
32747aa9 40731#: doc/guix.texi:22660
544cab3d
LC
40732msgid "Number of items to display in atom feeds view."
40733msgstr ""
40734
40735#. type: deftypevr
32747aa9
LC
40736#: doc/guix.texi:22662 doc/guix.texi:22897 doc/guix.texi:22905
40737#: doc/guix.texi:22913
544cab3d
LC
40738msgid "Defaults to @samp{10}."
40739msgstr ""
40740
40741#. type: deftypevr
32747aa9 40742#: doc/guix.texi:22665
544cab3d
LC
40743#, no-wrap
40744msgid "{@code{cgit-configuration} parameter} integer max-commit-count"
40745msgstr ""
40746
40747#. type: deftypevr
32747aa9 40748#: doc/guix.texi:22667
544cab3d
LC
40749msgid "Number of entries to list per page in \"log\" view."
40750msgstr ""
40751
40752#. type: deftypevr
32747aa9 40753#: doc/guix.texi:22669 doc/guix.texi:22684
544cab3d
LC
40754msgid "Defaults to @samp{50}."
40755msgstr ""
40756
40757#. type: deftypevr
32747aa9 40758#: doc/guix.texi:22672
544cab3d
LC
40759#, no-wrap
40760msgid "{@code{cgit-configuration} parameter} integer max-message-length"
40761msgstr ""
40762
40763#. type: deftypevr
32747aa9 40764#: doc/guix.texi:22674
544cab3d
LC
40765msgid "Number of commit message characters to display in \"log\" view."
40766msgstr ""
40767
40768#. type: deftypevr
32747aa9 40769#: doc/guix.texi:22676 doc/guix.texi:22692
544cab3d
LC
40770msgid "Defaults to @samp{80}."
40771msgstr ""
40772
40773#. type: deftypevr
32747aa9 40774#: doc/guix.texi:22679
544cab3d
LC
40775#, no-wrap
40776msgid "{@code{cgit-configuration} parameter} integer max-repo-count"
40777msgstr ""
40778
40779#. type: deftypevr
32747aa9 40780#: doc/guix.texi:22682
544cab3d
LC
40781msgid "Specifies the number of entries to list per page on the repository index page."
40782msgstr ""
40783
40784#. type: deftypevr
32747aa9 40785#: doc/guix.texi:22687
544cab3d
LC
40786#, no-wrap
40787msgid "{@code{cgit-configuration} parameter} integer max-repodesc-length"
40788msgstr ""
40789
40790#. type: deftypevr
32747aa9 40791#: doc/guix.texi:22690
544cab3d
LC
40792msgid "Specifies the maximum number of repo description characters to display on the repository index page."
40793msgstr ""
40794
40795#. type: deftypevr
32747aa9 40796#: doc/guix.texi:22695
544cab3d
LC
40797#, no-wrap
40798msgid "{@code{cgit-configuration} parameter} integer max-blob-size"
40799msgstr ""
40800
40801#. type: deftypevr
32747aa9 40802#: doc/guix.texi:22697
544cab3d
LC
40803msgid "Specifies the maximum size of a blob to display HTML for in KBytes."
40804msgstr ""
40805
40806#. type: deftypevr
32747aa9 40807#: doc/guix.texi:22702
544cab3d
LC
40808#, no-wrap
40809msgid "{@code{cgit-configuration} parameter} string max-stats"
40810msgstr ""
40811
40812#. type: deftypevr
32747aa9 40813#: doc/guix.texi:22705
544cab3d
LC
40814msgid "Maximum statistics period. Valid values are @samp{week},@samp{month}, @samp{quarter} and @samp{year}."
40815msgstr ""
40816
40817#. type: deftypevr
32747aa9 40818#: doc/guix.texi:22710
544cab3d
LC
40819#, no-wrap
40820msgid "{@code{cgit-configuration} parameter} mimetype-alist mimetype"
40821msgstr ""
40822
40823#. type: deftypevr
32747aa9 40824#: doc/guix.texi:22712
544cab3d
LC
40825msgid "Mimetype for the specified filename extension."
40826msgstr ""
40827
40828#. type: deftypevr
32747aa9 40829#: doc/guix.texi:22716
544cab3d
LC
40830msgid "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\"))}."
40831msgstr ""
40832
40833#. type: deftypevr
32747aa9 40834#: doc/guix.texi:22719
544cab3d
LC
40835#, no-wrap
40836msgid "{@code{cgit-configuration} parameter} file-object mimetype-file"
40837msgstr ""
40838
40839#. type: deftypevr
32747aa9 40840#: doc/guix.texi:22721
544cab3d
LC
40841msgid "Specifies the file to use for automatic mimetype lookup."
40842msgstr ""
40843
40844#. type: deftypevr
32747aa9 40845#: doc/guix.texi:22726
544cab3d
LC
40846#, no-wrap
40847msgid "{@code{cgit-configuration} parameter} string module-link"
40848msgstr ""
40849
40850#. type: deftypevr
32747aa9 40851#: doc/guix.texi:22729
544cab3d
LC
40852msgid "Text which will be used as the formatstring for a hyperlink when a submodule is printed in a directory listing."
40853msgstr ""
40854
40855#. type: deftypevr
32747aa9 40856#: doc/guix.texi:22734
544cab3d
LC
40857#, no-wrap
40858msgid "{@code{cgit-configuration} parameter} boolean nocache?"
40859msgstr ""
40860
40861#. type: deftypevr
32747aa9 40862#: doc/guix.texi:22736
544cab3d
LC
40863msgid "If set to the value @samp{#t} caching will be disabled."
40864msgstr ""
40865
40866#. type: deftypevr
32747aa9 40867#: doc/guix.texi:22741
544cab3d
LC
40868#, no-wrap
40869msgid "{@code{cgit-configuration} parameter} boolean noplainemail?"
40870msgstr ""
40871
40872#. type: deftypevr
32747aa9 40873#: doc/guix.texi:22744
544cab3d
LC
40874msgid "If set to @samp{#t} showing full author email addresses will be disabled."
40875msgstr ""
40876
40877#. type: deftypevr
32747aa9 40878#: doc/guix.texi:22749
544cab3d
LC
40879#, no-wrap
40880msgid "{@code{cgit-configuration} parameter} boolean noheader?"
40881msgstr ""
40882
40883#. type: deftypevr
32747aa9 40884#: doc/guix.texi:22752
544cab3d
LC
40885msgid "Flag which, when set to @samp{#t}, will make cgit omit the standard header on all pages."
40886msgstr ""
40887
40888#. type: deftypevr
32747aa9 40889#: doc/guix.texi:22757
544cab3d
LC
40890#, no-wrap
40891msgid "{@code{cgit-configuration} parameter} project-list project-list"
40892msgstr ""
40893
40894#. type: deftypevr
32747aa9 40895#: doc/guix.texi:22761
544cab3d
LC
40896msgid "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."
40897msgstr ""
40898
40899#. type: deftypevr
32747aa9 40900#: doc/guix.texi:22766
544cab3d
LC
40901#, no-wrap
40902msgid "{@code{cgit-configuration} parameter} file-object readme"
40903msgstr ""
40904
40905#. type: deftypevr
32747aa9 40906#: doc/guix.texi:22768
544cab3d
LC
40907msgid "Text which will be used as default value for @code{cgit-repo-readme}."
40908msgstr ""
40909
40910#. type: deftypevr
32747aa9 40911#: doc/guix.texi:22773
544cab3d
LC
40912#, no-wrap
40913msgid "{@code{cgit-configuration} parameter} boolean remove-suffix?"
40914msgstr ""
40915
40916#. type: deftypevr
32747aa9 40917#: doc/guix.texi:22777
544cab3d
LC
40918msgid "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."
40919msgstr ""
40920
40921#. type: deftypevr
32747aa9 40922#: doc/guix.texi:22782
544cab3d
LC
40923#, no-wrap
40924msgid "{@code{cgit-configuration} parameter} integer renamelimit"
40925msgstr ""
40926
40927#. type: deftypevr
32747aa9 40928#: doc/guix.texi:22784
544cab3d
LC
40929msgid "Maximum number of files to consider when detecting renames."
40930msgstr ""
40931
40932#. type: deftypevr
32747aa9 40933#: doc/guix.texi:22789
544cab3d
LC
40934#, no-wrap
40935msgid "{@code{cgit-configuration} parameter} string repository-sort"
40936msgstr ""
40937
40938#. type: deftypevr
32747aa9 40939#: doc/guix.texi:22791
544cab3d
LC
40940msgid "The way in which repositories in each section are sorted."
40941msgstr ""
40942
40943#. type: deftypevr
32747aa9 40944#: doc/guix.texi:22796
544cab3d
LC
40945#, no-wrap
40946msgid "{@code{cgit-configuration} parameter} robots-list robots"
40947msgstr ""
40948
40949#. type: deftypevr
32747aa9 40950#: doc/guix.texi:22798
544cab3d
LC
40951msgid "Text used as content for the @code{robots} meta-tag."
40952msgstr ""
40953
40954#. type: deftypevr
32747aa9 40955#: doc/guix.texi:22800
544cab3d
LC
40956msgid "Defaults to @samp{(\"noindex\" \"nofollow\")}."
40957msgstr ""
40958
40959#. type: deftypevr
32747aa9 40960#: doc/guix.texi:22803
544cab3d
LC
40961#, no-wrap
40962msgid "{@code{cgit-configuration} parameter} string root-desc"
40963msgstr ""
40964
40965#. type: deftypevr
32747aa9 40966#: doc/guix.texi:22805
544cab3d
LC
40967msgid "Text printed below the heading on the repository index page."
40968msgstr ""
40969
40970#. type: deftypevr
32747aa9 40971#: doc/guix.texi:22807
544cab3d
LC
40972msgid "Defaults to @samp{\"a fast webinterface for the git dscm\"}."
40973msgstr ""
40974
40975#. type: deftypevr
32747aa9 40976#: doc/guix.texi:22810
544cab3d
LC
40977#, no-wrap
40978msgid "{@code{cgit-configuration} parameter} string root-readme"
40979msgstr ""
40980
40981#. type: deftypevr
32747aa9 40982#: doc/guix.texi:22813
544cab3d
LC
40983msgid "The content of the file specified with this option will be included verbatim below thef \"about\" link on the repository index page."
40984msgstr ""
40985
40986#. type: deftypevr
32747aa9 40987#: doc/guix.texi:22818
544cab3d
LC
40988#, no-wrap
40989msgid "{@code{cgit-configuration} parameter} string root-title"
40990msgstr ""
40991
40992#. type: deftypevr
32747aa9 40993#: doc/guix.texi:22820
544cab3d
LC
40994msgid "Text printed as heading on the repository index page."
40995msgstr ""
40996
40997#. type: deftypevr
32747aa9 40998#: doc/guix.texi:22825
544cab3d
LC
40999#, no-wrap
41000msgid "{@code{cgit-configuration} parameter} boolean scan-hidden-path"
41001msgstr ""
41002
41003#. type: deftypevr
32747aa9 41004#: doc/guix.texi:22831
544cab3d
LC
41005msgid "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 \".git\" directory in non-bare repos."
41006msgstr ""
41007
41008#. type: deftypevr
32747aa9 41009#: doc/guix.texi:22836
544cab3d
LC
41010#, no-wrap
41011msgid "{@code{cgit-configuration} parameter} list snapshots"
41012msgstr ""
41013
41014#. type: deftypevr
32747aa9 41015#: doc/guix.texi:22839
544cab3d
LC
41016msgid "Text which specifies the default set of snapshot formats that cgit generates links for."
41017msgstr ""
41018
41019#. type: deftypevr
32747aa9 41020#: doc/guix.texi:22844
544cab3d
LC
41021#, no-wrap
41022msgid "{@code{cgit-configuration} parameter} repository-directory repository-directory"
41023msgstr ""
41024
41025#. type: deftypevr
32747aa9 41026#: doc/guix.texi:22847
544cab3d
LC
41027msgid "Name of the directory to scan for repositories (represents @code{scan-path})."
41028msgstr ""
41029
41030#. type: deftypevr
32747aa9 41031#: doc/guix.texi:22849
544cab3d
LC
41032msgid "Defaults to @samp{\"/srv/git\"}."
41033msgstr ""
41034
41035#. type: deftypevr
32747aa9 41036#: doc/guix.texi:22852
544cab3d
LC
41037#, no-wrap
41038msgid "{@code{cgit-configuration} parameter} string section"
41039msgstr ""
41040
41041#. type: deftypevr
32747aa9 41042#: doc/guix.texi:22855 doc/guix.texi:23171
544cab3d
LC
41043msgid "The name of the current repository section - all repositories defined after this option will inherit the current section name."
41044msgstr ""
41045
41046#. type: deftypevr
32747aa9 41047#: doc/guix.texi:22860
544cab3d
LC
41048#, no-wrap
41049msgid "{@code{cgit-configuration} parameter} string section-sort"
41050msgstr ""
41051
41052#. type: deftypevr
32747aa9 41053#: doc/guix.texi:22863
544cab3d
LC
41054msgid "Flag which, when set to @samp{1}, will sort the sections on the repository listing by name."
41055msgstr ""
41056
41057#. type: deftypevr
32747aa9 41058#: doc/guix.texi:22868
544cab3d
LC
41059#, no-wrap
41060msgid "{@code{cgit-configuration} parameter} integer section-from-path"
41061msgstr ""
41062
41063#. type: deftypevr
32747aa9 41064#: doc/guix.texi:22871
544cab3d
LC
41065msgid "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."
41066msgstr ""
41067
41068#. type: deftypevr
32747aa9 41069#: doc/guix.texi:22876
544cab3d
LC
41070#, no-wrap
41071msgid "{@code{cgit-configuration} parameter} boolean side-by-side-diffs?"
41072msgstr ""
41073
41074#. type: deftypevr
32747aa9 41075#: doc/guix.texi:22879
544cab3d
LC
41076msgid "If set to @samp{#t} shows side-by-side diffs instead of unidiffs per default."
41077msgstr ""
41078
41079#. type: deftypevr
32747aa9 41080#: doc/guix.texi:22884
544cab3d
LC
41081#, no-wrap
41082msgid "{@code{cgit-configuration} parameter} file-object source-filter"
41083msgstr ""
41084
41085#. type: deftypevr
32747aa9 41086#: doc/guix.texi:22887
544cab3d
LC
41087msgid "Specifies a command which will be invoked to format plaintext blobs in the tree view."
41088msgstr ""
41089
41090#. type: deftypevr
32747aa9 41091#: doc/guix.texi:22892
544cab3d
LC
41092#, no-wrap
41093msgid "{@code{cgit-configuration} parameter} integer summary-branches"
41094msgstr ""
41095
41096#. type: deftypevr
32747aa9 41097#: doc/guix.texi:22895
544cab3d
LC
41098msgid "Specifies the number of branches to display in the repository \"summary\" view."
41099msgstr ""
41100
41101#. type: deftypevr
32747aa9 41102#: doc/guix.texi:22900
544cab3d
LC
41103#, no-wrap
41104msgid "{@code{cgit-configuration} parameter} integer summary-log"
41105msgstr ""
41106
41107#. type: deftypevr
32747aa9 41108#: doc/guix.texi:22903
544cab3d
LC
41109msgid "Specifies the number of log entries to display in the repository \"summary\" view."
41110msgstr ""
41111
41112#. type: deftypevr
32747aa9 41113#: doc/guix.texi:22908
544cab3d
LC
41114#, no-wrap
41115msgid "{@code{cgit-configuration} parameter} integer summary-tags"
41116msgstr ""
41117
41118#. type: deftypevr
32747aa9 41119#: doc/guix.texi:22911
544cab3d
LC
41120msgid "Specifies the number of tags to display in the repository \"summary\" view."
41121msgstr ""
41122
41123#. type: deftypevr
32747aa9 41124#: doc/guix.texi:22916
544cab3d
LC
41125#, no-wrap
41126msgid "{@code{cgit-configuration} parameter} string strict-export"
41127msgstr ""
41128
41129#. type: deftypevr
32747aa9 41130#: doc/guix.texi:22919
544cab3d
LC
41131msgid "Filename which, if specified, needs to be present within the repository for cgit to allow access to that repository."
41132msgstr ""
41133
41134#. type: deftypevr
32747aa9 41135#: doc/guix.texi:22924
544cab3d
LC
41136#, no-wrap
41137msgid "{@code{cgit-configuration} parameter} string virtual-root"
41138msgstr ""
41139
41140#. type: deftypevr
32747aa9 41141#: doc/guix.texi:22926
544cab3d
LC
41142msgid "URL which, if specified, will be used as root for all cgit links."
41143msgstr ""
41144
41145#. type: deftypevr
32747aa9 41146#: doc/guix.texi:22928
544cab3d
LC
41147msgid "Defaults to @samp{\"/\"}."
41148msgstr ""
41149
41150#. type: deftypevr
32747aa9 41151#: doc/guix.texi:22931
544cab3d
LC
41152#, no-wrap
41153msgid "{@code{cgit-configuration} parameter} repository-cgit-configuration-list repositories"
41154msgstr ""
41155
41156#. type: deftypevr
32747aa9 41157#: doc/guix.texi:22933
544cab3d
LC
41158msgid "A list of @dfn{cgit-repo} records to use with config."
41159msgstr ""
41160
41161#. type: deftypevr
32747aa9 41162#: doc/guix.texi:22937
544cab3d
LC
41163msgid "Available @code{repository-cgit-configuration} fields are:"
41164msgstr ""
41165
41166#. type: deftypevr
32747aa9 41167#: doc/guix.texi:22938
544cab3d
LC
41168#, no-wrap
41169msgid "{@code{repository-cgit-configuration} parameter} repo-list snapshots"
41170msgstr ""
41171
41172#. type: deftypevr
32747aa9 41173#: doc/guix.texi:22941
544cab3d
LC
41174msgid "A mask of snapshot formats for this repo that cgit generates links for, restricted by the global @code{snapshots} setting."
41175msgstr ""
41176
41177#. type: deftypevr
32747aa9 41178#: doc/guix.texi:22946
544cab3d
LC
41179#, no-wrap
41180msgid "{@code{repository-cgit-configuration} parameter} repo-file-object source-filter"
41181msgstr ""
41182
41183#. type: deftypevr
32747aa9 41184#: doc/guix.texi:22948
544cab3d
LC
41185msgid "Override the default @code{source-filter}."
41186msgstr ""
41187
41188#. type: deftypevr
32747aa9 41189#: doc/guix.texi:22953
544cab3d
LC
41190#, no-wrap
41191msgid "{@code{repository-cgit-configuration} parameter} repo-string url"
41192msgstr ""
41193
41194#. type: deftypevr
32747aa9 41195#: doc/guix.texi:22955
544cab3d
LC
41196msgid "The relative URL used to access the repository."
41197msgstr ""
41198
41199#. type: deftypevr
32747aa9 41200#: doc/guix.texi:22960
544cab3d
LC
41201#, no-wrap
41202msgid "{@code{repository-cgit-configuration} parameter} repo-file-object about-filter"
41203msgstr ""
41204
41205#. type: deftypevr
32747aa9 41206#: doc/guix.texi:22962
544cab3d
LC
41207msgid "Override the default @code{about-filter}."
41208msgstr ""
41209
41210#. type: deftypevr
32747aa9 41211#: doc/guix.texi:22967
544cab3d
LC
41212#, no-wrap
41213msgid "{@code{repository-cgit-configuration} parameter} repo-string branch-sort"
41214msgstr ""
41215
41216#. type: deftypevr
32747aa9 41217#: doc/guix.texi:22970
544cab3d
LC
41218msgid "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."
41219msgstr ""
41220
41221#. type: deftypevr
32747aa9 41222#: doc/guix.texi:22975
544cab3d
LC
41223#, no-wrap
41224msgid "{@code{repository-cgit-configuration} parameter} repo-list clone-url"
41225msgstr ""
41226
41227#. type: deftypevr
32747aa9 41228#: doc/guix.texi:22977
544cab3d
LC
41229msgid "A list of URLs which can be used to clone repo."
41230msgstr ""
41231
41232#. type: deftypevr
32747aa9 41233#: doc/guix.texi:22982
544cab3d
LC
41234#, no-wrap
41235msgid "{@code{repository-cgit-configuration} parameter} repo-file-object commit-filter"
41236msgstr ""
41237
41238#. type: deftypevr
32747aa9 41239#: doc/guix.texi:22984
544cab3d
LC
41240msgid "Override the default @code{commit-filter}."
41241msgstr ""
41242
41243#. type: deftypevr
32747aa9 41244#: doc/guix.texi:22989
544cab3d
LC
41245#, no-wrap
41246msgid "{@code{repository-cgit-configuration} parameter} repo-string commit-sort"
41247msgstr ""
41248
41249#. type: deftypevr
32747aa9 41250#: doc/guix.texi:22998
544cab3d
LC
41251#, no-wrap
41252msgid "{@code{repository-cgit-configuration} parameter} repo-string defbranch"
41253msgstr ""
41254
41255#. type: deftypevr
32747aa9 41256#: doc/guix.texi:23003
544cab3d
LC
41257msgid "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."
41258msgstr ""
41259
41260#. type: deftypevr
32747aa9 41261#: doc/guix.texi:23008
544cab3d
LC
41262#, no-wrap
41263msgid "{@code{repository-cgit-configuration} parameter} repo-string desc"
41264msgstr ""
41265
41266#. type: deftypevr
32747aa9 41267#: doc/guix.texi:23010
544cab3d
LC
41268msgid "The value to show as repository description."
41269msgstr ""
41270
41271#. type: deftypevr
32747aa9 41272#: doc/guix.texi:23015
544cab3d
LC
41273#, no-wrap
41274msgid "{@code{repository-cgit-configuration} parameter} repo-string homepage"
41275msgstr ""
41276
41277#. type: deftypevr
32747aa9 41278#: doc/guix.texi:23017
544cab3d
LC
41279msgid "The value to show as repository homepage."
41280msgstr ""
41281
41282#. type: deftypevr
32747aa9 41283#: doc/guix.texi:23022
544cab3d
LC
41284#, no-wrap
41285msgid "{@code{repository-cgit-configuration} parameter} repo-file-object email-filter"
41286msgstr ""
41287
41288#. type: deftypevr
32747aa9 41289#: doc/guix.texi:23024
544cab3d
LC
41290msgid "Override the default @code{email-filter}."
41291msgstr ""
41292
41293#. type: deftypevr
32747aa9 41294#: doc/guix.texi:23029
544cab3d
LC
41295#, no-wrap
41296msgid "{@code{repository-cgit-configuration} parameter} maybe-repo-boolean enable-commit-graph?"
41297msgstr ""
41298
41299#. type: deftypevr
32747aa9 41300#: doc/guix.texi:23032
544cab3d
LC
41301msgid "A flag which can be used to disable the global setting @code{enable-commit-graph?}."
41302msgstr ""
41303
41304#. type: deftypevr
32747aa9 41305#: doc/guix.texi:23037
544cab3d
LC
41306#, no-wrap
41307msgid "{@code{repository-cgit-configuration} parameter} maybe-repo-boolean enable-log-filecount?"
41308msgstr ""
41309
41310#. type: deftypevr
32747aa9 41311#: doc/guix.texi:23040
544cab3d
LC
41312msgid "A flag which can be used to disable the global setting @code{enable-log-filecount?}."
41313msgstr ""
41314
41315#. type: deftypevr
32747aa9 41316#: doc/guix.texi:23045
544cab3d
LC
41317#, no-wrap
41318msgid "{@code{repository-cgit-configuration} parameter} maybe-repo-boolean enable-log-linecount?"
41319msgstr ""
41320
41321#. type: deftypevr
32747aa9 41322#: doc/guix.texi:23048
544cab3d
LC
41323msgid "A flag which can be used to disable the global setting @code{enable-log-linecount?}."
41324msgstr ""
41325
41326#. type: deftypevr
32747aa9 41327#: doc/guix.texi:23053
544cab3d
LC
41328#, no-wrap
41329msgid "{@code{repository-cgit-configuration} parameter} maybe-repo-boolean enable-remote-branches?"
41330msgstr ""
41331
41332#. type: deftypevr
32747aa9 41333#: doc/guix.texi:23061
544cab3d
LC
41334#, no-wrap
41335msgid "{@code{repository-cgit-configuration} parameter} maybe-repo-boolean enable-subject-links?"
41336msgstr ""
41337
41338#. type: deftypevr
32747aa9 41339#: doc/guix.texi:23064
544cab3d
LC
41340msgid "A flag which can be used to override the global setting @code{enable-subject-links?}."
41341msgstr ""
41342
41343#. type: deftypevr
32747aa9 41344#: doc/guix.texi:23069
544cab3d
LC
41345#, no-wrap
41346msgid "{@code{repository-cgit-configuration} parameter} maybe-repo-boolean enable-html-serving?"
41347msgstr ""
41348
41349#. type: deftypevr
32747aa9 41350#: doc/guix.texi:23072
544cab3d
LC
41351msgid "A flag which can be used to override the global setting @code{enable-html-serving?}."
41352msgstr ""
41353
41354#. type: deftypevr
32747aa9 41355#: doc/guix.texi:23077
544cab3d
LC
41356#, no-wrap
41357msgid "{@code{repository-cgit-configuration} parameter} repo-boolean hide?"
41358msgstr ""
41359
41360#. type: deftypevr
32747aa9 41361#: doc/guix.texi:23080
544cab3d
LC
41362msgid "Flag which, when set to @code{#t}, hides the repository from the repository index."
41363msgstr ""
41364
41365#. type: deftypevr
32747aa9 41366#: doc/guix.texi:23085
544cab3d
LC
41367#, no-wrap
41368msgid "{@code{repository-cgit-configuration} parameter} repo-boolean ignore?"
41369msgstr ""
41370
41371#. type: deftypevr
32747aa9 41372#: doc/guix.texi:23087
544cab3d
LC
41373msgid "Flag which, when set to @samp{#t}, ignores the repository."
41374msgstr ""
41375
41376#. type: deftypevr
32747aa9 41377#: doc/guix.texi:23092
544cab3d
LC
41378#, no-wrap
41379msgid "{@code{repository-cgit-configuration} parameter} repo-file-object logo"
41380msgstr ""
41381
41382#. type: deftypevr
32747aa9 41383#: doc/guix.texi:23095
544cab3d
LC
41384msgid "URL which specifies the source of an image which will be used as a logo on this repo’s pages."
41385msgstr ""
41386
41387#. type: deftypevr
32747aa9 41388#: doc/guix.texi:23100
544cab3d
LC
41389#, no-wrap
41390msgid "{@code{repository-cgit-configuration} parameter} repo-string logo-link"
41391msgstr ""
41392
41393#. type: deftypevr
32747aa9 41394#: doc/guix.texi:23107
544cab3d
LC
41395#, no-wrap
41396msgid "{@code{repository-cgit-configuration} parameter} repo-file-object owner-filter"
41397msgstr ""
41398
41399#. type: deftypevr
32747aa9 41400#: doc/guix.texi:23109
544cab3d
LC
41401msgid "Override the default @code{owner-filter}."
41402msgstr ""
41403
41404#. type: deftypevr
32747aa9 41405#: doc/guix.texi:23114
544cab3d
LC
41406#, no-wrap
41407msgid "{@code{repository-cgit-configuration} parameter} repo-string module-link"
41408msgstr ""
41409
41410#. type: deftypevr
32747aa9 41411#: doc/guix.texi:23118
544cab3d
LC
41412msgid "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."
41413msgstr ""
41414
41415#. type: deftypevr
32747aa9 41416#: doc/guix.texi:23123
544cab3d
LC
41417#, no-wrap
41418msgid "{@code{repository-cgit-configuration} parameter} module-link-path module-link-path"
41419msgstr ""
41420
41421#. type: deftypevr
32747aa9 41422#: doc/guix.texi:23127
544cab3d
LC
41423msgid "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."
41424msgstr ""
41425
41426#. type: deftypevr
32747aa9 41427#: doc/guix.texi:23132
544cab3d
LC
41428#, no-wrap
41429msgid "{@code{repository-cgit-configuration} parameter} repo-string max-stats"
41430msgstr ""
41431
41432#. type: deftypevr
32747aa9 41433#: doc/guix.texi:23134
544cab3d
LC
41434msgid "Override the default maximum statistics period."
41435msgstr ""
41436
41437#. type: deftypevr
32747aa9 41438#: doc/guix.texi:23139
544cab3d
LC
41439#, no-wrap
41440msgid "{@code{repository-cgit-configuration} parameter} repo-string name"
41441msgstr ""
41442
41443#. type: deftypevr
32747aa9 41444#: doc/guix.texi:23141
544cab3d
LC
41445msgid "The value to show as repository name."
41446msgstr ""
41447
41448#. type: deftypevr
32747aa9 41449#: doc/guix.texi:23146
544cab3d
LC
41450#, no-wrap
41451msgid "{@code{repository-cgit-configuration} parameter} repo-string owner"
41452msgstr ""
41453
41454#. type: deftypevr
32747aa9 41455#: doc/guix.texi:23148
544cab3d
LC
41456msgid "A value used to identify the owner of the repository."
41457msgstr ""
41458
41459#. type: deftypevr
32747aa9 41460#: doc/guix.texi:23153
544cab3d
LC
41461#, no-wrap
41462msgid "{@code{repository-cgit-configuration} parameter} repo-string path"
41463msgstr ""
41464
41465#. type: deftypevr
32747aa9 41466#: doc/guix.texi:23155
544cab3d
LC
41467msgid "An absolute path to the repository directory."
41468msgstr ""
41469
41470#. type: deftypevr
32747aa9 41471#: doc/guix.texi:23160
544cab3d
LC
41472#, no-wrap
41473msgid "{@code{repository-cgit-configuration} parameter} repo-string readme"
41474msgstr ""
41475
41476#. type: deftypevr
32747aa9 41477#: doc/guix.texi:23163
544cab3d
LC
41478msgid "A path (relative to repo) which specifies a file to include verbatim as the \"About\" page for this repo."
41479msgstr ""
41480
41481#. type: deftypevr
32747aa9 41482#: doc/guix.texi:23168
544cab3d
LC
41483#, no-wrap
41484msgid "{@code{repository-cgit-configuration} parameter} repo-string section"
41485msgstr ""
41486
41487#. type: deftypevr
32747aa9 41488#: doc/guix.texi:23176
544cab3d
LC
41489#, no-wrap
41490msgid "{@code{repository-cgit-configuration} parameter} repo-list extra-options"
41491msgstr ""
41492
41493#. type: deftypevr
32747aa9 41494#: doc/guix.texi:23178 doc/guix.texi:23187
544cab3d
LC
41495msgid "Extra options will be appended to cgitrc file."
41496msgstr ""
41497
41498#. type: deftypevr
32747aa9 41499#: doc/guix.texi:23185
544cab3d
LC
41500#, no-wrap
41501msgid "{@code{cgit-configuration} parameter} list extra-options"
41502msgstr ""
41503
41504#. type: Plain text
32747aa9 41505#: doc/guix.texi:23199
544cab3d
LC
41506msgid "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."
41507msgstr ""
41508
41509#. type: Plain text
32747aa9 41510#: doc/guix.texi:23201
544cab3d
LC
41511msgid "Available @code{opaque-cgit-configuration} fields are:"
41512msgstr ""
41513
41514#. type: deftypevr
32747aa9 41515#: doc/guix.texi:23202
544cab3d
LC
41516#, no-wrap
41517msgid "{@code{opaque-cgit-configuration} parameter} package cgit"
41518msgstr ""
41519
41520#. type: deftypevr
32747aa9 41521#: doc/guix.texi:23204
544cab3d
LC
41522msgid "The cgit package."
41523msgstr ""
41524
41525#. type: deftypevr
32747aa9 41526#: doc/guix.texi:23206
544cab3d
LC
41527#, no-wrap
41528msgid "{@code{opaque-cgit-configuration} parameter} string string"
41529msgstr ""
41530
41531#. type: deftypevr
32747aa9 41532#: doc/guix.texi:23208
544cab3d
LC
41533msgid "The contents of the @code{cgitrc}, as a string."
41534msgstr ""
41535
41536#. type: Plain text
32747aa9 41537#: doc/guix.texi:23212
544cab3d
LC
41538msgid "For example, if your @code{cgitrc} is just the empty string, you could instantiate a cgit service like this:"
41539msgstr ""
41540
41541#. type: example
32747aa9 41542#: doc/guix.texi:23217
544cab3d
LC
41543#, no-wrap
41544msgid ""
41545"(service cgit-service-type\n"
41546" (opaque-cgit-configuration\n"
41547" (cgitrc \"\")))\n"
41548msgstr ""
41549
41550#. type: subsubheading
32747aa9 41551#: doc/guix.texi:23219
544cab3d
LC
41552#, no-wrap
41553msgid "Gitolite Service"
41554msgstr ""
41555
41556#. type: cindex
32747aa9 41557#: doc/guix.texi:23221
544cab3d
LC
41558#, no-wrap
41559msgid "Gitolite service"
41560msgstr ""
41561
41562#. type: cindex
32747aa9 41563#: doc/guix.texi:23222
544cab3d
LC
41564#, no-wrap
41565msgid "Git, hosting"
41566msgstr ""
41567
41568#. type: Plain text
32747aa9
LC
41569#: doc/guix.texi:23225
41570msgid "@uref{https://gitolite.com/gitolite/, Gitolite} is a tool for hosting Git repositories on a central server."
544cab3d
LC
41571msgstr ""
41572
41573#. type: Plain text
32747aa9 41574#: doc/guix.texi:23228
544cab3d
LC
41575msgid "Gitolite can handle multiple repositories and users, and supports flexible configuration of the permissions for the users on the repositories."
41576msgstr ""
41577
41578#. type: Plain text
32747aa9 41579#: doc/guix.texi:23231
544cab3d
LC
41580msgid "The following example will configure Gitolite using the default @code{git} user, and the provided SSH public key."
41581msgstr ""
41582
41583#. type: example
32747aa9 41584#: doc/guix.texi:23238
544cab3d
LC
41585#, no-wrap
41586msgid ""
41587"(service gitolite-service-type\n"
41588" (gitolite-configuration\n"
41589" (admin-pubkey (plain-file\n"
41590" \"yourname.pub\"\n"
41591" \"ssh-rsa AAAA... guix@@example.com\"))))\n"
41592msgstr ""
41593
41594#. type: Plain text
32747aa9 41595#: doc/guix.texi:23243
544cab3d
LC
41596msgid "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."
41597msgstr ""
41598
41599#. type: example
32747aa9 41600#: doc/guix.texi:23246
544cab3d
LC
41601#, no-wrap
41602msgid "git clone git@@example.com:gitolite-admin\n"
41603msgstr ""
41604
41605#. type: Plain text
32747aa9 41606#: doc/guix.texi:23252
544cab3d
LC
41607msgid "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''."
41608msgstr ""
41609
41610#. type: deftp
32747aa9 41611#: doc/guix.texi:23253
544cab3d
LC
41612#, no-wrap
41613msgid "{Data Type} gitolite-configuration"
41614msgstr ""
41615
41616#. type: deftp
32747aa9 41617#: doc/guix.texi:23255
544cab3d
LC
41618msgid "Data type representing the configuration for @code{gitolite-service-type}."
41619msgstr ""
41620
41621#. type: item
32747aa9 41622#: doc/guix.texi:23257
544cab3d
LC
41623#, no-wrap
41624msgid "@code{package} (default: @var{gitolite})"
41625msgstr ""
41626
41627#. type: table
32747aa9 41628#: doc/guix.texi:23259
544cab3d
LC
41629msgid "Gitolite package to use."
41630msgstr ""
41631
41632#. type: item
32747aa9 41633#: doc/guix.texi:23260
544cab3d
LC
41634#, no-wrap
41635msgid "@code{user} (default: @var{git})"
41636msgstr ""
41637
41638#. type: table
32747aa9 41639#: doc/guix.texi:23263
544cab3d
LC
41640msgid "User to use for Gitolite. This will be user that you use when accessing Gitolite over SSH."
41641msgstr ""
41642
41643#. type: item
32747aa9 41644#: doc/guix.texi:23264
544cab3d
LC
41645#, no-wrap
41646msgid "@code{group} (default: @var{git})"
41647msgstr ""
41648
41649#. type: table
32747aa9 41650#: doc/guix.texi:23266
544cab3d
LC
41651msgid "Group to use for Gitolite."
41652msgstr ""
41653
41654#. type: item
32747aa9 41655#: doc/guix.texi:23267
544cab3d
LC
41656#, no-wrap
41657msgid "@code{home-directory} (default: @var{\"/var/lib/gitolite\"})"
41658msgstr ""
41659
41660#. type: table
32747aa9 41661#: doc/guix.texi:23269
544cab3d
LC
41662msgid "Directory in which to store the Gitolite configuration and repositories."
41663msgstr ""
41664
41665#. type: item
32747aa9 41666#: doc/guix.texi:23270
544cab3d
LC
41667#, no-wrap
41668msgid "@code{rc-file} (default: @var{(gitolite-rc-file)})"
41669msgstr ""
41670
41671#. type: table
32747aa9 41672#: doc/guix.texi:23273
544cab3d
LC
41673msgid "A ``file-like'' object (@pxref{G-Expressions, file-like objects}), representing the configuration for Gitolite."
41674msgstr ""
41675
41676#. type: item
32747aa9 41677#: doc/guix.texi:23274
544cab3d
LC
41678#, no-wrap
41679msgid "@code{admin-pubkey} (default: @var{#f})"
41680msgstr ""
41681
41682#. type: table
32747aa9 41683#: doc/guix.texi:23278
544cab3d
LC
41684msgid "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."
41685msgstr ""
41686
41687#. type: table
32747aa9 41688#: doc/guix.texi:23280
544cab3d
LC
41689msgid "To specify the SSH key as a string, use the @code{plain-file} function."
41690msgstr ""
41691
41692#. type: example
32747aa9 41693#: doc/guix.texi:23283
544cab3d
LC
41694#, no-wrap
41695msgid "(plain-file \"yourname.pub\" \"ssh-rsa AAAA... guix@@example.com\")\n"
41696msgstr ""
41697
41698#. type: deftp
32747aa9 41699#: doc/guix.texi:23288
544cab3d
LC
41700#, no-wrap
41701msgid "{Data Type} gitolite-rc-file"
41702msgstr ""
41703
41704#. type: deftp
32747aa9 41705#: doc/guix.texi:23290
544cab3d
LC
41706msgid "Data type representing the Gitolite RC file."
41707msgstr ""
41708
41709#. type: item
32747aa9 41710#: doc/guix.texi:23292
544cab3d
LC
41711#, no-wrap
41712msgid "@code{umask} (default: @code{#o0077})"
41713msgstr ""
41714
41715#. type: table
32747aa9 41716#: doc/guix.texi:23295
544cab3d
LC
41717msgid "This controls the permissions Gitolite sets on the repositories and their contents."
41718msgstr ""
41719
41720#. type: table
32747aa9 41721#: doc/guix.texi:23299
544cab3d
LC
41722msgid "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."
41723msgstr ""
41724
41725#. type: item
32747aa9 41726#: doc/guix.texi:23300
544cab3d
LC
41727#, no-wrap
41728msgid "@code{git-config-keys} (default: @code{\"\"})"
41729msgstr ""
41730
41731#. type: table
32747aa9 41732#: doc/guix.texi:23303
544cab3d
LC
41733msgid "Gitolite allows you to set git config values using the \"config\" keyword. This setting allows control over the config keys to accept."
41734msgstr ""
41735
41736#. type: item
32747aa9 41737#: doc/guix.texi:23304
544cab3d
LC
41738#, no-wrap
41739msgid "@code{roles} (default: @code{'((\"READERS\" . 1) (\"WRITERS\" . ))})"
41740msgstr ""
41741
41742#. type: table
32747aa9 41743#: doc/guix.texi:23306
544cab3d
LC
41744msgid "Set the role names allowed to be used by users running the perms command."
41745msgstr ""
41746
41747#. type: item
32747aa9 41748#: doc/guix.texi:23307
544cab3d
LC
41749#, no-wrap
41750msgid "@code{enable} (default: @code{'(\"help\" \"desc\" \"info\" \"perms\" \"writable\" \"ssh-authkeys\" \"git-config\" \"daemon\" \"gitweb\")})"
41751msgstr ""
41752
41753#. type: table
32747aa9 41754#: doc/guix.texi:23309
544cab3d
LC
41755msgid "This setting controls the commands and features to enable within Gitolite."
41756msgstr ""
41757
41758#. type: subsubheading
32747aa9 41759#: doc/guix.texi:23317
544cab3d
LC
41760#, no-wrap
41761msgid "The Battle for Wesnoth Service"
41762msgstr ""
41763
41764#. type: cindex
32747aa9 41765#: doc/guix.texi:23318
544cab3d
LC
41766#, no-wrap
41767msgid "wesnothd"
41768msgstr ""
41769
41770#. type: Plain text
32747aa9 41771#: doc/guix.texi:23322
544cab3d
LC
41772msgid "@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)."
41773msgstr ""
41774
41775#. type: defvar
32747aa9 41776#: doc/guix.texi:23323
544cab3d
LC
41777#, no-wrap
41778msgid "{Scheme Variable} wesnothd-service-type"
41779msgstr ""
41780
41781#. type: defvar
32747aa9 41782#: doc/guix.texi:23327
544cab3d
LC
41783msgid "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:"
41784msgstr ""
41785
41786#. type: example
32747aa9 41787#: doc/guix.texi:23330
544cab3d
LC
41788#, no-wrap
41789msgid "(service wesnothd-service-type)\n"
41790msgstr ""
41791
41792#. type: deftp
32747aa9 41793#: doc/guix.texi:23333
544cab3d
LC
41794#, no-wrap
41795msgid "{Data Type} wesnothd-configuration"
41796msgstr ""
41797
41798#. type: deftp
32747aa9 41799#: doc/guix.texi:23335
544cab3d
LC
41800msgid "Data type representing the configuration of @command{wesnothd}."
41801msgstr ""
41802
41803#. type: item
32747aa9 41804#: doc/guix.texi:23337
544cab3d
LC
41805#, no-wrap
41806msgid "@code{package} (default: @code{wesnoth-server})"
41807msgstr ""
41808
41809#. type: table
32747aa9 41810#: doc/guix.texi:23339
544cab3d
LC
41811msgid "The wesnoth server package to use."
41812msgstr ""
41813
41814#. type: item
32747aa9 41815#: doc/guix.texi:23340
544cab3d
LC
41816#, no-wrap
41817msgid "@code{port} (default: @code{15000})"
41818msgstr ""
41819
41820#. type: table
32747aa9 41821#: doc/guix.texi:23342
544cab3d
LC
41822msgid "The port to bind the server to."
41823msgstr ""
41824
41825#. type: cindex
32747aa9 41826#: doc/guix.texi:23348
544cab3d
LC
41827#, no-wrap
41828msgid "fingerprint"
41829msgstr ""
41830
41831#. type: subsubheading
32747aa9 41832#: doc/guix.texi:23349
544cab3d
LC
41833#, no-wrap
41834msgid "Fingerprint Service"
41835msgstr ""
41836
41837#. type: Plain text
32747aa9
LC
41838#: doc/guix.texi:23353
41839msgid "The @code{(gnu services authentication)} module provides a DBus service to read and identify fingerprints via a fingerprint sensor."
544cab3d
LC
41840msgstr ""
41841
41842#. type: defvr
32747aa9 41843#: doc/guix.texi:23354
544cab3d
LC
41844#, no-wrap
41845msgid "{Scheme Variable} fprintd-service-type"
41846msgstr ""
41847
41848#. type: defvr
32747aa9 41849#: doc/guix.texi:23357
544cab3d
LC
41850msgid "The service type for @command{fprintd}, which provides the fingerprint reading capability."
41851msgstr ""
41852
41853#. type: example
32747aa9 41854#: doc/guix.texi:23360
544cab3d
LC
41855#, no-wrap
41856msgid "(service fprintd-service-type)\n"
41857msgstr ""
41858
41859#. type: cindex
32747aa9 41860#: doc/guix.texi:23363
544cab3d
LC
41861#, no-wrap
41862msgid "sysctl"
41863msgstr ""
41864
41865#. type: subsubheading
32747aa9 41866#: doc/guix.texi:23364
544cab3d
LC
41867#, no-wrap
41868msgid "System Control Service"
41869msgstr ""
41870
41871#. type: Plain text
32747aa9 41872#: doc/guix.texi:23368
544cab3d
LC
41873msgid "The @code{(gnu services sysctl)} provides a service to configure kernel parameters at boot."
41874msgstr ""
41875
41876#. type: defvr
32747aa9 41877#: doc/guix.texi:23369
544cab3d
LC
41878#, no-wrap
41879msgid "{Scheme Variable} sysctl-service-type"
41880msgstr ""
41881
41882#. type: defvr
32747aa9 41883#: doc/guix.texi:23373
544cab3d
LC
41884msgid "The service type for @command{sysctl}, which modifies kernel parameters under @file{/proc/sys/}. To enable IPv4 forwarding, it can be instantiated as:"
41885msgstr ""
41886
41887#. type: example
32747aa9 41888#: doc/guix.texi:23378
544cab3d
LC
41889#, no-wrap
41890msgid ""
41891"(service sysctl-service-type\n"
41892" (sysctl-configuration\n"
41893" (settings '((\"net.ipv4.ip_forward\" . \"1\")))))\n"
41894msgstr ""
41895
41896#. type: deftp
32747aa9 41897#: doc/guix.texi:23381
544cab3d
LC
41898#, no-wrap
41899msgid "{Data Type} sysctl-configuration"
41900msgstr ""
41901
41902#. type: deftp
32747aa9 41903#: doc/guix.texi:23383
544cab3d
LC
41904msgid "The data type representing the configuration of @command{sysctl}."
41905msgstr ""
41906
41907#. type: item
32747aa9 41908#: doc/guix.texi:23385
544cab3d
LC
41909#, no-wrap
41910msgid "@code{sysctl} (default: @code{(file-append procps \"/sbin/sysctl\"})"
41911msgstr ""
41912
41913#. type: table
32747aa9 41914#: doc/guix.texi:23387
544cab3d
LC
41915msgid "The @command{sysctl} executable to use."
41916msgstr ""
41917
41918#. type: item
32747aa9 41919#: doc/guix.texi:23388
544cab3d
LC
41920#, no-wrap
41921msgid "@code{settings} (default: @code{'()})"
41922msgstr ""
41923
41924#. type: table
32747aa9 41925#: doc/guix.texi:23390
544cab3d
LC
41926msgid "An association list specifies kernel parameters and their values."
41927msgstr ""
41928
41929#. type: cindex
32747aa9 41930#: doc/guix.texi:23393
544cab3d
LC
41931#, no-wrap
41932msgid "pcscd"
41933msgstr ""
41934
41935#. type: subsubheading
32747aa9 41936#: doc/guix.texi:23394
544cab3d
LC
41937#, no-wrap
41938msgid "PC/SC Smart Card Daemon Service"
41939msgstr ""
41940
41941#. type: Plain text
32747aa9 41942#: doc/guix.texi:23401
544cab3d
LC
41943msgid "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."
41944msgstr ""
41945
41946#. type: defvr
32747aa9 41947#: doc/guix.texi:23402
544cab3d
LC
41948#, no-wrap
41949msgid "{Scheme Variable} pcscd-service-type"
41950msgstr ""
41951
41952#. type: defvr
32747aa9 41953#: doc/guix.texi:23406
544cab3d
LC
41954msgid "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:"
41955msgstr ""
41956
41957#. type: example
32747aa9 41958#: doc/guix.texi:23409
544cab3d
LC
41959#, no-wrap
41960msgid "(service pcscd-service-type)\n"
41961msgstr ""
41962
41963#. type: deftp
32747aa9 41964#: doc/guix.texi:23412
544cab3d
LC
41965#, no-wrap
41966msgid "{Data Type} pcscd-configuration"
41967msgstr ""
41968
41969#. type: deftp
32747aa9 41970#: doc/guix.texi:23414
544cab3d
LC
41971msgid "The data type representing the configuration of @command{pcscd}."
41972msgstr ""
41973
41974#. type: item
32747aa9 41975#: doc/guix.texi:23416
544cab3d
LC
41976#, no-wrap
41977msgid "@code{pcsc-lite} (default: @code{pcsc-lite})"
41978msgstr ""
41979
41980#. type: table
32747aa9 41981#: doc/guix.texi:23418
544cab3d
LC
41982msgid "The pcsc-lite package that provides pcscd."
41983msgstr ""
41984
41985#. type: item
32747aa9 41986#: doc/guix.texi:23418
544cab3d
LC
41987#, no-wrap
41988msgid "@code{usb-drivers} (default: @code{(list ccid)})"
41989msgstr ""
41990
41991#. type: table
32747aa9 41992#: doc/guix.texi:23421
544cab3d
LC
41993msgid "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."
41994msgstr ""
41995
41996#. type: cindex
32747aa9 41997#: doc/guix.texi:23424
544cab3d
LC
41998#, no-wrap
41999msgid "lirc"
42000msgstr ""
42001
42002#. type: subsubheading
32747aa9 42003#: doc/guix.texi:23425
544cab3d
LC
42004#, no-wrap
42005msgid "Lirc Service"
42006msgstr ""
42007
42008#. type: Plain text
32747aa9 42009#: doc/guix.texi:23428
544cab3d
LC
42010msgid "The @code{(gnu services lirc)} module provides the following service."
42011msgstr ""
42012
42013#. type: deffn
32747aa9 42014#: doc/guix.texi:23429
544cab3d
LC
42015#, no-wrap
42016msgid "{Scheme Procedure} lirc-service [#:lirc lirc] @"
42017msgstr ""
42018
42019#. type: deffn
32747aa9 42020#: doc/guix.texi:23434
544cab3d
LC
42021msgid "[#: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."
42022msgstr ""
42023
42024#. type: deffn
32747aa9 42025#: doc/guix.texi:23438
544cab3d
LC
42026msgid "Optionally, @var{device}, @var{driver} and @var{config-file} (configuration file name) may be specified. See @command{lircd} manual for details."
42027msgstr ""
42028
42029#. type: deffn
32747aa9 42030#: doc/guix.texi:23441
544cab3d
LC
42031msgid "Finally, @var{extra-options} is a list of additional command-line options passed to @command{lircd}."
42032msgstr ""
42033
42034#. type: cindex
32747aa9 42035#: doc/guix.texi:23443
544cab3d
LC
42036#, no-wrap
42037msgid "spice"
42038msgstr ""
42039
42040#. type: subsubheading
32747aa9 42041#: doc/guix.texi:23444
544cab3d
LC
42042#, no-wrap
42043msgid "Spice Service"
42044msgstr ""
42045
42046#. type: Plain text
32747aa9 42047#: doc/guix.texi:23447
544cab3d
LC
42048msgid "The @code{(gnu services spice)} module provides the following service."
42049msgstr ""
42050
42051#. type: deffn
32747aa9 42052#: doc/guix.texi:23448
544cab3d
LC
42053#, no-wrap
42054msgid "{Scheme Procedure} spice-vdagent-service [#:spice-vdagent]"
42055msgstr ""
42056
42057#. type: deffn
32747aa9
LC
42058#: doc/guix.texi:23452
42059msgid "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."
544cab3d
LC
42060msgstr ""
42061
42062#. type: cindex
32747aa9 42063#: doc/guix.texi:23454
544cab3d
LC
42064#, no-wrap
42065msgid "inputattach"
42066msgstr ""
42067
42068#. type: subsubheading
32747aa9 42069#: doc/guix.texi:23455
544cab3d
LC
42070#, no-wrap
42071msgid "inputattach Service"
42072msgstr ""
42073
42074#. type: cindex
32747aa9 42075#: doc/guix.texi:23457
544cab3d
LC
42076#, no-wrap
42077msgid "tablet input, for Xorg"
42078msgstr ""
42079
42080#. type: cindex
32747aa9 42081#: doc/guix.texi:23458
544cab3d
LC
42082#, no-wrap
42083msgid "touchscreen input, for Xorg"
42084msgstr ""
42085
42086#. type: Plain text
32747aa9 42087#: doc/guix.texi:23462
544cab3d
LC
42088msgid "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."
42089msgstr ""
42090
42091#. type: deffn
32747aa9 42092#: doc/guix.texi:23463
544cab3d
LC
42093#, no-wrap
42094msgid "{Scheme Variable} inputattach-service-type"
42095msgstr ""
42096
42097#. type: deffn
32747aa9 42098#: doc/guix.texi:23466
544cab3d
LC
42099msgid "Type of a service that runs @command{inputattach} on a device and dispatches events from it."
42100msgstr ""
42101
42102#. type: deftp
32747aa9 42103#: doc/guix.texi:23468
544cab3d
LC
42104#, no-wrap
42105msgid "{Data Type} inputattach-configuration"
42106msgstr ""
42107
42108#. type: item
32747aa9 42109#: doc/guix.texi:23470
544cab3d
LC
42110#, no-wrap
42111msgid "@code{device-type} (default: @code{\"wacom\"})"
42112msgstr ""
42113
42114#. type: table
32747aa9 42115#: doc/guix.texi:23473
544cab3d
LC
42116msgid "The type of device to connect to. Run @command{inputattach --help}, from the @code{inputattach} package, to see the list of supported device types."
42117msgstr ""
42118
42119#. type: item
32747aa9 42120#: doc/guix.texi:23474
544cab3d
LC
42121#, no-wrap
42122msgid "@code{device} (default: @code{\"/dev/ttyS0\"})"
42123msgstr ""
42124
42125#. type: table
32747aa9 42126#: doc/guix.texi:23476
544cab3d
LC
42127msgid "The device file to connect to the device."
42128msgstr ""
42129
42130#. type: item
32747aa9 42131#: doc/guix.texi:23477
544cab3d
LC
42132#, no-wrap
42133msgid "@code{log-file} (default: @code{#f})"
42134msgstr ""
42135
42136#. type: table
32747aa9 42137#: doc/guix.texi:23479
544cab3d
LC
42138msgid "If true, this must be the name of a file to log messages to."
42139msgstr ""
42140
42141#. type: subsection
32747aa9 42142#: doc/guix.texi:23482
544cab3d
LC
42143#, no-wrap
42144msgid "Dictionary Services"
42145msgstr ""
42146
42147#. type: cindex
32747aa9 42148#: doc/guix.texi:23483
544cab3d
LC
42149#, no-wrap
42150msgid "dictionary"
42151msgstr ""
42152
42153#. type: Plain text
32747aa9 42154#: doc/guix.texi:23485
544cab3d
LC
42155msgid "The @code{(gnu services dict)} module provides the following service:"
42156msgstr ""
42157
42158#. type: deffn
32747aa9 42159#: doc/guix.texi:23486
544cab3d
LC
42160#, no-wrap
42161msgid "{Scheme Procedure} dicod-service [#:config (dicod-configuration)]"
42162msgstr ""
42163
42164#. type: deffn
32747aa9 42165#: doc/guix.texi:23489
544cab3d
LC
42166msgid "Return a service that runs the @command{dicod} daemon, an implementation of DICT server (@pxref{Dicod,,, dico, GNU Dico Manual})."
42167msgstr ""
42168
42169#. type: deffn
32747aa9 42170#: doc/guix.texi:23493
544cab3d
LC
42171msgid "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 Dictonary of English."
42172msgstr ""
42173
42174#. type: deffn
32747aa9 42175#: doc/guix.texi:23497
544cab3d
LC
42176msgid "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})."
42177msgstr ""
42178
42179#. type: deftp
32747aa9 42180#: doc/guix.texi:23499
544cab3d
LC
42181#, no-wrap
42182msgid "{Data Type} dicod-configuration"
42183msgstr ""
42184
42185#. type: deftp
32747aa9 42186#: doc/guix.texi:23501
544cab3d
LC
42187msgid "Data type representing the configuration of dicod."
42188msgstr ""
42189
42190#. type: item
32747aa9 42191#: doc/guix.texi:23503
544cab3d
LC
42192#, no-wrap
42193msgid "@code{dico} (default: @var{dico})"
42194msgstr ""
42195
42196#. type: table
32747aa9 42197#: doc/guix.texi:23505
544cab3d
LC
42198msgid "Package object of the GNU Dico dictionary server."
42199msgstr ""
42200
42201#. type: item
32747aa9 42202#: doc/guix.texi:23506
544cab3d
LC
42203#, no-wrap
42204msgid "@code{interfaces} (default: @var{'(\"localhost\")})"
42205msgstr ""
42206
42207#. type: table
32747aa9 42208#: doc/guix.texi:23510
544cab3d
LC
42209msgid "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})."
42210msgstr ""
42211
42212#. type: item
32747aa9 42213#: doc/guix.texi:23511
544cab3d
LC
42214#, no-wrap
42215msgid "@code{handlers} (default: @var{'()})"
42216msgstr ""
42217
42218#. type: table
32747aa9 42219#: doc/guix.texi:23513
544cab3d
LC
42220msgid "List of @code{<dicod-handler>} objects denoting handlers (module instances)."
42221msgstr ""
42222
42223#. type: item
32747aa9 42224#: doc/guix.texi:23514
544cab3d
LC
42225#, no-wrap
42226msgid "@code{databases} (default: @var{(list %dicod-database:gcide)})"
42227msgstr ""
42228
42229#. type: table
32747aa9 42230#: doc/guix.texi:23516
544cab3d
LC
42231msgid "List of @code{<dicod-database>} objects denoting dictionaries to be served."
42232msgstr ""
42233
42234#. type: deftp
32747aa9 42235#: doc/guix.texi:23519
544cab3d
LC
42236#, no-wrap
42237msgid "{Data Type} dicod-handler"
42238msgstr ""
42239
42240#. type: deftp
32747aa9 42241#: doc/guix.texi:23521
544cab3d
LC
42242msgid "Data type representing a dictionary handler (module instance)."
42243msgstr ""
42244
42245#. type: table
32747aa9 42246#: doc/guix.texi:23525
544cab3d
LC
42247msgid "Name of the handler (module instance)."
42248msgstr ""
42249
42250#. type: item
32747aa9 42251#: doc/guix.texi:23526
544cab3d
LC
42252#, no-wrap
42253msgid "@code{module} (default: @var{#f})"
42254msgstr ""
42255
42256#. type: table
32747aa9 42257#: doc/guix.texi:23530
544cab3d
LC
42258msgid "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})."
42259msgstr ""
42260
42261#. type: code{#1}
32747aa9 42262#: doc/guix.texi:23531 doc/guix.texi:23551
544cab3d
LC
42263#, no-wrap
42264msgid "options"
42265msgstr ""
42266
42267#. type: table
32747aa9 42268#: doc/guix.texi:23533
544cab3d
LC
42269msgid "List of strings or gexps representing the arguments for the module handler"
42270msgstr ""
42271
42272#. type: deftp
32747aa9 42273#: doc/guix.texi:23536
544cab3d
LC
42274#, no-wrap
42275msgid "{Data Type} dicod-database"
42276msgstr ""
42277
42278#. type: deftp
32747aa9 42279#: doc/guix.texi:23538
544cab3d
LC
42280msgid "Data type representing a dictionary database."
42281msgstr ""
42282
42283#. type: table
32747aa9 42284#: doc/guix.texi:23542
544cab3d
LC
42285msgid "Name of the database, will be used in DICT commands."
42286msgstr ""
42287
42288#. type: code{#1}
32747aa9 42289#: doc/guix.texi:23543
544cab3d
LC
42290#, no-wrap
42291msgid "handler"
42292msgstr ""
42293
42294#. type: table
32747aa9 42295#: doc/guix.texi:23546
544cab3d
LC
42296msgid "Name of the dicod handler (module instance) used by this database (@pxref{Handlers,,, dico, GNU Dico Manual})."
42297msgstr ""
42298
42299#. type: item
32747aa9 42300#: doc/guix.texi:23547
544cab3d
LC
42301#, no-wrap
42302msgid "@code{complex?} (default: @var{#f})"
42303msgstr ""
42304
42305#. type: table
32747aa9 42306#: doc/guix.texi:23550
544cab3d
LC
42307msgid "Whether the database configuration complex. The complex configuration will need a corresponding @code{<dicod-handler>} object, otherwise not."
42308msgstr ""
42309
42310#. type: table
32747aa9 42311#: doc/guix.texi:23554
544cab3d
LC
42312msgid "List of strings or gexps representing the arguments for the database (@pxref{Databases,,, dico, GNU Dico Manual})."
42313msgstr ""
42314
42315#. type: defvr
32747aa9 42316#: doc/guix.texi:23557
544cab3d
LC
42317#, no-wrap
42318msgid "{Scheme Variable} %dicod-database:gcide"
42319msgstr ""
42320
42321#. type: defvr
32747aa9 42322#: doc/guix.texi:23560
544cab3d
LC
42323msgid "A @code{<dicod-database>} object serving the GNU Collaborative International Dictionary of English using the @code{gcide} package."
42324msgstr ""
42325
42326#. type: Plain text
32747aa9 42327#: doc/guix.texi:23563
544cab3d
LC
42328msgid "The following is an example @code{dicod-service} configuration."
42329msgstr ""
42330
42331#. type: example
32747aa9 42332#: doc/guix.texi:23578
544cab3d
LC
42333#, no-wrap
42334msgid ""
42335"(dicod-service #:config\n"
42336" (dicod-configuration\n"
42337" (handlers (list (dicod-handler\n"
42338" (name \"wordnet\")\n"
42339" (module \"dictorg\")\n"
42340" (options\n"
42341" (list #~(string-append \"dbdir=\" #$wordnet))))))\n"
42342" (databases (list (dicod-database\n"
42343" (name \"wordnet\")\n"
42344" (complex? #t)\n"
42345" (handler \"wordnet\")\n"
42346" (options '(\"database=wn\")))\n"
42347" %dicod-database:gcide))))\n"
42348msgstr ""
42349
42350#. type: cindex
32747aa9 42351#: doc/guix.texi:23580
544cab3d
LC
42352#, no-wrap
42353msgid "Docker"
42354msgstr ""
42355
42356#. type: subsubheading
32747aa9 42357#: doc/guix.texi:23581
544cab3d
LC
42358#, no-wrap
42359msgid "Docker Service"
42360msgstr ""
42361
42362#. type: Plain text
32747aa9 42363#: doc/guix.texi:23584
544cab3d
LC
42364msgid "The @code{(gnu services docker)} module provides the following service."
42365msgstr ""
42366
42367#. type: defvr
32747aa9 42368#: doc/guix.texi:23585
544cab3d
LC
42369#, no-wrap
42370msgid "{Scheme Variable} docker-service-type"
42371msgstr ""
42372
42373#. type: defvr
32747aa9
LC
42374#: doc/guix.texi:23590
42375msgid "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."
544cab3d
LC
42376msgstr ""
42377
42378#. type: deftp
32747aa9 42379#: doc/guix.texi:23593
544cab3d
LC
42380#, no-wrap
42381msgid "{Data Type} docker-configuration"
42382msgstr ""
42383
42384#. type: deftp
32747aa9 42385#: doc/guix.texi:23595
544cab3d
LC
42386msgid "This is the data type representing the configuration of Docker and Containerd."
42387msgstr ""
42388
42389#. type: item
32747aa9 42390#: doc/guix.texi:23598
544cab3d
LC
42391#, no-wrap
42392msgid "@code{package} (default: @code{docker})"
42393msgstr ""
42394
42395#. type: table
32747aa9 42396#: doc/guix.texi:23600
544cab3d
LC
42397msgid "The Docker package to use."
42398msgstr ""
42399
42400#. type: item
32747aa9 42401#: doc/guix.texi:23601
544cab3d
LC
42402#, no-wrap
42403msgid "@code{containerd} (default: @var{containerd})"
42404msgstr ""
42405
42406#. type: table
32747aa9 42407#: doc/guix.texi:23603
544cab3d
LC
42408msgid "The Containerd package to use."
42409msgstr ""
42410
42411#. type: cindex
32747aa9 42412#: doc/guix.texi:23610
544cab3d
LC
42413#, no-wrap
42414msgid "setuid programs"
42415msgstr ""
42416
42417#. type: Plain text
32747aa9 42418#: doc/guix.texi:23620
544cab3d
LC
42419msgid "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.)"
42420msgstr ""
42421
42422#. type: Plain text
32747aa9 42423#: doc/guix.texi:23627
544cab3d
LC
42424msgid "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."
42425msgstr ""
42426
42427#. type: Plain text
32747aa9 42428#: doc/guix.texi:23633
544cab3d
LC
42429msgid "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}):"
42430msgstr ""
42431
42432#. type: example
32747aa9 42433#: doc/guix.texi:23636
544cab3d
LC
42434#, no-wrap
42435msgid "#~(string-append #$shadow \"/bin/passwd\")\n"
42436msgstr ""
42437
42438#. type: Plain text
32747aa9 42439#: doc/guix.texi:23640
544cab3d
LC
42440msgid "A default set of setuid programs is defined by the @code{%setuid-programs} variable of the @code{(gnu system)} module."
42441msgstr ""
42442
42443#. type: defvr
32747aa9 42444#: doc/guix.texi:23641
544cab3d
LC
42445#, no-wrap
42446msgid "{Scheme Variable} %setuid-programs"
42447msgstr ""
42448
42449#. type: defvr
32747aa9 42450#: doc/guix.texi:23643
544cab3d
LC
42451msgid "A list of G-expressions denoting common programs that are setuid-root."
42452msgstr ""
42453
42454#. type: defvr
32747aa9 42455#: doc/guix.texi:23646
544cab3d
LC
42456msgid "The list includes commands such as @command{passwd}, @command{ping}, @command{su}, and @command{sudo}."
42457msgstr ""
42458
42459#. type: Plain text
32747aa9 42460#: doc/guix.texi:23652
544cab3d
LC
42461msgid "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."
42462msgstr ""
42463
42464#. type: cindex
32747aa9 42465#: doc/guix.texi:23656
544cab3d
LC
42466#, no-wrap
42467msgid "HTTPS, certificates"
42468msgstr ""
42469
42470#. type: cindex
32747aa9 42471#: doc/guix.texi:23657
544cab3d
LC
42472#, no-wrap
42473msgid "X.509 certificates"
42474msgstr ""
42475
42476#. type: cindex
32747aa9 42477#: doc/guix.texi:23658
544cab3d
LC
42478#, no-wrap
42479msgid "TLS"
42480msgstr ""
42481
42482#. type: Plain text
32747aa9 42483#: doc/guix.texi:23665
544cab3d
LC
42484msgid "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."
42485msgstr ""
42486
42487#. type: Plain text
32747aa9 42488#: doc/guix.texi:23669
544cab3d
LC
42489msgid "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."
42490msgstr ""
42491
42492#. type: Plain text
32747aa9 42493#: doc/guix.texi:23673
544cab3d
LC
42494msgid "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."
42495msgstr ""
42496
42497#. type: Plain text
32747aa9 42498#: doc/guix.texi:23680
544cab3d
LC
42499msgid "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."
42500msgstr ""
42501
42502#. type: Plain text
32747aa9 42503#: doc/guix.texi:23685
544cab3d
LC
42504msgid "Note that it is @emph{not} part of @var{%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."
42505msgstr ""
42506
42507#. type: Plain text
32747aa9 42508#: doc/guix.texi:23695
544cab3d
LC
42509msgid "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 @code{SSL_CERT_DIR} and @code{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 @code{GIT_SSL_CAINFO} environment variable. Thus, you would typically run something like:"
42510msgstr ""
42511
42512#. type: example
32747aa9 42513#: doc/guix.texi:23701
544cab3d
LC
42514#, no-wrap
42515msgid ""
32747aa9 42516"$ guix install nss-certs\n"
544cab3d
LC
42517"$ export SSL_CERT_DIR=\"$HOME/.guix-profile/etc/ssl/certs\"\n"
42518"$ export SSL_CERT_FILE=\"$HOME/.guix-profile/etc/ssl/certs/ca-certificates.crt\"\n"
42519"$ export GIT_SSL_CAINFO=\"$SSL_CERT_FILE\"\n"
42520msgstr ""
42521
42522#. type: Plain text
32747aa9 42523#: doc/guix.texi:23706
544cab3d
LC
42524msgid "As another example, R requires the @code{CURL_CA_BUNDLE} environment variable to point to a certificate bundle, so you would have to run something like this:"
42525msgstr ""
42526
42527#. type: example
32747aa9 42528#: doc/guix.texi:23710
544cab3d
LC
42529#, no-wrap
42530msgid ""
32747aa9 42531"$ guix install nss-certs\n"
544cab3d
LC
42532"$ export CURL_CA_BUNDLE=\"$HOME/.guix-profile/etc/ssl/certs/ca-certificates.crt\"\n"
42533msgstr ""
42534
42535#. type: Plain text
32747aa9 42536#: doc/guix.texi:23714
544cab3d
LC
42537msgid "For other applications you may want to look up the required environment variable in the relevant documentation."
42538msgstr ""
42539
42540#. type: cindex
32747aa9 42541#: doc/guix.texi:23719
544cab3d
LC
42542#, no-wrap
42543msgid "name service switch"
42544msgstr ""
42545
42546#. type: cindex
32747aa9 42547#: doc/guix.texi:23720
544cab3d
LC
42548#, no-wrap
42549msgid "NSS"
42550msgstr ""
42551
42552#. type: Plain text
32747aa9 42553#: doc/guix.texi:23729
544cab3d
LC
42554msgid "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})."
42555msgstr ""
42556
42557#. type: Plain text
32747aa9 42558#: doc/guix.texi:23736
544cab3d
LC
42559msgid "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}})."
42560msgstr ""
42561
42562#. type: cindex
32747aa9 42563#: doc/guix.texi:23737
544cab3d
LC
42564#, no-wrap
42565msgid "nss-mdns"
42566msgstr ""
42567
42568#. type: cindex
32747aa9 42569#: doc/guix.texi:23738
544cab3d
LC
42570#, no-wrap
42571msgid ".local, host name lookup"
42572msgstr ""
42573
42574#. type: Plain text
32747aa9 42575#: doc/guix.texi:23743
544cab3d
LC
42576msgid "As an example, the declaration below configures the NSS to use the @uref{http://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}:"
42577msgstr ""
42578
42579#. type: example
32747aa9 42580#: doc/guix.texi:23747
544cab3d
LC
42581#, no-wrap
42582msgid ""
42583"(name-service-switch\n"
42584" (hosts (list %files ;first, check /etc/hosts\n"
42585"\n"
42586msgstr ""
42587
42588#. type: example
32747aa9 42589#: doc/guix.texi:23752
544cab3d
LC
42590#, no-wrap
42591msgid ""
42592" ;; If the above did not succeed, try\n"
42593" ;; with 'mdns_minimal'.\n"
42594" (name-service\n"
42595" (name \"mdns_minimal\")\n"
42596"\n"
42597msgstr ""
42598
42599#. type: example
32747aa9 42600#: doc/guix.texi:23758
544cab3d
LC
42601#, no-wrap
42602msgid ""
42603" ;; 'mdns_minimal' is authoritative for\n"
42604" ;; '.local'. When it returns \"not found\",\n"
42605" ;; no need to try the next methods.\n"
42606" (reaction (lookup-specification\n"
42607" (not-found => return))))\n"
42608"\n"
42609msgstr ""
42610
42611#. type: example
32747aa9 42612#: doc/guix.texi:23762
544cab3d
LC
42613#, no-wrap
42614msgid ""
42615" ;; Then fall back to DNS.\n"
42616" (name-service\n"
42617" (name \"dns\"))\n"
42618"\n"
42619msgstr ""
42620
42621#. type: example
32747aa9 42622#: doc/guix.texi:23766
544cab3d
LC
42623#, no-wrap
42624msgid ""
42625" ;; Finally, try with the \"full\" 'mdns'.\n"
42626" (name-service\n"
42627" (name \"mdns\")))))\n"
42628msgstr ""
42629
42630#. type: Plain text
32747aa9 42631#: doc/guix.texi:23771
544cab3d
LC
42632msgid "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."
42633msgstr ""
42634
42635#. type: Plain text
32747aa9 42636#: doc/guix.texi:23779
544cab3d
LC
42637msgid "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 @var{%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}})."
42638msgstr ""
42639
42640#. type: Plain text
32747aa9 42641#: doc/guix.texi:23782
544cab3d
LC
42642msgid "For convenience, the following variables provide typical NSS configurations."
42643msgstr ""
42644
42645#. type: defvr
32747aa9 42646#: doc/guix.texi:23783
544cab3d
LC
42647#, no-wrap
42648msgid "{Scheme Variable} %default-nss"
42649msgstr ""
42650
42651#. type: defvr
32747aa9 42652#: doc/guix.texi:23786
544cab3d
LC
42653msgid "This is the default name service switch configuration, a @code{name-service-switch} object."
42654msgstr ""
42655
42656#. type: defvr
32747aa9 42657#: doc/guix.texi:23788
544cab3d
LC
42658#, no-wrap
42659msgid "{Scheme Variable} %mdns-host-lookup-nss"
42660msgstr ""
42661
42662#. type: defvr
32747aa9 42663#: doc/guix.texi:23791
544cab3d
LC
42664msgid "This is the name service switch configuration with support for host name lookup over multicast DNS (mDNS) for host names ending in @code{.local}."
42665msgstr ""
42666
42667#. type: Plain text
32747aa9 42668#: doc/guix.texi:23801
544cab3d
LC
42669msgid "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}."
42670msgstr ""
42671
42672#. type: deftp
32747aa9 42673#: doc/guix.texi:23802
544cab3d
LC
42674#, no-wrap
42675msgid "{Data Type} name-service-switch"
42676msgstr ""
42677
42678#. type: deftp
32747aa9 42679#: doc/guix.texi:23807
544cab3d
LC
42680msgid "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."
42681msgstr ""
42682
42683#. type: item
32747aa9 42684#: doc/guix.texi:23809
544cab3d
LC
42685#, no-wrap
42686msgid "aliases"
42687msgstr ""
42688
42689#. type: itemx
32747aa9 42690#: doc/guix.texi:23810
544cab3d
LC
42691#, no-wrap
42692msgid "ethers"
42693msgstr ""
42694
42695#. type: itemx
32747aa9 42696#: doc/guix.texi:23812
544cab3d
LC
42697#, no-wrap
42698msgid "gshadow"
42699msgstr ""
42700
42701#. type: itemx
32747aa9 42702#: doc/guix.texi:23813
544cab3d
LC
42703#, no-wrap
42704msgid "hosts"
42705msgstr ""
42706
42707#. type: itemx
32747aa9 42708#: doc/guix.texi:23814
544cab3d
LC
42709#, no-wrap
42710msgid "initgroups"
42711msgstr ""
42712
42713#. type: itemx
32747aa9 42714#: doc/guix.texi:23815
544cab3d
LC
42715#, no-wrap
42716msgid "netgroup"
42717msgstr ""
42718
42719#. type: itemx
32747aa9 42720#: doc/guix.texi:23816
544cab3d
LC
42721#, no-wrap
42722msgid "networks"
42723msgstr ""
42724
42725#. type: itemx
32747aa9 42726#: doc/guix.texi:23818
544cab3d
LC
42727#, no-wrap
42728msgid "public-key"
42729msgstr ""
42730
42731#. type: itemx
32747aa9 42732#: doc/guix.texi:23819
544cab3d
LC
42733#, no-wrap
42734msgid "rpc"
42735msgstr ""
42736
42737#. type: itemx
32747aa9 42738#: doc/guix.texi:23821
544cab3d
LC
42739#, no-wrap
42740msgid "shadow"
42741msgstr ""
42742
42743#. type: table
32747aa9 42744#: doc/guix.texi:23824
544cab3d
LC
42745msgid "The system databases handled by the NSS. Each of these fields must be a list of @code{<name-service>} objects (see below)."
42746msgstr ""
42747
42748#. type: deftp
32747aa9 42749#: doc/guix.texi:23827
544cab3d
LC
42750#, no-wrap
42751msgid "{Data Type} name-service"
42752msgstr ""
42753
42754#. type: deftp
32747aa9 42755#: doc/guix.texi:23831
544cab3d
LC
42756msgid "This is the data type representing an actual name service and the associated lookup action."
42757msgstr ""
42758
42759#. type: table
32747aa9 42760#: doc/guix.texi:23836
544cab3d
LC
42761msgid "A string denoting the name service (@pxref{Services in the NSS configuration,,, libc, The GNU C Library Reference Manual})."
42762msgstr ""
42763
42764#. type: table
32747aa9 42765#: doc/guix.texi:23841
544cab3d
LC
42766msgid "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}})."
42767msgstr ""
42768
42769#. type: item
32747aa9 42770#: doc/guix.texi:23842
544cab3d
LC
42771#, no-wrap
42772msgid "reaction"
42773msgstr ""
42774
42775#. type: table
32747aa9 42776#: doc/guix.texi:23846
544cab3d
LC
42777msgid "An action specified using the @code{lookup-specification} macro (@pxref{Actions in the NSS configuration,,, libc, The GNU C Library Reference Manual}). For example:"
42778msgstr ""
42779
42780#. type: example
32747aa9 42781#: doc/guix.texi:23850
544cab3d
LC
42782#, no-wrap
42783msgid ""
42784"(lookup-specification (unavailable => continue)\n"
42785" (success => return))\n"
42786msgstr ""
42787
42788#. type: Plain text
32747aa9 42789#: doc/guix.texi:23864
544cab3d
LC
42790msgid "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."
42791msgstr ""
42792
42793#. type: Plain text
32747aa9 42794#: doc/guix.texi:23873
544cab3d
LC
42795msgid "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:"
42796msgstr ""
42797
42798#. type: example
32747aa9 42799#: doc/guix.texi:23878
544cab3d
LC
42800#, no-wrap
42801msgid ""
42802"(operating-system\n"
42803" ;; @dots{}\n"
42804" (initrd-modules (cons \"megaraid_sas\" %base-initrd-modules)))\n"
42805msgstr ""
42806
42807#. type: defvr
32747aa9 42808#: doc/guix.texi:23880
544cab3d
LC
42809#, no-wrap
42810msgid "{Scheme Variable} %base-initrd-modules"
42811msgstr ""
42812
42813#. type: defvr
32747aa9 42814#: doc/guix.texi:23882
544cab3d
LC
42815msgid "This is the list of kernel modules included in the initrd by default."
42816msgstr ""
42817
42818#. type: Plain text
32747aa9 42819#: doc/guix.texi:23890
544cab3d
LC
42820msgid "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."
42821msgstr ""
42822
42823#. type: Plain text
32747aa9 42824#: doc/guix.texi:23895
544cab3d
LC
42825msgid "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:"
42826msgstr ""
42827
42828#. type: example
32747aa9 42829#: doc/guix.texi:23903
544cab3d
LC
42830#, no-wrap
42831msgid ""
42832"(initrd (lambda (file-systems . rest)\n"
42833" ;; Create a standard initrd but set up networking\n"
42834" ;; with the parameters QEMU expects by default.\n"
42835" (apply base-initrd file-systems\n"
42836" #:qemu-networking? #t\n"
42837" rest)))\n"
42838msgstr ""
42839
42840#. type: Plain text
32747aa9 42841#: doc/guix.texi:23908
544cab3d
LC
42842msgid "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."
42843msgstr ""
42844
42845#. type: Plain text
32747aa9 42846#: doc/guix.texi:23915
544cab3d
LC
42847msgid "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."
42848msgstr ""
42849
42850#. type: Plain text
32747aa9 42851#: doc/guix.texi:23920
544cab3d
LC
42852msgid "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:"
42853msgstr ""
42854
42855#. type: item
32747aa9 42856#: doc/guix.texi:23922
544cab3d
LC
42857#, no-wrap
42858msgid "--load=@var{boot}"
42859msgstr ""
42860
42861#. type: table
32747aa9 42862#: doc/guix.texi:23925
544cab3d
LC
42863msgid "Tell the initial RAM disk to load @var{boot}, a file containing a Scheme program, once it has mounted the root file system."
42864msgstr ""
42865
42866#. type: table
32747aa9 42867#: doc/guix.texi:23929
544cab3d
LC
42868msgid "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."
42869msgstr ""
42870
42871#. type: item
32747aa9 42872#: doc/guix.texi:23930
544cab3d
LC
42873#, no-wrap
42874msgid "--root=@var{root}"
42875msgstr ""
42876
42877#. type: table
32747aa9 42878#: doc/guix.texi:23934
544cab3d
LC
42879msgid "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."
42880msgstr ""
42881
42882#. type: table
32747aa9 42883#: doc/guix.texi:23938
544cab3d
LC
42884msgid "Have @file{/run/booted-system} and @file{/run/current-system} point to @var{system}."
42885msgstr ""
42886
42887#. type: item
32747aa9 42888#: doc/guix.texi:23939
544cab3d
LC
42889#, no-wrap
42890msgid "modprobe.blacklist=@var{modules}@dots{}"
42891msgstr ""
42892
42893#. type: cindex
32747aa9 42894#: doc/guix.texi:23940
544cab3d
LC
42895#, no-wrap
42896msgid "module, black-listing"
42897msgstr ""
42898
42899#. type: cindex
32747aa9 42900#: doc/guix.texi:23941
544cab3d
LC
42901#, no-wrap
42902msgid "black list, of kernel modules"
42903msgstr ""
42904
42905#. type: table
32747aa9 42906#: doc/guix.texi:23946
544cab3d
LC
42907msgid "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}."
42908msgstr ""
42909
42910#. type: item
32747aa9 42911#: doc/guix.texi:23947
544cab3d
LC
42912#, no-wrap
42913msgid "--repl"
42914msgstr ""
42915
42916#. type: table
32747aa9 42917#: doc/guix.texi:23953
544cab3d
LC
42918msgid "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."
42919msgstr ""
42920
42921#. type: Plain text
32747aa9 42922#: doc/guix.texi:23959
544cab3d
LC
42923msgid "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."
42924msgstr ""
42925
42926#. type: deffn
32747aa9 42927#: doc/guix.texi:23962
544cab3d
LC
42928#, no-wrap
42929msgid "{Scheme Procedure} raw-initrd @var{file-systems} @"
42930msgstr ""
42931
42932#. type: deffn
32747aa9 42933#: doc/guix.texi:23975
544cab3d
LC
42934msgid "[#: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 @code{--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."
42935msgstr ""
42936
42937#. type: deffn
32747aa9 42938#: doc/guix.texi:23981 doc/guix.texi:24005
544cab3d
LC
42939msgid "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."
42940msgstr ""
42941
42942#. type: deffn
32747aa9 42943#: doc/guix.texi:23985
544cab3d
LC
42944msgid "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."
42945msgstr ""
42946
42947#. type: deffn
32747aa9 42948#: doc/guix.texi:23988
544cab3d
LC
42949msgid "When @var{volatile-root?} is true, the root file system is writable but any changes to it are lost."
42950msgstr ""
42951
42952#. type: deffn
32747aa9 42953#: doc/guix.texi:23990
544cab3d
LC
42954#, no-wrap
42955msgid "{Scheme Procedure} base-initrd @var{file-systems} @"
42956msgstr ""
42957
42958#. type: deffn
32747aa9 42959#: doc/guix.texi:23999
544cab3d
LC
42960msgid "[#: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 @code{--root}. @var{mapped-devices} is a list of device mappings to realize before @var{file-systems} are mounted."
42961msgstr ""
42962
42963#. type: deffn
32747aa9 42964#: doc/guix.texi:24007
544cab3d
LC
42965msgid "@var{qemu-networking?} and @var{volatile-root?} behaves as in @code{raw-initrd}."
42966msgstr ""
42967
42968#. type: deffn
32747aa9 42969#: doc/guix.texi:24012
544cab3d
LC
42970msgid "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."
42971msgstr ""
42972
42973#. type: Plain text
32747aa9 42974#: doc/guix.texi:24019
544cab3d
LC
42975msgid "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."
42976msgstr ""
42977
42978#. type: deffn
32747aa9 42979#: doc/guix.texi:24020
544cab3d
LC
42980#, no-wrap
42981msgid "{Scheme Procedure} expression->initrd @var{exp} @"
42982msgstr ""
42983
42984#. type: deffn
32747aa9 42985#: doc/guix.texi:24026
544cab3d
LC
42986msgid "[#:guile %guile-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."
42987msgstr ""
42988
42989#. type: cindex
32747aa9 42990#: doc/guix.texi:24032
544cab3d
LC
42991#, no-wrap
42992msgid "boot loader"
42993msgstr ""
42994
42995#. type: Plain text
32747aa9 42996#: doc/guix.texi:24039
544cab3d
LC
42997msgid "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."
42998msgstr ""
42999
43000#. type: Plain text
32747aa9 43001#: doc/guix.texi:24044
544cab3d
LC
43002msgid "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."
43003msgstr ""
43004
43005#. type: deftp
32747aa9 43006#: doc/guix.texi:24045
544cab3d
LC
43007#, no-wrap
43008msgid "{Data Type} bootloader-configuration"
43009msgstr ""
43010
43011#. type: deftp
32747aa9 43012#: doc/guix.texi:24047
544cab3d
LC
43013msgid "The type of a bootloader configuration declaration."
43014msgstr ""
43015
43016#. type: cindex
32747aa9 43017#: doc/guix.texi:24051
544cab3d
LC
43018#, no-wrap
43019msgid "EFI, bootloader"
43020msgstr ""
43021
43022#. type: cindex
32747aa9 43023#: doc/guix.texi:24052
544cab3d
LC
43024#, no-wrap
43025msgid "UEFI, bootloader"
43026msgstr ""
43027
43028#. type: cindex
32747aa9 43029#: doc/guix.texi:24053
544cab3d
LC
43030#, no-wrap
43031msgid "BIOS, bootloader"
43032msgstr ""
43033
43034#. type: table
32747aa9 43035#: doc/guix.texi:24057
544cab3d
LC
43036msgid "The bootloader to use, as a @code{bootloader} object. For now @code{grub-bootloader}, @code{grub-efi-bootloader}, @code{extlinux-bootloader} and @code{u-boot-bootloader} are supported."
43037msgstr ""
43038
43039#. type: table
32747aa9 43040#: doc/guix.texi:24063
544cab3d
LC
43041msgid "@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."
43042msgstr ""
43043
43044#. type: table
32747aa9 43045#: doc/guix.texi:24067
544cab3d
LC
43046msgid "@code{grub-bootloader} allows you to boot in particular Intel-based machines in ``legacy'' BIOS mode."
43047msgstr ""
43048
43049#. type: cindex
32747aa9 43050#: doc/guix.texi:24068
544cab3d
LC
43051#, no-wrap
43052msgid "ARM, bootloaders"
43053msgstr ""
43054
43055#. type: cindex
32747aa9 43056#: doc/guix.texi:24069
544cab3d
LC
43057#, no-wrap
43058msgid "AArch64, bootloaders"
43059msgstr ""
43060
43061#. type: table
32747aa9
LC
43062#: doc/guix.texi:24074
43063msgid "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}."
544cab3d
LC
43064msgstr ""
43065
43066#. type: table
32747aa9 43067#: doc/guix.texi:24078
544cab3d
LC
43068msgid "This is a string denoting the target onto which to install the bootloader."
43069msgstr ""
43070
43071#. type: table
32747aa9 43072#: doc/guix.texi:24085
544cab3d
LC
43073msgid "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}."
43074msgstr ""
43075
43076#. type: item
32747aa9 43077#: doc/guix.texi:24086
544cab3d
LC
43078#, no-wrap
43079msgid "@code{menu-entries} (default: @code{()})"
43080msgstr ""
43081
43082#. type: table
32747aa9 43083#: doc/guix.texi:24090
544cab3d
LC
43084msgid "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."
43085msgstr ""
43086
43087#. type: item
32747aa9 43088#: doc/guix.texi:24091
544cab3d
LC
43089#, no-wrap
43090msgid "@code{default-entry} (default: @code{0})"
43091msgstr ""
43092
43093#. type: table
32747aa9 43094#: doc/guix.texi:24094
544cab3d
LC
43095msgid "The index of the default boot menu entry. Index 0 is for the entry of the current system."
43096msgstr ""
43097
43098#. type: item
32747aa9 43099#: doc/guix.texi:24095
544cab3d
LC
43100#, no-wrap
43101msgid "@code{timeout} (default: @code{5})"
43102msgstr ""
43103
43104#. type: table
32747aa9 43105#: doc/guix.texi:24098
544cab3d
LC
43106msgid "The number of seconds to wait for keyboard input before booting. Set to 0 to boot immediately, and to -1 to wait indefinitely."
43107msgstr ""
43108
43109#. type: cindex
32747aa9 43110#: doc/guix.texi:24099
544cab3d
LC
43111#, no-wrap
43112msgid "keyboard layout, for the bootloader"
43113msgstr ""
43114
43115#. type: table
32747aa9 43116#: doc/guix.texi:24103
544cab3d
LC
43117msgid "If this is @code{#f}, the bootloader's menu (if any) uses the default keyboard layout, usually US@tie{}English (``qwerty'')."
43118msgstr ""
43119
43120#. type: table
32747aa9 43121#: doc/guix.texi:24106
544cab3d
LC
43122msgid "Otherwise, this must be a @code{keyboard-layout} object (@pxref{Keyboard Layout})."
43123msgstr ""
43124
43125#. type: quotation
32747aa9 43126#: doc/guix.texi:24110
544cab3d
LC
43127msgid "This option is currently ignored by bootloaders other than @code{grub} and @code{grub-efi}."
43128msgstr ""
43129
43130#. type: item
32747aa9 43131#: doc/guix.texi:24112
544cab3d
LC
43132#, no-wrap
43133msgid "@code{theme} (default: @var{#f})"
43134msgstr ""
43135
43136#. type: table
32747aa9 43137#: doc/guix.texi:24116
544cab3d
LC
43138msgid "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."
43139msgstr ""
43140
43141#. type: item
32747aa9 43142#: doc/guix.texi:24117
544cab3d
LC
43143#, no-wrap
43144msgid "@code{terminal-outputs} (default: @code{'gfxterm})"
43145msgstr ""
43146
43147#. type: table
32747aa9 43148#: doc/guix.texi:24124
544cab3d
LC
43149msgid "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})."
43150msgstr ""
43151
43152#. type: item
32747aa9 43153#: doc/guix.texi:24125
544cab3d
LC
43154#, no-wrap
43155msgid "@code{terminal-inputs} (default: @code{'()})"
43156msgstr ""
43157
43158#. type: table
32747aa9 43159#: doc/guix.texi:24133
544cab3d
LC
43160msgid "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})."
43161msgstr ""
43162
43163#. type: item
32747aa9 43164#: doc/guix.texi:24134
544cab3d
LC
43165#, no-wrap
43166msgid "@code{serial-unit} (default: @code{#f})"
43167msgstr ""
43168
43169#. type: table
32747aa9 43170#: doc/guix.texi:24138
544cab3d
LC
43171msgid "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})."
43172msgstr ""
43173
43174#. type: item
32747aa9 43175#: doc/guix.texi:24139
544cab3d
LC
43176#, no-wrap
43177msgid "@code{serial-speed} (default: @code{#f})"
43178msgstr ""
43179
43180#. type: table
32747aa9 43181#: doc/guix.texi:24143
544cab3d
LC
43182msgid "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})."
43183msgstr ""
43184
43185#. type: cindex
32747aa9 43186#: doc/guix.texi:24147
544cab3d
LC
43187#, no-wrap
43188msgid "dual boot"
43189msgstr ""
43190
43191#. type: cindex
32747aa9 43192#: doc/guix.texi:24148
544cab3d
LC
43193#, no-wrap
43194msgid "boot menu"
43195msgstr ""
43196
43197#. type: Plain text
32747aa9 43198#: doc/guix.texi:24154
544cab3d
LC
43199msgid "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:"
43200msgstr ""
43201
43202#. type: example
32747aa9 43203#: doc/guix.texi:24161
544cab3d
LC
43204#, no-wrap
43205msgid ""
43206"(menu-entry\n"
43207" (label \"The Other Distro\")\n"
43208" (linux \"/boot/old/vmlinux-2.6.32\")\n"
43209" (linux-arguments '(\"root=/dev/sda2\"))\n"
43210" (initrd \"/boot/old/initrd\"))\n"
43211msgstr ""
43212
43213#. type: Plain text
32747aa9 43214#: doc/guix.texi:24164
544cab3d
LC
43215msgid "Details below."
43216msgstr ""
43217
43218#. type: deftp
32747aa9 43219#: doc/guix.texi:24165
544cab3d
LC
43220#, no-wrap
43221msgid "{Data Type} menu-entry"
43222msgstr ""
43223
43224#. type: deftp
32747aa9 43225#: doc/guix.texi:24167
544cab3d
LC
43226msgid "The type of an entry in the bootloader menu."
43227msgstr ""
43228
544cab3d 43229#. type: table
32747aa9 43230#: doc/guix.texi:24172
544cab3d
LC
43231msgid "The label to show in the menu---e.g., @code{\"GNU\"}."
43232msgstr ""
43233
43234#. type: code{#1}
32747aa9 43235#: doc/guix.texi:24173
544cab3d
LC
43236#, no-wrap
43237msgid "linux"
43238msgstr ""
43239
43240#. type: table
32747aa9 43241#: doc/guix.texi:24175
544cab3d
LC
43242msgid "The Linux kernel image to boot, for example:"
43243msgstr ""
43244
43245#. type: example
32747aa9 43246#: doc/guix.texi:24178
544cab3d
LC
43247#, no-wrap
43248msgid "(file-append linux-libre \"/bzImage\")\n"
43249msgstr ""
43250
43251#. type: table
32747aa9 43252#: doc/guix.texi:24183
544cab3d
LC
43253msgid "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:"
43254msgstr ""
43255
43256#. type: example
32747aa9 43257#: doc/guix.texi:24186
544cab3d
LC
43258#, no-wrap
43259msgid "\"(hd0,msdos1)/boot/vmlinuz\"\n"
43260msgstr ""
43261
43262#. type: table
32747aa9 43263#: doc/guix.texi:24190
544cab3d
LC
43264msgid "If the device is specified explicitly as above, then the @code{device} field is ignored entirely."
43265msgstr ""
43266
43267#. type: item
32747aa9 43268#: doc/guix.texi:24191
544cab3d
LC
43269#, no-wrap
43270msgid "@code{linux-arguments} (default: @code{()})"
43271msgstr ""
43272
43273#. type: table
32747aa9 43274#: doc/guix.texi:24194
544cab3d
LC
43275msgid "The list of extra Linux kernel command-line arguments---e.g., @code{(\"console=ttyS0\")}."
43276msgstr ""
43277
43278#. type: table
32747aa9 43279#: doc/guix.texi:24198
544cab3d
LC
43280msgid "A G-Expression or string denoting the file name of the initial RAM disk to use (@pxref{G-Expressions})."
43281msgstr ""
43282
43283#. type: item
32747aa9 43284#: doc/guix.texi:24198
544cab3d
LC
43285#, no-wrap
43286msgid "@code{device} (default: @code{#f})"
43287msgstr ""
43288
43289#. type: table
32747aa9 43290#: doc/guix.texi:24201
544cab3d
LC
43291msgid "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})."
43292msgstr ""
43293
43294#. type: table
32747aa9 43295#: doc/guix.texi:24207
544cab3d
LC
43296msgid "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}."
43297msgstr ""
43298
43299#. type: Plain text
32747aa9
LC
43300#: doc/guix.texi:24214
43301msgid "For now only GRUB has theme support. GRUB themes are created using the @code{grub-theme} form, which is not documented yet."
544cab3d
LC
43302msgstr ""
43303
43304#. type: defvr
32747aa9 43305#: doc/guix.texi:24219
544cab3d
LC
43306msgid "This is the default GRUB theme used by the operating system if no @code{theme} field is specified in @code{bootloader-configuration} record."
43307msgstr ""
43308
43309#. type: defvr
32747aa9 43310#: doc/guix.texi:24222
544cab3d
LC
43311msgid "It comes with a fancy background image displaying the GNU and Guix logos."
43312msgstr ""
43313
43314#. type: section
32747aa9 43315#: doc/guix.texi:24226
544cab3d
LC
43316#, no-wrap
43317msgid "Invoking @code{guix system}"
43318msgstr ""
43319
43320#. type: Plain text
32747aa9 43321#: doc/guix.texi:24231
544cab3d
LC
43322msgid "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:"
43323msgstr ""
43324
43325#. type: example
32747aa9 43326#: doc/guix.texi:24234
544cab3d
LC
43327#, no-wrap
43328msgid "guix system @var{options}@dots{} @var{action} @var{file}\n"
43329msgstr ""
43330
43331#. type: Plain text
32747aa9 43332#: doc/guix.texi:24240
544cab3d
LC
43333msgid "@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:"
43334msgstr ""
43335
43336#. type: item
32747aa9 43337#: doc/guix.texi:24242
544cab3d
LC
43338#, no-wrap
43339msgid "search"
43340msgstr ""
43341
43342#. type: table
32747aa9 43343#: doc/guix.texi:24245
544cab3d
LC
43344msgid "Display available service type definitions that match the given regular expressions, sorted by relevance:"
43345msgstr ""
43346
43347#. type: example
32747aa9 43348#: doc/guix.texi:24257
544cab3d
LC
43349#, no-wrap
43350msgid ""
43351"$ guix system search console font\n"
43352"name: console-fonts\n"
43353"location: gnu/services/base.scm:729:2\n"
43354"extends: shepherd-root\n"
43355"description: Install the given fonts on the specified ttys (fonts are\n"
43356"+ per virtual console on GNU/Linux). The value of this service is a list\n"
43357"+ of tty/font pairs like:\n"
43358"+ \n"
43359"+ '((\"tty1\" . \"LatGrkCyr-8x16\"))\n"
43360"relevance: 20\n"
43361"\n"
43362msgstr ""
43363
43364#. type: example
32747aa9 43365#: doc/guix.texi:24263
544cab3d
LC
43366#, no-wrap
43367msgid ""
43368"name: mingetty\n"
43369"location: gnu/services/base.scm:1048:2\n"
43370"extends: shepherd-root\n"
43371"description: Provide console login using the `mingetty' program.\n"
43372"relevance: 2\n"
43373"\n"
43374msgstr ""
43375
43376#. type: example
32747aa9 43377#: doc/guix.texi:24270
544cab3d
LC
43378#, no-wrap
43379msgid ""
43380"name: login\n"
43381"location: gnu/services/base.scm:775:2\n"
43382"extends: pam\n"
43383"description: Provide a console log-in service as specified by its\n"
43384"+ configuration value, a `login-configuration' object.\n"
43385"relevance: 2\n"
43386"\n"
43387msgstr ""
43388
43389#. type: example
32747aa9 43390#: doc/guix.texi:24272
544cab3d
LC
43391#, no-wrap
43392msgid "@dots{}\n"
43393msgstr ""
43394
43395#. type: table
32747aa9 43396#: doc/guix.texi:24277
544cab3d
LC
43397msgid "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})."
43398msgstr ""
43399
43400#. type: item
32747aa9 43401#: doc/guix.texi:24278
544cab3d
LC
43402#, no-wrap
43403msgid "reconfigure"
43404msgstr ""
43405
43406#. type: table
32747aa9 43407#: doc/guix.texi:24283
544cab3d
LC
43408msgid "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.}."
43409msgstr ""
43410
43411#. type: table
32747aa9 43412#: doc/guix.texi:24290
544cab3d
LC
43413msgid "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})."
43414msgstr ""
43415
43416#. type: table
32747aa9 43417#: doc/guix.texi:24296
544cab3d
LC
43418msgid "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})."
43419msgstr ""
43420
43421#. type: table
32747aa9 43422#: doc/guix.texi:24301
544cab3d
LC
43423msgid "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."
43424msgstr ""
43425
43426#. type: quotation
32747aa9 43427#: doc/guix.texi:24309
544cab3d
LC
43428msgid "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."
43429msgstr ""
43430
43431#. type: item
32747aa9 43432#: doc/guix.texi:24311
544cab3d
LC
43433#, no-wrap
43434msgid "switch-generation"
43435msgstr ""
43436
43437#. type: table
32747aa9 43438#: doc/guix.texi:24320
544cab3d
LC
43439msgid "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 generatiors to a submenu, if supported by the bootloader being used. The next time the system boots, it will use the specified system generation."
43440msgstr ""
43441
43442#. type: table
32747aa9 43443#: doc/guix.texi:24324
544cab3d
LC
43444msgid "The bootloader itself is not being reinstalled when using this command. Thus, the installed bootloader is used with an updated configuration file."
43445msgstr ""
43446
43447#. type: table
32747aa9 43448#: doc/guix.texi:24328
544cab3d
LC
43449msgid "The target generation can be specified explicitly by its generation number. For example, the following invocation would switch to system generation 7:"
43450msgstr ""
43451
43452#. type: example
32747aa9 43453#: doc/guix.texi:24331
544cab3d
LC
43454#, no-wrap
43455msgid "guix system switch-generation 7\n"
43456msgstr ""
43457
43458#. type: table
32747aa9 43459#: doc/guix.texi:24339
544cab3d
LC
43460msgid "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:"
43461msgstr ""
43462
43463#. type: example
32747aa9 43464#: doc/guix.texi:24342
544cab3d
LC
43465#, no-wrap
43466msgid "guix system switch-generation -- -1\n"
43467msgstr ""
43468
43469#. type: table
32747aa9 43470#: doc/guix.texi:24350
544cab3d
LC
43471msgid "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."
43472msgstr ""
43473
43474#. type: table
32747aa9 43475#: doc/guix.texi:24352
544cab3d
LC
43476msgid "This action will fail if the specified generation does not exist."
43477msgstr ""
43478
43479#. type: item
32747aa9 43480#: doc/guix.texi:24353
544cab3d
LC
43481#, no-wrap
43482msgid "roll-back"
43483msgstr ""
43484
43485#. type: table
32747aa9 43486#: doc/guix.texi:24359
544cab3d
LC
43487msgid "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}."
43488msgstr ""
43489
43490#. type: table
32747aa9 43491#: doc/guix.texi:24363
544cab3d
LC
43492msgid "Currently, as with @command{switch-generation}, you must reboot after running this action to actually start using the preceding system generation."
43493msgstr ""
43494
43495#. type: item
32747aa9 43496#: doc/guix.texi:24364
544cab3d
LC
43497#, no-wrap
43498msgid "delete-generations"
43499msgstr ""
43500
43501#. type: cindex
32747aa9 43502#: doc/guix.texi:24365
544cab3d
LC
43503#, no-wrap
43504msgid "deleting system generations"
43505msgstr ""
43506
43507#. type: cindex
32747aa9 43508#: doc/guix.texi:24366
544cab3d
LC
43509#, no-wrap
43510msgid "saving space"
43511msgstr ""
43512
43513#. type: table
32747aa9 43514#: doc/guix.texi:24370
544cab3d
LC
43515msgid "Delete system generations, making them candidates for garbage collection (@pxref{Invoking guix gc}, for information on how to run the ``garbage collector'')."
43516msgstr ""
43517
43518#. type: table
32747aa9 43519#: doc/guix.texi:24374
544cab3d
LC
43520msgid "This works in the same way as @command{guix package --delete-generations} (@pxref{Invoking guix package, @code{--delete-generations}}). With no arguments, all system generations but the current one are deleted:"
43521msgstr ""
43522
43523#. type: example
32747aa9 43524#: doc/guix.texi:24377
544cab3d
LC
43525#, no-wrap
43526msgid "guix system delete-generations\n"
43527msgstr ""
43528
43529#. type: table
32747aa9 43530#: doc/guix.texi:24381
544cab3d
LC
43531msgid "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:"
43532msgstr ""
43533
43534#. type: example
32747aa9 43535#: doc/guix.texi:24384
544cab3d
LC
43536#, no-wrap
43537msgid "guix system delete-generations 2m\n"
43538msgstr ""
43539
43540#. type: table
32747aa9 43541#: doc/guix.texi:24389
544cab3d
LC
43542msgid "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."
43543msgstr ""
43544
43545#. type: table
32747aa9 43546#: doc/guix.texi:24394
544cab3d
LC
43547msgid "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."
43548msgstr ""
43549
43550#. type: item
32747aa9 43551#: doc/guix.texi:24395
544cab3d
LC
43552#, no-wrap
43553msgid "init"
43554msgstr ""
43555
43556#. type: table
32747aa9 43557#: doc/guix.texi:24399
544cab3d
LC
43558msgid "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:"
43559msgstr ""
43560
43561#. type: example
32747aa9 43562#: doc/guix.texi:24402
544cab3d
LC
43563#, no-wrap
43564msgid "guix system init my-os-config.scm /mnt\n"
43565msgstr ""
43566
43567#. type: table
32747aa9 43568#: doc/guix.texi:24409
544cab3d
LC
43569msgid "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."
43570msgstr ""
43571
43572#. type: table
32747aa9 43573#: doc/guix.texi:24413
544cab3d
LC
43574msgid "This command also installs bootloader on the target specified in @file{my-os-config}, unless the @option{--no-bootloader} option was passed."
43575msgstr ""
43576
43577#. type: item
32747aa9 43578#: doc/guix.texi:24414
544cab3d
LC
43579#, no-wrap
43580msgid "vm"
43581msgstr ""
43582
43583#. type: cindex
32747aa9 43584#: doc/guix.texi:24415 doc/guix.texi:24683
544cab3d
LC
43585#, no-wrap
43586msgid "virtual machine"
43587msgstr ""
43588
43589#. type: cindex
32747aa9 43590#: doc/guix.texi:24416
544cab3d
LC
43591#, no-wrap
43592msgid "VM"
43593msgstr ""
43594
43595#. type: anchor{#1}
32747aa9 43596#: doc/guix.texi:24420
544cab3d
LC
43597msgid "guix system vm"
43598msgstr ""
43599
43600#. type: table
32747aa9 43601#: doc/guix.texi:24420
544cab3d
LC
43602msgid "Build a virtual machine that contains the operating system declared in @var{file}, and return a script to run that virtual machine (VM)."
43603msgstr ""
43604
43605#. type: quotation
32747aa9 43606#: doc/guix.texi:24428
544cab3d
LC
43607msgid "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})."
43608msgstr ""
43609
43610#. type: table
32747aa9 43611#: doc/guix.texi:24433
544cab3d
LC
43612msgid "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:"
43613msgstr ""
43614
43615#. type: example
32747aa9 43616#: doc/guix.texi:24436
544cab3d
LC
43617#, no-wrap
43618msgid "$ /gnu/store/@dots{}-run-vm.sh -m 1024 -net user\n"
43619msgstr ""
43620
43621#. type: table
32747aa9 43622#: doc/guix.texi:24439
544cab3d
LC
43623msgid "The VM shares its store with the host system."
43624msgstr ""
43625
43626#. type: table
32747aa9 43627#: doc/guix.texi:24444
544cab3d
LC
43628msgid "Additional file systems can be shared between the host and the VM using the @code{--share} and @code{--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."
43629msgstr ""
43630
43631#. type: table
32747aa9 43632#: doc/guix.texi:24448
544cab3d
LC
43633msgid "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:"
43634msgstr ""
43635
43636#. type: example
32747aa9 43637#: doc/guix.texi:24452
544cab3d
LC
43638#, no-wrap
43639msgid ""
43640"guix system vm my-config.scm \\\n"
43641" --expose=$HOME --share=$HOME/tmp=/exchange\n"
43642msgstr ""
43643
43644#. type: table
32747aa9 43645#: doc/guix.texi:24457
544cab3d
LC
43646msgid "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."
43647msgstr ""
43648
43649#. type: table
32747aa9 43650#: doc/guix.texi:24463
544cab3d
LC
43651msgid "The @code{--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 @code{--image-size} option can be used to specify the size of the image."
43652msgstr ""
43653
43654#. type: cindex
32747aa9 43655#: doc/guix.texi:24464
544cab3d
LC
43656#, no-wrap
43657msgid "System images, creation in various formats"
43658msgstr ""
43659
43660#. type: cindex
32747aa9 43661#: doc/guix.texi:24465
544cab3d
LC
43662#, no-wrap
43663msgid "Creating system images in various formats"
43664msgstr ""
43665
43666#. type: item
32747aa9 43667#: doc/guix.texi:24466
544cab3d
LC
43668#, no-wrap
43669msgid "vm-image"
43670msgstr ""
43671
43672#. type: itemx
32747aa9 43673#: doc/guix.texi:24467
544cab3d
LC
43674#, no-wrap
43675msgid "disk-image"
43676msgstr ""
43677
43678#. type: itemx
32747aa9 43679#: doc/guix.texi:24468
544cab3d
LC
43680#, no-wrap
43681msgid "docker-image"
43682msgstr ""
43683
43684#. type: table
32747aa9 43685#: doc/guix.texi:24476
544cab3d
LC
43686msgid "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}."
43687msgstr ""
43688
43689#. type: table
32747aa9 43690#: doc/guix.texi:24479
544cab3d
LC
43691msgid "You can specify the root file system type by using the @option{--file-system-type} option. It defaults to @code{ext4}."
43692msgstr ""
43693
43694#. type: table
32747aa9 43695#: doc/guix.texi:24483
544cab3d
LC
43696msgid "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."
43697msgstr ""
43698
43699#. type: table
32747aa9 43700#: doc/guix.texi:24488
544cab3d
LC
43701msgid "When using @code{disk-image}, 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:"
43702msgstr ""
43703
43704#. type: example
32747aa9 43705#: doc/guix.texi:24491
544cab3d
LC
43706#, no-wrap
43707msgid "# dd if=$(guix system disk-image my-os.scm) of=/dev/sdc\n"
43708msgstr ""
43709
43710#. type: table
32747aa9 43711#: doc/guix.texi:24498
544cab3d
LC
43712msgid "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:"
43713msgstr ""
43714
43715#. type: example
32747aa9 43716#: doc/guix.texi:24504
544cab3d
LC
43717#, no-wrap
43718msgid ""
43719"image_id=\"$(docker load < guix-system-docker-image.tar.gz)\"\n"
43720"docker run -e GUIX_NEW_SYSTEM=/var/guix/profiles/system \\\\\n"
43721" --entrypoint /var/guix/profiles/system/profile/bin/guile \\\\\n"
43722" $image_id /var/guix/profiles/system/boot\n"
43723msgstr ""
43724
43725#. type: table
32747aa9 43726#: doc/guix.texi:24514
544cab3d
LC
43727msgid "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. 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 run}."
43728msgstr ""
43729
43730#. type: table
32747aa9 43731#: doc/guix.texi:24522
544cab3d
LC
43732msgid "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."
43733msgstr ""
43734
43735#. type: table
32747aa9 43736#: doc/guix.texi:24526
544cab3d
LC
43737msgid "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."
43738msgstr ""
43739
43740#. type: table
32747aa9 43741#: doc/guix.texi:24530
544cab3d
LC
43742msgid "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:"
43743msgstr ""
43744
43745#. type: example
32747aa9 43746#: doc/guix.texi:24534
544cab3d
LC
43747#, no-wrap
43748msgid ""
43749"guix system container my-config.scm \\\n"
43750" --expose=$HOME --share=$HOME/tmp=/exchange\n"
43751msgstr ""
43752
43753#. type: quotation
32747aa9 43754#: doc/guix.texi:24538
544cab3d
LC
43755msgid "This option requires Linux-libre 3.19 or newer."
43756msgstr ""
43757
43758#. type: Plain text
32747aa9 43759#: doc/guix.texi:24545
544cab3d
LC
43760msgid "@var{options} can contain any of the common build options (@pxref{Common Build Options}). In addition, @var{options} can contain one of the following:"
43761msgstr ""
43762
43763#. type: table
32747aa9 43764#: doc/guix.texi:24554
544cab3d
LC
43765msgid "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})."
43766msgstr ""
43767
43768#. type: table
32747aa9 43769#: doc/guix.texi:24559
544cab3d
LC
43770msgid "Attempt to build for @var{system} instead of the host system type. This works as per @command{guix build} (@pxref{Invoking guix build})."
43771msgstr ""
43772
43773#. type: item
32747aa9 43774#: doc/guix.texi:24560
544cab3d
LC
43775#, no-wrap
43776msgid "--derivation"
43777msgstr ""
43778
43779#. type: table
32747aa9 43780#: doc/guix.texi:24564
544cab3d
LC
43781msgid "Return the derivation file name of the given operating system without building anything."
43782msgstr ""
43783
43784#. type: item
32747aa9 43785#: doc/guix.texi:24565
544cab3d
LC
43786#, no-wrap
43787msgid "--file-system-type=@var{type}"
43788msgstr ""
43789
43790#. type: table
32747aa9 43791#: doc/guix.texi:24569
544cab3d
LC
43792msgid "For the @code{disk-image} action, create a file system of the given @var{type} on the image."
43793msgstr ""
43794
43795#. type: table
32747aa9 43796#: doc/guix.texi:24571
544cab3d
LC
43797msgid "When this option is omitted, @command{guix system} uses @code{ext4}."
43798msgstr ""
43799
43800#. type: cindex
32747aa9 43801#: doc/guix.texi:24572
544cab3d
LC
43802#, no-wrap
43803msgid "ISO-9660 format"
43804msgstr ""
43805
43806#. type: cindex
32747aa9 43807#: doc/guix.texi:24573
544cab3d
LC
43808#, no-wrap
43809msgid "CD image format"
43810msgstr ""
43811
43812#. type: cindex
32747aa9 43813#: doc/guix.texi:24574
544cab3d
LC
43814#, no-wrap
43815msgid "DVD image format"
43816msgstr ""
43817
43818#. type: table
32747aa9 43819#: doc/guix.texi:24577
544cab3d
LC
43820msgid "@code{--file-system-type=iso9660} produces an ISO-9660 image, suitable for burning on CDs and DVDs."
43821msgstr ""
43822
43823#. type: item
32747aa9 43824#: doc/guix.texi:24578
544cab3d
LC
43825#, no-wrap
43826msgid "--image-size=@var{size}"
43827msgstr ""
43828
43829#. type: table
32747aa9 43830#: doc/guix.texi:24583
544cab3d
LC
43831msgid "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})."
43832msgstr ""
43833
43834#. type: table
32747aa9 43835#: doc/guix.texi:24587
544cab3d
LC
43836msgid "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}."
43837msgstr ""
43838
43839#. type: item
32747aa9 43840#: doc/guix.texi:24593
544cab3d
LC
43841#, no-wrap
43842msgid "--skip-checks"
43843msgstr ""
43844
43845#. type: table
32747aa9 43846#: doc/guix.texi:24595
544cab3d
LC
43847msgid "Skip pre-installation safety checks."
43848msgstr ""
43849
43850#. type: table
32747aa9 43851#: doc/guix.texi:24602
544cab3d
LC
43852msgid "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."
43853msgstr ""
43854
43855#. type: cindex
32747aa9 43856#: doc/guix.texi:24603
544cab3d
LC
43857#, no-wrap
43858msgid "on-error"
43859msgstr ""
43860
43861#. type: cindex
32747aa9 43862#: doc/guix.texi:24604
544cab3d
LC
43863#, no-wrap
43864msgid "on-error strategy"
43865msgstr ""
43866
43867#. type: cindex
32747aa9 43868#: doc/guix.texi:24605
544cab3d
LC
43869#, no-wrap
43870msgid "error strategy"
43871msgstr ""
43872
43873#. type: item
32747aa9 43874#: doc/guix.texi:24606
544cab3d
LC
43875#, no-wrap
43876msgid "--on-error=@var{strategy}"
43877msgstr ""
43878
43879#. type: table
32747aa9 43880#: doc/guix.texi:24609
544cab3d
LC
43881msgid "Apply @var{strategy} when an error occurs when reading @var{file}. @var{strategy} may be one of the following:"
43882msgstr ""
43883
43884#. type: item
32747aa9 43885#: doc/guix.texi:24611
544cab3d
LC
43886#, no-wrap
43887msgid "nothing-special"
43888msgstr ""
43889
43890#. type: table
32747aa9 43891#: doc/guix.texi:24613
544cab3d
LC
43892msgid "Report the error concisely and exit. This is the default strategy."
43893msgstr ""
43894
43895#. type: item
32747aa9 43896#: doc/guix.texi:24614
544cab3d
LC
43897#, no-wrap
43898msgid "backtrace"
43899msgstr ""
43900
43901#. type: table
32747aa9 43902#: doc/guix.texi:24616
544cab3d
LC
43903msgid "Likewise, but also display a backtrace."
43904msgstr ""
43905
43906#. type: item
32747aa9 43907#: doc/guix.texi:24617
544cab3d
LC
43908#, no-wrap
43909msgid "debug"
43910msgstr ""
43911
43912#. type: table
32747aa9 43913#: doc/guix.texi:24623
544cab3d
LC
43914msgid "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."
43915msgstr ""
43916
43917#. type: Plain text
32747aa9 43918#: doc/guix.texi:24630
544cab3d
LC
43919msgid "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:"
43920msgstr ""
43921
43922#. type: item
32747aa9 43923#: doc/guix.texi:24633
544cab3d
LC
43924#, no-wrap
43925msgid "list-generations"
43926msgstr ""
43927
43928#. type: table
32747aa9 43929#: doc/guix.texi:24638
544cab3d
LC
43930msgid "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})."
43931msgstr ""
43932
43933#. type: table
32747aa9 43934#: doc/guix.texi:24643
544cab3d
LC
43935msgid "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:"
43936msgstr ""
43937
43938#. type: example
32747aa9 43939#: doc/guix.texi:24646
544cab3d
LC
43940#, no-wrap
43941msgid "$ guix system list-generations 10d\n"
43942msgstr ""
43943
43944#. type: Plain text
32747aa9 43945#: doc/guix.texi:24653
544cab3d
LC
43946msgid "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:"
43947msgstr ""
43948
43949#. type: anchor{#1}
32747aa9 43950#: doc/guix.texi:24655
544cab3d
LC
43951msgid "system-extension-graph"
43952msgstr ""
43953
43954#. type: item
32747aa9 43955#: doc/guix.texi:24657
544cab3d
LC
43956#, no-wrap
43957msgid "extension-graph"
43958msgstr ""
43959
43960#. type: table
32747aa9 43961#: doc/guix.texi:24662
544cab3d
LC
43962msgid "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.)"
43963msgstr ""
43964
43965#. type: table
32747aa9 43966#: doc/guix.texi:24664
544cab3d
LC
43967msgid "The command:"
43968msgstr ""
43969
43970#. type: example
32747aa9 43971#: doc/guix.texi:24667
544cab3d
LC
43972#, no-wrap
43973msgid "$ guix system extension-graph @var{file} | dot -Tpdf > services.pdf\n"
43974msgstr ""
43975
43976#. type: table
32747aa9 43977#: doc/guix.texi:24670
544cab3d
LC
43978msgid "produces a PDF file showing the extension relations among services."
43979msgstr ""
43980
43981#. type: anchor{#1}
32747aa9 43982#: doc/guix.texi:24672
544cab3d
LC
43983msgid "system-shepherd-graph"
43984msgstr ""
43985
43986#. type: item
32747aa9 43987#: doc/guix.texi:24672
544cab3d
LC
43988#, no-wrap
43989msgid "shepherd-graph"
43990msgstr ""
43991
43992#. type: table
32747aa9 43993#: doc/guix.texi:24677
544cab3d
LC
43994msgid "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."
43995msgstr ""
43996
43997#. type: section
32747aa9 43998#: doc/guix.texi:24681
544cab3d
LC
43999#, no-wrap
44000msgid "Running Guix in a Virtual Machine"
44001msgstr ""
44002
44003#. type: Plain text
32747aa9
LC
44004#: doc/guix.texi:24690
44005msgid "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)."
44006msgstr ""
44007
44008#. type: Plain text
44009#: doc/guix.texi:24696
44010msgid "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{/etc/config.scm} (@pxref{Using the Configuration System})."
44011msgstr ""
44012
44013#. type: Plain text
44014#: doc/guix.texi:24701
44015msgid "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."
544cab3d
LC
44016msgstr ""
44017
44018#. type: cindex
32747aa9 44019#: doc/guix.texi:24702
544cab3d
LC
44020#, no-wrap
44021msgid "QEMU"
44022msgstr ""
44023
44024#. type: Plain text
32747aa9 44025#: doc/guix.texi:24709
544cab3d
LC
44026msgid "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:"
44027msgstr ""
44028
44029#. type: example
32747aa9 44030#: doc/guix.texi:24716
544cab3d
LC
44031#, no-wrap
44032msgid ""
44033"$ qemu-system-x86_64 \\\n"
44034" -net user -net nic,model=virtio \\\n"
32747aa9
LC
44035" -enable-kvm -m 512 \\\n"
44036" -device virtio-blk,drive=myhd \\\n"
44037" -drive if=none,file=/tmp/qemu-image,id=myhd\n"
544cab3d
LC
44038msgstr ""
44039
44040#. type: Plain text
32747aa9 44041#: doc/guix.texi:24719
544cab3d
LC
44042msgid "Here is what each of these options means:"
44043msgstr ""
44044
44045#. type: item
32747aa9 44046#: doc/guix.texi:24721
544cab3d
LC
44047#, no-wrap
44048msgid "qemu-system-x86_64"
44049msgstr ""
44050
44051#. type: table
32747aa9 44052#: doc/guix.texi:24724
544cab3d
LC
44053msgid "This specifies the hardware platform to emulate. This should match the host."
44054msgstr ""
44055
44056#. type: item
32747aa9 44057#: doc/guix.texi:24725
544cab3d
LC
44058#, no-wrap
44059msgid "-net user"
44060msgstr ""
44061
44062#. type: table
32747aa9 44063#: doc/guix.texi:24729
544cab3d
LC
44064msgid "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."
44065msgstr ""
44066
44067#. type: item
32747aa9 44068#: doc/guix.texi:24730
544cab3d
LC
44069#, no-wrap
44070msgid "-net nic,model=virtio"
44071msgstr ""
44072
44073#. type: table
32747aa9 44074#: doc/guix.texi:24735
544cab3d
LC
44075msgid "You must create a network interface of a given model. If you do not create a NIC, the boot will fail. Assuming your hardware platform is x86_64, you can get a list of available NIC models by running @command{qemu-system-x86_64 -net nic,model=help}."
44076msgstr ""
44077
44078#. type: item
32747aa9 44079#: doc/guix.texi:24736
544cab3d
LC
44080#, no-wrap
44081msgid "-enable-kvm"
44082msgstr ""
44083
44084#. type: table
32747aa9 44085#: doc/guix.texi:24740
544cab3d
LC
44086msgid "If your system has hardware virtualization extensions, enabling the virtual machine support (KVM) of the Linux kernel will make things run faster."
44087msgstr ""
44088
44089#. type: item
32747aa9 44090#: doc/guix.texi:24742
544cab3d 44091#, no-wrap
32747aa9 44092msgid "-m 1024"
544cab3d
LC
44093msgstr ""
44094
44095#. type: table
32747aa9 44096#: doc/guix.texi:24745
544cab3d
LC
44097msgid "RAM available to the guest OS, in mebibytes. Defaults to 128@tie{}MiB, which may be insufficient for some operations."
44098msgstr ""
44099
44100#. type: item
32747aa9
LC
44101#: doc/guix.texi:24746
44102#, no-wrap
44103msgid "-device virtio-blk,drive=myhd"
44104msgstr ""
44105
44106#. type: table
44107#: doc/guix.texi:24751
44108msgid "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."
44109msgstr ""
44110
44111#. type: item
44112#: doc/guix.texi:24752
544cab3d 44113#, no-wrap
32747aa9 44114msgid "-drive if=none,file=/tmp/qemu-image,id=myhd"
544cab3d
LC
44115msgstr ""
44116
44117#. type: table
32747aa9
LC
44118#: doc/guix.texi:24755
44119msgid "Use our QCOW image, the @file{/tmp/qemu-image} file, as the backing store the the ``myhd'' drive."
544cab3d
LC
44120msgstr ""
44121
44122#. type: Plain text
32747aa9 44123#: doc/guix.texi:24765
544cab3d
LC
44124msgid "The default @command{run-vm.sh} script that is returned by an invocation of @command{guix system vm} does not add a @command{-net 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` -net user}. An important caveat of using @command{-net 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}."
44125msgstr ""
44126
44127#. type: subsection
32747aa9 44128#: doc/guix.texi:24766
544cab3d
LC
44129#, no-wrap
44130msgid "Connecting Through SSH"
44131msgstr ""
44132
44133#. type: Plain text
32747aa9
LC
44134#: doc/guix.texi:24774
44135msgid "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"
544cab3d
LC
44136msgstr ""
44137
44138#. type: example
32747aa9 44139#: doc/guix.texi:24777
544cab3d
LC
44140#, no-wrap
44141msgid "`guix system vm config.scm` -net user,hostfwd=tcp::10022-:22\n"
44142msgstr ""
44143
44144#. type: Plain text
32747aa9 44145#: doc/guix.texi:24780
544cab3d
LC
44146msgid "To connect to the VM you can run"
44147msgstr ""
44148
44149#. type: example
32747aa9 44150#: doc/guix.texi:24783
544cab3d
LC
44151#, no-wrap
44152msgid "ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -p 10022\n"
44153msgstr ""
44154
44155#. type: Plain text
32747aa9 44156#: doc/guix.texi:24790
544cab3d
LC
44157msgid "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."
44158msgstr ""
44159
44160#. type: subsection
32747aa9 44161#: doc/guix.texi:24791
544cab3d
LC
44162#, no-wrap
44163msgid "Using @command{virt-viewer} with Spice"
44164msgstr ""
44165
44166#. type: Plain text
32747aa9 44167#: doc/guix.texi:24797
544cab3d
LC
44168msgid "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."
44169msgstr ""
44170
44171#. type: Plain text
32747aa9 44172#: doc/guix.texi:24800
544cab3d
LC
44173msgid "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}:"
44174msgstr ""
44175
44176#. type: example
32747aa9 44177#: doc/guix.texi:24806
544cab3d
LC
44178#, no-wrap
44179msgid ""
44180"-device virtio-serial-pci,id=virtio-serial0,max_ports=16,bus=pci.0,addr=0x5\n"
44181"-chardev spicevmc,name=vdagent,id=vdagent\n"
44182"-device virtserialport,nr=1,bus=virtio-serial0.0,chardev=vdagent,\n"
44183"name=com.redhat.spice.0\n"
44184msgstr ""
44185
44186#. type: Plain text
32747aa9 44187#: doc/guix.texi:24809
544cab3d
LC
44188msgid "You'll also need to add the @pxref{Miscellaneous Services, Spice service}."
44189msgstr ""
44190
44191#. type: Plain text
32747aa9 44192#: doc/guix.texi:24816
544cab3d
LC
44193msgid "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?"
44194msgstr ""
44195
44196#. type: cindex
32747aa9 44197#: doc/guix.texi:24828
544cab3d
LC
44198#, no-wrap
44199msgid "daemons"
44200msgstr ""
44201
44202#. type: Plain text
32747aa9 44203#: doc/guix.texi:24841
544cab3d
LC
44204msgid "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."
44205msgstr ""
44206
44207#. type: cindex
32747aa9 44208#: doc/guix.texi:24842
544cab3d
LC
44209#, no-wrap
44210msgid "service extensions"
44211msgstr ""
44212
44213#. type: Plain text
32747aa9 44214#: doc/guix.texi:24854
544cab3d
LC
44215msgid "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})."
44216msgstr ""
44217
44218#. type: Plain text
32747aa9 44219#: doc/guix.texi:24858
544cab3d
LC
44220msgid "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:"
44221msgstr ""
44222
44223#. type: Plain text
32747aa9 44224#: doc/guix.texi:24860
544cab3d
LC
44225msgid "@image{images/service-graph,,5in,Typical service extension graph.}"
44226msgstr ""
44227
44228#. type: cindex
32747aa9 44229#: doc/guix.texi:24861
544cab3d
LC
44230#, no-wrap
44231msgid "system service"
44232msgstr ""
44233
44234#. type: Plain text
32747aa9 44235#: doc/guix.texi:24869
544cab3d
LC
44236msgid "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."
44237msgstr ""
44238
44239#. type: cindex
32747aa9 44240#: doc/guix.texi:24870
544cab3d
LC
44241#, no-wrap
44242msgid "service types"
44243msgstr ""
44244
44245#. type: Plain text
32747aa9 44246#: doc/guix.texi:24876
544cab3d
LC
44247msgid "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."
44248msgstr ""
44249
44250#. type: Plain text
32747aa9 44251#: doc/guix.texi:24879
544cab3d
LC
44252msgid "The following section describes the programming interface for service types and services."
44253msgstr ""
44254
44255#. type: Plain text
32747aa9 44256#: doc/guix.texi:24886
544cab3d
LC
44257msgid "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}):"
44258msgstr ""
44259
44260#. type: example
32747aa9 44261#: doc/guix.texi:24896
544cab3d
LC
44262#, no-wrap
44263msgid ""
44264"(define guix-service-type\n"
44265" (service-type\n"
44266" (name 'guix)\n"
44267" (extensions\n"
44268" (list (service-extension shepherd-root-service-type guix-shepherd-service)\n"
44269" (service-extension account-service-type guix-accounts)\n"
44270" (service-extension activation-service-type guix-activation)))\n"
44271" (default-value (guix-configuration))))\n"
44272msgstr ""
44273
44274#. type: Plain text
32747aa9 44275#: doc/guix.texi:24900
544cab3d
LC
44276msgid "It defines three things:"
44277msgstr ""
44278
44279#. type: enumerate
32747aa9 44280#: doc/guix.texi:24904
544cab3d
LC
44281msgid "A name, whose sole purpose is to make inspection and debugging easier."
44282msgstr ""
44283
44284#. type: enumerate
32747aa9 44285#: doc/guix.texi:24909
544cab3d
LC
44286msgid "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."
44287msgstr ""
44288
44289#. type: enumerate
32747aa9 44290#: doc/guix.texi:24912
544cab3d
LC
44291msgid "Every service type has at least one service extension. The only exception is the @dfn{boot service type}, which is the ultimate service."
44292msgstr ""
44293
44294#. type: enumerate
32747aa9 44295#: doc/guix.texi:24915
544cab3d
LC
44296msgid "Optionally, a default value for instances of this type."
44297msgstr ""
44298
44299#. type: Plain text
32747aa9
LC
44300#: doc/guix.texi:24918
44301msgid "In this example, @code{guix-service-type} extends three services:"
544cab3d
LC
44302msgstr ""
44303
44304#. type: item
32747aa9 44305#: doc/guix.texi:24920
544cab3d
LC
44306#, no-wrap
44307msgid "shepherd-root-service-type"
44308msgstr ""
44309
44310#. type: table
32747aa9
LC
44311#: doc/guix.texi:24925
44312msgid "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})."
544cab3d
LC
44313msgstr ""
44314
44315#. type: item
32747aa9 44316#: doc/guix.texi:24926
544cab3d
LC
44317#, no-wrap
44318msgid "account-service-type"
44319msgstr ""
44320
44321#. type: table
32747aa9
LC
44322#: doc/guix.texi:24931
44323msgid "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})."
544cab3d
LC
44324msgstr ""
44325
44326#. type: item
32747aa9 44327#: doc/guix.texi:24932
544cab3d
LC
44328#, no-wrap
44329msgid "activation-service-type"
44330msgstr ""
44331
44332#. type: table
32747aa9
LC
44333#: doc/guix.texi:24936
44334msgid "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."
544cab3d
LC
44335msgstr ""
44336
44337#. type: Plain text
32747aa9 44338#: doc/guix.texi:24939
544cab3d
LC
44339msgid "A service of this type is instantiated like this:"
44340msgstr ""
44341
44342#. type: example
32747aa9 44343#: doc/guix.texi:24945
544cab3d
LC
44344#, no-wrap
44345msgid ""
44346"(service guix-service-type\n"
44347" (guix-configuration\n"
44348" (build-accounts 5)\n"
44349" (use-substitutes? #f)))\n"
44350msgstr ""
44351
44352#. type: Plain text
32747aa9 44353#: doc/guix.texi:24953
544cab3d
LC
44354msgid "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:"
44355msgstr ""
44356
44357#. type: example
32747aa9 44358#: doc/guix.texi:24956
544cab3d
LC
44359#, no-wrap
44360msgid "(service guix-service-type)\n"
44361msgstr ""
44362
44363#. type: Plain text
32747aa9
LC
44364#: doc/guix.texi:24960
44365msgid "@code{guix-service-type} is quite simple because it extends other services but is not extensible itself."
544cab3d
LC
44366msgstr ""
44367
44368#. type: Plain text
32747aa9 44369#: doc/guix.texi:24964
544cab3d
LC
44370msgid "The service type for an @emph{extensible} service looks like this:"
44371msgstr ""
44372
44373#. type: example
32747aa9 44374#: doc/guix.texi:24971
544cab3d
LC
44375#, no-wrap
44376msgid ""
44377"(define udev-service-type\n"
44378" (service-type (name 'udev)\n"
44379" (extensions\n"
44380" (list (service-extension shepherd-root-service-type\n"
44381" udev-shepherd-service)))\n"
44382"\n"
44383msgstr ""
44384
44385#. type: example
32747aa9 44386#: doc/guix.texi:24979
544cab3d
LC
44387#, no-wrap
44388msgid ""
44389" (compose concatenate) ;concatenate the list of rules\n"
44390" (extend (lambda (config rules)\n"
44391" (match config\n"
44392" (($ <udev-configuration> udev initial-rules)\n"
44393" (udev-configuration\n"
44394" (udev udev) ;the udev package to use\n"
44395" (rules (append initial-rules rules)))))))))\n"
44396msgstr ""
44397
44398#. type: Plain text
32747aa9
LC
44399#: doc/guix.texi:24985
44400msgid "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:"
544cab3d
LC
44401msgstr ""
44402
44403#. type: item
32747aa9 44404#: doc/guix.texi:24987
544cab3d
LC
44405#, no-wrap
44406msgid "compose"
44407msgstr ""
44408
44409#. type: table
32747aa9 44410#: doc/guix.texi:24990
544cab3d
LC
44411msgid "This is the procedure to @dfn{compose} the list of extensions to services of this type."
44412msgstr ""
44413
44414#. type: table
32747aa9 44415#: doc/guix.texi:24993
544cab3d
LC
44416msgid "Services can extend the udev service by passing it lists of rules; we compose those extensions simply by concatenating them."
44417msgstr ""
44418
44419#. type: item
32747aa9 44420#: doc/guix.texi:24994
544cab3d
LC
44421#, no-wrap
44422msgid "extend"
44423msgstr ""
44424
44425#. type: table
32747aa9 44426#: doc/guix.texi:24997
544cab3d
LC
44427msgid "This procedure defines how the value of the service is @dfn{extended} with the composition of the extensions."
44428msgstr ""
44429
44430#. type: table
32747aa9 44431#: doc/guix.texi:25002
544cab3d
LC
44432msgid "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."
44433msgstr ""
44434
44435#. type: table
32747aa9 44436#: doc/guix.texi:25008
544cab3d
LC
44437msgid "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})."
44438msgstr ""
44439
44440#. type: Plain text
32747aa9
LC
44441#: doc/guix.texi:25013
44442msgid "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."
544cab3d
LC
44443msgstr ""
44444
44445#. type: Plain text
32747aa9 44446#: doc/guix.texi:25016
544cab3d
LC
44447msgid "Still here? The next section provides a reference of the programming interface for services."
44448msgstr ""
44449
44450#. type: Plain text
32747aa9 44451#: doc/guix.texi:25024
544cab3d
LC
44452msgid "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."
44453msgstr ""
44454
44455#. type: deffn
32747aa9 44456#: doc/guix.texi:25025
544cab3d
LC
44457#, no-wrap
44458msgid "{Scheme Procedure} service @var{type} [@var{value}]"
44459msgstr ""
44460
44461#. type: deffn
32747aa9 44462#: doc/guix.texi:25029
544cab3d
LC
44463msgid "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."
44464msgstr ""
44465
44466#. type: deffn
32747aa9 44467#: doc/guix.texi:25033
544cab3d
LC
44468msgid "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."
44469msgstr ""
44470
44471#. type: deffn
32747aa9 44472#: doc/guix.texi:25035
544cab3d
LC
44473msgid "For instance, this:"
44474msgstr ""
44475
44476#. type: example
32747aa9 44477#: doc/guix.texi:25038
544cab3d
LC
44478#, no-wrap
44479msgid "(service openssh-service-type)\n"
44480msgstr ""
44481
44482#. type: deffn
32747aa9 44483#: doc/guix.texi:25042
544cab3d
LC
44484msgid "is equivalent to this:"
44485msgstr ""
44486
44487#. type: example
32747aa9 44488#: doc/guix.texi:25046
544cab3d
LC
44489#, no-wrap
44490msgid ""
44491"(service openssh-service-type\n"
44492" (openssh-configuration))\n"
44493msgstr ""
44494
44495#. type: deffn
32747aa9 44496#: doc/guix.texi:25050
544cab3d
LC
44497msgid "In both cases the result is an instance of @code{openssh-service-type} with the default configuration."
44498msgstr ""
44499
44500#. type: deffn
32747aa9 44501#: doc/guix.texi:25052
544cab3d
LC
44502#, no-wrap
44503msgid "{Scheme Procedure} service? @var{obj}"
44504msgstr ""
44505
44506#. type: deffn
32747aa9 44507#: doc/guix.texi:25054
544cab3d
LC
44508msgid "Return true if @var{obj} is a service."
44509msgstr ""
44510
44511#. type: deffn
32747aa9 44512#: doc/guix.texi:25056
544cab3d
LC
44513#, no-wrap
44514msgid "{Scheme Procedure} service-kind @var{service}"
44515msgstr ""
44516
44517#. type: deffn
32747aa9 44518#: doc/guix.texi:25058
544cab3d
LC
44519msgid "Return the type of @var{service}---i.e., a @code{<service-type>} object."
44520msgstr ""
44521
44522#. type: deffn
32747aa9 44523#: doc/guix.texi:25060
544cab3d
LC
44524#, no-wrap
44525msgid "{Scheme Procedure} service-value @var{service}"
44526msgstr ""
44527
44528#. type: deffn
32747aa9 44529#: doc/guix.texi:25063
544cab3d
LC
44530msgid "Return the value associated with @var{service}. It represents its parameters."
44531msgstr ""
44532
44533#. type: Plain text
32747aa9 44534#: doc/guix.texi:25066
544cab3d
LC
44535msgid "Here is an example of how a service is created and manipulated:"
44536msgstr ""
44537
44538#. type: example
32747aa9 44539#: doc/guix.texi:25075
544cab3d
LC
44540#, no-wrap
44541msgid ""
44542"(define s\n"
44543" (service nginx-service-type\n"
44544" (nginx-configuration\n"
44545" (nginx nginx)\n"
44546" (log-directory log-directory)\n"
44547" (run-directory run-directory)\n"
44548" (file config-file))))\n"
44549"\n"
44550msgstr ""
44551
44552#. type: example
32747aa9 44553#: doc/guix.texi:25078
544cab3d
LC
44554#, no-wrap
44555msgid ""
44556"(service? s)\n"
44557"@result{} #t\n"
44558"\n"
44559msgstr ""
44560
44561#. type: example
32747aa9 44562#: doc/guix.texi:25081
544cab3d
LC
44563#, no-wrap
44564msgid ""
44565"(eq? (service-kind s) nginx-service-type)\n"
44566"@result{} #t\n"
44567msgstr ""
44568
44569#. type: Plain text
32747aa9
LC
44570#: doc/guix.texi:25091
44571msgid "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."
544cab3d
LC
44572msgstr ""
44573
44574#. type: deffn
32747aa9 44575#: doc/guix.texi:25092
544cab3d
LC
44576#, no-wrap
44577msgid "{Scheme Syntax} modify-services @var{services} @"
44578msgstr ""
44579
44580#. type: deffn
32747aa9 44581#: doc/guix.texi:25094
544cab3d
LC
44582msgid "(@var{type} @var{variable} => @var{body}) @dots{}"
44583msgstr ""
44584
44585#. type: deffn
32747aa9 44586#: doc/guix.texi:25097
544cab3d
LC
44587msgid "Modify the services listed in @var{services} according to the given clauses. Each clause has the form:"
44588msgstr ""
44589
44590#. type: example
32747aa9 44591#: doc/guix.texi:25100
544cab3d
LC
44592#, no-wrap
44593msgid "(@var{type} @var{variable} => @var{body})\n"
44594msgstr ""
44595
44596#. type: deffn
32747aa9 44597#: doc/guix.texi:25107
544cab3d
LC
44598msgid "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}."
44599msgstr ""
44600
44601#. type: deffn
32747aa9 44602#: doc/guix.texi:25114
544cab3d
LC
44603msgid "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."
44604msgstr ""
44605
44606#. type: deffn
32747aa9 44607#: doc/guix.texi:25116
544cab3d
LC
44608msgid "@xref{Using the Configuration System}, for example usage."
44609msgstr ""
44610
44611#. type: Plain text
32747aa9 44612#: doc/guix.texi:25123
544cab3d
LC
44613msgid "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."
44614msgstr ""
44615
44616#. type: deftp
32747aa9 44617#: doc/guix.texi:25124
544cab3d
LC
44618#, no-wrap
44619msgid "{Data Type} service-type"
44620msgstr ""
44621
44622#. type: cindex
32747aa9 44623#: doc/guix.texi:25125
544cab3d
LC
44624#, no-wrap
44625msgid "service type"
44626msgstr ""
44627
44628#. type: deftp
32747aa9 44629#: doc/guix.texi:25128
544cab3d
LC
44630msgid "This is the representation of a @dfn{service type} (@pxref{Service Types and Services})."
44631msgstr ""
44632
44633#. type: table
32747aa9 44634#: doc/guix.texi:25132
544cab3d
LC
44635msgid "This is a symbol, used only to simplify inspection and debugging."
44636msgstr ""
44637
44638#. type: code{#1}
32747aa9 44639#: doc/guix.texi:25133
544cab3d
LC
44640#, no-wrap
44641msgid "extensions"
44642msgstr ""
44643
44644#. type: table
32747aa9 44645#: doc/guix.texi:25135
544cab3d
LC
44646msgid "A non-empty list of @code{<service-extension>} objects (see below)."
44647msgstr ""
44648
44649#. type: item
32747aa9 44650#: doc/guix.texi:25136
544cab3d
LC
44651#, no-wrap
44652msgid "@code{compose} (default: @code{#f})"
44653msgstr ""
44654
44655#. type: table
32747aa9 44656#: doc/guix.texi:25140
544cab3d
LC
44657msgid "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."
44658msgstr ""
44659
44660#. type: table
32747aa9 44661#: doc/guix.texi:25144
544cab3d
LC
44662msgid "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."
44663msgstr ""
44664
44665#. type: item
32747aa9 44666#: doc/guix.texi:25145
544cab3d
LC
44667#, no-wrap
44668msgid "@code{extend} (default: @code{#f})"
44669msgstr ""
44670
44671#. type: table
32747aa9 44672#: doc/guix.texi:25147
544cab3d
LC
44673msgid "If this is @code{#f}, services of this type cannot be extended."
44674msgstr ""
44675
44676#. type: table
32747aa9 44677#: doc/guix.texi:25153
544cab3d
LC
44678msgid "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."
44679msgstr ""
44680
44681#. type: deftp
32747aa9 44682#: doc/guix.texi:25156
544cab3d
LC
44683msgid "@xref{Service Types and Services}, for examples."
44684msgstr ""
44685
44686#. type: deffn
32747aa9 44687#: doc/guix.texi:25158
544cab3d
LC
44688#, no-wrap
44689msgid "{Scheme Procedure} service-extension @var{target-type} @"
44690msgstr ""
44691
44692#. type: deffn
32747aa9 44693#: doc/guix.texi:25164
544cab3d
LC
44694msgid "@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."
44695msgstr ""
44696
44697#. type: deffn
32747aa9 44698#: doc/guix.texi:25166
544cab3d
LC
44699#, no-wrap
44700msgid "{Scheme Procedure} service-extension? @var{obj}"
44701msgstr ""
44702
44703#. type: deffn
32747aa9 44704#: doc/guix.texi:25168
544cab3d
LC
44705msgid "Return true if @var{obj} is a service extension."
44706msgstr ""
44707
44708#. type: Plain text
32747aa9 44709#: doc/guix.texi:25174
544cab3d
LC
44710msgid "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."
44711msgstr ""
44712
44713#. type: deffn
32747aa9 44714#: doc/guix.texi:25175
544cab3d
LC
44715#, no-wrap
44716msgid "{Scheme Procedure} simple-service @var{name} @var{target} @var{value}"
44717msgstr ""
44718
44719#. type: deffn
32747aa9 44720#: doc/guix.texi:25179
544cab3d
LC
44721msgid "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."
44722msgstr ""
44723
44724#. type: deffn
32747aa9 44725#: doc/guix.texi:25182
544cab3d
LC
44726msgid "For example, this extends mcron (@pxref{Scheduled Job Execution}) with an additional job:"
44727msgstr ""
44728
44729#. type: example
32747aa9 44730#: doc/guix.texi:25186
544cab3d
LC
44731#, no-wrap
44732msgid ""
44733"(simple-service 'my-mcron-job mcron-service-type\n"
44734" #~(job '(next-hour (3)) \"guix gc -F 2G\"))\n"
44735msgstr ""
44736
44737#. type: Plain text
32747aa9 44738#: doc/guix.texi:25196
544cab3d
LC
44739msgid "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."
44740msgstr ""
44741
44742#. type: deffn
32747aa9 44743#: doc/guix.texi:25197
544cab3d
LC
44744#, no-wrap
44745msgid "{Scheme Procedure} fold-services @var{services} @"
44746msgstr ""
44747
44748#. type: deffn
32747aa9 44749#: doc/guix.texi:25201
544cab3d
LC
44750msgid "[#: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."
44751msgstr ""
44752
44753#. type: Plain text
32747aa9 44754#: doc/guix.texi:25205
544cab3d
LC
44755msgid "Lastly, the @code{(gnu services)} module also defines several essential service types, some of which are listed below."
44756msgstr ""
44757
44758#. type: defvr
32747aa9 44759#: doc/guix.texi:25206
544cab3d
LC
44760#, no-wrap
44761msgid "{Scheme Variable} system-service-type"
44762msgstr ""
44763
44764#. type: defvr
32747aa9 44765#: doc/guix.texi:25209
544cab3d
LC
44766msgid "This is the root of the service graph. It produces the system directory as returned by the @command{guix system build} command."
44767msgstr ""
44768
44769#. type: defvr
32747aa9 44770#: doc/guix.texi:25211
544cab3d
LC
44771#, no-wrap
44772msgid "{Scheme Variable} boot-service-type"
44773msgstr ""
44774
44775#. type: defvr
32747aa9 44776#: doc/guix.texi:25214
544cab3d
LC
44777msgid "The type of the ``boot service'', which produces the @dfn{boot script}. The boot script is what the initial RAM disk runs when booting."
44778msgstr ""
44779
44780#. type: defvr
32747aa9 44781#: doc/guix.texi:25216
544cab3d
LC
44782#, no-wrap
44783msgid "{Scheme Variable} etc-service-type"
44784msgstr ""
44785
44786#. type: defvr
32747aa9 44787#: doc/guix.texi:25220
544cab3d
LC
44788msgid "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:"
44789msgstr ""
44790
44791#. type: example
32747aa9 44792#: doc/guix.texi:25223
544cab3d
LC
44793#, no-wrap
44794msgid "(list `(\"issue\" ,(plain-file \"issue\" \"Welcome!\\n\")))\n"
44795msgstr ""
44796
44797#. type: defvr
32747aa9 44798#: doc/guix.texi:25227
544cab3d
LC
44799msgid "In this example, the effect would be to add an @file{/etc/issue} file pointing to the given file."
44800msgstr ""
44801
44802#. type: defvr
32747aa9 44803#: doc/guix.texi:25229
544cab3d
LC
44804#, no-wrap
44805msgid "{Scheme Variable} setuid-program-service-type"
44806msgstr ""
44807
44808#. type: defvr
32747aa9 44809#: doc/guix.texi:25233
544cab3d
LC
44810msgid "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})."
44811msgstr ""
44812
44813#. type: defvr
32747aa9 44814#: doc/guix.texi:25235
544cab3d
LC
44815#, no-wrap
44816msgid "{Scheme Variable} profile-service-type"
44817msgstr ""
44818
44819#. type: defvr
32747aa9 44820#: doc/guix.texi:25239
544cab3d
LC
44821msgid "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."
44822msgstr ""
44823
44824#. type: cindex
32747aa9 44825#: doc/guix.texi:25245
544cab3d
LC
44826#, no-wrap
44827msgid "shepherd services"
44828msgstr ""
44829
44830#. type: cindex
32747aa9 44831#: doc/guix.texi:25246
544cab3d
LC
44832#, no-wrap
44833msgid "PID 1"
44834msgstr ""
44835
44836#. type: cindex
32747aa9 44837#: doc/guix.texi:25247
544cab3d
LC
44838#, no-wrap
44839msgid "init system"
44840msgstr ""
44841
44842#. type: Plain text
32747aa9 44843#: doc/guix.texi:25253
544cab3d
LC
44844msgid "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})."
44845msgstr ""
44846
44847#. type: Plain text
32747aa9 44848#: doc/guix.texi:25259
544cab3d
LC
44849msgid "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:"
44850msgstr ""
44851
44852#. type: Plain text
32747aa9 44853#: doc/guix.texi:25261
544cab3d
LC
44854msgid "@image{images/shepherd-graph,,5in,Typical shepherd service graph.}"
44855msgstr ""
44856
44857#. type: Plain text
32747aa9 44858#: doc/guix.texi:25265
544cab3d
LC
44859msgid "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}})."
44860msgstr ""
44861
44862#. type: Plain text
32747aa9
LC
44863#: doc/guix.texi:25269
44864msgid "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."
544cab3d
LC
44865msgstr ""
44866
44867#. type: deftp
32747aa9 44868#: doc/guix.texi:25270
544cab3d
LC
44869#, no-wrap
44870msgid "{Data Type} shepherd-service"
44871msgstr ""
44872
44873#. type: deftp
32747aa9 44874#: doc/guix.texi:25272
544cab3d
LC
44875msgid "The data type representing a service managed by the Shepherd."
44876msgstr ""
44877
44878#. type: code{#1}
32747aa9 44879#: doc/guix.texi:25274
544cab3d
LC
44880#, no-wrap
44881msgid "provision"
44882msgstr ""
44883
44884#. type: table
32747aa9 44885#: doc/guix.texi:25276
544cab3d
LC
44886msgid "This is a list of symbols denoting what the service provides."
44887msgstr ""
44888
44889#. type: table
32747aa9 44890#: doc/guix.texi:25281
544cab3d
LC
44891msgid "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."
44892msgstr ""
44893
44894#. type: item
32747aa9 44895#: doc/guix.texi:25282
544cab3d
LC
44896#, no-wrap
44897msgid "@code{requirements} (default: @code{'()})"
44898msgstr ""
44899
44900#. type: table
32747aa9 44901#: doc/guix.texi:25284
544cab3d
LC
44902msgid "List of symbols denoting the Shepherd services this one depends on."
44903msgstr ""
44904
32747aa9
LC
44905#. type: cindex
44906#: doc/guix.texi:25285
44907#, no-wrap
44908msgid "one-shot services, for the Shepherd"
44909msgstr ""
44910
44911#. type: table
44912#: doc/guix.texi:25290
44913msgid "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."
44914msgstr ""
44915
544cab3d 44916#. type: item
32747aa9 44917#: doc/guix.texi:25291
544cab3d
LC
44918#, no-wrap
44919msgid "@code{respawn?} (default: @code{#t})"
44920msgstr ""
44921
44922#. type: table
32747aa9 44923#: doc/guix.texi:25294
544cab3d
LC
44924msgid "Whether to restart the service when it stops, for instance when the underlying process dies."
44925msgstr ""
44926
44927#. type: code{#1}
32747aa9 44928#: doc/guix.texi:25295
544cab3d
LC
44929#, no-wrap
44930msgid "start"
44931msgstr ""
44932
44933#. type: itemx
32747aa9 44934#: doc/guix.texi:25296
544cab3d
LC
44935#, no-wrap
44936msgid "@code{stop} (default: @code{#~(const #f)})"
44937msgstr ""
44938
44939#. type: table
32747aa9 44940#: doc/guix.texi:25302
544cab3d
LC
44941msgid "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})."
44942msgstr ""
44943
44944#. type: item
32747aa9 44945#: doc/guix.texi:25303
544cab3d
LC
44946#, no-wrap
44947msgid "@code{actions} (default: @code{'()})"
44948msgstr ""
44949
44950#. type: cindex
32747aa9 44951#: doc/guix.texi:25304
544cab3d
LC
44952#, no-wrap
44953msgid "actions, of Shepherd services"
44954msgstr ""
44955
44956#. type: table
32747aa9 44957#: doc/guix.texi:25309
544cab3d
LC
44958msgid "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:"
44959msgstr ""
44960
44961#. type: example
32747aa9 44962#: doc/guix.texi:25312
544cab3d
LC
44963#, no-wrap
44964msgid "herd @var{action} @var{service} [@var{arguments}@dots{}]\n"
44965msgstr ""
44966
44967#. type: table
32747aa9 44968#: doc/guix.texi:25316
544cab3d
LC
44969msgid "A documentation string, as shown when running:"
44970msgstr ""
44971
44972#. type: example
32747aa9 44973#: doc/guix.texi:25319
544cab3d
LC
44974#, no-wrap
44975msgid "herd doc @var{service-name}\n"
44976msgstr ""
44977
44978#. type: table
32747aa9
LC
44979#: doc/guix.texi:25323
44980msgid "where @var{service-name} is one of the symbols in @code{provision} (@pxref{Invoking herd,,, shepherd, The GNU Shepherd Manual})."
544cab3d
LC
44981msgstr ""
44982
44983#. type: item
32747aa9 44984#: doc/guix.texi:25324
544cab3d 44985#, no-wrap
32747aa9 44986msgid "@code{modules} (default: @code{%default-modules})"
544cab3d
LC
44987msgstr ""
44988
44989#. type: table
32747aa9 44990#: doc/guix.texi:25327
544cab3d
LC
44991msgid "This is the list of modules that must be in scope when @code{start} and @code{stop} are evaluated."
44992msgstr ""
44993
44994#. type: deftp
32747aa9 44995#: doc/guix.texi:25331
544cab3d
LC
44996#, no-wrap
44997msgid "{Data Type} shepherd-action"
44998msgstr ""
44999
45000#. type: deftp
32747aa9 45001#: doc/guix.texi:25334
544cab3d
LC
45002msgid "This is the data type that defines additional actions implemented by a Shepherd service (see above)."
45003msgstr ""
45004
45005#. type: table
32747aa9 45006#: doc/guix.texi:25338
544cab3d
LC
45007msgid "Symbol naming the action."
45008msgstr ""
45009
45010#. type: table
32747aa9 45011#: doc/guix.texi:25341
544cab3d
LC
45012msgid "This is a documentation string for the action. It can be viewed by running:"
45013msgstr ""
45014
45015#. type: example
32747aa9 45016#: doc/guix.texi:25344
544cab3d
LC
45017#, no-wrap
45018msgid "herd doc @var{service} action @var{action}\n"
45019msgstr ""
45020
45021#. type: item
32747aa9 45022#: doc/guix.texi:25346
544cab3d
LC
45023#, no-wrap
45024msgid "procedure"
45025msgstr ""
45026
45027#. type: table
32747aa9 45028#: doc/guix.texi:25350
544cab3d
LC
45029msgid "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})."
45030msgstr ""
45031
45032#. type: deftp
32747aa9 45033#: doc/guix.texi:25354
544cab3d
LC
45034msgid "The following example defines an action called @code{say-hello} that kindly greets the user:"
45035msgstr ""
45036
45037#. type: example
32747aa9 45038#: doc/guix.texi:25363
544cab3d
LC
45039#, no-wrap
45040msgid ""
45041"(shepherd-action\n"
45042" (name 'say-hello)\n"
45043" (documentation \"Say hi!\")\n"
45044" (procedure #~(lambda (running . args)\n"
45045" (format #t \"Hello, friend! arguments: ~s\\n\"\n"
45046" args)\n"
45047" #t)))\n"
45048msgstr ""
45049
45050#. type: deftp
32747aa9 45051#: doc/guix.texi:25366
544cab3d
LC
45052msgid "Assuming this action is added to the @code{example} service, then you can do:"
45053msgstr ""
45054
45055#. type: example
32747aa9 45056#: doc/guix.texi:25372
544cab3d
LC
45057#, no-wrap
45058msgid ""
45059"# herd say-hello example\n"
45060"Hello, friend! arguments: ()\n"
45061"# herd say-hello example a b c\n"
45062"Hello, friend! arguments: (\"a\" \"b\" \"c\")\n"
45063msgstr ""
45064
45065#. type: deftp
32747aa9 45066#: doc/guix.texi:25377
544cab3d
LC
45067msgid "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."
45068msgstr ""
45069
45070#. type: defvr
32747aa9 45071#: doc/guix.texi:25379
544cab3d
LC
45072#, no-wrap
45073msgid "{Scheme Variable} shepherd-root-service-type"
45074msgstr ""
45075
45076#. type: defvr
32747aa9 45077#: doc/guix.texi:25381
544cab3d
LC
45078msgid "The service type for the Shepherd ``root service''---i.e., PID@tie{}1."
45079msgstr ""
45080
45081#. type: defvr
32747aa9 45082#: doc/guix.texi:25385
544cab3d
LC
45083msgid "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>}."
45084msgstr ""
45085
45086#. type: defvr
32747aa9 45087#: doc/guix.texi:25387
544cab3d
LC
45088#, no-wrap
45089msgid "{Scheme Variable} %shepherd-root-service"
45090msgstr ""
45091
45092#. type: defvr
32747aa9 45093#: doc/guix.texi:25389
544cab3d
LC
45094msgid "This service represents PID@tie{}1."
45095msgstr ""
45096
45097#. type: cindex
32747aa9 45098#: doc/guix.texi:25395
544cab3d
LC
45099#, no-wrap
45100msgid "documentation, searching for"
45101msgstr ""
45102
45103#. type: cindex
32747aa9 45104#: doc/guix.texi:25396
544cab3d
LC
45105#, no-wrap
45106msgid "searching for documentation"
45107msgstr ""
45108
45109#. type: cindex
32747aa9 45110#: doc/guix.texi:25397
544cab3d
LC
45111#, no-wrap
45112msgid "Info, documentation format"
45113msgstr ""
45114
45115#. type: cindex
32747aa9 45116#: doc/guix.texi:25398
544cab3d
LC
45117#, no-wrap
45118msgid "man pages"
45119msgstr ""
45120
45121#. type: cindex
32747aa9 45122#: doc/guix.texi:25399
544cab3d
LC
45123#, no-wrap
45124msgid "manual pages"
45125msgstr ""
45126
45127#. type: Plain text
32747aa9 45128#: doc/guix.texi:25406
544cab3d
LC
45129msgid "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}."
45130msgstr ""
45131
45132#. type: Plain text
32747aa9 45133#: doc/guix.texi:25410
544cab3d
LC
45134msgid "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:"
45135msgstr ""
45136
45137#. type: example
32747aa9 45138#: doc/guix.texi:25418
544cab3d
LC
45139#, no-wrap
45140msgid ""
45141"$ info -k TLS\n"
45142"\"(emacs)Network Security\" -- STARTTLS\n"
45143"\"(emacs)Network Security\" -- TLS\n"
45144"\"(gnutls)Core TLS API\" -- gnutls_certificate_set_verify_flags\n"
45145"\"(gnutls)Core TLS API\" -- gnutls_certificate_set_verify_function\n"
45146"@dots{}\n"
45147msgstr ""
45148
45149#. type: Plain text
32747aa9 45150#: doc/guix.texi:25422
544cab3d
LC
45151msgid "The command below searches for the same keyword in man pages:"
45152msgstr ""
45153
45154#. type: example
32747aa9 45155#: doc/guix.texi:25428
544cab3d
LC
45156#, no-wrap
45157msgid ""
45158"$ man -k TLS\n"
45159"SSL (7) - OpenSSL SSL/TLS library\n"
45160"certtool (1) - GnuTLS certificate tool\n"
45161"@dots {}\n"
45162msgstr ""
45163
45164#. type: Plain text
32747aa9 45165#: doc/guix.texi:25434
544cab3d
LC
45166msgid "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."
45167msgstr ""
45168
45169#. type: Plain text
32747aa9 45170#: doc/guix.texi:25437
544cab3d
LC
45171msgid "Once you have these results, you can view the relevant documentation by running, say:"
45172msgstr ""
45173
45174#. type: example
32747aa9 45175#: doc/guix.texi:25440
544cab3d
LC
45176#, no-wrap
45177msgid "$ info \"(gnutls)Core TLS API\"\n"
45178msgstr ""
45179
45180#. type: Plain text
32747aa9 45181#: doc/guix.texi:25444
544cab3d
LC
45182msgid "or:"
45183msgstr ""
45184
45185#. type: example
32747aa9 45186#: doc/guix.texi:25447
544cab3d
LC
45187#, no-wrap
45188msgid "$ man certtool\n"
45189msgstr ""
45190
45191#. type: Plain text
32747aa9 45192#: doc/guix.texi:25455
544cab3d
LC
45193msgid "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."
45194msgstr ""
45195
45196#. type: cindex
32747aa9 45197#: doc/guix.texi:25459
544cab3d
LC
45198#, no-wrap
45199msgid "debugging files"
45200msgstr ""
45201
45202#. type: Plain text
32747aa9 45203#: doc/guix.texi:25465
544cab3d
LC
45204msgid "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."
45205msgstr ""
45206
45207#. type: Plain text
32747aa9 45208#: doc/guix.texi:25473
544cab3d
LC
45209msgid "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})."
45210msgstr ""
45211
45212#. type: Plain text
32747aa9 45213#: doc/guix.texi:25480
544cab3d
LC
45214msgid "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})."
45215msgstr ""
45216
45217#. type: Plain text
32747aa9 45218#: doc/guix.texi:25488
544cab3d
LC
45219msgid "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:"
45220msgstr ""
45221
45222#. type: example
32747aa9 45223#: doc/guix.texi:25491
544cab3d 45224#, no-wrap
32747aa9 45225msgid "guix install glibc:debug guile:debug\n"
544cab3d
LC
45226msgstr ""
45227
45228#. type: Plain text
32747aa9 45229#: doc/guix.texi:25497
544cab3d
LC
45230msgid "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}):"
45231msgstr ""
45232
45233#. type: example
32747aa9 45234#: doc/guix.texi:25500
544cab3d
LC
45235#, no-wrap
45236msgid "(gdb) set debug-file-directory ~/.guix-profile/lib/debug\n"
45237msgstr ""
45238
45239#. type: Plain text
32747aa9 45240#: doc/guix.texi:25504
544cab3d
LC
45241msgid "From there on, GDB will pick up debugging information from the @code{.debug} files under @file{~/.guix-profile/lib/debug}."
45242msgstr ""
45243
45244#. type: Plain text
32747aa9 45245#: doc/guix.texi:25511
544cab3d
LC
45246msgid "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})."
45247msgstr ""
45248
45249#. type: Plain text
32747aa9 45250#: doc/guix.texi:25520
544cab3d
LC
45251msgid "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. This may be changed to opt-out in the future if our build farm servers can handle the load. To check whether a package has a @code{debug} output, use @command{guix package --list-available} (@pxref{Invoking guix package})."
45252msgstr ""
45253
45254#. type: cindex
32747aa9 45255#: doc/guix.texi:25525
544cab3d
LC
45256#, no-wrap
45257msgid "security updates"
45258msgstr ""
45259
45260#. type: Plain text
32747aa9 45261#: doc/guix.texi:25534
544cab3d
LC
45262msgid "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:"
45263msgstr ""
45264
45265#. type: smallexample
32747aa9 45266#: doc/guix.texi:25541
544cab3d
LC
45267#, no-wrap
45268msgid ""
45269"$ guix lint -c cve\n"
45270"gnu/packages/base.scm:652:2: glibc@@2.21: probably vulnerable to CVE-2015-1781, CVE-2015-7547\n"
45271"gnu/packages/gcc.scm:334:2: gcc@@4.9.3: probably vulnerable to CVE-2015-5276\n"
45272"gnu/packages/image.scm:312:2: openjpeg@@2.1.0: probably vulnerable to CVE-2016-1923, CVE-2016-1924\n"
45273"@dots{}\n"
45274msgstr ""
45275
45276#. type: Plain text
32747aa9 45277#: doc/guix.texi:25544
544cab3d
LC
45278msgid "@xref{Invoking guix lint}, for more information."
45279msgstr ""
45280
45281#. type: quotation
32747aa9 45282#: doc/guix.texi:25548
544cab3d
LC
45283msgid "As of version @value{VERSION}, the feature described below is considered ``beta''."
45284msgstr ""
45285
45286#. type: Plain text
32747aa9 45287#: doc/guix.texi:25558
544cab3d
LC
45288msgid "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."
45289msgstr ""
45290
45291#. type: cindex
32747aa9 45292#: doc/guix.texi:25559
544cab3d
LC
45293#, no-wrap
45294msgid "grafts"
45295msgstr ""
45296
45297#. type: Plain text
32747aa9 45298#: doc/guix.texi:25567
544cab3d
LC
45299msgid "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."
45300msgstr ""
45301
45302#. type: cindex
32747aa9 45303#: doc/guix.texi:25568
544cab3d
LC
45304#, no-wrap
45305msgid "replacements of packages, for grafts"
45306msgstr ""
45307
45308#. type: Plain text
32747aa9
LC
45309#: doc/guix.texi:25574
45310msgid "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:"
544cab3d
LC
45311msgstr ""
45312
45313#. type: example
32747aa9 45314#: doc/guix.texi:25581
544cab3d
LC
45315#, no-wrap
45316msgid ""
45317"(define bash\n"
45318" (package\n"
45319" (name \"bash\")\n"
45320" ;; @dots{}\n"
45321" (replacement bash-fixed)))\n"
45322msgstr ""
45323
45324#. type: Plain text
32747aa9
LC
45325#: doc/guix.texi:25591
45326msgid "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."
544cab3d
LC
45327msgstr ""
45328
45329#. type: Plain text
32747aa9
LC
45330#: doc/guix.texi:25599
45331msgid "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."
544cab3d
LC
45332msgstr ""
45333
45334#. type: Plain text
32747aa9 45335#: doc/guix.texi:25603
544cab3d
LC
45336msgid "The @option{--no-grafts} command-line option allows you to forcefully avoid grafting (@pxref{Common Build Options, @option{--no-grafts}}). Thus, the command:"
45337msgstr ""
45338
45339#. type: example
32747aa9 45340#: doc/guix.texi:25606
544cab3d
LC
45341#, no-wrap
45342msgid "guix build bash --no-grafts\n"
45343msgstr ""
45344
45345#. type: Plain text
32747aa9 45346#: doc/guix.texi:25610
544cab3d
LC
45347msgid "returns the store file name of the original Bash, whereas:"
45348msgstr ""
45349
45350#. type: example
32747aa9 45351#: doc/guix.texi:25613
544cab3d
LC
45352#, no-wrap
45353msgid "guix build bash\n"
45354msgstr ""
45355
45356#. type: Plain text
32747aa9 45357#: doc/guix.texi:25618
544cab3d
LC
45358msgid "returns the store file name of the ``fixed'', replacement Bash. This allows you to distinguish between the two variants of Bash."
45359msgstr ""
45360
45361#. type: Plain text
32747aa9 45362#: doc/guix.texi:25621
544cab3d
LC
45363msgid "To verify which Bash your whole profile refers to, you can run (@pxref{Invoking guix gc}):"
45364msgstr ""
45365
45366#. type: example
32747aa9 45367#: doc/guix.texi:25624
544cab3d
LC
45368#, no-wrap
45369msgid "guix gc -R `readlink -f ~/.guix-profile` | grep bash\n"
45370msgstr ""
45371
45372#. type: Plain text
32747aa9 45373#: doc/guix.texi:25629
544cab3d
LC
45374msgid "@dots{} and compare the store file names that you get with those above. Likewise for a complete Guix system generation:"
45375msgstr ""
45376
45377#. type: example
32747aa9 45378#: doc/guix.texi:25632
544cab3d
LC
45379#, no-wrap
45380msgid "guix gc -R `guix system build my-config.scm` | grep bash\n"
45381msgstr ""
45382
45383#. type: Plain text
32747aa9 45384#: doc/guix.texi:25636
544cab3d
LC
45385msgid "Lastly, to check which Bash running processes are using, you can use the @command{lsof} command:"
45386msgstr ""
45387
45388#. type: example
32747aa9 45389#: doc/guix.texi:25639
544cab3d
LC
45390#, no-wrap
45391msgid "lsof | grep /gnu/store/.*bash\n"
45392msgstr ""
45393
45394#. type: cindex
32747aa9 45395#: doc/guix.texi:25647
544cab3d
LC
45396#, no-wrap
45397msgid "bootstrapping"
45398msgstr ""
45399
45400#. type: Plain text
32747aa9 45401#: doc/guix.texi:25657
544cab3d
LC
45402msgid "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''."
45403msgstr ""
45404
45405#. type: cindex
32747aa9 45406#: doc/guix.texi:25658 doc/guix.texi:25780
544cab3d
LC
45407#, no-wrap
45408msgid "bootstrap binaries"
45409msgstr ""
45410
45411#. type: Plain text
32747aa9 45412#: doc/guix.texi:25668
544cab3d
LC
45413msgid "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}."
45414msgstr ""
45415
45416#. type: Plain text
32747aa9 45417#: doc/guix.texi:25671
544cab3d
LC
45418msgid "These bootstrap binaries are ``taken for granted'', though we can also re-create them if needed (more on that later)."
45419msgstr ""
45420
45421#. type: unnumberedsec
32747aa9 45422#: doc/guix.texi:25672
544cab3d
LC
45423#, no-wrap
45424msgid "Preparing to Use the Bootstrap Binaries"
45425msgstr ""
45426
45427#. type: Plain text
32747aa9 45428#: doc/guix.texi:25677
544cab3d
LC
45429msgid "@image{images/bootstrap-graph,6in,,Dependency graph of the early bootstrap derivations}"
45430msgstr ""
45431
45432#. type: Plain text
32747aa9 45433#: doc/guix.texi:25682
544cab3d
LC
45434msgid "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:"
45435msgstr ""
45436
45437#. type: example
32747aa9 45438#: doc/guix.texi:25687
544cab3d
LC
45439#, no-wrap
45440msgid ""
45441"guix graph -t derivation \\\n"
45442" -e '(@@@@ (gnu packages bootstrap) %bootstrap-gcc)' \\\n"
45443" | dot -Tps > t.ps\n"
45444msgstr ""
45445
45446#. type: Plain text
32747aa9 45447#: doc/guix.texi:25696
544cab3d
LC
45448msgid "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})."
45449msgstr ""
45450
45451#. type: Plain text
32747aa9 45452#: doc/guix.texi:25705
544cab3d
LC
45453msgid "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."
45454msgstr ""
45455
45456#. type: Plain text
32747aa9 45457#: doc/guix.texi:25717
544cab3d
LC
45458msgid "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 @code{.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})."
45459msgstr ""
45460
45461#. type: Plain text
32747aa9 45462#: doc/guix.texi:25721
544cab3d
LC
45463msgid "Finally, the various tarballs are unpacked by the derivations @code{gcc-bootstrap-0.drv}, @code{glibc-bootstrap-0.drv}, etc., at which point we have a working C tool chain."
45464msgstr ""
45465
45466#. type: unnumberedsec
32747aa9 45467#: doc/guix.texi:25723
544cab3d
LC
45468#, no-wrap
45469msgid "Building the Build Tools"
45470msgstr ""
45471
45472#. type: Plain text
32747aa9 45473#: doc/guix.texi:25732
544cab3d
LC
45474msgid "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."
45475msgstr ""
45476
45477#. type: Plain text
32747aa9 45478#: doc/guix.texi:25739
544cab3d
LC
45479msgid "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:"
45480msgstr ""
45481
45482#. type: example
32747aa9 45483#: doc/guix.texi:25744
544cab3d
LC
45484#, no-wrap
45485msgid ""
45486"guix graph -t bag \\\n"
45487" -e '(@@@@ (gnu packages commencement)\n"
45488" glibc-final-with-bootstrap-bash)' | dot -Tps > t.ps\n"
45489msgstr ""
45490
45491#. type: Plain text
32747aa9 45492#: doc/guix.texi:25751
544cab3d
LC
45493msgid "produces 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."
45494msgstr ""
45495
45496#. type: Plain text
32747aa9 45497#: doc/guix.texi:25753
544cab3d
LC
45498msgid "@image{images/bootstrap-packages,6in,,Dependency graph of the early packages}"
45499msgstr ""
45500
45501#. type: Plain text
32747aa9 45502#: doc/guix.texi:25759
544cab3d
LC
45503msgid "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."
45504msgstr ""
45505
45506#. type: Plain text
32747aa9 45507#: doc/guix.texi:25764
544cab3d
LC
45508msgid "Then come the first-stage Binutils and GCC, built as pseudo cross tools---i.e., with @code{--target} equal to @code{--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."
45509msgstr ""
45510
45511#. type: Plain text
32747aa9 45512#: doc/guix.texi:25770
544cab3d
LC
45513msgid "From there the final Binutils and GCC (not shown above) are built. GCC uses @code{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."
45514msgstr ""
45515
45516#. type: Plain text
32747aa9 45517#: doc/guix.texi:25776
544cab3d
LC
45518msgid "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}})."
45519msgstr ""
45520
45521#. type: unnumberedsec
32747aa9 45522#: doc/guix.texi:25778
544cab3d
LC
45523#, no-wrap
45524msgid "Building the Bootstrap Binaries"
45525msgstr ""
45526
45527#. type: Plain text
32747aa9 45528#: doc/guix.texi:25785
544cab3d
LC
45529msgid "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."
45530msgstr ""
45531
45532#. type: Plain text
32747aa9 45533#: doc/guix.texi:25789
544cab3d
LC
45534msgid "The following command builds the tarballs containing the bootstrap binaries (Guile, Binutils, GCC, libc, and a tarball containing a mixture of Coreutils and other basic command-line tools):"
45535msgstr ""
45536
45537#. type: example
32747aa9 45538#: doc/guix.texi:25792
544cab3d
LC
45539#, no-wrap
45540msgid "guix build bootstrap-tarballs\n"
45541msgstr ""
45542
45543#. type: Plain text
32747aa9 45544#: doc/guix.texi:25797
544cab3d
LC
45545msgid "The generated tarballs are those that should be referred to in the @code{(gnu packages bootstrap)} module mentioned at the beginning of this section."
45546msgstr ""
45547
45548#. type: Plain text
32747aa9 45549#: doc/guix.texi:25803
544cab3d
LC
45550msgid "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."
45551msgstr ""
45552
45553#. type: unnumberedsec
32747aa9 45554#: doc/guix.texi:25804
544cab3d
LC
45555#, no-wrap
45556msgid "Reducing the Set of Bootstrap Binaries"
45557msgstr ""
45558
45559#. type: Plain text
32747aa9 45560#: doc/guix.texi:25812
544cab3d
LC
45561msgid "Our bootstrap binaries currently include GCC, 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}."
45562msgstr ""
45563
45564#. type: Plain text
32747aa9 45565#: doc/guix.texi:25818
544cab3d
LC
45566msgid "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."
45567msgstr ""
45568
45569#. type: Plain text
32747aa9 45570#: doc/guix.texi:25824
544cab3d
LC
45571msgid "The @uref{http://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. Your help is welcome!"
45572msgstr ""
45573
45574#. type: chapter
32747aa9 45575#: doc/guix.texi:25827
544cab3d
LC
45576#, no-wrap
45577msgid "Porting to a New Platform"
45578msgstr ""
45579
45580#. type: Plain text
32747aa9 45581#: doc/guix.texi:25836
544cab3d
LC
45582msgid "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."
45583msgstr ""
45584
45585#. type: Plain text
32747aa9 45586#: doc/guix.texi:25841
544cab3d
LC
45587msgid "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:"
45588msgstr ""
45589
45590#. type: example
32747aa9 45591#: doc/guix.texi:25844
544cab3d
LC
45592#, no-wrap
45593msgid "guix build --target=armv5tel-linux-gnueabi bootstrap-tarballs\n"
45594msgstr ""
45595
45596#. type: Plain text
32747aa9 45597#: doc/guix.texi:25851
544cab3d
LC
45598msgid "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."
45599msgstr ""
45600
45601#. type: Plain text
32747aa9 45602#: doc/guix.texi:25860
544cab3d
LC
45603msgid "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."
45604msgstr ""
45605
45606#. type: Plain text
32747aa9 45607#: doc/guix.texi:25869
544cab3d
LC
45608msgid "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 @code{--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."
45609msgstr ""
45610
45611#. type: include
32747aa9 45612#: doc/guix.texi:25871
544cab3d
LC
45613#, no-wrap
45614msgid "contributing.texi"
3068509a 45615msgstr "contributing.zh_CN.texi"
544cab3d
LC
45616
45617#. type: Plain text
32747aa9
LC
45618#: doc/guix.texi:25884
45619msgid "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."
544cab3d
LC
45620msgstr ""
45621
45622#. type: Plain text
32747aa9 45623#: doc/guix.texi:25887
544cab3d
LC
45624msgid "The Nix-based software distributions, Nixpkgs and NixOS, have also been an inspiration for Guix."
45625msgstr ""
45626
45627#. type: Plain text
32747aa9 45628#: doc/guix.texi:25893
544cab3d
LC
45629msgid "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!"
45630msgstr ""
45631
45632#. type: cindex
32747aa9 45633#: doc/guix.texi:25898
544cab3d
LC
45634#, no-wrap
45635msgid "license, GNU Free Documentation License"
45636msgstr ""
45637
45638#. type: include
32747aa9 45639#: doc/guix.texi:25899
544cab3d
LC
45640#, no-wrap
45641msgid "fdl-1.3.texi"
45642msgstr ""
32747aa9
LC
45643
45644#~ msgid "The @code{guix} package must remain available in @code{root}'s profile, or it would become subject to garbage collection---in which case you would find yourself badly handicapped by the lack of the @command{guix} command. In other words, do not remove @code{guix} by running @code{guix package -r guix}."
45645#~ msgstr "@code{guix}软件包必须保留在@code{root}的profile里,否则它会被垃圾回收清理掉--那时你会发现缺少@command{guix}命令。换句话说,不要用@code{guix package -r guix}命令删除@code{guix}。"