build: Use only one domain for guix-manual.
[jackhill/guix/guix.git] / po / doc / guix-manual.pot
CommitLineData
b9fe8fd6
JL
1# SOME DESCRIPTIVE TITLE
2# Copyright (C) YEAR Ludovic Courtès
3# This file is distributed under the same license as the guix package.
4# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
5#
6#, fuzzy
7msgid ""
8msgstr ""
39764ef8 9"Project-Id-Version: guix 0.14.0.4289-6527\n"
b9fe8fd6 10"Report-Msgid-Bugs-To: ludo@gnu.org\n"
39764ef8 11"POT-Creation-Date: 2018-04-29 20:48+0200\n"
b9fe8fd6
JL
12"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
13"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
14"Language-Team: LANGUAGE <LL@li.org>\n"
15"Language: \n"
16"MIME-Version: 1.0\n"
17"Content-Type: text/plain; charset=UTF-8\n"
18"Content-Transfer-Encoding: 8bit\n"
19
39764ef8
JL
20#. #-#-#-#-# contributing.pot (guix 0.14.0.4289-6527) #-#-#-#-#
21#. type: chapter
22#. #-#-#-#-# guix.pot (guix 0.14.0.4289-6527) #-#-#-#-#
23#. type: menuentry
24#: doc/contributing.texi:1 doc/contributing.texi:2 doc/guix.texi:106
25#: doc/guix.texi:276
26#, no-wrap
27msgid "Contributing"
28msgstr ""
29
30#. type: Plain text
31#: doc/contributing.texi:9
32msgid ""
33"This project is a cooperative effort, and we need your help to make it grow! "
34"Please get in touch with us on @email{guix-devel@@gnu.org} and @code{#guix} "
35"on the Freenode IRC network. We welcome ideas, bug reports, patches, and "
36"anything that may be helpful to the project. We particularly welcome help "
37"on packaging (@pxref{Packaging Guidelines})."
38msgstr ""
39
40#. type: cindex
41#: doc/contributing.texi:10
42#, no-wrap
43msgid "code of conduct, of contributors"
44msgstr ""
45
46#. type: cindex
47#: doc/contributing.texi:11
48#, no-wrap
49msgid "contributor covenant"
50msgstr ""
51
52#. type: Plain text
53#: doc/contributing.texi:17
54msgid ""
55"We want to provide a warm, friendly, and harassment-free environment, so "
56"that anyone can contribute to the best of their abilities. To this end our "
57"project uses a ``Contributor Covenant'', which was adapted from @url{http://"
58"contributor-covenant.org/}. You can find a local version in the @file{CODE-"
59"OF-CONDUCT} file in the source tree."
60msgstr ""
61
62#. type: Plain text
63#: doc/contributing.texi:21
64msgid ""
65"Contributors are not required to use their legal name in patches and on-line "
66"communication; they can use any name or pseudonym of their choice."
67msgstr ""
68
69#. #-#-#-#-# contributing.pot (guix 0.14.0.4289-6527) #-#-#-#-#
70#. type: section
71#. #-#-#-#-# guix.pot (guix 0.14.0.4289-6527) #-#-#-#-#
72#. type: menuentry
73#: doc/contributing.texi:28 doc/contributing.texi:30 doc/contributing.texi:31
74#: doc/guix.texi:282
75#, no-wrap
76msgid "Building from Git"
77msgstr ""
78
79#. type: menuentry
80#: doc/contributing.texi:28 doc/guix.texi:282
81msgid "The latest and greatest."
82msgstr ""
83
84#. #-#-#-#-# contributing.pot (guix 0.14.0.4289-6527) #-#-#-#-#
85#. type: section
86#. #-#-#-#-# guix.pot (guix 0.14.0.4289-6527) #-#-#-#-#
87#. type: menuentry
88#: doc/contributing.texi:28 doc/contributing.texi:102 doc/contributing.texi:103
89#: doc/guix.texi:282
90#, no-wrap
91msgid "Running Guix Before It Is Installed"
92msgstr ""
93
94#. type: menuentry
95#: doc/contributing.texi:28 doc/guix.texi:282
96msgid "Hacker tricks."
97msgstr ""
98
99#. #-#-#-#-# contributing.pot (guix 0.14.0.4289-6527) #-#-#-#-#
100#. type: section
101#. #-#-#-#-# guix.pot (guix 0.14.0.4289-6527) #-#-#-#-#
102#. type: menuentry
103#: doc/contributing.texi:28 doc/contributing.texi:169 doc/contributing.texi:170
104#: doc/guix.texi:282
105#, no-wrap
106msgid "The Perfect Setup"
107msgstr ""
108
109#. type: menuentry
110#: doc/contributing.texi:28 doc/guix.texi:282
111msgid "The right tools."
112msgstr ""
113
114#. #-#-#-#-# contributing.pot (guix 0.14.0.4289-6527) #-#-#-#-#
115#. type: section
116#. #-#-#-#-# guix.pot (guix 0.14.0.4289-6527) #-#-#-#-#
117#. type: menuentry
118#: doc/contributing.texi:28 doc/contributing.texi:228 doc/contributing.texi:229
119#: doc/guix.texi:282 doc/guix.texi:284
120#, no-wrap
121msgid "Coding Style"
122msgstr ""
123
124#. type: menuentry
125#: doc/contributing.texi:28 doc/guix.texi:282
126msgid "Hygiene of the contributor."
127msgstr ""
128
129#. #-#-#-#-# contributing.pot (guix 0.14.0.4289-6527) #-#-#-#-#
130#. type: section
131#. #-#-#-#-# guix.pot (guix 0.14.0.4289-6527) #-#-#-#-#
132#. type: menuentry
133#: doc/contributing.texi:28 doc/contributing.texi:326 doc/contributing.texi:327
134#: doc/guix.texi:282
135#, no-wrap
136msgid "Submitting Patches"
137msgstr ""
138
139#. type: menuentry
140#: doc/contributing.texi:28 doc/guix.texi:282
141msgid "Share your work."
142msgstr ""
143
144#. type: Plain text
145#: doc/contributing.texi:35
146msgid ""
147"If you want to hack Guix itself, it is recommended to use the latest version "
148"from the Git repository:"
149msgstr ""
150
151#. type: example
152#: doc/contributing.texi:38
153#, no-wrap
154msgid "git clone https://git.savannah.gnu.org/git/guix.git\n"
155msgstr ""
156
157#. type: Plain text
158#: doc/contributing.texi:43
159msgid ""
160"When building Guix from a checkout, the following packages are required in "
161"addition to those mentioned in the installation instructions "
162"(@pxref{Requirements})."
163msgstr ""
164
165#. type: item
166#: doc/contributing.texi:45
167#, no-wrap
168msgid "@url{http://gnu.org/software/autoconf/, GNU Autoconf};"
169msgstr ""
170
171#. type: item
172#: doc/contributing.texi:46
173#, no-wrap
174msgid "@url{http://gnu.org/software/automake/, GNU Automake};"
175msgstr ""
176
177#. type: item
178#: doc/contributing.texi:47
179#, no-wrap
180msgid "@url{http://gnu.org/software/gettext/, GNU Gettext};"
181msgstr ""
182
183#. type: item
184#: doc/contributing.texi:48
185#, no-wrap
186msgid "@url{http://gnu.org/software/texinfo/, GNU Texinfo};"
187msgstr ""
188
189#. type: item
190#: doc/contributing.texi:49
191#, no-wrap
192msgid "@url{http://www.graphviz.org/, Graphviz};"
193msgstr ""
194
195#. type: item
196#: doc/contributing.texi:50
197#, no-wrap
198msgid "@url{http://www.gnu.org/software/help2man/, GNU Help2man (optional)}."
199msgstr ""
200
201#. type: Plain text
202#: doc/contributing.texi:57
203msgid ""
204"The easiest way to set up a development environment for Guix is, of course, "
205"by using Guix! The following command starts a new shell where all the "
206"dependencies and appropriate environment variables are set up to hack on "
207"Guix:"
208msgstr ""
209
210#. type: example
211#: doc/contributing.texi:60
212#, no-wrap
213msgid "guix environment guix\n"
214msgstr ""
215
216#. type: Plain text
217#: doc/contributing.texi:64
218msgid ""
219"@xref{Invoking guix environment}, for more information on that command. "
220"Extra dependencies can be added with @option{--ad-hoc}:"
221msgstr ""
222
223#. type: example
224#: doc/contributing.texi:67
225#, no-wrap
226msgid "guix environment guix --ad-hoc help2man git strace\n"
227msgstr ""
228
229#. type: Plain text
230#: doc/contributing.texi:71
231msgid ""
232"Run @command{./bootstrap} to generate the build system infrastructure using "
233"Autoconf and Automake. If you get an error like this one:"
234msgstr ""
235
236#. type: example
237#: doc/contributing.texi:74
238#, no-wrap
239msgid "configure.ac:46: error: possibly undefined macro: PKG_CHECK_MODULES\n"
240msgstr ""
241
242#. type: Plain text
243#: doc/contributing.texi:83
244msgid ""
245"it probably means that Autoconf couldn’t find @file{pkg.m4}, which is "
246"provided by pkg-config. Make sure that @file{pkg.m4} is available. The "
247"same holds for the @file{guile.m4} set of macros provided by Guile. For "
248"instance, if you installed Automake in @file{/usr/local}, it wouldn’t look "
249"for @file{.m4} files in @file{/usr/share}. In that case, you have to invoke "
250"the following command:"
251msgstr ""
252
253#. type: example
254#: doc/contributing.texi:86
255#, no-wrap
256msgid "export ACLOCAL_PATH=/usr/share/aclocal\n"
257msgstr ""
258
259#. type: Plain text
260#: doc/contributing.texi:90
261msgid ""
262"@xref{Macro Search Path,,, automake, The GNU Automake Manual}, for more "
263"information."
264msgstr ""
265
266#. type: Plain text
267#: doc/contributing.texi:95
268msgid ""
269"Then, run @command{./configure} as usual. Make sure to pass @code{--"
270"localstatedir=@var{directory}} where @var{directory} is the "
271"@code{localstatedir} value used by your current installation (@pxref{The "
272"Store}, for information about this)."
273msgstr ""
274
275#. type: Plain text
276#: doc/contributing.texi:100
277msgid ""
278"Finally, you have to invoke @code{make check} to run tests (@pxref{Running "
279"the Test Suite}). If anything fails, take a look at installation "
280"instructions (@pxref{Installation}) or send a message to the @email{guix-"
281"devel@@gnu.org, mailing list}."
282msgstr ""
283
284#. type: Plain text
285#: doc/contributing.texi:109
286msgid ""
287"In order to keep a sane working environment, you will find it useful to test "
288"the changes made in your local source tree checkout without actually "
289"installing them. So that you can distinguish between your ``end-user'' hat "
290"and your ``motley'' costume."
291msgstr ""
292
293#. type: Plain text
294#: doc/contributing.texi:117
295msgid ""
296"To that end, all the command-line tools can be used even if you have not run "
297"@code{make install}. To do that, prefix each command with @command{./pre-"
298"inst-env} (the @file{pre-inst-env} script lives in the top build tree of "
299"Guix), as in@footnote{The @option{-E} flag to @command{sudo} guarantees that "
300"@code{GUILE_LOAD_PATH} is correctly set such that @command{guix-daemon} and "
301"the tools it uses can find the Guile modules they need.}:"
302msgstr ""
303
304#. type: example
305#: doc/contributing.texi:121
306#, no-wrap
307msgid ""
308"$ sudo -E ./pre-inst-env guix-daemon --build-users-group=guixbuild\n"
309"$ ./pre-inst-env guix build hello\n"
310msgstr ""
311
312#. type: Plain text
313#: doc/contributing.texi:125
314msgid "Similarly, for a Guile session using the Guix modules:"
315msgstr ""
316
317#. type: example
318#: doc/contributing.texi:128
319#, no-wrap
320msgid ""
321"$ ./pre-inst-env guile -c '(use-modules (guix utils)) (pk (%current-system))'\n"
322"\n"
323msgstr ""
324
325#. type: example
326#: doc/contributing.texi:130
327#, no-wrap
328msgid ";;; (\"x86_64-linux\")\n"
329msgstr ""
330
331#. type: cindex
332#: doc/contributing.texi:133
333#, no-wrap
334msgid "REPL"
335msgstr ""
336
337#. type: cindex
338#: doc/contributing.texi:134
339#, no-wrap
340msgid "read-eval-print loop"
341msgstr ""
342
343#. type: Plain text
344#: doc/contributing.texi:137
345msgid ""
346"@dots{} and for a REPL (@pxref{Using Guile Interactively,,, guile, Guile "
347"Reference Manual}):"
348msgstr ""
349
350#. type: example
351#: doc/contributing.texi:152
352#, no-wrap
353msgid ""
354"$ ./pre-inst-env guile\n"
355"scheme@@(guile-user)> ,use(guix)\n"
356"scheme@@(guile-user)> ,use(gnu)\n"
357"scheme@@(guile-user)> (define snakes\n"
358" (fold-packages\n"
359" (lambda (package lst)\n"
360" (if (string-prefix? \"python\"\n"
361" (package-name package))\n"
362" (cons package lst)\n"
363" lst))\n"
364" '()))\n"
365"scheme@@(guile-user)> (length snakes)\n"
366"$1 = 361\n"
367msgstr ""
368
369#. type: Plain text
370#: doc/contributing.texi:156
371msgid ""
372"The @command{pre-inst-env} script sets up all the environment variables "
373"necessary to support this, including @env{PATH} and @env{GUILE_LOAD_PATH}."
374msgstr ""
375
376#. type: Plain text
377#: doc/contributing.texi:167
378msgid ""
379"Note that @command{./pre-inst-env guix pull} does @emph{not} upgrade the "
380"local source tree; it simply updates the @file{~/.config/guix/latest} "
381"symlink (@pxref{Invoking guix pull}). Run @command{git pull} instead if you "
382"want to upgrade your local source tree.@footnote{If you would like to set up "
383"@command{guix} to use your Git checkout, you can point the @file{~/.config/"
384"guix/latest} symlink to your Git checkout directory. If you are the sole "
385"user of your system, you may also consider pointing the @file{/root/.config/"
386"guix/latest} symlink to point to @file{~/.config/guix/latest}; this way it "
387"will always use the same @command{guix} as your user does.}"
388msgstr ""
389
390#. type: Plain text
391#: doc/contributing.texi:177
392msgid ""
393"The Perfect Setup to hack on Guix is basically the perfect setup used for "
394"Guile hacking (@pxref{Using Guile in Emacs,,, guile, Guile Reference "
395"Manual}). First, you need more than an editor, you need @url{http://www.gnu."
396"org/software/emacs, Emacs}, empowered by the wonderful @url{http://nongnu."
397"org/geiser/, Geiser}."
398msgstr ""
399
400#. type: Plain text
401#: doc/contributing.texi:185
402msgid ""
403"Geiser allows for interactive and incremental development from within Emacs: "
404"code compilation and evaluation from within buffers, access to on-line "
405"documentation (docstrings), context-sensitive completion, @kbd{M-.} to jump "
406"to an object definition, a REPL to try out your code, and more "
407"(@pxref{Introduction,,, geiser, Geiser User Manual}). For convenient Guix "
408"development, make sure to augment Guile’s load path so that it finds source "
409"files from your checkout:"
410msgstr ""
411
412#. type: lisp
413#: doc/contributing.texi:190
414#, no-wrap
415msgid ""
416";; @r{Assuming the Guix checkout is in ~/src/guix.}\n"
417"(with-eval-after-load 'geiser-guile\n"
418" (add-to-list 'geiser-guile-load-path \"~/src/guix\"))\n"
419msgstr ""
420
421#. type: Plain text
422#: doc/contributing.texi:198
423msgid ""
424"To actually edit the code, Emacs already has a neat Scheme mode. But in "
425"addition to that, you must not miss @url{http://www.emacswiki.org/emacs/"
426"ParEdit, Paredit}. It provides facilities to directly operate on the syntax "
427"tree, such as raising an s-expression or wrapping it, swallowing or "
428"rejecting the following s-expression, etc."
429msgstr ""
430
431#. type: cindex
432#: doc/contributing.texi:199
433#, no-wrap
434msgid "code snippets"
435msgstr ""
436
437#. type: cindex
438#: doc/contributing.texi:200
439#, no-wrap
440msgid "templates"
441msgstr ""
442
443#. type: cindex
444#: doc/contributing.texi:201
445#, no-wrap
446msgid "reducing boilerplate"
447msgstr ""
448
449#. type: Plain text
450#: doc/contributing.texi:208
451msgid ""
452"We also provide templates for common git commit messages and package "
453"definitions in the @file{etc/snippets} directory. These templates can be "
454"used with @url{http://joaotavora.github.io/yasnippet/, YASnippet} to expand "
455"short trigger strings to interactive text snippets. You may want to add the "
456"snippets directory to the @var{yas-snippet-dirs} variable in Emacs."
457msgstr ""
458
459#. type: lisp
460#: doc/contributing.texi:213
461#, no-wrap
462msgid ""
463";; @r{Assuming the Guix checkout is in ~/src/guix.}\n"
464"(with-eval-after-load 'yasnippet\n"
465" (add-to-list 'yas-snippet-dirs \"~/src/guix/etc/snippets\"))\n"
466msgstr ""
467
468#. type: Plain text
469#: doc/contributing.texi:220
470msgid ""
471"The commit message snippets depend on @url{https://magit.vc/, Magit} to "
472"display staged files. When editing a commit message type @code{add} "
473"followed by @kbd{TAB} to insert a commit message template for adding a "
474"package; type @code{update} followed by @kbd{TAB} to insert a template for "
475"updating a package."
476msgstr ""
477
478#. type: Plain text
479#: doc/contributing.texi:226
480msgid ""
481"The main snippet for @code{scheme-mode} is triggered by typing "
482"@code{package...} followed by @kbd{TAB}. This snippet also inserts the "
483"trigger string @code{origin...}, which can be expanded further. The "
484"@code{origin} snippet in turn may insert other trigger strings ending on "
485"@code{...}, which also can be expanded further."
486msgstr ""
487
488#. type: Plain text
489#: doc/contributing.texi:234
490msgid ""
491"In general our code follows the GNU Coding Standards (@pxref{Top,,, "
492"standards, GNU Coding Standards}). However, they do not say much about "
493"Scheme, so here are some additional rules."
494msgstr ""
495
496#. #-#-#-#-# contributing.pot (guix 0.14.0.4289-6527) #-#-#-#-#
497#. type: subsection
498#. #-#-#-#-# guix.pot (guix 0.14.0.4289-6527) #-#-#-#-#
499#. type: menuentry
500#: doc/contributing.texi:240 doc/contributing.texi:242
501#: doc/contributing.texi:243 doc/guix.texi:289
502#, no-wrap
503msgid "Programming Paradigm"
504msgstr ""
505
506#. type: menuentry
507#: doc/contributing.texi:240 doc/guix.texi:289
508msgid "How to compose your elements."
509msgstr ""
510
511#. #-#-#-#-# contributing.pot (guix 0.14.0.4289-6527) #-#-#-#-#
512#. type: subsection
513#. #-#-#-#-# guix.pot (guix 0.14.0.4289-6527) #-#-#-#-#
514#. type: menuentry
515#: doc/contributing.texi:240 doc/contributing.texi:249
516#: doc/contributing.texi:250 doc/guix.texi:289
517#, no-wrap
518msgid "Modules"
519msgstr ""
520
521#. type: menuentry
522#: doc/contributing.texi:240 doc/guix.texi:289
523msgid "Where to store your code?"
524msgstr ""
525
526#. #-#-#-#-# contributing.pot (guix 0.14.0.4289-6527) #-#-#-#-#
527#. type: subsection
528#. #-#-#-#-# guix.pot (guix 0.14.0.4289-6527) #-#-#-#-#
529#. type: menuentry
530#: doc/contributing.texi:240 doc/contributing.texi:260
531#: doc/contributing.texi:261 doc/guix.texi:289
532#, no-wrap
533msgid "Data Types and Pattern Matching"
534msgstr ""
535
536#. type: menuentry
537#: doc/contributing.texi:240 doc/guix.texi:289
538msgid "Implementing data structures."
539msgstr ""
540
541#. #-#-#-#-# contributing.pot (guix 0.14.0.4289-6527) #-#-#-#-#
542#. type: subsection
543#. #-#-#-#-# guix.pot (guix 0.14.0.4289-6527) #-#-#-#-#
544#. type: menuentry
545#: doc/contributing.texi:240 doc/contributing.texi:274
546#: doc/contributing.texi:275 doc/guix.texi:289
547#, no-wrap
548msgid "Formatting Code"
549msgstr ""
550
551#. type: menuentry
552#: doc/contributing.texi:240 doc/guix.texi:289
553msgid "Writing conventions."
554msgstr ""
555
556#. type: Plain text
557#: doc/contributing.texi:248
558msgid ""
559"Scheme code in Guix is written in a purely functional style. One exception "
560"is code that involves input/output, and procedures that implement low-level "
561"concepts, such as the @code{memoize} procedure."
562msgstr ""
563
564#. type: Plain text
565#: doc/contributing.texi:256
566msgid ""
567"Guile modules that are meant to be used on the builder side must live in the "
568"@code{(guix build @dots{})} name space. They must not refer to other Guix "
569"or GNU modules. However, it is OK for a ``host-side'' module to use a build-"
570"side module."
571msgstr ""
572
573#. type: Plain text
574#: doc/contributing.texi:259
575msgid ""
576"Modules that deal with the broader GNU system should be in the @code{(gnu "
577"@dots{})} name space rather than @code{(guix @dots{})}."
578msgstr ""
579
580#. type: Plain text
581#: doc/contributing.texi:268
582msgid ""
583"The tendency in classical Lisp is to use lists to represent everything, and "
584"then to browse them ``by hand'' using @code{car}, @code{cdr}, @code{cadr}, "
585"and co. There are several problems with that style, notably the fact that "
586"it is hard to read, error-prone, and a hindrance to proper type error "
587"reports."
588msgstr ""
589
590#. type: Plain text
591#: doc/contributing.texi:273
592msgid ""
593"Guix code should define appropriate data types (for instance, using "
594"@code{define-record-type*}) rather than abuse lists. In addition, it should "
595"use pattern matching, via Guile’s @code{(ice-9 match)} module, especially "
596"when matching lists."
597msgstr ""
598
599#. type: cindex
600#: doc/contributing.texi:277
601#, no-wrap
602msgid "formatting code"
603msgstr ""
604
605#. type: cindex
606#: doc/contributing.texi:278
607#, no-wrap
608msgid "coding style"
609msgstr ""
610
611#. type: Plain text
612#: doc/contributing.texi:285
613msgid ""
614"When writing Scheme code, we follow common wisdom among Scheme programmers. "
615"In general, we follow the @url{http://mumble.net/~campbell/scheme/style.txt, "
616"Riastradh's Lisp Style Rules}. This document happens to describe the "
617"conventions mostly used in Guile’s code too. It is very thoughtful and well "
618"written, so please do read it."
619msgstr ""
620
621#. type: Plain text
622#: doc/contributing.texi:292
623msgid ""
624"Some special forms introduced in Guix, such as the @code{substitute*} macro, "
625"have special indentation rules. These are defined in the @file{.dir-locals."
626"el} file, which Emacs automatically uses. Also note that Emacs-Guix "
627"provides @code{guix-devel-mode} mode that indents and highlights Guix code "
628"properly (@pxref{Development,,, emacs-guix, The Emacs-Guix Reference "
629"Manual})."
630msgstr ""
631
632#. type: cindex
633#: doc/contributing.texi:293
634#, no-wrap
635msgid "indentation, of code"
636msgstr ""
637
638#. type: cindex
639#: doc/contributing.texi:294
640#, no-wrap
641msgid "formatting, of code"
642msgstr ""
643
644#. type: Plain text
645#: doc/contributing.texi:297
646msgid ""
647"If you do not use Emacs, please make sure to let your editor knows these "
648"rules. To automatically indent a package definition, you can also run:"
649msgstr ""
650
651#. type: example
652#: doc/contributing.texi:300
653#, no-wrap
654msgid "./etc/indent-code.el gnu/packages/@var{file}.scm @var{package}\n"
655msgstr ""
656
657#. type: Plain text
658#: doc/contributing.texi:306
659msgid ""
660"This automatically indents the definition of @var{package} in @file{gnu/"
661"packages/@var{file}.scm} by running Emacs in batch mode. To indent a whole "
662"file, omit the second argument:"
663msgstr ""
664
665#. type: example
666#: doc/contributing.texi:309
667#, no-wrap
668msgid "./etc/indent-code.el gnu/services/@var{file}.scm\n"
669msgstr ""
670
671#. type: cindex
672#: doc/contributing.texi:311
673#, no-wrap
674msgid "Vim, Scheme code editing"
675msgstr ""
676
677#. type: Plain text
678#: doc/contributing.texi:317
679msgid ""
680"If you are editing code with Vim, we recommend that you run @code{:set "
681"autoindent} so that your code is automatically indented as you type. "
682"Additionally, @uref{https://www.vim.org/scripts/script.php?script_id=3998, "
683"@code{paredit.vim}} may help you deal with all these parentheses."
684msgstr ""
685
686#. type: Plain text
687#: doc/contributing.texi:321
688msgid ""
689"We require all top-level procedures to carry a docstring. This requirement "
690"can be relaxed for simple private procedures in the @code{(guix build "
691"@dots{})} name space, though."
692msgstr ""
693
694#. type: Plain text
695#: doc/contributing.texi:324
696msgid ""
697"Procedures should not have more than four positional parameters. Use "
698"keyword parameters for procedures that take more than four parameters."
699msgstr ""
700
701#. type: Plain text
702#: doc/contributing.texi:333
703msgid ""
704"Development is done using the Git distributed version control system. Thus, "
705"access to the repository is not strictly necessary. We welcome "
706"contributions in the form of patches as produced by @code{git format-patch} "
707"sent to the @email{guix-patches@@gnu.org} mailing list."
708msgstr ""
709
710#. type: Plain text
711#: doc/contributing.texi:340
712msgid ""
713"This mailing list is backed by a Debbugs instance accessible at "
714"@uref{https://bugs.gnu.org/guix-patches}, which allows us to keep track of "
715"submissions. Each message sent to that mailing list gets a new tracking "
716"number assigned; people can then follow up on the submission by sending "
717"email to @code{@var{NNN}@@debbugs.gnu.org}, where @var{NNN} is the tracking "
718"number (@pxref{Sending a Patch Series})."
719msgstr ""
720
721#. type: Plain text
722#: doc/contributing.texi:344
723msgid ""
724"Please write commit logs in the ChangeLog format (@pxref{Change Logs,,, "
725"standards, GNU Coding Standards}); you can check the commit history for "
726"examples."
727msgstr ""
728
729#. type: Plain text
730#: doc/contributing.texi:347
731msgid ""
732"Before submitting a patch that adds or modifies a package definition, please "
733"run through this check list:"
734msgstr ""
735
736#. type: enumerate
737#: doc/contributing.texi:354
738msgid ""
739"If the authors of the packaged software provide a cryptographic signature "
740"for the release tarball, make an effort to verify the authenticity of the "
741"archive. For a detached GPG signature file this would be done with the "
742"@code{gpg --verify} command."
743msgstr ""
744
745#. type: enumerate
746#: doc/contributing.texi:358
747msgid ""
748"Take some time to provide an adequate synopsis and description for the "
749"package. @xref{Synopses and Descriptions}, for some guidelines."
750msgstr ""
751
752#. type: enumerate
753#: doc/contributing.texi:363
754msgid ""
755"Run @code{guix lint @var{package}}, where @var{package} is the name of the "
756"new or modified package, and fix any errors it reports (@pxref{Invoking guix "
757"lint})."
758msgstr ""
759
760#. type: enumerate
761#: doc/contributing.texi:367
762msgid ""
763"Make sure the package builds on your platform, using @code{guix build "
764"@var{package}}."
765msgstr ""
766
767#. type: cindex
768#: doc/contributing.texi:369
769#, no-wrap
770msgid "bundling"
771msgstr ""
772
773#. type: enumerate
774#: doc/contributing.texi:372
775msgid ""
776"Make sure the package does not use bundled copies of software already "
777"available as separate packages."
778msgstr ""
779
780#. type: enumerate
781#: doc/contributing.texi:381
782msgid ""
783"Sometimes, packages include copies of the source code of their dependencies "
784"as a convenience for users. However, as a distribution, we want to make "
785"sure that such packages end up using the copy we already have in the "
786"distribution, if there is one. This improves resource usage (the dependency "
787"is built and stored only once), and allows the distribution to make "
788"transverse changes such as applying security updates for a given software "
789"package in a single place and have them affect the whole system---something "
790"that bundled copies prevent."
791msgstr ""
792
793#. type: enumerate
794#: doc/contributing.texi:388
795msgid ""
796"Take a look at the profile reported by @command{guix size} (@pxref{Invoking "
797"guix size}). This will allow you to notice references to other packages "
798"unwillingly retained. It may also help determine whether to split the "
799"package (@pxref{Packages with Multiple Outputs}), and which optional "
800"dependencies should be used."
801msgstr ""
802
803#. type: enumerate
804#: doc/contributing.texi:393
805msgid ""
806"For important changes, check that dependent package (if applicable) are not "
807"affected by the change; @code{guix refresh --list-dependent @var{package}} "
808"will help you do that (@pxref{Invoking guix refresh})."
809msgstr ""
810
811#. type: cindex
812#: doc/contributing.texi:395
813#, no-wrap
814msgid "branching strategy"
815msgstr ""
816
817#. type: cindex
818#: doc/contributing.texi:396
819#, no-wrap
820msgid "rebuild scheduling strategy"
821msgstr ""
822
823#. type: enumerate
824#: doc/contributing.texi:399
825msgid ""
826"Depending on the number of dependent packages and thus the amount of "
827"rebuilding induced, commits go to different branches, along these lines:"
828msgstr ""
829
830#. type: item
831#: doc/contributing.texi:401
832#, no-wrap
833msgid "300 dependent packages or less"
834msgstr ""
835
836#. type: table
837#: doc/contributing.texi:403
838msgid "@code{master} branch (non-disruptive changes)."
839msgstr ""
840
841#. type: item
842#: doc/contributing.texi:404
843#, no-wrap
844msgid "between 300 and 1,200 dependent packages"
845msgstr ""
846
847#. type: table
848#: doc/contributing.texi:409
849msgid ""
850"@code{staging} branch (non-disruptive changes). This branch is intended to "
851"be merged in @code{master} every 3 weeks or so. Topical changes (e.g., an "
852"update of the GNOME stack) can instead go to a specific branch (say, "
853"@code{gnome-updates})."
854msgstr ""
855
856#. type: item
857#: doc/contributing.texi:410
858#, no-wrap
859msgid "more than 1,200 dependent packages"
860msgstr ""
861
862#. type: table
863#: doc/contributing.texi:414
864msgid ""
865"@code{core-updates} branch (may include major and potentially disruptive "
866"changes). This branch is intended to be merged in @code{master} every 2.5 "
867"months or so."
868msgstr ""
869
870#. type: enumerate
871#: doc/contributing.texi:421
872msgid ""
873"All these branches are tracked by our build farm and merged into "
874"@code{master} once everything has been successfully built. This allows us "
875"to fix issues before they hit users, and to reduce the window during which "
876"pre-built binaries are not available."
877msgstr ""
878
879#. type: cindex
880#: doc/contributing.texi:423
881#, no-wrap
882msgid "determinism, of build processes"
883msgstr ""
884
885#. type: cindex
886#: doc/contributing.texi:424
887#, no-wrap
888msgid "reproducible builds, checking"
889msgstr ""
890
891#. type: enumerate
892#: doc/contributing.texi:428
893msgid ""
894"Check whether the package's build process is deterministic. This typically "
895"means checking whether an independent build of the package yields the exact "
896"same result that you obtained, bit for bit."
897msgstr ""
898
899#. type: enumerate
900#: doc/contributing.texi:431
901msgid ""
902"A simple way to do that is by building the same package several times in a "
903"row on your machine (@pxref{Invoking guix build}):"
904msgstr ""
905
906#. type: example
907#: doc/contributing.texi:434
908#, no-wrap
909msgid "guix build --rounds=2 my-package\n"
910msgstr ""
911
912#. type: enumerate
913#: doc/contributing.texi:438
914msgid ""
915"This is enough to catch a class of common non-determinism issues, such as "
916"timestamps or randomly-generated output in the build result."
917msgstr ""
918
919#. type: enumerate
920#: doc/contributing.texi:448
921msgid ""
922"Another option is to use @command{guix challenge} (@pxref{Invoking guix "
923"challenge}). You may run it once the package has been committed and built "
924"by @code{hydra.gnu.org} to check whether it obtains the same result as you "
925"did. Better yet: Find another machine that can build it and run "
926"@command{guix publish}. Since the remote build machine is likely different "
927"from yours, this can catch non-determinism issues related to the hardware---"
928"e.g., use of different instruction set extensions---or to the operating "
929"system kernel---e.g., reliance on @code{uname} or @file{/proc} files."
930msgstr ""
931
932#. type: enumerate
933#: doc/contributing.texi:454
934msgid ""
935"When writing documentation, please use gender-neutral wording when referring "
936"to people, such as @uref{https://en.wikipedia.org/wiki/Singular_they, "
937"singular ``they''@comma{} ``their''@comma{} ``them''}, and so forth."
938msgstr ""
939
940#. type: enumerate
941#: doc/contributing.texi:458
942msgid ""
943"Verify that your patch contains only one set of related changes. Bundling "
944"unrelated changes together makes reviewing harder and slower."
945msgstr ""
946
947#. type: enumerate
948#: doc/contributing.texi:461
949msgid ""
950"Examples of unrelated changes include the addition of several packages, or a "
951"package update along with fixes to that package."
952msgstr ""
953
954#. type: enumerate
955#: doc/contributing.texi:466
956msgid ""
957"Please follow our code formatting rules, possibly running the @command{etc/"
958"indent-code.el} script to do that automatically for you (@pxref{Formatting "
959"Code})."
960msgstr ""
961
962#. type: Plain text
963#: doc/contributing.texi:476
964msgid ""
965"When posting a patch to the mailing list, use @samp{[PATCH] @dots{}} as a "
966"subject. You may use your email client or the @command{git send-email} "
967"command (@pxref{Sending a Patch Series}). We prefer to get patches in plain "
968"text messages, either inline or as MIME attachments. You are advised to pay "
969"attention if your email client changes anything like line breaks or "
970"indentation which could potentially break the patches."
971msgstr ""
972
973#. type: Plain text
974#: doc/contributing.texi:479
975msgid ""
976"When a bug is resolved, please close the thread by sending an email to "
977"@email{@var{NNN}-done@@debbugs.gnu.org}."
978msgstr ""
979
980#. type: anchor{#1}
981#: doc/contributing.texi:480 doc/contributing.texi:482
982#, no-wrap
983msgid "Sending a Patch Series"
984msgstr ""
985
986#. type: cindex
987#: doc/contributing.texi:482
988#, no-wrap
989msgid "patch series"
990msgstr ""
991
992#. type: code{#1}
993#: doc/contributing.texi:483
994#, no-wrap
995msgid "git send-email"
996msgstr ""
997
998#. type: code{#1}
999#: doc/contributing.texi:484
1000#, no-wrap
1001msgid "git-send-email"
1002msgstr ""
1003
1004#. type: Plain text
1005#: doc/contributing.texi:492
1006msgid ""
1007"When sending a patch series (e.g., using @code{git send-email}), please "
1008"first send one message to @email{guix-patches@@gnu.org}, and then send "
1009"subsequent patches to @email{@var{NNN}@@debbugs.gnu.org} to make sure they "
1010"are kept together. See @uref{https://debbugs.gnu.org/Advanced.html, the "
1011"Debbugs documentation} for more information."
1012msgstr ""
1013
b9fe8fd6
JL
1014#. type: Plain text
1015#: doc/guix.texi:7
1016msgid "@documentencoding UTF-8"
1017msgstr ""
1018
1019#. type: title
1020#: doc/guix.texi:7 doc/guix.texi:77
1021#, no-wrap
1022msgid "GNU Guix Reference Manual"
1023msgstr ""
1024
1025#. type: include
1026#: doc/guix.texi:10
1027#, no-wrap
1028msgid "version.texi"
1029msgstr ""
1030
1031#. type: copying
1032#: doc/guix.texi:51
1033msgid ""
1034"Copyright @copyright{} 2012, 2013, 2014, 2015, 2016, 2017, 2018 Ludovic "
1035"Courtès@* Copyright @copyright{} 2013, 2014, 2016 Andreas Enge@* Copyright "
1036"@copyright{} 2013 Nikita Karetnikov@* Copyright @copyright{} 2014, 2015, "
1037"2016 Alex Kost@* Copyright @copyright{} 2015, 2016 Mathieu Lirzin@* "
1038"Copyright @copyright{} 2014 Pierre-Antoine Rault@* Copyright @copyright{} "
1039"2015 Taylan Ulrich Bayırlı/Kammer@* Copyright @copyright{} 2015, 2016, 2017 "
1040"Leo Famulari@* Copyright @copyright{} 2015, 2016, 2017, 2018 Ricardo "
1041"Wurmus@* Copyright @copyright{} 2016 Ben Woodcroft@* Copyright @copyright{} "
1042"2016, 2017, 2018 Chris Marusich@* Copyright @copyright{} 2016, 2017, 2018 "
1043"Efraim Flashner@* Copyright @copyright{} 2016 John Darrington@* Copyright "
1044"@copyright{} 2016, 2017 Nils Gillmann@* Copyright @copyright{} 2016, 2017 "
1045"Jan Nieuwenhuizen@* Copyright @copyright{} 2016 Julien Lepiller@* Copyright "
1046"@copyright{} 2016 Alex ter Weele@* Copyright @copyright{} 2017, 2018 Clément "
1047"Lassieur@* Copyright @copyright{} 2017 Mathieu Othacehe@* Copyright "
1048"@copyright{} 2017 Federico Beffa@* Copyright @copyright{} 2017 Carlo "
1049"Zancanaro@* Copyright @copyright{} 2017 Thomas Danckaert@* Copyright "
1050"@copyright{} 2017 humanitiesNerd@* Copyright @copyright{} 2017 Christopher "
1051"Allan Webber@* Copyright @copyright{} 2017 Marius Bakke@* Copyright "
1052"@copyright{} 2017 Hartmut Goebel@* Copyright @copyright{} 2017 Maxim "
1053"Cournoyer@* Copyright @copyright{} 2017, 2018 Tobias Geerinckx-Rice@* "
1054"Copyright @copyright{} 2017 George Clemmer@* Copyright @copyright{} 2017 "
1055"Andy Wingo@* Copyright @copyright{} 2017, 2018 Arun Isaac@* Copyright "
1056"@copyright{} 2017 nee@* Copyright @copyright{} 2018 Rutger Helling@* "
1057"Copyright @copyright{} 2018 Oleg Pykhalov@* Copyright @copyright{} 2018 Mike "
1058"Gerwitz"
1059msgstr ""
1060
1061#. type: copying
1062#: doc/guix.texi:58
1063msgid ""
1064"Permission is granted to copy, distribute and/or modify this document under "
1065"the terms of the GNU Free Documentation License, Version 1.3 or any later "
1066"version published by the Free Software Foundation; with no Invariant "
1067"Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the "
1068"license is included in the section entitled ``GNU Free Documentation "
1069"License''."
1070msgstr ""
1071
1072#. type: dircategory
1073#: doc/guix.texi:60
1074#, no-wrap
1075msgid "System administration"
1076msgstr ""
1077
1078#. type: menuentry
1079#: doc/guix.texi:67
1080msgid "Guix: (guix)"
1081msgstr ""
1082
1083#. type: menuentry
1084#: doc/guix.texi:67
1085msgid "Manage installed software and system configuration."
1086msgstr ""
1087
1088#. type: menuentry
1089#: doc/guix.texi:67
1090msgid "guix package: (guix)Invoking guix package"
1091msgstr ""
1092
1093#. type: menuentry
1094#: doc/guix.texi:67
1095msgid "Installing, removing, and upgrading packages."
1096msgstr ""
1097
1098#. type: menuentry
1099#: doc/guix.texi:67
1100msgid "guix gc: (guix)Invoking guix gc"
1101msgstr ""
1102
1103#. type: menuentry
1104#: doc/guix.texi:67
1105msgid "Reclaiming unused disk space."
1106msgstr ""
1107
1108#. type: menuentry
1109#: doc/guix.texi:67
1110msgid "guix pull: (guix)Invoking guix pull"
1111msgstr ""
1112
1113#. type: menuentry
1114#: doc/guix.texi:67
1115msgid "Update the list of available packages."
1116msgstr ""
1117
1118#. type: menuentry
1119#: doc/guix.texi:67
1120msgid "guix system: (guix)Invoking guix system"
1121msgstr ""
1122
1123#. type: menuentry
1124#: doc/guix.texi:67
1125msgid "Manage the operating system configuration."
1126msgstr ""
1127
1128#. type: dircategory
1129#: doc/guix.texi:69
1130#, no-wrap
1131msgid "Software development"
1132msgstr ""
1133
1134#. type: menuentry
1135#: doc/guix.texi:74
1136msgid "guix environment: (guix)Invoking guix environment"
1137msgstr ""
1138
1139#. type: menuentry
1140#: doc/guix.texi:74
1141msgid "Building development environments with Guix."
1142msgstr ""
1143
1144#. type: menuentry
1145#: doc/guix.texi:74
1146msgid "guix build: (guix)Invoking guix build"
1147msgstr ""
1148
1149#. type: menuentry
1150#: doc/guix.texi:74
1151msgid "Building packages."
1152msgstr ""
1153
1154#. type: menuentry
1155#: doc/guix.texi:74
1156msgid "guix pack: (guix)Invoking guix pack"
1157msgstr ""
1158
1159#. type: menuentry
1160#: doc/guix.texi:74
1161msgid "Creating binary bundles."
1162msgstr ""
1163
1164#. type: subtitle
1165#: doc/guix.texi:78
1166#, no-wrap
1167msgid "Using the GNU Guix Functional Package Manager"
1168msgstr ""
1169
1170#. type: author
1171#: doc/guix.texi:79
1172#, no-wrap
1173msgid "The GNU Guix Developers"
1174msgstr ""
1175
1176#. type: titlepage
1177#: doc/guix.texi:85
1178msgid "Edition @value{EDITION} @* @value{UPDATED} @*"
1179msgstr ""
1180
1181#. type: node
1182#: doc/guix.texi:92
1183#, no-wrap
1184msgid "Top"
1185msgstr ""
1186
1187#. type: top
1188#: doc/guix.texi:93
1189#, no-wrap
1190msgid "GNU Guix"
1191msgstr ""
1192
1193#. type: Plain text
1194#: doc/guix.texi:97
1195msgid ""
1196"This document describes GNU Guix version @value{VERSION}, a functional "
1197"package management tool written for the GNU system."
1198msgstr ""
1199
1200#. type: chapter
1201#: doc/guix.texi:106 doc/guix.texi:294 doc/guix.texi:295
1202#, no-wrap
1203msgid "Introduction"
1204msgstr ""
1205
1206#. type: menuentry
1207#: doc/guix.texi:106
1208msgid "What is Guix about?"
1209msgstr ""
1210
1211#. type: chapter
1212#: doc/guix.texi:106 doc/guix.texi:116 doc/guix.texi:367 doc/guix.texi:368
1213#, no-wrap
1214msgid "Installation"
1215msgstr ""
1216
1217#. type: menuentry
1218#: doc/guix.texi:106
1219msgid "Installing Guix."
1220msgstr ""
1221
1222#. type: chapter
1223#: doc/guix.texi:106 doc/guix.texi:131 doc/guix.texi:1652 doc/guix.texi:1653
1224#, no-wrap
1225msgid "Package Management"
1226msgstr ""
1227
1228#. type: menuentry
1229#: doc/guix.texi:106
1230msgid "Package installation, upgrade, etc."
1231msgstr ""
1232
1233#. type: chapter
1234#: doc/guix.texi:106 doc/guix.texi:151 doc/guix.texi:3106 doc/guix.texi:3107
1235#, no-wrap
1236msgid "Programming Interface"
1237msgstr ""
1238
1239#. type: menuentry
1240#: doc/guix.texi:106
1241msgid "Using Guix in Scheme."
1242msgstr ""
1243
1244#. type: chapter
1245#: doc/guix.texi:106 doc/guix.texi:165 doc/guix.texi:5362 doc/guix.texi:5363
1246#, no-wrap
1247msgid "Utilities"
1248msgstr ""
1249
1250#. type: menuentry
1251#: doc/guix.texi:106
1252msgid "Package management commands."
1253msgstr ""
1254
1255#. type: chapter
1256#: doc/guix.texi:106 doc/guix.texi:190 doc/guix.texi:7981 doc/guix.texi:7982
1257#, no-wrap
1258msgid "GNU Distribution"
1259msgstr ""
1260
1261#. type: menuentry
1262#: doc/guix.texi:106
1263msgid "Software for your friendly GNU system."
1264msgstr ""
1265
b9fe8fd6
JL
1266#. type: menuentry
1267#: doc/guix.texi:106
1268msgid "Your help needed!"
1269msgstr ""
1270
1271#. type: chapter
39764ef8 1272#: doc/guix.texi:111 doc/guix.texi:22338 doc/guix.texi:22339
b9fe8fd6
JL
1273#, no-wrap
1274msgid "Acknowledgments"
1275msgstr ""
1276
1277#. type: menuentry
1278#: doc/guix.texi:111
1279msgid "Thanks!"
1280msgstr ""
1281
1282#. type: appendix
39764ef8 1283#: doc/guix.texi:111 doc/guix.texi:22360 doc/guix.texi:22361
b9fe8fd6
JL
1284#, no-wrap
1285msgid "GNU Free Documentation License"
1286msgstr ""
1287
1288#. type: menuentry
1289#: doc/guix.texi:111
1290msgid "The license of this manual."
1291msgstr ""
1292
1293#. type: unnumbered
39764ef8 1294#: doc/guix.texi:111 doc/guix.texi:22366 doc/guix.texi:22367
b9fe8fd6
JL
1295#, no-wrap
1296msgid "Concept Index"
1297msgstr ""
1298
1299#. type: menuentry
1300#: doc/guix.texi:111
1301msgid "Concepts."
1302msgstr ""
1303
1304#. type: unnumbered
39764ef8 1305#: doc/guix.texi:111 doc/guix.texi:22370 doc/guix.texi:22371
b9fe8fd6
JL
1306#, no-wrap
1307msgid "Programming Index"
1308msgstr ""
1309
1310#. type: menuentry
1311#: doc/guix.texi:111
1312msgid "Data types, functions, and variables."
1313msgstr ""
1314
1315#. type: menuentry
1316#: doc/guix.texi:114
1317msgid "--- The Detailed Node Listing ---"
1318msgstr ""
1319
1320#. type: section
1321#: doc/guix.texi:123 doc/guix.texi:398 doc/guix.texi:400 doc/guix.texi:401
1322#, no-wrap
1323msgid "Binary Installation"
1324msgstr ""
1325
1326#. type: menuentry
1327#: doc/guix.texi:123 doc/guix.texi:398
1328msgid "Getting Guix running in no time!"
1329msgstr ""
1330
1331#. type: section
1332#: doc/guix.texi:123 doc/guix.texi:398 doc/guix.texi:596 doc/guix.texi:597
1333#, no-wrap
1334msgid "Requirements"
1335msgstr ""
1336
1337#. type: menuentry
1338#: doc/guix.texi:123 doc/guix.texi:398
1339msgid "Software needed to build and run Guix."
1340msgstr ""
1341
1342#. type: section
1343#: doc/guix.texi:123 doc/guix.texi:398 doc/guix.texi:678 doc/guix.texi:679
1344#, no-wrap
1345msgid "Running the Test Suite"
1346msgstr ""
1347
1348#. type: menuentry
1349#: doc/guix.texi:123 doc/guix.texi:398
1350msgid "Testing Guix."
1351msgstr ""
1352
1353#. type: section
39764ef8
JL
1354#: doc/guix.texi:123 doc/guix.texi:125 doc/guix.texi:398 doc/guix.texi:743
1355#: doc/guix.texi:744
b9fe8fd6
JL
1356#, no-wrap
1357msgid "Setting Up the Daemon"
1358msgstr ""
1359
1360#. type: menuentry
1361#: doc/guix.texi:123 doc/guix.texi:398
1362msgid "Preparing the build daemon's environment."
1363msgstr ""
1364
1365#. type: node
1366#: doc/guix.texi:123 doc/guix.texi:398 doc/guix.texi:1176
1367#, no-wrap
1368msgid "Invoking guix-daemon"
1369msgstr ""
1370
1371#. type: menuentry
1372#: doc/guix.texi:123 doc/guix.texi:398
1373msgid "Running the build daemon."
1374msgstr ""
1375
1376#. type: section
1377#: doc/guix.texi:123 doc/guix.texi:398 doc/guix.texi:1441 doc/guix.texi:1442
1378#, no-wrap
1379msgid "Application Setup"
1380msgstr ""
1381
1382#. type: menuentry
1383#: doc/guix.texi:123 doc/guix.texi:398
1384msgid "Application-specific setup."
1385msgstr ""
1386
1387#. type: subsection
1388#: doc/guix.texi:129 doc/guix.texi:763 doc/guix.texi:765 doc/guix.texi:766
1389#, no-wrap
1390msgid "Build Environment Setup"
1391msgstr ""
1392
1393#. type: menuentry
1394#: doc/guix.texi:129 doc/guix.texi:763
1395msgid "Preparing the isolated build environment."
1396msgstr ""
1397
1398#. type: node
1399#: doc/guix.texi:129 doc/guix.texi:763 doc/guix.texi:882
1400#, no-wrap
1401msgid "Daemon Offload Setup"
1402msgstr ""
1403
1404#. type: menuentry
1405#: doc/guix.texi:129 doc/guix.texi:763
1406msgid "Offloading builds to remote machines."
1407msgstr ""
1408
1409#. type: subsection
1410#: doc/guix.texi:129 doc/guix.texi:763 doc/guix.texi:1090 doc/guix.texi:1091
1411#, no-wrap
1412msgid "SELinux Support"
1413msgstr ""
1414
1415#. type: menuentry
1416#: doc/guix.texi:129 doc/guix.texi:763
1417msgid "Using an SELinux policy for the daemon."
1418msgstr ""
1419
1420#. type: section
1421#: doc/guix.texi:140 doc/guix.texi:1682 doc/guix.texi:1684 doc/guix.texi:1685
1422#, no-wrap
1423msgid "Features"
1424msgstr ""
1425
1426#. type: menuentry
1427#: doc/guix.texi:140 doc/guix.texi:1682
1428msgid "How Guix will make your life brighter."
1429msgstr ""
1430
1431#. type: node
1432#: doc/guix.texi:140 doc/guix.texi:1682 doc/guix.texi:1761
1433#, no-wrap
1434msgid "Invoking guix package"
1435msgstr ""
1436
1437#. type: menuentry
1438#: doc/guix.texi:140 doc/guix.texi:1682
1439msgid "Package installation, removal, etc."
1440msgstr ""
1441
1442#. type: section
39764ef8
JL
1443#: doc/guix.texi:140 doc/guix.texi:142 doc/guix.texi:1682 doc/guix.texi:2245
1444#: doc/guix.texi:2246
b9fe8fd6
JL
1445#, no-wrap
1446msgid "Substitutes"
1447msgstr ""
1448
1449#. type: menuentry
1450#: doc/guix.texi:140 doc/guix.texi:1682
1451msgid "Downloading pre-built binaries."
1452msgstr ""
1453
1454#. type: section
1455#: doc/guix.texi:140 doc/guix.texi:1682 doc/guix.texi:2478 doc/guix.texi:2479
1456#, no-wrap
1457msgid "Packages with Multiple Outputs"
1458msgstr ""
1459
1460#. type: menuentry
1461#: doc/guix.texi:140 doc/guix.texi:1682
1462msgid "Single source package, multiple outputs."
1463msgstr ""
1464
1465#. type: node
1466#: doc/guix.texi:140 doc/guix.texi:1682 doc/guix.texi:2532
1467#, no-wrap
1468msgid "Invoking guix gc"
1469msgstr ""
1470
1471#. type: menuentry
1472#: doc/guix.texi:140 doc/guix.texi:1682
1473msgid "Running the garbage collector."
1474msgstr ""
1475
1476#. type: node
1477#: doc/guix.texi:140 doc/guix.texi:1682 doc/guix.texi:2720
1478#, no-wrap
1479msgid "Invoking guix pull"
1480msgstr ""
1481
1482#. type: menuentry
1483#: doc/guix.texi:140 doc/guix.texi:1682
1484msgid "Fetching the latest Guix and distribution."
1485msgstr ""
1486
1487#. type: node
1488#: doc/guix.texi:140 doc/guix.texi:1682 doc/guix.texi:2781
1489#, no-wrap
1490msgid "Invoking guix pack"
1491msgstr ""
1492
1493#. type: menuentry
1494#: doc/guix.texi:140 doc/guix.texi:1682
1495msgid "Creating software bundles."
1496msgstr ""
1497
1498#. type: node
1499#: doc/guix.texi:140 doc/guix.texi:1682 doc/guix.texi:2941
1500#, no-wrap
1501msgid "Invoking guix archive"
1502msgstr ""
1503
1504#. type: menuentry
1505#: doc/guix.texi:140 doc/guix.texi:1682
1506msgid "Exporting and importing store files."
1507msgstr ""
1508
1509#. type: subsection
1510#: doc/guix.texi:149 doc/guix.texi:2268 doc/guix.texi:2270 doc/guix.texi:2271
1511#, no-wrap
1512msgid "Official Substitute Server"
1513msgstr ""
1514
1515#. type: menuentry
1516#: doc/guix.texi:149 doc/guix.texi:2268
1517msgid "One particular source of substitutes."
1518msgstr ""
1519
1520#. type: subsection
1521#: doc/guix.texi:149 doc/guix.texi:2268 doc/guix.texi:2300 doc/guix.texi:2301
1522#, no-wrap
1523msgid "Substitute Server Authorization"
1524msgstr ""
1525
1526#. type: menuentry
1527#: doc/guix.texi:149 doc/guix.texi:2268
1528msgid "How to enable or disable substitutes."
1529msgstr ""
1530
1531#. type: subsection
1532#: doc/guix.texi:149 doc/guix.texi:2268 doc/guix.texi:2373 doc/guix.texi:2374
1533#, no-wrap
1534msgid "Substitute Authentication"
1535msgstr ""
1536
1537#. type: menuentry
1538#: doc/guix.texi:149 doc/guix.texi:2268
1539msgid "How Guix verifies substitutes."
1540msgstr ""
1541
1542#. type: subsection
1543#: doc/guix.texi:149 doc/guix.texi:2268 doc/guix.texi:2408 doc/guix.texi:2409
1544#, no-wrap
1545msgid "Proxy Settings"
1546msgstr ""
1547
1548#. type: menuentry
1549#: doc/guix.texi:149 doc/guix.texi:2268
1550msgid "How to get substitutes via proxy."
1551msgstr ""
1552
1553#. type: subsection
1554#: doc/guix.texi:149 doc/guix.texi:2268 doc/guix.texi:2420 doc/guix.texi:2421
1555#, no-wrap
1556msgid "Substitution Failure"
1557msgstr ""
1558
1559#. type: menuentry
1560#: doc/guix.texi:149 doc/guix.texi:2268
1561msgid "What happens when substitution fails."
1562msgstr ""
1563
1564#. type: subsection
1565#: doc/guix.texi:149 doc/guix.texi:2268 doc/guix.texi:2448 doc/guix.texi:2449
1566#, no-wrap
1567msgid "On Trusting Binaries"
1568msgstr ""
1569
1570#. type: menuentry
1571#: doc/guix.texi:149 doc/guix.texi:2268
1572msgid "How can you trust that binary blob?"
1573msgstr ""
1574
1575#. type: section
39764ef8
JL
1576#: doc/guix.texi:158 doc/guix.texi:160 doc/guix.texi:3141 doc/guix.texi:3143
1577#: doc/guix.texi:3144
b9fe8fd6
JL
1578#, no-wrap
1579msgid "Defining Packages"
1580msgstr ""
1581
1582#. type: menuentry
1583#: doc/guix.texi:158 doc/guix.texi:3141
1584msgid "Defining new packages."
1585msgstr ""
1586
1587#. type: section
1588#: doc/guix.texi:158 doc/guix.texi:3141 doc/guix.texi:3607 doc/guix.texi:3608
1589#, no-wrap
1590msgid "Build Systems"
1591msgstr ""
1592
1593#. type: menuentry
1594#: doc/guix.texi:158 doc/guix.texi:3141
1595msgid "Specifying how packages are built."
1596msgstr ""
1597
1598#. type: section
1599#: doc/guix.texi:158 doc/guix.texi:3141 doc/guix.texi:4183 doc/guix.texi:4184
1600#, no-wrap
1601msgid "The Store"
1602msgstr ""
1603
1604#. type: menuentry
1605#: doc/guix.texi:158 doc/guix.texi:3141
1606msgid "Manipulating the package store."
1607msgstr ""
1608
1609#. type: section
1610#: doc/guix.texi:158 doc/guix.texi:3141 doc/guix.texi:4333 doc/guix.texi:4334
1611#, no-wrap
1612msgid "Derivations"
1613msgstr ""
1614
1615#. type: menuentry
1616#: doc/guix.texi:158 doc/guix.texi:3141
1617msgid "Low-level interface to package derivations."
1618msgstr ""
1619
1620#. type: section
1621#: doc/guix.texi:158 doc/guix.texi:3141 doc/guix.texi:4511 doc/guix.texi:4512
1622#, no-wrap
1623msgid "The Store Monad"
1624msgstr ""
1625
1626#. type: menuentry
1627#: doc/guix.texi:158 doc/guix.texi:3141
1628msgid "Purely functional interface to the store."
1629msgstr ""
1630
1631#. type: section
1632#: doc/guix.texi:158 doc/guix.texi:3141 doc/guix.texi:4820 doc/guix.texi:4821
1633#, no-wrap
1634msgid "G-Expressions"
1635msgstr ""
1636
1637#. type: menuentry
1638#: doc/guix.texi:158 doc/guix.texi:3141
1639msgid "Manipulating build expressions."
1640msgstr ""
1641
1642#. type: node
1643#: doc/guix.texi:163 doc/guix.texi:3389 doc/guix.texi:3392
1644#, no-wrap
1645msgid "package Reference"
1646msgstr ""
1647
1648#. type: menuentry
1649#: doc/guix.texi:163 doc/guix.texi:3389
1650msgid "The package data type."
1651msgstr ""
1652
1653#. type: node
1654#: doc/guix.texi:163 doc/guix.texi:3389 doc/guix.texi:3519
1655#, no-wrap
1656msgid "origin Reference"
1657msgstr ""
1658
1659#. type: menuentry
1660#: doc/guix.texi:163 doc/guix.texi:3389
1661msgid "The origin data type."
1662msgstr ""
1663
1664#. type: node
1665#: doc/guix.texi:181 doc/guix.texi:5386 doc/guix.texi:5388
1666#, no-wrap
1667msgid "Invoking guix build"
1668msgstr ""
1669
1670#. type: menuentry
1671#: doc/guix.texi:181 doc/guix.texi:5386
1672msgid "Building packages from the command line."
1673msgstr ""
1674
1675#. type: node
1676#: doc/guix.texi:181 doc/guix.texi:5386 doc/guix.texi:5968
1677#, no-wrap
1678msgid "Invoking guix edit"
1679msgstr ""
1680
1681#. type: menuentry
1682#: doc/guix.texi:181 doc/guix.texi:5386
1683msgid "Editing package definitions."
1684msgstr ""
1685
1686#. type: node
1687#: doc/guix.texi:181 doc/guix.texi:5386 doc/guix.texi:5994
1688#, no-wrap
1689msgid "Invoking guix download"
1690msgstr ""
1691
1692#. type: menuentry
1693#: doc/guix.texi:181 doc/guix.texi:5386
1694msgid "Downloading a file and printing its hash."
1695msgstr ""
1696
1697#. type: node
1698#: doc/guix.texi:181 doc/guix.texi:5386 doc/guix.texi:6047
1699#, no-wrap
1700msgid "Invoking guix hash"
1701msgstr ""
1702
1703#. type: menuentry
1704#: doc/guix.texi:181 doc/guix.texi:5386
1705msgid "Computing the cryptographic hash of a file."
1706msgstr ""
1707
1708#. type: node
1709#: doc/guix.texi:181 doc/guix.texi:5386 doc/guix.texi:6109
1710#, no-wrap
1711msgid "Invoking guix import"
1712msgstr ""
1713
1714#. type: menuentry
1715#: doc/guix.texi:181 doc/guix.texi:5386
1716msgid "Importing package definitions."
1717msgstr ""
1718
1719#. type: node
1720#: doc/guix.texi:181 doc/guix.texi:5386 doc/guix.texi:6476
1721#, no-wrap
1722msgid "Invoking guix refresh"
1723msgstr ""
1724
1725#. type: menuentry
1726#: doc/guix.texi:181 doc/guix.texi:5386
1727msgid "Updating package definitions."
1728msgstr ""
1729
1730#. type: node
1731#: doc/guix.texi:181 doc/guix.texi:5386 doc/guix.texi:6723
1732#, no-wrap
1733msgid "Invoking guix lint"
1734msgstr ""
1735
1736#. type: menuentry
1737#: doc/guix.texi:181 doc/guix.texi:5386
1738msgid "Finding errors in package definitions."
1739msgstr ""
1740
1741#. type: node
1742#: doc/guix.texi:181 doc/guix.texi:5386 doc/guix.texi:6814
1743#, no-wrap
1744msgid "Invoking guix size"
1745msgstr ""
1746
1747#. type: menuentry
1748#: doc/guix.texi:181 doc/guix.texi:5386
1749msgid "Profiling disk usage."
1750msgstr ""
1751
1752#. type: node
1753#: doc/guix.texi:181 doc/guix.texi:5386 doc/guix.texi:6930
1754#, no-wrap
1755msgid "Invoking guix graph"
1756msgstr ""
1757
1758#. type: menuentry
1759#: doc/guix.texi:181 doc/guix.texi:5386
1760msgid "Visualizing the graph of packages."
1761msgstr ""
1762
1763#. type: node
1764#: doc/guix.texi:181 doc/guix.texi:5386 doc/guix.texi:7109
1765#, no-wrap
1766msgid "Invoking guix environment"
1767msgstr ""
1768
1769#. type: menuentry
1770#: doc/guix.texi:181 doc/guix.texi:5386
1771msgid "Setting up development environments."
1772msgstr ""
1773
1774#. type: node
1775#: doc/guix.texi:181 doc/guix.texi:5386 doc/guix.texi:7428
1776#, no-wrap
1777msgid "Invoking guix publish"
1778msgstr ""
1779
1780#. type: menuentry
1781#: doc/guix.texi:181 doc/guix.texi:5386
1782msgid "Sharing substitutes."
1783msgstr ""
1784
1785#. type: node
1786#: doc/guix.texi:181 doc/guix.texi:5386 doc/guix.texi:7645
1787#, no-wrap
1788msgid "Invoking guix challenge"
1789msgstr ""
1790
1791#. type: menuentry
1792#: doc/guix.texi:181 doc/guix.texi:5386
1793msgid "Challenging substitute servers."
1794msgstr ""
1795
1796#. type: node
1797#: doc/guix.texi:181 doc/guix.texi:5386 doc/guix.texi:7784
1798#, no-wrap
1799msgid "Invoking guix copy"
1800msgstr ""
1801
1802#. type: menuentry
1803#: doc/guix.texi:181 doc/guix.texi:5386
1804msgid "Copying to and from a remote store."
1805msgstr ""
1806
1807#. type: node
1808#: doc/guix.texi:181 doc/guix.texi:5386 doc/guix.texi:7847
1809#, no-wrap
1810msgid "Invoking guix container"
1811msgstr ""
1812
1813#. type: menuentry
1814#: doc/guix.texi:181 doc/guix.texi:5386
1815msgid "Process isolation."
1816msgstr ""
1817
1818#. type: node
1819#: doc/guix.texi:181 doc/guix.texi:5386 doc/guix.texi:7901
1820#, no-wrap
1821msgid "Invoking guix weather"
1822msgstr ""
1823
1824#. type: menuentry
1825#: doc/guix.texi:181 doc/guix.texi:5386
1826msgid "Assessing substitute availability."
1827msgstr ""
1828
1829#. type: section
1830#: doc/guix.texi:183 doc/guix.texi:5389
1831#, no-wrap
1832msgid "Invoking @command{guix build}"
1833msgstr ""
1834
1835#. type: subsection
1836#: doc/guix.texi:188 doc/guix.texi:5440 doc/guix.texi:5442 doc/guix.texi:5443
1837#, no-wrap
1838msgid "Common Build Options"
1839msgstr ""
1840
1841#. type: menuentry
1842#: doc/guix.texi:188 doc/guix.texi:5440
1843msgid "Build options for most commands."
1844msgstr ""
1845
1846#. type: subsection
1847#: doc/guix.texi:188 doc/guix.texi:5440 doc/guix.texi:5584 doc/guix.texi:5585
1848#, no-wrap
1849msgid "Package Transformation Options"
1850msgstr ""
1851
1852#. type: menuentry
1853#: doc/guix.texi:188 doc/guix.texi:5440
1854msgid "Creating variants of packages."
1855msgstr ""
1856
1857#. type: subsection
1858#: doc/guix.texi:188 doc/guix.texi:5440 doc/guix.texi:5684 doc/guix.texi:5685
1859#, no-wrap
1860msgid "Additional Build Options"
1861msgstr ""
1862
1863#. type: menuentry
1864#: doc/guix.texi:188 doc/guix.texi:5440
1865msgid "Options specific to 'guix build'."
1866msgstr ""
1867
1868#. type: subsection
1869#: doc/guix.texi:188 doc/guix.texi:5440 doc/guix.texi:5888 doc/guix.texi:5889
1870#, no-wrap
1871msgid "Debugging Build Failures"
1872msgstr ""
1873
1874#. type: menuentry
1875#: doc/guix.texi:188 doc/guix.texi:5440
1876msgid "Real life packaging experience."
1877msgstr ""
1878
1879#. type: section
39764ef8
JL
1880#: doc/guix.texi:200 doc/guix.texi:202 doc/guix.texi:8053 doc/guix.texi:8058
1881#: doc/guix.texi:8059
b9fe8fd6
JL
1882#, no-wrap
1883msgid "System Installation"
1884msgstr ""
1885
1886#. type: menuentry
1887#: doc/guix.texi:200 doc/guix.texi:8053
1888msgid "Installing the whole operating system."
1889msgstr ""
1890
1891#. type: section
39764ef8
JL
1892#: doc/guix.texi:200 doc/guix.texi:212 doc/guix.texi:8053 doc/guix.texi:8674
1893#: doc/guix.texi:8675
b9fe8fd6
JL
1894#, no-wrap
1895msgid "System Configuration"
1896msgstr ""
1897
1898#. type: menuentry
1899#: doc/guix.texi:200 doc/guix.texi:8053
1900msgid "Configuring the operating system."
1901msgstr ""
1902
1903#. type: section
39764ef8 1904#: doc/guix.texi:200 doc/guix.texi:8053 doc/guix.texi:21351 doc/guix.texi:21352
b9fe8fd6
JL
1905#, no-wrap
1906msgid "Documentation"
1907msgstr ""
1908
1909#. type: menuentry
1910#: doc/guix.texi:200 doc/guix.texi:8053
1911msgid "Browsing software user manuals."
1912msgstr ""
1913
1914#. type: section
39764ef8 1915#: doc/guix.texi:200 doc/guix.texi:8053 doc/guix.texi:21415 doc/guix.texi:21416
b9fe8fd6
JL
1916#, no-wrap
1917msgid "Installing Debugging Files"
1918msgstr ""
1919
1920#. type: menuentry
1921#: doc/guix.texi:200 doc/guix.texi:8053
1922msgid "Feeding the debugger."
1923msgstr ""
1924
1925#. type: section
39764ef8 1926#: doc/guix.texi:200 doc/guix.texi:8053 doc/guix.texi:21481 doc/guix.texi:21482
b9fe8fd6
JL
1927#, no-wrap
1928msgid "Security Updates"
1929msgstr ""
1930
1931#. type: menuentry
1932#: doc/guix.texi:200 doc/guix.texi:8053
1933msgid "Deploying security fixes quickly."
1934msgstr ""
1935
1936#. type: section
39764ef8 1937#: doc/guix.texi:200 doc/guix.texi:8053 doc/guix.texi:21601 doc/guix.texi:21602
b9fe8fd6
JL
1938#, no-wrap
1939msgid "Package Modules"
1940msgstr ""
1941
1942#. type: menuentry
1943#: doc/guix.texi:200 doc/guix.texi:8053
1944msgid "Packages from the programmer's viewpoint."
1945msgstr ""
1946
1947#. type: section
39764ef8
JL
1948#: doc/guix.texi:200 doc/guix.texi:265 doc/guix.texi:8053 doc/guix.texi:21655
1949#: doc/guix.texi:21656
b9fe8fd6
JL
1950#, no-wrap
1951msgid "Packaging Guidelines"
1952msgstr ""
1953
1954#. type: menuentry
1955#: doc/guix.texi:200 doc/guix.texi:8053
1956msgid "Growing the distribution."
1957msgstr ""
1958
1959#. type: section
39764ef8 1960#: doc/guix.texi:200 doc/guix.texi:8053 doc/guix.texi:22106 doc/guix.texi:22107
b9fe8fd6
JL
1961#, no-wrap
1962msgid "Bootstrapping"
1963msgstr ""
1964
1965#. type: menuentry
1966#: doc/guix.texi:200 doc/guix.texi:8053
1967msgid "GNU/Linux built from scratch."
1968msgstr ""
1969
1970#. type: node
39764ef8 1971#: doc/guix.texi:200 doc/guix.texi:8053 doc/guix.texi:22290
b9fe8fd6
JL
1972#, no-wrap
1973msgid "Porting"
1974msgstr ""
1975
1976#. type: menuentry
1977#: doc/guix.texi:200 doc/guix.texi:8053
1978msgid "Targeting another platform or kernel."
1979msgstr ""
1980
1981#. type: subsection
39764ef8
JL
1982#: doc/guix.texi:210 doc/guix.texi:1126 doc/guix.texi:8090 doc/guix.texi:8092
1983#: doc/guix.texi:8093
b9fe8fd6
JL
1984#, no-wrap
1985msgid "Limitations"
1986msgstr ""
1987
1988#. type: menuentry
1989#: doc/guix.texi:210 doc/guix.texi:8090
1990msgid "What you can expect."
1991msgstr ""
1992
1993#. type: subsection
1994#: doc/guix.texi:210 doc/guix.texi:8090 doc/guix.texi:8136 doc/guix.texi:8137
1995#, no-wrap
1996msgid "Hardware Considerations"
1997msgstr ""
1998
1999#. type: menuentry
2000#: doc/guix.texi:210 doc/guix.texi:8090
2001msgid "Supported hardware."
2002msgstr ""
2003
2004#. type: subsection
2005#: doc/guix.texi:210 doc/guix.texi:8090 doc/guix.texi:8171 doc/guix.texi:8172
2006#, no-wrap
2007msgid "USB Stick and DVD Installation"
2008msgstr ""
2009
2010#. type: menuentry
2011#: doc/guix.texi:210 doc/guix.texi:8090
2012msgid "Preparing the installation medium."
2013msgstr ""
2014
2015#. type: subsection
2016#: doc/guix.texi:210 doc/guix.texi:8090 doc/guix.texi:8269 doc/guix.texi:8270
2017#, no-wrap
2018msgid "Preparing for Installation"
2019msgstr ""
2020
2021#. type: menuentry
2022#: doc/guix.texi:210 doc/guix.texi:8090
2023msgid "Networking, partitioning, etc."
2024msgstr ""
2025
2026#. type: subsection
2027#: doc/guix.texi:210 doc/guix.texi:8090 doc/guix.texi:8508 doc/guix.texi:8509
2028#, no-wrap
2029msgid "Proceeding with the Installation"
2030msgstr ""
2031
2032#. type: menuentry
2033#: doc/guix.texi:210 doc/guix.texi:8090
2034msgid "The real thing."
2035msgstr ""
2036
2037#. type: node
2038#: doc/guix.texi:210 doc/guix.texi:8090 doc/guix.texi:8605
2039#, no-wrap
2040msgid "Installing GuixSD in a VM"
2041msgstr ""
2042
2043#. type: menuentry
2044#: doc/guix.texi:210 doc/guix.texi:8090
2045msgid "GuixSD playground."
2046msgstr ""
2047
2048#. type: subsection
2049#: doc/guix.texi:210 doc/guix.texi:8090 doc/guix.texi:8659 doc/guix.texi:8660
2050#, no-wrap
2051msgid "Building the Installation Image"
2052msgstr ""
2053
2054#. type: menuentry
2055#: doc/guix.texi:210 doc/guix.texi:8090
2056msgid "How this comes to be."
2057msgstr ""
2058
2059#. type: subsection
2060#: doc/guix.texi:228 doc/guix.texi:8715 doc/guix.texi:8717 doc/guix.texi:8718
2061#, no-wrap
2062msgid "Using the Configuration System"
2063msgstr ""
2064
2065#. type: menuentry
2066#: doc/guix.texi:228 doc/guix.texi:8715
2067msgid "Customizing your GNU system."
2068msgstr ""
2069
2070#. type: node
2071#: doc/guix.texi:228 doc/guix.texi:8715 doc/guix.texi:8933
2072#, no-wrap
2073msgid "operating-system Reference"
2074msgstr ""
2075
2076#. type: menuentry
2077#: doc/guix.texi:228 doc/guix.texi:8715
2078msgid "Detail of operating-system declarations."
2079msgstr ""
2080
2081#. type: subsection
2082#: doc/guix.texi:228 doc/guix.texi:8715 doc/guix.texi:9087 doc/guix.texi:9088
2083#, no-wrap
2084msgid "File Systems"
2085msgstr ""
2086
2087#. type: menuentry
2088#: doc/guix.texi:228 doc/guix.texi:8715
2089msgid "Configuring file system mounts."
2090msgstr ""
2091
2092#. type: subsection
2093#: doc/guix.texi:228 doc/guix.texi:8715 doc/guix.texi:9250 doc/guix.texi:9251
2094#, no-wrap
2095msgid "Mapped Devices"
2096msgstr ""
2097
2098#. type: menuentry
2099#: doc/guix.texi:228 doc/guix.texi:8715
2100msgid "Block device extra processing."
2101msgstr ""
2102
2103#. type: subsection
2104#: doc/guix.texi:228 doc/guix.texi:8715 doc/guix.texi:9371 doc/guix.texi:9372
2105#, no-wrap
2106msgid "User Accounts"
2107msgstr ""
2108
2109#. type: menuentry
2110#: doc/guix.texi:228 doc/guix.texi:8715
2111msgid "Specifying user accounts."
2112msgstr ""
2113
2114#. type: subsection
39764ef8
JL
2115#: doc/guix.texi:228 doc/guix.texi:1449 doc/guix.texi:8715 doc/guix.texi:9506
2116#: doc/guix.texi:9507
b9fe8fd6
JL
2117#, no-wrap
2118msgid "Locales"
2119msgstr ""
2120
2121#. type: menuentry
2122#: doc/guix.texi:228 doc/guix.texi:8715
2123msgid "Language and cultural convention settings."
2124msgstr ""
2125
2126#. type: subsection
39764ef8
JL
2127#: doc/guix.texi:228 doc/guix.texi:230 doc/guix.texi:8715 doc/guix.texi:9646
2128#: doc/guix.texi:9647
b9fe8fd6
JL
2129#, no-wrap
2130msgid "Services"
2131msgstr ""
2132
2133#. type: menuentry
2134#: doc/guix.texi:228 doc/guix.texi:8715
2135msgid "Specifying system services."
2136msgstr ""
2137
2138#. type: subsection
39764ef8 2139#: doc/guix.texi:228 doc/guix.texi:8715 doc/guix.texi:19720 doc/guix.texi:19721
b9fe8fd6
JL
2140#, no-wrap
2141msgid "Setuid Programs"
2142msgstr ""
2143
2144#. type: menuentry
2145#: doc/guix.texi:228 doc/guix.texi:8715
2146msgid "Programs running with root privileges."
2147msgstr ""
2148
2149#. type: subsection
39764ef8
JL
2150#: doc/guix.texi:228 doc/guix.texi:1594 doc/guix.texi:8715 doc/guix.texi:19766
2151#: doc/guix.texi:19767
b9fe8fd6
JL
2152#, no-wrap
2153msgid "X.509 Certificates"
2154msgstr ""
2155
2156#. type: menuentry
2157#: doc/guix.texi:228 doc/guix.texi:8715
2158msgid "Authenticating HTTPS servers."
2159msgstr ""
2160
2161#. type: subsection
39764ef8
JL
2162#: doc/guix.texi:228 doc/guix.texi:1492 doc/guix.texi:8715 doc/guix.texi:19829
2163#: doc/guix.texi:19830
b9fe8fd6
JL
2164#, no-wrap
2165msgid "Name Service Switch"
2166msgstr ""
2167
2168#. type: menuentry
2169#: doc/guix.texi:228 doc/guix.texi:8715
2170msgid "Configuring libc's name service switch."
2171msgstr ""
2172
2173#. type: subsection
39764ef8 2174#: doc/guix.texi:228 doc/guix.texi:8715 doc/guix.texi:19967 doc/guix.texi:19968
b9fe8fd6
JL
2175#, no-wrap
2176msgid "Initial RAM Disk"
2177msgstr ""
2178
2179#. type: menuentry
2180#: doc/guix.texi:228 doc/guix.texi:8715
2181msgid "Linux-Libre bootstrapping."
2182msgstr ""
2183
2184#. type: subsection
39764ef8 2185#: doc/guix.texi:228 doc/guix.texi:8715 doc/guix.texi:20127 doc/guix.texi:20128
b9fe8fd6
JL
2186#, no-wrap
2187msgid "Bootloader Configuration"
2188msgstr ""
2189
2190#. type: menuentry
2191#: doc/guix.texi:228 doc/guix.texi:8715
2192msgid "Configuring the boot loader."
2193msgstr ""
2194
2195#. type: node
39764ef8 2196#: doc/guix.texi:228 doc/guix.texi:8715 doc/guix.texi:20298
b9fe8fd6
JL
2197#, no-wrap
2198msgid "Invoking guix system"
2199msgstr ""
2200
2201#. type: menuentry
2202#: doc/guix.texi:228 doc/guix.texi:8715
2203msgid "Instantiating a system configuration."
2204msgstr ""
2205
2206#. type: node
39764ef8 2207#: doc/guix.texi:228 doc/guix.texi:8715 doc/guix.texi:20723
b9fe8fd6
JL
2208#, no-wrap
2209msgid "Running GuixSD in a VM"
2210msgstr ""
2211
2212#. type: menuentry
2213#: doc/guix.texi:228 doc/guix.texi:8715
2214msgid "How to run GuixSD in a virtual machine."
2215msgstr ""
2216
2217#. type: subsection
39764ef8
JL
2218#: doc/guix.texi:228 doc/guix.texi:258 doc/guix.texi:8715 doc/guix.texi:20834
2219#: doc/guix.texi:20835
b9fe8fd6
JL
2220#, no-wrap
2221msgid "Defining Services"
2222msgstr ""
2223
2224#. type: menuentry
2225#: doc/guix.texi:228 doc/guix.texi:8715
2226msgid "Adding new service definitions."
2227msgstr ""
2228
2229#. type: subsubsection
2230#: doc/guix.texi:256 doc/guix.texi:9718 doc/guix.texi:9720 doc/guix.texi:9721
2231#, no-wrap
2232msgid "Base Services"
2233msgstr ""
2234
2235#. type: menuentry
2236#: doc/guix.texi:256 doc/guix.texi:9718
2237msgid "Essential system services."
2238msgstr ""
2239
2240#. type: subsubsection
2241#: doc/guix.texi:256 doc/guix.texi:9718 doc/guix.texi:10488 doc/guix.texi:10489
2242#, no-wrap
2243msgid "Scheduled Job Execution"
2244msgstr ""
2245
2246#. type: menuentry
2247#: doc/guix.texi:256 doc/guix.texi:9718
2248msgid "The mcron service."
2249msgstr ""
2250
2251#. type: subsubsection
2252#: doc/guix.texi:256 doc/guix.texi:9718 doc/guix.texi:10583 doc/guix.texi:10584
2253#, no-wrap
2254msgid "Log Rotation"
2255msgstr ""
2256
2257#. type: menuentry
2258#: doc/guix.texi:256 doc/guix.texi:9718
2259msgid "The rottlog service."
2260msgstr ""
2261
2262#. type: subsubsection
2263#: doc/guix.texi:256 doc/guix.texi:9718 doc/guix.texi:10685 doc/guix.texi:10686
2264#, no-wrap
2265msgid "Networking Services"
2266msgstr ""
2267
2268#. type: menuentry
2269#: doc/guix.texi:256 doc/guix.texi:9718
2270msgid "Network setup, SSH daemon, etc."
2271msgstr ""
2272
2273#. type: subsubsection
39764ef8 2274#: doc/guix.texi:256 doc/guix.texi:9718 doc/guix.texi:11431 doc/guix.texi:11432
b9fe8fd6
JL
2275#, no-wrap
2276msgid "X Window"
2277msgstr ""
2278
2279#. type: menuentry
2280#: doc/guix.texi:256 doc/guix.texi:9718
2281msgid "Graphical display."
2282msgstr ""
2283
2284#. type: subsubsection
39764ef8 2285#: doc/guix.texi:256 doc/guix.texi:9718 doc/guix.texi:11677 doc/guix.texi:11678
b9fe8fd6
JL
2286#, no-wrap
2287msgid "Printing Services"
2288msgstr ""
2289
2290#. type: menuentry
2291#: doc/guix.texi:256 doc/guix.texi:9718
2292msgid "Local and remote printer support."
2293msgstr ""
2294
2295#. type: subsubsection
39764ef8 2296#: doc/guix.texi:256 doc/guix.texi:9718 doc/guix.texi:12514 doc/guix.texi:12515
b9fe8fd6
JL
2297#, no-wrap
2298msgid "Desktop Services"
2299msgstr ""
2300
2301#. type: menuentry
2302#: doc/guix.texi:256 doc/guix.texi:9718
2303msgid "D-Bus and desktop services."
2304msgstr ""
2305
2306#. type: subsubsection
39764ef8 2307#: doc/guix.texi:256 doc/guix.texi:9718 doc/guix.texi:12807 doc/guix.texi:12808
b9fe8fd6
JL
2308#, no-wrap
2309msgid "Database Services"
2310msgstr ""
2311
2312#. type: menuentry
2313#: doc/guix.texi:256 doc/guix.texi:9718
2314msgid "SQL databases, key-value stores, etc."
2315msgstr ""
2316
2317#. type: subsubsection
39764ef8 2318#: doc/guix.texi:256 doc/guix.texi:9718 doc/guix.texi:12931 doc/guix.texi:12932
b9fe8fd6
JL
2319#, no-wrap
2320msgid "Mail Services"
2321msgstr ""
2322
2323#. type: menuentry
2324#: doc/guix.texi:256 doc/guix.texi:9718
2325msgid "IMAP, POP3, SMTP, and all that."
2326msgstr ""
2327
2328#. type: subsubsection
39764ef8 2329#: doc/guix.texi:256 doc/guix.texi:9718 doc/guix.texi:14383 doc/guix.texi:14384
b9fe8fd6
JL
2330#, no-wrap
2331msgid "Messaging Services"
2332msgstr ""
2333
2334#. type: menuentry
2335#: doc/guix.texi:256 doc/guix.texi:9718
2336msgid "Messaging services."
2337msgstr ""
2338
2339#. type: subsubsection
39764ef8 2340#: doc/guix.texi:256 doc/guix.texi:9718 doc/guix.texi:14851 doc/guix.texi:14852
b9fe8fd6
JL
2341#, no-wrap
2342msgid "Telephony Services"
2343msgstr ""
2344
2345#. type: menuentry
2346#: doc/guix.texi:256 doc/guix.texi:9718
2347msgid "Telephony services."
2348msgstr ""
2349
2350#. type: subsubsection
39764ef8 2351#: doc/guix.texi:256 doc/guix.texi:9718 doc/guix.texi:15056 doc/guix.texi:15057
b9fe8fd6
JL
2352#, no-wrap
2353msgid "Monitoring Services"
2354msgstr ""
2355
2356#. type: menuentry
2357#: doc/guix.texi:256 doc/guix.texi:9718
2358msgid "Monitoring services."
2359msgstr ""
2360
2361#. type: subsubsection
39764ef8 2362#: doc/guix.texi:256 doc/guix.texi:9718 doc/guix.texi:15209 doc/guix.texi:15210
b9fe8fd6
JL
2363#, no-wrap
2364msgid "Kerberos Services"
2365msgstr ""
2366
2367#. type: menuentry
2368#: doc/guix.texi:256 doc/guix.texi:9718
2369msgid "Kerberos services."
2370msgstr ""
2371
2372#. type: subsubsection
39764ef8 2373#: doc/guix.texi:256 doc/guix.texi:9718 doc/guix.texi:15335 doc/guix.texi:15336
b9fe8fd6
JL
2374#, no-wrap
2375msgid "Web Services"
2376msgstr ""
2377
2378#. type: menuentry
2379#: doc/guix.texi:256 doc/guix.texi:9718
2380msgid "Web servers."
2381msgstr ""
2382
2383#. type: subsubsection
39764ef8 2384#: doc/guix.texi:256 doc/guix.texi:9718 doc/guix.texi:15944 doc/guix.texi:15945
b9fe8fd6
JL
2385#, no-wrap
2386msgid "Certificate Services"
2387msgstr ""
2388
2389#. type: menuentry
2390#: doc/guix.texi:256 doc/guix.texi:9718
2391msgid "TLS certificates via Let's Encrypt."
2392msgstr ""
2393
2394#. type: subsubsection
39764ef8 2395#: doc/guix.texi:256 doc/guix.texi:9718 doc/guix.texi:16090 doc/guix.texi:16091
b9fe8fd6
JL
2396#, no-wrap
2397msgid "DNS Services"
2398msgstr ""
2399
2400#. type: menuentry
2401#: doc/guix.texi:256 doc/guix.texi:9718
2402msgid "DNS daemons."
2403msgstr ""
2404
2405#. type: subsubsection
39764ef8 2406#: doc/guix.texi:256 doc/guix.texi:9718 doc/guix.texi:16494 doc/guix.texi:16495
b9fe8fd6
JL
2407#, no-wrap
2408msgid "VPN Services"
2409msgstr ""
2410
2411#. type: menuentry
2412#: doc/guix.texi:256 doc/guix.texi:9718
2413msgid "VPN daemons."
2414msgstr ""
2415
2416#. type: subsubsection
39764ef8 2417#: doc/guix.texi:256 doc/guix.texi:9718 doc/guix.texi:16852 doc/guix.texi:16853
b9fe8fd6
JL
2418#, no-wrap
2419msgid "Network File System"
2420msgstr ""
2421
2422#. type: menuentry
2423#: doc/guix.texi:256 doc/guix.texi:9718
2424msgid "NFS related services."
2425msgstr ""
2426
2427#. type: subsubsection
39764ef8 2428#: doc/guix.texi:256 doc/guix.texi:9718 doc/guix.texi:16967 doc/guix.texi:16968
b9fe8fd6
JL
2429#, no-wrap
2430msgid "Continuous Integration"
2431msgstr ""
2432
2433#. type: menuentry
2434#: doc/guix.texi:256 doc/guix.texi:9718
2435msgid "The Cuirass service."
2436msgstr ""
2437
2438#. type: subsubsection
39764ef8 2439#: doc/guix.texi:256 doc/guix.texi:9718 doc/guix.texi:17063 doc/guix.texi:17064
b9fe8fd6
JL
2440#, no-wrap
2441msgid "Power management Services"
2442msgstr ""
2443
2444#. type: menuentry
2445#: doc/guix.texi:256 doc/guix.texi:9718
2446msgid "The TLP tool."
2447msgstr ""
2448
2449#. type: subsubsection
39764ef8 2450#: doc/guix.texi:256 doc/guix.texi:9718 doc/guix.texi:17591 doc/guix.texi:17592
b9fe8fd6
JL
2451#, no-wrap
2452msgid "Audio Services"
2453msgstr ""
2454
2455#. type: menuentry
2456#: doc/guix.texi:256 doc/guix.texi:9718
2457msgid "The MPD."
2458msgstr ""
2459
2460#. type: node
39764ef8 2461#: doc/guix.texi:256 doc/guix.texi:9718 doc/guix.texi:17641
b9fe8fd6
JL
2462#, no-wrap
2463msgid "Virtualization Services"
2464msgstr ""
2465
2466#. type: menuentry
2467#: doc/guix.texi:256 doc/guix.texi:9718
2468msgid "Virtualization services."
2469msgstr ""
2470
2471#. type: subsubsection
39764ef8 2472#: doc/guix.texi:256 doc/guix.texi:9718 doc/guix.texi:18434 doc/guix.texi:18435
b9fe8fd6
JL
2473#, no-wrap
2474msgid "Version Control Services"
2475msgstr ""
2476
2477#. type: menuentry
2478#: doc/guix.texi:256 doc/guix.texi:9718
2479msgid "Providing remote access to Git repositories."
2480msgstr ""
2481
2482#. type: subsubsection
39764ef8 2483#: doc/guix.texi:256 doc/guix.texi:9718 doc/guix.texi:19528 doc/guix.texi:19529
b9fe8fd6
JL
2484#, no-wrap
2485msgid "Game Services"
2486msgstr ""
2487
2488#. type: menuentry
2489#: doc/guix.texi:256 doc/guix.texi:9718
2490msgid "Game servers."
2491msgstr ""
2492
2493#. type: subsubsection
39764ef8 2494#: doc/guix.texi:256 doc/guix.texi:9718 doc/guix.texi:19559 doc/guix.texi:19560
b9fe8fd6
JL
2495#, no-wrap
2496msgid "Miscellaneous Services"
2497msgstr ""
2498
2499#. type: menuentry
2500#: doc/guix.texi:256 doc/guix.texi:9718
2501msgid "Other services."
2502msgstr ""
2503
2504#. type: subsubsection
39764ef8
JL
2505#: doc/guix.texi:263 doc/guix.texi:20846 doc/guix.texi:20848
2506#: doc/guix.texi:20849
b9fe8fd6
JL
2507#, no-wrap
2508msgid "Service Composition"
2509msgstr ""
2510
2511#. type: menuentry
39764ef8 2512#: doc/guix.texi:263 doc/guix.texi:20846
b9fe8fd6
JL
2513msgid "The model for composing services."
2514msgstr ""
2515
2516#. type: subsubsection
39764ef8
JL
2517#: doc/guix.texi:263 doc/guix.texi:20846 doc/guix.texi:20904
2518#: doc/guix.texi:20905
b9fe8fd6
JL
2519#, no-wrap
2520msgid "Service Types and Services"
2521msgstr ""
2522
2523#. type: menuentry
39764ef8 2524#: doc/guix.texi:263 doc/guix.texi:20846
b9fe8fd6
JL
2525msgid "Types and services."
2526msgstr ""
2527
2528#. type: subsubsection
39764ef8
JL
2529#: doc/guix.texi:263 doc/guix.texi:20846 doc/guix.texi:21041
2530#: doc/guix.texi:21042
b9fe8fd6
JL
2531#, no-wrap
2532msgid "Service Reference"
2533msgstr ""
2534
2535#. type: menuentry
39764ef8 2536#: doc/guix.texi:263 doc/guix.texi:20846
b9fe8fd6
JL
2537msgid "API reference."
2538msgstr ""
2539
2540#. type: subsubsection
39764ef8
JL
2541#: doc/guix.texi:263 doc/guix.texi:20846 doc/guix.texi:21266
2542#: doc/guix.texi:21267
b9fe8fd6
JL
2543#, no-wrap
2544msgid "Shepherd Services"
2545msgstr ""
2546
2547#. type: menuentry
39764ef8 2548#: doc/guix.texi:263 doc/guix.texi:20846
b9fe8fd6
JL
2549msgid "A particular type of service."
2550msgstr ""
2551
2552#. type: subsection
39764ef8
JL
2553#: doc/guix.texi:274 doc/guix.texi:21730 doc/guix.texi:21732
2554#: doc/guix.texi:21733
b9fe8fd6
JL
2555#, no-wrap
2556msgid "Software Freedom"
2557msgstr ""
2558
2559#. type: menuentry
39764ef8 2560#: doc/guix.texi:274 doc/guix.texi:21730
b9fe8fd6
JL
2561msgid "What may go into the distribution."
2562msgstr ""
2563
2564#. type: subsection
39764ef8
JL
2565#: doc/guix.texi:274 doc/guix.texi:21730 doc/guix.texi:21760
2566#: doc/guix.texi:21761
b9fe8fd6
JL
2567#, no-wrap
2568msgid "Package Naming"
2569msgstr ""
2570
2571#. type: menuentry
39764ef8 2572#: doc/guix.texi:274 doc/guix.texi:21730
b9fe8fd6
JL
2573msgid "What's in a name?"
2574msgstr ""
2575
2576#. type: subsection
39764ef8
JL
2577#: doc/guix.texi:274 doc/guix.texi:21730 doc/guix.texi:21785
2578#: doc/guix.texi:21786
b9fe8fd6
JL
2579#, no-wrap
2580msgid "Version Numbers"
2581msgstr ""
2582
2583#. type: menuentry
39764ef8 2584#: doc/guix.texi:274 doc/guix.texi:21730
b9fe8fd6
JL
2585msgid "When the name is not enough."
2586msgstr ""
2587
2588#. type: subsection
39764ef8
JL
2589#: doc/guix.texi:274 doc/guix.texi:21730 doc/guix.texi:21876
2590#: doc/guix.texi:21877
b9fe8fd6
JL
2591#, no-wrap
2592msgid "Synopses and Descriptions"
2593msgstr ""
2594
2595#. type: menuentry
39764ef8 2596#: doc/guix.texi:274 doc/guix.texi:21730
b9fe8fd6
JL
2597msgid "Helping users find the right package."
2598msgstr ""
2599
2600#. type: subsection
39764ef8
JL
2601#: doc/guix.texi:274 doc/guix.texi:21730 doc/guix.texi:21956
2602#: doc/guix.texi:21957
b9fe8fd6
JL
2603#, no-wrap
2604msgid "Python Modules"
2605msgstr ""
2606
2607#. type: menuentry
39764ef8 2608#: doc/guix.texi:274 doc/guix.texi:21730
b9fe8fd6
JL
2609msgid "A touch of British comedy."
2610msgstr ""
2611
2612#. type: subsection
39764ef8
JL
2613#: doc/guix.texi:274 doc/guix.texi:21730 doc/guix.texi:22031
2614#: doc/guix.texi:22032
b9fe8fd6
JL
2615#, no-wrap
2616msgid "Perl Modules"
2617msgstr ""
2618
2619#. type: menuentry
39764ef8 2620#: doc/guix.texi:274 doc/guix.texi:21730
b9fe8fd6
JL
2621msgid "Little pearls."
2622msgstr ""
2623
2624#. type: subsection
39764ef8
JL
2625#: doc/guix.texi:274 doc/guix.texi:21730 doc/guix.texi:22047
2626#: doc/guix.texi:22048
b9fe8fd6
JL
2627#, no-wrap
2628msgid "Java Packages"
2629msgstr ""
2630
2631#. type: menuentry
39764ef8 2632#: doc/guix.texi:274 doc/guix.texi:21730
b9fe8fd6
JL
2633msgid "Coffee break."
2634msgstr ""
2635
2636#. type: subsection
39764ef8
JL
2637#: doc/guix.texi:274 doc/guix.texi:21730 doc/guix.texi:22067
2638#: doc/guix.texi:22068
b9fe8fd6
JL
2639#, no-wrap
2640msgid "Fonts"
2641msgstr ""
2642
2643#. type: menuentry
39764ef8 2644#: doc/guix.texi:274 doc/guix.texi:21730
b9fe8fd6
JL
2645msgid "Fond of fonts."
2646msgstr ""
2647
b9fe8fd6
JL
2648#. type: cindex
2649#: doc/guix.texi:297
2650#, no-wrap
2651msgid "purpose"
2652msgstr ""
2653
2654#. type: Plain text
2655#: doc/guix.texi:304
2656msgid ""
2657"GNU Guix@footnote{``Guix'' is pronounced like ``geeks'', or ``ɡiːks'' using "
2658"the international phonetic alphabet (IPA).} is a package management tool for "
2659"the GNU system. Guix makes it easy for unprivileged users to install, "
2660"upgrade, or remove packages, to roll back to a previous package set, to "
2661"build packages from source, and generally assists with the creation and "
2662"maintenance of software environments."
2663msgstr ""
2664
2665#. type: cindex
2666#: doc/guix.texi:305
2667#, no-wrap
2668msgid "user interfaces"
2669msgstr ""
2670
2671#. type: Plain text
2672#: doc/guix.texi:310
2673msgid ""
2674"Guix provides a command-line package management interface (@pxref{Invoking "
2675"guix package}), a set of command-line utilities (@pxref{Utilities}), as well "
2676"as Scheme programming interfaces (@pxref{Programming Interface})."
2677msgstr ""
2678
2679#. type: cindex
2680#: doc/guix.texi:310
2681#, no-wrap
2682msgid "build daemon"
2683msgstr ""
2684
2685#. type: Plain text
2686#: doc/guix.texi:314
2687msgid ""
2688"Its @dfn{build daemon} is responsible for building packages on behalf of "
2689"users (@pxref{Setting Up the Daemon}) and for downloading pre-built binaries "
2690"from authorized sources (@pxref{Substitutes})."
2691msgstr ""
2692
2693#. type: cindex
2694#: doc/guix.texi:315
2695#, no-wrap
2696msgid "extensibility of the distribution"
2697msgstr ""
2698
2699#. type: cindex
39764ef8 2700#: doc/guix.texi:316 doc/guix.texi:21623
b9fe8fd6
JL
2701#, no-wrap
2702msgid "customization, of packages"
2703msgstr ""
2704
2705#. type: Plain text
2706#: doc/guix.texi:325
2707msgid ""
2708"Guix includes package definitions for many GNU and non-GNU packages, all of "
2709"which @uref{https://www.gnu.org/philosophy/free-sw.html, respect the user's "
2710"computing freedom}. It is @emph{extensible}: users can write their own "
2711"package definitions (@pxref{Defining Packages}) and make them available as "
2712"independent package modules (@pxref{Package Modules}). It is also "
2713"@emph{customizable}: users can @emph{derive} specialized package definitions "
2714"from existing ones, including from the command line (@pxref{Package "
2715"Transformation Options})."
2716msgstr ""
2717
2718#. type: cindex
2719#: doc/guix.texi:326 doc/guix.texi:7984 doc/guix.texi:8062
2720#, no-wrap
2721msgid "Guix System Distribution"
2722msgstr ""
2723
2724#. type: cindex
2725#: doc/guix.texi:327 doc/guix.texi:7985
2726#, no-wrap
2727msgid "GuixSD"
2728msgstr ""
2729
2730#. type: Plain text
2731#: doc/guix.texi:336
2732msgid ""
2733"You can install GNU@tie{}Guix on top of an existing GNU/Linux system where "
2734"it complements the available tools without interference "
2735"(@pxref{Installation}), or you can use it as part of the standalone "
2736"@dfn{Guix System Distribution} or GuixSD (@pxref{GNU Distribution}). With "
2737"GNU@tie{}GuixSD, you @emph{declare} all aspects of the operating system "
2738"configuration and Guix takes care of instantiating the configuration in a "
2739"transactional, reproducible, and stateless fashion (@pxref{System "
2740"Configuration})."
2741msgstr ""
2742
2743#. type: cindex
2744#: doc/guix.texi:337
2745#, no-wrap
2746msgid "functional package management"
2747msgstr ""
2748
2749#. type: Plain text
2750#: doc/guix.texi:352
2751msgid ""
2752"Under the hood, Guix implements the @dfn{functional package management} "
2753"discipline pioneered by Nix (@pxref{Acknowledgments}). In Guix, the package "
2754"build and installation process is seen as a @emph{function}, in the "
2755"mathematical sense. That function takes inputs, such as build scripts, a "
2756"compiler, and libraries, and returns an installed package. As a pure "
2757"function, its result depends solely on its inputs---for instance, it cannot "
2758"refer to software or scripts that were not explicitly passed as inputs. A "
2759"build function always produces the same result when passed a given set of "
2760"inputs. It cannot alter the environment of the running system in any way; "
2761"for instance, it cannot create, modify, or delete files outside of its build "
2762"and installation directories. This is achieved by running build processes "
2763"in isolated environments (or @dfn{containers}), where only their explicit "
2764"inputs are visible."
2765msgstr ""
2766
2767#. type: cindex
2768#: doc/guix.texi:353 doc/guix.texi:4186
2769#, no-wrap
2770msgid "store"
2771msgstr ""
2772
2773#. type: Plain text
2774#: doc/guix.texi:360
2775msgid ""
2776"The result of package build functions is @dfn{cached} in the file system, in "
2777"a special directory called @dfn{the store} (@pxref{The Store}). Each "
2778"package is installed in a directory of its own in the store---by default "
2779"under @file{/gnu/store}. The directory name contains a hash of all the "
2780"inputs used to build that package; thus, changing an input yields a "
2781"different directory name."
2782msgstr ""
2783
2784#. type: Plain text
2785#: doc/guix.texi:364
2786msgid ""
2787"This approach is the foundation for the salient features of Guix: support "
2788"for transactional package upgrade and rollback, per-user installation, and "
2789"garbage collection of packages (@pxref{Features})."
2790msgstr ""
2791
2792#. type: cindex
2793#: doc/guix.texi:370
2794#, no-wrap
2795msgid "installing Guix"
2796msgstr ""
2797
2798#. type: Plain text
2799#: doc/guix.texi:375
2800msgid ""
39764ef8
JL
2801"GNU Guix is available for download from its website at @url{http://www.gnu."
2802"org/software/guix/}. This section describes the software requirements of "
2803"Guix, as well as how to install it and get ready to use it."
b9fe8fd6
JL
2804msgstr ""
2805
2806#. type: Plain text
2807#: doc/guix.texi:380
2808msgid ""
2809"Note that this section is concerned with the installation of the package "
2810"manager, which can be done on top of a running GNU/Linux system. If, "
2811"instead, you want to install the complete GNU operating system, "
2812"@pxref{System Installation}."
2813msgstr ""
2814
2815#. type: cindex
2816#: doc/guix.texi:381 doc/guix.texi:1444
2817#, no-wrap
2818msgid "foreign distro"
2819msgstr ""
2820
2821#. type: Plain text
2822#: doc/guix.texi:387
2823msgid ""
2824"When installed on a running GNU/Linux system---thereafter called a "
2825"@dfn{foreign distro}---GNU@tie{}Guix complements the available tools without "
39764ef8
JL
2826"interference. Its data lives exclusively in two directories, usually @file{/"
2827"gnu/store} and @file{/var/guix}; other files on your system, such as @file{/"
2828"etc}, are left untouched."
b9fe8fd6
JL
2829msgstr ""
2830
2831#. type: Plain text
2832#: doc/guix.texi:390
2833msgid ""
2834"Once installed, Guix can be updated by running @command{guix pull} "
2835"(@pxref{Invoking guix pull})."
2836msgstr ""
2837
2838#. type: cindex
2839#: doc/guix.texi:403
2840#, no-wrap
2841msgid "installing Guix from binaries"
2842msgstr ""
2843
2844#. type: Plain text
2845#: doc/guix.texi:409
2846msgid ""
2847"This section describes how to install Guix on an arbitrary system from a "
2848"self-contained tarball providing binaries for Guix and for all its "
2849"dependencies. This is often quicker than installing from source, which is "
39764ef8
JL
2850"described in the next sections. The only requirement is to have GNU@tie{}"
2851"tar and Xz."
b9fe8fd6
JL
2852msgstr ""
2853
2854#. type: Plain text
2855#: doc/guix.texi:414
2856msgid ""
39764ef8
JL
2857"We provide a @uref{https://git.savannah.gnu.org/cgit/guix.git/plain/etc/guix-"
2858"install.sh, shell installer script}, which automates the download, "
2859"installation, and initial configuration of Guix. It should be run as the "
2860"root user."
b9fe8fd6
JL
2861msgstr ""
2862
2863#. type: Plain text
2864#: doc/guix.texi:416
2865msgid "Installing goes along these lines:"
2866msgstr ""
2867
2868#. type: cindex
2869#: doc/guix.texi:419
2870#, no-wrap
2871msgid "downloading Guix binary"
2872msgstr ""
2873
2874#. type: enumerate
2875#: doc/guix.texi:424
2876msgid ""
39764ef8
JL
2877"Download the binary tarball from @indicateurl{ftp://alpha.gnu.org/gnu/guix/"
2878"guix-binary-@value{VERSION}.@var{system}.tar.xz}, where @var{system} is "
2879"@code{x86_64-linux} for an @code{x86_64} machine already running the kernel "
2880"Linux, and so on."
b9fe8fd6
JL
2881msgstr ""
2882
2883#. type: enumerate
2884#: doc/guix.texi:428
2885msgid ""
2886"Make sure to download the associated @file{.sig} file and to verify the "
2887"authenticity of the tarball against it, along these lines:"
2888msgstr ""
2889
2890#. type: example
2891#: doc/guix.texi:432
2892#, no-wrap
2893msgid ""
39764ef8 2894"$ wget ftp://alpha.gnu.org/gnu/guix/guix-binary-@value{VERSION}.@var{system}.tar.xz.sig\n"
b9fe8fd6
JL
2895"$ gpg --verify guix-binary-@value{VERSION}.@var{system}.tar.xz.sig\n"
2896msgstr ""
2897
2898#. type: Plain text
2899#: doc/guix.texi:436 doc/guix.texi:8198
2900msgid ""
2901"If that command fails because you do not have the required public key, then "
2902"run this command to import it:"
2903msgstr ""
2904
2905#. type: example
2906#: doc/guix.texi:439 doc/guix.texi:8201
2907#, no-wrap
2908msgid "$ gpg --keyserver pgp.mit.edu --recv-keys @value{OPENPGP-SIGNING-KEY-ID}\n"
2909msgstr ""
2910
2911#. type: Plain text
2912#: doc/guix.texi:444 doc/guix.texi:8206
2913msgid "and rerun the @code{gpg --verify} command."
2914msgstr ""
2915
2916#. type: enumerate
2917#: doc/guix.texi:448
2918msgid ""
2919"Now, you need to become the @code{root} user. Depending on your "
2920"distribution, you may have to run @code{su -} or @code{sudo -i}. As "
2921"@code{root}, run:"
2922msgstr ""
2923
2924#. type: example
2925#: doc/guix.texi:454
2926#, no-wrap
2927msgid ""
2928"# cd /tmp\n"
2929"# tar --warning=no-timestamp -xf \\\n"
2930" guix-binary-@value{VERSION}.@var{system}.tar.xz\n"
2931"# mv var/guix /var/ && mv gnu /\n"
2932msgstr ""
2933
2934#. type: enumerate
2935#: doc/guix.texi:459
2936msgid ""
2937"This creates @file{/gnu/store} (@pxref{The Store}) and @file{/var/guix}. "
2938"The latter contains a ready-to-use profile for @code{root} (see next step.)"
2939msgstr ""
2940
2941#. type: enumerate
2942#: doc/guix.texi:462
2943msgid ""
2944"Do @emph{not} unpack the tarball on a working Guix system since that would "
2945"overwrite its own essential files."
2946msgstr ""
2947
2948#. type: enumerate
2949#: doc/guix.texi:472
2950msgid ""
2951"The @code{--warning=no-timestamp} option makes sure GNU@tie{}tar does not "
2952"emit warnings about ``implausibly old time stamps'' (such warnings were "
2953"triggered by GNU@tie{}tar 1.26 and older; recent versions are fine.) They "
2954"stem from the fact that all the files in the archive have their modification "
2955"time set to zero (which means January 1st, 1970.) This is done on purpose "
2956"to make sure the archive content is independent of its creation time, thus "
2957"making it reproducible."
2958msgstr ""
2959
2960#. type: enumerate
2961#: doc/guix.texi:475
2962msgid "Make @code{root}'s profile available under @file{~root/.guix-profile}:"
2963msgstr ""
2964
2965#. type: example
2966#: doc/guix.texi:479
2967#, no-wrap
2968msgid ""
2969"# ln -sf /var/guix/profiles/per-user/root/guix-profile \\\n"
2970" ~root/.guix-profile\n"
2971msgstr ""
2972
2973#. type: enumerate
2974#: doc/guix.texi:483
2975msgid ""
2976"Source @file{etc/profile} to augment @code{PATH} and other relevant "
2977"environment variables:"
2978msgstr ""
2979
2980#. type: example
2981#: doc/guix.texi:487
2982#, no-wrap
2983msgid ""
2984"# GUIX_PROFILE=\"`echo ~root`/.guix-profile\" ; \\\n"
2985" source $GUIX_PROFILE/etc/profile\n"
2986msgstr ""
2987
2988#. type: enumerate
2989#: doc/guix.texi:492
2990msgid ""
2991"Create the group and user accounts for build users as explained below "
2992"(@pxref{Build Environment Setup})."
2993msgstr ""
2994
2995#. type: enumerate
2996#: doc/guix.texi:495
2997msgid "Run the daemon, and set it to automatically start on boot."
2998msgstr ""
2999
3000#. type: enumerate
3001#: doc/guix.texi:498
3002msgid ""
3003"If your host distro uses the systemd init system, this can be achieved with "
3004"these commands:"
3005msgstr ""
3006
3007#. type: example
3008#: doc/guix.texi:510
3009#, no-wrap
3010msgid ""
3011"# cp ~root/.guix-profile/lib/systemd/system/guix-daemon.service \\\n"
3012" /etc/systemd/system/\n"
3013"# systemctl start guix-daemon && systemctl enable guix-daemon\n"
3014msgstr ""
3015
3016#. type: itemize
3017#: doc/guix.texi:513 doc/guix.texi:7635
3018msgid "If your host distro uses the Upstart init system:"
3019msgstr ""
3020
3021#. type: example
3022#: doc/guix.texi:518
3023#, no-wrap
3024msgid ""
3025"# initctl reload-configuration\n"
3026"# cp ~root/.guix-profile/lib/upstart/system/guix-daemon.conf /etc/init/\n"
3027"# start guix-daemon\n"
3028msgstr ""
3029
3030#. type: enumerate
3031#: doc/guix.texi:521
3032msgid "Otherwise, you can still start the daemon manually with:"
3033msgstr ""
3034
3035#. type: example
3036#: doc/guix.texi:524
3037#, no-wrap
3038msgid "# ~root/.guix-profile/bin/guix-daemon --build-users-group=guixbuild\n"
3039msgstr ""
3040
3041#. type: enumerate
3042#: doc/guix.texi:529
3043msgid ""
3044"Make the @command{guix} command available to other users on the machine, for "
3045"instance with:"
3046msgstr ""
3047
3048#. type: example
3049#: doc/guix.texi:534
3050#, no-wrap
3051msgid ""
3052"# mkdir -p /usr/local/bin\n"
3053"# cd /usr/local/bin\n"
3054"# ln -s /var/guix/profiles/per-user/root/guix-profile/bin/guix\n"
3055msgstr ""
3056
3057#. type: enumerate
3058#: doc/guix.texi:538
3059msgid ""
3060"It is also a good idea to make the Info version of this manual available "
3061"there:"
3062msgstr ""
3063
3064#. type: example
3065#: doc/guix.texi:544
3066#, no-wrap
3067msgid ""
3068"# mkdir -p /usr/local/share/info\n"
3069"# cd /usr/local/share/info\n"
3070"# for i in /var/guix/profiles/per-user/root/guix-profile/share/info/* ;\n"
3071" do ln -s $i ; done\n"
3072msgstr ""
3073
3074#. type: enumerate
3075#: doc/guix.texi:550
3076msgid ""
3077"That way, assuming @file{/usr/local/share/info} is in the search path, "
3078"running @command{info guix} will open this manual (@pxref{Other Info "
3079"Directories,,, texinfo, GNU Texinfo}, for more details on changing the Info "
3080"search path.)"
3081msgstr ""
3082
3083#. type: cindex
3084#: doc/guix.texi:552 doc/guix.texi:2304 doc/guix.texi:10194
3085#, no-wrap
3086msgid "substitutes, authorization thereof"
3087msgstr ""
3088
3089#. type: enumerate
3090#: doc/guix.texi:555
3091msgid ""
3092"To use substitutes from @code{hydra.gnu.org} or one of its mirrors "
3093"(@pxref{Substitutes}), authorize them:"
3094msgstr ""
3095
3096#. type: example
3097#: doc/guix.texi:558
3098#, no-wrap
39764ef8 3099msgid "# guix archive --authorize < ~root/.guix-profile/share/guix/hydra.gnu.org.pub\n"
b9fe8fd6
JL
3100msgstr ""
3101
3102#. type: enumerate
3103#: doc/guix.texi:563
3104msgid ""
3105"Each user may need to perform a few additional steps to make their Guix "
3106"environment ready for use, @pxref{Application Setup}."
3107msgstr ""
3108
3109#. type: Plain text
3110#: doc/guix.texi:566
3111msgid "Voilà, the installation is complete!"
3112msgstr ""
3113
3114#. type: Plain text
3115#: doc/guix.texi:569
3116msgid ""
3117"You can confirm that Guix is working by installing a sample package into the "
3118"root profile:"
3119msgstr ""
3120
3121#. type: example
3122#: doc/guix.texi:572
3123#, no-wrap
3124msgid "# guix package -i hello\n"
3125msgstr ""
3126
3127#. type: Plain text
3128#: doc/guix.texi:579
3129msgid ""
3130"The @code{guix} package must remain available in @code{root}'s profile, or "
3131"it would become subject to garbage collection---in which case you would find "
3132"yourself badly handicapped by the lack of the @command{guix} command. In "
3133"other words, do not remove @code{guix} by running @code{guix package -r "
3134"guix}."
3135msgstr ""
3136
3137#. type: Plain text
3138#: doc/guix.texi:582
3139msgid ""
3140"The binary installation tarball can be (re)produced and verified simply by "
3141"running the following command in the Guix source tree:"
3142msgstr ""
3143
3144#. type: example
3145#: doc/guix.texi:585
3146#, no-wrap
3147msgid "make guix-binary.@var{system}.tar.xz\n"
3148msgstr ""
3149
3150#. type: Plain text
3151#: doc/guix.texi:589
3152msgid "... which, in turn, runs:"
3153msgstr ""
3154
3155#. type: example
3156#: doc/guix.texi:592
3157#, no-wrap
3158msgid "guix pack -s @var{system} --localstatedir guix\n"
3159msgstr ""
3160
3161#. type: Plain text
3162#: doc/guix.texi:595
3163msgid "@xref{Invoking guix pack}, for more info on this handy tool."
3164msgstr ""
3165
3166#. type: Plain text
3167#: doc/guix.texi:603
3168msgid ""
3169"This section lists requirements when building Guix from source. The build "
3170"procedure for Guix is the same as for other GNU software, and is not covered "
3171"here. Please see the files @file{README} and @file{INSTALL} in the Guix "
3172"source tree for additional details."
3173msgstr ""
3174
3175#. type: Plain text
3176#: doc/guix.texi:605
3177msgid "GNU Guix depends on the following packages:"
3178msgstr ""
3179
3180#. type: item
3181#: doc/guix.texi:607
3182#, no-wrap
3183msgid "@url{http://gnu.org/software/guile/, GNU Guile}, version 2.0.13 or"
3184msgstr ""
3185
3186#. type: itemize
3187#: doc/guix.texi:609
3188msgid "later, including 2.2.x;"
3189msgstr ""
3190
3191#. type: item
3192#: doc/guix.texi:609
3193#, no-wrap
3194msgid "@url{http://gnupg.org/, GNU libgcrypt};"
3195msgstr ""
3196
3197#. type: itemize
3198#: doc/guix.texi:614
3199msgid ""
3200"@uref{http://gnutls.org/, GnuTLS}, specifically its Guile bindings "
3201"(@pxref{Guile Preparations, how to install the GnuTLS bindings for Guile,, "
3202"gnutls-guile, GnuTLS-Guile});"
3203msgstr ""
3204
3205#. type: itemize
3206#: doc/guix.texi:618
3207msgid ""
3208"@uref{https://gitlab.com/guile-git/guile-git, Guile-Git}, from August 2017 "
3209"or later;"
3210msgstr ""
3211
3212#. type: item
3213#: doc/guix.texi:618
3214#, no-wrap
3215msgid "@url{http://zlib.net, zlib};"
3216msgstr ""
3217
3218#. type: item
3219#: doc/guix.texi:619
3220#, no-wrap
3221msgid "@url{http://www.gnu.org/software/make/, GNU Make}."
3222msgstr ""
3223
3224#. type: Plain text
3225#: doc/guix.texi:623
3226msgid "The following dependencies are optional:"
3227msgstr ""
3228
3229#. type: itemize
3230#: doc/guix.texi:631
3231msgid ""
3232"Installing @url{http://savannah.nongnu.org/projects/guile-json/, Guile-JSON} "
3233"will allow you to use the @command{guix import pypi} command "
3234"(@pxref{Invoking guix import}). It is of interest primarily for developers "
3235"and not for casual users."
3236msgstr ""
3237
3238#. type: itemize
3239#: doc/guix.texi:638
3240msgid ""
3241"Support for build offloading (@pxref{Daemon Offload Setup}) and "
39764ef8
JL
3242"@command{guix copy} (@pxref{Invoking guix copy}) depends on @uref{https://"
3243"github.com/artyom-poptsov/guile-ssh, Guile-SSH}, version 0.10.2 or later."
b9fe8fd6
JL
3244msgstr ""
3245
3246#. type: itemize
3247#: doc/guix.texi:642
3248msgid ""
3249"When @url{http://www.bzip.org, libbz2} is available, @command{guix-daemon} "
3250"can use it to compress build logs."
3251msgstr ""
3252
3253#. type: Plain text
3254#: doc/guix.texi:646
3255msgid ""
3256"Unless @code{--disable-daemon} was passed to @command{configure}, the "
3257"following packages are also needed:"
3258msgstr ""
3259
3260#. type: item
3261#: doc/guix.texi:648
3262#, no-wrap
3263msgid "@url{http://sqlite.org, SQLite 3};"
3264msgstr ""
3265
3266#. type: item
3267#: doc/guix.texi:649
3268#, no-wrap
3269msgid "@url{http://gcc.gnu.org, GCC's g++}, with support for the"
3270msgstr ""
3271
3272#. type: itemize
3273#: doc/guix.texi:651
3274msgid "C++11 standard."
3275msgstr ""
3276
3277#. type: cindex
3278#: doc/guix.texi:653
3279#, no-wrap
3280msgid "state directory"
3281msgstr ""
3282
3283#. type: Plain text
3284#: doc/guix.texi:661
3285msgid ""
3286"When configuring Guix on a system that already has a Guix installation, be "
3287"sure to specify the same state directory as the existing installation using "
3288"the @code{--localstatedir} option of the @command{configure} script "
3289"(@pxref{Directory Variables, @code{localstatedir},, standards, GNU Coding "
3290"Standards}). The @command{configure} script protects against unintended "
3291"misconfiguration of @var{localstatedir} so you do not inadvertently corrupt "
3292"your store (@pxref{The Store})."
3293msgstr ""
3294
3295#. type: cindex
3296#: doc/guix.texi:662
3297#, no-wrap
3298msgid "Nix, compatibility"
3299msgstr ""
3300
3301#. type: Plain text
3302#: doc/guix.texi:667
3303msgid ""
3304"When a working installation of @url{http://nixos.org/nix/, the Nix package "
39764ef8
JL
3305"manager} is available, you can instead configure Guix with @code{--disable-"
3306"daemon}. In that case, Nix replaces the three dependencies above."
b9fe8fd6
JL
3307msgstr ""
3308
3309#. type: Plain text
3310#: doc/guix.texi:677
3311msgid ""
3312"Guix is compatible with Nix, so it is possible to share the same store "
3313"between both. To do so, you must pass @command{configure} not only the same "
3314"@code{--with-store-dir} value, but also the same @code{--localstatedir} "
3315"value. The latter is essential because it specifies where the database that "
3316"stores metadata about the store is located, among other things. The default "
39764ef8
JL
3317"values for Nix are @code{--with-store-dir=/nix/store} and @code{--"
3318"localstatedir=/nix/var}. Note that @code{--disable-daemon} is not required "
3319"if your goal is to share the store with Nix."
b9fe8fd6
JL
3320msgstr ""
3321
3322#. type: cindex
3323#: doc/guix.texi:681
3324#, no-wrap
3325msgid "test suite"
3326msgstr ""
3327
3328#. type: Plain text
3329#: doc/guix.texi:687
3330msgid ""
3331"After a successful @command{configure} and @code{make} run, it is a good "
3332"idea to run the test suite. It can help catch issues with the setup or "
3333"environment, or bugs in Guix itself---and really, reporting test failures is "
3334"a good way to help improve the software. To run the test suite, type:"
3335msgstr ""
3336
3337#. type: example
3338#: doc/guix.texi:690
3339#, no-wrap
3340msgid "make check\n"
3341msgstr ""
3342
3343#. type: Plain text
3344#: doc/guix.texi:697
3345msgid ""
39764ef8
JL
3346"Test cases can run in parallel: you can use the @code{-j} option of GNU@tie{}"
3347"make to speed things up. The first run may take a few minutes on a recent "
3348"machine; subsequent runs will be faster because the store that is created "
3349"for test purposes will already have various things in cache."
b9fe8fd6
JL
3350msgstr ""
3351
3352#. type: Plain text
3353#: doc/guix.texi:700
3354msgid ""
3355"It is also possible to run a subset of the tests by defining the "
3356"@code{TESTS} makefile variable as in this example:"
3357msgstr ""
3358
3359#. type: example
3360#: doc/guix.texi:703
3361#, no-wrap
3362msgid "make check TESTS=\"tests/store.scm tests/cpio.scm\"\n"
3363msgstr ""
3364
3365#. type: Plain text
3366#: doc/guix.texi:708
3367msgid ""
3368"By default, tests results are displayed at a file level. In order to see "
3369"the details of every individual test cases, it is possible to define the "
3370"@code{SCM_LOG_DRIVER_FLAGS} makefile variable as in this example:"
3371msgstr ""
3372
3373#. type: example
3374#: doc/guix.texi:711
3375#, no-wrap
3376msgid "make check TESTS=\"tests/base64.scm\" SCM_LOG_DRIVER_FLAGS=\"--brief=no\"\n"
3377msgstr ""
3378
3379#. type: Plain text
3380#: doc/guix.texi:717
3381msgid ""
3382"Upon failure, please email @email{bug-guix@@gnu.org} and attach the "
3383"@file{test-suite.log} file. Please specify the Guix version being used as "
3384"well as version numbers of the dependencies (@pxref{Requirements}) in your "
3385"message."
3386msgstr ""
3387
3388#. type: Plain text
3389#: doc/guix.texi:721
3390msgid ""
3391"Guix also comes with a whole-system test suite that tests complete GuixSD "
3392"operating system instances. It can only run on systems where Guix is "
3393"already installed, using:"
3394msgstr ""
3395
3396#. type: example
3397#: doc/guix.texi:724
3398#, no-wrap
3399msgid "make check-system\n"
3400msgstr ""
3401
3402#. type: Plain text
3403#: doc/guix.texi:728
3404msgid "or, again, by defining @code{TESTS} to select a subset of tests to run:"
3405msgstr ""
3406
3407#. type: example
3408#: doc/guix.texi:731
3409#, no-wrap
3410msgid "make check-system TESTS=\"basic mcron\"\n"
3411msgstr ""
3412
3413#. type: Plain text
3414#: doc/guix.texi:739
3415msgid ""
3416"These system tests are defined in the @code{(gnu tests @dots{})} modules. "
3417"They work by running the operating systems under test with lightweight "
3418"instrumentation in a virtual machine (VM). They can be computationally "
3419"intensive or rather cheap, depending on whether substitutes are available "
3420"for their dependencies (@pxref{Substitutes}). Some of them require a lot of "
3421"storage space to hold VM images."
3422msgstr ""
3423
3424#. type: Plain text
3425#: doc/guix.texi:742
3426msgid ""
3427"Again in case of test failures, please send @email{bug-guix@@gnu.org} all "
3428"the details."
3429msgstr ""
3430
3431#. type: cindex
3432#: doc/guix.texi:746
3433#, no-wrap
3434msgid "daemon"
3435msgstr ""
3436
3437#. type: Plain text
3438#: doc/guix.texi:754
3439msgid ""
3440"Operations such as building a package or running the garbage collector are "
3441"all performed by a specialized process, the @dfn{build daemon}, on behalf of "
3442"clients. Only the daemon may access the store and its associated database. "
3443"Thus, any operation that manipulates the store goes through the daemon. For "
3444"instance, command-line tools such as @command{guix package} and "
3445"@command{guix build} communicate with the daemon (@i{via} remote procedure "
3446"calls) to instruct it what to do."
3447msgstr ""
3448
3449#. type: Plain text
3450#: doc/guix.texi:758
3451msgid ""
3452"The following sections explain how to prepare the build daemon's "
3453"environment. See also @ref{Substitutes}, for information on how to allow "
3454"the daemon to download pre-built binaries."
3455msgstr ""
3456
3457#. type: cindex
3458#: doc/guix.texi:768 doc/guix.texi:1193
3459#, no-wrap
3460msgid "build environment"
3461msgstr ""
3462
3463#. type: Plain text
3464#: doc/guix.texi:776
3465msgid ""
39764ef8
JL
3466"In a standard multi-user setup, Guix and its daemon---the @command{guix-"
3467"daemon} program---are installed by the system administrator; @file{/gnu/"
3468"store} is owned by @code{root} and @command{guix-daemon} runs as "
b9fe8fd6
JL
3469"@code{root}. Unprivileged users may use Guix tools to build packages or "
3470"otherwise access the store, and the daemon will do it on their behalf, "
3471"ensuring that the store is kept in a consistent state, and allowing built "
3472"packages to be shared among users."
3473msgstr ""
3474
3475#. type: cindex
3476#: doc/guix.texi:777
3477#, no-wrap
3478msgid "build users"
3479msgstr ""
3480
3481#. type: Plain text
3482#: doc/guix.texi:788
3483msgid ""
3484"When @command{guix-daemon} runs as @code{root}, you may not want package "
3485"build processes themselves to run as @code{root} too, for obvious security "
3486"reasons. To avoid that, a special pool of @dfn{build users} should be "
3487"created for use by build processes started by the daemon. These build users "
3488"need not have a shell and a home directory: they will just be used when the "
3489"daemon drops @code{root} privileges in build processes. Having several such "
3490"users allows the daemon to launch distinct build processes under separate "
3491"UIDs, which guarantees that they do not interfere with each other---an "
3492"essential feature since builds are regarded as pure functions "
3493"(@pxref{Introduction})."
3494msgstr ""
3495
3496#. type: Plain text
3497#: doc/guix.texi:791
3498msgid ""
3499"On a GNU/Linux system, a build user pool may be created like this (using "
3500"Bash syntax and the @code{shadow} commands):"
3501msgstr ""
3502
3503#. type: example
3504#: doc/guix.texi:803
3505#, no-wrap
3506msgid ""
3507"# groupadd --system guixbuild\n"
3508"# for i in `seq -w 1 10`;\n"
3509" do\n"
3510" useradd -g guixbuild -G guixbuild \\\n"
3511" -d /var/empty -s `which nologin` \\\n"
3512" -c \"Guix build user $i\" --system \\\n"
3513" guixbuilder$i;\n"
3514" done\n"
3515msgstr ""
3516
3517#. type: Plain text
3518#: doc/guix.texi:813
3519msgid ""
3520"The number of build users determines how many build jobs may run in "
3521"parallel, as specified by the @option{--max-jobs} option (@pxref{Invoking "
3522"guix-daemon, @option{--max-jobs}}). To use @command{guix system vm} and "
3523"related commands, you may need to add the build users to the @code{kvm} "
3524"group so they can access @file{/dev/kvm}, using @code{-G guixbuild,kvm} "
3525"instead of @code{-G guixbuild} (@pxref{Invoking guix system})."
3526msgstr ""
3527
3528#. type: Plain text
3529#: doc/guix.texi:822
3530msgid ""
3531"The @code{guix-daemon} program may then be run as @code{root} with the "
3532"following command@footnote{If your machine uses the systemd init system, "
3533"dropping the @file{@var{prefix}/lib/systemd/system/guix-daemon.service} file "
3534"in @file{/etc/systemd/system} will ensure that @command{guix-daemon} is "
3535"automatically started. Similarly, if your machine uses the Upstart init "
3536"system, drop the @file{@var{prefix}/lib/upstart/system/guix-daemon.conf} "
3537"file in @file{/etc/init}.}:"
3538msgstr ""
3539
3540#. type: example
3541#: doc/guix.texi:825 doc/guix.texi:1186
3542#, no-wrap
3543msgid "# guix-daemon --build-users-group=guixbuild\n"
3544msgstr ""
3545
3546#. type: cindex
3547#: doc/guix.texi:827 doc/guix.texi:1191
3548#, no-wrap
3549msgid "chroot"
3550msgstr ""
3551
3552#. type: Plain text
3553#: doc/guix.texi:832
3554msgid ""
3555"This way, the daemon starts build processes in a chroot, under one of the "
3556"@code{guixbuilder} users. On GNU/Linux, by default, the chroot environment "
3557"contains nothing but:"
3558msgstr ""
3559
3560#. type: itemize
3561#: doc/guix.texi:840
3562msgid ""
3563"a minimal @code{/dev} directory, created mostly independently from the host "
3564"@code{/dev}@footnote{``Mostly'', because while the set of files that appear "
3565"in the chroot's @code{/dev} is fixed, most of these files can only be "
3566"created if the host has them.};"
3567msgstr ""
3568
3569#. type: itemize
3570#: doc/guix.texi:844
3571msgid ""
3572"the @code{/proc} directory; it only shows the processes of the container "
3573"since a separate PID name space is used;"
3574msgstr ""
3575
3576#. type: itemize
3577#: doc/guix.texi:848
3578msgid ""
3579"@file{/etc/passwd} with an entry for the current user and an entry for user "
3580"@file{nobody};"
3581msgstr ""
3582
3583#. type: itemize
3584#: doc/guix.texi:851
3585msgid "@file{/etc/group} with an entry for the user's group;"
3586msgstr ""
3587
3588#. type: itemize
3589#: doc/guix.texi:855
3590msgid ""
3591"@file{/etc/hosts} with an entry that maps @code{localhost} to "
3592"@code{127.0.0.1};"
3593msgstr ""
3594
3595#. type: itemize
3596#: doc/guix.texi:858
3597msgid "a writable @file{/tmp} directory."
3598msgstr ""
3599
3600#. type: Plain text
3601#: doc/guix.texi:867
3602msgid ""
3603"You can influence the directory where the daemon stores build trees @i{via} "
3604"the @code{TMPDIR} environment variable. However, the build tree within the "
3605"chroot is always called @file{/tmp/guix-build-@var{name}.drv-0}, where "
3606"@var{name} is the derivation name---e.g., @code{coreutils-8.24}. This way, "
3607"the value of @code{TMPDIR} does not leak inside build environments, which "
3608"avoids discrepancies in cases where build processes capture the name of "
3609"their build tree."
3610msgstr ""
3611
3612#. type: vindex
3613#: doc/guix.texi:868 doc/guix.texi:2411
3614#, no-wrap
3615msgid "http_proxy"
3616msgstr ""
3617
3618#. type: Plain text
3619#: doc/guix.texi:872
3620msgid ""
3621"The daemon also honors the @code{http_proxy} environment variable for HTTP "
3622"downloads it performs, be it for fixed-output derivations "
3623"(@pxref{Derivations}) or for substitutes (@pxref{Substitutes})."
3624msgstr ""
3625
3626#. type: Plain text
3627#: doc/guix.texi:880
3628msgid ""
3629"If you are installing Guix as an unprivileged user, it is still possible to "
3630"run @command{guix-daemon} provided you pass @code{--disable-chroot}. "
3631"However, build processes will not be isolated from one another, and not from "
3632"the rest of the system. Thus, build processes may interfere with each "
3633"other, and may access programs, libraries, and other files available on the "
3634"system---making it much harder to view them as @emph{pure} functions."
3635msgstr ""
3636
3637#. type: subsection
3638#: doc/guix.texi:883
3639#, no-wrap
3640msgid "Using the Offload Facility"
3641msgstr ""
3642
3643#. type: cindex
3644#: doc/guix.texi:885
3645#, no-wrap
3646msgid "offloading"
3647msgstr ""
3648
3649#. type: cindex
3650#: doc/guix.texi:886 doc/guix.texi:1247
3651#, no-wrap
3652msgid "build hook"
3653msgstr ""
3654
3655#. type: Plain text
3656#: doc/guix.texi:900
3657msgid ""
3658"When desired, the build daemon can @dfn{offload} derivation builds to other "
39764ef8
JL
3659"machines running Guix, using the @code{offload} @dfn{build hook}"
3660"@footnote{This feature is available only when @uref{https://github.com/"
3661"artyom-poptsov/guile-ssh, Guile-SSH} is present.}. When that feature is "
3662"enabled, a list of user-specified build machines is read from @file{/etc/"
3663"guix/machines.scm}; every time a build is requested, for instance via "
3664"@code{guix build}, the daemon attempts to offload it to one of the machines "
3665"that satisfy the constraints of the derivation, in particular its system "
3666"type---e.g., @file{x86_64-linux}. Missing prerequisites for the build are "
3667"copied over SSH to the target machine, which then proceeds with the build; "
3668"upon success the output(s) of the build are copied back to the initial "
3669"machine."
b9fe8fd6
JL
3670msgstr ""
3671
3672#. type: Plain text
3673#: doc/guix.texi:902
3674msgid "The @file{/etc/guix/machines.scm} file typically looks like this:"
3675msgstr ""
3676
3677#. type: example
3678#: doc/guix.texi:910
3679#, no-wrap
3680msgid ""
3681"(list (build-machine\n"
3682" (name \"eightysix.example.org\")\n"
3683" (system \"x86_64-linux\")\n"
3684" (host-key \"ssh-ed25519 AAAAC3Nza@dots{}\")\n"
3685" (user \"bob\")\n"
3686" (speed 2.)) ;incredibly fast!\n"
3687"\n"
3688msgstr ""
3689
3690#. type: example
3691#: doc/guix.texi:919
3692#, no-wrap
3693msgid ""
3694" (build-machine\n"
3695" (name \"meeps.example.org\")\n"
3696" (system \"mips64el-linux\")\n"
3697" (host-key \"ssh-rsa AAAAB3Nza@dots{}\")\n"
3698" (user \"alice\")\n"
3699" (private-key\n"
3700" (string-append (getenv \"HOME\")\n"
3701" \"/.ssh/identity-for-guix\"))))\n"
3702msgstr ""
3703
3704#. type: Plain text
3705#: doc/guix.texi:925
3706msgid ""
3707"In the example above we specify a list of two build machines, one for the "
3708"@code{x86_64} architecture and one for the @code{mips64el} architecture."
3709msgstr ""
3710
3711#. type: Plain text
3712#: doc/guix.texi:934
3713msgid ""
3714"In fact, this file is---not surprisingly!---a Scheme file that is evaluated "
3715"when the @code{offload} hook is started. Its return value must be a list of "
3716"@code{build-machine} objects. While this example shows a fixed list of "
3717"build machines, one could imagine, say, using DNS-SD to return a list of "
3718"potential build machines discovered in the local network "
3719"(@pxref{Introduction, Guile-Avahi,, guile-avahi, Using Avahi in Guile Scheme "
3720"Programs}). The @code{build-machine} data type is detailed below."
3721msgstr ""
3722
3723#. type: deftp
3724#: doc/guix.texi:935
3725#, no-wrap
3726msgid "{Data Type} build-machine"
3727msgstr ""
3728
3729#. type: deftp
3730#: doc/guix.texi:938
3731msgid ""
3732"This data type represents build machines to which the daemon may offload "
3733"builds. The important fields are:"
3734msgstr ""
3735
3736#. type: code{#1}
39764ef8
JL
3737#: doc/guix.texi:941 doc/guix.texi:3402 doc/guix.texi:9406 doc/guix.texi:9470
3738#: doc/guix.texi:9565 doc/guix.texi:11000 doc/guix.texi:15037
3739#: doc/guix.texi:15270 doc/guix.texi:15403 doc/guix.texi:15677
3740#: doc/guix.texi:15718 doc/guix.texi:19663 doc/guix.texi:19680
3741#: doc/guix.texi:19946 doc/guix.texi:21154
b9fe8fd6
JL
3742#, no-wrap
3743msgid "name"
3744msgstr ""
3745
3746#. type: table
3747#: doc/guix.texi:943
3748msgid "The host name of the remote machine."
3749msgstr ""
3750
3751#. type: item
3752#: doc/guix.texi:944
3753#, no-wrap
3754msgid "system"
3755msgstr ""
3756
3757#. type: table
3758#: doc/guix.texi:946
3759msgid "The system type of the remote machine---e.g., @code{\"x86_64-linux\"}."
3760msgstr ""
3761
3762#. type: code{#1}
39764ef8 3763#: doc/guix.texi:947 doc/guix.texi:11010
b9fe8fd6
JL
3764#, no-wrap
3765msgid "user"
3766msgstr ""
3767
3768#. type: table
3769#: doc/guix.texi:951
3770msgid ""
3771"The user account to use when connecting to the remote machine over SSH. "
3772"Note that the SSH key pair must @emph{not} be passphrase-protected, to allow "
3773"non-interactive logins."
3774msgstr ""
3775
3776#. type: item
3777#: doc/guix.texi:952
3778#, no-wrap
3779msgid "host-key"
3780msgstr ""
3781
3782#. type: table
3783#: doc/guix.texi:956
3784msgid ""
3785"This must be the machine's SSH @dfn{public host key} in OpenSSH format. "
3786"This is used to authenticate the machine when we connect to it. It is a "
3787"long string that looks like this:"
3788msgstr ""
3789
3790#. type: example
3791#: doc/guix.texi:959
3792#, no-wrap
3793msgid "ssh-ed25519 AAAAC3NzaC@dots{}mde+UhL hint@@example.org\n"
3794msgstr ""
3795
3796#. type: table
3797#: doc/guix.texi:964
3798msgid ""
3799"If the machine is running the OpenSSH daemon, @command{sshd}, the host key "
3800"can be found in a file such as @file{/etc/ssh/ssh_host_ed25519_key.pub}."
3801msgstr ""
3802
3803#. type: table
3804#: doc/guix.texi:969
3805msgid ""
3806"If the machine is running the SSH daemon of GNU@tie{}lsh, @command{lshd}, "
3807"the host key is in @file{/etc/lsh/host-key.pub} or a similar file. It can "
3808"be converted to the OpenSSH format using @command{lsh-export-key} "
3809"(@pxref{Converting keys,,, lsh, LSH Manual}):"
3810msgstr ""
3811
3812#. type: example
3813#: doc/guix.texi:973
3814#, no-wrap
3815msgid ""
3816"$ lsh-export-key --openssh < /etc/lsh/host-key.pub \n"
3817"ssh-rsa AAAAB3NzaC1yc2EAAAAEOp8FoQAAAQEAs1eB46LV@dots{}\n"
3818msgstr ""
3819
3820#. type: deftp
3821#: doc/guix.texi:978
3822msgid "A number of optional fields may be specified:"
3823msgstr ""
3824
3825#. type: item
3826#: doc/guix.texi:981
3827#, no-wrap
3828msgid "@code{port} (default: @code{22})"
3829msgstr ""
3830
3831#. type: table
3832#: doc/guix.texi:983
3833msgid "Port number of SSH server on the machine."
3834msgstr ""
3835
3836#. type: item
3837#: doc/guix.texi:984
3838#, no-wrap
3839msgid "@code{private-key} (default: @file{~root/.ssh/id_rsa})"
3840msgstr ""
3841
3842#. type: table
3843#: doc/guix.texi:987
3844msgid ""
3845"The SSH private key file to use when connecting to the machine, in OpenSSH "
3846"format."
3847msgstr ""
3848
3849#. type: table
3850#: doc/guix.texi:990
3851msgid ""
3852"Note that the default value is the private key @emph{of the root account}. "
3853"Make sure it exists if you use the default."
3854msgstr ""
3855
3856#. type: item
3857#: doc/guix.texi:991
3858#, no-wrap
3859msgid "@code{compression} (default: @code{\"zlib@@openssh.com,zlib\"})"
3860msgstr ""
3861
3862#. type: item
3863#: doc/guix.texi:992 doc/guix.texi:10422
3864#, no-wrap
3865msgid "@code{compression-level} (default: @code{3})"
3866msgstr ""
3867
3868#. type: table
3869#: doc/guix.texi:994
3870msgid "The SSH-level compression methods and compression level requested."
3871msgstr ""
3872
3873#. type: table
3874#: doc/guix.texi:997
3875msgid ""
3876"Note that offloading relies on SSH compression to reduce bandwidth usage "
3877"when transferring files to and from build machines."
3878msgstr ""
3879
3880#. type: item
3881#: doc/guix.texi:998
3882#, no-wrap
3883msgid "@code{daemon-socket} (default: @code{\"/var/guix/daemon-socket/socket\"})"
3884msgstr ""
3885
3886#. type: table
3887#: doc/guix.texi:1001
3888msgid ""
3889"File name of the Unix-domain socket @command{guix-daemon} is listening to on "
3890"that machine."
3891msgstr ""
3892
3893#. type: item
3894#: doc/guix.texi:1002
3895#, no-wrap
3896msgid "@code{parallel-builds} (default: @code{1})"
3897msgstr ""
3898
3899#. type: table
3900#: doc/guix.texi:1004
3901msgid "The number of builds that may run in parallel on the machine."
3902msgstr ""
3903
3904#. type: item
3905#: doc/guix.texi:1005
3906#, no-wrap
3907msgid "@code{speed} (default: @code{1.0})"
3908msgstr ""
3909
3910#. type: table
3911#: doc/guix.texi:1008
3912msgid ""
3913"A ``relative speed factor''. The offload scheduler will tend to prefer "
3914"machines with a higher speed factor."
3915msgstr ""
3916
3917#. type: item
3918#: doc/guix.texi:1009
3919#, no-wrap
3920msgid "@code{features} (default: @code{'()})"
3921msgstr ""
3922
3923#. type: table
3924#: doc/guix.texi:1014
3925msgid ""
3926"A list of strings denoting specific features supported by the machine. An "
3927"example is @code{\"kvm\"} for machines that have the KVM Linux modules and "
3928"corresponding hardware support. Derivations can request features by name, "
3929"and they will be scheduled on matching build machines."
3930msgstr ""
3931
3932#. type: Plain text
3933#: doc/guix.texi:1022
3934msgid ""
3935"The @code{guile} command must be in the search path on the build machines. "
3936"In addition, the Guix modules must be in @code{$GUILE_LOAD_PATH} on the "
3937"build machine---you can check whether this is the case by running:"
3938msgstr ""
3939
3940#. type: example
3941#: doc/guix.texi:1025
3942#, no-wrap
3943msgid "ssh build-machine guile -c \"'(use-modules (guix config))'\"\n"
3944msgstr ""
3945
3946#. type: Plain text
3947#: doc/guix.texi:1032
3948msgid ""
3949"There is one last thing to do once @file{machines.scm} is in place. As "
3950"explained above, when offloading, files are transferred back and forth "
3951"between the machine stores. For this to work, you first need to generate a "
3952"key pair on each machine to allow the daemon to export signed archives of "
3953"files from the store (@pxref{Invoking guix archive}):"
3954msgstr ""
3955
3956#. type: example
3957#: doc/guix.texi:1035
3958#, no-wrap
3959msgid "# guix archive --generate-key\n"
3960msgstr ""
3961
3962#. type: Plain text
3963#: doc/guix.texi:1040
3964msgid ""
3965"Each build machine must authorize the key of the master machine so that it "
3966"accepts store items it receives from the master:"
3967msgstr ""
3968
3969#. type: example
3970#: doc/guix.texi:1043
3971#, no-wrap
3972msgid "# guix archive --authorize < master-public-key.txt\n"
3973msgstr ""
3974
3975#. type: Plain text
3976#: doc/guix.texi:1047
39764ef8
JL
3977msgid ""
3978"Likewise, the master machine must authorize the key of each build machine."
b9fe8fd6
JL
3979msgstr ""
3980
3981#. type: Plain text
3982#: doc/guix.texi:1053
3983msgid ""
3984"All the fuss with keys is here to express pairwise mutual trust relations "
3985"between the master and the build machines. Concretely, when the master "
3986"receives files from a build machine (and @i{vice versa}), its build daemon "
3987"can make sure they are genuine, have not been tampered with, and that they "
3988"are signed by an authorized key."
3989msgstr ""
3990
3991#. type: cindex
3992#: doc/guix.texi:1054
3993#, no-wrap
3994msgid "offload test"
3995msgstr ""
3996
3997#. type: Plain text
3998#: doc/guix.texi:1057
3999msgid ""
4000"To test whether your setup is operational, run this command on the master "
4001"node:"
4002msgstr ""
4003
4004#. type: example
4005#: doc/guix.texi:1060
4006#, no-wrap
4007msgid "# guix offload test\n"
4008msgstr ""
4009
4010#. type: Plain text
4011#: doc/guix.texi:1066
4012msgid ""
4013"This will attempt to connect to each of the build machines specified in "
4014"@file{/etc/guix/machines.scm}, make sure Guile and the Guix modules are "
4015"available on each machine, attempt to export to the machine and import from "
4016"it, and report any error in the process."
4017msgstr ""
4018
4019#. type: Plain text
4020#: doc/guix.texi:1069
4021msgid ""
4022"If you want to test a different machine file, just specify it on the command "
4023"line:"
4024msgstr ""
4025
4026#. type: example
4027#: doc/guix.texi:1072
4028#, no-wrap
4029msgid "# guix offload test machines-qualif.scm\n"
4030msgstr ""
4031
4032#. type: Plain text
4033#: doc/guix.texi:1076
4034msgid ""
4035"Last, you can test the subset of the machines whose name matches a regular "
4036"expression like this:"
4037msgstr ""
4038
4039#. type: example
4040#: doc/guix.texi:1079
4041#, no-wrap
4042msgid "# guix offload test machines.scm '\\.gnu\\.org$'\n"
4043msgstr ""
4044
4045#. type: cindex
4046#: doc/guix.texi:1081
4047#, no-wrap
4048msgid "offload status"
4049msgstr ""
4050
4051#. type: Plain text
4052#: doc/guix.texi:1084
4053msgid ""
4054"To display the current load of all build hosts, run this command on the main "
4055"node:"
4056msgstr ""
4057
4058#. type: example
4059#: doc/guix.texi:1087
4060#, no-wrap
4061msgid "# guix offload status\n"
4062msgstr ""
4063
4064#. type: cindex
4065#: doc/guix.texi:1093
4066#, no-wrap
4067msgid "SELinux, daemon policy"
4068msgstr ""
4069
4070#. type: cindex
4071#: doc/guix.texi:1094
4072#, no-wrap
4073msgid "mandatory access control, SELinux"
4074msgstr ""
4075
4076#. type: cindex
4077#: doc/guix.texi:1095
4078#, no-wrap
4079msgid "security, guix-daemon"
4080msgstr ""
4081
4082#. type: Plain text
4083#: doc/guix.texi:1101
4084msgid ""
4085"Guix includes an SELinux policy file at @file{etc/guix-daemon.cil} that can "
4086"be installed on a system where SELinux is enabled, in order to label Guix "
4087"files and to specify the expected behavior of the daemon. Since GuixSD does "
4088"not provide an SELinux base policy, the daemon policy cannot be used on "
4089"GuixSD."
4090msgstr ""
4091
4092#. type: subsubsection
4093#: doc/guix.texi:1102
4094#, no-wrap
4095msgid "Installing the SELinux policy"
4096msgstr ""
4097
4098#. type: cindex
4099#: doc/guix.texi:1103
4100#, no-wrap
4101msgid "SELinux, policy installation"
4102msgstr ""
4103
4104#. type: Plain text
4105#: doc/guix.texi:1105
4106msgid "To install the policy run this command as root:"
4107msgstr ""
4108
4109#. type: example
4110#: doc/guix.texi:1108
4111#, no-wrap
4112msgid "semodule -i etc/guix-daemon.cil\n"
4113msgstr ""
4114
4115#. type: Plain text
4116#: doc/guix.texi:1112
4117msgid ""
4118"Then relabel the file system with @code{restorecon} or by a different "
4119"mechanism provided by your system."
4120msgstr ""
4121
4122#. type: Plain text
4123#: doc/guix.texi:1117
4124msgid ""
4125"Once the policy is installed, the file system has been relabeled, and the "
4126"daemon has been restarted, it should be running in the @code{guix_daemon_t} "
4127"context. You can confirm this with the following command:"
4128msgstr ""
4129
4130#. type: example
4131#: doc/guix.texi:1120
4132#, no-wrap
4133msgid "ps -Zax | grep guix-daemon\n"
4134msgstr ""
4135
4136#. type: Plain text
4137#: doc/guix.texi:1125
4138msgid ""
4139"Monitor the SELinux log files as you run a command like @code{guix build "
4140"hello} to convince yourself that SELinux permits all necessary operations."
4141msgstr ""
4142
4143#. type: cindex
4144#: doc/guix.texi:1127
4145#, no-wrap
4146msgid "SELinux, limitations"
4147msgstr ""
4148
4149#. type: Plain text
4150#: doc/guix.texi:1132
4151msgid ""
4152"This policy is not perfect. Here is a list of limitations or quirks that "
4153"should be considered when deploying the provided SELinux policy for the Guix "
4154"daemon."
4155msgstr ""
4156
4157#. type: enumerate
4158#: doc/guix.texi:1139
4159msgid ""
4160"@code{guix_daemon_socket_t} isn’t actually used. None of the socket "
4161"operations involve contexts that have anything to do with "
4162"@code{guix_daemon_socket_t}. It doesn’t hurt to have this unused label, but "
4163"it would be preferrable to define socket rules for only this label."
4164msgstr ""
4165
4166#. type: enumerate
4167#: doc/guix.texi:1150
4168msgid ""
4169"@code{guix gc} cannot access arbitrary links to profiles. By design, the "
4170"file label of the destination of a symlink is independent of the file label "
4171"of the link itself. Although all profiles under $localstatedir are "
4172"labelled, the links to these profiles inherit the label of the directory "
4173"they are in. For links in the user’s home directory this will be "
4174"@code{user_home_t}. But for links from the root user’s home directory, or "
4175"@file{/tmp}, or the HTTP server’s working directory, etc, this won’t work. "
4176"@code{guix gc} would be prevented from reading and following these links."
4177msgstr ""
4178
4179#. type: enumerate
4180#: doc/guix.texi:1155
4181msgid ""
4182"The daemon’s feature to listen for TCP connections might no longer work. "
4183"This might require extra rules, because SELinux treats network sockets "
4184"differently from files."
4185msgstr ""
4186
4187#. type: enumerate
4188#: doc/guix.texi:1166
4189msgid ""
39764ef8
JL
4190"Currently all files with a name matching the regular expression @code{/gnu/"
4191"store/.+-(guix-.+|profile)/bin/guix-daemon} are assigned the label "
4192"@code{guix_daemon_exec_t}; this means that @emph{any} file with that name in "
4193"any profile would be permitted to run in the @code{guix_daemon_t} domain. "
4194"This is not ideal. An attacker could build a package that provides this "
4195"executable and convince a user to install and run it, which lifts it into "
4196"the @code{guix_daemon_t} domain. At that point SELinux could not prevent it "
4197"from accessing files that are allowed for processes in that domain."
b9fe8fd6
JL
4198msgstr ""
4199
4200#. type: enumerate
4201#: doc/guix.texi:1174
4202msgid ""
4203"We could generate a much more restrictive policy at installation time, so "
39764ef8
JL
4204"that only the @emph{exact} file name of the currently installed @code{guix-"
4205"daemon} executable would be labelled with @code{guix_daemon_exec_t}, instead "
4206"of using a broad regular expression. The downside is that root would have "
4207"to install or upgrade the policy at installation time whenever the Guix "
4208"package that provides the effectively running @code{guix-daemon} executable "
4209"is upgraded."
b9fe8fd6
JL
4210msgstr ""
4211
4212#. type: section
4213#: doc/guix.texi:1177
4214#, no-wrap
4215msgid "Invoking @command{guix-daemon}"
4216msgstr ""
4217
4218#. type: Plain text
4219#: doc/guix.texi:1183
4220msgid ""
4221"The @command{guix-daemon} program implements all the functionality to access "
4222"the store. This includes launching build processes, running the garbage "
4223"collector, querying the availability of a build result, etc. It is normally "
4224"run as @code{root} like this:"
4225msgstr ""
4226
4227#. type: Plain text
4228#: doc/guix.texi:1190
4229msgid "For details on how to set it up, @pxref{Setting Up the Daemon}."
4230msgstr ""
4231
4232#. type: cindex
4233#: doc/guix.texi:1192
4234#, no-wrap
4235msgid "container, build environment"
4236msgstr ""
4237
4238#. type: cindex
4239#: doc/guix.texi:1194 doc/guix.texi:1732 doc/guix.texi:2392 doc/guix.texi:7648
4240#, no-wrap
4241msgid "reproducible builds"
4242msgstr ""
4243
4244#. type: Plain text
4245#: doc/guix.texi:1206
4246msgid ""
4247"By default, @command{guix-daemon} launches build processes under different "
4248"UIDs, taken from the build group specified with @code{--build-users-group}. "
4249"In addition, each build process is run in a chroot environment that only "
4250"contains the subset of the store that the build process depends on, as "
4251"specified by its derivation (@pxref{Programming Interface, derivation}), "
4252"plus a set of specific system directories. By default, the latter contains "
4253"@file{/dev} and @file{/dev/pts}. Furthermore, on GNU/Linux, the build "
4254"environment is a @dfn{container}: in addition to having its own file system "
4255"tree, it has a separate mount name space, its own PID name space, network "
4256"name space, etc. This helps achieve reproducible builds (@pxref{Features})."
4257msgstr ""
4258
4259#. type: Plain text
4260#: doc/guix.texi:1215
4261msgid ""
4262"When the daemon performs a build on behalf of the user, it creates a build "
4263"directory under @file{/tmp} or under the directory specified by its "
4264"@code{TMPDIR} environment variable; this directory is shared with the "
4265"container for the duration of the build. Be aware that using a directory "
4266"other than @file{/tmp} can affect build results---for example, with a longer "
4267"directory name, a build process that uses Unix-domain sockets might hit the "
39764ef8 4268"name length limitation for @code{sun_path}, which it would otherwise not hit."
b9fe8fd6
JL
4269msgstr ""
4270
4271#. type: Plain text
4272#: doc/guix.texi:1219
4273msgid ""
4274"The build directory is automatically deleted upon completion, unless the "
4275"build failed and the client specified @option{--keep-failed} "
4276"(@pxref{Invoking guix build, @option{--keep-failed}})."
4277msgstr ""
4278
4279#. type: Plain text
4280#: doc/guix.texi:1221
4281msgid "The following command-line options are supported:"
4282msgstr ""
4283
4284#. type: item
4285#: doc/guix.texi:1223
4286#, no-wrap
4287msgid "--build-users-group=@var{group}"
4288msgstr ""
4289
4290#. type: table
4291#: doc/guix.texi:1226
4292msgid ""
4293"Take users from @var{group} to run build processes (@pxref{Setting Up the "
4294"Daemon, build users})."
4295msgstr ""
4296
4297#. type: item
4298#: doc/guix.texi:1227 doc/guix.texi:5498
4299#, no-wrap
4300msgid "--no-substitutes"
4301msgstr ""
4302
4303#. type: cindex
4304#: doc/guix.texi:1228 doc/guix.texi:1744 doc/guix.texi:2248
4305#, no-wrap
4306msgid "substitutes"
4307msgstr ""
4308
4309#. type: table
4310#: doc/guix.texi:1232 doc/guix.texi:5502
4311msgid ""
4312"Do not use substitutes for build products. That is, always build things "
4313"locally instead of allowing downloads of pre-built binaries "
4314"(@pxref{Substitutes})."
4315msgstr ""
4316
4317#. type: table
4318#: doc/guix.texi:1236
4319msgid ""
4320"When the daemon runs with @code{--no-substitutes}, clients can still "
4321"explicitly enable substitution @i{via} the @code{set-build-options} remote "
4322"procedure call (@pxref{The Store})."
4323msgstr ""
4324
4325#. type: item
39764ef8
JL
4326#: doc/guix.texi:1237 doc/guix.texi:5485 doc/guix.texi:6897 doc/guix.texi:7773
4327#: doc/guix.texi:7961
b9fe8fd6
JL
4328#, no-wrap
4329msgid "--substitute-urls=@var{urls}"
4330msgstr ""
4331
4332#. type: anchor{#1}
4333#: doc/guix.texi:1243
4334msgid "daemon-substitute-urls"
4335msgstr ""
4336
4337#. type: table
4338#: doc/guix.texi:1243
4339msgid ""
4340"Consider @var{urls} the default whitespace-separated list of substitute "
39764ef8
JL
4341"source URLs. When this option is omitted, @indicateurl{https://mirror.hydra."
4342"gnu.org https://hydra.gnu.org} is used (@code{mirror.hydra.gnu.org} is a "
4343"mirror of @code{hydra.gnu.org})."
b9fe8fd6
JL
4344msgstr ""
4345
4346#. type: table
4347#: doc/guix.texi:1246
4348msgid ""
4349"This means that substitutes may be downloaded from @var{urls}, as long as "
4350"they are signed by a trusted signature (@pxref{Substitutes})."
4351msgstr ""
4352
4353#. type: item
4354#: doc/guix.texi:1248 doc/guix.texi:5523
4355#, no-wrap
4356msgid "--no-build-hook"
4357msgstr ""
4358
4359#. type: table
4360#: doc/guix.texi:1250
4361msgid "Do not use the @dfn{build hook}."
4362msgstr ""
4363
4364#. type: table
4365#: doc/guix.texi:1254
4366msgid ""
4367"The build hook is a helper program that the daemon can start and to which it "
4368"submits build requests. This mechanism is used to offload builds to other "
4369"machines (@pxref{Daemon Offload Setup})."
4370msgstr ""
4371
4372#. type: item
4373#: doc/guix.texi:1255
4374#, no-wrap
4375msgid "--cache-failures"
4376msgstr ""
4377
4378#. type: table
4379#: doc/guix.texi:1257
4380msgid "Cache build failures. By default, only successful builds are cached."
4381msgstr ""
4382
4383#. type: table
4384#: doc/guix.texi:1262
4385msgid ""
4386"When this option is used, @command{guix gc --list-failures} can be used to "
39764ef8
JL
4387"query the set of store items marked as failed; @command{guix gc --clear-"
4388"failures} removes store items from the set of cached failures. "
b9fe8fd6
JL
4389"@xref{Invoking guix gc}."
4390msgstr ""
4391
4392#. type: item
4393#: doc/guix.texi:1263 doc/guix.texi:5547
4394#, no-wrap
4395msgid "--cores=@var{n}"
4396msgstr ""
4397
4398#. type: itemx
4399#: doc/guix.texi:1264 doc/guix.texi:5548
4400#, no-wrap
4401msgid "-c @var{n}"
4402msgstr ""
4403
4404#. type: table
4405#: doc/guix.texi:1267
4406msgid ""
4407"Use @var{n} CPU cores to build each derivation; @code{0} means as many as "
4408"available."
4409msgstr ""
4410
4411#. type: table
4412#: doc/guix.texi:1271
4413msgid ""
4414"The default value is @code{0}, but it may be overridden by clients, such as "
4415"the @code{--cores} option of @command{guix build} (@pxref{Invoking guix "
4416"build})."
4417msgstr ""
4418
4419#. type: table
4420#: doc/guix.texi:1275
4421msgid ""
4422"The effect is to define the @code{NIX_BUILD_CORES} environment variable in "
39764ef8
JL
4423"the build process, which can then use it to exploit internal parallelism---"
4424"for instance, by running @code{make -j$NIX_BUILD_CORES}."
b9fe8fd6
JL
4425msgstr ""
4426
4427#. type: item
4428#: doc/guix.texi:1276 doc/guix.texi:5552
4429#, no-wrap
4430msgid "--max-jobs=@var{n}"
4431msgstr ""
4432
4433#. type: itemx
4434#: doc/guix.texi:1277 doc/guix.texi:5553
4435#, no-wrap
4436msgid "-M @var{n}"
4437msgstr ""
4438
4439#. type: table
4440#: doc/guix.texi:1282
4441msgid ""
4442"Allow at most @var{n} build jobs in parallel. The default value is "
4443"@code{1}. Setting it to @code{0} means that no builds will be performed "
4444"locally; instead, the daemon will offload builds (@pxref{Daemon Offload "
4445"Setup}), or simply fail."
4446msgstr ""
4447
4448#. type: item
4449#: doc/guix.texi:1283 doc/guix.texi:5528
4450#, no-wrap
4451msgid "--max-silent-time=@var{seconds}"
4452msgstr ""
4453
4454#. type: table
4455#: doc/guix.texi:1286 doc/guix.texi:5531
4456msgid ""
4457"When the build or substitution process remains silent for more than "
4458"@var{seconds}, terminate it and report a build failure."
4459msgstr ""
4460
4461#. type: table
4462#: doc/guix.texi:1288 doc/guix.texi:1297
4463msgid "The default value is @code{0}, which disables the timeout."
4464msgstr ""
4465
4466#. type: table
4467#: doc/guix.texi:1291
4468msgid ""
4469"The value specified here can be overridden by clients (@pxref{Common Build "
4470"Options, @code{--max-silent-time}})."
4471msgstr ""
4472
4473#. type: item
4474#: doc/guix.texi:1292 doc/guix.texi:5535
4475#, no-wrap
4476msgid "--timeout=@var{seconds}"
4477msgstr ""
4478
4479#. type: table
4480#: doc/guix.texi:1295 doc/guix.texi:5538
4481msgid ""
4482"Likewise, when the build or substitution process lasts for more than "
4483"@var{seconds}, terminate it and report a build failure."
4484msgstr ""
4485
4486#. type: table
4487#: doc/guix.texi:1300
4488msgid ""
4489"The value specified here can be overridden by clients (@pxref{Common Build "
4490"Options, @code{--timeout}})."
4491msgstr ""
4492
4493#. type: item
4494#: doc/guix.texi:1301
4495#, no-wrap
4496msgid "--rounds=@var{N}"
4497msgstr ""
4498
4499#. type: table
4500#: doc/guix.texi:1306
4501msgid ""
4502"Build each derivation @var{n} times in a row, and raise an error if "
4503"consecutive build results are not bit-for-bit identical. Note that this "
4504"setting can be overridden by clients such as @command{guix build} "
4505"(@pxref{Invoking guix build})."
4506msgstr ""
4507
4508#. type: table
4509#: doc/guix.texi:1310 doc/guix.texi:5830
4510msgid ""
4511"When used in conjunction with @option{--keep-failed}, the differing output "
4512"is kept in the store, under @file{/gnu/store/@dots{}-check}. This makes it "
4513"easy to look for differences between the two results."
4514msgstr ""
4515
4516#. type: item
4517#: doc/guix.texi:1311
4518#, no-wrap
4519msgid "--debug"
4520msgstr ""
4521
4522#. type: table
4523#: doc/guix.texi:1313
4524msgid "Produce debugging output."
4525msgstr ""
4526
4527#. type: table
4528#: doc/guix.texi:1317
4529msgid ""
4530"This is useful to debug daemon start-up issues, but then it may be "
4531"overridden by clients, for example the @code{--verbosity} option of "
4532"@command{guix build} (@pxref{Invoking guix build})."
4533msgstr ""
4534
4535#. type: item
4536#: doc/guix.texi:1318
4537#, no-wrap
4538msgid "--chroot-directory=@var{dir}"
4539msgstr ""
4540
4541#. type: table
4542#: doc/guix.texi:1320
4543msgid "Add @var{dir} to the build chroot."
4544msgstr ""
4545
4546#. type: table
4547#: doc/guix.texi:1326
4548msgid ""
4549"Doing this may change the result of build processes---for instance if they "
4550"use optional dependencies found in @var{dir} when it is available, and not "
4551"otherwise. For that reason, it is not recommended to do so. Instead, make "
4552"sure that each derivation declares all the inputs that it needs."
4553msgstr ""
4554
4555#. type: item
4556#: doc/guix.texi:1327
4557#, no-wrap
4558msgid "--disable-chroot"
4559msgstr ""
4560
4561#. type: table
4562#: doc/guix.texi:1329
4563msgid "Disable chroot builds."
4564msgstr ""
4565
4566#. type: table
4567#: doc/guix.texi:1334
4568msgid ""
4569"Using this option is not recommended since, again, it would allow build "
4570"processes to gain access to undeclared dependencies. It is necessary, "
4571"though, when @command{guix-daemon} is running under an unprivileged user "
4572"account."
4573msgstr ""
4574
4575#. type: item
4576#: doc/guix.texi:1335
4577#, no-wrap
4578msgid "--log-compression=@var{type}"
4579msgstr ""
4580
4581#. type: table
4582#: doc/guix.texi:1338
4583msgid ""
4584"Compress build logs according to @var{type}, one of @code{gzip}, "
4585"@code{bzip2}, or @code{none}."
4586msgstr ""
4587
4588#. type: table
4589#: doc/guix.texi:1342
4590msgid ""
4591"Unless @code{--lose-logs} is used, all the build logs are kept in the "
4592"@var{localstatedir}. To save space, the daemon automatically compresses "
4593"them with bzip2 by default."
4594msgstr ""
4595
4596#. type: item
4597#: doc/guix.texi:1343
4598#, no-wrap
4599msgid "--disable-deduplication"
4600msgstr ""
4601
4602#. type: cindex
4603#: doc/guix.texi:1344 doc/guix.texi:2708
4604#, no-wrap
4605msgid "deduplication"
4606msgstr ""
4607
4608#. type: table
4609#: doc/guix.texi:1346
4610msgid "Disable automatic file ``deduplication'' in the store."
4611msgstr ""
4612
4613#. type: table
4614#: doc/guix.texi:1353
4615msgid ""
4616"By default, files added to the store are automatically ``deduplicated'': if "
4617"a newly added file is identical to another one found in the store, the "
4618"daemon makes the new file a hard link to the other file. This can "
39764ef8
JL
4619"noticeably reduce disk usage, at the expense of slightly increased input/"
4620"output load at the end of a build process. This option disables this "
b9fe8fd6
JL
4621"optimization."
4622msgstr ""
4623
4624#. type: item
4625#: doc/guix.texi:1354
4626#, no-wrap
4627msgid "--gc-keep-outputs[=yes|no]"
4628msgstr ""
4629
4630#. type: table
4631#: doc/guix.texi:1357
4632msgid ""
4633"Tell whether the garbage collector (GC) must keep outputs of live "
4634"derivations."
4635msgstr ""
4636
4637#. type: cindex
4638#: doc/guix.texi:1358 doc/guix.texi:2543
4639#, no-wrap
4640msgid "GC roots"
4641msgstr ""
4642
4643#. type: cindex
4644#: doc/guix.texi:1359 doc/guix.texi:2544
4645#, no-wrap
4646msgid "garbage collector roots"
4647msgstr ""
4648
4649#. type: table
4650#: doc/guix.texi:1364
4651msgid ""
4652"When set to ``yes'', the GC will keep the outputs of any live derivation "
4653"available in the store---the @code{.drv} files. The default is ``no'', "
4654"meaning that derivation outputs are kept only if they are GC roots. "
4655"@xref{Invoking guix gc}, for more on GC roots."
4656msgstr ""
4657
4658#. type: item
4659#: doc/guix.texi:1365
4660#, no-wrap
4661msgid "--gc-keep-derivations[=yes|no]"
4662msgstr ""
4663
4664#. type: table
4665#: doc/guix.texi:1368
4666msgid ""
4667"Tell whether the garbage collector (GC) must keep derivations corresponding "
4668"to live outputs."
4669msgstr ""
4670
4671#. type: table
4672#: doc/guix.texi:1373
4673msgid ""
39764ef8
JL
4674"When set to ``yes'', as is the case by default, the GC keeps derivations---i."
4675"e., @code{.drv} files---as long as at least one of their outputs is live. "
4676"This allows users to keep track of the origins of items in their store. "
4677"Setting it to ``no'' saves a bit of disk space."
b9fe8fd6
JL
4678msgstr ""
4679
4680#. type: table
4681#: doc/guix.texi:1380
4682msgid ""
39764ef8
JL
4683"Note that when both @code{--gc-keep-derivations} and @code{--gc-keep-"
4684"outputs} are used, the effect is to keep all the build prerequisites (the "
4685"sources, compiler, libraries, and other build-time tools) of live objects in "
4686"the store, regardless of whether these prerequisites are live. This is "
4687"convenient for developers since it saves rebuilds or downloads."
b9fe8fd6
JL
4688msgstr ""
4689
4690#. type: item
4691#: doc/guix.texi:1381
4692#, no-wrap
4693msgid "--impersonate-linux-2.6"
4694msgstr ""
4695
4696#. type: table
4697#: doc/guix.texi:1384
4698msgid ""
4699"On Linux-based systems, impersonate Linux 2.6. This means that the kernel's "
4700"@code{uname} system call will report 2.6 as the release number."
4701msgstr ""
4702
4703#. type: table
4704#: doc/guix.texi:1387
4705msgid ""
4706"This might be helpful to build programs that (usually wrongfully) depend on "
4707"the kernel version number."
4708msgstr ""
4709
4710#. type: item
4711#: doc/guix.texi:1388
4712#, no-wrap
4713msgid "--lose-logs"
4714msgstr ""
4715
4716#. type: table
4717#: doc/guix.texi:1391
4718msgid ""
4719"Do not keep build logs. By default they are kept under "
4720"@code{@var{localstatedir}/guix/log}."
4721msgstr ""
4722
4723#. type: item
39764ef8
JL
4724#: doc/guix.texi:1392 doc/guix.texi:2890 doc/guix.texi:5783 doc/guix.texi:6924
4725#: doc/guix.texi:7332 doc/guix.texi:7966 doc/guix.texi:20048
4726#: doc/guix.texi:20592
b9fe8fd6
JL
4727#, no-wrap
4728msgid "--system=@var{system}"
4729msgstr ""
4730
4731#. type: table
4732#: doc/guix.texi:1396
4733msgid ""
4734"Assume @var{system} as the current system type. By default it is the "
39764ef8
JL
4735"architecture/kernel pair found at configure time, such as @code{x86_64-"
4736"linux}."
b9fe8fd6
JL
4737msgstr ""
4738
4739#. type: item
4740#: doc/guix.texi:1397
4741#, no-wrap
4742msgid "--listen=@var{endpoint}"
4743msgstr ""
4744
4745#. type: table
4746#: doc/guix.texi:1402
4747msgid ""
4748"Listen for connections on @var{endpoint}. @var{endpoint} is interpreted as "
4749"the file name of a Unix-domain socket if it starts with @code{/} (slash "
4750"sign). Otherwise, @var{endpoint} is interpreted as a host name or host name "
4751"and port to listen to. Here are a few examples:"
4752msgstr ""
4753
4754#. type: item
4755#: doc/guix.texi:1404
4756#, no-wrap
4757msgid "--listen=/gnu/var/daemon"
4758msgstr ""
4759
4760#. type: table
4761#: doc/guix.texi:1407
4762msgid ""
4763"Listen for connections on the @file{/gnu/var/daemon} Unix-domain socket, "
4764"creating it if needed."
4765msgstr ""
4766
4767#. type: item
4768#: doc/guix.texi:1408
4769#, no-wrap
4770msgid "--listen=localhost"
4771msgstr ""
4772
4773#. type: cindex
4774#: doc/guix.texi:1409 doc/guix.texi:4235
4775#, no-wrap
4776msgid "daemon, remote access"
4777msgstr ""
4778
4779#. type: cindex
4780#: doc/guix.texi:1410 doc/guix.texi:4236
4781#, no-wrap
4782msgid "remote access to the daemon"
4783msgstr ""
4784
4785#. type: cindex
4786#: doc/guix.texi:1411 doc/guix.texi:4237
4787#, no-wrap
4788msgid "daemon, cluster setup"
4789msgstr ""
4790
4791#. type: cindex
4792#: doc/guix.texi:1412 doc/guix.texi:4238
4793#, no-wrap
4794msgid "clusters, daemon setup"
4795msgstr ""
4796
4797#. type: table
4798#: doc/guix.texi:1415
4799msgid ""
4800"Listen for TCP connections on the network interface corresponding to "
4801"@code{localhost}, on port 44146."
4802msgstr ""
4803
4804#. type: item
4805#: doc/guix.texi:1416
4806#, no-wrap
4807msgid "--listen=128.0.0.42:1234"
4808msgstr ""
4809
4810#. type: table
4811#: doc/guix.texi:1419
4812msgid ""
4813"Listen for TCP connections on the network interface corresponding to "
4814"@code{128.0.0.42}, on port 1234."
4815msgstr ""
4816
4817#. type: table
4818#: doc/guix.texi:1426
4819msgid ""
39764ef8
JL
4820"This option can be repeated multiple times, in which case @command{guix-"
4821"daemon} accepts connections on all the specified endpoints. Users can tell "
4822"client commands what endpoint to connect to by setting the "
b9fe8fd6
JL
4823"@code{GUIX_DAEMON_SOCKET} environment variable (@pxref{The Store, "
4824"@code{GUIX_DAEMON_SOCKET}})."
4825msgstr ""
4826
4827#. type: quotation
39764ef8
JL
4828#: doc/guix.texi:1427 doc/guix.texi:2325 doc/guix.texi:2789 doc/guix.texi:2952
4829#: doc/guix.texi:4205 doc/guix.texi:4273 doc/guix.texi:5788 doc/guix.texi:7224
4830#: doc/guix.texi:7851 doc/guix.texi:8069 doc/guix.texi:8280 doc/guix.texi:11491
4831#: doc/guix.texi:20375 doc/guix.texi:20573 doc/guix.texi:20660
4832#: doc/guix.texi:21504
b9fe8fd6
JL
4833#, no-wrap
4834msgid "Note"
4835msgstr ""
4836
4837#. type: quotation
4838#: doc/guix.texi:1433
4839msgid ""
4840"The daemon protocol is @emph{unauthenticated and unencrypted}. Using "
4841"@code{--listen=@var{host}} is suitable on local networks, such as clusters, "
4842"where only trusted nodes may connect to the build daemon. In other cases "
4843"where remote access to the daemon is needed, we recommend using Unix-domain "
4844"sockets along with SSH."
4845msgstr ""
4846
4847#. type: table
4848#: doc/guix.texi:1438
4849msgid ""
4850"When @code{--listen} is omitted, @command{guix-daemon} listens for "
39764ef8
JL
4851"connections on the Unix-domain socket located at @file{@var{localstatedir}/"
4852"guix/daemon-socket/socket}."
b9fe8fd6
JL
4853msgstr ""
4854
4855#. type: Plain text
4856#: doc/guix.texi:1448
4857msgid ""
39764ef8
JL
4858"When using Guix on top of GNU/Linux distribution other than GuixSD---a so-"
4859"called @dfn{foreign distro}---a few additional steps are needed to get "
b9fe8fd6
JL
4860"everything in place. Here are some of them."
4861msgstr ""
4862
4863#. type: anchor{#1}
4864#: doc/guix.texi:1452
4865msgid "locales-and-locpath"
4866msgstr ""
4867
4868#. type: cindex
4869#: doc/guix.texi:1452
4870#, no-wrap
4871msgid "locales, when not on GuixSD"
4872msgstr ""
4873
4874#. type: vindex
4875#: doc/guix.texi:1453 doc/guix.texi:9549
4876#, no-wrap
4877msgid "LOCPATH"
4878msgstr ""
4879
4880#. type: vindex
4881#: doc/guix.texi:1454
4882#, no-wrap
4883msgid "GUIX_LOCPATH"
4884msgstr ""
4885
4886#. type: Plain text
4887#: doc/guix.texi:1459
4888msgid ""
4889"Packages installed @i{via} Guix will not use the locale data of the host "
4890"system. Instead, you must first install one of the locale packages "
4891"available with Guix and then define the @code{GUIX_LOCPATH} environment "
4892"variable:"
4893msgstr ""
4894
4895#. type: example
4896#: doc/guix.texi:1463
4897#, no-wrap
4898msgid ""
4899"$ guix package -i glibc-locales\n"
4900"$ export GUIX_LOCPATH=$HOME/.guix-profile/lib/locale\n"
4901msgstr ""
4902
4903#. type: Plain text
4904#: doc/guix.texi:1469
4905msgid ""
4906"Note that the @code{glibc-locales} package contains data for all the locales "
4907"supported by the GNU@tie{}libc and weighs in at around 110@tie{}MiB. "
4908"Alternatively, the @code{glibc-utf8-locales} is smaller but limited to a few "
4909"UTF-8 locales."
4910msgstr ""
4911
4912#. type: Plain text
4913#: doc/guix.texi:1473
4914msgid ""
4915"The @code{GUIX_LOCPATH} variable plays a role similar to @code{LOCPATH} "
4916"(@pxref{Locale Names, @code{LOCPATH},, libc, The GNU C Library Reference "
4917"Manual}). There are two important differences though:"
4918msgstr ""
4919
4920#. type: enumerate
4921#: doc/guix.texi:1480
4922msgid ""
4923"@code{GUIX_LOCPATH} is honored only by the libc in Guix, and not by the libc "
4924"provided by foreign distros. Thus, using @code{GUIX_LOCPATH} allows you to "
4925"make sure the programs of the foreign distro will not end up loading "
4926"incompatible locale data."
4927msgstr ""
4928
4929#. type: enumerate
4930#: doc/guix.texi:1487
4931msgid ""
4932"libc suffixes each entry of @code{GUIX_LOCPATH} with @code{/X.Y}, where "
4933"@code{X.Y} is the libc version---e.g., @code{2.22}. This means that, should "
4934"your Guix profile contain a mixture of programs linked against different "
4935"libc version, each libc version will only try to load locale data in the "
4936"right format."
4937msgstr ""
4938
4939#. type: Plain text
4940#: doc/guix.texi:1491
4941msgid ""
4942"This is important because the locale data format used by different libc "
4943"versions may be incompatible."
4944msgstr ""
4945
4946#. type: cindex
4947#: doc/guix.texi:1494
4948#, no-wrap
4949msgid "name service switch, glibc"
4950msgstr ""
4951
4952#. type: cindex
4953#: doc/guix.texi:1495
4954#, no-wrap
4955msgid "NSS (name service switch), glibc"
4956msgstr ""
4957
4958#. type: cindex
4959#: doc/guix.texi:1496
4960#, no-wrap
4961msgid "nscd (name service caching daemon)"
4962msgstr ""
4963
4964#. type: cindex
4965#: doc/guix.texi:1497
4966#, no-wrap
4967msgid "name service caching daemon (nscd)"
4968msgstr ""
4969
4970#. type: Plain text
4971#: doc/guix.texi:1504
4972msgid ""
4973"When using Guix on a foreign distro, we @emph{strongly recommend} that the "
4974"system run the GNU C library's @dfn{name service cache daemon}, "
4975"@command{nscd}, which should be listening on the @file{/var/run/nscd/socket} "
4976"socket. Failing to do that, applications installed with Guix may fail to "
4977"look up host names or user accounts, or may even crash. The next paragraphs "
4978"explain why."
4979msgstr ""
4980
4981#. type: file{#1}
4982#: doc/guix.texi:1505
4983#, no-wrap
4984msgid "nsswitch.conf"
4985msgstr ""
4986
4987#. type: Plain text
4988#: doc/guix.texi:1510
4989msgid ""
4990"The GNU C library implements a @dfn{name service switch} (NSS), which is an "
4991"extensible mechanism for ``name lookups'' in general: host name resolution, "
4992"user accounts, and more (@pxref{Name Service Switch,,, libc, The GNU C "
4993"Library Reference Manual})."
4994msgstr ""
4995
4996#. type: cindex
4997#: doc/guix.texi:1511
4998#, no-wrap
4999msgid "Network information service (NIS)"
5000msgstr ""
5001
5002#. type: cindex
5003#: doc/guix.texi:1512
5004#, no-wrap
5005msgid "NIS (Network information service)"
5006msgstr ""
5007
5008#. type: Plain text
5009#: doc/guix.texi:1521
5010msgid ""
5011"Being extensible, the NSS supports @dfn{plugins}, which provide new name "
5012"lookup implementations: for example, the @code{nss-mdns} plugin allow "
5013"resolution of @code{.local} host names, the @code{nis} plugin allows user "
5014"account lookup using the Network information service (NIS), and so on. "
39764ef8
JL
5015"These extra ``lookup services'' are configured system-wide in @file{/etc/"
5016"nsswitch.conf}, and all the programs running on the system honor those "
5017"settings (@pxref{NSS Configuration File,,, libc, The GNU C Reference "
b9fe8fd6
JL
5018"Manual})."
5019msgstr ""
5020
5021#. type: Plain text
5022#: doc/guix.texi:1531
5023msgid ""
5024"When they perform a name lookup---for instance by calling the "
5025"@code{getaddrinfo} function in C---applications first try to connect to the "
5026"nscd; on success, nscd performs name lookups on their behalf. If the nscd "
5027"is not running, then they perform the name lookup by themselves, by loading "
5028"the name lookup services into their own address space and running it. These "
5029"name lookup services---the @file{libnss_*.so} files---are @code{dlopen}'d, "
5030"but they may come from the host system's C library, rather than from the C "
5031"library the application is linked against (the C library coming from Guix)."
5032msgstr ""
5033
5034#. type: Plain text
5035#: doc/guix.texi:1536
5036msgid ""
5037"And this is where the problem is: if your application is linked against "
5038"Guix's C library (say, glibc 2.24) and tries to load NSS plugins from "
5039"another C library (say, @code{libnss_mdns.so} for glibc 2.22), it will "
5040"likely crash or have its name lookups fail unexpectedly."
5041msgstr ""
5042
5043#. type: Plain text
5044#: doc/guix.texi:1541
5045msgid ""
5046"Running @command{nscd} on the system, among other advantages, eliminates "
5047"this binary incompatibility problem because those @code{libnss_*.so} files "
5048"are loaded in the @command{nscd} process, not in applications themselves."
5049msgstr ""
5050
5051#. type: subsection
5052#: doc/guix.texi:1542
5053#, no-wrap
5054msgid "X11 Fonts"
5055msgstr ""
5056
5057#. type: cindex
39764ef8 5058#: doc/guix.texi:1544 doc/guix.texi:22070
b9fe8fd6
JL
5059#, no-wrap
5060msgid "fonts"
5061msgstr ""
5062
5063#. type: Plain text
5064#: doc/guix.texi:1552
5065msgid ""
5066"The majority of graphical applications use Fontconfig to locate and load "
5067"fonts and perform X11-client-side rendering. The @code{fontconfig} package "
5068"in Guix looks for fonts in @file{$HOME/.guix-profile} by default. Thus, to "
5069"allow graphical applications installed with Guix to display fonts, you have "
5070"to install fonts with Guix as well. Essential font packages include "
5071"@code{gs-fonts}, @code{font-dejavu}, and @code{font-gnu-freefont-ttf}."
5072msgstr ""
5073
5074#. type: Plain text
5075#: doc/guix.texi:1559
5076msgid ""
5077"To display text written in Chinese languages, Japanese, or Korean in "
39764ef8
JL
5078"graphical applications, consider installing @code{font-adobe-source-han-"
5079"sans} or @code{font-wqy-zenhei}. The former has multiple outputs, one per "
5080"language family (@pxref{Packages with Multiple Outputs}). For instance, the "
5081"following command installs fonts for Chinese languages:"
b9fe8fd6
JL
5082msgstr ""
5083
5084#. type: example
5085#: doc/guix.texi:1562
5086#, no-wrap
5087msgid "guix package -i font-adobe-source-han-sans:cn\n"
5088msgstr ""
5089
5090#. type: code{#1}
5091#: doc/guix.texi:1564
5092#, no-wrap
5093msgid "xterm"
5094msgstr ""
5095
5096#. type: Plain text
5097#: doc/guix.texi:1568
5098msgid ""
5099"Older programs such as @command{xterm} do not use Fontconfig and instead "
5100"rely on server-side font rendering. Such programs require to specify a full "
5101"name of a font using XLFD (X Logical Font Description), like this:"
5102msgstr ""
5103
5104#. type: example
5105#: doc/guix.texi:1571
5106#, no-wrap
5107msgid "-*-dejavu sans-medium-r-normal-*-*-100-*-*-*-*-*-1\n"
5108msgstr ""
5109
5110#. type: Plain text
5111#: doc/guix.texi:1575
5112msgid ""
5113"To be able to use such full names for the TrueType fonts installed in your "
5114"Guix profile, you need to extend the font path of the X server:"
5115msgstr ""
5116
5117#. type: example
5118#: doc/guix.texi:1580
5119#, no-wrap
39764ef8 5120msgid "xset +fp $(dirname $(readlink -f ~/.guix-profile/share/fonts/truetype/fonts.dir))\n"
b9fe8fd6
JL
5121msgstr ""
5122
5123#. type: code{#1}
5124#: doc/guix.texi:1582
5125#, no-wrap
5126msgid "xlsfonts"
5127msgstr ""
5128
5129#. type: Plain text
5130#: doc/guix.texi:1585
5131msgid ""
5132"After that, you can run @code{xlsfonts} (from @code{xlsfonts} package) to "
5133"make sure your TrueType fonts are listed there."
5134msgstr ""
5135
5136#. type: code{#1}
5137#: doc/guix.texi:1586
5138#, no-wrap
5139msgid "fc-cache"
5140msgstr ""
5141
5142#. type: cindex
5143#: doc/guix.texi:1587
5144#, no-wrap
5145msgid "font cache"
5146msgstr ""
5147
5148#. type: Plain text
5149#: doc/guix.texi:1593
5150msgid ""
5151"After installing fonts you may have to refresh the font cache to use them in "
5152"applications. The same applies when applications installed via Guix do not "
39764ef8
JL
5153"seem to find fonts. To force rebuilding of the font cache run @code{fc-"
5154"cache -f}. The @code{fc-cache} command is provided by the @code{fontconfig} "
5155"package."
b9fe8fd6
JL
5156msgstr ""
5157
5158#. type: code{#1}
39764ef8 5159#: doc/guix.texi:1596 doc/guix.texi:19787
b9fe8fd6
JL
5160#, no-wrap
5161msgid "nss-certs"
5162msgstr ""
5163
5164#. type: Plain text
5165#: doc/guix.texi:1599
5166msgid ""
5167"The @code{nss-certs} package provides X.509 certificates, which allow "
5168"programs to authenticate Web servers accessed over HTTPS."
5169msgstr ""
5170
5171#. type: Plain text
5172#: doc/guix.texi:1604
5173msgid ""
5174"When using Guix on a foreign distro, you can install this package and define "
5175"the relevant environment variables so that packages know where to look for "
5176"certificates. @xref{X.509 Certificates}, for detailed information."
5177msgstr ""
5178
5179#. type: subsection
5180#: doc/guix.texi:1605
5181#, no-wrap
5182msgid "Emacs Packages"
5183msgstr ""
5184
5185#. type: code{#1}
5186#: doc/guix.texi:1607
5187#, no-wrap
5188msgid "emacs"
5189msgstr ""
5190
5191#. type: Plain text
5192#: doc/guix.texi:1618
5193msgid ""
5194"When you install Emacs packages with Guix, the elisp files may be placed "
39764ef8
JL
5195"either in @file{$HOME/.guix-profile/share/emacs/site-lisp/} or in sub-"
5196"directories of @file{$HOME/.guix-profile/share/emacs/site-lisp/guix.d/}. "
5197"The latter directory exists because potentially there may exist thousands of "
5198"Emacs packages and storing all their files in a single directory may not be "
b9fe8fd6
JL
5199"reliable (because of name conflicts). So we think using a separate "
5200"directory for each package is a good idea. It is very similar to how the "
5201"Emacs package system organizes the file structure (@pxref{Package Files,,, "
5202"emacs, The GNU Emacs Manual})."
5203msgstr ""
5204
5205#. type: Plain text
5206#: doc/guix.texi:1624
5207msgid ""
5208"By default, Emacs (installed with Guix) ``knows'' where these packages are "
5209"placed, so you do not need to perform any configuration. If, for some "
5210"reason, you want to avoid auto-loading Emacs packages installed with Guix, "
5211"you can do so by running Emacs with @code{--no-site-file} option "
5212"(@pxref{Init File,,, emacs, The GNU Emacs Manual})."
5213msgstr ""
5214
5215#. type: subsection
5216#: doc/guix.texi:1625
5217#, no-wrap
5218msgid "The GCC toolchain"
5219msgstr ""
5220
5221#. type: cindex
5222#: doc/guix.texi:1627
5223#, no-wrap
5224msgid "GCC"
5225msgstr ""
5226
5227#. type: cindex
5228#: doc/guix.texi:1628
5229#, no-wrap
5230msgid "ld-wrapper"
5231msgstr ""
5232
5233#. type: Plain text
5234#: doc/guix.texi:1637
5235msgid ""
5236"Guix offers individual compiler packages such as @code{gcc} but if you are "
5237"in need of a complete toolchain for compiling and linking source code what "
5238"you really want is the @code{gcc-toolchain} package. This package provides "
5239"a complete GCC toolchain for C/C++ development, including GCC itself, the "
5240"GNU C Library (headers and binaries, plus debugging symbols in the "
5241"@code{debug} output), Binutils, and a linker wrapper."
5242msgstr ""
5243
5244#. type: cindex
5245#: doc/guix.texi:1638
5246#, no-wrap
5247msgid "attempt to use impure library, error message"
5248msgstr ""
5249
5250#. type: Plain text
5251#: doc/guix.texi:1648
5252msgid ""
5253"The wrapper's purpose is to inspect the @code{-L} and @code{-l} switches "
5254"passed to the linker, add corresponding @code{-rpath} arguments, and invoke "
5255"the actual linker with this new set of arguments. By default, the linker "
5256"wrapper refuses to link to libraries outside the store to ensure "
5257"``purity''. This can be annoying when using the toolchain to link with "
5258"local libraries. To allow references to libraries outside the store you "
5259"need to define the environment variable "
5260"@code{GUIX_LD_WRAPPER_ALLOW_IMPURITIES}."
5261msgstr ""
5262
5263#. type: cindex
5264#: doc/guix.texi:1655
5265#, no-wrap
5266msgid "packages"
5267msgstr ""
5268
5269#. type: Plain text
5270#: doc/guix.texi:1660
5271msgid ""
5272"The purpose of GNU Guix is to allow users to easily install, upgrade, and "
5273"remove software packages, without having to know about their build "
5274"procedures or dependencies. Guix also goes beyond this obvious set of "
5275"features."
5276msgstr ""
5277
5278#. type: Plain text
5279#: doc/guix.texi:1668
5280msgid ""
5281"This chapter describes the main features of Guix, as well as the package "
5282"management tools it provides. Along with the command-line interface "
5283"described below (@pxref{Invoking guix package, @code{guix package}}), you "
39764ef8
JL
5284"may also use the Emacs-Guix interface (@pxref{Top,,, emacs-guix, The Emacs-"
5285"Guix Reference Manual}), after installing @code{emacs-guix} package (run "
5286"@kbd{M-x guix-help} command to start with it):"
b9fe8fd6
JL
5287msgstr ""
5288
5289#. type: example
5290#: doc/guix.texi:1671
5291#, no-wrap
5292msgid "guix package -i emacs-guix\n"
5293msgstr ""
5294
5295#. type: Plain text
5296#: doc/guix.texi:1690
5297msgid ""
5298"When using Guix, each package ends up in the @dfn{package store}, in its own "
5299"directory---something that resembles @file{/gnu/store/xxx-package-1.2}, "
5300"where @code{xxx} is a base32 string."
5301msgstr ""
5302
5303#. type: Plain text
5304#: doc/guix.texi:1695
5305msgid ""
5306"Instead of referring to these directories, users have their own "
5307"@dfn{profile}, which points to the packages that they actually want to use. "
39764ef8
JL
5308"These profiles are stored within each user's home directory, at @code{$HOME/."
5309"guix-profile}."
b9fe8fd6
JL
5310msgstr ""
5311
5312#. type: Plain text
5313#: doc/guix.texi:1703
5314msgid ""
39764ef8
JL
5315"For example, @code{alice} installs GCC 4.7.2. As a result, @file{/home/"
5316"alice/.guix-profile/bin/gcc} points to @file{/gnu/store/@dots{}-gcc-4.7.2/"
5317"bin/gcc}. Now, on the same machine, @code{bob} had already installed GCC "
5318"4.8.0. The profile of @code{bob} simply continues to point to @file{/gnu/"
5319"store/@dots{}-gcc-4.8.0/bin/gcc}---i.e., both versions of GCC coexist on the "
5320"same system without any interference."
b9fe8fd6
JL
5321msgstr ""
5322
5323#. type: Plain text
5324#: doc/guix.texi:1707
5325msgid ""
5326"The @command{guix package} command is the central tool to manage packages "
5327"(@pxref{Invoking guix package}). It operates on the per-user profiles, and "
5328"can be used @emph{with normal user privileges}."
5329msgstr ""
5330
5331#. type: cindex
5332#: doc/guix.texi:1708 doc/guix.texi:1777
5333#, no-wrap
5334msgid "transactions"
5335msgstr ""
5336
5337#. type: Plain text
5338#: doc/guix.texi:1715
5339msgid ""
5340"The command provides the obvious install, remove, and upgrade operations. "
5341"Each invocation is actually a @emph{transaction}: either the specified "
5342"operation succeeds, or nothing happens. Thus, if the @command{guix package} "
5343"process is terminated during the transaction, or if a power outage occurs "
5344"during the transaction, then the user's profile remains in its previous "
5345"state, and remains usable."
5346msgstr ""
5347
5348#. type: Plain text
5349#: doc/guix.texi:1723
5350msgid ""
5351"In addition, any package transaction may be @emph{rolled back}. So, if, for "
5352"example, an upgrade installs a new version of a package that turns out to "
5353"have a serious bug, users may roll back to the previous instance of their "
5354"profile, which was known to work well. Similarly, the global system "
5355"configuration on GuixSD is subject to transactional upgrades and roll-back "
5356"(@pxref{Using the Configuration System})."
5357msgstr ""
5358
5359#. type: Plain text
5360#: doc/guix.texi:1730
5361msgid ""
5362"All packages in the package store may be @emph{garbage-collected}. Guix can "
5363"determine which packages are still referenced by user profiles, and remove "
5364"those that are provably no longer referenced (@pxref{Invoking guix gc}). "
5365"Users may also explicitly remove old generations of their profile so that "
5366"the packages they refer to can be collected."
5367msgstr ""
5368
5369#. type: cindex
5370#: doc/guix.texi:1731
5371#, no-wrap
5372msgid "reproducibility"
5373msgstr ""
5374
5375#. type: Plain text
5376#: doc/guix.texi:1743
5377msgid ""
5378"Finally, Guix takes a @dfn{purely functional} approach to package "
5379"management, as described in the introduction (@pxref{Introduction}). Each "
5380"@file{/gnu/store} package directory name contains a hash of all the inputs "
5381"that were used to build that package---compiler, libraries, build scripts, "
5382"etc. This direct correspondence allows users to make sure a given package "
5383"installation matches the current state of their distribution. It also helps "
5384"maximize @dfn{build reproducibility}: thanks to the isolated build "
5385"environments that are used, a given build is likely to yield bit-identical "
5386"files when performed on different machines (@pxref{Invoking guix-daemon, "
5387"container})."
5388msgstr ""
5389
5390#. type: Plain text
5391#: doc/guix.texi:1754
5392msgid ""
5393"This foundation allows Guix to support @dfn{transparent binary/source "
5394"deployment}. When a pre-built binary for a @file{/gnu/store} item is "
5395"available from an external source---a @dfn{substitute}, Guix just downloads "
5396"it and unpacks it; otherwise, it builds the package from source, locally "
5397"(@pxref{Substitutes}). Because build results are usually bit-for-bit "
5398"reproducible, users do not have to trust servers that provide substitutes: "
5399"they can force a local build and @emph{challenge} providers (@pxref{Invoking "
5400"guix challenge})."
5401msgstr ""
5402
5403#. type: Plain text
5404#: doc/guix.texi:1760
5405msgid ""
5406"Control over the build environment is a feature that is also useful for "
5407"developers. The @command{guix environment} command allows developers of a "
5408"package to quickly set up the right development environment for their "
5409"package, without having to manually install the dependencies of the package "
5410"into their profile (@pxref{Invoking guix environment})."
5411msgstr ""
5412
5413#. type: section
5414#: doc/guix.texi:1762
5415#, no-wrap
5416msgid "Invoking @command{guix package}"
5417msgstr ""
5418
5419#. type: cindex
5420#: doc/guix.texi:1764
5421#, no-wrap
5422msgid "installing packages"
5423msgstr ""
5424
5425#. type: cindex
5426#: doc/guix.texi:1765
5427#, no-wrap
5428msgid "removing packages"
5429msgstr ""
5430
5431#. type: cindex
5432#: doc/guix.texi:1766
5433#, no-wrap
5434msgid "package installation"
5435msgstr ""
5436
5437#. type: cindex
5438#: doc/guix.texi:1767
5439#, no-wrap
5440msgid "package removal"
5441msgstr ""
5442
5443#. type: Plain text
5444#: doc/guix.texi:1773
5445msgid ""
5446"The @command{guix package} command is the tool that allows users to install, "
5447"upgrade, and remove packages, as well as rolling back to previous "
5448"configurations. It operates only on the user's own profile, and works with "
5449"normal user privileges (@pxref{Features}). Its syntax is:"
5450msgstr ""
5451
5452#. type: example
5453#: doc/guix.texi:1776
5454#, no-wrap
5455msgid "guix package @var{options}\n"
5456msgstr ""
5457
5458#. type: Plain text
5459#: doc/guix.texi:1782
5460msgid ""
5461"Primarily, @var{options} specifies the operations to be performed during the "
5462"transaction. Upon completion, a new profile is created, but previous "
5463"@dfn{generations} of the profile remain available, should the user want to "
5464"roll back."
5465msgstr ""
5466
5467#. type: Plain text
5468#: doc/guix.texi:1785
5469msgid ""
39764ef8
JL
5470"For example, to remove @code{lua} and install @code{guile} and @code{guile-"
5471"cairo} in a single transaction:"
b9fe8fd6
JL
5472msgstr ""
5473
5474#. type: example
5475#: doc/guix.texi:1788
5476#, no-wrap
5477msgid "guix package -r lua -i guile guile-cairo\n"
5478msgstr ""
5479
5480#. type: Plain text
5481#: doc/guix.texi:1794
5482msgid ""
5483"@command{guix package} also supports a @dfn{declarative approach} whereby "
5484"the user specifies the exact set of packages to be available and passes it "
39764ef8
JL
5485"@i{via} the @option{--manifest} option (@pxref{profile-manifest, @option{--"
5486"manifest}})."
b9fe8fd6
JL
5487msgstr ""
5488
5489#. type: cindex
5490#: doc/guix.texi:1795
5491#, no-wrap
5492msgid "profile"
5493msgstr ""
5494
5495#. type: Plain text
5496#: doc/guix.texi:1801
5497msgid ""
5498"For each user, a symlink to the user's default profile is automatically "
5499"created in @file{$HOME/.guix-profile}. This symlink always points to the "
5500"current generation of the user's default profile. Thus, users can add "
5501"@file{$HOME/.guix-profile/bin} to their @code{PATH} environment variable, "
5502"and so on."
5503msgstr ""
5504
5505#. type: cindex
5506#: doc/guix.texi:1801 doc/guix.texi:1998
5507#, no-wrap
5508msgid "search paths"
5509msgstr ""
5510
5511#. type: Plain text
5512#: doc/guix.texi:1806
5513msgid ""
5514"If you are not using the Guix System Distribution, consider adding the "
5515"following lines to your @file{~/.bash_profile} (@pxref{Bash Startup Files,,, "
5516"bash, The GNU Bash Reference Manual}) so that newly-spawned shells get all "
5517"the right environment variable definitions:"
5518msgstr ""
5519
5520#. type: example
5521#: doc/guix.texi:1810
5522#, no-wrap
5523msgid ""
5524"GUIX_PROFILE=\"$HOME/.guix-profile\" ; \\\n"
5525"source \"$HOME/.guix-profile/etc/profile\"\n"
5526msgstr ""
5527
5528#. type: Plain text
5529#: doc/guix.texi:1821
5530msgid ""
5531"In a multi-user setup, user profiles are stored in a place registered as a "
5532"@dfn{garbage-collector root}, which @file{$HOME/.guix-profile} points to "
5533"(@pxref{Invoking guix gc}). That directory is normally "
5534"@code{@var{localstatedir}/guix/profiles/per-user/@var{user}}, where "
39764ef8
JL
5535"@var{localstatedir} is the value passed to @code{configure} as @code{--"
5536"localstatedir}, and @var{user} is the user name. The @file{per-user} "
5537"directory is created when @command{guix-daemon} is started, and the "
5538"@var{user} sub-directory is created by @command{guix package}."
b9fe8fd6
JL
5539msgstr ""
5540
5541#. type: Plain text
5542#: doc/guix.texi:1823
5543msgid "The @var{options} can be among the following:"
5544msgstr ""
5545
5546#. type: item
5547#: doc/guix.texi:1826
5548#, no-wrap
5549msgid "--install=@var{package} @dots{}"
5550msgstr ""
5551
5552#. type: itemx
5553#: doc/guix.texi:1827
5554#, no-wrap
5555msgid "-i @var{package} @dots{}"
5556msgstr ""
5557
5558#. type: table
5559#: doc/guix.texi:1829
5560msgid "Install the specified @var{package}s."
5561msgstr ""
5562
5563#. type: table
5564#: doc/guix.texi:1834
5565msgid ""
5566"Each @var{package} may specify either a simple package name, such as "
5567"@code{guile}, or a package name followed by an at-sign and version number, "
5568"such as @code{guile@@1.8.8} or simply @code{guile@@1.8} (in the latter case, "
5569"the newest version prefixed by @code{1.8} is selected.)"
5570msgstr ""
5571
5572#. type: table
5573#: doc/guix.texi:1842
5574msgid ""
5575"If no version number is specified, the newest available version will be "
5576"selected. In addition, @var{package} may contain a colon, followed by the "
5577"name of one of the outputs of the package, as in @code{gcc:doc} or "
5578"@code{binutils@@2.22:lib} (@pxref{Packages with Multiple Outputs}). "
5579"Packages with a corresponding name (and optionally version) are searched for "
5580"among the GNU distribution modules (@pxref{Package Modules})."
5581msgstr ""
5582
5583#. type: cindex
5584#: doc/guix.texi:1843
5585#, no-wrap
5586msgid "propagated inputs"
5587msgstr ""
5588
5589#. type: table
5590#: doc/guix.texi:1849
5591msgid ""
5592"Sometimes packages have @dfn{propagated inputs}: these are dependencies that "
39764ef8
JL
5593"automatically get installed along with the required package (@pxref{package-"
5594"propagated-inputs, @code{propagated-inputs} in @code{package} objects}, for "
5595"information about propagated inputs in package definitions)."
b9fe8fd6
JL
5596msgstr ""
5597
5598#. type: anchor{#1}
5599#: doc/guix.texi:1856
5600msgid "package-cmd-propagated-inputs"
5601msgstr ""
5602
5603#. type: table
5604#: doc/guix.texi:1856
5605msgid ""
5606"An example is the GNU MPC library: its C header files refer to those of the "
5607"GNU MPFR library, which in turn refer to those of the GMP library. Thus, "
5608"when installing MPC, the MPFR and GMP libraries also get installed in the "
5609"profile; removing MPC also removes MPFR and GMP---unless they had also been "
5610"explicitly installed by the user."
5611msgstr ""
5612
5613#. type: table
5614#: doc/guix.texi:1861
5615msgid ""
5616"Besides, packages sometimes rely on the definition of environment variables "
5617"for their search paths (see explanation of @code{--search-paths} below). "
5618"Any missing or possibly incorrect environment variable definitions are "
5619"reported here."
5620msgstr ""
5621
5622#. type: item
5623#: doc/guix.texi:1862
5624#, no-wrap
5625msgid "--install-from-expression=@var{exp}"
5626msgstr ""
5627
5628#. type: itemx
5629#: doc/guix.texi:1863
5630#, no-wrap
5631msgid "-e @var{exp}"
5632msgstr ""
5633
5634#. type: table
5635#: doc/guix.texi:1865
5636msgid "Install the package @var{exp} evaluates to."
5637msgstr ""
5638
5639#. type: table
5640#: doc/guix.texi:1870
5641msgid ""
5642"@var{exp} must be a Scheme expression that evaluates to a @code{<package>} "
5643"object. This option is notably useful to disambiguate between same-named "
5644"variants of a package, with expressions such as @code{(@@ (gnu packages "
5645"base) guile-final)}."
5646msgstr ""
5647
5648#. type: table
5649#: doc/guix.texi:1874
5650msgid ""
5651"Note that this option installs the first output of the specified package, "
39764ef8
JL
5652"which may be insufficient when needing a specific output of a multiple-"
5653"output package."
b9fe8fd6
JL
5654msgstr ""
5655
5656#. type: item
5657#: doc/guix.texi:1875
5658#, no-wrap
5659msgid "--install-from-file=@var{file}"
5660msgstr ""
5661
5662#. type: itemx
5663#: doc/guix.texi:1876 doc/guix.texi:5699
5664#, no-wrap
5665msgid "-f @var{file}"
5666msgstr ""
5667
5668#. type: table
5669#: doc/guix.texi:1878
5670msgid "Install the package that the code within @var{file} evaluates to."
5671msgstr ""
5672
5673#. type: table
5674#: doc/guix.texi:1881 doc/guix.texi:7283
5675msgid ""
5676"As an example, @var{file} might contain a definition like this "
5677"(@pxref{Defining Packages}):"
5678msgstr ""
5679
5680#. type: example
5681#: doc/guix.texi:1884 doc/guix.texi:5709
5682#, no-wrap
5683msgid "@verbatiminclude package-hello.scm\n"
5684msgstr ""
5685
5686#. type: table
5687#: doc/guix.texi:1890
5688msgid ""
5689"Developers may find it useful to include such a @file{guix.scm} file in the "
5690"root of their project source tree that can be used to test development "
5691"snapshots and create reproducible development environments (@pxref{Invoking "
5692"guix environment})."
5693msgstr ""
5694
5695#. type: item
5696#: doc/guix.texi:1891
5697#, no-wrap
5698msgid "--remove=@var{package} @dots{}"
5699msgstr ""
5700
5701#. type: itemx
5702#: doc/guix.texi:1892
5703#, no-wrap
5704msgid "-r @var{package} @dots{}"
5705msgstr ""
5706
5707#. type: table
5708#: doc/guix.texi:1894
5709msgid "Remove the specified @var{package}s."
5710msgstr ""
5711
5712#. type: table
5713#: doc/guix.texi:1899
5714msgid ""
39764ef8
JL
5715"As for @code{--install}, each @var{package} may specify a version number and/"
5716"or output name in addition to the package name. For instance, @code{-r "
b9fe8fd6
JL
5717"glibc:debug} would remove the @code{debug} output of @code{glibc}."
5718msgstr ""
5719
5720#. type: item
5721#: doc/guix.texi:1900
5722#, no-wrap
5723msgid "--upgrade[=@var{regexp} @dots{}]"
5724msgstr ""
5725
5726#. type: itemx
5727#: doc/guix.texi:1901
5728#, no-wrap
5729msgid "-u [@var{regexp} @dots{}]"
5730msgstr ""
5731
5732#. type: cindex
5733#: doc/guix.texi:1902
5734#, no-wrap
5735msgid "upgrading packages"
5736msgstr ""
5737
5738#. type: table
5739#: doc/guix.texi:1906
5740msgid ""
5741"Upgrade all the installed packages. If one or more @var{regexp}s are "
5742"specified, upgrade only installed packages whose name matches a "
5743"@var{regexp}. Also see the @code{--do-not-upgrade} option below."
5744msgstr ""
5745
5746#. type: table
5747#: doc/guix.texi:1911
5748msgid ""
5749"Note that this upgrades package to the latest version of packages found in "
5750"the distribution currently installed. To update your distribution, you "
5751"should regularly run @command{guix pull} (@pxref{Invoking guix pull})."
5752msgstr ""
5753
5754#. type: item
5755#: doc/guix.texi:1912
5756#, no-wrap
5757msgid "--do-not-upgrade[=@var{regexp} @dots{}]"
5758msgstr ""
5759
5760#. type: table
5761#: doc/guix.texi:1917
5762msgid ""
5763"When used together with the @code{--upgrade} option, do @emph{not} upgrade "
5764"any packages whose name matches a @var{regexp}. For example, to upgrade all "
5765"packages in the current profile except those containing the substring "
5766"``emacs'':"
5767msgstr ""
5768
5769#. type: example
5770#: doc/guix.texi:1920
5771#, no-wrap
5772msgid "$ guix package --upgrade . --do-not-upgrade emacs\n"
5773msgstr ""
5774
5775#. type: anchor{#1}
5776#: doc/guix.texi:1922
5777#, no-wrap
5778msgid "profile-manifest"
5779msgstr ""
5780
5781#. type: item
39764ef8
JL
5782#: doc/guix.texi:1922 doc/guix.texi:2877 doc/guix.texi:6577 doc/guix.texi:7288
5783#: doc/guix.texi:7972
b9fe8fd6
JL
5784#, no-wrap
5785msgid "--manifest=@var{file}"
5786msgstr ""
5787
5788#. type: itemx
5789#: doc/guix.texi:1923 doc/guix.texi:2878 doc/guix.texi:6578 doc/guix.texi:7289
5790#, no-wrap
5791msgid "-m @var{file}"
5792msgstr ""
5793
5794#. type: cindex
5795#: doc/guix.texi:1924
5796#, no-wrap
5797msgid "profile declaration"
5798msgstr ""
5799
5800#. type: cindex
5801#: doc/guix.texi:1925
5802#, no-wrap
5803msgid "profile manifest"
5804msgstr ""
5805
5806#. type: table
5807#: doc/guix.texi:1928
5808msgid ""
5809"Create a new generation of the profile from the manifest object returned by "
5810"the Scheme code in @var{file}."
5811msgstr ""
5812
5813#. type: table
5814#: doc/guix.texi:1934
5815msgid ""
5816"This allows you to @emph{declare} the profile's contents rather than "
5817"constructing it through a sequence of @code{--install} and similar "
5818"commands. The advantage is that @var{file} can be put under version "
5819"control, copied to different machines to reproduce the same profile, and so "
5820"on."
5821msgstr ""
5822
5823#. type: table
5824#: doc/guix.texi:1938
5825msgid ""
5826"@var{file} must return a @dfn{manifest} object, which is roughly a list of "
5827"packages:"
5828msgstr ""
5829
5830#. type: findex
5831#: doc/guix.texi:1939
5832#, no-wrap
5833msgid "packages->manifest"
5834msgstr ""
5835
5836#. type: example
5837#: doc/guix.texi:1942
5838#, no-wrap
5839msgid ""
5840"(use-package-modules guile emacs)\n"
5841"\n"
5842msgstr ""
5843
5844#. type: example
5845#: doc/guix.texi:1948
5846#, no-wrap
5847msgid ""
5848"(packages->manifest\n"
5849" (list emacs\n"
5850" guile-2.0\n"
5851" ;; Use a specific package output.\n"
5852" (list guile-2.0 \"debug\")))\n"
5853msgstr ""
5854
5855#. type: findex
5856#: doc/guix.texi:1950
5857#, no-wrap
5858msgid "specifications->manifest"
5859msgstr ""
5860
5861#. type: table
5862#: doc/guix.texi:1957
5863msgid ""
5864"In this example we have to know which modules define the @code{emacs} and "
5865"@code{guile-2.0} variables to provide the right @code{use-package-modules} "
5866"line, which can be cumbersome. We can instead provide regular package "
5867"specifications and let @code{specifications->manifest} look up the "
5868"corresponding package objects, like this:"
5869msgstr ""
5870
5871#. type: example
5872#: doc/guix.texi:1961
5873#, no-wrap
5874msgid ""
5875"(specifications->manifest\n"
5876" '(\"emacs\" \"guile@@2.2\" \"guile@@2.2:debug\"))\n"
5877msgstr ""
5878
5879#. type: item
5880#: doc/guix.texi:1963
5881#, no-wrap
5882msgid "--roll-back"
5883msgstr ""
5884
5885#. type: cindex
39764ef8 5886#: doc/guix.texi:1964 doc/guix.texi:20427
b9fe8fd6
JL
5887#, no-wrap
5888msgid "rolling back"
5889msgstr ""
5890
5891#. type: cindex
5892#: doc/guix.texi:1965
5893#, no-wrap
5894msgid "undoing transactions"
5895msgstr ""
5896
5897#. type: cindex
5898#: doc/guix.texi:1966
5899#, no-wrap
5900msgid "transactions, undoing"
5901msgstr ""
5902
5903#. type: table
5904#: doc/guix.texi:1969
5905msgid ""
5906"Roll back to the previous @dfn{generation} of the profile---i.e., undo the "
5907"last transaction."
5908msgstr ""
5909
5910#. type: table
5911#: doc/guix.texi:1972
5912msgid ""
5913"When combined with options such as @code{--install}, roll back occurs before "
5914"any other actions."
5915msgstr ""
5916
5917#. type: table
5918#: doc/guix.texi:1976
5919msgid ""
5920"When rolling back from the first generation that actually contains installed "
5921"packages, the profile is made to point to the @dfn{zeroth generation}, which "
5922"contains no files apart from its own metadata."
5923msgstr ""
5924
5925#. type: table
5926#: doc/guix.texi:1980
5927msgid ""
5928"After having rolled back, installing, removing, or upgrading packages "
5929"overwrites previous future generations. Thus, the history of the "
5930"generations in a profile is always linear."
5931msgstr ""
5932
5933#. type: item
5934#: doc/guix.texi:1981
5935#, no-wrap
5936msgid "--switch-generation=@var{pattern}"
5937msgstr ""
5938
5939#. type: itemx
5940#: doc/guix.texi:1982
5941#, no-wrap
5942msgid "-S @var{pattern}"
5943msgstr ""
5944
5945#. type: cindex
39764ef8 5946#: doc/guix.texi:1983 doc/guix.texi:2181 doc/guix.texi:20385
b9fe8fd6
JL
5947#, no-wrap
5948msgid "generations"
5949msgstr ""
5950
5951#. type: table
5952#: doc/guix.texi:1985
5953msgid "Switch to a particular generation defined by @var{pattern}."
5954msgstr ""
5955
5956#. type: table
5957#: doc/guix.texi:1991
5958msgid ""
39764ef8
JL
5959"@var{pattern} may be either a generation number or a number prefixed with ``"
5960"+'' or ``-''. The latter means: move forward/backward by a specified number "
5961"of generations. For example, if you want to return to the latest generation "
5962"after @code{--roll-back}, use @code{--switch-generation=+1}."
b9fe8fd6
JL
5963msgstr ""
5964
5965#. type: table
5966#: doc/guix.texi:1996
5967msgid ""
5968"The difference between @code{--roll-back} and @code{--switch-generation=-1} "
5969"is that @code{--switch-generation} will not make a zeroth generation, so if "
5970"a specified generation does not exist, the current generation will not be "
5971"changed."
5972msgstr ""
5973
5974#. type: item
5975#: doc/guix.texi:1997
5976#, no-wrap
5977msgid "--search-paths[=@var{kind}]"
5978msgstr ""
5979
5980#. type: table
5981#: doc/guix.texi:2003
5982msgid ""
5983"Report environment variable definitions, in Bash syntax, that may be needed "
5984"in order to use the set of installed packages. These environment variables "
5985"are used to specify @dfn{search paths} for files used by some of the "
5986"installed packages."
5987msgstr ""
5988
5989#. type: table
5990#: doc/guix.texi:2011
5991msgid ""
5992"For example, GCC needs the @code{CPATH} and @code{LIBRARY_PATH} environment "
5993"variables to be defined so it can look for headers and libraries in the "
5994"user's profile (@pxref{Environment Variables,,, gcc, Using the GNU Compiler "
5995"Collection (GCC)}). If GCC and, say, the C library are installed in the "
5996"profile, then @code{--search-paths} will suggest setting these variables to "
5997"@code{@var{profile}/include} and @code{@var{profile}/lib}, respectively."
5998msgstr ""
5999
6000#. type: table
6001#: doc/guix.texi:2014
39764ef8
JL
6002msgid ""
6003"The typical use case is to define these environment variables in the shell:"
b9fe8fd6
JL
6004msgstr ""
6005
6006#. type: example
6007#: doc/guix.texi:2017
6008#, no-wrap
6009msgid "$ eval `guix package --search-paths`\n"
6010msgstr ""
6011
6012#. type: table
6013#: doc/guix.texi:2023
6014msgid ""
6015"@var{kind} may be one of @code{exact}, @code{prefix}, or @code{suffix}, "
6016"meaning that the returned environment variable definitions will either be "
6017"exact settings, or prefixes or suffixes of the current value of these "
6018"variables. When omitted, @var{kind} defaults to @code{exact}."
6019msgstr ""
6020
6021#. type: table
6022#: doc/guix.texi:2026
6023msgid ""
6024"This option can also be used to compute the @emph{combined} search paths of "
6025"several profiles. Consider this example:"
6026msgstr ""
6027
6028#. type: example
6029#: doc/guix.texi:2031
6030#, no-wrap
6031msgid ""
6032"$ guix package -p foo -i guile\n"
6033"$ guix package -p bar -i guile-json\n"
6034"$ guix package -p foo -p bar --search-paths\n"
6035msgstr ""
6036
6037#. type: table
6038#: doc/guix.texi:2036
6039msgid ""
6040"The last command above reports about the @code{GUILE_LOAD_PATH} variable, "
6041"even though, taken individually, neither @file{foo} nor @file{bar} would "
6042"lead to that recommendation."
6043msgstr ""
6044
6045#. type: item
6046#: doc/guix.texi:2038
6047#, no-wrap
6048msgid "--profile=@var{profile}"
6049msgstr ""
6050
6051#. type: itemx
6052#: doc/guix.texi:2039
6053#, no-wrap
6054msgid "-p @var{profile}"
6055msgstr ""
6056
6057#. type: table
6058#: doc/guix.texi:2041
6059msgid "Use @var{profile} instead of the user's default profile."
6060msgstr ""
6061
6062#. type: cindex
6063#: doc/guix.texi:2042
6064#, no-wrap
6065msgid "collisions, in a profile"
6066msgstr ""
6067
6068#. type: cindex
6069#: doc/guix.texi:2043
6070#, no-wrap
6071msgid "colliding packages in profiles"
6072msgstr ""
6073
6074#. type: cindex
6075#: doc/guix.texi:2044
6076#, no-wrap
6077msgid "profile collisions"
6078msgstr ""
6079
6080#. type: item
6081#: doc/guix.texi:2045
6082#, no-wrap
6083msgid "--allow-collisions"
6084msgstr ""
6085
6086#. type: table
6087#: doc/guix.texi:2047
6088msgid "Allow colliding packages in the new profile. Use at your own risk!"
6089msgstr ""
6090
6091#. type: table
6092#: doc/guix.texi:2051
6093msgid ""
6094"By default, @command{guix package} reports as an error @dfn{collisions} in "
6095"the profile. Collisions happen when two or more different versions or "
6096"variants of a given package end up in the profile."
6097msgstr ""
6098
6099#. type: item
6100#: doc/guix.texi:2052 doc/guix.texi:2754 doc/guix.texi:7777
6101#, no-wrap
6102msgid "--verbose"
6103msgstr ""
6104
6105#. type: table
6106#: doc/guix.texi:2055
6107msgid ""
6108"Produce verbose output. In particular, emit the build log of the "
6109"environment on the standard error port."
6110msgstr ""
6111
6112#. type: item
6113#: doc/guix.texi:2056 doc/guix.texi:2773 doc/guix.texi:2931
6114#, no-wrap
6115msgid "--bootstrap"
6116msgstr ""
6117
6118#. type: table
6119#: doc/guix.texi:2059
6120msgid ""
6121"Use the bootstrap Guile to build the profile. This option is only useful to "
6122"distribution developers."
6123msgstr ""
6124
6125#. type: Plain text
6126#: doc/guix.texi:2065
6127msgid ""
6128"In addition to these actions, @command{guix package} supports the following "
6129"options to query the current state of a profile, or the availability of "
6130"packages:"
6131msgstr ""
6132
6133#. type: item
6134#: doc/guix.texi:2068
6135#, no-wrap
6136msgid "--search=@var{regexp}"
6137msgstr ""
6138
6139#. type: itemx
6140#: doc/guix.texi:2069
6141#, no-wrap
6142msgid "-s @var{regexp}"
6143msgstr ""
6144
6145#. type: cindex
6146#: doc/guix.texi:2070
6147#, no-wrap
6148msgid "searching for packages"
6149msgstr ""
6150
6151#. type: table
6152#: doc/guix.texi:2075
6153msgid ""
6154"List the available packages whose name, synopsis, or description matches "
6155"@var{regexp}, sorted by relevance. Print all the metadata of matching "
6156"packages in @code{recutils} format (@pxref{Top, GNU recutils databases,, "
6157"recutils, GNU recutils manual})."
6158msgstr ""
6159
6160#. type: table
6161#: doc/guix.texi:2078
6162msgid ""
6163"This allows specific fields to be extracted using the @command{recsel} "
6164"command, for instance:"
6165msgstr ""
6166
6167#. type: example
6168#: doc/guix.texi:2084
6169#, no-wrap
6170msgid ""
6171"$ guix package -s malloc | recsel -p name,version,relevance\n"
6172"name: jemalloc\n"
6173"version: 4.5.0\n"
6174"relevance: 6\n"
6175"\n"
6176msgstr ""
6177
6178#. type: example
6179#: doc/guix.texi:2088
6180#, no-wrap
6181msgid ""
6182"name: glibc\n"
6183"version: 2.25\n"
6184"relevance: 1\n"
6185"\n"
6186msgstr ""
6187
6188#. type: example
6189#: doc/guix.texi:2092
6190#, no-wrap
6191msgid ""
6192"name: libgc\n"
6193"version: 7.6.0\n"
6194"relevance: 1\n"
6195msgstr ""
6196
6197#. type: table
6198#: doc/guix.texi:2096
6199msgid ""
6200"Similarly, to show the name of all the packages available under the terms of "
6201"the GNU@tie{}LGPL version 3:"
6202msgstr ""
6203
6204#. type: example
6205#: doc/guix.texi:2100
6206#, no-wrap
6207msgid ""
6208"$ guix package -s \"\" | recsel -p name -e 'license ~ \"LGPL 3\"'\n"
6209"name: elfutils\n"
6210"\n"
6211msgstr ""
6212
6213#. type: example
6214#: doc/guix.texi:2103
6215#, no-wrap
6216msgid ""
6217"name: gmp\n"
6218"@dots{}\n"
6219msgstr ""
6220
6221#. type: table
6222#: doc/guix.texi:2108
6223msgid ""
6224"It is also possible to refine search results using several @code{-s} flags. "
6225"For example, the following command returns a list of board games:"
6226msgstr ""
6227
6228#. type: example
6229#: doc/guix.texi:2113
6230#, no-wrap
6231msgid ""
6232"$ guix package -s '\\<board\\>' -s game | recsel -p name\n"
6233"name: gnubg\n"
6234"@dots{}\n"
6235msgstr ""
6236
6237#. type: table
6238#: doc/guix.texi:2119
6239msgid ""
6240"If we were to omit @code{-s game}, we would also get software packages that "
6241"deal with printed circuit boards; removing the angle brackets around "
6242"@code{board} would further add packages that have to do with keyboards."
6243msgstr ""
6244
6245#. type: table
6246#: doc/guix.texi:2123
6247msgid ""
6248"And now for a more elaborate example. The following command searches for "
6249"cryptographic libraries, filters out Haskell, Perl, Python, and Ruby "
6250"libraries, and prints the name and synopsis of the matching packages:"
6251msgstr ""
6252
6253#. type: example
6254#: doc/guix.texi:2127
6255#, no-wrap
6256msgid ""
6257"$ guix package -s crypto -s library | \\\n"
6258" recsel -e '! (name ~ \"^(ghc|perl|python|ruby)\")' -p name,synopsis\n"
6259msgstr ""
6260
6261#. type: table
6262#: doc/guix.texi:2132
6263msgid ""
6264"@xref{Selection Expressions,,, recutils, GNU recutils manual}, for more "
6265"information on @dfn{selection expressions} for @code{recsel -e}."
6266msgstr ""
6267
6268#. type: item
6269#: doc/guix.texi:2133
6270#, no-wrap
6271msgid "--show=@var{package}"
6272msgstr ""
6273
6274#. type: table
6275#: doc/guix.texi:2137
6276msgid ""
6277"Show details about @var{package}, taken from the list of available packages, "
6278"in @code{recutils} format (@pxref{Top, GNU recutils databases,, recutils, "
6279"GNU recutils manual})."
6280msgstr ""
6281
6282#. type: example
6283#: doc/guix.texi:2142
6284#, no-wrap
6285msgid ""
6286"$ guix package --show=python | recsel -p name,version\n"
6287"name: python\n"
6288"version: 2.7.6\n"
6289"\n"
6290msgstr ""
6291
6292#. type: example
6293#: doc/guix.texi:2145
6294#, no-wrap
6295msgid ""
6296"name: python\n"
6297"version: 3.3.5\n"
6298msgstr ""
6299
6300#. type: table
6301#: doc/guix.texi:2149
6302msgid ""
6303"You may also specify the full name of a package to only get details about a "
6304"specific version of it:"
6305msgstr ""
6306
6307#. type: example
6308#: doc/guix.texi:2153
6309#, no-wrap
6310msgid ""
6311"$ guix package --show=python@@3.4 | recsel -p name,version\n"
6312"name: python\n"
6313"version: 3.4.3\n"
6314msgstr ""
6315
6316#. type: item
6317#: doc/guix.texi:2157
6318#, no-wrap
6319msgid "--list-installed[=@var{regexp}]"
6320msgstr ""
6321
6322#. type: itemx
6323#: doc/guix.texi:2158
6324#, no-wrap
6325msgid "-I [@var{regexp}]"
6326msgstr ""
6327
6328#. type: table
6329#: doc/guix.texi:2162
6330msgid ""
6331"List the currently installed packages in the specified profile, with the "
6332"most recently installed packages shown last. When @var{regexp} is "
6333"specified, list only installed packages whose name matches @var{regexp}."
6334msgstr ""
6335
6336#. type: table
6337#: doc/guix.texi:2168
6338msgid ""
6339"For each installed package, print the following items, separated by tabs: "
6340"the package name, its version string, the part of the package that is "
6341"installed (for instance, @code{out} for the default output, @code{include} "
6342"for its headers, etc.), and the path of this package in the store."
6343msgstr ""
6344
6345#. type: item
6346#: doc/guix.texi:2169
6347#, no-wrap
6348msgid "--list-available[=@var{regexp}]"
6349msgstr ""
6350
6351#. type: itemx
6352#: doc/guix.texi:2170
6353#, no-wrap
6354msgid "-A [@var{regexp}]"
6355msgstr ""
6356
6357#. type: table
6358#: doc/guix.texi:2174
6359msgid ""
6360"List packages currently available in the distribution for this system "
6361"(@pxref{GNU Distribution}). When @var{regexp} is specified, list only "
6362"installed packages whose name matches @var{regexp}."
6363msgstr ""
6364
6365#. type: table
6366#: doc/guix.texi:2178
6367msgid ""
6368"For each package, print the following items separated by tabs: its name, its "
6369"version string, the parts of the package (@pxref{Packages with Multiple "
6370"Outputs}), and the source location of its definition."
6371msgstr ""
6372
6373#. type: item
6374#: doc/guix.texi:2179
6375#, no-wrap
6376msgid "--list-generations[=@var{pattern}]"
6377msgstr ""
6378
6379#. type: itemx
6380#: doc/guix.texi:2180
6381#, no-wrap
6382msgid "-l [@var{pattern}]"
6383msgstr ""
6384
6385#. type: table
6386#: doc/guix.texi:2186
6387msgid ""
6388"Return a list of generations along with their creation dates; for each "
6389"generation, show the installed packages, with the most recently installed "
6390"packages shown last. Note that the zeroth generation is never shown."
6391msgstr ""
6392
6393#. type: table
6394#: doc/guix.texi:2191
6395msgid ""
6396"For each installed package, print the following items, separated by tabs: "
6397"the name of a package, its version string, the part of the package that is "
6398"installed (@pxref{Packages with Multiple Outputs}), and the location of this "
6399"package in the store."
6400msgstr ""
6401
6402#. type: table
6403#: doc/guix.texi:2194
6404msgid ""
6405"When @var{pattern} is used, the command returns only matching generations. "
6406"Valid patterns include:"
6407msgstr ""
6408
6409#. type: item
6410#: doc/guix.texi:2196
6411#, no-wrap
6412msgid "@emph{Integers and comma-separated integers}. Both patterns denote"
6413msgstr ""
6414
6415#. type: itemize
6416#: doc/guix.texi:2199
6417msgid ""
6418"generation numbers. For instance, @code{--list-generations=1} returns the "
6419"first one."
6420msgstr ""
6421
6422#. type: itemize
6423#: doc/guix.texi:2202
6424msgid ""
6425"And @code{--list-generations=1,8,2} outputs three generations in the "
6426"specified order. Neither spaces nor trailing commas are allowed."
6427msgstr ""
6428
6429#. type: item
6430#: doc/guix.texi:2203
6431#, no-wrap
6432msgid "@emph{Ranges}. @code{--list-generations=2..9} prints the"
6433msgstr ""
6434
6435#. type: itemize
6436#: doc/guix.texi:2206
6437msgid ""
6438"specified generations and everything in between. Note that the start of a "
6439"range must be smaller than its end."
6440msgstr ""
6441
6442#. type: itemize
6443#: doc/guix.texi:2210
6444msgid ""
39764ef8
JL
6445"It is also possible to omit the endpoint. For example, @code{--list-"
6446"generations=2..}, returns all generations starting from the second one."
b9fe8fd6
JL
6447msgstr ""
6448
6449#. type: item
6450#: doc/guix.texi:2211
6451#, no-wrap
6452msgid "@emph{Durations}. You can also get the last @emph{N}@tie{}days, weeks,"
6453msgstr ""
6454
6455#. type: itemize
6456#: doc/guix.texi:2215
6457msgid ""
6458"or months by passing an integer along with the first letter of the "
6459"duration. For example, @code{--list-generations=20d} lists generations that "
6460"are up to 20 days old."
6461msgstr ""
6462
6463#. type: item
6464#: doc/guix.texi:2217
6465#, no-wrap
6466msgid "--delete-generations[=@var{pattern}]"
6467msgstr ""
6468
6469#. type: itemx
6470#: doc/guix.texi:2218
6471#, no-wrap
6472msgid "-d [@var{pattern}]"
6473msgstr ""
6474
6475#. type: table
6476#: doc/guix.texi:2221
6477msgid ""
39764ef8 6478"When @var{pattern} is omitted, delete all generations except the current one."
b9fe8fd6
JL
6479msgstr ""
6480
6481#. type: table
6482#: doc/guix.texi:2227
6483msgid ""
6484"This command accepts the same patterns as @option{--list-generations}. When "
6485"@var{pattern} is specified, delete the matching generations. When "
6486"@var{pattern} specifies a duration, generations @emph{older} than the "
6487"specified duration match. For instance, @code{--delete-generations=1m} "
6488"deletes generations that are more than one month old."
6489msgstr ""
6490
6491#. type: table
6492#: doc/guix.texi:2230
6493msgid ""
6494"If the current generation matches, it is @emph{not} deleted. Also, the "
6495"zeroth generation is never deleted."
6496msgstr ""
6497
6498#. type: table
6499#: doc/guix.texi:2233
6500msgid ""
6501"Note that deleting generations prevents rolling back to them. Consequently, "
6502"this command must be used with care."
6503msgstr ""
6504
6505#. type: Plain text
6506#: doc/guix.texi:2244
6507msgid ""
6508"Finally, since @command{guix package} may actually start build processes, it "
6509"supports all the common build options (@pxref{Common Build Options}). It "
6510"also supports package transformation options, such as @option{--with-source} "
6511"(@pxref{Package Transformation Options}). However, note that package "
6512"transformations are lost when upgrading; to preserve transformations across "
6513"upgrades, you should define your own package variant in a Guile module and "
6514"add it to @code{GUIX_PACKAGE_PATH} (@pxref{Defining Packages})."
6515msgstr ""
6516
6517#. type: cindex
6518#: doc/guix.texi:2249
6519#, no-wrap
6520msgid "pre-built binaries"
6521msgstr ""
6522
6523#. type: Plain text
6524#: doc/guix.texi:2255
6525msgid ""
6526"Guix supports transparent source/binary deployment, which means that it can "
6527"either build things locally, or download pre-built items from a server, or "
6528"both. We call these pre-built items @dfn{substitutes}---they are "
6529"substitutes for local build results. In many cases, downloading a "
6530"substitute is much faster than building things locally."
6531msgstr ""
6532
6533#. type: Plain text
6534#: doc/guix.texi:2260
6535msgid ""
6536"Substitutes can be anything resulting from a derivation build "
6537"(@pxref{Derivations}). Of course, in the common case, they are pre-built "
6538"package binaries, but source tarballs, for instance, which also result from "
6539"derivation builds, can be available as substitutes."
6540msgstr ""
6541
6542#. type: cindex
6543#: doc/guix.texi:2273
6544#, no-wrap
6545msgid "hydra"
6546msgstr ""
6547
6548#. type: cindex
6549#: doc/guix.texi:2274
6550#, no-wrap
6551msgid "build farm"
6552msgstr ""
6553
6554#. type: Plain text
6555#: doc/guix.texi:2284
6556msgid ""
6557"The @code{mirror.hydra.gnu.org} server is a front-end to an official build "
6558"farm that builds packages from Guix continuously for some architectures, and "
6559"makes them available as substitutes. This is the default source of "
6560"substitutes; it can be overridden by passing the @option{--substitute-urls} "
6561"option either to @command{guix-daemon} (@pxref{daemon-substitute-urls,, "
6562"@code{guix-daemon --substitute-urls}}) or to client tools such as "
39764ef8
JL
6563"@command{guix package} (@pxref{client-substitute-urls,, client @option{--"
6564"substitute-urls} option})."
b9fe8fd6
JL
6565msgstr ""
6566
6567#. type: Plain text
6568#: doc/guix.texi:2290
6569msgid ""
6570"Substitute URLs can be either HTTP or HTTPS. HTTPS is recommended because "
6571"communications are encrypted; conversely, using HTTP makes all "
6572"communications visible to an eavesdropper, who could use the information "
6573"gathered to determine, for instance, whether your system has unpatched "
6574"security vulnerabilities."
6575msgstr ""
6576
6577#. type: Plain text
6578#: doc/guix.texi:2299
6579msgid ""
6580"Substitutes from the official build farm are enabled by default when using "
6581"the Guix System Distribution (@pxref{GNU Distribution}). However, they are "
6582"disabled by default when using Guix on a foreign distribution, unless you "
6583"have explicitly enabled them via one of the recommended installation steps "
6584"(@pxref{Installation}). The following paragraphs describe how to enable or "
6585"disable substitutes for the official build farm; the same procedure can also "
6586"be used to enable substitutes for any other substitute server."
6587msgstr ""
6588
6589#. type: cindex
6590#: doc/guix.texi:2303
6591#, no-wrap
6592msgid "security"
6593msgstr ""
6594
6595#. type: cindex
6596#: doc/guix.texi:2305
6597#, no-wrap
6598msgid "access control list (ACL), for substitutes"
6599msgstr ""
6600
6601#. type: cindex
6602#: doc/guix.texi:2306
6603#, no-wrap
6604msgid "ACL (access control list), for substitutes"
6605msgstr ""
6606
6607#. type: Plain text
6608#: doc/guix.texi:2313
6609msgid ""
6610"To allow Guix to download substitutes from @code{hydra.gnu.org} or a mirror "
6611"thereof, you must add its public key to the access control list (ACL) of "
6612"archive imports, using the @command{guix archive} command (@pxref{Invoking "
6613"guix archive}). Doing so implies that you trust @code{hydra.gnu.org} to not "
6614"be compromised and to serve genuine substitutes."
6615msgstr ""
6616
6617#. type: Plain text
6618#: doc/guix.texi:2320
6619msgid ""
6620"The public key for @code{hydra.gnu.org} is installed along with Guix, in "
6621"@code{@var{prefix}/share/guix/hydra.gnu.org.pub}, where @var{prefix} is the "
6622"installation prefix of Guix. If you installed Guix from source, make sure "
6623"you checked the GPG signature of @file{guix-@value{VERSION}.tar.gz}, which "
6624"contains this public key file. Then, you can run something like this:"
6625msgstr ""
6626
6627#. type: example
6628#: doc/guix.texi:2323
6629#, no-wrap
6630msgid "# guix archive --authorize < @var{prefix}/share/guix/hydra.gnu.org.pub\n"
6631msgstr ""
6632
6633#. type: quotation
6634#: doc/guix.texi:2329
6635msgid ""
6636"Similarly, the @file{berlin.guixsd.org.pub} file contains the public key for "
39764ef8
JL
6637"the project's new build farm, reachable at @indicateurl{https://berlin."
6638"guixsd.org}."
b9fe8fd6
JL
6639msgstr ""
6640
6641#. type: quotation
6642#: doc/guix.texi:2334
6643msgid ""
6644"As of this writing @code{berlin.guixsd.org} is being upgraded so it can "
6645"better scale up, but you might want to give it a try. It is backed by 20 "
6646"x86_64/i686 build nodes and may be able to provide substitutes more quickly "
6647"than @code{mirror.hydra.gnu.org}."
6648msgstr ""
6649
6650#. type: Plain text
6651#: doc/guix.texi:2338
6652msgid ""
6653"Once this is in place, the output of a command like @code{guix build} should "
6654"change from something like:"
6655msgstr ""
6656
6657#. type: example
6658#: doc/guix.texi:2347
6659#, no-wrap
6660msgid ""
6661"$ guix build emacs --dry-run\n"
6662"The following derivations would be built:\n"
6663" /gnu/store/yr7bnx8xwcayd6j95r2clmkdl1qh688w-emacs-24.3.drv\n"
6664" /gnu/store/x8qsh1hlhgjx6cwsjyvybnfv2i37z23w-dbus-1.6.4.tar.gz.drv\n"
39764ef8 6665" /gnu/store/1ixwp12fl950d15h2cj11c73733jay0z-alsa-lib-1.0.27.1.tar.bz2.drv\n"
b9fe8fd6
JL
6666" /gnu/store/nlma1pw0p603fpfiqy7kn4zm105r5dmw-util-linux-2.21.drv\n"
6667"@dots{}\n"
6668msgstr ""
6669
6670#. type: Plain text
6671#: doc/guix.texi:2351
6672msgid "to something like:"
6673msgstr ""
6674
6675#. type: example
6676#: doc/guix.texi:2360
6677#, no-wrap
6678msgid ""
6679"$ guix build emacs --dry-run\n"
6680"112.3 MB would be downloaded:\n"
6681" /gnu/store/pk3n22lbq6ydamyymqkkz7i69wiwjiwi-emacs-24.3\n"
6682" /gnu/store/2ygn4ncnhrpr61rssa6z0d9x22si0va3-libjpeg-8d\n"
6683" /gnu/store/71yz6lgx4dazma9dwn2mcjxaah9w77jq-cairo-1.12.16\n"
6684" /gnu/store/7zdhgp0n1518lvfn8mb96sxqfmvqrl7v-libxrender-0.9.7\n"
6685"@dots{}\n"
6686msgstr ""
6687
6688#. type: Plain text
6689#: doc/guix.texi:2365
6690msgid ""
6691"This indicates that substitutes from @code{hydra.gnu.org} are usable and "
6692"will be downloaded, when possible, for future builds."
6693msgstr ""
6694
6695#. type: cindex
6696#: doc/guix.texi:2366
6697#, no-wrap
6698msgid "substitutes, how to disable"
6699msgstr ""
6700
6701#. type: Plain text
6702#: doc/guix.texi:2372
6703msgid ""
39764ef8
JL
6704"The substitute mechanism can be disabled globally by running @code{guix-"
6705"daemon} with @code{--no-substitutes} (@pxref{Invoking guix-daemon}). It can "
6706"also be disabled temporarily by passing the @code{--no-substitutes} option "
6707"to @command{guix package}, @command{guix build}, and other command-line "
6708"tools."
b9fe8fd6
JL
6709msgstr ""
6710
6711#. type: cindex
6712#: doc/guix.texi:2376
6713#, no-wrap
6714msgid "digital signatures"
6715msgstr ""
6716
6717#. type: Plain text
6718#: doc/guix.texi:2380
6719msgid ""
6720"Guix detects and raises an error when attempting to use a substitute that "
6721"has been tampered with. Likewise, it ignores substitutes that are not "
6722"signed, or that are not signed by one of the keys listed in the ACL."
6723msgstr ""
6724
6725#. type: Plain text
6726#: doc/guix.texi:2386
6727msgid ""
6728"There is one exception though: if an unauthorized server provides "
6729"substitutes that are @emph{bit-for-bit identical} to those provided by an "
6730"authorized server, then the unauthorized server becomes eligible for "
6731"downloads. For example, assume we have chosen two substitute servers with "
6732"this option:"
6733msgstr ""
6734
6735#. type: example
6736#: doc/guix.texi:2389
6737#, no-wrap
6738msgid "--substitute-urls=\"https://a.example.org https://b.example.org\"\n"
6739msgstr ""
6740
6741#. type: Plain text
6742#: doc/guix.texi:2400
6743msgid ""
39764ef8
JL
6744"If the ACL contains only the key for @code{b.example.org}, and if @code{a."
6745"example.org} happens to serve the @emph{exact same} substitutes, then Guix "
6746"will download substitutes from @code{a.example.org} because it comes first "
6747"in the list and can be considered a mirror of @code{b.example.org}. In "
6748"practice, independent build machines usually produce the same binaries, "
6749"thanks to bit-reproducible builds (see below)."
b9fe8fd6
JL
6750msgstr ""
6751
6752#. type: Plain text
6753#: doc/guix.texi:2407
6754msgid ""
6755"When using HTTPS, the server's X.509 certificate is @emph{not} validated (in "
6756"other words, the server is not authenticated), contrary to what HTTPS "
6757"clients such as Web browsers usually do. This is because Guix authenticates "
6758"substitute information itself, as explained above, which is what we care "
6759"about (whereas X.509 certificates are about authenticating bindings between "
6760"domain names and public keys.)"
6761msgstr ""
6762
6763#. type: Plain text
6764#: doc/guix.texi:2419
6765msgid ""
6766"Substitutes are downloaded over HTTP or HTTPS. The @code{http_proxy} "
6767"environment variable can be set in the environment of @command{guix-daemon} "
6768"and is honored for downloads of substitutes. Note that the value of "
6769"@code{http_proxy} in the environment where @command{guix build}, "
6770"@command{guix package}, and other client commands are run has "
6771"@emph{absolutely no effect}."
6772msgstr ""
6773
6774#. type: Plain text
6775#: doc/guix.texi:2428
6776msgid ""
6777"Even when a substitute for a derivation is available, sometimes the "
6778"substitution attempt will fail. This can happen for a variety of reasons: "
6779"the substitute server might be offline, the substitute may recently have "
6780"been deleted, the connection might have been interrupted, etc."
6781msgstr ""
6782
6783#. type: Plain text
6784#: doc/guix.texi:2442
6785msgid ""
6786"When substitutes are enabled and a substitute for a derivation is available, "
6787"but the substitution attempt fails, Guix will attempt to build the "
6788"derivation locally depending on whether or not @code{--fallback} was given "
6789"(@pxref{fallback-option,, common build option @code{--fallback}}). "
6790"Specifically, if @code{--fallback} was omitted, then no local build will be "
6791"performed, and the derivation is considered to have failed. However, if "
6792"@code{--fallback} was given, then Guix will attempt to build the derivation "
6793"locally, and the success or failure of the derivation depends on the success "
6794"or failure of the local build. Note that when substitutes are disabled or "
6795"no substitute is available for the derivation in question, a local build "
39764ef8
JL
6796"will @emph{always} be performed, regardless of whether or not @code{--"
6797"fallback} was given."
b9fe8fd6
JL
6798msgstr ""
6799
6800#. type: Plain text
6801#: doc/guix.texi:2447
6802msgid ""
6803"To get an idea of how many substitutes are available right now, you can try "
6804"running the @command{guix weather} command (@pxref{Invoking guix weather}). "
6805"This command provides statistics on the substitutes provided by a server."
6806msgstr ""
6807
6808#. type: cindex
6809#: doc/guix.texi:2451
6810#, no-wrap
6811msgid "trust, of pre-built binaries"
6812msgstr ""
6813
6814#. type: Plain text
6815#: doc/guix.texi:2461
6816msgid ""
6817"Today, each individual's control over their own computing is at the mercy of "
6818"institutions, corporations, and groups with enough power and determination "
6819"to subvert the computing infrastructure and exploit its weaknesses. While "
6820"using @code{hydra.gnu.org} substitutes can be convenient, we encourage users "
6821"to also build on their own, or even run their own build farm, such that "
6822"@code{hydra.gnu.org} is less of an interesting target. One way to help is "
6823"by publishing the software you build using @command{guix publish} so that "
6824"others have one more choice of server to download substitutes from "
6825"(@pxref{Invoking guix publish})."
6826msgstr ""
6827
6828#. type: Plain text
6829#: doc/guix.texi:2473
6830msgid ""
6831"Guix has the foundations to maximize build reproducibility "
6832"(@pxref{Features}). In most cases, independent builds of a given package or "
6833"derivation should yield bit-identical results. Thus, through a diverse set "
6834"of independent package builds, we can strengthen the integrity of our "
6835"systems. The @command{guix challenge} command aims to help users assess "
39764ef8
JL
6836"substitute servers, and to assist developers in finding out about non-"
6837"deterministic package builds (@pxref{Invoking guix challenge}). Similarly, "
6838"the @option{--check} option of @command{guix build} allows users to check "
6839"whether previously-installed substitutes are genuine by rebuilding them "
6840"locally (@pxref{build-check, @command{guix build --check}})."
b9fe8fd6
JL
6841msgstr ""
6842
6843#. type: Plain text
6844#: doc/guix.texi:2477
6845msgid ""
6846"In the future, we want Guix to have support to publish and retrieve binaries "
6847"to/from other users, in a peer-to-peer fashion. If you would like to "
6848"discuss this project, join us on @email{guix-devel@@gnu.org}."
6849msgstr ""
6850
6851#. type: cindex
6852#: doc/guix.texi:2481
6853#, no-wrap
6854msgid "multiple-output packages"
6855msgstr ""
6856
6857#. type: cindex
6858#: doc/guix.texi:2482
6859#, no-wrap
6860msgid "package outputs"
6861msgstr ""
6862
6863#. type: cindex
6864#: doc/guix.texi:2483
6865#, no-wrap
6866msgid "outputs"
6867msgstr ""
6868
6869#. type: Plain text
6870#: doc/guix.texi:2493
6871msgid ""
6872"Often, packages defined in Guix have a single @dfn{output}---i.e., the "
6873"source package leads to exactly one directory in the store. When running "
6874"@command{guix package -i glibc}, one installs the default output of the GNU "
6875"libc package; the default output is called @code{out}, but its name can be "
6876"omitted as shown in this command. In this particular case, the default "
6877"output of @code{glibc} contains all the C header files, shared libraries, "
6878"static libraries, Info documentation, and other supporting files."
6879msgstr ""
6880
6881#. type: Plain text
6882#: doc/guix.texi:2501
6883msgid ""
6884"Sometimes it is more appropriate to separate the various types of files "
6885"produced from a single source package into separate outputs. For instance, "
6886"the GLib C library (used by GTK+ and related packages) installs more than "
6887"20 MiB of reference documentation as HTML pages. To save space for users "
6888"who do not need it, the documentation goes to a separate output, called "
6889"@code{doc}. To install the main GLib output, which contains everything but "
6890"the documentation, one would run:"
6891msgstr ""
6892
6893#. type: example
6894#: doc/guix.texi:2504
6895#, no-wrap
6896msgid "guix package -i glib\n"
6897msgstr ""
6898
6899#. type: code{#1}
39764ef8 6900#: doc/guix.texi:2506 doc/guix.texi:21321
b9fe8fd6
JL
6901#, no-wrap
6902msgid "documentation"
6903msgstr ""
6904
6905#. type: Plain text
6906#: doc/guix.texi:2508
6907msgid "The command to install its documentation is:"
6908msgstr ""
6909
6910#. type: example
6911#: doc/guix.texi:2511
6912#, no-wrap
6913msgid "guix package -i glib:doc\n"
6914msgstr ""
6915
6916#. type: Plain text
6917#: doc/guix.texi:2522
6918msgid ""
6919"Some packages install programs with different ``dependency footprints''. "
6920"For instance, the WordNet package installs both command-line tools and "
6921"graphical user interfaces (GUIs). The former depend solely on the C "
6922"library, whereas the latter depend on Tcl/Tk and the underlying X "
6923"libraries. In this case, we leave the command-line tools in the default "
6924"output, whereas the GUIs are in a separate output. This allows users who do "
6925"not need the GUIs to save space. The @command{guix size} command can help "
6926"find out about such situations (@pxref{Invoking guix size}). @command{guix "
6927"graph} can also be helpful (@pxref{Invoking guix graph})."
6928msgstr ""
6929
6930#. type: Plain text
6931#: doc/guix.texi:2530
6932msgid ""
6933"There are several such multiple-output packages in the GNU distribution. "
6934"Other conventional output names include @code{lib} for libraries and "
6935"possibly header files, @code{bin} for stand-alone programs, and @code{debug} "
6936"for debugging information (@pxref{Installing Debugging Files}). The outputs "
6937"of a packages are listed in the third column of the output of @command{guix "
6938"package --list-available} (@pxref{Invoking guix package})."
6939msgstr ""
6940
6941#. type: section
6942#: doc/guix.texi:2533
6943#, no-wrap
6944msgid "Invoking @command{guix gc}"
6945msgstr ""
6946
6947#. type: cindex
6948#: doc/guix.texi:2535
6949#, no-wrap
6950msgid "garbage collector"
6951msgstr ""
6952
6953#. type: cindex
6954#: doc/guix.texi:2536
6955#, no-wrap
6956msgid "disk space"
6957msgstr ""
6958
6959#. type: Plain text
6960#: doc/guix.texi:2542
6961msgid ""
6962"Packages that are installed, but not used, may be @dfn{garbage-collected}. "
6963"The @command{guix gc} command allows users to explicitly run the garbage "
6964"collector to reclaim space from the @file{/gnu/store} directory. It is the "
6965"@emph{only} way to remove files from @file{/gnu/store}---removing files or "
6966"directories manually may break it beyond repair!"
6967msgstr ""
6968
6969#. type: Plain text
6970#: doc/guix.texi:2553
6971msgid ""
39764ef8
JL
6972"The garbage collector has a set of known @dfn{roots}: any file under @file{/"
6973"gnu/store} reachable from a root is considered @dfn{live} and cannot be "
6974"deleted; any other file is considered @dfn{dead} and may be deleted. The "
b9fe8fd6
JL
6975"set of garbage collector roots (``GC roots'' for short) includes default "
6976"user profiles; by default, the symlinks under @file{/var/guix/gcroots} "
6977"represent these GC roots. New GC roots can be added with @command{guix "
6978"build --root}, for example (@pxref{Invoking guix build})."
6979msgstr ""
6980
6981#. type: Plain text
6982#: doc/guix.texi:2559
6983msgid ""
6984"Prior to running @code{guix gc --collect-garbage} to make space, it is often "
6985"useful to remove old generations from user profiles; that way, old package "
6986"builds referenced by those generations can be reclaimed. This is achieved "
6987"by running @code{guix package --delete-generations} (@pxref{Invoking guix "
6988"package})."
6989msgstr ""
6990
6991#. type: Plain text
6992#: doc/guix.texi:2563
6993msgid ""
6994"Our recommendation is to run a garbage collection periodically, or when you "
6995"are short on disk space. For instance, to guarantee that at least 5@tie{}GB "
6996"are available on your disk, simply run:"
6997msgstr ""
6998
6999#. type: example
7000#: doc/guix.texi:2566
7001#, no-wrap
7002msgid "guix gc -F 5G\n"
7003msgstr ""
7004
7005#. type: Plain text
7006#: doc/guix.texi:2575
7007msgid ""
7008"It is perfectly safe to run as a non-interactive periodic job "
7009"(@pxref{Scheduled Job Execution}, for how to set up such a job on GuixSD). "
7010"Running @command{guix gc} with no arguments will collect as much garbage as "
7011"it can, but that is often inconvenient: you may find yourself having to "
7012"rebuild or re-download software that is ``dead'' from the GC viewpoint but "
7013"that is necessary to build other pieces of software---e.g., the compiler "
7014"tool chain."
7015msgstr ""
7016
7017#. type: Plain text
7018#: doc/guix.texi:2581
7019msgid ""
7020"The @command{guix gc} command has three modes of operation: it can be used "
7021"to garbage-collect any dead files (the default), to delete specific files "
7022"(the @code{--delete} option), to print garbage-collector information, or for "
7023"more advanced queries. The garbage collection options are as follows:"
7024msgstr ""
7025
7026#. type: item
7027#: doc/guix.texi:2583
7028#, no-wrap
7029msgid "--collect-garbage[=@var{min}]"
7030msgstr ""
7031
7032#. type: itemx
7033#: doc/guix.texi:2584
7034#, no-wrap
7035msgid "-C [@var{min}]"
7036msgstr ""
7037
7038#. type: table
7039#: doc/guix.texi:2588
7040msgid ""
39764ef8
JL
7041"Collect garbage---i.e., unreachable @file{/gnu/store} files and sub-"
7042"directories. This is the default operation when no option is specified."
b9fe8fd6
JL
7043msgstr ""
7044
7045#. type: table
7046#: doc/guix.texi:2593
7047msgid ""
7048"When @var{min} is given, stop once @var{min} bytes have been collected. "
7049"@var{min} may be a number of bytes, or it may include a unit as a suffix, "
7050"such as @code{MiB} for mebibytes and @code{GB} for gigabytes (@pxref{Block "
7051"size, size specifications,, coreutils, GNU Coreutils})."
7052msgstr ""
7053
7054#. type: table
7055#: doc/guix.texi:2595
7056msgid "When @var{min} is omitted, collect all the garbage."
7057msgstr ""
7058
7059#. type: item
7060#: doc/guix.texi:2596
7061#, no-wrap
7062msgid "--free-space=@var{free}"
7063msgstr ""
7064
7065#. type: itemx
7066#: doc/guix.texi:2597
7067#, no-wrap
7068msgid "-F @var{free}"
7069msgstr ""
7070
7071#. type: table
7072#: doc/guix.texi:2601
7073msgid ""
7074"Collect garbage until @var{free} space is available under @file{/gnu/store}, "
7075"if possible; @var{free} denotes storage space, such as @code{500MiB}, as "
7076"described above."
7077msgstr ""
7078
7079#. type: table
7080#: doc/guix.texi:2604
7081msgid ""
7082"When @var{free} or more is already available in @file{/gnu/store}, do "
7083"nothing and exit immediately."
7084msgstr ""
7085
7086#. type: item
7087#: doc/guix.texi:2605
7088#, no-wrap
7089msgid "--delete"
7090msgstr ""
7091
7092#. type: itemx
39764ef8 7093#: doc/guix.texi:2606 doc/guix.texi:5840 doc/guix.texi:20598
b9fe8fd6
JL
7094#, no-wrap
7095msgid "-d"
7096msgstr ""
7097
7098#. type: table
7099#: doc/guix.texi:2610
7100msgid ""
7101"Attempt to delete all the store files and directories specified as "
7102"arguments. This fails if some of the files are not in the store, or if they "
7103"are still live."
7104msgstr ""
7105
7106#. type: item
7107#: doc/guix.texi:2611
7108#, no-wrap
7109msgid "--list-failures"
7110msgstr ""
7111
7112#. type: table
7113#: doc/guix.texi:2613
7114msgid "List store items corresponding to cached build failures."
7115msgstr ""
7116
7117#. type: table
7118#: doc/guix.texi:2617
7119msgid ""
39764ef8
JL
7120"This prints nothing unless the daemon was started with @option{--cache-"
7121"failures} (@pxref{Invoking guix-daemon, @option{--cache-failures}})."
b9fe8fd6
JL
7122msgstr ""
7123
7124#. type: item
7125#: doc/guix.texi:2618
7126#, no-wrap
7127msgid "--clear-failures"
7128msgstr ""
7129
7130#. type: table
7131#: doc/guix.texi:2620
7132msgid "Remove the specified store items from the failed-build cache."
7133msgstr ""
7134
7135#. type: table
7136#: doc/guix.texi:2623
7137msgid ""
7138"Again, this option only makes sense when the daemon is started with "
7139"@option{--cache-failures}. Otherwise, it does nothing."
7140msgstr ""
7141
7142#. type: item
7143#: doc/guix.texi:2624
7144#, no-wrap
7145msgid "--list-dead"
7146msgstr ""
7147
7148#. type: table
7149#: doc/guix.texi:2627
7150msgid ""
39764ef8
JL
7151"Show the list of dead files and directories still present in the store---i."
7152"e., files and directories no longer reachable from any root."
b9fe8fd6
JL
7153msgstr ""
7154
7155#. type: item
7156#: doc/guix.texi:2628
7157#, no-wrap
7158msgid "--list-live"
7159msgstr ""
7160
7161#. type: table
7162#: doc/guix.texi:2630
7163msgid "Show the list of live store files and directories."
7164msgstr ""
7165
7166#. type: Plain text
7167#: doc/guix.texi:2634
7168msgid "In addition, the references among existing store files can be queried:"
7169msgstr ""
7170
7171#. type: item
7172#: doc/guix.texi:2637
7173#, no-wrap
7174msgid "--references"
7175msgstr ""
7176
7177#. type: itemx
7178#: doc/guix.texi:2638
7179#, no-wrap
7180msgid "--referrers"
7181msgstr ""
7182
7183#. type: cindex
7184#: doc/guix.texi:2639 doc/guix.texi:6935
7185#, no-wrap
7186msgid "package dependencies"
7187msgstr ""
7188
7189#. type: table
7190#: doc/guix.texi:2642
7191msgid ""
7192"List the references (respectively, the referrers) of store files given as "
7193"arguments."
7194msgstr ""
7195
7196#. type: item
7197#: doc/guix.texi:2643
7198#, no-wrap
7199msgid "--requisites"
7200msgstr ""
7201
7202#. type: itemx
7203#: doc/guix.texi:2644
7204#, no-wrap
7205msgid "-R"
7206msgstr ""
7207
7208#. type: item
7209#: doc/guix.texi:2645 doc/guix.texi:6819 doc/guix.texi:6843 doc/guix.texi:6907
7210#, no-wrap
7211msgid "closure"
7212msgstr ""
7213
7214#. type: table
7215#: doc/guix.texi:2650
7216msgid ""
7217"List the requisites of the store files passed as arguments. Requisites "
7218"include the store files themselves, their references, and the references of "
7219"these, recursively. In other words, the returned list is the "
7220"@dfn{transitive closure} of the store files."
7221msgstr ""
7222
7223#. type: table
7224#: doc/guix.texi:2654
7225msgid ""
7226"@xref{Invoking guix size}, for a tool to profile the size of the closure of "
7227"an element. @xref{Invoking guix graph}, for a tool to visualize the graph "
7228"of references."
7229msgstr ""
7230
7231#. type: item
7232#: doc/guix.texi:2655
7233#, no-wrap
7234msgid "--derivers"
7235msgstr ""
7236
7237#. type: item
7238#: doc/guix.texi:2656 doc/guix.texi:3122 doc/guix.texi:7020
7239#, no-wrap
7240msgid "derivation"
7241msgstr ""
7242
7243#. type: table
7244#: doc/guix.texi:2659
7245msgid ""
7246"Return the derivation(s) leading to the given store items "
7247"(@pxref{Derivations})."
7248msgstr ""
7249
7250#. type: table
7251#: doc/guix.texi:2661
7252msgid "For example, this command:"
7253msgstr ""
7254
7255#. type: example
7256#: doc/guix.texi:2664
7257#, no-wrap
7258msgid "guix gc --derivers `guix package -I ^emacs$ | cut -f4`\n"
7259msgstr ""
7260
7261#. type: table
7262#: doc/guix.texi:2669
7263msgid ""
7264"returns the @file{.drv} file(s) leading to the @code{emacs} package "
7265"installed in your profile."
7266msgstr ""
7267
7268#. type: table
7269#: doc/guix.texi:2673
7270msgid ""
7271"Note that there may be zero matching @file{.drv} files, for instance because "
7272"these files have been garbage-collected. There can also be more than one "
7273"matching @file{.drv} due to fixed-output derivations."
7274msgstr ""
7275
7276#. type: Plain text
7277#: doc/guix.texi:2677
7278msgid ""
7279"Lastly, the following options allow you to check the integrity of the store "
7280"and to control disk usage."
7281msgstr ""
7282
7283#. type: item
7284#: doc/guix.texi:2680
7285#, no-wrap
7286msgid "--verify[=@var{options}]"
7287msgstr ""
7288
7289#. type: cindex
7290#: doc/guix.texi:2681
7291#, no-wrap
7292msgid "integrity, of the store"
7293msgstr ""
7294
7295#. type: cindex
7296#: doc/guix.texi:2682
7297#, no-wrap
7298msgid "integrity checking"
7299msgstr ""
7300
7301#. type: table
7302#: doc/guix.texi:2684
7303msgid "Verify the integrity of the store."
7304msgstr ""
7305
7306#. type: table
7307#: doc/guix.texi:2687
7308msgid ""
7309"By default, make sure that all the store items marked as valid in the "
7310"database of the daemon actually exist in @file{/gnu/store}."
7311msgstr ""
7312
7313#. type: table
7314#: doc/guix.texi:2690
7315msgid ""
7316"When provided, @var{options} must be a comma-separated list containing one "
7317"or more of @code{contents} and @code{repair}."
7318msgstr ""
7319
7320#. type: table
7321#: doc/guix.texi:2696
7322msgid ""
7323"When passing @option{--verify=contents}, the daemon computes the content "
7324"hash of each store item and compares it against its hash in the database. "
7325"Hash mismatches are reported as data corruptions. Because it traverses "
7326"@emph{all the files in the store}, this command can take a long time, "
7327"especially on systems with a slow disk drive."
7328msgstr ""
7329
7330#. type: cindex
7331#: doc/guix.texi:2697
7332#, no-wrap
7333msgid "repairing the store"
7334msgstr ""
7335
7336#. type: cindex
7337#: doc/guix.texi:2698 doc/guix.texi:5833
7338#, no-wrap
7339msgid "corruption, recovering from"
7340msgstr ""
7341
7342#. type: table
7343#: doc/guix.texi:2706
7344msgid ""
7345"Using @option{--verify=repair} or @option{--verify=contents,repair} causes "
7346"the daemon to try to repair corrupt store items by fetching substitutes for "
7347"them (@pxref{Substitutes}). Because repairing is not atomic, and thus "
7348"potentially dangerous, it is available only to the system administrator. A "
7349"lightweight alternative, when you know exactly which items in the store are "
7350"corrupt, is @command{guix build --repair} (@pxref{Invoking guix build})."
7351msgstr ""
7352
7353#. type: item
7354#: doc/guix.texi:2707
7355#, no-wrap
7356msgid "--optimize"
7357msgstr ""
7358
7359#. type: table
7360#: doc/guix.texi:2711
7361msgid ""
7362"Optimize the store by hard-linking identical files---this is "
7363"@dfn{deduplication}."
7364msgstr ""
7365
7366#. type: table
7367#: doc/guix.texi:2717
7368msgid ""
7369"The daemon performs deduplication after each successful build or archive "
7370"import, unless it was started with @code{--disable-deduplication} "
7371"(@pxref{Invoking guix-daemon, @code{--disable-deduplication}}). Thus, this "
39764ef8
JL
7372"option is primarily useful when the daemon was running with @code{--disable-"
7373"deduplication}."
b9fe8fd6
JL
7374msgstr ""
7375
7376#. type: section
7377#: doc/guix.texi:2721
7378#, no-wrap
7379msgid "Invoking @command{guix pull}"
7380msgstr ""
7381
7382#. type: cindex
7383#: doc/guix.texi:2723
7384#, no-wrap
7385msgid "upgrading Guix"
7386msgstr ""
7387
7388#. type: cindex
7389#: doc/guix.texi:2724
7390#, no-wrap
7391msgid "updating Guix"
7392msgstr ""
7393
7394#. type: command{#1}
7395#: doc/guix.texi:2725
7396#, no-wrap
7397msgid "guix pull"
7398msgstr ""
7399
7400#. type: cindex
7401#: doc/guix.texi:2726
7402#, no-wrap
7403msgid "pull"
7404msgstr ""
7405
7406#. type: Plain text
7407#: doc/guix.texi:2733
7408msgid ""
7409"Packages are installed or upgraded to the latest version available in the "
7410"distribution currently available on your local machine. To update that "
7411"distribution, along with the Guix tools, you must run @command{guix pull}: "
7412"the command downloads the latest Guix source code and package descriptions, "
7413"and deploys it. Source code is downloaded from a @uref{https://git-scm.com, "
7414"Git} repository."
7415msgstr ""
7416
7417#. type: Plain text
7418#: doc/guix.texi:2739
7419msgid ""
7420"On completion, @command{guix package} will use packages and package versions "
7421"from this just-retrieved copy of Guix. Not only that, but all the Guix "
7422"commands and Scheme modules will also be taken from that latest version. "
7423"New @command{guix} sub-commands added by the update also become available."
7424msgstr ""
7425
7426#. type: Plain text
7427#: doc/guix.texi:2749
7428msgid ""
7429"Any user can update their Guix copy using @command{guix pull}, and the "
7430"effect is limited to the user who run @command{guix pull}. For instance, "
7431"when user @code{root} runs @command{guix pull}, this has no effect on the "
7432"version of Guix that user @code{alice} sees, and vice versa@footnote{Under "
7433"the hood, @command{guix pull} updates the @file{~/.config/guix/latest} "
7434"symbolic link to point to the latest Guix, and the @command{guix} command "
7435"loads code from there. Currently, the only way to roll back an invocation "
7436"of @command{guix pull} is to manually update this symlink to point to the "
7437"previous Guix.}."
7438msgstr ""
7439
7440#. type: Plain text
7441#: doc/guix.texi:2752
7442msgid ""
7443"The @command{guix pull} command is usually invoked with no arguments, but it "
7444"supports the following options:"
7445msgstr ""
7446
7447#. type: table
7448#: doc/guix.texi:2756
39764ef8
JL
7449msgid ""
7450"Produce verbose output, writing build logs to the standard error output."
b9fe8fd6
JL
7451msgstr ""
7452
7453#. type: item
7454#: doc/guix.texi:2757
7455#, no-wrap
7456msgid "--url=@var{url}"
7457msgstr ""
7458
7459#. type: table
7460#: doc/guix.texi:2759
7461msgid "Download Guix from the Git repository at @var{url}."
7462msgstr ""
7463
7464#. type: vindex
7465#: doc/guix.texi:2760
7466#, no-wrap
7467msgid "GUIX_PULL_URL"
7468msgstr ""
7469
7470#. type: table
7471#: doc/guix.texi:2764
7472msgid ""
7473"By default, the source is taken from its canonical Git repository at "
7474"@code{gnu.org}, for the stable branch of Guix. To use a different source, "
7475"set the @code{GUIX_PULL_URL} environment variable."
7476msgstr ""
7477
7478#. type: item
7479#: doc/guix.texi:2765
7480#, no-wrap
7481msgid "--commit=@var{commit}"
7482msgstr ""
7483
7484#. type: table
7485#: doc/guix.texi:2768
7486msgid ""
7487"Deploy @var{commit}, a valid Git commit ID represented as a hexadecimal "
7488"string."
7489msgstr ""
7490
7491#. type: item
7492#: doc/guix.texi:2769
7493#, no-wrap
7494msgid "--branch=@var{branch}"
7495msgstr ""
7496
7497#. type: table
7498#: doc/guix.texi:2772
7499msgid ""
7500"Deploy the tip of @var{branch}, the name of a Git branch available on the "
7501"repository at @var{url}."
7502msgstr ""
7503
7504#. type: table
7505#: doc/guix.texi:2776
7506msgid ""
7507"Use the bootstrap Guile to build the latest Guix. This option is only "
7508"useful to Guix developers."
7509msgstr ""
7510
7511#. type: Plain text
7512#: doc/guix.texi:2780
7513msgid ""
7514"In addition, @command{guix pull} supports all the common build options "
7515"(@pxref{Common Build Options})."
7516msgstr ""
7517
7518#. type: section
7519#: doc/guix.texi:2782
7520#, no-wrap
7521msgid "Invoking @command{guix pack}"
7522msgstr ""
7523
7524#. type: Plain text
7525#: doc/guix.texi:2788
7526msgid ""
7527"Occasionally you want to pass software to people who are not (yet!) lucky "
7528"enough to be using Guix. You'd tell them to run @command{guix package -i "
7529"@var{something}}, but that's not possible in this case. This is where "
7530"@command{guix pack} comes in."
7531msgstr ""
7532
7533#. type: quotation
7534#: doc/guix.texi:2793
7535msgid ""
7536"If you are looking for ways to exchange binaries among machines that already "
7537"run Guix, @pxref{Invoking guix copy}, @ref{Invoking guix publish}, and "
7538"@ref{Invoking guix archive}."
7539msgstr ""
7540
7541#. type: cindex
7542#: doc/guix.texi:2795
7543#, no-wrap
7544msgid "pack"
7545msgstr ""
7546
7547#. type: cindex
7548#: doc/guix.texi:2796
7549#, no-wrap
7550msgid "bundle"
7551msgstr ""
7552
7553#. type: cindex
7554#: doc/guix.texi:2797
7555#, no-wrap
7556msgid "application bundle"
7557msgstr ""
7558
7559#. type: cindex
7560#: doc/guix.texi:2798
7561#, no-wrap
7562msgid "software bundle"
7563msgstr ""
7564
7565#. type: Plain text
7566#: doc/guix.texi:2807
7567msgid ""
7568"The @command{guix pack} command creates a shrink-wrapped @dfn{pack} or "
7569"@dfn{software bundle}: it creates a tarball or some other archive containing "
7570"the binaries of the software you're interested in, and all its "
7571"dependencies. The resulting archive can be used on any machine that does "
7572"not have Guix, and people can run the exact same binaries as those you have "
7573"with Guix. The pack itself is created in a bit-reproducible fashion, so "
7574"anyone can verify that it really contains the build results that you pretend "
7575"to be shipping."
7576msgstr ""
7577
7578#. type: Plain text
7579#: doc/guix.texi:2810
7580msgid ""
7581"For example, to create a bundle containing Guile, Emacs, Geiser, and all "
7582"their dependencies, you can run:"
7583msgstr ""
7584
7585#. type: example
7586#: doc/guix.texi:2815
7587#, no-wrap
7588msgid ""
7589"$ guix pack guile emacs geiser\n"
7590"@dots{}\n"
7591"/gnu/store/@dots{}-pack.tar.gz\n"
7592msgstr ""
7593
7594#. type: Plain text
7595#: doc/guix.texi:2823
7596msgid ""
7597"The result here is a tarball containing a @file{/gnu/store} directory with "
7598"all the relevant packages. The resulting tarball contains a @dfn{profile} "
7599"with the three packages of interest; the profile is the same as would be "
7600"created by @command{guix package -i}. It is this mechanism that is used to "
7601"create Guix's own standalone binary tarball (@pxref{Binary Installation})."
7602msgstr ""
7603
7604#. type: Plain text
7605#: doc/guix.texi:2828
7606msgid ""
39764ef8
JL
7607"Users of this pack would have to run @file{/gnu/store/@dots{}-profile/bin/"
7608"guile} to run Guile, which you may find inconvenient. To work around it, "
7609"you can create, say, a @file{/opt/gnu/bin} symlink to the profile:"
b9fe8fd6
JL
7610msgstr ""
7611
7612#. type: example
7613#: doc/guix.texi:2831
7614#, no-wrap
7615msgid "guix pack -S /opt/gnu/bin=bin guile emacs geiser\n"
7616msgstr ""
7617
7618#. type: Plain text
7619#: doc/guix.texi:2835
7620msgid "That way, users can happily type @file{/opt/gnu/bin/guile} and enjoy."
7621msgstr ""
7622
7623#. type: Plain text
7624#: doc/guix.texi:2838
7625msgid ""
7626"Alternatively, you can produce a pack in the Docker image format using the "
7627"following command:"
7628msgstr ""
7629
7630#. type: example
7631#: doc/guix.texi:2841
7632#, no-wrap
7633msgid "guix pack -f docker guile emacs geiser\n"
7634msgstr ""
7635
7636#. type: Plain text
7637#: doc/guix.texi:2848
7638msgid ""
7639"The result is a tarball that can be passed to the @command{docker load} "
39764ef8
JL
7640"command. See the @uref{https://docs.docker.com/engine/reference/commandline/"
7641"load/, Docker documentation} for more information."
b9fe8fd6
JL
7642msgstr ""
7643
7644#. type: Plain text
7645#: doc/guix.texi:2850
7646msgid "Several command-line options allow you to customize your pack:"
7647msgstr ""
7648
7649#. type: item
7650#: doc/guix.texi:2852
7651#, no-wrap
7652msgid "--format=@var{format}"
7653msgstr ""
7654
7655#. type: itemx
7656#: doc/guix.texi:2853
7657#, no-wrap
7658msgid "-f @var{format}"
7659msgstr ""
7660
7661#. type: table
7662#: doc/guix.texi:2855
7663msgid "Produce a pack in the given @var{format}."
7664msgstr ""
7665
7666#. type: table
7667#: doc/guix.texi:2857
7668msgid "The available formats are:"
7669msgstr ""
7670
7671#. type: item
7672#: doc/guix.texi:2859
7673#, no-wrap
7674msgid "tarball"
7675msgstr ""
7676
7677#. type: table
7678#: doc/guix.texi:2862
7679msgid ""
7680"This is the default format. It produces a tarball containing all the "
7681"specified binaries and symlinks."
7682msgstr ""
7683
7684#. type: item
7685#: doc/guix.texi:2863
7686#, no-wrap
7687msgid "docker"
7688msgstr ""
7689
7690#. type: table
7691#: doc/guix.texi:2867
7692msgid ""
39764ef8
JL
7693"This produces a tarball that follows the @uref{https://github.com/docker/"
7694"docker/blob/master/image/spec/v1.2.md, Docker Image Specification}."
b9fe8fd6
JL
7695msgstr ""
7696
7697#. type: item
39764ef8
JL
7698#: doc/guix.texi:2869 doc/guix.texi:5711 doc/guix.texi:6536 doc/guix.texi:7097
7699#: doc/guix.texi:7247 doc/guix.texi:20584
b9fe8fd6
JL
7700#, no-wrap
7701msgid "--expression=@var{expr}"
7702msgstr ""
7703
7704#. type: itemx
39764ef8
JL
7705#: doc/guix.texi:2870 doc/guix.texi:5712 doc/guix.texi:6537 doc/guix.texi:7098
7706#: doc/guix.texi:7248 doc/guix.texi:20585
b9fe8fd6
JL
7707#, no-wrap
7708msgid "-e @var{expr}"
7709msgstr ""
7710
7711#. type: table
7712#: doc/guix.texi:2872 doc/guix.texi:6539 doc/guix.texi:7100
7713msgid "Consider the package @var{expr} evaluates to."
7714msgstr ""
7715
7716#. type: table
7717#: doc/guix.texi:2876
7718msgid ""
7719"This has the same purpose as the same-named option in @command{guix build} "
7720"(@pxref{Additional Build Options, @code{--expression} in @command{guix "
7721"build}})."
7722msgstr ""
7723
7724#. type: table
7725#: doc/guix.texi:2881
7726msgid ""
7727"Use the packages contained in the manifest object returned by the Scheme "
7728"code in @var{file}."
7729msgstr ""
7730
7731#. type: table
7732#: doc/guix.texi:2889
7733msgid ""
7734"This has a similar purpose as the same-named option in @command{guix "
7735"package} (@pxref{profile-manifest, @option{--manifest}}) and uses the same "
7736"manifest files. It allows you to define a collection of packages once and "
7737"use it both for creating profiles and for creating archives for use on "
7738"machines that do not have Guix installed. Note that you can specify "
7739"@emph{either} a manifest file @emph{or} a list of packages, but not both."
7740msgstr ""
7741
7742#. type: itemx
39764ef8
JL
7743#: doc/guix.texi:2891 doc/guix.texi:5784 doc/guix.texi:6925 doc/guix.texi:7333
7744#: doc/guix.texi:7967 doc/guix.texi:20593
b9fe8fd6
JL
7745#, no-wrap
7746msgid "-s @var{system}"
7747msgstr ""
7748
7749#. type: table
7750#: doc/guix.texi:2894 doc/guix.texi:5787
7751msgid ""
7752"Attempt to build for @var{system}---e.g., @code{i686-linux}---instead of the "
7753"system type of the build host."
7754msgstr ""
7755
7756#. type: item
7757#: doc/guix.texi:2895 doc/guix.texi:5808
7758#, no-wrap
7759msgid "--target=@var{triplet}"
7760msgstr ""
7761
7762#. type: cindex
7763#: doc/guix.texi:2896 doc/guix.texi:3322 doc/guix.texi:5809
7764#, no-wrap
7765msgid "cross-compilation"
7766msgstr ""
7767
7768#. type: table
7769#: doc/guix.texi:2900 doc/guix.texi:5813
7770msgid ""
7771"Cross-build for @var{triplet}, which must be a valid GNU triplet, such as "
7772"@code{\"mips64el-linux-gnu\"} (@pxref{Specifying target triplets, GNU "
7773"configuration triplets,, autoconf, Autoconf})."
7774msgstr ""
7775
7776#. type: item
7777#: doc/guix.texi:2901
7778#, no-wrap
7779msgid "--compression=@var{tool}"
7780msgstr ""
7781
7782#. type: itemx
7783#: doc/guix.texi:2902
7784#, no-wrap
7785msgid "-C @var{tool}"
7786msgstr ""
7787
7788#. type: table
7789#: doc/guix.texi:2905
7790msgid ""
7791"Compress the resulting tarball using @var{tool}---one of @code{gzip}, "
7792"@code{bzip2}, @code{xz}, @code{lzip}, or @code{none} for no compression."
7793msgstr ""
7794
7795#. type: item
7796#: doc/guix.texi:2906
7797#, no-wrap
7798msgid "--symlink=@var{spec}"
7799msgstr ""
7800
7801#. type: itemx
7802#: doc/guix.texi:2907
7803#, no-wrap
7804msgid "-S @var{spec}"
7805msgstr ""
7806
7807#. type: table
7808#: doc/guix.texi:2910
7809msgid ""
7810"Add the symlinks specified by @var{spec} to the pack. This option can "
7811"appear several times."
7812msgstr ""
7813
7814#. type: table
7815#: doc/guix.texi:2914
7816msgid ""
7817"@var{spec} has the form @code{@var{source}=@var{target}}, where @var{source} "
7818"is the symlink that will be created and @var{target} is the symlink target."
7819msgstr ""
7820
7821#. type: table
7822#: doc/guix.texi:2917
7823msgid ""
7824"For instance, @code{-S /opt/gnu/bin=bin} creates a @file{/opt/gnu/bin} "
7825"symlink pointing to the @file{bin} sub-directory of the profile."
7826msgstr ""
7827
7828#. type: item
7829#: doc/guix.texi:2918
7830#, no-wrap
7831msgid "--localstatedir"
7832msgstr ""
7833
7834#. type: table
7835#: doc/guix.texi:2921
7836msgid ""
7837"Include the ``local state directory'', @file{/var/guix}, in the resulting "
7838"pack."
7839msgstr ""
7840
7841#. type: table
7842#: doc/guix.texi:2927
7843msgid ""
7844"@file{/var/guix} contains the store database (@pxref{The Store}) as well as "
7845"garbage-collector roots (@pxref{Invoking guix gc}). Providing it in the "
7846"pack means that the store is ``complete'' and manageable by Guix; not "
7847"providing it pack means that the store is ``dead'': items cannot be added to "
7848"it or removed from it after extraction of the pack."
7849msgstr ""
7850
7851#. type: table
7852#: doc/guix.texi:2930
7853msgid ""
7854"One use case for this is the Guix self-contained binary tarball "
7855"(@pxref{Binary Installation})."
7856msgstr ""
7857
7858#. type: table
7859#: doc/guix.texi:2934
7860msgid ""
7861"Use the bootstrap binaries to build the pack. This option is only useful to "
7862"Guix developers."
7863msgstr ""
7864
7865#. type: Plain text
7866#: doc/guix.texi:2939
7867msgid ""
7868"In addition, @command{guix pack} supports all the common build options "
7869"(@pxref{Common Build Options}) and all the package transformation options "
7870"(@pxref{Package Transformation Options})."
7871msgstr ""
7872
7873#. type: section
7874#: doc/guix.texi:2942
7875#, no-wrap
7876msgid "Invoking @command{guix archive}"
7877msgstr ""
7878
7879#. type: command{#1}
7880#: doc/guix.texi:2944
7881#, no-wrap
7882msgid "guix archive"
7883msgstr ""
7884
7885#. type: cindex
7886#: doc/guix.texi:2945
7887#, no-wrap
7888msgid "archive"
7889msgstr ""
7890
7891#. type: Plain text
7892#: doc/guix.texi:2951
7893msgid ""
7894"The @command{guix archive} command allows users to @dfn{export} files from "
7895"the store into a single archive, and to later @dfn{import} them on a machine "
7896"that runs Guix. In particular, it allows store files to be transferred from "
7897"one machine to the store on another machine."
7898msgstr ""
7899
7900#. type: quotation
7901#: doc/guix.texi:2955
7902msgid ""
7903"If you're looking for a way to produce archives in a format suitable for "
7904"tools other than Guix, @pxref{Invoking guix pack}."
7905msgstr ""
7906
7907#. type: cindex
7908#: doc/guix.texi:2957
7909#, no-wrap
7910msgid "exporting store items"
7911msgstr ""
7912
7913#. type: Plain text
7914#: doc/guix.texi:2959
7915msgid "To export store files as an archive to standard output, run:"
7916msgstr ""
7917
7918#. type: example
7919#: doc/guix.texi:2962
7920#, no-wrap
7921msgid "guix archive --export @var{options} @var{specifications}...\n"
7922msgstr ""
7923
7924#. type: Plain text
7925#: doc/guix.texi:2969
7926msgid ""
7927"@var{specifications} may be either store file names or package "
7928"specifications, as for @command{guix package} (@pxref{Invoking guix "
7929"package}). For instance, the following command creates an archive "
7930"containing the @code{gui} output of the @code{git} package and the main "
7931"output of @code{emacs}:"
7932msgstr ""
7933
7934#. type: example
7935#: doc/guix.texi:2972
7936#, no-wrap
7937msgid "guix archive --export git:gui /gnu/store/...-emacs-24.3 > great.nar\n"
7938msgstr ""
7939
7940#. type: Plain text
7941#: doc/guix.texi:2977
7942msgid ""
7943"If the specified packages are not built yet, @command{guix archive} "
7944"automatically builds them. The build process may be controlled with the "
7945"common build options (@pxref{Common Build Options})."
7946msgstr ""
7947
7948#. type: Plain text
7949#: doc/guix.texi:2980
7950msgid ""
7951"To transfer the @code{emacs} package to a machine connected over SSH, one "
7952"would run:"
7953msgstr ""
7954
7955#. type: example
7956#: doc/guix.texi:2983
7957#, no-wrap
7958msgid "guix archive --export -r emacs | ssh the-machine guix archive --import\n"
7959msgstr ""
7960
7961#. type: Plain text
7962#: doc/guix.texi:2988
7963msgid ""
7964"Similarly, a complete user profile may be transferred from one machine to "
7965"another like this:"
7966msgstr ""
7967
7968#. type: example
7969#: doc/guix.texi:2992
7970#, no-wrap
7971msgid ""
7972"guix archive --export -r $(readlink -f ~/.guix-profile) | \\\n"
7973" ssh the-machine guix-archive --import\n"
7974msgstr ""
7975
7976#. type: Plain text
7977#: doc/guix.texi:3002
7978msgid ""
7979"However, note that, in both examples, all of @code{emacs} and the profile as "
7980"well as all of their dependencies are transferred (due to @code{-r}), "
7981"regardless of what is already available in the store on the target machine. "
7982"The @code{--missing} option can help figure out which items are missing from "
7983"the target store. The @command{guix copy} command simplifies and optimizes "
7984"this whole process, so this is probably what you should use in this case "
7985"(@pxref{Invoking guix copy})."
7986msgstr ""
7987
7988#. type: cindex
7989#: doc/guix.texi:3003
7990#, no-wrap
7991msgid "nar, archive format"
7992msgstr ""
7993
7994#. type: cindex
7995#: doc/guix.texi:3004
7996#, no-wrap
7997msgid "normalized archive (nar)"
7998msgstr ""
7999
8000#. type: Plain text
8001#: doc/guix.texi:3014
8002msgid ""
8003"Archives are stored in the ``normalized archive'' or ``nar'' format, which "
8004"is comparable in spirit to `tar', but with differences that make it more "
8005"appropriate for our purposes. First, rather than recording all Unix "
8006"metadata for each file, the nar format only mentions the file type (regular, "
8007"directory, or symbolic link); Unix permissions and owner/group are "
8008"dismissed. Second, the order in which directory entries are stored always "
8009"follows the order of file names according to the C locale collation order. "
8010"This makes archive production fully deterministic."
8011msgstr ""
8012
8013#. type: Plain text
8014#: doc/guix.texi:3020
8015msgid ""
8016"When exporting, the daemon digitally signs the contents of the archive, and "
8017"that digital signature is appended. When importing, the daemon verifies the "
8018"signature and rejects the import in case of an invalid signature or if the "
8019"signing key is not authorized."
8020msgstr ""
8021
8022#. type: Plain text
8023#: doc/guix.texi:3022
8024msgid "The main options are:"
8025msgstr ""
8026
8027#. type: item
8028#: doc/guix.texi:3024
8029#, no-wrap
8030msgid "--export"
8031msgstr ""
8032
8033#. type: table
8034#: doc/guix.texi:3027
8035msgid ""
8036"Export the specified store files or packages (see below.) Write the "
8037"resulting archive to the standard output."
8038msgstr ""
8039
8040#. type: table
8041#: doc/guix.texi:3030
8042msgid ""
39764ef8
JL
8043"Dependencies are @emph{not} included in the output, unless @code{--"
8044"recursive} is passed."
b9fe8fd6
JL
8045msgstr ""
8046
8047#. type: itemx
8048#: doc/guix.texi:3031 doc/guix.texi:6080
8049#, no-wrap
8050msgid "-r"
8051msgstr ""
8052
8053#. type: item
8054#: doc/guix.texi:3032 doc/guix.texi:6079
8055#, no-wrap
8056msgid "--recursive"
8057msgstr ""
8058
8059#. type: table
8060#: doc/guix.texi:3037
8061msgid ""
8062"When combined with @code{--export}, this instructs @command{guix archive} to "
8063"include dependencies of the given items in the archive. Thus, the resulting "
8064"archive is self-contained: it contains the closure of the exported store "
8065"items."
8066msgstr ""
8067
8068#. type: item
8069#: doc/guix.texi:3038
8070#, no-wrap
8071msgid "--import"
8072msgstr ""
8073
8074#. type: table
8075#: doc/guix.texi:3043
8076msgid ""
8077"Read an archive from the standard input, and import the files listed therein "
8078"into the store. Abort if the archive has an invalid digital signature, or "
39764ef8
JL
8079"if it is signed by a public key not among the authorized keys (see @code{--"
8080"authorize} below.)"
b9fe8fd6
JL
8081msgstr ""
8082
8083#. type: item
8084#: doc/guix.texi:3044
8085#, no-wrap
8086msgid "--missing"
8087msgstr ""
8088
8089#. type: table
8090#: doc/guix.texi:3048
8091msgid ""
8092"Read a list of store file names from the standard input, one per line, and "
8093"write on the standard output the subset of these files missing from the "
8094"store."
8095msgstr ""
8096
8097#. type: item
8098#: doc/guix.texi:3049
8099#, no-wrap
8100msgid "--generate-key[=@var{parameters}]"
8101msgstr ""
8102
8103#. type: cindex
8104#: doc/guix.texi:3050
8105#, no-wrap
8106msgid "signing, archives"
8107msgstr ""
8108
8109#. type: table
8110#: doc/guix.texi:3055
8111msgid ""
8112"Generate a new key pair for the daemon. This is a prerequisite before "
8113"archives can be exported with @code{--export}. Note that this operation "
8114"usually takes time, because it needs to gather enough entropy to generate "
8115"the key pair."
8116msgstr ""
8117
8118#. type: table
8119#: doc/guix.texi:3065
8120msgid ""
8121"The generated key pair is typically stored under @file{/etc/guix}, in "
8122"@file{signing-key.pub} (public key) and @file{signing-key.sec} (private key, "
8123"which must be kept secret.) When @var{parameters} is omitted, an ECDSA key "
8124"using the Ed25519 curve is generated, or, for Libgcrypt versions before "
8125"1.6.0, it is a 4096-bit RSA key. Alternatively, @var{parameters} can "
8126"specify @code{genkey} parameters suitable for Libgcrypt (@pxref{General "
8127"public-key related Functions, @code{gcry_pk_genkey},, gcrypt, The Libgcrypt "
8128"Reference Manual})."
8129msgstr ""
8130
8131#. type: item
8132#: doc/guix.texi:3066
8133#, no-wrap
8134msgid "--authorize"
8135msgstr ""
8136
8137#. type: cindex
8138#: doc/guix.texi:3067
8139#, no-wrap
8140msgid "authorizing, archives"
8141msgstr ""
8142
8143#. type: table
8144#: doc/guix.texi:3071
8145msgid ""
8146"Authorize imports signed by the public key passed on standard input. The "
8147"public key must be in ``s-expression advanced format''---i.e., the same "
8148"format as the @file{signing-key.pub} file."
8149msgstr ""
8150
8151#. type: table
8152#: doc/guix.texi:3078
8153msgid ""
39764ef8
JL
8154"The list of authorized keys is kept in the human-editable file @file{/etc/"
8155"guix/acl}. The file contains @url{http://people.csail.mit.edu/rivest/Sexp."
8156"txt, ``advanced-format s-expressions''} and is structured as an access-"
8157"control list in the @url{http://theworld.com/~cme/spki.txt, Simple Public-"
8158"Key Infrastructure (SPKI)}."
b9fe8fd6
JL
8159msgstr ""
8160
8161#. type: item
8162#: doc/guix.texi:3079
8163#, no-wrap
8164msgid "--extract=@var{directory}"
8165msgstr ""
8166
8167#. type: itemx
8168#: doc/guix.texi:3080
8169#, no-wrap
8170msgid "-x @var{directory}"
8171msgstr ""
8172
8173#. type: table
8174#: doc/guix.texi:3084
8175msgid ""
8176"Read a single-item archive as served by substitute servers "
39764ef8
JL
8177"(@pxref{Substitutes}) and extract it to @var{directory}. This is a low-"
8178"level operation needed in only very narrow use cases; see below."
b9fe8fd6
JL
8179msgstr ""
8180
8181#. type: table
8182#: doc/guix.texi:3087
8183msgid ""
8184"For example, the following command extracts the substitute for Emacs served "
8185"by @code{hydra.gnu.org} to @file{/tmp/emacs}:"
8186msgstr ""
8187
8188#. type: example
8189#: doc/guix.texi:3092
8190#, no-wrap
8191msgid ""
8192"$ wget -O - \\\n"
8193" https://hydra.gnu.org/nar/@dots{}-emacs-24.5 \\\n"
8194" | bunzip2 | guix archive -x /tmp/emacs\n"
8195msgstr ""
8196
8197#. type: table
8198#: doc/guix.texi:3099
8199msgid ""
8200"Single-item archives are different from multiple-item archives produced by "
8201"@command{guix archive --export}; they contain a single store item, and they "
8202"do @emph{not} embed a signature. Thus this operation does @emph{no} "
8203"signature verification and its output should be considered unsafe."
8204msgstr ""
8205
8206#. type: table
8207#: doc/guix.texi:3102
8208msgid ""
8209"The primary purpose of this operation is to facilitate inspection of archive "
8210"contents coming from possibly untrusted substitute servers."
8211msgstr ""
8212
8213#. type: Plain text
8214#: doc/guix.texi:3115
8215msgid ""
8216"GNU Guix provides several Scheme programming interfaces (APIs) to define, "
39764ef8
JL
8217"build, and query packages. The first interface allows users to write high-"
8218"level package definitions. These definitions refer to familiar packaging "
8219"concepts, such as the name and version of a package, its build system, and "
8220"its dependencies. These definitions can then be turned into concrete build "
8221"actions."
b9fe8fd6
JL
8222msgstr ""
8223
8224#. type: Plain text
8225#: doc/guix.texi:3121
8226msgid ""
8227"Build actions are performed by the Guix daemon, on behalf of users. In a "
39764ef8
JL
8228"standard setup, the daemon has write access to the store---the @file{/gnu/"
8229"store} directory---whereas users do not. The recommended setup also has the "
8230"daemon perform builds in chroots, under a specific build users, to minimize "
8231"interference with the rest of the system."
b9fe8fd6
JL
8232msgstr ""
8233
8234#. type: Plain text
8235#: doc/guix.texi:3130
8236msgid ""
8237"Lower-level APIs are available to interact with the daemon and the store. "
8238"To instruct the daemon to perform a build action, users actually provide it "
8239"with a @dfn{derivation}. A derivation is a low-level representation of the "
39764ef8
JL
8240"build actions to be taken, and the environment in which they should occur---"
8241"derivations are to package definitions what assembly is to C programs. The "
8242"term ``derivation'' comes from the fact that build results @emph{derive} "
8243"from them."
b9fe8fd6
JL
8244msgstr ""
8245
8246#. type: Plain text
8247#: doc/guix.texi:3133
8248msgid ""
8249"This chapter describes all these APIs in turn, starting from high-level "
8250"package definitions."
8251msgstr ""
8252
8253#. type: Plain text
8254#: doc/guix.texi:3150
8255msgid ""
8256"The high-level interface to package definitions is implemented in the "
8257"@code{(guix packages)} and @code{(guix build-system)} modules. As an "
8258"example, the package definition, or @dfn{recipe}, for the GNU Hello package "
8259"looks like this:"
8260msgstr ""
8261
8262#. type: example
8263#: doc/guix.texi:3158
8264#, no-wrap
8265msgid ""
8266"(define-module (gnu packages hello)\n"
8267" #:use-module (guix packages)\n"
8268" #:use-module (guix download)\n"
8269" #:use-module (guix build-system gnu)\n"
8270" #:use-module (guix licenses)\n"
8271" #:use-module (gnu packages gawk))\n"
8272"\n"
8273msgstr ""
8274
8275#. type: example
8276#: doc/guix.texi:3177
8277#, no-wrap
8278msgid ""
8279"(define-public hello\n"
8280" (package\n"
8281" (name \"hello\")\n"
8282" (version \"2.10\")\n"
8283" (source (origin\n"
8284" (method url-fetch)\n"
8285" (uri (string-append \"mirror://gnu/hello/hello-\" version\n"
8286" \".tar.gz\"))\n"
8287" (sha256\n"
8288" (base32\n"
39764ef8 8289" \"0ssi1wpaf7plaswqqjwigppsg5fyh99vdlb9kzl7c9lng89ndq1i\"))))\n"
b9fe8fd6
JL
8290" (build-system gnu-build-system)\n"
8291" (arguments '(#:configure-flags '(\"--enable-silent-rules\")))\n"
8292" (inputs `((\"gawk\" ,gawk)))\n"
8293" (synopsis \"Hello, GNU world: An example GNU package\")\n"
8294" (description \"Guess what GNU Hello prints!\")\n"
8295" (home-page \"http://www.gnu.org/software/hello/\")\n"
8296" (license gpl3+)))\n"
8297msgstr ""
8298
8299#. type: Plain text
8300#: doc/guix.texi:3187
8301msgid ""
8302"Without being a Scheme expert, the reader may have guessed the meaning of "
8303"the various fields here. This expression binds the variable @code{hello} to "
8304"a @code{<package>} object, which is essentially a record (@pxref{SRFI-9, "
8305"Scheme records,, guile, GNU Guile Reference Manual}). This package object "
8306"can be inspected using procedures found in the @code{(guix packages)} "
39764ef8
JL
8307"module; for instance, @code{(package-name hello)} returns---surprise!---"
8308"@code{\"hello\"}."
b9fe8fd6
JL
8309msgstr ""
8310
8311#. type: Plain text
8312#: doc/guix.texi:3191
8313msgid ""
8314"With luck, you may be able to import part or all of the definition of the "
8315"package you are interested in from another repository, using the @code{guix "
8316"import} command (@pxref{Invoking guix import})."
8317msgstr ""
8318
8319#. type: Plain text
8320#: doc/guix.texi:3197
8321msgid ""
8322"In the example above, @var{hello} is defined in a module of its own, "
8323"@code{(gnu packages hello)}. Technically, this is not strictly necessary, "
8324"but it is convenient to do so: all the packages defined in modules under "
8325"@code{(gnu packages @dots{})} are automatically known to the command-line "
8326"tools (@pxref{Package Modules})."
8327msgstr ""
8328
8329#. type: Plain text
8330#: doc/guix.texi:3199
8331msgid "There are a few points worth noting in the above package definition:"
8332msgstr ""
8333
8334#. type: itemize
8335#: doc/guix.texi:3206
8336msgid ""
8337"The @code{source} field of the package is an @code{<origin>} object "
39764ef8
JL
8338"(@pxref{origin Reference}, for the complete reference). Here, the @code{url-"
8339"fetch} method from @code{(guix download)} is used, meaning that the source "
8340"is a file to be downloaded over FTP or HTTP."
b9fe8fd6
JL
8341msgstr ""
8342
8343#. type: itemize
8344#: doc/guix.texi:3209
8345msgid ""
8346"The @code{mirror://gnu} prefix instructs @code{url-fetch} to use one of the "
8347"GNU mirrors defined in @code{(guix download)}."
8348msgstr ""
8349
8350#. type: itemize
8351#: doc/guix.texi:3216
8352msgid ""
8353"The @code{sha256} field specifies the expected SHA256 hash of the file being "
8354"downloaded. It is mandatory, and allows Guix to check the integrity of the "
8355"file. The @code{(base32 @dots{})} form introduces the base32 representation "
8356"of the hash. You can obtain this information with @code{guix download} "
8357"(@pxref{Invoking guix download}) and @code{guix hash} (@pxref{Invoking guix "
8358"hash})."
8359msgstr ""
8360
8361#. type: cindex
8362#: doc/guix.texi:3217
8363#, no-wrap
8364msgid "patches"
8365msgstr ""
8366
8367#. type: itemize
8368#: doc/guix.texi:3221
8369msgid ""
8370"When needed, the @code{origin} form can also have a @code{patches} field "
8371"listing patches to be applied, and a @code{snippet} field giving a Scheme "
8372"expression to modify the source code."
8373msgstr ""
8374
8375#. type: cindex
8376#: doc/guix.texi:3223
8377#, no-wrap
8378msgid "GNU Build System"
8379msgstr ""
8380
8381#. type: itemize
8382#: doc/guix.texi:3229
8383msgid ""
8384"The @code{build-system} field specifies the procedure to build the package "
8385"(@pxref{Build Systems}). Here, @var{gnu-build-system} represents the "
8386"familiar GNU Build System, where packages may be configured, built, and "
8387"installed with the usual @code{./configure && make && make check && make "
8388"install} command sequence."
8389msgstr ""
8390
8391#. type: itemize
8392#: doc/guix.texi:3235
8393msgid ""
8394"The @code{arguments} field specifies options for the build system "
8395"(@pxref{Build Systems}). Here it is interpreted by @var{gnu-build-system} "
39764ef8 8396"as a request run @file{configure} with the @code{--enable-silent-rules} flag."
b9fe8fd6
JL
8397msgstr ""
8398
8399#. type: findex
8400#: doc/guix.texi:3236 doc/guix.texi:3239
8401#, no-wrap
8402msgid "quote"
8403msgstr ""
8404
8405#. type: cindex
8406#: doc/guix.texi:3237
8407#, no-wrap
8408msgid "quoting"
8409msgstr ""
8410
8411#. type: findex
8412#: doc/guix.texi:3238
8413#, no-wrap
8414msgid "'"
8415msgstr ""
8416
8417#. type: itemize
8418#: doc/guix.texi:3247
8419msgid ""
8420"What about these quote (@code{'}) characters? They are Scheme syntax to "
8421"introduce a literal list; @code{'} is synonymous with @code{quote}. "
8422"@xref{Expression Syntax, quoting,, guile, GNU Guile Reference Manual}, for "
8423"details. Here the value of the @code{arguments} field is a list of "
8424"arguments passed to the build system down the road, as with @code{apply} "
8425"(@pxref{Fly Evaluation, @code{apply},, guile, GNU Guile Reference Manual})."
8426msgstr ""
8427
8428#. type: itemize
8429#: doc/guix.texi:3253
8430msgid ""
8431"The hash-colon (@code{#:}) sequence defines a Scheme @dfn{keyword} "
39764ef8
JL
8432"(@pxref{Keywords,,, guile, GNU Guile Reference Manual}), and @code{#:"
8433"configure-flags} is a keyword used to pass a keyword argument to the build "
8434"system (@pxref{Coding With Keywords,,, guile, GNU Guile Reference Manual})."
b9fe8fd6
JL
8435msgstr ""
8436
8437#. type: itemize
8438#: doc/guix.texi:3259
8439msgid ""
39764ef8
JL
8440"The @code{inputs} field specifies inputs to the build process---i.e., build-"
8441"time or run-time dependencies of the package. Here, we define an input "
8442"called @code{\"gawk\"} whose value is that of the @var{gawk} variable; "
b9fe8fd6
JL
8443"@var{gawk} is itself bound to a @code{<package>} object."
8444msgstr ""
8445
8446#. type: cindex
8447#: doc/guix.texi:3260
8448#, no-wrap
8449msgid "backquote (quasiquote)"
8450msgstr ""
8451
8452#. type: findex
8453#: doc/guix.texi:3261
8454#, no-wrap
8455msgid "`"
8456msgstr ""
8457
8458#. type: findex
8459#: doc/guix.texi:3262
8460#, no-wrap
8461msgid "quasiquote"
8462msgstr ""
8463
8464#. type: cindex
8465#: doc/guix.texi:3263
8466#, no-wrap
8467msgid "comma (unquote)"
8468msgstr ""
8469
8470#. type: findex
8471#: doc/guix.texi:3264
8472#, no-wrap
8473msgid ","
8474msgstr ""
8475
8476#. type: findex
8477#: doc/guix.texi:3265
8478#, no-wrap
8479msgid "unquote"
8480msgstr ""
8481
8482#. type: findex
8483#: doc/guix.texi:3266
8484#, no-wrap
8485msgid ",@@"
8486msgstr ""
8487
8488#. type: findex
8489#: doc/guix.texi:3267
8490#, no-wrap
8491msgid "unquote-splicing"
8492msgstr ""
8493
8494#. type: itemize
8495#: doc/guix.texi:3273
8496msgid ""
8497"Again, @code{`} (a backquote, synonymous with @code{quasiquote}) allows us "
8498"to introduce a literal list in the @code{inputs} field, while @code{,} (a "
8499"comma, synonymous with @code{unquote}) allows us to insert a value in that "
8500"list (@pxref{Expression Syntax, unquote,, guile, GNU Guile Reference "
8501"Manual})."
8502msgstr ""
8503
8504#. type: itemize
8505#: doc/guix.texi:3277
8506msgid ""
8507"Note that GCC, Coreutils, Bash, and other essential tools do not need to be "
8508"specified as inputs here. Instead, @var{gnu-build-system} takes care of "
8509"ensuring that they are present (@pxref{Build Systems})."
8510msgstr ""
8511
8512#. type: itemize
8513#: doc/guix.texi:3281
8514msgid ""
8515"However, any other dependencies need to be specified in the @code{inputs} "
8516"field. Any dependency not specified here will simply be unavailable to the "
8517"build process, possibly leading to a build failure."
8518msgstr ""
8519
8520#. type: Plain text
8521#: doc/guix.texi:3284
8522msgid "@xref{package Reference}, for a full description of possible fields."
8523msgstr ""
8524
8525#. type: Plain text
8526#: doc/guix.texi:3295
8527msgid ""
8528"Once a package definition is in place, the package may actually be built "
8529"using the @code{guix build} command-line tool (@pxref{Invoking guix build}), "
8530"troubleshooting any build failures you encounter (@pxref{Debugging Build "
8531"Failures}). You can easily jump back to the package definition using the "
8532"@command{guix edit} command (@pxref{Invoking guix edit}). @xref{Packaging "
8533"Guidelines}, for more information on how to test package definitions, and "
8534"@ref{Invoking guix lint}, for information on how to check a definition for "
8535"style conformance."
8536msgstr ""
8537
8538#. type: vindex
8539#: doc/guix.texi:3295
8540#, no-wrap
8541msgid "GUIX_PACKAGE_PATH"
8542msgstr ""
8543
8544#. type: Plain text
8545#: doc/guix.texi:3299
8546msgid ""
8547"Lastly, @pxref{Package Modules}, for information on how to extend the "
8548"distribution by adding your own package definitions to "
8549"@code{GUIX_PACKAGE_PATH}."
8550msgstr ""
8551
8552#. type: Plain text
8553#: doc/guix.texi:3303
8554msgid ""
8555"Finally, updating the package definition to a new upstream version can be "
8556"partly automated by the @command{guix refresh} command (@pxref{Invoking guix "
8557"refresh})."
8558msgstr ""
8559
8560#. type: Plain text
8561#: doc/guix.texi:3309
8562msgid ""
8563"Behind the scenes, a derivation corresponding to the @code{<package>} object "
8564"is first computed by the @code{package-derivation} procedure. That "
8565"derivation is stored in a @code{.drv} file under @file{/gnu/store}. The "
39764ef8
JL
8566"build actions it prescribes may then be realized by using the @code{build-"
8567"derivations} procedure (@pxref{The Store})."
b9fe8fd6
JL
8568msgstr ""
8569
8570#. type: deffn
8571#: doc/guix.texi:3310
8572#, no-wrap
39764ef8 8573msgid "{Scheme Procedure} package-derivation @var{store} @var{package} [@var{system}]"
b9fe8fd6
JL
8574msgstr ""
8575
8576#. type: deffn
8577#: doc/guix.texi:3313
8578msgid ""
8579"Return the @code{<derivation>} object of @var{package} for @var{system} "
8580"(@pxref{Derivations})."
8581msgstr ""
8582
8583#. type: deffn
8584#: doc/guix.texi:3319
8585msgid ""
8586"@var{package} must be a valid @code{<package>} object, and @var{system} must "
8587"be a string denoting the target system type---e.g., @code{\"x86_64-linux\"} "
8588"for an x86_64 Linux-based GNU system. @var{store} must be a connection to "
8589"the daemon, which operates on the store (@pxref{The Store})."
8590msgstr ""
8591
8592#. type: Plain text
8593#: doc/guix.texi:3325
8594msgid ""
8595"Similarly, it is possible to compute a derivation that cross-builds a "
8596"package for some other system:"
8597msgstr ""
8598
8599#. type: deffn
8600#: doc/guix.texi:3326
8601#, no-wrap
8602msgid "{Scheme Procedure} package-cross-derivation @var{store} @"
8603msgstr ""
8604
8605#. type: deffn
8606#: doc/guix.texi:3330
8607msgid ""
8608"@var{package} @var{target} [@var{system}] Return the @code{<derivation>} "
8609"object of @var{package} cross-built from @var{system} to @var{target}."
8610msgstr ""
8611
8612#. type: deffn
8613#: doc/guix.texi:3335
8614msgid ""
8615"@var{target} must be a valid GNU triplet denoting the target hardware and "
8616"operating system, such as @code{\"mips64el-linux-gnu\"} "
8617"(@pxref{Configuration Names, GNU configuration triplets,, configure, GNU "
8618"Configure and Build System})."
8619msgstr ""
8620
8621#. type: cindex
8622#: doc/guix.texi:3337
8623#, no-wrap
8624msgid "package transformations"
8625msgstr ""
8626
8627#. type: cindex
8628#: doc/guix.texi:3338
8629#, no-wrap
8630msgid "input rewriting"
8631msgstr ""
8632
8633#. type: cindex
8634#: doc/guix.texi:3339
8635#, no-wrap
8636msgid "dependency tree rewriting"
8637msgstr ""
8638
8639#. type: Plain text
8640#: doc/guix.texi:3343
8641msgid ""
8642"Packages can be manipulated in arbitrary ways. An example of a useful "
8643"transformation is @dfn{input rewriting}, whereby the dependency tree of a "
8644"package is rewritten by replacing specific inputs by others:"
8645msgstr ""
8646
8647#. type: deffn
8648#: doc/guix.texi:3344
8649#, no-wrap
8650msgid "{Scheme Procedure} package-input-rewriting @var{replacements} @"
8651msgstr ""
8652
8653#. type: deffn
8654#: doc/guix.texi:3351
8655msgid ""
8656"[@var{rewrite-name}] Return a procedure that, when passed a package, "
8657"replaces its direct and indirect dependencies (but not its implicit inputs) "
8658"according to @var{replacements}. @var{replacements} is a list of package "
8659"pairs; the first element of each pair is the package to replace, and the "
8660"second one is the replacement."
8661msgstr ""
8662
8663#. type: deffn
8664#: doc/guix.texi:3354
8665msgid ""
8666"Optionally, @var{rewrite-name} is a one-argument procedure that takes the "
8667"name of a package and returns its new name after rewrite."
8668msgstr ""
8669
8670#. type: Plain text
8671#: doc/guix.texi:3358
8672msgid "Consider this example:"
8673msgstr ""
8674
8675#. type: example
8676#: doc/guix.texi:3364
8677#, no-wrap
8678msgid ""
8679"(define libressl-instead-of-openssl\n"
8680" ;; This is a procedure to replace OPENSSL by LIBRESSL,\n"
8681" ;; recursively.\n"
8682" (package-input-rewriting `((,openssl . ,libressl))))\n"
8683"\n"
8684msgstr ""
8685
8686#. type: example
8687#: doc/guix.texi:3367
8688#, no-wrap
8689msgid ""
8690"(define git-with-libressl\n"
8691" (libressl-instead-of-openssl git))\n"
8692msgstr ""
8693
8694#. type: Plain text
8695#: doc/guix.texi:3375
8696msgid ""
8697"Here we first define a rewriting procedure that replaces @var{openssl} with "
8698"@var{libressl}. Then we use it to define a @dfn{variant} of the @var{git} "
8699"package that uses @var{libressl} instead of @var{openssl}. This is exactly "
8700"what the @option{--with-input} command-line option does (@pxref{Package "
8701"Transformation Options, @option{--with-input}})."
8702msgstr ""
8703
8704#. type: Plain text
8705#: doc/guix.texi:3379
8706msgid ""
8707"A more generic procedure to rewrite a package dependency graph is "
8708"@code{package-mapping}: it supports arbitrary changes to nodes in the graph."
8709msgstr ""
8710
8711#. type: deffn
8712#: doc/guix.texi:3380
8713#, no-wrap
8714msgid "{Scheme Procedure} package-mapping @var{proc} [@var{cut?}]"
8715msgstr ""
8716
8717#. type: deffn
8718#: doc/guix.texi:3384
8719msgid ""
8720"Return a procedure that, given a package, applies @var{proc} to all the "
8721"packages depended on and returns the resulting package. The procedure stops "
8722"recursion when @var{cut?} returns true for a given package."
8723msgstr ""
8724
8725#. type: subsection
8726#: doc/guix.texi:3393
8727#, no-wrap
8728msgid "@code{package} Reference"
8729msgstr ""
8730
8731#. type: Plain text
8732#: doc/guix.texi:3397
8733msgid ""
8734"This section summarizes all the options available in @code{package} "
8735"declarations (@pxref{Defining Packages})."
8736msgstr ""
8737
8738#. type: deftp
8739#: doc/guix.texi:3398
8740#, no-wrap
8741msgid "{Data Type} package"
8742msgstr ""
8743
8744#. type: deftp
8745#: doc/guix.texi:3400
8746msgid "This is the data type representing a package recipe."
8747msgstr ""
8748
8749#. type: table
8750#: doc/guix.texi:3404
8751msgid "The name of the package, as a string."
8752msgstr ""
8753
8754#. type: code{#1}
8755#: doc/guix.texi:3405
8756#, no-wrap
8757msgid "version"
8758msgstr ""
8759
8760#. type: table
8761#: doc/guix.texi:3407
8762msgid "The version of the package, as a string."
8763msgstr ""
8764
8765#. type: code{#1}
8766#: doc/guix.texi:3408 doc/guix.texi:6743 doc/guix.texi:9281 doc/guix.texi:9569
8767#, no-wrap
8768msgid "source"
8769msgstr ""
8770
8771#. type: table
8772#: doc/guix.texi:3415
8773msgid ""
8774"An object telling how the source code for the package should be acquired. "
8775"Most of the time, this is an @code{origin} object, which denotes a file "
8776"fetched from the Internet (@pxref{origin Reference}). It can also be any "
8777"other ``file-like'' object such as a @code{local-file}, which denotes a file "
8778"from the local file system (@pxref{G-Expressions, @code{local-file}})."
8779msgstr ""
8780
8781#. type: code{#1}
8782#: doc/guix.texi:3416
8783#, no-wrap
8784msgid "build-system"
8785msgstr ""
8786
8787#. type: table
8788#: doc/guix.texi:3419
8789msgid ""
8790"The build system that should be used to build the package (@pxref{Build "
8791"Systems})."
8792msgstr ""
8793
8794#. type: item
39764ef8 8795#: doc/guix.texi:3420 doc/guix.texi:11018
b9fe8fd6
JL
8796#, no-wrap
8797msgid "@code{arguments} (default: @code{'()})"
8798msgstr ""
8799
8800#. type: table
8801#: doc/guix.texi:3423
8802msgid ""
8803"The arguments that should be passed to the build system. This is a list, "
8804"typically containing sequential keyword-value pairs."
8805msgstr ""
8806
8807#. type: item
8808#: doc/guix.texi:3424
8809#, no-wrap
8810msgid "@code{inputs} (default: @code{'()})"
8811msgstr ""
8812
8813#. type: itemx
8814#: doc/guix.texi:3425
8815#, no-wrap
8816msgid "@code{native-inputs} (default: @code{'()})"
8817msgstr ""
8818
8819#. type: itemx
8820#: doc/guix.texi:3426
8821#, no-wrap
8822msgid "@code{propagated-inputs} (default: @code{'()})"
8823msgstr ""
8824
8825#. type: cindex
8826#: doc/guix.texi:3427
8827#, no-wrap
8828msgid "inputs, of packages"
8829msgstr ""
8830
8831#. type: table
8832#: doc/guix.texi:3435
8833msgid ""
8834"These fields list dependencies of the package. Each one is a list of "
8835"tuples, where each tuple has a label for the input (a string) as its first "
8836"element, a package, origin, or derivation as its second element, and "
8837"optionally the name of the output thereof that should be used, which "
8838"defaults to @code{\"out\"} (@pxref{Packages with Multiple Outputs}, for more "
8839"on package outputs). For example, the list below specifies three inputs:"
8840msgstr ""
8841
8842#. type: example
8843#: doc/guix.texi:3440
8844#, no-wrap
8845msgid ""
8846"`((\"libffi\" ,libffi)\n"
8847" (\"libunistring\" ,libunistring)\n"
8848" (\"glib:bin\" ,glib \"bin\")) ;the \"bin\" output of Glib\n"
8849msgstr ""
8850
8851#. type: cindex
8852#: doc/guix.texi:3442
8853#, no-wrap
8854msgid "cross compilation, package dependencies"
8855msgstr ""
8856
8857#. type: table
8858#: doc/guix.texi:3448
8859msgid ""
8860"The distinction between @code{native-inputs} and @code{inputs} is necessary "
8861"when considering cross-compilation. When cross-compiling, dependencies "
8862"listed in @code{inputs} are built for the @emph{target} architecture; "
8863"conversely, dependencies listed in @code{native-inputs} are built for the "
8864"architecture of the @emph{build} machine."
8865msgstr ""
8866
8867#. type: table
8868#: doc/guix.texi:3453
8869msgid ""
8870"@code{native-inputs} is typically used to list tools needed at build time, "
8871"but not at run time, such as Autoconf, Automake, pkg-config, Gettext, or "
8872"Bison. @command{guix lint} can report likely mistakes in this area "
8873"(@pxref{Invoking guix lint})."
8874msgstr ""
8875
8876#. type: anchor{#1}
8877#: doc/guix.texi:3460
8878msgid "package-propagated-inputs"
8879msgstr ""
8880
8881#. type: table
8882#: doc/guix.texi:3460
8883msgid ""
8884"Lastly, @code{propagated-inputs} is similar to @code{inputs}, but the "
8885"specified packages will be automatically installed alongside the package "
8886"they belong to (@pxref{package-cmd-propagated-inputs, @command{guix "
8887"package}}, for information on how @command{guix package} deals with "
8888"propagated inputs.)"
8889msgstr ""
8890
8891#. type: table
8892#: doc/guix.texi:3464
8893msgid ""
8894"For example this is necessary when a C/C++ library needs headers of another "
8895"library to compile, or when a pkg-config file refers to another one @i{via} "
8896"its @code{Requires} field."
8897msgstr ""
8898
8899#. type: table
8900#: doc/guix.texi:3471
8901msgid ""
8902"Another example where @code{propagated-inputs} is useful is for languages "
8903"that lack a facility to record the run-time search path akin to the "
8904"@code{RUNPATH} of ELF files; this includes Guile, Python, Perl, and more. "
8905"To ensure that libraries written in those languages can find library code "
8906"they depend on at run time, run-time dependencies must be listed in "
8907"@code{propagated-inputs} rather than @code{inputs}."
8908msgstr ""
8909
8910#. type: item
8911#: doc/guix.texi:3472
8912#, no-wrap
8913msgid "@code{self-native-input?} (default: @code{#f})"
8914msgstr ""
8915
8916#. type: table
8917#: doc/guix.texi:3475
8918msgid ""
8919"This is a Boolean field telling whether the package should use itself as a "
8920"native input when cross-compiling."
8921msgstr ""
8922
8923#. type: item
8924#: doc/guix.texi:3476
8925#, no-wrap
8926msgid "@code{outputs} (default: @code{'(\"out\")})"
8927msgstr ""
8928
8929#. type: table
8930#: doc/guix.texi:3479
8931msgid ""
8932"The list of output names of the package. @xref{Packages with Multiple "
8933"Outputs}, for typical uses of additional outputs."
8934msgstr ""
8935
8936#. type: item
8937#: doc/guix.texi:3480
8938#, no-wrap
8939msgid "@code{native-search-paths} (default: @code{'()})"
8940msgstr ""
8941
8942#. type: itemx
8943#: doc/guix.texi:3481
8944#, no-wrap
8945msgid "@code{search-paths} (default: @code{'()})"
8946msgstr ""
8947
8948#. type: table
8949#: doc/guix.texi:3484
8950msgid ""
8951"A list of @code{search-path-specification} objects describing search-path "
8952"environment variables honored by the package."
8953msgstr ""
8954
8955#. type: item
8956#: doc/guix.texi:3485
8957#, no-wrap
8958msgid "@code{replacement} (default: @code{#f})"
8959msgstr ""
8960
8961#. type: table
8962#: doc/guix.texi:3489
8963msgid ""
8964"This must be either @code{#f} or a package object that will be used as a "
8965"@dfn{replacement} for this package. @xref{Security Updates, grafts}, for "
8966"details."
8967msgstr ""
8968
8969#. type: item
8970#: doc/guix.texi:3490 doc/guix.texi:6735
8971#, no-wrap
8972msgid "synopsis"
8973msgstr ""
8974
8975#. type: table
8976#: doc/guix.texi:3492
8977msgid "A one-line description of the package."
8978msgstr ""
8979
8980#. type: item
39764ef8 8981#: doc/guix.texi:3493 doc/guix.texi:6736 doc/guix.texi:21027
b9fe8fd6
JL
8982#, no-wrap
8983msgid "description"
8984msgstr ""
8985
8986#. type: table
8987#: doc/guix.texi:3495
8988msgid "A more elaborate description of the package."
8989msgstr ""
8990
8991#. type: code{#1}
8992#: doc/guix.texi:3496
8993#, no-wrap
8994msgid "license"
8995msgstr ""
8996
8997#. type: cindex
8998#: doc/guix.texi:3497
8999#, no-wrap
9000msgid "license, of packages"
9001msgstr ""
9002
9003#. type: table
9004#: doc/guix.texi:3500
9005msgid ""
9006"The license of the package; a value from @code{(guix licenses)}, or a list "
9007"of such values."
9008msgstr ""
9009
9010#. type: itemx
9011#: doc/guix.texi:3501 doc/guix.texi:6744
9012#, no-wrap
9013msgid "home-page"
9014msgstr ""
9015
9016#. type: table
9017#: doc/guix.texi:3503
9018msgid "The URL to the home-page of the package, as a string."
9019msgstr ""
9020
9021#. type: item
9022#: doc/guix.texi:3504
9023#, no-wrap
9024msgid "@code{supported-systems} (default: @var{%supported-systems})"
9025msgstr ""
9026
9027#. type: table
9028#: doc/guix.texi:3507
9029msgid ""
9030"The list of systems supported by the package, as strings of the form "
9031"@code{architecture-kernel}, for example @code{\"x86_64-linux\"}."
9032msgstr ""
9033
9034#. type: item
9035#: doc/guix.texi:3508
9036#, no-wrap
9037msgid "@code{maintainers} (default: @code{'()})"
9038msgstr ""
9039
9040#. type: table
9041#: doc/guix.texi:3510
9042msgid "The list of maintainers of the package, as @code{maintainer} objects."
9043msgstr ""
9044
9045#. type: item
9046#: doc/guix.texi:3511
9047#, no-wrap
9048msgid "@code{location} (default: source location of the @code{package} form)"
9049msgstr ""
9050
9051#. type: table
9052#: doc/guix.texi:3515
9053msgid ""
9054"The source location of the package. It is useful to override this when "
9055"inheriting from another package, in which case this field is not "
9056"automatically corrected."
9057msgstr ""
9058
9059#. type: subsection
9060#: doc/guix.texi:3520
9061#, no-wrap
9062msgid "@code{origin} Reference"
9063msgstr ""
9064
9065#. type: Plain text
9066#: doc/guix.texi:3524
9067msgid ""
9068"This section summarizes all the options available in @code{origin} "
9069"declarations (@pxref{Defining Packages})."
9070msgstr ""
9071
9072#. type: deftp
9073#: doc/guix.texi:3525
9074#, no-wrap
9075msgid "{Data Type} origin"
9076msgstr ""
9077
9078#. type: deftp
9079#: doc/guix.texi:3527
9080msgid "This is the data type representing a source code origin."
9081msgstr ""
9082
9083#. type: code{#1}
39764ef8 9084#: doc/guix.texi:3529 doc/guix.texi:15696
b9fe8fd6
JL
9085#, no-wrap
9086msgid "uri"
9087msgstr ""
9088
9089#. type: table
9090#: doc/guix.texi:3534
9091msgid ""
9092"An object containing the URI of the source. The object type depends on the "
9093"@code{method} (see below). For example, when using the @var{url-fetch} "
9094"method of @code{(guix download)}, the valid @code{uri} values are: a URL "
9095"represented as a string, or a list thereof."
9096msgstr ""
9097
9098#. type: code{#1}
9099#: doc/guix.texi:3535
9100#, no-wrap
9101msgid "method"
9102msgstr ""
9103
9104#. type: table
9105#: doc/guix.texi:3537
9106msgid "A procedure that handles the URI."
9107msgstr ""
9108
9109#. type: table
9110#: doc/guix.texi:3539
9111msgid "Examples include:"
9112msgstr ""
9113
9114#. type: item
9115#: doc/guix.texi:3541
9116#, no-wrap
9117msgid "@var{url-fetch} from @code{(guix download)}"
9118msgstr ""
9119
9120#. type: table
9121#: doc/guix.texi:3544
9122msgid ""
9123"download a file from the HTTP, HTTPS, or FTP URL specified in the @code{uri} "
9124"field;"
9125msgstr ""
9126
9127#. type: vindex
9128#: doc/guix.texi:3545 doc/guix.texi:6097
9129#, no-wrap
9130msgid "git-fetch"
9131msgstr ""
9132
9133#. type: item
9134#: doc/guix.texi:3546
9135#, no-wrap
9136msgid "@var{git-fetch} from @code{(guix git-download)}"
9137msgstr ""
9138
9139#. type: table
9140#: doc/guix.texi:3550
9141msgid ""
9142"clone the Git version control repository, and check out the revision "
9143"specified in the @code{uri} field as a @code{git-reference} object; a "
9144"@code{git-reference} looks like this:"
9145msgstr ""
9146
9147#. type: example
9148#: doc/guix.texi:3555
9149#, no-wrap
9150msgid ""
9151"(git-reference\n"
9152" (url \"git://git.debian.org/git/pkg-shadow/shadow\")\n"
9153" (commit \"v4.1.5.1\"))\n"
9154msgstr ""
9155
9156#. type: code{#1}
9157#: doc/guix.texi:3558
9158#, no-wrap
9159msgid "sha256"
9160msgstr ""
9161
9162#. type: table
9163#: doc/guix.texi:3562
9164msgid ""
9165"A bytevector containing the SHA-256 hash of the source. Typically the "
9166"@code{base32} form is used here to generate the bytevector from a base-32 "
9167"string."
9168msgstr ""
9169
9170#. type: table
9171#: doc/guix.texi:3566
9172msgid ""
9173"You can obtain this information using @code{guix download} (@pxref{Invoking "
9174"guix download}) or @code{guix hash} (@pxref{Invoking guix hash})."
9175msgstr ""
9176
9177#. type: item
9178#: doc/guix.texi:3567
9179#, no-wrap
9180msgid "@code{file-name} (default: @code{#f})"
9181msgstr ""
9182
9183#. type: table
9184#: doc/guix.texi:3573
9185msgid ""
9186"The file name under which the source code should be saved. When this is "
9187"@code{#f}, a sensible default value will be used in most cases. In case the "
9188"source is fetched from a URL, the file name from the URL will be used. For "
9189"version control checkouts, it is recommended to provide the file name "
9190"explicitly because the default is not very descriptive."
9191msgstr ""
9192
9193#. type: item
9194#: doc/guix.texi:3574
9195#, no-wrap
9196msgid "@code{patches} (default: @code{'()})"
9197msgstr ""
9198
9199#. type: table
9200#: doc/guix.texi:3577
9201msgid ""
9202"A list of file names, origins, or file-like objects (@pxref{G-Expressions, "
9203"file-like objects}) pointing to patches to be applied to the source."
9204msgstr ""
9205
9206#. type: table
9207#: doc/guix.texi:3581
9208msgid ""
9209"This list of patches must be unconditional. In particular, it cannot depend "
9210"on the value of @code{%current-system} or @code{%current-target-system}."
9211msgstr ""
9212
9213#. type: item
9214#: doc/guix.texi:3582
9215#, no-wrap
9216msgid "@code{snippet} (default: @code{#f})"
9217msgstr ""
9218
9219#. type: table
9220#: doc/guix.texi:3586
9221msgid ""
9222"A G-expression (@pxref{G-Expressions}) or S-expression that will be run in "
9223"the source directory. This is a convenient way to modify the source, "
9224"sometimes more convenient than a patch."
9225msgstr ""
9226
9227#. type: item
9228#: doc/guix.texi:3587
9229#, no-wrap
9230msgid "@code{patch-flags} (default: @code{'(\"-p1\")})"
9231msgstr ""
9232
9233#. type: table
9234#: doc/guix.texi:3590
9235msgid ""
9236"A list of command-line flags that should be passed to the @code{patch} "
9237"command."
9238msgstr ""
9239
9240#. type: item
9241#: doc/guix.texi:3591
9242#, no-wrap
9243msgid "@code{patch-inputs} (default: @code{#f})"
9244msgstr ""
9245
9246#. type: table
9247#: doc/guix.texi:3595
9248msgid ""
9249"Input packages or derivations to the patching process. When this is "
9250"@code{#f}, the usual set of inputs necessary for patching are provided, such "
9251"as GNU@tie{}Patch."
9252msgstr ""
9253
9254#. type: item
9255#: doc/guix.texi:3596
9256#, no-wrap
9257msgid "@code{modules} (default: @code{'()})"
9258msgstr ""
9259
9260#. type: table
9261#: doc/guix.texi:3599
9262msgid ""
9263"A list of Guile modules that should be loaded during the patching process "
9264"and while running the code in the @code{snippet} field."
9265msgstr ""
9266
9267#. type: item
9268#: doc/guix.texi:3600
9269#, no-wrap
9270msgid "@code{patch-guile} (default: @code{#f})"
9271msgstr ""
9272
9273#. type: table
9274#: doc/guix.texi:3603
9275msgid ""
9276"The Guile package that should be used in the patching process. When this is "
9277"@code{#f}, a sensible default is used."
9278msgstr ""
9279
9280#. type: cindex
9281#: doc/guix.texi:3610
9282#, no-wrap
9283msgid "build system"
9284msgstr ""
9285
9286#. type: Plain text
9287#: doc/guix.texi:3615
9288msgid ""
9289"Each package definition specifies a @dfn{build system} and arguments for "
9290"that build system (@pxref{Defining Packages}). This @code{build-system} "
9291"field represents the build procedure of the package, as well as implicit "
9292"dependencies of that build procedure."
9293msgstr ""
9294
9295#. type: Plain text
9296#: doc/guix.texi:3619
9297msgid ""
9298"Build systems are @code{<build-system>} objects. The interface to create "
9299"and manipulate them is provided by the @code{(guix build-system)} module, "
9300"and actual build systems are exported by specific modules."
9301msgstr ""
9302
9303#. type: cindex
9304#: doc/guix.texi:3620
9305#, no-wrap
9306msgid "bag (low-level package representation)"
9307msgstr ""
9308
9309#. type: Plain text
9310#: doc/guix.texi:3627
9311msgid ""
9312"Under the hood, build systems first compile package objects to @dfn{bags}. "
9313"A @dfn{bag} is like a package, but with less ornamentation---in other words, "
9314"a bag is a lower-level representation of a package, which includes all the "
9315"inputs of that package, including some that were implicitly added by the "
9316"build system. This intermediate representation is then compiled to a "
9317"derivation (@pxref{Derivations})."
9318msgstr ""
9319
9320#. type: Plain text
9321#: doc/guix.texi:3635
9322msgid ""
9323"Build systems accept an optional list of @dfn{arguments}. In package "
9324"definitions, these are passed @i{via} the @code{arguments} field "
9325"(@pxref{Defining Packages}). They are typically keyword arguments "
9326"(@pxref{Optional Arguments, keyword arguments in Guile,, guile, GNU Guile "
9327"Reference Manual}). The value of these arguments is usually evaluated in "
9328"the @dfn{build stratum}---i.e., by a Guile process launched by the daemon "
9329"(@pxref{Derivations})."
9330msgstr ""
9331
9332#. type: Plain text
9333#: doc/guix.texi:3639
9334msgid ""
9335"The main build system is @var{gnu-build-system}, which implements the "
9336"standard build procedure for GNU and many other packages. It is provided by "
9337"the @code{(guix build-system gnu)} module."
9338msgstr ""
9339
9340#. type: defvr
9341#: doc/guix.texi:3640
9342#, no-wrap
9343msgid "{Scheme Variable} gnu-build-system"
9344msgstr ""
9345
9346#. type: defvr
9347#: doc/guix.texi:3644
9348msgid ""
9349"@var{gnu-build-system} represents the GNU Build System, and variants thereof "
9350"(@pxref{Configuration, configuration and makefile conventions,, standards, "
9351"GNU Coding Standards})."
9352msgstr ""
9353
9354#. type: cindex
9355#: doc/guix.texi:3645
9356#, no-wrap
9357msgid "build phases"
9358msgstr ""
9359
9360#. type: defvr
9361#: doc/guix.texi:3652
9362msgid ""
9363"In a nutshell, packages using it are configured, built, and installed with "
9364"the usual @code{./configure && make && make check && make install} command "
9365"sequence. In practice, a few additional steps are often needed. All these "
9366"steps are split up in separate @dfn{phases}, notably@footnote{Please see the "
9367"@code{(guix build gnu-build-system)} modules for more details about the "
9368"build phases.}:"
9369msgstr ""
9370
9371#. type: item
9372#: doc/guix.texi:3654
9373#, no-wrap
9374msgid "unpack"
9375msgstr ""
9376
9377#. type: table
9378#: doc/guix.texi:3658
9379msgid ""
9380"Unpack the source tarball, and change the current directory to the extracted "
9381"source tree. If the source is actually a directory, copy it to the build "
9382"tree, and enter that directory."
9383msgstr ""
9384
9385#. type: item
9386#: doc/guix.texi:3659
9387#, no-wrap
9388msgid "patch-source-shebangs"
9389msgstr ""
9390
9391#. type: table
9392#: doc/guix.texi:3663
9393msgid ""
9394"Patch shebangs encountered in source files so they refer to the right store "
39764ef8
JL
9395"file names. For instance, this changes @code{#!/bin/sh} to @code{#!/gnu/"
9396"store/@dots{}-bash-4.3/bin/sh}."
b9fe8fd6
JL
9397msgstr ""
9398
9399#. type: item
9400#: doc/guix.texi:3664 doc/guix.texi:4130
9401#, no-wrap
9402msgid "configure"
9403msgstr ""
9404
9405#. type: table
9406#: doc/guix.texi:3668
9407msgid ""
9408"Run the @file{configure} script with a number of default options, such as "
9409"@code{--prefix=/gnu/store/@dots{}}, as well as the options specified by the "
9410"@code{#:configure-flags} argument."
9411msgstr ""
9412
9413#. type: item
39764ef8 9414#: doc/guix.texi:3669 doc/guix.texi:4135 doc/guix.texi:20437
b9fe8fd6
JL
9415#, no-wrap
9416msgid "build"
9417msgstr ""
9418
9419#. type: table
9420#: doc/guix.texi:3673
9421msgid ""
9422"Run @code{make} with the list of flags specified with @code{#:make-flags}. "
9423"If the @code{#:parallel-build?} argument is true (the default), build with "
9424"@code{make -j}."
9425msgstr ""
9426
9427#. type: item
9428#: doc/guix.texi:3674 doc/guix.texi:4139
9429#, no-wrap
9430msgid "check"
9431msgstr ""
9432
9433#. type: table
9434#: doc/guix.texi:3679
9435msgid ""
39764ef8
JL
9436"Run @code{make check}, or some other target specified with @code{#:test-"
9437"target}, unless @code{#:tests? #f} is passed. If the @code{#:parallel-"
9438"tests?} argument is true (the default), run @code{make check -j}."
b9fe8fd6
JL
9439msgstr ""
9440
9441#. type: item
9442#: doc/guix.texi:3680 doc/guix.texi:4143
9443#, no-wrap
9444msgid "install"
9445msgstr ""
9446
9447#. type: table
9448#: doc/guix.texi:3682
9449msgid "Run @code{make install} with the flags listed in @code{#:make-flags}."
9450msgstr ""
9451
9452#. type: item
9453#: doc/guix.texi:3683
9454#, no-wrap
9455msgid "patch-shebangs"
9456msgstr ""
9457
9458#. type: table
9459#: doc/guix.texi:3685
9460msgid "Patch shebangs on the installed executable files."
9461msgstr ""
9462
9463#. type: item
9464#: doc/guix.texi:3686
9465#, no-wrap
9466msgid "strip"
9467msgstr ""
9468
9469#. type: table
9470#: doc/guix.texi:3690
9471msgid ""
9472"Strip debugging symbols from ELF files (unless @code{#:strip-binaries?} is "
9473"false), copying them to the @code{debug} output when available "
9474"(@pxref{Installing Debugging Files})."
9475msgstr ""
9476
9477#. type: vindex
9478#: doc/guix.texi:3692
9479#, no-wrap
9480msgid "%standard-phases"
9481msgstr ""
9482
9483#. type: defvr
9484#: doc/guix.texi:3697
9485msgid ""
9486"The build-side module @code{(guix build gnu-build-system)} defines "
39764ef8
JL
9487"@var{%standard-phases} as the default list of build phases. @var{%standard-"
9488"phases} is a list of symbol/procedure pairs, where the procedure implements "
9489"the actual phase."
b9fe8fd6
JL
9490msgstr ""
9491
9492#. type: defvr
9493#: doc/guix.texi:3700
9494msgid ""
9495"The list of phases used for a particular package can be changed with the "
9496"@code{#:phases} parameter. For instance, passing:"
9497msgstr ""
9498
9499#. type: example
9500#: doc/guix.texi:3703
9501#, no-wrap
9502msgid "#:phases (modify-phases %standard-phases (delete 'configure))\n"
9503msgstr ""
9504
9505#. type: defvr
9506#: doc/guix.texi:3707
9507msgid ""
9508"means that all the phases described above will be used, except the "
9509"@code{configure} phase."
9510msgstr ""
9511
9512#. type: defvr
9513#: doc/guix.texi:3714
9514msgid ""
9515"In addition, this build system ensures that the ``standard'' environment for "
9516"GNU packages is available. This includes tools such as GCC, libc, "
39764ef8
JL
9517"Coreutils, Bash, Make, Diffutils, grep, and sed (see the @code{(guix build-"
9518"system gnu)} module for a complete list). We call these the @dfn{implicit "
9519"inputs} of a package, because package definitions do not have to mention "
9520"them."
b9fe8fd6
JL
9521msgstr ""
9522
9523#. type: Plain text
9524#: doc/guix.texi:3721
9525msgid ""
9526"Other @code{<build-system>} objects are defined to support other conventions "
39764ef8
JL
9527"and tools used by free software packages. They inherit most of @var{gnu-"
9528"build-system}, and differ mainly in the set of inputs implicitly added to "
9529"the build process, and in the list of phases executed. Some of these build "
9530"systems are listed below."
b9fe8fd6
JL
9531msgstr ""
9532
9533#. type: defvr
9534#: doc/guix.texi:3722
9535#, no-wrap
9536msgid "{Scheme Variable} ant-build-system"
9537msgstr ""
9538
9539#. type: defvr
9540#: doc/guix.texi:3726
9541msgid ""
9542"This variable is exported by @code{(guix build-system ant)}. It implements "
39764ef8
JL
9543"the build procedure for Java packages that can be built with @url{http://ant."
9544"apache.org/, Ant build tool}."
b9fe8fd6
JL
9545msgstr ""
9546
9547#. type: defvr
9548#: doc/guix.texi:3731
9549msgid ""
9550"It adds both @code{ant} and the @dfn{Java Development Kit} (JDK) as provided "
9551"by the @code{icedtea} package to the set of inputs. Different packages can "
39764ef8 9552"be specified with the @code{#:ant} and @code{#:jdk} parameters, respectively."
b9fe8fd6
JL
9553msgstr ""
9554
9555#. type: defvr
9556#: doc/guix.texi:3737
9557msgid ""
9558"When the original package does not provide a suitable Ant build file, the "
9559"parameter @code{#:jar-name} can be used to generate a minimal Ant build file "
9560"@file{build.xml} with tasks to build the specified jar archive. In this "
39764ef8
JL
9561"case the parameter @code{#:source-dir} can be used to specify the source sub-"
9562"directory, defaulting to ``src''."
b9fe8fd6
JL
9563msgstr ""
9564
9565#. type: defvr
9566#: doc/guix.texi:3745
9567msgid ""
9568"The @code{#:main-class} parameter can be used with the minimal ant buildfile "
9569"to specify the main class of the resulting jar. This makes the jar file "
9570"executable. The @code{#:test-include} parameter can be used to specify the "
9571"list of junit tests to run. It defaults to @code{(list \"**/*Test.java\")}. "
9572"The @code{#:test-exclude} can be used to disable some tests. It defaults to "
9573"@code{(list \"**/Abstract*.java\")}, because abstract classes cannot be run "
9574"as tests."
9575msgstr ""
9576
9577#. type: defvr
9578#: doc/guix.texi:3749
9579msgid ""
9580"The parameter @code{#:build-target} can be used to specify the Ant task that "
9581"should be run during the @code{build} phase. By default the ``jar'' task "
9582"will be run."
9583msgstr ""
9584
9585#. type: defvr
9586#: doc/guix.texi:3752
9587#, no-wrap
9588msgid "{Scheme Variable} asdf-build-system/source"
9589msgstr ""
9590
9591#. type: defvrx
9592#: doc/guix.texi:3753
9593#, no-wrap
9594msgid "{Scheme Variable} asdf-build-system/sbcl"
9595msgstr ""
9596
9597#. type: defvrx
9598#: doc/guix.texi:3754
9599#, no-wrap
9600msgid "{Scheme Variable} asdf-build-system/ecl"
9601msgstr ""
9602
9603#. type: defvr
9604#: doc/guix.texi:3760
9605msgid ""
9606"These variables, exported by @code{(guix build-system asdf)}, implement "
39764ef8
JL
9607"build procedures for Common Lisp packages using @url{https://common-lisp.net/"
9608"project/asdf/, ``ASDF''}. ASDF is a system definition facility for Common "
9609"Lisp programs and libraries."
b9fe8fd6
JL
9610msgstr ""
9611
9612#. type: defvr
9613#: doc/guix.texi:3767
9614msgid ""
9615"The @code{asdf-build-system/source} system installs the packages in source "
9616"form, and can be loaded using any common lisp implementation, via ASDF. The "
9617"others, such as @code{asdf-build-system/sbcl}, install binary systems in the "
9618"format which a particular implementation understands. These build systems "
9619"can also be used to produce executable programs, or lisp images which "
9620"contain a set of packages pre-loaded."
9621msgstr ""
9622
9623#. type: defvr
9624#: doc/guix.texi:3771
9625msgid ""
9626"The build system uses naming conventions. For binary packages, the package "
9627"name should be prefixed with the lisp implementation, such as @code{sbcl-} "
9628"for @code{asdf-build-system/sbcl}."
9629msgstr ""
9630
9631#. type: defvr
9632#: doc/guix.texi:3775
9633msgid ""
9634"Additionally, the corresponding source package should be labeled using the "
9635"same convention as python packages (see @ref{Python Modules}), using the "
9636"@code{cl-} prefix."
9637msgstr ""
9638
9639#. type: defvr
9640#: doc/guix.texi:3780
9641msgid ""
9642"For binary packages, each system should be defined as a Guix package. If "
9643"one package @code{origin} contains several systems, package variants can be "
9644"created in order to build all the systems. Source packages, which use "
9645"@code{asdf-build-system/source}, may contain several systems."
9646msgstr ""
9647
9648#. type: defvr
9649#: doc/guix.texi:3787
9650msgid ""
9651"In order to create executable programs and images, the build-side procedures "
9652"@code{build-program} and @code{build-image} can be used. They should be "
9653"called in a build phase after the @code{create-symlinks} phase, so that the "
9654"system which was just built can be used within the resulting image. "
9655"@code{build-program} requires a list of Common Lisp expressions to be passed "
9656"as the @code{#:entry-program} argument."
9657msgstr ""
9658
9659#. type: defvr
9660#: doc/guix.texi:3796
9661msgid ""
9662"If the system is not defined within its own @code{.asd} file of the same "
9663"name, then the @code{#:asd-file} parameter should be used to specify which "
9664"file the system is defined in. Furthermore, if the package defines a system "
9665"for its tests in a separate file, it will be loaded before the tests are run "
9666"if it is specified by the @code{#:test-asd-file} parameter. If it is not "
9667"set, the files @code{<system>-tests.asd}, @code{<system>-test.asd}, "
9668"@code{tests.asd}, and @code{test.asd} will be tried if they exist."
9669msgstr ""
9670
9671#. type: defvr
9672#: doc/guix.texi:3800
9673msgid ""
9674"If for some reason the package must be named in a different way than the "
9675"naming conventions suggest, the @code{#:asd-system-name} parameter can be "
9676"used to specify the name of the system."
9677msgstr ""
9678
9679#. type: defvr
9680#: doc/guix.texi:3803
9681#, no-wrap
9682msgid "{Scheme Variable} cargo-build-system"
9683msgstr ""
9684
9685#. type: cindex
9686#: doc/guix.texi:3804
9687#, no-wrap
9688msgid "Rust programming language"
9689msgstr ""
9690
9691#. type: cindex
9692#: doc/guix.texi:3805
9693#, no-wrap
9694msgid "Cargo (Rust build system)"
9695msgstr ""
9696
9697#. type: defvr
9698#: doc/guix.texi:3809
9699msgid ""
9700"This variable is exported by @code{(guix build-system cargo)}. It supports "
39764ef8
JL
9701"builds of packages using Cargo, the build tool of the @uref{https://www.rust-"
9702"lang.org, Rust programming language}."
b9fe8fd6
JL
9703msgstr ""
9704
9705#. type: defvr
9706#: doc/guix.texi:3814
9707msgid ""
9708"In its @code{configure} phase, this build system replaces dependencies "
9709"specified in the @file{Carto.toml} file with inputs to the Guix package. "
9710"The @code{install} phase installs the binaries, and it also installs the "
9711"source code and @file{Cargo.toml} file."
9712msgstr ""
9713
9714#. type: defvr
9715#: doc/guix.texi:3816
9716#, no-wrap
9717msgid "{Scheme Variable} cmake-build-system"
9718msgstr ""
9719
9720#. type: defvr
9721#: doc/guix.texi:3820
9722msgid ""
9723"This variable is exported by @code{(guix build-system cmake)}. It "
39764ef8
JL
9724"implements the build procedure for packages using the @url{http://www.cmake."
9725"org, CMake build tool}."
b9fe8fd6
JL
9726msgstr ""
9727
9728#. type: defvr
9729#: doc/guix.texi:3824
9730msgid ""
9731"It automatically adds the @code{cmake} package to the set of inputs. Which "
9732"package is used can be specified with the @code{#:cmake} parameter."
9733msgstr ""
9734
9735#. type: defvr
9736#: doc/guix.texi:3831
9737msgid ""
9738"The @code{#:configure-flags} parameter is taken as a list of flags passed to "
9739"the @command{cmake} command. The @code{#:build-type} parameter specifies in "
9740"abstract terms the flags passed to the compiler; it defaults to "
9741"@code{\"RelWithDebInfo\"} (short for ``release mode with debugging "
39764ef8
JL
9742"information''), which roughly means that code is compiled with @code{-O2 -"
9743"g}, as is the case for Autoconf-based packages by default."
b9fe8fd6
JL
9744msgstr ""
9745
9746#. type: defvr
9747#: doc/guix.texi:3833
9748#, no-wrap
9749msgid "{Scheme Variable} go-build-system"
9750msgstr ""
9751
9752#. type: defvr
9753#: doc/guix.texi:3838
9754msgid ""
9755"This variable is exported by @code{(guix build-system go)}. It implements a "
39764ef8
JL
9756"build procedure for Go packages using the standard @url{https://golang.org/"
9757"cmd/go/#hdr-Compile_packages_and_dependencies, Go build mechanisms}."
b9fe8fd6
JL
9758msgstr ""
9759
9760#. type: defvr
9761#: doc/guix.texi:3849
9762msgid ""
9763"The user is expected to provide a value for the key @code{#:import-path} "
39764ef8
JL
9764"and, in some cases, @code{#:unpack-path}. The @url{https://golang.org/doc/"
9765"code.html#ImportPaths, import path} corresponds to the file system path "
9766"expected by the package's build scripts and any referring packages, and "
9767"provides a unique way to refer to a Go package. It is typically based on a "
9768"combination of the package source code's remote URI and file system "
9769"hierarchy structure. In some cases, you will need to unpack the package's "
9770"source code to a different directory structure than the one indicated by the "
9771"import path, and @code{#:unpack-path} should be used in such cases."
b9fe8fd6
JL
9772msgstr ""
9773
9774#. type: defvr
9775#: doc/guix.texi:3854
9776msgid ""
9777"Packages that provide Go libraries should be installed along with their "
9778"source code. The key @code{#:install-source?}, which defaults to @code{#t}, "
9779"controls whether or not the source code is installed. It can be set to "
9780"@code{#f} for packages that only provide executable files."
9781msgstr ""
9782
9783#. type: defvr
9784#: doc/guix.texi:3856
9785#, no-wrap
9786msgid "{Scheme Variable} glib-or-gtk-build-system"
9787msgstr ""
9788
9789#. type: defvr
9790#: doc/guix.texi:3859
9791msgid ""
9792"This variable is exported by @code{(guix build-system glib-or-gtk)}. It is "
9793"intended for use with packages making use of GLib or GTK+."
9794msgstr ""
9795
9796#. type: defvr
9797#: doc/guix.texi:3862
9798msgid ""
9799"This build system adds the following two phases to the ones defined by "
9800"@var{gnu-build-system}:"
9801msgstr ""
9802
9803#. type: item
9804#: doc/guix.texi:3864 doc/guix.texi:4159
9805#, no-wrap
9806msgid "glib-or-gtk-wrap"
9807msgstr ""
9808
9809#. type: table
9810#: doc/guix.texi:3871
9811msgid ""
9812"The phase @code{glib-or-gtk-wrap} ensures that programs in @file{bin/} are "
39764ef8
JL
9813"able to find GLib ``schemas'' and @uref{https://developer.gnome.org/gtk3/"
9814"stable/gtk-running.html, GTK+ modules}. This is achieved by wrapping the "
9815"programs in launch scripts that appropriately set the @code{XDG_DATA_DIRS} "
9816"and @code{GTK_PATH} environment variables."
b9fe8fd6
JL
9817msgstr ""
9818
9819#. type: table
9820#: doc/guix.texi:3878
9821msgid ""
9822"It is possible to exclude specific package outputs from that wrapping "
39764ef8
JL
9823"process by listing their names in the @code{#:glib-or-gtk-wrap-excluded-"
9824"outputs} parameter. This is useful when an output is known not to contain "
9825"any GLib or GTK+ binaries, and where wrapping would gratuitously add a "
9826"dependency of that output on GLib and GTK+."
b9fe8fd6
JL
9827msgstr ""
9828
9829#. type: item
9830#: doc/guix.texi:3879 doc/guix.texi:4163
9831#, no-wrap
9832msgid "glib-or-gtk-compile-schemas"
9833msgstr ""
9834
9835#. type: table
9836#: doc/guix.texi:3887
9837msgid ""
9838"The phase @code{glib-or-gtk-compile-schemas} makes sure that all "
9839"@uref{https://developer.gnome.org/gio/stable/glib-compile-schemas.html, "
9840"GSettings schemas} of GLib are compiled. Compilation is performed by the "
9841"@command{glib-compile-schemas} program. It is provided by the package "
9842"@code{glib:bin} which is automatically imported by the build system. The "
9843"@code{glib} package providing @command{glib-compile-schemas} can be "
9844"specified with the @code{#:glib} parameter."
9845msgstr ""
9846
9847#. type: defvr
9848#: doc/guix.texi:3890
9849msgid "Both phases are executed after the @code{install} phase."
9850msgstr ""
9851
9852#. type: defvr
9853#: doc/guix.texi:3892
9854#, no-wrap
9855msgid "{Scheme Variable} minify-build-system"
9856msgstr ""
9857
9858#. type: defvr
9859#: doc/guix.texi:3895
9860msgid ""
9861"This variable is exported by @code{(guix build-system minify)}. It "
9862"implements a minification procedure for simple JavaScript packages."
9863msgstr ""
9864
9865#. type: defvr
9866#: doc/guix.texi:3901
9867msgid ""
9868"It adds @code{uglify-js} to the set of inputs and uses it to compress all "
9869"JavaScript files in the @file{src} directory. A different minifier package "
9870"can be specified with the @code{#:uglify-js} parameter, but it is expected "
9871"that the package writes the minified code to the standard output."
9872msgstr ""
9873
9874#. type: defvr
9875#: doc/guix.texi:3905
9876msgid ""
9877"When the input JavaScript files are not all located in the @file{src} "
9878"directory, the parameter @code{#:javascript-files} can be used to specify a "
9879"list of file names to feed to the minifier."
9880msgstr ""
9881
9882#. type: defvr
9883#: doc/guix.texi:3907
9884#, no-wrap
9885msgid "{Scheme Variable} ocaml-build-system"
9886msgstr ""
9887
9888#. type: defvr
9889#: doc/guix.texi:3913
9890msgid ""
9891"This variable is exported by @code{(guix build-system ocaml)}. It "
9892"implements a build procedure for @uref{https://ocaml.org, OCaml} packages, "
9893"which consists of choosing the correct set of commands to run for each "
9894"package. OCaml packages can expect many different commands to be run. This "
9895"build system will try some of them."
9896msgstr ""
9897
9898#. type: defvr
9899#: doc/guix.texi:3923
9900msgid ""
9901"When the package has a @file{setup.ml} file present at the top-level, it "
9902"will run @code{ocaml setup.ml -configure}, @code{ocaml setup.ml -build} and "
9903"@code{ocaml setup.ml -install}. The build system will assume that this file "
9904"was generated by @uref{http://oasis.forge.ocamlcore.org/, OASIS} and will "
9905"take care of setting the prefix and enabling tests if they are not "
39764ef8
JL
9906"disabled. You can pass configure and build flags with the @code{#:configure-"
9907"flags} and @code{#:build-flags}. The @code{#:test-flags} key can be passed "
9908"to change the set of flags used to enable tests. The @code{#:use-make?} key "
9909"can be used to bypass this system in the build and install phases."
b9fe8fd6
JL
9910msgstr ""
9911
9912#. type: defvr
9913#: doc/guix.texi:3928
9914msgid ""
9915"When the package has a @file{configure} file, it is assumed that it is a "
9916"hand-made configure script that requires a different argument format than in "
39764ef8
JL
9917"the @code{gnu-build-system}. You can add more flags with the @code{#:"
9918"configure-flags} key."
b9fe8fd6
JL
9919msgstr ""
9920
9921#. type: defvr
9922#: doc/guix.texi:3932
9923msgid ""
9924"When the package has a @file{Makefile} file (or @code{#:use-make?} is "
9925"@code{#t}), it will be used and more flags can be passed to the build and "
9926"install phases with the @code{#:make-flags} key."
9927msgstr ""
9928
9929#. type: defvr
9930#: doc/guix.texi:3940
9931msgid ""
9932"Finally, some packages do not have these files and use a somewhat standard "
9933"location for its build system. In that case, the build system will run "
9934"@code{ocaml pkg/pkg.ml} or @code{ocaml pkg/build.ml} and take care of "
9935"providing the path to the required findlib module. Additional flags can be "
9936"passed via the @code{#:build-flags} key. Install is taken care of by "
9937"@command{opam-installer}. In this case, the @code{opam} package must be "
9938"added to the @code{native-inputs} field of the package definition."
9939msgstr ""
9940
9941#. type: defvr
9942#: doc/guix.texi:3948
9943msgid ""
9944"Note that most OCaml packages assume they will be installed in the same "
9945"directory as OCaml, which is not what we want in guix. In particular, they "
9946"will install @file{.so} files in their module's directory, which is usually "
9947"fine because it is in the OCaml compiler directory. In guix though, these "
9948"libraries cannot be found and we use @code{CAML_LD_LIBRARY_PATH}. This "
9949"variable points to @file{lib/ocaml/site-lib/stubslibs} and this is where "
9950"@file{.so} libraries should be installed."
9951msgstr ""
9952
9953#. type: defvr
9954#: doc/guix.texi:3950
9955#, no-wrap
9956msgid "{Scheme Variable} python-build-system"
9957msgstr ""
9958
9959#. type: defvr
9960#: doc/guix.texi:3955
9961msgid ""
9962"This variable is exported by @code{(guix build-system python)}. It "
9963"implements the more or less standard build procedure used by Python "
9964"packages, which consists in running @code{python setup.py build} and then "
9965"@code{python setup.py install --prefix=/gnu/store/@dots{}}."
9966msgstr ""
9967
9968#. type: defvr
9969#: doc/guix.texi:3959
9970msgid ""
9971"For packages that install stand-alone Python programs under @code{bin/}, it "
9972"takes care of wrapping these programs so that their @code{PYTHONPATH} "
9973"environment variable points to all the Python libraries they depend on."
9974msgstr ""
9975
9976#. type: defvr
9977#: doc/guix.texi:3965
9978msgid ""
9979"Which Python package is used to perform the build can be specified with the "
9980"@code{#:python} parameter. This is a useful way to force a package to be "
9981"built for a specific version of the Python interpreter, which might be "
9982"necessary if the package is only compatible with a single interpreter "
9983"version."
9984msgstr ""
9985
9986#. type: defvr
9987#: doc/guix.texi:3970
9988msgid ""
9989"By default guix calls @code{setup.py} under control of @code{setuptools}, "
9990"much like @command{pip} does. Some packages are not compatible with "
39764ef8
JL
9991"setuptools (and pip), thus you can disable this by setting the @code{#:use-"
9992"setuptools} parameter to @code{#f}."
b9fe8fd6
JL
9993msgstr ""
9994
9995#. type: defvr
9996#: doc/guix.texi:3972
9997#, no-wrap
9998msgid "{Scheme Variable} perl-build-system"
9999msgstr ""
10000
10001#. type: defvr
10002#: doc/guix.texi:3984
10003msgid ""
10004"This variable is exported by @code{(guix build-system perl)}. It implements "
10005"the standard build procedure for Perl packages, which either consists in "
10006"running @code{perl Build.PL --prefix=/gnu/store/@dots{}}, followed by "
10007"@code{Build} and @code{Build install}; or in running @code{perl Makefile.PL "
10008"PREFIX=/gnu/store/@dots{}}, followed by @code{make} and @code{make install}, "
10009"depending on which of @code{Build.PL} or @code{Makefile.PL} is present in "
10010"the package distribution. Preference is given to the former if both "
10011"@code{Build.PL} and @code{Makefile.PL} exist in the package distribution. "
39764ef8
JL
10012"This preference can be reversed by specifying @code{#t} for the @code{#:make-"
10013"maker?} parameter."
b9fe8fd6
JL
10014msgstr ""
10015
10016#. type: defvr
10017#: doc/guix.texi:3988
10018msgid ""
10019"The initial @code{perl Makefile.PL} or @code{perl Build.PL} invocation "
39764ef8
JL
10020"passes flags specified by the @code{#:make-maker-flags} or @code{#:module-"
10021"build-flags} parameter, respectively."
b9fe8fd6
JL
10022msgstr ""
10023
10024#. type: defvr
10025#: doc/guix.texi:3990
10026msgid "Which Perl package is used can be specified with @code{#:perl}."
10027msgstr ""
10028
10029#. type: defvr
10030#: doc/guix.texi:3992
10031#, no-wrap
10032msgid "{Scheme Variable} r-build-system"
10033msgstr ""
10034
10035#. type: defvr
10036#: doc/guix.texi:4000
10037msgid ""
10038"This variable is exported by @code{(guix build-system r)}. It implements "
10039"the build procedure used by @uref{http://r-project.org, R} packages, which "
39764ef8
JL
10040"essentially is little more than running @code{R CMD INSTALL --library=/gnu/"
10041"store/@dots{}} in an environment where @code{R_LIBS_SITE} contains the paths "
10042"to all R package inputs. Tests are run after installation using the R "
10043"function @code{tools::testInstalledPackage}."
b9fe8fd6
JL
10044msgstr ""
10045
10046#. type: defvr
10047#: doc/guix.texi:4002
10048#, no-wrap
10049msgid "{Scheme Variable} texlive-build-system"
10050msgstr ""
10051
10052#. type: defvr
10053#: doc/guix.texi:4007
10054msgid ""
10055"This variable is exported by @code{(guix build-system texlive)}. It is used "
10056"to build TeX packages in batch mode with a specified engine. The build "
10057"system sets the @code{TEXINPUTS} variable to find all TeX source files in "
10058"the inputs."
10059msgstr ""
10060
10061#. type: defvr
10062#: doc/guix.texi:4016
10063msgid ""
10064"By default it runs @code{luatex} on all files ending on @code{ins}. A "
10065"different engine and format can be specified with the @code{#:tex-format} "
39764ef8
JL
10066"argument. Different build targets can be specified with the @code{#:build-"
10067"targets} argument, which expects a list of file names. The build system "
10068"adds only @code{texlive-bin} and @code{texlive-latex-base} (both from "
10069"@code{(gnu packages tex}) to the inputs. Both can be overridden with the "
10070"arguments @code{#:texlive-bin} and @code{#:texlive-latex-base}, respectively."
b9fe8fd6
JL
10071msgstr ""
10072
10073#. type: defvr
10074#: doc/guix.texi:4019
10075msgid ""
10076"The @code{#:tex-directory} parameter tells the build system where to install "
10077"the built files under the texmf tree."
10078msgstr ""
10079
10080#. type: defvr
10081#: doc/guix.texi:4021
10082#, no-wrap
10083msgid "{Scheme Variable} ruby-build-system"
10084msgstr ""
10085
10086#. type: defvr
10087#: doc/guix.texi:4025
10088msgid ""
10089"This variable is exported by @code{(guix build-system ruby)}. It implements "
10090"the RubyGems build procedure used by Ruby packages, which involves running "
10091"@code{gem build} followed by @code{gem install}."
10092msgstr ""
10093
10094#. type: defvr
10095#: doc/guix.texi:4033
10096msgid ""
10097"The @code{source} field of a package that uses this build system typically "
10098"references a gem archive, since this is the format that Ruby developers use "
10099"when releasing their software. The build system unpacks the gem archive, "
10100"potentially patches the source, runs the test suite, repackages the gem, and "
10101"installs it. Additionally, directories and tarballs may be referenced to "
10102"allow building unreleased gems from Git or a traditional source release "
10103"tarball."
10104msgstr ""
10105
10106#. type: defvr
10107#: doc/guix.texi:4037
10108msgid ""
10109"Which Ruby package is used can be specified with the @code{#:ruby} "
10110"parameter. A list of additional flags to be passed to the @command{gem} "
10111"command can be specified with the @code{#:gem-flags} parameter."
10112msgstr ""
10113
10114#. type: defvr
10115#: doc/guix.texi:4039
10116#, no-wrap
10117msgid "{Scheme Variable} waf-build-system"
10118msgstr ""
10119
10120#. type: defvr
10121#: doc/guix.texi:4045
10122msgid ""
10123"This variable is exported by @code{(guix build-system waf)}. It implements "
39764ef8
JL
10124"a build procedure around the @code{waf} script. The common phases---"
10125"@code{configure}, @code{build}, and @code{install}---are implemented by "
10126"passing their names as arguments to the @code{waf} script."
b9fe8fd6
JL
10127msgstr ""
10128
10129#. type: defvr
10130#: doc/guix.texi:4049
10131msgid ""
10132"The @code{waf} script is executed by the Python interpreter. Which Python "
10133"package is used to run the script can be specified with the @code{#:python} "
10134"parameter."
10135msgstr ""
10136
10137#. type: defvr
10138#: doc/guix.texi:4051
10139#, no-wrap
10140msgid "{Scheme Variable} scons-build-system"
10141msgstr ""
10142
10143#. type: defvr
10144#: doc/guix.texi:4057
10145msgid ""
10146"This variable is exported by @code{(guix build-system scons)}. It "
10147"implements the build procedure used by the SCons software construction "
10148"tool. This build system runs @code{scons} to build the package, @code{scons "
10149"test} to run tests, and then @code{scons install} to install the package."
10150msgstr ""
10151
10152#. type: defvr
10153#: doc/guix.texi:4062
10154msgid ""
10155"Additional flags to be passed to @code{scons} can be specified with the "
10156"@code{#:scons-flags} parameter. The version of Python used to run SCons can "
39764ef8
JL
10157"be specified by selecting the appropriate SCons package with the @code{#:"
10158"scons} parameter."
b9fe8fd6
JL
10159msgstr ""
10160
10161#. type: defvr
10162#: doc/guix.texi:4064
10163#, no-wrap
10164msgid "{Scheme Variable} haskell-build-system"
10165msgstr ""
10166
10167#. type: defvr
10168#: doc/guix.texi:4078
10169msgid ""
10170"This variable is exported by @code{(guix build-system haskell)}. It "
10171"implements the Cabal build procedure used by Haskell packages, which "
39764ef8
JL
10172"involves running @code{runhaskell Setup.hs configure --prefix=/gnu/store/"
10173"@dots{}} and @code{runhaskell Setup.hs build}. Instead of installing the "
10174"package by running @code{runhaskell Setup.hs install}, to avoid trying to "
10175"register libraries in the read-only compiler store directory, the build "
10176"system uses @code{runhaskell Setup.hs copy}, followed by @code{runhaskell "
10177"Setup.hs register}. In addition, the build system generates the package "
10178"documentation by running @code{runhaskell Setup.hs haddock}, unless @code{#:"
10179"haddock? #f} is passed. Optional Haddock parameters can be passed with the "
10180"help of the @code{#:haddock-flags} parameter. If the file @code{Setup.hs} "
10181"is not found, the build system looks for @code{Setup.lhs} instead."
b9fe8fd6
JL
10182msgstr ""
10183
10184#. type: defvr
10185#: doc/guix.texi:4081
10186msgid ""
10187"Which Haskell compiler is used can be specified with the @code{#:haskell} "
10188"parameter which defaults to @code{ghc}."
10189msgstr ""
10190
10191#. type: defvr
10192#: doc/guix.texi:4083
10193#, no-wrap
10194msgid "{Scheme Variable} dub-build-system"
10195msgstr ""
10196
10197#. type: defvr
10198#: doc/guix.texi:4088
10199msgid ""
10200"This variable is exported by @code{(guix build-system dub)}. It implements "
10201"the Dub build procedure used by D packages, which involves running @code{dub "
10202"build} and @code{dub run}. Installation is done by copying the files "
10203"manually."
10204msgstr ""
10205
10206#. type: defvr
10207#: doc/guix.texi:4091
10208msgid ""
10209"Which D compiler is used can be specified with the @code{#:ldc} parameter "
10210"which defaults to @code{ldc}."
10211msgstr ""
10212
10213#. type: defvr
10214#: doc/guix.texi:4093
10215#, no-wrap
10216msgid "{Scheme Variable} emacs-build-system"
10217msgstr ""
10218
10219#. type: defvr
10220#: doc/guix.texi:4097
10221msgid ""
10222"This variable is exported by @code{(guix build-system emacs)}. It "
10223"implements an installation procedure similar to the packaging system of "
10224"Emacs itself (@pxref{Packages,,, emacs, The GNU Emacs Manual})."
10225msgstr ""
10226
10227#. type: defvr
10228#: doc/guix.texi:4104
10229msgid ""
10230"It first creates the @code{@var{package}-autoloads.el} file, then it byte "
10231"compiles all Emacs Lisp files. Differently from the Emacs packaging system, "
10232"the Info documentation files are moved to the standard documentation "
10233"directory and the @file{dir} file is deleted. Each package is installed in "
10234"its own directory under @file{share/emacs/site-lisp/guix.d}."
10235msgstr ""
10236
10237#. type: defvr
10238#: doc/guix.texi:4106
10239#, no-wrap
10240msgid "{Scheme Variable} font-build-system"
10241msgstr ""
10242
10243#. type: defvr
10244#: doc/guix.texi:4112
10245msgid ""
10246"This variable is exported by @code{(guix build-system font)}. It implements "
39764ef8
JL
10247"an installation procedure for font packages where upstream provides pre-"
10248"compiled TrueType, OpenType, etc. font files that merely need to be copied "
10249"into place. It copies font files to standard locations in the output "
b9fe8fd6
JL
10250"directory."
10251msgstr ""
10252
10253#. type: defvr
10254#: doc/guix.texi:4114
10255#, no-wrap
10256msgid "{Scheme Variable} meson-build-system"
10257msgstr ""
10258
10259#. type: defvr
10260#: doc/guix.texi:4118
10261msgid ""
10262"This variable is exported by @code{(guix build-system meson)}. It "
39764ef8
JL
10263"implements the build procedure for packages that use @url{http://mesonbuild."
10264"com, Meson} as their build system."
b9fe8fd6
JL
10265msgstr ""
10266
10267#. type: defvr
10268#: doc/guix.texi:4124
10269msgid ""
10270"It adds both Meson and @uref{https://ninja-build.org/, Ninja} to the set of "
10271"inputs, and they can be changed with the parameters @code{#:meson} and "
10272"@code{#:ninja} if needed. The default Meson is @code{meson-for-build}, "
10273"which is special because it doesn't clear the @code{RUNPATH} of binaries and "
10274"libraries when they are installed."
10275msgstr ""
10276
10277#. type: defvr
10278#: doc/guix.texi:4127
10279msgid ""
10280"This build system is an extension of @var{gnu-build-system}, but with the "
10281"following phases changed to some specific for Meson:"
10282msgstr ""
10283
10284#. type: table
10285#: doc/guix.texi:4134
10286msgid ""
39764ef8
JL
10287"The phase runs @code{meson} with the flags specified in @code{#:configure-"
10288"flags}. The flag @code{--build-type} is always set to @code{plain} unless "
10289"something else is specified in @code{#:build-type}."
b9fe8fd6
JL
10290msgstr ""
10291
10292#. type: table
10293#: doc/guix.texi:4138
10294msgid ""
10295"The phase runs @code{ninja} to build the package in parallel by default, but "
10296"this can be changed with @code{#:parallel-build?}."
10297msgstr ""
10298
10299#. type: table
10300#: doc/guix.texi:4142
10301msgid ""
39764ef8
JL
10302"The phase runs @code{ninja} with the target specified in @code{#:test-"
10303"target}, which is @code{\"test\"} by default."
b9fe8fd6
JL
10304msgstr ""
10305
10306#. type: table
10307#: doc/guix.texi:4145
10308msgid "The phase runs @code{ninja install} and can not be changed."
10309msgstr ""
10310
10311#. type: defvr
10312#: doc/guix.texi:4148
10313msgid "Apart from that, the build system also adds the following phases:"
10314msgstr ""
10315
10316#. type: item
10317#: doc/guix.texi:4151
10318#, no-wrap
10319msgid "fix-runpath"
10320msgstr ""
10321
10322#. type: table
10323#: doc/guix.texi:4158
10324msgid ""
10325"This phase ensures that all binaries can find the libraries they need. It "
10326"searches for required libraries in subdirectories of the package being "
10327"built, and adds those to @code{RUNPATH} where needed. It also removes "
39764ef8
JL
10328"references to libraries left over from the build phase by @code{meson-for-"
10329"build}, such as test dependencies, that aren't actually required for the "
10330"program to run."
b9fe8fd6
JL
10331msgstr ""
10332
10333#. type: table
10334#: doc/guix.texi:4162 doc/guix.texi:4166
10335msgid ""
10336"This phase is the phase provided by @code{glib-or-gtk-build-system}, and it "
10337"is not enabled by default. It can be enabled with @code{#:glib-or-gtk?}."
10338msgstr ""
10339
10340#. type: Plain text
10341#: doc/guix.texi:4173
10342msgid ""
10343"Lastly, for packages that do not need anything as sophisticated, a "
10344"``trivial'' build system is provided. It is trivial in the sense that it "
10345"provides basically no support: it does not pull any implicit inputs, and "
10346"does not have a notion of build phases."
10347msgstr ""
10348
10349#. type: defvr
10350#: doc/guix.texi:4174
10351#, no-wrap
10352msgid "{Scheme Variable} trivial-build-system"
10353msgstr ""
10354
10355#. type: defvr
10356#: doc/guix.texi:4176
10357msgid "This variable is exported by @code{(guix build-system trivial)}."
10358msgstr ""
10359
10360#. type: defvr
10361#: doc/guix.texi:4181
10362msgid ""
10363"This build system requires a @code{#:builder} argument. This argument must "
10364"be a Scheme expression that builds the package output(s)---as with "
39764ef8
JL
10365"@code{build-expression->derivation} (@pxref{Derivations, @code{build-"
10366"expression->derivation}})."
b9fe8fd6
JL
10367msgstr ""
10368
10369#. type: cindex
10370#: doc/guix.texi:4187
10371#, no-wrap
10372msgid "store items"
10373msgstr ""
10374
10375#. type: cindex
10376#: doc/guix.texi:4188
10377#, no-wrap
10378msgid "store paths"
10379msgstr ""
10380
10381#. type: Plain text
10382#: doc/guix.texi:4199
10383msgid ""
10384"Conceptually, the @dfn{store} is the place where derivations that have been "
39764ef8
JL
10385"built successfully are stored---by default, @file{/gnu/store}. Sub-"
10386"directories in the store are referred to as @dfn{store items} or sometimes "
10387"@dfn{store paths}. The store has an associated database that contains "
10388"information such as the store paths referred to by each store path, and the "
10389"list of @emph{valid} store items---results of successful builds. This "
10390"database resides in @file{@var{localstatedir}/guix/db}, where "
10391"@var{localstatedir} is the state directory specified @i{via} @option{--"
10392"localstatedir} at configure time, usually @file{/var}."
b9fe8fd6
JL
10393msgstr ""
10394
10395#. type: Plain text
10396#: doc/guix.texi:4204
10397msgid ""
10398"The store is @emph{always} accessed by the daemon on behalf of its clients "
10399"(@pxref{Invoking guix-daemon}). To manipulate the store, clients connect to "
10400"the daemon over a Unix-domain socket, send requests to it, and read the "
10401"result---these are remote procedure calls, or RPCs."
10402msgstr ""
10403
10404#. type: quotation
10405#: doc/guix.texi:4209
10406msgid ""
10407"Users must @emph{never} modify files under @file{/gnu/store} directly. This "
10408"would lead to inconsistencies and break the immutability assumptions of "
10409"Guix's functional model (@pxref{Introduction})."
10410msgstr ""
10411
10412#. type: quotation
10413#: doc/guix.texi:4213
10414msgid ""
10415"@xref{Invoking guix gc, @command{guix gc --verify}}, for information on how "
10416"to check the integrity of the store and attempt recovery from accidental "
10417"modifications."
10418msgstr ""
10419
10420#. type: Plain text
10421#: doc/guix.texi:4220
10422msgid ""
10423"The @code{(guix store)} module provides procedures to connect to the daemon, "
39764ef8
JL
10424"and to perform RPCs. These are described below. By default, @code{open-"
10425"connection}, and thus all the @command{guix} commands, connect to the local "
10426"daemon or to the URI specified by the @code{GUIX_DAEMON_SOCKET} environment "
10427"variable."
b9fe8fd6
JL
10428msgstr ""
10429
10430#. type: defvr
10431#: doc/guix.texi:4221
10432#, no-wrap
10433msgid "{Environment Variable} GUIX_DAEMON_SOCKET"
10434msgstr ""
10435
10436#. type: defvr
10437#: doc/guix.texi:4226
10438msgid ""
10439"When set, the value of this variable should be a file name or a URI "
39764ef8
JL
10440"designating the daemon endpoint. When it is a file name, it denotes a Unix-"
10441"domain socket to connect to. In addition to file names, the supported URI "
10442"schemes are:"
b9fe8fd6
JL
10443msgstr ""
10444
10445#. type: code{#1}
39764ef8 10446#: doc/guix.texi:4228 doc/guix.texi:15406
b9fe8fd6
JL
10447#, no-wrap
10448msgid "file"
10449msgstr ""
10450
10451#. type: itemx
10452#: doc/guix.texi:4229
10453#, no-wrap
10454msgid "unix"
10455msgstr ""
10456
10457#. type: table
10458#: doc/guix.texi:4233
10459msgid ""
39764ef8
JL
10460"These are for Unix-domain sockets. @code{file:///var/guix/daemon-socket/"
10461"socket} is equivalent to @file{/var/guix/daemon-socket/socket}."
b9fe8fd6
JL
10462msgstr ""
10463
10464#. type: item
10465#: doc/guix.texi:4234
10466#, no-wrap
10467msgid "guix"
10468msgstr ""
10469
10470#. type: table
10471#: doc/guix.texi:4242
10472msgid ""
10473"These URIs denote connections over TCP/IP, without encryption nor "
10474"authentication of the remote host. The URI must specify the host name and "
10475"optionally a port number (by default port 44146 is used):"
10476msgstr ""
10477
10478#. type: example
10479#: doc/guix.texi:4245
10480#, no-wrap
10481msgid "guix://master.guix.example.org:1234\n"
10482msgstr ""
10483
10484#. type: table
10485#: doc/guix.texi:4250
10486msgid ""
10487"This setup is suitable on local networks, such as clusters, where only "
39764ef8
JL
10488"trusted nodes may connect to the build daemon at @code{master.guix.example."
10489"org}."
b9fe8fd6
JL
10490msgstr ""
10491
10492#. type: table
10493#: doc/guix.texi:4254
10494msgid ""
10495"The @code{--listen} option of @command{guix-daemon} can be used to instruct "
39764ef8
JL
10496"it to listen for TCP connections (@pxref{Invoking guix-daemon, @code{--"
10497"listen}})."
b9fe8fd6
JL
10498msgstr ""
10499
10500#. type: item
10501#: doc/guix.texi:4255
10502#, no-wrap
10503msgid "ssh"
10504msgstr ""
10505
10506#. type: cindex
10507#: doc/guix.texi:4256
10508#, no-wrap
10509msgid "SSH access to build daemons"
10510msgstr ""
10511
10512#. type: table
10513#: doc/guix.texi:4260
10514msgid ""
10515"These URIs allow you to connect to a remote daemon over SSH@footnote{This "
10516"feature requires Guile-SSH (@pxref{Requirements}).}. A typical URL might "
10517"look like this:"
10518msgstr ""
10519
10520#. type: example
10521#: doc/guix.texi:4263
10522#, no-wrap
10523msgid "ssh://charlie@@guix.example.org:22\n"
10524msgstr ""
10525
10526#. type: table
10527#: doc/guix.texi:4267
10528msgid ""
10529"As for @command{guix copy}, the usual OpenSSH client configuration files are "
10530"honored (@pxref{Invoking guix copy})."
10531msgstr ""
10532
10533#. type: defvr
10534#: doc/guix.texi:4270
10535msgid "Additional URI schemes may be supported in the future."
10536msgstr ""
10537
10538#. type: quotation
10539#: doc/guix.texi:4277
10540msgid ""
10541"The ability to connect to remote build daemons is considered experimental as "
10542"of @value{VERSION}. Please get in touch with us to share any problems or "
10543"suggestions you may have (@pxref{Contributing})."
10544msgstr ""
10545
10546#. type: deffn
10547#: doc/guix.texi:4280
10548#, no-wrap
10549msgid "{Scheme Procedure} open-connection [@var{uri}] [#:reserve-space? #t]"
10550msgstr ""
10551
10552#. type: deffn
10553#: doc/guix.texi:4285
10554msgid ""
10555"Connect to the daemon over the Unix-domain socket at @var{uri} (a string). "
10556"When @var{reserve-space?} is true, instruct it to reserve a little bit of "
10557"extra space on the file system so that the garbage collector can still "
10558"operate should the disk become full. Return a server object."
10559msgstr ""
10560
10561#. type: deffn
10562#: doc/guix.texi:4288
10563msgid ""
10564"@var{file} defaults to @var{%default-socket-path}, which is the normal "
10565"location given the options that were passed to @command{configure}."
10566msgstr ""
10567
10568#. type: deffn
10569#: doc/guix.texi:4290
10570#, no-wrap
10571msgid "{Scheme Procedure} close-connection @var{server}"
10572msgstr ""
10573
10574#. type: deffn
10575#: doc/guix.texi:4292
10576msgid "Close the connection to @var{server}."
10577msgstr ""
10578
10579#. type: defvr
10580#: doc/guix.texi:4294
10581#, no-wrap
10582msgid "{Scheme Variable} current-build-output-port"
10583msgstr ""
10584
10585#. type: defvr
10586#: doc/guix.texi:4297
10587msgid ""
10588"This variable is bound to a SRFI-39 parameter, which refers to the port "
10589"where build and error logs sent by the daemon should be written."
10590msgstr ""
10591
10592#. type: Plain text
10593#: doc/guix.texi:4301
39764ef8
JL
10594msgid ""
10595"Procedures that make RPCs all take a server object as their first argument."
b9fe8fd6
JL
10596msgstr ""
10597
10598#. type: deffn
10599#: doc/guix.texi:4302
10600#, no-wrap
10601msgid "{Scheme Procedure} valid-path? @var{server} @var{path}"
10602msgstr ""
10603
10604#. type: cindex
10605#: doc/guix.texi:4303
10606#, no-wrap
10607msgid "invalid store items"
10608msgstr ""
10609
10610#. type: deffn
10611#: doc/guix.texi:4308
10612msgid ""
10613"Return @code{#t} when @var{path} designates a valid store item and @code{#f} "
10614"otherwise (an invalid item may exist on disk but still be invalid, for "
10615"instance because it is the result of an aborted or failed build.)"
10616msgstr ""
10617
10618#. type: deffn
10619#: doc/guix.texi:4311
10620msgid ""
10621"A @code{&nix-protocol-error} condition is raised if @var{path} is not "
10622"prefixed by the store directory (@file{/gnu/store})."
10623msgstr ""
10624
10625#. type: deffn
10626#: doc/guix.texi:4313
10627#, no-wrap
39764ef8 10628msgid "{Scheme Procedure} add-text-to-store @var{server} @var{name} @var{text} [@var{references}]"
b9fe8fd6
JL
10629msgstr ""
10630
10631#. type: deffn
10632#: doc/guix.texi:4317
10633msgid ""
10634"Add @var{text} under file @var{name} in the store, and return its store "
10635"path. @var{references} is the list of store paths referred to by the "
10636"resulting store path."
10637msgstr ""
10638
10639#. type: deffn
10640#: doc/guix.texi:4319
10641#, no-wrap
10642msgid "{Scheme Procedure} build-derivations @var{server} @var{derivations}"
10643msgstr ""
10644
10645#. type: deffn
10646#: doc/guix.texi:4323
10647msgid ""
10648"Build @var{derivations} (a list of @code{<derivation>} objects or derivation "
10649"paths), and return when the worker is done building them. Return @code{#t} "
10650"on success."
10651msgstr ""
10652
10653#. type: Plain text
10654#: doc/guix.texi:4329
10655msgid ""
10656"Note that the @code{(guix monads)} module provides a monad as well as "
10657"monadic versions of the above procedures, with the goal of making it more "
10658"convenient to work with code that accesses the store (@pxref{The Store "
10659"Monad})."
10660msgstr ""
10661
10662#. type: i{#1}
10663#: doc/guix.texi:4332
10664msgid "This section is currently incomplete."
10665msgstr ""
10666
10667#. type: cindex
10668#: doc/guix.texi:4336
10669#, no-wrap
10670msgid "derivations"
10671msgstr ""
10672
10673#. type: Plain text
10674#: doc/guix.texi:4340
10675msgid ""
10676"Low-level build actions and the environment in which they are performed are "
10677"represented by @dfn{derivations}. A derivation contains the following "
10678"pieces of information:"
10679msgstr ""
10680
10681#. type: itemize
10682#: doc/guix.texi:4345
10683msgid ""
10684"The outputs of the derivation---derivations produce at least one file or "
10685"directory in the store, but may produce more."
10686msgstr ""
10687
10688#. type: itemize
10689#: doc/guix.texi:4349
10690msgid ""
10691"The inputs of the derivations, which may be other derivations or plain files "
10692"in the store (patches, build scripts, etc.)"
10693msgstr ""
10694
10695#. type: itemize
10696#: doc/guix.texi:4352
10697msgid "The system type targeted by the derivation---e.g., @code{x86_64-linux}."
10698msgstr ""
10699
10700#. type: itemize
10701#: doc/guix.texi:4356
10702msgid ""
10703"The file name of a build script in the store, along with the arguments to be "
10704"passed."
10705msgstr ""
10706
10707#. type: itemize
10708#: doc/guix.texi:4359
10709msgid "A list of environment variables to be defined."
10710msgstr ""
10711
10712#. type: cindex
10713#: doc/guix.texi:4362
10714#, no-wrap
10715msgid "derivation path"
10716msgstr ""
10717
10718#. type: Plain text
10719#: doc/guix.texi:4370
10720msgid ""
10721"Derivations allow clients of the daemon to communicate build actions to the "
10722"store. They exist in two forms: as an in-memory representation, both on the "
39764ef8
JL
10723"client- and daemon-side, and as files in the store whose name end in @code{."
10724"drv}---these files are referred to as @dfn{derivation paths}. Derivations "
10725"paths can be passed to the @code{build-derivations} procedure to perform the "
10726"build actions they prescribe (@pxref{The Store})."
b9fe8fd6
JL
10727msgstr ""
10728
10729#. type: cindex
10730#: doc/guix.texi:4371
10731#, no-wrap
10732msgid "fixed-output derivations"
10733msgstr ""
10734
10735#. type: Plain text
10736#: doc/guix.texi:4378
10737msgid ""
10738"Operations such as file downloads and version-control checkouts for which "
39764ef8
JL
10739"the expected content hash is known in advance are modeled as @dfn{fixed-"
10740"output derivations}. Unlike regular derivations, the outputs of a fixed-"
10741"output derivation are independent of its inputs---e.g., a source code "
10742"download produces the same result regardless of the download method and "
b9fe8fd6
JL
10743"tools being used."
10744msgstr ""
10745
10746#. type: Plain text
10747#: doc/guix.texi:4383
10748msgid ""
10749"The @code{(guix derivations)} module provides a representation of "
10750"derivations as Scheme objects, along with procedures to create and otherwise "
10751"manipulate derivations. The lowest-level primitive to create a derivation "
10752"is the @code{derivation} procedure:"
10753msgstr ""
10754
10755#. type: deffn
10756#: doc/guix.texi:4384
10757#, no-wrap
10758msgid "{Scheme Procedure} derivation @var{store} @var{name} @var{builder} @"
10759msgstr ""
10760
10761#. type: deffn
10762#: doc/guix.texi:4393
10763msgid ""
39764ef8
JL
10764"@var{args} [#:outputs '(\"out\")] [#:hash #f] [#:hash-algo #f] @ [#:"
10765"recursive? #f] [#:inputs '()] [#:env-vars '()] @ [#:system (%current-"
10766"system)] [#:references-graphs #f] @ [#:allowed-references #f] [#:disallowed-"
10767"references #f] @ [#:leaked-env-vars #f] [#:local-build? #f] @ [#:"
10768"substitutable? #t] Build a derivation with the given arguments, and return "
10769"the resulting @code{<derivation>} object."
b9fe8fd6
JL
10770msgstr ""
10771
10772#. type: deffn
10773#: doc/guix.texi:4400
10774msgid ""
10775"When @var{hash} and @var{hash-algo} are given, a @dfn{fixed-output "
10776"derivation} is created---i.e., one whose result is known in advance, such as "
10777"a file download. If, in addition, @var{recursive?} is true, then that fixed "
10778"output may be an executable file or a directory and @var{hash} must be the "
10779"hash of an archive containing this output."
10780msgstr ""
10781
10782#. type: deffn
10783#: doc/guix.texi:4405
10784msgid ""
10785"When @var{references-graphs} is true, it must be a list of file name/store "
10786"path pairs. In that case, the reference graph of each store path is "
10787"exported in the build environment in the corresponding file, in a simple "
10788"text format."
10789msgstr ""
10790
10791#. type: deffn
10792#: doc/guix.texi:4410
10793msgid ""
10794"When @var{allowed-references} is true, it must be a list of store items or "
10795"outputs that the derivation's output may refer to. Likewise, "
10796"@var{disallowed-references}, if true, must be a list of things the outputs "
10797"may @emph{not} refer to."
10798msgstr ""
10799
10800#. type: deffn
10801#: doc/guix.texi:4417
10802msgid ""
10803"When @var{leaked-env-vars} is true, it must be a list of strings denoting "
10804"environment variables that are allowed to ``leak'' from the daemon's "
39764ef8
JL
10805"environment to the build environment. This is only applicable to fixed-"
10806"output derivations---i.e., when @var{hash} is true. The main use is to "
10807"allow variables such as @code{http_proxy} to be passed to derivations that "
10808"download files."
b9fe8fd6
JL
10809msgstr ""
10810
10811#. type: deffn
10812#: doc/guix.texi:4422
10813msgid ""
10814"When @var{local-build?} is true, declare that the derivation is not a good "
10815"candidate for offloading and should rather be built locally (@pxref{Daemon "
10816"Offload Setup}). This is the case for small derivations where the costs of "
10817"data transfers would outweigh the benefits."
10818msgstr ""
10819
10820#. type: deffn
10821#: doc/guix.texi:4427
10822msgid ""
10823"When @var{substitutable?} is false, declare that substitutes of the "
10824"derivation's output should not be used (@pxref{Substitutes}). This is "
10825"useful, for instance, when building packages that capture details of the "
10826"host CPU instruction set."
10827msgstr ""
10828
10829#. type: Plain text
10830#: doc/guix.texi:4433
10831msgid ""
10832"Here's an example with a shell script as its builder, assuming @var{store} "
10833"is an open connection to the daemon, and @var{bash} points to a Bash "
10834"executable in the store:"
10835msgstr ""
10836
10837#. type: lisp
10838#: doc/guix.texi:4438
10839#, no-wrap
10840msgid ""
10841"(use-modules (guix utils)\n"
10842" (guix store)\n"
10843" (guix derivations))\n"
10844"\n"
10845msgstr ""
10846
10847#. type: lisp
10848#: doc/guix.texi:4447
10849#, no-wrap
10850msgid ""
10851"(let ((builder ; add the Bash script to the store\n"
10852" (add-text-to-store store \"my-builder.sh\"\n"
10853" \"echo hello world > $out\\n\" '())))\n"
10854" (derivation store \"foo\"\n"
10855" bash `(\"-e\" ,builder)\n"
10856" #:inputs `((,bash) (,builder))\n"
10857" #:env-vars '((\"HOME\" . \"/homeless\"))))\n"
39764ef8 10858"@result{} #<derivation /gnu/store/@dots{}-foo.drv => /gnu/store/@dots{}-foo>\n"
b9fe8fd6
JL
10859msgstr ""
10860
10861#. type: Plain text
10862#: doc/guix.texi:4454
10863msgid ""
10864"As can be guessed, this primitive is cumbersome to use directly. A better "
10865"approach is to write build scripts in Scheme, of course! The best course of "
10866"action for that is to write the build code as a ``G-expression'', and to "
39764ef8
JL
10867"pass it to @code{gexp->derivation}. For more information, @pxref{G-"
10868"Expressions}."
b9fe8fd6
JL
10869msgstr ""
10870
10871#. type: Plain text
10872#: doc/guix.texi:4459
10873msgid ""
10874"Once upon a time, @code{gexp->derivation} did not exist and constructing "
39764ef8
JL
10875"derivations with build code written in Scheme was achieved with @code{build-"
10876"expression->derivation}, documented below. This procedure is now deprecated "
10877"in favor of the much nicer @code{gexp->derivation}."
b9fe8fd6
JL
10878msgstr ""
10879
10880#. type: deffn
10881#: doc/guix.texi:4460
10882#, no-wrap
10883msgid "{Scheme Procedure} build-expression->derivation @var{store} @"
10884msgstr ""
10885
10886#. type: deffn
10887#: doc/guix.texi:4476
10888msgid ""
39764ef8
JL
10889"@var{name} @var{exp} @ [#:system (%current-system)] [#:inputs '()] @ [#:"
10890"outputs '(\"out\")] [#:hash #f] [#:hash-algo #f] @ [#:recursive? #f] [#:env-"
10891"vars '()] [#:modules '()] @ [#:references-graphs #f] [#:allowed-references "
10892"#f] @ [#:disallowed-references #f] @ [#:local-build? #f] [#:substitutable? "
10893"#t] [#:guile-for-build #f] Return a derivation that executes Scheme "
10894"expression @var{exp} as a builder for derivation @var{name}. @var{inputs} "
10895"must be a list of @code{(name drv-path sub-drv)} tuples; when @var{sub-drv} "
10896"is omitted, @code{\"out\"} is assumed. @var{modules} is a list of names of "
10897"Guile modules from the current search path to be copied in the store, "
10898"compiled, and made available in the load path during the execution of "
10899"@var{exp}---e.g., @code{((guix build utils) (guix build gnu-build-system))}."
b9fe8fd6
JL
10900msgstr ""
10901
10902#. type: deffn
10903#: doc/guix.texi:4484
10904msgid ""
10905"@var{exp} is evaluated in an environment where @code{%outputs} is bound to a "
10906"list of output/path pairs, and where @code{%build-inputs} is bound to a list "
39764ef8
JL
10907"of string/output-path pairs made from @var{inputs}. Optionally, @var{env-"
10908"vars} is a list of string pairs specifying the name and value of environment "
10909"variables visible to the builder. The builder terminates by passing the "
10910"result of @var{exp} to @code{exit}; thus, when @var{exp} returns @code{#f}, "
10911"the build is considered to have failed."
b9fe8fd6
JL
10912msgstr ""
10913
10914#. type: deffn
10915#: doc/guix.texi:4488
10916msgid ""
10917"@var{exp} is built using @var{guile-for-build} (a derivation). When "
10918"@var{guile-for-build} is omitted or is @code{#f}, the value of the "
10919"@code{%guile-for-build} fluid is used instead."
10920msgstr ""
10921
10922#. type: deffn
10923#: doc/guix.texi:4493
10924msgid ""
39764ef8
JL
10925"See the @code{derivation} procedure for the meaning of @var{references-"
10926"graphs}, @var{allowed-references}, @var{disallowed-references}, @var{local-"
10927"build?}, and @var{substitutable?}."
b9fe8fd6
JL
10928msgstr ""
10929
10930#. type: Plain text
10931#: doc/guix.texi:4498
10932msgid ""
10933"Here's an example of a single-output derivation that creates a directory "
10934"containing one file:"
10935msgstr ""
10936
10937#. type: lisp
10938#: doc/guix.texi:4506
10939#, no-wrap
10940msgid ""
10941"(let ((builder '(let ((out (assoc-ref %outputs \"out\")))\n"
10942" (mkdir out) ; create /gnu/store/@dots{}-goo\n"
10943" (call-with-output-file (string-append out \"/test\")\n"
10944" (lambda (p)\n"
10945" (display '(hello guix) p))))))\n"
10946" (build-expression->derivation store \"goo\" builder))\n"
10947"\n"
10948msgstr ""
10949
10950#. type: lisp
10951#: doc/guix.texi:4508
10952#, no-wrap
10953msgid "@result{} #<derivation /gnu/store/@dots{}-goo.drv => @dots{}>\n"
10954msgstr ""
10955
10956#. type: cindex
10957#: doc/guix.texi:4514
10958#, no-wrap
10959msgid "monad"
10960msgstr ""
10961
10962#. type: Plain text
10963#: doc/guix.texi:4520
10964msgid ""
10965"The procedures that operate on the store described in the previous sections "
10966"all take an open connection to the build daemon as their first argument. "
10967"Although the underlying model is functional, they either have side effects "
10968"or depend on the current state of the store."
10969msgstr ""
10970
10971#. type: Plain text
10972#: doc/guix.texi:4526
10973msgid ""
10974"The former is inconvenient: the connection to the build daemon has to be "
10975"carried around in all those functions, making it impossible to compose "
10976"functions that do not take that parameter with functions that do. The "
10977"latter can be problematic: since store operations have side effects and/or "
10978"depend on external state, they have to be properly sequenced."
10979msgstr ""
10980
10981#. type: cindex
10982#: doc/guix.texi:4527
10983#, no-wrap
10984msgid "monadic values"
10985msgstr ""
10986
10987#. type: cindex
10988#: doc/guix.texi:4528
10989#, no-wrap
10990msgid "monadic functions"
10991msgstr ""
10992
10993#. type: Plain text
10994#: doc/guix.texi:4538
10995msgid ""
10996"This is where the @code{(guix monads)} module comes in. This module "
10997"provides a framework for working with @dfn{monads}, and a particularly "
10998"useful monad for our uses, the @dfn{store monad}. Monads are a construct "
10999"that allows two things: associating ``context'' with values (in our case, "
11000"the context is the store), and building sequences of computations (here "
11001"computations include accesses to the store). Values in a monad---values "
11002"that carry this additional context---are called @dfn{monadic values}; "
11003"procedures that return such values are called @dfn{monadic procedures}."
11004msgstr ""
11005
11006#. type: Plain text
11007#: doc/guix.texi:4540
11008msgid "Consider this ``normal'' procedure:"
11009msgstr ""
11010
11011#. type: example
11012#: doc/guix.texi:4549
11013#, no-wrap
11014msgid ""
11015"(define (sh-symlink store)\n"
11016" ;; Return a derivation that symlinks the 'bash' executable.\n"
11017" (let* ((drv (package-derivation store bash))\n"
11018" (out (derivation->output-path drv))\n"
11019" (sh (string-append out \"/bin/bash\")))\n"
11020" (build-expression->derivation store \"sh\"\n"
11021" `(symlink ,sh %output))))\n"
11022msgstr ""
11023
11024#. type: Plain text
11025#: doc/guix.texi:4553
11026msgid ""
11027"Using @code{(guix monads)} and @code{(guix gexp)}, it may be rewritten as a "
11028"monadic function:"
11029msgstr ""
11030
11031#. type: example
11032#: doc/guix.texi:4561
11033#, no-wrap
11034msgid ""
11035"(define (sh-symlink)\n"
11036" ;; Same, but return a monadic value.\n"
11037" (mlet %store-monad ((drv (package->derivation bash)))\n"
11038" (gexp->derivation \"sh\"\n"
11039" #~(symlink (string-append #$drv \"/bin/bash\")\n"
11040" #$output))))\n"
11041msgstr ""
11042
11043#. type: Plain text
11044#: doc/guix.texi:4568
11045msgid ""
11046"There are several things to note in the second version: the @code{store} "
11047"parameter is now implicit and is ``threaded'' in the calls to the "
11048"@code{package->derivation} and @code{gexp->derivation} monadic procedures, "
11049"and the monadic value returned by @code{package->derivation} is @dfn{bound} "
11050"using @code{mlet} instead of plain @code{let}."
11051msgstr ""
11052
11053#. type: Plain text
11054#: doc/guix.texi:4572
11055msgid ""
11056"As it turns out, the call to @code{package->derivation} can even be omitted "
39764ef8
JL
11057"since it will take place implicitly, as we will see later (@pxref{G-"
11058"Expressions}):"
b9fe8fd6
JL
11059msgstr ""
11060
11061#. type: example
11062#: doc/guix.texi:4578
11063#, no-wrap
11064msgid ""
11065"(define (sh-symlink)\n"
11066" (gexp->derivation \"sh\"\n"
11067" #~(symlink (string-append #$bash \"/bin/bash\")\n"
11068" #$output)))\n"
11069msgstr ""
11070
11071#. type: Plain text
11072#: doc/guix.texi:4587
11073msgid ""
11074"Calling the monadic @code{sh-symlink} has no effect. As someone once said, "
11075"``you exit a monad like you exit a building on fire: by running''. So, to "
39764ef8
JL
11076"exit the monad and get the desired effect, one must use @code{run-with-"
11077"store}:"
b9fe8fd6
JL
11078msgstr ""
11079
11080#. type: example
11081#: doc/guix.texi:4591
11082#, no-wrap
11083msgid ""
11084"(run-with-store (open-connection) (sh-symlink))\n"
11085"@result{} /gnu/store/...-sh-symlink\n"
11086msgstr ""
11087
11088#. type: Plain text
11089#: doc/guix.texi:4597
11090msgid ""
11091"Note that the @code{(guix monad-repl)} module extends the Guile REPL with "
11092"new ``meta-commands'' to make it easier to deal with monadic procedures: "
11093"@code{run-in-store}, and @code{enter-store-monad}. The former is used to "
11094"``run'' a single monadic value through the store:"
11095msgstr ""
11096
11097#. type: example
11098#: doc/guix.texi:4601
11099#, no-wrap
11100msgid ""
11101"scheme@@(guile-user)> ,run-in-store (package->derivation hello)\n"
11102"$1 = #<derivation /gnu/store/@dots{}-hello-2.9.drv => @dots{}>\n"
11103msgstr ""
11104
11105#. type: Plain text
11106#: doc/guix.texi:4605
11107msgid ""
11108"The latter enters a recursive REPL, where all the return values are "
11109"automatically run through the store:"
11110msgstr ""
11111
11112#. type: example
11113#: doc/guix.texi:4614
11114#, no-wrap
11115msgid ""
11116"scheme@@(guile-user)> ,enter-store-monad\n"
11117"store-monad@@(guile-user) [1]> (package->derivation hello)\n"
11118"$2 = #<derivation /gnu/store/@dots{}-hello-2.9.drv => @dots{}>\n"
11119"store-monad@@(guile-user) [1]> (text-file \"foo\" \"Hello!\")\n"
11120"$3 = \"/gnu/store/@dots{}-foo\"\n"
11121"store-monad@@(guile-user) [1]> ,q\n"
11122"scheme@@(guile-user)>\n"
11123msgstr ""
11124
11125#. type: Plain text
11126#: doc/guix.texi:4619
11127msgid ""
11128"Note that non-monadic values cannot be returned in the @code{store-monad} "
11129"REPL."
11130msgstr ""
11131
11132#. type: Plain text
11133#: doc/guix.texi:4622
11134msgid ""
11135"The main syntactic forms to deal with monads in general are provided by the "
11136"@code{(guix monads)} module and are described below."
11137msgstr ""
11138
11139#. type: deffn
11140#: doc/guix.texi:4623
11141#, no-wrap
11142msgid "{Scheme Syntax} with-monad @var{monad} @var{body} ..."
11143msgstr ""
11144
11145#. type: deffn
11146#: doc/guix.texi:4626
11147msgid ""
11148"Evaluate any @code{>>=} or @code{return} forms in @var{body} as being in "
11149"@var{monad}."
11150msgstr ""
11151
11152#. type: deffn
11153#: doc/guix.texi:4628
11154#, no-wrap
11155msgid "{Scheme Syntax} return @var{val}"
11156msgstr ""
11157
11158#. type: deffn
11159#: doc/guix.texi:4630
11160msgid "Return a monadic value that encapsulates @var{val}."
11161msgstr ""
11162
11163#. type: deffn
11164#: doc/guix.texi:4632
11165#, no-wrap
11166msgid "{Scheme Syntax} >>= @var{mval} @var{mproc} ..."
11167msgstr ""
11168
11169#. type: deffn
11170#: doc/guix.texi:4639
11171msgid ""
11172"@dfn{Bind} monadic value @var{mval}, passing its ``contents'' to monadic "
11173"procedures @var{mproc}@dots{}@footnote{This operation is commonly referred "
11174"to as ``bind'', but that name denotes an unrelated procedure in Guile. Thus "
11175"we use this somewhat cryptic symbol inherited from the Haskell language.}. "
11176"There can be one @var{mproc} or several of them, as in this example:"
11177msgstr ""
11178
11179#. type: example
11180#: doc/guix.texi:4647
11181#, no-wrap
11182msgid ""
11183"(run-with-state\n"
11184" (with-monad %state-monad\n"
11185" (>>= (return 1)\n"
11186" (lambda (x) (return (+ 1 x)))\n"
11187" (lambda (x) (return (* 2 x)))))\n"
11188" 'some-state)\n"
11189"\n"
11190msgstr ""
11191
11192#. type: example
11193#: doc/guix.texi:4650
11194#, no-wrap
11195msgid ""
11196"@result{} 4\n"
11197"@result{} some-state\n"
11198msgstr ""
11199
11200#. type: deffn
11201#: doc/guix.texi:4653
11202#, no-wrap
11203msgid "{Scheme Syntax} mlet @var{monad} ((@var{var} @var{mval}) ...) @"
11204msgstr ""
11205
11206#. type: deffn
11207#: doc/guix.texi:4655
11208msgid "@var{body} ..."
11209msgstr ""
11210
11211#. type: deffnx
11212#: doc/guix.texi:4655
11213#, no-wrap
11214msgid "{Scheme Syntax} mlet* @var{monad} ((@var{var} @var{mval}) ...) @"
11215msgstr ""
11216
11217#. type: deffn
11218#: doc/guix.texi:4667
11219msgid ""
11220"@var{body} ... Bind the variables @var{var} to the monadic values "
11221"@var{mval} in @var{body}, which is a sequence of expressions. As with the "
11222"bind operator, this can be thought of as ``unpacking'' the raw, non-monadic "
11223"value ``contained'' in @var{mval} and making @var{var} refer to that raw, "
39764ef8
JL
11224"non-monadic value within the scope of the @var{body}. The form (@var{var} -"
11225"> @var{val}) binds @var{var} to the ``normal'' value @var{val}, as per "
b9fe8fd6
JL
11226"@code{let}. The binding operations occur in sequence from left to right. "
11227"The last expression of @var{body} must be a monadic expression, and its "
11228"result will become the result of the @code{mlet} or @code{mlet*} when run in "
11229"the @var{monad}."
11230msgstr ""
11231
11232#. type: deffn
11233#: doc/guix.texi:4670
11234msgid ""
11235"@code{mlet*} is to @code{mlet} what @code{let*} is to @code{let} "
11236"(@pxref{Local Bindings,,, guile, GNU Guile Reference Manual})."
11237msgstr ""
11238
11239#. type: deffn
11240#: doc/guix.texi:4672
11241#, no-wrap
11242msgid "{Scheme System} mbegin @var{monad} @var{mexp} ..."
11243msgstr ""
11244
11245#. type: deffn
11246#: doc/guix.texi:4676
11247msgid ""
11248"Bind @var{mexp} and the following monadic expressions in sequence, returning "
11249"the result of the last expression. Every expression in the sequence must be "
11250"a monadic expression."
11251msgstr ""
11252
11253#. type: deffn
11254#: doc/guix.texi:4680
11255msgid ""
11256"This is akin to @code{mlet}, except that the return values of the monadic "
11257"expressions are ignored. In that sense, it is analogous to @code{begin}, "
11258"but applied to monadic expressions."
11259msgstr ""
11260
11261#. type: deffn
11262#: doc/guix.texi:4682
11263#, no-wrap
11264msgid "{Scheme System} mwhen @var{condition} @var{mexp0} @var{mexp*} ..."
11265msgstr ""
11266
11267#. type: deffn
11268#: doc/guix.texi:4687
11269msgid ""
11270"When @var{condition} is true, evaluate the sequence of monadic expressions "
11271"@var{mexp0}..@var{mexp*} as in an @code{mbegin}. When @var{condition} is "
11272"false, return @code{*unspecified*} in the current monad. Every expression "
11273"in the sequence must be a monadic expression."
11274msgstr ""
11275
11276#. type: deffn
11277#: doc/guix.texi:4689
11278#, no-wrap
11279msgid "{Scheme System} munless @var{condition} @var{mexp0} @var{mexp*} ..."
11280msgstr ""
11281
11282#. type: deffn
11283#: doc/guix.texi:4694
11284msgid ""
11285"When @var{condition} is false, evaluate the sequence of monadic expressions "
11286"@var{mexp0}..@var{mexp*} as in an @code{mbegin}. When @var{condition} is "
11287"true, return @code{*unspecified*} in the current monad. Every expression in "
11288"the sequence must be a monadic expression."
11289msgstr ""
11290
11291#. type: cindex
11292#: doc/guix.texi:4696
11293#, no-wrap
11294msgid "state monad"
11295msgstr ""
11296
11297#. type: Plain text
11298#: doc/guix.texi:4700
11299msgid ""
11300"The @code{(guix monads)} module provides the @dfn{state monad}, which allows "
11301"an additional value---the state---to be @emph{threaded} through monadic "
11302"procedure calls."
11303msgstr ""
11304
11305#. type: defvr
11306#: doc/guix.texi:4701
11307#, no-wrap
11308msgid "{Scheme Variable} %state-monad"
11309msgstr ""
11310
11311#. type: defvr
11312#: doc/guix.texi:4704
11313msgid ""
11314"The state monad. Procedures in the state monad can access and change the "
11315"state that is threaded."
11316msgstr ""
11317
11318#. type: defvr
11319#: doc/guix.texi:4708
11320msgid ""
11321"Consider the example below. The @code{square} procedure returns a value in "
11322"the state monad. It returns the square of its argument, but also increments "
11323"the current state value:"
11324msgstr ""
11325
11326#. type: example
11327#: doc/guix.texi:4715
11328#, no-wrap
11329msgid ""
11330"(define (square x)\n"
11331" (mlet %state-monad ((count (current-state)))\n"
11332" (mbegin %state-monad\n"
11333" (set-current-state (+ 1 count))\n"
11334" (return (* x x)))))\n"
11335"\n"
11336msgstr ""
11337
11338#. type: example
11339#: doc/guix.texi:4719
11340#, no-wrap
11341msgid ""
11342"(run-with-state (sequence %state-monad (map square (iota 3))) 0)\n"
11343"@result{} (0 1 4)\n"
11344"@result{} 3\n"
11345msgstr ""
11346
11347#. type: defvr
11348#: doc/guix.texi:4723
11349msgid ""
11350"When ``run'' through @var{%state-monad}, we obtain that additional state "
11351"value, which is the number of @code{square} calls."
11352msgstr ""
11353
11354#. type: deffn
11355#: doc/guix.texi:4725
11356#, no-wrap
11357msgid "{Monadic Procedure} current-state"
11358msgstr ""
11359
11360#. type: deffn
11361#: doc/guix.texi:4727
11362msgid "Return the current state as a monadic value."
11363msgstr ""
11364
11365#. type: deffn
11366#: doc/guix.texi:4729
11367#, no-wrap
11368msgid "{Monadic Procedure} set-current-state @var{value}"
11369msgstr ""
11370
11371#. type: deffn
11372#: doc/guix.texi:4732
11373msgid ""
11374"Set the current state to @var{value} and return the previous state as a "
11375"monadic value."
11376msgstr ""
11377
11378#. type: deffn
11379#: doc/guix.texi:4734
11380#, no-wrap
11381msgid "{Monadic Procedure} state-push @var{value}"
11382msgstr ""
11383
11384#. type: deffn
11385#: doc/guix.texi:4737
11386msgid ""
11387"Push @var{value} to the current state, which is assumed to be a list, and "
11388"return the previous state as a monadic value."
11389msgstr ""
11390
11391#. type: deffn
11392#: doc/guix.texi:4739
11393#, no-wrap
11394msgid "{Monadic Procedure} state-pop"
11395msgstr ""
11396
11397#. type: deffn
11398#: doc/guix.texi:4742
11399msgid ""
11400"Pop a value from the current state and return it as a monadic value. The "
11401"state is assumed to be a list."
11402msgstr ""
11403
11404#. type: deffn
11405#: doc/guix.texi:4744
11406#, no-wrap
11407msgid "{Scheme Procedure} run-with-state @var{mval} [@var{state}]"
11408msgstr ""
11409
11410#. type: deffn
11411#: doc/guix.texi:4747
11412msgid ""
11413"Run monadic value @var{mval} starting with @var{state} as the initial "
11414"state. Return two values: the resulting value, and the resulting state."
11415msgstr ""
11416
11417#. type: Plain text
11418#: doc/guix.texi:4751
11419msgid ""
11420"The main interface to the store monad, provided by the @code{(guix store)} "
11421"module, is as follows."
11422msgstr ""
11423
11424#. type: defvr
11425#: doc/guix.texi:4752
11426#, no-wrap
11427msgid "{Scheme Variable} %store-monad"
11428msgstr ""
11429
11430#. type: defvr
11431#: doc/guix.texi:4754
11432msgid "The store monad---an alias for @var{%state-monad}."
11433msgstr ""
11434
11435#. type: defvr
11436#: doc/guix.texi:4758
11437msgid ""
11438"Values in the store monad encapsulate accesses to the store. When its "
11439"effect is needed, a value of the store monad must be ``evaluated'' by "
11440"passing it to the @code{run-with-store} procedure (see below.)"
11441msgstr ""
11442
11443#. type: deffn
11444#: doc/guix.texi:4760
11445#, no-wrap
39764ef8 11446msgid "{Scheme Procedure} run-with-store @var{store} @var{mval} [#:guile-for-build] [#:system (%current-system)]"
b9fe8fd6
JL
11447msgstr ""
11448
11449#. type: deffn
11450#: doc/guix.texi:4763
11451msgid ""
11452"Run @var{mval}, a monadic value in the store monad, in @var{store}, an open "
11453"store connection."
11454msgstr ""
11455
11456#. type: deffn
11457#: doc/guix.texi:4765
11458#, no-wrap
11459msgid "{Monadic Procedure} text-file @var{name} @var{text} [@var{references}]"
11460msgstr ""
11461
11462#. type: deffn
11463#: doc/guix.texi:4769
11464msgid ""
11465"Return as a monadic value the absolute file name in the store of the file "
11466"containing @var{text}, a string. @var{references} is a list of store items "
11467"that the resulting text file refers to; it defaults to the empty list."
11468msgstr ""
11469
11470#. type: deffn
11471#: doc/guix.texi:4771
11472#, no-wrap
11473msgid "{Monadic Procedure} interned-file @var{file} [@var{name}] @"
11474msgstr ""
11475
11476#. type: deffn
11477#: doc/guix.texi:4776
11478msgid ""
11479"[#:recursive? #t] [#:select? (const #t)] Return the name of @var{file} once "
11480"interned in the store. Use @var{name} as its store name, or the basename of "
11481"@var{file} if @var{name} is omitted."
11482msgstr ""
11483
11484#. type: deffn
11485#: doc/guix.texi:4780 doc/guix.texi:5159
11486msgid ""
11487"When @var{recursive?} is true, the contents of @var{file} are added "
11488"recursively; if @var{file} designates a flat file and @var{recursive?} is "
11489"true, its contents are added, and its permission bits are kept."
11490msgstr ""
11491
11492#. type: deffn
11493#: doc/guix.texi:4785 doc/guix.texi:5164
11494msgid ""
11495"When @var{recursive?} is true, call @code{(@var{select?} @var{file} "
11496"@var{stat})} for each directory entry, where @var{file} is the entry's "
11497"absolute file name and @var{stat} is the result of @code{lstat}; exclude "
11498"entries for which @var{select?} does not return true."
11499msgstr ""
11500
11501#. type: deffn
11502#: doc/guix.texi:4787
11503msgid "The example below adds a file to the store, under two different names:"
11504msgstr ""
11505
11506#. type: example
11507#: doc/guix.texi:4793
11508#, no-wrap
11509msgid ""
11510"(run-with-store (open-connection)\n"
11511" (mlet %store-monad ((a (interned-file \"README\"))\n"
11512" (b (interned-file \"README\" \"LEGU-MIN\")))\n"
11513" (return (list a b))))\n"
11514"\n"
11515msgstr ""
11516
11517#. type: example
11518#: doc/guix.texi:4795
11519#, no-wrap
39764ef8 11520msgid "@result{} (\"/gnu/store/rwm@dots{}-README\" \"/gnu/store/44i@dots{}-LEGU-MIN\")\n"
b9fe8fd6
JL
11521msgstr ""
11522
11523#. type: Plain text
11524#: doc/guix.texi:4801
11525msgid ""
11526"The @code{(guix packages)} module exports the following package-related "
11527"monadic procedures:"
11528msgstr ""
11529
11530#. type: deffn
11531#: doc/guix.texi:4802
11532#, no-wrap
11533msgid "{Monadic Procedure} package-file @var{package} [@var{file}] @"
11534msgstr ""
11535
11536#. type: deffn
11537#: doc/guix.texi:4810
11538msgid ""
11539"[#:system (%current-system)] [#:target #f] @ [#:output \"out\"] Return as a "
11540"monadic value in the absolute file name of @var{file} within the "
11541"@var{output} directory of @var{package}. When @var{file} is omitted, return "
11542"the name of the @var{output} directory of @var{package}. When @var{target} "
11543"is true, use it as a cross-compilation target triplet."
11544msgstr ""
11545
11546#. type: deffn
11547#: doc/guix.texi:4812
11548#, no-wrap
11549msgid "{Monadic Procedure} package->derivation @var{package} [@var{system}]"
11550msgstr ""
11551
11552#. type: deffnx
11553#: doc/guix.texi:4813
11554#, no-wrap
11555msgid "{Monadic Procedure} package->cross-derivation @var{package} @"
11556msgstr ""
11557
11558#. type: deffn
11559#: doc/guix.texi:4817
11560msgid ""
11561"@var{target} [@var{system}] Monadic version of @code{package-derivation} and "
11562"@code{package-cross-derivation} (@pxref{Defining Packages})."
11563msgstr ""
11564
11565#. type: cindex
11566#: doc/guix.texi:4823
11567#, no-wrap
11568msgid "G-expression"
11569msgstr ""
11570
11571#. type: cindex
11572#: doc/guix.texi:4824
11573#, no-wrap
11574msgid "build code quoting"
11575msgstr ""
11576
11577#. type: Plain text
11578#: doc/guix.texi:4830
11579msgid ""
11580"So we have ``derivations'', which represent a sequence of build actions to "
11581"be performed to produce an item in the store (@pxref{Derivations}). These "
11582"build actions are performed when asking the daemon to actually build the "
39764ef8
JL
11583"derivations; they are run by the daemon in a container (@pxref{Invoking guix-"
11584"daemon})."
b9fe8fd6
JL
11585msgstr ""
11586
11587#. type: cindex
11588#: doc/guix.texi:4831
11589#, no-wrap
11590msgid "strata of code"
11591msgstr ""
11592
11593#. type: Plain text
11594#: doc/guix.texi:4843
11595msgid ""
11596"It should come as no surprise that we like to write these build actions in "
11597"Scheme. When we do that, we end up with two @dfn{strata} of Scheme "
11598"code@footnote{The term @dfn{stratum} in this context was coined by Manuel "
11599"Serrano et al.@: in the context of their work on Hop. Oleg Kiselyov, who "
39764ef8
JL
11600"has written insightful @url{http://okmij.org/ftp/meta-programming/#meta-"
11601"scheme, essays and code on this topic}, refers to this kind of code "
11602"generation as @dfn{staging}.}: the ``host code''---code that defines "
11603"packages, talks to the daemon, etc.---and the ``build code''---code that "
11604"actually performs build actions, such as making directories, invoking "
11605"@command{make}, etc."
b9fe8fd6
JL
11606msgstr ""
11607
11608#. type: Plain text
11609#: doc/guix.texi:4850
11610msgid ""
11611"To describe a derivation and its build actions, one typically needs to embed "
11612"build code inside host code. It boils down to manipulating build code as "
11613"data, and the homoiconicity of Scheme---code has a direct representation as "
11614"data---comes in handy for that. But we need more than the normal "
11615"@code{quasiquote} mechanism in Scheme to construct build expressions."
11616msgstr ""
11617
11618#. type: Plain text
11619#: doc/guix.texi:4859
11620msgid ""
39764ef8
JL
11621"The @code{(guix gexp)} module implements @dfn{G-expressions}, a form of S-"
11622"expressions adapted to build expressions. G-expressions, or @dfn{gexps}, "
b9fe8fd6 11623"consist essentially of three syntactic forms: @code{gexp}, @code{ungexp}, "
39764ef8
JL
11624"and @code{ungexp-splicing} (or simply: @code{#~}, @code{#$}, and @code{#"
11625"$@@}), which are comparable to @code{quasiquote}, @code{unquote}, and "
b9fe8fd6
JL
11626"@code{unquote-splicing}, respectively (@pxref{Expression Syntax, "
11627"@code{quasiquote},, guile, GNU Guile Reference Manual}). However, there are "
11628"major differences:"
11629msgstr ""
11630
11631#. type: itemize
11632#: doc/guix.texi:4864
11633msgid ""
11634"Gexps are meant to be written to a file and run or manipulated by other "
11635"processes."
11636msgstr ""
11637
11638#. type: itemize
11639#: doc/guix.texi:4869
11640msgid ""
11641"When a high-level object such as a package or derivation is unquoted inside "
11642"a gexp, the result is as if its output file name had been introduced."
11643msgstr ""
11644
11645#. type: itemize
11646#: doc/guix.texi:4874
11647msgid ""
11648"Gexps carry information about the packages or derivations they refer to, and "
11649"these dependencies are automatically added as inputs to the build processes "
11650"that use them."
11651msgstr ""
11652
11653#. type: cindex
11654#: doc/guix.texi:4876 doc/guix.texi:5346
11655#, no-wrap
11656msgid "lowering, of high-level objects in gexps"
11657msgstr ""
11658
11659#. type: Plain text
11660#: doc/guix.texi:4886
11661msgid ""
11662"This mechanism is not limited to package and derivation objects: "
11663"@dfn{compilers} able to ``lower'' other high-level objects to derivations or "
11664"files in the store can be defined, such that these objects can also be "
11665"inserted into gexps. For example, a useful type of high-level objects that "
11666"can be inserted in a gexp is ``file-like objects'', which make it easy to "
11667"add files to the store and to refer to them in derivations and such (see "
11668"@code{local-file} and @code{plain-file} below.)"
11669msgstr ""
11670
11671#. type: Plain text
11672#: doc/guix.texi:4888
11673msgid "To illustrate the idea, here is an example of a gexp:"
11674msgstr ""
11675
11676#. type: example
11677#: doc/guix.texi:4896
11678#, no-wrap
11679msgid ""
11680"(define build-exp\n"
11681" #~(begin\n"
11682" (mkdir #$output)\n"
11683" (chdir #$output)\n"
11684" (symlink (string-append #$coreutils \"/bin/ls\")\n"
11685" \"list-files\")))\n"
11686msgstr ""
11687
11688#. type: Plain text
11689#: doc/guix.texi:4901
11690msgid ""
11691"This gexp can be passed to @code{gexp->derivation}; we obtain a derivation "
39764ef8
JL
11692"that builds a directory containing exactly one symlink to @file{/gnu/store/"
11693"@dots{}-coreutils-8.22/bin/ls}:"
b9fe8fd6
JL
11694msgstr ""
11695
11696#. type: example
11697#: doc/guix.texi:4904
11698#, no-wrap
11699msgid "(gexp->derivation \"the-thing\" build-exp)\n"
11700msgstr ""
11701
11702#. type: Plain text
11703#: doc/guix.texi:4912
11704msgid ""
11705"As one would expect, the @code{\"/gnu/store/@dots{}-coreutils-8.22\"} string "
11706"is substituted to the reference to the @var{coreutils} package in the actual "
11707"build code, and @var{coreutils} is automatically made an input to the "
11708"derivation. Likewise, @code{#$output} (equivalent to @code{(ungexp "
11709"output)}) is replaced by a string containing the directory name of the "
11710"output of the derivation."
11711msgstr ""
11712
11713#. type: cindex
11714#: doc/guix.texi:4913
11715#, no-wrap
11716msgid "cross compilation"
11717msgstr ""
11718
11719#. type: Plain text
11720#: doc/guix.texi:4919
11721msgid ""
11722"In a cross-compilation context, it is useful to distinguish between "
11723"references to the @emph{native} build of a package---that can run on the "
11724"host---versus references to cross builds of a package. To that end, the "
11725"@code{#+} plays the same role as @code{#$}, but is a reference to a native "
11726"package build:"
11727msgstr ""
11728
11729#. type: example
11730#: doc/guix.texi:4929
11731#, no-wrap
11732msgid ""
11733"(gexp->derivation \"vi\"\n"
11734" #~(begin\n"
11735" (mkdir #$output)\n"
11736" (system* (string-append #+coreutils \"/bin/ln\")\n"
11737" \"-s\"\n"
11738" (string-append #$emacs \"/bin/emacs\")\n"
11739" (string-append #$output \"/bin/vi\")))\n"
11740" #:target \"mips64el-linux-gnu\")\n"
11741msgstr ""
11742
11743#. type: Plain text
11744#: doc/guix.texi:4935
11745msgid ""
11746"In the example above, the native build of @var{coreutils} is used, so that "
11747"@command{ln} can actually run on the host; but then the cross-compiled build "
11748"of @var{emacs} is referenced."
11749msgstr ""
11750
11751#. type: cindex
11752#: doc/guix.texi:4936
11753#, no-wrap
11754msgid "imported modules, for gexps"
11755msgstr ""
11756
11757#. type: findex
11758#: doc/guix.texi:4937
11759#, no-wrap
11760msgid "with-imported-modules"
11761msgstr ""
11762
11763#. type: Plain text
11764#: doc/guix.texi:4942
11765msgid ""
11766"Another gexp feature is @dfn{imported modules}: sometimes you want to be "
11767"able to use certain Guile modules from the ``host environment'' in the gexp, "
11768"so those modules should be imported in the ``build environment''. The "
11769"@code{with-imported-modules} form allows you to express that:"
11770msgstr ""
11771
11772#. type: example
11773#: doc/guix.texi:4953
11774#, no-wrap
11775msgid ""
11776"(let ((build (with-imported-modules '((guix build utils))\n"
11777" #~(begin\n"
11778" (use-modules (guix build utils))\n"
11779" (mkdir-p (string-append #$output \"/bin\"))))))\n"
11780" (gexp->derivation \"empty-dir\"\n"
11781" #~(begin\n"
11782" #$build\n"
11783" (display \"success!\\n\")\n"
11784" #t)))\n"
11785msgstr ""
11786
11787#. type: Plain text
11788#: doc/guix.texi:4959
11789msgid ""
11790"In this example, the @code{(guix build utils)} module is automatically "
39764ef8
JL
11791"pulled into the isolated build environment of our gexp, such that @code{(use-"
11792"modules (guix build utils))} works as expected."
b9fe8fd6
JL
11793msgstr ""
11794
11795#. type: cindex
11796#: doc/guix.texi:4960
11797#, no-wrap
11798msgid "module closure"
11799msgstr ""
11800
11801#. type: findex
11802#: doc/guix.texi:4961
11803#, no-wrap
11804msgid "source-module-closure"
11805msgstr ""
11806
11807#. type: Plain text
11808#: doc/guix.texi:4968
11809msgid ""
11810"Usually you want the @emph{closure} of the module to be imported---i.e., the "
11811"module itself and all the modules it depends on---rather than just the "
11812"module; failing to do that, attempts to use the module will fail because of "
11813"missing dependent modules. The @code{source-module-closure} procedure "
11814"computes the closure of a module by looking at its source file headers, "
11815"which comes in handy in this case:"
11816msgstr ""
11817
11818#. type: example
11819#: doc/guix.texi:4971
11820#, no-wrap
11821msgid ""
11822"(use-modules (guix modules)) ;for 'source-module-closure'\n"
11823"\n"
11824msgstr ""
11825
11826#. type: example
11827#: doc/guix.texi:4980
11828#, no-wrap
11829msgid ""
11830"(with-imported-modules (source-module-closure\n"
11831" '((guix build utils)\n"
11832" (gnu build vm)))\n"
11833" (gexp->derivation \"something-with-vms\"\n"
11834" #~(begin\n"
11835" (use-modules (guix build utils)\n"
11836" (gnu build vm))\n"
11837" @dots{})))\n"
11838msgstr ""
11839
11840#. type: Plain text
11841#: doc/guix.texi:4983
11842msgid "The syntactic form to construct gexps is summarized below."
11843msgstr ""
11844
11845#. type: deffn
11846#: doc/guix.texi:4984
11847#, no-wrap
11848msgid "{Scheme Syntax} #~@var{exp}"
11849msgstr ""
11850
11851#. type: deffnx
11852#: doc/guix.texi:4985
11853#, no-wrap
11854msgid "{Scheme Syntax} (gexp @var{exp})"
11855msgstr ""
11856
11857#. type: deffn
11858#: doc/guix.texi:4988
11859msgid ""
11860"Return a G-expression containing @var{exp}. @var{exp} may contain one or "
11861"more of the following forms:"
11862msgstr ""
11863
11864#. type: item
11865#: doc/guix.texi:4990
11866#, no-wrap
11867msgid "#$@var{obj}"
11868msgstr ""
11869
11870#. type: itemx
11871#: doc/guix.texi:4991
11872#, no-wrap
11873msgid "(ungexp @var{obj})"
11874msgstr ""
11875
11876#. type: table
11877#: doc/guix.texi:4996
11878msgid ""
11879"Introduce a reference to @var{obj}. @var{obj} may have one of the supported "
11880"types, for example a package or a derivation, in which case the "
39764ef8
JL
11881"@code{ungexp} form is replaced by its output file name---e.g., @code{\"/gnu/"
11882"store/@dots{}-coreutils-8.22}."
b9fe8fd6
JL
11883msgstr ""
11884
11885#. type: table
11886#: doc/guix.texi:4999
11887msgid ""
11888"If @var{obj} is a list, it is traversed and references to supported objects "
11889"are substituted similarly."
11890msgstr ""
11891
11892#. type: table
11893#: doc/guix.texi:5002
11894msgid ""
11895"If @var{obj} is another gexp, its contents are inserted and its dependencies "
11896"are added to those of the containing gexp."
11897msgstr ""
11898
11899#. type: table
11900#: doc/guix.texi:5004
11901msgid "If @var{obj} is another kind of object, it is inserted as is."
11902msgstr ""
11903
11904#. type: item
11905#: doc/guix.texi:5005
11906#, no-wrap
11907msgid "#$@var{obj}:@var{output}"
11908msgstr ""
11909
11910#. type: itemx
11911#: doc/guix.texi:5006
11912#, no-wrap
11913msgid "(ungexp @var{obj} @var{output})"
11914msgstr ""
11915
11916#. type: table
11917#: doc/guix.texi:5010
11918msgid ""
11919"This is like the form above, but referring explicitly to the @var{output} of "
11920"@var{obj}---this is useful when @var{obj} produces multiple outputs "
11921"(@pxref{Packages with Multiple Outputs})."
11922msgstr ""
11923
11924#. type: item
11925#: doc/guix.texi:5011
11926#, no-wrap
11927msgid "#+@var{obj}"
11928msgstr ""
11929
11930#. type: itemx
11931#: doc/guix.texi:5012
11932#, no-wrap
11933msgid "#+@var{obj}:output"
11934msgstr ""
11935
11936#. type: itemx
11937#: doc/guix.texi:5013
11938#, no-wrap
11939msgid "(ungexp-native @var{obj})"
11940msgstr ""
11941
11942#. type: itemx
11943#: doc/guix.texi:5014
11944#, no-wrap
11945msgid "(ungexp-native @var{obj} @var{output})"
11946msgstr ""
11947
11948#. type: table
11949#: doc/guix.texi:5017
11950msgid ""
11951"Same as @code{ungexp}, but produces a reference to the @emph{native} build "
11952"of @var{obj} when used in a cross compilation context."
11953msgstr ""
11954
11955#. type: item
11956#: doc/guix.texi:5018
11957#, no-wrap
11958msgid "#$output[:@var{output}]"
11959msgstr ""
11960
11961#. type: itemx
11962#: doc/guix.texi:5019
11963#, no-wrap
11964msgid "(ungexp output [@var{output}])"
11965msgstr ""
11966
11967#. type: table
11968#: doc/guix.texi:5022
11969msgid ""
11970"Insert a reference to derivation output @var{output}, or to the main output "
11971"when @var{output} is omitted."
11972msgstr ""
11973
11974#. type: table
11975#: doc/guix.texi:5024
11976msgid "This only makes sense for gexps passed to @code{gexp->derivation}."
11977msgstr ""
11978
11979#. type: item
11980#: doc/guix.texi:5025
11981#, no-wrap
11982msgid "#$@@@var{lst}"
11983msgstr ""
11984
11985#. type: itemx
11986#: doc/guix.texi:5026
11987#, no-wrap
11988msgid "(ungexp-splicing @var{lst})"
11989msgstr ""
11990
11991#. type: table
11992#: doc/guix.texi:5029
11993msgid ""
11994"Like the above, but splices the contents of @var{lst} inside the containing "
11995"list."
11996msgstr ""
11997
11998#. type: item
11999#: doc/guix.texi:5030
12000#, no-wrap
12001msgid "#+@@@var{lst}"
12002msgstr ""
12003
12004#. type: itemx
12005#: doc/guix.texi:5031
12006#, no-wrap
12007msgid "(ungexp-native-splicing @var{lst})"
12008msgstr ""
12009
12010#. type: table
12011#: doc/guix.texi:5034
12012msgid ""
12013"Like the above, but refers to native builds of the objects listed in "
12014"@var{lst}."
12015msgstr ""
12016
12017#. type: deffn
12018#: doc/guix.texi:5039
12019msgid ""
12020"G-expressions created by @code{gexp} or @code{#~} are run-time objects of "
12021"the @code{gexp?} type (see below.)"
12022msgstr ""
12023
12024#. type: deffn
12025#: doc/guix.texi:5041
12026#, no-wrap
12027msgid "{Scheme Syntax} with-imported-modules @var{modules} @var{body}@dots{}"
12028msgstr ""
12029
12030#. type: deffn
12031#: doc/guix.texi:5044
12032msgid ""
12033"Mark the gexps defined in @var{body}@dots{} as requiring @var{modules} in "
12034"their execution environment."
12035msgstr ""
12036
12037#. type: deffn
12038#: doc/guix.texi:5048
12039msgid ""
12040"Each item in @var{modules} can be the name of a module, such as @code{(guix "
12041"build utils)}, or it can be a module name, followed by an arrow, followed by "
12042"a file-like object:"
12043msgstr ""
12044
12045#. type: example
12046#: doc/guix.texi:5054
12047#, no-wrap
12048msgid ""
12049"`((guix build utils)\n"
12050" (guix gcrypt)\n"
12051" ((guix config) => ,(scheme-file \"config.scm\"\n"
12052" #~(define-module @dots{}))))\n"
12053msgstr ""
12054
12055#. type: deffn
12056#: doc/guix.texi:5059
12057msgid ""
12058"In the example above, the first two modules are taken from the search path, "
12059"and the last one is created from the given file-like object."
12060msgstr ""
12061
12062#. type: deffn
12063#: doc/guix.texi:5063
12064msgid ""
12065"This form has @emph{lexical} scope: it has an effect on the gexps directly "
12066"defined in @var{body}@dots{}, but not on those defined, say, in procedures "
12067"called from @var{body}@dots{}."
12068msgstr ""
12069
12070#. type: deffn
12071#: doc/guix.texi:5065
12072#, no-wrap
12073msgid "{Scheme Procedure} gexp? @var{obj}"
12074msgstr ""
12075
12076#. type: deffn
12077#: doc/guix.texi:5067
12078msgid "Return @code{#t} if @var{obj} is a G-expression."
12079msgstr ""
12080
12081#. type: Plain text
12082#: doc/guix.texi:5073
12083msgid ""
12084"G-expressions are meant to be written to disk, either as code building some "
12085"derivation, or as plain files in the store. The monadic procedures below "
12086"allow you to do that (@pxref{The Store Monad}, for more information about "
12087"monads.)"
12088msgstr ""
12089
12090#. type: deffn
12091#: doc/guix.texi:5074
12092#, no-wrap
12093msgid "{Monadic Procedure} gexp->derivation @var{name} @var{exp} @"
12094msgstr ""
12095
12096#. type: deffn
12097#: doc/guix.texi:5090
12098msgid ""
39764ef8
JL
12099"[#:system (%current-system)] [#:target #f] [#:graft? #t] @ [#:hash #f] [#:"
12100"hash-algo #f] @ [#:recursive? #f] [#:env-vars '()] [#:modules '()] @ [#:"
12101"module-path @var{%load-path}] @ [#:references-graphs #f] [#:allowed-"
12102"references #f] @ [#:disallowed-references #f] @ [#:leaked-env-vars #f] @ [#:"
12103"script-name (string-append @var{name} \"-builder\")] @ [#:deprecation-"
12104"warnings #f] @ [#:local-build? #f] [#:substitutable? #t] [#:guile-for-build "
12105"#f] Return a derivation @var{name} that runs @var{exp} (a gexp) with "
12106"@var{guile-for-build} (a derivation) on @var{system}; @var{exp} is stored in "
12107"a file called @var{script-name}. When @var{target} is true, it is used as "
12108"the cross-compilation target triplet for packages referred to by @var{exp}."
b9fe8fd6
JL
12109msgstr ""
12110
12111#. type: deffn
12112#: doc/guix.texi:5098
12113msgid ""
12114"@var{modules} is deprecated in favor of @code{with-imported-modules}. Its "
12115"meaning is to make @var{modules} available in the evaluation context of "
12116"@var{exp}; @var{modules} is a list of names of Guile modules searched in "
12117"@var{module-path} to be copied in the store, compiled, and made available in "
12118"the load path during the execution of @var{exp}---e.g., @code{((guix build "
12119"utils) (guix build gnu-build-system))}."
12120msgstr ""
12121
12122#. type: deffn
12123#: doc/guix.texi:5101
12124msgid ""
12125"@var{graft?} determines whether packages referred to by @var{exp} should be "
12126"grafted when applicable."
12127msgstr ""
12128
12129#. type: deffn
12130#: doc/guix.texi:5104
12131msgid ""
12132"When @var{references-graphs} is true, it must be a list of tuples of one of "
12133"the following forms:"
12134msgstr ""
12135
12136#. type: example
12137#: doc/guix.texi:5111
12138#, no-wrap
12139msgid ""
12140"(@var{file-name} @var{package})\n"
12141"(@var{file-name} @var{package} @var{output})\n"
12142"(@var{file-name} @var{derivation})\n"
12143"(@var{file-name} @var{derivation} @var{output})\n"
12144"(@var{file-name} @var{store-item})\n"
12145msgstr ""
12146
12147#. type: deffn
12148#: doc/guix.texi:5117
12149msgid ""
12150"The right-hand-side of each element of @var{references-graphs} is "
12151"automatically made an input of the build process of @var{exp}. In the build "
12152"environment, each @var{file-name} contains the reference graph of the "
12153"corresponding item, in a simple text format."
12154msgstr ""
12155
12156#. type: deffn
12157#: doc/guix.texi:5123
12158msgid ""
12159"@var{allowed-references} must be either @code{#f} or a list of output names "
12160"and packages. In the latter case, the list denotes store items that the "
12161"result is allowed to refer to. Any reference to another store item will "
12162"lead to a build error. Similarly for @var{disallowed-references}, which can "
12163"list items that must not be referenced by the outputs."
12164msgstr ""
12165
12166#. type: deffn
12167#: doc/guix.texi:5126
12168msgid ""
12169"@var{deprecation-warnings} determines whether to show deprecation warnings "
12170"while compiling modules. It can be @code{#f}, @code{#t}, or "
12171"@code{'detailed}."
12172msgstr ""
12173
12174#. type: deffn
12175#: doc/guix.texi:5128
12176msgid "The other arguments are as for @code{derivation} (@pxref{Derivations})."
12177msgstr ""
12178
12179#. type: cindex
12180#: doc/guix.texi:5130
12181#, no-wrap
12182msgid "file-like objects"
12183msgstr ""
12184
12185#. type: Plain text
12186#: doc/guix.texi:5135
12187msgid ""
12188"The @code{local-file}, @code{plain-file}, @code{computed-file}, "
12189"@code{program-file}, and @code{scheme-file} procedures below return "
12190"@dfn{file-like objects}. That is, when unquoted in a G-expression, these "
12191"objects lead to a file in the store. Consider this G-expression:"
12192msgstr ""
12193
12194#. type: example
12195#: doc/guix.texi:5139
12196#, no-wrap
12197msgid ""
12198"#~(system* #$(file-append glibc \"/sbin/nscd\") \"-f\"\n"
12199" #$(local-file \"/tmp/my-nscd.conf\"))\n"
12200msgstr ""
12201
12202#. type: Plain text
12203#: doc/guix.texi:5148
12204msgid ""
12205"The effect here is to ``intern'' @file{/tmp/my-nscd.conf} by copying it to "
12206"the store. Once expanded, for instance @i{via} @code{gexp->derivation}, the "
12207"G-expression refers to that copy under @file{/gnu/store}; thus, modifying or "
39764ef8
JL
12208"removing the file in @file{/tmp} does not have any effect on what the G-"
12209"expression does. @code{plain-file} can be used similarly; it differs in "
b9fe8fd6
JL
12210"that the file content is directly passed as a string."
12211msgstr ""
12212
12213#. type: deffn
12214#: doc/guix.texi:5149
12215#, no-wrap
12216msgid "{Scheme Procedure} local-file @var{file} [@var{name}] @"
12217msgstr ""
12218
12219#. type: deffn
12220#: doc/guix.texi:5155
12221msgid ""
12222"[#:recursive? #f] [#:select? (const #t)] Return an object representing local "
12223"file @var{file} to add to the store; this object can be used in a gexp. If "
12224"@var{file} is a relative file name, it is looked up relative to the source "
12225"file where this form appears. @var{file} will be added to the store under "
12226"@var{name}--by default the base name of @var{file}."
12227msgstr ""
12228
12229#. type: deffn
12230#: doc/guix.texi:5167
12231msgid ""
12232"This is the declarative counterpart of the @code{interned-file} monadic "
12233"procedure (@pxref{The Store Monad, @code{interned-file}})."
12234msgstr ""
12235
12236#. type: deffn
12237#: doc/guix.texi:5169
12238#, no-wrap
12239msgid "{Scheme Procedure} plain-file @var{name} @var{content}"
12240msgstr ""
12241
12242#. type: deffn
12243#: doc/guix.texi:5172
12244msgid ""
12245"Return an object representing a text file called @var{name} with the given "
12246"@var{content} (a string) to be added to the store."
12247msgstr ""
12248
12249#. type: deffn
12250#: doc/guix.texi:5174
12251msgid "This is the declarative counterpart of @code{text-file}."
12252msgstr ""
12253
12254#. type: deffn
12255#: doc/guix.texi:5176
12256#, no-wrap
12257msgid "{Scheme Procedure} computed-file @var{name} @var{gexp} @"
12258msgstr ""
12259
12260#. type: deffn
12261#: doc/guix.texi:5181
12262msgid ""
12263"[#:options '(#:local-build? #t)] Return an object representing the store "
12264"item @var{name}, a file or directory computed by @var{gexp}. @var{options} "
12265"is a list of additional arguments to pass to @code{gexp->derivation}."
12266msgstr ""
12267
12268#. type: deffn
12269#: doc/guix.texi:5183
12270msgid "This is the declarative counterpart of @code{gexp->derivation}."
12271msgstr ""
12272
12273#. type: deffn
12274#: doc/guix.texi:5185
12275#, no-wrap
12276msgid "{Monadic Procedure} gexp->script @var{name} @var{exp} @"
12277msgstr ""
12278
12279#. type: deffn
12280#: doc/guix.texi:5190
12281msgid ""
12282"[#:guile (default-guile)] [#:module-path %load-path] Return an executable "
12283"script @var{name} that runs @var{exp} using @var{guile}, with @var{exp}'s "
12284"imported modules in its search path. Look up @var{exp}'s modules in "
12285"@var{module-path}."
12286msgstr ""
12287
12288#. type: deffn
12289#: doc/guix.texi:5193
12290msgid ""
12291"The example below builds a script that simply invokes the @command{ls} "
12292"command:"
12293msgstr ""
12294
12295#. type: example
12296#: doc/guix.texi:5196
12297#, no-wrap
12298msgid ""
12299"(use-modules (guix gexp) (gnu packages base))\n"
12300"\n"
12301msgstr ""
12302
12303#. type: example
12304#: doc/guix.texi:5200
12305#, no-wrap
12306msgid ""
12307"(gexp->script \"list-files\"\n"
12308" #~(execl #$(file-append coreutils \"/bin/ls\")\n"
12309" \"ls\"))\n"
12310msgstr ""
12311
12312#. type: deffn
12313#: doc/guix.texi:5205
12314msgid ""
39764ef8
JL
12315"When ``running'' it through the store (@pxref{The Store Monad, @code{run-"
12316"with-store}}), we obtain a derivation that produces an executable file "
12317"@file{/gnu/store/@dots{}-list-files} along these lines:"
b9fe8fd6
JL
12318msgstr ""
12319
12320#. type: example
12321#: doc/guix.texi:5210
12322#, no-wrap
12323msgid ""
12324"#!/gnu/store/@dots{}-guile-2.0.11/bin/guile -ds\n"
12325"!#\n"
12326"(execl \"/gnu/store/@dots{}-coreutils-8.22\"/bin/ls\" \"ls\")\n"
12327msgstr ""
12328
12329#. type: deffn
12330#: doc/guix.texi:5213
12331#, no-wrap
12332msgid "{Scheme Procedure} program-file @var{name} @var{exp} @"
12333msgstr ""
12334
12335#. type: deffn
12336#: doc/guix.texi:5218
12337msgid ""
12338"[#:guile #f] [#:module-path %load-path] Return an object representing the "
12339"executable store item @var{name} that runs @var{gexp}. @var{guile} is the "
12340"Guile package used to execute that script. Imported modules of @var{gexp} "
12341"are looked up in @var{module-path}."
12342msgstr ""
12343
12344#. type: deffn
12345#: doc/guix.texi:5220
12346msgid "This is the declarative counterpart of @code{gexp->script}."
12347msgstr ""
12348
12349#. type: deffn
12350#: doc/guix.texi:5222
12351#, no-wrap
12352msgid "{Monadic Procedure} gexp->file @var{name} @var{exp} @"
12353msgstr ""
12354
12355#. type: deffn
12356#: doc/guix.texi:5229
12357msgid ""
12358"[#:set-load-path? #t] [#:module-path %load-path] @ [#:splice? #f] @ [#:guile "
12359"(default-guile)] Return a derivation that builds a file @var{name} "
12360"containing @var{exp}. When @var{splice?} is true, @var{exp} is considered "
12361"to be a list of expressions that will be spliced in the resulting file."
12362msgstr ""
12363
12364#. type: deffn
12365#: doc/guix.texi:5234
12366msgid ""
12367"When @var{set-load-path?} is true, emit code in the resulting file to set "
12368"@code{%load-path} and @code{%load-compiled-path} to honor @var{exp}'s "
12369"imported modules. Look up @var{exp}'s modules in @var{module-path}."
12370msgstr ""
12371
12372#. type: deffn
12373#: doc/guix.texi:5237
12374msgid ""
12375"The resulting file holds references to all the dependencies of @var{exp} or "
12376"a subset thereof."
12377msgstr ""
12378
12379#. type: deffn
12380#: doc/guix.texi:5239
12381#, no-wrap
12382msgid "{Scheme Procedure} scheme-file @var{name} @var{exp} [#:splice? #f]"
12383msgstr ""
12384
12385#. type: deffn
12386#: doc/guix.texi:5242
12387msgid ""
12388"Return an object representing the Scheme file @var{name} that contains "
12389"@var{exp}."
12390msgstr ""
12391
12392#. type: deffn
12393#: doc/guix.texi:5244
12394msgid "This is the declarative counterpart of @code{gexp->file}."
12395msgstr ""
12396
12397#. type: deffn
12398#: doc/guix.texi:5246
12399#, no-wrap
12400msgid "{Monadic Procedure} text-file* @var{name} @var{text} @dots{}"
12401msgstr ""
12402
12403#. type: deffn
12404#: doc/guix.texi:5252
12405msgid ""
12406"Return as a monadic value a derivation that builds a text file containing "
12407"all of @var{text}. @var{text} may list, in addition to strings, objects of "
12408"any type that can be used in a gexp: packages, derivations, local file "
12409"objects, etc. The resulting store file holds references to all these."
12410msgstr ""
12411
12412#. type: deffn
12413#: doc/guix.texi:5257
12414msgid ""
12415"This variant should be preferred over @code{text-file} anytime the file to "
12416"create will reference items from the store. This is typically the case when "
12417"building a configuration file that embeds store file names, like this:"
12418msgstr ""
12419
12420#. type: example
12421#: doc/guix.texi:5265
12422#, no-wrap
12423msgid ""
12424"(define (profile.sh)\n"
12425" ;; Return the name of a shell script in the store that\n"
12426" ;; initializes the 'PATH' environment variable.\n"
12427" (text-file* \"profile.sh\"\n"
12428" \"export PATH=\" coreutils \"/bin:\"\n"
12429" grep \"/bin:\" sed \"/bin\\n\"))\n"
12430msgstr ""
12431
12432#. type: deffn
12433#: doc/guix.texi:5270
12434msgid ""
12435"In this example, the resulting @file{/gnu/store/@dots{}-profile.sh} file "
12436"will reference @var{coreutils}, @var{grep}, and @var{sed}, thereby "
12437"preventing them from being garbage-collected during its lifetime."
12438msgstr ""
12439
12440#. type: deffn
12441#: doc/guix.texi:5272
12442#, no-wrap
12443msgid "{Scheme Procedure} mixed-text-file @var{name} @var{text} @dots{}"
12444msgstr ""
12445
12446#. type: deffn
12447#: doc/guix.texi:5276
12448msgid ""
12449"Return an object representing store file @var{name} containing @var{text}. "
12450"@var{text} is a sequence of strings and file-like objects, as in:"
12451msgstr ""
12452
12453#. type: example
12454#: doc/guix.texi:5280
12455#, no-wrap
12456msgid ""
12457"(mixed-text-file \"profile\"\n"
12458" \"export PATH=\" coreutils \"/bin:\" grep \"/bin\")\n"
12459msgstr ""
12460
12461#. type: deffn
12462#: doc/guix.texi:5283
12463msgid "This is the declarative counterpart of @code{text-file*}."
12464msgstr ""
12465
12466#. type: deffn
12467#: doc/guix.texi:5285
12468#, no-wrap
12469msgid "{Scheme Procedure} file-union @var{name} @var{files}"
12470msgstr ""
12471
12472#. type: deffn
12473#: doc/guix.texi:5290
12474msgid ""
12475"Return a @code{<computed-file>} that builds a directory containing all of "
12476"@var{files}. Each item in @var{files} must be a two-element list where the "
12477"first element is the file name to use in the new directory, and the second "
12478"element is a gexp denoting the target file. Here's an example:"
12479msgstr ""
12480
12481#. type: example
12482#: doc/guix.texi:5297
12483#, no-wrap
12484msgid ""
12485"(file-union \"etc\"\n"
12486" `((\"hosts\" ,(plain-file \"hosts\"\n"
12487" \"127.0.0.1 localhost\"))\n"
12488" (\"bashrc\" ,(plain-file \"bashrc\"\n"
12489" \"alias ls='ls --color'\"))))\n"
12490msgstr ""
12491
12492#. type: deffn
12493#: doc/guix.texi:5300
12494msgid "This yields an @code{etc} directory containing these two files."
12495msgstr ""
12496
12497#. type: deffn
12498#: doc/guix.texi:5302
12499#, no-wrap
12500msgid "{Scheme Procedure} directory-union @var{name} @var{things}"
12501msgstr ""
12502
12503#. type: deffn
12504#: doc/guix.texi:5305
12505msgid ""
12506"Return a directory that is the union of @var{things}, where @var{things} is "
12507"a list of file-like objects denoting directories. For example:"
12508msgstr ""
12509
12510#. type: example
12511#: doc/guix.texi:5308
12512#, no-wrap
12513msgid "(directory-union \"guile+emacs\" (list guile emacs))\n"
12514msgstr ""
12515
12516#. type: deffn
12517#: doc/guix.texi:5311
12518msgid ""
12519"yields a directory that is the union of the @code{guile} and @code{emacs} "
12520"packages."
12521msgstr ""
12522
12523#. type: deffn
12524#: doc/guix.texi:5313
12525#, no-wrap
12526msgid "{Scheme Procedure} file-append @var{obj} @var{suffix} @dots{}"
12527msgstr ""
12528
12529#. type: deffn
12530#: doc/guix.texi:5317
12531msgid ""
12532"Return a file-like object that expands to the concatenation of @var{obj} and "
12533"@var{suffix}, where @var{obj} is a lowerable object and each @var{suffix} is "
12534"a string."
12535msgstr ""
12536
12537#. type: deffn
12538#: doc/guix.texi:5319
12539msgid "As an example, consider this gexp:"
12540msgstr ""
12541
12542#. type: example
12543#: doc/guix.texi:5324
12544#, no-wrap
12545msgid ""
12546"(gexp->script \"run-uname\"\n"
12547" #~(system* #$(file-append coreutils\n"
12548" \"/bin/uname\")))\n"
12549msgstr ""
12550
12551#. type: deffn
12552#: doc/guix.texi:5327
12553msgid "The same effect could be achieved with:"
12554msgstr ""
12555
12556#. type: example
12557#: doc/guix.texi:5332
12558#, no-wrap
12559msgid ""
12560"(gexp->script \"run-uname\"\n"
12561" #~(system* (string-append #$coreutils\n"
12562" \"/bin/uname\")))\n"
12563msgstr ""
12564
12565#. type: deffn
12566#: doc/guix.texi:5338
12567msgid ""
12568"There is one difference though: in the @code{file-append} case, the "
12569"resulting script contains the absolute file name as a string, whereas in the "
12570"second case, the resulting script contains a @code{(string-append @dots{})} "
12571"expression to construct the file name @emph{at run time}."
12572msgstr ""
12573
12574#. type: Plain text
12575#: doc/guix.texi:5345
12576msgid ""
12577"Of course, in addition to gexps embedded in ``host'' code, there are also "
12578"modules containing build tools. To make it clear that they are meant to be "
12579"used in the build stratum, these modules are kept in the @code{(guix build "
12580"@dots{})} name space."
12581msgstr ""
12582
12583#. type: Plain text
12584#: doc/guix.texi:5351
12585msgid ""
12586"Internally, high-level objects are @dfn{lowered}, using their compiler, to "
12587"either derivations or store items. For instance, lowering a package yields "
12588"a derivation, and lowering a @code{plain-file} yields a store item. This is "
12589"achieved using the @code{lower-object} monadic procedure."
12590msgstr ""
12591
12592#. type: deffn
12593#: doc/guix.texi:5352
12594#, no-wrap
12595msgid "{Monadic Procedure} lower-object @var{obj} [@var{system}] @"
12596msgstr ""
12597
12598#. type: deffn
12599#: doc/guix.texi:5358
12600msgid ""
12601"[#:target #f] Return as a value in @var{%store-monad} the derivation or "
12602"store item corresponding to @var{obj} for @var{system}, cross-compiling for "
12603"@var{target} if @var{target} is true. @var{obj} must be an object that has "
12604"an associated gexp compiler, such as a @code{<package>}."
12605msgstr ""
12606
12607#. type: Plain text
12608#: doc/guix.texi:5369
12609msgid ""
12610"This section describes Guix command-line utilities. Some of them are "
12611"primarily targeted at developers and users who write new package "
12612"definitions, while others are more generally useful. They complement the "
12613"Scheme programming interface of Guix in a convenient way."
12614msgstr ""
12615
12616#. type: cindex
12617#: doc/guix.texi:5391
12618#, no-wrap
12619msgid "package building"
12620msgstr ""
12621
12622#. type: command{#1}
12623#: doc/guix.texi:5392
12624#, no-wrap
12625msgid "guix build"
12626msgstr ""
12627
12628#. type: Plain text
12629#: doc/guix.texi:5398
12630msgid ""
12631"The @command{guix build} command builds packages or derivations and their "
12632"dependencies, and prints the resulting store paths. Note that it does not "
12633"modify the user's profile---this is the job of the @command{guix package} "
12634"command (@pxref{Invoking guix package}). Thus, it is mainly useful for "
12635"distribution developers."
12636msgstr ""
12637
12638#. type: Plain text
39764ef8
JL
12639#: doc/guix.texi:5400 doc/guix.texi:6057 doc/guix.texi:6124 doc/guix.texi:6793
12640#: doc/guix.texi:7123 doc/guix.texi:7453 doc/guix.texi:7758 doc/guix.texi:7824
12641#: doc/guix.texi:7863
b9fe8fd6
JL
12642msgid "The general syntax is:"
12643msgstr ""
12644
12645#. type: example
12646#: doc/guix.texi:5403
12647#, no-wrap
12648msgid "guix build @var{options} @var{package-or-derivation}@dots{}\n"
12649msgstr ""
12650
12651#. type: Plain text
12652#: doc/guix.texi:5408
12653msgid ""
12654"As an example, the following command builds the latest versions of Emacs and "
12655"of Guile, displays their build logs, and finally displays the resulting "
12656"directories:"
12657msgstr ""
12658
12659#. type: example
12660#: doc/guix.texi:5411
12661#, no-wrap
12662msgid "guix build emacs guile\n"
12663msgstr ""
12664
12665#. type: Plain text
12666#: doc/guix.texi:5414
12667msgid "Similarly, the following command builds all the available packages:"
12668msgstr ""
12669
12670#. type: example
12671#: doc/guix.texi:5418
12672#, no-wrap
12673msgid ""
12674"guix build --quiet --keep-going \\\n"
12675" `guix package -A | cut -f1,2 --output-delimiter=@@`\n"
12676msgstr ""
12677
12678#. type: Plain text
12679#: doc/guix.texi:5426
12680msgid ""
12681"@var{package-or-derivation} may be either the name of a package found in the "
12682"software distribution such as @code{coreutils} or @code{coreutils@@8.20}, or "
12683"a derivation such as @file{/gnu/store/@dots{}-coreutils-8.19.drv}. In the "
12684"former case, a package with the corresponding name (and optionally version) "
39764ef8 12685"is searched for among the GNU distribution modules (@pxref{Package Modules})."
b9fe8fd6
JL
12686msgstr ""
12687
12688#. type: Plain text
12689#: doc/guix.texi:5431
12690msgid ""
12691"Alternatively, the @code{--expression} option may be used to specify a "
12692"Scheme expression that evaluates to a package; this is useful when "
12693"disambiguating among several same-named packages or package variants is "
12694"needed."
12695msgstr ""
12696
12697#. type: Plain text
12698#: doc/guix.texi:5434
12699msgid ""
12700"There may be zero or more @var{options}. The available options are "
12701"described in the subsections below."
12702msgstr ""
12703
12704#. type: Plain text
12705#: doc/guix.texi:5449
12706msgid ""
12707"A number of options that control the build process are common to "
12708"@command{guix build} and other commands that can spawn builds, such as "
12709"@command{guix package} or @command{guix archive}. These are the following:"
12710msgstr ""
12711
12712#. type: item
12713#: doc/guix.texi:5452
12714#, no-wrap
12715msgid "--load-path=@var{directory}"
12716msgstr ""
12717
12718#. type: itemx
12719#: doc/guix.texi:5453
12720#, no-wrap
12721msgid "-L @var{directory}"
12722msgstr ""
12723
12724#. type: table
12725#: doc/guix.texi:5456
12726msgid ""
12727"Add @var{directory} to the front of the package module search path "
12728"(@pxref{Package Modules})."
12729msgstr ""
12730
12731#. type: table
12732#: doc/guix.texi:5459
12733msgid ""
12734"This allows users to define their own packages and make them visible to the "
12735"command-line tools."
12736msgstr ""
12737
12738#. type: item
12739#: doc/guix.texi:5460
12740#, no-wrap
12741msgid "--keep-failed"
12742msgstr ""
12743
12744#. type: itemx
12745#: doc/guix.texi:5461
12746#, no-wrap
12747msgid "-K"
12748msgstr ""
12749
12750#. type: table
12751#: doc/guix.texi:5467
12752msgid ""
12753"Keep the build tree of failed builds. Thus, if a build fails, its build "
12754"tree is kept under @file{/tmp}, in a directory whose name is shown at the "
12755"end of the build log. This is useful when debugging build issues. "
12756"@xref{Debugging Build Failures}, for tips and tricks on how to debug build "
12757"issues."
12758msgstr ""
12759
12760#. type: item
12761#: doc/guix.texi:5468
12762#, no-wrap
12763msgid "--keep-going"
12764msgstr ""
12765
12766#. type: itemx
12767#: doc/guix.texi:5469
12768#, no-wrap
12769msgid "-k"
12770msgstr ""
12771
12772#. type: table
12773#: doc/guix.texi:5472
12774msgid ""
12775"Keep going when some of the derivations fail to build; return only once all "
12776"the builds have either completed or failed."
12777msgstr ""
12778
12779#. type: table
12780#: doc/guix.texi:5475
12781msgid ""
12782"The default behavior is to stop as soon as one of the specified derivations "
12783"has failed."
12784msgstr ""
12785
12786#. type: item
12787#: doc/guix.texi:5476
12788#, no-wrap
12789msgid "--dry-run"
12790msgstr ""
12791
12792#. type: itemx
12793#: doc/guix.texi:5477
12794#, no-wrap
12795msgid "-n"
12796msgstr ""
12797
12798#. type: table
12799#: doc/guix.texi:5479
12800msgid "Do not build the derivations."
12801msgstr ""
12802
12803#. type: anchor{#1}
12804#: doc/guix.texi:5481
12805msgid "fallback-option"
12806msgstr ""
12807
12808#. type: item
12809#: doc/guix.texi:5481
12810#, no-wrap
12811msgid "--fallback"
12812msgstr ""
12813
12814#. type: table
12815#: doc/guix.texi:5484
12816msgid ""
12817"When substituting a pre-built binary fails, fall back to building packages "
12818"locally (@pxref{Substitution Failure})."
12819msgstr ""
12820
12821#. type: anchor{#1}
12822#: doc/guix.texi:5490
12823msgid "client-substitute-urls"
12824msgstr ""
12825
12826#. type: table
12827#: doc/guix.texi:5490
12828msgid ""
12829"Consider @var{urls} the whitespace-separated list of substitute source URLs, "
39764ef8
JL
12830"overriding the default list of URLs of @command{guix-daemon} (@pxref{daemon-"
12831"substitute-urls,, @command{guix-daemon} URLs})."
b9fe8fd6
JL
12832msgstr ""
12833
12834#. type: table
12835#: doc/guix.texi:5494
12836msgid ""
12837"This means that substitutes may be downloaded from @var{urls}, provided they "
12838"are signed by a key authorized by the system administrator "
12839"(@pxref{Substitutes})."
12840msgstr ""
12841
12842#. type: table
12843#: doc/guix.texi:5497
39764ef8
JL
12844msgid ""
12845"When @var{urls} is the empty string, substitutes are effectively disabled."
b9fe8fd6
JL
12846msgstr ""
12847
12848#. type: item
12849#: doc/guix.texi:5503
12850#, no-wrap
12851msgid "--no-grafts"
12852msgstr ""
12853
12854#. type: table
12855#: doc/guix.texi:5507
12856msgid ""
12857"Do not ``graft'' packages. In practice, this means that package updates "
12858"available as grafts are not applied. @xref{Security Updates}, for more "
12859"information on grafts."
12860msgstr ""
12861
12862#. type: item
12863#: doc/guix.texi:5508
12864#, no-wrap
12865msgid "--rounds=@var{n}"
12866msgstr ""
12867
12868#. type: table
12869#: doc/guix.texi:5511
12870msgid ""
12871"Build each derivation @var{n} times in a row, and raise an error if "
12872"consecutive build results are not bit-for-bit identical."
12873msgstr ""
12874
12875#. type: table
12876#: doc/guix.texi:5516
12877msgid ""
39764ef8
JL
12878"This is a useful way to detect non-deterministic builds processes. Non-"
12879"deterministic build processes are a problem because they make it practically "
12880"impossible for users to @emph{verify} whether third-party binaries are "
12881"genuine. @xref{Invoking guix challenge}, for more."
b9fe8fd6
JL
12882msgstr ""
12883
12884#. type: table
12885#: doc/guix.texi:5522
12886msgid ""
12887"Note that, currently, the differing build results are not kept around, so "
12888"you will have to manually investigate in case of an error---e.g., by "
12889"stashing one of the build results with @code{guix archive --export} "
12890"(@pxref{Invoking guix archive}), then rebuilding, and finally comparing the "
12891"two results."
12892msgstr ""
12893
12894#. type: table
12895#: doc/guix.texi:5527
12896msgid ""
12897"Do not attempt to offload builds @i{via} the ``build hook'' of the daemon "
12898"(@pxref{Daemon Offload Setup}). That is, always build things locally "
12899"instead of offloading builds to remote machines."
12900msgstr ""
12901
12902#. type: table
12903#: doc/guix.texi:5534
12904msgid ""
12905"By default, the daemon's setting is honored (@pxref{Invoking guix-daemon, "
12906"@code{--max-silent-time}})."
12907msgstr ""
12908
12909#. type: table
12910#: doc/guix.texi:5541
12911msgid ""
12912"By default, the daemon's setting is honored (@pxref{Invoking guix-daemon, "
12913"@code{--timeout}})."
12914msgstr ""
12915
12916#. type: item
12917#: doc/guix.texi:5542
12918#, no-wrap
12919msgid "--verbosity=@var{level}"
12920msgstr ""
12921
12922#. type: table
12923#: doc/guix.texi:5546
12924msgid ""
12925"Use the given verbosity level. @var{level} must be an integer between 0 and "
12926"5; higher means more verbose output. Setting a level of 4 or more may be "
12927"helpful when debugging setup issues with the build daemon."
12928msgstr ""
12929
12930#. type: table
12931#: doc/guix.texi:5551
12932msgid ""
12933"Allow the use of up to @var{n} CPU cores for the build. The special value "
12934"@code{0} means to use as many CPU cores as available."
12935msgstr ""
12936
12937#. type: table
12938#: doc/guix.texi:5557
12939msgid ""
12940"Allow at most @var{n} build jobs in parallel. @xref{Invoking guix-daemon, "
12941"@code{--max-jobs}}, for details about this option and the equivalent "
12942"@command{guix-daemon} option."
12943msgstr ""
12944
12945#. type: Plain text
12946#: doc/guix.texi:5564
12947msgid ""
12948"Behind the scenes, @command{guix build} is essentially an interface to the "
12949"@code{package-derivation} procedure of the @code{(guix packages)} module, "
12950"and to the @code{build-derivations} procedure of the @code{(guix "
12951"derivations)} module."
12952msgstr ""
12953
12954#. type: Plain text
12955#: doc/guix.texi:5568
12956msgid ""
12957"In addition to options explicitly passed on the command line, @command{guix "
12958"build} and other @command{guix} commands that support building honor the "
12959"@code{GUIX_BUILD_OPTIONS} environment variable."
12960msgstr ""
12961
12962#. type: defvr
12963#: doc/guix.texi:5569
12964#, no-wrap
12965msgid "{Environment Variable} GUIX_BUILD_OPTIONS"
12966msgstr ""
12967
12968#. type: defvr
12969#: doc/guix.texi:5574
12970msgid ""
12971"Users can define this variable to a list of command line options that will "
12972"automatically be used by @command{guix build} and other @command{guix} "
12973"commands that can perform builds, as in the example below:"
12974msgstr ""
12975
12976#. type: example
12977#: doc/guix.texi:5577
12978#, no-wrap
12979msgid "$ export GUIX_BUILD_OPTIONS=\"--no-substitutes -c 2 -L /foo/bar\"\n"
12980msgstr ""
12981
12982#. type: defvr
12983#: doc/guix.texi:5581
12984msgid ""
12985"These options are parsed independently, and the result is appended to the "
12986"parsed command-line options."
12987msgstr ""
12988
12989#. type: cindex
12990#: doc/guix.texi:5587
12991#, no-wrap
12992msgid "package variants"
12993msgstr ""
12994
12995#. type: Plain text
12996#: doc/guix.texi:5595
12997msgid ""
12998"Another set of command-line options supported by @command{guix build} and "
12999"also @command{guix package} are @dfn{package transformation options}. These "
13000"are options that make it possible to define @dfn{package variants}---for "
13001"instance, packages built from different source code. This is a convenient "
13002"way to create customized packages on the fly without having to type in the "
13003"definitions of package variants (@pxref{Defining Packages})."
13004msgstr ""
13005
13006#. type: item
13007#: doc/guix.texi:5598
13008#, no-wrap
13009msgid "--with-source=@var{source}"
13010msgstr ""
13011
13012#. type: itemx
13013#: doc/guix.texi:5599
13014#, no-wrap
13015msgid "--with-source=@var{package}=@var{source}"
13016msgstr ""
13017
13018#. type: itemx
13019#: doc/guix.texi:5600
13020#, no-wrap
13021msgid "--with-source=@var{package}@@@var{version}=@var{source}"
13022msgstr ""
13023
13024#. type: table
13025#: doc/guix.texi:5605
13026msgid ""
13027"Use @var{source} as the source of @var{package}, and @var{version} as its "
13028"version number. @var{source} must be a file name or a URL, as for "
13029"@command{guix download} (@pxref{Invoking guix download})."
13030msgstr ""
13031
13032#. type: table
13033#: doc/guix.texi:5611
13034msgid ""
13035"When @var{package} is omitted, it is taken to be the package name specified "
13036"on the command line that matches the base of @var{source}---e.g., if "
13037"@var{source} is @code{/src/guile-2.0.10.tar.gz}, the corresponding package "
13038"is @code{guile}."
13039msgstr ""
13040
13041#. type: table
13042#: doc/guix.texi:5614
13043msgid ""
13044"Likewise, when @var{version} is omitted, the version string is inferred from "
13045"@var{source}; in the previous example, it is @code{2.0.10}."
13046msgstr ""
13047
13048#. type: table
13049#: doc/guix.texi:5619
13050msgid ""
13051"This option allows users to try out versions of packages other than the one "
39764ef8
JL
13052"provided by the distribution. The example below downloads @file{ed-1.7.tar."
13053"gz} from a GNU mirror and uses that as the source for the @code{ed} package:"
b9fe8fd6
JL
13054msgstr ""
13055
13056#. type: example
13057#: doc/guix.texi:5622
13058#, no-wrap
13059msgid "guix build ed --with-source=mirror://gnu/ed/ed-1.7.tar.gz\n"
13060msgstr ""
13061
13062#. type: table
13063#: doc/guix.texi:5626
13064msgid ""
13065"As a developer, @code{--with-source} makes it easy to test release "
13066"candidates:"
13067msgstr ""
13068
13069#. type: example
13070#: doc/guix.texi:5629
13071#, no-wrap
13072msgid "guix build guile --with-source=../guile-2.0.9.219-e1bb7.tar.xz\n"
13073msgstr ""
13074
13075#. type: table
13076#: doc/guix.texi:5632
13077msgid "@dots{} or to build from a checkout in a pristine environment:"
13078msgstr ""
13079
13080#. type: example
13081#: doc/guix.texi:5636
13082#, no-wrap
13083msgid ""
13084"$ git clone git://git.sv.gnu.org/guix.git\n"
13085"$ guix build guix --with-source=guix@@1.0=./guix\n"
13086msgstr ""
13087
13088#. type: item
13089#: doc/guix.texi:5638
13090#, no-wrap
13091msgid "--with-input=@var{package}=@var{replacement}"
13092msgstr ""
13093
13094#. type: table
13095#: doc/guix.texi:5643
13096msgid ""
13097"Replace dependency on @var{package} by a dependency on @var{replacement}. "
13098"@var{package} must be a package name, and @var{replacement} must be a "
13099"package specification such as @code{guile} or @code{guile@@1.8}."
13100msgstr ""
13101
13102#. type: table
13103#: doc/guix.texi:5647
13104msgid ""
13105"For instance, the following command builds Guix, but replaces its dependency "
13106"on the current stable version of Guile with a dependency on the legacy "
13107"version of Guile, @code{guile@@2.0}:"
13108msgstr ""
13109
13110#. type: example
13111#: doc/guix.texi:5650
13112#, no-wrap
13113msgid "guix build --with-input=guile=guile@@2.0 guix\n"
13114msgstr ""
13115
13116#. type: table
13117#: doc/guix.texi:5655
13118msgid ""
13119"This is a recursive, deep replacement. So in this example, both @code{guix} "
13120"and its dependency @code{guile-json} (which also depends on @code{guile}) "
13121"get rebuilt against @code{guile@@2.0}."
13122msgstr ""
13123
13124#. type: table
13125#: doc/guix.texi:5658
13126msgid ""
13127"This is implemented using the @code{package-input-rewriting} Scheme "
13128"procedure (@pxref{Defining Packages, @code{package-input-rewriting}})."
13129msgstr ""
13130
13131#. type: item
13132#: doc/guix.texi:5659
13133#, no-wrap
13134msgid "--with-graft=@var{package}=@var{replacement}"
13135msgstr ""
13136
13137#. type: table
13138#: doc/guix.texi:5665
13139msgid ""
13140"This is similar to @code{--with-input} but with an important difference: "
13141"instead of rebuilding the whole dependency chain, @var{replacement} is built "
13142"and then @dfn{grafted} onto the binaries that were initially referring to "
13143"@var{package}. @xref{Security Updates}, for more information on grafts."
13144msgstr ""
13145
13146#. type: table
13147#: doc/guix.texi:5669
13148msgid ""
13149"For example, the command below grafts version 3.5.4 of GnuTLS onto Wget and "
13150"all its dependencies, replacing references to the version of GnuTLS they "
13151"currently refer to:"
13152msgstr ""
13153
13154#. type: example
13155#: doc/guix.texi:5672
13156#, no-wrap
13157msgid "guix build --with-graft=gnutls=gnutls@@3.5.4 wget\n"
13158msgstr ""
13159
13160#. type: table
13161#: doc/guix.texi:5681
13162msgid ""
13163"This has the advantage of being much faster than rebuilding everything. But "
13164"there is a caveat: it works if and only if @var{package} and "
13165"@var{replacement} are strictly compatible---for example, if they provide a "
13166"library, the application binary interface (ABI) of those libraries must be "
13167"compatible. If @var{replacement} is somehow incompatible with "
13168"@var{package}, then the resulting package may be unusable. Use with care!"
13169msgstr ""
13170
13171#. type: Plain text
13172#: doc/guix.texi:5689
13173msgid ""
13174"The command-line options presented below are specific to @command{guix "
13175"build}."
13176msgstr ""
13177
13178#. type: item
13179#: doc/guix.texi:5692
13180#, no-wrap
13181msgid "--quiet"
13182msgstr ""
13183
13184#. type: itemx
13185#: doc/guix.texi:5693
13186#, no-wrap
13187msgid "-q"
13188msgstr ""
13189
13190#. type: table
13191#: doc/guix.texi:5697
13192msgid ""
13193"Build quietly, without displaying the build log. Upon completion, the build "
13194"log is kept in @file{/var} (or similar) and can always be retrieved using "
13195"the @option{--log-file} option."
13196msgstr ""
13197
13198#. type: item
13199#: doc/guix.texi:5698
13200#, no-wrap
13201msgid "--file=@var{file}"
13202msgstr ""
13203
13204#. type: table
13205#: doc/guix.texi:5703
13206msgid ""
39764ef8 13207"Build the package or derivation that the code within @var{file} evaluates to."
b9fe8fd6
JL
13208msgstr ""
13209
13210#. type: table
13211#: doc/guix.texi:5706
13212msgid ""
13213"As an example, @var{file} might contain a package definition like this "
13214"(@pxref{Defining Packages}):"
13215msgstr ""
13216
13217#. type: table
13218#: doc/guix.texi:5714
13219msgid "Build the package or derivation @var{expr} evaluates to."
13220msgstr ""
13221
13222#. type: table
13223#: doc/guix.texi:5718
13224msgid ""
13225"For example, @var{expr} may be @code{(@@ (gnu packages guile) guile-1.8)}, "
39764ef8 13226"which unambiguously designates this specific variant of version 1.8 of Guile."
b9fe8fd6
JL
13227msgstr ""
13228
13229#. type: table
13230#: doc/guix.texi:5722
13231msgid ""
13232"Alternatively, @var{expr} may be a G-expression, in which case it is used as "
13233"a build program passed to @code{gexp->derivation} (@pxref{G-Expressions})."
13234msgstr ""
13235
13236#. type: table
13237#: doc/guix.texi:5726
13238msgid ""
13239"Lastly, @var{expr} may refer to a zero-argument monadic procedure "
13240"(@pxref{The Store Monad}). The procedure must return a derivation as a "
13241"monadic value, which is then passed through @code{run-with-store}."
13242msgstr ""
13243
13244#. type: item
13245#: doc/guix.texi:5727
13246#, no-wrap
13247msgid "--source"
13248msgstr ""
13249
13250#. type: itemx
13251#: doc/guix.texi:5728
13252#, no-wrap
13253msgid "-S"
13254msgstr ""
13255
13256#. type: table
13257#: doc/guix.texi:5731
13258msgid ""
13259"Build the source derivations of the packages, rather than the packages "
13260"themselves."
13261msgstr ""
13262
13263#. type: table
13264#: doc/guix.texi:5735
13265msgid ""
39764ef8
JL
13266"For instance, @code{guix build -S gcc} returns something like @file{/gnu/"
13267"store/@dots{}-gcc-4.7.2.tar.bz2}, which is the GCC source tarball."
b9fe8fd6
JL
13268msgstr ""
13269
13270#. type: table
13271#: doc/guix.texi:5739
13272msgid ""
13273"The returned source tarball is the result of applying any patches and code "
13274"snippets specified in the package @code{origin} (@pxref{Defining Packages})."
13275msgstr ""
13276
13277#. type: item
13278#: doc/guix.texi:5740
13279#, no-wrap
13280msgid "--sources"
13281msgstr ""
13282
13283#. type: table
13284#: doc/guix.texi:5747
13285msgid ""
13286"Fetch and return the source of @var{package-or-derivation} and all their "
13287"dependencies, recursively. This is a handy way to obtain a local copy of "
13288"all the source code needed to build @var{packages}, allowing you to "
13289"eventually build them even without network access. It is an extension of "
13290"the @code{--source} option and can accept one of the following optional "
13291"argument values:"
13292msgstr ""
13293
13294#. type: item
13295#: doc/guix.texi:5749 doc/guix.texi:6974
13296#, no-wrap
13297msgid "package"
13298msgstr ""
13299
13300#. type: table
13301#: doc/guix.texi:5752
13302msgid ""
13303"This value causes the @code{--sources} option to behave in the same way as "
13304"the @code{--source} option."
13305msgstr ""
13306
13307#. type: item
39764ef8 13308#: doc/guix.texi:5753 doc/guix.texi:11798
b9fe8fd6
JL
13309#, no-wrap
13310msgid "all"
13311msgstr ""
13312
13313#. type: table
13314#: doc/guix.texi:5756
13315msgid ""
13316"Build the source derivations of all packages, including any source that "
13317"might be listed as @code{inputs}. This is the default value."
13318msgstr ""
13319
13320#. type: example
13321#: doc/guix.texi:5762
13322#, no-wrap
13323msgid ""
13324"$ guix build --sources tzdata\n"
13325"The following derivations will be built:\n"
13326" /gnu/store/@dots{}-tzdata2015b.tar.gz.drv\n"
13327" /gnu/store/@dots{}-tzcode2015b.tar.gz.drv\n"
13328msgstr ""
13329
13330#. type: item
13331#: doc/guix.texi:5764
13332#, no-wrap
13333msgid "transitive"
13334msgstr ""
13335
13336#. type: table
13337#: doc/guix.texi:5768
13338msgid ""
13339"Build the source derivations of all packages, as well of all transitive "
13340"inputs to the packages. This can be used e.g. to prefetch package source "
13341"for later offline building."
13342msgstr ""
13343
13344#. type: example
13345#: doc/guix.texi:5779
13346#, no-wrap
13347msgid ""
13348"$ guix build --sources=transitive tzdata\n"
13349"The following derivations will be built:\n"
13350" /gnu/store/@dots{}-tzcode2015b.tar.gz.drv\n"
13351" /gnu/store/@dots{}-findutils-4.4.2.tar.xz.drv\n"
13352" /gnu/store/@dots{}-grep-2.21.tar.xz.drv\n"
13353" /gnu/store/@dots{}-coreutils-8.23.tar.xz.drv\n"
13354" /gnu/store/@dots{}-make-4.1.tar.xz.drv\n"
13355" /gnu/store/@dots{}-bash-4.3.tar.xz.drv\n"
13356"@dots{}\n"
13357msgstr ""
13358
13359#. type: quotation
13360#: doc/guix.texi:5792
13361msgid ""
13362"The @code{--system} flag is for @emph{native} compilation and must not be "
13363"confused with cross-compilation. See @code{--target} below for information "
13364"on cross-compilation."
13365msgstr ""
13366
13367#. type: table
13368#: doc/guix.texi:5798
13369msgid ""
13370"An example use of this is on Linux-based systems, which can emulate "
13371"different personalities. For instance, passing @code{--system=i686-linux} "
13372"on an @code{x86_64-linux} system allows you to build packages in a complete "
13373"32-bit environment."
13374msgstr ""
13375
13376#. type: table
13377#: doc/guix.texi:5803
13378msgid ""
13379"Similarly, when transparent emulation with QEMU and @code{binfmt_misc} is "
13380"enabled (@pxref{Virtualization Services, @code{qemu-binfmt-service-type}}), "
13381"you can build for any system for which a QEMU @code{binfmt_misc} handler is "
13382"installed."
13383msgstr ""
13384
13385#. type: table
13386#: doc/guix.texi:5807
13387msgid ""
13388"Builds for a system other than that of the machine you are using can also be "
13389"offloaded to a remote machine of the right architecture. @xref{Daemon "
13390"Offload Setup}, for more information on offloading."
13391msgstr ""
13392
13393#. type: anchor{#1}
13394#: doc/guix.texi:5815
13395msgid "build-check"
13396msgstr ""
13397
13398#. type: item
13399#: doc/guix.texi:5815
13400#, no-wrap
13401msgid "--check"
13402msgstr ""
13403
13404#. type: cindex
13405#: doc/guix.texi:5816
13406#, no-wrap
13407msgid "determinism, checking"
13408msgstr ""
13409
13410#. type: cindex
13411#: doc/guix.texi:5817
13412#, no-wrap
13413msgid "reproducibility, checking"
13414msgstr ""
13415
13416#. type: table
13417#: doc/guix.texi:5821
13418msgid ""
13419"Rebuild @var{package-or-derivation}, which are already available in the "
39764ef8 13420"store, and raise an error if the build results are not bit-for-bit identical."
b9fe8fd6
JL
13421msgstr ""
13422
13423#. type: table
13424#: doc/guix.texi:5826
13425msgid ""
13426"This mechanism allows you to check whether previously installed substitutes "
13427"are genuine (@pxref{Substitutes}), or whether the build result of a package "
13428"is deterministic. @xref{Invoking guix challenge}, for more background "
13429"information and tools."
13430msgstr ""
13431
13432#. type: item
13433#: doc/guix.texi:5831
13434#, no-wrap
13435msgid "--repair"
13436msgstr ""
13437
13438#. type: cindex
13439#: doc/guix.texi:5832
13440#, no-wrap
13441msgid "repairing store items"
13442msgstr ""
13443
13444#. type: table
13445#: doc/guix.texi:5836
13446msgid ""
39764ef8
JL
13447"Attempt to repair the specified store items, if they are corrupt, by re-"
13448"downloading or rebuilding them."
b9fe8fd6
JL
13449msgstr ""
13450
13451#. type: table
13452#: doc/guix.texi:5838
13453msgid "This operation is not atomic and thus restricted to @code{root}."
13454msgstr ""
13455
13456#. type: item
13457#: doc/guix.texi:5839
13458#, no-wrap
13459msgid "--derivations"
13460msgstr ""
13461
13462#. type: table
13463#: doc/guix.texi:5843
39764ef8
JL
13464msgid ""
13465"Return the derivation paths, not the output paths, of the given packages."
b9fe8fd6
JL
13466msgstr ""
13467
13468#. type: item
39764ef8 13469#: doc/guix.texi:5844 doc/guix.texi:7231 doc/guix.texi:20625
b9fe8fd6
JL
13470#, no-wrap
13471msgid "--root=@var{file}"
13472msgstr ""
13473
13474#. type: itemx
39764ef8 13475#: doc/guix.texi:5845 doc/guix.texi:7232 doc/guix.texi:20626
b9fe8fd6
JL
13476#, no-wrap
13477msgid "-r @var{file}"
13478msgstr ""
13479
13480#. type: cindex
13481#: doc/guix.texi:5846
13482#, no-wrap
13483msgid "GC roots, adding"
13484msgstr ""
13485
13486#. type: cindex
13487#: doc/guix.texi:5847
13488#, no-wrap
13489msgid "garbage collector roots, adding"
13490msgstr ""
13491
13492#. type: table
39764ef8 13493#: doc/guix.texi:5850 doc/guix.texi:20629
b9fe8fd6
JL
13494msgid ""
13495"Make @var{file} a symlink to the result, and register it as a garbage "
13496"collector root."
13497msgstr ""
13498
13499#. type: table
13500#: doc/guix.texi:5856
13501msgid ""
13502"Consequently, the results of this @command{guix build} invocation are "
13503"protected from garbage collection until @var{file} is removed. When that "
13504"option is omitted, build results are eligible for garbage collection as soon "
13505"as the build completes. @xref{Invoking guix gc}, for more on GC roots."
13506msgstr ""
13507
13508#. type: item
13509#: doc/guix.texi:5857
13510#, no-wrap
13511msgid "--log-file"
13512msgstr ""
13513
13514#. type: cindex
13515#: doc/guix.texi:5858
13516#, no-wrap
13517msgid "build logs, access"
13518msgstr ""
13519
13520#. type: table
13521#: doc/guix.texi:5862
13522msgid ""
39764ef8
JL
13523"Return the build log file names or URLs for the given @var{package-or-"
13524"derivation}, or raise an error if build logs are missing."
b9fe8fd6
JL
13525msgstr ""
13526
13527#. type: table
13528#: doc/guix.texi:5865
13529msgid ""
13530"This works regardless of how packages or derivations are specified. For "
13531"instance, the following invocations are equivalent:"
13532msgstr ""
13533
13534#. type: example
13535#: doc/guix.texi:5871
13536#, no-wrap
13537msgid ""
13538"guix build --log-file `guix build -d guile`\n"
13539"guix build --log-file `guix build guile`\n"
13540"guix build --log-file guile\n"
13541"guix build --log-file -e '(@@ (gnu packages guile) guile-2.0)'\n"
13542msgstr ""
13543
13544#. type: table
13545#: doc/guix.texi:5876
13546msgid ""
13547"If a log is unavailable locally, and unless @code{--no-substitutes} is "
13548"passed, the command looks for a corresponding log on one of the substitute "
13549"servers (as specified with @code{--substitute-urls}.)"
13550msgstr ""
13551
13552#. type: table
13553#: doc/guix.texi:5879
13554msgid ""
13555"So for instance, imagine you want to see the build log of GDB on MIPS, but "
13556"you are actually on an @code{x86_64} machine:"
13557msgstr ""
13558
13559#. type: example
13560#: doc/guix.texi:5883
13561#, no-wrap
13562msgid ""
13563"$ guix build --log-file gdb -s mips64el-linux\n"
13564"https://hydra.gnu.org/log/@dots{}-gdb-7.10\n"
13565msgstr ""
13566
13567#. type: table
13568#: doc/guix.texi:5886
13569msgid "You can freely access a huge library of build logs!"
13570msgstr ""
13571
13572#. type: cindex
13573#: doc/guix.texi:5891
13574#, no-wrap
13575msgid "build failures, debugging"
13576msgstr ""
13577
13578#. type: Plain text
13579#: doc/guix.texi:5897
13580msgid ""
13581"When defining a new package (@pxref{Defining Packages}), you will probably "
13582"find yourself spending some time debugging and tweaking the build until it "
13583"succeeds. To do that, you need to operate the build commands yourself in an "
13584"environment as close as possible to the one the build daemon uses."
13585msgstr ""
13586
13587#. type: Plain text
13588#: doc/guix.texi:5902
13589msgid ""
13590"To that end, the first thing to do is to use the @option{--keep-failed} or "
13591"@option{-K} option of @command{guix build}, which will keep the failed build "
13592"tree in @file{/tmp} or whatever directory you specified as @code{TMPDIR} "
13593"(@pxref{Invoking guix build, @code{--keep-failed}})."
13594msgstr ""
13595
13596#. type: Plain text
13597#: doc/guix.texi:5908
13598msgid ""
13599"From there on, you can @command{cd} to the failed build tree and source the "
13600"@file{environment-variables} file, which contains all the environment "
13601"variable definitions that were in place when the build failed. So let's say "
13602"you're debugging a build failure in package @code{foo}; a typical session "
13603"would look like this:"
13604msgstr ""
13605
13606#. type: example
13607#: doc/guix.texi:5915
13608#, no-wrap
13609msgid ""
13610"$ guix build foo -K\n"
13611"@dots{} @i{build fails}\n"
13612"$ cd /tmp/guix-build-foo.drv-0\n"
13613"$ source ./environment-variables\n"
13614"$ cd foo-1.2\n"
13615msgstr ""
13616
13617#. type: Plain text
13618#: doc/guix.texi:5919
13619msgid ""
13620"Now, you can invoke commands as if you were the daemon (almost) and "
13621"troubleshoot your build process."
13622msgstr ""
13623
13624#. type: Plain text
13625#: doc/guix.texi:5925
13626msgid ""
13627"Sometimes it happens that, for example, a package's tests pass when you run "
13628"them manually but they fail when the daemon runs them. This can happen "
13629"because the daemon runs builds in containers where, unlike in our "
13630"environment above, network access is missing, @file{/bin/sh} does not exist, "
13631"etc. (@pxref{Build Environment Setup})."
13632msgstr ""
13633
13634#. type: Plain text
13635#: doc/guix.texi:5928
13636msgid ""
13637"In such cases, you may need to run inspect the build process from within a "
13638"container similar to the one the build daemon creates:"
13639msgstr ""
13640
13641#. type: example
13642#: doc/guix.texi:5936
13643#, no-wrap
13644msgid ""
13645"$ guix build -K foo\n"
13646"@dots{}\n"
13647"$ cd /tmp/guix-build-foo.drv-0\n"
13648"$ guix environment --no-grafts -C foo --ad-hoc strace gdb\n"
13649"[env]# source ./environment-variables\n"
13650"[env]# cd foo-1.2\n"
13651msgstr ""
13652
13653#. type: Plain text
13654#: doc/guix.texi:5945
13655msgid ""
13656"Here, @command{guix environment -C} creates a container and spawns a new "
13657"shell in it (@pxref{Invoking guix environment}). The @command{--ad-hoc "
13658"strace gdb} part adds the @command{strace} and @command{gdb} commands to the "
39764ef8
JL
13659"container, which would may find handy while debugging. The @option{--no-"
13660"grafts} option makes sure we get the exact same environment, with ungrafted "
13661"packages (@pxref{Security Updates}, for more info on grafts)."
b9fe8fd6
JL
13662msgstr ""
13663
13664#. type: Plain text
13665#: doc/guix.texi:5948
13666msgid ""
13667"To get closer to a container like that used by the build daemon, we can "
13668"remove @file{/bin/sh}:"
13669msgstr ""
13670
13671#. type: example
13672#: doc/guix.texi:5951
13673#, no-wrap
13674msgid "[env]# rm /bin/sh\n"
13675msgstr ""
13676
13677#. type: Plain text
13678#: doc/guix.texi:5955
13679msgid ""
13680"(Don't worry, this is harmless: this is all happening in the throw-away "
13681"container created by @command{guix environment}.)"
13682msgstr ""
13683
13684#. type: Plain text
13685#: doc/guix.texi:5958
13686msgid ""
13687"The @command{strace} command is probably not in the search path, but we can "
13688"run:"
13689msgstr ""
13690
13691#. type: example
13692#: doc/guix.texi:5961
13693#, no-wrap
13694msgid "[env]# $GUIX_ENVIRONMENT/bin/strace -f -o log make check\n"
13695msgstr ""
13696
13697#. type: Plain text
13698#: doc/guix.texi:5966
13699msgid ""
13700"In this way, not only you will have reproduced the environment variables the "
13701"daemon uses, you will also be running the build process in a container "
13702"similar to the one the daemon uses."
13703msgstr ""
13704
13705#. type: section
13706#: doc/guix.texi:5969
13707#, no-wrap
13708msgid "Invoking @command{guix edit}"
13709msgstr ""
13710
13711#. type: command{#1}
13712#: doc/guix.texi:5971
13713#, no-wrap
13714msgid "guix edit"
13715msgstr ""
13716
13717#. type: cindex
13718#: doc/guix.texi:5972
13719#, no-wrap
13720msgid "package definition, editing"
13721msgstr ""
13722
13723#. type: Plain text
13724#: doc/guix.texi:5977
13725msgid ""
13726"So many packages, so many source files! The @command{guix edit} command "
13727"facilitates the life of users and packagers by pointing their editor at the "
13728"source file containing the definition of the specified packages. For "
13729"instance:"
13730msgstr ""
13731
13732#. type: example
13733#: doc/guix.texi:5980
13734#, no-wrap
13735msgid "guix edit gcc@@4.9 vim\n"
13736msgstr ""
13737
13738#. type: Plain text
13739#: doc/guix.texi:5986
13740msgid ""
13741"launches the program specified in the @code{VISUAL} or in the @code{EDITOR} "
13742"environment variable to view the recipe of GCC@tie{}4.9.3 and that of Vim."
13743msgstr ""
13744
13745#. type: Plain text
13746#: doc/guix.texi:5992
13747msgid ""
13748"If you are using a Guix Git checkout (@pxref{Building from Git}), or have "
13749"created your own packages on @code{GUIX_PACKAGE_PATH} (@pxref{Defining "
13750"Packages}), you will be able to edit the package recipes. Otherwise, you "
13751"will be able to examine the read-only recipes for packages currently in the "
13752"store."
13753msgstr ""
13754
13755#. type: section
13756#: doc/guix.texi:5995
13757#, no-wrap
13758msgid "Invoking @command{guix download}"
13759msgstr ""
13760
13761#. type: command{#1}
13762#: doc/guix.texi:5997
13763#, no-wrap
13764msgid "guix download"
13765msgstr ""
13766
13767#. type: cindex
13768#: doc/guix.texi:5998
13769#, no-wrap
13770msgid "downloading package sources"
13771msgstr ""
13772
13773#. type: Plain text
13774#: doc/guix.texi:6005
13775msgid ""
13776"When writing a package definition, developers typically need to download a "
13777"source tarball, compute its SHA256 hash, and write that hash in the package "
13778"definition (@pxref{Defining Packages}). The @command{guix download} tool "
13779"helps with this task: it downloads a file from the given URI, adds it to the "
13780"store, and prints both its file name in the store and its SHA256 hash."
13781msgstr ""
13782
13783#. type: Plain text
13784#: doc/guix.texi:6012
13785msgid ""
13786"The fact that the downloaded file is added to the store saves bandwidth: "
13787"when the developer eventually tries to build the newly defined package with "
13788"@command{guix build}, the source tarball will not have to be downloaded "
13789"again because it is already in the store. It is also a convenient way to "
13790"temporarily stash files, which may be deleted eventually (@pxref{Invoking "
13791"guix gc})."
13792msgstr ""
13793
13794#. type: Plain text
13795#: doc/guix.texi:6020
13796msgid ""
13797"The @command{guix download} command supports the same URIs as used in "
13798"package definitions. In particular, it supports @code{mirror://} URIs. "
13799"@code{https} URIs (HTTP over TLS) are supported @emph{provided} the Guile "
13800"bindings for GnuTLS are available in the user's environment; when they are "
13801"not available, an error is raised. @xref{Guile Preparations, how to install "
13802"the GnuTLS bindings for Guile,, gnutls-guile, GnuTLS-Guile}, for more "
13803"information."
13804msgstr ""
13805
13806#. type: Plain text
13807#: doc/guix.texi:6025
13808msgid ""
13809"@command{guix download} verifies HTTPS server certificates by loading the "
13810"certificates of X.509 authorities from the directory pointed to by the "
13811"@code{SSL_CERT_DIR} environment variable (@pxref{X.509 Certificates}), "
13812"unless @option{--no-check-certificate} is used."
13813msgstr ""
13814
13815#. type: Plain text
13816#: doc/guix.texi:6027 doc/guix.texi:7511
13817msgid "The following options are available:"
13818msgstr ""
13819
13820#. type: item
13821#: doc/guix.texi:6029 doc/guix.texi:6068
13822#, no-wrap
13823msgid "--format=@var{fmt}"
13824msgstr ""
13825
13826#. type: itemx
13827#: doc/guix.texi:6030 doc/guix.texi:6069
13828#, no-wrap
13829msgid "-f @var{fmt}"
13830msgstr ""
13831
13832#. type: table
13833#: doc/guix.texi:6033
13834msgid ""
13835"Write the hash in the format specified by @var{fmt}. For more information "
13836"on the valid values for @var{fmt}, @pxref{Invoking guix hash}."
13837msgstr ""
13838
13839#. type: item
13840#: doc/guix.texi:6034
13841#, no-wrap
13842msgid "--no-check-certificate"
13843msgstr ""
13844
13845#. type: table
13846#: doc/guix.texi:6036
13847msgid "Do not validate the X.509 certificates of HTTPS servers."
13848msgstr ""
13849
13850#. type: table
13851#: doc/guix.texi:6040
13852msgid ""
13853"When using this option, you have @emph{absolutely no guarantee} that you are "
13854"communicating with the authentic server responsible for the given URL, which "
13855"makes you vulnerable to ``man-in-the-middle'' attacks."
13856msgstr ""
13857
13858#. type: item
13859#: doc/guix.texi:6041
13860#, no-wrap
13861msgid "--output=@var{file}"
13862msgstr ""
13863
13864#. type: itemx
13865#: doc/guix.texi:6042
13866#, no-wrap
13867msgid "-o @var{file}"
13868msgstr ""
13869
13870#. type: table
13871#: doc/guix.texi:6045
39764ef8
JL
13872msgid ""
13873"Save the downloaded file to @var{file} instead of adding it to the store."
b9fe8fd6
JL
13874msgstr ""
13875
13876#. type: section
13877#: doc/guix.texi:6048
13878#, no-wrap
13879msgid "Invoking @command{guix hash}"
13880msgstr ""
13881
13882#. type: command{#1}
13883#: doc/guix.texi:6050
13884#, no-wrap
13885msgid "guix hash"
13886msgstr ""
13887
13888#. type: Plain text
13889#: doc/guix.texi:6055
13890msgid ""
13891"The @command{guix hash} command computes the SHA256 hash of a file. It is "
13892"primarily a convenience tool for anyone contributing to the distribution: it "
13893"computes the cryptographic hash of a file, which can be used in the "
13894"definition of a package (@pxref{Defining Packages})."
13895msgstr ""
13896
13897#. type: example
13898#: doc/guix.texi:6060
13899#, no-wrap
13900msgid "guix hash @var{option} @var{file}\n"
13901msgstr ""
13902
13903#. type: Plain text
13904#: doc/guix.texi:6065
13905msgid ""
13906"When @var{file} is @code{-} (a hyphen), @command{guix hash} computes the "
13907"hash of data read from standard input. @command{guix hash} has the "
13908"following options:"
13909msgstr ""
13910
13911#. type: table
13912#: doc/guix.texi:6071
13913msgid "Write the hash in the format specified by @var{fmt}."
13914msgstr ""
13915
13916#. type: table
13917#: doc/guix.texi:6074
13918msgid ""
13919"Supported formats: @code{nix-base32}, @code{base32}, @code{base16} "
13920"(@code{hex} and @code{hexadecimal} can be used as well)."
13921msgstr ""
13922
13923#. type: table
13924#: doc/guix.texi:6078
13925msgid ""
13926"If the @option{--format} option is not specified, @command{guix hash} will "
13927"output the hash in @code{nix-base32}. This representation is used in the "
13928"definitions of packages."
13929msgstr ""
13930
13931#. type: table
13932#: doc/guix.texi:6082
13933msgid "Compute the hash on @var{file} recursively."
13934msgstr ""
13935
13936#. type: table
13937#: doc/guix.texi:6091
13938msgid ""
13939"In this case, the hash is computed on an archive containing @var{file}, "
13940"including its children if it is a directory. Some of the metadata of "
13941"@var{file} is part of the archive; for instance, when @var{file} is a "
13942"regular file, the hash is different depending on whether @var{file} is "
13943"executable or not. Metadata such as time stamps has no impact on the hash "
13944"(@pxref{Invoking guix archive})."
13945msgstr ""
13946
13947#. type: item
13948#: doc/guix.texi:6092
13949#, no-wrap
13950msgid "--exclude-vcs"
13951msgstr ""
13952
13953#. type: itemx
13954#: doc/guix.texi:6093
13955#, no-wrap
13956msgid "-x"
13957msgstr ""
13958
13959#. type: table
13960#: doc/guix.texi:6096
13961msgid ""
13962"When combined with @option{--recursive}, exclude version control system "
13963"directories (@file{.bzr}, @file{.git}, @file{.hg}, etc.)"
13964msgstr ""
13965
13966#. type: table
13967#: doc/guix.texi:6101
13968msgid ""
13969"As an example, here is how you would compute the hash of a Git checkout, "
13970"which is useful when using the @code{git-fetch} method (@pxref{origin "
13971"Reference}):"
13972msgstr ""
13973
13974#. type: example
13975#: doc/guix.texi:6106
13976#, no-wrap
13977msgid ""
13978"$ git clone http://example.org/foo.git\n"
13979"$ cd foo\n"
13980"$ guix hash -rx .\n"
13981msgstr ""
13982
13983#. type: cindex
13984#: doc/guix.texi:6110 doc/guix.texi:6115
13985#, no-wrap
13986msgid "Invoking @command{guix import}"
13987msgstr ""
13988
13989#. type: cindex
13990#: doc/guix.texi:6112
13991#, no-wrap
13992msgid "importing packages"
13993msgstr ""
13994
13995#. type: cindex
13996#: doc/guix.texi:6113
13997#, no-wrap
13998msgid "package import"
13999msgstr ""
14000
14001#. type: cindex
14002#: doc/guix.texi:6114
14003#, no-wrap
14004msgid "package conversion"
14005msgstr ""
14006
14007#. type: Plain text
14008#: doc/guix.texi:6122
14009msgid ""
14010"The @command{guix import} command is useful for people who would like to add "
14011"a package to the distribution with as little work as possible---a legitimate "
14012"demand. The command knows of a few repositories from which it can "
14013"``import'' package metadata. The result is a package definition, or a "
14014"template thereof, in the format we know (@pxref{Defining Packages})."
14015msgstr ""
14016
14017#. type: example
14018#: doc/guix.texi:6127
14019#, no-wrap
14020msgid "guix import @var{importer} @var{options}@dots{}\n"
14021msgstr ""
14022
14023#. type: Plain text
14024#: doc/guix.texi:6133
14025msgid ""
14026"@var{importer} specifies the source from which to import package metadata, "
14027"and @var{options} specifies a package identifier and other options specific "
14028"to @var{importer}. Currently, the available ``importers'' are:"
14029msgstr ""
14030
14031#. type: item
14032#: doc/guix.texi:6135 doc/guix.texi:6588
14033#, no-wrap
14034msgid "gnu"
14035msgstr ""
14036
14037#. type: table
14038#: doc/guix.texi:6139
14039msgid ""
14040"Import metadata for the given GNU package. This provides a template for the "
14041"latest version of that GNU package, including the hash of its source "
14042"tarball, and its canonical synopsis and description."
14043msgstr ""
14044
14045#. type: table
14046#: doc/guix.texi:6142
14047msgid ""
14048"Additional information such as the package dependencies and its license "
14049"needs to be figured out manually."
14050msgstr ""
14051
14052#. type: table
14053#: doc/guix.texi:6145
14054msgid ""
39764ef8
JL
14055"For example, the following command returns a package definition for GNU@tie{}"
14056"Hello:"
b9fe8fd6
JL
14057msgstr ""
14058
14059#. type: example
14060#: doc/guix.texi:6148
14061#, no-wrap
14062msgid "guix import gnu hello\n"
14063msgstr ""
14064
14065#. type: table
14066#: doc/guix.texi:6151 doc/guix.texi:6369 doc/guix.texi:6414 doc/guix.texi:6438
14067msgid "Specific command-line options are:"
14068msgstr ""
14069
14070#. type: item
14071#: doc/guix.texi:6153 doc/guix.texi:6689
14072#, no-wrap
14073msgid "--key-download=@var{policy}"
14074msgstr ""
14075
14076#. type: table
14077#: doc/guix.texi:6157
14078msgid ""
14079"As for @code{guix refresh}, specify the policy to handle missing OpenPGP "
14080"keys when verifying the package signature. @xref{Invoking guix refresh, "
14081"@code{--key-download}}."
14082msgstr ""
14083
14084#. type: item
14085#: doc/guix.texi:6159 doc/guix.texi:6160 doc/guix.texi:6606
14086#, no-wrap
14087msgid "pypi"
14088msgstr ""
14089
14090#. type: table
14091#: doc/guix.texi:6168
14092msgid ""
14093"Import metadata from the @uref{https://pypi.python.org/, Python Package "
14094"Index}@footnote{This functionality requires Guile-JSON to be installed. "
14095"@xref{Requirements}.}. Information is taken from the JSON-formatted "
14096"description available at @code{pypi.python.org} and usually includes all the "
14097"relevant information, including package dependencies. For maximum "
14098"efficiency, it is recommended to install the @command{unzip} utility, so "
14099"that the importer can unzip Python wheels and gather data from them."
14100msgstr ""
14101
14102#. type: table
14103#: doc/guix.texi:6171
14104msgid ""
14105"The command below imports metadata for the @code{itsdangerous} Python "
14106"package:"
14107msgstr ""
14108
14109#. type: example
14110#: doc/guix.texi:6174
14111#, no-wrap
14112msgid "guix import pypi itsdangerous\n"
14113msgstr ""
14114
14115#. type: item
14116#: doc/guix.texi:6176 doc/guix.texi:6177 doc/guix.texi:6608
14117#, no-wrap
14118msgid "gem"
14119msgstr ""
14120
14121#. type: table
14122#: doc/guix.texi:6188
14123msgid ""
14124"Import metadata from @uref{https://rubygems.org/, RubyGems}@footnote{This "
14125"functionality requires Guile-JSON to be installed. @xref{Requirements}.}. "
14126"Information is taken from the JSON-formatted description available at "
14127"@code{rubygems.org} and includes most relevant information, including "
14128"runtime dependencies. There are some caveats, however. The metadata "
14129"doesn't distinguish between synopses and descriptions, so the same string is "
14130"used for both fields. Additionally, the details of non-Ruby dependencies "
14131"required to build native extensions is unavailable and left as an exercise "
14132"to the packager."
14133msgstr ""
14134
14135#. type: table
14136#: doc/guix.texi:6190
14137msgid "The command below imports metadata for the @code{rails} Ruby package:"
14138msgstr ""
14139
14140#. type: example
14141#: doc/guix.texi:6193
14142#, no-wrap
14143msgid "guix import gem rails\n"
14144msgstr ""
14145
14146#. type: item
14147#: doc/guix.texi:6195 doc/guix.texi:6604
14148#, no-wrap
14149msgid "cpan"
14150msgstr ""
14151
14152#. type: cindex
14153#: doc/guix.texi:6196
14154#, no-wrap
14155msgid "CPAN"
14156msgstr ""
14157
14158#. type: table
14159#: doc/guix.texi:6206
14160msgid ""
39764ef8
JL
14161"Import metadata from @uref{https://www.metacpan.org/, MetaCPAN}"
14162"@footnote{This functionality requires Guile-JSON to be installed. "
b9fe8fd6
JL
14163"@xref{Requirements}.}. Information is taken from the JSON-formatted "
14164"metadata provided through @uref{https://fastapi.metacpan.org/, MetaCPAN's "
14165"API} and includes most relevant information, such as module dependencies. "
14166"License information should be checked closely. If Perl is available in the "
14167"store, then the @code{corelist} utility will be used to filter core modules "
14168"out of the list of dependencies."
14169msgstr ""
14170
14171#. type: table
14172#: doc/guix.texi:6209
14173msgid ""
14174"The command command below imports metadata for the @code{Acme::Boolean} Perl "
14175"module:"
14176msgstr ""
14177
14178#. type: example
14179#: doc/guix.texi:6212
14180#, no-wrap
14181msgid "guix import cpan Acme::Boolean\n"
14182msgstr ""
14183
14184#. type: item
14185#: doc/guix.texi:6214 doc/guix.texi:6600
14186#, no-wrap
14187msgid "cran"
14188msgstr ""
14189
14190#. type: cindex
14191#: doc/guix.texi:6215
14192#, no-wrap
14193msgid "CRAN"
14194msgstr ""
14195
14196#. type: cindex
14197#: doc/guix.texi:6216
14198#, no-wrap
14199msgid "Bioconductor"
14200msgstr ""
14201
14202#. type: table
14203#: doc/guix.texi:6220
14204msgid ""
14205"Import metadata from @uref{https://cran.r-project.org/, CRAN}, the central "
14206"repository for the @uref{http://r-project.org, GNU@tie{}R statistical and "
14207"graphical environment}."
14208msgstr ""
14209
14210#. type: table
14211#: doc/guix.texi:6222
39764ef8
JL
14212msgid ""
14213"Information is extracted from the @code{DESCRIPTION} file of the package."
b9fe8fd6
JL
14214msgstr ""
14215
14216#. type: table
14217#: doc/guix.texi:6225
39764ef8
JL
14218msgid ""
14219"The command command below imports metadata for the @code{Cairo} R package:"
b9fe8fd6
JL
14220msgstr ""
14221
14222#. type: example
14223#: doc/guix.texi:6228
14224#, no-wrap
14225msgid "guix import cran Cairo\n"
14226msgstr ""
14227
14228#. type: table
14229#: doc/guix.texi:6233
14230msgid ""
14231"When @code{--recursive} is added, the importer will traverse the dependency "
14232"graph of the given upstream package recursively and generate package "
14233"expressions for all those packages that are not yet in Guix."
14234msgstr ""
14235
14236#. type: table
14237#: doc/guix.texi:6238
14238msgid ""
14239"When @code{--archive=bioconductor} is added, metadata is imported from "
14240"@uref{https://www.bioconductor.org/, Bioconductor}, a repository of R "
14241"packages for for the analysis and comprehension of high-throughput genomic "
14242"data in bioinformatics."
14243msgstr ""
14244
14245#. type: table
14246#: doc/guix.texi:6241
14247msgid ""
14248"Information is extracted from the @code{DESCRIPTION} file of a package "
14249"published on the web interface of the Bioconductor SVN repository."
14250msgstr ""
14251
14252#. type: table
14253#: doc/guix.texi:6244
39764ef8
JL
14254msgid ""
14255"The command below imports metadata for the @code{GenomicRanges} R package:"
b9fe8fd6
JL
14256msgstr ""
14257
14258#. type: example
14259#: doc/guix.texi:6247
14260#, no-wrap
14261msgid "guix import cran --archive=bioconductor GenomicRanges\n"
14262msgstr ""
14263
14264#. type: item
14265#: doc/guix.texi:6249
14266#, no-wrap
14267msgid "texlive"
14268msgstr ""
14269
14270#. type: cindex
14271#: doc/guix.texi:6250
14272#, no-wrap
14273msgid "TeX Live"
14274msgstr ""
14275
14276#. type: cindex
14277#: doc/guix.texi:6251
14278#, no-wrap
14279msgid "CTAN"
14280msgstr ""
14281
14282#. type: table
14283#: doc/guix.texi:6255
14284msgid ""
14285"Import metadata from @uref{http://www.ctan.org/, CTAN}, the comprehensive "
39764ef8
JL
14286"TeX archive network for TeX packages that are part of the @uref{https://www."
14287"tug.org/texlive/, TeX Live distribution}."
b9fe8fd6
JL
14288msgstr ""
14289
14290#. type: table
14291#: doc/guix.texi:6260
14292msgid ""
14293"Information about the package is obtained through the XML API provided by "
14294"CTAN, while the source code is downloaded from the SVN repository of the Tex "
14295"Live project. This is done because the CTAN does not keep versioned "
14296"archives."
14297msgstr ""
14298
14299#. type: table
14300#: doc/guix.texi:6263
14301msgid ""
14302"The command command below imports metadata for the @code{fontspec} TeX "
14303"package:"
14304msgstr ""
14305
14306#. type: example
14307#: doc/guix.texi:6266
14308#, no-wrap
14309msgid "guix import texlive fontspec\n"
14310msgstr ""
14311
14312#. type: table
14313#: doc/guix.texi:6272
14314msgid ""
14315"When @code{--archive=DIRECTORY} is added, the source code is downloaded not "
14316"from the @file{latex} sub-directory of the @file{texmf-dist/source} tree in "
14317"the TeX Live SVN repository, but from the specified sibling directory under "
14318"the same root."
14319msgstr ""
14320
14321#. type: table
14322#: doc/guix.texi:6276
14323msgid ""
14324"The command below imports metadata for the @code{ifxetex} package from CTAN "
14325"while fetching the sources from the directory @file{texmf/source/generic}:"
14326msgstr ""
14327
14328#. type: example
14329#: doc/guix.texi:6279
14330#, no-wrap
14331msgid "guix import texlive --archive=generic ifxetex\n"
14332msgstr ""
14333
14334#. type: item
14335#: doc/guix.texi:6281
14336#, no-wrap
14337msgid "json"
14338msgstr ""
14339
14340#. type: cindex
14341#: doc/guix.texi:6282
14342#, no-wrap
14343msgid "JSON, import"
14344msgstr ""
14345
14346#. type: table
14347#: doc/guix.texi:6287
14348msgid ""
14349"Import package metadata from a local JSON file@footnote{This functionality "
14350"requires Guile-JSON to be installed. @xref{Requirements}.}. Consider the "
14351"following example package definition in JSON format:"
14352msgstr ""
14353
14354#. type: example
14355#: doc/guix.texi:6300
14356#, no-wrap
14357msgid ""
14358"@{\n"
14359" \"name\": \"hello\",\n"
14360" \"version\": \"2.10\",\n"
14361" \"source\": \"mirror://gnu/hello/hello-2.10.tar.gz\",\n"
14362" \"build-system\": \"gnu\",\n"
14363" \"home-page\": \"https://www.gnu.org/software/hello/\",\n"
14364" \"synopsis\": \"Hello, GNU world: An example GNU package\",\n"
14365" \"description\": \"GNU Hello prints a greeting.\",\n"
14366" \"license\": \"GPL-3.0+\",\n"
14367" \"native-inputs\": [\"gcc@@6\"]\n"
14368"@}\n"
14369msgstr ""
14370
14371#. type: table
14372#: doc/guix.texi:6306
14373msgid ""
14374"The field names are the same as for the @code{<package>} record "
14375"(@xref{Defining Packages}). References to other packages are provided as "
14376"JSON lists of quoted package specification strings such as @code{guile} or "
14377"@code{guile@@2.0}."
14378msgstr ""
14379
14380#. type: table
14381#: doc/guix.texi:6309
14382msgid ""
14383"The importer also supports a more explicit source definition using the "
14384"common fields for @code{<origin>} records:"
14385msgstr ""
14386
14387#. type: example
14388#: doc/guix.texi:6322
14389#, no-wrap
14390msgid ""
14391"@{\n"
14392" @dots{}\n"
14393" \"source\": @{\n"
14394" \"method\": \"url-fetch\",\n"
14395" \"uri\": \"mirror://gnu/hello/hello-2.10.tar.gz\",\n"
14396" \"sha256\": @{\n"
14397" \"base32\": \"0ssi1wpaf7plaswqqjwigppsg5fyh99vdlb9kzl7c9lng89ndq1i\"\n"
14398" @}\n"
14399" @}\n"
14400" @dots{}\n"
14401"@}\n"
14402msgstr ""
14403
14404#. type: table
14405#: doc/guix.texi:6326
14406msgid ""
14407"The command below reads metadata from the JSON file @code{hello.json} and "
14408"outputs a package expression:"
14409msgstr ""
14410
14411#. type: example
14412#: doc/guix.texi:6329
14413#, no-wrap
14414msgid "guix import json hello.json\n"
14415msgstr ""
14416
14417#. type: item
14418#: doc/guix.texi:6331
14419#, no-wrap
14420msgid "nix"
14421msgstr ""
14422
14423#. type: table
14424#: doc/guix.texi:6340
14425msgid ""
39764ef8
JL
14426"Import metadata from a local copy of the source of the @uref{http://nixos."
14427"org/nixpkgs/, Nixpkgs distribution}@footnote{This relies on the @command{nix-"
14428"instantiate} command of @uref{http://nixos.org/nix/, Nix}.}. Package "
14429"definitions in Nixpkgs are typically written in a mixture of Nix-language "
14430"and Bash code. This command only imports the high-level package structure "
14431"that is written in the Nix language. It normally includes all the basic "
14432"fields of a package definition."
b9fe8fd6
JL
14433msgstr ""
14434
14435#. type: table
14436#: doc/guix.texi:6343
14437msgid ""
14438"When importing a GNU package, the synopsis and descriptions are replaced by "
14439"their canonical upstream variant."
14440msgstr ""
14441
14442#. type: table
14443#: doc/guix.texi:6345
14444msgid "Usually, you will first need to do:"
14445msgstr ""
14446
14447#. type: example
14448#: doc/guix.texi:6348
14449#, no-wrap
14450msgid "export NIX_REMOTE=daemon\n"
14451msgstr ""
14452
14453#. type: table
14454#: doc/guix.texi:6352
39764ef8
JL
14455msgid ""
14456"so that @command{nix-instantiate} does not try to open the Nix database."
b9fe8fd6
JL
14457msgstr ""
14458
14459#. type: table
14460#: doc/guix.texi:6356
14461msgid ""
14462"As an example, the command below imports the package definition of "
14463"LibreOffice (more precisely, it imports the definition of the package bound "
14464"to the @code{libreoffice} top-level attribute):"
14465msgstr ""
14466
14467#. type: example
14468#: doc/guix.texi:6359
14469#, no-wrap
14470msgid "guix import nix ~/path/to/nixpkgs libreoffice\n"
14471msgstr ""
14472
14473#. type: item
14474#: doc/guix.texi:6361 doc/guix.texi:6362 doc/guix.texi:6612
14475#, no-wrap
14476msgid "hackage"
14477msgstr ""
14478
14479#. type: table
14480#: doc/guix.texi:6367
14481msgid ""
14482"Import metadata from the Haskell community's central package archive "
14483"@uref{https://hackage.haskell.org/, Hackage}. Information is taken from "
14484"Cabal files and includes all the relevant information, including package "
14485"dependencies."
14486msgstr ""
14487
14488#. type: item
14489#: doc/guix.texi:6371
14490#, no-wrap
14491msgid "--stdin"
14492msgstr ""
14493
14494#. type: itemx
14495#: doc/guix.texi:6372
14496#, no-wrap
14497msgid "-s"
14498msgstr ""
14499
14500#. type: table
14501#: doc/guix.texi:6374
14502msgid "Read a Cabal file from standard input."
14503msgstr ""
14504
14505#. type: item
14506#: doc/guix.texi:6374 doc/guix.texi:6416
14507#, no-wrap
14508msgid "--no-test-dependencies"
14509msgstr ""
14510
14511#. type: itemx
14512#: doc/guix.texi:6375 doc/guix.texi:6417
14513#, no-wrap
14514msgid "-t"
14515msgstr ""
14516
14517#. type: table
14518#: doc/guix.texi:6377 doc/guix.texi:6419
14519msgid "Do not include dependencies required only by the test suites."
14520msgstr ""
14521
14522#. type: item
14523#: doc/guix.texi:6377
14524#, no-wrap
14525msgid "--cabal-environment=@var{alist}"
14526msgstr ""
14527
14528#. type: itemx
14529#: doc/guix.texi:6378
14530#, no-wrap
14531msgid "-e @var{alist}"
14532msgstr ""
14533
14534#. type: table
14535#: doc/guix.texi:6387
14536msgid ""
14537"@var{alist} is a Scheme alist defining the environment in which the Cabal "
14538"conditionals are evaluated. The accepted keys are: @code{os}, @code{arch}, "
14539"@code{impl} and a string representing the name of a flag. The value "
14540"associated with a flag has to be either the symbol @code{true} or "
14541"@code{false}. The value associated with other keys has to conform to the "
14542"Cabal file format definition. The default value associated with the keys "
14543"@code{os}, @code{arch} and @code{impl} is @samp{linux}, @samp{x86_64} and "
14544"@samp{ghc}, respectively."
14545msgstr ""
14546
14547#. type: table
14548#: doc/guix.texi:6392
14549msgid ""
14550"The command below imports metadata for the latest version of the @code{HTTP} "
14551"Haskell package without including test dependencies and specifying the value "
14552"of the flag @samp{network-uri} as @code{false}:"
14553msgstr ""
14554
14555#. type: example
14556#: doc/guix.texi:6395
14557#, no-wrap
14558msgid "guix import hackage -t -e \"'((\\\"network-uri\\\" . false))\" HTTP\n"
14559msgstr ""
14560
14561#. type: table
14562#: doc/guix.texi:6399
14563msgid ""
14564"A specific package version may optionally be specified by following the "
14565"package name by an at-sign and a version number as in the following example:"
14566msgstr ""
14567
14568#. type: example
14569#: doc/guix.texi:6402
14570#, no-wrap
14571msgid "guix import hackage mtl@@2.1.3.1\n"
14572msgstr ""
14573
14574#. type: item
14575#: doc/guix.texi:6404 doc/guix.texi:6405 doc/guix.texi:6614
14576#, no-wrap
14577msgid "stackage"
14578msgstr ""
14579
14580#. type: table
14581#: doc/guix.texi:6412
14582msgid ""
14583"The @code{stackage} importer is a wrapper around the @code{hackage} one. It "
14584"takes a package name, looks up the package version included in a long-term "
14585"support (LTS) @uref{https://www.stackage.org, Stackage} release and uses the "
14586"@code{hackage} importer to retrieve its metadata. Note that it is up to you "
14587"to select an LTS release compatible with the GHC compiler used by Guix."
14588msgstr ""
14589
14590#. type: item
14591#: doc/guix.texi:6419
14592#, no-wrap
14593msgid "--lts-version=@var{version}"
14594msgstr ""
14595
14596#. type: itemx
14597#: doc/guix.texi:6420
14598#, no-wrap
14599msgid "-r @var{version}"
14600msgstr ""
14601
14602#. type: table
14603#: doc/guix.texi:6423
14604msgid ""
14605"@var{version} is the desired LTS release version. If omitted the latest "
14606"release is used."
14607msgstr ""
14608
14609#. type: table
14610#: doc/guix.texi:6427
14611msgid ""
14612"The command below imports metadata for the @code{HTTP} Haskell package "
14613"included in the LTS Stackage release version 7.18:"
14614msgstr ""
14615
14616#. type: example
14617#: doc/guix.texi:6430
14618#, no-wrap
14619msgid "guix import stackage --lts-version=7.18 HTTP\n"
14620msgstr ""
14621
14622#. type: item
14623#: doc/guix.texi:6432 doc/guix.texi:6433 doc/guix.texi:6598
14624#, no-wrap
14625msgid "elpa"
14626msgstr ""
14627
14628#. type: table
14629#: doc/guix.texi:6436
14630msgid ""
14631"Import metadata from an Emacs Lisp Package Archive (ELPA) package repository "
14632"(@pxref{Packages,,, emacs, The GNU Emacs Manual})."
14633msgstr ""
14634
14635#. type: item
14636#: doc/guix.texi:6440
14637#, no-wrap
14638msgid "--archive=@var{repo}"
14639msgstr ""
14640
14641#. type: itemx
14642#: doc/guix.texi:6441
14643#, no-wrap
14644msgid "-a @var{repo}"
14645msgstr ""
14646
14647#. type: table
14648#: doc/guix.texi:6445
14649msgid ""
14650"@var{repo} identifies the archive repository from which to retrieve the "
39764ef8 14651"information. Currently the supported repositories and their identifiers are:"
b9fe8fd6
JL
14652msgstr ""
14653
14654#. type: itemize
14655#: doc/guix.texi:6449
14656msgid ""
14657"@uref{http://elpa.gnu.org/packages, GNU}, selected by the @code{gnu} "
14658"identifier. This is the default."
14659msgstr ""
14660
14661#. type: itemize
14662#: doc/guix.texi:6455
14663msgid ""
14664"Packages from @code{elpa.gnu.org} are signed with one of the keys contained "
14665"in the GnuPG keyring at @file{share/emacs/25.1/etc/package-keyring.gpg} (or "
14666"similar) in the @code{emacs} package (@pxref{Package Installation, ELPA "
14667"package signatures,, emacs, The GNU Emacs Manual})."
14668msgstr ""
14669
14670#. type: itemize
14671#: doc/guix.texi:6459
14672msgid ""
14673"@uref{http://stable.melpa.org/packages, MELPA-Stable}, selected by the "
14674"@code{melpa-stable} identifier."
14675msgstr ""
14676
14677#. type: itemize
14678#: doc/guix.texi:6463
14679msgid ""
14680"@uref{http://melpa.org/packages, MELPA}, selected by the @code{melpa} "
14681"identifier."
14682msgstr ""
14683
14684#. type: item
14685#: doc/guix.texi:6466 doc/guix.texi:6467 doc/guix.texi:6616
14686#, no-wrap
14687msgid "crate"
14688msgstr ""
14689
14690#. type: table
14691#: doc/guix.texi:6470
14692msgid ""
39764ef8
JL
14693"Import metadata from the crates.io Rust package repository @uref{https://"
14694"crates.io, crates.io}."
b9fe8fd6
JL
14695msgstr ""
14696
14697#. type: Plain text
14698#: doc/guix.texi:6475
14699msgid ""
14700"The structure of the @command{guix import} code is modular. It would be "
14701"useful to have more importers for other package formats, and your help is "
14702"welcome here (@pxref{Contributing})."
14703msgstr ""
14704
14705#. type: section
14706#: doc/guix.texi:6477
14707#, no-wrap
14708msgid "Invoking @command{guix refresh}"
14709msgstr ""
14710
14711#. type: command{#1}
14712#: doc/guix.texi:6479
14713#, no-wrap
14714msgid "guix refresh"
14715msgstr ""
14716
14717#. type: Plain text
14718#: doc/guix.texi:6484
14719msgid ""
14720"The primary audience of the @command{guix refresh} command is developers of "
14721"the GNU software distribution. By default, it reports any packages provided "
14722"by the distribution that are outdated compared to the latest upstream "
14723"version, like this:"
14724msgstr ""
14725
14726#. type: example
14727#: doc/guix.texi:6489
14728#, no-wrap
14729msgid ""
14730"$ guix refresh\n"
39764ef8 14731"gnu/packages/gettext.scm:29:13: gettext would be upgraded from 0.18.1.1 to 0.18.2.1\n"
b9fe8fd6
JL
14732"gnu/packages/glib.scm:77:12: glib would be upgraded from 2.34.3 to 2.37.0\n"
14733msgstr ""
14734
14735#. type: Plain text
14736#: doc/guix.texi:6493
14737msgid ""
14738"Alternately, one can specify packages to consider, in which case a warning "
14739"is emitted for packages that lack an updater:"
14740msgstr ""
14741
14742#. type: example
14743#: doc/guix.texi:6498
14744#, no-wrap
14745msgid ""
14746"$ guix refresh coreutils guile guile-ssh\n"
14747"gnu/packages/ssh.scm:205:2: warning: no updater for guile-ssh\n"
39764ef8 14748"gnu/packages/guile.scm:136:12: guile would be upgraded from 2.0.12 to 2.0.13\n"
b9fe8fd6
JL
14749msgstr ""
14750
14751#. type: Plain text
14752#: doc/guix.texi:6507
14753msgid ""
14754"@command{guix refresh} browses the upstream repository of each package and "
14755"determines the highest version number of the releases therein. The command "
14756"knows how to update specific types of packages: GNU packages, ELPA packages, "
14757"etc.---see the documentation for @option{--type} below. There are many "
14758"packages, though, for which it lacks a method to determine whether a new "
14759"upstream release is available. However, the mechanism is extensible, so "
14760"feel free to get in touch with us to add a new method!"
14761msgstr ""
14762
14763#. type: Plain text
14764#: doc/guix.texi:6512
14765msgid ""
14766"Sometimes the upstream name differs from the package name used in Guix, and "
14767"@command{guix refresh} needs a little help. Most updaters honor the "
14768"@code{upstream-name} property in package definitions, which can be used to "
14769"that effect:"
14770msgstr ""
14771
14772#. type: example
14773#: doc/guix.texi:6519
14774#, no-wrap
14775msgid ""
14776"(define-public network-manager\n"
14777" (package\n"
14778" (name \"network-manager\")\n"
14779" ;; @dots{}\n"
14780" (properties '((upstream-name . \"NetworkManager\")))))\n"
14781msgstr ""
14782
14783#. type: Plain text
14784#: doc/guix.texi:6531
14785msgid ""
14786"When passed @code{--update}, it modifies distribution source files to update "
14787"the version numbers and source tarball hashes of those package recipes "
14788"(@pxref{Defining Packages}). This is achieved by downloading each package's "
14789"latest source tarball and its associated OpenPGP signature, authenticating "
14790"the downloaded tarball against its signature using @command{gpg}, and "
14791"finally computing its hash. When the public key used to sign the tarball is "
14792"missing from the user's keyring, an attempt is made to automatically "
14793"retrieve it from a public key server; when this is successful, the key is "
14794"added to the user's keyring; otherwise, @command{guix refresh} reports an "
14795"error."
14796msgstr ""
14797
14798#. type: Plain text
14799#: doc/guix.texi:6533
14800msgid "The following options are supported:"
14801msgstr ""
14802
14803#. type: table
14804#: doc/guix.texi:6541 doc/guix.texi:7102
14805msgid "This is useful to precisely refer to a package, as in this example:"
14806msgstr ""
14807
14808#. type: example
14809#: doc/guix.texi:6544
14810#, no-wrap
14811msgid "guix refresh -l -e '(@@@@ (gnu packages commencement) glibc-final)'\n"
14812msgstr ""
14813
14814#. type: table
14815#: doc/guix.texi:6548
14816msgid ""
14817"This command lists the dependents of the ``final'' libc (essentially all the "
14818"packages.)"
14819msgstr ""
14820
14821#. type: item
14822#: doc/guix.texi:6549
14823#, no-wrap
14824msgid "--update"
14825msgstr ""
14826
14827#. type: itemx
14828#: doc/guix.texi:6550
14829#, no-wrap
14830msgid "-u"
14831msgstr ""
14832
14833#. type: table
14834#: doc/guix.texi:6554
14835msgid ""
14836"Update distribution source files (package recipes) in place. This is "
14837"usually run from a checkout of the Guix source tree (@pxref{Running Guix "
14838"Before It Is Installed}):"
14839msgstr ""
14840
14841#. type: example
14842#: doc/guix.texi:6557
14843#, no-wrap
14844msgid "$ ./pre-inst-env guix refresh -s non-core -u\n"
14845msgstr ""
14846
14847#. type: table
14848#: doc/guix.texi:6560
14849msgid "@xref{Defining Packages}, for more information on package definitions."
14850msgstr ""
14851
14852#. type: item
14853#: doc/guix.texi:6561
14854#, no-wrap
14855msgid "--select=[@var{subset}]"
14856msgstr ""
14857
14858#. type: itemx
14859#: doc/guix.texi:6562
14860#, no-wrap
14861msgid "-s @var{subset}"
14862msgstr ""
14863
14864#. type: table
14865#: doc/guix.texi:6565
14866msgid ""
39764ef8
JL
14867"Select all the packages in @var{subset}, one of @code{core} or @code{non-"
14868"core}."
b9fe8fd6
JL
14869msgstr ""
14870
14871#. type: table
14872#: doc/guix.texi:6572
14873msgid ""
14874"The @code{core} subset refers to all the packages at the core of the "
14875"distribution---i.e., packages that are used to build ``everything else''. "
14876"This includes GCC, libc, Binutils, Bash, etc. Usually, changing one of "
14877"these packages in the distribution entails a rebuild of all the others. "
14878"Thus, such updates are an inconvenience to users in terms of build time or "
14879"bandwidth used to achieve the upgrade."
14880msgstr ""
14881
14882#. type: table
14883#: doc/guix.texi:6576
14884msgid ""
14885"The @code{non-core} subset refers to the remaining packages. It is "
14886"typically useful in cases where an update of the core packages would be "
14887"inconvenient."
14888msgstr ""
14889
14890#. type: table
14891#: doc/guix.texi:6581
14892msgid ""
14893"Select all the packages from the manifest in @var{file}. This is useful to "
14894"check if any packages of the user manifest can be updated."
14895msgstr ""
14896
14897#. type: item
14898#: doc/guix.texi:6582
14899#, no-wrap
14900msgid "--type=@var{updater}"
14901msgstr ""
14902
14903#. type: itemx
14904#: doc/guix.texi:6583
14905#, no-wrap
14906msgid "-t @var{updater}"
14907msgstr ""
14908
14909#. type: table
14910#: doc/guix.texi:6586
14911msgid ""
14912"Select only packages handled by @var{updater} (may be a comma-separated list "
14913"of updaters). Currently, @var{updater} may be one of:"
14914msgstr ""
14915
14916#. type: table
14917#: doc/guix.texi:6590
14918msgid "the updater for GNU packages;"
14919msgstr ""
14920
14921#. type: item
14922#: doc/guix.texi:6590
14923#, no-wrap
14924msgid "gnome"
14925msgstr ""
14926
14927#. type: table
14928#: doc/guix.texi:6592
14929msgid "the updater for GNOME packages;"
14930msgstr ""
14931
14932#. type: item
14933#: doc/guix.texi:6592
14934#, no-wrap
14935msgid "kde"
14936msgstr ""
14937
14938#. type: table
14939#: doc/guix.texi:6594
14940msgid "the updater for KDE packages;"
14941msgstr ""
14942
14943#. type: item
14944#: doc/guix.texi:6594
14945#, no-wrap
14946msgid "xorg"
14947msgstr ""
14948
14949#. type: table
14950#: doc/guix.texi:6596
14951msgid "the updater for X.org packages;"
14952msgstr ""
14953
14954#. type: item
14955#: doc/guix.texi:6596
14956#, no-wrap
14957msgid "kernel.org"
14958msgstr ""
14959
14960#. type: table
14961#: doc/guix.texi:6598
14962msgid "the updater for packages hosted on kernel.org;"
14963msgstr ""
14964
14965#. type: table
14966#: doc/guix.texi:6600
14967msgid "the updater for @uref{http://elpa.gnu.org/, ELPA} packages;"
14968msgstr ""
14969
14970#. type: table
14971#: doc/guix.texi:6602
14972msgid "the updater for @uref{https://cran.r-project.org/, CRAN} packages;"
14973msgstr ""
14974
14975#. type: item
14976#: doc/guix.texi:6602
14977#, no-wrap
14978msgid "bioconductor"
14979msgstr ""
14980
14981#. type: table
14982#: doc/guix.texi:6604
14983msgid ""
14984"the updater for @uref{https://www.bioconductor.org/, Bioconductor} R "
14985"packages;"
14986msgstr ""
14987
14988#. type: table
14989#: doc/guix.texi:6606
14990msgid "the updater for @uref{http://www.cpan.org/, CPAN} packages;"
14991msgstr ""
14992
14993#. type: table
14994#: doc/guix.texi:6608
14995msgid "the updater for @uref{https://pypi.python.org, PyPI} packages."
14996msgstr ""
14997
14998#. type: table
14999#: doc/guix.texi:6610
15000msgid "the updater for @uref{https://rubygems.org, RubyGems} packages."
15001msgstr ""
15002
15003#. type: item
15004#: doc/guix.texi:6610
15005#, no-wrap
15006msgid "github"
15007msgstr ""
15008
15009#. type: table
15010#: doc/guix.texi:6612
15011msgid "the updater for @uref{https://github.com, GitHub} packages."
15012msgstr ""
15013
15014#. type: table
15015#: doc/guix.texi:6614
15016msgid "the updater for @uref{https://hackage.haskell.org, Hackage} packages."
15017msgstr ""
15018
15019#. type: table
15020#: doc/guix.texi:6616
15021msgid "the updater for @uref{https://www.stackage.org, Stackage} packages."
15022msgstr ""
15023
15024#. type: table
15025#: doc/guix.texi:6618
15026msgid "the updater for @uref{https://crates.io, Crates} packages."
15027msgstr ""
15028
15029#. type: table
15030#: doc/guix.texi:6622
15031msgid ""
15032"For instance, the following command only checks for updates of Emacs "
15033"packages hosted at @code{elpa.gnu.org} and for updates of CRAN packages:"
15034msgstr ""
15035
15036#. type: example
15037#: doc/guix.texi:6627
15038#, no-wrap
15039msgid ""
15040"$ guix refresh --type=elpa,cran\n"
39764ef8
JL
15041"gnu/packages/statistics.scm:819:13: r-testthat would be upgraded from 0.10.0 to 0.11.0\n"
15042"gnu/packages/emacs.scm:856:13: emacs-auctex would be upgraded from 11.88.6 to 11.88.9\n"
b9fe8fd6
JL
15043msgstr ""
15044
15045#. type: Plain text
15046#: doc/guix.texi:6633
15047msgid ""
15048"In addition, @command{guix refresh} can be passed one or more package names, "
15049"as in this example:"
15050msgstr ""
15051
15052#. type: example
15053#: doc/guix.texi:6636
15054#, no-wrap
15055msgid "$ ./pre-inst-env guix refresh -u emacs idutils gcc@@4.8\n"
15056msgstr ""
15057
15058#. type: Plain text
15059#: doc/guix.texi:6642
15060msgid ""
15061"The command above specifically updates the @code{emacs} and @code{idutils} "
15062"packages. The @code{--select} option would have no effect in this case."
15063msgstr ""
15064
15065#. type: Plain text
15066#: doc/guix.texi:6647
15067msgid ""
15068"When considering whether to upgrade a package, it is sometimes convenient to "
15069"know which packages would be affected by the upgrade and should be checked "
15070"for compatibility. For this the following option may be used when passing "
15071"@command{guix refresh} one or more package names:"
15072msgstr ""
15073
15074#. type: item
15075#: doc/guix.texi:6650
15076#, no-wrap
15077msgid "--list-updaters"
15078msgstr ""
15079
15080#. type: itemx
15081#: doc/guix.texi:6651
15082#, no-wrap
15083msgid "-L"
15084msgstr ""
15085
15086#. type: table
15087#: doc/guix.texi:6653
15088msgid "List available updaters and exit (see @option{--type} above.)"
15089msgstr ""
15090
15091#. type: table
15092#: doc/guix.texi:6656
15093msgid ""
15094"For each updater, display the fraction of packages it covers; at the end, "
15095"display the fraction of packages covered by all these updaters."
15096msgstr ""
15097
15098#. type: item
15099#: doc/guix.texi:6657
15100#, no-wrap
15101msgid "--list-dependent"
15102msgstr ""
15103
15104#. type: itemx
15105#: doc/guix.texi:6658 doc/guix.texi:6803
15106#, no-wrap
15107msgid "-l"
15108msgstr ""
15109
15110#. type: table
15111#: doc/guix.texi:6661
15112msgid ""
15113"List top-level dependent packages that would need to be rebuilt as a result "
15114"of upgrading one or more packages."
15115msgstr ""
15116
15117#. type: table
15118#: doc/guix.texi:6665
15119msgid ""
15120"@xref{Invoking guix graph, the @code{reverse-package} type of @command{guix "
15121"graph}}, for information on how to visualize the list of dependents of a "
15122"package."
15123msgstr ""
15124
15125#. type: Plain text
15126#: doc/guix.texi:6671
15127msgid ""
15128"Be aware that the @code{--list-dependent} option only @emph{approximates} "
15129"the rebuilds that would be required as a result of an upgrade. More "
15130"rebuilds might be required under some circumstances."
15131msgstr ""
15132
15133#. type: example
15134#: doc/guix.texi:6676
15135#, no-wrap
15136msgid ""
15137"$ guix refresh --list-dependent flex\n"
39764ef8
JL
15138"Building the following 120 packages would ensure 213 dependent packages are rebuilt:\n"
15139"hop@@2.4.0 geiser@@0.4 notmuch@@0.18 mu@@0.9.9.5 cflow@@1.4 idutils@@4.6 @dots{}\n"
b9fe8fd6
JL
15140msgstr ""
15141
15142#. type: Plain text
15143#: doc/guix.texi:6680
15144msgid ""
15145"The command above lists a set of packages that could be built to check for "
15146"compatibility with an upgraded @code{flex} package."
15147msgstr ""
15148
15149#. type: Plain text
15150#: doc/guix.texi:6682
15151msgid "The following options can be used to customize GnuPG operation:"
15152msgstr ""
15153
15154#. type: item
15155#: doc/guix.texi:6685
15156#, no-wrap
15157msgid "--gpg=@var{command}"
15158msgstr ""
15159
15160#. type: table
15161#: doc/guix.texi:6688
15162msgid ""
15163"Use @var{command} as the GnuPG 2.x command. @var{command} is searched for "
15164"in @code{$PATH}."
15165msgstr ""
15166
15167#. type: table
15168#: doc/guix.texi:6692
39764ef8
JL
15169msgid ""
15170"Handle missing OpenPGP keys according to @var{policy}, which may be one of:"
b9fe8fd6
JL
15171msgstr ""
15172
15173#. type: item
39764ef8 15174#: doc/guix.texi:6694 doc/guix.texi:13715
b9fe8fd6
JL
15175#, no-wrap
15176msgid "always"
15177msgstr ""
15178
15179#. type: table
15180#: doc/guix.texi:6697
15181msgid ""
15182"Always download missing OpenPGP keys from the key server, and add them to "
15183"the user's GnuPG keyring."
15184msgstr ""
15185
15186#. type: item
39764ef8 15187#: doc/guix.texi:6698 doc/guix.texi:13717
b9fe8fd6
JL
15188#, no-wrap
15189msgid "never"
15190msgstr ""
15191
15192#. type: table
15193#: doc/guix.texi:6700
15194msgid "Never try to download missing OpenPGP keys. Instead just bail out."
15195msgstr ""
15196
15197#. type: item
15198#: doc/guix.texi:6701
15199#, no-wrap
15200msgid "interactive"
15201msgstr ""
15202
15203#. type: table
15204#: doc/guix.texi:6704
15205msgid ""
15206"When a package signed with an unknown OpenPGP key is encountered, ask the "
15207"user whether to download it or not. This is the default behavior."
15208msgstr ""
15209
15210#. type: item
15211#: doc/guix.texi:6706
15212#, no-wrap
15213msgid "--key-server=@var{host}"
15214msgstr ""
15215
15216#. type: table
15217#: doc/guix.texi:6708
15218msgid "Use @var{host} as the OpenPGP key server when importing a public key."
15219msgstr ""
15220
15221#. type: Plain text
15222#: doc/guix.texi:6721
15223msgid ""
15224"The @code{github} updater uses the @uref{https://developer.github.com/v3/, "
15225"GitHub API} to query for new releases. When used repeatedly e.g. when "
15226"refreshing all packages, GitHub will eventually refuse to answer any further "
15227"API requests. By default 60 API requests per hour are allowed, and a full "
15228"refresh on all GitHub packages in Guix requires more than this. "
15229"Authentication with GitHub through the use of an API token alleviates these "
15230"limits. To use an API token, set the environment variable "
39764ef8
JL
15231"@code{GUIX_GITHUB_TOKEN} to a token procured from @uref{https://github.com/"
15232"settings/tokens} or otherwise."
b9fe8fd6
JL
15233msgstr ""
15234
15235#. type: section
15236#: doc/guix.texi:6724
15237#, no-wrap
15238msgid "Invoking @command{guix lint}"
15239msgstr ""
15240
15241#. type: command{#1}
15242#: doc/guix.texi:6726
15243#, no-wrap
15244msgid "guix lint"
15245msgstr ""
15246
15247#. type: cindex
15248#: doc/guix.texi:6727
15249#, no-wrap
15250msgid "package, checking for errors"
15251msgstr ""
15252
15253#. type: Plain text
15254#: doc/guix.texi:6733
15255msgid ""
15256"The @command{guix lint} command is meant to help package developers avoid "
15257"common errors and use a consistent style. It runs a number of checks on a "
15258"given set of packages in order to find common mistakes in their "
15259"definitions. Available @dfn{checkers} include (see @code{--list-checkers} "
15260"for a complete list):"
15261msgstr ""
15262
15263#. type: table
15264#: doc/guix.texi:6739
15265msgid ""
15266"Validate certain typographical and stylistic rules about package "
15267"descriptions and synopses."
15268msgstr ""
15269
15270#. type: item
15271#: doc/guix.texi:6740
15272#, no-wrap
15273msgid "inputs-should-be-native"
15274msgstr ""
15275
15276#. type: table
15277#: doc/guix.texi:6742
15278msgid "Identify inputs that should most likely be native inputs."
15279msgstr ""
15280
15281#. type: itemx
15282#: doc/guix.texi:6745
15283#, no-wrap
15284msgid "mirror-url"
15285msgstr ""
15286
15287#. type: itemx
15288#: doc/guix.texi:6746
15289#, no-wrap
15290msgid "source-file-name"
15291msgstr ""
15292
15293#. type: table
15294#: doc/guix.texi:6752
15295msgid ""
15296"Probe @code{home-page} and @code{source} URLs and report those that are "
15297"invalid. Suggest a @code{mirror://} URL when applicable. Check that the "
39764ef8
JL
15298"source file name is meaningful, e.g. is not just a version number or ``git-"
15299"checkout'', without a declared @code{file-name} (@pxref{origin Reference})."
b9fe8fd6
JL
15300msgstr ""
15301
15302#. type: item
15303#: doc/guix.texi:6753
15304#, no-wrap
15305msgid "cve"
15306msgstr ""
15307
15308#. type: cindex
39764ef8 15309#: doc/guix.texi:6754 doc/guix.texi:21485
b9fe8fd6
JL
15310#, no-wrap
15311msgid "security vulnerabilities"
15312msgstr ""
15313
15314#. type: cindex
15315#: doc/guix.texi:6755
15316#, no-wrap
15317msgid "CVE, Common Vulnerabilities and Exposures"
15318msgstr ""
15319
15320#. type: table
15321#: doc/guix.texi:6760
15322msgid ""
15323"Report known vulnerabilities found in the Common Vulnerabilities and "
39764ef8
JL
15324"Exposures (CVE) databases of the current and past year @uref{https://nvd."
15325"nist.gov/download.cfm#CVE_FEED, published by the US NIST}."
b9fe8fd6
JL
15326msgstr ""
15327
15328#. type: table
15329#: doc/guix.texi:6762
39764ef8
JL
15330msgid ""
15331"To view information about a particular vulnerability, visit pages such as:"
b9fe8fd6
JL
15332msgstr ""
15333
15334#. type: indicateurl{#1}
15335#: doc/guix.texi:6766
15336msgid "https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-YYYY-ABCD"
15337msgstr ""
15338
15339#. type: indicateurl{#1}
15340#: doc/guix.texi:6768
15341msgid "https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-YYYY-ABCD"
15342msgstr ""
15343
15344#. type: table
15345#: doc/guix.texi:6773
15346msgid ""
15347"where @code{CVE-YYYY-ABCD} is the CVE identifier---e.g., "
15348"@code{CVE-2015-7554}."
15349msgstr ""
15350
15351#. type: table
15352#: doc/guix.texi:6778
15353msgid ""
39764ef8
JL
15354"Package developers can specify in package recipes the @uref{https://nvd.nist."
15355"gov/cpe.cfm,Common Platform Enumeration (CPE)} name and version of the "
15356"package when they differ from the name that Guix uses, as in this example:"
b9fe8fd6
JL
15357msgstr ""
15358
15359#. type: example
15360#: doc/guix.texi:6785
15361#, no-wrap
15362msgid ""
15363"(package\n"
15364" (name \"grub\")\n"
15365" ;; @dots{}\n"
15366" ;; CPE calls this package \"grub2\".\n"
15367" (properties '((cpe-name . \"grub2\"))))\n"
15368msgstr ""
15369
15370#. type: item
15371#: doc/guix.texi:6787
15372#, no-wrap
15373msgid "formatting"
15374msgstr ""
15375
15376#. type: table
15377#: doc/guix.texi:6790
15378msgid ""
15379"Warn about obvious source code formatting issues: trailing white space, use "
15380"of tabulations, etc."
15381msgstr ""
15382
15383#. type: example
15384#: doc/guix.texi:6796
15385#, no-wrap
15386msgid "guix lint @var{options} @var{package}@dots{}\n"
15387msgstr ""
15388
15389#. type: Plain text
15390#: doc/guix.texi:6800
15391msgid ""
15392"If no package is given on the command line, then all packages are checked. "
15393"The @var{options} may be zero or more of the following:"
15394msgstr ""
15395
15396#. type: item
15397#: doc/guix.texi:6802
15398#, no-wrap
15399msgid "--list-checkers"
15400msgstr ""
15401
15402#. type: table
15403#: doc/guix.texi:6806
15404msgid ""
15405"List and describe all the available checkers that will be run on packages "
15406"and exit."
15407msgstr ""
15408
15409#. type: item
15410#: doc/guix.texi:6807
15411#, no-wrap
15412msgid "--checkers"
15413msgstr ""
15414
15415#. type: itemx
15416#: doc/guix.texi:6808
15417#, no-wrap
15418msgid "-c"
15419msgstr ""
15420
15421#. type: table
15422#: doc/guix.texi:6811
15423msgid ""
15424"Only enable the checkers specified in a comma-separated list using the names "
15425"returned by @code{--list-checkers}."
15426msgstr ""
15427
15428#. type: section
15429#: doc/guix.texi:6815
15430#, no-wrap
15431msgid "Invoking @command{guix size}"
15432msgstr ""
15433
15434#. type: cindex
15435#: doc/guix.texi:6817
15436#, no-wrap
15437msgid "size"
15438msgstr ""
15439
15440#. type: cindex
15441#: doc/guix.texi:6818
15442#, no-wrap
15443msgid "package size"
15444msgstr ""
15445
15446#. type: command{#1}
15447#: doc/guix.texi:6820
15448#, no-wrap
15449msgid "guix size"
15450msgstr ""
15451
15452#. type: Plain text
15453#: doc/guix.texi:6827
15454msgid ""
15455"The @command{guix size} command helps package developers profile the disk "
15456"usage of packages. It is easy to overlook the impact of an additional "
15457"dependency added to a package, or the impact of using a single output for a "
15458"package that could easily be split (@pxref{Packages with Multiple "
15459"Outputs}). Such are the typical issues that @command{guix size} can "
15460"highlight."
15461msgstr ""
15462
15463#. type: Plain text
15464#: doc/guix.texi:6831
15465msgid ""
15466"The command can be passed a package specification such as @code{gcc@@4.8} or "
15467"@code{guile:debug}, or a file name in the store. Consider this example:"
15468msgstr ""
15469
15470#. type: example
15471#: doc/guix.texi:6841
15472#, no-wrap
15473msgid ""
15474"$ guix size coreutils\n"
15475"store item total self\n"
15476"/gnu/store/@dots{}-coreutils-8.23 70.0 13.9 19.8%\n"
15477"/gnu/store/@dots{}-gmp-6.0.0a 55.3 2.5 3.6%\n"
15478"/gnu/store/@dots{}-acl-2.2.52 53.7 0.5 0.7%\n"
15479"/gnu/store/@dots{}-attr-2.4.46 53.2 0.3 0.5%\n"
15480"/gnu/store/@dots{}-gcc-4.8.4-lib 52.9 15.7 22.4%\n"
15481"/gnu/store/@dots{}-glibc-2.21 37.2 37.2 53.1%\n"
15482msgstr ""
15483
15484#. type: Plain text
15485#: doc/guix.texi:6847
15486msgid ""
15487"The store items listed here constitute the @dfn{transitive closure} of "
15488"Coreutils---i.e., Coreutils and all its dependencies, recursively---as would "
15489"be returned by:"
15490msgstr ""
15491
15492#. type: example
15493#: doc/guix.texi:6850
15494#, no-wrap
15495msgid "$ guix gc -R /gnu/store/@dots{}-coreutils-8.23\n"
15496msgstr ""
15497
15498#. type: Plain text
15499#: doc/guix.texi:6858
15500msgid ""
15501"Here the output shows three columns next to store items. The first column, "
15502"labeled ``total'', shows the size in mebibytes (MiB) of the closure of the "
15503"store item---that is, its own size plus the size of all its dependencies. "
15504"The next column, labeled ``self'', shows the size of the item itself. The "
15505"last column shows the ratio of the size of the item itself to the space "
15506"occupied by all the items listed here."
15507msgstr ""
15508
15509#. type: Plain text
15510#: doc/guix.texi:6863
15511msgid ""
39764ef8
JL
15512"In this example, we see that the closure of Coreutils weighs in at 70@tie{}"
15513"MiB, half of which is taken by libc. (That libc represents a large fraction "
15514"of the closure is not a problem @i{per se} because it is always available on "
15515"the system anyway.)"
b9fe8fd6
JL
15516msgstr ""
15517
15518#. type: Plain text
15519#: doc/guix.texi:6869
15520msgid ""
15521"When the package passed to @command{guix size} is available in the store, "
15522"@command{guix size} queries the daemon to determine its dependencies, and "
15523"measures its size in the store, similar to @command{du -ms --apparent-size} "
15524"(@pxref{du invocation,,, coreutils, GNU Coreutils})."
15525msgstr ""
15526
15527#. type: Plain text
15528#: doc/guix.texi:6874
15529msgid ""
15530"When the given package is @emph{not} in the store, @command{guix size} "
15531"reports information based on the available substitutes "
15532"(@pxref{Substitutes}). This makes it possible it to profile disk usage of "
15533"store items that are not even on disk, only available remotely."
15534msgstr ""
15535
15536#. type: Plain text
15537#: doc/guix.texi:6876
15538msgid "You can also specify several package names:"
15539msgstr ""
15540
15541#. type: example
15542#: doc/guix.texi:6886
15543#, no-wrap
15544msgid ""
15545"$ guix size coreutils grep sed bash\n"
15546"store item total self\n"
15547"/gnu/store/@dots{}-coreutils-8.24 77.8 13.8 13.4%\n"
15548"/gnu/store/@dots{}-grep-2.22 73.1 0.8 0.8%\n"
15549"/gnu/store/@dots{}-bash-4.3.42 72.3 4.7 4.6%\n"
15550"/gnu/store/@dots{}-readline-6.3 67.6 1.2 1.2%\n"
15551"@dots{}\n"
15552"total: 102.3 MiB\n"
15553msgstr ""
15554
15555#. type: Plain text
15556#: doc/guix.texi:6892
15557msgid ""
15558"In this example we see that the combination of the four packages takes "
15559"102.3@tie{}MiB in total, which is much less than the sum of each closure "
15560"since they have a lot of dependencies in common."
15561msgstr ""
15562
15563#. type: Plain text
15564#: doc/guix.texi:6894
15565msgid "The available options are:"
15566msgstr ""
15567
15568#. type: table
15569#: doc/guix.texi:6900
15570msgid ""
15571"Use substitute information from @var{urls}. @xref{client-substitute-urls, "
15572"the same option for @code{guix build}}."
15573msgstr ""
15574
15575#. type: item
15576#: doc/guix.texi:6901
15577#, no-wrap
15578msgid "--sort=@var{key}"
15579msgstr ""
15580
15581#. type: table
15582#: doc/guix.texi:6903
15583msgid "Sort lines according to @var{key}, one of the following options:"
15584msgstr ""
15585
15586#. type: item
15587#: doc/guix.texi:6905
15588#, no-wrap
15589msgid "self"
15590msgstr ""
15591
15592#. type: table
15593#: doc/guix.texi:6907
15594msgid "the size of each item (the default);"
15595msgstr ""
15596
15597#. type: table
15598#: doc/guix.texi:6909
15599msgid "the total size of the item's closure."
15600msgstr ""
15601
15602#. type: item
15603#: doc/guix.texi:6911
15604#, no-wrap
15605msgid "--map-file=@var{file}"
15606msgstr ""
15607
15608#. type: table
15609#: doc/guix.texi:6913
15610msgid "Write a graphical map of disk usage in PNG format to @var{file}."
15611msgstr ""
15612
15613#. type: table
15614#: doc/guix.texi:6915
15615msgid "For the example above, the map looks like this:"
15616msgstr ""
15617
15618#. type: table
15619#: doc/guix.texi:6918
15620msgid ""
15621"@image{images/coreutils-size-map,5in,, map of Coreutils disk usage produced "
15622"by @command{guix size}}"
15623msgstr ""
15624
15625#. type: table
15626#: doc/guix.texi:6923
15627msgid ""
39764ef8
JL
15628"This option requires that @uref{http://wingolog.org/software/guile-"
15629"charting/, Guile-Charting} be installed and visible in Guile's module search "
15630"path. When that is not the case, @command{guix size} fails as it tries to "
15631"load it."
b9fe8fd6
JL
15632msgstr ""
15633
15634#. type: table
15635#: doc/guix.texi:6927
15636msgid "Consider packages for @var{system}---e.g., @code{x86_64-linux}."
15637msgstr ""
15638
15639#. type: section
15640#: doc/guix.texi:6931
15641#, no-wrap
15642msgid "Invoking @command{guix graph}"
15643msgstr ""
15644
15645#. type: cindex
15646#: doc/guix.texi:6933
15647#, no-wrap
15648msgid "DAG"
15649msgstr ""
15650
15651#. type: command{#1}
15652#: doc/guix.texi:6934
15653#, no-wrap
15654msgid "guix graph"
15655msgstr ""
15656
15657#. type: Plain text
15658#: doc/guix.texi:6948
15659msgid ""
15660"Packages and their dependencies form a @dfn{graph}, specifically a directed "
15661"acyclic graph (DAG). It can quickly become difficult to have a mental model "
15662"of the package DAG, so the @command{guix graph} command provides a visual "
15663"representation of the DAG. By default, @command{guix graph} emits a DAG "
15664"representation in the input format of @uref{http://www.graphviz.org/, "
15665"Graphviz}, so its output can be passed directly to the @command{dot} command "
15666"of Graphviz. It can also emit an HTML page with embedded JavaScript code to "
39764ef8
JL
15667"display a ``chord diagram'' in a Web browser, using the @uref{https://d3js."
15668"org/, d3.js} library, or emit Cypher queries to construct a graph in a graph "
15669"database supporting the @uref{http://www.opencypher.org/, openCypher} query "
15670"language. The general syntax is:"
b9fe8fd6
JL
15671msgstr ""
15672
15673#. type: example
15674#: doc/guix.texi:6951
15675#, no-wrap
15676msgid "guix graph @var{options} @var{package}@dots{}\n"
15677msgstr ""
15678
15679#. type: Plain text
15680#: doc/guix.texi:6956
15681msgid ""
15682"For example, the following command generates a PDF file representing the "
15683"package DAG for the GNU@tie{}Core Utilities, showing its build-time "
15684"dependencies:"
15685msgstr ""
15686
15687#. type: example
15688#: doc/guix.texi:6959
15689#, no-wrap
15690msgid "guix graph coreutils | dot -Tpdf > dag.pdf\n"
15691msgstr ""
15692
15693#. type: Plain text
15694#: doc/guix.texi:6962
15695msgid "The output looks like this:"
15696msgstr ""
15697
15698#. type: Plain text
15699#: doc/guix.texi:6964
39764ef8
JL
15700msgid ""
15701"@image{images/coreutils-graph,2in,,Dependency graph of the GNU Coreutils}"
b9fe8fd6
JL
15702msgstr ""
15703
15704#. type: Plain text
15705#: doc/guix.texi:6966
15706msgid "Nice little graph, no?"
15707msgstr ""
15708
15709#. type: Plain text
15710#: doc/guix.texi:6972
15711msgid ""
15712"But there is more than one graph! The one above is concise: it is the graph "
15713"of package objects, omitting implicit inputs such as GCC, libc, grep, etc. "
15714"It is often useful to have such a concise graph, but sometimes one may want "
15715"to see more details. @command{guix graph} supports several types of graphs, "
15716"allowing you to choose the level of detail:"
15717msgstr ""
15718
15719#. type: table
15720#: doc/guix.texi:6978
15721msgid ""
15722"This is the default type used in the example above. It shows the DAG of "
15723"package objects, excluding implicit dependencies. It is concise, but "
15724"filters out many details."
15725msgstr ""
15726
15727#. type: item
15728#: doc/guix.texi:6979
15729#, no-wrap
15730msgid "reverse-package"
15731msgstr ""
15732
15733#. type: table
15734#: doc/guix.texi:6981
15735msgid "This shows the @emph{reverse} DAG of packages. For example:"
15736msgstr ""
15737
15738#. type: example
15739#: doc/guix.texi:6984
15740#, no-wrap
15741msgid "guix graph --type=reverse-package ocaml\n"
15742msgstr ""
15743
15744#. type: table
15745#: doc/guix.texi:6987
15746msgid "... yields the graph of packages that depend on OCaml."
15747msgstr ""
15748
15749#. type: table
15750#: doc/guix.texi:6992
15751msgid ""
15752"Note that for core packages this can yield huge graphs. If all you want is "
15753"to know the number of packages that depend on a given package, use "
15754"@command{guix refresh --list-dependent} (@pxref{Invoking guix refresh, "
15755"@option{--list-dependent}})."
15756msgstr ""
15757
15758#. type: item
15759#: doc/guix.texi:6993
15760#, no-wrap
15761msgid "bag-emerged"
15762msgstr ""
15763
15764#. type: table
15765#: doc/guix.texi:6995
15766msgid "This is the package DAG, @emph{including} implicit inputs."
15767msgstr ""
15768
15769#. type: table
15770#: doc/guix.texi:6997
15771msgid "For instance, the following command:"
15772msgstr ""
15773
15774#. type: example
15775#: doc/guix.texi:7000
15776#, no-wrap
15777msgid "guix graph --type=bag-emerged coreutils | dot -Tpdf > dag.pdf\n"
15778msgstr ""
15779
15780#. type: table
15781#: doc/guix.texi:7003
15782msgid "... yields this bigger graph:"
15783msgstr ""
15784
15785#. type: table
15786#: doc/guix.texi:7005
15787msgid ""
15788"@image{images/coreutils-bag-graph,,5in,Detailed dependency graph of the GNU "
15789"Coreutils}"
15790msgstr ""
15791
15792#. type: table
15793#: doc/guix.texi:7008
15794msgid ""
39764ef8
JL
15795"At the bottom of the graph, we see all the implicit inputs of @var{gnu-build-"
15796"system} (@pxref{Build Systems, @code{gnu-build-system}})."
b9fe8fd6
JL
15797msgstr ""
15798
15799#. type: table
15800#: doc/guix.texi:7012
15801msgid ""
15802"Now, note that the dependencies of these implicit inputs---that is, the "
15803"@dfn{bootstrap dependencies} (@pxref{Bootstrapping})---are not shown here, "
15804"for conciseness."
15805msgstr ""
15806
15807#. type: item
15808#: doc/guix.texi:7013
15809#, no-wrap
15810msgid "bag"
15811msgstr ""
15812
15813#. type: table
15814#: doc/guix.texi:7016
15815msgid ""
15816"Similar to @code{bag-emerged}, but this time including all the bootstrap "
15817"dependencies."
15818msgstr ""
15819
15820#. type: item
15821#: doc/guix.texi:7017
15822#, no-wrap
15823msgid "bag-with-origins"
15824msgstr ""
15825
15826#. type: table
15827#: doc/guix.texi:7019
15828msgid "Similar to @code{bag}, but also showing origins and their dependencies."
15829msgstr ""
15830
15831#. type: table
15832#: doc/guix.texi:7025
15833msgid ""
15834"This is the most detailed representation: It shows the DAG of derivations "
15835"(@pxref{Derivations}) and plain store items. Compared to the above "
15836"representation, many additional nodes are visible, including build scripts, "
15837"patches, Guile modules, etc."
15838msgstr ""
15839
15840#. type: table
15841#: doc/guix.texi:7028
15842msgid ""
15843"For this type of graph, it is also possible to pass a @file{.drv} file name "
15844"instead of a package name, as in:"
15845msgstr ""
15846
15847#. type: example
15848#: doc/guix.texi:7031
15849#, no-wrap
15850msgid "guix graph -t derivation `guix system build -d my-config.scm`\n"
15851msgstr ""
15852
15853#. type: item
15854#: doc/guix.texi:7033
15855#, no-wrap
15856msgid "module"
15857msgstr ""
15858
15859#. type: table
15860#: doc/guix.texi:7037
15861msgid ""
15862"This is the graph of @dfn{package modules} (@pxref{Package Modules}). For "
15863"example, the following command shows the graph for the package module that "
15864"defines the @code{guile} package:"
15865msgstr ""
15866
15867#. type: example
15868#: doc/guix.texi:7040
15869#, no-wrap
15870msgid "guix graph -t module guile | dot -Tpdf > module-graph.pdf\n"
15871msgstr ""
15872
15873#. type: Plain text
15874#: doc/guix.texi:7045
15875msgid ""
15876"All the types above correspond to @emph{build-time dependencies}. The "
15877"following graph type represents the @emph{run-time dependencies}:"
15878msgstr ""
15879
15880#. type: item
15881#: doc/guix.texi:7047
15882#, no-wrap
15883msgid "references"
15884msgstr ""
15885
15886#. type: table
15887#: doc/guix.texi:7050
15888msgid ""
15889"This is the graph of @dfn{references} of a package output, as returned by "
15890"@command{guix gc --references} (@pxref{Invoking guix gc})."
15891msgstr ""
15892
15893#. type: table
15894#: doc/guix.texi:7053
15895msgid ""
15896"If the given package output is not available in the store, @command{guix "
15897"graph} attempts to obtain dependency information from substitutes."
15898msgstr ""
15899
15900#. type: table
15901#: doc/guix.texi:7057
15902msgid ""
15903"Here you can also pass a store file name instead of a package name. For "
15904"example, the command below produces the reference graph of your profile "
15905"(which can be big!):"
15906msgstr ""
15907
15908#. type: example
15909#: doc/guix.texi:7060
15910#, no-wrap
15911msgid "guix graph -t references `readlink -f ~/.guix-profile`\n"
15912msgstr ""
15913
15914#. type: item
15915#: doc/guix.texi:7062
15916#, no-wrap
15917msgid "referrers"
15918msgstr ""
15919
15920#. type: table
15921#: doc/guix.texi:7065
15922msgid ""
15923"This is the graph of the @dfn{referrers} of a store item, as returned by "
15924"@command{guix gc --referrers} (@pxref{Invoking guix gc})."
15925msgstr ""
15926
15927#. type: table
15928#: doc/guix.texi:7071
15929msgid ""
15930"This relies exclusively on local information from your store. For instance, "
15931"let us suppose that the current Inkscape is available in 10 profiles on your "
15932"machine; @command{guix graph -t referrers inkscape} will show a graph rooted "
15933"at Inkscape and with those 10 profiles linked to it."
15934msgstr ""
15935
15936#. type: table
15937#: doc/guix.texi:7074
15938msgid ""
15939"It can help determine what is preventing a store item from being garbage "
15940"collected."
15941msgstr ""
15942
15943#. type: Plain text
15944#: doc/guix.texi:7078
15945msgid "The available options are the following:"
15946msgstr ""
15947
15948#. type: item
15949#: doc/guix.texi:7080
15950#, no-wrap
15951msgid "--type=@var{type}"
15952msgstr ""
15953
15954#. type: itemx
39764ef8 15955#: doc/guix.texi:7081 doc/guix.texi:20603
b9fe8fd6
JL
15956#, no-wrap
15957msgid "-t @var{type}"
15958msgstr ""
15959
15960#. type: table
15961#: doc/guix.texi:7084
15962msgid ""
15963"Produce a graph output of @var{type}, where @var{type} must be one of the "
15964"values listed above."
15965msgstr ""
15966
15967#. type: item
15968#: doc/guix.texi:7085
15969#, no-wrap
15970msgid "--list-types"
15971msgstr ""
15972
15973#. type: table
15974#: doc/guix.texi:7087
15975msgid "List the supported graph types."
15976msgstr ""
15977
15978#. type: item
15979#: doc/guix.texi:7088
15980#, no-wrap
15981msgid "--backend=@var{backend}"
15982msgstr ""
15983
15984#. type: itemx
15985#: doc/guix.texi:7089
15986#, no-wrap
15987msgid "-b @var{backend}"
15988msgstr ""
15989
15990#. type: table
15991#: doc/guix.texi:7091
15992msgid "Produce a graph using the selected @var{backend}."
15993msgstr ""
15994
15995#. type: item
15996#: doc/guix.texi:7092
15997#, no-wrap
15998msgid "--list-backends"
15999msgstr ""
16000
16001#. type: table
16002#: doc/guix.texi:7094
16003msgid "List the supported graph backends."
16004msgstr ""
16005
16006#. type: table
16007#: doc/guix.texi:7096
16008msgid "Currently, the available backends are Graphviz and d3.js."
16009msgstr ""
16010
16011#. type: example
16012#: doc/guix.texi:7105
16013#, no-wrap
16014msgid "guix graph -e '(@@@@ (gnu packages commencement) gnu-make-final)'\n"
16015msgstr ""
16016
16017#. type: section
16018#: doc/guix.texi:7110
16019#, no-wrap
16020msgid "Invoking @command{guix environment}"
16021msgstr ""
16022
16023#. type: cindex
16024#: doc/guix.texi:7112
16025#, no-wrap
16026msgid "reproducible build environments"
16027msgstr ""
16028
16029#. type: cindex
16030#: doc/guix.texi:7113
16031#, no-wrap
16032msgid "development environments"
16033msgstr ""
16034
16035#. type: command{#1}
16036#: doc/guix.texi:7114
16037#, no-wrap
16038msgid "guix environment"
16039msgstr ""
16040
16041#. type: cindex
16042#: doc/guix.texi:7115
16043#, no-wrap
16044msgid "environment, package build environment"
16045msgstr ""
16046
16047#. type: Plain text
16048#: doc/guix.texi:7121
16049msgid ""
16050"The purpose of @command{guix environment} is to assist hackers in creating "
16051"reproducible development environments without polluting their package "
16052"profile. The @command{guix environment} tool takes one or more packages, "
16053"builds all of their inputs, and creates a shell environment to use them."
16054msgstr ""
16055
16056#. type: example
16057#: doc/guix.texi:7126
16058#, no-wrap
16059msgid "guix environment @var{options} @var{package}@dots{}\n"
16060msgstr ""
16061
16062#. type: Plain text
16063#: doc/guix.texi:7130
16064msgid ""
16065"The following example spawns a new shell set up for the development of "
16066"GNU@tie{}Guile:"
16067msgstr ""
16068
16069#. type: example
16070#: doc/guix.texi:7133
16071#, no-wrap
16072msgid "guix environment guile\n"
16073msgstr ""
16074
16075#. type: Plain text
16076#: doc/guix.texi:7150
16077msgid ""
16078"If the needed dependencies are not built yet, @command{guix environment} "
16079"automatically builds them. The environment of the new shell is an augmented "
16080"version of the environment that @command{guix environment} was run in. It "
16081"contains the necessary search paths for building the given package added to "
16082"the existing environment variables. To create a ``pure'' environment, in "
39764ef8
JL
16083"which the original environment variables have been unset, use the @code{--"
16084"pure} option@footnote{Users sometimes wrongfully augment environment "
b9fe8fd6
JL
16085"variables such as @code{PATH} in their @file{~/.bashrc} file. As a "
16086"consequence, when @code{guix environment} launches it, Bash may read "
16087"@file{~/.bashrc}, thereby introducing ``impurities'' in these environment "
39764ef8
JL
16088"variables. It is an error to define such environment variables in @file{."
16089"bashrc}; instead, they should be defined in @file{.bash_profile}, which is "
16090"sourced only by log-in shells. @xref{Bash Startup Files,,, bash, The GNU "
16091"Bash Reference Manual}, for details on Bash start-up files.}."
b9fe8fd6
JL
16092msgstr ""
16093
16094#. type: vindex
16095#: doc/guix.texi:7151
16096#, no-wrap
16097msgid "GUIX_ENVIRONMENT"
16098msgstr ""
16099
16100#. type: Plain text
16101#: doc/guix.texi:7157
16102msgid ""
16103"@command{guix environment} defines the @code{GUIX_ENVIRONMENT} variable in "
16104"the shell it spawns; its value is the file name of the profile of this "
16105"environment. This allows users to, say, define a specific prompt for "
16106"development environments in their @file{.bashrc} (@pxref{Bash Startup "
16107"Files,,, bash, The GNU Bash Reference Manual}):"
16108msgstr ""
16109
16110#. type: example
16111#: doc/guix.texi:7163
16112#, no-wrap
16113msgid ""
16114"if [ -n \"$GUIX_ENVIRONMENT\" ]\n"
16115"then\n"
16116" export PS1=\"\\u@@\\h \\w [dev]\\$ \"\n"
16117"fi\n"
16118msgstr ""
16119
16120#. type: Plain text
16121#: doc/guix.texi:7167
16122msgid "... or to browse the profile:"
16123msgstr ""
16124
16125#. type: example
16126#: doc/guix.texi:7170
16127#, no-wrap
16128msgid "$ ls \"$GUIX_ENVIRONMENT/bin\"\n"
16129msgstr ""
16130
16131#. type: Plain text
16132#: doc/guix.texi:7176
16133msgid ""
16134"Additionally, more than one package may be specified, in which case the "
16135"union of the inputs for the given packages are used. For example, the "
16136"command below spawns a shell where all of the dependencies of both Guile and "
16137"Emacs are available:"
16138msgstr ""
16139
16140#. type: example
16141#: doc/guix.texi:7179
16142#, no-wrap
16143msgid "guix environment guile emacs\n"
16144msgstr ""
16145
16146#. type: Plain text
16147#: doc/guix.texi:7184
16148msgid ""
16149"Sometimes an interactive shell session is not desired. An arbitrary command "
16150"may be invoked by placing the @code{--} token to separate the command from "
16151"the rest of the arguments:"
16152msgstr ""
16153
16154#. type: example
16155#: doc/guix.texi:7187
16156#, no-wrap
16157msgid "guix environment guile -- make -j4\n"
16158msgstr ""
16159
16160#. type: Plain text
16161#: doc/guix.texi:7193
16162msgid ""
16163"In other situations, it is more convenient to specify the list of packages "
16164"needed in the environment. For example, the following command runs "
16165"@command{python} from an environment containing Python@tie{}2.7 and NumPy:"
16166msgstr ""
16167
16168#. type: example
16169#: doc/guix.texi:7196
16170#, no-wrap
16171msgid "guix environment --ad-hoc python2-numpy python-2.7 -- python\n"
16172msgstr ""
16173
16174#. type: Plain text
16175#: doc/guix.texi:7207
16176msgid ""
16177"Furthermore, one might want the dependencies of a package and also some "
16178"additional packages that are not build-time or runtime dependencies, but are "
16179"useful when developing nonetheless. Because of this, the @code{--ad-hoc} "
16180"flag is positional. Packages appearing before @code{--ad-hoc} are "
16181"interpreted as packages whose dependencies will be added to the "
16182"environment. Packages appearing after are interpreted as packages that will "
16183"be added to the environment directly. For example, the following command "
16184"creates a Guix development environment that additionally includes Git and "
16185"strace:"
16186msgstr ""
16187
16188#. type: example
16189#: doc/guix.texi:7210
16190#, no-wrap
16191msgid "guix environment guix --ad-hoc git strace\n"
16192msgstr ""
16193
16194#. type: Plain text
16195#: doc/guix.texi:7219
16196msgid ""
16197"Sometimes it is desirable to isolate the environment as much as possible, "
16198"for maximal purity and reproducibility. In particular, when using Guix on a "
39764ef8
JL
16199"host distro that is not GuixSD, it is desirable to prevent access to @file{/"
16200"usr/bin} and other system-wide resources from the development environment. "
16201"For example, the following command spawns a Guile REPL in a ``container'' "
16202"where only the store and the current working directory are mounted:"
b9fe8fd6
JL
16203msgstr ""
16204
16205#. type: example
16206#: doc/guix.texi:7222
16207#, no-wrap
16208msgid "guix environment --ad-hoc --container guile -- guile\n"
16209msgstr ""
16210
16211#. type: quotation
16212#: doc/guix.texi:7226
16213msgid "The @code{--container} option requires Linux-libre 3.19 or newer."
16214msgstr ""
16215
16216#. type: Plain text
16217#: doc/guix.texi:7229
16218msgid "The available options are summarized below."
16219msgstr ""
16220
16221#. type: cindex
16222#: doc/guix.texi:7233
16223#, no-wrap
16224msgid "persistent environment"
16225msgstr ""
16226
16227#. type: cindex
16228#: doc/guix.texi:7234
16229#, no-wrap
16230msgid "garbage collector root, for environments"
16231msgstr ""
16232
16233#. type: table
16234#: doc/guix.texi:7237
16235msgid ""
16236"Make @var{file} a symlink to the profile for this environment, and register "
16237"it as a garbage collector root."
16238msgstr ""
16239
16240#. type: table
16241#: doc/guix.texi:7240
16242msgid ""
16243"This is useful if you want to protect your environment from garbage "
16244"collection, to make it ``persistent''."
16245msgstr ""
16246
16247#. type: table
16248#: doc/guix.texi:7246
16249msgid ""
16250"When this option is omitted, the environment is protected from garbage "
16251"collection only for the duration of the @command{guix environment} session. "
16252"This means that next time you recreate the same environment, you could have "
16253"to rebuild or re-download packages. @xref{Invoking guix gc}, for more on GC "
16254"roots."
16255msgstr ""
16256
16257#. type: table
16258#: doc/guix.texi:7251
16259msgid ""
16260"Create an environment for the package or list of packages that @var{expr} "
16261"evaluates to."
16262msgstr ""
16263
16264#. type: table
16265#: doc/guix.texi:7253
16266msgid "For example, running:"
16267msgstr ""
16268
16269#. type: example
16270#: doc/guix.texi:7256
16271#, no-wrap
16272msgid "guix environment -e '(@@ (gnu packages maths) petsc-openmpi)'\n"
16273msgstr ""
16274
16275#. type: table
16276#: doc/guix.texi:7260
16277msgid ""
16278"starts a shell with the environment for this specific variant of the PETSc "
16279"package."
16280msgstr ""
16281
16282#. type: table
16283#: doc/guix.texi:7262
16284msgid "Running:"
16285msgstr ""
16286
16287#. type: example
16288#: doc/guix.texi:7265
16289#, no-wrap
16290msgid "guix environment --ad-hoc -e '(@@ (gnu) %base-packages)'\n"
16291msgstr ""
16292
16293#. type: table
16294#: doc/guix.texi:7268
16295msgid "starts a shell with all the GuixSD base packages available."
16296msgstr ""
16297
16298#. type: table
16299#: doc/guix.texi:7271
16300msgid ""
16301"The above commands only use the default output of the given packages. To "
16302"select other outputs, two element tuples can be specified:"
16303msgstr ""
16304
16305#. type: example
16306#: doc/guix.texi:7274
16307#, no-wrap
39764ef8 16308msgid "guix environment --ad-hoc -e '(list (@@ (gnu packages bash) bash) \"include\")'\n"
b9fe8fd6
JL
16309msgstr ""
16310
16311#. type: item
16312#: doc/guix.texi:7276
16313#, no-wrap
16314msgid "--load=@var{file}"
16315msgstr ""
16316
16317#. type: itemx
16318#: doc/guix.texi:7277
16319#, no-wrap
16320msgid "-l @var{file}"
16321msgstr ""
16322
16323#. type: table
16324#: doc/guix.texi:7280
16325msgid ""
16326"Create an environment for the package or list of packages that the code "
16327"within @var{file} evaluates to."
16328msgstr ""
16329
16330#. type: example
16331#: doc/guix.texi:7286
16332#, no-wrap
16333msgid "@verbatiminclude environment-gdb.scm\n"
16334msgstr ""
16335
16336#. type: table
16337#: doc/guix.texi:7292
16338msgid ""
16339"Create an environment for the packages contained in the manifest object "
16340"returned by the Scheme code in @var{file}."
16341msgstr ""
16342
16343#. type: table
16344#: doc/guix.texi:7296
16345msgid ""
16346"This is similar to the same-named option in @command{guix package} "
16347"(@pxref{profile-manifest, @option{--manifest}}) and uses the same manifest "
16348"files."
16349msgstr ""
16350
16351#. type: item
16352#: doc/guix.texi:7297
16353#, no-wrap
16354msgid "--ad-hoc"
16355msgstr ""
16356
16357#. type: table
16358#: doc/guix.texi:7302
16359msgid ""
16360"Include all specified packages in the resulting environment, as if an @i{ad "
16361"hoc} package were defined with them as inputs. This option is useful for "
16362"quickly creating an environment without having to write a package expression "
16363"to contain the desired inputs."
16364msgstr ""
16365
16366#. type: table
16367#: doc/guix.texi:7304
16368msgid "For instance, the command:"
16369msgstr ""
16370
16371#. type: example
16372#: doc/guix.texi:7307
16373#, no-wrap
16374msgid "guix environment --ad-hoc guile guile-sdl -- guile\n"
16375msgstr ""
16376
16377#. type: table
16378#: doc/guix.texi:7311
16379msgid ""
16380"runs @command{guile} in an environment where Guile and Guile-SDL are "
16381"available."
16382msgstr ""
16383
16384#. type: table
16385#: doc/guix.texi:7316
16386msgid ""
16387"Note that this example implicitly asks for the default output of "
16388"@code{guile} and @code{guile-sdl}, but it is possible to ask for a specific "
16389"output---e.g., @code{glib:bin} asks for the @code{bin} output of @code{glib} "
16390"(@pxref{Packages with Multiple Outputs})."
16391msgstr ""
16392
16393#. type: table
16394#: doc/guix.texi:7322
16395msgid ""
16396"This option may be composed with the default behavior of @command{guix "
16397"environment}. Packages appearing before @code{--ad-hoc} are interpreted as "
16398"packages whose dependencies will be added to the environment, the default "
16399"behavior. Packages appearing after are interpreted as packages that will be "
16400"added to the environment directly."
16401msgstr ""
16402
16403#. type: item
16404#: doc/guix.texi:7323
16405#, no-wrap
16406msgid "--pure"
16407msgstr ""
16408
16409#. type: table
16410#: doc/guix.texi:7327
16411msgid ""
16412"Unset existing environment variables when building the new environment. "
16413"This has the effect of creating an environment in which search paths only "
16414"contain package inputs."
16415msgstr ""
16416
16417#. type: item
16418#: doc/guix.texi:7328
16419#, no-wrap
16420msgid "--search-paths"
16421msgstr ""
16422
16423#. type: table
16424#: doc/guix.texi:7331
39764ef8
JL
16425msgid ""
16426"Display the environment variable definitions that make up the environment."
b9fe8fd6
JL
16427msgstr ""
16428
16429#. type: table
16430#: doc/guix.texi:7335
16431msgid "Attempt to build for @var{system}---e.g., @code{i686-linux}."
16432msgstr ""
16433
16434#. type: item
16435#: doc/guix.texi:7336
16436#, no-wrap
16437msgid "--container"
16438msgstr ""
16439
16440#. type: itemx
16441#: doc/guix.texi:7337
16442#, no-wrap
16443msgid "-C"
16444msgstr ""
16445
16446#. type: item
39764ef8 16447#: doc/guix.texi:7338 doc/guix.texi:7849 doc/guix.texi:20552
b9fe8fd6
JL
16448#, no-wrap
16449msgid "container"
16450msgstr ""
16451
16452#. type: table
16453#: doc/guix.texi:7346
16454msgid ""
16455"Run @var{command} within an isolated container. The current working "
16456"directory outside the container is mapped inside the container. "
16457"Additionally, unless overridden with @code{--user}, a dummy home directory "
39764ef8
JL
16458"is created that matches the current user's home directory, and @file{/etc/"
16459"passwd} is configured accordingly. The spawned process runs as the current "
16460"user outside the container, but has root privileges in the context of the "
16461"container."
b9fe8fd6
JL
16462msgstr ""
16463
16464#. type: item
16465#: doc/guix.texi:7347
16466#, no-wrap
16467msgid "--network"
16468msgstr ""
16469
16470#. type: itemx
16471#: doc/guix.texi:7348
16472#, no-wrap
16473msgid "-N"
16474msgstr ""
16475
16476#. type: table
16477#: doc/guix.texi:7352
16478msgid ""
16479"For containers, share the network namespace with the host system. "
39764ef8 16480"Containers created without this flag only have access to the loopback device."
b9fe8fd6
JL
16481msgstr ""
16482
16483#. type: item
16484#: doc/guix.texi:7353
16485#, no-wrap
16486msgid "--link-profile"
16487msgstr ""
16488
16489#. type: itemx
16490#: doc/guix.texi:7354
16491#, no-wrap
16492msgid "-P"
16493msgstr ""
16494
16495#. type: table
16496#: doc/guix.texi:7361
16497msgid ""
16498"For containers, link the environment profile to @file{~/.guix-profile} "
16499"within the container. This is equivalent to running the command @command{ln "
16500"-s $GUIX_ENVIRONMENT ~/.guix-profile} within the container. Linking will "
16501"fail and abort the environment if the directory already exists, which will "
16502"certainly be the case if @command{guix environment} was invoked in the "
16503"user's home directory."
16504msgstr ""
16505
16506#. type: table
16507#: doc/guix.texi:7368
16508msgid ""
16509"Certain packages are configured to look in @code{~/.guix-profile} for "
16510"configuration files and data;@footnote{For example, the @code{fontconfig} "
16511"package inspects @file{~/.guix-profile/share/fonts} for additional fonts.} "
16512"@code{--link-profile} allows these programs to behave as expected within the "
16513"environment."
16514msgstr ""
16515
16516#. type: item
16517#: doc/guix.texi:7369 doc/guix.texi:7521
16518#, no-wrap
16519msgid "--user=@var{user}"
16520msgstr ""
16521
16522#. type: itemx
16523#: doc/guix.texi:7370 doc/guix.texi:7522
16524#, no-wrap
16525msgid "-u @var{user}"
16526msgstr ""
16527
16528#. type: table
16529#: doc/guix.texi:7376
16530msgid ""
16531"For containers, use the username @var{user} in place of the current user. "
16532"The generated @file{/etc/passwd} entry within the container will contain the "
16533"name @var{user}; the home directory will be @file{/home/USER}; and no user "
16534"GECOS data will be copied. @var{user} need not exist on the system."
16535msgstr ""
16536
16537#. type: table
16538#: doc/guix.texi:7381
16539msgid ""
39764ef8
JL
16540"Additionally, any shared or exposed path (see @code{--share} and @code{--"
16541"expose} respectively) whose target is within the current user's home "
b9fe8fd6
JL
16542"directory will be remapped relative to @file{/home/USER}; this includes the "
16543"automatic mapping of the current working directory."
16544msgstr ""
16545
16546#. type: example
16547#: doc/guix.texi:7388
16548#, no-wrap
16549msgid ""
16550"# will expose paths as /home/foo/wd, /home/foo/test, and /home/foo/target\n"
16551"cd $HOME/wd\n"
16552"guix environment --container --user=foo \\\n"
16553" --expose=$HOME/test \\\n"
16554" --expose=/tmp/target=$HOME/target\n"
16555msgstr ""
16556
16557#. type: table
16558#: doc/guix.texi:7393
16559msgid ""
16560"While this will limit the leaking of user identity through home paths and "
16561"each of the user fields, this is only one useful component of a broader "
16562"privacy/anonymity solution---not one in and of itself."
16563msgstr ""
16564
16565#. type: item
16566#: doc/guix.texi:7394
16567#, no-wrap
16568msgid "--expose=@var{source}[=@var{target}]"
16569msgstr ""
16570
16571#. type: table
16572#: doc/guix.texi:7399
16573msgid ""
16574"For containers, expose the file system @var{source} from the host system as "
16575"the read-only file system @var{target} within the container. If "
16576"@var{target} is not specified, @var{source} is used as the target mount "
16577"point in the container."
16578msgstr ""
16579
16580#. type: table
16581#: doc/guix.texi:7403
16582msgid ""
16583"The example below spawns a Guile REPL in a container in which the user's "
16584"home directory is accessible read-only via the @file{/exchange} directory:"
16585msgstr ""
16586
16587#. type: example
16588#: doc/guix.texi:7406
16589#, no-wrap
39764ef8 16590msgid "guix environment --container --expose=$HOME=/exchange --ad-hoc guile -- guile\n"
b9fe8fd6
JL
16591msgstr ""
16592
16593#. type: item
16594#: doc/guix.texi:7408
16595#, no-wrap
16596msgid "--share=@var{source}[=@var{target}]"
16597msgstr ""
16598
16599#. type: table
16600#: doc/guix.texi:7413
16601msgid ""
16602"For containers, share the file system @var{source} from the host system as "
16603"the writable file system @var{target} within the container. If @var{target} "
16604"is not specified, @var{source} is used as the target mount point in the "
16605"container."
16606msgstr ""
16607
16608#. type: table
16609#: doc/guix.texi:7417
16610msgid ""
16611"The example below spawns a Guile REPL in a container in which the user's "
39764ef8
JL
16612"home directory is accessible for both reading and writing via the @file{/"
16613"exchange} directory:"
b9fe8fd6
JL
16614msgstr ""
16615
16616#. type: example
16617#: doc/guix.texi:7420
16618#, no-wrap
39764ef8 16619msgid "guix environment --container --share=$HOME=/exchange --ad-hoc guile -- guile\n"
b9fe8fd6
JL
16620msgstr ""
16621
16622#. type: Plain text
16623#: doc/guix.texi:7426
16624msgid ""
16625"@command{guix environment} also supports all of the common build options "
16626"that @command{guix build} supports (@pxref{Common Build Options})."
16627msgstr ""
16628
16629#. type: section
16630#: doc/guix.texi:7429
16631#, no-wrap
16632msgid "Invoking @command{guix publish}"
16633msgstr ""
16634
16635#. type: command{#1}
16636#: doc/guix.texi:7431
16637#, no-wrap
16638msgid "guix publish"
16639msgstr ""
16640
16641#. type: Plain text
16642#: doc/guix.texi:7435
16643msgid ""
16644"The purpose of @command{guix publish} is to enable users to easily share "
16645"their store with others, who can then use it as a substitute server "
16646"(@pxref{Substitutes})."
16647msgstr ""
16648
16649#. type: Plain text
16650#: doc/guix.texi:7441
16651msgid ""
16652"When @command{guix publish} runs, it spawns an HTTP server which allows "
16653"anyone with network access to obtain substitutes from it. This means that "
16654"any machine running Guix can also act as if it were a build farm, since the "
39764ef8
JL
16655"HTTP interface is compatible with Hydra, the software behind the @code{hydra."
16656"gnu.org} build farm."
b9fe8fd6
JL
16657msgstr ""
16658
16659#. type: Plain text
16660#: doc/guix.texi:7447
16661msgid ""
16662"For security, each substitute is signed, allowing recipients to check their "
16663"authenticity and integrity (@pxref{Substitutes}). Because @command{guix "
16664"publish} uses the signing key of the system, which is only readable by the "
16665"system administrator, it must be started as root; the @code{--user} option "
16666"makes it drop root privileges early on."
16667msgstr ""
16668
16669#. type: Plain text
16670#: doc/guix.texi:7451
16671msgid ""
16672"The signing key pair must be generated before @command{guix publish} is "
16673"launched, using @command{guix archive --generate-key} (@pxref{Invoking guix "
16674"archive})."
16675msgstr ""
16676
16677#. type: example
16678#: doc/guix.texi:7456
16679#, no-wrap
16680msgid "guix publish @var{options}@dots{}\n"
16681msgstr ""
16682
16683#. type: Plain text
16684#: doc/guix.texi:7460
16685msgid ""
16686"Running @command{guix publish} without any additional arguments will spawn "
16687"an HTTP server on port 8080:"
16688msgstr ""
16689
16690#. type: example
16691#: doc/guix.texi:7463
16692#, no-wrap
16693msgid "guix publish\n"
16694msgstr ""
16695
16696#. type: Plain text
16697#: doc/guix.texi:7467
16698msgid ""
16699"Once a publishing server has been authorized (@pxref{Invoking guix "
16700"archive}), the daemon may download substitutes from it:"
16701msgstr ""
16702
16703#. type: example
16704#: doc/guix.texi:7470
16705#, no-wrap
16706msgid "guix-daemon --substitute-urls=http://example.org:8080\n"
16707msgstr ""
16708
16709#. type: Plain text
16710#: doc/guix.texi:7479
16711msgid ""
16712"By default, @command{guix publish} compresses archives on the fly as it "
16713"serves them. This ``on-the-fly'' mode is convenient in that it requires no "
16714"setup and is immediately available. However, when serving lots of clients, "
16715"we recommend using the @option{--cache} option, which enables caching of the "
16716"archives before they are sent to clients---see below for details. The "
16717"@command{guix weather} command provides a handy way to check what a server "
16718"provides (@pxref{Invoking guix weather})."
16719msgstr ""
16720
16721#. type: Plain text
16722#: doc/guix.texi:7486
16723msgid ""
16724"As a bonus, @command{guix publish} also serves as a content-addressed mirror "
16725"for source files referenced in @code{origin} records (@pxref{origin "
16726"Reference}). For instance, assuming @command{guix publish} is running on "
39764ef8
JL
16727"@code{example.org}, the following URL returns the raw @file{hello-2.10.tar."
16728"gz} file with the given SHA256 hash (represented in @code{nix-base32} "
16729"format, @pxref{Invoking guix hash}):"
b9fe8fd6
JL
16730msgstr ""
16731
16732#. type: example
16733#: doc/guix.texi:7489
16734#, no-wrap
16735msgid "http://example.org/file/hello-2.10.tar.gz/sha256/0ssi1@dots{}ndq1i\n"
16736msgstr ""
16737
16738#. type: Plain text
16739#: doc/guix.texi:7493
16740msgid ""
16741"Obviously, these URLs only work for files that are in the store; in other "
16742"cases, they return 404 (``Not Found'')."
16743msgstr ""
16744
16745#. type: cindex
16746#: doc/guix.texi:7494
16747#, no-wrap
16748msgid "build logs, publication"
16749msgstr ""
16750
16751#. type: Plain text
16752#: doc/guix.texi:7496
16753msgid "Build logs are available from @code{/log} URLs like:"
16754msgstr ""
16755
16756#. type: example
16757#: doc/guix.texi:7499
16758#, no-wrap
16759msgid "http://example.org/log/gwspk@dots{}-guile-2.2.3\n"
16760msgstr ""
16761
16762#. type: Plain text
16763#: doc/guix.texi:7509
16764msgid ""
16765"When @command{guix-daemon} is configured to save compressed build logs, as "
16766"is the case by default (@pxref{Invoking guix-daemon}), @code{/log} URLs "
39764ef8
JL
16767"return the compressed log as-is, with an appropriate @code{Content-Type} and/"
16768"or @code{Content-Encoding} header. We recommend running @command{guix-"
16769"daemon} with @code{--log-compression=gzip} since Web browsers can "
16770"automatically decompress it, which is not the case with bzip2 compression."
b9fe8fd6
JL
16771msgstr ""
16772
16773#. type: item
16774#: doc/guix.texi:7513
16775#, no-wrap
16776msgid "--port=@var{port}"
16777msgstr ""
16778
16779#. type: itemx
16780#: doc/guix.texi:7514
16781#, no-wrap
16782msgid "-p @var{port}"
16783msgstr ""
16784
16785#. type: table
16786#: doc/guix.texi:7516
16787msgid "Listen for HTTP requests on @var{port}."
16788msgstr ""
16789
16790#. type: item
39764ef8 16791#: doc/guix.texi:7517 doc/guix.texi:17032
b9fe8fd6
JL
16792#, no-wrap
16793msgid "--listen=@var{host}"
16794msgstr ""
16795
16796#. type: table
16797#: doc/guix.texi:7520
16798msgid ""
16799"Listen on the network interface for @var{host}. The default is to accept "
16800"connections from any interface."
16801msgstr ""
16802
16803#. type: table
16804#: doc/guix.texi:7525
16805msgid ""
16806"Change privileges to @var{user} as soon as possible---i.e., once the server "
16807"socket is open and the signing key has been read."
16808msgstr ""
16809
16810#. type: item
16811#: doc/guix.texi:7526
16812#, no-wrap
16813msgid "--compression[=@var{level}]"
16814msgstr ""
16815
16816#. type: itemx
16817#: doc/guix.texi:7527
16818#, no-wrap
16819msgid "-C [@var{level}]"
16820msgstr ""
16821
16822#. type: table
16823#: doc/guix.texi:7532
16824msgid ""
16825"Compress data using the given @var{level}. When @var{level} is zero, "
16826"disable compression. The range 1 to 9 corresponds to different gzip "
16827"compression levels: 1 is the fastest, and 9 is the best (CPU-intensive). "
16828"The default is 3."
16829msgstr ""
16830
16831#. type: table
16832#: doc/guix.texi:7541
16833msgid ""
16834"Unless @option{--cache} is used, compression occurs on the fly and the "
16835"compressed streams are not cached. Thus, to reduce load on the machine that "
16836"runs @command{guix publish}, it may be a good idea to choose a low "
16837"compression level, to run @command{guix publish} behind a caching proxy, or "
16838"to use @option{--cache}. Using @option{--cache} has the advantage that it "
16839"allows @command{guix publish} to add @code{Content-Length} HTTP header to "
16840"its responses."
16841msgstr ""
16842
16843#. type: item
16844#: doc/guix.texi:7542
16845#, no-wrap
16846msgid "--cache=@var{directory}"
16847msgstr ""
16848
16849#. type: itemx
16850#: doc/guix.texi:7543
16851#, no-wrap
16852msgid "-c @var{directory}"
16853msgstr ""
16854
16855#. type: table
16856#: doc/guix.texi:7546
16857msgid ""
16858"Cache archives and meta-data (@code{.narinfo} URLs) to @var{directory} and "
16859"only serve archives that are in cache."
16860msgstr ""
16861
16862#. type: table
16863#: doc/guix.texi:7554
16864msgid ""
16865"When this option is omitted, archives and meta-data are created on-the-fly. "
16866"This can reduce the available bandwidth, especially when compression is "
16867"enabled, since this may become CPU-bound. Another drawback of the default "
16868"mode is that the length of archives is not known in advance, so "
16869"@command{guix publish} does not add a @code{Content-Length} HTTP header to "
16870"its responses, which in turn prevents clients from knowing the amount of "
16871"data being downloaded."
16872msgstr ""
16873
16874#. type: table
16875#: doc/guix.texi:7562
16876msgid ""
16877"Conversely, when @option{--cache} is used, the first request for a store "
16878"item (@i{via} a @code{.narinfo} URL) returns 404 and triggers a background "
16879"process to @dfn{bake} the archive---computing its @code{.narinfo} and "
16880"compressing the archive, if needed. Once the archive is cached in "
16881"@var{directory}, subsequent requests succeed and are served directly from "
16882"the cache, which guarantees that clients get the best possible bandwidth."
16883msgstr ""
16884
16885#. type: table
16886#: doc/guix.texi:7566
16887msgid ""
16888"The ``baking'' process is performed by worker threads. By default, one "
39764ef8
JL
16889"thread per CPU core is created, but this can be customized. See @option{--"
16890"workers} below."
b9fe8fd6
JL
16891msgstr ""
16892
16893#. type: table
16894#: doc/guix.texi:7569
16895msgid ""
16896"When @option{--ttl} is used, cached entries are automatically deleted when "
16897"they have expired."
16898msgstr ""
16899
16900#. type: item
16901#: doc/guix.texi:7570
16902#, no-wrap
16903msgid "--workers=@var{N}"
16904msgstr ""
16905
16906#. type: table
16907#: doc/guix.texi:7573
16908msgid ""
16909"When @option{--cache} is used, request the allocation of @var{N} worker "
16910"threads to ``bake'' archives."
16911msgstr ""
16912
16913#. type: item
16914#: doc/guix.texi:7574
16915#, no-wrap
16916msgid "--ttl=@var{ttl}"
16917msgstr ""
16918
16919#. type: table
16920#: doc/guix.texi:7578
16921msgid ""
16922"Produce @code{Cache-Control} HTTP headers that advertise a time-to-live "
16923"(TTL) of @var{ttl}. @var{ttl} must denote a duration: @code{5d} means 5 "
16924"days, @code{1m} means 1 month, and so on."
16925msgstr ""
16926
16927#. type: table
16928#: doc/guix.texi:7583
16929msgid ""
16930"This allows the user's Guix to keep substitute information in cache for "
16931"@var{ttl}. However, note that @code{guix publish} does not itself guarantee "
16932"that the store items it provides will indeed remain available for as long as "
16933"@var{ttl}."
16934msgstr ""
16935
16936#. type: table
16937#: doc/guix.texi:7587
16938msgid ""
16939"Additionally, when @option{--cache} is used, cached entries that have not "
16940"been accessed for @var{ttl} and that no longer have a corresponding item in "
16941"the store, may be deleted."
16942msgstr ""
16943
16944#. type: item
16945#: doc/guix.texi:7588
16946#, no-wrap
16947msgid "--nar-path=@var{path}"
16948msgstr ""
16949
16950#. type: table
16951#: doc/guix.texi:7591
16952msgid ""
16953"Use @var{path} as the prefix for the URLs of ``nar'' files (@pxref{Invoking "
16954"guix archive, normalized archives})."
16955msgstr ""
16956
16957#. type: table
16958#: doc/guix.texi:7595
16959msgid ""
39764ef8
JL
16960"By default, nars are served at a URL such as @code{/nar/gzip/@dots{}-"
16961"coreutils-8.25}. This option allows you to change the @code{/nar} part to "
16962"@var{path}."
b9fe8fd6
JL
16963msgstr ""
16964
16965#. type: item
16966#: doc/guix.texi:7596
16967#, no-wrap
16968msgid "--public-key=@var{file}"
16969msgstr ""
16970
16971#. type: itemx
16972#: doc/guix.texi:7597
16973#, no-wrap
16974msgid "--private-key=@var{file}"
16975msgstr ""
16976
16977#. type: table
16978#: doc/guix.texi:7600
16979msgid ""
16980"Use the specific @var{file}s as the public/private key pair used to sign the "
16981"store items being published."
16982msgstr ""
16983
16984#. type: table
16985#: doc/guix.texi:7607
16986msgid ""
16987"The files must correspond to the same key pair (the private key is used for "
16988"signing and the public key is merely advertised in the signature metadata). "
16989"They must contain keys in the canonical s-expression format as produced by "
16990"@command{guix archive --generate-key} (@pxref{Invoking guix archive}). By "
39764ef8
JL
16991"default, @file{/etc/guix/signing-key.pub} and @file{/etc/guix/signing-key."
16992"sec} are used."
b9fe8fd6
JL
16993msgstr ""
16994
16995#. type: item
16996#: doc/guix.texi:7608
16997#, no-wrap
16998msgid "--repl[=@var{port}]"
16999msgstr ""
17000
17001#. type: itemx
17002#: doc/guix.texi:7609
17003#, no-wrap
17004msgid "-r [@var{port}]"
17005msgstr ""
17006
17007#. type: table
17008#: doc/guix.texi:7613
17009msgid ""
17010"Spawn a Guile REPL server (@pxref{REPL Servers,,, guile, GNU Guile Reference "
17011"Manual}) on @var{port} (37146 by default). This is used primarily for "
17012"debugging a running @command{guix publish} server."
17013msgstr ""
17014
17015#. type: Plain text
17016#: doc/guix.texi:7619
17017msgid ""
17018"Enabling @command{guix publish} on a GuixSD system is a one-liner: just "
17019"instantiate a @code{guix-publish-service-type} service in the "
17020"@code{services} field of the @code{operating-system} declaration "
17021"(@pxref{guix-publish-service-type, @code{guix-publish-service-type}})."
17022msgstr ""
17023
17024#. type: Plain text
17025#: doc/guix.texi:7622
17026msgid ""
17027"If you are instead running Guix on a ``foreign distro'', follow these "
17028"instructions:”"
17029msgstr ""
17030
17031#. type: itemize
17032#: doc/guix.texi:7626
17033msgid "If your host distro uses the systemd init system:"
17034msgstr ""
17035
17036#. type: example
17037#: doc/guix.texi:7631
17038#, no-wrap
17039msgid ""
17040"# ln -s ~root/.guix-profile/lib/systemd/system/guix-publish.service \\\n"
17041" /etc/systemd/system/\n"
17042"# systemctl start guix-publish && systemctl enable guix-publish\n"
17043msgstr ""
17044
17045#. type: example
17046#: doc/guix.texi:7639
17047#, no-wrap
17048msgid ""
39764ef8 17049"# ln -s ~root/.guix-profile/lib/upstart/system/guix-publish.conf /etc/init/\n"
b9fe8fd6
JL
17050"# start guix-publish\n"
17051msgstr ""
17052
17053#. type: itemize
17054#: doc/guix.texi:7643
17055msgid "Otherwise, proceed similarly with your distro's init system."
17056msgstr ""
17057
17058#. type: section
17059#: doc/guix.texi:7646
17060#, no-wrap
17061msgid "Invoking @command{guix challenge}"
17062msgstr ""
17063
17064#. type: cindex
17065#: doc/guix.texi:7649
17066#, no-wrap
17067msgid "verifiable builds"
17068msgstr ""
17069
17070#. type: command{#1}
17071#: doc/guix.texi:7650
17072#, no-wrap
17073msgid "guix challenge"
17074msgstr ""
17075
17076#. type: cindex
17077#: doc/guix.texi:7651
17078#, no-wrap
17079msgid "challenge"
17080msgstr ""
17081
17082#. type: Plain text
17083#: doc/guix.texi:7656
17084msgid ""
17085"Do the binaries provided by this server really correspond to the source code "
17086"it claims to build? Is a package build process deterministic? These are the "
17087"questions the @command{guix challenge} command attempts to answer."
17088msgstr ""
17089
17090#. type: Plain text
17091#: doc/guix.texi:7664
17092msgid ""
17093"The former is obviously an important question: Before using a substitute "
17094"server (@pxref{Substitutes}), one had better @emph{verify} that it provides "
17095"the right binaries, and thus @emph{challenge} it. The latter is what "
17096"enables the former: If package builds are deterministic, then independent "
17097"builds of the package should yield the exact same result, bit for bit; if a "
17098"server provides a binary different from the one obtained locally, it may be "
17099"either corrupt or malicious."
17100msgstr ""
17101
17102#. type: Plain text
17103#: doc/guix.texi:7673
17104msgid ""
17105"We know that the hash that shows up in @file{/gnu/store} file names is the "
39764ef8
JL
17106"hash of all the inputs of the process that built the file or directory---"
17107"compilers, libraries, build scripts, etc. (@pxref{Introduction}). Assuming "
17108"deterministic build processes, one store file name should map to exactly one "
17109"build output. @command{guix challenge} checks whether there is, indeed, a "
17110"single mapping by comparing the build outputs of several independent builds "
17111"of any given store item."
b9fe8fd6
JL
17112msgstr ""
17113
17114#. type: Plain text
17115#: doc/guix.texi:7675
17116msgid "The command output looks like this:"
17117msgstr ""
17118
17119#. type: smallexample
17120#: doc/guix.texi:7692
17121#, no-wrap
17122msgid ""
39764ef8 17123"$ guix challenge --substitute-urls=\"https://hydra.gnu.org https://guix.example.org\"\n"
b9fe8fd6
JL
17124"updating list of substitutes from 'https://hydra.gnu.org'... 100.0%\n"
17125"updating list of substitutes from 'https://guix.example.org'... 100.0%\n"
17126"/gnu/store/@dots{}-openssl-1.0.2d contents differ:\n"
17127" local hash: 0725l22r5jnzazaacncwsvp9kgf42266ayyp814v7djxs7nk963q\n"
39764ef8
JL
17128" https://hydra.gnu.org/nar/@dots{}-openssl-1.0.2d: 0725l22r5jnzazaacncwsvp9kgf42266ayyp814v7djxs7nk963q\n"
17129" https://guix.example.org/nar/@dots{}-openssl-1.0.2d: 1zy4fmaaqcnjrzzajkdn3f5gmjk754b43qkq47llbyak9z0qjyim\n"
b9fe8fd6
JL
17130"/gnu/store/@dots{}-git-2.5.0 contents differ:\n"
17131" local hash: 00p3bmryhjxrhpn2gxs2fy0a15lnip05l97205pgbk5ra395hyha\n"
39764ef8
JL
17132" https://hydra.gnu.org/nar/@dots{}-git-2.5.0: 069nb85bv4d4a6slrwjdy8v1cn4cwspm3kdbmyb81d6zckj3nq9f\n"
17133" https://guix.example.org/nar/@dots{}-git-2.5.0: 0mdqa9w1p6cmli6976v4wi0sw9r4p5prkj7lzfd1877wk11c9c73\n"
b9fe8fd6
JL
17134"/gnu/store/@dots{}-pius-2.1.1 contents differ:\n"
17135" local hash: 0k4v3m9z1zp8xzzizb7d8kjj72f9172xv078sq4wl73vnq9ig3ax\n"
39764ef8
JL
17136" https://hydra.gnu.org/nar/@dots{}-pius-2.1.1: 0k4v3m9z1zp8xzzizb7d8kjj72f9172xv078sq4wl73vnq9ig3ax\n"
17137" https://guix.example.org/nar/@dots{}-pius-2.1.1: 1cy25x1a4fzq5rk0pmvc8xhwyffnqz95h2bpvqsz2mpvlbccy0gs\n"
b9fe8fd6
JL
17138"\n"
17139msgstr ""
17140
17141#. type: smallexample
17142#: doc/guix.texi:7694
17143#, no-wrap
17144msgid ""
17145"@dots{}\n"
17146"\n"
17147msgstr ""
17148
17149#. type: smallexample
17150#: doc/guix.texi:7699
17151#, no-wrap
17152msgid ""
17153"6,406 store items were analyzed:\n"
17154" - 4,749 (74.1%) were identical\n"
17155" - 525 (8.2%) differed\n"
17156" - 1,132 (17.7%) were inconclusive\n"
17157msgstr ""
17158
17159#. type: Plain text
17160#: doc/guix.texi:7707
17161msgid ""
17162"In this example, @command{guix challenge} first scans the store to determine "
17163"the set of locally-built derivations---as opposed to store items that were "
17164"downloaded from a substitute server---and then queries all the substitute "
17165"servers. It then reports those store items for which the servers obtained a "
17166"result different from the local build."
17167msgstr ""
17168
17169#. type: cindex
17170#: doc/guix.texi:7708
17171#, no-wrap
17172msgid "non-determinism, in package builds"
17173msgstr ""
17174
17175#. type: Plain text
17176#: doc/guix.texi:7719
17177msgid ""
17178"As an example, @code{guix.example.org} always gets a different answer. "
17179"Conversely, @code{hydra.gnu.org} agrees with local builds, except in the "
39764ef8
JL
17180"case of Git. This might indicate that the build process of Git is non-"
17181"deterministic, meaning that its output varies as a function of various "
b9fe8fd6 17182"things that Guix does not fully control, in spite of building packages in "
39764ef8
JL
17183"isolated environments (@pxref{Features}). Most common sources of non-"
17184"determinism include the addition of timestamps in build results, the "
b9fe8fd6
JL
17185"inclusion of random numbers, and directory listings sorted by inode number. "
17186"See @uref{https://reproducible-builds.org/docs/}, for more information."
17187msgstr ""
17188
17189#. type: Plain text
17190#: doc/guix.texi:7722
17191msgid ""
17192"To find out what is wrong with this Git binary, we can do something along "
17193"these lines (@pxref{Invoking guix archive}):"
17194msgstr ""
17195
17196#. type: example
17197#: doc/guix.texi:7727
17198#, no-wrap
17199msgid ""
17200"$ wget -q -O - https://hydra.gnu.org/nar/@dots{}-git-2.5.0 \\\n"
17201" | guix archive -x /tmp/git\n"
17202"$ diff -ur --no-dereference /gnu/store/@dots{}-git.2.5.0 /tmp/git\n"
17203msgstr ""
17204
17205#. type: Plain text
17206#: doc/guix.texi:7736
17207msgid ""
17208"This command shows the difference between the files resulting from the local "
17209"build, and the files resulting from the build on @code{hydra.gnu.org} "
17210"(@pxref{Overview, Comparing and Merging Files,, diffutils, Comparing and "
17211"Merging Files}). The @command{diff} command works great for text files. "
17212"When binary files differ, a better option is @uref{https://diffoscope.org/, "
17213"Diffoscope}, a tool that helps visualize differences for all kinds of files."
17214msgstr ""
17215
17216#. type: Plain text
17217#: doc/guix.texi:7744
17218msgid ""
17219"Once you have done that work, you can tell whether the differences are due "
17220"to a non-deterministic build process or to a malicious server. We try hard "
17221"to remove sources of non-determinism in packages to make it easier to verify "
17222"substitutes, but of course, this is a process that involves not just Guix, "
17223"but a large part of the free software community. In the meantime, "
17224"@command{guix challenge} is one tool to help address the problem."
17225msgstr ""
17226
17227#. type: Plain text
17228#: doc/guix.texi:7748
17229msgid ""
17230"If you are writing packages for Guix, you are encouraged to check whether "
17231"@code{hydra.gnu.org} and other substitute servers obtain the same build "
17232"result as you did with:"
17233msgstr ""
17234
17235#. type: example
17236#: doc/guix.texi:7751
17237#, no-wrap
17238msgid "$ guix challenge @var{package}\n"
17239msgstr ""
17240
17241#. type: Plain text
17242#: doc/guix.texi:7756
17243msgid ""
17244"where @var{package} is a package specification such as @code{guile@@2.0} or "
17245"@code{glibc:debug}."
17246msgstr ""
17247
17248#. type: example
17249#: doc/guix.texi:7761
17250#, no-wrap
17251msgid "guix challenge @var{options} [@var{packages}@dots{}]\n"
17252msgstr ""
17253
17254#. type: Plain text
17255#: doc/guix.texi:7768
17256msgid ""
17257"When a difference is found between the hash of a locally-built item and that "
17258"of a server-provided substitute, or among substitutes provided by different "
17259"servers, the command displays it as in the example above and its exit code "
17260"is 2 (other non-zero exit codes denote other kinds of errors.)"
17261msgstr ""
17262
17263#. type: Plain text
17264#: doc/guix.texi:7770
17265msgid "The one option that matters is:"
17266msgstr ""
17267
17268#. type: table
17269#: doc/guix.texi:7776
17270msgid ""
17271"Consider @var{urls} the whitespace-separated list of substitute source URLs "
17272"to compare to."
17273msgstr ""
17274
17275#. type: itemx
17276#: doc/guix.texi:7778
17277#, no-wrap
17278msgid "-v"
17279msgstr ""
17280
17281#. type: table
17282#: doc/guix.texi:7781
17283msgid ""
17284"Show details about matches (identical contents) in addition to information "
17285"about mismatches."
17286msgstr ""
17287
17288#. type: section
17289#: doc/guix.texi:7785
17290#, no-wrap
17291msgid "Invoking @command{guix copy}"
17292msgstr ""
17293
17294#. type: cindex
17295#: doc/guix.texi:7787
17296#, no-wrap
17297msgid "copy, of store items, over SSH"
17298msgstr ""
17299
17300#. type: cindex
17301#: doc/guix.texi:7788
17302#, no-wrap
17303msgid "SSH, copy of store items"
17304msgstr ""
17305
17306#. type: cindex
17307#: doc/guix.texi:7789
17308#, no-wrap
17309msgid "sharing store items across machines"
17310msgstr ""
17311
17312#. type: cindex
17313#: doc/guix.texi:7790
17314#, no-wrap
17315msgid "transferring store items across machines"
17316msgstr ""
17317
17318#. type: Plain text
17319#: doc/guix.texi:7797
17320msgid ""
17321"The @command{guix copy} command copies items from the store of one machine "
17322"to that of another machine over a secure shell (SSH) "
17323"connection@footnote{This command is available only when Guile-SSH was "
17324"found. @xref{Requirements}, for details.}. For example, the following "
17325"command copies the @code{coreutils} package, the user's profile, and all "
17326"their dependencies over to @var{host}, logged in as @var{user}:"
17327msgstr ""
17328
17329#. type: example
17330#: doc/guix.texi:7801
17331#, no-wrap
17332msgid ""
17333"guix copy --to=@var{user}@@@var{host} \\\n"
17334" coreutils `readlink -f ~/.guix-profile`\n"
17335msgstr ""
17336
17337#. type: Plain text
17338#: doc/guix.texi:7805
17339msgid ""
17340"If some of the items to be copied are already present on @var{host}, they "
17341"are not actually sent."
17342msgstr ""
17343
17344#. type: Plain text
17345#: doc/guix.texi:7808
17346msgid ""
17347"The command below retrieves @code{libreoffice} and @code{gimp} from "
17348"@var{host}, assuming they are available there:"
17349msgstr ""
17350
17351#. type: example
17352#: doc/guix.texi:7811
17353#, no-wrap
17354msgid "guix copy --from=@var{host} libreoffice gimp\n"
17355msgstr ""
17356
17357#. type: Plain text
17358#: doc/guix.texi:7816
17359msgid ""
17360"The SSH connection is established using the Guile-SSH client, which is "
39764ef8
JL
17361"compatible with OpenSSH: it honors @file{~/.ssh/known_hosts} and @file{~/."
17362"ssh/config}, and uses the SSH agent for authentication."
b9fe8fd6
JL
17363msgstr ""
17364
17365#. type: Plain text
17366#: doc/guix.texi:7822
17367msgid ""
17368"The key used to sign items that are sent must be accepted by the remote "
17369"machine. Likewise, the key used by the remote machine to sign items you are "
17370"retrieving must be in @file{/etc/guix/acl} so it is accepted by your own "
17371"daemon. @xref{Invoking guix archive}, for more information about store item "
17372"authentication."
17373msgstr ""
17374
17375#. type: example
17376#: doc/guix.texi:7827
17377#, no-wrap
17378msgid "guix copy [--to=@var{spec}|--from=@var{spec}] @var{items}@dots{}\n"
17379msgstr ""
17380
17381#. type: Plain text
17382#: doc/guix.texi:7830
17383msgid "You must always specify one of the following options:"
17384msgstr ""
17385
17386#. type: item
17387#: doc/guix.texi:7832
17388#, no-wrap
17389msgid "--to=@var{spec}"
17390msgstr ""
17391
17392#. type: itemx
17393#: doc/guix.texi:7833
17394#, no-wrap
17395msgid "--from=@var{spec}"
17396msgstr ""
17397
17398#. type: table
17399#: doc/guix.texi:7837
17400msgid ""
17401"Specify the host to send to or receive from. @var{spec} must be an SSH spec "
17402"such as @code{example.org}, @code{charlie@@example.org}, or "
17403"@code{charlie@@example.org:2222}."
17404msgstr ""
17405
17406#. type: Plain text
17407#: doc/guix.texi:7841
17408msgid ""
17409"The @var{items} can be either package names, such as @code{gimp}, or store "
17410"items, such as @file{/gnu/store/@dots{}-idutils-4.6}."
17411msgstr ""
17412
17413#. type: Plain text
17414#: doc/guix.texi:7845
17415msgid ""
17416"When specifying the name of a package to send, it is first built if needed, "
17417"unless @option{--dry-run} was specified. Common build options are supported "
17418"(@pxref{Common Build Options})."
17419msgstr ""
17420
17421#. type: section
17422#: doc/guix.texi:7848
17423#, no-wrap
17424msgid "Invoking @command{guix container}"
17425msgstr ""
17426
17427#. type: command{#1}
17428#: doc/guix.texi:7850
17429#, no-wrap
17430msgid "guix container"
17431msgstr ""
17432
17433#. type: quotation
17434#: doc/guix.texi:7854
17435msgid ""
17436"As of version @value{VERSION}, this tool is experimental. The interface is "
17437"subject to radical change in the future."
17438msgstr ""
17439
17440#. type: Plain text
17441#: doc/guix.texi:7861
17442msgid ""
17443"The purpose of @command{guix container} is to manipulate processes running "
17444"within an isolated environment, commonly known as a ``container'', typically "
17445"created by the @command{guix environment} (@pxref{Invoking guix "
17446"environment}) and @command{guix system container} (@pxref{Invoking guix "
17447"system}) commands."
17448msgstr ""
17449
17450#. type: example
17451#: doc/guix.texi:7866
17452#, no-wrap
17453msgid "guix container @var{action} @var{options}@dots{}\n"
17454msgstr ""
17455
17456#. type: Plain text
17457#: doc/guix.texi:7870
17458msgid ""
17459"@var{action} specifies the operation to perform with a container, and "
17460"@var{options} specifies the context-specific arguments for the action."
17461msgstr ""
17462
17463#. type: Plain text
17464#: doc/guix.texi:7872
17465msgid "The following actions are available:"
17466msgstr ""
17467
17468#. type: item
17469#: doc/guix.texi:7874
17470#, no-wrap
17471msgid "exec"
17472msgstr ""
17473
17474#. type: table
17475#: doc/guix.texi:7876
17476msgid "Execute a command within the context of a running container."
17477msgstr ""
17478
17479#. type: table
17480#: doc/guix.texi:7878
17481msgid "The syntax is:"
17482msgstr ""
17483
17484#. type: example
17485#: doc/guix.texi:7881
17486#, no-wrap
17487msgid "guix container exec @var{pid} @var{program} @var{arguments}@dots{}\n"
17488msgstr ""
17489
17490#. type: table
17491#: doc/guix.texi:7887
17492msgid ""
17493"@var{pid} specifies the process ID of the running container. @var{program} "
17494"specifies an executable file name within the root file system of the "
17495"container. @var{arguments} are the additional options that will be passed "
17496"to @var{program}."
17497msgstr ""
17498
17499#. type: table
17500#: doc/guix.texi:7891
17501msgid ""
17502"The following command launches an interactive login shell inside a GuixSD "
17503"container, started by @command{guix system container}, and whose process ID "
17504"is 9001:"
17505msgstr ""
17506
17507#. type: example
17508#: doc/guix.texi:7894
17509#, no-wrap
17510msgid "guix container exec 9001 /run/current-system/profile/bin/bash --login\n"
17511msgstr ""
17512
17513#. type: table
17514#: doc/guix.texi:7898
17515msgid ""
17516"Note that the @var{pid} cannot be the parent process of a container. It "
17517"must be PID 1 of the container or one of its child processes."
17518msgstr ""
17519
17520#. type: section
17521#: doc/guix.texi:7902
17522#, no-wrap
17523msgid "Invoking @command{guix weather}"
17524msgstr ""
17525
17526#. type: Plain text
17527#: doc/guix.texi:7911
17528msgid ""
17529"Occasionally you're grumpy because substitutes are lacking and you end up "
17530"building packages by yourself (@pxref{Substitutes}). The @command{guix "
17531"weather} command reports on substitute availability on the specified servers "
17532"so you can have an idea of whether you'll be grumpy today. It can sometimes "
17533"be useful info as a user, but it is primarily useful to people running "
17534"@command{guix publish} (@pxref{Invoking guix publish})."
17535msgstr ""
17536
17537#. type: cindex
17538#: doc/guix.texi:7912
17539#, no-wrap
17540msgid "statistics, for substitutes"
17541msgstr ""
17542
17543#. type: cindex
17544#: doc/guix.texi:7913
17545#, no-wrap
17546msgid "availability of substitutes"
17547msgstr ""
17548
17549#. type: cindex
17550#: doc/guix.texi:7914
17551#, no-wrap
17552msgid "substitute availability"
17553msgstr ""
17554
17555#. type: cindex
17556#: doc/guix.texi:7915
17557#, no-wrap
17558msgid "weather, substitute availability"
17559msgstr ""
17560
17561#. type: Plain text
17562#: doc/guix.texi:7917
17563msgid "Here's a sample run:"
17564msgstr ""
17565
17566#. type: example
17567#: doc/guix.texi:7929
17568#, no-wrap
17569msgid ""
17570"$ guix weather --substitute-urls=https://guix.example.org\n"
17571"computing 5,872 package derivations for x86_64-linux...\n"
17572"looking for 6,128 store items on https://guix.example.org..\n"
17573"updating list of substitutes from 'https://guix.example.org'... 100.0%\n"
17574"https://guix.example.org\n"
17575" 43.4% substitutes available (2,658 out of 6,128)\n"
17576" 7,032.5 MiB of nars (compressed)\n"
17577" 19,824.2 MiB on disk (uncompressed)\n"
17578" 0.030 seconds per request (182.9 seconds in total)\n"
17579" 33.5 requests per second\n"
17580"\n"
17581msgstr ""
17582
17583#. type: example
17584#: doc/guix.texi:7939
17585#, no-wrap
17586msgid ""
17587" 9.8% (342 out of 3,470) of the missing items are queued\n"
17588" 867 queued builds\n"
17589" x86_64-linux: 518 (59.7%)\n"
17590" i686-linux: 221 (25.5%)\n"
17591" aarch64-linux: 128 (14.8%)\n"
17592" build rate: 23.41 builds per hour\n"
17593" x86_64-linux: 11.16 builds per hour\n"
17594" i686-linux: 6.03 builds per hour\n"
17595" aarch64-linux: 6.41 builds per hour\n"
17596msgstr ""
17597
17598#. type: cindex
17599#: doc/guix.texi:7941
17600#, no-wrap
17601msgid "continuous integration, statistics"
17602msgstr ""
17603
17604#. type: Plain text
17605#: doc/guix.texi:7950
17606msgid ""
17607"As you can see, it reports the fraction of all the packages for which "
17608"substitutes are available on the server---regardless of whether substitutes "
17609"are enabled, and regardless of whether this server's signing key is "
17610"authorized. It also reports the size of the compressed archives (``nars'') "
17611"provided by the server, the size the corresponding store items occupy in the "
17612"store (assuming deduplication is turned off), and the server's throughput. "
17613"The second part gives continuous integration (CI) statistics, if the server "
17614"supports it."
17615msgstr ""
17616
17617#. type: Plain text
17618#: doc/guix.texi:7956
17619msgid ""
17620"To achieve that, @command{guix weather} queries over HTTP(S) meta-data "
17621"(@dfn{narinfos}) for all the relevant store items. Like @command{guix "
17622"challenge}, it ignores signatures on those substitutes, which is innocuous "
17623"since the command only gathers statistics and cannot install those "
17624"substitutes."
17625msgstr ""
17626
17627#. type: Plain text
17628#: doc/guix.texi:7959
17629msgid ""
17630"Among other things, it is possible to query specific system types and "
17631"specific package sets. The available options are listed below."
17632msgstr ""
17633
17634#. type: table
17635#: doc/guix.texi:7965
17636msgid ""
17637"@var{urls} is the space-separated list of substitute server URLs to query. "
17638"When this option is omitted, the default set of substitute servers is "
17639"queried."
17640msgstr ""
17641
17642#. type: table
17643#: doc/guix.texi:7971
17644msgid ""
17645"Query substitutes for @var{system}---e.g., @code{aarch64-linux}. This "
17646"option can be repeated, in which case @command{guix weather} will query "
17647"substitutes for several system types."
17648msgstr ""
17649
17650#. type: table
17651#: doc/guix.texi:7977
17652msgid ""
17653"Instead of querying substitutes for all the packages, only ask for those "
17654"specified in @var{file}. @var{file} must contain a @dfn{manifest}, as with "
17655"the @code{-m} option of @command{guix package} (@pxref{Invoking guix "
17656"package})."
17657msgstr ""
17658
17659#. type: Plain text
17660#: doc/guix.texi:7995
17661msgid ""
17662"Guix comes with a distribution of the GNU system consisting entirely of free "
39764ef8
JL
17663"software@footnote{The term ``free'' here refers to the @url{http://www.gnu."
17664"org/philosophy/free-sw.html,freedom provided to users of that software}.}. "
17665"The distribution can be installed on its own (@pxref{System Installation}), "
17666"but it is also possible to install Guix as a package manager on top of an "
17667"installed GNU/Linux system (@pxref{Installation}). To distinguish between "
17668"the two, we refer to the standalone distribution as the Guix System "
17669"Distribution, or GuixSD."
b9fe8fd6
JL
17670msgstr ""
17671
17672#. type: Plain text
17673#: doc/guix.texi:8001
17674msgid ""
17675"The distribution provides core GNU packages such as GNU libc, GCC, and "
17676"Binutils, as well as many GNU and non-GNU applications. The complete list "
39764ef8
JL
17677"of available packages can be browsed @url{http://www.gnu.org/software/guix/"
17678"packages,on-line} or by running @command{guix package} (@pxref{Invoking guix "
17679"package}):"
b9fe8fd6
JL
17680msgstr ""
17681
17682#. type: example
17683#: doc/guix.texi:8004
17684#, no-wrap
17685msgid "guix package --list-available\n"
17686msgstr ""
17687
17688#. type: Plain text
17689#: doc/guix.texi:8010
17690msgid ""
39764ef8
JL
17691"Our goal is to provide a practical 100% free software distribution of Linux-"
17692"based and other variants of GNU, with a focus on the promotion and tight "
17693"integration of GNU components, and an emphasis on programs and tools that "
17694"help users exert that freedom."
b9fe8fd6
JL
17695msgstr ""
17696
17697#. type: Plain text
17698#: doc/guix.texi:8012
17699msgid "Packages are currently available on the following platforms:"
17700msgstr ""
17701
17702#. type: item
17703#: doc/guix.texi:8015 doc/guix.texi:8180
17704#, no-wrap
17705msgid "x86_64-linux"
17706msgstr ""
17707
17708#. type: table
17709#: doc/guix.texi:8017
17710msgid "Intel/AMD @code{x86_64} architecture, Linux-Libre kernel;"
17711msgstr ""
17712
17713#. type: item
17714#: doc/guix.texi:8018 doc/guix.texi:8183
17715#, no-wrap
17716msgid "i686-linux"
17717msgstr ""
17718
17719#. type: table
17720#: doc/guix.texi:8020
17721msgid "Intel 32-bit architecture (IA32), Linux-Libre kernel;"
17722msgstr ""
17723
17724#. type: item
17725#: doc/guix.texi:8021
17726#, no-wrap
17727msgid "armhf-linux"
17728msgstr ""
17729
17730#. type: table
17731#: doc/guix.texi:8025
17732msgid ""
39764ef8
JL
17733"ARMv7-A architecture with hard float, Thumb-2 and NEON, using the EABI hard-"
17734"float application binary interface (ABI), and Linux-Libre kernel."
b9fe8fd6
JL
17735msgstr ""
17736
17737#. type: item
17738#: doc/guix.texi:8026
17739#, no-wrap
17740msgid "aarch64-linux"
17741msgstr ""
17742
17743#. type: table
17744#: doc/guix.texi:8030
17745msgid ""
17746"little-endian 64-bit ARMv8-A processors, Linux-Libre kernel. This is "
17747"currently in an experimental stage, with limited support. "
17748"@xref{Contributing}, for how to help!"
17749msgstr ""
17750
17751#. type: item
17752#: doc/guix.texi:8031
17753#, no-wrap
17754msgid "mips64el-linux"
17755msgstr ""
17756
17757#. type: table
17758#: doc/guix.texi:8034
17759msgid ""
17760"little-endian 64-bit MIPS processors, specifically the Loongson series, n32 "
17761"ABI, and Linux-Libre kernel."
17762msgstr ""
17763
17764#. type: Plain text
17765#: doc/guix.texi:8038
39764ef8
JL
17766msgid ""
17767"GuixSD itself is currently only available on @code{i686} and @code{x86_64}."
b9fe8fd6
JL
17768msgstr ""
17769
17770#. type: Plain text
17771#: doc/guix.texi:8042
17772msgid ""
17773"For information on porting to other architectures or kernels, "
17774"@pxref{Porting}."
17775msgstr ""
17776
17777#. type: Plain text
17778#: doc/guix.texi:8057
17779msgid ""
17780"Building this distribution is a cooperative effort, and you are invited to "
17781"join! @xref{Contributing}, for information about how you can help."
17782msgstr ""
17783
17784#. type: cindex
17785#: doc/guix.texi:8061
17786#, no-wrap
17787msgid "installing GuixSD"
17788msgstr ""
17789
17790#. type: Plain text
17791#: doc/guix.texi:8067
17792msgid ""
17793"This section explains how to install the Guix System Distribution (GuixSD) "
17794"on a machine. The Guix package manager can also be installed on top of a "
17795"running GNU/Linux system, @pxref{Installation}."
17796msgstr ""
17797
17798#. type: quotation
17799#: doc/guix.texi:8076
17800msgid ""
17801"You are reading this documentation with an Info reader. For details on how "
17802"to use it, hit the @key{RET} key (``return'' or ``enter'') on the link that "
17803"follows: @pxref{Top, Info reader,, info-stnd, Stand-alone GNU Info}. Hit "
17804"@kbd{l} afterwards to come back here."
17805msgstr ""
17806
17807#. type: quotation
17808#: doc/guix.texi:8079
17809msgid ""
17810"Alternately, run @command{info info} in another tty to keep the manual "
17811"available."
17812msgstr ""
17813
17814#. type: Plain text
17815#: doc/guix.texi:8104
17816msgid ""
17817"As of version @value{VERSION}, the Guix System Distribution (GuixSD) is not "
17818"production-ready. It may contain bugs and lack important features. Thus, "
17819"if you are looking for a stable production system that respects your freedom "
39764ef8
JL
17820"as a computer user, a good solution at this point is to consider @url{http://"
17821"www.gnu.org/distros/free-distros.html, one of the more established GNU/Linux "
17822"distributions}. We hope you can soon switch to the GuixSD without fear, of "
17823"course. In the meantime, you can also keep using your distribution and try "
17824"out the package manager on top of it (@pxref{Installation})."
b9fe8fd6
JL
17825msgstr ""
17826
17827#. type: Plain text
17828#: doc/guix.texi:8107
17829msgid ""
17830"Before you proceed with the installation, be aware of the following "
17831"noteworthy limitations applicable to version @value{VERSION}:"
17832msgstr ""
17833
17834#. type: itemize
17835#: doc/guix.texi:8113
17836msgid ""
17837"The installation process does not include a graphical user interface and "
17838"requires familiarity with GNU/Linux (see the following subsections to get a "
17839"feel of what that means.)"
17840msgstr ""
17841
17842#. type: itemize
17843#: doc/guix.texi:8116
17844msgid "Support for the Logical Volume Manager (LVM) is missing."
17845msgstr ""
17846
17847#. type: itemize
17848#: doc/guix.texi:8120
17849msgid ""
17850"More and more system services are provided (@pxref{Services}), but some may "
17851"be missing."
17852msgstr ""
17853
17854#. type: itemize
17855#: doc/guix.texi:8124
17856msgid ""
17857"More than 6,500 packages are available, but you might occasionally find that "
17858"a useful package is missing."
17859msgstr ""
17860
17861#. type: itemize
17862#: doc/guix.texi:8129
17863msgid ""
17864"GNOME, Xfce, LXDE, and Enlightenment are available (@pxref{Desktop "
17865"Services}), as well as a number of X11 window managers. However, some "
17866"graphical applications may be missing, as well as KDE."
17867msgstr ""
17868
17869#. type: Plain text
17870#: doc/guix.texi:8134
17871msgid ""
17872"You have been warned! But more than a disclaimer, this is an invitation to "
17873"report issues (and success stories!), and to join us in improving it. "
17874"@xref{Contributing}, for more info."
17875msgstr ""
17876
17877#. type: cindex
17878#: doc/guix.texi:8139
17879#, no-wrap
17880msgid "hardware support on GuixSD"
17881msgstr ""
17882
17883#. type: Plain text
17884#: doc/guix.texi:8148
17885msgid ""
17886"GNU@tie{}GuixSD focuses on respecting the user's computing freedom. It "
17887"builds around the kernel Linux-libre, which means that only hardware for "
17888"which free software drivers and firmware exist is supported. Nowadays, a "
17889"wide range of off-the-shelf hardware is supported on GNU/Linux-libre---from "
17890"keyboards to graphics cards to scanners and Ethernet controllers. "
17891"Unfortunately, there are still areas where hardware vendors deny users "
17892"control over their own computing, and such hardware is not supported on "
17893"GuixSD."
17894msgstr ""
17895
17896#. type: cindex
17897#: doc/guix.texi:8149
17898#, no-wrap
17899msgid "WiFi, hardware support"
17900msgstr ""
17901
17902#. type: Plain text
17903#: doc/guix.texi:8158
17904msgid ""
17905"One of the main areas where free drivers or firmware are lacking is WiFi "
17906"devices. WiFi devices known to work include those using Atheros chips "
17907"(AR9271 and AR7010), which corresponds to the @code{ath9k} Linux-libre "
17908"driver, and those using Broadcom/AirForce chips (BCM43xx with Wireless-Core "
17909"Revision 5), which corresponds to the @code{b43-open} Linux-libre driver. "
17910"Free firmware exists for both and is available out-of-the-box on GuixSD, as "
17911"part of @var{%base-firmware} (@pxref{operating-system Reference, "
17912"@code{firmware}})."
17913msgstr ""
17914
17915#. type: cindex
17916#: doc/guix.texi:8159
17917#, no-wrap
17918msgid "RYF, Respects Your Freedom"
17919msgstr ""
17920
17921#. type: Plain text
17922#: doc/guix.texi:8165
17923msgid ""
39764ef8
JL
17924"The @uref{https://www.fsf.org/, Free Software Foundation} runs @uref{https://"
17925"www.fsf.org/ryf, @dfn{Respects Your Freedom}} (RYF), a certification program "
17926"for hardware products that respect your freedom and your privacy and ensure "
17927"that you have control over your device. We encourage you to check the list "
17928"of RYF-certified devices."
b9fe8fd6
JL
17929msgstr ""
17930
17931#. type: Plain text
17932#: doc/guix.texi:8169
17933msgid ""
17934"Another useful resource is the @uref{https://www.h-node.org/, H-Node} web "
17935"site. It contains a catalog of hardware devices with information about "
17936"their support in GNU/Linux."
17937msgstr ""
17938
17939#. type: Plain text
17940#: doc/guix.texi:8178
17941msgid ""
17942"An ISO-9660 installation image that can be written to a USB stick or burnt "
39764ef8
JL
17943"to a DVD can be downloaded from @indicateurl{ftp://alpha.gnu.org/gnu/guix/"
17944"guixsd-install-@value{VERSION}.@var{system}.iso.xz}, where @var{system} is "
17945"one of:"
b9fe8fd6
JL
17946msgstr ""
17947
17948#. type: table
17949#: doc/guix.texi:8182
17950msgid "for a GNU/Linux system on Intel/AMD-compatible 64-bit CPUs;"
17951msgstr ""
17952
17953#. type: table
17954#: doc/guix.texi:8185
17955msgid "for a 32-bit GNU/Linux system on Intel-compatible CPUs."
17956msgstr ""
17957
17958#. type: Plain text
17959#: doc/guix.texi:8190
17960msgid ""
17961"Make sure to download the associated @file{.sig} file and to verify the "
17962"authenticity of the image against it, along these lines:"
17963msgstr ""
17964
17965#. type: example
17966#: doc/guix.texi:8194
17967#, no-wrap
17968msgid ""
39764ef8 17969"$ wget ftp://alpha.gnu.org/gnu/guix/guixsd-install-@value{VERSION}.@var{system}.iso.xz.sig\n"
b9fe8fd6
JL
17970"$ gpg --verify guixsd-install-@value{VERSION}.@var{system}.iso.xz.sig\n"
17971msgstr ""
17972
17973#. type: Plain text
17974#: doc/guix.texi:8209
17975msgid ""
17976"This image contains the tools necessary for an installation. It is meant to "
17977"be copied @emph{as is} to a large-enough USB stick or DVD."
17978msgstr ""
17979
17980#. type: unnumberedsubsubsec
17981#: doc/guix.texi:8210
17982#, no-wrap
17983msgid "Copying to a USB Stick"
17984msgstr ""
17985
17986#. type: Plain text
17987#: doc/guix.texi:8213
17988msgid "To copy the image to a USB stick, follow these steps:"
17989msgstr ""
17990
17991#. type: enumerate
17992#: doc/guix.texi:8217 doc/guix.texi:8242
17993msgid "Decompress the image using the @command{xz} command:"
17994msgstr ""
17995
17996#. type: example
17997#: doc/guix.texi:8220 doc/guix.texi:8245
17998#, no-wrap
17999msgid "xz -d guixsd-install-@value{VERSION}.@var{system}.iso.xz\n"
18000msgstr ""
18001
18002#. type: enumerate
18003#: doc/guix.texi:8226
18004msgid ""
18005"Insert a USB stick of 1@tie{}GiB or more into your machine, and determine "
18006"its device name. Assuming that the USB stick is known as @file{/dev/sdX}, "
18007"copy the image with:"
18008msgstr ""
18009
18010#. type: example
18011#: doc/guix.texi:8230
18012#, no-wrap
18013msgid ""
18014"dd if=guixsd-install-@value{VERSION}.x86_64-linux.iso of=/dev/sdX\n"
18015"sync\n"
18016msgstr ""
18017
18018#. type: enumerate
18019#: doc/guix.texi:8233
18020msgid "Access to @file{/dev/sdX} usually requires root privileges."
18021msgstr ""
18022
18023#. type: unnumberedsubsubsec
18024#: doc/guix.texi:8235
18025#, no-wrap
18026msgid "Burning on a DVD"
18027msgstr ""
18028
18029#. type: Plain text
18030#: doc/guix.texi:8238
18031msgid "To copy the image to a DVD, follow these steps:"
18032msgstr ""
18033
18034#. type: enumerate
18035#: doc/guix.texi:8251
18036msgid ""
18037"Insert a blank DVD into your machine, and determine its device name. "
39764ef8 18038"Assuming that the DVD drive is known as @file{/dev/srX}, copy the image with:"
b9fe8fd6
JL
18039msgstr ""
18040
18041#. type: example
18042#: doc/guix.texi:8254
18043#, no-wrap
39764ef8 18044msgid "growisofs -dvd-compat -Z /dev/srX=guixsd-install-@value{VERSION}.x86_64.iso\n"
b9fe8fd6
JL
18045msgstr ""
18046
18047#. type: enumerate
18048#: doc/guix.texi:8257
18049msgid "Access to @file{/dev/srX} usually requires root privileges."
18050msgstr ""
18051
18052#. type: unnumberedsubsubsec
18053#: doc/guix.texi:8259
18054#, no-wrap
18055msgid "Booting"
18056msgstr ""
18057
18058#. type: Plain text
18059#: doc/guix.texi:8264
18060msgid ""
18061"Once this is done, you should be able to reboot the system and boot from the "
18062"USB stick or DVD. The latter usually requires you to get in the BIOS or "
18063"UEFI boot menu, where you can choose to boot from the USB stick."
18064msgstr ""
18065
18066#. type: Plain text
18067#: doc/guix.texi:8267
18068msgid ""
18069"@xref{Installing GuixSD in a VM}, if, instead, you would like to install "
18070"GuixSD in a virtual machine (VM)."
18071msgstr ""
18072
18073#. type: Plain text
18074#: doc/guix.texi:8279
18075msgid ""
18076"Once you have successfully booted your computer using the installation "
18077"medium, you should end up with a root prompt. Several console TTYs are "
18078"configured and can be used to run commands as root. TTY2 shows this "
39764ef8
JL
18079"documentation, browsable using the Info reader commands (@pxref{Top,,, info-"
18080"stnd, Stand-alone GNU Info}). The installation system runs the GPM mouse "
18081"daemon, which allows you to select text with the left mouse button and to "
18082"paste it with the middle button."
b9fe8fd6
JL
18083msgstr ""
18084
18085#. type: quotation
18086#: doc/guix.texi:8284
18087msgid ""
18088"Installation requires access to the Internet so that any missing "
18089"dependencies of your system configuration can be downloaded. See the "
18090"``Networking'' section below."
18091msgstr ""
18092
18093#. type: Plain text
18094#: doc/guix.texi:8290
18095msgid ""
18096"The installation system includes many common tools needed for this task. "
18097"But it is also a full-blown GuixSD system, which means that you can install "
18098"additional packages, should you need it, using @command{guix package} "
18099"(@pxref{Invoking guix package})."
18100msgstr ""
18101
18102#. type: subsubsection
18103#: doc/guix.texi:8291
18104#, no-wrap
18105msgid "Keyboard Layout"
18106msgstr ""
18107
18108#. type: cindex
18109#: doc/guix.texi:8293 doc/guix.texi:10364
18110#, no-wrap
18111msgid "keyboard layout"
18112msgstr ""
18113
18114#. type: Plain text
18115#: doc/guix.texi:8297
18116msgid ""
18117"The installation image uses the US qwerty keyboard layout. If you want to "
18118"change it, you can use the @command{loadkeys} command. For example, the "
18119"following command selects the Dvorak keyboard layout:"
18120msgstr ""
18121
18122#. type: example
18123#: doc/guix.texi:8300
18124#, no-wrap
18125msgid "loadkeys dvorak\n"
18126msgstr ""
18127
18128#. type: Plain text
18129#: doc/guix.texi:8305
18130msgid ""
18131"See the files under @file{/run/current-system/profile/share/keymaps} for a "
18132"list of available keyboard layouts. Run @command{man loadkeys} for more "
18133"information."
18134msgstr ""
18135
18136#. type: subsubsection
18137#: doc/guix.texi:8306
18138#, no-wrap
18139msgid "Networking"
18140msgstr ""
18141
18142#. type: Plain text
18143#: doc/guix.texi:8309
18144msgid "Run the following command see what your network interfaces are called:"
18145msgstr ""
18146
18147#. type: example
18148#: doc/guix.texi:8312
18149#, no-wrap
18150msgid "ifconfig -a\n"
18151msgstr ""
18152
18153#. type: Plain text
18154#: doc/guix.texi:8316
18155msgid "@dots{} or, using the GNU/Linux-specific @command{ip} command:"
18156msgstr ""
18157
18158#. type: example
18159#: doc/guix.texi:8319
18160#, no-wrap
18161msgid "ip a\n"
18162msgstr ""
18163
18164#. type: Plain text
18165#: doc/guix.texi:8326
18166msgid ""
18167"Wired interfaces have a name starting with @samp{e}; for example, the "
18168"interface corresponding to the first on-board Ethernet controller is called "
18169"@samp{eno1}. Wireless interfaces have a name starting with @samp{w}, like "
18170"@samp{w1p2s0}."
18171msgstr ""
18172
18173#. type: item
18174#: doc/guix.texi:8328
18175#, no-wrap
18176msgid "Wired connection"
18177msgstr ""
18178
18179#. type: table
18180#: doc/guix.texi:8331
18181msgid ""
18182"To configure a wired network run the following command, substituting "
18183"@var{interface} with the name of the wired interface you want to use."
18184msgstr ""
18185
18186#. type: example
18187#: doc/guix.texi:8334
18188#, no-wrap
18189msgid "ifconfig @var{interface} up\n"
18190msgstr ""
18191
18192#. type: item
18193#: doc/guix.texi:8336
18194#, no-wrap
18195msgid "Wireless connection"
18196msgstr ""
18197
18198#. type: cindex
39764ef8 18199#: doc/guix.texi:8337 doc/guix.texi:10763
b9fe8fd6
JL
18200#, no-wrap
18201msgid "wireless"
18202msgstr ""
18203
18204#. type: cindex
39764ef8 18205#: doc/guix.texi:8338 doc/guix.texi:10764
b9fe8fd6
JL
18206#, no-wrap
18207msgid "WiFi"
18208msgstr ""
18209
18210#. type: table
18211#: doc/guix.texi:8343
18212msgid ""
18213"To configure wireless networking, you can create a configuration file for "
18214"the @command{wpa_supplicant} configuration tool (its location is not "
18215"important) using one of the available text editors such as @command{nano}:"
18216msgstr ""
18217
18218#. type: example
18219#: doc/guix.texi:8346
18220#, no-wrap
18221msgid "nano wpa_supplicant.conf\n"
18222msgstr ""
18223
18224#. type: table
18225#: doc/guix.texi:8351
18226msgid ""
18227"As an example, the following stanza can go to this file and will work for "
18228"many wireless networks, provided you give the actual SSID and passphrase for "
18229"the network you are connecting to:"
18230msgstr ""
18231
18232#. type: example
18233#: doc/guix.texi:8358
18234#, no-wrap
18235msgid ""
18236"network=@{\n"
18237" ssid=\"@var{my-ssid}\"\n"
18238" key_mgmt=WPA-PSK\n"
18239" psk=\"the network's secret passphrase\"\n"
18240"@}\n"
18241msgstr ""
18242
18243#. type: table
18244#: doc/guix.texi:8363
18245msgid ""
18246"Start the wireless service and run it in the background with the following "
18247"command (substitute @var{interface} with the name of the network interface "
18248"you want to use):"
18249msgstr ""
18250
18251#. type: example
18252#: doc/guix.texi:8366
18253#, no-wrap
18254msgid "wpa_supplicant -c wpa_supplicant.conf -i @var{interface} -B\n"
18255msgstr ""
18256
18257#. type: table
18258#: doc/guix.texi:8369
18259msgid "Run @command{man wpa_supplicant} for more information."
18260msgstr ""
18261
18262#. type: cindex
18263#: doc/guix.texi:8371
18264#, no-wrap
18265msgid "DHCP"
18266msgstr ""
18267
18268#. type: Plain text
18269#: doc/guix.texi:8374
18270msgid ""
18271"At this point, you need to acquire an IP address. On a network where IP "
18272"addresses are automatically assigned @i{via} DHCP, you can run:"
18273msgstr ""
18274
18275#. type: example
18276#: doc/guix.texi:8377
18277#, no-wrap
18278msgid "dhclient -v @var{interface}\n"
18279msgstr ""
18280
18281#. type: Plain text
18282#: doc/guix.texi:8380
18283msgid "Try to ping a server to see if networking is up and running:"
18284msgstr ""
18285
18286#. type: example
18287#: doc/guix.texi:8383
18288#, no-wrap
18289msgid "ping -c 3 gnu.org\n"
18290msgstr ""
18291
18292#. type: Plain text
18293#: doc/guix.texi:8387
18294msgid ""
18295"Setting up network access is almost always a requirement because the image "
18296"does not contain all the software and tools that may be needed."
18297msgstr ""
18298
18299#. type: cindex
18300#: doc/guix.texi:8388
18301#, no-wrap
18302msgid "installing over SSH"
18303msgstr ""
18304
18305#. type: Plain text
18306#: doc/guix.texi:8391
18307msgid ""
18308"If you want to, you can continue the installation remotely by starting an "
18309"SSH server:"
18310msgstr ""
18311
18312#. type: example
18313#: doc/guix.texi:8394
18314#, no-wrap
18315msgid "herd start ssh-daemon\n"
18316msgstr ""
18317
18318#. type: Plain text
18319#: doc/guix.texi:8398
18320msgid ""
18321"Make sure to either set a password with @command{passwd}, or configure "
18322"OpenSSH public key authentication before logging in."
18323msgstr ""
18324
18325#. type: subsubsection
18326#: doc/guix.texi:8399
18327#, no-wrap
18328msgid "Disk Partitioning"
18329msgstr ""
18330
18331#. type: Plain text
18332#: doc/guix.texi:8403
18333msgid ""
18334"Unless this has already been done, the next step is to partition, and then "
18335"format the target partition(s)."
18336msgstr ""
18337
18338#. type: Plain text
18339#: doc/guix.texi:8408
18340msgid ""
18341"The installation image includes several partitioning tools, including Parted "
18342"(@pxref{Overview,,, parted, GNU Parted User Manual}), @command{fdisk}, and "
18343"@command{cfdisk}. Run it and set up your disk with the partition layout you "
18344"want:"
18345msgstr ""
18346
18347#. type: example
18348#: doc/guix.texi:8411
18349#, no-wrap
18350msgid "cfdisk\n"
18351msgstr ""
18352
18353#. type: Plain text
18354#: doc/guix.texi:8417
18355msgid ""
18356"If your disk uses the GUID Partition Table (GPT) format and you plan to "
18357"install BIOS-based GRUB (which is the default), make sure a BIOS Boot "
18358"Partition is available (@pxref{BIOS installation,,, grub, GNU GRUB manual})."
18359msgstr ""
18360
18361#. type: cindex
18362#: doc/guix.texi:8418
18363#, no-wrap
18364msgid "EFI, installation"
18365msgstr ""
18366
18367#. type: cindex
18368#: doc/guix.texi:8419
18369#, no-wrap
18370msgid "UEFI, installation"
18371msgstr ""
18372
18373#. type: cindex
18374#: doc/guix.texi:8420
18375#, no-wrap
18376msgid "ESP, EFI system partition"
18377msgstr ""
18378
18379#. type: Plain text
18380#: doc/guix.texi:8424
18381msgid ""
18382"If you instead wish to use EFI-based GRUB, a FAT32 @dfn{EFI System "
39764ef8
JL
18383"Partition} (ESP) is required. This partition should be mounted at @file{/"
18384"boot/efi} and must have the @code{esp} flag set. E.g., for @command{parted}:"
b9fe8fd6
JL
18385msgstr ""
18386
18387#. type: example
18388#: doc/guix.texi:8427
18389#, no-wrap
18390msgid "parted /dev/sda set 1 esp on\n"
18391msgstr ""
18392
18393#. type: Plain text
18394#: doc/guix.texi:8435
18395msgid ""
18396"Once you are done partitioning the target hard disk drive, you have to "
18397"create a file system on the relevant partition(s)@footnote{Currently GuixSD "
18398"only supports ext4 and btrfs file systems. In particular, code that reads "
18399"file system UUIDs and labels only works for these file system types.}. For "
18400"the ESP, if you have one and assuming it is @file{/dev/sda2}, run:"
18401msgstr ""
18402
18403#. type: example
18404#: doc/guix.texi:8438
18405#, no-wrap
18406msgid "mkfs.fat -F32 /dev/sda2\n"
18407msgstr ""
18408
18409#. type: Plain text
18410#: doc/guix.texi:8446
18411msgid ""
18412"Preferably, assign file systems a label so that you can easily and reliably "
18413"refer to them in @code{file-system} declarations (@pxref{File Systems}). "
18414"This is typically done using the @code{-L} option of @command{mkfs.ext4} and "
39764ef8
JL
18415"related commands. So, assuming the target root partition lives at @file{/"
18416"dev/sda1}, a file system with the label @code{my-root} can be created with:"
b9fe8fd6
JL
18417msgstr ""
18418
18419#. type: example
18420#: doc/guix.texi:8449
18421#, no-wrap
18422msgid "mkfs.ext4 -L my-root /dev/sda1\n"
18423msgstr ""
18424
18425#. type: cindex
18426#: doc/guix.texi:8451 doc/guix.texi:8840
18427#, no-wrap
18428msgid "encrypted disk"
18429msgstr ""
18430
18431#. type: Plain text
18432#: doc/guix.texi:8458
18433msgid ""
18434"If you are instead planning to encrypt the root partition, you can use the "
18435"Cryptsetup/LUKS utilities to do that (see @inlinefmtifelse{html, "
18436"@uref{https://linux.die.net/man/8/cryptsetup, @code{man cryptsetup}}, "
18437"@code{man cryptsetup}} for more information.) Assuming you want to store "
18438"the root partition on @file{/dev/sda1}, the command sequence would be along "
18439"these lines:"
18440msgstr ""
18441
18442#. type: example
18443#: doc/guix.texi:8463
18444#, no-wrap
18445msgid ""
18446"cryptsetup luksFormat /dev/sda1\n"
18447"cryptsetup open --type luks /dev/sda1 my-partition\n"
18448"mkfs.ext4 -L my-root /dev/mapper/my-partition\n"
18449msgstr ""
18450
18451#. type: Plain text
18452#: doc/guix.texi:8468
18453msgid ""
18454"Once that is done, mount the target file system under @file{/mnt} with a "
18455"command like (again, assuming @code{my-root} is the label of the root file "
18456"system):"
18457msgstr ""
18458
18459#. type: example
18460#: doc/guix.texi:8471
18461#, no-wrap
18462msgid "mount LABEL=my-root /mnt\n"
18463msgstr ""
18464
18465#. type: Plain text
18466#: doc/guix.texi:8477
18467msgid ""
18468"Also mount any other file systems you would like to use on the target system "
18469"relative to this path. If you have @file{/boot} on a separate partition for "
18470"example, mount it at @file{/mnt/boot} now so it is found by @code{guix "
18471"system init} afterwards."
18472msgstr ""
18473
18474#. type: Plain text
18475#: doc/guix.texi:8482
18476msgid ""
18477"Finally, if you plan to use one or more swap partitions (@pxref{Memory "
18478"Concepts, swap space,, libc, The GNU C Library Reference Manual}), make sure "
18479"to initialize them with @command{mkswap}. Assuming you have one swap "
18480"partition on @file{/dev/sda2}, you would run:"
18481msgstr ""
18482
18483#. type: example
18484#: doc/guix.texi:8486
18485#, no-wrap
18486msgid ""
18487"mkswap /dev/sda2\n"
18488"swapon /dev/sda2\n"
18489msgstr ""
18490
18491#. type: Plain text
18492#: doc/guix.texi:8494
18493msgid ""
18494"Alternatively, you may use a swap file. For example, assuming that in the "
18495"new system you want to use the file @file{/swapfile} as a swap file, you "
39764ef8
JL
18496"would run@footnote{This example will work for many types of file systems (e."
18497"g., ext4). However, for copy-on-write file systems (e.g., btrfs), the "
b9fe8fd6
JL
18498"required steps may be different. For details, see the manual pages for "
18499"@command{mkswap} and @command{swapon}.}:"
18500msgstr ""
18501
18502#. type: example
18503#: doc/guix.texi:8502
18504#, no-wrap
18505msgid ""
18506"# This is 10 GiB of swap space. Adjust \"count\" to change the size.\n"
18507"dd if=/dev/zero of=/mnt/swapfile bs=1MiB count=10240\n"
18508"# For security, make the file readable and writable only by root.\n"
18509"chmod 600 /mnt/swapfile\n"
18510"mkswap /mnt/swapfile\n"
18511"swapon /mnt/swapfile\n"
18512msgstr ""
18513
18514#. type: Plain text
18515#: doc/guix.texi:8507
18516msgid ""
18517"Note that if you have encrypted the root partition and created a swap file "
18518"in its file system as described above, then the encryption also protects the "
18519"swap file, just like any other file in that file system."
18520msgstr ""
18521
18522#. type: Plain text
18523#: doc/guix.texi:8513
18524msgid ""
18525"With the target partitions ready and the target root mounted on @file{/mnt}, "
18526"we're ready to go. First, run:"
18527msgstr ""
18528
18529#. type: example
18530#: doc/guix.texi:8516
18531#, no-wrap
18532msgid "herd start cow-store /mnt\n"
18533msgstr ""
18534
18535#. type: Plain text
18536#: doc/guix.texi:8523
18537msgid ""
18538"This makes @file{/gnu/store} copy-on-write, such that packages added to it "
18539"during the installation phase are written to the target disk on @file{/mnt} "
18540"rather than kept in memory. This is necessary because the first phase of "
18541"the @command{guix system init} command (see below) entails downloads or "
18542"builds to @file{/gnu/store} which, initially, is an in-memory file system."
18543msgstr ""
18544
18545#. type: Plain text
18546#: doc/guix.texi:8534
18547msgid ""
18548"Next, you have to edit a file and provide the declaration of the operating "
18549"system to be installed. To that end, the installation system comes with "
18550"three text editors. We recommend GNU nano (@pxref{Top,,, nano, GNU nano "
18551"Manual}), which supports syntax highlighting and parentheses matching; other "
18552"editors include GNU Zile (an Emacs clone), and nvi (a clone of the original "
18553"BSD @command{vi} editor). We strongly recommend storing that file on the "
18554"target root file system, say, as @file{/mnt/etc/config.scm}. Failing to do "
18555"that, you will have lost your configuration file once you have rebooted into "
18556"the newly-installed system."
18557msgstr ""
18558
18559#. type: Plain text
18560#: doc/guix.texi:8541
18561msgid ""
18562"@xref{Using the Configuration System}, for an overview of the configuration "
18563"file. The example configurations discussed in that section are available "
18564"under @file{/etc/configuration} in the installation image. Thus, to get "
18565"started with a system configuration providing a graphical display server (a "
18566"``desktop'' system), you can run something along these lines:"
18567msgstr ""
18568
18569#. type: example
18570#: doc/guix.texi:8546
18571#, no-wrap
18572msgid ""
18573"# mkdir /mnt/etc\n"
18574"# cp /etc/configuration/desktop.scm /mnt/etc/config.scm\n"
18575"# nano /mnt/etc/config.scm\n"
18576msgstr ""
18577
18578#. type: Plain text
18579#: doc/guix.texi:8550
18580msgid ""
18581"You should pay attention to what your configuration file contains, and in "
18582"particular:"
18583msgstr ""
18584
18585#. type: itemize
18586#: doc/guix.texi:8560
18587msgid ""
18588"Make sure the @code{bootloader-configuration} form refers to the target you "
18589"want to install GRUB on. It should mention @code{grub-bootloader} if you "
18590"are installing GRUB in the legacy way, or @code{grub-efi-bootloader} for "
18591"newer UEFI systems. For legacy systems, the @code{target} field names a "
18592"device, like @code{/dev/sda}; for UEFI systems it names a path to a mounted "
18593"EFI partition, like @code{/boot/efi}, and do make sure the path is actually "
18594"mounted."
18595msgstr ""
18596
18597#. type: itemize
18598#: doc/guix.texi:8566
18599msgid ""
18600"Be sure that your file system labels match the value of their respective "
18601"@code{device} fields in your @code{file-system} configuration, assuming your "
18602"@code{file-system} configuration sets the value of @code{title} to "
18603"@code{'label}."
18604msgstr ""
18605
18606#. type: itemize
18607#: doc/guix.texi:8570
18608msgid ""
39764ef8
JL
18609"If there are encrypted or RAID partitions, make sure to add a @code{mapped-"
18610"devices} field to describe them (@pxref{Mapped Devices})."
b9fe8fd6
JL
18611msgstr ""
18612
18613#. type: Plain text
18614#: doc/guix.texi:8575
18615msgid ""
18616"Once you are done preparing the configuration file, the new system must be "
18617"initialized (remember that the target root file system is mounted under "
18618"@file{/mnt}):"
18619msgstr ""
18620
18621#. type: example
18622#: doc/guix.texi:8578
18623#, no-wrap
18624msgid "guix system init /mnt/etc/config.scm /mnt\n"
18625msgstr ""
18626
18627#. type: Plain text
18628#: doc/guix.texi:8585
18629msgid ""
18630"This copies all the necessary files and installs GRUB on @file{/dev/sdX}, "
18631"unless you pass the @option{--no-bootloader} option. For more information, "
18632"@pxref{Invoking guix system}. This command may trigger downloads or builds "
18633"of missing packages, which can take some time."
18634msgstr ""
18635
18636#. type: Plain text
18637#: doc/guix.texi:8592
18638msgid ""
18639"Once that command has completed---and hopefully succeeded!---you can run "
18640"@command{reboot} and boot into the new system. The @code{root} password in "
18641"the new system is initially empty; other users' passwords need to be "
18642"initialized by running the @command{passwd} command as @code{root}, unless "
18643"your configuration specifies otherwise (@pxref{user-account-password, user "
18644"account passwords})."
18645msgstr ""
18646
18647#. type: cindex
18648#: doc/guix.texi:8593
18649#, no-wrap
18650msgid "upgrading GuixSD"
18651msgstr ""
18652
18653#. type: Plain text
18654#: doc/guix.texi:8600
18655msgid ""
18656"From then on, you can update GuixSD whenever you want by running "
18657"@command{guix pull} as @code{root} (@pxref{Invoking guix pull}), and then "
18658"running @command{guix system reconfigure} to build a new system generation "
18659"with the latest packages and services (@pxref{Invoking guix system}). We "
18660"recommend doing that regularly so that your system includes the latest "
18661"security updates (@pxref{Security Updates})."
18662msgstr ""
18663
18664#. type: Plain text
18665#: doc/guix.texi:8604
18666msgid ""
39764ef8
JL
18667"Join us on @code{#guix} on the Freenode IRC network or on @file{guix-"
18668"devel@@gnu.org} to share your experience---good or not so good."
b9fe8fd6
JL
18669msgstr ""
18670
18671#. type: subsection
18672#: doc/guix.texi:8606
18673#, no-wrap
18674msgid "Installing GuixSD in a Virtual Machine"
18675msgstr ""
18676
18677#. type: cindex
18678#: doc/guix.texi:8608
18679#, no-wrap
18680msgid "virtual machine, GuixSD installation"
18681msgstr ""
18682
18683#. type: cindex
18684#: doc/guix.texi:8609
18685#, no-wrap
18686msgid "virtual private server (VPS)"
18687msgstr ""
18688
18689#. type: cindex
18690#: doc/guix.texi:8610
18691#, no-wrap
18692msgid "VPS (virtual private server)"
18693msgstr ""
18694
18695#. type: Plain text
18696#: doc/guix.texi:8614
18697msgid ""
18698"If you'd like to install GuixSD in a virtual machine (VM) or on a virtual "
18699"private server (VPS) rather than on your beloved machine, this section is "
18700"for you."
18701msgstr ""
18702
18703#. type: Plain text
18704#: doc/guix.texi:8617
18705msgid ""
18706"To boot a @uref{http://qemu.org/,QEMU} VM for installing GuixSD in a disk "
18707"image, follow these steps:"
18708msgstr ""
18709
18710#. type: enumerate
18711#: doc/guix.texi:8622
18712msgid ""
18713"First, retrieve and decompress the GuixSD installation image as described "
18714"previously (@pxref{USB Stick and DVD Installation})."
18715msgstr ""
18716
18717#. type: enumerate
18718#: doc/guix.texi:8626
18719msgid ""
39764ef8
JL
18720"Create a disk image that will hold the installed system. To make a qcow2-"
18721"formatted disk image, use the @command{qemu-img} command:"
b9fe8fd6
JL
18722msgstr ""
18723
18724#. type: example
18725#: doc/guix.texi:8629
18726#, no-wrap
18727msgid "qemu-img create -f qcow2 guixsd.img 50G\n"
18728msgstr ""
18729
18730#. type: enumerate
18731#: doc/guix.texi:8633
18732msgid ""
18733"The resulting file will be much smaller than 50 GB (typically less than 1 "
18734"MB), but it will grow as the virtualized storage device is filled up."
18735msgstr ""
18736
18737#. type: enumerate
18738#: doc/guix.texi:8636
18739msgid "Boot the USB installation image in an VM:"
18740msgstr ""
18741
18742#. type: example
18743#: doc/guix.texi:8642
18744#, no-wrap
18745msgid ""
18746"qemu-system-x86_64 -m 1024 -smp 1 \\\n"
18747" -net user -net nic,model=virtio -boot menu=on \\\n"
18748" -drive file=guixsd-install-@value{VERSION}.@var{system}.iso \\\n"
18749" -drive file=guixsd.img\n"
18750msgstr ""
18751
18752#. type: enumerate
18753#: doc/guix.texi:8645
18754msgid "The ordering of the drives matters."
18755msgstr ""
18756
18757#. type: enumerate
18758#: doc/guix.texi:8649
18759msgid ""
18760"In the VM console, quickly press the @kbd{F12} key to enter the boot menu. "
18761"Then press the @kbd{2} key and the @kbd{RET} key to validate your selection."
18762msgstr ""
18763
18764#. type: enumerate
18765#: doc/guix.texi:8653
18766msgid ""
18767"You're now root in the VM, proceed with the installation process. "
18768"@xref{Preparing for Installation}, and follow the instructions."
18769msgstr ""
18770
18771#. type: Plain text
18772#: doc/guix.texi:8658
18773msgid ""
18774"Once installation is complete, you can boot the system that's on your "
18775"@file{guixsd.img} image. @xref{Running GuixSD in a VM}, for how to do that."
18776msgstr ""
18777
18778#. type: cindex
18779#: doc/guix.texi:8662
18780#, no-wrap
18781msgid "installation image"
18782msgstr ""
18783
18784#. type: Plain text
18785#: doc/guix.texi:8665
18786msgid ""
18787"The installation image described above was built using the @command{guix "
18788"system} command, specifically:"
18789msgstr ""
18790
18791#. type: example
18792#: doc/guix.texi:8668
18793#, no-wrap
18794msgid "guix system disk-image gnu/system/install.scm\n"
18795msgstr ""
18796
18797#. type: Plain text
18798#: doc/guix.texi:8673
18799msgid ""
18800"Have a look at @file{gnu/system/install.scm} in the source tree, and see "
18801"also @ref{Invoking guix system} for more information about the installation "
18802"image."
18803msgstr ""
18804
18805#. type: cindex
18806#: doc/guix.texi:8677
18807#, no-wrap
18808msgid "system configuration"
18809msgstr ""
18810
18811#. type: Plain text
18812#: doc/guix.texi:8683
18813msgid ""
18814"The Guix System Distribution supports a consistent whole-system "
18815"configuration mechanism. By that we mean that all aspects of the global "
18816"system configuration---such as the available system services, timezone and "
18817"locale settings, user accounts---are declared in a single place. Such a "
18818"@dfn{system configuration} can be @dfn{instantiated}---i.e., effected."
18819msgstr ""
18820
18821#. type: Plain text
18822#: doc/guix.texi:8693
18823msgid ""
18824"One of the advantages of putting all the system configuration under the "
18825"control of Guix is that it supports transactional system upgrades, and makes "
18826"it possible to roll back to a previous system instantiation, should "
18827"something go wrong with the new one (@pxref{Features}). Another advantage "
18828"is that it makes it easy to replicate the exact same configuration across "
18829"different machines, or at different points in time, without having to resort "
18830"to additional administration tools layered on top of the own tools of the "
18831"system."
18832msgstr ""
18833
18834#. type: Plain text
18835#: doc/guix.texi:8698
18836msgid ""
18837"This section describes this mechanism. First we focus on the system "
18838"administrator's viewpoint---explaining how the system is configured and "
18839"instantiated. Then we show how this mechanism can be extended, for instance "
18840"to support new system services."
18841msgstr ""
18842
18843#. type: Plain text
18844#: doc/guix.texi:8725
18845msgid ""
18846"The operating system is configured by providing an @code{operating-system} "
18847"declaration in a file that can then be passed to the @command{guix system} "
18848"command (@pxref{Invoking guix system}). A simple setup, with the default "
18849"system services, the default Linux-Libre kernel, initial RAM disk, and boot "
18850"loader looks like this:"
18851msgstr ""
18852
18853#. type: findex
18854#: doc/guix.texi:8726
18855#, no-wrap
18856msgid "operating-system"
18857msgstr ""
18858
18859#. type: include
18860#: doc/guix.texi:8728
18861#, no-wrap
18862msgid "os-config-bare-bones.texi"
18863msgstr ""
18864
18865#. type: Plain text
18866#: doc/guix.texi:8735
18867msgid ""
18868"This example should be self-describing. Some of the fields defined above, "
18869"such as @code{host-name} and @code{bootloader}, are mandatory. Others, such "
18870"as @code{packages} and @code{services}, can be omitted, in which case they "
18871"get a default value."
18872msgstr ""
18873
18874#. type: Plain text
18875#: doc/guix.texi:8740
18876msgid ""
18877"Below we discuss the effect of some of the most important fields "
18878"(@pxref{operating-system Reference}, for details about all the available "
18879"fields), and how to @dfn{instantiate} the operating system using "
18880"@command{guix system}."
18881msgstr ""
18882
18883#. type: unnumberedsubsubsec
18884#: doc/guix.texi:8741
18885#, no-wrap
18886msgid "Globally-Visible Packages"
18887msgstr ""
18888
18889#. type: vindex
18890#: doc/guix.texi:8743
18891#, no-wrap
18892msgid "%base-packages"
18893msgstr ""
18894
18895#. type: Plain text
18896#: doc/guix.texi:8756
18897msgid ""
18898"The @code{packages} field lists packages that will be globally visible on "
18899"the system, for all user accounts---i.e., in every user's @code{PATH} "
18900"environment variable---in addition to the per-user profiles (@pxref{Invoking "
18901"guix package}). The @var{%base-packages} variable provides all the tools "
18902"one would expect for basic user and administrator tasks---including the GNU "
18903"Core Utilities, the GNU Networking Utilities, the GNU Zile lightweight text "
18904"editor, @command{find}, @command{grep}, etc. The example above adds "
18905"GNU@tie{}Screen and OpenSSH to those, taken from the @code{(gnu packages "
18906"screen)} and @code{(gnu packages ssh)} modules (@pxref{Package Modules}). "
18907"The @code{(list package output)} syntax can be used to add a specific output "
18908"of a package:"
18909msgstr ""
18910
18911#. type: lisp
18912#: doc/guix.texi:8760
18913#, no-wrap
18914msgid ""
18915"(use-modules (gnu packages))\n"
18916"(use-modules (gnu packages dns))\n"
18917"\n"
18918msgstr ""
18919
18920#. type: lisp
18921#: doc/guix.texi:8765
18922#, no-wrap
18923msgid ""
18924"(operating-system\n"
18925" ;; ...\n"
18926" (packages (cons (list bind \"utils\")\n"
18927" %base-packages)))\n"
18928msgstr ""
18929
18930#. type: findex
18931#: doc/guix.texi:8767
18932#, no-wrap
18933msgid "specification->package"
18934msgstr ""
18935
18936#. type: Plain text
18937#: doc/guix.texi:8776
18938msgid ""
18939"Referring to packages by variable name, like @code{bind} above, has the "
18940"advantage of being unambiguous; it also allows typos and such to be "
18941"diagnosed right away as ``unbound variables''. The downside is that one "
18942"needs to know which module defines which package, and to augment the "
18943"@code{use-package-modules} line accordingly. To avoid that, one can use the "
18944"@code{specification->package} procedure of the @code{(gnu packages)} module, "
18945"which returns the best package for a given name or name and version:"
18946msgstr ""
18947
18948#. type: lisp
18949#: doc/guix.texi:8779
18950#, no-wrap
18951msgid ""
18952"(use-modules (gnu packages))\n"
18953"\n"
18954msgstr ""
18955
18956#. type: lisp
18957#: doc/guix.texi:8785
18958#, no-wrap
18959msgid ""
18960"(operating-system\n"
18961" ;; ...\n"
18962" (packages (append (map specification->package\n"
18963" '(\"tcpdump\" \"htop\" \"gnupg@@2.0\"))\n"
18964" %base-packages)))\n"
18965msgstr ""
18966
18967#. type: unnumberedsubsubsec
18968#: doc/guix.texi:8787
18969#, no-wrap
18970msgid "System Services"
18971msgstr ""
18972
18973#. type: cindex
39764ef8 18974#: doc/guix.texi:8789 doc/guix.texi:19933 doc/guix.texi:20851
b9fe8fd6
JL
18975#, no-wrap
18976msgid "services"
18977msgstr ""
18978
18979#. type: vindex
18980#: doc/guix.texi:8790
18981#, no-wrap
18982msgid "%base-services"
18983msgstr ""
18984
18985#. type: Plain text
18986#: doc/guix.texi:8800
18987msgid ""
18988"The @code{services} field lists @dfn{system services} to be made available "
18989"when the system starts (@pxref{Services}). The @code{operating-system} "
18990"declaration above specifies that, in addition to the basic services, we want "
18991"the @command{lshd} secure shell daemon listening on port 2222 "
18992"(@pxref{Networking Services, @code{lsh-service}}). Under the hood, "
18993"@code{lsh-service} arranges so that @code{lshd} is started with the right "
18994"command-line options, possibly with supporting configuration files generated "
18995"as needed (@pxref{Defining Services})."
18996msgstr ""
18997
18998#. type: cindex
18999#: doc/guix.texi:8801
19000#, no-wrap
19001msgid "customization, of services"
19002msgstr ""
19003
19004#. type: findex
19005#: doc/guix.texi:8802
19006#, no-wrap
19007msgid "modify-services"
19008msgstr ""
19009
19010#. type: Plain text
19011#: doc/guix.texi:8806
19012msgid ""
19013"Occasionally, instead of using the base services as is, you will want to "
19014"customize them. To do this, use @code{modify-services} (@pxref{Service "
19015"Reference, @code{modify-services}}) to modify the list."
19016msgstr ""
19017
19018#. type: Plain text
19019#: doc/guix.texi:8811
19020msgid ""
19021"For example, suppose you want to modify @code{guix-daemon} and Mingetty (the "
19022"console log-in) in the @var{%base-services} list (@pxref{Base Services, "
19023"@code{%base-services}}). To do that, you can write the following in your "
19024"operating system declaration:"
19025msgstr ""
19026
19027#. type: lisp
19028#: doc/guix.texi:8824
19029#, no-wrap
19030msgid ""
19031"(define %my-services\n"
19032" ;; My very own list of services.\n"
19033" (modify-services %base-services\n"
19034" (guix-service-type config =>\n"
19035" (guix-configuration\n"
19036" (inherit config)\n"
19037" (use-substitutes? #f)\n"
19038" (extra-options '(\"--gc-keep-derivations\"))))\n"
19039" (mingetty-service-type config =>\n"
19040" (mingetty-configuration\n"
19041" (inherit config)))))\n"
19042"\n"
19043msgstr ""
19044
19045#. type: lisp
19046#: doc/guix.texi:8828
19047#, no-wrap
19048msgid ""
19049"(operating-system\n"
19050" ;; @dots{}\n"
19051" (services %my-services))\n"
19052msgstr ""
19053
19054#. type: Plain text
19055#: doc/guix.texi:8839
19056msgid ""
19057"This changes the configuration---i.e., the service parameters---of the "
39764ef8
JL
19058"@code{guix-service-type} instance, and that of all the @code{mingetty-"
19059"service-type} instances in the @var{%base-services} list. Observe how this "
19060"is accomplished: first, we arrange for the original configuration to be "
19061"bound to the identifier @code{config} in the @var{body}, and then we write "
19062"the @var{body} so that it evaluates to the desired configuration. In "
19063"particular, notice how we use @code{inherit} to create a new configuration "
19064"which has the same values as the old configuration, but with a few "
19065"modifications."
b9fe8fd6
JL
19066msgstr ""
19067
19068#. type: Plain text
19069#: doc/guix.texi:8846
19070msgid ""
19071"The configuration for a typical ``desktop'' usage, with an encrypted root "
19072"partition, the X11 display server, GNOME and Xfce (users can choose which of "
19073"these desktop environments to use at the log-in screen by pressing "
19074"@kbd{F1}), network management, power management, and more, would look like "
19075"this:"
19076msgstr ""
19077
19078#. type: include
19079#: doc/guix.texi:8848
19080#, no-wrap
19081msgid "os-config-desktop.texi"
19082msgstr ""
19083
19084#. type: cindex
19085#: doc/guix.texi:8851
19086#, no-wrap
19087msgid "UEFI"
19088msgstr ""
19089
19090#. type: Plain text
19091#: doc/guix.texi:8854
19092msgid ""
19093"A graphical UEFI system with a choice of lightweight window managers instead "
19094"of full-blown desktop environments would look like this:"
19095msgstr ""
19096
19097#. type: include
19098#: doc/guix.texi:8856
19099#, no-wrap
19100msgid "os-config-lightweight-desktop.texi"
19101msgstr ""
19102
19103#. type: Plain text
19104#: doc/guix.texi:8862
19105msgid ""
19106"This example refers to the @file{/boot/efi} file system by its UUID, "
19107"@code{1234-ABCD}. Replace this UUID with the right UUID on your system, as "
19108"returned by the @command{blkid} command."
19109msgstr ""
19110
19111#. type: Plain text
19112#: doc/guix.texi:8866
19113msgid ""
19114"@xref{Desktop Services}, for the exact list of services provided by "
19115"@var{%desktop-services}. @xref{X.509 Certificates}, for background "
19116"information about the @code{nss-certs} package that is used here."
19117msgstr ""
19118
19119#. type: Plain text
19120#: doc/guix.texi:8873
19121msgid ""
19122"Again, @var{%desktop-services} is just a list of service objects. If you "
19123"want to remove services from there, you can do so using the procedures for "
19124"list filtering (@pxref{SRFI-1 Filtering and Partitioning,,, guile, GNU Guile "
19125"Reference Manual}). For instance, the following expression returns a list "
19126"that contains all the services in @var{%desktop-services} minus the Avahi "
19127"service:"
19128msgstr ""
19129
19130#. type: example
19131#: doc/guix.texi:8878
19132#, no-wrap
19133msgid ""
19134"(remove (lambda (service)\n"
19135" (eq? (service-kind service) avahi-service-type))\n"
19136" %desktop-services)\n"
19137msgstr ""
19138
19139#. type: unnumberedsubsubsec
19140#: doc/guix.texi:8880
19141#, no-wrap
19142msgid "Instantiating the System"
19143msgstr ""
19144
19145#. type: Plain text
19146#: doc/guix.texi:8887
19147msgid ""
39764ef8
JL
19148"Assuming the @code{operating-system} declaration is stored in the @file{my-"
19149"system-config.scm} file, the @command{guix system reconfigure my-system-"
19150"config.scm} command instantiates that configuration, and makes it the "
19151"default GRUB boot entry (@pxref{Invoking guix system})."
b9fe8fd6
JL
19152msgstr ""
19153
19154#. type: Plain text
19155#: doc/guix.texi:8895
19156msgid ""
19157"The normal way to change the system configuration is by updating this file "
19158"and re-running @command{guix system reconfigure}. One should never have to "
19159"touch files in @file{/etc} or to run commands that modify the system state "
19160"such as @command{useradd} or @command{grub-install}. In fact, you must "
19161"avoid that since that would not only void your warranty but also prevent you "
19162"from rolling back to previous versions of your system, should you ever need "
19163"to."
19164msgstr ""
19165
19166#. type: cindex
19167#: doc/guix.texi:8896
19168#, no-wrap
19169msgid "roll-back, of the operating system"
19170msgstr ""
19171
19172#. type: Plain text
19173#: doc/guix.texi:8906
19174msgid ""
19175"Speaking of roll-back, each time you run @command{guix system reconfigure}, "
19176"a new @dfn{generation} of the system is created---without modifying or "
19177"deleting previous generations. Old system generations get an entry in the "
19178"bootloader boot menu, allowing you to boot them in case something went wrong "
39764ef8
JL
19179"with the latest generation. Reassuring, no? The @command{guix system list-"
19180"generations} command lists the system generations available on disk. It is "
19181"also possible to roll back the system via the commands @command{guix system "
19182"roll-back} and @command{guix system switch-generation}."
b9fe8fd6
JL
19183msgstr ""
19184
19185#. type: Plain text
19186#: doc/guix.texi:8912
19187msgid ""
19188"Although the command @command{guix system reconfigure} will not modify "
19189"previous generations, must take care when the current generation is not the "
19190"latest (e.g., after invoking @command{guix system roll-back}), since the "
19191"operation might overwrite a later generation (@pxref{Invoking guix system})."
19192msgstr ""
19193
19194#. type: unnumberedsubsubsec
19195#: doc/guix.texi:8913
19196#, no-wrap
19197msgid "The Programming Interface"
19198msgstr ""
19199
19200#. type: Plain text
19201#: doc/guix.texi:8918
19202msgid ""
19203"At the Scheme level, the bulk of an @code{operating-system} declaration is "
19204"instantiated with the following monadic procedure (@pxref{The Store Monad}):"
19205msgstr ""
19206
19207#. type: deffn
19208#: doc/guix.texi:8919
19209#, no-wrap
19210msgid "{Monadic Procedure} operating-system-derivation os"
19211msgstr ""
19212
19213#. type: deffn
19214#: doc/guix.texi:8922
19215msgid ""
19216"Return a derivation that builds @var{os}, an @code{operating-system} object "
19217"(@pxref{Derivations})."
19218msgstr ""
19219
19220#. type: deffn
19221#: doc/guix.texi:8926
19222msgid ""
19223"The output of the derivation is a single directory that refers to all the "
19224"packages, configuration files, and other supporting files needed to "
19225"instantiate @var{os}."
19226msgstr ""
19227
19228#. type: Plain text
19229#: doc/guix.texi:8931
19230msgid ""
19231"This procedure is provided by the @code{(gnu system)} module. Along with "
19232"@code{(gnu services)} (@pxref{Services}), this module contains the guts of "
19233"GuixSD. Make sure to visit it!"
19234msgstr ""
19235
19236#. type: subsection
19237#: doc/guix.texi:8934
19238#, no-wrap
19239msgid "@code{operating-system} Reference"
19240msgstr ""
19241
19242#. type: Plain text
19243#: doc/guix.texi:8939
19244msgid ""
19245"This section summarizes all the options available in @code{operating-system} "
19246"declarations (@pxref{Using the Configuration System})."
19247msgstr ""
19248
19249#. type: deftp
19250#: doc/guix.texi:8940
19251#, no-wrap
19252msgid "{Data Type} operating-system"
19253msgstr ""
19254
19255#. type: deftp
19256#: doc/guix.texi:8944
19257msgid ""
19258"This is the data type representing an operating system configuration. By "
19259"that, we mean all the global system configuration, not per-user "
19260"configuration (@pxref{Using the Configuration System})."
19261msgstr ""
19262
19263#. type: item
19264#: doc/guix.texi:8946
19265#, no-wrap
19266msgid "@code{kernel} (default: @var{linux-libre})"
19267msgstr ""
19268
19269#. type: table
19270#: doc/guix.texi:8950
19271msgid ""
19272"The package object of the operating system kernel to use@footnote{Currently "
19273"only the Linux-libre kernel is supported. In the future, it will be "
19274"possible to use the GNU@tie{}Hurd.}."
19275msgstr ""
19276
19277#. type: item
19278#: doc/guix.texi:8951
19279#, no-wrap
19280msgid "@code{kernel-arguments} (default: @code{'()})"
19281msgstr ""
19282
19283#. type: table
19284#: doc/guix.texi:8954
19285msgid ""
19286"List of strings or gexps representing additional arguments to pass on the "
19287"command-line of the kernel---e.g., @code{(\"console=ttyS0\")}."
19288msgstr ""
19289
19290#. type: code{#1}
39764ef8 19291#: doc/guix.texi:8955 doc/guix.texi:20130 doc/guix.texi:20149
b9fe8fd6
JL
19292#, no-wrap
19293msgid "bootloader"
19294msgstr ""
19295
19296#. type: table
19297#: doc/guix.texi:8957
19298msgid ""
39764ef8 19299"The system bootloader configuration object. @xref{Bootloader Configuration}."
b9fe8fd6
JL
19300msgstr ""
19301
19302#. type: item
19303#: doc/guix.texi:8958
19304#, no-wrap
19305msgid "@code{initrd-modules} (default: @code{%base-initrd-modules})"
19306msgstr ""
19307
19308#. type: code{#1}
39764ef8
JL
19309#: doc/guix.texi:8959 doc/guix.texi:19970 doc/guix.texi:20073
19310#: doc/guix.texi:20268
b9fe8fd6
JL
19311#, no-wrap
19312msgid "initrd"
19313msgstr ""
19314
19315#. type: cindex
39764ef8 19316#: doc/guix.texi:8960 doc/guix.texi:19971 doc/guix.texi:20074
b9fe8fd6
JL
19317#, no-wrap
19318msgid "initial RAM disk"
19319msgstr ""
19320
19321#. type: table
19322#: doc/guix.texi:8963
19323msgid ""
19324"The list of Linux kernel modules that need to be available in the initial "
19325"RAM disk. @xref{Initial RAM Disk}."
19326msgstr ""
19327
19328#. type: item
19329#: doc/guix.texi:8964
19330#, no-wrap
19331msgid "@code{initrd} (default: @code{base-initrd})"
19332msgstr ""
19333
19334#. type: table
19335#: doc/guix.texi:8968
19336msgid ""
19337"A monadic procedure that returns an initial RAM disk for the Linux kernel. "
19338"This field is provided to support low-level customization and should rarely "
19339"be needed for casual use. @xref{Initial RAM Disk}."
19340msgstr ""
19341
19342#. type: item
19343#: doc/guix.texi:8969
19344#, no-wrap
19345msgid "@code{firmware} (default: @var{%base-firmware})"
19346msgstr ""
19347
19348#. type: cindex
19349#: doc/guix.texi:8970
19350#, no-wrap
19351msgid "firmware"
19352msgstr ""
19353
19354#. type: table
19355#: doc/guix.texi:8972
19356msgid "List of firmware packages loadable by the operating system kernel."
19357msgstr ""
19358
19359#. type: table
19360#: doc/guix.texi:8977
19361msgid ""
19362"The default includes firmware needed for Atheros- and Broadcom-based WiFi "
19363"devices (Linux-libre modules @code{ath9k} and @code{b43-open}, "
19364"respectively). @xref{Hardware Considerations}, for more info on supported "
19365"hardware."
19366msgstr ""
19367
19368#. type: code{#1}
19369#: doc/guix.texi:8978
19370#, no-wrap
19371msgid "host-name"
19372msgstr ""
19373
19374#. type: table
19375#: doc/guix.texi:8980
19376msgid "The host name."
19377msgstr ""
19378
19379#. type: code{#1}
19380#: doc/guix.texi:8981
19381#, no-wrap
19382msgid "hosts-file"
19383msgstr ""
19384
19385#. type: cindex
19386#: doc/guix.texi:8982
19387#, no-wrap
19388msgid "hosts file"
19389msgstr ""
19390
19391#. type: table
19392#: doc/guix.texi:8987
19393msgid ""
19394"A file-like object (@pxref{G-Expressions, file-like objects}) for use as "
19395"@file{/etc/hosts} (@pxref{Host Names,,, libc, The GNU C Library Reference "
19396"Manual}). The default is a file with entries for @code{localhost} and "
19397"@var{host-name}."
19398msgstr ""
19399
19400#. type: item
19401#: doc/guix.texi:8988
19402#, no-wrap
19403msgid "@code{mapped-devices} (default: @code{'()})"
19404msgstr ""
19405
19406#. type: table
19407#: doc/guix.texi:8990
19408msgid "A list of mapped devices. @xref{Mapped Devices}."
19409msgstr ""
19410
19411#. type: code{#1}
19412#: doc/guix.texi:8991
19413#, no-wrap
19414msgid "file-systems"
19415msgstr ""
19416
19417#. type: table
19418#: doc/guix.texi:8993
19419msgid "A list of file systems. @xref{File Systems}."
19420msgstr ""
19421
19422#. type: item
19423#: doc/guix.texi:8994
19424#, no-wrap
19425msgid "@code{swap-devices} (default: @code{'()})"
19426msgstr ""
19427
19428#. type: cindex
19429#: doc/guix.texi:8995
19430#, no-wrap
19431msgid "swap devices"
19432msgstr ""
19433
19434#. type: table
19435#: doc/guix.texi:9002
19436msgid ""
39764ef8
JL
19437"A list of strings identifying devices or files to be used for ``swap "
19438"space'' (@pxref{Memory Concepts,,, libc, The GNU C Library Reference "
19439"Manual}). For example, @code{'(\"/dev/sda3\")} or @code{'(\"/swapfile\")}. "
19440"It is possible to specify a swap file in a file system on a mapped device, "
19441"provided that the necessary device mapping and file system are also "
19442"specified. @xref{Mapped Devices} and @ref{File Systems}."
b9fe8fd6
JL
19443msgstr ""
19444
19445#. type: item
19446#: doc/guix.texi:9003
19447#, no-wrap
19448msgid "@code{users} (default: @code{%base-user-accounts})"
19449msgstr ""
19450
19451#. type: itemx
19452#: doc/guix.texi:9004
19453#, no-wrap
19454msgid "@code{groups} (default: @var{%base-groups})"
19455msgstr ""
19456
19457#. type: table
19458#: doc/guix.texi:9006
19459msgid "List of user accounts and groups. @xref{User Accounts}."
19460msgstr ""
19461
19462#. type: table
19463#: doc/guix.texi:9009
19464msgid ""
19465"If the @code{users} list lacks a user account with UID@tie{}0, a ``root'' "
19466"account with UID@tie{}0 is automatically added."
19467msgstr ""
19468
19469#. type: item
19470#: doc/guix.texi:9010
19471#, no-wrap
19472msgid "@code{skeletons} (default: @code{(default-skeletons)})"
19473msgstr ""
19474
19475#. type: table
19476#: doc/guix.texi:9014
19477msgid ""
39764ef8
JL
19478"A list target file name/file-like object tuples (@pxref{G-Expressions, file-"
19479"like objects}). These are the skeleton files that will be added to the home "
19480"directory of newly-created user accounts."
b9fe8fd6
JL
19481msgstr ""
19482
19483#. type: table
19484#: doc/guix.texi:9016
19485msgid "For instance, a valid value may look like this:"
19486msgstr ""
19487
19488#. type: example
19489#: doc/guix.texi:9022
19490#, no-wrap
19491msgid ""
19492"`((\".bashrc\" ,(plain-file \"bashrc\" \"echo Hello\\n\"))\n"
19493" (\".guile\" ,(plain-file \"guile\"\n"
19494" \"(use-modules (ice-9 readline))\n"
19495" (activate-readline)\")))\n"
19496msgstr ""
19497
19498#. type: item
19499#: doc/guix.texi:9024
19500#, no-wrap
19501msgid "@code{issue} (default: @var{%default-issue})"
19502msgstr ""
19503
19504#. type: table
19505#: doc/guix.texi:9027
19506msgid ""
19507"A string denoting the contents of the @file{/etc/issue} file, which is "
19508"displayed when users log in on a text console."
19509msgstr ""
19510
19511#. type: item
19512#: doc/guix.texi:9028
19513#, no-wrap
19514msgid "@code{packages} (default: @var{%base-packages})"
19515msgstr ""
19516
19517#. type: table
19518#: doc/guix.texi:9031
19519msgid ""
19520"The set of packages installed in the global profile, which is accessible at "
19521"@file{/run/current-system/profile}."
19522msgstr ""
19523
19524#. type: table
19525#: doc/guix.texi:9035
19526msgid ""
19527"The default set includes core utilities and it is good practice to install "
19528"non-core utilities in user profiles (@pxref{Invoking guix package})."
19529msgstr ""
19530
19531#. type: code{#1}
19532#: doc/guix.texi:9036
19533#, no-wrap
19534msgid "timezone"
19535msgstr ""
19536
19537#. type: table
19538#: doc/guix.texi:9038
19539msgid "A timezone identifying string---e.g., @code{\"Europe/Paris\"}."
19540msgstr ""
19541
19542#. type: table
19543#: doc/guix.texi:9042
19544msgid ""
19545"You can run the @command{tzselect} command to find out which timezone string "
19546"corresponds to your region. Choosing an invalid timezone name causes "
19547"@command{guix system} to fail."
19548msgstr ""
19549
19550#. type: item
19551#: doc/guix.texi:9043
19552#, no-wrap
19553msgid "@code{locale} (default: @code{\"en_US.utf8\"})"
19554msgstr ""
19555
19556#. type: table
19557#: doc/guix.texi:9046
19558msgid ""
19559"The name of the default locale (@pxref{Locale Names,,, libc, The GNU C "
19560"Library Reference Manual}). @xref{Locales}, for more information."
19561msgstr ""
19562
19563#. type: item
19564#: doc/guix.texi:9047
19565#, no-wrap
19566msgid "@code{locale-definitions} (default: @var{%default-locale-definitions})"
19567msgstr ""
19568
19569#. type: table
19570#: doc/guix.texi:9050
19571msgid ""
19572"The list of locale definitions to be compiled and that may be used at run "
19573"time. @xref{Locales}."
19574msgstr ""
19575
19576#. type: item
19577#: doc/guix.texi:9051
19578#, no-wrap
19579msgid "@code{locale-libcs} (default: @code{(list @var{glibc})})"
19580msgstr ""
19581
19582#. type: table
19583#: doc/guix.texi:9055
19584msgid ""
19585"The list of GNU@tie{}libc packages whose locale data and tools are used to "
19586"build the locale definitions. @xref{Locales}, for compatibility "
19587"considerations that justify this option."
19588msgstr ""
19589
19590#. type: item
19591#: doc/guix.texi:9056
19592#, no-wrap
19593msgid "@code{name-service-switch} (default: @var{%default-nss})"
19594msgstr ""
19595
19596#. type: table
19597#: doc/guix.texi:9060
19598msgid ""
39764ef8
JL
19599"Configuration of the libc name service switch (NSS)---a @code{<name-service-"
19600"switch>} object. @xref{Name Service Switch}, for details."
b9fe8fd6
JL
19601msgstr ""
19602
19603#. type: item
19604#: doc/guix.texi:9061
19605#, no-wrap
19606msgid "@code{services} (default: @var{%base-services})"
19607msgstr ""
19608
19609#. type: table
19610#: doc/guix.texi:9063
19611msgid "A list of service objects denoting system services. @xref{Services}."
19612msgstr ""
19613
19614#. type: item
19615#: doc/guix.texi:9064
19616#, no-wrap
19617msgid "@code{pam-services} (default: @code{(base-pam-services)})"
19618msgstr ""
19619
19620#. type: cindex
19621#: doc/guix.texi:9065
19622#, no-wrap
19623msgid "PAM"
19624msgstr ""
19625
19626#. type: cindex
19627#: doc/guix.texi:9066
19628#, no-wrap
19629msgid "pluggable authentication modules"
19630msgstr ""
19631
19632#. type: table
19633#: doc/guix.texi:9069
19634msgid "Linux @dfn{pluggable authentication module} (PAM) services."
19635msgstr ""
19636
19637#. type: item
19638#: doc/guix.texi:9070
19639#, no-wrap
19640msgid "@code{setuid-programs} (default: @var{%setuid-programs})"
19641msgstr ""
19642
19643#. type: table
19644#: doc/guix.texi:9073
19645msgid ""
19646"List of string-valued G-expressions denoting setuid programs. @xref{Setuid "
19647"Programs}."
19648msgstr ""
19649
19650#. type: item
19651#: doc/guix.texi:9074
19652#, no-wrap
19653msgid "@code{sudoers-file} (default: @var{%sudoers-specification})"
19654msgstr ""
19655
19656#. type: cindex
19657#: doc/guix.texi:9075
19658#, no-wrap
19659msgid "sudoers file"
19660msgstr ""
19661
19662#. type: table
19663#: doc/guix.texi:9078
19664msgid ""
39764ef8
JL
19665"The contents of the @file{/etc/sudoers} file as a file-like object (@pxref{G-"
19666"Expressions, @code{local-file} and @code{plain-file}})."
b9fe8fd6
JL
19667msgstr ""
19668
19669#. type: table
19670#: doc/guix.texi:9083
19671msgid ""
19672"This file specifies which users can use the @command{sudo} command, what "
19673"they are allowed to do, and what privileges they may gain. The default is "
19674"that only @code{root} and members of the @code{wheel} group may use "
19675"@code{sudo}."
19676msgstr ""
19677
19678#. type: Plain text
19679#: doc/guix.texi:9094
19680msgid ""
39764ef8
JL
19681"The list of file systems to be mounted is specified in the @code{file-"
19682"systems} field of the operating system declaration (@pxref{Using the "
19683"Configuration System}). Each file system is declared using the @code{file-"
19684"system} form, like this:"
b9fe8fd6
JL
19685msgstr ""
19686
19687#. type: example
19688#: doc/guix.texi:9100
19689#, no-wrap
19690msgid ""
19691"(file-system\n"
19692" (mount-point \"/home\")\n"
19693" (device \"/dev/sda3\")\n"
19694" (type \"ext4\"))\n"
19695msgstr ""
19696
19697#. type: Plain text
19698#: doc/guix.texi:9104
19699msgid ""
19700"As usual, some of the fields are mandatory---those shown in the example "
19701"above---while others can be omitted. These are described below."
19702msgstr ""
19703
19704#. type: deftp
19705#: doc/guix.texi:9105
19706#, no-wrap
19707msgid "{Data Type} file-system"
19708msgstr ""
19709
19710#. type: deftp
19711#: doc/guix.texi:9108
19712msgid ""
19713"Objects of this type represent file systems to be mounted. They contain the "
19714"following members:"
19715msgstr ""
19716
19717#. type: item
19718#: doc/guix.texi:9110 doc/guix.texi:9294
19719#, no-wrap
19720msgid "type"
19721msgstr ""
19722
19723#. type: table
19724#: doc/guix.texi:9113
19725msgid ""
19726"This is a string specifying the type of the file system---e.g., "
19727"@code{\"ext4\"}."
19728msgstr ""
19729
19730#. type: code{#1}
19731#: doc/guix.texi:9114
19732#, no-wrap
19733msgid "mount-point"
19734msgstr ""
19735
19736#. type: table
19737#: doc/guix.texi:9116
19738msgid "This designates the place where the file system is to be mounted."
19739msgstr ""
19740
19741#. type: code{#1}
19742#: doc/guix.texi:9117
19743#, no-wrap
19744msgid "device"
19745msgstr ""
19746
19747#. type: table
19748#: doc/guix.texi:9121
19749msgid ""
19750"This names the ``source'' of the file system. By default it is the name of "
19751"a node under @file{/dev}, but its meaning depends on the @code{title} field "
19752"described below."
19753msgstr ""
19754
19755#. type: item
19756#: doc/guix.texi:9122
19757#, no-wrap
19758msgid "@code{title} (default: @code{'device})"
19759msgstr ""
19760
19761#. type: table
19762#: doc/guix.texi:9125
19763msgid ""
19764"This is a symbol that specifies how the @code{device} field is to be "
19765"interpreted."
19766msgstr ""
19767
19768#. type: table
19769#: doc/guix.texi:9130
19770msgid ""
19771"When it is the symbol @code{device}, then the @code{device} field is "
19772"interpreted as a file name; when it is @code{label}, then @code{device} is "
19773"interpreted as a file system label name; when it is @code{uuid}, "
19774"@code{device} is interpreted as a file system unique identifier (UUID)."
19775msgstr ""
19776
19777#. type: table
19778#: doc/guix.texi:9138
19779msgid ""
19780"UUIDs may be converted from their string representation (as shown by the "
19781"@command{tune2fs -l} command) using the @code{uuid} form@footnote{The "
39764ef8
JL
19782"@code{uuid} form expects 16-byte UUIDs as defined in @uref{https://tools."
19783"ietf.org/html/rfc4122, RFC@tie{}4122}. This is the form of UUID used by the "
19784"ext2 family of file systems and others, but it is different from ``UUIDs'' "
19785"found in FAT file systems, for instance.}, like this:"
b9fe8fd6
JL
19786msgstr ""
19787
19788#. type: example
19789#: doc/guix.texi:9145
19790#, no-wrap
19791msgid ""
19792"(file-system\n"
19793" (mount-point \"/home\")\n"
19794" (type \"ext4\")\n"
19795" (title 'uuid)\n"
19796" (device (uuid \"4dab5feb-d176-45de-b287-9b0a6e4c01cb\")))\n"
19797msgstr ""
19798
19799#. type: table
19800#: doc/guix.texi:9154
19801msgid ""
19802"The @code{label} and @code{uuid} options offer a way to refer to file "
19803"systems without having to hard-code their actual device name@footnote{Note "
19804"that, while it is tempting to use @file{/dev/disk/by-uuid} and similar "
19805"device names to achieve the same result, this is not recommended: These "
19806"special device nodes are created by the udev daemon and may be unavailable "
19807"at the time the device is mounted.}."
19808msgstr ""
19809
19810#. type: table
19811#: doc/guix.texi:9161
19812msgid ""
19813"However, when the source of a file system is a mapped device (@pxref{Mapped "
19814"Devices}), its @code{device} field @emph{must} refer to the mapped device "
19815"name---e.g., @file{/dev/mapper/root-partition}---and consequently "
19816"@code{title} must be set to @code{'device}. This is required so that the "
19817"system knows that mounting the file system depends on having the "
19818"corresponding device mapping established."
19819msgstr ""
19820
19821#. type: item
19822#: doc/guix.texi:9162
19823#, no-wrap
19824msgid "@code{flags} (default: @code{'()})"
19825msgstr ""
19826
19827#. type: table
19828#: doc/guix.texi:9167
19829msgid ""
19830"This is a list of symbols denoting mount flags. Recognized flags include "
19831"@code{read-only}, @code{bind-mount}, @code{no-dev} (disallow access to "
39764ef8
JL
19832"special files), @code{no-suid} (ignore setuid and setgid bits), and @code{no-"
19833"exec} (disallow program execution.)"
b9fe8fd6
JL
19834msgstr ""
19835
19836#. type: item
19837#: doc/guix.texi:9168
19838#, no-wrap
19839msgid "@code{options} (default: @code{#f})"
19840msgstr ""
19841
19842#. type: table
19843#: doc/guix.texi:9170
19844msgid "This is either @code{#f}, or a string denoting mount options."
19845msgstr ""
19846
19847#. type: item
19848#: doc/guix.texi:9171
19849#, no-wrap
19850msgid "@code{mount?} (default: @code{#t})"
19851msgstr ""
19852
19853#. type: table
19854#: doc/guix.texi:9176
19855msgid ""
19856"This value indicates whether to automatically mount the file system when the "
19857"system is brought up. When set to @code{#f}, the file system gets an entry "
19858"in @file{/etc/fstab} (read by the @command{mount} command) but is not "
19859"automatically mounted."
19860msgstr ""
19861
19862#. type: item
19863#: doc/guix.texi:9177
19864#, no-wrap
19865msgid "@code{needed-for-boot?} (default: @code{#f})"
19866msgstr ""
19867
19868#. type: table
19869#: doc/guix.texi:9182
19870msgid ""
19871"This Boolean value indicates whether the file system is needed when "
19872"booting. If that is true, then the file system is mounted when the initial "
19873"RAM disk (initrd) is loaded. This is always the case, for instance, for the "
19874"root file system."
19875msgstr ""
19876
19877#. type: item
19878#: doc/guix.texi:9183
19879#, no-wrap
19880msgid "@code{check?} (default: @code{#t})"
19881msgstr ""
19882
19883#. type: table
19884#: doc/guix.texi:9186
19885msgid ""
19886"This Boolean indicates whether the file system needs to be checked for "
19887"errors before being mounted."
19888msgstr ""
19889
19890#. type: item
19891#: doc/guix.texi:9187
19892#, no-wrap
19893msgid "@code{create-mount-point?} (default: @code{#f})"
19894msgstr ""
19895
19896#. type: table
19897#: doc/guix.texi:9189
19898msgid "When true, the mount point is created if it does not exist yet."
19899msgstr ""
19900
19901#. type: item
19902#: doc/guix.texi:9190
19903#, no-wrap
19904msgid "@code{dependencies} (default: @code{'()})"
19905msgstr ""
19906
19907#. type: table
19908#: doc/guix.texi:9194
19909msgid ""
19910"This is a list of @code{<file-system>} or @code{<mapped-device>} objects "
19911"representing file systems that must be mounted or mapped devices that must "
19912"be opened before (and unmounted or closed after) this one."
19913msgstr ""
19914
19915#. type: table
19916#: doc/guix.texi:9198
19917msgid ""
19918"As an example, consider a hierarchy of mounts: @file{/sys/fs/cgroup} is a "
19919"dependency of @file{/sys/fs/cgroup/cpu} and @file{/sys/fs/cgroup/memory}."
19920msgstr ""
19921
19922#. type: table
19923#: doc/guix.texi:9201
19924msgid ""
19925"Another example is a file system that depends on a mapped device, for "
19926"example for an encrypted partition (@pxref{Mapped Devices})."
19927msgstr ""
19928
19929#. type: Plain text
19930#: doc/guix.texi:9206
39764ef8
JL
19931msgid ""
19932"The @code{(gnu system file-systems)} exports the following useful variables."
b9fe8fd6
JL
19933msgstr ""
19934
19935#. type: defvr
19936#: doc/guix.texi:9207
19937#, no-wrap
19938msgid "{Scheme Variable} %base-file-systems"
19939msgstr ""
19940
19941#. type: defvr
19942#: doc/guix.texi:9212
19943msgid ""
19944"These are essential file systems that are required on normal systems, such "
19945"as @var{%pseudo-terminal-file-system} and @var{%immutable-store} (see "
19946"below.) Operating system declarations should always contain at least these."
19947msgstr ""
19948
19949#. type: defvr
19950#: doc/guix.texi:9214
19951#, no-wrap
19952msgid "{Scheme Variable} %pseudo-terminal-file-system"
19953msgstr ""
19954
19955#. type: defvr
19956#: doc/guix.texi:9220
19957msgid ""
19958"This is the file system to be mounted as @file{/dev/pts}. It supports "
19959"@dfn{pseudo-terminals} created @i{via} @code{openpty} and similar functions "
19960"(@pxref{Pseudo-Terminals,,, libc, The GNU C Library Reference Manual}). "
19961"Pseudo-terminals are used by terminal emulators such as @command{xterm}."
19962msgstr ""
19963
19964#. type: defvr
19965#: doc/guix.texi:9222
19966#, no-wrap
19967msgid "{Scheme Variable} %shared-memory-file-system"
19968msgstr ""
19969
19970#. type: defvr
19971#: doc/guix.texi:9226
19972msgid ""
19973"This file system is mounted as @file{/dev/shm} and is used to support memory "
19974"sharing across processes (@pxref{Memory-mapped I/O, @code{shm_open},, libc, "
19975"The GNU C Library Reference Manual})."
19976msgstr ""
19977
19978#. type: defvr
19979#: doc/guix.texi:9228
19980#, no-wrap
19981msgid "{Scheme Variable} %immutable-store"
19982msgstr ""
19983
19984#. type: defvr
19985#: doc/guix.texi:9233
19986msgid ""
19987"This file system performs a read-only ``bind mount'' of @file{/gnu/store}, "
19988"making it read-only for all the users including @code{root}. This prevents "
19989"against accidental modification by software running as @code{root} or by "
19990"system administrators."
19991msgstr ""
19992
19993#. type: defvr
19994#: doc/guix.texi:9236
19995msgid ""
39764ef8
JL
19996"The daemon itself is still able to write to the store: it remounts it read-"
19997"write in its own ``name space.''"
b9fe8fd6
JL
19998msgstr ""
19999
20000#. type: defvr
20001#: doc/guix.texi:9238
20002#, no-wrap
20003msgid "{Scheme Variable} %binary-format-file-system"
20004msgstr ""
20005
20006#. type: defvr
20007#: doc/guix.texi:9242
20008msgid ""
20009"The @code{binfmt_misc} file system, which allows handling of arbitrary "
20010"executable file types to be delegated to user space. This requires the "
20011"@code{binfmt.ko} kernel module to be loaded."
20012msgstr ""
20013
20014#. type: defvr
20015#: doc/guix.texi:9244
20016#, no-wrap
20017msgid "{Scheme Variable} %fuse-control-file-system"
20018msgstr ""
20019
20020#. type: defvr
20021#: doc/guix.texi:9248
20022msgid ""
20023"The @code{fusectl} file system, which allows unprivileged users to mount and "
20024"unmount user-space FUSE file systems. This requires the @code{fuse.ko} "
20025"kernel module to be loaded."
20026msgstr ""
20027
20028#. type: cindex
20029#: doc/guix.texi:9253
20030#, no-wrap
20031msgid "device mapping"
20032msgstr ""
20033
20034#. type: cindex
20035#: doc/guix.texi:9254
20036#, no-wrap
20037msgid "mapped devices"
20038msgstr ""
20039
20040#. type: Plain text
20041#: doc/guix.texi:9272
20042msgid ""
20043"The Linux kernel has a notion of @dfn{device mapping}: a block device, such "
20044"as a hard disk partition, can be @dfn{mapped} into another device, usually "
20045"in @code{/dev/mapper/}, with additional processing over the data that flows "
20046"through it@footnote{Note that the GNU@tie{}Hurd makes no difference between "
20047"the concept of a ``mapped device'' and that of a file system: both boil down "
20048"to @emph{translating} input/output operations made on a file to operations "
20049"on its backing store. Thus, the Hurd implements mapped devices, like file "
20050"systems, using the generic @dfn{translator} mechanism (@pxref{Translators,,, "
20051"hurd, The GNU Hurd Reference Manual}).}. A typical example is encryption "
20052"device mapping: all writes to the mapped device are encrypted, and all reads "
20053"are deciphered, transparently. Guix extends this notion by considering any "
20054"device or set of devices that are @dfn{transformed} in some way to create a "
20055"new device; for instance, RAID devices are obtained by @dfn{assembling} "
20056"several other devices, such as hard disks or partitions, into a new one that "
20057"behaves as one partition. Other examples, not yet implemented, are LVM "
20058"logical volumes."
20059msgstr ""
20060
20061#. type: Plain text
20062#: doc/guix.texi:9275
20063msgid ""
20064"Mapped devices are declared using the @code{mapped-device} form, defined as "
20065"follows; for examples, see below."
20066msgstr ""
20067
20068#. type: deftp
20069#: doc/guix.texi:9276
20070#, no-wrap
20071msgid "{Data Type} mapped-device"
20072msgstr ""
20073
20074#. type: deftp
20075#: doc/guix.texi:9279
20076msgid ""
20077"Objects of this type represent device mappings that will be made when the "
20078"system boots up."
20079msgstr ""
20080
20081#. type: table
20082#: doc/guix.texi:9285
20083msgid ""
20084"This is either a string specifying the name of the block device to be "
20085"mapped, such as @code{\"/dev/sda3\"}, or a list of such strings when several "
20086"devices need to be assembled for creating a new one."
20087msgstr ""
20088
20089#. type: code{#1}
39764ef8 20090#: doc/guix.texi:9286 doc/guix.texi:20162
b9fe8fd6
JL
20091#, no-wrap
20092msgid "target"
20093msgstr ""
20094
20095#. type: table
20096#: doc/guix.texi:9293
20097msgid ""
20098"This string specifies the name of the resulting mapped device. For kernel "
20099"mappers such as encrypted devices of type @code{luks-device-mapping}, "
39764ef8
JL
20100"specifying @code{\"my-partition\"} leads to the creation of the @code{\"/dev/"
20101"mapper/my-partition\"} device. For RAID devices of type @code{raid-device-"
20102"mapping}, the full device name such as @code{\"/dev/md0\"} needs to be given."
b9fe8fd6
JL
20103msgstr ""
20104
20105#. type: table
20106#: doc/guix.texi:9297
20107msgid ""
20108"This must be a @code{mapped-device-kind} object, which specifies how "
20109"@var{source} is mapped to @var{target}."
20110msgstr ""
20111
20112#. type: defvr
20113#: doc/guix.texi:9300
20114#, no-wrap
20115msgid "{Scheme Variable} luks-device-mapping"
20116msgstr ""
20117
20118#. type: defvr
20119#: doc/guix.texi:9304
20120msgid ""
20121"This defines LUKS block device encryption using the @command{cryptsetup} "
39764ef8
JL
20122"command from the package with the same name. It relies on the @code{dm-"
20123"crypt} Linux kernel module."
b9fe8fd6
JL
20124msgstr ""
20125
20126#. type: defvr
20127#: doc/guix.texi:9306
20128#, no-wrap
20129msgid "{Scheme Variable} raid-device-mapping"
20130msgstr ""
20131
20132#. type: defvr
20133#: doc/guix.texi:9311
20134msgid ""
20135"This defines a RAID device, which is assembled using the @code{mdadm} "
20136"command from the package with the same name. It requires a Linux kernel "
20137"module for the appropriate RAID level to be loaded, such as @code{raid456} "
20138"for RAID-4, RAID-5 or RAID-6, or @code{raid10} for RAID-10."
20139msgstr ""
20140
20141#. type: cindex
20142#: doc/guix.texi:9313
20143#, no-wrap
20144msgid "disk encryption"
20145msgstr ""
20146
20147#. type: cindex
20148#: doc/guix.texi:9314
20149#, no-wrap
20150msgid "LUKS"
20151msgstr ""
20152
20153#. type: Plain text
20154#: doc/guix.texi:9322
20155msgid ""
39764ef8
JL
20156"The following example specifies a mapping from @file{/dev/sda3} to @file{/"
20157"dev/mapper/home} using LUKS---the @url{https://gitlab.com/cryptsetup/"
20158"cryptsetup,Linux Unified Key Setup}, a standard mechanism for disk "
20159"encryption. The @file{/dev/mapper/home} device can then be used as the "
20160"@code{device} of a @code{file-system} declaration (@pxref{File Systems})."
b9fe8fd6
JL
20161msgstr ""
20162
20163#. type: example
20164#: doc/guix.texi:9328
20165#, no-wrap
20166msgid ""
20167"(mapped-device\n"
20168" (source \"/dev/sda3\")\n"
20169" (target \"home\")\n"
20170" (type luks-device-mapping))\n"
20171msgstr ""
20172
20173#. type: Plain text
20174#: doc/guix.texi:9333
20175msgid ""
20176"Alternatively, to become independent of device numbering, one may obtain the "
20177"LUKS UUID (@dfn{unique identifier}) of the source device by a command like:"
20178msgstr ""
20179
20180#. type: example
20181#: doc/guix.texi:9336
20182#, no-wrap
20183msgid "cryptsetup luksUUID /dev/sda3\n"
20184msgstr ""
20185
20186#. type: Plain text
20187#: doc/guix.texi:9339
20188msgid "and use it as follows:"
20189msgstr ""
20190
20191#. type: example
20192#: doc/guix.texi:9345
20193#, no-wrap
20194msgid ""
20195"(mapped-device\n"
20196" (source (uuid \"cb67fc72-0d54-4c88-9d4b-b225f30b0f44\"))\n"
20197" (target \"home\")\n"
20198" (type luks-device-mapping))\n"
20199msgstr ""
20200
20201#. type: cindex
20202#: doc/guix.texi:9347
20203#, no-wrap
20204msgid "swap encryption"
20205msgstr ""
20206
20207#. type: Plain text
20208#: doc/guix.texi:9353
20209msgid ""
20210"It is also desirable to encrypt swap space, since swap space may contain "
20211"sensitive data. One way to accomplish that is to use a swap file in a file "
20212"system on a device mapped via LUKS encryption. In this way, the swap file "
20213"is encrypted because the entire device is encrypted. @xref{Preparing for "
20214"Installation,,Disk Partitioning}, for an example."
20215msgstr ""
20216
20217#. type: Plain text
20218#: doc/guix.texi:9356
20219msgid ""
20220"A RAID device formed of the partitions @file{/dev/sda1} and @file{/dev/sdb1} "
20221"may be declared as follows:"
20222msgstr ""
20223
20224#. type: example
20225#: doc/guix.texi:9362
20226#, no-wrap
20227msgid ""
20228"(mapped-device\n"
20229" (source (list \"/dev/sda1\" \"/dev/sdb1\"))\n"
20230" (target \"/dev/md0\")\n"
20231" (type raid-device-mapping))\n"
20232msgstr ""
20233
20234#. type: Plain text
20235#: doc/guix.texi:9369
20236msgid ""
20237"The @file{/dev/md0} device can then be used as the @code{device} of a "
20238"@code{file-system} declaration (@pxref{File Systems}). Note that the RAID "
20239"level need not be given; it is chosen during the initial creation and "
20240"formatting of the RAID device and is determined automatically later."
20241msgstr ""
20242
20243#. type: cindex
20244#: doc/guix.texi:9374
20245#, no-wrap
20246msgid "users"
20247msgstr ""
20248
20249#. type: cindex
20250#: doc/guix.texi:9375
20251#, no-wrap
20252msgid "accounts"
20253msgstr ""
20254
20255#. type: cindex
20256#: doc/guix.texi:9376
20257#, no-wrap
20258msgid "user accounts"
20259msgstr ""
20260
20261#. type: Plain text
20262#: doc/guix.texi:9380
20263msgid ""
39764ef8
JL
20264"User accounts and groups are entirely managed through the @code{operating-"
20265"system} declaration. They are specified with the @code{user-account} and "
20266"@code{user-group} forms:"
b9fe8fd6
JL
20267msgstr ""
20268
20269#. type: example
20270#: doc/guix.texi:9391
20271#, no-wrap
20272msgid ""
20273"(user-account\n"
20274" (name \"alice\")\n"
20275" (group \"users\")\n"
20276" (supplementary-groups '(\"wheel\" ;allow use of sudo, etc.\n"
20277" \"audio\" ;sound card\n"
20278" \"video\" ;video devices such as webcams\n"
20279" \"cdrom\")) ;the good ol' CD-ROM\n"
20280" (comment \"Bob's sister\")\n"
20281" (home-directory \"/home/alice\"))\n"
20282msgstr ""
20283
20284#. type: Plain text
20285#: doc/guix.texi:9400
20286msgid ""
20287"When booting or upon completion of @command{guix system reconfigure}, the "
20288"system ensures that only the user accounts and groups specified in the "
20289"@code{operating-system} declaration exist, and with the specified "
20290"properties. Thus, account or group creations or modifications made by "
20291"directly invoking commands such as @command{useradd} are lost upon "
20292"reconfiguration or reboot. This ensures that the system remains exactly as "
20293"declared."
20294msgstr ""
20295
20296#. type: deftp
20297#: doc/guix.texi:9401
20298#, no-wrap
20299msgid "{Data Type} user-account"
20300msgstr ""
20301
20302#. type: deftp
20303#: doc/guix.texi:9404
20304msgid ""
20305"Objects of this type represent user accounts. The following members may be "
20306"specified:"
20307msgstr ""
20308
20309#. type: table
20310#: doc/guix.texi:9408
20311msgid "The name of the user account."
20312msgstr ""
20313
20314#. type: itemx
39764ef8 20315#: doc/guix.texi:9409 doc/guix.texi:19924
b9fe8fd6
JL
20316#, no-wrap
20317msgid "group"
20318msgstr ""
20319
20320#. type: cindex
20321#: doc/guix.texi:9410 doc/guix.texi:9459
20322#, no-wrap
20323msgid "groups"
20324msgstr ""
20325
20326#. type: table
20327#: doc/guix.texi:9413
20328msgid ""
20329"This is the name (a string) or identifier (a number) of the user group this "
20330"account belongs to."
20331msgstr ""
20332
20333#. type: item
20334#: doc/guix.texi:9414
20335#, no-wrap
20336msgid "@code{supplementary-groups} (default: @code{'()})"
20337msgstr ""
20338
20339#. type: table
20340#: doc/guix.texi:9417
20341msgid ""
20342"Optionally, this can be defined as a list of group names that this account "
20343"belongs to."
20344msgstr ""
20345
20346#. type: item
20347#: doc/guix.texi:9418
20348#, no-wrap
20349msgid "@code{uid} (default: @code{#f})"
20350msgstr ""
20351
20352#. type: table
20353#: doc/guix.texi:9422
20354msgid ""
20355"This is the user ID for this account (a number), or @code{#f}. In the "
20356"latter case, a number is automatically chosen by the system when the account "
20357"is created."
20358msgstr ""
20359
20360#. type: item
20361#: doc/guix.texi:9423
20362#, no-wrap
20363msgid "@code{comment} (default: @code{\"\"})"
20364msgstr ""
20365
20366#. type: table
20367#: doc/guix.texi:9425
20368msgid "A comment about the account, such as the account owner's full name."
20369msgstr ""
20370
20371#. type: code{#1}
20372#: doc/guix.texi:9426
20373#, no-wrap
20374msgid "home-directory"
20375msgstr ""
20376
20377#. type: table
20378#: doc/guix.texi:9428
20379msgid "This is the name of the home directory for the account."
20380msgstr ""
20381
20382#. type: item
20383#: doc/guix.texi:9429
20384#, no-wrap
20385msgid "@code{create-home-directory?} (default: @code{#t})"
20386msgstr ""
20387
20388#. type: table
20389#: doc/guix.texi:9432
20390msgid ""
20391"Indicates whether the home directory of this account should be created if it "
20392"does not exist yet."
20393msgstr ""
20394
20395#. type: item
20396#: doc/guix.texi:9433
20397#, no-wrap
20398msgid "@code{shell} (default: Bash)"
20399msgstr ""
20400
20401#. type: table
20402#: doc/guix.texi:9436
20403msgid ""
20404"This is a G-expression denoting the file name of a program to be used as the "
20405"shell (@pxref{G-Expressions})."
20406msgstr ""
20407
20408#. type: item
20409#: doc/guix.texi:9437 doc/guix.texi:9477
20410#, no-wrap
20411msgid "@code{system?} (default: @code{#f})"
20412msgstr ""
20413
20414#. type: table
20415#: doc/guix.texi:9441
20416msgid ""
20417"This Boolean value indicates whether the account is a ``system'' account. "
20418"System accounts are sometimes treated specially; for instance, graphical "
20419"login managers do not list them."
20420msgstr ""
20421
20422#. type: anchor{#1}
20423#: doc/guix.texi:9443
20424msgid "user-account-password"
20425msgstr ""
20426
20427#. type: item
20428#: doc/guix.texi:9443 doc/guix.texi:9481
20429#, no-wrap
20430msgid "@code{password} (default: @code{#f})"
20431msgstr ""
20432
20433#. type: table
20434#: doc/guix.texi:9449
20435msgid ""
20436"You would normally leave this field to @code{#f}, initialize user passwords "
20437"as @code{root} with the @command{passwd} command, and then let users change "
20438"it with @command{passwd}. Passwords set with @command{passwd} are of course "
20439"preserved across reboot and reconfiguration."
20440msgstr ""
20441
20442#. type: table
20443#: doc/guix.texi:9455
20444msgid ""
20445"If you @emph{do} want to have a preset password for an account, then this "
20446"field must contain the encrypted password, as a string. @xref{crypt,,, "
20447"libc, The GNU C Library Reference Manual}, for more information on password "
20448"encryption, and @ref{Encryption,,, guile, GNU Guile Reference Manual}, for "
20449"information on Guile's @code{crypt} procedure."
20450msgstr ""
20451
20452#. type: Plain text
20453#: doc/guix.texi:9461
20454msgid "User group declarations are even simpler:"
20455msgstr ""
20456
20457#. type: example
20458#: doc/guix.texi:9464
20459#, no-wrap
20460msgid "(user-group (name \"students\"))\n"
20461msgstr ""
20462
20463#. type: deftp
20464#: doc/guix.texi:9466
20465#, no-wrap
20466msgid "{Data Type} user-group"
20467msgstr ""
20468
20469#. type: deftp
20470#: doc/guix.texi:9468
20471msgid "This type is for, well, user groups. There are just a few fields:"
20472msgstr ""
20473
20474#. type: table
20475#: doc/guix.texi:9472
20476msgid "The name of the group."
20477msgstr ""
20478
20479#. type: item
20480#: doc/guix.texi:9473
20481#, no-wrap
20482msgid "@code{id} (default: @code{#f})"
20483msgstr ""
20484
20485#. type: table
20486#: doc/guix.texi:9476
20487msgid ""
20488"The group identifier (a number). If @code{#f}, a new number is "
20489"automatically allocated when the group is created."
20490msgstr ""
20491
20492#. type: table
20493#: doc/guix.texi:9480
20494msgid ""
20495"This Boolean value indicates whether the group is a ``system'' group. "
20496"System groups have low numerical IDs."
20497msgstr ""
20498
20499#. type: table
20500#: doc/guix.texi:9484
20501msgid ""
20502"What, user groups can have a password? Well, apparently yes. Unless "
20503"@code{#f}, this field specifies the password of the group."
20504msgstr ""
20505
20506#. type: Plain text
20507#: doc/guix.texi:9490
39764ef8
JL
20508msgid ""
20509"For convenience, a variable lists all the basic user groups one may expect:"
b9fe8fd6
JL
20510msgstr ""
20511
20512#. type: defvr
20513#: doc/guix.texi:9491
20514#, no-wrap
20515msgid "{Scheme Variable} %base-groups"
20516msgstr ""
20517
20518#. type: defvr
20519#: doc/guix.texi:9496
20520msgid ""
20521"This is the list of basic user groups that users and/or packages expect to "
20522"be present on the system. This includes groups such as ``root'', ``wheel'', "
20523"and ``users'', as well as groups used to control access to specific devices "
20524"such as ``audio'', ``disk'', and ``cdrom''."
20525msgstr ""
20526
20527#. type: defvr
20528#: doc/guix.texi:9498
20529#, no-wrap
20530msgid "{Scheme Variable} %base-user-accounts"
20531msgstr ""
20532
20533#. type: defvr
20534#: doc/guix.texi:9501
20535msgid ""
20536"This is the list of basic system accounts that programs may expect to find "
20537"on a GNU/Linux system, such as the ``nobody'' account."
20538msgstr ""
20539
20540#. type: defvr
20541#: doc/guix.texi:9504
20542msgid ""
20543"Note that the ``root'' account is not included here. It is a special-case "
20544"and is automatically added whether or not it is specified."
20545msgstr ""
20546
20547#. type: cindex
20548#: doc/guix.texi:9509
20549#, no-wrap
20550msgid "locale"
20551msgstr ""
20552
20553#. type: Plain text
20554#: doc/guix.texi:9516
20555msgid ""
20556"A @dfn{locale} defines cultural conventions for a particular language and "
20557"region of the world (@pxref{Locales,,, libc, The GNU C Library Reference "
20558"Manual}). Each locale has a name that typically has the form "
39764ef8
JL
20559"@code{@var{language}_@var{territory}.@var{codeset}}---e.g., @code{fr_LU."
20560"utf8} designates the locale for the French language, with cultural "
20561"conventions from Luxembourg, and using the UTF-8 encoding."
b9fe8fd6
JL
20562msgstr ""
20563
20564#. type: cindex
20565#: doc/guix.texi:9517
20566#, no-wrap
20567msgid "locale definition"
20568msgstr ""
20569
20570#. type: Plain text
20571#: doc/guix.texi:9521
20572msgid ""
20573"Usually, you will want to specify the default locale for the machine using "
20574"the @code{locale} field of the @code{operating-system} declaration "
20575"(@pxref{operating-system Reference, @code{locale}})."
20576msgstr ""
20577
20578#. type: Plain text
20579#: doc/guix.texi:9530
20580msgid ""
20581"The selected locale is automatically added to the @dfn{locale definitions} "
39764ef8
JL
20582"known to the system if needed, with its codeset inferred from its name---e."
20583"g., @code{bo_CN.utf8} will be assumed to use the @code{UTF-8} codeset. "
20584"Additional locale definitions can be specified in the @code{locale-"
20585"definitions} slot of @code{operating-system}---this is useful, for instance, "
20586"if the codeset could not be inferred from the locale name. The default set "
20587"of locale definitions includes some widely used locales, but not all the "
20588"available locales, in order to save space."
b9fe8fd6
JL
20589msgstr ""
20590
20591#. type: Plain text
20592#: doc/guix.texi:9533
20593msgid ""
20594"For instance, to add the North Frisian locale for Germany, the value of that "
20595"field may be:"
20596msgstr ""
20597
20598#. type: example
20599#: doc/guix.texi:9538
20600#, no-wrap
20601msgid ""
20602"(cons (locale-definition\n"
20603" (name \"fy_DE.utf8\") (source \"fy_DE\"))\n"
20604" %default-locale-definitions)\n"
20605msgstr ""
20606
20607#. type: Plain text
20608#: doc/guix.texi:9542
20609msgid ""
20610"Likewise, to save space, one might want @code{locale-definitions} to list "
20611"only the locales that are actually used, as in:"
20612msgstr ""
20613
20614#. type: example
20615#: doc/guix.texi:9547
20616#, no-wrap
20617msgid ""
20618"(list (locale-definition\n"
20619" (name \"ja_JP.eucjp\") (source \"ja_JP\")\n"
20620" (charset \"EUC-JP\")))\n"
20621msgstr ""
20622
20623#. type: Plain text
20624#: doc/guix.texi:9556
20625msgid ""
39764ef8
JL
20626"The compiled locale definitions are available at @file{/run/current-system/"
20627"locale/X.Y}, where @code{X.Y} is the libc version, which is the default "
20628"location where the GNU@tie{}libc provided by Guix looks for locale data. "
20629"This can be overridden using the @code{LOCPATH} environment variable "
20630"(@pxref{locales-and-locpath, @code{LOCPATH} and locale packages})."
b9fe8fd6
JL
20631msgstr ""
20632
20633#. type: Plain text
20634#: doc/guix.texi:9559
20635msgid ""
20636"The @code{locale-definition} form is provided by the @code{(gnu system "
20637"locale)} module. Details are given below."
20638msgstr ""
20639
20640#. type: deftp
20641#: doc/guix.texi:9560
20642#, no-wrap
20643msgid "{Data Type} locale-definition"
20644msgstr ""
20645
20646#. type: deftp
20647#: doc/guix.texi:9562
20648msgid "This is the data type of a locale definition."
20649msgstr ""
20650
20651#. type: table
20652#: doc/guix.texi:9568
20653msgid ""
20654"The name of the locale. @xref{Locale Names,,, libc, The GNU C Library "
20655"Reference Manual}, for more information on locale names."
20656msgstr ""
20657
20658#. type: table
20659#: doc/guix.texi:9572
20660msgid ""
20661"The name of the source for that locale. This is typically the "
20662"@code{@var{language}_@var{territory}} part of the locale name."
20663msgstr ""
20664
20665#. type: item
20666#: doc/guix.texi:9573
20667#, no-wrap
20668msgid "@code{charset} (default: @code{\"UTF-8\"})"
20669msgstr ""
20670
20671#. type: table
20672#: doc/guix.texi:9577
20673msgid ""
39764ef8
JL
20674"The ``character set'' or ``code set'' for that locale, @uref{http://www.iana."
20675"org/assignments/character-sets, as defined by IANA}."
b9fe8fd6
JL
20676msgstr ""
20677
20678#. type: defvr
20679#: doc/guix.texi:9581
20680#, no-wrap
20681msgid "{Scheme Variable} %default-locale-definitions"
20682msgstr ""
20683
20684#. type: defvr
20685#: doc/guix.texi:9585
20686msgid ""
20687"A list of commonly used UTF-8 locales, used as the default value of the "
20688"@code{locale-definitions} field of @code{operating-system} declarations."
20689msgstr ""
20690
20691#. type: cindex
20692#: doc/guix.texi:9586
20693#, no-wrap
20694msgid "locale name"
20695msgstr ""
20696
20697#. type: cindex
20698#: doc/guix.texi:9587
20699#, no-wrap
20700msgid "normalized codeset in locale names"
20701msgstr ""
20702
20703#. type: defvr
20704#: doc/guix.texi:9593
20705msgid ""
20706"These locale definitions use the @dfn{normalized codeset} for the part that "
20707"follows the dot in the name (@pxref{Using gettextized software, normalized "
20708"codeset,, libc, The GNU C Library Reference Manual}). So for instance it "
20709"has @code{uk_UA.utf8} but @emph{not}, say, @code{uk_UA.UTF-8}."
20710msgstr ""
20711
20712#. type: subsubsection
20713#: doc/guix.texi:9595
20714#, no-wrap
20715msgid "Locale Data Compatibility Considerations"
20716msgstr ""
20717
20718#. type: cindex
20719#: doc/guix.texi:9597
20720#, no-wrap
20721msgid "incompatibility, of locale data"
20722msgstr ""
20723
20724#. type: Plain text
20725#: doc/guix.texi:9604
20726msgid ""
20727"@code{operating-system} declarations provide a @code{locale-libcs} field to "
20728"specify the GNU@tie{}libc packages that are used to compile locale "
20729"declarations (@pxref{operating-system Reference}). ``Why would I care?'', "
20730"you may ask. Well, it turns out that the binary format of locale data is "
20731"occasionally incompatible from one libc version to another."
20732msgstr ""
20733
20734#. type: Plain text
20735#: doc/guix.texi:9616
20736msgid ""
20737"For instance, a program linked against libc version 2.21 is unable to read "
20738"locale data produced with libc 2.22; worse, that program @emph{aborts} "
20739"instead of simply ignoring the incompatible locale data@footnote{Versions "
20740"2.23 and later of GNU@tie{}libc will simply skip the incompatible locale "
20741"data, which is already an improvement.}. Similarly, a program linked "
20742"against libc 2.22 can read most, but not all, of the locale data from libc "
20743"2.21 (specifically, @code{LC_COLLATE} data is incompatible); thus calls to "
20744"@code{setlocale} may fail, but programs will not abort."
20745msgstr ""
20746
20747#. type: Plain text
20748#: doc/guix.texi:9621
20749msgid ""
20750"The ``problem'' in GuixSD is that users have a lot of freedom: They can "
20751"choose whether and when to upgrade software in their profiles, and might be "
20752"using a libc version different from the one the system administrator used to "
20753"build the system-wide locale data."
20754msgstr ""
20755
20756#. type: Plain text
20757#: doc/guix.texi:9625
20758msgid ""
20759"Fortunately, unprivileged users can also install their own locale data and "
20760"define @var{GUIX_LOCPATH} accordingly (@pxref{locales-and-locpath, "
20761"@code{GUIX_LOCPATH} and locale packages})."
20762msgstr ""
20763
20764#. type: Plain text
20765#: doc/guix.texi:9632
20766msgid ""
39764ef8
JL
20767"Still, it is best if the system-wide locale data at @file{/run/current-"
20768"system/locale} is built for all the libc versions actually in use on the "
20769"system, so that all the programs can access it---this is especially crucial "
20770"on a multi-user system. To do that, the administrator can specify several "
20771"libc packages in the @code{locale-libcs} field of @code{operating-system}:"
b9fe8fd6
JL
20772msgstr ""
20773
20774#. type: example
20775#: doc/guix.texi:9635
20776#, no-wrap
20777msgid ""
20778"(use-package-modules base)\n"
20779"\n"
20780msgstr ""
20781
20782#. type: example
20783#: doc/guix.texi:9639
20784#, no-wrap
20785msgid ""
20786"(operating-system\n"
20787" ;; @dots{}\n"
20788" (locale-libcs (list glibc-2.21 (canonical-package glibc))))\n"
20789msgstr ""
20790
20791#. type: Plain text
20792#: doc/guix.texi:9644
20793msgid ""
20794"This example would lead to a system containing locale definitions for both "
39764ef8
JL
20795"libc 2.21 and the current version of libc in @file{/run/current-system/"
20796"locale}."
b9fe8fd6
JL
20797msgstr ""
20798
20799#. type: cindex
20800#: doc/guix.texi:9649
20801#, no-wrap
20802msgid "system services"
20803msgstr ""
20804
20805#. type: Plain text
20806#: doc/guix.texi:9655
20807msgid ""
20808"An important part of preparing an @code{operating-system} declaration is "
20809"listing @dfn{system services} and their configuration (@pxref{Using the "
20810"Configuration System}). System services are typically daemons launched when "
20811"the system boots, or other actions needed at that time---e.g., configuring "
20812"network access."
20813msgstr ""
20814
20815#. type: Plain text
20816#: doc/guix.texi:9662
20817msgid ""
20818"GuixSD has a broad definition of ``service'' (@pxref{Service Composition}), "
20819"but many services are managed by the GNU@tie{}Shepherd (@pxref{Shepherd "
20820"Services}). On a running system, the @command{herd} command allows you to "
20821"list the available services, show their status, start and stop them, or do "
20822"other specific operations (@pxref{Jump Start,,, shepherd, The GNU Shepherd "
20823"Manual}). For example:"
20824msgstr ""
20825
20826#. type: example
20827#: doc/guix.texi:9665
20828#, no-wrap
20829msgid "# herd status\n"
20830msgstr ""
20831
20832#. type: Plain text
20833#: doc/guix.texi:9670
20834msgid ""
20835"The above command, run as @code{root}, lists the currently defined "
20836"services. The @command{herd doc} command shows a synopsis of the given "
20837"service:"
20838msgstr ""
20839
20840#. type: example
20841#: doc/guix.texi:9674
20842#, no-wrap
20843msgid ""
20844"# herd doc nscd\n"
20845"Run libc's name service cache daemon (nscd).\n"
20846msgstr ""
20847
20848#. type: Plain text
20849#: doc/guix.texi:9679
20850msgid ""
20851"The @command{start}, @command{stop}, and @command{restart} sub-commands have "
20852"the effect you would expect. For instance, the commands below stop the nscd "
20853"service and restart the Xorg display server:"
20854msgstr ""
20855
20856#. type: example
20857#: doc/guix.texi:9686
20858#, no-wrap
20859msgid ""
20860"# herd stop nscd\n"
20861"Service nscd has been stopped.\n"
20862"# herd restart xorg-server\n"
20863"Service xorg-server has been stopped.\n"
20864"Service xorg-server has been started.\n"
20865msgstr ""
20866
20867#. type: Plain text
20868#: doc/guix.texi:9691
20869msgid ""
20870"The following sections document the available services, starting with the "
20871"core services, that may be used in an @code{operating-system} declaration."
20872msgstr ""
20873
20874#. type: Plain text
20875#: doc/guix.texi:9726
20876msgid ""
20877"The @code{(gnu services base)} module provides definitions for the basic "
20878"services that one expects from the system. The services exported by this "
20879"module are listed below."
20880msgstr ""
20881
20882#. type: defvr
20883#: doc/guix.texi:9727
20884#, no-wrap
20885msgid "{Scheme Variable} %base-services"
20886msgstr ""
20887
20888#. type: defvr
20889#: doc/guix.texi:9733
20890msgid ""
20891"This variable contains a list of basic services (@pxref{Service Types and "
20892"Services}, for more information on service objects) one would expect from "
20893"the system: a login service (mingetty) on each tty, syslogd, the libc name "
20894"service cache daemon (nscd), the udev device manager, and more."
20895msgstr ""
20896
20897#. type: defvr
20898#: doc/guix.texi:9738
20899msgid ""
39764ef8
JL
20900"This is the default value of the @code{services} field of @code{operating-"
20901"system} declarations. Usually, when customizing a system, you will want to "
20902"append services to @var{%base-services}, like this:"
b9fe8fd6
JL
20903msgstr ""
20904
20905#. type: example
20906#: doc/guix.texi:9741
20907#, no-wrap
20908msgid "(cons* (avahi-service) (lsh-service) %base-services)\n"
20909msgstr ""
20910
20911#. type: defvr
20912#: doc/guix.texi:9744
20913#, no-wrap
20914msgid "{Scheme Variable} special-files-service-type"
20915msgstr ""
20916
20917#. type: defvr
20918#: doc/guix.texi:9747
20919msgid ""
20920"This is the service that sets up ``special files'' such as @file{/bin/sh}; "
20921"an instance of it is part of @code{%base-services}."
20922msgstr ""
20923
20924#. type: defvr
20925#: doc/guix.texi:9751
20926msgid ""
20927"The value associated with @code{special-files-service-type} services must be "
20928"a list of tuples where the first element is the ``special file'' and the "
20929"second element is its target. By default it is:"
20930msgstr ""
20931
20932#. type: file{#1}
20933#: doc/guix.texi:9752
20934#, no-wrap
20935msgid "/bin/sh"
20936msgstr ""
20937
20938#. type: cindex
20939#: doc/guix.texi:9753
20940#, no-wrap
20941msgid "@file{sh}, in @file{/bin}"
20942msgstr ""
20943
20944#. type: example
20945#: doc/guix.texi:9756
20946#, no-wrap
20947msgid "`((\"/bin/sh\" ,(file-append @var{bash} \"/bin/sh\")))\n"
20948msgstr ""
20949
20950#. type: file{#1}
20951#: doc/guix.texi:9758
20952#, no-wrap
20953msgid "/usr/bin/env"
20954msgstr ""
20955
20956#. type: cindex
20957#: doc/guix.texi:9759
20958#, no-wrap
20959msgid "@file{env}, in @file{/usr/bin}"
20960msgstr ""
20961
20962#. type: defvr
20963#: doc/guix.texi:9762
20964msgid ""
20965"If you want to add, say, @code{/usr/bin/env} to your system, you can change "
20966"it to:"
20967msgstr ""
20968
20969#. type: example
20970#: doc/guix.texi:9766
20971#, no-wrap
20972msgid ""
20973"`((\"/bin/sh\" ,(file-append @var{bash} \"/bin/sh\"))\n"
20974" (\"/usr/bin/env\" ,(file-append @var{coreutils} \"/bin/env\")))\n"
20975msgstr ""
20976
20977#. type: defvr
20978#: doc/guix.texi:9773
20979msgid ""
39764ef8
JL
20980"Since this is part of @code{%base-services}, you can use @code{modify-"
20981"services} to customize the set of special files (@pxref{Service Reference, "
20982"@code{modify-services}}). But the simple way to add a special file is "
20983"@i{via} the @code{extra-special-file} procedure (see below.)"
b9fe8fd6
JL
20984msgstr ""
20985
20986#. type: deffn
20987#: doc/guix.texi:9775
20988#, no-wrap
20989msgid "{Scheme Procedure} extra-special-file @var{file} @var{target}"
20990msgstr ""
20991
20992#. type: deffn
20993#: doc/guix.texi:9777
20994msgid "Use @var{target} as the ``special file'' @var{file}."
20995msgstr ""
20996
20997#. type: deffn
20998#: doc/guix.texi:9781
20999msgid ""
21000"For example, adding the following lines to the @code{services} field of your "
21001"operating system declaration leads to a @file{/usr/bin/env} symlink:"
21002msgstr ""
21003
21004#. type: example
21005#: doc/guix.texi:9785
21006#, no-wrap
21007msgid ""
21008"(extra-special-file \"/usr/bin/env\"\n"
21009" (file-append coreutils \"/bin/env\"))\n"
21010msgstr ""
21011
21012#. type: deffn
21013#: doc/guix.texi:9788
21014#, no-wrap
21015msgid "{Scheme Procedure} host-name-service @var{name}"
21016msgstr ""
21017
21018#. type: deffn
21019#: doc/guix.texi:9790
21020msgid "Return a service that sets the host name to @var{name}."
21021msgstr ""
21022
21023#. type: deffn
21024#: doc/guix.texi:9792
21025#, no-wrap
21026msgid "{Scheme Procedure} login-service @var{config}"
21027msgstr ""
21028
21029#. type: deffn
21030#: doc/guix.texi:9796
21031msgid ""
39764ef8
JL
21032"Return a service to run login according to @var{config}, a @code{<login-"
21033"configuration>} object, which specifies the message of the day, among other "
21034"things."
b9fe8fd6
JL
21035msgstr ""
21036
21037#. type: deftp
21038#: doc/guix.texi:9798
21039#, no-wrap
21040msgid "{Data Type} login-configuration"
21041msgstr ""
21042
21043#. type: deftp
21044#: doc/guix.texi:9800
21045msgid "This is the data type representing the configuration of login."
21046msgstr ""
21047
21048#. type: code{#1}
21049#: doc/guix.texi:9803
21050#, no-wrap
21051msgid "motd"
21052msgstr ""
21053
21054#. type: cindex
21055#: doc/guix.texi:9804
21056#, no-wrap
21057msgid "message of the day"
21058msgstr ""
21059
21060#. type: table
21061#: doc/guix.texi:9806
21062msgid "A file-like object containing the ``message of the day''."
21063msgstr ""
21064
21065#. type: item
39764ef8 21066#: doc/guix.texi:9807 doc/guix.texi:11469
b9fe8fd6
JL
21067#, no-wrap
21068msgid "@code{allow-empty-passwords?} (default: @code{#t})"
21069msgstr ""
21070
21071#. type: table
21072#: doc/guix.texi:9810
21073msgid ""
21074"Allow empty passwords by default so that first-time users can log in when "
21075"the 'root' account has just been created."
21076msgstr ""
21077
21078#. type: deffn
21079#: doc/guix.texi:9814
21080#, no-wrap
21081msgid "{Scheme Procedure} mingetty-service @var{config}"
21082msgstr ""
21083
21084#. type: deffn
21085#: doc/guix.texi:9818
21086msgid ""
21087"Return a service to run mingetty according to @var{config}, a "
21088"@code{<mingetty-configuration>} object, which specifies the tty to run, "
21089"among other things."
21090msgstr ""
21091
21092#. type: deftp
21093#: doc/guix.texi:9820
21094#, no-wrap
21095msgid "{Data Type} mingetty-configuration"
21096msgstr ""
21097
21098#. type: deftp
21099#: doc/guix.texi:9823
21100msgid ""
21101"This is the data type representing the configuration of Mingetty, which "
21102"provides the default implementation of virtual console log-in."
21103msgstr ""
21104
21105#. type: code{#1}
21106#: doc/guix.texi:9826 doc/guix.texi:9862
21107#, no-wrap
21108msgid "tty"
21109msgstr ""
21110
21111#. type: table
21112#: doc/guix.texi:9828
21113msgid "The name of the console this Mingetty runs on---e.g., @code{\"tty1\"}."
21114msgstr ""
21115
21116#. type: item
21117#: doc/guix.texi:9829 doc/guix.texi:9891
21118#, no-wrap
21119msgid "@code{auto-login} (default: @code{#f})"
21120msgstr ""
21121
21122#. type: table
21123#: doc/guix.texi:9833
21124msgid ""
21125"When true, this field must be a string denoting the user name under which "
21126"the system automatically logs in. When it is @code{#f}, a user name and "
21127"password must be entered to log in."
21128msgstr ""
21129
21130#. type: item
21131#: doc/guix.texi:9834
21132#, no-wrap
21133msgid "@code{login-program} (default: @code{#f})"
21134msgstr ""
21135
21136#. type: table
21137#: doc/guix.texi:9838
21138msgid ""
21139"This must be either @code{#f}, in which case the default log-in program is "
21140"used (@command{login} from the Shadow tool suite), or a gexp denoting the "
21141"name of the log-in program."
21142msgstr ""
21143
21144#. type: item
21145#: doc/guix.texi:9839
21146#, no-wrap
21147msgid "@code{login-pause?} (default: @code{#f})"
21148msgstr ""
21149
21150#. type: table
21151#: doc/guix.texi:9842
21152msgid ""
21153"When set to @code{#t} in conjunction with @var{auto-login}, the user will "
21154"have to press a key before the log-in shell is launched."
21155msgstr ""
21156
21157#. type: item
21158#: doc/guix.texi:9843
21159#, no-wrap
21160msgid "@code{mingetty} (default: @var{mingetty})"
21161msgstr ""
21162
21163#. type: table
21164#: doc/guix.texi:9845
21165msgid "The Mingetty package to use."
21166msgstr ""
21167
21168#. type: deffn
21169#: doc/guix.texi:9849
21170#, no-wrap
21171msgid "{Scheme Procedure} agetty-service @var{config}"
21172msgstr ""
21173
21174#. type: deffn
21175#: doc/guix.texi:9853
21176msgid ""
39764ef8
JL
21177"Return a service to run agetty according to @var{config}, an @code{<agetty-"
21178"configuration>} object, which specifies the tty to run, among other things."
b9fe8fd6
JL
21179msgstr ""
21180
21181#. type: deftp
21182#: doc/guix.texi:9855
21183#, no-wrap
21184msgid "{Data Type} agetty-configuration"
21185msgstr ""
21186
21187#. type: deftp
21188#: doc/guix.texi:9859
21189msgid ""
21190"This is the data type representing the configuration of agetty, which "
21191"implements virtual and serial console log-in. See the @code{agetty(8)} man "
21192"page for more information."
21193msgstr ""
21194
21195#. type: table
21196#: doc/guix.texi:9866
21197msgid ""
21198"The name of the console this agetty runs on, as a string---e.g., "
21199"@code{\"ttyS0\"}. This argument is optional, it will default to a reasonable "
21200"default serial port used by the kernel Linux."
21201msgstr ""
21202
21203#. type: table
21204#: doc/guix.texi:9870
21205msgid ""
21206"For this, if there is a value for an option @code{agetty.tty} in the kernel "
21207"command line, agetty will extract the device name of the serial port from it "
21208"and use that."
21209msgstr ""
21210
21211#. type: table
21212#: doc/guix.texi:9874
21213msgid ""
21214"If not and if there is a value for an option @code{console} with a tty in "
21215"the Linux command line, agetty will extract the device name of the serial "
21216"port from it and use that."
21217msgstr ""
21218
21219#. type: table
21220#: doc/guix.texi:9878
21221msgid ""
21222"In both cases, agetty will leave the other serial device settings (baud rate "
21223"etc.) alone---in the hope that Linux pinned them to the correct values."
21224msgstr ""
21225
21226#. type: item
21227#: doc/guix.texi:9879
21228#, no-wrap
21229msgid "@code{baud-rate} (default: @code{#f})"
21230msgstr ""
21231
21232#. type: table
21233#: doc/guix.texi:9882
21234msgid ""
21235"A string containing a comma-separated list of one or more baud rates, in "
21236"descending order."
21237msgstr ""
21238
21239#. type: item
21240#: doc/guix.texi:9883
21241#, no-wrap
21242msgid "@code{term} (default: @code{#f})"
21243msgstr ""
21244
21245#. type: table
21246#: doc/guix.texi:9886
39764ef8
JL
21247msgid ""
21248"A string containing the value used for the @code{TERM} environment variable."
b9fe8fd6
JL
21249msgstr ""
21250
21251#. type: item
21252#: doc/guix.texi:9887
21253#, no-wrap
21254msgid "@code{eight-bits?} (default: @code{#f})"
21255msgstr ""
21256
21257#. type: table
21258#: doc/guix.texi:9890
21259msgid ""
21260"When @code{#t}, the tty is assumed to be 8-bit clean, and parity detection "
21261"is disabled."
21262msgstr ""
21263
21264#. type: table
21265#: doc/guix.texi:9894
21266msgid ""
21267"When passed a login name, as a string, the specified user will be logged in "
21268"automatically without prompting for their login name or password."
21269msgstr ""
21270
21271#. type: item
21272#: doc/guix.texi:9895
21273#, no-wrap
21274msgid "@code{no-reset?} (default: @code{#f})"
21275msgstr ""
21276
21277#. type: table
21278#: doc/guix.texi:9897
21279msgid "When @code{#t}, don't reset terminal cflags (control modes)."
21280msgstr ""
21281
21282#. type: item
21283#: doc/guix.texi:9898
21284#, no-wrap
21285msgid "@code{host} (default: @code{#f})"
21286msgstr ""
21287
21288#. type: table
21289#: doc/guix.texi:9901
21290msgid ""
21291"This accepts a string containing the \"login_host\", which will be written "
21292"into the @file{/var/run/utmpx} file."
21293msgstr ""
21294
21295#. type: item
21296#: doc/guix.texi:9902
21297#, no-wrap
21298msgid "@code{remote?} (default: @code{#f})"
21299msgstr ""
21300
21301#. type: table
21302#: doc/guix.texi:9906
21303msgid ""
21304"When set to @code{#t} in conjunction with @var{host}, this will add an "
21305"@code{-r} fakehost option to the command line of the login program specified "
21306"in @var{login-program}."
21307msgstr ""
21308
21309#. type: item
21310#: doc/guix.texi:9907
21311#, no-wrap
21312msgid "@code{flow-control?} (default: @code{#f})"
21313msgstr ""
21314
21315#. type: table
21316#: doc/guix.texi:9909
21317msgid "When set to @code{#t}, enable hardware (RTS/CTS) flow control."
21318msgstr ""
21319
21320#. type: item
21321#: doc/guix.texi:9910
21322#, no-wrap
21323msgid "@code{no-issue?} (default: @code{#f})"
21324msgstr ""
21325
21326#. type: table
21327#: doc/guix.texi:9913
21328msgid ""
21329"When set to @code{#t}, the contents of the @file{/etc/issue} file will not "
21330"be displayed before presenting the login prompt."
21331msgstr ""
21332
21333#. type: item
21334#: doc/guix.texi:9914
21335#, no-wrap
21336msgid "@code{init-string} (default: @code{#f})"
21337msgstr ""
21338
21339#. type: table
21340#: doc/guix.texi:9917
21341msgid ""
21342"This accepts a string that will be sent to the tty or modem before sending "
21343"anything else. It can be used to initialize a modem."
21344msgstr ""
21345
21346#. type: item
21347#: doc/guix.texi:9918
21348#, no-wrap
21349msgid "@code{no-clear?} (default: @code{#f})"
21350msgstr ""
21351
21352#. type: table
21353#: doc/guix.texi:9921
21354msgid ""
21355"When set to @code{#t}, agetty will not clear the screen before showing the "
21356"login prompt."
21357msgstr ""
21358
21359#. type: item
21360#: doc/guix.texi:9922
21361#, no-wrap
21362msgid "@code{login-program} (default: (file-append shadow \"/bin/login\"))"
21363msgstr ""
21364
21365#. type: table
21366#: doc/guix.texi:9926
21367msgid ""
21368"This must be either a gexp denoting the name of a log-in program, or unset, "
21369"in which case the default value is the @command{login} from the Shadow tool "
21370"suite."
21371msgstr ""
21372
21373#. type: item
21374#: doc/guix.texi:9927
21375#, no-wrap
21376msgid "@code{local-line} (default: @code{#f})"
21377msgstr ""
21378
21379#. type: table
21380#: doc/guix.texi:9931
21381msgid ""
21382"Control the CLOCAL line flag. This accepts one of three symbols as "
21383"arguments, @code{'auto}, @code{'always}, or @code{'never}. If @code{#f}, the "
21384"default value chosen by agetty is @code{'auto}."
21385msgstr ""
21386
21387#. type: item
21388#: doc/guix.texi:9932
21389#, no-wrap
21390msgid "@code{extract-baud?} (default: @code{#f})"
21391msgstr ""
21392
21393#. type: table
21394#: doc/guix.texi:9935
21395msgid ""
21396"When set to @code{#t}, instruct agetty to try to extract the baud rate from "
21397"the status messages produced by certain types of modems."
21398msgstr ""
21399
21400#. type: item
21401#: doc/guix.texi:9936
21402#, no-wrap
21403msgid "@code{skip-login?} (default: @code{#f})"
21404msgstr ""
21405
21406#. type: table
21407#: doc/guix.texi:9940
21408msgid ""
21409"When set to @code{#t}, do not prompt the user for a login name. This can be "
21410"used with @var{login-program} field to use non-standard login systems."
21411msgstr ""
21412
21413#. type: item
21414#: doc/guix.texi:9941
21415#, no-wrap
21416msgid "@code{no-newline?} (default: @code{#f})"
21417msgstr ""
21418
21419#. type: table
21420#: doc/guix.texi:9944
21421msgid ""
39764ef8
JL
21422"When set to @code{#t}, do not print a newline before printing the @file{/etc/"
21423"issue} file."
b9fe8fd6
JL
21424msgstr ""
21425
21426#. type: item
21427#: doc/guix.texi:9946
21428#, no-wrap
21429msgid "@code{login-options} (default: @code{#f})"
21430msgstr ""
21431
21432#. type: table
21433#: doc/guix.texi:9951
21434msgid ""
21435"This option accepts a string containing options that are passed to the login "
21436"program. When used with the @var{login-program}, be aware that a malicious "
21437"user could try to enter a login name containing embedded options that could "
21438"be parsed by the login program."
21439msgstr ""
21440
21441#. type: item
21442#: doc/guix.texi:9952
21443#, no-wrap
21444msgid "@code{login-pause} (default: @code{#f})"
21445msgstr ""
21446
21447#. type: table
21448#: doc/guix.texi:9956
21449msgid ""
21450"When set to @code{#t}, wait for any key before showing the login prompt. "
21451"This can be used in conjunction with @var{auto-login} to save memory by "
21452"lazily spawning shells."
21453msgstr ""
21454
21455#. type: item
21456#: doc/guix.texi:9957
21457#, no-wrap
21458msgid "@code{chroot} (default: @code{#f})"
21459msgstr ""
21460
21461#. type: table
21462#: doc/guix.texi:9960
21463msgid ""
21464"Change root to the specified directory. This option accepts a directory "
21465"path as a string."
21466msgstr ""
21467
21468#. type: item
21469#: doc/guix.texi:9961
21470#, no-wrap
21471msgid "@code{hangup?} (default: @code{#f})"
21472msgstr ""
21473
21474#. type: table
21475#: doc/guix.texi:9964
21476msgid ""
21477"Use the Linux system call @code{vhangup} to do a virtual hangup of the "
21478"specified terminal."
21479msgstr ""
21480
21481#. type: item
21482#: doc/guix.texi:9965
21483#, no-wrap
21484msgid "@code{keep-baud?} (default: @code{#f})"
21485msgstr ""
21486
21487#. type: table
21488#: doc/guix.texi:9969
21489msgid ""
21490"When set to @code{#t}, try to keep the existing baud rate. The baud rates "
21491"from @var{baud-rate} are used when agetty receives a @key{BREAK} character."
21492msgstr ""
21493
21494#. type: item
21495#: doc/guix.texi:9970
21496#, no-wrap
21497msgid "@code{timeout} (default: @code{#f})"
21498msgstr ""
21499
21500#. type: table
21501#: doc/guix.texi:9973
21502msgid ""
21503"When set to an integer value, terminate if no user name could be read within "
21504"@var{timeout} seconds."
21505msgstr ""
21506
21507#. type: item
21508#: doc/guix.texi:9974
21509#, no-wrap
21510msgid "@code{detect-case?} (default: @code{#f})"
21511msgstr ""
21512
21513#. type: table
21514#: doc/guix.texi:9980
21515msgid ""
21516"When set to @code{#t}, turn on support for detecting an uppercase-only "
21517"terminal. This setting will detect a login name containing only uppercase "
39764ef8
JL
21518"letters as indicating an uppercase-only terminal and turn on some upper-to-"
21519"lower case conversions. Note that this will not support Unicode characters."
b9fe8fd6
JL
21520msgstr ""
21521
21522#. type: item
21523#: doc/guix.texi:9981
21524#, no-wrap
21525msgid "@code{wait-cr?} (default: @code{#f})"
21526msgstr ""
21527
21528#. type: table
21529#: doc/guix.texi:9986
21530msgid ""
21531"When set to @code{#t}, wait for the user or modem to send a carriage-return "
21532"or linefeed character before displaying @file{/etc/issue} or login prompt. "
21533"This is typically used with the @var{init-string} option."
21534msgstr ""
21535
21536#. type: item
21537#: doc/guix.texi:9987
21538#, no-wrap
21539msgid "@code{no-hints?} (default: @code{#f})"
21540msgstr ""
21541
21542#. type: table
21543#: doc/guix.texi:9990
39764ef8
JL
21544msgid ""
21545"When set to @code{#t}, do not print hints about Num, Caps, and Scroll locks."
b9fe8fd6
JL
21546msgstr ""
21547
21548#. type: item
21549#: doc/guix.texi:9991
21550#, no-wrap
21551msgid "@code{no-hostname?} (default: @code{#f})"
21552msgstr ""
21553
21554#. type: table
21555#: doc/guix.texi:9994
21556msgid ""
21557"By default, the hostname is printed. When this option is set to @code{#t}, "
21558"no hostname will be shown at all."
21559msgstr ""
21560
21561#. type: item
21562#: doc/guix.texi:9995
21563#, no-wrap
21564msgid "@code{long-hostname?} (default: @code{#f})"
21565msgstr ""
21566
21567#. type: table
21568#: doc/guix.texi:9999
21569msgid ""
21570"By default, the hostname is only printed until the first dot. When this "
21571"option is set to @code{#t}, the fully qualified hostname by "
21572"@code{gethostname} or @code{getaddrinfo} is shown."
21573msgstr ""
21574
21575#. type: item
21576#: doc/guix.texi:10000
21577#, no-wrap
21578msgid "@code{erase-characters} (default: @code{#f})"
21579msgstr ""
21580
21581#. type: table
21582#: doc/guix.texi:10003
21583msgid ""
21584"This option accepts a string of additional characters that should be "
21585"interpreted as backspace when the user types their login name."
21586msgstr ""
21587
21588#. type: item
21589#: doc/guix.texi:10004
21590#, no-wrap
21591msgid "@code{kill-characters} (default: @code{#f})"
21592msgstr ""
21593
21594#. type: table
21595#: doc/guix.texi:10008
21596msgid ""
21597"This option accepts a string that should be interpreted to mean \"ignore all "
21598"previous characters\" (also called a \"kill\" character) when the types "
21599"their login name."
21600msgstr ""
21601
21602#. type: item
21603#: doc/guix.texi:10009
21604#, no-wrap
21605msgid "@code{chdir} (default: @code{#f})"
21606msgstr ""
21607
21608#. type: table
21609#: doc/guix.texi:10012
21610msgid ""
21611"This option accepts, as a string, a directory path that will be changed to "
21612"before login."
21613msgstr ""
21614
21615#. type: item
21616#: doc/guix.texi:10013
21617#, no-wrap
21618msgid "@code{delay} (default: @code{#f})"
21619msgstr ""
21620
21621#. type: table
21622#: doc/guix.texi:10016
21623msgid ""
21624"This options accepts, as an integer, the number of seconds to sleep before "
21625"opening the tty and displaying the login prompt."
21626msgstr ""
21627
21628#. type: item
21629#: doc/guix.texi:10017
21630#, no-wrap
21631msgid "@code{nice} (default: @code{#f})"
21632msgstr ""
21633
21634#. type: table
21635#: doc/guix.texi:10020
21636msgid ""
21637"This option accepts, as an integer, the nice value with which to run the "
21638"@command{login} program."
21639msgstr ""
21640
21641#. type: item
21642#: doc/guix.texi:10021 doc/guix.texi:10221
21643#, no-wrap
21644msgid "@code{extra-options} (default: @code{'()})"
21645msgstr ""
21646
21647#. type: table
21648#: doc/guix.texi:10024
21649msgid ""
21650"This option provides an \"escape hatch\" for the user to provide arbitrary "
21651"command-line arguments to @command{agetty} as a list of strings."
21652msgstr ""
21653
21654#. type: deffn
21655#: doc/guix.texi:10028
21656#, no-wrap
21657msgid "{Scheme Procedure} kmscon-service-type @var{config}"
21658msgstr ""
21659
21660#. type: deffn
21661#: doc/guix.texi:10032
21662msgid ""
39764ef8
JL
21663"Return a service to run @uref{https://www.freedesktop.org/wiki/Software/"
21664"kmscon,kmscon} according to @var{config}, a @code{<kmscon-configuration>} "
21665"object, which specifies the tty to run, among other things."
b9fe8fd6
JL
21666msgstr ""
21667
21668#. type: deftp
21669#: doc/guix.texi:10034
21670#, no-wrap
21671msgid "{Data Type} kmscon-configuration"
21672msgstr ""
21673
21674#. type: deftp
21675#: doc/guix.texi:10037
21676msgid ""
21677"This is the data type representing the configuration of Kmscon, which "
21678"implements virtual console log-in."
21679msgstr ""
21680
21681#. type: code{#1}
21682#: doc/guix.texi:10040
21683#, no-wrap
21684msgid "virtual-terminal"
21685msgstr ""
21686
21687#. type: table
21688#: doc/guix.texi:10042
21689msgid "The name of the console this Kmscon runs on---e.g., @code{\"tty1\"}."
21690msgstr ""
21691
21692#. type: item
21693#: doc/guix.texi:10043
21694#, no-wrap
39764ef8 21695msgid "@code{login-program} (default: @code{#~(string-append #$shadow \"/bin/login\")})"
b9fe8fd6
JL
21696msgstr ""
21697
21698#. type: table
21699#: doc/guix.texi:10046
21700msgid ""
21701"A gexp denoting the name of the log-in program. The default log-in program "
21702"is @command{login} from the Shadow tool suite."
21703msgstr ""
21704
21705#. type: item
21706#: doc/guix.texi:10047
21707#, no-wrap
21708msgid "@code{login-arguments} (default: @code{'(\"-p\")})"
21709msgstr ""
21710
21711#. type: table
21712#: doc/guix.texi:10049
21713msgid "A list of arguments to pass to @command{login}."
21714msgstr ""
21715
21716#. type: item
21717#: doc/guix.texi:10050
21718#, no-wrap
21719msgid "@code{hardware-acceleration?} (default: #f)"
21720msgstr ""
21721
21722#. type: table
21723#: doc/guix.texi:10052
21724msgid "Whether to use hardware acceleration."
21725msgstr ""
21726
21727#. type: item
21728#: doc/guix.texi:10053
21729#, no-wrap
21730msgid "@code{kmscon} (default: @var{kmscon})"
21731msgstr ""
21732
21733#. type: table
21734#: doc/guix.texi:10055
21735msgid "The Kmscon package to use."
21736msgstr ""
21737
21738#. type: cindex
21739#: doc/guix.texi:10059
21740#, no-wrap
21741msgid "name service cache daemon"
21742msgstr ""
21743
21744#. type: cindex
21745#: doc/guix.texi:10060
21746#, no-wrap
21747msgid "nscd"
21748msgstr ""
21749
21750#. type: deffn
21751#: doc/guix.texi:10061
21752#, no-wrap
21753msgid "{Scheme Procedure} nscd-service [@var{config}] [#:glibc glibc] @"
21754msgstr ""
21755
21756#. type: deffn
21757#: doc/guix.texi:10066
21758msgid ""
21759"[#:name-services '()] Return a service that runs the libc name service cache "
21760"daemon (nscd) with the given @var{config}---an @code{<nscd-configuration>} "
21761"object. @xref{Name Service Switch}, for an example."
21762msgstr ""
21763
21764#. type: defvr
21765#: doc/guix.texi:10068
21766#, no-wrap
21767msgid "{Scheme Variable} %nscd-default-configuration"
21768msgstr ""
21769
21770#. type: defvr
21771#: doc/guix.texi:10072
21772msgid ""
21773"This is the default @code{<nscd-configuration>} value (see below) used by "
39764ef8
JL
21774"@code{nscd-service}. It uses the caches defined by @var{%nscd-default-"
21775"caches}; see below."
b9fe8fd6
JL
21776msgstr ""
21777
21778#. type: deftp
21779#: doc/guix.texi:10074
21780#, no-wrap
21781msgid "{Data Type} nscd-configuration"
21782msgstr ""
21783
21784#. type: deftp
21785#: doc/guix.texi:10077
21786msgid ""
21787"This is the data type representing the name service cache daemon (nscd) "
21788"configuration."
21789msgstr ""
21790
21791#. type: item
21792#: doc/guix.texi:10080
21793#, no-wrap
21794msgid "@code{name-services} (default: @code{'()})"
21795msgstr ""
21796
21797#. type: table
21798#: doc/guix.texi:10083
21799msgid ""
21800"List of packages denoting @dfn{name services} that must be visible to the "
21801"nscd---e.g., @code{(list @var{nss-mdns})}."
21802msgstr ""
21803
21804#. type: item
21805#: doc/guix.texi:10084
21806#, no-wrap
21807msgid "@code{glibc} (default: @var{glibc})"
21808msgstr ""
21809
21810#. type: table
21811#: doc/guix.texi:10087
21812msgid ""
21813"Package object denoting the GNU C Library providing the @command{nscd} "
21814"command."
21815msgstr ""
21816
21817#. type: item
21818#: doc/guix.texi:10088
21819#, no-wrap
21820msgid "@code{log-file} (default: @code{\"/var/log/nscd.log\"})"
21821msgstr ""
21822
21823#. type: table
21824#: doc/guix.texi:10091
21825msgid ""
21826"Name of the nscd log file. This is where debugging output goes when "
21827"@code{debug-level} is strictly positive."
21828msgstr ""
21829
21830#. type: item
21831#: doc/guix.texi:10092
21832#, no-wrap
21833msgid "@code{debug-level} (default: @code{0})"
21834msgstr ""
21835
21836#. type: table
21837#: doc/guix.texi:10095
21838msgid ""
21839"Integer denoting the debugging levels. Higher numbers mean that more "
21840"debugging output is logged."
21841msgstr ""
21842
21843#. type: item
21844#: doc/guix.texi:10096
21845#, no-wrap
21846msgid "@code{caches} (default: @var{%nscd-default-caches})"
21847msgstr ""
21848
21849#. type: table
21850#: doc/guix.texi:10099
39764ef8
JL
21851msgid ""
21852"List of @code{<nscd-cache>} objects denoting things to be cached; see below."
b9fe8fd6
JL
21853msgstr ""
21854
21855#. type: deftp
21856#: doc/guix.texi:10103
21857#, no-wrap
21858msgid "{Data Type} nscd-cache"
21859msgstr ""
21860
21861#. type: deftp
21862#: doc/guix.texi:10105
21863msgid "Data type representing a cache database of nscd and its parameters."
21864msgstr ""
21865
21866#. type: cindex
39764ef8 21867#: doc/guix.texi:10108 doc/guix.texi:12810
b9fe8fd6
JL
21868#, no-wrap
21869msgid "database"
21870msgstr ""
21871
21872#. type: table
21873#: doc/guix.texi:10113
21874msgid ""
21875"This is a symbol representing the name of the database to be cached. Valid "
21876"values are @code{passwd}, @code{group}, @code{hosts}, and @code{services}, "
21877"which designate the corresponding NSS database (@pxref{NSS Basics,,, libc, "
21878"The GNU C Library Reference Manual})."
21879msgstr ""
21880
21881#. type: code{#1}
21882#: doc/guix.texi:10114
21883#, no-wrap
21884msgid "positive-time-to-live"
21885msgstr ""
21886
21887#. type: itemx
21888#: doc/guix.texi:10115
21889#, no-wrap
21890msgid "@code{negative-time-to-live} (default: @code{20})"
21891msgstr ""
21892
21893#. type: table
21894#: doc/guix.texi:10118
21895msgid ""
21896"A number representing the number of seconds during which a positive or "
21897"negative lookup result remains in cache."
21898msgstr ""
21899
21900#. type: item
21901#: doc/guix.texi:10119
21902#, no-wrap
21903msgid "@code{check-files?} (default: @code{#t})"
21904msgstr ""
21905
21906#. type: table
21907#: doc/guix.texi:10122
39764ef8
JL
21908msgid ""
21909"Whether to check for updates of the files corresponding to @var{database}."
b9fe8fd6
JL
21910msgstr ""
21911
21912#. type: table
21913#: doc/guix.texi:10126
21914msgid ""
21915"For instance, when @var{database} is @code{hosts}, setting this flag "
21916"instructs nscd to check for updates in @file{/etc/hosts} and to take them "
21917"into account."
21918msgstr ""
21919
21920#. type: item
21921#: doc/guix.texi:10127
21922#, no-wrap
21923msgid "@code{persistent?} (default: @code{#t})"
21924msgstr ""
21925
21926#. type: table
21927#: doc/guix.texi:10129
21928msgid "Whether the cache should be stored persistently on disk."
21929msgstr ""
21930
21931#. type: item
21932#: doc/guix.texi:10130
21933#, no-wrap
21934msgid "@code{shared?} (default: @code{#t})"
21935msgstr ""
21936
21937#. type: table
21938#: doc/guix.texi:10132
21939msgid "Whether the cache should be shared among users."
21940msgstr ""
21941
21942#. type: item
21943#: doc/guix.texi:10133
21944#, no-wrap
21945msgid "@code{max-database-size} (default: 32@tie{}MiB)"
21946msgstr ""
21947
21948#. type: table
21949#: doc/guix.texi:10135
21950msgid "Maximum size in bytes of the database cache."
21951msgstr ""
21952
21953#. type: defvr
21954#: doc/guix.texi:10142
21955#, no-wrap
21956msgid "{Scheme Variable} %nscd-default-caches"
21957msgstr ""
21958
21959#. type: defvr
21960#: doc/guix.texi:10145
21961msgid ""
39764ef8
JL
21962"List of @code{<nscd-cache>} objects used by default by @code{nscd-"
21963"configuration} (see above)."
b9fe8fd6
JL
21964msgstr ""
21965
21966#. type: defvr
21967#: doc/guix.texi:10151
21968msgid ""
21969"It enables persistent and aggressive caching of service and host name "
21970"lookups. The latter provides better host name lookup performance, "
39764ef8
JL
21971"resilience in the face of unreliable name servers, and also better privacy---"
21972"often the result of host name lookups is in local cache, so external name "
21973"servers do not even need to be queried."
b9fe8fd6
JL
21974msgstr ""
21975
21976#. type: anchor{#1}
21977#: doc/guix.texi:10154
21978msgid "syslog-configuration-type"
21979msgstr ""
21980
21981#. type: cindex
21982#: doc/guix.texi:10154 doc/guix.texi:10170
21983#, no-wrap
21984msgid "syslog"
21985msgstr ""
21986
21987#. type: cindex
21988#: doc/guix.texi:10155 doc/guix.texi:10588
21989#, no-wrap
21990msgid "logging"
21991msgstr ""
21992
21993#. type: deftp
21994#: doc/guix.texi:10156
21995#, no-wrap
21996msgid "{Data Type} syslog-configuration"
21997msgstr ""
21998
21999#. type: deftp
22000#: doc/guix.texi:10158
22001msgid "This data type represents the configuration of the syslog daemon."
22002msgstr ""
22003
22004#. type: item
22005#: doc/guix.texi:10160
22006#, no-wrap
39764ef8 22007msgid "@code{syslogd} (default: @code{#~(string-append #$inetutils \"/libexec/syslogd\")})"
b9fe8fd6
JL
22008msgstr ""
22009
22010#. type: table
22011#: doc/guix.texi:10162
22012msgid "The syslog daemon to use."
22013msgstr ""
22014
22015#. type: item
22016#: doc/guix.texi:10163
22017#, no-wrap
22018msgid "@code{config-file} (default: @code{%default-syslog.conf})"
22019msgstr ""
22020
22021#. type: table
22022#: doc/guix.texi:10165
22023msgid "The syslog configuration file to use."
22024msgstr ""
22025
22026#. type: anchor{#1}
22027#: doc/guix.texi:10170
22028msgid "syslog-service"
22029msgstr ""
22030
22031#. type: deffn
22032#: doc/guix.texi:10171
22033#, no-wrap
22034msgid "{Scheme Procedure} syslog-service @var{config}"
22035msgstr ""
22036
22037#. type: deffn
22038#: doc/guix.texi:10173
22039msgid "Return a service that runs a syslog daemon according to @var{config}."
22040msgstr ""
22041
22042#. type: deffn
22043#: doc/guix.texi:10176
22044msgid ""
22045"@xref{syslogd invocation,,, inetutils, GNU Inetutils}, for more information "
22046"on the configuration file syntax."
22047msgstr ""
22048
22049#. type: anchor{#1}
22050#: doc/guix.texi:10179
22051msgid "guix-configuration-type"
22052msgstr ""
22053
22054#. type: deftp
22055#: doc/guix.texi:10179
22056#, no-wrap
22057msgid "{Data Type} guix-configuration"
22058msgstr ""
22059
22060#. type: deftp
22061#: doc/guix.texi:10182
22062msgid ""
22063"This data type represents the configuration of the Guix build daemon. "
22064"@xref{Invoking guix-daemon}, for more information."
22065msgstr ""
22066
22067#. type: item
22068#: doc/guix.texi:10184
22069#, no-wrap
22070msgid "@code{guix} (default: @var{guix})"
22071msgstr ""
22072
22073#. type: table
22074#: doc/guix.texi:10186 doc/guix.texi:10414
22075msgid "The Guix package to use."
22076msgstr ""
22077
22078#. type: item
22079#: doc/guix.texi:10187
22080#, no-wrap
22081msgid "@code{build-group} (default: @code{\"guixbuild\"})"
22082msgstr ""
22083
22084#. type: table
22085#: doc/guix.texi:10189
22086msgid "Name of the group for build user accounts."
22087msgstr ""
22088
22089#. type: item
22090#: doc/guix.texi:10190
22091#, no-wrap
22092msgid "@code{build-accounts} (default: @code{10})"
22093msgstr ""
22094
22095#. type: table
22096#: doc/guix.texi:10192
22097msgid "Number of build user accounts to create."
22098msgstr ""
22099
22100#. type: item
22101#: doc/guix.texi:10193
22102#, no-wrap
22103msgid "@code{authorize-key?} (default: @code{#t})"
22104msgstr ""
22105
22106#. type: table
22107#: doc/guix.texi:10198
22108msgid ""
39764ef8
JL
22109"Whether to authorize the substitute keys listed in @code{authorized-keys}---"
22110"by default that of @code{hydra.gnu.org} (@pxref{Substitutes})."
b9fe8fd6
JL
22111msgstr ""
22112
22113#. type: vindex
22114#: doc/guix.texi:10199
22115#, no-wrap
22116msgid "%default-authorized-guix-keys"
22117msgstr ""
22118
22119#. type: item
22120#: doc/guix.texi:10200
22121#, no-wrap
22122msgid "@code{authorized-keys} (default: @var{%default-authorized-guix-keys})"
22123msgstr ""
22124
22125#. type: table
22126#: doc/guix.texi:10204
22127msgid ""
39764ef8
JL
22128"The list of authorized key files for archive imports, as a list of string-"
22129"valued gexps (@pxref{Invoking guix archive}). By default, it contains that "
22130"of @code{hydra.gnu.org} (@pxref{Substitutes})."
b9fe8fd6
JL
22131msgstr ""
22132
22133#. type: item
22134#: doc/guix.texi:10205
22135#, no-wrap
22136msgid "@code{use-substitutes?} (default: @code{#t})"
22137msgstr ""
22138
22139#. type: table
22140#: doc/guix.texi:10207
22141msgid "Whether to use substitutes."
22142msgstr ""
22143
22144#. type: item
22145#: doc/guix.texi:10208
22146#, no-wrap
22147msgid "@code{substitute-urls} (default: @var{%default-substitute-urls})"
22148msgstr ""
22149
22150#. type: table
22151#: doc/guix.texi:10210
22152msgid "The list of URLs where to look for substitutes by default."
22153msgstr ""
22154
22155#. type: item
22156#: doc/guix.texi:10211
22157#, no-wrap
22158msgid "@code{max-silent-time} (default: @code{0})"
22159msgstr ""
22160
22161#. type: itemx
22162#: doc/guix.texi:10212
22163#, no-wrap
22164msgid "@code{timeout} (default: @code{0})"
22165msgstr ""
22166
22167#. type: table
22168#: doc/guix.texi:10216
22169msgid ""
22170"The number of seconds of silence and the number of seconds of activity, "
22171"respectively, after which a build process times out. A value of zero "
22172"disables the timeout."
22173msgstr ""
22174
22175#. type: item
22176#: doc/guix.texi:10217
22177#, no-wrap
22178msgid "@code{log-compression} (default: @code{'bzip2})"
22179msgstr ""
22180
22181#. type: table
22182#: doc/guix.texi:10220
22183msgid ""
22184"The type of compression used for build logs---one of @code{gzip}, "
22185"@code{bzip2}, or @code{none}."
22186msgstr ""
22187
22188#. type: table
22189#: doc/guix.texi:10223
22190msgid "List of extra command-line options for @command{guix-daemon}."
22191msgstr ""
22192
22193#. type: item
22194#: doc/guix.texi:10224
22195#, no-wrap
22196msgid "@code{log-file} (default: @code{\"/var/log/guix-daemon.log\"})"
22197msgstr ""
22198
22199#. type: table
22200#: doc/guix.texi:10227
22201msgid ""
22202"File where @command{guix-daemon}'s standard output and standard error are "
22203"written."
22204msgstr ""
22205
22206#. type: item
22207#: doc/guix.texi:10228
22208#, no-wrap
22209msgid "@code{http-proxy} (default: @code{#f})"
22210msgstr ""
22211
22212#. type: table
22213#: doc/guix.texi:10231
22214msgid ""
39764ef8 22215"The HTTP proxy used for downloading fixed-output derivations and substitutes."
b9fe8fd6
JL
22216msgstr ""
22217
22218#. type: item
22219#: doc/guix.texi:10232
22220#, no-wrap
22221msgid "@code{tmpdir} (default: @code{#f})"
22222msgstr ""
22223
22224#. type: table
22225#: doc/guix.texi:10234
22226msgid "A directory path where the @command{guix-daemon} will perform builds."
22227msgstr ""
22228
22229#. type: deffn
22230#: doc/guix.texi:10238
22231#, no-wrap
22232msgid "{Scheme Procedure} guix-service @var{config}"
22233msgstr ""
22234
22235#. type: deffn
22236#: doc/guix.texi:10241
39764ef8
JL
22237msgid ""
22238"Return a service that runs the Guix build daemon according to @var{config}."
b9fe8fd6
JL
22239msgstr ""
22240
22241#. type: deffn
22242#: doc/guix.texi:10243
22243#, no-wrap
22244msgid "{Scheme Procedure} udev-service [#:udev @var{eudev} #:rules @code{'()}]"
22245msgstr ""
22246
22247#. type: deffn
22248#: doc/guix.texi:10248
22249msgid ""
22250"Run @var{udev}, which populates the @file{/dev} directory dynamically. udev "
22251"rules can be provided as a list of files through the @var{rules} variable. "
22252"The procedures @var{udev-rule} and @var{file->udev-rule} from @code{(gnu "
22253"services base)} simplify the creation of such rule files."
22254msgstr ""
22255
22256#. type: deffn
22257#: doc/guix.texi:10249
22258#, no-wrap
22259msgid "{Scheme Procedure} udev-rule [@var{file-name} @var{contents}]"
22260msgstr ""
22261
22262#. type: deffn
22263#: doc/guix.texi:10252
22264msgid ""
22265"Return a udev-rule file named @var{file-name} containing the rules defined "
22266"by the @var{contents} literal."
22267msgstr ""
22268
22269#. type: deffn
22270#: doc/guix.texi:10256
22271msgid ""
22272"In the following example, a rule for a USB device is defined to be stored in "
22273"the file @file{90-usb-thing.rules}. The rule runs a script upon detecting a "
22274"USB device with a given product identifier."
22275msgstr ""
22276
22277#. type: example
22278#: doc/guix.texi:10264
22279#, no-wrap
22280msgid ""
22281"(define %example-udev-rule\n"
22282" (udev-rule\n"
22283" \"90-usb-thing.rules\"\n"
22284" (string-append \"ACTION==\\\"add\\\", SUBSYSTEM==\\\"usb\\\", \"\n"
22285" \"ATTR@{product@}==\\\"Example\\\", \"\n"
22286" \"RUN+=\\\"/path/to/script\\\"\")))\n"
22287msgstr ""
22288
22289#. type: deffn
22290#: doc/guix.texi:10268
39764ef8
JL
22291msgid ""
22292"Here we show how the default @var{udev-service} can be extended with it."
b9fe8fd6
JL
22293msgstr ""
22294
22295#. type: example
22296#: doc/guix.texi:10278
22297#, no-wrap
22298msgid ""
22299"(operating-system\n"
22300" ;; @dots{}\n"
22301" (services\n"
22302" (modify-services %desktop-services\n"
22303" (udev-service-type config =>\n"
22304" (udev-configuration (inherit config)\n"
22305" (rules (append (udev-configuration-rules config)\n"
22306" (list %example-udev-rule))))))))\n"
22307msgstr ""
22308
22309#. type: deffn
22310#: doc/guix.texi:10280
22311#, no-wrap
22312msgid "{Scheme Procedure} file->udev-rule [@var{file-name} @var{file}]"
22313msgstr ""
22314
22315#. type: deffn
22316#: doc/guix.texi:10283
22317msgid ""
22318"Return a udev file named @var{file-name} containing the rules defined within "
22319"@var{file}, a file-like object."
22320msgstr ""
22321
22322#. type: deffn
22323#: doc/guix.texi:10285
22324msgid "The following example showcases how we can use an existing rule file."
22325msgstr ""
22326
22327#. type: example
22328#: doc/guix.texi:10290
22329#, no-wrap
22330msgid ""
22331"(use-modules (guix download) ;for url-fetch\n"
22332" (guix packages) ;for origin\n"
22333" ;; @dots{})\n"
22334"\n"
22335msgstr ""
22336
22337#. type: example
22338#: doc/guix.texi:10301
22339#, no-wrap
22340msgid ""
22341"(define %android-udev-rules\n"
22342" (file->udev-rule\n"
22343" \"51-android-udev.rules\"\n"
22344" (let ((version \"20170910\"))\n"
22345" (origin\n"
22346" (method url-fetch)\n"
22347" (uri (string-append \"https://raw.githubusercontent.com/M0Rf30/\"\n"
39764ef8 22348" \"android-udev-rules/\" version \"/51-android.rules\"))\n"
b9fe8fd6 22349" (sha256\n"
39764ef8 22350" (base32 \"0lmmagpyb6xsq6zcr2w1cyx9qmjqmajkvrdbhjx32gqf1d9is003\"))))))\n"
b9fe8fd6
JL
22351msgstr ""
22352
22353#. type: deffn
22354#: doc/guix.texi:10310
22355msgid ""
22356"Additionally, Guix package definitions can be included in @var{rules} in "
22357"order to extend the udev rules with the definitions found under their "
39764ef8
JL
22358"@file{lib/udev/rules.d} sub-directory. In lieu of the previous @var{file-"
22359">udev-rule} example, we could have used the @var{android-udev-rules} package "
22360"which exists in Guix in the @code{(gnu packages android)} module."
b9fe8fd6
JL
22361msgstr ""
22362
22363#. type: deffn
22364#: doc/guix.texi:10319
22365msgid ""
22366"The following example shows how to use the @var{android-udev-rules} package "
22367"so that the Android tool @command{adb} can detect devices without root "
22368"privileges. It also details how to create the @code{adbusers} group, which "
22369"is required for the proper functioning of the rules defined within the "
22370"@var{android-udev-rules} package. To create such a group, we must define it "
22371"both as part of the @var{supplementary-groups} of our @var{user-account} "
39764ef8
JL
22372"declaration, as well as in the @var{groups} field of the @var{operating-"
22373"system} record."
b9fe8fd6
JL
22374msgstr ""
22375
22376#. type: example
22377#: doc/guix.texi:10324
22378#, no-wrap
22379msgid ""
22380"(use-modules (gnu packages android) ;for android-udev-rules\n"
22381" (gnu system shadow) ;for user-group\n"
22382" ;; @dots{})\n"
22383"\n"
22384msgstr ""
22385
22386#. type: example
22387#: doc/guix.texi:10333
22388#, no-wrap
22389msgid ""
22390"(operating-system\n"
22391" ;; @dots{}\n"
22392" (users (cons (user-acount\n"
22393" ;; @dots{}\n"
22394" (supplementary-groups\n"
22395" '(\"adbusers\" ;for adb\n"
22396" \"wheel\" \"netdev\" \"audio\" \"video\"))\n"
22397" ;; @dots{})))\n"
22398"\n"
22399msgstr ""
22400
22401#. type: example
22402#: doc/guix.texi:10336
22403#, no-wrap
22404msgid ""
22405" (groups (cons (user-group (system? #t) (name \"adbusers\"))\n"
22406" %base-groups))\n"
22407"\n"
22408msgstr ""
22409
22410#. type: example
22411#: doc/guix.texi:10338
22412#, no-wrap
22413msgid ""
22414" ;; @dots{}\n"
22415"\n"
22416msgstr ""
22417
22418#. type: example
22419#: doc/guix.texi:10345
22420#, no-wrap
22421msgid ""
22422" (services\n"
22423" (modify-services %desktop-services\n"
22424" (udev-service-type config =>\n"
22425" (udev-configuration (inherit config)\n"
22426" (rules (cons* android-udev-rules\n"
22427" (udev-configuration-rules config))))))))\n"
22428msgstr ""
22429
22430#. type: defvr
22431#: doc/guix.texi:10348
22432#, no-wrap
22433msgid "{Scheme Variable} urandom-seed-service-type"
22434msgstr ""
22435
22436#. type: defvr
22437#: doc/guix.texi:10353
22438msgid ""
22439"Save some entropy in @var{%random-seed-file} to seed @file{/dev/urandom} "
39764ef8
JL
22440"when rebooting. It also tries to seed @file{/dev/urandom} from @file{/dev/"
22441"hwrng} while booting, if @file{/dev/hwrng} exists and is readable."
b9fe8fd6
JL
22442msgstr ""
22443
22444#. type: defvr
22445#: doc/guix.texi:10355
22446#, no-wrap
22447msgid "{Scheme Variable} %random-seed-file"
22448msgstr ""
22449
22450#. type: defvr
22451#: doc/guix.texi:10359
22452msgid ""
22453"This is the name of the file where some random bytes are saved by "
22454"@var{urandom-seed-service} to seed @file{/dev/urandom} when rebooting. It "
22455"defaults to @file{/var/lib/random-seed}."
22456msgstr ""
22457
22458#. type: cindex
22459#: doc/guix.texi:10361
22460#, no-wrap
22461msgid "keymap"
22462msgstr ""
22463
22464#. type: cindex
22465#: doc/guix.texi:10362
22466#, no-wrap
22467msgid "keyboard"
22468msgstr ""
22469
22470#. type: deffn
22471#: doc/guix.texi:10363
22472#, no-wrap
22473msgid "{Scheme Procedure} console-keymap-service @var{files} ..."
22474msgstr ""
22475
22476#. type: deffn
22477#: doc/guix.texi:10368
22478msgid ""
22479"Return a service to load console keymaps from @var{files} using "
22480"@command{loadkeys} command. Most likely, you want to load some default "
22481"keymap, which can be done like this:"
22482msgstr ""
22483
22484#. type: example
22485#: doc/guix.texi:10371
22486#, no-wrap
22487msgid "(console-keymap-service \"dvorak\")\n"
22488msgstr ""
22489
22490#. type: deffn
22491#: doc/guix.texi:10375
22492msgid ""
22493"Or, for example, for a Swedish keyboard, you may need to combine the "
22494"following keymaps:"
22495msgstr ""
22496
22497#. type: example
22498#: doc/guix.texi:10377
22499#, no-wrap
22500msgid "(console-keymap-service \"se-lat6\" \"se-fi-lat6\")\n"
22501msgstr ""
22502
22503#. type: deffn
22504#: doc/guix.texi:10381
22505msgid ""
22506"Also you can specify a full file name (or file names) of your keymap(s). "
22507"See @code{man loadkeys} for details."
22508msgstr ""
22509
22510#. type: cindex
22511#: doc/guix.texi:10384
22512#, no-wrap
22513msgid "mouse"
22514msgstr ""
22515
22516#. type: cindex
22517#: doc/guix.texi:10385
22518#, no-wrap
22519msgid "gpm"
22520msgstr ""
22521
22522#. type: deffn
22523#: doc/guix.texi:10386
22524#, no-wrap
22525msgid "{Scheme Procedure} gpm-service [#:gpm @var{gpm}] @"
22526msgstr ""
22527
22528#. type: deffn
22529#: doc/guix.texi:10392
22530msgid ""
22531"[#:options] Run @var{gpm}, the general-purpose mouse daemon, with the given "
22532"command-line @var{options}. GPM allows users to use the mouse in the "
22533"console, notably to select, copy, and paste text. The default value of "
22534"@var{options} uses the @code{ps2} protocol, which works for both USB and "
22535"PS/2 mice."
22536msgstr ""
22537
22538#. type: deffn
22539#: doc/guix.texi:10394
22540msgid "This service is not part of @var{%base-services}."
22541msgstr ""
22542
22543#. type: anchor{#1}
22544#: doc/guix.texi:10397
22545msgid "guix-publish-service-type"
22546msgstr ""
22547
22548#. type: deffn
22549#: doc/guix.texi:10397
22550#, no-wrap
22551msgid "{Scheme Variable} guix-publish-service-type"
22552msgstr ""
22553
22554#. type: deffn
22555#: doc/guix.texi:10401
22556msgid ""
22557"This is the service type for @command{guix publish} (@pxref{Invoking guix "
22558"publish}). Its value must be a @code{guix-configuration} object, as "
22559"described below."
22560msgstr ""
22561
22562#. type: deffn
22563#: doc/guix.texi:10405
22564msgid ""
22565"This assumes that @file{/etc/guix} already contains a signing key pair as "
22566"created by @command{guix archive --generate-key} (@pxref{Invoking guix "
22567"archive}). If that is not the case, the service will fail to start."
22568msgstr ""
22569
22570#. type: deftp
22571#: doc/guix.texi:10407
22572#, no-wrap
22573msgid "{Data Type} guix-publish-configuration"
22574msgstr ""
22575
22576#. type: deftp
22577#: doc/guix.texi:10410
39764ef8
JL
22578msgid ""
22579"Data type representing the configuration of the @code{guix publish} service."
b9fe8fd6
JL
22580msgstr ""
22581
22582#. type: item
22583#: doc/guix.texi:10412
22584#, no-wrap
22585msgid "@code{guix} (default: @code{guix})"
22586msgstr ""
22587
22588#. type: item
22589#: doc/guix.texi:10415
22590#, no-wrap
22591msgid "@code{port} (default: @code{80})"
22592msgstr ""
22593
22594#. type: table
22595#: doc/guix.texi:10417
22596msgid "The TCP port to listen for connections."
22597msgstr ""
22598
22599#. type: item
22600#: doc/guix.texi:10418
22601#, no-wrap
22602msgid "@code{host} (default: @code{\"localhost\"})"
22603msgstr ""
22604
22605#. type: table
22606#: doc/guix.texi:10421
22607msgid ""
22608"The host (and thus, network interface) to listen to. Use @code{\"0.0.0.0\"} "
22609"to listen on all the network interfaces."
22610msgstr ""
22611
22612#. type: table
22613#: doc/guix.texi:10426
22614msgid ""
22615"The gzip compression level at which substitutes are compressed. Use "
22616"@code{0} to disable compression altogether, and @code{9} to get the best "
22617"compression ratio at the expense of increased CPU usage."
22618msgstr ""
22619
22620#. type: item
22621#: doc/guix.texi:10427
22622#, no-wrap
22623msgid "@code{nar-path} (default: @code{\"nar\"})"
22624msgstr ""
22625
22626#. type: table
22627#: doc/guix.texi:10430
22628msgid ""
22629"The URL path at which ``nars'' can be fetched. @xref{Invoking guix publish, "
22630"@code{--nar-path}}, for details."
22631msgstr ""
22632
22633#. type: item
22634#: doc/guix.texi:10431
22635#, no-wrap
22636msgid "@code{cache} (default: @code{#f})"
22637msgstr ""
22638
22639#. type: table
22640#: doc/guix.texi:10437
22641msgid ""
22642"When it is @code{#f}, disable caching and instead generate archives on "
39764ef8
JL
22643"demand. Otherwise, this should be the name of a directory---e.g., @code{\"/"
22644"var/cache/guix/publish\"}---where @command{guix publish} caches archives and "
22645"meta-data ready to be sent. @xref{Invoking guix publish, @option{--cache}}, "
22646"for more information on the tradeoffs involved."
b9fe8fd6
JL
22647msgstr ""
22648
22649#. type: item
22650#: doc/guix.texi:10438
22651#, no-wrap
22652msgid "@code{workers} (default: @code{#f})"
22653msgstr ""
22654
22655#. type: table
22656#: doc/guix.texi:10442
22657msgid ""
22658"When it is an integer, this is the number of worker threads used for "
22659"caching; when @code{#f}, the number of processors is used. @xref{Invoking "
22660"guix publish, @option{--workers}}, for more information."
22661msgstr ""
22662
22663#. type: item
22664#: doc/guix.texi:10443
22665#, no-wrap
22666msgid "@code{ttl} (default: @code{#f})"
22667msgstr ""
22668
22669#. type: table
22670#: doc/guix.texi:10447
22671msgid ""
22672"When it is an integer, this denotes the @dfn{time-to-live} in seconds of the "
22673"published archives. @xref{Invoking guix publish, @option{--ttl}}, for more "
22674"information."
22675msgstr ""
22676
22677#. type: anchor{#1}
22678#: doc/guix.texi:10451
22679msgid "rngd-service"
22680msgstr ""
22681
22682#. type: deffn
22683#: doc/guix.texi:10451
22684#, no-wrap
22685msgid "{Scheme Procedure} rngd-service [#:rng-tools @var{rng-tools}] @"
22686msgstr ""
22687
22688#. type: deffn
22689#: doc/guix.texi:10456
22690msgid ""
22691"[#:device \"/dev/hwrng\"] Return a service that runs the @command{rngd} "
22692"program from @var{rng-tools} to add @var{device} to the kernel's entropy "
22693"pool. The service will fail if @var{device} does not exist."
22694msgstr ""
22695
22696#. type: anchor{#1}
22697#: doc/guix.texi:10459
22698msgid "pam-limits-service"
22699msgstr ""
22700
22701#. type: cindex
22702#: doc/guix.texi:10459
22703#, no-wrap
22704msgid "session limits"
22705msgstr ""
22706
22707#. type: cindex
22708#: doc/guix.texi:10460
22709#, no-wrap
22710msgid "ulimit"
22711msgstr ""
22712
22713#. type: cindex
22714#: doc/guix.texi:10461
22715#, no-wrap
22716msgid "priority"
22717msgstr ""
22718
22719#. type: cindex
22720#: doc/guix.texi:10462
22721#, no-wrap
22722msgid "realtime"
22723msgstr ""
22724
22725#. type: cindex
22726#: doc/guix.texi:10463
22727#, no-wrap
22728msgid "jackd"
22729msgstr ""
22730
22731#. type: deffn
22732#: doc/guix.texi:10464
22733#, no-wrap
22734msgid "{Scheme Procedure} pam-limits-service [#:limits @code{'()}]"
22735msgstr ""
22736
22737#. type: deffn
22738#: doc/guix.texi:10471
22739msgid ""
39764ef8
JL
22740"Return a service that installs a configuration file for the @uref{http://"
22741"linux-pam.org/Linux-PAM-html/sag-pam_limits.html, @code{pam_limits} "
22742"module}. The procedure optionally takes a list of @code{pam-limits-entry} "
22743"values, which can be used to specify @code{ulimit} limits and nice priority "
22744"limits to user sessions."
b9fe8fd6
JL
22745msgstr ""
22746
22747#. type: deffn
22748#: doc/guix.texi:10474
22749msgid ""
22750"The following limits definition sets two hard and soft limits for all login "
22751"sessions of users in the @code{realtime} group:"
22752msgstr ""
22753
22754#. type: example
22755#: doc/guix.texi:10480
22756#, no-wrap
22757msgid ""
22758"(pam-limits-service\n"
22759" (list\n"
22760" (pam-limits-entry \"@@realtime\" 'both 'rtprio 99)\n"
22761" (pam-limits-entry \"@@realtime\" 'both 'memlock 'unlimited)))\n"
22762msgstr ""
22763
22764#. type: deffn
22765#: doc/guix.texi:10486
22766msgid ""
22767"The first entry increases the maximum realtime priority for non-privileged "
22768"processes; the second entry lifts any restriction of the maximum address "
22769"space that can be locked in memory. These settings are commonly used for "
22770"real-time audio systems."
22771msgstr ""
22772
22773#. type: cindex
22774#: doc/guix.texi:10491
22775#, no-wrap
22776msgid "cron"
22777msgstr ""
22778
22779#. type: cindex
22780#: doc/guix.texi:10492
22781#, no-wrap
22782msgid "mcron"
22783msgstr ""
22784
22785#. type: cindex
22786#: doc/guix.texi:10493
22787#, no-wrap
22788msgid "scheduling jobs"
22789msgstr ""
22790
22791#. type: Plain text
22792#: doc/guix.texi:10500
22793msgid ""
39764ef8
JL
22794"The @code{(gnu services mcron)} module provides an interface to GNU@tie{}"
22795"mcron, a daemon to run jobs at scheduled times (@pxref{Top,,, mcron, "
22796"GNU@tie{}mcron}). GNU@tie{}mcron is similar to the traditional Unix "
b9fe8fd6
JL
22797"@command{cron} daemon; the main difference is that it is implemented in "
22798"Guile Scheme, which provides a lot of flexibility when specifying the "
22799"scheduling of jobs and their actions."
22800msgstr ""
22801
22802#. type: Plain text
22803#: doc/guix.texi:10508
22804msgid ""
22805"The example below defines an operating system that runs the "
22806"@command{updatedb} (@pxref{Invoking updatedb,,, find, Finding Files}) and "
22807"the @command{guix gc} commands (@pxref{Invoking guix gc}) daily, as well as "
22808"the @command{mkid} command on behalf of an unprivileged user (@pxref{mkid "
22809"invocation,,, idutils, ID Database Utilities}). It uses gexps to introduce "
22810"job definitions that are passed to mcron (@pxref{G-Expressions})."
22811msgstr ""
22812
22813#. type: lisp
22814#: doc/guix.texi:10512
22815#, no-wrap
22816msgid ""
22817"(use-modules (guix) (gnu) (gnu services mcron))\n"
22818"(use-package-modules base idutils)\n"
22819"\n"
22820msgstr ""
22821
22822#. type: lisp
22823#: doc/guix.texi:10521
22824#, no-wrap
22825msgid ""
22826"(define updatedb-job\n"
22827" ;; Run 'updatedb' at 3AM every day. Here we write the\n"
22828" ;; job's action as a Scheme procedure.\n"
22829" #~(job '(next-hour '(3))\n"
22830" (lambda ()\n"
22831" (execl (string-append #$findutils \"/bin/updatedb\")\n"
22832" \"updatedb\"\n"
22833" \"--prunepaths=/tmp /var/tmp /gnu/store\"))))\n"
22834"\n"
22835msgstr ""
22836
22837#. type: lisp
22838#: doc/guix.texi:10527
22839#, no-wrap
22840msgid ""
22841"(define garbage-collector-job\n"
22842" ;; Collect garbage 5 minutes after midnight every day.\n"
22843" ;; The job's action is a shell command.\n"
22844" #~(job \"5 0 * * *\" ;Vixie cron syntax\n"
22845" \"guix gc -F 1G\"))\n"
22846"\n"
22847msgstr ""
22848
22849#. type: lisp
22850#: doc/guix.texi:10534
22851#, no-wrap
22852msgid ""
22853"(define idutils-job\n"
22854" ;; Update the index database as user \"charlie\" at 12:15PM\n"
22855" ;; and 19:15PM. This runs from the user's home directory.\n"
22856" #~(job '(next-minute-from (next-hour '(12 19)) '(15))\n"
22857" (string-append #$idutils \"/bin/mkid src\")\n"
22858" #:user \"charlie\"))\n"
22859"\n"
22860msgstr ""
22861
22862#. type: lisp
22863#: doc/guix.texi:10541
22864#, no-wrap
22865msgid ""
22866"(operating-system\n"
22867" ;; @dots{}\n"
22868" (services (cons (mcron-service (list garbage-collector-job\n"
22869" updatedb-job\n"
22870" idutils-job))\n"
22871" %base-services)))\n"
22872msgstr ""
22873
22874#. type: Plain text
22875#: doc/guix.texi:10546
22876msgid ""
22877"@xref{Guile Syntax, mcron job specifications,, mcron, GNU@tie{}mcron}, for "
22878"more information on mcron job specifications. Below is the reference of the "
22879"mcron service."
22880msgstr ""
22881
22882#. type: deffn
22883#: doc/guix.texi:10547
22884#, no-wrap
22885msgid "{Scheme Procedure} mcron-service @var{jobs} [#:mcron @var{mcron}]"
22886msgstr ""
22887
22888#. type: deffn
22889#: doc/guix.texi:10550
22890msgid ""
22891"Return an mcron service running @var{mcron} that schedules @var{jobs}, a "
22892"list of gexps denoting mcron job specifications."
22893msgstr ""
22894
22895#. type: deffn
22896#: doc/guix.texi:10552
22897msgid "This is a shorthand for:"
22898msgstr ""
22899
22900#. type: example
22901#: doc/guix.texi:10555
22902#, no-wrap
22903msgid ""
22904"(service mcron-service-type\n"
22905" (mcron-configuration (mcron mcron) (jobs jobs)))\n"
22906msgstr ""
22907
22908#. type: defvr
22909#: doc/guix.texi:10558
22910#, no-wrap
22911msgid "{Scheme Variable} mcron-service-type"
22912msgstr ""
22913
22914#. type: defvr
22915#: doc/guix.texi:10561
22916msgid ""
39764ef8
JL
22917"This is the type of the @code{mcron} service, whose value is an @code{mcron-"
22918"configuration} object."
b9fe8fd6
JL
22919msgstr ""
22920
22921#. type: defvr
22922#: doc/guix.texi:10566
22923msgid ""
22924"This service type can be the target of a service extension that provides it "
22925"additional job specifications (@pxref{Service Composition}). In other "
22926"words, it is possible to define services that provide additional mcron jobs "
22927"to run."
22928msgstr ""
22929
22930#. type: deftp
22931#: doc/guix.texi:10568
22932#, no-wrap
22933msgid "{Data Type} mcron-configuration"
22934msgstr ""
22935
22936#. type: deftp
22937#: doc/guix.texi:10570
22938msgid "Data type representing the configuration of mcron."
22939msgstr ""
22940
22941#. type: item
22942#: doc/guix.texi:10572
22943#, no-wrap
22944msgid "@code{mcron} (default: @var{mcron})"
22945msgstr ""
22946
22947#. type: table
22948#: doc/guix.texi:10574
22949msgid "The mcron package to use."
22950msgstr ""
22951
22952#. type: code{#1}
22953#: doc/guix.texi:10575 doc/guix.texi:10634
22954#, no-wrap
22955msgid "jobs"
22956msgstr ""
22957
22958#. type: table
22959#: doc/guix.texi:10579
22960msgid ""
22961"This is a list of gexps (@pxref{G-Expressions}), where each gexp corresponds "
22962"to an mcron job specification (@pxref{Syntax, mcron job specifications,, "
22963"mcron, GNU@tie{}mcron})."
22964msgstr ""
22965
22966#. type: cindex
22967#: doc/guix.texi:10586
22968#, no-wrap
22969msgid "rottlog"
22970msgstr ""
22971
22972#. type: cindex
22973#: doc/guix.texi:10587
22974#, no-wrap
22975msgid "log rotation"
22976msgstr ""
22977
22978#. type: Plain text
22979#: doc/guix.texi:10594
22980msgid ""
22981"Log files such as those found in @file{/var/log} tend to grow endlessly, so "
22982"it's a good idea to @dfn{rotate} them once in a while---i.e., archive their "
22983"contents in separate files, possibly compressed. The @code{(gnu services "
22984"admin)} module provides an interface to GNU@tie{}Rot[t]log, a log rotation "
22985"tool (@pxref{Top,,, rottlog, GNU Rot[t]log Manual})."
22986msgstr ""
22987
22988#. type: Plain text
22989#: doc/guix.texi:10597
22990msgid ""
22991"The example below defines an operating system that provides log rotation "
22992"with the default settings, for commonly encountered log files."
22993msgstr ""
22994
22995#. type: lisp
22996#: doc/guix.texi:10602
22997#, no-wrap
22998msgid ""
22999"(use-modules (guix) (gnu))\n"
23000"(use-service-modules admin mcron)\n"
23001"(use-package-modules base idutils)\n"
23002"\n"
23003msgstr ""
23004
23005#. type: lisp
23006#: doc/guix.texi:10607
23007#, no-wrap
23008msgid ""
23009"(operating-system\n"
23010" ;; @dots{}\n"
23011" (services (cons (service rottlog-service-type)\n"
23012" %base-services)))\n"
23013msgstr ""
23014
23015#. type: defvr
23016#: doc/guix.texi:10609
23017#, no-wrap
23018msgid "{Scheme Variable} rottlog-service-type"
23019msgstr ""
23020
23021#. type: defvr
23022#: doc/guix.texi:10612
23023msgid ""
39764ef8
JL
23024"This is the type of the Rottlog service, whose value is a @code{rottlog-"
23025"configuration} object."
b9fe8fd6
JL
23026msgstr ""
23027
23028#. type: defvr
23029#: doc/guix.texi:10615
23030msgid ""
23031"Other services can extend this one with new @code{log-rotation} objects (see "
23032"below), thereby augmenting the set of files to be rotated."
23033msgstr ""
23034
23035#. type: defvr
23036#: doc/guix.texi:10618
23037msgid ""
23038"This service type can define mcron jobs (@pxref{Scheduled Job Execution}) to "
23039"run the rottlog service."
23040msgstr ""
23041
23042#. type: deftp
23043#: doc/guix.texi:10620
23044#, no-wrap
23045msgid "{Data Type} rottlog-configuration"
23046msgstr ""
23047
23048#. type: deftp
23049#: doc/guix.texi:10622
23050msgid "Data type representing the configuration of rottlog."
23051msgstr ""
23052
23053#. type: item
23054#: doc/guix.texi:10624
23055#, no-wrap
23056msgid "@code{rottlog} (default: @code{rottlog})"
23057msgstr ""
23058
23059#. type: table
23060#: doc/guix.texi:10626
23061msgid "The Rottlog package to use."
23062msgstr ""
23063
23064#. type: item
23065#: doc/guix.texi:10627
23066#, no-wrap
23067msgid "@code{rc-file} (default: @code{(file-append rottlog \"/etc/rc\")})"
23068msgstr ""
23069
23070#. type: table
23071#: doc/guix.texi:10630
23072msgid ""
23073"The Rottlog configuration file to use (@pxref{Mandatory RC Variables,,, "
23074"rottlog, GNU Rot[t]log Manual})."
23075msgstr ""
23076
23077#. type: item
23078#: doc/guix.texi:10631
23079#, no-wrap
23080msgid "@code{rotations} (default: @code{%default-rotations})"
23081msgstr ""
23082
23083#. type: table
23084#: doc/guix.texi:10633
23085msgid "A list of @code{log-rotation} objects as defined below."
23086msgstr ""
23087
23088#. type: table
23089#: doc/guix.texi:10637
23090msgid ""
23091"This is a list of gexps where each gexp corresponds to an mcron job "
23092"specification (@pxref{Scheduled Job Execution})."
23093msgstr ""
23094
23095#. type: deftp
23096#: doc/guix.texi:10640
23097#, no-wrap
23098msgid "{Data Type} log-rotation"
23099msgstr ""
23100
23101#. type: deftp
23102#: doc/guix.texi:10642
23103msgid "Data type representing the rotation of a group of log files."
23104msgstr ""
23105
23106#. type: deftp
23107#: doc/guix.texi:10646
23108msgid ""
23109"Taking an example from the Rottlog manual (@pxref{Period Related File "
23110"Examples,,, rottlog, GNU Rot[t]log Manual}), a log rotation might be defined "
23111"like this:"
23112msgstr ""
23113
23114#. type: example
23115#: doc/guix.texi:10655
23116#, no-wrap
23117msgid ""
23118"(log-rotation\n"
23119" (frequency 'daily)\n"
23120" (files '(\"/var/log/apache/*\"))\n"
23121" (options '(\"storedir apache-archives\"\n"
23122" \"rotate 6\"\n"
23123" \"notifempty\"\n"
23124" \"nocompress\")))\n"
23125msgstr ""
23126
23127#. type: deftp
23128#: doc/guix.texi:10658
23129msgid "The list of fields is as follows:"
23130msgstr ""
23131
23132#. type: item
23133#: doc/guix.texi:10660
23134#, no-wrap
23135msgid "@code{frequency} (default: @code{'weekly})"
23136msgstr ""
23137
23138#. type: table
23139#: doc/guix.texi:10662
23140msgid "The log rotation frequency, a symbol."
23141msgstr ""
23142
23143#. type: code{#1}
23144#: doc/guix.texi:10663
23145#, no-wrap
23146msgid "files"
23147msgstr ""
23148
23149#. type: table
23150#: doc/guix.texi:10665
23151msgid "The list of files or file glob patterns to rotate."
23152msgstr ""
23153
23154#. type: item
23155#: doc/guix.texi:10666
23156#, no-wrap
23157msgid "@code{options} (default: @code{'()})"
23158msgstr ""
23159
23160#. type: table
23161#: doc/guix.texi:10669
23162msgid ""
23163"The list of rottlog options for this rotation (@pxref{Configuration "
23164"parameters,,, rottlog, GNU Rot[t]lg Manual})."
23165msgstr ""
23166
23167#. type: item
23168#: doc/guix.texi:10670
23169#, no-wrap
23170msgid "@code{post-rotate} (default: @code{#f})"
23171msgstr ""
23172
23173#. type: table
23174#: doc/guix.texi:10672
23175msgid "Either @code{#f} or a gexp to execute once the rotation has completed."
23176msgstr ""
23177
23178#. type: defvr
23179#: doc/guix.texi:10675
23180#, no-wrap
23181msgid "{Scheme Variable} %default-rotations"
23182msgstr ""
23183
23184#. type: defvr
23185#: doc/guix.texi:10678
23186msgid ""
23187"Specifies weekly rotation of @var{%rotated-files} and a couple of other "
23188"files."
23189msgstr ""
23190
23191#. type: defvr
23192#: doc/guix.texi:10680
23193#, no-wrap
23194msgid "{Scheme Variable} %rotated-files"
23195msgstr ""
23196
23197#. type: defvr
23198#: doc/guix.texi:10683
23199msgid ""
23200"The list of syslog-controlled files to be rotated. By default it is: "
23201"@code{'(\"/var/log/messages\" \"/var/log/secure\")}."
23202msgstr ""
23203
23204#. type: Plain text
23205#: doc/guix.texi:10690
23206msgid ""
23207"The @code{(gnu services networking)} module provides services to configure "
23208"the network interface."
23209msgstr ""
23210
23211#. type: cindex
23212#: doc/guix.texi:10691
23213#, no-wrap
23214msgid "DHCP, networking service"
23215msgstr ""
23216
23217#. type: deffn
23218#: doc/guix.texi:10692
23219#, no-wrap
23220msgid "{Scheme Procedure} dhcp-client-service [#:dhcp @var{isc-dhcp}]"
23221msgstr ""
23222
23223#. type: deffn
23224#: doc/guix.texi:10695
23225msgid ""
23226"Return a service that runs @var{dhcp}, a Dynamic Host Configuration Protocol "
23227"(DHCP) client, on all the non-loopback network interfaces."
23228msgstr ""
23229
39764ef8 23230#. type: deffn
b9fe8fd6
JL
23231#: doc/guix.texi:10697
23232#, no-wrap
39764ef8
JL
23233msgid "{Scheme Procedure} dhcpd-service-type"
23234msgstr ""
23235
23236#. type: deffn
23237#: doc/guix.texi:10701
23238msgid ""
23239"This type defines a service that runs a DHCP daemon. To create a service of "
23240"this type, you must supply a @code{<dhcpd-configuration>}. For example:"
23241msgstr ""
23242
23243#. type: example
23244#: doc/guix.texi:10707
23245#, no-wrap
23246msgid ""
23247"(service dhcpd-service-type\n"
23248" (dhcpd-configuration\n"
23249" (config-file (local-file \"my-dhcpd.conf\"))\n"
23250" (interfaces '(\"enp0s25\"))))\n"
23251msgstr ""
23252
23253#. type: deftp
23254#: doc/guix.texi:10710
23255#, no-wrap
23256msgid "{Data Type} dhcpd-configuration"
23257msgstr ""
23258
23259#. type: item
23260#: doc/guix.texi:10712
23261#, no-wrap
23262msgid "@code{package} (default: @code{isc-dhcp})"
23263msgstr ""
23264
23265#. type: table
23266#: doc/guix.texi:10717
23267msgid ""
23268"The package that provides the DHCP daemon. This package is expected to "
23269"provide the daemon at @file{sbin/dhcpd} relative to its output directory. "
23270"The default package is the @uref{http://www.isc.org/products/DHCP, ISC's "
23271"DHCP server}."
23272msgstr ""
23273
23274#. type: item
23275#: doc/guix.texi:10717 doc/guix.texi:14345
23276#, no-wrap
23277msgid "@code{config-file} (default: @code{#f})"
23278msgstr ""
23279
23280#. type: table
23281#: doc/guix.texi:10722
23282msgid ""
23283"The configuration file to use. This is required. It will be passed to "
23284"@code{dhcpd} via its @code{-cf} option. This may be any ``file-like'' "
23285"object (@pxref{G-Expressions, file-like objects}). See @code{man dhcpd."
23286"conf} for details on the configuration file syntax."
23287msgstr ""
23288
23289#. type: item
23290#: doc/guix.texi:10722
23291#, no-wrap
23292msgid "@code{version} (default: @code{\"4\"})"
23293msgstr ""
23294
23295#. type: table
23296#: doc/guix.texi:10727
23297msgid ""
23298"The DHCP version to use. The ISC DHCP server supports the values ``4'', "
23299"``6'', and ``4o6''. These correspond to the @code{dhcpd} program options "
23300"@code{-4}, @code{-6}, and @code{-4o6}. See @code{man dhcpd} for details."
23301msgstr ""
23302
23303#. type: item
23304#: doc/guix.texi:10727
23305#, no-wrap
23306msgid "@code{run-directory} (default: @code{\"/run/dhcpd\"})"
23307msgstr ""
23308
23309#. type: table
23310#: doc/guix.texi:10730
23311msgid ""
23312"The run directory to use. At service activation time, this directory will "
23313"be created if it does not exist."
23314msgstr ""
23315
23316#. type: item
23317#: doc/guix.texi:10730
23318#, no-wrap
23319msgid "@code{pid-file} (default: @code{\"/run/dhcpd/dhcpd.pid\"})"
23320msgstr ""
23321
23322#. type: table
23323#: doc/guix.texi:10733
23324msgid ""
23325"The PID file to use. This corresponds to the @code{-pf} option of "
23326"@code{dhcpd}. See @code{man dhcpd} for details."
23327msgstr ""
23328
23329#. type: item
23330#: doc/guix.texi:10733
23331#, no-wrap
23332msgid "@code{interfaces} (default: @code{'()})"
23333msgstr ""
23334
23335#. type: table
23336#: doc/guix.texi:10739
23337msgid ""
23338"The names of the network interfaces on which dhcpd should listen for "
23339"broadcasts. If this list is not empty, then its elements (which must be "
23340"strings) will be appended to the @code{dhcpd} invocation when starting the "
23341"daemon. It may not be necessary to explicitly specify any interfaces here; "
23342"see @code{man dhcpd} for details."
23343msgstr ""
23344
23345#. type: defvr
23346#: doc/guix.texi:10742
23347#, no-wrap
b9fe8fd6
JL
23348msgid "{Scheme Variable} static-networking-service-type"
23349msgstr ""
23350
23351#. type: defvr
39764ef8 23352#: doc/guix.texi:10745
b9fe8fd6
JL
23353msgid "This is the type for statically-configured network interfaces."
23354msgstr ""
23355
23356#. type: deffn
39764ef8 23357#: doc/guix.texi:10747
b9fe8fd6
JL
23358#, no-wrap
23359msgid "{Scheme Procedure} static-networking-service @var{interface} @var{ip} @"
23360msgstr ""
23361
23362#. type: deffn
39764ef8 23363#: doc/guix.texi:10755
b9fe8fd6
JL
23364msgid ""
23365"[#:netmask #f] [#:gateway #f] [#:name-servers @code{'()}] [#:requirement "
23366"@code{'(udev)}] Return a service that starts @var{interface} with address "
23367"@var{ip}. If @var{netmask} is true, use it as the network mask. If "
23368"@var{gateway} is true, it must be a string specifying the default network "
23369"gateway. @var{requirement} can be used to declare a dependency on another "
23370"service before configuring the interface."
23371msgstr ""
23372
23373#. type: deffn
39764ef8 23374#: doc/guix.texi:10760
b9fe8fd6
JL
23375msgid ""
23376"This procedure can be called several times, one for each network interface "
39764ef8
JL
23377"of interest. Behind the scenes what it does is extend @code{static-"
23378"networking-service-type} with additional network interfaces to handle."
b9fe8fd6
JL
23379msgstr ""
23380
23381#. type: cindex
39764ef8 23382#: doc/guix.texi:10762
b9fe8fd6
JL
23383#, no-wrap
23384msgid "wicd"
23385msgstr ""
23386
23387#. type: cindex
39764ef8 23388#: doc/guix.texi:10765
b9fe8fd6
JL
23389#, no-wrap
23390msgid "network management"
23391msgstr ""
23392
23393#. type: deffn
39764ef8 23394#: doc/guix.texi:10766
b9fe8fd6
JL
23395#, no-wrap
23396msgid "{Scheme Procedure} wicd-service [#:wicd @var{wicd}]"
23397msgstr ""
23398
23399#. type: deffn
39764ef8 23400#: doc/guix.texi:10769
b9fe8fd6
JL
23401msgid ""
23402"Return a service that runs @url{https://launchpad.net/wicd,Wicd}, a network "
23403"management daemon that aims to simplify wired and wireless networking."
23404msgstr ""
23405
23406#. type: deffn
39764ef8 23407#: doc/guix.texi:10774
b9fe8fd6
JL
23408msgid ""
23409"This service adds the @var{wicd} package to the global profile, providing "
23410"several commands to interact with the daemon and configure networking: "
39764ef8
JL
23411"@command{wicd-client}, a graphical user interface, and the @command{wicd-"
23412"cli} and @command{wicd-curses} user interfaces."
b9fe8fd6
JL
23413msgstr ""
23414
23415#. type: cindex
39764ef8 23416#: doc/guix.texi:10776
b9fe8fd6
JL
23417#, no-wrap
23418msgid "NetworkManager"
23419msgstr ""
23420
23421#. type: defvr
39764ef8 23422#: doc/guix.texi:10778
b9fe8fd6
JL
23423#, no-wrap
23424msgid "{Scheme Variable} network-manager-service-type"
23425msgstr ""
23426
23427#. type: defvr
39764ef8 23428#: doc/guix.texi:10783
b9fe8fd6 23429msgid ""
39764ef8
JL
23430"This is the service type for the @uref{https://wiki.gnome.org/Projects/"
23431"NetworkManager, NetworkManager} service. The value for this service type is "
23432"a @code{network-manager-configuration} record."
b9fe8fd6
JL
23433msgstr ""
23434
23435#. type: defvr
39764ef8
JL
23436#: doc/guix.texi:10786
23437msgid ""
23438"This service is part of @code{%desktop-services} (@pxref{Desktop Services})."
b9fe8fd6
JL
23439msgstr ""
23440
23441#. type: deftp
39764ef8 23442#: doc/guix.texi:10788
b9fe8fd6
JL
23443#, no-wrap
23444msgid "{Data Type} network-manager-configuration"
23445msgstr ""
23446
23447#. type: deftp
39764ef8 23448#: doc/guix.texi:10790
b9fe8fd6
JL
23449msgid "Data type representing the configuration of NetworkManager."
23450msgstr ""
23451
23452#. type: item
39764ef8 23453#: doc/guix.texi:10792
b9fe8fd6
JL
23454#, no-wrap
23455msgid "@code{network-manager} (default: @code{network-manager})"
23456msgstr ""
23457
23458#. type: table
39764ef8 23459#: doc/guix.texi:10794
b9fe8fd6
JL
23460msgid "The NetworkManager package to use."
23461msgstr ""
23462
23463#. type: item
39764ef8 23464#: doc/guix.texi:10795
b9fe8fd6
JL
23465#, no-wrap
23466msgid "@code{dns} (default: @code{\"default\"})"
23467msgstr ""
23468
23469#. type: table
39764ef8 23470#: doc/guix.texi:10798
b9fe8fd6
JL
23471msgid ""
23472"Processing mode for DNS, which affects how NetworkManager uses the "
23473"@code{resolv.conf} configuration file."
23474msgstr ""
23475
23476#. type: item
39764ef8 23477#: doc/guix.texi:10800
b9fe8fd6
JL
23478#, no-wrap
23479msgid "default"
23480msgstr ""
23481
23482#. type: table
39764ef8 23483#: doc/guix.texi:10803
b9fe8fd6
JL
23484msgid ""
23485"NetworkManager will update @code{resolv.conf} to reflect the nameservers "
23486"provided by currently active connections."
23487msgstr ""
23488
23489#. type: item
39764ef8 23490#: doc/guix.texi:10804
b9fe8fd6
JL
23491#, no-wrap
23492msgid "dnsmasq"
23493msgstr ""
23494
23495#. type: table
39764ef8 23496#: doc/guix.texi:10808
b9fe8fd6
JL
23497msgid ""
23498"NetworkManager will run @code{dnsmasq} as a local caching nameserver, using "
23499"a \"split DNS\" configuration if you are connected to a VPN, and then update "
23500"@code{resolv.conf} to point to the local nameserver."
23501msgstr ""
23502
23503#. type: item
39764ef8 23504#: doc/guix.texi:10809 doc/guix.texi:11795
b9fe8fd6
JL
23505#, no-wrap
23506msgid "none"
23507msgstr ""
23508
23509#. type: table
39764ef8 23510#: doc/guix.texi:10811
b9fe8fd6
JL
23511msgid "NetworkManager will not modify @code{resolv.conf}."
23512msgstr ""
23513
23514#. type: item
39764ef8 23515#: doc/guix.texi:10813
b9fe8fd6
JL
23516#, no-wrap
23517msgid "@code{vpn-plugins} (default: @code{'()})"
23518msgstr ""
23519
23520#. type: table
39764ef8 23521#: doc/guix.texi:10817
b9fe8fd6
JL
23522msgid ""
23523"This is the list of available plugins for virtual private networks (VPNs). "
23524"An example of this is the @code{network-manager-openvpn} package, which "
23525"allows NetworkManager to manage VPNs @i{via} OpenVPN."
23526msgstr ""
23527
23528#. type: cindex
39764ef8 23529#: doc/guix.texi:10821
b9fe8fd6
JL
23530#, no-wrap
23531msgid "Connman"
23532msgstr ""
23533
23534#. type: deffn
39764ef8 23535#: doc/guix.texi:10822
b9fe8fd6
JL
23536#, no-wrap
23537msgid "{Scheme Variable} connman-service-type"
23538msgstr ""
23539
23540#. type: deffn
39764ef8 23541#: doc/guix.texi:10825
b9fe8fd6
JL
23542msgid ""
23543"This is the service type to run @url{https://01.org/connman,Connman}, a "
23544"network connection manager."
23545msgstr ""
23546
23547#. type: deffn
39764ef8
JL
23548#: doc/guix.texi:10828
23549msgid ""
23550"Its value must be an @code{connman-configuration} record as in this example:"
b9fe8fd6
JL
23551msgstr ""
23552
23553#. type: example
39764ef8 23554#: doc/guix.texi:10833
b9fe8fd6
JL
23555#, no-wrap
23556msgid ""
23557"(service connman-service-type\n"
23558" (connman-configuration\n"
23559" (disable-vpn? #t)))\n"
23560msgstr ""
23561
23562#. type: deffn
39764ef8 23563#: doc/guix.texi:10836
b9fe8fd6
JL
23564msgid "See below for details about @code{connman-configuration}."
23565msgstr ""
23566
23567#. type: deftp
39764ef8 23568#: doc/guix.texi:10838
b9fe8fd6
JL
23569#, no-wrap
23570msgid "{Data Type} connman-configuration"
23571msgstr ""
23572
23573#. type: deftp
39764ef8 23574#: doc/guix.texi:10840
b9fe8fd6
JL
23575msgid "Data Type representing the configuration of connman."
23576msgstr ""
23577
23578#. type: item
39764ef8 23579#: doc/guix.texi:10842
b9fe8fd6
JL
23580#, no-wrap
23581msgid "@code{connman} (default: @var{connman})"
23582msgstr ""
23583
23584#. type: table
39764ef8 23585#: doc/guix.texi:10844
b9fe8fd6
JL
23586msgid "The connman package to use."
23587msgstr ""
23588
23589#. type: item
39764ef8 23590#: doc/guix.texi:10845
b9fe8fd6
JL
23591#, no-wrap
23592msgid "@code{disable-vpn?} (default: @code{#f})"
23593msgstr ""
23594
23595#. type: table
39764ef8 23596#: doc/guix.texi:10847
b9fe8fd6
JL
23597msgid "When true, enable connman's vpn plugin."
23598msgstr ""
23599
23600#. type: cindex
39764ef8 23601#: doc/guix.texi:10850
b9fe8fd6
JL
23602#, no-wrap
23603msgid "WPA Supplicant"
23604msgstr ""
23605
23606#. type: defvr
39764ef8 23607#: doc/guix.texi:10851
b9fe8fd6
JL
23608#, no-wrap
23609msgid "{Scheme Variable} wpa-supplicant-service-type"
23610msgstr ""
23611
23612#. type: defvr
39764ef8 23613#: doc/guix.texi:10856
b9fe8fd6
JL
23614msgid ""
23615"This is the service type to run @url{https://w1.fi/wpa_supplicant/,WPA "
23616"supplicant}, an authentication daemon required to authenticate against "
23617"encrypted WiFi or ethernet networks. It is configured to listen for "
23618"requests on D-Bus."
23619msgstr ""
23620
23621#. type: defvr
39764ef8 23622#: doc/guix.texi:10859
b9fe8fd6
JL
23623msgid ""
23624"The value of this service is the @code{wpa-supplicant} package to use. "
23625"Thus, it can be instantiated like this:"
23626msgstr ""
23627
23628#. type: lisp
39764ef8 23629#: doc/guix.texi:10862
b9fe8fd6
JL
23630#, no-wrap
23631msgid ""
23632"(use-modules (gnu services networking))\n"
23633"\n"
23634msgstr ""
23635
23636#. type: lisp
39764ef8 23637#: doc/guix.texi:10864
b9fe8fd6
JL
23638#, no-wrap
23639msgid "(service wpa-supplicant-service-type)\n"
23640msgstr ""
23641
23642#. type: cindex
39764ef8 23643#: doc/guix.texi:10867
b9fe8fd6
JL
23644#, no-wrap
23645msgid "NTP"
23646msgstr ""
23647
23648#. type: cindex
39764ef8 23649#: doc/guix.texi:10868
b9fe8fd6
JL
23650#, no-wrap
23651msgid "real time clock"
23652msgstr ""
23653
23654#. type: deffn
39764ef8 23655#: doc/guix.texi:10869
b9fe8fd6
JL
23656#, no-wrap
23657msgid "{Scheme Procedure} ntp-service [#:ntp @var{ntp}] @"
23658msgstr ""
23659
23660#. type: deffn
39764ef8 23661#: doc/guix.texi:10877
b9fe8fd6
JL
23662msgid ""
23663"[#:servers @var{%ntp-servers}] @ [#:allow-large-adjustment? #f] Return a "
23664"service that runs the daemon from @var{ntp}, the @uref{http://www.ntp.org, "
23665"Network Time Protocol package}. The daemon will keep the system clock "
23666"synchronized with that of @var{servers}. @var{allow-large-adjustment?} "
23667"determines whether @command{ntpd} is allowed to make an initial adjustment "
23668"of more than 1,000 seconds."
23669msgstr ""
23670
23671#. type: defvr
39764ef8 23672#: doc/guix.texi:10879
b9fe8fd6
JL
23673#, no-wrap
23674msgid "{Scheme Variable} %ntp-servers"
23675msgstr ""
23676
23677#. type: defvr
39764ef8 23678#: doc/guix.texi:10881
b9fe8fd6
JL
23679msgid "List of host names used as the default NTP servers."
23680msgstr ""
23681
23682#. type: cindex
39764ef8 23683#: doc/guix.texi:10883
b9fe8fd6
JL
23684#, no-wrap
23685msgid "OpenNTPD"
23686msgstr ""
23687
23688#. type: deffn
39764ef8 23689#: doc/guix.texi:10884
b9fe8fd6
JL
23690#, no-wrap
23691msgid "{Scheme Procedure} openntpd-service-type"
23692msgstr ""
23693
23694#. type: deffn
39764ef8 23695#: doc/guix.texi:10888
b9fe8fd6
JL
23696msgid ""
23697"Run the @command{ntpd}, the Network Time Protocol (NTP) daemon, as "
23698"implemented by @uref{http://www.openntpd.org, OpenNTPD}. The daemon will "
23699"keep the system clock synchronized with that of the given servers."
23700msgstr ""
23701
23702#. type: example
39764ef8 23703#: doc/guix.texi:10898
b9fe8fd6
JL
23704#, no-wrap
23705msgid ""
23706"(service\n"
23707" openntpd-service-type\n"
23708" (openntpd-configuration\n"
23709" (listen-on '(\"127.0.0.1\" \"::1\"))\n"
23710" (sensor '(\"udcf0 correction 70000\"))\n"
23711" (constraint-from '(\"www.gnu.org\"))\n"
23712" (constraints-from '(\"https://www.google.com/\"))\n"
23713" (allow-large-adjustment? #t)))\n"
23714"\n"
23715msgstr ""
23716
23717#. type: deftp
39764ef8 23718#: doc/guix.texi:10902
b9fe8fd6
JL
23719#, no-wrap
23720msgid "{Data Type} openntpd-configuration"
23721msgstr ""
23722
23723#. type: item
39764ef8 23724#: doc/guix.texi:10904
b9fe8fd6
JL
23725#, no-wrap
23726msgid "@code{openntpd} (default: @code{(file-append openntpd \"/sbin/ntpd\")})"
23727msgstr ""
23728
23729#. type: table
39764ef8 23730#: doc/guix.texi:10906
b9fe8fd6
JL
23731msgid "The openntpd executable to use."
23732msgstr ""
23733
23734#. type: item
39764ef8 23735#: doc/guix.texi:10906
b9fe8fd6
JL
23736#, no-wrap
23737msgid "@code{listen-on} (default: @code{'(\"127.0.0.1\" \"::1\")})"
23738msgstr ""
23739
23740#. type: table
39764ef8
JL
23741#: doc/guix.texi:10908
23742msgid ""
23743"A list of local IP addresses or hostnames the ntpd daemon should listen on."
b9fe8fd6
JL
23744msgstr ""
23745
23746#. type: item
39764ef8 23747#: doc/guix.texi:10908
b9fe8fd6
JL
23748#, no-wrap
23749msgid "@code{query-from} (default: @code{'()})"
23750msgstr ""
23751
23752#. type: table
39764ef8
JL
23753#: doc/guix.texi:10910
23754msgid ""
23755"A list of local IP address the ntpd daemon should use for outgoing queries."
b9fe8fd6
JL
23756msgstr ""
23757
23758#. type: item
39764ef8 23759#: doc/guix.texi:10910
b9fe8fd6
JL
23760#, no-wrap
23761msgid "@code{sensor} (default: @code{'()})"
23762msgstr ""
23763
23764#. type: table
39764ef8 23765#: doc/guix.texi:10915
b9fe8fd6
JL
23766msgid ""
23767"Specify a list of timedelta sensor devices ntpd should use. @code{ntpd} "
23768"will listen to each sensor that acutally exists and ignore non-existant "
23769"ones. See @uref{https://man.openbsd.org/ntpd.conf, upstream documentation} "
23770"for more information."
23771msgstr ""
23772
23773#. type: item
39764ef8 23774#: doc/guix.texi:10915
b9fe8fd6
JL
23775#, no-wrap
23776msgid "@code{server} (default: @var{%ntp-servers})"
23777msgstr ""
23778
23779#. type: table
39764ef8 23780#: doc/guix.texi:10917
b9fe8fd6 23781msgid ""
39764ef8 23782"Specify a list of IP addresses or hostnames of NTP servers to synchronize to."
b9fe8fd6
JL
23783msgstr ""
23784
23785#. type: item
39764ef8 23786#: doc/guix.texi:10917
b9fe8fd6
JL
23787#, no-wrap
23788msgid "@code{servers} (default: @code{'()})"
23789msgstr ""
23790
23791#. type: table
39764ef8
JL
23792#: doc/guix.texi:10919
23793msgid ""
23794"Specify a list of IP addresses or hostnames of NTP pools to synchronize to."
b9fe8fd6
JL
23795msgstr ""
23796
23797#. type: item
39764ef8 23798#: doc/guix.texi:10919
b9fe8fd6
JL
23799#, no-wrap
23800msgid "@code{constraint-from} (default: @code{'()})"
23801msgstr ""
23802
23803#. type: table
39764ef8 23804#: doc/guix.texi:10926
b9fe8fd6
JL
23805msgid ""
23806"@code{ntpd} can be configured to query the ‘Date’ from trusted HTTPS servers "
23807"via TLS. This time information is not used for precision but acts as an "
23808"authenticated constraint, thereby reducing the impact of unauthenticated NTP "
23809"man-in-the-middle attacks. Specify a list of URLs, IP addresses or "
23810"hostnames of HTTPS servers to provide a constraint."
23811msgstr ""
23812
23813#. type: item
39764ef8 23814#: doc/guix.texi:10926
b9fe8fd6
JL
23815#, no-wrap
23816msgid "@code{constraints-from} (default: @code{'()})"
23817msgstr ""
23818
23819#. type: table
39764ef8 23820#: doc/guix.texi:10930
b9fe8fd6
JL
23821msgid ""
23822"As with constraint from, specify a list of URLs, IP addresses or hostnames "
23823"of HTTPS servers to provide a constraint. Should the hostname resolve to "
23824"multiple IP addresses, @code{ntpd} will calculate a median constraint from "
23825"all of them."
23826msgstr ""
23827
23828#. type: item
39764ef8 23829#: doc/guix.texi:10930
b9fe8fd6
JL
23830#, no-wrap
23831msgid "@code{allow-large-adjustment?} (default: @code{#f})"
23832msgstr ""
23833
23834#. type: table
39764ef8 23835#: doc/guix.texi:10933
b9fe8fd6
JL
23836msgid ""
23837"Determines if @code{ntpd} is allowed to make an initial adjustment of more "
23838"than 180 seconds."
23839msgstr ""
23840
23841#. type: cindex
39764ef8 23842#: doc/guix.texi:10936
b9fe8fd6
JL
23843#, no-wrap
23844msgid "inetd"
23845msgstr ""
23846
23847#. type: deffn
39764ef8 23848#: doc/guix.texi:10937
b9fe8fd6
JL
23849#, no-wrap
23850msgid "{Scheme variable} inetd-service-type"
23851msgstr ""
23852
23853#. type: deffn
39764ef8 23854#: doc/guix.texi:10942
b9fe8fd6
JL
23855msgid ""
23856"This service runs the @command{inetd} (@pxref{inetd invocation,,, inetutils, "
23857"GNU Inetutils}) daemon. @command{inetd} listens for connections on internet "
23858"sockets, and lazily starts the specified server program when a connection is "
23859"made on one of these sockets."
23860msgstr ""
23861
23862#. type: deffn
39764ef8 23863#: doc/guix.texi:10948
b9fe8fd6
JL
23864msgid ""
23865"The value of this service is an @code{inetd-configuration} object. The "
39764ef8
JL
23866"following example configures the @command{inetd} daemon to provide the built-"
23867"in @command{echo} service, as well as an smtp service which forwards smtp "
23868"traffic over ssh to a server @code{smtp-server} behind a gateway "
b9fe8fd6
JL
23869"@code{hostname}:"
23870msgstr ""
23871
23872#. type: example
39764ef8 23873#: doc/guix.texi:10971
b9fe8fd6
JL
23874#, no-wrap
23875msgid ""
23876"(service\n"
23877" inetd-service-type\n"
23878" (inetd-configuration\n"
23879" (entries (list\n"
23880" (inetd-entry\n"
23881" (name \"echo\")\n"
23882" (socket-type 'stream)\n"
23883" (protocol \"tcp\")\n"
23884" (wait? #f)\n"
23885" (user \"root\"))\n"
23886" (inetd-entry\n"
23887" (node \"127.0.0.1\")\n"
23888" (name \"smtp\")\n"
23889" (socket-type 'stream)\n"
23890" (protocol \"tcp\")\n"
23891" (wait? #f)\n"
23892" (user \"root\")\n"
23893" (program (file-append openssh \"/bin/ssh\"))\n"
23894" (arguments\n"
23895" '(\"ssh\" \"-qT\" \"-i\" \"/path/to/ssh_key\"\n"
23896" \"-W\" \"smtp-server:25\" \"user@@hostname\")))))\n"
23897msgstr ""
23898
23899#. type: deffn
39764ef8 23900#: doc/guix.texi:10974
b9fe8fd6
JL
23901msgid "See below for more details about @code{inetd-configuration}."
23902msgstr ""
23903
23904#. type: deftp
39764ef8 23905#: doc/guix.texi:10976
b9fe8fd6
JL
23906#, no-wrap
23907msgid "{Data Type} inetd-configuration"
23908msgstr ""
23909
23910#. type: deftp
39764ef8 23911#: doc/guix.texi:10978
b9fe8fd6
JL
23912msgid "Data type representing the configuration of @command{inetd}."
23913msgstr ""
23914
23915#. type: item
39764ef8 23916#: doc/guix.texi:10980
b9fe8fd6
JL
23917#, no-wrap
23918msgid "@code{program} (default: @code{(file-append inetutils \"/libexec/inetd\")})"
23919msgstr ""
23920
23921#. type: table
39764ef8 23922#: doc/guix.texi:10982
b9fe8fd6
JL
23923msgid "The @command{inetd} executable to use."
23924msgstr ""
23925
23926#. type: item
39764ef8 23927#: doc/guix.texi:10983 doc/guix.texi:16240
b9fe8fd6
JL
23928#, no-wrap
23929msgid "@code{entries} (default: @code{'()})"
23930msgstr ""
23931
23932#. type: table
39764ef8 23933#: doc/guix.texi:10986
b9fe8fd6
JL
23934msgid ""
23935"A list of @command{inetd} service entries. Each entry should be created by "
23936"the @code{inetd-entry} constructor."
23937msgstr ""
23938
23939#. type: deftp
39764ef8 23940#: doc/guix.texi:10989
b9fe8fd6
JL
23941#, no-wrap
23942msgid "{Data Type} inetd-entry"
23943msgstr ""
23944
23945#. type: deftp
39764ef8 23946#: doc/guix.texi:10993
b9fe8fd6
JL
23947msgid ""
23948"Data type representing an entry in the @command{inetd} configuration. Each "
39764ef8 23949"entry corresponds to a socket where @command{inetd} will listen for requests."
b9fe8fd6
JL
23950msgstr ""
23951
23952#. type: item
39764ef8 23953#: doc/guix.texi:10995
b9fe8fd6
JL
23954#, no-wrap
23955msgid "@code{node} (default: @code{#f})"
23956msgstr ""
23957
23958#. type: table
39764ef8 23959#: doc/guix.texi:11000
b9fe8fd6
JL
23960msgid ""
23961"Optional string, a comma-separated list of local addresses @command{inetd} "
23962"should use when listening for this service. @xref{Configuration file,,, "
23963"inetutils, GNU Inetutils} for a complete description of all options."
23964msgstr ""
23965
23966#. type: table
39764ef8 23967#: doc/guix.texi:11002
b9fe8fd6
JL
23968msgid "A string, the name must correspond to an entry in @code{/etc/services}."
23969msgstr ""
23970
23971#. type: code{#1}
39764ef8 23972#: doc/guix.texi:11002
b9fe8fd6
JL
23973#, no-wrap
23974msgid "socket-type"
23975msgstr ""
23976
23977#. type: table
39764ef8 23978#: doc/guix.texi:11005
b9fe8fd6
JL
23979msgid ""
23980"One of @code{'stream}, @code{'dgram}, @code{'raw}, @code{'rdm} or "
23981"@code{'seqpacket}."
23982msgstr ""
23983
23984#. type: code{#1}
39764ef8 23985#: doc/guix.texi:11005
b9fe8fd6
JL
23986#, no-wrap
23987msgid "protocol"
23988msgstr ""
23989
23990#. type: table
39764ef8 23991#: doc/guix.texi:11007
b9fe8fd6
JL
23992msgid "A string, must correspond to an entry in @code{/etc/protocols}."
23993msgstr ""
23994
23995#. type: item
39764ef8 23996#: doc/guix.texi:11007
b9fe8fd6
JL
23997#, no-wrap
23998msgid "@code{wait?} (default: @code{#t})"
23999msgstr ""
24000
24001#. type: table
39764ef8 24002#: doc/guix.texi:11010
b9fe8fd6
JL
24003msgid ""
24004"Whether @command{inetd} should wait for the server to exit before listening "
24005"to new service requests."
24006msgstr ""
24007
24008#. type: table
39764ef8 24009#: doc/guix.texi:11015
b9fe8fd6
JL
24010msgid ""
24011"A string containing the user (and, optionally, group) name of the user as "
24012"whom the server should run. The group name can be specified in a suffix, "
24013"separated by a colon or period, i.e. @code{\"user\"}, @code{\"user:group\"} "
24014"or @code{\"user.group\"}."
24015msgstr ""
24016
24017#. type: item
39764ef8 24018#: doc/guix.texi:11015
b9fe8fd6
JL
24019#, no-wrap
24020msgid "@code{program} (default: @code{\"internal\"})"
24021msgstr ""
24022
24023#. type: table
39764ef8 24024#: doc/guix.texi:11018
b9fe8fd6
JL
24025msgid ""
24026"The server program which will serve the requests, or @code{\"internal\"} if "
24027"@command{inetd} should use a built-in service."
24028msgstr ""
24029
24030#. type: table
39764ef8 24031#: doc/guix.texi:11023
b9fe8fd6
JL
24032msgid ""
24033"A list strings or file-like objects, which are the server program's "
24034"arguments, starting with the zeroth argument, i.e. the name of the program "
24035"itself. For @command{inetd}'s internal services, this entry must be "
24036"@code{'()} or @code{'(\"internal\")}."
24037msgstr ""
24038
24039#. type: deftp
39764ef8 24040#: doc/guix.texi:11027
b9fe8fd6
JL
24041msgid ""
24042"@xref{Configuration file,,, inetutils, GNU Inetutils} for a more detailed "
24043"discussion of each configuration field."
24044msgstr ""
24045
24046#. type: cindex
39764ef8 24047#: doc/guix.texi:11029
b9fe8fd6
JL
24048#, no-wrap
24049msgid "Tor"
24050msgstr ""
24051
24052#. type: deffn
39764ef8 24053#: doc/guix.texi:11030
b9fe8fd6
JL
24054#, no-wrap
24055msgid "{Scheme Procedure} tor-service [@var{config-file}] [#:tor @var{tor}]"
24056msgstr ""
24057
24058#. type: deffn
39764ef8 24059#: doc/guix.texi:11033
b9fe8fd6
JL
24060msgid ""
24061"Return a service to run the @uref{https://torproject.org, Tor} anonymous "
24062"networking daemon."
24063msgstr ""
24064
24065#. type: deffn
39764ef8 24066#: doc/guix.texi:11038
b9fe8fd6
JL
24067msgid ""
24068"The daemon runs as the @code{tor} unprivileged user. It is passed "
24069"@var{config-file}, a file-like object, with an additional @code{User tor} "
24070"line and lines for hidden services added via @code{tor-hidden-service}. Run "
24071"@command{man tor} for information about the configuration file."
24072msgstr ""
24073
24074#. type: cindex
39764ef8 24075#: doc/guix.texi:11040
b9fe8fd6
JL
24076#, no-wrap
24077msgid "hidden service"
24078msgstr ""
24079
24080#. type: deffn
39764ef8 24081#: doc/guix.texi:11041
b9fe8fd6
JL
24082#, no-wrap
24083msgid "{Scheme Procedure} tor-hidden-service @var{name} @var{mapping}"
24084msgstr ""
24085
24086#. type: deffn
39764ef8 24087#: doc/guix.texi:11044
b9fe8fd6
JL
24088msgid ""
24089"Define a new Tor @dfn{hidden service} called @var{name} and implementing "
24090"@var{mapping}. @var{mapping} is a list of port/host tuples, such as:"
24091msgstr ""
24092
24093#. type: example
39764ef8 24094#: doc/guix.texi:11048
b9fe8fd6
JL
24095#, no-wrap
24096msgid ""
24097" '((22 \"127.0.0.1:22\")\n"
24098" (80 \"127.0.0.1:8080\"))\n"
24099msgstr ""
24100
24101#. type: deffn
39764ef8 24102#: doc/guix.texi:11052
b9fe8fd6
JL
24103msgid ""
24104"In this example, port 22 of the hidden service is mapped to local port 22, "
24105"and port 80 is mapped to local port 8080."
24106msgstr ""
24107
24108#. type: deffn
39764ef8 24109#: doc/guix.texi:11056
b9fe8fd6
JL
24110msgid ""
24111"This creates a @file{/var/lib/tor/hidden-services/@var{name}} directory, "
24112"where the @file{hostname} file contains the @code{.onion} host name for the "
24113"hidden service."
24114msgstr ""
24115
24116#. type: deffn
39764ef8 24117#: doc/guix.texi:11059
b9fe8fd6
JL
24118msgid ""
24119"See @uref{https://www.torproject.org/docs/tor-hidden-service.html.en, the "
24120"Tor project's documentation} for more information."
24121msgstr ""
24122
24123#. type: Plain text
39764ef8 24124#: doc/guix.texi:11062
b9fe8fd6
JL
24125msgid "The @code{(gnu services rsync)} module provides the following services:"
24126msgstr ""
24127
24128#. type: Plain text
39764ef8 24129#: doc/guix.texi:11066
b9fe8fd6
JL
24130msgid ""
24131"You might want an rsync daemon if you have files that you want available so "
24132"anyone (or just yourself) can download existing files or upload new files."
24133msgstr ""
24134
24135#. type: deffn
39764ef8 24136#: doc/guix.texi:11067
b9fe8fd6
JL
24137#, no-wrap
24138msgid "{Scheme Variable} rsync-service-type"
24139msgstr ""
24140
24141#. type: deffn
39764ef8 24142#: doc/guix.texi:11070
b9fe8fd6
JL
24143msgid ""
24144"This is the type for the @uref{https://rsync.samba.org, rsync} rsync daemon, "
24145"@command{rsync-configuration} record as in this example:"
24146msgstr ""
24147
24148#. type: example
39764ef8 24149#: doc/guix.texi:11073
b9fe8fd6
JL
24150#, no-wrap
24151msgid "(service rsync-service-type)\n"
24152msgstr ""
24153
24154#. type: deffn
39764ef8 24155#: doc/guix.texi:11076
b9fe8fd6
JL
24156msgid "See below for details about @code{rsync-configuration}."
24157msgstr ""
24158
24159#. type: deftp
39764ef8 24160#: doc/guix.texi:11078
b9fe8fd6
JL
24161#, no-wrap
24162msgid "{Data Type} rsync-configuration"
24163msgstr ""
24164
24165#. type: deftp
39764ef8 24166#: doc/guix.texi:11080
b9fe8fd6
JL
24167msgid "Data type representing the configuration for @code{rsync-service}."
24168msgstr ""
24169
24170#. type: item
39764ef8 24171#: doc/guix.texi:11082
b9fe8fd6
JL
24172#, no-wrap
24173msgid "@code{package} (default: @var{rsync})"
24174msgstr ""
24175
24176#. type: table
39764ef8 24177#: doc/guix.texi:11084
b9fe8fd6
JL
24178msgid "@code{rsync} package to use."
24179msgstr ""
24180
24181#. type: item
39764ef8 24182#: doc/guix.texi:11085
b9fe8fd6
JL
24183#, no-wrap
24184msgid "@code{port-number} (default: @code{873})"
24185msgstr ""
24186
24187#. type: table
39764ef8 24188#: doc/guix.texi:11089
b9fe8fd6
JL
24189msgid ""
24190"TCP port on which @command{rsync} listens for incoming connections. If port "
24191"is less than @code{1024} @command{rsync} needs to be started as the "
24192"@code{root} user and group."
24193msgstr ""
24194
24195#. type: item
39764ef8 24196#: doc/guix.texi:11090
b9fe8fd6
JL
24197#, no-wrap
24198msgid "@code{pid-file} (default: @code{\"/var/run/rsyncd/rsyncd.pid\"})"
24199msgstr ""
24200
24201#. type: table
39764ef8 24202#: doc/guix.texi:11092
b9fe8fd6
JL
24203msgid "Name of the file where @command{rsync} writes its PID."
24204msgstr ""
24205
24206#. type: item
39764ef8 24207#: doc/guix.texi:11093
b9fe8fd6
JL
24208#, no-wrap
24209msgid "@code{lock-file} (default: @code{\"/var/run/rsyncd/rsyncd.lock\"})"
24210msgstr ""
24211
24212#. type: table
39764ef8 24213#: doc/guix.texi:11095
b9fe8fd6
JL
24214msgid "Name of the file where @command{rsync} writes its lock file."
24215msgstr ""
24216
24217#. type: item
39764ef8 24218#: doc/guix.texi:11096
b9fe8fd6
JL
24219#, no-wrap
24220msgid "@code{log-file} (default: @code{\"/var/log/rsyncd.log\"})"
24221msgstr ""
24222
24223#. type: table
39764ef8 24224#: doc/guix.texi:11098
b9fe8fd6
JL
24225msgid "Name of the file where @command{rsync} writes its log file."
24226msgstr ""
24227
24228#. type: item
39764ef8 24229#: doc/guix.texi:11099
b9fe8fd6
JL
24230#, no-wrap
24231msgid "@code{use-chroot?} (default: @var{#t})"
24232msgstr ""
24233
24234#. type: table
39764ef8 24235#: doc/guix.texi:11101
b9fe8fd6
JL
24236msgid "Whether to use chroot for @command{rsync} shared directory."
24237msgstr ""
24238
24239#. type: item
39764ef8 24240#: doc/guix.texi:11102
b9fe8fd6
JL
24241#, no-wrap
24242msgid "@code{share-path} (default: @file{/srv/rsync})"
24243msgstr ""
24244
24245#. type: table
39764ef8 24246#: doc/guix.texi:11104
b9fe8fd6
JL
24247msgid "Location of the @command{rsync} shared directory."
24248msgstr ""
24249
24250#. type: item
39764ef8 24251#: doc/guix.texi:11105
b9fe8fd6
JL
24252#, no-wrap
24253msgid "@code{share-comment} (default: @code{\"Rsync share\"})"
24254msgstr ""
24255
24256#. type: table
39764ef8 24257#: doc/guix.texi:11107
b9fe8fd6
JL
24258msgid "Comment of the @command{rsync} shared directory."
24259msgstr ""
24260
24261#. type: item
39764ef8 24262#: doc/guix.texi:11108
b9fe8fd6
JL
24263#, no-wrap
24264msgid "@code{read-only?} (default: @var{#f})"
24265msgstr ""
24266
24267#. type: table
39764ef8 24268#: doc/guix.texi:11110
b9fe8fd6
JL
24269msgid "Read-write permissions to shared directory."
24270msgstr ""
24271
24272#. type: item
39764ef8 24273#: doc/guix.texi:11111
b9fe8fd6
JL
24274#, no-wrap
24275msgid "@code{timeout} (default: @code{300})"
24276msgstr ""
24277
24278#. type: table
39764ef8 24279#: doc/guix.texi:11113
b9fe8fd6
JL
24280msgid "I/O timeout in seconds."
24281msgstr ""
24282
24283#. type: item
39764ef8 24284#: doc/guix.texi:11114
b9fe8fd6
JL
24285#, no-wrap
24286msgid "@code{user} (default: @var{\"root\"})"
24287msgstr ""
24288
24289#. type: table
39764ef8 24290#: doc/guix.texi:11116
b9fe8fd6
JL
24291msgid "Owner of the @code{rsync} process."
24292msgstr ""
24293
24294#. type: item
39764ef8 24295#: doc/guix.texi:11117
b9fe8fd6
JL
24296#, no-wrap
24297msgid "@code{group} (default: @var{\"root\"})"
24298msgstr ""
24299
24300#. type: table
39764ef8 24301#: doc/guix.texi:11119
b9fe8fd6
JL
24302msgid "Group of the @code{rsync} process."
24303msgstr ""
24304
24305#. type: item
39764ef8 24306#: doc/guix.texi:11120
b9fe8fd6
JL
24307#, no-wrap
24308msgid "@code{uid} (default: @var{\"rsyncd\"})"
24309msgstr ""
24310
24311#. type: table
39764ef8 24312#: doc/guix.texi:11123
b9fe8fd6
JL
24313msgid ""
24314"User name or user ID that file transfers to and from that module should take "
24315"place as when the daemon was run as @code{root}."
24316msgstr ""
24317
24318#. type: item
39764ef8 24319#: doc/guix.texi:11124
b9fe8fd6
JL
24320#, no-wrap
24321msgid "@code{gid} (default: @var{\"rsyncd\"})"
24322msgstr ""
24323
24324#. type: table
39764ef8 24325#: doc/guix.texi:11126
b9fe8fd6
JL
24326msgid "Group name or group ID that will be used when accessing the module."
24327msgstr ""
24328
24329#. type: Plain text
39764ef8 24330#: doc/guix.texi:11131
b9fe8fd6
JL
24331msgid "Furthermore, @code{(gnu services ssh)} provides the following services."
24332msgstr ""
24333
24334#. type: cindex
39764ef8 24335#: doc/guix.texi:11131 doc/guix.texi:11170 doc/guix.texi:20791
b9fe8fd6
JL
24336#, no-wrap
24337msgid "SSH"
24338msgstr ""
24339
24340#. type: cindex
39764ef8 24341#: doc/guix.texi:11132 doc/guix.texi:11171 doc/guix.texi:20792
b9fe8fd6
JL
24342#, no-wrap
24343msgid "SSH server"
24344msgstr ""
24345
24346#. type: deffn
39764ef8 24347#: doc/guix.texi:11134
b9fe8fd6
JL
24348#, no-wrap
24349msgid "{Scheme Procedure} lsh-service [#:host-key \"/etc/lsh/host-key\"] @"
24350msgstr ""
24351
24352#. type: deffn
39764ef8 24353#: doc/guix.texi:11143
b9fe8fd6 24354msgid ""
39764ef8
JL
24355"[#:daemonic? #t] [#:interfaces '()] [#:port-number 22] @ [#:allow-empty-"
24356"passwords? #f] [#:root-login? #f] @ [#:syslog-output? #t] [#:x11-forwarding? "
24357"#t] @ [#:tcp/ip-forwarding? #t] [#:password-authentication? #t] @ [#:public-"
24358"key-authentication? #t] [#:initialize? #t] Run the @command{lshd} program "
24359"from @var{lsh} to listen on port @var{port-number}. @var{host-key} must "
24360"designate a file containing the host key, and readable only by root."
b9fe8fd6
JL
24361msgstr ""
24362
24363#. type: deffn
39764ef8 24364#: doc/guix.texi:11149
b9fe8fd6
JL
24365msgid ""
24366"When @var{daemonic?} is true, @command{lshd} will detach from the "
24367"controlling terminal and log its output to syslogd, unless one sets "
24368"@var{syslog-output?} to false. Obviously, it also makes lsh-service depend "
24369"on existence of syslogd service. When @var{pid-file?} is true, "
24370"@command{lshd} writes its PID to the file called @var{pid-file}."
24371msgstr ""
24372
24373#. type: deffn
39764ef8 24374#: doc/guix.texi:11153
b9fe8fd6
JL
24375msgid ""
24376"When @var{initialize?} is true, automatically create the seed and host key "
24377"upon service activation if they do not exist yet. This may take long and "
24378"require interaction."
24379msgstr ""
24380
24381#. type: deffn
39764ef8 24382#: doc/guix.texi:11158
b9fe8fd6
JL
24383msgid ""
24384"When @var{initialize?} is false, it is up to the user to initialize the "
24385"randomness generator (@pxref{lsh-make-seed,,, lsh, LSH Manual}), and to "
24386"create a key pair with the private key stored in file @var{host-key} "
24387"(@pxref{lshd basics,,, lsh, LSH Manual})."
24388msgstr ""
24389
24390#. type: deffn
39764ef8 24391#: doc/guix.texi:11162
b9fe8fd6
JL
24392msgid ""
24393"When @var{interfaces} is empty, lshd listens for connections on all the "
24394"network interfaces; otherwise, @var{interfaces} must be a list of host names "
24395"or addresses."
24396msgstr ""
24397
24398#. type: deffn
39764ef8 24399#: doc/guix.texi:11166
b9fe8fd6
JL
24400msgid ""
24401"@var{allow-empty-passwords?} specifies whether to accept log-ins with empty "
39764ef8 24402"passwords, and @var{root-login?} specifies whether to accept log-ins as root."
b9fe8fd6
JL
24403msgstr ""
24404
24405#. type: deffn
39764ef8 24406#: doc/guix.texi:11168
b9fe8fd6
JL
24407msgid "The other options should be self-descriptive."
24408msgstr ""
24409
24410#. type: deffn
39764ef8 24411#: doc/guix.texi:11172
b9fe8fd6
JL
24412#, no-wrap
24413msgid "{Scheme Variable} openssh-service-type"
24414msgstr ""
24415
24416#. type: deffn
39764ef8 24417#: doc/guix.texi:11176
b9fe8fd6
JL
24418msgid ""
24419"This is the type for the @uref{http://www.openssh.org, OpenSSH} secure shell "
24420"daemon, @command{sshd}. Its value must be an @code{openssh-configuration} "
24421"record as in this example:"
24422msgstr ""
24423
24424#. type: example
39764ef8 24425#: doc/guix.texi:11185
b9fe8fd6
JL
24426#, no-wrap
24427msgid ""
24428"(service openssh-service-type\n"
24429" (openssh-configuration\n"
24430" (x11-forwarding? #t)\n"
24431" (permit-root-login 'without-password)\n"
24432" (authorized-keys\n"
24433" `((\"alice\" ,(local-file \"alice.pub\"))\n"
24434" (\"bob\" ,(local-file \"bob.pub\"))))))\n"
24435msgstr ""
24436
24437#. type: deffn
39764ef8 24438#: doc/guix.texi:11188
b9fe8fd6
JL
24439msgid "See below for details about @code{openssh-configuration}."
24440msgstr ""
24441
24442#. type: deffn
39764ef8
JL
24443#: doc/guix.texi:11191
24444msgid ""
24445"This service can be extended with extra authorized keys, as in this example:"
b9fe8fd6
JL
24446msgstr ""
24447
24448#. type: example
39764ef8 24449#: doc/guix.texi:11196
b9fe8fd6
JL
24450#, no-wrap
24451msgid ""
24452"(service-extension openssh-service-type\n"
24453" (const `((\"charlie\"\n"
24454" ,(local-file \"charlie.pub\")))))\n"
24455msgstr ""
24456
24457#. type: deftp
39764ef8 24458#: doc/guix.texi:11199
b9fe8fd6
JL
24459#, no-wrap
24460msgid "{Data Type} openssh-configuration"
24461msgstr ""
24462
24463#. type: deftp
39764ef8 24464#: doc/guix.texi:11201
b9fe8fd6
JL
24465msgid "This is the configuration record for OpenSSH's @command{sshd}."
24466msgstr ""
24467
24468#. type: item
39764ef8 24469#: doc/guix.texi:11203
b9fe8fd6
JL
24470#, no-wrap
24471msgid "@code{pid-file} (default: @code{\"/var/run/sshd.pid\"})"
24472msgstr ""
24473
24474#. type: table
39764ef8 24475#: doc/guix.texi:11205
b9fe8fd6
JL
24476msgid "Name of the file where @command{sshd} writes its PID."
24477msgstr ""
24478
24479#. type: item
39764ef8 24480#: doc/guix.texi:11206
b9fe8fd6
JL
24481#, no-wrap
24482msgid "@code{port-number} (default: @code{22})"
24483msgstr ""
24484
24485#. type: table
39764ef8 24486#: doc/guix.texi:11208
b9fe8fd6
JL
24487msgid "TCP port on which @command{sshd} listens for incoming connections."
24488msgstr ""
24489
24490#. type: item
39764ef8 24491#: doc/guix.texi:11209
b9fe8fd6
JL
24492#, no-wrap
24493msgid "@code{permit-root-login} (default: @code{#f})"
24494msgstr ""
24495
24496#. type: table
39764ef8 24497#: doc/guix.texi:11214
b9fe8fd6
JL
24498msgid ""
24499"This field determines whether and when to allow logins as root. If "
24500"@code{#f}, root logins are disallowed; if @code{#t}, they are allowed. If "
24501"it's the symbol @code{'without-password}, then root logins are permitted but "
24502"not with password-based authentication."
24503msgstr ""
24504
24505#. type: item
39764ef8 24506#: doc/guix.texi:11215 doc/guix.texi:11348
b9fe8fd6
JL
24507#, no-wrap
24508msgid "@code{allow-empty-passwords?} (default: @code{#f})"
24509msgstr ""
24510
24511#. type: table
39764ef8
JL
24512#: doc/guix.texi:11218
24513msgid ""
24514"When true, users with empty passwords may log in. When false, they may not."
b9fe8fd6
JL
24515msgstr ""
24516
24517#. type: item
39764ef8 24518#: doc/guix.texi:11219 doc/guix.texi:11351
b9fe8fd6
JL
24519#, no-wrap
24520msgid "@code{password-authentication?} (default: @code{#t})"
24521msgstr ""
24522
24523#. type: table
39764ef8 24524#: doc/guix.texi:11222
b9fe8fd6
JL
24525msgid ""
24526"When true, users may log in with their password. When false, they have "
24527"other authentication methods."
24528msgstr ""
24529
24530#. type: item
39764ef8 24531#: doc/guix.texi:11223
b9fe8fd6
JL
24532#, no-wrap
24533msgid "@code{public-key-authentication?} (default: @code{#t})"
24534msgstr ""
24535
24536#. type: table
39764ef8 24537#: doc/guix.texi:11226
b9fe8fd6
JL
24538msgid ""
24539"When true, users may log in using public key authentication. When false, "
24540"users have to use other authentication method."
24541msgstr ""
24542
24543#. type: table
39764ef8 24544#: doc/guix.texi:11229
b9fe8fd6
JL
24545msgid ""
24546"Authorized public keys are stored in @file{~/.ssh/authorized_keys}. This is "
24547"used only by protocol version 2."
24548msgstr ""
24549
24550#. type: item
39764ef8 24551#: doc/guix.texi:11230
b9fe8fd6
JL
24552#, no-wrap
24553msgid "@code{x11-forwarding?} (default: @code{#f})"
24554msgstr ""
24555
24556#. type: table
39764ef8 24557#: doc/guix.texi:11234
b9fe8fd6
JL
24558msgid ""
24559"When true, forwarding of X11 graphical client connections is enabled---in "
24560"other words, @command{ssh} options @option{-X} and @option{-Y} will work."
24561msgstr ""
24562
24563#. type: item
39764ef8 24564#: doc/guix.texi:11235
b9fe8fd6
JL
24565#, no-wrap
24566msgid "@code{challenge-response-authentication?} (default: @code{#f})"
24567msgstr ""
24568
24569#. type: table
39764ef8 24570#: doc/guix.texi:11238
b9fe8fd6
JL
24571msgid ""
24572"Specifies whether challenge response authentication is allowed (e.g. via "
24573"PAM)."
24574msgstr ""
24575
24576#. type: item
39764ef8 24577#: doc/guix.texi:11239
b9fe8fd6
JL
24578#, no-wrap
24579msgid "@code{use-pam?} (default: @code{#t})"
24580msgstr ""
24581
24582#. type: table
39764ef8 24583#: doc/guix.texi:11245
b9fe8fd6
JL
24584msgid ""
24585"Enables the Pluggable Authentication Module interface. If set to @code{#t}, "
39764ef8
JL
24586"this will enable PAM authentication using @code{challenge-response-"
24587"authentication?} and @code{password-authentication?}, in addition to PAM "
24588"account and session module processing for all authentication types."
b9fe8fd6
JL
24589msgstr ""
24590
24591#. type: table
39764ef8 24592#: doc/guix.texi:11250
b9fe8fd6
JL
24593msgid ""
24594"Because PAM challenge response authentication usually serves an equivalent "
39764ef8
JL
24595"role to password authentication, you should disable either @code{challenge-"
24596"response-authentication?} or @code{password-authentication?}."
b9fe8fd6
JL
24597msgstr ""
24598
24599#. type: item
39764ef8 24600#: doc/guix.texi:11251
b9fe8fd6
JL
24601#, no-wrap
24602msgid "@code{print-last-log?} (default: @code{#t})"
24603msgstr ""
24604
24605#. type: table
39764ef8 24606#: doc/guix.texi:11254
b9fe8fd6
JL
24607msgid ""
24608"Specifies whether @command{sshd} should print the date and time of the last "
24609"user login when a user logs in interactively."
24610msgstr ""
24611
24612#. type: item
39764ef8 24613#: doc/guix.texi:11255
b9fe8fd6
JL
24614#, no-wrap
24615msgid "@code{subsystems} (default: @code{'((\"sftp\" \"internal-sftp\"))})"
24616msgstr ""
24617
24618#. type: table
39764ef8 24619#: doc/guix.texi:11257
b9fe8fd6
JL
24620msgid "Configures external subsystems (e.g. file transfer daemon)."
24621msgstr ""
24622
24623#. type: table
39764ef8 24624#: doc/guix.texi:11261
b9fe8fd6
JL
24625msgid ""
24626"This is a list of two-element lists, each of which containing the subsystem "
24627"name and a command (with optional arguments) to execute upon subsystem "
24628"request."
24629msgstr ""
24630
24631#. type: table
39764ef8 24632#: doc/guix.texi:11264
b9fe8fd6
JL
24633msgid ""
24634"The command @command{internal-sftp} implements an in-process SFTP server. "
24635"Alternately, one can specify the @command{sftp-server} command:"
24636msgstr ""
24637
24638#. type: example
39764ef8 24639#: doc/guix.texi:11269
b9fe8fd6
JL
24640#, no-wrap
24641msgid ""
24642"(service openssh-service-type\n"
24643" (openssh-configuration\n"
24644" (subsystems\n"
39764ef8 24645" `((\"sftp\" ,(file-append openssh \"/libexec/sftp-server\"))))))\n"
b9fe8fd6
JL
24646msgstr ""
24647
24648#. type: item
39764ef8 24649#: doc/guix.texi:11271
b9fe8fd6
JL
24650#, no-wrap
24651msgid "@code{accepted-environment} (default: @code{'()})"
24652msgstr ""
24653
24654#. type: table
39764ef8 24655#: doc/guix.texi:11273
b9fe8fd6
JL
24656msgid "List of strings describing which environment variables may be exported."
24657msgstr ""
24658
24659#. type: table
39764ef8 24660#: doc/guix.texi:11276
b9fe8fd6
JL
24661msgid ""
24662"Each string gets on its own line. See the @code{AcceptEnv} option in "
24663"@code{man sshd_config}."
24664msgstr ""
24665
24666#. type: table
39764ef8 24667#: doc/guix.texi:11281
b9fe8fd6
JL
24668msgid ""
24669"This example allows ssh-clients to export the @code{COLORTERM} variable. It "
24670"is set by terminal emulators, which support colors. You can use it in your "
24671"shell's ressource file to enable colors for the prompt and commands if this "
24672"variable is set."
24673msgstr ""
24674
24675#. type: example
39764ef8 24676#: doc/guix.texi:11286
b9fe8fd6
JL
24677#, no-wrap
24678msgid ""
24679"(service openssh-service-type\n"
24680" (openssh-configuration\n"
24681" (accepted-environment '(\"COLORTERM\"))))\n"
24682msgstr ""
24683
24684#. type: item
39764ef8 24685#: doc/guix.texi:11288
b9fe8fd6
JL
24686#, no-wrap
24687msgid "@code{authorized-keys} (default: @code{'()})"
24688msgstr ""
24689
24690#. type: cindex
39764ef8 24691#: doc/guix.texi:11289
b9fe8fd6
JL
24692#, no-wrap
24693msgid "authorized keys, SSH"
24694msgstr ""
24695
24696#. type: cindex
39764ef8 24697#: doc/guix.texi:11290
b9fe8fd6
JL
24698#, no-wrap
24699msgid "SSH authorized keys"
24700msgstr ""
24701
24702#. type: table
39764ef8 24703#: doc/guix.texi:11294
b9fe8fd6
JL
24704msgid ""
24705"This is the list of authorized keys. Each element of the list is a user "
24706"name followed by one or more file-like objects that represent SSH public "
24707"keys. For example:"
24708msgstr ""
24709
24710#. type: example
39764ef8 24711#: doc/guix.texi:11301
b9fe8fd6
JL
24712#, no-wrap
24713msgid ""
24714"(openssh-configuration\n"
24715" (authorized-keys\n"
24716" `((\"rekado\" ,(local-file \"rekado.pub\"))\n"
24717" (\"chris\" ,(local-file \"chris.pub\"))\n"
39764ef8 24718" (\"root\" ,(local-file \"rekado.pub\") ,(local-file \"chris.pub\")))))\n"
b9fe8fd6
JL
24719msgstr ""
24720
24721#. type: table
39764ef8 24722#: doc/guix.texi:11306
b9fe8fd6
JL
24723msgid ""
24724"registers the specified public keys for user accounts @code{rekado}, "
24725"@code{chris}, and @code{root}."
24726msgstr ""
24727
24728#. type: table
39764ef8 24729#: doc/guix.texi:11309
b9fe8fd6 24730msgid ""
39764ef8 24731"Additional authorized keys can be specified @i{via} @code{service-extension}."
b9fe8fd6
JL
24732msgstr ""
24733
24734#. type: table
39764ef8 24735#: doc/guix.texi:11312
b9fe8fd6 24736msgid ""
39764ef8
JL
24737"Note that this does @emph{not} interfere with the use of @file{~/.ssh/"
24738"authorized_keys}."
b9fe8fd6
JL
24739msgstr ""
24740
24741#. type: deffn
39764ef8 24742#: doc/guix.texi:11315
b9fe8fd6
JL
24743#, no-wrap
24744msgid "{Scheme Procedure} dropbear-service [@var{config}]"
24745msgstr ""
24746
24747#. type: deffn
39764ef8 24748#: doc/guix.texi:11319
b9fe8fd6
JL
24749msgid ""
24750"Run the @uref{https://matt.ucc.asn.au/dropbear/dropbear.html,Dropbear SSH "
24751"daemon} with the given @var{config}, a @code{<dropbear-configuration>} "
24752"object."
24753msgstr ""
24754
24755#. type: deffn
39764ef8 24756#: doc/guix.texi:11322
b9fe8fd6
JL
24757msgid ""
24758"For example, to specify a Dropbear service listening on port 1234, add this "
24759"call to the operating system's @code{services} field:"
24760msgstr ""
24761
24762#. type: example
39764ef8 24763#: doc/guix.texi:11326
b9fe8fd6
JL
24764#, no-wrap
24765msgid ""
24766"(dropbear-service (dropbear-configuration\n"
24767" (port-number 1234)))\n"
24768msgstr ""
24769
24770#. type: deftp
39764ef8 24771#: doc/guix.texi:11329
b9fe8fd6
JL
24772#, no-wrap
24773msgid "{Data Type} dropbear-configuration"
24774msgstr ""
24775
24776#. type: deftp
39764ef8 24777#: doc/guix.texi:11331
b9fe8fd6
JL
24778msgid "This data type represents the configuration of a Dropbear SSH daemon."
24779msgstr ""
24780
24781#. type: item
39764ef8 24782#: doc/guix.texi:11333
b9fe8fd6
JL
24783#, no-wrap
24784msgid "@code{dropbear} (default: @var{dropbear})"
24785msgstr ""
24786
24787#. type: table
39764ef8 24788#: doc/guix.texi:11335
b9fe8fd6
JL
24789msgid "The Dropbear package to use."
24790msgstr ""
24791
24792#. type: item
39764ef8 24793#: doc/guix.texi:11336
b9fe8fd6
JL
24794#, no-wrap
24795msgid "@code{port-number} (default: 22)"
24796msgstr ""
24797
24798#. type: table
39764ef8 24799#: doc/guix.texi:11338
b9fe8fd6
JL
24800msgid "The TCP port where the daemon waits for incoming connections."
24801msgstr ""
24802
24803#. type: item
39764ef8 24804#: doc/guix.texi:11339
b9fe8fd6
JL
24805#, no-wrap
24806msgid "@code{syslog-output?} (default: @code{#t})"
24807msgstr ""
24808
24809#. type: table
39764ef8 24810#: doc/guix.texi:11341
b9fe8fd6
JL
24811msgid "Whether to enable syslog output."
24812msgstr ""
24813
24814#. type: item
39764ef8 24815#: doc/guix.texi:11342
b9fe8fd6
JL
24816#, no-wrap
24817msgid "@code{pid-file} (default: @code{\"/var/run/dropbear.pid\"})"
24818msgstr ""
24819
24820#. type: table
39764ef8 24821#: doc/guix.texi:11344
b9fe8fd6
JL
24822msgid "File name of the daemon's PID file."
24823msgstr ""
24824
24825#. type: item
39764ef8 24826#: doc/guix.texi:11345
b9fe8fd6
JL
24827#, no-wrap
24828msgid "@code{root-login?} (default: @code{#f})"
24829msgstr ""
24830
24831#. type: table
39764ef8 24832#: doc/guix.texi:11347
b9fe8fd6
JL
24833msgid "Whether to allow @code{root} logins."
24834msgstr ""
24835
24836#. type: table
39764ef8 24837#: doc/guix.texi:11350
b9fe8fd6
JL
24838msgid "Whether to allow empty passwords."
24839msgstr ""
24840
24841#. type: table
39764ef8 24842#: doc/guix.texi:11353
b9fe8fd6
JL
24843msgid "Whether to enable password-based authentication."
24844msgstr ""
24845
24846#. type: defvr
39764ef8 24847#: doc/guix.texi:11356
b9fe8fd6
JL
24848#, no-wrap
24849msgid "{Scheme Variable} %facebook-host-aliases"
24850msgstr ""
24851
24852#. type: defvr
39764ef8 24853#: doc/guix.texi:11362
b9fe8fd6
JL
24854msgid ""
24855"This variable contains a string for use in @file{/etc/hosts} (@pxref{Host "
24856"Names,,, libc, The GNU C Library Reference Manual}). Each line contains a "
24857"entry that maps a known server name of the Facebook on-line service---e.g., "
24858"@code{www.facebook.com}---to the local host---@code{127.0.0.1} or its IPv6 "
24859"equivalent, @code{::1}."
24860msgstr ""
24861
24862#. type: defvr
39764ef8 24863#: doc/guix.texi:11366
b9fe8fd6
JL
24864msgid ""
24865"This variable is typically used in the @code{hosts-file} field of an "
24866"@code{operating-system} declaration (@pxref{operating-system Reference, "
24867"@file{/etc/hosts}}):"
24868msgstr ""
24869
24870#. type: example
39764ef8 24871#: doc/guix.texi:11369
b9fe8fd6
JL
24872#, no-wrap
24873msgid ""
24874"(use-modules (gnu) (guix))\n"
24875"\n"
24876msgstr ""
24877
24878#. type: example
39764ef8 24879#: doc/guix.texi:11379
b9fe8fd6
JL
24880#, no-wrap
24881msgid ""
24882"(operating-system\n"
24883" (host-name \"mymachine\")\n"
24884" ;; ...\n"
24885" (hosts-file\n"
24886" ;; Create a /etc/hosts file with aliases for \"localhost\"\n"
24887" ;; and \"mymachine\", as well as for Facebook servers.\n"
24888" (plain-file \"hosts\"\n"
24889" (string-append (local-host-aliases host-name)\n"
24890" %facebook-host-aliases))))\n"
24891msgstr ""
24892
24893#. type: defvr
39764ef8 24894#: doc/guix.texi:11383
b9fe8fd6
JL
24895msgid ""
24896"This mechanism can prevent programs running locally, such as Web browsers, "
24897"from accessing Facebook."
24898msgstr ""
24899
24900#. type: Plain text
39764ef8 24901#: doc/guix.texi:11386
b9fe8fd6
JL
24902msgid "The @code{(gnu services avahi)} provides the following definition."
24903msgstr ""
24904
24905#. type: deffn
39764ef8 24906#: doc/guix.texi:11387
b9fe8fd6
JL
24907#, no-wrap
24908msgid "{Scheme Procedure} avahi-service [#:avahi @var{avahi}] @"
24909msgstr ""
24910
24911#. type: deffn
39764ef8 24912#: doc/guix.texi:11399
b9fe8fd6
JL
24913msgid ""
24914"[#:host-name #f] [#:publish? #t] [#:ipv4? #t] @ [#:ipv6? #t] [#:wide-area? "
24915"#f] @ [#:domains-to-browse '()] [#:debug? #f] Return a service that runs "
24916"@command{avahi-daemon}, a system-wide mDNS/DNS-SD responder that allows for "
24917"service discovery and \"zero-configuration\" host name lookups (see "
24918"@uref{http://avahi.org/}), and extends the name service cache daemon (nscd) "
39764ef8
JL
24919"so that it can resolve @code{.local} host names using @uref{http://0pointer."
24920"de/lennart/projects/nss-mdns/, nss-mdns}. Additionally, add the @var{avahi} "
24921"package to the system profile so that commands such as @command{avahi-"
24922"browse} are directly usable."
b9fe8fd6
JL
24923msgstr ""
24924
24925#. type: deffn
39764ef8 24926#: doc/guix.texi:11402
b9fe8fd6
JL
24927msgid ""
24928"If @var{host-name} is different from @code{#f}, use that as the host name to "
24929"publish for this machine; otherwise, use the machine's actual host name."
24930msgstr ""
24931
24932#. type: deffn
39764ef8 24933#: doc/guix.texi:11406
b9fe8fd6
JL
24934msgid ""
24935"When @var{publish?} is true, publishing of host names and services is "
24936"allowed; in particular, avahi-daemon will publish the machine's host name "
24937"and IP address via mDNS on the local network."
24938msgstr ""
24939
24940#. type: deffn
39764ef8 24941#: doc/guix.texi:11408
b9fe8fd6
JL
24942msgid "When @var{wide-area?} is true, DNS-SD over unicast DNS is enabled."
24943msgstr ""
24944
24945#. type: deffn
39764ef8 24946#: doc/guix.texi:11411
b9fe8fd6 24947msgid ""
39764ef8
JL
24948"Boolean values @var{ipv4?} and @var{ipv6?} determine whether to use IPv4/"
24949"IPv6 sockets."
b9fe8fd6
JL
24950msgstr ""
24951
24952#. type: deffn
39764ef8 24953#: doc/guix.texi:11413
b9fe8fd6
JL
24954#, no-wrap
24955msgid "{Scheme Variable} openvswitch-service-type"
24956msgstr ""
24957
24958#. type: deffn
39764ef8 24959#: doc/guix.texi:11417
b9fe8fd6
JL
24960msgid ""
24961"This is the type of the @uref{http://www.openvswitch.org, Open vSwitch} "
24962"service, whose value should be an @code{openvswitch-configuration} object."
24963msgstr ""
24964
24965#. type: deftp
39764ef8 24966#: doc/guix.texi:11419
b9fe8fd6
JL
24967#, no-wrap
24968msgid "{Data Type} openvswitch-configuration"
24969msgstr ""
24970
24971#. type: deftp
39764ef8 24972#: doc/guix.texi:11423
b9fe8fd6
JL
24973msgid ""
24974"Data type representing the configuration of Open vSwitch, a multilayer "
24975"virtual switch which is designed to enable massive network automation "
24976"through programmatic extension."
24977msgstr ""
24978
24979#. type: item
39764ef8 24980#: doc/guix.texi:11425
b9fe8fd6
JL
24981#, no-wrap
24982msgid "@code{package} (default: @var{openvswitch})"
24983msgstr ""
24984
24985#. type: table
39764ef8 24986#: doc/guix.texi:11427
b9fe8fd6
JL
24987msgid "Package object of the Open vSwitch."
24988msgstr ""
24989
24990#. type: cindex
39764ef8 24991#: doc/guix.texi:11434
b9fe8fd6
JL
24992#, no-wrap
24993msgid "X11"
24994msgstr ""
24995
24996#. type: cindex
39764ef8 24997#: doc/guix.texi:11435
b9fe8fd6
JL
24998#, no-wrap
24999msgid "X Window System"
25000msgstr ""
25001
25002#. type: cindex
39764ef8 25003#: doc/guix.texi:11436 doc/guix.texi:11613
b9fe8fd6
JL
25004#, no-wrap
25005msgid "login manager"
25006msgstr ""
25007
25008#. type: Plain text
39764ef8 25009#: doc/guix.texi:11441
b9fe8fd6
JL
25010msgid ""
25011"Support for the X Window graphical display system---specifically Xorg---is "
25012"provided by the @code{(gnu services xorg)} module. Note that there is no "
25013"@code{xorg-service} procedure. Instead, the X server is started by the "
25014"@dfn{login manager}, by default SLiM."
25015msgstr ""
25016
25017#. type: cindex
39764ef8 25018#: doc/guix.texi:11442
b9fe8fd6
JL
25019#, no-wrap
25020msgid "window manager"
25021msgstr ""
25022
25023#. type: Plain text
39764ef8 25024#: doc/guix.texi:11447
b9fe8fd6
JL
25025msgid ""
25026"To use X11, you must install at least one @dfn{window manager}---for example "
25027"the @code{windowmaker} or @code{openbox} packages---preferably by adding it "
25028"to the @code{packages} field of your operating system definition "
25029"(@pxref{operating-system Reference, system-wide packages})."
25030msgstr ""
25031
25032#. type: defvr
39764ef8 25033#: doc/guix.texi:11448
b9fe8fd6
JL
25034#, no-wrap
25035msgid "{Scheme Variable} slim-service-type"
25036msgstr ""
25037
25038#. type: defvr
39764ef8 25039#: doc/guix.texi:11450
b9fe8fd6
JL
25040msgid "This is the type for the SLiM graphical login manager for X11."
25041msgstr ""
25042
25043#. type: cindex
39764ef8 25044#: doc/guix.texi:11451
b9fe8fd6
JL
25045#, no-wrap
25046msgid "session types (X11)"
25047msgstr ""
25048
25049#. type: cindex
39764ef8 25050#: doc/guix.texi:11452
b9fe8fd6
JL
25051#, no-wrap
25052msgid "X11 session types"
25053msgstr ""
25054
25055#. type: defvr
39764ef8 25056#: doc/guix.texi:11459
b9fe8fd6
JL
25057msgid ""
25058"SLiM looks for @dfn{session types} described by the @file{.desktop} files in "
25059"@file{/run/current-system/profile/share/xsessions} and allows users to "
25060"choose a session from the log-in screen using @kbd{F1}. Packages such as "
25061"@code{xfce}, @code{sawfish}, and @code{ratpoison} provide @file{.desktop} "
25062"files; adding them to the system-wide set of packages automatically makes "
25063"them available at the log-in screen."
25064msgstr ""
25065
25066#. type: defvr
39764ef8 25067#: doc/guix.texi:11463
b9fe8fd6 25068msgid ""
39764ef8
JL
25069"In addition, @file{~/.xsession} files are honored. When available, @file{~/."
25070"xsession} must be an executable that starts a window manager and/or other X "
25071"clients."
b9fe8fd6
JL
25072msgstr ""
25073
25074#. type: deftp
39764ef8 25075#: doc/guix.texi:11465
b9fe8fd6
JL
25076#, no-wrap
25077msgid "{Data Type} slim-configuration"
25078msgstr ""
25079
25080#. type: deftp
39764ef8 25081#: doc/guix.texi:11467
b9fe8fd6
JL
25082msgid "Data type representing the configuration of @code{slim-service-type}."
25083msgstr ""
25084
25085#. type: table
39764ef8 25086#: doc/guix.texi:11471
b9fe8fd6
JL
25087msgid "Whether to allow logins with empty passwords."
25088msgstr ""
25089
25090#. type: item
39764ef8 25091#: doc/guix.texi:11472
b9fe8fd6
JL
25092#, no-wrap
25093msgid "@code{auto-login?} (default: @code{#f})"
25094msgstr ""
25095
25096#. type: itemx
39764ef8 25097#: doc/guix.texi:11473
b9fe8fd6
JL
25098#, no-wrap
25099msgid "@code{default-user} (default: @code{\"\"})"
25100msgstr ""
25101
25102#. type: table
39764ef8 25103#: doc/guix.texi:11475
b9fe8fd6
JL
25104msgid "When @code{auto-login?} is false, SLiM presents a log-in screen."
25105msgstr ""
25106
25107#. type: table
39764ef8 25108#: doc/guix.texi:11478
b9fe8fd6 25109msgid ""
39764ef8
JL
25110"When @code{auto-login?} is true, SLiM logs in directly as @code{default-"
25111"user}."
b9fe8fd6
JL
25112msgstr ""
25113
25114#. type: item
39764ef8 25115#: doc/guix.texi:11479
b9fe8fd6
JL
25116#, no-wrap
25117msgid "@code{theme} (default: @code{%default-slim-theme})"
25118msgstr ""
25119
25120#. type: itemx
39764ef8 25121#: doc/guix.texi:11480
b9fe8fd6
JL
25122#, no-wrap
25123msgid "@code{theme-name} (default: @code{%default-slim-theme-name})"
25124msgstr ""
25125
25126#. type: table
39764ef8 25127#: doc/guix.texi:11482
b9fe8fd6
JL
25128msgid "The graphical theme to use and its name."
25129msgstr ""
25130
25131#. type: item
39764ef8 25132#: doc/guix.texi:11483
b9fe8fd6
JL
25133#, no-wrap
25134msgid "@code{auto-login-session} (default: @code{#f})"
25135msgstr ""
25136
25137#. type: table
39764ef8 25138#: doc/guix.texi:11486
b9fe8fd6
JL
25139msgid ""
25140"If true, this must be the name of the executable to start as the default "
25141"session---e.g., @code{(file-append windowmaker \"/bin/windowmaker\")}."
25142msgstr ""
25143
25144#. type: table
39764ef8 25145#: doc/guix.texi:11490
b9fe8fd6
JL
25146msgid ""
25147"If false, a session described by one of the available @file{.desktop} files "
25148"in @code{/run/current-system/profile} and @code{~/.guix-profile} will be "
25149"used."
25150msgstr ""
25151
25152#. type: quotation
39764ef8 25153#: doc/guix.texi:11495
b9fe8fd6
JL
25154msgid ""
25155"You must install at least one window manager in the system profile or in "
25156"your user profile. Failing to do that, if @code{auto-login-session} is "
25157"false, you will be unable to log in."
25158msgstr ""
25159
25160#. type: item
39764ef8 25161#: doc/guix.texi:11497
b9fe8fd6
JL
25162#, no-wrap
25163msgid "@code{startx} (default: @code{(xorg-start-command)})"
25164msgstr ""
25165
25166#. type: table
39764ef8 25167#: doc/guix.texi:11499
b9fe8fd6
JL
25168msgid "The command used to start the X11 graphical server."
25169msgstr ""
25170
25171#. type: item
39764ef8 25172#: doc/guix.texi:11500
b9fe8fd6
JL
25173#, no-wrap
25174msgid "@code{xauth} (default: @code{xauth})"
25175msgstr ""
25176
25177#. type: table
39764ef8 25178#: doc/guix.texi:11502
b9fe8fd6
JL
25179msgid "The XAuth package to use."
25180msgstr ""
25181
25182#. type: item
39764ef8 25183#: doc/guix.texi:11503
b9fe8fd6
JL
25184#, no-wrap
25185msgid "@code{shepherd} (default: @code{shepherd})"
25186msgstr ""
25187
25188#. type: table
39764ef8
JL
25189#: doc/guix.texi:11506
25190msgid ""
25191"The Shepherd package used when invoking @command{halt} and @command{reboot}."
b9fe8fd6
JL
25192msgstr ""
25193
25194#. type: item
39764ef8 25195#: doc/guix.texi:11507
b9fe8fd6
JL
25196#, no-wrap
25197msgid "@code{sessreg} (default: @code{sessreg})"
25198msgstr ""
25199
25200#. type: table
39764ef8 25201#: doc/guix.texi:11509
b9fe8fd6
JL
25202msgid "The sessreg package used in order to register the session."
25203msgstr ""
25204
25205#. type: item
39764ef8 25206#: doc/guix.texi:11510
b9fe8fd6
JL
25207#, no-wrap
25208msgid "@code{slim} (default: @code{slim})"
25209msgstr ""
25210
25211#. type: table
39764ef8 25212#: doc/guix.texi:11512
b9fe8fd6
JL
25213msgid "The SLiM package to use."
25214msgstr ""
25215
25216#. type: defvr
39764ef8 25217#: doc/guix.texi:11515 doc/guix.texi:20288
b9fe8fd6
JL
25218#, no-wrap
25219msgid "{Scheme Variable} %default-theme"
25220msgstr ""
25221
25222#. type: defvrx
39764ef8 25223#: doc/guix.texi:11516
b9fe8fd6
JL
25224#, no-wrap
25225msgid "{Scheme Variable} %default-theme-name"
25226msgstr ""
25227
25228#. type: defvr
39764ef8 25229#: doc/guix.texi:11518
b9fe8fd6
JL
25230msgid "The default SLiM theme and its name."
25231msgstr ""
25232
25233#. type: deftp
39764ef8 25234#: doc/guix.texi:11521
b9fe8fd6
JL
25235#, no-wrap
25236msgid "{Data Type} sddm-configuration"
25237msgstr ""
25238
25239#. type: deftp
39764ef8 25240#: doc/guix.texi:11523
b9fe8fd6
JL
25241msgid "This is the data type representing the sddm service configuration."
25242msgstr ""
25243
25244#. type: item
39764ef8 25245#: doc/guix.texi:11525
b9fe8fd6
JL
25246#, no-wrap
25247msgid "@code{display-server} (default: \"x11\")"
25248msgstr ""
25249
25250#. type: table
39764ef8 25251#: doc/guix.texi:11528
b9fe8fd6
JL
25252msgid ""
25253"Select display server to use for the greeter. Valid values are \"x11\" or "
25254"\"wayland\"."
25255msgstr ""
25256
25257#. type: item
39764ef8 25258#: doc/guix.texi:11529
b9fe8fd6
JL
25259#, no-wrap
25260msgid "@code{numlock} (default: \"on\")"
25261msgstr ""
25262
25263#. type: table
39764ef8 25264#: doc/guix.texi:11531
b9fe8fd6
JL
25265msgid "Valid values are \"on\", \"off\" or \"none\"."
25266msgstr ""
25267
25268#. type: item
39764ef8 25269#: doc/guix.texi:11532
b9fe8fd6 25270#, no-wrap
39764ef8 25271msgid "@code{halt-command} (default @code{#~(string-apppend #$shepherd \"/sbin/halt\")})"
b9fe8fd6
JL
25272msgstr ""
25273
25274#. type: table
39764ef8 25275#: doc/guix.texi:11534
b9fe8fd6
JL
25276msgid "Command to run when halting."
25277msgstr ""
25278
25279#. type: item
39764ef8 25280#: doc/guix.texi:11535
b9fe8fd6 25281#, no-wrap
39764ef8 25282msgid "@code{reboot-command} (default @code{#~(string-append #$shepherd \"/sbin/reboot\")})"
b9fe8fd6
JL
25283msgstr ""
25284
25285#. type: table
39764ef8 25286#: doc/guix.texi:11537
b9fe8fd6
JL
25287msgid "Command to run when rebooting."
25288msgstr ""
25289
25290#. type: item
39764ef8 25291#: doc/guix.texi:11538
b9fe8fd6
JL
25292#, no-wrap
25293msgid "@code{theme} (default \"maldives\")"
25294msgstr ""
25295
25296#. type: table
39764ef8 25297#: doc/guix.texi:11540
b9fe8fd6 25298msgid ""
39764ef8 25299"Theme to use. Default themes provided by SDDM are \"elarun\" or \"maldives\"."
b9fe8fd6
JL
25300msgstr ""
25301
25302#. type: item
39764ef8 25303#: doc/guix.texi:11541
b9fe8fd6 25304#, no-wrap
39764ef8 25305msgid "@code{themes-directory} (default \"/run/current-system/profile/share/sddm/themes\")"
b9fe8fd6
JL
25306msgstr ""
25307
25308#. type: table
39764ef8 25309#: doc/guix.texi:11543
b9fe8fd6
JL
25310msgid "Directory to look for themes."
25311msgstr ""
25312
25313#. type: item
39764ef8 25314#: doc/guix.texi:11544
b9fe8fd6 25315#, no-wrap
39764ef8 25316msgid "@code{faces-directory} (default \"/run/current-system/profile/share/sddm/faces\")"
b9fe8fd6
JL
25317msgstr ""
25318
25319#. type: table
39764ef8 25320#: doc/guix.texi:11546
b9fe8fd6
JL
25321msgid "Directory to look for faces."
25322msgstr ""
25323
25324#. type: item
39764ef8 25325#: doc/guix.texi:11547
b9fe8fd6
JL
25326#, no-wrap
25327msgid "@code{default-path} (default \"/run/current-system/profile/bin\")"
25328msgstr ""
25329
25330#. type: table
39764ef8 25331#: doc/guix.texi:11549
b9fe8fd6
JL
25332msgid "Default PATH to use."
25333msgstr ""
25334
25335#. type: item
39764ef8 25336#: doc/guix.texi:11550
b9fe8fd6
JL
25337#, no-wrap
25338msgid "@code{minimum-uid} (default 1000)"
25339msgstr ""
25340
25341#. type: table
39764ef8 25342#: doc/guix.texi:11552
b9fe8fd6
JL
25343msgid "Minimum UID to display in SDDM."
25344msgstr ""
25345
25346#. type: item
39764ef8 25347#: doc/guix.texi:11553
b9fe8fd6
JL
25348#, no-wrap
25349msgid "@code{maximum-uid} (default 2000)"
25350msgstr ""
25351
25352#. type: table
39764ef8 25353#: doc/guix.texi:11555
b9fe8fd6
JL
25354msgid "Maximum UID to display in SDDM"
25355msgstr ""
25356
25357#. type: item
39764ef8 25358#: doc/guix.texi:11556
b9fe8fd6
JL
25359#, no-wrap
25360msgid "@code{remember-last-user?} (default #t)"
25361msgstr ""
25362
25363#. type: table
39764ef8 25364#: doc/guix.texi:11558
b9fe8fd6
JL
25365msgid "Remember last user."
25366msgstr ""
25367
25368#. type: item
39764ef8 25369#: doc/guix.texi:11559
b9fe8fd6
JL
25370#, no-wrap
25371msgid "@code{remember-last-session?} (default #t)"
25372msgstr ""
25373
25374#. type: table
39764ef8 25375#: doc/guix.texi:11561
b9fe8fd6
JL
25376msgid "Remember last session."
25377msgstr ""
25378
25379#. type: item
39764ef8 25380#: doc/guix.texi:11562
b9fe8fd6
JL
25381#, no-wrap
25382msgid "@code{hide-users} (default \"\")"
25383msgstr ""
25384
25385#. type: table
39764ef8 25386#: doc/guix.texi:11564
b9fe8fd6
JL
25387msgid "Usernames to hide from SDDM greeter."
25388msgstr ""
25389
25390#. type: item
39764ef8 25391#: doc/guix.texi:11565
b9fe8fd6 25392#, no-wrap
39764ef8 25393msgid "@code{hide-shells} (default @code{#~(string-append #$shadow \"/sbin/nologin\")})"
b9fe8fd6
JL
25394msgstr ""
25395
25396#. type: table
39764ef8 25397#: doc/guix.texi:11567
b9fe8fd6
JL
25398msgid "Users with shells listed will be hidden from the SDDM greeter."
25399msgstr ""
25400
25401#. type: item
39764ef8 25402#: doc/guix.texi:11568
b9fe8fd6 25403#, no-wrap
39764ef8 25404msgid "@code{session-command} (default @code{#~(string-append #$sddm \"/share/sddm/scripts/wayland-session\")})"
b9fe8fd6
JL
25405msgstr ""
25406
25407#. type: table
39764ef8 25408#: doc/guix.texi:11570
b9fe8fd6
JL
25409msgid "Script to run before starting a wayland session."
25410msgstr ""
25411
25412#. type: item
39764ef8 25413#: doc/guix.texi:11571
b9fe8fd6 25414#, no-wrap
39764ef8 25415msgid "@code{sessions-directory} (default \"/run/current-system/profile/share/wayland-sessions\")"
b9fe8fd6
JL
25416msgstr ""
25417
25418#. type: table
39764ef8 25419#: doc/guix.texi:11573
b9fe8fd6
JL
25420msgid "Directory to look for desktop files starting wayland sessions."
25421msgstr ""
25422
25423#. type: item
39764ef8 25424#: doc/guix.texi:11574
b9fe8fd6
JL
25425#, no-wrap
25426msgid "@code{xorg-server-path} (default @code{xorg-start-command})"
25427msgstr ""
25428
25429#. type: table
39764ef8 25430#: doc/guix.texi:11576
b9fe8fd6
JL
25431msgid "Path to xorg-server."
25432msgstr ""
25433
25434#. type: item
39764ef8 25435#: doc/guix.texi:11577
b9fe8fd6
JL
25436#, no-wrap
25437msgid "@code{xauth-path} (default @code{#~(string-append #$xauth \"/bin/xauth\")})"
25438msgstr ""
25439
25440#. type: table
39764ef8 25441#: doc/guix.texi:11579
b9fe8fd6
JL
25442msgid "Path to xauth."
25443msgstr ""
25444
25445#. type: item
39764ef8 25446#: doc/guix.texi:11580
b9fe8fd6 25447#, no-wrap
39764ef8 25448msgid "@code{xephyr-path} (default @code{#~(string-append #$xorg-server \"/bin/Xephyr\")})"
b9fe8fd6
JL
25449msgstr ""
25450
25451#. type: table
39764ef8 25452#: doc/guix.texi:11582
b9fe8fd6
JL
25453msgid "Path to Xephyr."
25454msgstr ""
25455
25456#. type: item
39764ef8 25457#: doc/guix.texi:11583
b9fe8fd6 25458#, no-wrap
39764ef8 25459msgid "@code{xdisplay-start} (default @code{#~(string-append #$sddm \"/share/sddm/scripts/Xsetup\")})"
b9fe8fd6
JL
25460msgstr ""
25461
25462#. type: table
39764ef8 25463#: doc/guix.texi:11585
b9fe8fd6
JL
25464msgid "Script to run after starting xorg-server."
25465msgstr ""
25466
25467#. type: item
39764ef8 25468#: doc/guix.texi:11586
b9fe8fd6 25469#, no-wrap
39764ef8 25470msgid "@code{xdisplay-stop} (default @code{#~(string-append #$sddm \"/share/sddm/scripts/Xstop\")})"
b9fe8fd6
JL
25471msgstr ""
25472
25473#. type: table
39764ef8 25474#: doc/guix.texi:11588
b9fe8fd6
JL
25475msgid "Script to run before stopping xorg-server."
25476msgstr ""
25477
25478#. type: item
39764ef8 25479#: doc/guix.texi:11589
b9fe8fd6
JL
25480#, no-wrap
25481msgid "@code{xsession-command} (default: @code{xinitr })"
25482msgstr ""
25483
25484#. type: table
39764ef8 25485#: doc/guix.texi:11591
b9fe8fd6
JL
25486msgid "Script to run before starting a X session."
25487msgstr ""
25488
25489#. type: item
39764ef8 25490#: doc/guix.texi:11592
b9fe8fd6 25491#, no-wrap
39764ef8 25492msgid "@code{xsessions-directory} (default: \"/run/current-system/profile/share/xsessions\")"
b9fe8fd6
JL
25493msgstr ""
25494
25495#. type: table
39764ef8 25496#: doc/guix.texi:11594
b9fe8fd6
JL
25497msgid "Directory to look for desktop files starting X sessions."
25498msgstr ""
25499
25500#. type: item
39764ef8 25501#: doc/guix.texi:11595
b9fe8fd6
JL
25502#, no-wrap
25503msgid "@code{minimum-vt} (default: 7)"
25504msgstr ""
25505
25506#. type: table
39764ef8 25507#: doc/guix.texi:11597
b9fe8fd6
JL
25508msgid "Minimum VT to use."
25509msgstr ""
25510
25511#. type: item
39764ef8 25512#: doc/guix.texi:11598
b9fe8fd6
JL
25513#, no-wrap
25514msgid "@code{xserver-arguments} (default \"-nolisten tcp\")"
25515msgstr ""
25516
25517#. type: table
39764ef8 25518#: doc/guix.texi:11600
b9fe8fd6
JL
25519msgid "Arguments to pass to xorg-server."
25520msgstr ""
25521
25522#. type: item
39764ef8 25523#: doc/guix.texi:11601
b9fe8fd6
JL
25524#, no-wrap
25525msgid "@code{auto-login-user} (default \"\")"
25526msgstr ""
25527
25528#. type: table
39764ef8 25529#: doc/guix.texi:11603
b9fe8fd6
JL
25530msgid "User to use for auto-login."
25531msgstr ""
25532
25533#. type: item
39764ef8 25534#: doc/guix.texi:11604
b9fe8fd6
JL
25535#, no-wrap
25536msgid "@code{auto-login-session} (default \"\")"
25537msgstr ""
25538
25539#. type: table
39764ef8 25540#: doc/guix.texi:11606
b9fe8fd6
JL
25541msgid "Desktop file to use for auto-login."
25542msgstr ""
25543
25544#. type: item
39764ef8 25545#: doc/guix.texi:11607
b9fe8fd6
JL
25546#, no-wrap
25547msgid "@code{relogin?} (default #f)"
25548msgstr ""
25549
25550#. type: table
39764ef8 25551#: doc/guix.texi:11609
b9fe8fd6
JL
25552msgid "Relogin after logout."
25553msgstr ""
25554
25555#. type: cindex
39764ef8 25556#: doc/guix.texi:11614
b9fe8fd6
JL
25557#, no-wrap
25558msgid "X11 login"
25559msgstr ""
25560
25561#. type: deffn
39764ef8 25562#: doc/guix.texi:11615
b9fe8fd6
JL
25563#, no-wrap
25564msgid "{Scheme Procedure} sddm-service config"
25565msgstr ""
25566
25567#. type: deffn
39764ef8 25568#: doc/guix.texi:11618
b9fe8fd6
JL
25569msgid ""
25570"Return a service that spawns the SDDM graphical login manager for config of "
25571"type @code{<sddm-configuration>}."
25572msgstr ""
25573
25574#. type: example
39764ef8 25575#: doc/guix.texi:11623
b9fe8fd6
JL
25576#, no-wrap
25577msgid ""
25578" (sddm-service (sddm-configuration\n"
25579" (auto-login-user \"Alice\")\n"
25580" (auto-login-session \"xfce.desktop\")))\n"
25581msgstr ""
25582
25583#. type: deffn
39764ef8 25584#: doc/guix.texi:11626
b9fe8fd6
JL
25585#, no-wrap
25586msgid "{Scheme Procedure} xorg-start-command [#:guile] @"
25587msgstr ""
25588
25589#. type: deffn
39764ef8 25590#: doc/guix.texi:11635
b9fe8fd6 25591msgid ""
39764ef8
JL
25592"[#:modules %default-xorg-modules] @ [#:fonts %default-xorg-fonts] @ [#:"
25593"configuration-file (xorg-configuration-file @dots{})] @ [#:xorg-server "
b9fe8fd6
JL
25594"@var{xorg-server}] Return a @code{startx} script in which @var{modules}, a "
25595"list of X module packages, and @var{fonts}, a list of X font directories, "
25596"are available. See @code{xorg-wrapper} for more details on the arguments. "
25597"The result should be used in place of @code{startx}."
25598msgstr ""
25599
25600#. type: deffn
39764ef8 25601#: doc/guix.texi:11637
b9fe8fd6
JL
25602msgid "Usually the X server is started by a login manager."
25603msgstr ""
25604
25605#. type: deffn
39764ef8 25606#: doc/guix.texi:11639
b9fe8fd6
JL
25607#, no-wrap
25608msgid "{Scheme Procedure} xorg-configuration-file @"
25609msgstr ""
25610
25611#. type: deffn
39764ef8 25612#: doc/guix.texi:11645
b9fe8fd6 25613msgid ""
39764ef8
JL
25614"[#:modules %default-xorg-modules] @ [#:fonts %default-xorg-fonts] @ [#:"
25615"drivers '()] [#:resolutions '()] [#:extra-config '()] Return a configuration "
25616"file for the Xorg server containing search paths for all the common drivers."
b9fe8fd6
JL
25617msgstr ""
25618
25619#. type: deffn
39764ef8 25620#: doc/guix.texi:11650
b9fe8fd6
JL
25621msgid ""
25622"@var{modules} must be a list of @dfn{module packages} loaded by the Xorg "
25623"server---e.g., @code{xf86-video-vesa}, @code{xf86-input-keyboard}, and so "
25624"on. @var{fonts} must be a list of font directories to add to the server's "
25625"@dfn{font path}."
25626msgstr ""
25627
25628#. type: deffn
39764ef8 25629#: doc/guix.texi:11654
b9fe8fd6
JL
25630msgid ""
25631"@var{drivers} must be either the empty list, in which case Xorg chooses a "
25632"graphics driver automatically, or a list of driver names that will be tried "
25633"in this order---e.g., @code{(\"modesetting\" \"vesa\")}."
25634msgstr ""
25635
25636#. type: deffn
39764ef8 25637#: doc/guix.texi:11658
b9fe8fd6
JL
25638msgid ""
25639"Likewise, when @var{resolutions} is the empty list, Xorg chooses an "
39764ef8
JL
25640"appropriate screen resolution; otherwise, it must be a list of resolutions---"
25641"e.g., @code{((1024 768) (640 480))}."
b9fe8fd6
JL
25642msgstr ""
25643
25644#. type: deffn
39764ef8 25645#: doc/guix.texi:11662
b9fe8fd6
JL
25646msgid ""
25647"Last, @var{extra-config} is a list of strings or objects appended to the "
25648"configuration file. It is used to pass extra text to be added verbatim to "
25649"the configuration file."
25650msgstr ""
25651
25652#. type: deffn
39764ef8 25653#: doc/guix.texi:11664
b9fe8fd6
JL
25654#, no-wrap
25655msgid "{Scheme Procedure} screen-locker-service @var{package} [@var{program}]"
25656msgstr ""
25657
25658#. type: deffn
39764ef8 25659#: doc/guix.texi:11668
b9fe8fd6
JL
25660msgid ""
25661"Add @var{package}, a package for a screen locker or screen saver whose "
25662"command is @var{program}, to the set of setuid programs and add a PAM entry "
25663"for it. For example:"
25664msgstr ""
25665
25666#. type: lisp
39764ef8 25667#: doc/guix.texi:11671
b9fe8fd6
JL
25668#, no-wrap
25669msgid "(screen-locker-service xlockmore \"xlock\")\n"
25670msgstr ""
25671
25672#. type: deffn
39764ef8 25673#: doc/guix.texi:11674
b9fe8fd6
JL
25674msgid "makes the good ol' XlockMore usable."
25675msgstr ""
25676
25677#. type: cindex
39764ef8 25678#: doc/guix.texi:11680
b9fe8fd6
JL
25679#, no-wrap
25680msgid "printer support with CUPS"
25681msgstr ""
25682
25683#. type: Plain text
39764ef8 25684#: doc/guix.texi:11684
b9fe8fd6
JL
25685msgid ""
25686"The @code{(gnu services cups)} module provides a Guix service definition for "
25687"the CUPS printing service. To add printer support to a GuixSD system, add a "
25688"@code{cups-service} to the operating system definition:"
25689msgstr ""
25690
25691#. type: deffn
39764ef8 25692#: doc/guix.texi:11685
b9fe8fd6
JL
25693#, no-wrap
25694msgid "{Scheme Variable} cups-service-type"
25695msgstr ""
25696
25697#. type: deffn
39764ef8 25698#: doc/guix.texi:11689
b9fe8fd6
JL
25699msgid ""
25700"The service type for the CUPS print server. Its value should be a valid "
25701"CUPS configuration (see below). To use the default settings, simply write:"
25702msgstr ""
25703
25704#. type: example
39764ef8 25705#: doc/guix.texi:11691
b9fe8fd6
JL
25706#, no-wrap
25707msgid "(service cups-service-type)\n"
25708msgstr ""
25709
25710#. type: Plain text
39764ef8 25711#: doc/guix.texi:11701
b9fe8fd6
JL
25712msgid ""
25713"The CUPS configuration controls the basic things about your CUPS "
25714"installation: what interfaces it listens on, what to do if a print job "
25715"fails, how much logging to do, and so on. To actually add a printer, you "
25716"have to visit the @url{http://localhost:631} URL, or use a tool such as "
25717"GNOME's printer configuration services. By default, configuring a CUPS "
25718"service will generate a self-signed certificate if needed, for secure "
25719"connections to the print server."
25720msgstr ""
25721
25722#. type: Plain text
39764ef8 25723#: doc/guix.texi:11706
b9fe8fd6
JL
25724msgid ""
25725"Suppose you want to enable the Web interface of CUPS and also add support "
25726"for Epson printers @i{via} the @code{escpr} package and for HP printers "
25727"@i{via} the @code{hplip} package. You can do that directly, like this (you "
25728"need to use the @code{(gnu packages cups)} module):"
25729msgstr ""
25730
25731#. type: example
39764ef8 25732#: doc/guix.texi:11713
b9fe8fd6
JL
25733#, no-wrap
25734msgid ""
25735"(service cups-service-type\n"
25736" (cups-configuration\n"
25737" (web-interface? #t)\n"
25738" (extensions\n"
25739" (list cups-filters escpr hplip))))\n"
25740msgstr ""
25741
25742#. type: Plain text
39764ef8 25743#: doc/guix.texi:11721
b9fe8fd6
JL
25744msgid ""
25745"The available configuration parameters follow. Each parameter definition is "
25746"preceded by its type; for example, @samp{string-list foo} indicates that the "
25747"@code{foo} parameter should be specified as a list of strings. There is "
25748"also a way to specify the configuration as a string, if you have an old "
25749"@code{cupsd.conf} file that you want to port over from some other system; "
25750"see the end for more details."
25751msgstr ""
25752
25753#. type: Plain text
39764ef8 25754#: doc/guix.texi:11732
b9fe8fd6
JL
25755msgid "Available @code{cups-configuration} fields are:"
25756msgstr ""
25757
25758#. type: deftypevr
39764ef8 25759#: doc/guix.texi:11733
b9fe8fd6
JL
25760#, no-wrap
25761msgid "{@code{cups-configuration} parameter} package cups"
25762msgstr ""
25763
25764#. type: deftypevr
39764ef8 25765#: doc/guix.texi:11735 doc/guix.texi:12492
b9fe8fd6
JL
25766msgid "The CUPS package."
25767msgstr ""
25768
25769#. type: deftypevr
39764ef8 25770#: doc/guix.texi:11737
b9fe8fd6
JL
25771#, no-wrap
25772msgid "{@code{cups-configuration} parameter} package-list extensions"
25773msgstr ""
25774
25775#. type: deftypevr
39764ef8 25776#: doc/guix.texi:11739
b9fe8fd6
JL
25777msgid "Drivers and other extensions to the CUPS package."
25778msgstr ""
25779
25780#. type: deftypevr
39764ef8 25781#: doc/guix.texi:11741
b9fe8fd6 25782#, no-wrap
39764ef8 25783msgid "{@code{cups-configuration} parameter} files-configuration files-configuration"
b9fe8fd6
JL
25784msgstr ""
25785
25786#. type: deftypevr
39764ef8 25787#: doc/guix.texi:11744
b9fe8fd6
JL
25788msgid ""
25789"Configuration of where to write logs, what directories to use for print "
25790"spools, and related privileged configuration parameters."
25791msgstr ""
25792
25793#. type: deftypevr
39764ef8 25794#: doc/guix.texi:11746
b9fe8fd6
JL
25795msgid "Available @code{files-configuration} fields are:"
25796msgstr ""
25797
25798#. type: deftypevr
39764ef8 25799#: doc/guix.texi:11747
b9fe8fd6
JL
25800#, no-wrap
25801msgid "{@code{files-configuration} parameter} log-location access-log"
25802msgstr ""
25803
25804#. type: deftypevr
39764ef8 25805#: doc/guix.texi:11755
b9fe8fd6
JL
25806msgid ""
25807"Defines the access log filename. Specifying a blank filename disables "
25808"access log generation. The value @code{stderr} causes log entries to be "
25809"sent to the standard error file when the scheduler is running in the "
25810"foreground, or to the system log daemon when run in the background. The "
25811"value @code{syslog} causes log entries to be sent to the system log daemon. "
25812"The server name may be included in filenames using the string @code{%s}, as "
25813"in @code{/var/log/cups/%s-access_log}."
25814msgstr ""
25815
25816#. type: deftypevr
39764ef8 25817#: doc/guix.texi:11757
b9fe8fd6
JL
25818msgid "Defaults to @samp{\"/var/log/cups/access_log\"}."
25819msgstr ""
25820
25821#. type: deftypevr
39764ef8 25822#: doc/guix.texi:11759
b9fe8fd6
JL
25823#, no-wrap
25824msgid "{@code{files-configuration} parameter} file-name cache-dir"
25825msgstr ""
25826
25827#. type: deftypevr
39764ef8 25828#: doc/guix.texi:11761
b9fe8fd6
JL
25829msgid "Where CUPS should cache data."
25830msgstr ""
25831
25832#. type: deftypevr
39764ef8 25833#: doc/guix.texi:11763
b9fe8fd6
JL
25834msgid "Defaults to @samp{\"/var/cache/cups\"}."
25835msgstr ""
25836
25837#. type: deftypevr
39764ef8 25838#: doc/guix.texi:11765
b9fe8fd6
JL
25839#, no-wrap
25840msgid "{@code{files-configuration} parameter} string config-file-perm"
25841msgstr ""
25842
25843#. type: deftypevr
39764ef8 25844#: doc/guix.texi:11768
b9fe8fd6
JL
25845msgid ""
25846"Specifies the permissions for all configuration files that the scheduler "
25847"writes."
25848msgstr ""
25849
25850#. type: deftypevr
39764ef8 25851#: doc/guix.texi:11774
b9fe8fd6
JL
25852msgid ""
25853"Note that the permissions for the printers.conf file are currently masked to "
25854"only allow access from the scheduler user (typically root). This is done "
25855"because printer device URIs sometimes contain sensitive authentication "
25856"information that should not be generally known on the system. There is no "
25857"way to disable this security feature."
25858msgstr ""
25859
25860#. type: deftypevr
39764ef8 25861#: doc/guix.texi:11776
b9fe8fd6
JL
25862msgid "Defaults to @samp{\"0640\"}."
25863msgstr ""
25864
25865#. type: deftypevr
39764ef8 25866#: doc/guix.texi:11778
b9fe8fd6
JL
25867#, no-wrap
25868msgid "{@code{files-configuration} parameter} log-location error-log"
25869msgstr ""
25870
25871#. type: deftypevr
39764ef8 25872#: doc/guix.texi:11786
b9fe8fd6
JL
25873msgid ""
25874"Defines the error log filename. Specifying a blank filename disables access "
25875"log generation. The value @code{stderr} causes log entries to be sent to "
25876"the standard error file when the scheduler is running in the foreground, or "
25877"to the system log daemon when run in the background. The value "
25878"@code{syslog} causes log entries to be sent to the system log daemon. The "
25879"server name may be included in filenames using the string @code{%s}, as in "
25880"@code{/var/log/cups/%s-error_log}."
25881msgstr ""
25882
25883#. type: deftypevr
39764ef8 25884#: doc/guix.texi:11788
b9fe8fd6
JL
25885msgid "Defaults to @samp{\"/var/log/cups/error_log\"}."
25886msgstr ""
25887
25888#. type: deftypevr
39764ef8 25889#: doc/guix.texi:11790
b9fe8fd6
JL
25890#, no-wrap
25891msgid "{@code{files-configuration} parameter} string fatal-errors"
25892msgstr ""
25893
25894#. type: deftypevr
39764ef8 25895#: doc/guix.texi:11793
b9fe8fd6
JL
25896msgid ""
25897"Specifies which errors are fatal, causing the scheduler to exit. The kind "
25898"strings are:"
25899msgstr ""
25900
25901#. type: table
39764ef8 25902#: doc/guix.texi:11797
b9fe8fd6
JL
25903msgid "No errors are fatal."
25904msgstr ""
25905
25906#. type: table
39764ef8 25907#: doc/guix.texi:11800
b9fe8fd6
JL
25908msgid "All of the errors below are fatal."
25909msgstr ""
25910
25911#. type: item
39764ef8 25912#: doc/guix.texi:11801
b9fe8fd6
JL
25913#, no-wrap
25914msgid "browse"
25915msgstr ""
25916
25917#. type: table
39764ef8 25918#: doc/guix.texi:11804
b9fe8fd6
JL
25919msgid ""
25920"Browsing initialization errors are fatal, for example failed connections to "
25921"the DNS-SD daemon."
25922msgstr ""
25923
25924#. type: item
39764ef8 25925#: doc/guix.texi:11805
b9fe8fd6
JL
25926#, no-wrap
25927msgid "config"
25928msgstr ""
25929
25930#. type: table
39764ef8 25931#: doc/guix.texi:11807
b9fe8fd6
JL
25932msgid "Configuration file syntax errors are fatal."
25933msgstr ""
25934
25935#. type: item
39764ef8 25936#: doc/guix.texi:11808
b9fe8fd6
JL
25937#, no-wrap
25938msgid "listen"
25939msgstr ""
25940
25941#. type: table
39764ef8 25942#: doc/guix.texi:11811
b9fe8fd6
JL
25943msgid ""
25944"Listen or Port errors are fatal, except for IPv6 failures on the loopback or "
25945"@code{any} addresses."
25946msgstr ""
25947
25948#. type: item
39764ef8 25949#: doc/guix.texi:11812
b9fe8fd6
JL
25950#, no-wrap
25951msgid "log"
25952msgstr ""
25953
25954#. type: table
39764ef8 25955#: doc/guix.texi:11814
b9fe8fd6
JL
25956msgid "Log file creation or write errors are fatal."
25957msgstr ""
25958
25959#. type: item
39764ef8 25960#: doc/guix.texi:11815
b9fe8fd6
JL
25961#, no-wrap
25962msgid "permissions"
25963msgstr ""
25964
25965#. type: table
39764ef8 25966#: doc/guix.texi:11818
b9fe8fd6
JL
25967msgid ""
25968"Bad startup file permissions are fatal, for example shared TLS certificate "
25969"and key files with world-read permissions."
25970msgstr ""
25971
25972#. type: deftypevr
39764ef8 25973#: doc/guix.texi:11821
b9fe8fd6
JL
25974msgid "Defaults to @samp{\"all -browse\"}."
25975msgstr ""
25976
25977#. type: deftypevr
39764ef8 25978#: doc/guix.texi:11823
b9fe8fd6
JL
25979#, no-wrap
25980msgid "{@code{files-configuration} parameter} boolean file-device?"
25981msgstr ""
25982
25983#. type: deftypevr
39764ef8 25984#: doc/guix.texi:11826
b9fe8fd6
JL
25985msgid ""
25986"Specifies whether the file pseudo-device can be used for new printer "
25987"queues. The URI @uref{file:///dev/null} is always allowed."
25988msgstr ""
25989
25990#. type: deftypevr
39764ef8
JL
25991#: doc/guix.texi:11828 doc/guix.texi:11898 doc/guix.texi:11934
25992#: doc/guix.texi:11946 doc/guix.texi:11952 doc/guix.texi:11968
25993#: doc/guix.texi:12056 doc/guix.texi:12150 doc/guix.texi:12466
25994#: doc/guix.texi:12479 doc/guix.texi:16606 doc/guix.texi:16620
25995#: doc/guix.texi:16742 doc/guix.texi:16763 doc/guix.texi:16784
25996#: doc/guix.texi:16791 doc/guix.texi:16836 doc/guix.texi:16843
25997#: doc/guix.texi:17246 doc/guix.texi:17260 doc/guix.texi:17432
25998#: doc/guix.texi:17477 doc/guix.texi:17564 doc/guix.texi:17693
25999#: doc/guix.texi:17726 doc/guix.texi:17866 doc/guix.texi:17877
26000#: doc/guix.texi:18127 doc/guix.texi:18769 doc/guix.texi:18778
26001#: doc/guix.texi:18786 doc/guix.texi:18794 doc/guix.texi:18810
26002#: doc/guix.texi:18826 doc/guix.texi:18834 doc/guix.texi:18842
26003#: doc/guix.texi:18851 doc/guix.texi:18860 doc/guix.texi:18876
26004#: doc/guix.texi:18940 doc/guix.texi:19046 doc/guix.texi:19054
26005#: doc/guix.texi:19062 doc/guix.texi:19087 doc/guix.texi:19141
26006#: doc/guix.texi:19189 doc/guix.texi:19342 doc/guix.texi:19350
26007#: doc/guix.texi:19358 doc/guix.texi:19366 doc/guix.texi:19374
26008#: doc/guix.texi:19382 doc/guix.texi:19390 doc/guix.texi:19397
b9fe8fd6
JL
26009msgid "Defaults to @samp{#f}."
26010msgstr ""
26011
26012#. type: deftypevr
39764ef8 26013#: doc/guix.texi:11830
b9fe8fd6
JL
26014#, no-wrap
26015msgid "{@code{files-configuration} parameter} string group"
26016msgstr ""
26017
26018#. type: deftypevr
39764ef8 26019#: doc/guix.texi:11833
b9fe8fd6
JL
26020msgid ""
26021"Specifies the group name or ID that will be used when executing external "
26022"programs."
26023msgstr ""
26024
26025#. type: deftypevr
39764ef8 26026#: doc/guix.texi:11835 doc/guix.texi:11915
b9fe8fd6
JL
26027msgid "Defaults to @samp{\"lp\"}."
26028msgstr ""
26029
26030#. type: deftypevr
39764ef8 26031#: doc/guix.texi:11837
b9fe8fd6
JL
26032#, no-wrap
26033msgid "{@code{files-configuration} parameter} string log-file-perm"
26034msgstr ""
26035
26036#. type: deftypevr
39764ef8 26037#: doc/guix.texi:11839
b9fe8fd6
JL
26038msgid "Specifies the permissions for all log files that the scheduler writes."
26039msgstr ""
26040
26041#. type: deftypevr
39764ef8 26042#: doc/guix.texi:11841
b9fe8fd6
JL
26043msgid "Defaults to @samp{\"0644\"}."
26044msgstr ""
26045
26046#. type: deftypevr
39764ef8 26047#: doc/guix.texi:11843
b9fe8fd6
JL
26048#, no-wrap
26049msgid "{@code{files-configuration} parameter} log-location page-log"
26050msgstr ""
26051
26052#. type: deftypevr
39764ef8 26053#: doc/guix.texi:11851
b9fe8fd6
JL
26054msgid ""
26055"Defines the page log filename. Specifying a blank filename disables access "
26056"log generation. The value @code{stderr} causes log entries to be sent to "
26057"the standard error file when the scheduler is running in the foreground, or "
26058"to the system log daemon when run in the background. The value "
26059"@code{syslog} causes log entries to be sent to the system log daemon. The "
26060"server name may be included in filenames using the string @code{%s}, as in "
26061"@code{/var/log/cups/%s-page_log}."
26062msgstr ""
26063
26064#. type: deftypevr
39764ef8 26065#: doc/guix.texi:11853
b9fe8fd6
JL
26066msgid "Defaults to @samp{\"/var/log/cups/page_log\"}."
26067msgstr ""
26068
26069#. type: deftypevr
39764ef8 26070#: doc/guix.texi:11855
b9fe8fd6
JL
26071#, no-wrap
26072msgid "{@code{files-configuration} parameter} string remote-root"
26073msgstr ""
26074
26075#. type: deftypevr
39764ef8 26076#: doc/guix.texi:11858
b9fe8fd6
JL
26077msgid ""
26078"Specifies the username that is associated with unauthenticated accesses by "
26079"clients claiming to be the root user. The default is @code{remroot}."
26080msgstr ""
26081
26082#. type: deftypevr
39764ef8 26083#: doc/guix.texi:11860
b9fe8fd6
JL
26084msgid "Defaults to @samp{\"remroot\"}."
26085msgstr ""
26086
26087#. type: deftypevr
39764ef8 26088#: doc/guix.texi:11862
b9fe8fd6
JL
26089#, no-wrap
26090msgid "{@code{files-configuration} parameter} file-name request-root"
26091msgstr ""
26092
26093#. type: deftypevr
39764ef8 26094#: doc/guix.texi:11865
b9fe8fd6 26095msgid ""
39764ef8 26096"Specifies the directory that contains print jobs and other HTTP request data."
b9fe8fd6
JL
26097msgstr ""
26098
26099#. type: deftypevr
39764ef8 26100#: doc/guix.texi:11867
b9fe8fd6
JL
26101msgid "Defaults to @samp{\"/var/spool/cups\"}."
26102msgstr ""
26103
26104#. type: deftypevr
39764ef8 26105#: doc/guix.texi:11869
b9fe8fd6
JL
26106#, no-wrap
26107msgid "{@code{files-configuration} parameter} sandboxing sandboxing"
26108msgstr ""
26109
26110#. type: deftypevr
39764ef8 26111#: doc/guix.texi:11874
b9fe8fd6
JL
26112msgid ""
26113"Specifies the level of security sandboxing that is applied to print filters, "
26114"backends, and other child processes of the scheduler; either @code{relaxed} "
26115"or @code{strict}. This directive is currently only used/supported on macOS."
26116msgstr ""
26117
26118#. type: deftypevr
39764ef8 26119#: doc/guix.texi:11876
b9fe8fd6
JL
26120msgid "Defaults to @samp{strict}."
26121msgstr ""
26122
26123#. type: deftypevr
39764ef8 26124#: doc/guix.texi:11878
b9fe8fd6
JL
26125#, no-wrap
26126msgid "{@code{files-configuration} parameter} file-name server-keychain"
26127msgstr ""
26128
26129#. type: deftypevr
39764ef8 26130#: doc/guix.texi:11883
b9fe8fd6
JL
26131msgid ""
26132"Specifies the location of TLS certificates and private keys. CUPS will look "
39764ef8
JL
26133"for public and private keys in this directory: a @code{.crt} files for PEM-"
26134"encoded certificates and corresponding @code{.key} files for PEM-encoded "
b9fe8fd6
JL
26135"private keys."
26136msgstr ""
26137
26138#. type: deftypevr
39764ef8 26139#: doc/guix.texi:11885
b9fe8fd6
JL
26140msgid "Defaults to @samp{\"/etc/cups/ssl\"}."
26141msgstr ""
26142
26143#. type: deftypevr
39764ef8 26144#: doc/guix.texi:11887
b9fe8fd6
JL
26145#, no-wrap
26146msgid "{@code{files-configuration} parameter} file-name server-root"
26147msgstr ""
26148
26149#. type: deftypevr
39764ef8 26150#: doc/guix.texi:11889
b9fe8fd6
JL
26151msgid "Specifies the directory containing the server configuration files."
26152msgstr ""
26153
26154#. type: deftypevr
39764ef8 26155#: doc/guix.texi:11891
b9fe8fd6
JL
26156msgid "Defaults to @samp{\"/etc/cups\"}."
26157msgstr ""
26158
26159#. type: deftypevr
39764ef8 26160#: doc/guix.texi:11893
b9fe8fd6
JL
26161#, no-wrap
26162msgid "{@code{files-configuration} parameter} boolean sync-on-close?"
26163msgstr ""
26164
26165#. type: deftypevr
39764ef8 26166#: doc/guix.texi:11896
b9fe8fd6
JL
26167msgid ""
26168"Specifies whether the scheduler calls fsync(2) after writing configuration "
26169"or state files."
26170msgstr ""
26171
26172#. type: deftypevr
39764ef8 26173#: doc/guix.texi:11900
b9fe8fd6 26174#, no-wrap
39764ef8 26175msgid "{@code{files-configuration} parameter} space-separated-string-list system-group"
b9fe8fd6
JL
26176msgstr ""
26177
26178#. type: deftypevr
39764ef8 26179#: doc/guix.texi:11902
b9fe8fd6
JL
26180msgid "Specifies the group(s) to use for @code{@@SYSTEM} group authentication."
26181msgstr ""
26182
26183#. type: deftypevr
39764ef8 26184#: doc/guix.texi:11904
b9fe8fd6
JL
26185#, no-wrap
26186msgid "{@code{files-configuration} parameter} file-name temp-dir"
26187msgstr ""
26188
26189#. type: deftypevr
39764ef8 26190#: doc/guix.texi:11906
b9fe8fd6
JL
26191msgid "Specifies the directory where temporary files are stored."
26192msgstr ""
26193
26194#. type: deftypevr
39764ef8 26195#: doc/guix.texi:11908
b9fe8fd6
JL
26196msgid "Defaults to @samp{\"/var/spool/cups/tmp\"}."
26197msgstr ""
26198
26199#. type: deftypevr
39764ef8 26200#: doc/guix.texi:11910
b9fe8fd6
JL
26201#, no-wrap
26202msgid "{@code{files-configuration} parameter} string user"
26203msgstr ""
26204
26205#. type: deftypevr
39764ef8
JL
26206#: doc/guix.texi:11913
26207msgid ""
26208"Specifies the user name or ID that is used when running external programs."
b9fe8fd6
JL
26209msgstr ""
26210
26211#. type: deftypevr
39764ef8 26212#: doc/guix.texi:11918
b9fe8fd6
JL
26213#, no-wrap
26214msgid "{@code{cups-configuration} parameter} access-log-level access-log-level"
26215msgstr ""
26216
26217#. type: deftypevr
39764ef8 26218#: doc/guix.texi:11925
b9fe8fd6
JL
26219msgid ""
26220"Specifies the logging level for the AccessLog file. The @code{config} level "
26221"logs when printers and classes are added, deleted, or modified and when "
26222"configuration files are accessed or updated. The @code{actions} level logs "
26223"when print jobs are submitted, held, released, modified, or canceled, and "
26224"any of the conditions for @code{config}. The @code{all} level logs all "
26225"requests."
26226msgstr ""
26227
26228#. type: deftypevr
39764ef8 26229#: doc/guix.texi:11927
b9fe8fd6
JL
26230msgid "Defaults to @samp{actions}."
26231msgstr ""
26232
26233#. type: deftypevr
39764ef8 26234#: doc/guix.texi:11929
b9fe8fd6
JL
26235#, no-wrap
26236msgid "{@code{cups-configuration} parameter} boolean auto-purge-jobs?"
26237msgstr ""
26238
26239#. type: deftypevr
39764ef8 26240#: doc/guix.texi:11932
b9fe8fd6
JL
26241msgid ""
26242"Specifies whether to purge job history data automatically when it is no "
26243"longer required for quotas."
26244msgstr ""
26245
26246#. type: deftypevr
39764ef8 26247#: doc/guix.texi:11936
b9fe8fd6 26248#, no-wrap
39764ef8 26249msgid "{@code{cups-configuration} parameter} browse-local-protocols browse-local-protocols"
b9fe8fd6
JL
26250msgstr ""
26251
26252#. type: deftypevr
39764ef8 26253#: doc/guix.texi:11938
b9fe8fd6
JL
26254msgid "Specifies which protocols to use for local printer sharing."
26255msgstr ""
26256
26257#. type: deftypevr
39764ef8 26258#: doc/guix.texi:11940
b9fe8fd6
JL
26259msgid "Defaults to @samp{dnssd}."
26260msgstr ""
26261
26262#. type: deftypevr
39764ef8 26263#: doc/guix.texi:11942
b9fe8fd6
JL
26264#, no-wrap
26265msgid "{@code{cups-configuration} parameter} boolean browse-web-if?"
26266msgstr ""
26267
26268#. type: deftypevr
39764ef8 26269#: doc/guix.texi:11944
b9fe8fd6
JL
26270msgid "Specifies whether the CUPS web interface is advertised."
26271msgstr ""
26272
26273#. type: deftypevr
39764ef8 26274#: doc/guix.texi:11948
b9fe8fd6
JL
26275#, no-wrap
26276msgid "{@code{cups-configuration} parameter} boolean browsing?"
26277msgstr ""
26278
26279#. type: deftypevr
39764ef8 26280#: doc/guix.texi:11950
b9fe8fd6
JL
26281msgid "Specifies whether shared printers are advertised."
26282msgstr ""
26283
26284#. type: deftypevr
39764ef8 26285#: doc/guix.texi:11954
b9fe8fd6
JL
26286#, no-wrap
26287msgid "{@code{cups-configuration} parameter} string classification"
26288msgstr ""
26289
26290#. type: deftypevr
39764ef8 26291#: doc/guix.texi:11959
b9fe8fd6
JL
26292msgid ""
26293"Specifies the security classification of the server. Any valid banner name "
26294"can be used, including \"classified\", \"confidential\", \"secret\", "
26295"\"topsecret\", and \"unclassified\", or the banner can be omitted to disable "
26296"secure printing functions."
26297msgstr ""
26298
26299#. type: deftypevr
39764ef8
JL
26300#: doc/guix.texi:11961 doc/guix.texi:12298 doc/guix.texi:13657
26301#: doc/guix.texi:13669 doc/guix.texi:17832 doc/guix.texi:17840
26302#: doc/guix.texi:17848 doc/guix.texi:17856 doc/guix.texi:18134
26303#: doc/guix.texi:18612 doc/guix.texi:18620 doc/guix.texi:18628
26304#: doc/guix.texi:18736 doc/guix.texi:18761 doc/guix.texi:18892
26305#: doc/guix.texi:18900 doc/guix.texi:18908 doc/guix.texi:18916
26306#: doc/guix.texi:18924 doc/guix.texi:18932 doc/guix.texi:18955
26307#: doc/guix.texi:18963 doc/guix.texi:19015 doc/guix.texi:19031
26308#: doc/guix.texi:19039 doc/guix.texi:19078 doc/guix.texi:19101
26309#: doc/guix.texi:19123 doc/guix.texi:19130 doc/guix.texi:19165
26310#: doc/guix.texi:19173 doc/guix.texi:19197 doc/guix.texi:19229
26311#: doc/guix.texi:19258 doc/guix.texi:19265 doc/guix.texi:19272
26312#: doc/guix.texi:19280 doc/guix.texi:19294 doc/guix.texi:19303
26313#: doc/guix.texi:19313 doc/guix.texi:19320 doc/guix.texi:19327
26314#: doc/guix.texi:19334 doc/guix.texi:19405 doc/guix.texi:19412
26315#: doc/guix.texi:19419 doc/guix.texi:19428 doc/guix.texi:19444
26316#: doc/guix.texi:19451 doc/guix.texi:19458 doc/guix.texi:19465
26317#: doc/guix.texi:19473 doc/guix.texi:19481
b9fe8fd6
JL
26318msgid "Defaults to @samp{\"\"}."
26319msgstr ""
26320
26321#. type: deftypevr
39764ef8 26322#: doc/guix.texi:11963
b9fe8fd6
JL
26323#, no-wrap
26324msgid "{@code{cups-configuration} parameter} boolean classify-override?"
26325msgstr ""
26326
26327#. type: deftypevr
39764ef8 26328#: doc/guix.texi:11966
b9fe8fd6
JL
26329msgid ""
26330"Specifies whether users may override the classification (cover page) of "
26331"individual print jobs using the @code{job-sheets} option."
26332msgstr ""
26333
26334#. type: deftypevr
39764ef8 26335#: doc/guix.texi:11970
b9fe8fd6
JL
26336#, no-wrap
26337msgid "{@code{cups-configuration} parameter} default-auth-type default-auth-type"
26338msgstr ""
26339
26340#. type: deftypevr
39764ef8 26341#: doc/guix.texi:11972
b9fe8fd6
JL
26342msgid "Specifies the default type of authentication to use."
26343msgstr ""
26344
26345#. type: deftypevr
39764ef8 26346#: doc/guix.texi:11974
b9fe8fd6
JL
26347msgid "Defaults to @samp{Basic}."
26348msgstr ""
26349
26350#. type: deftypevr
39764ef8 26351#: doc/guix.texi:11976
b9fe8fd6
JL
26352#, no-wrap
26353msgid "{@code{cups-configuration} parameter} default-encryption default-encryption"
26354msgstr ""
26355
26356#. type: deftypevr
39764ef8 26357#: doc/guix.texi:11978
b9fe8fd6
JL
26358msgid "Specifies whether encryption will be used for authenticated requests."
26359msgstr ""
26360
26361#. type: deftypevr
39764ef8 26362#: doc/guix.texi:11980
b9fe8fd6
JL
26363msgid "Defaults to @samp{Required}."
26364msgstr ""
26365
26366#. type: deftypevr
39764ef8 26367#: doc/guix.texi:11982
b9fe8fd6
JL
26368#, no-wrap
26369msgid "{@code{cups-configuration} parameter} string default-language"
26370msgstr ""
26371
26372#. type: deftypevr
39764ef8 26373#: doc/guix.texi:11984
b9fe8fd6
JL
26374msgid "Specifies the default language to use for text and web content."
26375msgstr ""
26376
26377#. type: deftypevr
39764ef8 26378#: doc/guix.texi:11986
b9fe8fd6
JL
26379msgid "Defaults to @samp{\"en\"}."
26380msgstr ""
26381
26382#. type: deftypevr
39764ef8 26383#: doc/guix.texi:11988
b9fe8fd6
JL
26384#, no-wrap
26385msgid "{@code{cups-configuration} parameter} string default-paper-size"
26386msgstr ""
26387
26388#. type: deftypevr
39764ef8 26389#: doc/guix.texi:11993
b9fe8fd6
JL
26390msgid ""
26391"Specifies the default paper size for new print queues. @samp{\"Auto\"} uses "
26392"a locale-specific default, while @samp{\"None\"} specifies there is no "
26393"default paper size. Specific size names are typically @samp{\"Letter\"} or "
26394"@samp{\"A4\"}."
26395msgstr ""
26396
26397#. type: deftypevr
39764ef8 26398#: doc/guix.texi:11995
b9fe8fd6
JL
26399msgid "Defaults to @samp{\"Auto\"}."
26400msgstr ""
26401
26402#. type: deftypevr
39764ef8 26403#: doc/guix.texi:11997
b9fe8fd6
JL
26404#, no-wrap
26405msgid "{@code{cups-configuration} parameter} string default-policy"
26406msgstr ""
26407
26408#. type: deftypevr
39764ef8 26409#: doc/guix.texi:11999
b9fe8fd6
JL
26410msgid "Specifies the default access policy to use."
26411msgstr ""
26412
26413#. type: deftypevr
39764ef8 26414#: doc/guix.texi:12001
b9fe8fd6
JL
26415msgid "Defaults to @samp{\"default\"}."
26416msgstr ""
26417
26418#. type: deftypevr
39764ef8 26419#: doc/guix.texi:12003
b9fe8fd6
JL
26420#, no-wrap
26421msgid "{@code{cups-configuration} parameter} boolean default-shared?"
26422msgstr ""
26423
26424#. type: deftypevr
39764ef8 26425#: doc/guix.texi:12005
b9fe8fd6
JL
26426msgid "Specifies whether local printers are shared by default."
26427msgstr ""
26428
26429#. type: deftypevr
39764ef8
JL
26430#: doc/guix.texi:12007 doc/guix.texi:12087 doc/guix.texi:12383
26431#: doc/guix.texi:16576 doc/guix.texi:16583 doc/guix.texi:16591
26432#: doc/guix.texi:16613 doc/guix.texi:16627 doc/guix.texi:16712
26433#: doc/guix.texi:16719 doc/guix.texi:16727 doc/guix.texi:17113
26434#: doc/guix.texi:17253 doc/guix.texi:17439 doc/guix.texi:17446
26435#: doc/guix.texi:17468 doc/guix.texi:17507 doc/guix.texi:17527
26436#: doc/guix.texi:17541 doc/guix.texi:17681 doc/guix.texi:18714
26437#: doc/guix.texi:18802 doc/guix.texi:18818 doc/guix.texi:18868
b9fe8fd6
JL
26438msgid "Defaults to @samp{#t}."
26439msgstr ""
26440
26441#. type: deftypevr
39764ef8 26442#: doc/guix.texi:12009
b9fe8fd6 26443#, no-wrap
39764ef8 26444msgid "{@code{cups-configuration} parameter} non-negative-integer dirty-clean-interval"
b9fe8fd6
JL
26445msgstr ""
26446
26447#. type: deftypevr
39764ef8 26448#: doc/guix.texi:12013
b9fe8fd6
JL
26449msgid ""
26450"Specifies the delay for updating of configuration and state files, in "
26451"seconds. A value of 0 causes the update to happen as soon as possible, "
26452"typically within a few milliseconds."
26453msgstr ""
26454
26455#. type: deftypevr
39764ef8
JL
26456#: doc/guix.texi:12015 doc/guix.texi:12063 doc/guix.texi:12072
26457#: doc/guix.texi:12093 doc/guix.texi:12390
b9fe8fd6
JL
26458msgid "Defaults to @samp{30}."
26459msgstr ""
26460
26461#. type: deftypevr
39764ef8 26462#: doc/guix.texi:12017
b9fe8fd6
JL
26463#, no-wrap
26464msgid "{@code{cups-configuration} parameter} error-policy error-policy"
26465msgstr ""
26466
26467#. type: deftypevr
39764ef8 26468#: doc/guix.texi:12023
b9fe8fd6 26469msgid ""
39764ef8
JL
26470"Specifies what to do when an error occurs. Possible values are @code{abort-"
26471"job}, which will discard the failed print job; @code{retry-job}, which will "
26472"retry the job at a later time; @code{retry-this-job}, which retries the "
26473"failed job immediately; and @code{stop-printer}, which stops the printer."
b9fe8fd6
JL
26474msgstr ""
26475
26476#. type: deftypevr
39764ef8 26477#: doc/guix.texi:12025
b9fe8fd6
JL
26478msgid "Defaults to @samp{stop-printer}."
26479msgstr ""
26480
26481#. type: deftypevr
39764ef8 26482#: doc/guix.texi:12027
b9fe8fd6
JL
26483#, no-wrap
26484msgid "{@code{cups-configuration} parameter} non-negative-integer filter-limit"
26485msgstr ""
26486
26487#. type: deftypevr
39764ef8 26488#: doc/guix.texi:12035
b9fe8fd6
JL
26489msgid ""
26490"Specifies the maximum cost of filters that are run concurrently, which can "
26491"be used to minimize disk, memory, and CPU resource problems. A limit of 0 "
26492"disables filter limiting. An average print to a non-PostScript printer "
26493"needs a filter limit of about 200. A PostScript printer needs about half "
26494"that (100). Setting the limit below these thresholds will effectively limit "
26495"the scheduler to printing a single job at any time."
26496msgstr ""
26497
26498#. type: deftypevr
39764ef8
JL
26499#: doc/guix.texi:12037 doc/guix.texi:12045 doc/guix.texi:12100
26500#: doc/guix.texi:12216 doc/guix.texi:12230 doc/guix.texi:12237
26501#: doc/guix.texi:13761 doc/guix.texi:13773 doc/guix.texi:17129
26502#: doc/guix.texi:17454 doc/guix.texi:18707 doc/guix.texi:19007
26503#: doc/guix.texi:19181
b9fe8fd6
JL
26504msgid "Defaults to @samp{0}."
26505msgstr ""
26506
26507#. type: deftypevr
39764ef8 26508#: doc/guix.texi:12039
b9fe8fd6
JL
26509#, no-wrap
26510msgid "{@code{cups-configuration} parameter} non-negative-integer filter-nice"
26511msgstr ""
26512
26513#. type: deftypevr
39764ef8 26514#: doc/guix.texi:12043
b9fe8fd6
JL
26515msgid ""
26516"Specifies the scheduling priority of filters that are run to print a job. "
26517"The nice value ranges from 0, the highest priority, to 19, the lowest "
26518"priority."
26519msgstr ""
26520
26521#. type: deftypevr
39764ef8 26522#: doc/guix.texi:12047
b9fe8fd6
JL
26523#, no-wrap
26524msgid "{@code{cups-configuration} parameter} host-name-lookups host-name-lookups"
26525msgstr ""
26526
26527#. type: deftypevr
39764ef8 26528#: doc/guix.texi:12054
b9fe8fd6
JL
26529msgid ""
26530"Specifies whether to do reverse lookups on connecting clients. The "
26531"@code{double} setting causes @code{cupsd} to verify that the hostname "
26532"resolved from the address matches one of the addresses returned for that "
26533"hostname. Double lookups also prevent clients with unregistered addresses "
26534"from connecting to your server. Only set this option to @code{#t} or "
26535"@code{double} if absolutely required."
26536msgstr ""
26537
26538#. type: deftypevr
39764ef8 26539#: doc/guix.texi:12058
b9fe8fd6
JL
26540#, no-wrap
26541msgid "{@code{cups-configuration} parameter} non-negative-integer job-kill-delay"
26542msgstr ""
26543
26544#. type: deftypevr
39764ef8 26545#: doc/guix.texi:12061
b9fe8fd6
JL
26546msgid ""
26547"Specifies the number of seconds to wait before killing the filters and "
26548"backend associated with a canceled or held job."
26549msgstr ""
26550
26551#. type: deftypevr
39764ef8 26552#: doc/guix.texi:12065
b9fe8fd6 26553#, no-wrap
39764ef8 26554msgid "{@code{cups-configuration} parameter} non-negative-integer job-retry-interval"
b9fe8fd6
JL
26555msgstr ""
26556
26557#. type: deftypevr
39764ef8 26558#: doc/guix.texi:12070
b9fe8fd6
JL
26559msgid ""
26560"Specifies the interval between retries of jobs in seconds. This is "
26561"typically used for fax queues but can also be used with normal print queues "
26562"whose error policy is @code{retry-job} or @code{retry-current-job}."
26563msgstr ""
26564
26565#. type: deftypevr
39764ef8 26566#: doc/guix.texi:12074
b9fe8fd6
JL
26567#, no-wrap
26568msgid "{@code{cups-configuration} parameter} non-negative-integer job-retry-limit"
26569msgstr ""
26570
26571#. type: deftypevr
39764ef8 26572#: doc/guix.texi:12079
b9fe8fd6
JL
26573msgid ""
26574"Specifies the number of retries that are done for jobs. This is typically "
26575"used for fax queues but can also be used with normal print queues whose "
26576"error policy is @code{retry-job} or @code{retry-current-job}."
26577msgstr ""
26578
26579#. type: deftypevr
39764ef8
JL
26580#: doc/guix.texi:12081 doc/guix.texi:17933 doc/guix.texi:17953
26581#: doc/guix.texi:17969 doc/guix.texi:17983 doc/guix.texi:17990
26582#: doc/guix.texi:17997 doc/guix.texi:18004 doc/guix.texi:18163
26583#: doc/guix.texi:18179 doc/guix.texi:18186 doc/guix.texi:18193
26584#: doc/guix.texi:18204 doc/guix.texi:18659 doc/guix.texi:18667
26585#: doc/guix.texi:18675 doc/guix.texi:18699
b9fe8fd6
JL
26586msgid "Defaults to @samp{5}."
26587msgstr ""
26588
26589#. type: deftypevr
39764ef8 26590#: doc/guix.texi:12083
b9fe8fd6
JL
26591#, no-wrap
26592msgid "{@code{cups-configuration} parameter} boolean keep-alive?"
26593msgstr ""
26594
26595#. type: deftypevr
39764ef8 26596#: doc/guix.texi:12085
b9fe8fd6
JL
26597msgid "Specifies whether to support HTTP keep-alive connections."
26598msgstr ""
26599
26600#. type: deftypevr
39764ef8 26601#: doc/guix.texi:12089
b9fe8fd6 26602#, no-wrap
39764ef8 26603msgid "{@code{cups-configuration} parameter} non-negative-integer keep-alive-timeout"
b9fe8fd6
JL
26604msgstr ""
26605
26606#. type: deftypevr
39764ef8 26607#: doc/guix.texi:12091
b9fe8fd6
JL
26608msgid "Specifies how long an idle client connection remains open, in seconds."
26609msgstr ""
26610
26611#. type: deftypevr
39764ef8 26612#: doc/guix.texi:12095
b9fe8fd6 26613#, no-wrap
39764ef8 26614msgid "{@code{cups-configuration} parameter} non-negative-integer limit-request-body"
b9fe8fd6
JL
26615msgstr ""
26616
26617#. type: deftypevr
39764ef8 26618#: doc/guix.texi:12098
b9fe8fd6
JL
26619msgid ""
26620"Specifies the maximum size of print files, IPP requests, and HTML form "
26621"data. A limit of 0 disables the limit check."
26622msgstr ""
26623
26624#. type: deftypevr
39764ef8 26625#: doc/guix.texi:12102
b9fe8fd6
JL
26626#, no-wrap
26627msgid "{@code{cups-configuration} parameter} multiline-string-list listen"
26628msgstr ""
26629
26630#. type: deftypevr
39764ef8 26631#: doc/guix.texi:12109
b9fe8fd6
JL
26632msgid ""
26633"Listens on the specified interfaces for connections. Valid values are of "
26634"the form @var{address}:@var{port}, where @var{address} is either an IPv6 "
26635"address enclosed in brackets, an IPv4 address, or @code{*} to indicate all "
26636"addresses. Values can also be file names of local UNIX domain sockets. The "
26637"Listen directive is similar to the Port directive but allows you to restrict "
26638"access to specific interfaces or networks."
26639msgstr ""
26640
26641#. type: deftypevr
39764ef8 26642#: doc/guix.texi:12111
b9fe8fd6
JL
26643#, no-wrap
26644msgid "{@code{cups-configuration} parameter} non-negative-integer listen-back-log"
26645msgstr ""
26646
26647#. type: deftypevr
39764ef8 26648#: doc/guix.texi:12118
b9fe8fd6
JL
26649msgid ""
26650"Specifies the number of pending connections that will be allowed. This "
26651"normally only affects very busy servers that have reached the MaxClients "
26652"limit, but can also be triggered by large numbers of simultaneous "
26653"connections. When the limit is reached, the operating system will refuse "
26654"additional connections until the scheduler can accept the pending ones."
26655msgstr ""
26656
26657#. type: deftypevr
39764ef8 26658#: doc/guix.texi:12120
b9fe8fd6
JL
26659msgid "Defaults to @samp{128}."
26660msgstr ""
26661
26662#. type: deftypevr
39764ef8 26663#: doc/guix.texi:12122
b9fe8fd6 26664#, no-wrap
39764ef8 26665msgid "{@code{cups-configuration} parameter} location-access-control-list location-access-controls"
b9fe8fd6
JL
26666msgstr ""
26667
26668#. type: deftypevr
39764ef8 26669#: doc/guix.texi:12124
b9fe8fd6
JL
26670msgid "Specifies a set of additional access controls."
26671msgstr ""
26672
26673#. type: deftypevr
39764ef8 26674#: doc/guix.texi:12126
b9fe8fd6
JL
26675msgid "Available @code{location-access-controls} fields are:"
26676msgstr ""
26677
26678#. type: deftypevr
39764ef8 26679#: doc/guix.texi:12127
b9fe8fd6
JL
26680#, no-wrap
26681msgid "{@code{location-access-controls} parameter} file-name path"
26682msgstr ""
26683
26684#. type: deftypevr
39764ef8 26685#: doc/guix.texi:12129
b9fe8fd6
JL
26686msgid "Specifies the URI path to which the access control applies."
26687msgstr ""
26688
26689#. type: deftypevr
39764ef8 26690#: doc/guix.texi:12131
b9fe8fd6 26691#, no-wrap
39764ef8 26692msgid "{@code{location-access-controls} parameter} access-control-list access-controls"
b9fe8fd6
JL
26693msgstr ""
26694
26695#. type: deftypevr
39764ef8 26696#: doc/guix.texi:12134
b9fe8fd6
JL
26697msgid ""
26698"Access controls for all access to this path, in the same format as the "
26699"@code{access-controls} of @code{operation-access-control}."
26700msgstr ""
26701
26702#. type: deftypevr
39764ef8
JL
26703#: doc/guix.texi:12136 doc/guix.texi:12142 doc/guix.texi:12156
26704#: doc/guix.texi:12163 doc/guix.texi:12305 doc/guix.texi:12364
26705#: doc/guix.texi:12448 doc/guix.texi:12459 doc/guix.texi:14247
26706#: doc/guix.texi:16634 doc/guix.texi:16822 doc/guix.texi:17824
26707#: doc/guix.texi:17884 doc/guix.texi:17892 doc/guix.texi:18722
26708#: doc/guix.texi:18729 doc/guix.texi:19071 doc/guix.texi:19149
26709#: doc/guix.texi:19243 doc/guix.texi:19251 doc/guix.texi:19287
26710#: doc/guix.texi:19437 doc/guix.texi:19488 doc/guix.texi:19497
b9fe8fd6
JL
26711msgid "Defaults to @samp{()}."
26712msgstr ""
26713
26714#. type: deftypevr
39764ef8 26715#: doc/guix.texi:12138
b9fe8fd6 26716#, no-wrap
39764ef8 26717msgid "{@code{location-access-controls} parameter} method-access-control-list method-access-controls"
b9fe8fd6
JL
26718msgstr ""
26719
26720#. type: deftypevr
39764ef8 26721#: doc/guix.texi:12140
b9fe8fd6
JL
26722msgid "Access controls for method-specific access to this path."
26723msgstr ""
26724
26725#. type: deftypevr
39764ef8 26726#: doc/guix.texi:12144
b9fe8fd6
JL
26727msgid "Available @code{method-access-controls} fields are:"
26728msgstr ""
26729
26730#. type: deftypevr
39764ef8 26731#: doc/guix.texi:12145
b9fe8fd6
JL
26732#, no-wrap
26733msgid "{@code{method-access-controls} parameter} boolean reverse?"
26734msgstr ""
26735
26736#. type: deftypevr
39764ef8 26737#: doc/guix.texi:12148
b9fe8fd6
JL
26738msgid ""
26739"If @code{#t}, apply access controls to all methods except the listed "
26740"methods. Otherwise apply to only the listed methods."
26741msgstr ""
26742
26743#. type: deftypevr
39764ef8 26744#: doc/guix.texi:12152
b9fe8fd6
JL
26745#, no-wrap
26746msgid "{@code{method-access-controls} parameter} method-list methods"
26747msgstr ""
26748
26749#. type: deftypevr
39764ef8 26750#: doc/guix.texi:12154
b9fe8fd6
JL
26751msgid "Methods to which this access control applies."
26752msgstr ""
26753
26754#. type: deftypevr
39764ef8 26755#: doc/guix.texi:12158
b9fe8fd6 26756#, no-wrap
39764ef8 26757msgid "{@code{method-access-controls} parameter} access-control-list access-controls"
b9fe8fd6
JL
26758msgstr ""
26759
26760#. type: deftypevr
39764ef8 26761#: doc/guix.texi:12161
b9fe8fd6
JL
26762msgid ""
26763"Access control directives, as a list of strings. Each string should be one "
26764"directive, such as \"Order allow,deny\"."
26765msgstr ""
26766
26767#. type: deftypevr
39764ef8 26768#: doc/guix.texi:12167
b9fe8fd6
JL
26769#, no-wrap
26770msgid "{@code{cups-configuration} parameter} non-negative-integer log-debug-history"
26771msgstr ""
26772
26773#. type: deftypevr
39764ef8 26774#: doc/guix.texi:12171
b9fe8fd6
JL
26775msgid ""
26776"Specifies the number of debugging messages that are retained for logging if "
26777"an error occurs in a print job. Debug messages are logged regardless of the "
26778"LogLevel setting."
26779msgstr ""
26780
26781#. type: deftypevr
39764ef8
JL
26782#: doc/guix.texi:12173 doc/guix.texi:12194 doc/guix.texi:12201
26783#: doc/guix.texi:14007 doc/guix.texi:16807
b9fe8fd6
JL
26784msgid "Defaults to @samp{100}."
26785msgstr ""
26786
26787#. type: deftypevr
39764ef8 26788#: doc/guix.texi:12175
b9fe8fd6
JL
26789#, no-wrap
26790msgid "{@code{cups-configuration} parameter} log-level log-level"
26791msgstr ""
26792
26793#. type: deftypevr
39764ef8 26794#: doc/guix.texi:12178
b9fe8fd6
JL
26795msgid ""
26796"Specifies the level of logging for the ErrorLog file. The value @code{none} "
26797"stops all logging while @code{debug2} logs everything."
26798msgstr ""
26799
26800#. type: deftypevr
39764ef8 26801#: doc/guix.texi:12180
b9fe8fd6
JL
26802msgid "Defaults to @samp{info}."
26803msgstr ""
26804
26805#. type: deftypevr
39764ef8 26806#: doc/guix.texi:12182
b9fe8fd6
JL
26807#, no-wrap
26808msgid "{@code{cups-configuration} parameter} log-time-format log-time-format"
26809msgstr ""
26810
26811#. type: deftypevr
39764ef8 26812#: doc/guix.texi:12185
b9fe8fd6
JL
26813msgid ""
26814"Specifies the format of the date and time in the log files. The value "
26815"@code{standard} logs whole seconds while @code{usecs} logs microseconds."
26816msgstr ""
26817
26818#. type: deftypevr
39764ef8 26819#: doc/guix.texi:12187
b9fe8fd6
JL
26820msgid "Defaults to @samp{standard}."
26821msgstr ""
26822
26823#. type: deftypevr
39764ef8 26824#: doc/guix.texi:12189
b9fe8fd6
JL
26825#, no-wrap
26826msgid "{@code{cups-configuration} parameter} non-negative-integer max-clients"
26827msgstr ""
26828
26829#. type: deftypevr
39764ef8 26830#: doc/guix.texi:12192
b9fe8fd6
JL
26831msgid ""
26832"Specifies the maximum number of simultaneous clients that are allowed by the "
26833"scheduler."
26834msgstr ""
26835
26836#. type: deftypevr
39764ef8 26837#: doc/guix.texi:12196
b9fe8fd6 26838#, no-wrap
39764ef8 26839msgid "{@code{cups-configuration} parameter} non-negative-integer max-clients-per-host"
b9fe8fd6
JL
26840msgstr ""
26841
26842#. type: deftypevr
39764ef8 26843#: doc/guix.texi:12199
b9fe8fd6
JL
26844msgid ""
26845"Specifies the maximum number of simultaneous clients that are allowed from a "
26846"single address."
26847msgstr ""
26848
26849#. type: deftypevr
39764ef8 26850#: doc/guix.texi:12203
b9fe8fd6
JL
26851#, no-wrap
26852msgid "{@code{cups-configuration} parameter} non-negative-integer max-copies"
26853msgstr ""
26854
26855#. type: deftypevr
39764ef8
JL
26856#: doc/guix.texi:12206
26857msgid ""
26858"Specifies the maximum number of copies that a user can print of each job."
b9fe8fd6
JL
26859msgstr ""
26860
26861#. type: deftypevr
39764ef8 26862#: doc/guix.texi:12208
b9fe8fd6
JL
26863msgid "Defaults to @samp{9999}."
26864msgstr ""
26865
26866#. type: deftypevr
39764ef8 26867#: doc/guix.texi:12210
b9fe8fd6
JL
26868#, no-wrap
26869msgid "{@code{cups-configuration} parameter} non-negative-integer max-hold-time"
26870msgstr ""
26871
26872#. type: deftypevr
39764ef8 26873#: doc/guix.texi:12214
b9fe8fd6
JL
26874msgid ""
26875"Specifies the maximum time a job may remain in the @code{indefinite} hold "
26876"state before it is canceled. A value of 0 disables cancellation of held "
26877"jobs."
26878msgstr ""
26879
26880#. type: deftypevr
39764ef8 26881#: doc/guix.texi:12218
b9fe8fd6
JL
26882#, no-wrap
26883msgid "{@code{cups-configuration} parameter} non-negative-integer max-jobs"
26884msgstr ""
26885
26886#. type: deftypevr
39764ef8 26887#: doc/guix.texi:12221
b9fe8fd6
JL
26888msgid ""
26889"Specifies the maximum number of simultaneous jobs that are allowed. Set to "
26890"0 to allow an unlimited number of jobs."
26891msgstr ""
26892
26893#. type: deftypevr
39764ef8 26894#: doc/guix.texi:12223
b9fe8fd6
JL
26895msgid "Defaults to @samp{500}."
26896msgstr ""
26897
26898#. type: deftypevr
39764ef8 26899#: doc/guix.texi:12225
b9fe8fd6 26900#, no-wrap
39764ef8 26901msgid "{@code{cups-configuration} parameter} non-negative-integer max-jobs-per-printer"
b9fe8fd6
JL
26902msgstr ""
26903
26904#. type: deftypevr
39764ef8 26905#: doc/guix.texi:12228
b9fe8fd6
JL
26906msgid ""
26907"Specifies the maximum number of simultaneous jobs that are allowed per "
26908"printer. A value of 0 allows up to MaxJobs jobs per printer."
26909msgstr ""
26910
26911#. type: deftypevr
39764ef8 26912#: doc/guix.texi:12232
b9fe8fd6
JL
26913#, no-wrap
26914msgid "{@code{cups-configuration} parameter} non-negative-integer max-jobs-per-user"
26915msgstr ""
26916
26917#. type: deftypevr
39764ef8 26918#: doc/guix.texi:12235
b9fe8fd6
JL
26919msgid ""
26920"Specifies the maximum number of simultaneous jobs that are allowed per "
26921"user. A value of 0 allows up to MaxJobs jobs per user."
26922msgstr ""
26923
26924#. type: deftypevr
39764ef8 26925#: doc/guix.texi:12239
b9fe8fd6
JL
26926#, no-wrap
26927msgid "{@code{cups-configuration} parameter} non-negative-integer max-job-time"
26928msgstr ""
26929
26930#. type: deftypevr
39764ef8 26931#: doc/guix.texi:12242
b9fe8fd6
JL
26932msgid ""
26933"Specifies the maximum time a job may take to print before it is canceled, in "
26934"seconds. Set to 0 to disable cancellation of \"stuck\" jobs."
26935msgstr ""
26936
26937#. type: deftypevr
39764ef8 26938#: doc/guix.texi:12244
b9fe8fd6
JL
26939msgid "Defaults to @samp{10800}."
26940msgstr ""
26941
26942#. type: deftypevr
39764ef8 26943#: doc/guix.texi:12246
b9fe8fd6
JL
26944#, no-wrap
26945msgid "{@code{cups-configuration} parameter} non-negative-integer max-log-size"
26946msgstr ""
26947
26948#. type: deftypevr
39764ef8 26949#: doc/guix.texi:12249
b9fe8fd6
JL
26950msgid ""
26951"Specifies the maximum size of the log files before they are rotated, in "
26952"bytes. The value 0 disables log rotation."
26953msgstr ""
26954
26955#. type: deftypevr
39764ef8 26956#: doc/guix.texi:12251
b9fe8fd6
JL
26957msgid "Defaults to @samp{1048576}."
26958msgstr ""
26959
26960#. type: deftypevr
39764ef8 26961#: doc/guix.texi:12253
b9fe8fd6 26962#, no-wrap
39764ef8 26963msgid "{@code{cups-configuration} parameter} non-negative-integer multiple-operation-timeout"
b9fe8fd6
JL
26964msgstr ""
26965
26966#. type: deftypevr
39764ef8 26967#: doc/guix.texi:12256
b9fe8fd6
JL
26968msgid ""
26969"Specifies the maximum amount of time to allow between files in a multiple "
26970"file print job, in seconds."
26971msgstr ""
26972
26973#. type: deftypevr
39764ef8 26974#: doc/guix.texi:12258 doc/guix.texi:12472
b9fe8fd6
JL
26975msgid "Defaults to @samp{300}."
26976msgstr ""
26977
26978#. type: deftypevr
39764ef8 26979#: doc/guix.texi:12260
b9fe8fd6
JL
26980#, no-wrap
26981msgid "{@code{cups-configuration} parameter} string page-log-format"
26982msgstr ""
26983
26984#. type: deftypevr
39764ef8 26985#: doc/guix.texi:12265
b9fe8fd6
JL
26986msgid ""
26987"Specifies the format of PageLog lines. Sequences beginning with percent "
26988"(@samp{%}) characters are replaced with the corresponding information, while "
26989"all other characters are copied literally. The following percent sequences "
26990"are recognized:"
26991msgstr ""
26992
26993#. type: item
39764ef8 26994#: doc/guix.texi:12267
b9fe8fd6
JL
26995#, no-wrap
26996msgid "%%"
26997msgstr ""
26998
26999#. type: table
39764ef8 27000#: doc/guix.texi:12269
b9fe8fd6
JL
27001msgid "insert a single percent character"
27002msgstr ""
27003
27004#. type: item
39764ef8 27005#: doc/guix.texi:12270
b9fe8fd6
JL
27006#, no-wrap
27007msgid "%@{name@}"
27008msgstr ""
27009
27010#. type: table
39764ef8 27011#: doc/guix.texi:12272
b9fe8fd6
JL
27012msgid "insert the value of the specified IPP attribute"
27013msgstr ""
27014
27015#. type: item
39764ef8 27016#: doc/guix.texi:12273
b9fe8fd6
JL
27017#, no-wrap
27018msgid "%C"
27019msgstr ""
27020
27021#. type: table
39764ef8 27022#: doc/guix.texi:12275
b9fe8fd6
JL
27023msgid "insert the number of copies for the current page"
27024msgstr ""
27025
27026#. type: item
39764ef8 27027#: doc/guix.texi:12276
b9fe8fd6
JL
27028#, no-wrap
27029msgid "%P"
27030msgstr ""
27031
27032#. type: table
39764ef8 27033#: doc/guix.texi:12278
b9fe8fd6
JL
27034msgid "insert the current page number"
27035msgstr ""
27036
27037#. type: item
39764ef8 27038#: doc/guix.texi:12279
b9fe8fd6
JL
27039#, no-wrap
27040msgid "%T"
27041msgstr ""
27042
27043#. type: table
39764ef8 27044#: doc/guix.texi:12281
b9fe8fd6
JL
27045msgid "insert the current date and time in common log format"
27046msgstr ""
27047
27048#. type: item
39764ef8 27049#: doc/guix.texi:12282
b9fe8fd6
JL
27050#, no-wrap
27051msgid "%j"
27052msgstr ""
27053
27054#. type: table
39764ef8 27055#: doc/guix.texi:12284
b9fe8fd6
JL
27056msgid "insert the job ID"
27057msgstr ""
27058
27059#. type: item
39764ef8 27060#: doc/guix.texi:12285 doc/guix.texi:13617
b9fe8fd6
JL
27061#, no-wrap
27062msgid "%p"
27063msgstr ""
27064
27065#. type: table
39764ef8 27066#: doc/guix.texi:12287
b9fe8fd6
JL
27067msgid "insert the printer name"
27068msgstr ""
27069
27070#. type: item
39764ef8 27071#: doc/guix.texi:12288 doc/guix.texi:13640
b9fe8fd6
JL
27072#, no-wrap
27073msgid "%u"
27074msgstr ""
27075
27076#. type: table
39764ef8 27077#: doc/guix.texi:12290
b9fe8fd6
JL
27078msgid "insert the username"
27079msgstr ""
27080
27081#. type: deftypevr
39764ef8 27082#: doc/guix.texi:12296
b9fe8fd6
JL
27083msgid ""
27084"A value of the empty string disables page logging. The string @code{%p %u "
27085"%j %T %P %C %@{job-billing@} %@{job-originating-host-name@} %@{job-name@} "
27086"%@{media@} %@{sides@}} creates a page log with the standard items."
27087msgstr ""
27088
27089#. type: deftypevr
39764ef8 27090#: doc/guix.texi:12300
b9fe8fd6 27091#, no-wrap
39764ef8 27092msgid "{@code{cups-configuration} parameter} environment-variables environment-variables"
b9fe8fd6
JL
27093msgstr ""
27094
27095#. type: deftypevr
39764ef8 27096#: doc/guix.texi:12303
b9fe8fd6
JL
27097msgid ""
27098"Passes the specified environment variable(s) to child processes; a list of "
27099"strings."
27100msgstr ""
27101
27102#. type: deftypevr
39764ef8 27103#: doc/guix.texi:12307
b9fe8fd6
JL
27104#, no-wrap
27105msgid "{@code{cups-configuration} parameter} policy-configuration-list policies"
27106msgstr ""
27107
27108#. type: deftypevr
39764ef8 27109#: doc/guix.texi:12309
b9fe8fd6
JL
27110msgid "Specifies named access control policies."
27111msgstr ""
27112
27113#. type: deftypevr
39764ef8 27114#: doc/guix.texi:12311
b9fe8fd6
JL
27115msgid "Available @code{policy-configuration} fields are:"
27116msgstr ""
27117
27118#. type: deftypevr
39764ef8 27119#: doc/guix.texi:12312
b9fe8fd6
JL
27120#, no-wrap
27121msgid "{@code{policy-configuration} parameter} string name"
27122msgstr ""
27123
27124#. type: deftypevr
39764ef8 27125#: doc/guix.texi:12314
b9fe8fd6
JL
27126msgid "Name of the policy."
27127msgstr ""
27128
27129#. type: deftypevr
39764ef8 27130#: doc/guix.texi:12316
b9fe8fd6
JL
27131#, no-wrap
27132msgid "{@code{policy-configuration} parameter} string job-private-access"
27133msgstr ""
27134
27135#. type: deftypevr
39764ef8 27136#: doc/guix.texi:12326
b9fe8fd6
JL
27137msgid ""
27138"Specifies an access list for a job's private values. @code{@@ACL} maps to "
27139"the printer's requesting-user-name-allowed or requesting-user-name-denied "
27140"values. @code{@@OWNER} maps to the job's owner. @code{@@SYSTEM} maps to "
39764ef8
JL
27141"the groups listed for the @code{system-group} field of the @code{files-"
27142"config} configuration, which is reified into the @code{cups-files.conf(5)} "
27143"file. Other possible elements of the access list include specific user "
27144"names, and @code{@@@var{group}} to indicate members of a specific group. "
27145"The access list may also be simply @code{all} or @code{default}."
b9fe8fd6
JL
27146msgstr ""
27147
27148#. type: deftypevr
39764ef8 27149#: doc/guix.texi:12328 doc/guix.texi:12350
b9fe8fd6
JL
27150msgid "Defaults to @samp{\"@@OWNER @@SYSTEM\"}."
27151msgstr ""
27152
27153#. type: deftypevr
39764ef8 27154#: doc/guix.texi:12330
b9fe8fd6
JL
27155#, no-wrap
27156msgid "{@code{policy-configuration} parameter} string job-private-values"
27157msgstr ""
27158
27159#. type: deftypevr
39764ef8 27160#: doc/guix.texi:12333 doc/guix.texi:12355
b9fe8fd6
JL
27161msgid ""
27162"Specifies the list of job values to make private, or @code{all}, "
27163"@code{default}, or @code{none}."
27164msgstr ""
27165
27166#. type: deftypevr
39764ef8 27167#: doc/guix.texi:12336
b9fe8fd6 27168msgid ""
39764ef8
JL
27169"Defaults to @samp{\"job-name job-originating-host-name job-originating-user-"
27170"name phone\"}."
b9fe8fd6
JL
27171msgstr ""
27172
27173#. type: deftypevr
39764ef8 27174#: doc/guix.texi:12338
b9fe8fd6
JL
27175#, no-wrap
27176msgid "{@code{policy-configuration} parameter} string subscription-private-access"
27177msgstr ""
27178
27179#. type: deftypevr
39764ef8 27180#: doc/guix.texi:12348
b9fe8fd6
JL
27181msgid ""
27182"Specifies an access list for a subscription's private values. @code{@@ACL} "
39764ef8
JL
27183"maps to the printer's requesting-user-name-allowed or requesting-user-name-"
27184"denied values. @code{@@OWNER} maps to the job's owner. @code{@@SYSTEM} "
27185"maps to the groups listed for the @code{system-group} field of the "
27186"@code{files-config} configuration, which is reified into the @code{cups-"
27187"files.conf(5)} file. Other possible elements of the access list include "
27188"specific user names, and @code{@@@var{group}} to indicate members of a "
27189"specific group. The access list may also be simply @code{all} or "
27190"@code{default}."
b9fe8fd6
JL
27191msgstr ""
27192
27193#. type: deftypevr
39764ef8 27194#: doc/guix.texi:12352
b9fe8fd6
JL
27195#, no-wrap
27196msgid "{@code{policy-configuration} parameter} string subscription-private-values"
27197msgstr ""
27198
27199#. type: deftypevr
39764ef8 27200#: doc/guix.texi:12358
b9fe8fd6
JL
27201msgid ""
27202"Defaults to @samp{\"notify-events notify-pull-method notify-recipient-uri "
27203"notify-subscriber-user-name notify-user-data\"}."
27204msgstr ""
27205
27206#. type: deftypevr
39764ef8 27207#: doc/guix.texi:12360
b9fe8fd6 27208#, no-wrap
39764ef8 27209msgid "{@code{policy-configuration} parameter} operation-access-control-list access-controls"
b9fe8fd6
JL
27210msgstr ""
27211
27212#. type: deftypevr
39764ef8 27213#: doc/guix.texi:12362
b9fe8fd6
JL
27214msgid "Access control by IPP operation."
27215msgstr ""
27216
27217#. type: deftypevr
39764ef8 27218#: doc/guix.texi:12367
b9fe8fd6 27219#, no-wrap
39764ef8 27220msgid "{@code{cups-configuration} parameter} boolean-or-non-negative-integer preserve-job-files"
b9fe8fd6
JL
27221msgstr ""
27222
27223#. type: deftypevr
39764ef8 27224#: doc/guix.texi:12372
b9fe8fd6
JL
27225msgid ""
27226"Specifies whether job files (documents) are preserved after a job is "
27227"printed. If a numeric value is specified, job files are preserved for the "
27228"indicated number of seconds after printing. Otherwise a boolean value "
27229"applies indefinitely."
27230msgstr ""
27231
27232#. type: deftypevr
39764ef8 27233#: doc/guix.texi:12374
b9fe8fd6
JL
27234msgid "Defaults to @samp{86400}."
27235msgstr ""
27236
27237#. type: deftypevr
39764ef8 27238#: doc/guix.texi:12376
b9fe8fd6 27239#, no-wrap
39764ef8 27240msgid "{@code{cups-configuration} parameter} boolean-or-non-negative-integer preserve-job-history"
b9fe8fd6
JL
27241msgstr ""
27242
27243#. type: deftypevr
39764ef8 27244#: doc/guix.texi:12381
b9fe8fd6
JL
27245msgid ""
27246"Specifies whether the job history is preserved after a job is printed. If a "
27247"numeric value is specified, the job history is preserved for the indicated "
27248"number of seconds after printing. If @code{#t}, the job history is "
27249"preserved until the MaxJobs limit is reached."
27250msgstr ""
27251
27252#. type: deftypevr
39764ef8 27253#: doc/guix.texi:12385
b9fe8fd6
JL
27254#, no-wrap
27255msgid "{@code{cups-configuration} parameter} non-negative-integer reload-timeout"
27256msgstr ""
27257
27258#. type: deftypevr
39764ef8 27259#: doc/guix.texi:12388
b9fe8fd6
JL
27260msgid ""
27261"Specifies the amount of time to wait for job completion before restarting "
27262"the scheduler."
27263msgstr ""
27264
27265#. type: deftypevr
39764ef8 27266#: doc/guix.texi:12392
b9fe8fd6
JL
27267#, no-wrap
27268msgid "{@code{cups-configuration} parameter} string rip-cache"
27269msgstr ""
27270
27271#. type: deftypevr
39764ef8 27272#: doc/guix.texi:12395
b9fe8fd6
JL
27273msgid ""
27274"Specifies the maximum amount of memory to use when converting documents into "
27275"bitmaps for a printer."
27276msgstr ""
27277
27278#. type: deftypevr
39764ef8 27279#: doc/guix.texi:12397
b9fe8fd6
JL
27280msgid "Defaults to @samp{\"128m\"}."
27281msgstr ""
27282
27283#. type: deftypevr
39764ef8 27284#: doc/guix.texi:12399
b9fe8fd6
JL
27285#, no-wrap
27286msgid "{@code{cups-configuration} parameter} string server-admin"
27287msgstr ""
27288
27289#. type: deftypevr
39764ef8 27290#: doc/guix.texi:12401
b9fe8fd6
JL
27291msgid "Specifies the email address of the server administrator."
27292msgstr ""
27293
27294#. type: deftypevr
39764ef8 27295#: doc/guix.texi:12403
b9fe8fd6
JL
27296msgid "Defaults to @samp{\"root@@localhost.localdomain\"}."
27297msgstr ""
27298
27299#. type: deftypevr
39764ef8 27300#: doc/guix.texi:12405
b9fe8fd6
JL
27301#, no-wrap
27302msgid "{@code{cups-configuration} parameter} host-name-list-or-* server-alias"
27303msgstr ""
27304
27305#. type: deftypevr
39764ef8 27306#: doc/guix.texi:12413
b9fe8fd6
JL
27307msgid ""
27308"The ServerAlias directive is used for HTTP Host header validation when "
27309"clients connect to the scheduler from external interfaces. Using the "
27310"special name @code{*} can expose your system to known browser-based DNS "
27311"rebinding attacks, even when accessing sites through a firewall. If the "
27312"auto-discovery of alternate names does not work, we recommend listing each "
27313"alternate name with a ServerAlias directive instead of using @code{*}."
27314msgstr ""
27315
27316#. type: deftypevr
39764ef8 27317#: doc/guix.texi:12415
b9fe8fd6
JL
27318msgid "Defaults to @samp{*}."
27319msgstr ""
27320
27321#. type: deftypevr
39764ef8 27322#: doc/guix.texi:12417
b9fe8fd6
JL
27323#, no-wrap
27324msgid "{@code{cups-configuration} parameter} string server-name"
27325msgstr ""
27326
27327#. type: deftypevr
39764ef8 27328#: doc/guix.texi:12419
b9fe8fd6
JL
27329msgid "Specifies the fully-qualified host name of the server."
27330msgstr ""
27331
27332#. type: deftypevr
39764ef8 27333#: doc/guix.texi:12421
b9fe8fd6
JL
27334msgid "Defaults to @samp{\"localhost\"}."
27335msgstr ""
27336
27337#. type: deftypevr
39764ef8 27338#: doc/guix.texi:12423
b9fe8fd6
JL
27339#, no-wrap
27340msgid "{@code{cups-configuration} parameter} server-tokens server-tokens"
27341msgstr ""
27342
27343#. type: deftypevr
39764ef8 27344#: doc/guix.texi:12431
b9fe8fd6
JL
27345msgid ""
27346"Specifies what information is included in the Server header of HTTP "
27347"responses. @code{None} disables the Server header. @code{ProductOnly} "
27348"reports @code{CUPS}. @code{Major} reports @code{CUPS 2}. @code{Minor} "
27349"reports @code{CUPS 2.0}. @code{Minimal} reports @code{CUPS 2.0.0}. "
27350"@code{OS} reports @code{CUPS 2.0.0 (@var{uname})} where @var{uname} is the "
27351"output of the @code{uname} command. @code{Full} reports @code{CUPS 2.0.0 "
27352"(@var{uname}) IPP/2.0}."
27353msgstr ""
27354
27355#. type: deftypevr
39764ef8 27356#: doc/guix.texi:12433
b9fe8fd6
JL
27357msgid "Defaults to @samp{Minimal}."
27358msgstr ""
27359
27360#. type: deftypevr
39764ef8 27361#: doc/guix.texi:12435
b9fe8fd6
JL
27362#, no-wrap
27363msgid "{@code{cups-configuration} parameter} string set-env"
27364msgstr ""
27365
27366#. type: deftypevr
39764ef8 27367#: doc/guix.texi:12437
b9fe8fd6
JL
27368msgid "Set the specified environment variable to be passed to child processes."
27369msgstr ""
27370
27371#. type: deftypevr
39764ef8 27372#: doc/guix.texi:12439
b9fe8fd6
JL
27373msgid "Defaults to @samp{\"variable value\"}."
27374msgstr ""
27375
27376#. type: deftypevr
39764ef8 27377#: doc/guix.texi:12441
b9fe8fd6
JL
27378#, no-wrap
27379msgid "{@code{cups-configuration} parameter} multiline-string-list ssl-listen"
27380msgstr ""
27381
27382#. type: deftypevr
39764ef8 27383#: doc/guix.texi:12446
b9fe8fd6
JL
27384msgid ""
27385"Listens on the specified interfaces for encrypted connections. Valid values "
27386"are of the form @var{address}:@var{port}, where @var{address} is either an "
27387"IPv6 address enclosed in brackets, an IPv4 address, or @code{*} to indicate "
27388"all addresses."
27389msgstr ""
27390
27391#. type: deftypevr
39764ef8 27392#: doc/guix.texi:12450
b9fe8fd6
JL
27393#, no-wrap
27394msgid "{@code{cups-configuration} parameter} ssl-options ssl-options"
27395msgstr ""
27396
27397#. type: deftypevr
39764ef8 27398#: doc/guix.texi:12457
b9fe8fd6
JL
27399msgid ""
27400"Sets encryption options. By default, CUPS only supports encryption using "
27401"TLS v1.0 or higher using known secure cipher suites. The @code{AllowRC4} "
27402"option enables the 128-bit RC4 cipher suites, which are required for some "
27403"older clients that do not implement newer ones. The @code{AllowSSL3} option "
27404"enables SSL v3.0, which is required for some older clients that do not "
27405"support TLS v1.0."
27406msgstr ""
27407
27408#. type: deftypevr
39764ef8 27409#: doc/guix.texi:12461
b9fe8fd6
JL
27410#, no-wrap
27411msgid "{@code{cups-configuration} parameter} boolean strict-conformance?"
27412msgstr ""
27413
27414#. type: deftypevr
39764ef8 27415#: doc/guix.texi:12464
b9fe8fd6
JL
27416msgid ""
27417"Specifies whether the scheduler requires clients to strictly adhere to the "
27418"IPP specifications."
27419msgstr ""
27420
27421#. type: deftypevr
39764ef8 27422#: doc/guix.texi:12468
b9fe8fd6
JL
27423#, no-wrap
27424msgid "{@code{cups-configuration} parameter} non-negative-integer timeout"
27425msgstr ""
27426
27427#. type: deftypevr
39764ef8 27428#: doc/guix.texi:12470
b9fe8fd6
JL
27429msgid "Specifies the HTTP request timeout, in seconds."
27430msgstr ""
27431
27432#. type: deftypevr
39764ef8 27433#: doc/guix.texi:12475
b9fe8fd6
JL
27434#, no-wrap
27435msgid "{@code{cups-configuration} parameter} boolean web-interface?"
27436msgstr ""
27437
27438#. type: deftypevr
39764ef8 27439#: doc/guix.texi:12477
b9fe8fd6
JL
27440msgid "Specifies whether the web interface is enabled."
27441msgstr ""
27442
27443#. type: Plain text
39764ef8 27444#: doc/guix.texi:12487
b9fe8fd6
JL
27445msgid ""
27446"At this point you're probably thinking ``oh dear, Guix manual, I like you "
27447"but you can stop already with the configuration options''. Indeed. "
39764ef8
JL
27448"However, one more point: it could be that you have an existing @code{cupsd."
27449"conf} that you want to use. In that case, you can pass an @code{opaque-cups-"
27450"configuration} as the configuration of a @code{cups-service-type}."
b9fe8fd6
JL
27451msgstr ""
27452
27453#. type: Plain text
39764ef8 27454#: doc/guix.texi:12489
b9fe8fd6
JL
27455msgid "Available @code{opaque-cups-configuration} fields are:"
27456msgstr ""
27457
27458#. type: deftypevr
39764ef8 27459#: doc/guix.texi:12490
b9fe8fd6
JL
27460#, no-wrap
27461msgid "{@code{opaque-cups-configuration} parameter} package cups"
27462msgstr ""
27463
27464#. type: deftypevr
39764ef8 27465#: doc/guix.texi:12494
b9fe8fd6
JL
27466#, no-wrap
27467msgid "{@code{opaque-cups-configuration} parameter} string cupsd.conf"
27468msgstr ""
27469
27470#. type: deftypevr
39764ef8 27471#: doc/guix.texi:12496
b9fe8fd6
JL
27472msgid "The contents of the @code{cupsd.conf}, as a string."
27473msgstr ""
27474
27475#. type: deftypevr
39764ef8 27476#: doc/guix.texi:12498
b9fe8fd6
JL
27477#, no-wrap
27478msgid "{@code{opaque-cups-configuration} parameter} string cups-files.conf"
27479msgstr ""
27480
27481#. type: deftypevr
39764ef8 27482#: doc/guix.texi:12500
b9fe8fd6
JL
27483msgid "The contents of the @code{cups-files.conf} file, as a string."
27484msgstr ""
27485
27486#. type: Plain text
39764ef8 27487#: doc/guix.texi:12505
b9fe8fd6
JL
27488msgid ""
27489"For example, if your @code{cupsd.conf} and @code{cups-files.conf} are in "
27490"strings of the same name, you could instantiate a CUPS service like this:"
27491msgstr ""
27492
27493#. type: example
39764ef8 27494#: doc/guix.texi:12511
b9fe8fd6
JL
27495#, no-wrap
27496msgid ""
27497"(service cups-service-type\n"
27498" (opaque-cups-configuration\n"
27499" (cupsd.conf cupsd.conf)\n"
27500" (cups-files.conf cups-files.conf)))\n"
27501msgstr ""
27502
27503#. type: Plain text
39764ef8 27504#: doc/guix.texi:12522
b9fe8fd6
JL
27505msgid ""
27506"The @code{(gnu services desktop)} module provides services that are usually "
27507"useful in the context of a ``desktop'' setup---that is, on a machine running "
27508"a graphical display server, possibly with graphical user interfaces, etc. "
27509"It also defines services that provide specific desktop environments like "
27510"GNOME, XFCE or MATE."
27511msgstr ""
27512
27513#. type: Plain text
39764ef8 27514#: doc/guix.texi:12526
b9fe8fd6
JL
27515msgid ""
27516"To simplify things, the module defines a variable containing the set of "
27517"services that users typically expect on a machine with a graphical "
27518"environment and networking:"
27519msgstr ""
27520
27521#. type: defvr
39764ef8 27522#: doc/guix.texi:12527
b9fe8fd6
JL
27523#, no-wrap
27524msgid "{Scheme Variable} %desktop-services"
27525msgstr ""
27526
27527#. type: defvr
39764ef8 27528#: doc/guix.texi:12530
b9fe8fd6
JL
27529msgid ""
27530"This is a list of services that builds upon @var{%base-services} and adds or "
27531"adjusts services for a typical ``desktop'' setup."
27532msgstr ""
27533
27534#. type: defvr
39764ef8 27535#: doc/guix.texi:12540
b9fe8fd6
JL
27536msgid ""
27537"In particular, it adds a graphical login manager (@pxref{X Window, "
27538"@code{slim-service}}), screen lockers, a network management tool "
27539"(@pxref{Networking Services, @code{network-manager-service-type}}), energy "
27540"and color management services, the @code{elogind} login and seat manager, "
27541"the Polkit privilege service, the GeoClue location service, the "
27542"AccountsService daemon that allows authorized users change system passwords, "
27543"an NTP client (@pxref{Networking Services}), the Avahi daemon, and has the "
27544"name service switch service configured to be able to use @code{nss-mdns} "
27545"(@pxref{Name Service Switch, mDNS})."
27546msgstr ""
27547
27548#. type: Plain text
39764ef8 27549#: doc/guix.texi:12545
b9fe8fd6
JL
27550msgid ""
27551"The @var{%desktop-services} variable can be used as the @code{services} "
27552"field of an @code{operating-system} declaration (@pxref{operating-system "
27553"Reference, @code{services}})."
27554msgstr ""
27555
27556#. type: Plain text
39764ef8 27557#: doc/guix.texi:12565
b9fe8fd6
JL
27558msgid ""
27559"Additionally, the @code{gnome-desktop-service}, @code{xfce-desktop-service} "
27560"and @code{mate-desktop-service} procedures can add GNOME, XFCE and/or MATE "
27561"to a system. To ``add GNOME'' means that system-level services like the "
27562"backlight adjustment helpers and the power management utilities are added to "
27563"the system, extending @code{polkit} and @code{dbus} appropriately, allowing "
39764ef8
JL
27564"GNOME to operate with elevated privileges on a limited number of special-"
27565"purpose system interfaces. Additionally, adding a service made by "
b9fe8fd6
JL
27566"@code{gnome-desktop-service} adds the GNOME metapackage to the system "
27567"profile. Likewise, adding the XFCE service not only adds the @code{xfce} "
27568"metapackage to the system profile, but it also gives the Thunar file manager "
27569"the ability to open a ``root-mode'' file management window, if the user "
27570"authenticates using the administrator's password via the standard polkit "
27571"graphical interface. To ``add MATE'' means that @code{polkit} and "
27572"@code{dbus} are extended appropriately, allowing MATE to operate with "
27573"elevated privileges on a limited number of special-purpose system "
39764ef8
JL
27574"interfaces. Additionally, adding a service made by @code{mate-desktop-"
27575"service} adds the MATE metapackage to the system profile."
b9fe8fd6
JL
27576msgstr ""
27577
27578#. type: Plain text
39764ef8 27579#: doc/guix.texi:12574
b9fe8fd6
JL
27580msgid ""
27581"The desktop environments in Guix use the Xorg display server by default. If "
27582"you'd like to use the newer display server protocol called Wayland, you need "
27583"to use the @code{sddm-service} instead of the @code{slim-service} for the "
27584"graphical login manager. You should then select the ``GNOME (Wayland)'' "
27585"session in SDDM. Alternatively you can also try starting GNOME on Wayland "
39764ef8
JL
27586"manually from a TTY with the command ``XDG_SESSION_TYPE=wayland exec dbus-"
27587"run-session gnome-session``. Currently only GNOME has support for Wayland."
b9fe8fd6
JL
27588msgstr ""
27589
27590#. type: deffn
39764ef8 27591#: doc/guix.texi:12575
b9fe8fd6
JL
27592#, no-wrap
27593msgid "{Scheme Procedure} gnome-desktop-service"
27594msgstr ""
27595
27596#. type: deffn
39764ef8 27597#: doc/guix.texi:12579
b9fe8fd6
JL
27598msgid ""
27599"Return a service that adds the @code{gnome} package to the system profile, "
27600"and extends polkit with the actions from @code{gnome-settings-daemon}."
27601msgstr ""
27602
27603#. type: deffn
39764ef8 27604#: doc/guix.texi:12581
b9fe8fd6
JL
27605#, no-wrap
27606msgid "{Scheme Procedure} xfce-desktop-service"
27607msgstr ""
27608
27609#. type: deffn
39764ef8 27610#: doc/guix.texi:12586
b9fe8fd6
JL
27611msgid ""
27612"Return a service that adds the @code{xfce} package to the system profile, "
27613"and extends polkit with the ability for @code{thunar} to manipulate the file "
27614"system as root from within a user session, after the user has authenticated "
27615"with the administrator's password."
27616msgstr ""
27617
27618#. type: deffn
39764ef8 27619#: doc/guix.texi:12588
b9fe8fd6
JL
27620#, no-wrap
27621msgid "{Scheme Procedure} mate-desktop-service"
27622msgstr ""
27623
27624#. type: deffn
39764ef8 27625#: doc/guix.texi:12592
b9fe8fd6
JL
27626msgid ""
27627"Return a service that adds the @code{mate} package to the system profile, "
27628"and extends polkit with the actions from @code{mate-settings-daemon}."
27629msgstr ""
27630
27631#. type: Plain text
39764ef8 27632#: doc/guix.texi:12599
b9fe8fd6
JL
27633msgid ""
27634"Because the GNOME, XFCE and MATE desktop services pull in so many packages, "
27635"the default @code{%desktop-services} variable doesn't include either of them "
27636"by default. To add GNOME, XFCE or MATE, just @code{cons} them onto "
27637"@code{%desktop-services} in the @code{services} field of your "
27638"@code{operating-system}:"
27639msgstr ""
27640
27641#. type: example
39764ef8 27642#: doc/guix.texi:12610
b9fe8fd6
JL
27643#, no-wrap
27644msgid ""
27645"(use-modules (gnu))\n"
27646"(use-service-modules desktop)\n"
27647"(operating-system\n"
27648" ...\n"
27649" ;; cons* adds items to the list given as its last argument.\n"
27650" (services (cons* (gnome-desktop-service)\n"
27651" (xfce-desktop-service)\n"
27652" %desktop-services))\n"
27653" ...)\n"
27654msgstr ""
27655
27656#. type: Plain text
39764ef8 27657#: doc/guix.texi:12614
b9fe8fd6
JL
27658msgid ""
27659"These desktop environments will then be available as options in the "
27660"graphical login window."
27661msgstr ""
27662
27663#. type: Plain text
39764ef8 27664#: doc/guix.texi:12618
b9fe8fd6
JL
27665msgid ""
27666"The actual service definitions included in @code{%desktop-services} and "
27667"provided by @code{(gnu services dbus)} and @code{(gnu services desktop)} are "
27668"described below."
27669msgstr ""
27670
27671#. type: deffn
39764ef8 27672#: doc/guix.texi:12619
b9fe8fd6
JL
27673#, no-wrap
27674msgid "{Scheme Procedure} dbus-service [#:dbus @var{dbus}] [#:services '()]"
27675msgstr ""
27676
27677#. type: deffn
39764ef8 27678#: doc/guix.texi:12622
b9fe8fd6
JL
27679msgid ""
27680"Return a service that runs the ``system bus'', using @var{dbus}, with "
27681"support for @var{services}."
27682msgstr ""
27683
27684#. type: deffn
39764ef8 27685#: doc/guix.texi:12626
b9fe8fd6
JL
27686msgid ""
27687"@uref{http://dbus.freedesktop.org/, D-Bus} is an inter-process communication "
27688"facility. Its system bus is used to allow system services to communicate "
27689"and to be notified of system-wide events."
27690msgstr ""
27691
27692#. type: deffn
39764ef8 27693#: doc/guix.texi:12631
b9fe8fd6 27694msgid ""
39764ef8
JL
27695"@var{services} must be a list of packages that provide an @file{etc/dbus-1/"
27696"system.d} directory containing additional D-Bus configuration and policy "
27697"files. For example, to allow avahi-daemon to use the system bus, "
27698"@var{services} must be equal to @code{(list avahi)}."
b9fe8fd6
JL
27699msgstr ""
27700
27701#. type: deffn
39764ef8 27702#: doc/guix.texi:12633
b9fe8fd6
JL
27703#, no-wrap
27704msgid "{Scheme Procedure} elogind-service [#:config @var{config}]"
27705msgstr ""
27706
27707#. type: deffn
39764ef8 27708#: doc/guix.texi:12639
b9fe8fd6
JL
27709msgid ""
27710"Return a service that runs the @code{elogind} login and seat management "
27711"daemon. @uref{https://github.com/elogind/elogind, Elogind} exposes a D-Bus "
27712"interface that can be used to know which users are logged in, know what kind "
27713"of sessions they have open, suspend the system, inhibit system suspend, "
27714"reboot the system, and other tasks."
27715msgstr ""
27716
27717#. type: deffn
39764ef8 27718#: doc/guix.texi:12643
b9fe8fd6
JL
27719msgid ""
27720"Elogind handles most system-level power events for a computer, for example "
27721"suspending the system when a lid is closed, or shutting it down when the "
27722"power button is pressed."
27723msgstr ""
27724
27725#. type: deffn
39764ef8 27726#: doc/guix.texi:12648
b9fe8fd6
JL
27727msgid ""
27728"The @var{config} keyword argument specifies the configuration for elogind, "
27729"and should be the result of an @code{(elogind-configuration (@var{parameter} "
27730"@var{value})...)} invocation. Available parameters and their default values "
27731"are:"
27732msgstr ""
27733
27734#. type: item
39764ef8 27735#: doc/guix.texi:12650
b9fe8fd6
JL
27736#, no-wrap
27737msgid "kill-user-processes?"
27738msgstr ""
27739
27740#. type: code{#1}
39764ef8
JL
27741#: doc/guix.texi:12652 doc/guix.texi:12670 doc/guix.texi:12672
27742#: doc/guix.texi:12674 doc/guix.texi:12686
b9fe8fd6
JL
27743msgid "#f"
27744msgstr ""
27745
27746#. type: item
39764ef8 27747#: doc/guix.texi:12652
b9fe8fd6
JL
27748#, no-wrap
27749msgid "kill-only-users"
27750msgstr ""
27751
27752#. type: code{#1}
39764ef8 27753#: doc/guix.texi:12654 doc/guix.texi:12692
b9fe8fd6
JL
27754msgid "()"
27755msgstr ""
27756
27757#. type: item
39764ef8 27758#: doc/guix.texi:12654
b9fe8fd6
JL
27759#, no-wrap
27760msgid "kill-exclude-users"
27761msgstr ""
27762
27763#. type: code{#1}
39764ef8 27764#: doc/guix.texi:12656
b9fe8fd6
JL
27765msgid "(\"root\")"
27766msgstr ""
27767
27768#. type: item
39764ef8 27769#: doc/guix.texi:12656
b9fe8fd6
JL
27770#, no-wrap
27771msgid "inhibit-delay-max-seconds"
27772msgstr ""
27773
27774#. type: code{#1}
39764ef8 27775#: doc/guix.texi:12658
b9fe8fd6
JL
27776msgid "5"
27777msgstr ""
27778
27779#. type: item
39764ef8 27780#: doc/guix.texi:12658
b9fe8fd6
JL
27781#, no-wrap
27782msgid "handle-power-key"
27783msgstr ""
27784
27785#. type: code{#1}
39764ef8 27786#: doc/guix.texi:12660
b9fe8fd6
JL
27787msgid "poweroff"
27788msgstr ""
27789
27790#. type: item
39764ef8 27791#: doc/guix.texi:12660
b9fe8fd6
JL
27792#, no-wrap
27793msgid "handle-suspend-key"
27794msgstr ""
27795
27796#. type: code{#1}
39764ef8 27797#: doc/guix.texi:12662 doc/guix.texi:12666
b9fe8fd6
JL
27798msgid "suspend"
27799msgstr ""
27800
27801#. type: item
39764ef8 27802#: doc/guix.texi:12662
b9fe8fd6
JL
27803#, no-wrap
27804msgid "handle-hibernate-key"
27805msgstr ""
27806
27807#. type: code{#1}
39764ef8 27808#: doc/guix.texi:12664
b9fe8fd6
JL
27809msgid "hibernate"
27810msgstr ""
27811
27812#. type: item
39764ef8 27813#: doc/guix.texi:12664
b9fe8fd6
JL
27814#, no-wrap
27815msgid "handle-lid-switch"
27816msgstr ""
27817
27818#. type: item
39764ef8 27819#: doc/guix.texi:12666
b9fe8fd6
JL
27820#, no-wrap
27821msgid "handle-lid-switch-docked"
27822msgstr ""
27823
27824#. type: code{#1}
39764ef8 27825#: doc/guix.texi:12668 doc/guix.texi:12680
b9fe8fd6
JL
27826msgid "ignore"
27827msgstr ""
27828
27829#. type: item
39764ef8 27830#: doc/guix.texi:12668
b9fe8fd6
JL
27831#, no-wrap
27832msgid "power-key-ignore-inhibited?"
27833msgstr ""
27834
27835#. type: item
39764ef8 27836#: doc/guix.texi:12670
b9fe8fd6
JL
27837#, no-wrap
27838msgid "suspend-key-ignore-inhibited?"
27839msgstr ""
27840
27841#. type: item
39764ef8 27842#: doc/guix.texi:12672
b9fe8fd6
JL
27843#, no-wrap
27844msgid "hibernate-key-ignore-inhibited?"
27845msgstr ""
27846
27847#. type: item
39764ef8 27848#: doc/guix.texi:12674
b9fe8fd6
JL
27849#, no-wrap
27850msgid "lid-switch-ignore-inhibited?"
27851msgstr ""
27852
27853#. type: code{#1}
39764ef8 27854#: doc/guix.texi:12676 doc/guix.texi:12688
b9fe8fd6
JL
27855msgid "#t"
27856msgstr ""
27857
27858#. type: item
39764ef8 27859#: doc/guix.texi:12676
b9fe8fd6
JL
27860#, no-wrap
27861msgid "holdoff-timeout-seconds"
27862msgstr ""
27863
27864#. type: code{#1}
39764ef8 27865#: doc/guix.texi:12678
b9fe8fd6
JL
27866msgid "30"
27867msgstr ""
27868
27869#. type: item
39764ef8 27870#: doc/guix.texi:12678
b9fe8fd6
JL
27871#, no-wrap
27872msgid "idle-action"
27873msgstr ""
27874
27875#. type: item
39764ef8 27876#: doc/guix.texi:12680
b9fe8fd6
JL
27877#, no-wrap
27878msgid "idle-action-seconds"
27879msgstr ""
27880
27881#. type: code{#1}
39764ef8 27882#: doc/guix.texi:12682
b9fe8fd6
JL
27883msgid "(* 30 60)"
27884msgstr ""
27885
27886#. type: item
39764ef8 27887#: doc/guix.texi:12682
b9fe8fd6
JL
27888#, no-wrap
27889msgid "runtime-directory-size-percent"
27890msgstr ""
27891
27892#. type: code{#1}
39764ef8 27893#: doc/guix.texi:12684
b9fe8fd6
JL
27894msgid "10"
27895msgstr ""
27896
27897#. type: item
39764ef8 27898#: doc/guix.texi:12684
b9fe8fd6
JL
27899#, no-wrap
27900msgid "runtime-directory-size"
27901msgstr ""
27902
27903#. type: item
39764ef8 27904#: doc/guix.texi:12686
b9fe8fd6
JL
27905#, no-wrap
27906msgid "remove-ipc?"
27907msgstr ""
27908
27909#. type: item
39764ef8 27910#: doc/guix.texi:12688
b9fe8fd6
JL
27911#, no-wrap
27912msgid "suspend-state"
27913msgstr ""
27914
27915#. type: code{#1}
39764ef8 27916#: doc/guix.texi:12690
b9fe8fd6
JL
27917msgid "(\"mem\" \"standby\" \"freeze\")"
27918msgstr ""
27919
27920#. type: item
39764ef8 27921#: doc/guix.texi:12690
b9fe8fd6
JL
27922#, no-wrap
27923msgid "suspend-mode"
27924msgstr ""
27925
27926#. type: item
39764ef8 27927#: doc/guix.texi:12692
b9fe8fd6
JL
27928#, no-wrap
27929msgid "hibernate-state"
27930msgstr ""
27931
27932#. type: code{#1}
39764ef8 27933#: doc/guix.texi:12694 doc/guix.texi:12698
b9fe8fd6
JL
27934msgid "(\"disk\")"
27935msgstr ""
27936
27937#. type: item
39764ef8 27938#: doc/guix.texi:12694
b9fe8fd6
JL
27939#, no-wrap
27940msgid "hibernate-mode"
27941msgstr ""
27942
27943#. type: code{#1}
39764ef8 27944#: doc/guix.texi:12696
b9fe8fd6
JL
27945msgid "(\"platform\" \"shutdown\")"
27946msgstr ""
27947
27948#. type: item
39764ef8 27949#: doc/guix.texi:12696
b9fe8fd6
JL
27950#, no-wrap
27951msgid "hybrid-sleep-state"
27952msgstr ""
27953
27954#. type: item
39764ef8 27955#: doc/guix.texi:12698
b9fe8fd6
JL
27956#, no-wrap
27957msgid "hybrid-sleep-mode"
27958msgstr ""
27959
27960#. type: code{#1}
39764ef8 27961#: doc/guix.texi:12700
b9fe8fd6
JL
27962msgid "(\"suspend\" \"platform\" \"shutdown\")"
27963msgstr ""
27964
27965#. type: deffn
39764ef8 27966#: doc/guix.texi:12703
b9fe8fd6
JL
27967#, no-wrap
27968msgid "{Scheme Procedure} accountsservice-service @"
27969msgstr ""
27970
27971#. type: deffn
39764ef8 27972#: doc/guix.texi:12711
b9fe8fd6
JL
27973msgid ""
27974"[#:accountsservice @var{accountsservice}] Return a service that runs "
27975"AccountsService, a system service that can list available accounts, change "
27976"their passwords, and so on. AccountsService integrates with PolicyKit to "
27977"enable unprivileged users to acquire the capability to modify their system "
39764ef8
JL
27978"configuration. @uref{https://www.freedesktop.org/wiki/Software/"
27979"AccountsService/, the accountsservice web site} for more information."
b9fe8fd6
JL
27980msgstr ""
27981
27982#. type: deffn
39764ef8 27983#: doc/guix.texi:12714
b9fe8fd6
JL
27984msgid ""
27985"The @var{accountsservice} keyword argument is the @code{accountsservice} "
27986"package to expose as a service."
27987msgstr ""
27988
27989#. type: deffn
39764ef8 27990#: doc/guix.texi:12716
b9fe8fd6
JL
27991#, no-wrap
27992msgid "{Scheme Procedure} polkit-service @"
27993msgstr ""
27994
27995#. type: deffn
39764ef8 27996#: doc/guix.texi:12725
b9fe8fd6 27997msgid ""
39764ef8
JL
27998"[#:polkit @var{polkit}] Return a service that runs the @uref{http://www."
27999"freedesktop.org/wiki/Software/polkit/, Polkit privilege management service}, "
28000"which allows system administrators to grant access to privileged operations "
28001"in a structured way. By querying the Polkit service, a privileged system "
28002"component can know when it should grant additional capabilities to ordinary "
28003"users. For example, an ordinary user can be granted the capability to "
28004"suspend the system if the user is logged in locally."
b9fe8fd6
JL
28005msgstr ""
28006
28007#. type: deffn
39764ef8 28008#: doc/guix.texi:12727
b9fe8fd6
JL
28009#, no-wrap
28010msgid "{Scheme Procedure} upower-service [#:upower @var{upower}] @"
28011msgstr ""
28012
28013#. type: deffn
39764ef8 28014#: doc/guix.texi:12744
b9fe8fd6 28015msgid ""
39764ef8
JL
28016"[#:watts-up-pro? #f] @ [#:poll-batteries? #t] @ [#:ignore-lid? #f] @ [#:use-"
28017"percentage-for-policy? #f] @ [#:percentage-low 10] @ [#:percentage-critical "
28018"3] @ [#:percentage-action 2] @ [#:time-low 1200] @ [#:time-critical 300] @ "
28019"[#:time-action 120] @ [#:critical-power-action 'hybrid-sleep] Return a "
28020"service that runs @uref{http://upower.freedesktop.org/, @command{upowerd}}, "
28021"a system-wide monitor for power consumption and battery levels, with the "
28022"given configuration settings. It implements the @code{org.freedesktop."
28023"UPower} D-Bus interface, and is notably used by GNOME."
b9fe8fd6
JL
28024msgstr ""
28025
28026#. type: deffn
39764ef8 28027#: doc/guix.texi:12746
b9fe8fd6
JL
28028#, no-wrap
28029msgid "{Scheme Procedure} udisks-service [#:udisks @var{udisks}]"
28030msgstr ""
28031
28032#. type: deffn
39764ef8 28033#: doc/guix.texi:12751
b9fe8fd6
JL
28034msgid ""
28035"Return a service for @uref{http://udisks.freedesktop.org/docs/latest/, "
28036"UDisks}, a @dfn{disk management} daemon that provides user interfaces with "
28037"notifications and ways to mount/unmount disks. Programs that talk to UDisks "
28038"include the @command{udisksctl} command, part of UDisks, and GNOME Disks."
28039msgstr ""
28040
28041#. type: deffn
39764ef8 28042#: doc/guix.texi:12753
b9fe8fd6
JL
28043#, no-wrap
28044msgid "{Scheme Procedure} colord-service [#:colord @var{colord}]"
28045msgstr ""
28046
28047#. type: deffn
39764ef8 28048#: doc/guix.texi:12759
b9fe8fd6
JL
28049msgid ""
28050"Return a service that runs @command{colord}, a system service with a D-Bus "
28051"interface to manage the color profiles of input and output devices such as "
28052"screens and scanners. It is notably used by the GNOME Color Manager "
28053"graphical tool. See @uref{http://www.freedesktop.org/software/colord/, the "
28054"colord web site} for more information."
28055msgstr ""
28056
28057#. type: deffn
39764ef8 28058#: doc/guix.texi:12761
b9fe8fd6 28059#, no-wrap
39764ef8 28060msgid "{Scheme Procedure} geoclue-application name [#:allowed? #t] [#:system? #f] [#:users '()]"
b9fe8fd6
JL
28061msgstr ""
28062
28063#. type: deffn
39764ef8 28064#: doc/guix.texi:12770
b9fe8fd6
JL
28065msgid ""
28066"Return a configuration allowing an application to access GeoClue location "
39764ef8
JL
28067"data. @var{name} is the Desktop ID of the application, without the @code{."
28068"desktop} part. If @var{allowed?} is true, the application will have access "
28069"to location information by default. The boolean @var{system?} value "
b9fe8fd6
JL
28070"indicates whether an application is a system component or not. Finally "
28071"@var{users} is a list of UIDs of all users for which this application is "
28072"allowed location info access. An empty users list means that all users are "
28073"allowed."
28074msgstr ""
28075
28076#. type: defvr
39764ef8 28077#: doc/guix.texi:12772
b9fe8fd6
JL
28078#, no-wrap
28079msgid "{Scheme Variable} %standard-geoclue-applications"
28080msgstr ""
28081
28082#. type: defvr
39764ef8 28083#: doc/guix.texi:12779
b9fe8fd6
JL
28084msgid ""
28085"The standard list of well-known GeoClue application configurations, granting "
28086"authority to the GNOME date-and-time utility to ask for the current location "
28087"in order to set the time zone, and allowing the IceCat and Epiphany web "
28088"browsers to request location information. IceCat and Epiphany both query "
28089"the user before allowing a web page to know the user's location."
28090msgstr ""
28091
28092#. type: deffn
39764ef8 28093#: doc/guix.texi:12781
b9fe8fd6
JL
28094#, no-wrap
28095msgid "{Scheme Procedure} geoclue-service [#:colord @var{colord}] @"
28096msgstr ""
28097
28098#. type: deffn
39764ef8 28099#: doc/guix.texi:12794
b9fe8fd6 28100msgid ""
39764ef8
JL
28101"[#:whitelist '()] @ [#:wifi-geolocation-url \"https://location.services."
28102"mozilla.com/v1/geolocate?key=geoclue\"] @ [#:submit-data? #f] [#:wifi-"
28103"submission-url \"https://location.services.mozilla.com/v1/submit?key=geoclue"
28104"\"] @ [#:submission-nick \"geoclue\"] @ [#:applications %standard-geoclue-"
28105"applications] Return a service that runs the GeoClue location service. This "
28106"service provides a D-Bus interface to allow applications to request access "
28107"to a user's physical location, and optionally to add information to online "
28108"location databases. See @uref{https://wiki.freedesktop.org/www/Software/"
28109"GeoClue/, the GeoClue web site} for more information."
b9fe8fd6
JL
28110msgstr ""
28111
28112#. type: deffn
39764ef8 28113#: doc/guix.texi:12796
b9fe8fd6
JL
28114#, no-wrap
28115msgid "{Scheme Procedure} bluetooth-service [#:bluez @var{bluez}] @"
28116msgstr ""
28117
28118#. type: deffn
39764ef8 28119#: doc/guix.texi:12803
b9fe8fd6
JL
28120msgid ""
28121"[@w{#:auto-enable? #f}] Return a service that runs the @command{bluetoothd} "
39764ef8
JL
28122"daemon, which manages all the Bluetooth devices and provides a number of D-"
28123"Bus interfaces. When AUTO-ENABLE? is true, the bluetooth controller is "
b9fe8fd6
JL
28124"powered automatically at boot, which can be useful when using a bluetooth "
28125"keyboard or mouse."
28126msgstr ""
28127
28128#. type: deffn
39764ef8 28129#: doc/guix.texi:12805
b9fe8fd6
JL
28130msgid "Users need to be in the @code{lp} group to access the D-Bus service."
28131msgstr ""
28132
28133#. type: cindex
39764ef8 28134#: doc/guix.texi:12811
b9fe8fd6
JL
28135#, no-wrap
28136msgid "SQL"
28137msgstr ""
28138
28139#. type: Plain text
39764ef8
JL
28140#: doc/guix.texi:12813
28141msgid ""
28142"The @code{(gnu services databases)} module provides the following services."
b9fe8fd6
JL
28143msgstr ""
28144
28145#. type: deffn
39764ef8 28146#: doc/guix.texi:12814
b9fe8fd6
JL
28147#, no-wrap
28148msgid "{Scheme Procedure} postgresql-service [#:postgresql postgresql] @"
28149msgstr ""
28150
28151#. type: deffn
39764ef8 28152#: doc/guix.texi:12819
b9fe8fd6
JL
28153msgid ""
28154"[#:config-file] [#:data-directory ``/var/lib/postgresql/data''] @ [#:port "
28155"5432] [#:locale ``en_US.utf8''] Return a service that runs @var{postgresql}, "
28156"the PostgreSQL database server."
28157msgstr ""
28158
28159#. type: deffn
39764ef8 28160#: doc/guix.texi:12823
b9fe8fd6 28161msgid ""
39764ef8
JL
28162"The PostgreSQL daemon loads its runtime configuration from @var{config-"
28163"file}, creates a database cluster with @var{locale} as the default locale, "
28164"stored in @var{data-directory}. It then listens on @var{port}."
b9fe8fd6
JL
28165msgstr ""
28166
28167#. type: deffn
39764ef8 28168#: doc/guix.texi:12825
b9fe8fd6
JL
28169#, no-wrap
28170msgid "{Scheme Procedure} mysql-service [#:config (mysql-configuration)]"
28171msgstr ""
28172
28173#. type: deffn
39764ef8 28174#: doc/guix.texi:12828
b9fe8fd6
JL
28175msgid ""
28176"Return a service that runs @command{mysqld}, the MySQL or MariaDB database "
28177"server."
28178msgstr ""
28179
28180#. type: deffn
39764ef8 28181#: doc/guix.texi:12831
b9fe8fd6
JL
28182msgid ""
28183"The optional @var{config} argument specifies the configuration for "
28184"@command{mysqld}, which should be a @code{<mysql-configuration>} object."
28185msgstr ""
28186
28187#. type: deftp
39764ef8 28188#: doc/guix.texi:12833
b9fe8fd6
JL
28189#, no-wrap
28190msgid "{Data Type} mysql-configuration"
28191msgstr ""
28192
28193#. type: deftp
39764ef8 28194#: doc/guix.texi:12835
b9fe8fd6
JL
28195msgid "Data type representing the configuration of @var{mysql-service}."
28196msgstr ""
28197
28198#. type: item
39764ef8 28199#: doc/guix.texi:12837
b9fe8fd6
JL
28200#, no-wrap
28201msgid "@code{mysql} (default: @var{mariadb})"
28202msgstr ""
28203
28204#. type: table
39764ef8 28205#: doc/guix.texi:12840
b9fe8fd6
JL
28206msgid ""
28207"Package object of the MySQL database server, can be either @var{mariadb} or "
28208"@var{mysql}."
28209msgstr ""
28210
28211#. type: table
39764ef8 28212#: doc/guix.texi:12843
b9fe8fd6
JL
28213msgid ""
28214"For MySQL, a temporary root password will be displayed at activation time. "
28215"For MariaDB, the root password is empty."
28216msgstr ""
28217
28218#. type: item
39764ef8 28219#: doc/guix.texi:12844
b9fe8fd6
JL
28220#, no-wrap
28221msgid "@code{port} (default: @code{3306})"
28222msgstr ""
28223
28224#. type: table
39764ef8 28225#: doc/guix.texi:12846
b9fe8fd6
JL
28226msgid "TCP port on which the database server listens for incoming connections."
28227msgstr ""
28228
28229#. type: defvr
39764ef8 28230#: doc/guix.texi:12849
b9fe8fd6
JL
28231#, no-wrap
28232msgid "{Scheme Variable} memcached-service-type"
28233msgstr ""
28234
28235#. type: defvr
39764ef8 28236#: doc/guix.texi:12853
b9fe8fd6
JL
28237msgid ""
28238"This is the service type for the @uref{https://memcached.org/, Memcached} "
28239"service, which provides a distributed in memory cache. The value for the "
28240"service type is a @code{memcached-configuration} object."
28241msgstr ""
28242
28243#. type: example
39764ef8 28244#: doc/guix.texi:12857
b9fe8fd6
JL
28245#, no-wrap
28246msgid "(service memcached-service-type)\n"
28247msgstr ""
28248
28249#. type: deftp
39764ef8 28250#: doc/guix.texi:12859
b9fe8fd6
JL
28251#, no-wrap
28252msgid "{Data Type} memcached-configuration"
28253msgstr ""
28254
28255#. type: deftp
39764ef8 28256#: doc/guix.texi:12861
b9fe8fd6
JL
28257msgid "Data type representing the configuration of memcached."
28258msgstr ""
28259
28260#. type: item
39764ef8 28261#: doc/guix.texi:12863
b9fe8fd6
JL
28262#, no-wrap
28263msgid "@code{memcached} (default: @code{memcached})"
28264msgstr ""
28265
28266#. type: table
39764ef8 28267#: doc/guix.texi:12865
b9fe8fd6
JL
28268msgid "The Memcached package to use."
28269msgstr ""
28270
28271#. type: item
39764ef8 28272#: doc/guix.texi:12866
b9fe8fd6
JL
28273#, no-wrap
28274msgid "@code{interfaces} (default: @code{'(\"0.0.0.0\")})"
28275msgstr ""
28276
28277#. type: table
39764ef8 28278#: doc/guix.texi:12868
b9fe8fd6
JL
28279msgid "Network interfaces on which to listen."
28280msgstr ""
28281
28282#. type: item
39764ef8 28283#: doc/guix.texi:12869
b9fe8fd6
JL
28284#, no-wrap
28285msgid "@code{tcp-port} (default: @code{11211})"
28286msgstr ""
28287
28288#. type: table
39764ef8 28289#: doc/guix.texi:12871
b9fe8fd6
JL
28290msgid "Port on which to accept connections on,"
28291msgstr ""
28292
28293#. type: item
39764ef8 28294#: doc/guix.texi:12872
b9fe8fd6
JL
28295#, no-wrap
28296msgid "@code{udp-port} (default: @code{11211})"
28297msgstr ""
28298
28299#. type: table
39764ef8 28300#: doc/guix.texi:12875
b9fe8fd6
JL
28301msgid ""
28302"Port on which to accept UDP connections on, a value of 0 will disable "
28303"listening on a UDP socket."
28304msgstr ""
28305
28306#. type: item
39764ef8 28307#: doc/guix.texi:12876
b9fe8fd6
JL
28308#, no-wrap
28309msgid "@code{additional-options} (default: @code{'()})"
28310msgstr ""
28311
28312#. type: table
39764ef8 28313#: doc/guix.texi:12878
b9fe8fd6
JL
28314msgid "Additional command line options to pass to @code{memcached}."
28315msgstr ""
28316
28317#. type: defvr
39764ef8 28318#: doc/guix.texi:12881
b9fe8fd6
JL
28319#, no-wrap
28320msgid "{Scheme Variable} mongodb-service-type"
28321msgstr ""
28322
28323#. type: defvr
39764ef8 28324#: doc/guix.texi:12884
b9fe8fd6
JL
28325msgid ""
28326"This is the service type for @uref{https://www.mongodb.com/, MongoDB}. The "
28327"value for the service type is a @code{mongodb-configuration} object."
28328msgstr ""
28329
28330#. type: example
39764ef8 28331#: doc/guix.texi:12888
b9fe8fd6
JL
28332#, no-wrap
28333msgid "(service mongodb-service-type)\n"
28334msgstr ""
28335
28336#. type: deftp
39764ef8 28337#: doc/guix.texi:12890
b9fe8fd6
JL
28338#, no-wrap
28339msgid "{Data Type} mongodb-configuration"
28340msgstr ""
28341
28342#. type: deftp
39764ef8 28343#: doc/guix.texi:12892
b9fe8fd6
JL
28344msgid "Data type representing the configuration of mongodb."
28345msgstr ""
28346
28347#. type: item
39764ef8 28348#: doc/guix.texi:12894
b9fe8fd6
JL
28349#, no-wrap
28350msgid "@code{mongodb} (default: @code{mongodb})"
28351msgstr ""
28352
28353#. type: table
39764ef8 28354#: doc/guix.texi:12896
b9fe8fd6
JL
28355msgid "The MongoDB package to use."
28356msgstr ""
28357
28358#. type: item
39764ef8 28359#: doc/guix.texi:12897
b9fe8fd6
JL
28360#, no-wrap
28361msgid "@code{config-file} (default: @code{%default-mongodb-configuration-file})"
28362msgstr ""
28363
28364#. type: table
39764ef8 28365#: doc/guix.texi:12899
b9fe8fd6
JL
28366msgid "The configuration file for MongoDB."
28367msgstr ""
28368
28369#. type: item
39764ef8 28370#: doc/guix.texi:12900
b9fe8fd6
JL
28371#, no-wrap
28372msgid "@code{data-directory} (default: @code{\"/var/lib/mongodb\"})"
28373msgstr ""
28374
28375#. type: table
39764ef8 28376#: doc/guix.texi:12904
b9fe8fd6
JL
28377msgid ""
28378"This value is used to create the directory, so that it exists and is owned "
28379"by the mongodb user. It should match the data-directory which MongoDB is "
28380"configured to use through the configuration file."
28381msgstr ""
28382
28383#. type: defvr
39764ef8 28384#: doc/guix.texi:12907
b9fe8fd6
JL
28385#, no-wrap
28386msgid "{Scheme Variable} redis-service-type"
28387msgstr ""
28388
28389#. type: defvr
39764ef8 28390#: doc/guix.texi:12910
b9fe8fd6
JL
28391msgid ""
28392"This is the service type for the @uref{https://redis.io/, Redis} key/value "
28393"store, whose value is a @code{redis-configuration} object."
28394msgstr ""
28395
28396#. type: deftp
39764ef8 28397#: doc/guix.texi:12912
b9fe8fd6
JL
28398#, no-wrap
28399msgid "{Data Type} redis-configuration"
28400msgstr ""
28401
28402#. type: deftp
39764ef8 28403#: doc/guix.texi:12914
b9fe8fd6
JL
28404msgid "Data type representing the configuration of redis."
28405msgstr ""
28406
28407#. type: item
39764ef8 28408#: doc/guix.texi:12916
b9fe8fd6
JL
28409#, no-wrap
28410msgid "@code{redis} (default: @code{redis})"
28411msgstr ""
28412
28413#. type: table
39764ef8 28414#: doc/guix.texi:12918
b9fe8fd6
JL
28415msgid "The Redis package to use."
28416msgstr ""
28417
28418#. type: item
39764ef8 28419#: doc/guix.texi:12919
b9fe8fd6
JL
28420#, no-wrap
28421msgid "@code{bind} (default: @code{\"127.0.0.1\"})"
28422msgstr ""
28423
28424#. type: table
39764ef8 28425#: doc/guix.texi:12921
b9fe8fd6
JL
28426msgid "Network interface on which to listen."
28427msgstr ""
28428
28429#. type: item
39764ef8 28430#: doc/guix.texi:12922
b9fe8fd6
JL
28431#, no-wrap
28432msgid "@code{port} (default: @code{6379})"
28433msgstr ""
28434
28435#. type: table
39764ef8 28436#: doc/guix.texi:12925
b9fe8fd6
JL
28437msgid ""
28438"Port on which to accept connections on, a value of 0 will disable listening "
28439"on a TCP socket."
28440msgstr ""
28441
28442#. type: item
39764ef8 28443#: doc/guix.texi:12926
b9fe8fd6
JL
28444#, no-wrap
28445msgid "@code{working-directory} (default: @code{\"/var/lib/redis\"})"
28446msgstr ""
28447
28448#. type: table
39764ef8 28449#: doc/guix.texi:12928
b9fe8fd6
JL
28450msgid "Directory in which to store the database and related files."
28451msgstr ""
28452
28453#. type: cindex
39764ef8 28454#: doc/guix.texi:12934
b9fe8fd6
JL
28455#, no-wrap
28456msgid "mail"
28457msgstr ""
28458
28459#. type: code{#1}
39764ef8 28460#: doc/guix.texi:12935 doc/guix.texi:16030
b9fe8fd6
JL
28461#, no-wrap
28462msgid "email"
28463msgstr ""
28464
28465#. type: Plain text
39764ef8 28466#: doc/guix.texi:12940
b9fe8fd6
JL
28467msgid ""
28468"The @code{(gnu services mail)} module provides Guix service definitions for "
28469"email services: IMAP, POP3, and LMTP servers, as well as mail transport "
28470"agents (MTAs). Lots of acronyms! These services are detailed in the "
28471"subsections below."
28472msgstr ""
28473
28474#. type: subsubheading
39764ef8 28475#: doc/guix.texi:12941
b9fe8fd6
JL
28476#, no-wrap
28477msgid "Dovecot Service"
28478msgstr ""
28479
28480#. type: deffn
39764ef8 28481#: doc/guix.texi:12943
b9fe8fd6
JL
28482#, no-wrap
28483msgid "{Scheme Procedure} dovecot-service [#:config (dovecot-configuration)]"
28484msgstr ""
28485
28486#. type: deffn
39764ef8 28487#: doc/guix.texi:12945
b9fe8fd6
JL
28488msgid "Return a service that runs the Dovecot IMAP/POP3/LMTP mail server."
28489msgstr ""
28490
28491#. type: Plain text
39764ef8 28492#: doc/guix.texi:12955
b9fe8fd6
JL
28493msgid ""
28494"By default, Dovecot does not need much configuration; the default "
28495"configuration object created by @code{(dovecot-configuration)} will suffice "
28496"if your mail is delivered to @code{~/Maildir}. A self-signed certificate "
28497"will be generated for TLS-protected connections, though Dovecot will also "
28498"listen on cleartext ports by default. There are a number of options, "
28499"though, which mail administrators might need to change, and as is the case "
28500"with other services, Guix allows the system administrator to specify these "
28501"parameters via a uniform Scheme interface."
28502msgstr ""
28503
28504#. type: Plain text
39764ef8 28505#: doc/guix.texi:12958
b9fe8fd6
JL
28506msgid ""
28507"For example, to specify that mail is located at @code{maildir~/.mail}, one "
28508"would instantiate the Dovecot service like this:"
28509msgstr ""
28510
28511#. type: example
39764ef8 28512#: doc/guix.texi:12963
b9fe8fd6
JL
28513#, no-wrap
28514msgid ""
28515"(dovecot-service #:config\n"
28516" (dovecot-configuration\n"
28517" (mail-location \"maildir:~/.mail\")))\n"
28518msgstr ""
28519
28520#. type: Plain text
39764ef8 28521#: doc/guix.texi:12971
b9fe8fd6
JL
28522msgid ""
28523"The available configuration parameters follow. Each parameter definition is "
28524"preceded by its type; for example, @samp{string-list foo} indicates that the "
28525"@code{foo} parameter should be specified as a list of strings. There is "
28526"also a way to specify the configuration as a string, if you have an old "
28527"@code{dovecot.conf} file that you want to port over from some other system; "
28528"see the end for more details."
28529msgstr ""
28530
28531#. type: Plain text
39764ef8 28532#: doc/guix.texi:12981
b9fe8fd6
JL
28533msgid "Available @code{dovecot-configuration} fields are:"
28534msgstr ""
28535
28536#. type: deftypevr
39764ef8 28537#: doc/guix.texi:12982
b9fe8fd6
JL
28538#, no-wrap
28539msgid "{@code{dovecot-configuration} parameter} package dovecot"
28540msgstr ""
28541
28542#. type: deftypevr
39764ef8 28543#: doc/guix.texi:12984 doc/guix.texi:14271
b9fe8fd6
JL
28544msgid "The dovecot package."
28545msgstr ""
28546
28547#. type: deftypevr
39764ef8 28548#: doc/guix.texi:12986
b9fe8fd6
JL
28549#, no-wrap
28550msgid "{@code{dovecot-configuration} parameter} comma-separated-string-list listen"
28551msgstr ""
28552
28553#. type: deftypevr
39764ef8 28554#: doc/guix.texi:12992
b9fe8fd6
JL
28555msgid ""
28556"A list of IPs or hosts where to listen for connections. @samp{*} listens on "
28557"all IPv4 interfaces, @samp{::} listens on all IPv6 interfaces. If you want "
28558"to specify non-default ports or anything more complex, customize the address "
28559"and port fields of the @samp{inet-listener} of the specific services you are "
28560"interested in."
28561msgstr ""
28562
28563#. type: deftypevr
39764ef8 28564#: doc/guix.texi:12994
b9fe8fd6 28565#, no-wrap
39764ef8 28566msgid "{@code{dovecot-configuration} parameter} protocol-configuration-list protocols"
b9fe8fd6
JL
28567msgstr ""
28568
28569#. type: deftypevr
39764ef8 28570#: doc/guix.texi:12997
b9fe8fd6
JL
28571msgid ""
28572"List of protocols we want to serve. Available protocols include "
28573"@samp{imap}, @samp{pop3}, and @samp{lmtp}."
28574msgstr ""
28575
28576#. type: deftypevr
39764ef8 28577#: doc/guix.texi:12999
b9fe8fd6
JL
28578msgid "Available @code{protocol-configuration} fields are:"
28579msgstr ""
28580
28581#. type: deftypevr
39764ef8 28582#: doc/guix.texi:13000
b9fe8fd6
JL
28583#, no-wrap
28584msgid "{@code{protocol-configuration} parameter} string name"
28585msgstr ""
28586
28587#. type: deftypevr
39764ef8 28588#: doc/guix.texi:13002
b9fe8fd6
JL
28589msgid "The name of the protocol."
28590msgstr ""
28591
28592#. type: deftypevr
39764ef8 28593#: doc/guix.texi:13004
b9fe8fd6
JL
28594#, no-wrap
28595msgid "{@code{protocol-configuration} parameter} string auth-socket-path"
28596msgstr ""
28597
28598#. type: deftypevr
39764ef8 28599#: doc/guix.texi:13008
b9fe8fd6
JL
28600msgid ""
28601"UNIX socket path to the master authentication server to find users. This is "
39764ef8
JL
28602"used by imap (for shared users) and lda. It defaults to @samp{\"/var/run/"
28603"dovecot/auth-userdb\"}."
b9fe8fd6
JL
28604msgstr ""
28605
28606#. type: deftypevr
39764ef8 28607#: doc/guix.texi:13010
b9fe8fd6 28608#, no-wrap
39764ef8 28609msgid "{@code{protocol-configuration} parameter} space-separated-string-list mail-plugins"
b9fe8fd6
JL
28610msgstr ""
28611
28612#. type: deftypevr
39764ef8 28613#: doc/guix.texi:13012
b9fe8fd6
JL
28614msgid "Space separated list of plugins to load."
28615msgstr ""
28616
28617#. type: deftypevr
39764ef8 28618#: doc/guix.texi:13014
b9fe8fd6 28619#, no-wrap
39764ef8 28620msgid "{@code{protocol-configuration} parameter} non-negative-integer mail-max-userip-connections"
b9fe8fd6
JL
28621msgstr ""
28622
28623#. type: deftypevr
39764ef8 28624#: doc/guix.texi:13018
b9fe8fd6
JL
28625msgid ""
28626"Maximum number of IMAP connections allowed for a user from each IP address. "
28627"NOTE: The username is compared case-sensitively. Defaults to @samp{10}."
28628msgstr ""
28629
28630#. type: deftypevr
39764ef8 28631#: doc/guix.texi:13022
b9fe8fd6
JL
28632#, no-wrap
28633msgid "{@code{dovecot-configuration} parameter} service-configuration-list services"
28634msgstr ""
28635
28636#. type: deftypevr
39764ef8 28637#: doc/guix.texi:13026
b9fe8fd6
JL
28638msgid ""
28639"List of services to enable. Available services include @samp{imap}, "
28640"@samp{imap-login}, @samp{pop3}, @samp{pop3-login}, @samp{auth}, and "
28641"@samp{lmtp}."
28642msgstr ""
28643
28644#. type: deftypevr
39764ef8 28645#: doc/guix.texi:13028
b9fe8fd6
JL
28646msgid "Available @code{service-configuration} fields are:"
28647msgstr ""
28648
28649#. type: deftypevr
39764ef8 28650#: doc/guix.texi:13029
b9fe8fd6
JL
28651#, no-wrap
28652msgid "{@code{service-configuration} parameter} string kind"
28653msgstr ""
28654
28655#. type: deftypevr
39764ef8 28656#: doc/guix.texi:13034
b9fe8fd6
JL
28657msgid ""
28658"The service kind. Valid values include @code{director}, @code{imap-login}, "
28659"@code{pop3-login}, @code{lmtp}, @code{imap}, @code{pop3}, @code{auth}, "
28660"@code{auth-worker}, @code{dict}, @code{tcpwrap}, @code{quota-warning}, or "
28661"anything else."
28662msgstr ""
28663
28664#. type: deftypevr
39764ef8 28665#: doc/guix.texi:13036
b9fe8fd6 28666#, no-wrap
39764ef8 28667msgid "{@code{service-configuration} parameter} listener-configuration-list listeners"
b9fe8fd6
JL
28668msgstr ""
28669
28670#. type: deftypevr
39764ef8 28671#: doc/guix.texi:13041
b9fe8fd6 28672msgid ""
39764ef8
JL
28673"Listeners for the service. A listener is either a @code{unix-listener-"
28674"configuration}, a @code{fifo-listener-configuration}, or an @code{inet-"
28675"listener-configuration}. Defaults to @samp{()}."
b9fe8fd6
JL
28676msgstr ""
28677
28678#. type: deftypevr
39764ef8 28679#: doc/guix.texi:13043
b9fe8fd6
JL
28680msgid "Available @code{unix-listener-configuration} fields are:"
28681msgstr ""
28682
28683#. type: deftypevr
39764ef8 28684#: doc/guix.texi:13044
b9fe8fd6
JL
28685#, no-wrap
28686msgid "{@code{unix-listener-configuration} parameter} string path"
28687msgstr ""
28688
28689#. type: deftypevr
39764ef8 28690#: doc/guix.texi:13047 doc/guix.texi:13070
b9fe8fd6
JL
28691msgid ""
28692"Path to the file, relative to @code{base-dir} field. This is also used as "
28693"the section name."
28694msgstr ""
28695
28696#. type: deftypevr
39764ef8 28697#: doc/guix.texi:13049
b9fe8fd6
JL
28698#, no-wrap
28699msgid "{@code{unix-listener-configuration} parameter} string mode"
28700msgstr ""
28701
28702#. type: deftypevr
39764ef8 28703#: doc/guix.texi:13052 doc/guix.texi:13075
b9fe8fd6
JL
28704msgid "The access mode for the socket. Defaults to @samp{\"0600\"}."
28705msgstr ""
28706
28707#. type: deftypevr
39764ef8 28708#: doc/guix.texi:13054
b9fe8fd6
JL
28709#, no-wrap
28710msgid "{@code{unix-listener-configuration} parameter} string user"
28711msgstr ""
28712
28713#. type: deftypevr
39764ef8 28714#: doc/guix.texi:13057 doc/guix.texi:13080
b9fe8fd6
JL
28715msgid "The user to own the socket. Defaults to @samp{\"\"}."
28716msgstr ""
28717
28718#. type: deftypevr
39764ef8 28719#: doc/guix.texi:13059
b9fe8fd6
JL
28720#, no-wrap
28721msgid "{@code{unix-listener-configuration} parameter} string group"
28722msgstr ""
28723
28724#. type: deftypevr
39764ef8 28725#: doc/guix.texi:13062 doc/guix.texi:13085
b9fe8fd6
JL
28726msgid "The group to own the socket. Defaults to @samp{\"\"}."
28727msgstr ""
28728
28729#. type: deftypevr
39764ef8 28730#: doc/guix.texi:13066
b9fe8fd6
JL
28731msgid "Available @code{fifo-listener-configuration} fields are:"
28732msgstr ""
28733
28734#. type: deftypevr
39764ef8 28735#: doc/guix.texi:13067
b9fe8fd6
JL
28736#, no-wrap
28737msgid "{@code{fifo-listener-configuration} parameter} string path"
28738msgstr ""
28739
28740#. type: deftypevr
39764ef8 28741#: doc/guix.texi:13072
b9fe8fd6
JL
28742#, no-wrap
28743msgid "{@code{fifo-listener-configuration} parameter} string mode"
28744msgstr ""
28745
28746#. type: deftypevr
39764ef8 28747#: doc/guix.texi:13077
b9fe8fd6
JL
28748#, no-wrap
28749msgid "{@code{fifo-listener-configuration} parameter} string user"
28750msgstr ""
28751
28752#. type: deftypevr
39764ef8 28753#: doc/guix.texi:13082
b9fe8fd6
JL
28754#, no-wrap
28755msgid "{@code{fifo-listener-configuration} parameter} string group"
28756msgstr ""
28757
28758#. type: deftypevr
39764ef8 28759#: doc/guix.texi:13089
b9fe8fd6
JL
28760msgid "Available @code{inet-listener-configuration} fields are:"
28761msgstr ""
28762
28763#. type: deftypevr
39764ef8 28764#: doc/guix.texi:13090
b9fe8fd6
JL
28765#, no-wrap
28766msgid "{@code{inet-listener-configuration} parameter} string protocol"
28767msgstr ""
28768
28769#. type: deftypevr
39764ef8 28770#: doc/guix.texi:13092
b9fe8fd6
JL
28771msgid "The protocol to listen for."
28772msgstr ""
28773
28774#. type: deftypevr
39764ef8 28775#: doc/guix.texi:13094
b9fe8fd6
JL
28776#, no-wrap
28777msgid "{@code{inet-listener-configuration} parameter} string address"
28778msgstr ""
28779
28780#. type: deftypevr
39764ef8 28781#: doc/guix.texi:13097
b9fe8fd6
JL
28782msgid ""
28783"The address on which to listen, or empty for all addresses. Defaults to "
28784"@samp{\"\"}."
28785msgstr ""
28786
28787#. type: deftypevr
39764ef8 28788#: doc/guix.texi:13099
b9fe8fd6
JL
28789#, no-wrap
28790msgid "{@code{inet-listener-configuration} parameter} non-negative-integer port"
28791msgstr ""
28792
28793#. type: deftypevr
39764ef8 28794#: doc/guix.texi:13101
b9fe8fd6
JL
28795msgid "The port on which to listen."
28796msgstr ""
28797
28798#. type: deftypevr
39764ef8 28799#: doc/guix.texi:13103
b9fe8fd6
JL
28800#, no-wrap
28801msgid "{@code{inet-listener-configuration} parameter} boolean ssl?"
28802msgstr ""
28803
28804#. type: deftypevr
39764ef8 28805#: doc/guix.texi:13107
b9fe8fd6
JL
28806msgid ""
28807"Whether to use SSL for this service; @samp{yes}, @samp{no}, or "
28808"@samp{required}. Defaults to @samp{#t}."
28809msgstr ""
28810
28811#. type: deftypevr
39764ef8 28812#: doc/guix.texi:13111
b9fe8fd6
JL
28813#, no-wrap
28814msgid "{@code{service-configuration} parameter} non-negative-integer service-count"
28815msgstr ""
28816
28817#. type: deftypevr
39764ef8 28818#: doc/guix.texi:13116
b9fe8fd6
JL
28819msgid ""
28820"Number of connections to handle before starting a new process. Typically "
28821"the only useful values are 0 (unlimited) or 1. 1 is more secure, but 0 is "
28822"faster. <doc/wiki/LoginProcess.txt>. Defaults to @samp{1}."
28823msgstr ""
28824
28825#. type: deftypevr
39764ef8 28826#: doc/guix.texi:13118
b9fe8fd6 28827#, no-wrap
39764ef8 28828msgid "{@code{service-configuration} parameter} non-negative-integer process-min-avail"
b9fe8fd6
JL
28829msgstr ""
28830
28831#. type: deftypevr
39764ef8 28832#: doc/guix.texi:13121
b9fe8fd6
JL
28833msgid ""
28834"Number of processes to always keep waiting for more connections. Defaults "
28835"to @samp{0}."
28836msgstr ""
28837
28838#. type: deftypevr
39764ef8 28839#: doc/guix.texi:13123
b9fe8fd6
JL
28840#, no-wrap
28841msgid "{@code{service-configuration} parameter} non-negative-integer vsz-limit"
28842msgstr ""
28843
28844#. type: deftypevr
39764ef8 28845#: doc/guix.texi:13127
b9fe8fd6
JL
28846msgid ""
28847"If you set @samp{service-count 0}, you probably need to grow this. Defaults "
28848"to @samp{256000000}."
28849msgstr ""
28850
28851#. type: deftypevr
39764ef8 28852#: doc/guix.texi:13131
b9fe8fd6
JL
28853#, no-wrap
28854msgid "{@code{dovecot-configuration} parameter} dict-configuration dict"
28855msgstr ""
28856
28857#. type: deftypevr
39764ef8
JL
28858#: doc/guix.texi:13134
28859msgid ""
28860"Dict configuration, as created by the @code{dict-configuration} constructor."
b9fe8fd6
JL
28861msgstr ""
28862
28863#. type: deftypevr
39764ef8 28864#: doc/guix.texi:13136
b9fe8fd6
JL
28865msgid "Available @code{dict-configuration} fields are:"
28866msgstr ""
28867
28868#. type: deftypevr
39764ef8 28869#: doc/guix.texi:13137
b9fe8fd6
JL
28870#, no-wrap
28871msgid "{@code{dict-configuration} parameter} free-form-fields entries"
28872msgstr ""
28873
28874#. type: deftypevr
39764ef8 28875#: doc/guix.texi:13140
b9fe8fd6 28876msgid ""
39764ef8 28877"A list of key-value pairs that this dict should hold. Defaults to @samp{()}."
b9fe8fd6
JL
28878msgstr ""
28879
28880#. type: deftypevr
39764ef8 28881#: doc/guix.texi:13144
b9fe8fd6
JL
28882#, no-wrap
28883msgid "{@code{dovecot-configuration} parameter} passdb-configuration-list passdbs"
28884msgstr ""
28885
28886#. type: deftypevr
39764ef8 28887#: doc/guix.texi:13147
b9fe8fd6 28888msgid ""
39764ef8
JL
28889"A list of passdb configurations, each one created by the @code{passdb-"
28890"configuration} constructor."
b9fe8fd6
JL
28891msgstr ""
28892
28893#. type: deftypevr
39764ef8 28894#: doc/guix.texi:13149
b9fe8fd6
JL
28895msgid "Available @code{passdb-configuration} fields are:"
28896msgstr ""
28897
28898#. type: deftypevr
39764ef8 28899#: doc/guix.texi:13150
b9fe8fd6
JL
28900#, no-wrap
28901msgid "{@code{passdb-configuration} parameter} string driver"
28902msgstr ""
28903
28904#. type: deftypevr
39764ef8 28905#: doc/guix.texi:13155
b9fe8fd6
JL
28906msgid ""
28907"The driver that the passdb should use. Valid values include @samp{pam}, "
28908"@samp{passwd}, @samp{shadow}, @samp{bsdauth}, and @samp{static}. Defaults "
28909"to @samp{\"pam\"}."
28910msgstr ""
28911
28912#. type: deftypevr
39764ef8 28913#: doc/guix.texi:13157
b9fe8fd6
JL
28914#, no-wrap
28915msgid "{@code{passdb-configuration} parameter} space-separated-string-list args"
28916msgstr ""
28917
28918#. type: deftypevr
39764ef8 28919#: doc/guix.texi:13160
b9fe8fd6
JL
28920msgid ""
28921"Space separated list of arguments to the passdb driver. Defaults to "
28922"@samp{\"\"}."
28923msgstr ""
28924
28925#. type: deftypevr
39764ef8 28926#: doc/guix.texi:13164
b9fe8fd6
JL
28927#, no-wrap
28928msgid "{@code{dovecot-configuration} parameter} userdb-configuration-list userdbs"
28929msgstr ""
28930
28931#. type: deftypevr
39764ef8 28932#: doc/guix.texi:13167
b9fe8fd6 28933msgid ""
39764ef8
JL
28934"List of userdb configurations, each one created by the @code{userdb-"
28935"configuration} constructor."
b9fe8fd6
JL
28936msgstr ""
28937
28938#. type: deftypevr
39764ef8 28939#: doc/guix.texi:13169
b9fe8fd6
JL
28940msgid "Available @code{userdb-configuration} fields are:"
28941msgstr ""
28942
28943#. type: deftypevr
39764ef8 28944#: doc/guix.texi:13170
b9fe8fd6
JL
28945#, no-wrap
28946msgid "{@code{userdb-configuration} parameter} string driver"
28947msgstr ""
28948
28949#. type: deftypevr
39764ef8 28950#: doc/guix.texi:13174
b9fe8fd6
JL
28951msgid ""
28952"The driver that the userdb should use. Valid values include @samp{passwd} "
28953"and @samp{static}. Defaults to @samp{\"passwd\"}."
28954msgstr ""
28955
28956#. type: deftypevr
39764ef8 28957#: doc/guix.texi:13176
b9fe8fd6
JL
28958#, no-wrap
28959msgid "{@code{userdb-configuration} parameter} space-separated-string-list args"
28960msgstr ""
28961
28962#. type: deftypevr
39764ef8 28963#: doc/guix.texi:13179
b9fe8fd6
JL
28964msgid ""
28965"Space separated list of arguments to the userdb driver. Defaults to "
28966"@samp{\"\"}."
28967msgstr ""
28968
28969#. type: deftypevr
39764ef8 28970#: doc/guix.texi:13181
b9fe8fd6
JL
28971#, no-wrap
28972msgid "{@code{userdb-configuration} parameter} free-form-args override-fields"
28973msgstr ""
28974
28975#. type: deftypevr
39764ef8 28976#: doc/guix.texi:13184
b9fe8fd6
JL
28977msgid "Override fields from passwd. Defaults to @samp{()}."
28978msgstr ""
28979
28980#. type: deftypevr
39764ef8 28981#: doc/guix.texi:13188
b9fe8fd6 28982#, no-wrap
39764ef8 28983msgid "{@code{dovecot-configuration} parameter} plugin-configuration plugin-configuration"
b9fe8fd6
JL
28984msgstr ""
28985
28986#. type: deftypevr
39764ef8 28987#: doc/guix.texi:13191
b9fe8fd6
JL
28988msgid ""
28989"Plug-in configuration, created by the @code{plugin-configuration} "
28990"constructor."
28991msgstr ""
28992
28993#. type: deftypevr
39764ef8 28994#: doc/guix.texi:13193
b9fe8fd6 28995#, no-wrap
39764ef8 28996msgid "{@code{dovecot-configuration} parameter} list-of-namespace-configuration namespaces"
b9fe8fd6
JL
28997msgstr ""
28998
28999#. type: deftypevr
39764ef8 29000#: doc/guix.texi:13196
b9fe8fd6 29001msgid ""
39764ef8
JL
29002"List of namespaces. Each item in the list is created by the @code{namespace-"
29003"configuration} constructor."
b9fe8fd6
JL
29004msgstr ""
29005
29006#. type: deftypevr
39764ef8 29007#: doc/guix.texi:13198
b9fe8fd6
JL
29008msgid "Available @code{namespace-configuration} fields are:"
29009msgstr ""
29010
29011#. type: deftypevr
39764ef8 29012#: doc/guix.texi:13199
b9fe8fd6
JL
29013#, no-wrap
29014msgid "{@code{namespace-configuration} parameter} string name"
29015msgstr ""
29016
29017#. type: deftypevr
39764ef8 29018#: doc/guix.texi:13201
b9fe8fd6
JL
29019msgid "Name for this namespace."
29020msgstr ""
29021
29022#. type: deftypevr
39764ef8 29023#: doc/guix.texi:13203
b9fe8fd6
JL
29024#, no-wrap
29025msgid "{@code{namespace-configuration} parameter} string type"
29026msgstr ""
29027
29028#. type: deftypevr
39764ef8 29029#: doc/guix.texi:13206
b9fe8fd6
JL
29030msgid ""
29031"Namespace type: @samp{private}, @samp{shared} or @samp{public}. Defaults to "
29032"@samp{\"private\"}."
29033msgstr ""
29034
29035#. type: deftypevr
39764ef8 29036#: doc/guix.texi:13208
b9fe8fd6
JL
29037#, no-wrap
29038msgid "{@code{namespace-configuration} parameter} string separator"
29039msgstr ""
29040
29041#. type: deftypevr
39764ef8 29042#: doc/guix.texi:13214
b9fe8fd6
JL
29043msgid ""
29044"Hierarchy separator to use. You should use the same separator for all "
29045"namespaces or some clients get confused. @samp{/} is usually a good one. "
29046"The default however depends on the underlying mail storage format. Defaults "
29047"to @samp{\"\"}."
29048msgstr ""
29049
29050#. type: deftypevr
39764ef8 29051#: doc/guix.texi:13216
b9fe8fd6
JL
29052#, no-wrap
29053msgid "{@code{namespace-configuration} parameter} string prefix"
29054msgstr ""
29055
29056#. type: deftypevr
39764ef8 29057#: doc/guix.texi:13220
b9fe8fd6
JL
29058msgid ""
29059"Prefix required to access this namespace. This needs to be different for "
29060"all namespaces. For example @samp{Public/}. Defaults to @samp{\"\"}."
29061msgstr ""
29062
29063#. type: deftypevr
39764ef8 29064#: doc/guix.texi:13222
b9fe8fd6
JL
29065#, no-wrap
29066msgid "{@code{namespace-configuration} parameter} string location"
29067msgstr ""
29068
29069#. type: deftypevr
39764ef8 29070#: doc/guix.texi:13226
b9fe8fd6
JL
29071msgid ""
29072"Physical location of the mailbox. This is in the same format as "
29073"mail_location, which is also the default for it. Defaults to @samp{\"\"}."
29074msgstr ""
29075
29076#. type: deftypevr
39764ef8 29077#: doc/guix.texi:13228
b9fe8fd6
JL
29078#, no-wrap
29079msgid "{@code{namespace-configuration} parameter} boolean inbox?"
29080msgstr ""
29081
29082#. type: deftypevr
39764ef8 29083#: doc/guix.texi:13232
b9fe8fd6
JL
29084msgid ""
29085"There can be only one INBOX, and this setting defines which namespace has "
29086"it. Defaults to @samp{#f}."
29087msgstr ""
29088
29089#. type: deftypevr
39764ef8 29090#: doc/guix.texi:13234
b9fe8fd6
JL
29091#, no-wrap
29092msgid "{@code{namespace-configuration} parameter} boolean hidden?"
29093msgstr ""
29094
29095#. type: deftypevr
39764ef8 29096#: doc/guix.texi:13242
b9fe8fd6
JL
29097msgid ""
29098"If namespace is hidden, it's not advertised to clients via NAMESPACE "
29099"extension. You'll most likely also want to set @samp{list? #f}. This is "
29100"mostly useful when converting from another server with different namespaces "
29101"which you want to deprecate but still keep working. For example you can "
29102"create hidden namespaces with prefixes @samp{~/mail/}, @samp{~%u/mail/} and "
29103"@samp{mail/}. Defaults to @samp{#f}."
29104msgstr ""
29105
29106#. type: deftypevr
39764ef8 29107#: doc/guix.texi:13244
b9fe8fd6
JL
29108#, no-wrap
29109msgid "{@code{namespace-configuration} parameter} boolean list?"
29110msgstr ""
29111
29112#. type: deftypevr
39764ef8 29113#: doc/guix.texi:13250
b9fe8fd6
JL
29114msgid ""
29115"Show the mailboxes under this namespace with the LIST command. This makes "
29116"the namespace visible for clients that do not support the NAMESPACE "
29117"extension. The special @code{children} value lists child mailboxes, but "
29118"hides the namespace prefix. Defaults to @samp{#t}."
29119msgstr ""
29120
29121#. type: deftypevr
39764ef8 29122#: doc/guix.texi:13252
b9fe8fd6
JL
29123#, no-wrap
29124msgid "{@code{namespace-configuration} parameter} boolean subscriptions?"
29125msgstr ""
29126
29127#. type: deftypevr
39764ef8 29128#: doc/guix.texi:13257
b9fe8fd6
JL
29129msgid ""
29130"Namespace handles its own subscriptions. If set to @code{#f}, the parent "
29131"namespace handles them. The empty prefix should always have this as "
29132"@code{#t}). Defaults to @samp{#t}."
29133msgstr ""
29134
29135#. type: deftypevr
39764ef8 29136#: doc/guix.texi:13259
b9fe8fd6 29137#, no-wrap
39764ef8 29138msgid "{@code{namespace-configuration} parameter} mailbox-configuration-list mailboxes"
b9fe8fd6
JL
29139msgstr ""
29140
29141#. type: deftypevr
39764ef8 29142#: doc/guix.texi:13262
b9fe8fd6
JL
29143msgid "List of predefined mailboxes in this namespace. Defaults to @samp{()}."
29144msgstr ""
29145
29146#. type: deftypevr
39764ef8 29147#: doc/guix.texi:13264
b9fe8fd6
JL
29148msgid "Available @code{mailbox-configuration} fields are:"
29149msgstr ""
29150
29151#. type: deftypevr
39764ef8 29152#: doc/guix.texi:13265
b9fe8fd6
JL
29153#, no-wrap
29154msgid "{@code{mailbox-configuration} parameter} string name"
29155msgstr ""
29156
29157#. type: deftypevr
39764ef8 29158#: doc/guix.texi:13267
b9fe8fd6
JL
29159msgid "Name for this mailbox."
29160msgstr ""
29161
29162#. type: deftypevr
39764ef8 29163#: doc/guix.texi:13269
b9fe8fd6
JL
29164#, no-wrap
29165msgid "{@code{mailbox-configuration} parameter} string auto"
29166msgstr ""
29167
29168#. type: deftypevr
39764ef8 29169#: doc/guix.texi:13273
b9fe8fd6
JL
29170msgid ""
29171"@samp{create} will automatically create this mailbox. @samp{subscribe} will "
29172"both create and subscribe to the mailbox. Defaults to @samp{\"no\"}."
29173msgstr ""
29174
29175#. type: deftypevr
39764ef8 29176#: doc/guix.texi:13275
b9fe8fd6 29177#, no-wrap
39764ef8 29178msgid "{@code{mailbox-configuration} parameter} space-separated-string-list special-use"
b9fe8fd6
JL
29179msgstr ""
29180
29181#. type: deftypevr
39764ef8 29182#: doc/guix.texi:13280
b9fe8fd6
JL
29183msgid ""
29184"List of IMAP @code{SPECIAL-USE} attributes as specified by RFC 6154. Valid "
29185"values are @code{\\All}, @code{\\Archive}, @code{\\Drafts}, "
29186"@code{\\Flagged}, @code{\\Junk}, @code{\\Sent}, and @code{\\Trash}. "
29187"Defaults to @samp{()}."
29188msgstr ""
29189
29190#. type: deftypevr
39764ef8 29191#: doc/guix.texi:13286
b9fe8fd6
JL
29192#, no-wrap
29193msgid "{@code{dovecot-configuration} parameter} file-name base-dir"
29194msgstr ""
29195
29196#. type: deftypevr
39764ef8 29197#: doc/guix.texi:13289
b9fe8fd6 29198msgid ""
39764ef8
JL
29199"Base directory where to store runtime data. Defaults to @samp{\"/var/run/"
29200"dovecot/\"}."
b9fe8fd6
JL
29201msgstr ""
29202
29203#. type: deftypevr
39764ef8 29204#: doc/guix.texi:13291
b9fe8fd6
JL
29205#, no-wrap
29206msgid "{@code{dovecot-configuration} parameter} string login-greeting"
29207msgstr ""
29208
29209#. type: deftypevr
39764ef8 29210#: doc/guix.texi:13294
b9fe8fd6
JL
29211msgid "Greeting message for clients. Defaults to @samp{\"Dovecot ready.\"}."
29212msgstr ""
29213
29214#. type: deftypevr
39764ef8 29215#: doc/guix.texi:13296
b9fe8fd6 29216#, no-wrap
39764ef8 29217msgid "{@code{dovecot-configuration} parameter} space-separated-string-list login-trusted-networks"
b9fe8fd6
JL
29218msgstr ""
29219
29220#. type: deftypevr
39764ef8 29221#: doc/guix.texi:13303
b9fe8fd6
JL
29222msgid ""
29223"List of trusted network ranges. Connections from these IPs are allowed to "
29224"override their IP addresses and ports (for logging and for authentication "
29225"checks). @samp{disable-plaintext-auth} is also ignored for these networks. "
29226"Typically you would specify your IMAP proxy servers here. Defaults to "
29227"@samp{()}."
29228msgstr ""
29229
29230#. type: deftypevr
39764ef8 29231#: doc/guix.texi:13305
b9fe8fd6 29232#, no-wrap
39764ef8 29233msgid "{@code{dovecot-configuration} parameter} space-separated-string-list login-access-sockets"
b9fe8fd6
JL
29234msgstr ""
29235
29236#. type: deftypevr
39764ef8
JL
29237#: doc/guix.texi:13308
29238msgid ""
29239"List of login access check sockets (e.g. tcpwrap). Defaults to @samp{()}."
b9fe8fd6
JL
29240msgstr ""
29241
29242#. type: deftypevr
39764ef8 29243#: doc/guix.texi:13310
b9fe8fd6
JL
29244#, no-wrap
29245msgid "{@code{dovecot-configuration} parameter} boolean verbose-proctitle?"
29246msgstr ""
29247
29248#. type: deftypevr
39764ef8 29249#: doc/guix.texi:13316
b9fe8fd6
JL
29250msgid ""
29251"Show more verbose process titles (in ps). Currently shows user name and IP "
39764ef8
JL
29252"address. Useful for seeing who is actually using the IMAP processes (e.g. "
29253"shared mailboxes or if the same uid is used for multiple accounts). "
b9fe8fd6
JL
29254"Defaults to @samp{#f}."
29255msgstr ""
29256
29257#. type: deftypevr
39764ef8 29258#: doc/guix.texi:13318
b9fe8fd6
JL
29259#, no-wrap
29260msgid "{@code{dovecot-configuration} parameter} boolean shutdown-clients?"
29261msgstr ""
29262
29263#. type: deftypevr
39764ef8 29264#: doc/guix.texi:13324
b9fe8fd6
JL
29265msgid ""
29266"Should all processes be killed when Dovecot master process shuts down. "
29267"Setting this to @code{#f} means that Dovecot can be upgraded without forcing "
29268"existing client connections to close (although that could also be a problem "
29269"if the upgrade is e.g. due to a security fix). Defaults to @samp{#t}."
29270msgstr ""
29271
29272#. type: deftypevr
39764ef8 29273#: doc/guix.texi:13326
b9fe8fd6 29274#, no-wrap
39764ef8 29275msgid "{@code{dovecot-configuration} parameter} non-negative-integer doveadm-worker-count"
b9fe8fd6
JL
29276msgstr ""
29277
29278#. type: deftypevr
39764ef8 29279#: doc/guix.texi:13330
b9fe8fd6
JL
29280msgid ""
29281"If non-zero, run mail commands via this many connections to doveadm server, "
29282"instead of running them directly in the same process. Defaults to @samp{0}."
29283msgstr ""
29284
29285#. type: deftypevr
39764ef8 29286#: doc/guix.texi:13332
b9fe8fd6
JL
29287#, no-wrap
29288msgid "{@code{dovecot-configuration} parameter} string doveadm-socket-path"
29289msgstr ""
29290
29291#. type: deftypevr
39764ef8 29292#: doc/guix.texi:13335
b9fe8fd6
JL
29293msgid ""
29294"UNIX socket or host:port used for connecting to doveadm server. Defaults to "
29295"@samp{\"doveadm-server\"}."
29296msgstr ""
29297
29298#. type: deftypevr
39764ef8 29299#: doc/guix.texi:13337
b9fe8fd6 29300#, no-wrap
39764ef8 29301msgid "{@code{dovecot-configuration} parameter} space-separated-string-list import-environment"
b9fe8fd6
JL
29302msgstr ""
29303
29304#. type: deftypevr
39764ef8 29305#: doc/guix.texi:13341
b9fe8fd6
JL
29306msgid ""
29307"List of environment variables that are preserved on Dovecot startup and "
29308"passed down to all of its child processes. You can also give key=value "
29309"pairs to always set specific settings."
29310msgstr ""
29311
29312#. type: deftypevr
39764ef8 29313#: doc/guix.texi:13343
b9fe8fd6
JL
29314#, no-wrap
29315msgid "{@code{dovecot-configuration} parameter} boolean disable-plaintext-auth?"
29316msgstr ""
29317
29318#. type: deftypevr
39764ef8 29319#: doc/guix.texi:13350
b9fe8fd6
JL
29320msgid ""
29321"Disable LOGIN command and all other plaintext authentications unless SSL/TLS "
29322"is used (LOGINDISABLED capability). Note that if the remote IP matches the "
29323"local IP (i.e. you're connecting from the same computer), the connection is "
29324"considered secure and plaintext authentication is allowed. See also "
29325"ssl=required setting. Defaults to @samp{#t}."
29326msgstr ""
29327
29328#. type: deftypevr
39764ef8 29329#: doc/guix.texi:13352
b9fe8fd6 29330#, no-wrap
39764ef8 29331msgid "{@code{dovecot-configuration} parameter} non-negative-integer auth-cache-size"
b9fe8fd6
JL
29332msgstr ""
29333
29334#. type: deftypevr
39764ef8 29335#: doc/guix.texi:13357
b9fe8fd6
JL
29336msgid ""
29337"Authentication cache size (e.g. @samp{#e10e6}). 0 means it's disabled. "
29338"Note that bsdauth, PAM and vpopmail require @samp{cache-key} to be set for "
29339"caching to be used. Defaults to @samp{0}."
29340msgstr ""
29341
29342#. type: deftypevr
39764ef8 29343#: doc/guix.texi:13359
b9fe8fd6
JL
29344#, no-wrap
29345msgid "{@code{dovecot-configuration} parameter} string auth-cache-ttl"
29346msgstr ""
29347
29348#. type: deftypevr
39764ef8 29349#: doc/guix.texi:13367
b9fe8fd6
JL
29350msgid ""
29351"Time to live for cached data. After TTL expires the cached record is no "
29352"longer used, *except* if the main database lookup returns internal failure. "
29353"We also try to handle password changes automatically: If user's previous "
29354"authentication was successful, but this one wasn't, the cache isn't used. "
29355"For now this works only with plaintext authentication. Defaults to "
29356"@samp{\"1 hour\"}."
29357msgstr ""
29358
29359#. type: deftypevr
39764ef8 29360#: doc/guix.texi:13369
b9fe8fd6
JL
29361#, no-wrap
29362msgid "{@code{dovecot-configuration} parameter} string auth-cache-negative-ttl"
29363msgstr ""
29364
29365#. type: deftypevr
39764ef8 29366#: doc/guix.texi:13373
b9fe8fd6
JL
29367msgid ""
29368"TTL for negative hits (user not found, password mismatch). 0 disables "
29369"caching them completely. Defaults to @samp{\"1 hour\"}."
29370msgstr ""
29371
29372#. type: deftypevr
39764ef8 29373#: doc/guix.texi:13375
b9fe8fd6 29374#, no-wrap
39764ef8 29375msgid "{@code{dovecot-configuration} parameter} space-separated-string-list auth-realms"
b9fe8fd6
JL
29376msgstr ""
29377
29378#. type: deftypevr
39764ef8 29379#: doc/guix.texi:13381
b9fe8fd6
JL
29380msgid ""
29381"List of realms for SASL authentication mechanisms that need them. You can "
29382"leave it empty if you don't want to support multiple realms. Many clients "
29383"simply use the first one listed here, so keep the default realm first. "
29384"Defaults to @samp{()}."
29385msgstr ""
29386
29387#. type: deftypevr
39764ef8 29388#: doc/guix.texi:13383
b9fe8fd6
JL
29389#, no-wrap
29390msgid "{@code{dovecot-configuration} parameter} string auth-default-realm"
29391msgstr ""
29392
29393#. type: deftypevr
39764ef8 29394#: doc/guix.texi:13388
b9fe8fd6
JL
29395msgid ""
29396"Default realm/domain to use if none was specified. This is used for both "
29397"SASL realms and appending @@domain to username in plaintext logins. "
29398"Defaults to @samp{\"\"}."
29399msgstr ""
29400
29401#. type: deftypevr
39764ef8 29402#: doc/guix.texi:13390
b9fe8fd6
JL
29403#, no-wrap
29404msgid "{@code{dovecot-configuration} parameter} string auth-username-chars"
29405msgstr ""
29406
29407#. type: deftypevr
39764ef8 29408#: doc/guix.texi:13397
b9fe8fd6
JL
29409msgid ""
29410"List of allowed characters in username. If the user-given username contains "
29411"a character not listed in here, the login automatically fails. This is just "
29412"an extra check to make sure user can't exploit any potential quote escaping "
29413"vulnerabilities with SQL/LDAP databases. If you want to allow all "
29414"characters, set this value to empty. Defaults to "
39764ef8
JL
29415"@samp{\"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890.-_@@"
29416"\"}."
b9fe8fd6
JL
29417msgstr ""
29418
29419#. type: deftypevr
39764ef8 29420#: doc/guix.texi:13399
b9fe8fd6
JL
29421#, no-wrap
29422msgid "{@code{dovecot-configuration} parameter} string auth-username-translation"
29423msgstr ""
29424
29425#. type: deftypevr
39764ef8 29426#: doc/guix.texi:13405
b9fe8fd6
JL
29427msgid ""
29428"Username character translations before it's looked up from databases. The "
29429"value contains series of from -> to characters. For example @samp{#@@/@@} "
29430"means that @samp{#} and @samp{/} characters are translated to @samp{@@}. "
29431"Defaults to @samp{\"\"}."
29432msgstr ""
29433
29434#. type: deftypevr
39764ef8 29435#: doc/guix.texi:13407
b9fe8fd6
JL
29436#, no-wrap
29437msgid "{@code{dovecot-configuration} parameter} string auth-username-format"
29438msgstr ""
29439
29440#. type: deftypevr
39764ef8 29441#: doc/guix.texi:13414
b9fe8fd6
JL
29442msgid ""
29443"Username formatting before it's looked up from databases. You can use the "
29444"standard variables here, e.g. %Lu would lowercase the username, %n would "
29445"drop away the domain if it was given, or @samp{%n-AT-%d} would change the "
39764ef8
JL
29446"@samp{@@} into @samp{-AT-}. This translation is done after @samp{auth-"
29447"username-translation} changes. Defaults to @samp{\"%Lu\"}."
b9fe8fd6
JL
29448msgstr ""
29449
29450#. type: deftypevr
39764ef8 29451#: doc/guix.texi:13416
b9fe8fd6
JL
29452#, no-wrap
29453msgid "{@code{dovecot-configuration} parameter} string auth-master-user-separator"
29454msgstr ""
29455
29456#. type: deftypevr
39764ef8 29457#: doc/guix.texi:13424
b9fe8fd6
JL
29458msgid ""
29459"If you want to allow master users to log in by specifying the master "
29460"username within the normal username string (i.e. not using SASL mechanism's "
29461"support for it), you can specify the separator character here. The format "
29462"is then <username><separator><master username>. UW-IMAP uses @samp{*} as "
29463"the separator, so that could be a good choice. Defaults to @samp{\"\"}."
29464msgstr ""
29465
29466#. type: deftypevr
39764ef8 29467#: doc/guix.texi:13426
b9fe8fd6
JL
29468#, no-wrap
29469msgid "{@code{dovecot-configuration} parameter} string auth-anonymous-username"
29470msgstr ""
29471
29472#. type: deftypevr
39764ef8 29473#: doc/guix.texi:13430
b9fe8fd6
JL
29474msgid ""
29475"Username to use for users logging in with ANONYMOUS SASL mechanism. "
29476"Defaults to @samp{\"anonymous\"}."
29477msgstr ""
29478
29479#. type: deftypevr
39764ef8 29480#: doc/guix.texi:13432
b9fe8fd6 29481#, no-wrap
39764ef8 29482msgid "{@code{dovecot-configuration} parameter} non-negative-integer auth-worker-max-count"
b9fe8fd6
JL
29483msgstr ""
29484
29485#. type: deftypevr
39764ef8 29486#: doc/guix.texi:13437
b9fe8fd6
JL
29487msgid ""
29488"Maximum number of dovecot-auth worker processes. They're used to execute "
29489"blocking passdb and userdb queries (e.g. MySQL and PAM). They're "
29490"automatically created and destroyed as needed. Defaults to @samp{30}."
29491msgstr ""
29492
29493#. type: deftypevr
39764ef8 29494#: doc/guix.texi:13439
b9fe8fd6
JL
29495#, no-wrap
29496msgid "{@code{dovecot-configuration} parameter} string auth-gssapi-hostname"
29497msgstr ""
29498
29499#. type: deftypevr
39764ef8 29500#: doc/guix.texi:13444
b9fe8fd6
JL
29501msgid ""
29502"Host name to use in GSSAPI principal names. The default is to use the name "
29503"returned by gethostname(). Use @samp{$ALL} (with quotes) to allow all "
29504"keytab entries. Defaults to @samp{\"\"}."
29505msgstr ""
29506
29507#. type: deftypevr
39764ef8 29508#: doc/guix.texi:13446
b9fe8fd6
JL
29509#, no-wrap
29510msgid "{@code{dovecot-configuration} parameter} string auth-krb5-keytab"
29511msgstr ""
29512
29513#. type: deftypevr
39764ef8 29514#: doc/guix.texi:13452
b9fe8fd6
JL
29515msgid ""
29516"Kerberos keytab to use for the GSSAPI mechanism. Will use the system "
29517"default (usually @file{/etc/krb5.keytab}) if not specified. You may need to "
29518"change the auth service to run as root to be able to read this file. "
29519"Defaults to @samp{\"\"}."
29520msgstr ""
29521
29522#. type: deftypevr
39764ef8 29523#: doc/guix.texi:13454
b9fe8fd6
JL
29524#, no-wrap
29525msgid "{@code{dovecot-configuration} parameter} boolean auth-use-winbind?"
29526msgstr ""
29527
29528#. type: deftypevr
39764ef8 29529#: doc/guix.texi:13459
b9fe8fd6
JL
29530msgid ""
29531"Do NTLM and GSS-SPNEGO authentication using Samba's winbind daemon and "
29532"@samp{ntlm-auth} helper. <doc/wiki/Authentication/Mechanisms/Winbind.txt>. "
29533"Defaults to @samp{#f}."
29534msgstr ""
29535
29536#. type: deftypevr
39764ef8 29537#: doc/guix.texi:13461
b9fe8fd6
JL
29538#, no-wrap
29539msgid "{@code{dovecot-configuration} parameter} file-name auth-winbind-helper-path"
29540msgstr ""
29541
29542#. type: deftypevr
39764ef8 29543#: doc/guix.texi:13464
b9fe8fd6 29544msgid ""
39764ef8
JL
29545"Path for Samba's @samp{ntlm-auth} helper binary. Defaults to @samp{\"/usr/"
29546"bin/ntlm_auth\"}."
b9fe8fd6
JL
29547msgstr ""
29548
29549#. type: deftypevr
39764ef8 29550#: doc/guix.texi:13466
b9fe8fd6
JL
29551#, no-wrap
29552msgid "{@code{dovecot-configuration} parameter} string auth-failure-delay"
29553msgstr ""
29554
29555#. type: deftypevr
39764ef8 29556#: doc/guix.texi:13469
b9fe8fd6
JL
29557msgid ""
29558"Time to delay before replying to failed authentications. Defaults to "
29559"@samp{\"2 secs\"}."
29560msgstr ""
29561
29562#. type: deftypevr
39764ef8 29563#: doc/guix.texi:13471
b9fe8fd6 29564#, no-wrap
39764ef8 29565msgid "{@code{dovecot-configuration} parameter} boolean auth-ssl-require-client-cert?"
b9fe8fd6
JL
29566msgstr ""
29567
29568#. type: deftypevr
39764ef8 29569#: doc/guix.texi:13475
b9fe8fd6
JL
29570msgid ""
29571"Require a valid SSL client certificate or the authentication fails. "
29572"Defaults to @samp{#f}."
29573msgstr ""
29574
29575#. type: deftypevr
39764ef8 29576#: doc/guix.texi:13477
b9fe8fd6 29577#, no-wrap
39764ef8 29578msgid "{@code{dovecot-configuration} parameter} boolean auth-ssl-username-from-cert?"
b9fe8fd6
JL
29579msgstr ""
29580
29581#. type: deftypevr
39764ef8 29582#: doc/guix.texi:13482
b9fe8fd6
JL
29583msgid ""
29584"Take the username from client's SSL certificate, using "
29585"@code{X509_NAME_get_text_by_NID()} which returns the subject's DN's "
29586"CommonName. Defaults to @samp{#f}."
29587msgstr ""
29588
29589#. type: deftypevr
39764ef8 29590#: doc/guix.texi:13484
b9fe8fd6 29591#, no-wrap
39764ef8 29592msgid "{@code{dovecot-configuration} parameter} space-separated-string-list auth-mechanisms"
b9fe8fd6
JL
29593msgstr ""
29594
29595#. type: deftypevr
39764ef8 29596#: doc/guix.texi:13490
b9fe8fd6
JL
29597msgid ""
29598"List of wanted authentication mechanisms. Supported mechanisms are: "
29599"@samp{plain}, @samp{login}, @samp{digest-md5}, @samp{cram-md5}, @samp{ntlm}, "
29600"@samp{rpa}, @samp{apop}, @samp{anonymous}, @samp{gssapi}, @samp{otp}, "
39764ef8
JL
29601"@samp{skey}, and @samp{gss-spnego}. NOTE: See also @samp{disable-plaintext-"
29602"auth} setting."
b9fe8fd6
JL
29603msgstr ""
29604
29605#. type: deftypevr
39764ef8 29606#: doc/guix.texi:13492
b9fe8fd6 29607#, no-wrap
39764ef8 29608msgid "{@code{dovecot-configuration} parameter} space-separated-string-list director-servers"
b9fe8fd6
JL
29609msgstr ""
29610
29611#. type: deftypevr
39764ef8 29612#: doc/guix.texi:13497
b9fe8fd6
JL
29613msgid ""
29614"List of IPs or hostnames to all director servers, including ourself. Ports "
29615"can be specified as ip:port. The default port is the same as what director "
29616"service's @samp{inet-listener} is using. Defaults to @samp{()}."
29617msgstr ""
29618
29619#. type: deftypevr
39764ef8 29620#: doc/guix.texi:13499
b9fe8fd6 29621#, no-wrap
39764ef8 29622msgid "{@code{dovecot-configuration} parameter} space-separated-string-list director-mail-servers"
b9fe8fd6
JL
29623msgstr ""
29624
29625#. type: deftypevr
39764ef8 29626#: doc/guix.texi:13503
b9fe8fd6
JL
29627msgid ""
29628"List of IPs or hostnames to all backend mail servers. Ranges are allowed "
29629"too, like 10.0.0.10-10.0.0.30. Defaults to @samp{()}."
29630msgstr ""
29631
29632#. type: deftypevr
39764ef8 29633#: doc/guix.texi:13505
b9fe8fd6
JL
29634#, no-wrap
29635msgid "{@code{dovecot-configuration} parameter} string director-user-expire"
29636msgstr ""
29637
29638#. type: deftypevr
39764ef8 29639#: doc/guix.texi:13509
b9fe8fd6
JL
29640msgid ""
29641"How long to redirect users to a specific server after it no longer has any "
29642"connections. Defaults to @samp{\"15 min\"}."
29643msgstr ""
29644
29645#. type: deftypevr
39764ef8 29646#: doc/guix.texi:13511
b9fe8fd6
JL
29647#, no-wrap
29648msgid "{@code{dovecot-configuration} parameter} string director-username-hash"
29649msgstr ""
29650
29651#. type: deftypevr
39764ef8 29652#: doc/guix.texi:13516
b9fe8fd6
JL
29653msgid ""
29654"How the username is translated before being hashed. Useful values include "
29655"%Ln if user can log in with or without @@domain, %Ld if mailboxes are shared "
29656"within domain. Defaults to @samp{\"%Lu\"}."
29657msgstr ""
29658
29659#. type: deftypevr
39764ef8 29660#: doc/guix.texi:13518
b9fe8fd6
JL
29661#, no-wrap
29662msgid "{@code{dovecot-configuration} parameter} string log-path"
29663msgstr ""
29664
29665#. type: deftypevr
39764ef8 29666#: doc/guix.texi:13522
b9fe8fd6 29667msgid ""
39764ef8
JL
29668"Log file to use for error messages. @samp{syslog} logs to syslog, @samp{/"
29669"dev/stderr} logs to stderr. Defaults to @samp{\"syslog\"}."
b9fe8fd6
JL
29670msgstr ""
29671
29672#. type: deftypevr
39764ef8 29673#: doc/guix.texi:13524
b9fe8fd6
JL
29674#, no-wrap
29675msgid "{@code{dovecot-configuration} parameter} string info-log-path"
29676msgstr ""
29677
29678#. type: deftypevr
39764ef8 29679#: doc/guix.texi:13528
b9fe8fd6
JL
29680msgid ""
29681"Log file to use for informational messages. Defaults to @samp{log-path}. "
29682"Defaults to @samp{\"\"}."
29683msgstr ""
29684
29685#. type: deftypevr
39764ef8 29686#: doc/guix.texi:13530
b9fe8fd6
JL
29687#, no-wrap
29688msgid "{@code{dovecot-configuration} parameter} string debug-log-path"
29689msgstr ""
29690
29691#. type: deftypevr
39764ef8 29692#: doc/guix.texi:13534
b9fe8fd6
JL
29693msgid ""
29694"Log file to use for debug messages. Defaults to @samp{info-log-path}. "
29695"Defaults to @samp{\"\"}."
29696msgstr ""
29697
29698#. type: deftypevr
39764ef8 29699#: doc/guix.texi:13536
b9fe8fd6
JL
29700#, no-wrap
29701msgid "{@code{dovecot-configuration} parameter} string syslog-facility"
29702msgstr ""
29703
29704#. type: deftypevr
39764ef8 29705#: doc/guix.texi:13541
b9fe8fd6
JL
29706msgid ""
29707"Syslog facility to use if you're logging to syslog. Usually if you don't "
29708"want to use @samp{mail}, you'll use local0..local7. Also other standard "
29709"facilities are supported. Defaults to @samp{\"mail\"}."
29710msgstr ""
29711
29712#. type: deftypevr
39764ef8 29713#: doc/guix.texi:13543
b9fe8fd6
JL
29714#, no-wrap
29715msgid "{@code{dovecot-configuration} parameter} boolean auth-verbose?"
29716msgstr ""
29717
29718#. type: deftypevr
39764ef8 29719#: doc/guix.texi:13547
b9fe8fd6
JL
29720msgid ""
29721"Log unsuccessful authentication attempts and the reasons why they failed. "
29722"Defaults to @samp{#f}."
29723msgstr ""
29724
29725#. type: deftypevr
39764ef8 29726#: doc/guix.texi:13549
b9fe8fd6
JL
29727#, no-wrap
29728msgid "{@code{dovecot-configuration} parameter} boolean auth-verbose-passwords?"
29729msgstr ""
29730
29731#. type: deftypevr
39764ef8 29732#: doc/guix.texi:13556
b9fe8fd6
JL
29733msgid ""
29734"In case of password mismatches, log the attempted password. Valid values "
29735"are no, plain and sha1. sha1 can be useful for detecting brute force "
29736"password attempts vs. user simply trying the same password over and over "
39764ef8
JL
29737"again. You can also truncate the value to n chars by appending \":n\" (e.g. "
29738"sha1:6). Defaults to @samp{#f}."
b9fe8fd6
JL
29739msgstr ""
29740
29741#. type: deftypevr
39764ef8 29742#: doc/guix.texi:13558
b9fe8fd6
JL
29743#, no-wrap
29744msgid "{@code{dovecot-configuration} parameter} boolean auth-debug?"
29745msgstr ""
29746
29747#. type: deftypevr
39764ef8 29748#: doc/guix.texi:13562
b9fe8fd6
JL
29749msgid ""
29750"Even more verbose logging for debugging purposes. Shows for example SQL "
29751"queries. Defaults to @samp{#f}."
29752msgstr ""
29753
29754#. type: deftypevr
39764ef8 29755#: doc/guix.texi:13564
b9fe8fd6
JL
29756#, no-wrap
29757msgid "{@code{dovecot-configuration} parameter} boolean auth-debug-passwords?"
29758msgstr ""
29759
29760#. type: deftypevr
39764ef8 29761#: doc/guix.texi:13569
b9fe8fd6
JL
29762msgid ""
29763"In case of password mismatches, log the passwords and used scheme so the "
29764"problem can be debugged. Enabling this also enables @samp{auth-debug}. "
29765"Defaults to @samp{#f}."
29766msgstr ""
29767
29768#. type: deftypevr
39764ef8 29769#: doc/guix.texi:13571
b9fe8fd6
JL
29770#, no-wrap
29771msgid "{@code{dovecot-configuration} parameter} boolean mail-debug?"
29772msgstr ""
29773
29774#. type: deftypevr
39764ef8 29775#: doc/guix.texi:13575
b9fe8fd6
JL
29776msgid ""
29777"Enable mail process debugging. This can help you figure out why Dovecot "
29778"isn't finding your mails. Defaults to @samp{#f}."
29779msgstr ""
29780
29781#. type: deftypevr
39764ef8 29782#: doc/guix.texi:13577
b9fe8fd6
JL
29783#, no-wrap
29784msgid "{@code{dovecot-configuration} parameter} boolean verbose-ssl?"
29785msgstr ""
29786
29787#. type: deftypevr
39764ef8 29788#: doc/guix.texi:13580
b9fe8fd6
JL
29789msgid "Show protocol level SSL errors. Defaults to @samp{#f}."
29790msgstr ""
29791
29792#. type: deftypevr
39764ef8 29793#: doc/guix.texi:13582
b9fe8fd6
JL
29794#, no-wrap
29795msgid "{@code{dovecot-configuration} parameter} string log-timestamp"
29796msgstr ""
29797
29798#. type: deftypevr
39764ef8 29799#: doc/guix.texi:13586
b9fe8fd6
JL
29800msgid ""
29801"Prefix for each line written to log file. % codes are in strftime(3) "
29802"format. Defaults to @samp{\"\\\"%b %d %H:%M:%S \\\"\"}."
29803msgstr ""
29804
29805#. type: deftypevr
39764ef8 29806#: doc/guix.texi:13588
b9fe8fd6 29807#, no-wrap
39764ef8 29808msgid "{@code{dovecot-configuration} parameter} space-separated-string-list login-log-format-elements"
b9fe8fd6
JL
29809msgstr ""
29810
29811#. type: deftypevr
39764ef8 29812#: doc/guix.texi:13592
b9fe8fd6
JL
29813msgid ""
29814"List of elements we want to log. The elements which have a non-empty "
29815"variable value are joined together to form a comma-separated string."
29816msgstr ""
29817
29818#. type: deftypevr
39764ef8 29819#: doc/guix.texi:13594
b9fe8fd6
JL
29820#, no-wrap
29821msgid "{@code{dovecot-configuration} parameter} string login-log-format"
29822msgstr ""
29823
29824#. type: deftypevr
39764ef8 29825#: doc/guix.texi:13598
b9fe8fd6
JL
29826msgid ""
29827"Login log format. %s contains @samp{login-log-format-elements} string, %$ "
29828"contains the data we want to log. Defaults to @samp{\"%$: %s\"}."
29829msgstr ""
29830
29831#. type: deftypevr
39764ef8 29832#: doc/guix.texi:13600
b9fe8fd6
JL
29833#, no-wrap
29834msgid "{@code{dovecot-configuration} parameter} string mail-log-prefix"
29835msgstr ""
29836
29837#. type: deftypevr
39764ef8 29838#: doc/guix.texi:13604
b9fe8fd6
JL
29839msgid ""
29840"Log prefix for mail processes. See doc/wiki/Variables.txt for list of "
39764ef8
JL
29841"possible variables you can use. Defaults to @samp{\"\\\"%s(%u)<%@{pid@}><"
29842"%@{session@}>: \\\"\"}."
b9fe8fd6
JL
29843msgstr ""
29844
29845#. type: deftypevr
39764ef8 29846#: doc/guix.texi:13606
b9fe8fd6
JL
29847#, no-wrap
29848msgid "{@code{dovecot-configuration} parameter} string deliver-log-format"
29849msgstr ""
29850
29851#. type: deftypevr
39764ef8 29852#: doc/guix.texi:13608
b9fe8fd6
JL
29853msgid "Format to use for logging mail deliveries. You can use variables:"
29854msgstr ""
29855
29856#. type: item
39764ef8 29857#: doc/guix.texi:13609
b9fe8fd6
JL
29858#, no-wrap
29859msgid "%$"
29860msgstr ""
29861
29862#. type: table
39764ef8 29863#: doc/guix.texi:13611
b9fe8fd6
JL
29864msgid "Delivery status message (e.g. @samp{saved to INBOX})"
29865msgstr ""
29866
29867#. type: item
39764ef8 29868#: doc/guix.texi:13611
b9fe8fd6
JL
29869#, no-wrap
29870msgid "%m"
29871msgstr ""
29872
29873#. type: table
39764ef8 29874#: doc/guix.texi:13613
b9fe8fd6
JL
29875msgid "Message-ID"
29876msgstr ""
29877
29878#. type: item
39764ef8 29879#: doc/guix.texi:13613 doc/guix.texi:14145
b9fe8fd6
JL
29880#, no-wrap
29881msgid "%s"
29882msgstr ""
29883
29884#. type: table
39764ef8 29885#: doc/guix.texi:13615
b9fe8fd6
JL
29886msgid "Subject"
29887msgstr ""
29888
29889#. type: item
39764ef8 29890#: doc/guix.texi:13615
b9fe8fd6
JL
29891#, no-wrap
29892msgid "%f"
29893msgstr ""
29894
29895#. type: table
39764ef8 29896#: doc/guix.texi:13617
b9fe8fd6
JL
29897msgid "From address"
29898msgstr ""
29899
29900#. type: table
39764ef8 29901#: doc/guix.texi:13619
b9fe8fd6
JL
29902msgid "Physical size"
29903msgstr ""
29904
29905#. type: item
39764ef8 29906#: doc/guix.texi:13619
b9fe8fd6
JL
29907#, no-wrap
29908msgid "%w"
29909msgstr ""
29910
29911#. type: table
39764ef8 29912#: doc/guix.texi:13621
b9fe8fd6
JL
29913msgid "Virtual size."
29914msgstr ""
29915
29916#. type: deftypevr
39764ef8 29917#: doc/guix.texi:13623
b9fe8fd6
JL
29918msgid "Defaults to @samp{\"msgid=%m: %$\"}."
29919msgstr ""
29920
29921#. type: deftypevr
39764ef8 29922#: doc/guix.texi:13625
b9fe8fd6
JL
29923#, no-wrap
29924msgid "{@code{dovecot-configuration} parameter} string mail-location"
29925msgstr ""
29926
29927#. type: deftypevr
39764ef8 29928#: doc/guix.texi:13630
b9fe8fd6
JL
29929msgid ""
29930"Location for users' mailboxes. The default is empty, which means that "
29931"Dovecot tries to find the mailboxes automatically. This won't work if the "
29932"user doesn't yet have any mail, so you should explicitly tell Dovecot the "
29933"full location."
29934msgstr ""
29935
29936#. type: deftypevr
39764ef8 29937#: doc/guix.texi:13636
b9fe8fd6
JL
29938msgid ""
29939"If you're using mbox, giving a path to the INBOX file (e.g. /var/mail/%u) "
29940"isn't enough. You'll also need to tell Dovecot where the other mailboxes "
29941"are kept. This is called the \"root mail directory\", and it must be the "
29942"first path given in the @samp{mail-location} setting."
29943msgstr ""
29944
29945#. type: deftypevr
39764ef8 29946#: doc/guix.texi:13638
b9fe8fd6
JL
29947msgid "There are a few special variables you can use, eg.:"
29948msgstr ""
29949
29950#. type: table
39764ef8 29951#: doc/guix.texi:13642
b9fe8fd6
JL
29952msgid "username"
29953msgstr ""
29954
29955#. type: item
39764ef8 29956#: doc/guix.texi:13642 doc/guix.texi:14141
b9fe8fd6
JL
29957#, no-wrap
29958msgid "%n"
29959msgstr ""
29960
29961#. type: table
39764ef8 29962#: doc/guix.texi:13644
b9fe8fd6
JL
29963msgid "user part in user@@domain, same as %u if there's no domain"
29964msgstr ""
29965
29966#. type: item
39764ef8 29967#: doc/guix.texi:13644
b9fe8fd6
JL
29968#, no-wrap
29969msgid "%d"
29970msgstr ""
29971
29972#. type: table
39764ef8 29973#: doc/guix.texi:13646
b9fe8fd6
JL
29974msgid "domain part in user@@domain, empty if there's no domain"
29975msgstr ""
29976
29977#. type: item
39764ef8 29978#: doc/guix.texi:13646
b9fe8fd6
JL
29979#, no-wrap
29980msgid "%h"
29981msgstr ""
29982
29983#. type: table
39764ef8 29984#: doc/guix.texi:13648
b9fe8fd6
JL
29985msgid "home director"
29986msgstr ""
29987
29988#. type: deftypevr
39764ef8 29989#: doc/guix.texi:13651
b9fe8fd6
JL
29990msgid "See doc/wiki/Variables.txt for full list. Some examples:"
29991msgstr ""
29992
29993#. type: item
39764ef8 29994#: doc/guix.texi:13652
b9fe8fd6
JL
29995#, no-wrap
29996msgid "maildir:~/Maildir"
29997msgstr ""
29998
29999#. type: item
39764ef8 30000#: doc/guix.texi:13653
b9fe8fd6
JL
30001#, no-wrap
30002msgid "mbox:~/mail:INBOX=/var/mail/%u"
30003msgstr ""
30004
30005#. type: item
39764ef8 30006#: doc/guix.texi:13654
b9fe8fd6
JL
30007#, no-wrap
30008msgid "mbox:/var/mail/%d/%1n/%n:INDEX=/var/indexes/%d/%1n/%"
30009msgstr ""
30010
30011#. type: deftypevr
39764ef8 30012#: doc/guix.texi:13659
b9fe8fd6
JL
30013#, no-wrap
30014msgid "{@code{dovecot-configuration} parameter} string mail-uid"
30015msgstr ""
30016
30017#. type: deftypevr
39764ef8 30018#: doc/guix.texi:13664
b9fe8fd6
JL
30019msgid ""
30020"System user and group used to access mails. If you use multiple, userdb can "
30021"override these by returning uid or gid fields. You can use either numbers "
30022"or names. <doc/wiki/UserIds.txt>. Defaults to @samp{\"\"}."
30023msgstr ""
30024
30025#. type: deftypevr
39764ef8 30026#: doc/guix.texi:13666
b9fe8fd6
JL
30027#, no-wrap
30028msgid "{@code{dovecot-configuration} parameter} string mail-gid"
30029msgstr ""
30030
30031#. type: deftypevr
39764ef8 30032#: doc/guix.texi:13671
b9fe8fd6
JL
30033#, no-wrap
30034msgid "{@code{dovecot-configuration} parameter} string mail-privileged-group"
30035msgstr ""
30036
30037#. type: deftypevr
39764ef8 30038#: doc/guix.texi:13677
b9fe8fd6
JL
30039msgid ""
30040"Group to enable temporarily for privileged operations. Currently this is "
30041"used only with INBOX when either its initial creation or dotlocking fails. "
30042"Typically this is set to \"mail\" to give access to /var/mail. Defaults to "
30043"@samp{\"\"}."
30044msgstr ""
30045
30046#. type: deftypevr
39764ef8 30047#: doc/guix.texi:13679
b9fe8fd6
JL
30048#, no-wrap
30049msgid "{@code{dovecot-configuration} parameter} string mail-access-groups"
30050msgstr ""
30051
30052#. type: deftypevr
39764ef8 30053#: doc/guix.texi:13687
b9fe8fd6
JL
30054msgid ""
30055"Grant access to these supplementary groups for mail processes. Typically "
30056"these are used to set up access to shared mailboxes. Note that it may be "
30057"dangerous to set these if users can create symlinks (e.g. if \"mail\" group "
30058"is set here, ln -s /var/mail ~/mail/var could allow a user to delete others' "
30059"mailboxes, or ln -s /secret/shared/box ~/mail/mybox would allow reading "
30060"it). Defaults to @samp{\"\"}."
30061msgstr ""
30062
30063#. type: deftypevr
39764ef8 30064#: doc/guix.texi:13689
b9fe8fd6 30065#, no-wrap
39764ef8 30066msgid "{@code{dovecot-configuration} parameter} boolean mail-full-filesystem-access?"
b9fe8fd6
JL
30067msgstr ""
30068
30069#. type: deftypevr
39764ef8 30070#: doc/guix.texi:13695
b9fe8fd6
JL
30071msgid ""
30072"Allow full file system access to clients. There's no access checks other "
30073"than what the operating system does for the active UID/GID. It works with "
39764ef8
JL
30074"both maildir and mboxes, allowing you to prefix mailboxes names with e.g. /"
30075"path/ or ~user/. Defaults to @samp{#f}."
b9fe8fd6
JL
30076msgstr ""
30077
30078#. type: deftypevr
39764ef8 30079#: doc/guix.texi:13697
b9fe8fd6
JL
30080#, no-wrap
30081msgid "{@code{dovecot-configuration} parameter} boolean mmap-disable?"
30082msgstr ""
30083
30084#. type: deftypevr
39764ef8 30085#: doc/guix.texi:13701
b9fe8fd6
JL
30086msgid ""
30087"Don't use mmap() at all. This is required if you store indexes to shared "
30088"file systems (NFS or clustered file system). Defaults to @samp{#f}."
30089msgstr ""
30090
30091#. type: deftypevr
39764ef8 30092#: doc/guix.texi:13703
b9fe8fd6
JL
30093#, no-wrap
30094msgid "{@code{dovecot-configuration} parameter} boolean dotlock-use-excl?"
30095msgstr ""
30096
30097#. type: deftypevr
39764ef8 30098#: doc/guix.texi:13708
b9fe8fd6
JL
30099msgid ""
30100"Rely on @samp{O_EXCL} to work when creating dotlock files. NFS supports "
30101"@samp{O_EXCL} since version 3, so this should be safe to use nowadays by "
30102"default. Defaults to @samp{#t}."
30103msgstr ""
30104
30105#. type: deftypevr
39764ef8 30106#: doc/guix.texi:13710
b9fe8fd6
JL
30107#, no-wrap
30108msgid "{@code{dovecot-configuration} parameter} string mail-fsync"
30109msgstr ""
30110
30111#. type: deftypevr
39764ef8 30112#: doc/guix.texi:13712
b9fe8fd6
JL
30113msgid "When to use fsync() or fdatasync() calls:"
30114msgstr ""
30115
30116#. type: item
39764ef8 30117#: doc/guix.texi:13713
b9fe8fd6
JL
30118#, no-wrap
30119msgid "optimized"
30120msgstr ""
30121
30122#. type: table
39764ef8 30123#: doc/guix.texi:13715
b9fe8fd6
JL
30124msgid "Whenever necessary to avoid losing important data"
30125msgstr ""
30126
30127#. type: table
39764ef8 30128#: doc/guix.texi:13717
b9fe8fd6
JL
30129msgid "Useful with e.g. NFS when write()s are delayed"
30130msgstr ""
30131
30132#. type: table
39764ef8 30133#: doc/guix.texi:13719
b9fe8fd6
JL
30134msgid "Never use it (best performance, but crashes can lose data)."
30135msgstr ""
30136
30137#. type: deftypevr
39764ef8 30138#: doc/guix.texi:13721
b9fe8fd6
JL
30139msgid "Defaults to @samp{\"optimized\"}."
30140msgstr ""
30141
30142#. type: deftypevr
39764ef8 30143#: doc/guix.texi:13723
b9fe8fd6
JL
30144#, no-wrap
30145msgid "{@code{dovecot-configuration} parameter} boolean mail-nfs-storage?"
30146msgstr ""
30147
30148#. type: deftypevr
39764ef8 30149#: doc/guix.texi:13728
b9fe8fd6
JL
30150msgid ""
30151"Mail storage exists in NFS. Set this to yes to make Dovecot flush NFS "
30152"caches whenever needed. If you're using only a single mail server this "
30153"isn't needed. Defaults to @samp{#f}."
30154msgstr ""
30155
30156#. type: deftypevr
39764ef8 30157#: doc/guix.texi:13730
b9fe8fd6
JL
30158#, no-wrap
30159msgid "{@code{dovecot-configuration} parameter} boolean mail-nfs-index?"
30160msgstr ""
30161
30162#. type: deftypevr
39764ef8 30163#: doc/guix.texi:13734
b9fe8fd6 30164msgid ""
39764ef8
JL
30165"Mail index files also exist in NFS. Setting this to yes requires @samp{mmap-"
30166"disable? #t} and @samp{fsync-disable? #f}. Defaults to @samp{#f}."
b9fe8fd6
JL
30167msgstr ""
30168
30169#. type: deftypevr
39764ef8 30170#: doc/guix.texi:13736
b9fe8fd6
JL
30171#, no-wrap
30172msgid "{@code{dovecot-configuration} parameter} string lock-method"
30173msgstr ""
30174
30175#. type: deftypevr
39764ef8 30176#: doc/guix.texi:13742
b9fe8fd6
JL
30177msgid ""
30178"Locking method for index files. Alternatives are fcntl, flock and dotlock. "
30179"Dotlocking uses some tricks which may create more disk I/O than other "
30180"locking methods. NFS users: flock doesn't work, remember to change "
30181"@samp{mmap-disable}. Defaults to @samp{\"fcntl\"}."
30182msgstr ""
30183
30184#. type: deftypevr
39764ef8 30185#: doc/guix.texi:13744
b9fe8fd6
JL
30186#, no-wrap
30187msgid "{@code{dovecot-configuration} parameter} file-name mail-temp-dir"
30188msgstr ""
30189
30190#. type: deftypevr
39764ef8 30191#: doc/guix.texi:13748
b9fe8fd6
JL
30192msgid ""
30193"Directory in which LDA/LMTP temporarily stores incoming mails >128 kB. "
30194"Defaults to @samp{\"/tmp\"}."
30195msgstr ""
30196
30197#. type: deftypevr
39764ef8 30198#: doc/guix.texi:13750
b9fe8fd6 30199#, no-wrap
39764ef8 30200msgid "{@code{dovecot-configuration} parameter} non-negative-integer first-valid-uid"
b9fe8fd6
JL
30201msgstr ""
30202
30203#. type: deftypevr
39764ef8 30204#: doc/guix.texi:13756
b9fe8fd6
JL
30205msgid ""
30206"Valid UID range for users. This is mostly to make sure that users can't log "
30207"in as daemons or other system users. Note that denying root logins is "
30208"hardcoded to dovecot binary and can't be done even if @samp{first-valid-uid} "
30209"is set to 0. Defaults to @samp{500}."
30210msgstr ""
30211
30212#. type: deftypevr
39764ef8 30213#: doc/guix.texi:13758
b9fe8fd6
JL
30214#, no-wrap
30215msgid "{@code{dovecot-configuration} parameter} non-negative-integer last-valid-uid"
30216msgstr ""
30217
30218#. type: deftypevr
39764ef8 30219#: doc/guix.texi:13763
b9fe8fd6 30220#, no-wrap
39764ef8 30221msgid "{@code{dovecot-configuration} parameter} non-negative-integer first-valid-gid"
b9fe8fd6
JL
30222msgstr ""
30223
30224#. type: deftypevr
39764ef8 30225#: doc/guix.texi:13768
b9fe8fd6
JL
30226msgid ""
30227"Valid GID range for users. Users having non-valid GID as primary group ID "
39764ef8
JL
30228"aren't allowed to log in. If user belongs to supplementary groups with non-"
30229"valid GIDs, those groups are not set. Defaults to @samp{1}."
b9fe8fd6
JL
30230msgstr ""
30231
30232#. type: deftypevr
39764ef8 30233#: doc/guix.texi:13770
b9fe8fd6
JL
30234#, no-wrap
30235msgid "{@code{dovecot-configuration} parameter} non-negative-integer last-valid-gid"
30236msgstr ""
30237
30238#. type: deftypevr
39764ef8 30239#: doc/guix.texi:13775
b9fe8fd6 30240#, no-wrap
39764ef8 30241msgid "{@code{dovecot-configuration} parameter} non-negative-integer mail-max-keyword-length"
b9fe8fd6
JL
30242msgstr ""
30243
30244#. type: deftypevr
39764ef8 30245#: doc/guix.texi:13779
b9fe8fd6
JL
30246msgid ""
30247"Maximum allowed length for mail keyword name. It's only forced when trying "
30248"to create new keywords. Defaults to @samp{50}."
30249msgstr ""
30250
30251#. type: deftypevr
39764ef8 30252#: doc/guix.texi:13781
b9fe8fd6 30253#, no-wrap
39764ef8 30254msgid "{@code{dovecot-configuration} parameter} colon-separated-file-name-list valid-chroot-dirs"
b9fe8fd6
JL
30255msgstr ""
30256
30257#. type: deftypevr
39764ef8 30258#: doc/guix.texi:13791
b9fe8fd6 30259msgid ""
39764ef8
JL
30260"List of directories under which chrooting is allowed for mail processes (i."
30261"e. /var/mail will allow chrooting to /var/mail/foo/bar too). This setting "
30262"doesn't affect @samp{login-chroot} @samp{mail-chroot} or auth chroot "
b9fe8fd6
JL
30263"settings. If this setting is empty, \"/./\" in home dirs are ignored. "
30264"WARNING: Never add directories here which local users can modify, that may "
30265"lead to root exploit. Usually this should be done only if you don't allow "
30266"shell access for users. <doc/wiki/Chrooting.txt>. Defaults to @samp{()}."
30267msgstr ""
30268
30269#. type: deftypevr
39764ef8 30270#: doc/guix.texi:13793
b9fe8fd6
JL
30271#, no-wrap
30272msgid "{@code{dovecot-configuration} parameter} string mail-chroot"
30273msgstr ""
30274
30275#. type: deftypevr
39764ef8 30276#: doc/guix.texi:13802
b9fe8fd6
JL
30277msgid ""
30278"Default chroot directory for mail processes. This can be overridden for "
39764ef8
JL
30279"specific users in user database by giving /./ in user's home directory (e."
30280"g. /home/./user chroots into /home). Note that usually there is no real "
b9fe8fd6
JL
30281"need to do chrooting, Dovecot doesn't allow users to access files outside "
30282"their mail directory anyway. If your home directories are prefixed with the "
39764ef8
JL
30283"chroot directory, append \"/.\" to @samp{mail-chroot}. <doc/wiki/Chrooting."
30284"txt>. Defaults to @samp{\"\"}."
b9fe8fd6
JL
30285msgstr ""
30286
30287#. type: deftypevr
39764ef8 30288#: doc/guix.texi:13804
b9fe8fd6
JL
30289#, no-wrap
30290msgid "{@code{dovecot-configuration} parameter} file-name auth-socket-path"
30291msgstr ""
30292
30293#. type: deftypevr
39764ef8 30294#: doc/guix.texi:13808
b9fe8fd6
JL
30295msgid ""
30296"UNIX socket path to master authentication server to find users. This is "
39764ef8
JL
30297"used by imap (for shared users) and lda. Defaults to @samp{\"/var/run/"
30298"dovecot/auth-userdb\"}."
b9fe8fd6
JL
30299msgstr ""
30300
30301#. type: deftypevr
39764ef8 30302#: doc/guix.texi:13810
b9fe8fd6
JL
30303#, no-wrap
30304msgid "{@code{dovecot-configuration} parameter} file-name mail-plugin-dir"
30305msgstr ""
30306
30307#. type: deftypevr
39764ef8 30308#: doc/guix.texi:13813
b9fe8fd6 30309msgid ""
39764ef8
JL
30310"Directory where to look up mail plugins. Defaults to @samp{\"/usr/lib/"
30311"dovecot\"}."
b9fe8fd6
JL
30312msgstr ""
30313
30314#. type: deftypevr
39764ef8 30315#: doc/guix.texi:13815
b9fe8fd6 30316#, no-wrap
39764ef8 30317msgid "{@code{dovecot-configuration} parameter} space-separated-string-list mail-plugins"
b9fe8fd6
JL
30318msgstr ""
30319
30320#. type: deftypevr
39764ef8 30321#: doc/guix.texi:13819
b9fe8fd6
JL
30322msgid ""
30323"List of plugins to load for all services. Plugins specific to IMAP, LDA, "
39764ef8 30324"etc. are added to this list in their own .conf files. Defaults to @samp{()}."
b9fe8fd6
JL
30325msgstr ""
30326
30327#. type: deftypevr
39764ef8 30328#: doc/guix.texi:13821
b9fe8fd6 30329#, no-wrap
39764ef8 30330msgid "{@code{dovecot-configuration} parameter} non-negative-integer mail-cache-min-mail-count"
b9fe8fd6
JL
30331msgstr ""
30332
30333#. type: deftypevr
39764ef8 30334#: doc/guix.texi:13826
b9fe8fd6
JL
30335msgid ""
30336"The minimum number of mails in a mailbox before updates are done to cache "
30337"file. This allows optimizing Dovecot's behavior to do less disk writes at "
30338"the cost of more disk reads. Defaults to @samp{0}."
30339msgstr ""
30340
30341#. type: deftypevr
39764ef8 30342#: doc/guix.texi:13828
b9fe8fd6
JL
30343#, no-wrap
30344msgid "{@code{dovecot-configuration} parameter} string mailbox-idle-check-interval"
30345msgstr ""
30346
30347#. type: deftypevr
39764ef8 30348#: doc/guix.texi:13835
b9fe8fd6
JL
30349msgid ""
30350"When IDLE command is running, mailbox is checked once in a while to see if "
30351"there are any new mails or other changes. This setting defines the minimum "
30352"time to wait between those checks. Dovecot can also use dnotify, inotify "
30353"and kqueue to find out immediately when changes occur. Defaults to "
30354"@samp{\"30 secs\"}."
30355msgstr ""
30356
30357#. type: deftypevr
39764ef8 30358#: doc/guix.texi:13837
b9fe8fd6
JL
30359#, no-wrap
30360msgid "{@code{dovecot-configuration} parameter} boolean mail-save-crlf?"
30361msgstr ""
30362
30363#. type: deftypevr
39764ef8 30364#: doc/guix.texi:13844
b9fe8fd6
JL
30365msgid ""
30366"Save mails with CR+LF instead of plain LF. This makes sending those mails "
30367"take less CPU, especially with sendfile() syscall with Linux and FreeBSD. "
30368"But it also creates a bit more disk I/O which may just make it slower. Also "
30369"note that if other software reads the mboxes/maildirs, they may handle the "
30370"extra CRs wrong and cause problems. Defaults to @samp{#f}."
30371msgstr ""
30372
30373#. type: deftypevr
39764ef8 30374#: doc/guix.texi:13846
b9fe8fd6
JL
30375#, no-wrap
30376msgid "{@code{dovecot-configuration} parameter} boolean maildir-stat-dirs?"
30377msgstr ""
30378
30379#. type: deftypevr
39764ef8 30380#: doc/guix.texi:13854
b9fe8fd6
JL
30381msgid ""
30382"By default LIST command returns all entries in maildir beginning with a "
30383"dot. Enabling this option makes Dovecot return only entries which are "
39764ef8
JL
30384"directories. This is done by stat()ing each entry, so it causes more disk I/"
30385"O. (For systems setting struct @samp{dirent->d_type} this check is free and "
30386"it's done always regardless of this setting). Defaults to @samp{#f}."
b9fe8fd6
JL
30387msgstr ""
30388
30389#. type: deftypevr
39764ef8 30390#: doc/guix.texi:13856
b9fe8fd6 30391#, no-wrap
39764ef8 30392msgid "{@code{dovecot-configuration} parameter} boolean maildir-copy-with-hardlinks?"
b9fe8fd6
JL
30393msgstr ""
30394
30395#. type: deftypevr
39764ef8 30396#: doc/guix.texi:13861
b9fe8fd6
JL
30397msgid ""
30398"When copying a message, do it with hard links whenever possible. This makes "
30399"the performance much better, and it's unlikely to have any side effects. "
30400"Defaults to @samp{#t}."
30401msgstr ""
30402
30403#. type: deftypevr
39764ef8 30404#: doc/guix.texi:13863
b9fe8fd6
JL
30405#, no-wrap
30406msgid "{@code{dovecot-configuration} parameter} boolean maildir-very-dirty-syncs?"
30407msgstr ""
30408
30409#. type: deftypevr
39764ef8 30410#: doc/guix.texi:13868
b9fe8fd6
JL
30411msgid ""
30412"Assume Dovecot is the only MUA accessing Maildir: Scan cur/ directory only "
30413"when its mtime changes unexpectedly or when we can't find the mail "
30414"otherwise. Defaults to @samp{#f}."
30415msgstr ""
30416
30417#. type: deftypevr
39764ef8 30418#: doc/guix.texi:13870
b9fe8fd6 30419#, no-wrap
39764ef8 30420msgid "{@code{dovecot-configuration} parameter} space-separated-string-list mbox-read-locks"
b9fe8fd6
JL
30421msgstr ""
30422
30423#. type: deftypevr
39764ef8
JL
30424#: doc/guix.texi:13873
30425msgid ""
30426"Which locking methods to use for locking mbox. There are four available:"
b9fe8fd6
JL
30427msgstr ""
30428
30429#. type: item
39764ef8 30430#: doc/guix.texi:13875
b9fe8fd6
JL
30431#, no-wrap
30432msgid "dotlock"
30433msgstr ""
30434
30435#. type: table
39764ef8 30436#: doc/guix.texi:13879
b9fe8fd6
JL
30437msgid ""
30438"Create <mailbox>.lock file. This is the oldest and most NFS-safe solution. "
30439"If you want to use /var/mail/ like directory, the users will need write "
30440"access to that directory."
30441msgstr ""
30442
30443#. type: item
39764ef8 30444#: doc/guix.texi:13879
b9fe8fd6
JL
30445#, no-wrap
30446msgid "dotlock-try"
30447msgstr ""
30448
30449#. type: table
39764ef8 30450#: doc/guix.texi:13882
b9fe8fd6
JL
30451msgid ""
30452"Same as dotlock, but if it fails because of permissions or because there "
30453"isn't enough disk space, just skip it."
30454msgstr ""
30455
30456#. type: item
39764ef8 30457#: doc/guix.texi:13882
b9fe8fd6
JL
30458#, no-wrap
30459msgid "fcntl"
30460msgstr ""
30461
30462#. type: table
39764ef8 30463#: doc/guix.texi:13884
b9fe8fd6
JL
30464msgid "Use this if possible. Works with NFS too if lockd is used."
30465msgstr ""
30466
30467#. type: item
39764ef8 30468#: doc/guix.texi:13884
b9fe8fd6
JL
30469#, no-wrap
30470msgid "flock"
30471msgstr ""
30472
30473#. type: table
39764ef8 30474#: doc/guix.texi:13886 doc/guix.texi:13888
b9fe8fd6
JL
30475msgid "May not exist in all systems. Doesn't work with NFS."
30476msgstr ""
30477
30478#. type: item
39764ef8 30479#: doc/guix.texi:13886
b9fe8fd6
JL
30480#, no-wrap
30481msgid "lockf"
30482msgstr ""
30483
30484#. type: deftypevr
39764ef8 30485#: doc/guix.texi:13894
b9fe8fd6
JL
30486msgid ""
30487"You can use multiple locking methods; if you do the order they're declared "
30488"in is important to avoid deadlocks if other MTAs/MUAs are using multiple "
30489"locking methods as well. Some operating systems don't allow using some of "
30490"them simultaneously."
30491msgstr ""
30492
30493#. type: deftypevr
39764ef8 30494#: doc/guix.texi:13896
b9fe8fd6 30495#, no-wrap
39764ef8 30496msgid "{@code{dovecot-configuration} parameter} space-separated-string-list mbox-write-locks"
b9fe8fd6
JL
30497msgstr ""
30498
30499#. type: deftypevr
39764ef8 30500#: doc/guix.texi:13900
b9fe8fd6
JL
30501#, no-wrap
30502msgid "{@code{dovecot-configuration} parameter} string mbox-lock-timeout"
30503msgstr ""
30504
30505#. type: deftypevr
39764ef8 30506#: doc/guix.texi:13903
b9fe8fd6
JL
30507msgid ""
30508"Maximum time to wait for lock (all of them) before aborting. Defaults to "
30509"@samp{\"5 mins\"}."
30510msgstr ""
30511
30512#. type: deftypevr
39764ef8 30513#: doc/guix.texi:13905
b9fe8fd6
JL
30514#, no-wrap
30515msgid "{@code{dovecot-configuration} parameter} string mbox-dotlock-change-timeout"
30516msgstr ""
30517
30518#. type: deftypevr
39764ef8 30519#: doc/guix.texi:13909
b9fe8fd6
JL
30520msgid ""
30521"If dotlock exists but the mailbox isn't modified in any way, override the "
30522"lock file after this much time. Defaults to @samp{\"2 mins\"}."
30523msgstr ""
30524
30525#. type: deftypevr
39764ef8 30526#: doc/guix.texi:13911
b9fe8fd6
JL
30527#, no-wrap
30528msgid "{@code{dovecot-configuration} parameter} boolean mbox-dirty-syncs?"
30529msgstr ""
30530
30531#. type: deftypevr
39764ef8 30532#: doc/guix.texi:13922
b9fe8fd6
JL
30533msgid ""
30534"When mbox changes unexpectedly we have to fully read it to find out what "
30535"changed. If the mbox is large this can take a long time. Since the change "
30536"is usually just a newly appended mail, it'd be faster to simply read the new "
30537"mails. If this setting is enabled, Dovecot does this but still safely "
30538"fallbacks to re-reading the whole mbox file whenever something in mbox isn't "
30539"how it's expected to be. The only real downside to this setting is that if "
30540"some other MUA changes message flags, Dovecot doesn't notice it "
30541"immediately. Note that a full sync is done with SELECT, EXAMINE, EXPUNGE "
30542"and CHECK commands. Defaults to @samp{#t}."
30543msgstr ""
30544
30545#. type: deftypevr
39764ef8 30546#: doc/guix.texi:13924
b9fe8fd6
JL
30547#, no-wrap
30548msgid "{@code{dovecot-configuration} parameter} boolean mbox-very-dirty-syncs?"
30549msgstr ""
30550
30551#. type: deftypevr
39764ef8 30552#: doc/guix.texi:13929
b9fe8fd6
JL
30553msgid ""
30554"Like @samp{mbox-dirty-syncs}, but don't do full syncs even with SELECT, "
30555"EXAMINE, EXPUNGE or CHECK commands. If this is set, @samp{mbox-dirty-syncs} "
30556"is ignored. Defaults to @samp{#f}."
30557msgstr ""
30558
30559#. type: deftypevr
39764ef8 30560#: doc/guix.texi:13931
b9fe8fd6
JL
30561#, no-wrap
30562msgid "{@code{dovecot-configuration} parameter} boolean mbox-lazy-writes?"
30563msgstr ""
30564
30565#. type: deftypevr
39764ef8 30566#: doc/guix.texi:13937
b9fe8fd6
JL
30567msgid ""
30568"Delay writing mbox headers until doing a full write sync (EXPUNGE and CHECK "
30569"commands and when closing the mailbox). This is especially useful for POP3 "
30570"where clients often delete all mails. The downside is that our changes "
30571"aren't immediately visible to other MUAs. Defaults to @samp{#t}."
30572msgstr ""
30573
30574#. type: deftypevr
39764ef8 30575#: doc/guix.texi:13939
b9fe8fd6 30576#, no-wrap
39764ef8 30577msgid "{@code{dovecot-configuration} parameter} non-negative-integer mbox-min-index-size"
b9fe8fd6
JL
30578msgstr ""
30579
30580#. type: deftypevr
39764ef8 30581#: doc/guix.texi:13944
b9fe8fd6
JL
30582msgid ""
30583"If mbox size is smaller than this (e.g. 100k), don't write index files. If "
30584"an index file already exists it's still read, just not updated. Defaults to "
30585"@samp{0}."
30586msgstr ""
30587
30588#. type: deftypevr
39764ef8 30589#: doc/guix.texi:13946
b9fe8fd6 30590#, no-wrap
39764ef8 30591msgid "{@code{dovecot-configuration} parameter} non-negative-integer mdbox-rotate-size"
b9fe8fd6
JL
30592msgstr ""
30593
30594#. type: deftypevr
39764ef8
JL
30595#: doc/guix.texi:13949
30596msgid ""
30597"Maximum dbox file size until it's rotated. Defaults to @samp{10000000}."
b9fe8fd6
JL
30598msgstr ""
30599
30600#. type: deftypevr
39764ef8 30601#: doc/guix.texi:13951
b9fe8fd6
JL
30602#, no-wrap
30603msgid "{@code{dovecot-configuration} parameter} string mdbox-rotate-interval"
30604msgstr ""
30605
30606#. type: deftypevr
39764ef8 30607#: doc/guix.texi:13956
b9fe8fd6
JL
30608msgid ""
30609"Maximum dbox file age until it's rotated. Typically in days. Day begins "
30610"from midnight, so 1d = today, 2d = yesterday, etc. 0 = check disabled. "
30611"Defaults to @samp{\"1d\"}."
30612msgstr ""
30613
30614#. type: deftypevr
39764ef8 30615#: doc/guix.texi:13958
b9fe8fd6
JL
30616#, no-wrap
30617msgid "{@code{dovecot-configuration} parameter} boolean mdbox-preallocate-space?"
30618msgstr ""
30619
30620#. type: deftypevr
39764ef8 30621#: doc/guix.texi:13963
b9fe8fd6
JL
30622msgid ""
30623"When creating new mdbox files, immediately preallocate their size to "
30624"@samp{mdbox-rotate-size}. This setting currently works only in Linux with "
30625"some file systems (ext4, xfs). Defaults to @samp{#f}."
30626msgstr ""
30627
30628#. type: deftypevr
39764ef8 30629#: doc/guix.texi:13965
b9fe8fd6
JL
30630#, no-wrap
30631msgid "{@code{dovecot-configuration} parameter} string mail-attachment-dir"
30632msgstr ""
30633
30634#. type: deftypevr
39764ef8 30635#: doc/guix.texi:13969
b9fe8fd6
JL
30636msgid ""
30637"sdbox and mdbox support saving mail attachments to external files, which "
30638"also allows single instance storage for them. Other backends don't support "
30639"this for now."
30640msgstr ""
30641
30642#. type: deftypevr
39764ef8
JL
30643#: doc/guix.texi:13971
30644msgid ""
30645"WARNING: This feature hasn't been tested much yet. Use at your own risk."
b9fe8fd6
JL
30646msgstr ""
30647
30648#. type: deftypevr
39764ef8 30649#: doc/guix.texi:13974
b9fe8fd6
JL
30650msgid ""
30651"Directory root where to store mail attachments. Disabled, if empty. "
30652"Defaults to @samp{\"\"}."
30653msgstr ""
30654
30655#. type: deftypevr
39764ef8 30656#: doc/guix.texi:13976
b9fe8fd6 30657#, no-wrap
39764ef8 30658msgid "{@code{dovecot-configuration} parameter} non-negative-integer mail-attachment-min-size"
b9fe8fd6
JL
30659msgstr ""
30660
30661#. type: deftypevr
39764ef8 30662#: doc/guix.texi:13981
b9fe8fd6
JL
30663msgid ""
30664"Attachments smaller than this aren't saved externally. It's also possible "
30665"to write a plugin to disable saving specific attachments externally. "
30666"Defaults to @samp{128000}."
30667msgstr ""
30668
30669#. type: deftypevr
39764ef8 30670#: doc/guix.texi:13983
b9fe8fd6
JL
30671#, no-wrap
30672msgid "{@code{dovecot-configuration} parameter} string mail-attachment-fs"
30673msgstr ""
30674
30675#. type: deftypevr
39764ef8 30676#: doc/guix.texi:13985
b9fe8fd6
JL
30677msgid "File system backend to use for saving attachments:"
30678msgstr ""
30679
30680#. type: item
39764ef8 30681#: doc/guix.texi:13986
b9fe8fd6
JL
30682#, no-wrap
30683msgid "posix"
30684msgstr ""
30685
30686#. type: table
39764ef8 30687#: doc/guix.texi:13988
b9fe8fd6
JL
30688msgid "No SiS done by Dovecot (but this might help FS's own deduplication)"
30689msgstr ""
30690
30691#. type: item
39764ef8 30692#: doc/guix.texi:13988
b9fe8fd6
JL
30693#, no-wrap
30694msgid "sis posix"
30695msgstr ""
30696
30697#. type: table
39764ef8 30698#: doc/guix.texi:13990
b9fe8fd6
JL
30699msgid "SiS with immediate byte-by-byte comparison during saving"
30700msgstr ""
30701
30702#. type: item
39764ef8 30703#: doc/guix.texi:13990
b9fe8fd6
JL
30704#, no-wrap
30705msgid "sis-queue posix"
30706msgstr ""
30707
30708#. type: table
39764ef8 30709#: doc/guix.texi:13992
b9fe8fd6
JL
30710msgid "SiS with delayed comparison and deduplication."
30711msgstr ""
30712
30713#. type: deftypevr
39764ef8 30714#: doc/guix.texi:13994
b9fe8fd6
JL
30715msgid "Defaults to @samp{\"sis posix\"}."
30716msgstr ""
30717
30718#. type: deftypevr
39764ef8 30719#: doc/guix.texi:13996
b9fe8fd6
JL
30720#, no-wrap
30721msgid "{@code{dovecot-configuration} parameter} string mail-attachment-hash"
30722msgstr ""
30723
30724#. type: deftypevr
39764ef8 30725#: doc/guix.texi:14002
b9fe8fd6
JL
30726msgid ""
30727"Hash format to use in attachment filenames. You can add any text and "
30728"variables: @code{%@{md4@}}, @code{%@{md5@}}, @code{%@{sha1@}}, "
30729"@code{%@{sha256@}}, @code{%@{sha512@}}, @code{%@{size@}}. Variables can be "
30730"truncated, e.g. @code{%@{sha256:80@}} returns only first 80 bits. Defaults "
30731"to @samp{\"%@{sha1@}\"}."
30732msgstr ""
30733
30734#. type: deftypevr
39764ef8 30735#: doc/guix.texi:14004
b9fe8fd6 30736#, no-wrap
39764ef8 30737msgid "{@code{dovecot-configuration} parameter} non-negative-integer default-process-limit"
b9fe8fd6
JL
30738msgstr ""
30739
30740#. type: deftypevr
39764ef8 30741#: doc/guix.texi:14009
b9fe8fd6 30742#, no-wrap
39764ef8 30743msgid "{@code{dovecot-configuration} parameter} non-negative-integer default-client-limit"
b9fe8fd6
JL
30744msgstr ""
30745
30746#. type: deftypevr
39764ef8 30747#: doc/guix.texi:14012 doc/guix.texi:17918
b9fe8fd6
JL
30748msgid "Defaults to @samp{1000}."
30749msgstr ""
30750
30751#. type: deftypevr
39764ef8 30752#: doc/guix.texi:14014
b9fe8fd6 30753#, no-wrap
39764ef8 30754msgid "{@code{dovecot-configuration} parameter} non-negative-integer default-vsz-limit"
b9fe8fd6
JL
30755msgstr ""
30756
30757#. type: deftypevr
39764ef8 30758#: doc/guix.texi:14019
b9fe8fd6
JL
30759msgid ""
30760"Default VSZ (virtual memory size) limit for service processes. This is "
30761"mainly intended to catch and kill processes that leak memory before they eat "
30762"up everything. Defaults to @samp{256000000}."
30763msgstr ""
30764
30765#. type: deftypevr
39764ef8 30766#: doc/guix.texi:14021
b9fe8fd6
JL
30767#, no-wrap
30768msgid "{@code{dovecot-configuration} parameter} string default-login-user"
30769msgstr ""
30770
30771#. type: deftypevr
39764ef8 30772#: doc/guix.texi:14026
b9fe8fd6
JL
30773msgid ""
30774"Login user is internally used by login processes. This is the most "
30775"untrusted user in Dovecot system. It shouldn't have access to anything at "
30776"all. Defaults to @samp{\"dovenull\"}."
30777msgstr ""
30778
30779#. type: deftypevr
39764ef8 30780#: doc/guix.texi:14028
b9fe8fd6
JL
30781#, no-wrap
30782msgid "{@code{dovecot-configuration} parameter} string default-internal-user"
30783msgstr ""
30784
30785#. type: deftypevr
39764ef8 30786#: doc/guix.texi:14033
b9fe8fd6
JL
30787msgid ""
30788"Internal user is used by unprivileged processes. It should be separate from "
30789"login user, so that login processes can't disturb other processes. Defaults "
30790"to @samp{\"dovecot\"}."
30791msgstr ""
30792
30793#. type: deftypevr
39764ef8 30794#: doc/guix.texi:14035
b9fe8fd6
JL
30795#, no-wrap
30796msgid "{@code{dovecot-configuration} parameter} string ssl?"
30797msgstr ""
30798
30799#. type: deftypevr
39764ef8 30800#: doc/guix.texi:14038
b9fe8fd6
JL
30801msgid ""
30802"SSL/TLS support: yes, no, required. <doc/wiki/SSL.txt>. Defaults to "
30803"@samp{\"required\"}."
30804msgstr ""
30805
30806#. type: deftypevr
39764ef8 30807#: doc/guix.texi:14040
b9fe8fd6
JL
30808#, no-wrap
30809msgid "{@code{dovecot-configuration} parameter} string ssl-cert"
30810msgstr ""
30811
30812#. type: deftypevr
39764ef8 30813#: doc/guix.texi:14043
b9fe8fd6 30814msgid ""
39764ef8
JL
30815"PEM encoded X.509 SSL/TLS certificate (public key). Defaults to @samp{\"</"
30816"etc/dovecot/default.pem\"}."
b9fe8fd6
JL
30817msgstr ""
30818
30819#. type: deftypevr
39764ef8 30820#: doc/guix.texi:14045
b9fe8fd6
JL
30821#, no-wrap
30822msgid "{@code{dovecot-configuration} parameter} string ssl-key"
30823msgstr ""
30824
30825#. type: deftypevr
39764ef8 30826#: doc/guix.texi:14050
b9fe8fd6
JL
30827msgid ""
30828"PEM encoded SSL/TLS private key. The key is opened before dropping root "
30829"privileges, so keep the key file unreadable by anyone but root. Defaults to "
30830"@samp{\"</etc/dovecot/private/default.pem\"}."
30831msgstr ""
30832
30833#. type: deftypevr
39764ef8 30834#: doc/guix.texi:14052
b9fe8fd6
JL
30835#, no-wrap
30836msgid "{@code{dovecot-configuration} parameter} string ssl-key-password"
30837msgstr ""
30838
30839#. type: deftypevr
39764ef8 30840#: doc/guix.texi:14058
b9fe8fd6
JL
30841msgid ""
30842"If key file is password protected, give the password here. Alternatively "
30843"give it when starting dovecot with -p parameter. Since this file is often "
30844"world-readable, you may want to place this setting instead to a different. "
30845"Defaults to @samp{\"\"}."
30846msgstr ""
30847
30848#. type: deftypevr
39764ef8 30849#: doc/guix.texi:14060
b9fe8fd6
JL
30850#, no-wrap
30851msgid "{@code{dovecot-configuration} parameter} string ssl-ca"
30852msgstr ""
30853
30854#. type: deftypevr
39764ef8 30855#: doc/guix.texi:14066
b9fe8fd6
JL
30856msgid ""
30857"PEM encoded trusted certificate authority. Set this only if you intend to "
30858"use @samp{ssl-verify-client-cert? #t}. The file should contain the CA "
39764ef8
JL
30859"certificate(s) followed by the matching CRL(s). (e.g. @samp{ssl-ca </etc/"
30860"ssl/certs/ca.pem}). Defaults to @samp{\"\"}."
b9fe8fd6
JL
30861msgstr ""
30862
30863#. type: deftypevr
39764ef8 30864#: doc/guix.texi:14068
b9fe8fd6
JL
30865#, no-wrap
30866msgid "{@code{dovecot-configuration} parameter} boolean ssl-require-crl?"
30867msgstr ""
30868
30869#. type: deftypevr
39764ef8 30870#: doc/guix.texi:14071
b9fe8fd6
JL
30871msgid ""
30872"Require that CRL check succeeds for client certificates. Defaults to "
30873"@samp{#t}."
30874msgstr ""
30875
30876#. type: deftypevr
39764ef8 30877#: doc/guix.texi:14073
b9fe8fd6
JL
30878#, no-wrap
30879msgid "{@code{dovecot-configuration} parameter} boolean ssl-verify-client-cert?"
30880msgstr ""
30881
30882#. type: deftypevr
39764ef8 30883#: doc/guix.texi:14077
b9fe8fd6
JL
30884msgid ""
30885"Request client to send a certificate. If you also want to require it, set "
30886"@samp{auth-ssl-require-client-cert? #t} in auth section. Defaults to "
30887"@samp{#f}."
30888msgstr ""
30889
30890#. type: deftypevr
39764ef8 30891#: doc/guix.texi:14079
b9fe8fd6
JL
30892#, no-wrap
30893msgid "{@code{dovecot-configuration} parameter} string ssl-cert-username-field"
30894msgstr ""
30895
30896#. type: deftypevr
39764ef8 30897#: doc/guix.texi:14084
b9fe8fd6
JL
30898msgid ""
30899"Which field from certificate to use for username. commonName and "
30900"x500UniqueIdentifier are the usual choices. You'll also need to set "
30901"@samp{auth-ssl-username-from-cert? #t}. Defaults to @samp{\"commonName\"}."
30902msgstr ""
30903
30904#. type: deftypevr
39764ef8 30905#: doc/guix.texi:14086
b9fe8fd6
JL
30906#, no-wrap
30907msgid "{@code{dovecot-configuration} parameter} string ssl-min-protocol"
30908msgstr ""
30909
30910#. type: deftypevr
39764ef8 30911#: doc/guix.texi:14089
b9fe8fd6
JL
30912msgid "Minimum SSL protocol version to accept. Defaults to @samp{\"TLSv1\"}."
30913msgstr ""
30914
30915#. type: deftypevr
39764ef8 30916#: doc/guix.texi:14091
b9fe8fd6
JL
30917#, no-wrap
30918msgid "{@code{dovecot-configuration} parameter} string ssl-cipher-list"
30919msgstr ""
30920
30921#. type: deftypevr
39764ef8 30922#: doc/guix.texi:14094
b9fe8fd6 30923msgid ""
39764ef8
JL
30924"SSL ciphers to use. Defaults to @samp{\"ALL:!kRSA:!SRP:!kDHd:!DSS:!aNULL:!"
30925"eNULL:!EXPORT:!DES:!3DES:!MD5:!PSK:!RC4:!ADH:!LOW@@STRENGTH\"}."
b9fe8fd6
JL
30926msgstr ""
30927
30928#. type: deftypevr
39764ef8 30929#: doc/guix.texi:14096
b9fe8fd6
JL
30930#, no-wrap
30931msgid "{@code{dovecot-configuration} parameter} string ssl-crypto-device"
30932msgstr ""
30933
30934#. type: deftypevr
39764ef8 30935#: doc/guix.texi:14099
b9fe8fd6
JL
30936msgid ""
30937"SSL crypto device to use, for valid values run \"openssl engine\". Defaults "
30938"to @samp{\"\"}."
30939msgstr ""
30940
30941#. type: deftypevr
39764ef8 30942#: doc/guix.texi:14101
b9fe8fd6
JL
30943#, no-wrap
30944msgid "{@code{dovecot-configuration} parameter} string postmaster-address"
30945msgstr ""
30946
30947#. type: deftypevr
39764ef8 30948#: doc/guix.texi:14105
b9fe8fd6
JL
30949msgid ""
30950"Address to use when sending rejection mails. %d expands to recipient "
30951"domain. Defaults to @samp{\"postmaster@@%d\"}."
30952msgstr ""
30953
30954#. type: deftypevr
39764ef8 30955#: doc/guix.texi:14107
b9fe8fd6
JL
30956#, no-wrap
30957msgid "{@code{dovecot-configuration} parameter} string hostname"
30958msgstr ""
30959
30960#. type: deftypevr
39764ef8 30961#: doc/guix.texi:14111
b9fe8fd6
JL
30962msgid ""
30963"Hostname to use in various parts of sent mails (e.g. in Message-Id) and in "
30964"LMTP replies. Default is the system's real hostname@@domain. Defaults to "
30965"@samp{\"\"}."
30966msgstr ""
30967
30968#. type: deftypevr
39764ef8 30969#: doc/guix.texi:14113
b9fe8fd6
JL
30970#, no-wrap
30971msgid "{@code{dovecot-configuration} parameter} boolean quota-full-tempfail?"
30972msgstr ""
30973
30974#. type: deftypevr
39764ef8 30975#: doc/guix.texi:14117
b9fe8fd6
JL
30976msgid ""
30977"If user is over quota, return with temporary failure instead of bouncing the "
30978"mail. Defaults to @samp{#f}."
30979msgstr ""
30980
30981#. type: deftypevr
39764ef8 30982#: doc/guix.texi:14119
b9fe8fd6
JL
30983#, no-wrap
30984msgid "{@code{dovecot-configuration} parameter} file-name sendmail-path"
30985msgstr ""
30986
30987#. type: deftypevr
39764ef8
JL
30988#: doc/guix.texi:14122
30989msgid ""
30990"Binary to use for sending mails. Defaults to @samp{\"/usr/sbin/sendmail\"}."
b9fe8fd6
JL
30991msgstr ""
30992
30993#. type: deftypevr
39764ef8 30994#: doc/guix.texi:14124
b9fe8fd6
JL
30995#, no-wrap
30996msgid "{@code{dovecot-configuration} parameter} string submission-host"
30997msgstr ""
30998
30999#. type: deftypevr
39764ef8 31000#: doc/guix.texi:14128
b9fe8fd6
JL
31001msgid ""
31002"If non-empty, send mails via this SMTP host[:port] instead of sendmail. "
31003"Defaults to @samp{\"\"}."
31004msgstr ""
31005
31006#. type: deftypevr
39764ef8 31007#: doc/guix.texi:14130
b9fe8fd6
JL
31008#, no-wrap
31009msgid "{@code{dovecot-configuration} parameter} string rejection-subject"
31010msgstr ""
31011
31012#. type: deftypevr
39764ef8 31013#: doc/guix.texi:14134
b9fe8fd6
JL
31014msgid ""
31015"Subject: header to use for rejection mails. You can use the same variables "
31016"as for @samp{rejection-reason} below. Defaults to @samp{\"Rejected: %s\"}."
31017msgstr ""
31018
31019#. type: deftypevr
39764ef8 31020#: doc/guix.texi:14136
b9fe8fd6
JL
31021#, no-wrap
31022msgid "{@code{dovecot-configuration} parameter} string rejection-reason"
31023msgstr ""
31024
31025#. type: deftypevr
39764ef8
JL
31026#: doc/guix.texi:14139
31027msgid ""
31028"Human readable error message for rejection mails. You can use variables:"
b9fe8fd6
JL
31029msgstr ""
31030
31031#. type: table
39764ef8 31032#: doc/guix.texi:14143
b9fe8fd6
JL
31033msgid "CRLF"
31034msgstr ""
31035
31036#. type: item
39764ef8 31037#: doc/guix.texi:14143
b9fe8fd6
JL
31038#, no-wrap
31039msgid "%r"
31040msgstr ""
31041
31042#. type: table
39764ef8 31043#: doc/guix.texi:14145
b9fe8fd6
JL
31044msgid "reason"
31045msgstr ""
31046
31047#. type: table
39764ef8 31048#: doc/guix.texi:14147
b9fe8fd6
JL
31049msgid "original subject"
31050msgstr ""
31051
31052#. type: item
39764ef8 31053#: doc/guix.texi:14147
b9fe8fd6
JL
31054#, no-wrap
31055msgid "%t"
31056msgstr ""
31057
31058#. type: table
39764ef8 31059#: doc/guix.texi:14149
b9fe8fd6
JL
31060msgid "recipient"
31061msgstr ""
31062
31063#. type: deftypevr
39764ef8
JL
31064#: doc/guix.texi:14151
31065msgid ""
31066"Defaults to @samp{\"Your message to <%t> was automatically rejected:%n%r\"}."
b9fe8fd6
JL
31067msgstr ""
31068
31069#. type: deftypevr
39764ef8 31070#: doc/guix.texi:14153
b9fe8fd6
JL
31071#, no-wrap
31072msgid "{@code{dovecot-configuration} parameter} string recipient-delimiter"
31073msgstr ""
31074
31075#. type: deftypevr
39764ef8 31076#: doc/guix.texi:14157
b9fe8fd6
JL
31077msgid ""
31078"Delimiter character between local-part and detail in email address. "
31079"Defaults to @samp{\"+\"}."
31080msgstr ""
31081
31082#. type: deftypevr
39764ef8 31083#: doc/guix.texi:14159
b9fe8fd6 31084#, no-wrap
39764ef8 31085msgid "{@code{dovecot-configuration} parameter} string lda-original-recipient-header"
b9fe8fd6
JL
31086msgstr ""
31087
31088#. type: deftypevr
39764ef8 31089#: doc/guix.texi:14165
b9fe8fd6
JL
31090msgid ""
31091"Header where the original recipient address (SMTP's RCPT TO: address) is "
31092"taken from if not available elsewhere. With dovecot-lda -a parameter "
31093"overrides this. A commonly used header for this is X-Original-To. Defaults "
31094"to @samp{\"\"}."
31095msgstr ""
31096
31097#. type: deftypevr
39764ef8 31098#: doc/guix.texi:14167
b9fe8fd6
JL
31099#, no-wrap
31100msgid "{@code{dovecot-configuration} parameter} boolean lda-mailbox-autocreate?"
31101msgstr ""
31102
31103#. type: deftypevr
39764ef8 31104#: doc/guix.texi:14171
b9fe8fd6
JL
31105msgid ""
31106"Should saving a mail to a nonexistent mailbox automatically create it?. "
31107"Defaults to @samp{#f}."
31108msgstr ""
31109
31110#. type: deftypevr
39764ef8 31111#: doc/guix.texi:14173
b9fe8fd6
JL
31112#, no-wrap
31113msgid "{@code{dovecot-configuration} parameter} boolean lda-mailbox-autosubscribe?"
31114msgstr ""
31115
31116#. type: deftypevr
39764ef8 31117#: doc/guix.texi:14177
b9fe8fd6
JL
31118msgid ""
31119"Should automatically created mailboxes be also automatically subscribed?. "
31120"Defaults to @samp{#f}."
31121msgstr ""
31122
31123#. type: deftypevr
39764ef8 31124#: doc/guix.texi:14179
b9fe8fd6 31125#, no-wrap
39764ef8 31126msgid "{@code{dovecot-configuration} parameter} non-negative-integer imap-max-line-length"
b9fe8fd6
JL
31127msgstr ""
31128
31129#. type: deftypevr
39764ef8 31130#: doc/guix.texi:14185
b9fe8fd6
JL
31131msgid ""
31132"Maximum IMAP command line length. Some clients generate very long command "
31133"lines with huge mailboxes, so you may need to raise this if you get \"Too "
31134"long argument\" or \"IMAP command line too large\" errors often. Defaults "
31135"to @samp{64000}."
31136msgstr ""
31137
31138#. type: deftypevr
39764ef8 31139#: doc/guix.texi:14187
b9fe8fd6
JL
31140#, no-wrap
31141msgid "{@code{dovecot-configuration} parameter} string imap-logout-format"
31142msgstr ""
31143
31144#. type: deftypevr
39764ef8 31145#: doc/guix.texi:14189
b9fe8fd6
JL
31146msgid "IMAP logout format string:"
31147msgstr ""
31148
31149#. type: item
39764ef8 31150#: doc/guix.texi:14190
b9fe8fd6
JL
31151#, no-wrap
31152msgid "%i"
31153msgstr ""
31154
31155#. type: table
39764ef8 31156#: doc/guix.texi:14192
b9fe8fd6
JL
31157msgid "total number of bytes read from client"
31158msgstr ""
31159
31160#. type: item
39764ef8 31161#: doc/guix.texi:14192
b9fe8fd6
JL
31162#, no-wrap
31163msgid "%o"
31164msgstr ""
31165
31166#. type: table
39764ef8 31167#: doc/guix.texi:14194
b9fe8fd6
JL
31168msgid "total number of bytes sent to client."
31169msgstr ""
31170
31171#. type: deftypevr
39764ef8 31172#: doc/guix.texi:14197
b9fe8fd6
JL
31173msgid ""
31174"See @file{doc/wiki/Variables.txt} for a list of all the variables you can "
39764ef8
JL
31175"use. Defaults to @samp{\"in=%i out=%o deleted=%@{deleted@} expunged="
31176"%@{expunged@} trashed=%@{trashed@} hdr_count=%@{fetch_hdr_count@} hdr_bytes="
31177"%@{fetch_hdr_bytes@} body_count=%@{fetch_body_count@} body_bytes="
31178"%@{fetch_body_bytes@}\"}."
b9fe8fd6
JL
31179msgstr ""
31180
31181#. type: deftypevr
39764ef8 31182#: doc/guix.texi:14199
b9fe8fd6
JL
31183#, no-wrap
31184msgid "{@code{dovecot-configuration} parameter} string imap-capability"
31185msgstr ""
31186
31187#. type: deftypevr
39764ef8 31188#: doc/guix.texi:14203
b9fe8fd6
JL
31189msgid ""
31190"Override the IMAP CAPABILITY response. If the value begins with '+', add "
31191"the given capabilities on top of the defaults (e.g. +XFOO XBAR). Defaults "
31192"to @samp{\"\"}."
31193msgstr ""
31194
31195#. type: deftypevr
39764ef8 31196#: doc/guix.texi:14205
b9fe8fd6
JL
31197#, no-wrap
31198msgid "{@code{dovecot-configuration} parameter} string imap-idle-notify-interval"
31199msgstr ""
31200
31201#. type: deftypevr
39764ef8 31202#: doc/guix.texi:14209
b9fe8fd6
JL
31203msgid ""
31204"How long to wait between \"OK Still here\" notifications when client is "
31205"IDLEing. Defaults to @samp{\"2 mins\"}."
31206msgstr ""
31207
31208#. type: deftypevr
39764ef8 31209#: doc/guix.texi:14211
b9fe8fd6
JL
31210#, no-wrap
31211msgid "{@code{dovecot-configuration} parameter} string imap-id-send"
31212msgstr ""
31213
31214#. type: deftypevr
39764ef8 31215#: doc/guix.texi:14217
b9fe8fd6
JL
31216msgid ""
31217"ID field names and values to send to clients. Using * as the value makes "
31218"Dovecot use the default value. The following fields have default values "
31219"currently: name, version, os, os-version, support-url, support-email. "
31220"Defaults to @samp{\"\"}."
31221msgstr ""
31222
31223#. type: deftypevr
39764ef8 31224#: doc/guix.texi:14219
b9fe8fd6
JL
31225#, no-wrap
31226msgid "{@code{dovecot-configuration} parameter} string imap-id-log"
31227msgstr ""
31228
31229#. type: deftypevr
39764ef8 31230#: doc/guix.texi:14222
b9fe8fd6
JL
31231msgid ""
31232"ID fields sent by client to log. * means everything. Defaults to "
31233"@samp{\"\"}."
31234msgstr ""
31235
31236#. type: deftypevr
39764ef8 31237#: doc/guix.texi:14224
b9fe8fd6 31238#, no-wrap
39764ef8 31239msgid "{@code{dovecot-configuration} parameter} space-separated-string-list imap-client-workarounds"
b9fe8fd6
JL
31240msgstr ""
31241
31242#. type: deftypevr
39764ef8 31243#: doc/guix.texi:14226
b9fe8fd6
JL
31244msgid "Workarounds for various client bugs:"
31245msgstr ""
31246
31247#. type: item
39764ef8 31248#: doc/guix.texi:14228
b9fe8fd6
JL
31249#, no-wrap
31250msgid "delay-newmail"
31251msgstr ""
31252
31253#. type: table
39764ef8 31254#: doc/guix.texi:14235
b9fe8fd6
JL
31255msgid ""
31256"Send EXISTS/RECENT new mail notifications only when replying to NOOP and "
31257"CHECK commands. Some clients ignore them otherwise, for example OSX Mail "
31258"(<v2.1). Outlook Express breaks more badly though, without this it may show "
31259"user \"Message no longer in server\" errors. Note that OE6 still breaks "
31260"even with this workaround if synchronization is set to \"Headers Only\"."
31261msgstr ""
31262
31263#. type: item
39764ef8 31264#: doc/guix.texi:14236
b9fe8fd6
JL
31265#, no-wrap
31266msgid "tb-extra-mailbox-sep"
31267msgstr ""
31268
31269#. type: table
39764ef8 31270#: doc/guix.texi:14240
b9fe8fd6
JL
31271msgid ""
31272"Thunderbird gets somehow confused with LAYOUT=fs (mbox and dbox) and adds "
31273"extra @samp{/} suffixes to mailbox names. This option causes Dovecot to "
31274"ignore the extra @samp{/} instead of treating it as invalid mailbox name."
31275msgstr ""
31276
31277#. type: item
39764ef8 31278#: doc/guix.texi:14241
b9fe8fd6
JL
31279#, no-wrap
31280msgid "tb-lsub-flags"
31281msgstr ""
31282
31283#. type: table
39764ef8 31284#: doc/guix.texi:14245
b9fe8fd6
JL
31285msgid ""
31286"Show \\Noselect flags for LSUB replies with LAYOUT=fs (e.g. mbox). This "
31287"makes Thunderbird realize they aren't selectable and show them greyed out, "
31288"instead of only later giving \"not selectable\" popup error."
31289msgstr ""
31290
31291#. type: deftypevr
39764ef8 31292#: doc/guix.texi:14249
b9fe8fd6
JL
31293#, no-wrap
31294msgid "{@code{dovecot-configuration} parameter} string imap-urlauth-host"
31295msgstr ""
31296
31297#. type: deftypevr
39764ef8 31298#: doc/guix.texi:14252
b9fe8fd6
JL
31299msgid ""
31300"Host allowed in URLAUTH URLs sent by client. \"*\" allows all. Defaults to "
31301"@samp{\"\"}."
31302msgstr ""
31303
31304#. type: Plain text
39764ef8 31305#: doc/guix.texi:14260
b9fe8fd6
JL
31306msgid ""
31307"Whew! Lots of configuration options. The nice thing about it though is that "
31308"GuixSD has a complete interface to Dovecot's configuration language. This "
31309"allows not only a nice way to declare configurations, but also offers "
31310"reflective capabilities as well: users can write code to inspect and "
31311"transform configurations from within Scheme."
31312msgstr ""
31313
31314#. type: Plain text
39764ef8 31315#: doc/guix.texi:14266
b9fe8fd6
JL
31316msgid ""
31317"However, it could be that you just want to get a @code{dovecot.conf} up and "
31318"running. In that case, you can pass an @code{opaque-dovecot-configuration} "
31319"as the @code{#:config} parameter to @code{dovecot-service}. As its name "
31320"indicates, an opaque configuration does not have easy reflective "
31321"capabilities."
31322msgstr ""
31323
31324#. type: Plain text
39764ef8 31325#: doc/guix.texi:14268
b9fe8fd6
JL
31326msgid "Available @code{opaque-dovecot-configuration} fields are:"
31327msgstr ""
31328
31329#. type: deftypevr
39764ef8 31330#: doc/guix.texi:14269
b9fe8fd6
JL
31331#, no-wrap
31332msgid "{@code{opaque-dovecot-configuration} parameter} package dovecot"
31333msgstr ""
31334
31335#. type: deftypevr
39764ef8 31336#: doc/guix.texi:14273
b9fe8fd6
JL
31337#, no-wrap
31338msgid "{@code{opaque-dovecot-configuration} parameter} string string"
31339msgstr ""
31340
31341#. type: deftypevr
39764ef8 31342#: doc/guix.texi:14275
b9fe8fd6
JL
31343msgid "The contents of the @code{dovecot.conf}, as a string."
31344msgstr ""
31345
31346#. type: Plain text
39764ef8 31347#: doc/guix.texi:14279
b9fe8fd6
JL
31348msgid ""
31349"For example, if your @code{dovecot.conf} is just the empty string, you could "
31350"instantiate a dovecot service like this:"
31351msgstr ""
31352
31353#. type: example
39764ef8 31354#: doc/guix.texi:14284
b9fe8fd6
JL
31355#, no-wrap
31356msgid ""
31357"(dovecot-service #:config\n"
31358" (opaque-dovecot-configuration\n"
31359" (string \"\")))\n"
31360msgstr ""
31361
31362#. type: subsubheading
39764ef8 31363#: doc/guix.texi:14286
b9fe8fd6
JL
31364#, no-wrap
31365msgid "OpenSMTPD Service"
31366msgstr ""
31367
31368#. type: deffn
39764ef8 31369#: doc/guix.texi:14288
b9fe8fd6
JL
31370#, no-wrap
31371msgid "{Scheme Variable} opensmtpd-service-type"
31372msgstr ""
31373
31374#. type: deffn
39764ef8 31375#: doc/guix.texi:14292
b9fe8fd6
JL
31376msgid ""
31377"This is the type of the @uref{https://www.opensmtpd.org, OpenSMTPD} service, "
31378"whose value should be an @code{opensmtpd-configuration} object as in this "
31379"example:"
31380msgstr ""
31381
31382#. type: example
39764ef8 31383#: doc/guix.texi:14297
b9fe8fd6
JL
31384#, no-wrap
31385msgid ""
31386"(service opensmtpd-service-type\n"
31387" (opensmtpd-configuration\n"
31388" (config-file (local-file \"./my-smtpd.conf\"))))\n"
31389msgstr ""
31390
31391#. type: deftp
39764ef8 31392#: doc/guix.texi:14300
b9fe8fd6
JL
31393#, no-wrap
31394msgid "{Data Type} opensmtpd-configuration"
31395msgstr ""
31396
31397#. type: deftp
39764ef8 31398#: doc/guix.texi:14302
b9fe8fd6
JL
31399msgid "Data type representing the configuration of opensmtpd."
31400msgstr ""
31401
31402#. type: item
39764ef8 31403#: doc/guix.texi:14304
b9fe8fd6
JL
31404#, no-wrap
31405msgid "@code{package} (default: @var{opensmtpd})"
31406msgstr ""
31407
31408#. type: table
39764ef8 31409#: doc/guix.texi:14306
b9fe8fd6
JL
31410msgid "Package object of the OpenSMTPD SMTP server."
31411msgstr ""
31412
31413#. type: item
39764ef8 31414#: doc/guix.texi:14307
b9fe8fd6
JL
31415#, no-wrap
31416msgid "@code{config-file} (default: @var{%default-opensmtpd-file})"
31417msgstr ""
31418
31419#. type: table
39764ef8 31420#: doc/guix.texi:14312
b9fe8fd6
JL
31421msgid ""
31422"File-like object of the OpenSMTPD configuration file to use. By default it "
31423"listens on the loopback network interface, and allows for mail from users "
31424"and daemons on the local machine, as well as permitting email to remote "
31425"servers. Run @command{man smtpd.conf} for more information."
31426msgstr ""
31427
31428#. type: subsubheading
39764ef8 31429#: doc/guix.texi:14316
b9fe8fd6
JL
31430#, no-wrap
31431msgid "Exim Service"
31432msgstr ""
31433
31434#. type: cindex
39764ef8 31435#: doc/guix.texi:14318
b9fe8fd6
JL
31436#, no-wrap
31437msgid "mail transfer agent (MTA)"
31438msgstr ""
31439
31440#. type: cindex
39764ef8 31441#: doc/guix.texi:14319
b9fe8fd6
JL
31442#, no-wrap
31443msgid "MTA (mail transfer agent)"
31444msgstr ""
31445
31446#. type: cindex
39764ef8 31447#: doc/guix.texi:14320
b9fe8fd6
JL
31448#, no-wrap
31449msgid "SMTP"
31450msgstr ""
31451
31452#. type: deffn
39764ef8 31453#: doc/guix.texi:14322
b9fe8fd6
JL
31454#, no-wrap
31455msgid "{Scheme Variable} exim-service-type"
31456msgstr ""
31457
31458#. type: deffn
39764ef8 31459#: doc/guix.texi:14326
b9fe8fd6
JL
31460msgid ""
31461"This is the type of the @uref{https://exim.org, Exim} mail transfer agent "
31462"(MTA), whose value should be an @code{exim-configuration} object as in this "
31463"example:"
31464msgstr ""
31465
31466#. type: example
39764ef8 31467#: doc/guix.texi:14331
b9fe8fd6
JL
31468#, no-wrap
31469msgid ""
31470"(service exim-service-type\n"
31471" (exim-configuration\n"
31472" (config-file (local-file \"./my-exim.conf\"))))\n"
31473msgstr ""
31474
31475#. type: Plain text
39764ef8 31476#: doc/guix.texi:14337
b9fe8fd6
JL
31477msgid ""
31478"In order to use an @code{exim-service-type} service you must also have a "
39764ef8
JL
31479"@code{mail-aliases-service-type} service present in your @code{operating-"
31480"system} (even if it has no aliases)."
b9fe8fd6
JL
31481msgstr ""
31482
31483#. type: deftp
39764ef8 31484#: doc/guix.texi:14338
b9fe8fd6
JL
31485#, no-wrap
31486msgid "{Data Type} exim-configuration"
31487msgstr ""
31488
31489#. type: deftp
39764ef8 31490#: doc/guix.texi:14340
b9fe8fd6
JL
31491msgid "Data type representing the configuration of exim."
31492msgstr ""
31493
31494#. type: item
39764ef8 31495#: doc/guix.texi:14342
b9fe8fd6
JL
31496#, no-wrap
31497msgid "@code{package} (default: @var{exim})"
31498msgstr ""
31499
31500#. type: table
39764ef8 31501#: doc/guix.texi:14344
b9fe8fd6
JL
31502msgid "Package object of the Exim server."
31503msgstr ""
31504
b9fe8fd6 31505#. type: table
39764ef8 31506#: doc/guix.texi:14351
b9fe8fd6
JL
31507msgid ""
31508"File-like object of the Exim configuration file to use. If its value is "
31509"@code{#f} then use the default configuration file from the package provided "
31510"in @code{package}. The resulting configuration file is loaded after setting "
31511"the @code{exim_user} and @code{exim_group} configuration variables."
31512msgstr ""
31513
31514#. type: subsubheading
39764ef8 31515#: doc/guix.texi:14355
b9fe8fd6
JL
31516#, no-wrap
31517msgid "Mail Aliases Service"
31518msgstr ""
31519
31520#. type: cindex
39764ef8 31521#: doc/guix.texi:14357
b9fe8fd6
JL
31522#, no-wrap
31523msgid "email aliases"
31524msgstr ""
31525
31526#. type: cindex
39764ef8 31527#: doc/guix.texi:14358
b9fe8fd6
JL
31528#, no-wrap
31529msgid "aliases, for email addresses"
31530msgstr ""
31531
31532#. type: deffn
39764ef8 31533#: doc/guix.texi:14360
b9fe8fd6
JL
31534#, no-wrap
31535msgid "{Scheme Variable} mail-aliases-service-type"
31536msgstr ""
31537
31538#. type: deffn
39764ef8 31539#: doc/guix.texi:14363
b9fe8fd6
JL
31540msgid ""
31541"This is the type of the service which provides @code{/etc/aliases}, "
31542"specifying how to deliver mail to users on this system."
31543msgstr ""
31544
31545#. type: example
39764ef8 31546#: doc/guix.texi:14368
b9fe8fd6
JL
31547#, no-wrap
31548msgid ""
31549"(service mail-aliases-service-type\n"
31550" '((\"postmaster\" \"bob\")\n"
31551" (\"bob\" \"bob@@example.com\" \"bob@@example2.com\")))\n"
31552msgstr ""
31553
31554#. type: Plain text
39764ef8 31555#: doc/guix.texi:14376
b9fe8fd6
JL
31556msgid ""
31557"The configuration for a @code{mail-aliases-service-type} service is an "
39764ef8
JL
31558"association list denoting how to deliver mail that comes to this system. "
31559"Each entry is of the form @code{(alias addresses ...)}, with @code{alias} "
31560"specifying the local alias and @code{addresses} specifying where to deliver "
31561"this user's mail."
b9fe8fd6
JL
31562msgstr ""
31563
31564#. type: Plain text
39764ef8 31565#: doc/guix.texi:14382
b9fe8fd6
JL
31566msgid ""
31567"The aliases aren't required to exist as users on the local system. In the "
31568"above example, there doesn't need to be a @code{postmaster} entry in the "
31569"@code{operating-system}'s @code{user-accounts} in order to deliver the "
31570"@code{postmaster} mail to @code{bob} (which subsequently would deliver mail "
31571"to @code{bob@@example.com} and @code{bob@@example2.com})."
31572msgstr ""
31573
31574#. type: cindex
39764ef8 31575#: doc/guix.texi:14386
b9fe8fd6
JL
31576#, no-wrap
31577msgid "messaging"
31578msgstr ""
31579
31580#. type: cindex
39764ef8 31581#: doc/guix.texi:14387
b9fe8fd6
JL
31582#, no-wrap
31583msgid "jabber"
31584msgstr ""
31585
31586#. type: cindex
39764ef8 31587#: doc/guix.texi:14388
b9fe8fd6
JL
31588#, no-wrap
31589msgid "XMPP"
31590msgstr ""
31591
31592#. type: Plain text
39764ef8 31593#: doc/guix.texi:14391
b9fe8fd6
JL
31594msgid ""
31595"The @code{(gnu services messaging)} module provides Guix service definitions "
31596"for messaging services: currently only Prosody is supported."
31597msgstr ""
31598
31599#. type: subsubheading
39764ef8 31600#: doc/guix.texi:14392
b9fe8fd6
JL
31601#, no-wrap
31602msgid "Prosody Service"
31603msgstr ""
31604
31605#. type: deffn
39764ef8 31606#: doc/guix.texi:14394
b9fe8fd6
JL
31607#, no-wrap
31608msgid "{Scheme Variable} prosody-service-type"
31609msgstr ""
31610
31611#. type: deffn
39764ef8 31612#: doc/guix.texi:14398
b9fe8fd6
JL
31613msgid ""
31614"This is the type for the @uref{https://prosody.im, Prosody XMPP "
31615"communication server}. Its value must be a @code{prosody-configuration} "
31616"record as in this example:"
31617msgstr ""
31618
31619#. type: example
39764ef8 31620#: doc/guix.texi:14413
b9fe8fd6
JL
31621#, no-wrap
31622msgid ""
31623"(service prosody-service-type\n"
31624" (prosody-configuration\n"
39764ef8 31625" (modules-enabled (cons \"groups\" \"mam\" %default-modules-enabled))\n"
b9fe8fd6
JL
31626" (int-components\n"
31627" (list\n"
31628" (int-component-configuration\n"
31629" (hostname \"conference.example.net\")\n"
31630" (plugin \"muc\")\n"
31631" (mod-muc (mod-muc-configuration)))))\n"
31632" (virtualhosts\n"
31633" (list\n"
31634" (virtualhost-configuration\n"
31635" (domain \"example.net\"))))))\n"
31636msgstr ""
31637
31638#. type: deffn
39764ef8 31639#: doc/guix.texi:14416
b9fe8fd6
JL
31640msgid "See below for details about @code{prosody-configuration}."
31641msgstr ""
31642
31643#. type: Plain text
39764ef8 31644#: doc/guix.texi:14422
b9fe8fd6
JL
31645msgid ""
31646"By default, Prosody does not need much configuration. Only one "
31647"@code{virtualhosts} field is needed: it specifies the domain you wish "
31648"Prosody to serve."
31649msgstr ""
31650
31651#. type: Plain text
39764ef8 31652#: doc/guix.texi:14425
b9fe8fd6
JL
31653msgid ""
31654"You can perform various sanity checks on the generated configuration with "
31655"the @code{prosodyctl check} command."
31656msgstr ""
31657
31658#. type: Plain text
39764ef8 31659#: doc/guix.texi:14429
b9fe8fd6
JL
31660msgid ""
31661"Prosodyctl will also help you to import certificates from the "
31662"@code{letsencrypt} directory so that the @code{prosody} user can access "
31663"them. See @url{https://prosody.im/doc/letsencrypt}."
31664msgstr ""
31665
31666#. type: example
39764ef8 31667#: doc/guix.texi:14432
b9fe8fd6
JL
31668#, no-wrap
31669msgid "prosodyctl --root cert import /etc/letsencrypt/live\n"
31670msgstr ""
31671
31672#. type: Plain text
39764ef8 31673#: doc/guix.texi:14439
b9fe8fd6
JL
31674msgid ""
31675"The available configuration parameters follow. Each parameter definition is "
31676"preceded by its type; for example, @samp{string-list foo} indicates that the "
31677"@code{foo} parameter should be specified as a list of strings. Types "
31678"starting with @code{maybe-} denote parameters that won't show up in "
31679"@code{prosody.cfg.lua} when their value is @code{'disabled}."
31680msgstr ""
31681
31682#. type: Plain text
39764ef8 31683#: doc/guix.texi:14443
b9fe8fd6
JL
31684msgid ""
31685"There is also a way to specify the configuration as a string, if you have an "
31686"old @code{prosody.cfg.lua} file that you want to port over from some other "
31687"system; see the end for more details."
31688msgstr ""
31689
31690#. type: Plain text
39764ef8 31691#: doc/guix.texi:14446
b9fe8fd6 31692msgid ""
39764ef8
JL
31693"The @code{file-object} type designates either a file-like object (@pxref{G-"
31694"Expressions, file-like objects}) or a file name."
b9fe8fd6
JL
31695msgstr ""
31696
31697#. type: Plain text
39764ef8 31698#: doc/guix.texi:14456
b9fe8fd6
JL
31699msgid "Available @code{prosody-configuration} fields are:"
31700msgstr ""
31701
31702#. type: deftypevr
39764ef8 31703#: doc/guix.texi:14457
b9fe8fd6
JL
31704#, no-wrap
31705msgid "{@code{prosody-configuration} parameter} package prosody"
31706msgstr ""
31707
31708#. type: deftypevr
39764ef8 31709#: doc/guix.texi:14459
b9fe8fd6
JL
31710msgid "The Prosody package."
31711msgstr ""
31712
31713#. type: deftypevr
39764ef8 31714#: doc/guix.texi:14461
b9fe8fd6
JL
31715#, no-wrap
31716msgid "{@code{prosody-configuration} parameter} file-name data-path"
31717msgstr ""
31718
31719#. type: deftypevr
39764ef8 31720#: doc/guix.texi:14465
b9fe8fd6 31721msgid ""
39764ef8
JL
31722"Location of the Prosody data storage directory. See @url{https://prosody.im/"
31723"doc/configure}. Defaults to @samp{\"/var/lib/prosody\"}."
b9fe8fd6
JL
31724msgstr ""
31725
31726#. type: deftypevr
39764ef8 31727#: doc/guix.texi:14467
b9fe8fd6
JL
31728#, no-wrap
31729msgid "{@code{prosody-configuration} parameter} file-object-list plugin-paths"
31730msgstr ""
31731
31732#. type: deftypevr
39764ef8 31733#: doc/guix.texi:14471
b9fe8fd6
JL
31734msgid ""
31735"Additional plugin directories. They are searched in all the specified paths "
31736"in order. See @url{https://prosody.im/doc/plugins_directory}. Defaults to "
31737"@samp{()}."
31738msgstr ""
31739
31740#. type: deftypevr
39764ef8 31741#: doc/guix.texi:14473
b9fe8fd6
JL
31742#, no-wrap
31743msgid "{@code{prosody-configuration} parameter} file-name certificates"
31744msgstr ""
31745
31746#. type: deftypevr
39764ef8 31747#: doc/guix.texi:14478
b9fe8fd6
JL
31748msgid ""
31749"Every virtual host and component needs a certificate so that clients and "
31750"servers can securely verify its identity. Prosody will automatically load "
39764ef8
JL
31751"certificates/keys from the directory specified here. Defaults to @samp{\"/"
31752"etc/prosody/certs\"}."
b9fe8fd6
JL
31753msgstr ""
31754
31755#. type: deftypevr
39764ef8 31756#: doc/guix.texi:14480
b9fe8fd6
JL
31757#, no-wrap
31758msgid "{@code{prosody-configuration} parameter} string-list admins"
31759msgstr ""
31760
31761#. type: deftypevr
39764ef8 31762#: doc/guix.texi:14486
b9fe8fd6
JL
31763msgid ""
31764"This is a list of accounts that are admins for the server. Note that you "
39764ef8
JL
31765"must create the accounts separately. See @url{https://prosody.im/doc/"
31766"admins} and @url{https://prosody.im/doc/creating_accounts}. Example: "
31767"@code{(admins '(\"user1@@example.com\" \"user2@@example.net\"))} Defaults to "
31768"@samp{()}."
b9fe8fd6
JL
31769msgstr ""
31770
31771#. type: deftypevr
39764ef8 31772#: doc/guix.texi:14488
b9fe8fd6
JL
31773#, no-wrap
31774msgid "{@code{prosody-configuration} parameter} boolean use-libevent?"
31775msgstr ""
31776
31777#. type: deftypevr
39764ef8 31778#: doc/guix.texi:14492
b9fe8fd6
JL
31779msgid ""
31780"Enable use of libevent for better performance under high load. See "
31781"@url{https://prosody.im/doc/libevent}. Defaults to @samp{#f}."
31782msgstr ""
31783
31784#. type: deftypevr
39764ef8 31785#: doc/guix.texi:14494
b9fe8fd6
JL
31786#, no-wrap
31787msgid "{@code{prosody-configuration} parameter} module-list modules-enabled"
31788msgstr ""
31789
31790#. type: deftypevr
39764ef8 31791#: doc/guix.texi:14500
b9fe8fd6
JL
31792msgid ""
31793"This is the list of modules Prosody will load on startup. It looks for "
31794"@code{mod_modulename.lua} in the plugins folder, so make sure that exists "
39764ef8
JL
31795"too. Documentation on modules can be found at: @url{https://prosody.im/doc/"
31796"modules}. Defaults to @samp{(\"roster\" \"saslauth\" \"tls\" \"dialback\" "
31797"\"disco\" \"carbons\" \"private\" \"blocklist\" \"vcard\" \"version\" "
31798"\"uptime\" \"time\" \"ping\" \"pep\" \"register\" \"admin_adhoc\")}."
b9fe8fd6
JL
31799msgstr ""
31800
31801#. type: deftypevr
39764ef8 31802#: doc/guix.texi:14502
b9fe8fd6
JL
31803#, no-wrap
31804msgid "{@code{prosody-configuration} parameter} string-list modules-disabled"
31805msgstr ""
31806
31807#. type: deftypevr
39764ef8 31808#: doc/guix.texi:14506
b9fe8fd6
JL
31809msgid ""
31810"@samp{\"offline\"}, @samp{\"c2s\"} and @samp{\"s2s\"} are auto-loaded, but "
31811"should you want to disable them then add them to this list. Defaults to "
31812"@samp{()}."
31813msgstr ""
31814
31815#. type: deftypevr
39764ef8 31816#: doc/guix.texi:14508
b9fe8fd6
JL
31817#, no-wrap
31818msgid "{@code{prosody-configuration} parameter} file-object groups-file"
31819msgstr ""
31820
31821#. type: deftypevr
39764ef8 31822#: doc/guix.texi:14513
b9fe8fd6
JL
31823msgid ""
31824"Path to a text file where the shared groups are defined. If this path is "
39764ef8
JL
31825"empty then @samp{mod_groups} does nothing. See @url{https://prosody.im/doc/"
31826"modules/mod_groups}. Defaults to @samp{\"/var/lib/prosody/sharedgroups.txt"
31827"\"}."
b9fe8fd6
JL
31828msgstr ""
31829
31830#. type: deftypevr
39764ef8 31831#: doc/guix.texi:14515
b9fe8fd6
JL
31832#, no-wrap
31833msgid "{@code{prosody-configuration} parameter} boolean allow-registration?"
31834msgstr ""
31835
31836#. type: deftypevr
39764ef8 31837#: doc/guix.texi:14519
b9fe8fd6 31838msgid ""
39764ef8
JL
31839"Disable account creation by default, for security. See @url{https://prosody."
31840"im/doc/creating_accounts}. Defaults to @samp{#f}."
b9fe8fd6
JL
31841msgstr ""
31842
31843#. type: deftypevr
39764ef8 31844#: doc/guix.texi:14521
b9fe8fd6
JL
31845#, no-wrap
31846msgid "{@code{prosody-configuration} parameter} maybe-ssl-configuration ssl"
31847msgstr ""
31848
31849#. type: deftypevr
39764ef8 31850#: doc/guix.texi:14526
b9fe8fd6
JL
31851msgid ""
31852"These are the SSL/TLS-related settings. Most of them are disabled so to use "
31853"Prosody's defaults. If you do not completely understand these options, do "
31854"not add them to your config, it is easy to lower the security of your server "
31855"using them. See @url{https://prosody.im/doc/advanced_ssl_config}."
31856msgstr ""
31857
31858#. type: deftypevr
39764ef8 31859#: doc/guix.texi:14528
b9fe8fd6
JL
31860msgid "Available @code{ssl-configuration} fields are:"
31861msgstr ""
31862
31863#. type: deftypevr
39764ef8 31864#: doc/guix.texi:14529
b9fe8fd6
JL
31865#, no-wrap
31866msgid "{@code{ssl-configuration} parameter} maybe-string protocol"
31867msgstr ""
31868
31869#. type: deftypevr
39764ef8 31870#: doc/guix.texi:14531
b9fe8fd6
JL
31871msgid "This determines what handshake to use."
31872msgstr ""
31873
31874#. type: deftypevr
39764ef8 31875#: doc/guix.texi:14533
b9fe8fd6
JL
31876#, no-wrap
31877msgid "{@code{ssl-configuration} parameter} maybe-file-name key"
31878msgstr ""
31879
31880#. type: deftypevr
39764ef8 31881#: doc/guix.texi:14535
b9fe8fd6
JL
31882msgid "Path to your private key file."
31883msgstr ""
31884
31885#. type: deftypevr
39764ef8 31886#: doc/guix.texi:14537
b9fe8fd6
JL
31887#, no-wrap
31888msgid "{@code{ssl-configuration} parameter} maybe-file-name certificate"
31889msgstr ""
31890
31891#. type: deftypevr
39764ef8 31892#: doc/guix.texi:14539
b9fe8fd6
JL
31893msgid "Path to your certificate file."
31894msgstr ""
31895
31896#. type: deftypevr
39764ef8 31897#: doc/guix.texi:14541
b9fe8fd6
JL
31898#, no-wrap
31899msgid "{@code{ssl-configuration} parameter} file-object capath"
31900msgstr ""
31901
31902#. type: deftypevr
39764ef8 31903#: doc/guix.texi:14545
b9fe8fd6
JL
31904msgid ""
31905"Path to directory containing root certificates that you wish Prosody to "
31906"trust when verifying the certificates of remote servers. Defaults to "
31907"@samp{\"/etc/ssl/certs\"}."
31908msgstr ""
31909
31910#. type: deftypevr
39764ef8 31911#: doc/guix.texi:14547
b9fe8fd6
JL
31912#, no-wrap
31913msgid "{@code{ssl-configuration} parameter} maybe-file-object cafile"
31914msgstr ""
31915
31916#. type: deftypevr
39764ef8 31917#: doc/guix.texi:14550
b9fe8fd6
JL
31918msgid ""
31919"Path to a file containing root certificates that you wish Prosody to trust. "
31920"Similar to @code{capath} but with all certificates concatenated together."
31921msgstr ""
31922
31923#. type: deftypevr
39764ef8 31924#: doc/guix.texi:14552
b9fe8fd6
JL
31925#, no-wrap
31926msgid "{@code{ssl-configuration} parameter} maybe-string-list verify"
31927msgstr ""
31928
31929#. type: deftypevr
39764ef8 31930#: doc/guix.texi:14555
b9fe8fd6
JL
31931msgid ""
31932"A list of verification options (these mostly map to OpenSSL's "
31933"@code{set_verify()} flags)."
31934msgstr ""
31935
31936#. type: deftypevr
39764ef8 31937#: doc/guix.texi:14557
b9fe8fd6
JL
31938#, no-wrap
31939msgid "{@code{ssl-configuration} parameter} maybe-string-list options"
31940msgstr ""
31941
31942#. type: deftypevr
39764ef8 31943#: doc/guix.texi:14561
b9fe8fd6
JL
31944msgid ""
31945"A list of general options relating to SSL/TLS. These map to OpenSSL's "
31946"@code{set_options()}. For a full list of options available in LuaSec, see "
31947"the LuaSec source."
31948msgstr ""
31949
31950#. type: deftypevr
39764ef8 31951#: doc/guix.texi:14563
b9fe8fd6
JL
31952#, no-wrap
31953msgid "{@code{ssl-configuration} parameter} maybe-non-negative-integer depth"
31954msgstr ""
31955
31956#. type: deftypevr
39764ef8 31957#: doc/guix.texi:14566
b9fe8fd6
JL
31958msgid ""
31959"How long a chain of certificate authorities to check when looking for a "
31960"trusted root certificate."
31961msgstr ""
31962
31963#. type: deftypevr
39764ef8 31964#: doc/guix.texi:14568
b9fe8fd6
JL
31965#, no-wrap
31966msgid "{@code{ssl-configuration} parameter} maybe-string ciphers"
31967msgstr ""
31968
31969#. type: deftypevr
39764ef8 31970#: doc/guix.texi:14571
b9fe8fd6
JL
31971msgid ""
31972"An OpenSSL cipher string. This selects what ciphers Prosody will offer to "
31973"clients, and in what order."
31974msgstr ""
31975
31976#. type: deftypevr
39764ef8 31977#: doc/guix.texi:14573
b9fe8fd6
JL
31978#, no-wrap
31979msgid "{@code{ssl-configuration} parameter} maybe-file-name dhparam"
31980msgstr ""
31981
31982#. type: deftypevr
39764ef8 31983#: doc/guix.texi:14577
b9fe8fd6
JL
31984msgid ""
31985"A path to a file containing parameters for Diffie-Hellman key exchange. You "
39764ef8
JL
31986"can create such a file with: @code{openssl dhparam -out /etc/prosody/certs/"
31987"dh-2048.pem 2048}"
b9fe8fd6
JL
31988msgstr ""
31989
31990#. type: deftypevr
39764ef8 31991#: doc/guix.texi:14579
b9fe8fd6
JL
31992#, no-wrap
31993msgid "{@code{ssl-configuration} parameter} maybe-string curve"
31994msgstr ""
31995
31996#. type: deftypevr
39764ef8 31997#: doc/guix.texi:14582
b9fe8fd6
JL
31998msgid ""
31999"Curve for Elliptic curve Diffie-Hellman. Prosody's default is "
32000"@samp{\"secp384r1\"}."
32001msgstr ""
32002
32003#. type: deftypevr
39764ef8 32004#: doc/guix.texi:14584
b9fe8fd6
JL
32005#, no-wrap
32006msgid "{@code{ssl-configuration} parameter} maybe-string-list verifyext"
32007msgstr ""
32008
32009#. type: deftypevr
39764ef8 32010#: doc/guix.texi:14586
b9fe8fd6
JL
32011msgid "A list of \"extra\" verification options."
32012msgstr ""
32013
32014#. type: deftypevr
39764ef8 32015#: doc/guix.texi:14588
b9fe8fd6
JL
32016#, no-wrap
32017msgid "{@code{ssl-configuration} parameter} maybe-string password"
32018msgstr ""
32019
32020#. type: deftypevr
39764ef8 32021#: doc/guix.texi:14590
b9fe8fd6
JL
32022msgid "Password for encrypted private keys."
32023msgstr ""
32024
32025#. type: deftypevr
39764ef8 32026#: doc/guix.texi:14594
b9fe8fd6
JL
32027#, no-wrap
32028msgid "{@code{prosody-configuration} parameter} boolean c2s-require-encryption?"
32029msgstr ""
32030
32031#. type: deftypevr
39764ef8 32032#: doc/guix.texi:14598
b9fe8fd6
JL
32033msgid ""
32034"Whether to force all client-to-server connections to be encrypted or not. "
32035"See @url{https://prosody.im/doc/modules/mod_tls}. Defaults to @samp{#f}."
32036msgstr ""
32037
32038#. type: deftypevr
39764ef8 32039#: doc/guix.texi:14600
b9fe8fd6
JL
32040#, no-wrap
32041msgid "{@code{prosody-configuration} parameter} string-list disable-sasl-mechanisms"
32042msgstr ""
32043
32044#. type: deftypevr
39764ef8 32045#: doc/guix.texi:14604
b9fe8fd6 32046msgid ""
39764ef8
JL
32047"Set of mechanisms that will never be offered. See @url{https://prosody.im/"
32048"doc/modules/mod_saslauth}. Defaults to @samp{(\"DIGEST-MD5\")}."
b9fe8fd6
JL
32049msgstr ""
32050
32051#. type: deftypevr
39764ef8 32052#: doc/guix.texi:14606
b9fe8fd6
JL
32053#, no-wrap
32054msgid "{@code{prosody-configuration} parameter} boolean s2s-require-encryption?"
32055msgstr ""
32056
32057#. type: deftypevr
39764ef8 32058#: doc/guix.texi:14610
b9fe8fd6
JL
32059msgid ""
32060"Whether to force all server-to-server connections to be encrypted or not. "
32061"See @url{https://prosody.im/doc/modules/mod_tls}. Defaults to @samp{#f}."
32062msgstr ""
32063
32064#. type: deftypevr
39764ef8 32065#: doc/guix.texi:14612
b9fe8fd6
JL
32066#, no-wrap
32067msgid "{@code{prosody-configuration} parameter} boolean s2s-secure-auth?"
32068msgstr ""
32069
32070#. type: deftypevr
39764ef8 32071#: doc/guix.texi:14618
b9fe8fd6
JL
32072msgid ""
32073"Whether to require encryption and certificate authentication. This provides "
32074"ideal security, but requires servers you communicate with to support "
39764ef8
JL
32075"encryption AND present valid, trusted certificates. See @url{https://"
32076"prosody.im/doc/s2s#security}. Defaults to @samp{#f}."
b9fe8fd6
JL
32077msgstr ""
32078
32079#. type: deftypevr
39764ef8 32080#: doc/guix.texi:14620
b9fe8fd6
JL
32081#, no-wrap
32082msgid "{@code{prosody-configuration} parameter} string-list s2s-insecure-domains"
32083msgstr ""
32084
32085#. type: deftypevr
39764ef8 32086#: doc/guix.texi:14626
b9fe8fd6
JL
32087msgid ""
32088"Many servers don't support encryption or have invalid or self-signed "
32089"certificates. You can list domains here that will not be required to "
32090"authenticate using certificates. They will be authenticated using DNS. See "
32091"@url{https://prosody.im/doc/s2s#security}. Defaults to @samp{()}."
32092msgstr ""
32093
32094#. type: deftypevr
39764ef8 32095#: doc/guix.texi:14628
b9fe8fd6
JL
32096#, no-wrap
32097msgid "{@code{prosody-configuration} parameter} string-list s2s-secure-domains"
32098msgstr ""
32099
32100#. type: deftypevr
39764ef8 32101#: doc/guix.texi:14633
b9fe8fd6
JL
32102msgid ""
32103"Even if you leave @code{s2s-secure-auth?} disabled, you can still require "
32104"valid certificates for some domains by specifying a list here. See "
32105"@url{https://prosody.im/doc/s2s#security}. Defaults to @samp{()}."
32106msgstr ""
32107
32108#. type: deftypevr
39764ef8 32109#: doc/guix.texi:14635
b9fe8fd6
JL
32110#, no-wrap
32111msgid "{@code{prosody-configuration} parameter} string authentication"
32112msgstr ""
32113
32114#. type: deftypevr
39764ef8 32115#: doc/guix.texi:14643
b9fe8fd6
JL
32116msgid ""
32117"Select the authentication backend to use. The default provider stores "
32118"passwords in plaintext and uses Prosody's configured data storage to store "
32119"the authentication data. If you do not trust your server please see "
32120"@url{https://prosody.im/doc/modules/mod_auth_internal_hashed} for "
39764ef8
JL
32121"information about using the hashed backend. See also @url{https://prosody."
32122"im/doc/authentication} Defaults to @samp{\"internal_plain\"}."
b9fe8fd6
JL
32123msgstr ""
32124
32125#. type: deftypevr
39764ef8 32126#: doc/guix.texi:14645
b9fe8fd6
JL
32127#, no-wrap
32128msgid "{@code{prosody-configuration} parameter} maybe-string log"
32129msgstr ""
32130
32131#. type: deftypevr
39764ef8 32132#: doc/guix.texi:14649
b9fe8fd6
JL
32133msgid ""
32134"Set logging options. Advanced logging configuration is not yet supported by "
32135"the GuixSD Prosody Service. See @url{https://prosody.im/doc/logging}. "
32136"Defaults to @samp{\"*syslog\"}."
32137msgstr ""
32138
32139#. type: deftypevr
39764ef8 32140#: doc/guix.texi:14651
b9fe8fd6
JL
32141#, no-wrap
32142msgid "{@code{prosody-configuration} parameter} file-name pidfile"
32143msgstr ""
32144
32145#. type: deftypevr
39764ef8 32146#: doc/guix.texi:14654
b9fe8fd6
JL
32147msgid ""
32148"File to write pid in. See @url{https://prosody.im/doc/modules/mod_posix}. "
32149"Defaults to @samp{\"/var/run/prosody/prosody.pid\"}."
32150msgstr ""
32151
32152#. type: deftypevr
39764ef8 32153#: doc/guix.texi:14656
b9fe8fd6 32154#, no-wrap
39764ef8 32155msgid "{@code{prosody-configuration} parameter} maybe-non-negative-integer http-max-content-size"
b9fe8fd6
JL
32156msgstr ""
32157
32158#. type: deftypevr
39764ef8 32159#: doc/guix.texi:14658
b9fe8fd6
JL
32160msgid "Maximum allowed size of the HTTP body (in bytes)."
32161msgstr ""
32162
32163#. type: deftypevr
39764ef8 32164#: doc/guix.texi:14660
b9fe8fd6
JL
32165#, no-wrap
32166msgid "{@code{prosody-configuration} parameter} maybe-string http-external-url"
32167msgstr ""
32168
32169#. type: deftypevr
39764ef8 32170#: doc/guix.texi:14665
b9fe8fd6
JL
32171msgid ""
32172"Some modules expose their own URL in various ways. This URL is built from "
32173"the protocol, host and port used. If Prosody sits behind a proxy, the "
39764ef8
JL
32174"public URL will be @code{http-external-url} instead. See @url{https://"
32175"prosody.im/doc/http#external_url}."
b9fe8fd6
JL
32176msgstr ""
32177
32178#. type: deftypevr
39764ef8 32179#: doc/guix.texi:14667
b9fe8fd6 32180#, no-wrap
39764ef8 32181msgid "{@code{prosody-configuration} parameter} virtualhost-configuration-list virtualhosts"
b9fe8fd6
JL
32182msgstr ""
32183
32184#. type: deftypevr
39764ef8 32185#: doc/guix.texi:14672
b9fe8fd6
JL
32186msgid ""
32187"A host in Prosody is a domain on which user accounts can be created. For "
39764ef8
JL
32188"example if you want your users to have addresses like @samp{\"john."
32189"smith@@example.com\"} then you need to add a host @samp{\"example.com\"}. "
32190"All options in this list will apply only to this host."
b9fe8fd6
JL
32191msgstr ""
32192
32193#. type: deftypevr
39764ef8 32194#: doc/guix.texi:14678
b9fe8fd6
JL
32195msgid ""
32196"Note: the name \"virtual\" host is used in configuration to avoid confusion "
32197"with the actual physical host that Prosody is installed on. A single "
32198"Prosody instance can serve many domains, each one defined as a VirtualHost "
32199"entry in Prosody's configuration. Conversely a server that hosts a single "
32200"domain would have just one VirtualHost entry."
32201msgstr ""
32202
32203#. type: deftypevr
39764ef8 32204#: doc/guix.texi:14680
b9fe8fd6
JL
32205msgid "See @url{https://prosody.im/doc/configure#virtual_host_settings}."
32206msgstr ""
32207
32208#. type: deftypevr
39764ef8 32209#: doc/guix.texi:14682
b9fe8fd6
JL
32210msgid "Available @code{virtualhost-configuration} fields are:"
32211msgstr ""
32212
32213#. type: deftypevr
39764ef8 32214#: doc/guix.texi:14684 doc/guix.texi:14706 doc/guix.texi:14759
b9fe8fd6 32215msgid ""
39764ef8
JL
32216"all these @code{prosody-configuration} fields: @code{admins}, @code{use-"
32217"libevent?}, @code{modules-enabled}, @code{modules-disabled}, @code{groups-"
32218"file}, @code{allow-registration?}, @code{ssl}, @code{c2s-require-"
32219"encryption?}, @code{disable-sasl-mechanisms}, @code{s2s-require-"
32220"encryption?}, @code{s2s-secure-auth?}, @code{s2s-insecure-domains}, "
32221"@code{s2s-secure-domains}, @code{authentication}, @code{log}, @code{http-max-"
32222"content-size}, @code{http-external-url}, @code{raw-content}, plus:"
b9fe8fd6
JL
32223msgstr ""
32224
32225#. type: deftypevr
39764ef8 32226#: doc/guix.texi:14684
b9fe8fd6
JL
32227#, no-wrap
32228msgid "{@code{virtualhost-configuration} parameter} string domain"
32229msgstr ""
32230
32231#. type: deftypevr
39764ef8 32232#: doc/guix.texi:14686
b9fe8fd6
JL
32233msgid "Domain you wish Prosody to serve."
32234msgstr ""
32235
32236#. type: deftypevr
39764ef8 32237#: doc/guix.texi:14690
b9fe8fd6 32238#, no-wrap
39764ef8 32239msgid "{@code{prosody-configuration} parameter} int-component-configuration-list int-components"
b9fe8fd6
JL
32240msgstr ""
32241
32242#. type: deftypevr
39764ef8 32243#: doc/guix.texi:14695
b9fe8fd6
JL
32244msgid ""
32245"Components are extra services on a server which are available to clients, "
39764ef8
JL
32246"usually on a subdomain of the main server (such as @samp{\"mycomponent."
32247"example.com\"}). Example components might be chatroom servers, user "
32248"directories, or gateways to other protocols."
b9fe8fd6
JL
32249msgstr ""
32250
32251#. type: deftypevr
39764ef8 32252#: doc/guix.texi:14699
b9fe8fd6
JL
32253msgid ""
32254"Internal components are implemented with Prosody-specific plugins. To add "
32255"an internal component, you simply fill the hostname field, and the plugin "
32256"you wish to use for the component."
32257msgstr ""
32258
32259#. type: deftypevr
39764ef8 32260#: doc/guix.texi:14702
b9fe8fd6
JL
32261msgid "See @url{https://prosody.im/doc/components}. Defaults to @samp{()}."
32262msgstr ""
32263
32264#. type: deftypevr
39764ef8 32265#: doc/guix.texi:14704
b9fe8fd6
JL
32266msgid "Available @code{int-component-configuration} fields are:"
32267msgstr ""
32268
32269#. type: deftypevr
39764ef8 32270#: doc/guix.texi:14706
b9fe8fd6
JL
32271#, no-wrap
32272msgid "{@code{int-component-configuration} parameter} string hostname"
32273msgstr ""
32274
32275#. type: deftypevr
39764ef8 32276#: doc/guix.texi:14708 doc/guix.texi:14765
b9fe8fd6
JL
32277msgid "Hostname of the component."
32278msgstr ""
32279
32280#. type: deftypevr
39764ef8 32281#: doc/guix.texi:14710
b9fe8fd6
JL
32282#, no-wrap
32283msgid "{@code{int-component-configuration} parameter} string plugin"
32284msgstr ""
32285
32286#. type: deftypevr
39764ef8 32287#: doc/guix.texi:14712
b9fe8fd6
JL
32288msgid "Plugin you wish to use for the component."
32289msgstr ""
32290
32291#. type: deftypevr
39764ef8 32292#: doc/guix.texi:14714
b9fe8fd6 32293#, no-wrap
39764ef8 32294msgid "{@code{int-component-configuration} parameter} maybe-mod-muc-configuration mod-muc"
b9fe8fd6
JL
32295msgstr ""
32296
32297#. type: deftypevr
39764ef8 32298#: doc/guix.texi:14717
b9fe8fd6
JL
32299msgid ""
32300"Multi-user chat (MUC) is Prosody's module for allowing you to create hosted "
32301"chatrooms/conferences for XMPP users."
32302msgstr ""
32303
32304#. type: deftypevr
39764ef8 32305#: doc/guix.texi:14721
b9fe8fd6
JL
32306msgid ""
32307"General information on setting up and using multi-user chatrooms can be "
39764ef8
JL
32308"found in the \"Chatrooms\" documentation (@url{https://prosody.im/doc/"
32309"chatrooms}), which you should read if you are new to XMPP chatrooms."
b9fe8fd6
JL
32310msgstr ""
32311
32312#. type: deftypevr
39764ef8 32313#: doc/guix.texi:14723
b9fe8fd6
JL
32314msgid "See also @url{https://prosody.im/doc/modules/mod_muc}."
32315msgstr ""
32316
32317#. type: deftypevr
39764ef8 32318#: doc/guix.texi:14725
b9fe8fd6
JL
32319msgid "Available @code{mod-muc-configuration} fields are:"
32320msgstr ""
32321
32322#. type: deftypevr
39764ef8 32323#: doc/guix.texi:14726
b9fe8fd6
JL
32324#, no-wrap
32325msgid "{@code{mod-muc-configuration} parameter} string name"
32326msgstr ""
32327
32328#. type: deftypevr
39764ef8 32329#: doc/guix.texi:14729
b9fe8fd6
JL
32330msgid ""
32331"The name to return in service discovery responses. Defaults to "
32332"@samp{\"Prosody Chatrooms\"}."
32333msgstr ""
32334
32335#. type: deftypevr
39764ef8 32336#: doc/guix.texi:14731
b9fe8fd6 32337#, no-wrap
39764ef8 32338msgid "{@code{mod-muc-configuration} parameter} string-or-boolean restrict-room-creation"
b9fe8fd6
JL
32339msgstr ""
32340
32341#. type: deftypevr
39764ef8 32342#: doc/guix.texi:14738
b9fe8fd6
JL
32343msgid ""
32344"If @samp{#t}, this will only allow admins to create new chatrooms. "
32345"Otherwise anyone can create a room. The value @samp{\"local\"} restricts "
39764ef8
JL
32346"room creation to users on the service's parent domain. E.g. "
32347"@samp{user@@example.com} can create rooms on @samp{rooms.example.com}. The "
32348"value @samp{\"admin\"} restricts to service administrators only. Defaults "
32349"to @samp{#f}."
b9fe8fd6
JL
32350msgstr ""
32351
32352#. type: deftypevr
39764ef8 32353#: doc/guix.texi:14740
b9fe8fd6 32354#, no-wrap
39764ef8 32355msgid "{@code{mod-muc-configuration} parameter} non-negative-integer max-history-messages"
b9fe8fd6
JL
32356msgstr ""
32357
32358#. type: deftypevr
39764ef8 32359#: doc/guix.texi:14744
b9fe8fd6
JL
32360msgid ""
32361"Maximum number of history messages that will be sent to the member that has "
32362"just joined the room. Defaults to @samp{20}."
32363msgstr ""
32364
32365#. type: deftypevr
39764ef8 32366#: doc/guix.texi:14750
b9fe8fd6 32367#, no-wrap
39764ef8 32368msgid "{@code{prosody-configuration} parameter} ext-component-configuration-list ext-components"
b9fe8fd6
JL
32369msgstr ""
32370
32371#. type: deftypevr
39764ef8 32372#: doc/guix.texi:14755
b9fe8fd6
JL
32373msgid ""
32374"External components use XEP-0114, which most standalone components support. "
32375"To add an external component, you simply fill the hostname field. See "
32376"@url{https://prosody.im/doc/components}. Defaults to @samp{()}."
32377msgstr ""
32378
32379#. type: deftypevr
39764ef8 32380#: doc/guix.texi:14757
b9fe8fd6
JL
32381msgid "Available @code{ext-component-configuration} fields are:"
32382msgstr ""
32383
32384#. type: deftypevr
39764ef8 32385#: doc/guix.texi:14759
b9fe8fd6
JL
32386#, no-wrap
32387msgid "{@code{ext-component-configuration} parameter} string component-secret"
32388msgstr ""
32389
32390#. type: deftypevr
39764ef8 32391#: doc/guix.texi:14761
b9fe8fd6
JL
32392msgid "Password which the component will use to log in."
32393msgstr ""
32394
32395#. type: deftypevr
39764ef8 32396#: doc/guix.texi:14763
b9fe8fd6
JL
32397#, no-wrap
32398msgid "{@code{ext-component-configuration} parameter} string hostname"
32399msgstr ""
32400
32401#. type: deftypevr
39764ef8 32402#: doc/guix.texi:14769
b9fe8fd6 32403#, no-wrap
39764ef8 32404msgid "{@code{prosody-configuration} parameter} non-negative-integer-list component-ports"
b9fe8fd6
JL
32405msgstr ""
32406
32407#. type: deftypevr
39764ef8 32408#: doc/guix.texi:14772
b9fe8fd6
JL
32409msgid ""
32410"Port(s) Prosody listens on for component connections. Defaults to "
32411"@samp{(5347)}."
32412msgstr ""
32413
32414#. type: deftypevr
39764ef8 32415#: doc/guix.texi:14774
b9fe8fd6
JL
32416#, no-wrap
32417msgid "{@code{prosody-configuration} parameter} string component-interface"
32418msgstr ""
32419
32420#. type: deftypevr
39764ef8 32421#: doc/guix.texi:14777
b9fe8fd6
JL
32422msgid ""
32423"Interface Prosody listens on for component connections. Defaults to "
32424"@samp{\"127.0.0.1\"}."
32425msgstr ""
32426
32427#. type: deftypevr
39764ef8 32428#: doc/guix.texi:14779
b9fe8fd6
JL
32429#, no-wrap
32430msgid "{@code{prosody-configuration} parameter} maybe-raw-content raw-content"
32431msgstr ""
32432
32433#. type: deftypevr
39764ef8 32434#: doc/guix.texi:14781
b9fe8fd6
JL
32435msgid "Raw content that will be added to the configuration file."
32436msgstr ""
32437
32438#. type: Plain text
39764ef8 32439#: doc/guix.texi:14789
b9fe8fd6
JL
32440msgid ""
32441"It could be that you just want to get a @code{prosody.cfg.lua} up and "
32442"running. In that case, you can pass an @code{opaque-prosody-configuration} "
32443"record as the value of @code{prosody-service-type}. As its name indicates, "
32444"an opaque configuration does not have easy reflective capabilities. "
32445"Available @code{opaque-prosody-configuration} fields are:"
32446msgstr ""
32447
32448#. type: deftypevr
39764ef8 32449#: doc/guix.texi:14790
b9fe8fd6
JL
32450#, no-wrap
32451msgid "{@code{opaque-prosody-configuration} parameter} package prosody"
32452msgstr ""
32453
32454#. type: deftypevr
39764ef8 32455#: doc/guix.texi:14792
b9fe8fd6
JL
32456msgid "The prosody package."
32457msgstr ""
32458
32459#. type: deftypevr
39764ef8 32460#: doc/guix.texi:14794
b9fe8fd6
JL
32461#, no-wrap
32462msgid "{@code{opaque-prosody-configuration} parameter} string prosody.cfg.lua"
32463msgstr ""
32464
32465#. type: deftypevr
39764ef8 32466#: doc/guix.texi:14796
b9fe8fd6
JL
32467msgid "The contents of the @code{prosody.cfg.lua} to use."
32468msgstr ""
32469
32470#. type: Plain text
39764ef8 32471#: doc/guix.texi:14800
b9fe8fd6
JL
32472msgid ""
32473"For example, if your @code{prosody.cfg.lua} is just the empty string, you "
32474"could instantiate a prosody service like this:"
32475msgstr ""
32476
32477#. type: example
39764ef8 32478#: doc/guix.texi:14805
b9fe8fd6
JL
32479#, no-wrap
32480msgid ""
32481"(service prosody-service-type\n"
32482" (opaque-prosody-configuration\n"
32483" (prosody.cfg.lua \"\")))\n"
32484msgstr ""
32485
32486#. type: subsubheading
39764ef8 32487#: doc/guix.texi:14809
b9fe8fd6
JL
32488#, no-wrap
32489msgid "BitlBee Service"
32490msgstr ""
32491
32492#. type: cindex
39764ef8 32493#: doc/guix.texi:14811
b9fe8fd6
JL
32494#, no-wrap
32495msgid "IRC (Internet Relay Chat)"
32496msgstr ""
32497
32498#. type: cindex
39764ef8 32499#: doc/guix.texi:14812
b9fe8fd6
JL
32500#, no-wrap
32501msgid "IRC gateway"
32502msgstr ""
32503
32504#. type: Plain text
39764ef8 32505#: doc/guix.texi:14815
b9fe8fd6
JL
32506msgid ""
32507"@url{http://bitlbee.org,BitlBee} is a gateway that provides an IRC interface "
32508"to a variety of messaging protocols such as XMPP."
32509msgstr ""
32510
32511#. type: defvr
39764ef8 32512#: doc/guix.texi:14816
b9fe8fd6
JL
32513#, no-wrap
32514msgid "{Scheme Variable} bitlbee-service-type"
32515msgstr ""
32516
32517#. type: defvr
39764ef8 32518#: doc/guix.texi:14820
b9fe8fd6
JL
32519msgid ""
32520"This is the service type for the @url{http://bitlbee.org,BitlBee} IRC "
32521"gateway daemon. Its value is a @code{bitlbee-configuration} (see below)."
32522msgstr ""
32523
32524#. type: defvr
39764ef8 32525#: doc/guix.texi:14823
b9fe8fd6
JL
32526msgid ""
32527"To have BitlBee listen on port 6667 on localhost, add this line to your "
32528"services:"
32529msgstr ""
32530
32531#. type: example
39764ef8 32532#: doc/guix.texi:14826
b9fe8fd6
JL
32533#, no-wrap
32534msgid "(service bitlbee-service-type)\n"
32535msgstr ""
32536
32537#. type: deftp
39764ef8 32538#: doc/guix.texi:14829
b9fe8fd6
JL
32539#, no-wrap
32540msgid "{Data Type} bitlbee-configuration"
32541msgstr ""
32542
32543#. type: deftp
39764ef8 32544#: doc/guix.texi:14831
b9fe8fd6
JL
32545msgid "This is the configuration for BitlBee, with the following fields:"
32546msgstr ""
32547
32548#. type: item
39764ef8 32549#: doc/guix.texi:14833
b9fe8fd6
JL
32550#, no-wrap
32551msgid "@code{interface} (default: @code{\"127.0.0.1\"})"
32552msgstr ""
32553
32554#. type: itemx
39764ef8 32555#: doc/guix.texi:14834
b9fe8fd6
JL
32556#, no-wrap
32557msgid "@code{port} (default: @code{6667})"
32558msgstr ""
32559
32560#. type: table
39764ef8 32561#: doc/guix.texi:14837
b9fe8fd6
JL
32562msgid ""
32563"Listen on the network interface corresponding to the IP address specified in "
32564"@var{interface}, on @var{port}."
32565msgstr ""
32566
32567#. type: table
39764ef8 32568#: doc/guix.texi:14841
b9fe8fd6
JL
32569msgid ""
32570"When @var{interface} is @code{127.0.0.1}, only local clients can connect; "
32571"when it is @code{0.0.0.0}, connections can come from any networking "
32572"interface."
32573msgstr ""
32574
32575#. type: item
39764ef8 32576#: doc/guix.texi:14842
b9fe8fd6
JL
32577#, no-wrap
32578msgid "@code{package} (default: @code{bitlbee})"
32579msgstr ""
32580
32581#. type: table
39764ef8 32582#: doc/guix.texi:14844
b9fe8fd6
JL
32583msgid "The BitlBee package to use."
32584msgstr ""
32585
32586#. type: item
39764ef8 32587#: doc/guix.texi:14845
b9fe8fd6
JL
32588#, no-wrap
32589msgid "@code{extra-settings} (default: @code{\"\"})"
32590msgstr ""
32591
32592#. type: table
39764ef8 32593#: doc/guix.texi:14847
b9fe8fd6
JL
32594msgid "Configuration snippet added as-is to the BitlBee configuration file."
32595msgstr ""
32596
32597#. type: cindex
39764ef8 32598#: doc/guix.texi:14854
b9fe8fd6
JL
32599#, no-wrap
32600msgid "Murmur (VoIP server)"
32601msgstr ""
32602
32603#. type: cindex
39764ef8 32604#: doc/guix.texi:14855
b9fe8fd6
JL
32605#, no-wrap
32606msgid "VoIP server"
32607msgstr ""
32608
32609#. type: Plain text
39764ef8 32610#: doc/guix.texi:14859
b9fe8fd6
JL
32611msgid ""
32612"This section describes how to set up and run a Murmur server. Murmur is the "
32613"server of the @uref{https://mumble.info, Mumble} voice-over-IP (VoIP) suite."
32614msgstr ""
32615
32616#. type: deftp
39764ef8 32617#: doc/guix.texi:14860
b9fe8fd6
JL
32618#, no-wrap
32619msgid "{Data Type} murmur-configuration"
32620msgstr ""
32621
32622#. type: deftp
39764ef8 32623#: doc/guix.texi:14863
b9fe8fd6
JL
32624msgid ""
32625"The service type for the Murmur server. An example configuration can look "
32626"like this:"
32627msgstr ""
32628
32629#. type: example
39764ef8 32630#: doc/guix.texi:14872
b9fe8fd6
JL
32631#, no-wrap
32632msgid ""
32633"(service murmur-service-type\n"
32634" (murmur-configuration\n"
32635" (welcome-text\n"
32636" \"Welcome to this Mumble server running on GuixSD!\")\n"
32637" (cert-required? #t) ;disallow text password logins\n"
39764ef8
JL
32638" (ssl-cert \"/etc/letsencrypt/live/mumble.example.com/fullchain.pem\")\n"
32639" (ssl-key \"/etc/letsencrypt/live/mumble.example.com/privkey.pem\")))\n"
b9fe8fd6
JL
32640msgstr ""
32641
32642#. type: deftp
39764ef8 32643#: doc/guix.texi:14876
b9fe8fd6
JL
32644msgid ""
32645"After reconfiguring your system, you can manually set the murmur "
32646"@code{SuperUser} password with the command that is printed during the "
32647"activation phase."
32648msgstr ""
32649
32650#. type: deftp
39764ef8 32651#: doc/guix.texi:14885
b9fe8fd6
JL
32652msgid ""
32653"It is recommended to register a normal Mumble user account and grant it "
32654"admin or moderator rights. You can use the @code{mumble} client to login as "
32655"new normal user, register yourself, and log out. For the next step login "
32656"with the name @code{SuperUser} use the @code{SuperUser} password that you "
32657"set previously, and grant your newly registered mumble user administrator or "
32658"moderator rights and create some channels."
32659msgstr ""
32660
32661#. type: deftp
39764ef8 32662#: doc/guix.texi:14887
b9fe8fd6
JL
32663msgid "Available @code{murmur-configuration} fields are:"
32664msgstr ""
32665
32666#. type: item
39764ef8 32667#: doc/guix.texi:14889
b9fe8fd6
JL
32668#, no-wrap
32669msgid "@code{package} (default: @code{mumble})"
32670msgstr ""
32671
32672#. type: table
39764ef8 32673#: doc/guix.texi:14891
b9fe8fd6
JL
32674msgid "Package that contains @code{bin/murmurd}."
32675msgstr ""
32676
32677#. type: item
39764ef8 32678#: doc/guix.texi:14892
b9fe8fd6
JL
32679#, no-wrap
32680msgid "@code{user} (default: @code{\"murmur\"})"
32681msgstr ""
32682
32683#. type: table
39764ef8 32684#: doc/guix.texi:14894
b9fe8fd6
JL
32685msgid "User who will run the Murmur server."
32686msgstr ""
32687
32688#. type: item
39764ef8 32689#: doc/guix.texi:14895
b9fe8fd6
JL
32690#, no-wrap
32691msgid "@code{group} (default: @code{\"murmur\"})"
32692msgstr ""
32693
32694#. type: table
39764ef8 32695#: doc/guix.texi:14897
b9fe8fd6
JL
32696msgid "Group of the user who will run the murmur server."
32697msgstr ""
32698
32699#. type: item
39764ef8 32700#: doc/guix.texi:14898
b9fe8fd6
JL
32701#, no-wrap
32702msgid "@code{port} (default: @code{64738})"
32703msgstr ""
32704
32705#. type: table
39764ef8 32706#: doc/guix.texi:14900
b9fe8fd6
JL
32707msgid "Port on which the server will listen."
32708msgstr ""
32709
32710#. type: item
39764ef8 32711#: doc/guix.texi:14901
b9fe8fd6
JL
32712#, no-wrap
32713msgid "@code{welcome-text} (default: @code{\"\"})"
32714msgstr ""
32715
32716#. type: table
39764ef8 32717#: doc/guix.texi:14903
b9fe8fd6
JL
32718msgid "Welcome text sent to clients when they connect."
32719msgstr ""
32720
32721#. type: item
39764ef8 32722#: doc/guix.texi:14904
b9fe8fd6
JL
32723#, no-wrap
32724msgid "@code{server-password} (default: @code{\"\"})"
32725msgstr ""
32726
32727#. type: table
39764ef8 32728#: doc/guix.texi:14906
b9fe8fd6
JL
32729msgid "Password the clients have to enter in order to connect."
32730msgstr ""
32731
32732#. type: item
39764ef8 32733#: doc/guix.texi:14907
b9fe8fd6
JL
32734#, no-wrap
32735msgid "@code{max-users} (default: @code{100})"
32736msgstr ""
32737
32738#. type: table
39764ef8 32739#: doc/guix.texi:14909
b9fe8fd6
JL
32740msgid "Maximum of users that can be connected to the server at once."
32741msgstr ""
32742
32743#. type: item
39764ef8 32744#: doc/guix.texi:14910
b9fe8fd6
JL
32745#, no-wrap
32746msgid "@code{max-user-bandwidth} (default: @code{#f})"
32747msgstr ""
32748
32749#. type: table
39764ef8 32750#: doc/guix.texi:14912
b9fe8fd6
JL
32751msgid "Maximum voice traffic a user can send per second."
32752msgstr ""
32753
32754#. type: item
39764ef8 32755#: doc/guix.texi:14913
b9fe8fd6
JL
32756#, no-wrap
32757msgid "@code{database-file} (default: @code{\"/var/lib/murmur/db.sqlite\"})"
32758msgstr ""
32759
32760#. type: table
39764ef8 32761#: doc/guix.texi:14916
b9fe8fd6
JL
32762msgid ""
32763"File name of the sqlite database. The service's user will become the owner "
32764"of the directory."
32765msgstr ""
32766
32767#. type: item
39764ef8 32768#: doc/guix.texi:14917
b9fe8fd6
JL
32769#, no-wrap
32770msgid "@code{log-file} (default: @code{\"/var/log/murmur/murmur.log\"})"
32771msgstr ""
32772
32773#. type: table
39764ef8 32774#: doc/guix.texi:14920
b9fe8fd6
JL
32775msgid ""
32776"File name of the log file. The service's user will become the owner of the "
32777"directory."
32778msgstr ""
32779
32780#. type: item
39764ef8 32781#: doc/guix.texi:14921
b9fe8fd6
JL
32782#, no-wrap
32783msgid "@code{autoban-attempts} (default: @code{10})"
32784msgstr ""
32785
32786#. type: table
39764ef8 32787#: doc/guix.texi:14924
b9fe8fd6
JL
32788msgid ""
32789"Maximum number of logins a user can make in @code{autoban-timeframe} without "
32790"getting auto banned for @code{autoban-time}."
32791msgstr ""
32792
32793#. type: item
39764ef8 32794#: doc/guix.texi:14925
b9fe8fd6
JL
32795#, no-wrap
32796msgid "@code{autoban-timeframe} (default: @code{120})"
32797msgstr ""
32798
32799#. type: table
39764ef8 32800#: doc/guix.texi:14927
b9fe8fd6
JL
32801msgid "Timeframe for autoban in seconds."
32802msgstr ""
32803
32804#. type: item
39764ef8 32805#: doc/guix.texi:14928
b9fe8fd6
JL
32806#, no-wrap
32807msgid "@code{autoban-time} (default: @code{300})"
32808msgstr ""
32809
32810#. type: table
39764ef8 32811#: doc/guix.texi:14931
b9fe8fd6
JL
32812msgid ""
32813"Amount of time in seconds for which a client gets banned when violating the "
32814"autoban limits."
32815msgstr ""
32816
32817#. type: item
39764ef8 32818#: doc/guix.texi:14932
b9fe8fd6
JL
32819#, no-wrap
32820msgid "@code{opus-threshold} (default: @code{100})"
32821msgstr ""
32822
32823#. type: table
39764ef8 32824#: doc/guix.texi:14935
b9fe8fd6
JL
32825msgid ""
32826"Percentage of clients that need to support opus before switching over to "
32827"opus audio codec."
32828msgstr ""
32829
32830#. type: item
39764ef8 32831#: doc/guix.texi:14936
b9fe8fd6
JL
32832#, no-wrap
32833msgid "@code{channel-nesting-limit} (default: @code{10})"
32834msgstr ""
32835
32836#. type: table
39764ef8 32837#: doc/guix.texi:14938
b9fe8fd6
JL
32838msgid "How deep channels can be nested at maximum."
32839msgstr ""
32840
32841#. type: item
39764ef8 32842#: doc/guix.texi:14939
b9fe8fd6
JL
32843#, no-wrap
32844msgid "@code{channelname-regex} (default: @code{#f})"
32845msgstr ""
32846
32847#. type: table
39764ef8 32848#: doc/guix.texi:14941
b9fe8fd6
JL
32849msgid ""
32850"A string in from of a Qt regular expression that channel names must conform "
32851"to."
32852msgstr ""
32853
32854#. type: item
39764ef8 32855#: doc/guix.texi:14942
b9fe8fd6
JL
32856#, no-wrap
32857msgid "@code{username-regex} (default: @code{#f})"
32858msgstr ""
32859
32860#. type: table
39764ef8
JL
32861#: doc/guix.texi:14944
32862msgid ""
32863"A string in from of a Qt regular expression that user names must conform to."
b9fe8fd6
JL
32864msgstr ""
32865
32866#. type: item
39764ef8 32867#: doc/guix.texi:14945
b9fe8fd6
JL
32868#, no-wrap
32869msgid "@code{text-message-length} (default: @code{5000})"
32870msgstr ""
32871
32872#. type: table
39764ef8 32873#: doc/guix.texi:14947
b9fe8fd6
JL
32874msgid "Maximum size in bytes that a user can send in one text chat message."
32875msgstr ""
32876
32877#. type: item
39764ef8 32878#: doc/guix.texi:14948
b9fe8fd6
JL
32879#, no-wrap
32880msgid "@code{image-message-length} (default: @code{(* 128 1024)})"
32881msgstr ""
32882
32883#. type: table
39764ef8 32884#: doc/guix.texi:14950
b9fe8fd6
JL
32885msgid "Maximum size in bytes that a user can send in one image message."
32886msgstr ""
32887
32888#. type: item
39764ef8 32889#: doc/guix.texi:14951
b9fe8fd6
JL
32890#, no-wrap
32891msgid "@code{cert-required?} (default: @code{#f})"
32892msgstr ""
32893
32894#. type: table
39764ef8 32895#: doc/guix.texi:14954
b9fe8fd6
JL
32896msgid ""
32897"If it is set to @code{#t} clients that use weak password authentification "
32898"will not be accepted. Users must have completed the certificate wizard to "
32899"join."
32900msgstr ""
32901
32902#. type: item
39764ef8 32903#: doc/guix.texi:14955
b9fe8fd6
JL
32904#, no-wrap
32905msgid "@code{remember-channel?} (defualt @code{#f})"
32906msgstr ""
32907
32908#. type: table
39764ef8 32909#: doc/guix.texi:14958
b9fe8fd6
JL
32910msgid ""
32911"Should murmur remember the last channel each user was in when they "
32912"disconnected and put them into the remembered channel when they rejoin."
32913msgstr ""
32914
32915#. type: item
39764ef8 32916#: doc/guix.texi:14959
b9fe8fd6
JL
32917#, no-wrap
32918msgid "@code{allow-html?} (default: @code{#f})"
32919msgstr ""
32920
32921#. type: table
39764ef8 32922#: doc/guix.texi:14961
b9fe8fd6
JL
32923msgid ""
32924"Should html be allowed in text messages, user comments, and channel "
32925"descriptions."
32926msgstr ""
32927
32928#. type: item
39764ef8 32929#: doc/guix.texi:14962
b9fe8fd6
JL
32930#, no-wrap
32931msgid "@code{allow-ping?} (default: @code{#f})"
32932msgstr ""
32933
32934#. type: table
39764ef8 32935#: doc/guix.texi:14966
b9fe8fd6
JL
32936msgid ""
32937"Setting to true exposes the current user count, the maximum user count, and "
32938"the server's maximum bandwidth per client to unauthenticated users. In the "
32939"Mumble client, this information is shown in the Connect dialog."
32940msgstr ""
32941
32942#. type: table
39764ef8 32943#: doc/guix.texi:14968
b9fe8fd6
JL
32944msgid "Disabling this setting will prevent public listing of the server."
32945msgstr ""
32946
32947#. type: item
39764ef8 32948#: doc/guix.texi:14969
b9fe8fd6
JL
32949#, no-wrap
32950msgid "@code{bonjour?} (default: @code{#f})"
32951msgstr ""
32952
32953#. type: table
39764ef8 32954#: doc/guix.texi:14971
b9fe8fd6
JL
32955msgid ""
32956"Should the server advertise itself in the local network through the bonjour "
32957"protocol."
32958msgstr ""
32959
32960#. type: item
39764ef8 32961#: doc/guix.texi:14972
b9fe8fd6
JL
32962#, no-wrap
32963msgid "@code{send-version?} (default: @code{#f})"
32964msgstr ""
32965
32966#. type: table
39764ef8 32967#: doc/guix.texi:14974
b9fe8fd6
JL
32968msgid "Should the murmur server version be exposed in ping requests."
32969msgstr ""
32970
32971#. type: item
39764ef8 32972#: doc/guix.texi:14975
b9fe8fd6
JL
32973#, no-wrap
32974msgid "@code{log-days} (default: @code{31})"
32975msgstr ""
32976
32977#. type: table
39764ef8 32978#: doc/guix.texi:14979
b9fe8fd6
JL
32979msgid ""
32980"Murmur also stores logs in the database, which are accessible via RPC. The "
32981"default is 31 days of months, but you can set this setting to 0 to keep logs "
32982"forever, or -1 to disable logging to the database."
32983msgstr ""
32984
32985#. type: item
39764ef8 32986#: doc/guix.texi:14980
b9fe8fd6
JL
32987#, no-wrap
32988msgid "@code{obfuscate-ips?} (default @code{#t})"
32989msgstr ""
32990
32991#. type: table
39764ef8 32992#: doc/guix.texi:14982
b9fe8fd6
JL
32993msgid "Should logged ips be obfuscated to protect the privacy of users."
32994msgstr ""
32995
32996#. type: item
39764ef8 32997#: doc/guix.texi:14983
b9fe8fd6
JL
32998#, no-wrap
32999msgid "@code{ssl-cert} (default: @code{#f})"
33000msgstr ""
33001
33002#. type: table
39764ef8 33003#: doc/guix.texi:14985
b9fe8fd6
JL
33004msgid "File name of the SSL/TLS certificate used for encrypted connections."
33005msgstr ""
33006
33007#. type: example
39764ef8 33008#: doc/guix.texi:14988
b9fe8fd6
JL
33009#, no-wrap
33010msgid "(ssl-cert \"/etc/letsencrypt/live/example.com/fullchain.pem\")\n"
33011msgstr ""
33012
33013#. type: item
39764ef8 33014#: doc/guix.texi:14989
b9fe8fd6
JL
33015#, no-wrap
33016msgid "@code{ssl-key} (default: @code{#f})"
33017msgstr ""
33018
33019#. type: table
39764ef8 33020#: doc/guix.texi:14991
b9fe8fd6
JL
33021msgid "Filepath to the ssl private key used for encrypted connections."
33022msgstr ""
33023
33024#. type: example
39764ef8 33025#: doc/guix.texi:14993
b9fe8fd6
JL
33026#, no-wrap
33027msgid "(ssl-key \"/etc/letsencrypt/live/example.com/privkey.pem\")\n"
33028msgstr ""
33029
33030#. type: item
39764ef8 33031#: doc/guix.texi:14995
b9fe8fd6
JL
33032#, no-wrap
33033msgid "@code{ssl-dh-params} (default: @code{#f})"
33034msgstr ""
33035
33036#. type: table
39764ef8 33037#: doc/guix.texi:15000
b9fe8fd6 33038msgid ""
39764ef8
JL
33039"File name of a PEM-encoded file with Diffie-Hellman parameters for the SSL/"
33040"TLS encryption. Alternatively you set it to @code{\"@@ffdhe2048\"}, "
b9fe8fd6
JL
33041"@code{\"@@ffdhe3072\"}, @code{\"@@ffdhe4096\"}, @code{\"@@ffdhe6144\"} or "
33042"@code{\"@@ffdhe8192\"} to use bundled parameters from RFC 7919."
33043msgstr ""
33044
33045#. type: item
39764ef8 33046#: doc/guix.texi:15001
b9fe8fd6
JL
33047#, no-wrap
33048msgid "@code{ssl-ciphers} (default: @code{#f})"
33049msgstr ""
33050
33051#. type: table
39764ef8 33052#: doc/guix.texi:15004
b9fe8fd6
JL
33053msgid ""
33054"The @code{ssl-ciphers} option chooses the cipher suites to make available "
33055"for use in SSL/TLS."
33056msgstr ""
33057
33058#. type: table
39764ef8 33059#: doc/guix.texi:15008
b9fe8fd6 33060msgid ""
39764ef8
JL
33061"This option is specified using @uref{https://www.openssl.org/docs/apps/"
33062"ciphers.html#CIPHER-LIST-FORMAT, OpenSSL cipher list notation}."
b9fe8fd6
JL
33063msgstr ""
33064
33065#. type: table
39764ef8 33066#: doc/guix.texi:15013
b9fe8fd6
JL
33067msgid ""
33068"It is recommended that you try your cipher string using 'openssl ciphers "
33069"<string>' before setting it here, to get a feel for which cipher suites you "
33070"will get. After setting this option, it is recommend that you inspect your "
33071"Murmur log to ensure that Murmur is using the cipher suites that you "
33072"expected it to."
33073msgstr ""
33074
33075#. type: table
39764ef8 33076#: doc/guix.texi:15017
b9fe8fd6
JL
33077msgid ""
33078"Note: Changing this option may impact the backwards compatibility of your "
33079"Murmur server, and can remove the ability for older Mumble clients to be "
33080"able to connect to it."
33081msgstr ""
33082
33083#. type: item
39764ef8 33084#: doc/guix.texi:15018
b9fe8fd6
JL
33085#, no-wrap
33086msgid "@code{public-registration} (default: @code{#f})"
33087msgstr ""
33088
33089#. type: table
39764ef8 33090#: doc/guix.texi:15020
b9fe8fd6
JL
33091msgid ""
33092"Must be a @code{<murmur-public-registration-configuration>} record or "
33093"@code{#f}."
33094msgstr ""
33095
33096#. type: table
39764ef8 33097#: doc/guix.texi:15025
b9fe8fd6
JL
33098msgid ""
33099"You can optionally register your server in the public server list that the "
33100"@code{mumble} client shows on startup. You cannot register your server if "
39764ef8 33101"you have set a @code{server-password}, or set @code{allow-ping} to @code{#f}."
b9fe8fd6
JL
33102msgstr ""
33103
33104#. type: table
39764ef8 33105#: doc/guix.texi:15027
b9fe8fd6
JL
33106msgid "It might take a few hours until it shows up in the public list."
33107msgstr ""
33108
33109#. type: item
39764ef8 33110#: doc/guix.texi:15028 doc/guix.texi:15599
b9fe8fd6
JL
33111#, no-wrap
33112msgid "@code{file} (default: @code{#f})"
33113msgstr ""
33114
33115#. type: table
39764ef8 33116#: doc/guix.texi:15030
b9fe8fd6
JL
33117msgid "Optional alternative override for this configuration."
33118msgstr ""
33119
33120#. type: deftp
39764ef8 33121#: doc/guix.texi:15033
b9fe8fd6
JL
33122#, no-wrap
33123msgid "{Data Type} murmur-public-registration-configuration"
33124msgstr ""
33125
33126#. type: deftp
39764ef8 33127#: doc/guix.texi:15035
b9fe8fd6
JL
33128msgid "Configuration for public registration of a murmur service."
33129msgstr ""
33130
33131#. type: table
39764ef8 33132#: doc/guix.texi:15039
b9fe8fd6 33133msgid ""
39764ef8 33134"This is a display name for your server. Not to be confused with the hostname."
b9fe8fd6
JL
33135msgstr ""
33136
33137#. type: itemx
39764ef8 33138#: doc/guix.texi:15040 doc/guix.texi:19930
b9fe8fd6
JL
33139#, no-wrap
33140msgid "password"
33141msgstr ""
33142
33143#. type: table
39764ef8 33144#: doc/guix.texi:15043
b9fe8fd6
JL
33145msgid ""
33146"A password to identify your registration. Subsequent updates will need the "
33147"same password. Don't lose your password."
33148msgstr ""
33149
33150#. type: code{#1}
39764ef8 33151#: doc/guix.texi:15044
b9fe8fd6
JL
33152#, no-wrap
33153msgid "url"
33154msgstr ""
33155
33156#. type: table
39764ef8
JL
33157#: doc/guix.texi:15047
33158msgid ""
33159"This should be a @code{http://} or @code{https://} link to your web site."
b9fe8fd6
JL
33160msgstr ""
33161
33162#. type: item
39764ef8 33163#: doc/guix.texi:15048
b9fe8fd6
JL
33164#, no-wrap
33165msgid "@code{hostname} (default: @code{#f})"
33166msgstr ""
33167
33168#. type: table
39764ef8 33169#: doc/guix.texi:15051
b9fe8fd6
JL
33170msgid ""
33171"By default your server will be listed by its IP address. If it is set your "
33172"server will be linked by this host name instead."
33173msgstr ""
33174
33175#. type: subsubheading
39764ef8 33176#: doc/guix.texi:15059
b9fe8fd6
JL
33177#, no-wrap
33178msgid "Tailon Service"
33179msgstr ""
33180
33181#. type: Plain text
39764ef8 33182#: doc/guix.texi:15063
b9fe8fd6
JL
33183msgid ""
33184"@uref{https://tailon.readthedocs.io/, Tailon} is a web application for "
33185"viewing and searching log files."
33186msgstr ""
33187
33188#. type: Plain text
39764ef8 33189#: doc/guix.texi:15066
b9fe8fd6
JL
33190msgid ""
33191"The following example will configure the service with default values. By "
33192"default, Tailon can be accessed on port 8080 (@code{http://localhost:8080})."
33193msgstr ""
33194
33195#. type: example
39764ef8 33196#: doc/guix.texi:15069
b9fe8fd6
JL
33197#, no-wrap
33198msgid "(service tailon-service-type)\n"
33199msgstr ""
33200
33201#. type: Plain text
39764ef8 33202#: doc/guix.texi:15073
b9fe8fd6
JL
33203msgid ""
33204"The following example customises more of the Tailon configuration, adding "
33205"@command{sed} to the list of allowed commands."
33206msgstr ""
33207
33208#. type: example
39764ef8 33209#: doc/guix.texi:15080
b9fe8fd6
JL
33210#, no-wrap
33211msgid ""
33212"(service tailon-service-type\n"
33213" (tailon-configuration\n"
33214" (config-file\n"
33215" (tailon-configuration-file\n"
33216" (allowed-commands '(\"tail\" \"grep\" \"awk\" \"sed\"))))))\n"
33217msgstr ""
33218
33219#. type: deftp
39764ef8 33220#: doc/guix.texi:15083
b9fe8fd6
JL
33221#, no-wrap
33222msgid "{Data Type} tailon-configuration"
33223msgstr ""
33224
33225#. type: deftp
39764ef8 33226#: doc/guix.texi:15086
b9fe8fd6
JL
33227msgid ""
33228"Data type representing the configuration of Tailon. This type has the "
33229"following parameters:"
33230msgstr ""
33231
33232#. type: item
39764ef8 33233#: doc/guix.texi:15088
b9fe8fd6
JL
33234#, no-wrap
33235msgid "@code{config-file} (default: @code{(tailon-configuration-file)})"
33236msgstr ""
33237
33238#. type: table
39764ef8 33239#: doc/guix.texi:15092
b9fe8fd6 33240msgid ""
39764ef8
JL
33241"The configuration file to use for Tailon. This can be set to a @dfn{tailon-"
33242"configuration-file} record value, or any gexp (@pxref{G-Expressions})."
b9fe8fd6
JL
33243msgstr ""
33244
33245#. type: table
39764ef8 33246#: doc/guix.texi:15095
b9fe8fd6
JL
33247msgid ""
33248"For example, to instead use a local file, the @code{local-file} function can "
33249"be used:"
33250msgstr ""
33251
33252#. type: example
39764ef8 33253#: doc/guix.texi:15100
b9fe8fd6
JL
33254#, no-wrap
33255msgid ""
33256"(service tailon-service-type\n"
33257" (tailon-configuration\n"
33258" (config-file (local-file \"./my-tailon.conf\"))))\n"
33259msgstr ""
33260
33261#. type: item
39764ef8 33262#: doc/guix.texi:15102
b9fe8fd6
JL
33263#, no-wrap
33264msgid "@code{package} (default: @code{tailon})"
33265msgstr ""
33266
33267#. type: table
39764ef8 33268#: doc/guix.texi:15104
b9fe8fd6
JL
33269msgid "The tailon package to use."
33270msgstr ""
33271
33272#. type: deftp
39764ef8 33273#: doc/guix.texi:15108
b9fe8fd6
JL
33274#, no-wrap
33275msgid "{Data Type} tailon-configuration-file"
33276msgstr ""
33277
33278#. type: deftp
39764ef8 33279#: doc/guix.texi:15111
b9fe8fd6
JL
33280msgid ""
33281"Data type representing the configuration options for Tailon. This type has "
33282"the following parameters:"
33283msgstr ""
33284
33285#. type: item
39764ef8 33286#: doc/guix.texi:15113
b9fe8fd6
JL
33287#, no-wrap
33288msgid "@code{files} (default: @code{(list \"/var/log\")})"
33289msgstr ""
33290
33291#. type: table
39764ef8 33292#: doc/guix.texi:15118
b9fe8fd6
JL
33293msgid ""
33294"List of files to display. The list can include strings for a single file or "
33295"directory, or a list, where the first item is the name of a subsection, and "
33296"the remaining items are the files or directories in that subsection."
33297msgstr ""
33298
33299#. type: item
39764ef8 33300#: doc/guix.texi:15119
b9fe8fd6
JL
33301#, no-wrap
33302msgid "@code{bind} (default: @code{\"localhost:8080\"})"
33303msgstr ""
33304
33305#. type: table
39764ef8 33306#: doc/guix.texi:15121
b9fe8fd6
JL
33307msgid "Address and port to which Tailon should bind on."
33308msgstr ""
33309
33310#. type: item
39764ef8 33311#: doc/guix.texi:15122
b9fe8fd6
JL
33312#, no-wrap
33313msgid "@code{relative-root} (default: @code{#f})"
33314msgstr ""
33315
33316#. type: table
39764ef8 33317#: doc/guix.texi:15124
b9fe8fd6
JL
33318msgid "URL path to use for Tailon, set to @code{#f} to not use a path."
33319msgstr ""
33320
33321#. type: item
39764ef8 33322#: doc/guix.texi:15125
b9fe8fd6
JL
33323#, no-wrap
33324msgid "@code{allow-transfers?} (default: @code{#t})"
33325msgstr ""
33326
33327#. type: table
39764ef8 33328#: doc/guix.texi:15127
b9fe8fd6
JL
33329msgid "Allow downloading the log files in the web interface."
33330msgstr ""
33331
33332#. type: item
39764ef8 33333#: doc/guix.texi:15128
b9fe8fd6
JL
33334#, no-wrap
33335msgid "@code{follow-names?} (default: @code{#t})"
33336msgstr ""
33337
33338#. type: table
39764ef8 33339#: doc/guix.texi:15130
b9fe8fd6
JL
33340msgid "Allow tailing of not-yet existent files."
33341msgstr ""
33342
33343#. type: item
39764ef8 33344#: doc/guix.texi:15131
b9fe8fd6
JL
33345#, no-wrap
33346msgid "@code{tail-lines} (default: @code{200})"
33347msgstr ""
33348
33349#. type: table
39764ef8 33350#: doc/guix.texi:15133
b9fe8fd6
JL
33351msgid "Number of lines to read initially from each file."
33352msgstr ""
33353
33354#. type: item
39764ef8 33355#: doc/guix.texi:15134
b9fe8fd6
JL
33356#, no-wrap
33357msgid "@code{allowed-commands} (default: @code{(list \"tail\" \"grep\" \"awk\")})"
33358msgstr ""
33359
33360#. type: table
39764ef8 33361#: doc/guix.texi:15136
b9fe8fd6
JL
33362msgid "Commands to allow running. By default, @code{sed} is disabled."
33363msgstr ""
33364
33365#. type: item
39764ef8 33366#: doc/guix.texi:15137
b9fe8fd6
JL
33367#, no-wrap
33368msgid "@code{debug?} (default: @code{#f})"
33369msgstr ""
33370
33371#. type: table
39764ef8 33372#: doc/guix.texi:15139
b9fe8fd6
JL
33373msgid "Set @code{debug?} to @code{#t} to show debug messages."
33374msgstr ""
33375
33376#. type: item
39764ef8 33377#: doc/guix.texi:15140
b9fe8fd6
JL
33378#, no-wrap
33379msgid "@code{wrap-lines} (default: @code{#t})"
33380msgstr ""
33381
33382#. type: table
39764ef8 33383#: doc/guix.texi:15144
b9fe8fd6
JL
33384msgid ""
33385"Initial line wrapping state in the web interface. Set to @code{#t} to "
33386"initially wrap lines (the default), or to @code{#f} to initially not wrap "
33387"lines."
33388msgstr ""
33389
33390#. type: item
39764ef8 33391#: doc/guix.texi:15145
b9fe8fd6
JL
33392#, no-wrap
33393msgid "@code{http-auth} (default: @code{#f})"
33394msgstr ""
33395
33396#. type: table
39764ef8 33397#: doc/guix.texi:15149
b9fe8fd6
JL
33398msgid ""
33399"HTTP authentication type to use. Set to @code{#f} to disable authentication "
33400"(the default). Supported values are @code{\"digest\"} or @code{\"basic\"}."
33401msgstr ""
33402
33403#. type: item
39764ef8 33404#: doc/guix.texi:15150
b9fe8fd6
JL
33405#, no-wrap
33406msgid "@code{users} (default: @code{#f})"
33407msgstr ""
33408
33409#. type: table
39764ef8 33410#: doc/guix.texi:15155
b9fe8fd6
JL
33411msgid ""
33412"If HTTP authentication is enabled (see @code{http-auth}), access will be "
33413"restricted to the credentials provided here. To configure users, use a list "
33414"of pairs, where the first element of the pair is the username, and the 2nd "
33415"element of the pair is the password."
33416msgstr ""
33417
33418#. type: example
39764ef8 33419#: doc/guix.texi:15161
b9fe8fd6
JL
33420#, no-wrap
33421msgid ""
33422"(tailon-configuration-file\n"
33423" (http-auth \"basic\")\n"
33424" (users '((\"user1\" . \"password1\")\n"
33425" (\"user2\" . \"password2\"))))\n"
33426msgstr ""
33427
33428#. type: subsubheading
39764ef8 33429#: doc/guix.texi:15167
b9fe8fd6
JL
33430#, no-wrap
33431msgid "Darkstat Service"
33432msgstr ""
33433
33434#. type: cindex
39764ef8 33435#: doc/guix.texi:15168
b9fe8fd6
JL
33436#, no-wrap
33437msgid "darkstat"
33438msgstr ""
33439
33440#. type: Plain text
39764ef8 33441#: doc/guix.texi:15171
b9fe8fd6
JL
33442msgid ""
33443"Darkstat is a packet sniffer that captures network traffic, calculates "
33444"statistics about usage, and serves reports over HTTP."
33445msgstr ""
33446
33447#. type: defvar
39764ef8 33448#: doc/guix.texi:15172
b9fe8fd6
JL
33449#, no-wrap
33450msgid "{Scheme Variable} darkstat-service-type"
33451msgstr ""
33452
33453#. type: defvar
39764ef8 33454#: doc/guix.texi:15177
b9fe8fd6
JL
33455msgid ""
33456"This is the service type for the @uref{https://unix4lyfe.org/darkstat/, "
33457"darkstat} service, its value must be a @code{darkstat-configuration} record "
33458"as in this example:"
33459msgstr ""
33460
33461#. type: example
39764ef8 33462#: doc/guix.texi:15182
b9fe8fd6
JL
33463#, no-wrap
33464msgid ""
33465"(service darkstat-service-type\n"
33466" (darkstat-configuration\n"
33467" (interface \"eno1\")))\n"
33468msgstr ""
33469
33470#. type: deftp
39764ef8 33471#: doc/guix.texi:15185
b9fe8fd6
JL
33472#, no-wrap
33473msgid "{Data Type} darkstat-configuration"
33474msgstr ""
33475
33476#. type: deftp
39764ef8 33477#: doc/guix.texi:15187
b9fe8fd6
JL
33478msgid "Data type representing the configuration of @command{darkstat}."
33479msgstr ""
33480
33481#. type: item
39764ef8 33482#: doc/guix.texi:15189
b9fe8fd6
JL
33483#, no-wrap
33484msgid "@code{package} (default: @code{darkstat})"
33485msgstr ""
33486
33487#. type: table
39764ef8 33488#: doc/guix.texi:15191
b9fe8fd6
JL
33489msgid "The darkstat package to use."
33490msgstr ""
33491
33492#. type: code{#1}
39764ef8 33493#: doc/guix.texi:15192
b9fe8fd6
JL
33494#, no-wrap
33495msgid "interface"
33496msgstr ""
33497
33498#. type: table
39764ef8 33499#: doc/guix.texi:15194
b9fe8fd6
JL
33500msgid "Capture traffic on the specified network interface."
33501msgstr ""
33502
33503#. type: item
39764ef8 33504#: doc/guix.texi:15195
b9fe8fd6
JL
33505#, no-wrap
33506msgid "@code{port} (default: @code{\"667\"})"
33507msgstr ""
33508
33509#. type: table
39764ef8 33510#: doc/guix.texi:15197
b9fe8fd6
JL
33511msgid "Bind the web interface to the specified port."
33512msgstr ""
33513
33514#. type: item
39764ef8 33515#: doc/guix.texi:15198
b9fe8fd6
JL
33516#, no-wrap
33517msgid "@code{bind-address} (default: @code{\"127.0.0.1\"})"
33518msgstr ""
33519
33520#. type: table
39764ef8 33521#: doc/guix.texi:15200
b9fe8fd6
JL
33522msgid "Bind the web interface to the specified address."
33523msgstr ""
33524
33525#. type: item
39764ef8 33526#: doc/guix.texi:15201
b9fe8fd6
JL
33527#, no-wrap
33528msgid "@code{base} (default: @code{\"/\"})"
33529msgstr ""
33530
33531#. type: table
39764ef8 33532#: doc/guix.texi:15204
b9fe8fd6
JL
33533msgid ""
33534"Specify the path of the base URL. This can be useful if @command{darkstat} "
33535"is accessed via a reverse proxy."
33536msgstr ""
33537
33538#. type: cindex
39764ef8 33539#: doc/guix.texi:15211
b9fe8fd6
JL
33540#, no-wrap
33541msgid "Kerberos"
33542msgstr ""
33543
33544#. type: Plain text
39764ef8 33545#: doc/guix.texi:15215
b9fe8fd6
JL
33546msgid ""
33547"The @code{(gnu services kerberos)} module provides services relating to the "
33548"authentication protocol @dfn{Kerberos}."
33549msgstr ""
33550
33551#. type: subsubheading
39764ef8 33552#: doc/guix.texi:15216
b9fe8fd6
JL
33553#, no-wrap
33554msgid "Krb5 Service"
33555msgstr ""
33556
33557#. type: Plain text
39764ef8 33558#: doc/guix.texi:15223
b9fe8fd6
JL
33559msgid ""
33560"Programs using a Kerberos client library normally expect a configuration "
33561"file in @file{/etc/krb5.conf}. This service generates such a file from a "
33562"definition provided in the operating system declaration. It does not cause "
33563"any daemon to be started."
33564msgstr ""
33565
33566#. type: Plain text
39764ef8 33567#: doc/guix.texi:15227
b9fe8fd6
JL
33568msgid ""
33569"No ``keytab'' files are provided by this service---you must explicitly "
33570"create them. This service is known to work with the MIT client library, "
33571"@code{mit-krb5}. Other implementations have not been tested."
33572msgstr ""
33573
33574#. type: defvr
39764ef8 33575#: doc/guix.texi:15228
b9fe8fd6
JL
33576#, no-wrap
33577msgid "{Scheme Variable} krb5-service-type"
33578msgstr ""
33579
33580#. type: defvr
39764ef8 33581#: doc/guix.texi:15230
b9fe8fd6
JL
33582msgid "A service type for Kerberos 5 clients."
33583msgstr ""
33584
33585#. type: Plain text
39764ef8 33586#: doc/guix.texi:15234
b9fe8fd6
JL
33587msgid "Here is an example of its use:"
33588msgstr ""
33589
33590#. type: lisp
39764ef8 33591#: doc/guix.texi:15248
b9fe8fd6
JL
33592#, no-wrap
33593msgid ""
33594"(service krb5-service-type\n"
33595" (krb5-configuration\n"
33596" (default-realm \"EXAMPLE.COM\")\n"
33597" (allow-weak-crypto? #t)\n"
33598" (realms (list\n"
33599" (krb5-realm\n"
33600" (name \"EXAMPLE.COM\")\n"
33601" (admin-server \"groucho.example.com\")\n"
33602" (kdc \"karl.example.com\"))\n"
33603" (krb5-realm\n"
33604" (name \"ARGRX.EDU\")\n"
33605" (admin-server \"kerb-admin.argrx.edu\")\n"
33606" (kdc \"keys.argrx.edu\"))))))\n"
33607msgstr ""
33608
33609#. type: Plain text
39764ef8 33610#: doc/guix.texi:15252
b9fe8fd6
JL
33611msgid "This example provides a Kerberos@tie{}5 client configuration which:"
33612msgstr ""
33613
33614#. type: item
39764ef8 33615#: doc/guix.texi:15253
b9fe8fd6
JL
33616#, no-wrap
33617msgid "Recognizes two realms, @i{viz:} ``EXAMPLE.COM'' and ``ARGRX.EDU'', both"
33618msgstr ""
33619
33620#. type: itemize
39764ef8
JL
33621#: doc/guix.texi:15255
33622msgid ""
33623"of which have distinct administration servers and key distribution centers;"
b9fe8fd6
JL
33624msgstr ""
33625
33626#. type: item
39764ef8 33627#: doc/guix.texi:15255
b9fe8fd6
JL
33628#, no-wrap
33629msgid "Will default to the realm ``EXAMPLE.COM'' if the realm is not explicitly"
33630msgstr ""
33631
33632#. type: itemize
39764ef8 33633#: doc/guix.texi:15257
b9fe8fd6
JL
33634msgid "specified by clients;"
33635msgstr ""
33636
33637#. type: item
39764ef8 33638#: doc/guix.texi:15257
b9fe8fd6
JL
33639#, no-wrap
33640msgid "Accepts services which only support encryption types known to be weak."
33641msgstr ""
33642
33643#. type: Plain text
39764ef8 33644#: doc/guix.texi:15265
b9fe8fd6
JL
33645msgid ""
33646"The @code{krb5-realm} and @code{krb5-configuration} types have many fields. "
33647"Only the most commonly used ones are described here. For a full list, and "
39764ef8
JL
33648"more detailed explanation of each, see the MIT @uref{http://web.mit.edu/"
33649"kerberos/krb5-devel/doc/admin/conf_files/krb5_conf.html,,krb5.conf} "
b9fe8fd6
JL
33650"documentation."
33651msgstr ""
33652
33653#. type: deftp
39764ef8 33654#: doc/guix.texi:15267
b9fe8fd6
JL
33655#, no-wrap
33656msgid "{Data Type} krb5-realm"
33657msgstr ""
33658
33659#. type: cindex
39764ef8 33660#: doc/guix.texi:15268
b9fe8fd6
JL
33661#, no-wrap
33662msgid "realm, kerberos"
33663msgstr ""
33664
33665#. type: table
39764ef8 33666#: doc/guix.texi:15274
b9fe8fd6
JL
33667msgid ""
33668"This field is a string identifying the name of the realm. A common "
33669"convention is to use the fully qualified DNS name of your organization, "
33670"converted to upper case."
33671msgstr ""
33672
33673#. type: code{#1}
39764ef8 33674#: doc/guix.texi:15275
b9fe8fd6
JL
33675#, no-wrap
33676msgid "admin-server"
33677msgstr ""
33678
33679#. type: table
39764ef8 33680#: doc/guix.texi:15278
b9fe8fd6
JL
33681msgid ""
33682"This field is a string identifying the host where the administration server "
33683"is running."
33684msgstr ""
33685
33686#. type: code{#1}
39764ef8 33687#: doc/guix.texi:15279
b9fe8fd6
JL
33688#, no-wrap
33689msgid "kdc"
33690msgstr ""
33691
33692#. type: table
39764ef8 33693#: doc/guix.texi:15282
b9fe8fd6 33694msgid ""
39764ef8 33695"This field is a string identifying the key distribution center for the realm."
b9fe8fd6
JL
33696msgstr ""
33697
33698#. type: deftp
39764ef8 33699#: doc/guix.texi:15285
b9fe8fd6
JL
33700#, no-wrap
33701msgid "{Data Type} krb5-configuration"
33702msgstr ""
33703
33704#. type: item
39764ef8 33705#: doc/guix.texi:15288
b9fe8fd6
JL
33706#, no-wrap
33707msgid "@code{allow-weak-crypto?} (default: @code{#f})"
33708msgstr ""
33709
33710#. type: table
39764ef8 33711#: doc/guix.texi:15291
b9fe8fd6
JL
33712msgid ""
33713"If this flag is @code{#t} then services which only offer encryption "
33714"algorithms known to be weak will be accepted."
33715msgstr ""
33716
33717#. type: item
39764ef8 33718#: doc/guix.texi:15292
b9fe8fd6
JL
33719#, no-wrap
33720msgid "@code{default-realm} (default: @code{#f})"
33721msgstr ""
33722
33723#. type: table
39764ef8 33724#: doc/guix.texi:15299
b9fe8fd6
JL
33725msgid ""
33726"This field should be a string identifying the default Kerberos realm for the "
33727"client. You should set this field to the name of your Kerberos realm. If "
33728"this value is @code{#f} then a realm must be specified with every Kerberos "
33729"principal when invoking programs such as @command{kinit}."
33730msgstr ""
33731
33732#. type: code{#1}
39764ef8 33733#: doc/guix.texi:15300
b9fe8fd6
JL
33734#, no-wrap
33735msgid "realms"
33736msgstr ""
33737
33738#. type: table
39764ef8 33739#: doc/guix.texi:15305
b9fe8fd6
JL
33740msgid ""
33741"This should be a non-empty list of @code{krb5-realm} objects, which clients "
33742"may access. Normally, one of them will have a @code{name} field matching "
33743"the @code{default-realm} field."
33744msgstr ""
33745
33746#. type: subsubheading
39764ef8 33747#: doc/guix.texi:15309
b9fe8fd6
JL
33748#, no-wrap
33749msgid "PAM krb5 Service"
33750msgstr ""
33751
33752#. type: cindex
39764ef8 33753#: doc/guix.texi:15310
b9fe8fd6
JL
33754#, no-wrap
33755msgid "pam-krb5"
33756msgstr ""
33757
33758#. type: Plain text
39764ef8 33759#: doc/guix.texi:15316
b9fe8fd6
JL
33760msgid ""
33761"The @code{pam-krb5} service allows for login authentication and password "
33762"management via Kerberos. You will need this service if you want PAM enabled "
33763"applications to authenticate users using Kerberos."
33764msgstr ""
33765
33766#. type: defvr
39764ef8 33767#: doc/guix.texi:15317
b9fe8fd6
JL
33768#, no-wrap
33769msgid "{Scheme Variable} pam-krb5-service-type"
33770msgstr ""
33771
33772#. type: defvr
39764ef8 33773#: doc/guix.texi:15319
b9fe8fd6
JL
33774msgid "A service type for the Kerberos 5 PAM module."
33775msgstr ""
33776
33777#. type: deftp
39764ef8 33778#: doc/guix.texi:15321
b9fe8fd6
JL
33779#, no-wrap
33780msgid "{Data Type} pam-krb5-configuration"
33781msgstr ""
33782
33783#. type: deftp
39764ef8 33784#: doc/guix.texi:15324
b9fe8fd6
JL
33785msgid ""
33786"Data type representing the configuration of the Kerberos 5 PAM module This "
33787"type has the following parameters:"
33788msgstr ""
33789
33790#. type: item
39764ef8 33791#: doc/guix.texi:15325
b9fe8fd6
JL
33792#, no-wrap
33793msgid "@code{pam-krb5} (default: @code{pam-krb5})"
33794msgstr ""
33795
33796#. type: table
39764ef8 33797#: doc/guix.texi:15327
b9fe8fd6
JL
33798msgid "The pam-krb5 package to use."
33799msgstr ""
33800
33801#. type: item
39764ef8 33802#: doc/guix.texi:15328
b9fe8fd6
JL
33803#, no-wrap
33804msgid "@code{minimum-uid} (default: @code{1000})"
33805msgstr ""
33806
33807#. type: table
39764ef8 33808#: doc/guix.texi:15331
b9fe8fd6
JL
33809msgid ""
33810"The smallest user ID for which Kerberos authentications should be "
33811"attempted. Local accounts with lower values will silently fail to "
33812"authenticate."
33813msgstr ""
33814
33815#. type: cindex
39764ef8 33816#: doc/guix.texi:15338
b9fe8fd6
JL
33817#, no-wrap
33818msgid "web"
33819msgstr ""
33820
33821#. type: cindex
39764ef8 33822#: doc/guix.texi:15339
b9fe8fd6
JL
33823#, no-wrap
33824msgid "www"
33825msgstr ""
33826
33827#. type: cindex
39764ef8 33828#: doc/guix.texi:15340
b9fe8fd6
JL
33829#, no-wrap
33830msgid "HTTP"
33831msgstr ""
33832
33833#. type: Plain text
39764ef8 33834#: doc/guix.texi:15343
b9fe8fd6
JL
33835msgid ""
33836"The @code{(gnu services web)} module provides the Apache HTTP Server, the "
33837"nginx web server, and also a fastcgi wrapper daemon."
33838msgstr ""
33839
33840#. type: subsubheading
39764ef8 33841#: doc/guix.texi:15344
b9fe8fd6
JL
33842#, no-wrap
33843msgid "Apache HTTP Server"
33844msgstr ""
33845
33846#. type: deffn
39764ef8 33847#: doc/guix.texi:15346
b9fe8fd6
JL
33848#, no-wrap
33849msgid "{Scheme Variable} httpd-service-type"
33850msgstr ""
33851
33852#. type: deffn
39764ef8 33853#: doc/guix.texi:15350
b9fe8fd6
JL
33854msgid ""
33855"Service type for the @uref{https://httpd.apache.org/,Apache HTTP} server "
39764ef8
JL
33856"(@dfn{httpd}). The value for this service type is a @code{https-"
33857"configuration} record."
b9fe8fd6
JL
33858msgstr ""
33859
33860#. type: deffn
39764ef8 33861#: doc/guix.texi:15352 doc/guix.texi:15503
b9fe8fd6
JL
33862msgid "A simple example configuration is given below."
33863msgstr ""
33864
33865#. type: example
39764ef8 33866#: doc/guix.texi:15360
b9fe8fd6
JL
33867#, no-wrap
33868msgid ""
33869"(service httpd-service-type\n"
33870" (httpd-configuration\n"
33871" (config\n"
33872" (httpd-config-file\n"
33873" (server-name \"www.example.com\")\n"
33874" (document-root \"/srv/http/www.example.com\")))))\n"
33875msgstr ""
33876
33877#. type: deffn
39764ef8 33878#: doc/guix.texi:15364
b9fe8fd6
JL
33879msgid ""
33880"Other services can also extend the @code{httpd-service-type} to add to the "
33881"configuration."
33882msgstr ""
33883
33884#. type: example
39764ef8 33885#: doc/guix.texi:15373 doc/guix.texi:15483
b9fe8fd6
JL
33886#, no-wrap
33887msgid ""
33888"(simple-service 'my-extra-server httpd-service-type\n"
33889" (list\n"
33890" (httpd-virtualhost\n"
33891" \"*:80\"\n"
33892" (list (string-append\n"
33893" \"ServerName \"www.example.com\n"
39764ef8 33894" DocumentRoot \\\"/srv/http/www.example.com\\\"\")))))\n"
b9fe8fd6
JL
33895msgstr ""
33896
33897#. type: Plain text
39764ef8 33898#: doc/guix.texi:15379
b9fe8fd6
JL
33899msgid ""
33900"The details for the @code{httpd-configuration}, @code{httpd-module}, "
33901"@code{httpd-config-file} and @code{httpd-virtualhost} record types are given "
33902"below."
33903msgstr ""
33904
33905#. type: deffn
39764ef8 33906#: doc/guix.texi:15380
b9fe8fd6
JL
33907#, no-wrap
33908msgid "{Data Type} httpd-configuration"
33909msgstr ""
33910
33911#. type: deffn
39764ef8 33912#: doc/guix.texi:15382
b9fe8fd6
JL
33913msgid "This data type represents the configuration for the httpd service."
33914msgstr ""
33915
33916#. type: item
39764ef8 33917#: doc/guix.texi:15384
b9fe8fd6
JL
33918#, no-wrap
33919msgid "@code{package} (default: @code{httpd})"
33920msgstr ""
33921
33922#. type: table
39764ef8 33923#: doc/guix.texi:15386
b9fe8fd6
JL
33924msgid "The httpd package to use."
33925msgstr ""
33926
33927#. type: item
39764ef8 33928#: doc/guix.texi:15387 doc/guix.texi:15446
b9fe8fd6
JL
33929#, no-wrap
33930msgid "@code{pid-file} (default: @code{\"/var/run/httpd\"})"
33931msgstr ""
33932
33933#. type: table
39764ef8 33934#: doc/guix.texi:15389
b9fe8fd6
JL
33935msgid "The pid file used by the shepherd-service."
33936msgstr ""
33937
33938#. type: item
39764ef8 33939#: doc/guix.texi:15390
b9fe8fd6
JL
33940#, no-wrap
33941msgid "@code{config} (default: @code{(httpd-config-file)})"
33942msgstr ""
33943
33944#. type: table
39764ef8 33945#: doc/guix.texi:15395
b9fe8fd6
JL
33946msgid ""
33947"The configuration file to use with the httpd service. The default value is a "
39764ef8
JL
33948"@code{httpd-config-file} record, but this can also be a different G-"
33949"expression that generates a file, for example a @code{plain-file}. A file "
b9fe8fd6
JL
33950"outside of the store can also be specified through a string."
33951msgstr ""
33952
33953#. type: deffn
39764ef8 33954#: doc/guix.texi:15399
b9fe8fd6
JL
33955#, no-wrap
33956msgid "{Data Type} httpd-module"
33957msgstr ""
33958
33959#. type: deffn
39764ef8 33960#: doc/guix.texi:15401
b9fe8fd6
JL
33961msgid "This data type represents a module for the httpd service."
33962msgstr ""
33963
33964#. type: table
39764ef8 33965#: doc/guix.texi:15405
b9fe8fd6
JL
33966msgid "The name of the module."
33967msgstr ""
33968
33969#. type: table
39764ef8 33970#: doc/guix.texi:15411
b9fe8fd6
JL
33971msgid ""
33972"The file for the module. This can be relative to the httpd package being "
33973"used, the absolute location of a file, or a G-expression for a file within "
39764ef8
JL
33974"the store, for example @code{(file-append mod-wsgi \"/modules/mod_wsgi.so"
33975"\")}."
b9fe8fd6
JL
33976msgstr ""
33977
33978#. type: deffn
39764ef8 33979#: doc/guix.texi:15415
b9fe8fd6
JL
33980#, no-wrap
33981msgid "{Data Type} httpd-config-file"
33982msgstr ""
33983
33984#. type: deffn
39764ef8 33985#: doc/guix.texi:15417
b9fe8fd6
JL
33986msgid "This data type represents a configuration file for the httpd service."
33987msgstr ""
33988
33989#. type: item
39764ef8 33990#: doc/guix.texi:15419
b9fe8fd6
JL
33991#, no-wrap
33992msgid "@code{modules} (default: @code{%default-httpd-modules})"
33993msgstr ""
33994
33995#. type: table
39764ef8 33996#: doc/guix.texi:15422
b9fe8fd6
JL
33997msgid ""
33998"The modules to load. Additional modules can be added here, or loaded by "
33999"additional configuration."
34000msgstr ""
34001
34002#. type: item
39764ef8 34003#: doc/guix.texi:15423
b9fe8fd6
JL
34004#, no-wrap
34005msgid "@code{server-root} (default: @code{httpd})"
34006msgstr ""
34007
34008#. type: table
39764ef8 34009#: doc/guix.texi:15427
b9fe8fd6
JL
34010msgid ""
34011"The @code{ServerRoot} in the configuration file, defaults to the httpd "
34012"package. Directives including @code{Include} and @code{LoadModule} are taken "
34013"as relative to the server root."
34014msgstr ""
34015
34016#. type: item
39764ef8 34017#: doc/guix.texi:15428
b9fe8fd6
JL
34018#, no-wrap
34019msgid "@code{server-name} (default: @code{#f})"
34020msgstr ""
34021
34022#. type: table
39764ef8 34023#: doc/guix.texi:15432
b9fe8fd6
JL
34024msgid ""
34025"The @code{ServerName} in the configuration file, used to specify the request "
34026"scheme, hostname and port that the server uses to identify itself."
34027msgstr ""
34028
34029#. type: table
39764ef8 34030#: doc/guix.texi:15436
b9fe8fd6
JL
34031msgid ""
34032"This doesn't need to be set in the server config, and can be specifyed in "
34033"virtual hosts. The default is @code{#f} to not specify a @code{ServerName}."
34034msgstr ""
34035
34036#. type: item
39764ef8 34037#: doc/guix.texi:15437
b9fe8fd6
JL
34038#, no-wrap
34039msgid "@code{document-root} (default: @code{\"/srv/http\"})"
34040msgstr ""
34041
34042#. type: table
39764ef8 34043#: doc/guix.texi:15439
b9fe8fd6
JL
34044msgid "The @code{DocumentRoot} from which files will be served."
34045msgstr ""
34046
34047#. type: item
39764ef8 34048#: doc/guix.texi:15440
b9fe8fd6
JL
34049#, no-wrap
34050msgid "@code{listen} (default: @code{'(\"80\")})"
34051msgstr ""
34052
34053#. type: table
39764ef8 34054#: doc/guix.texi:15445
b9fe8fd6
JL
34055msgid ""
34056"The list of values for the @code{Listen} directives in the config file. The "
34057"value should be a list of strings, when each string can specify the port "
34058"number to listen on, and optionally the IP address and protocol to use."
34059msgstr ""
34060
34061#. type: table
39764ef8 34062#: doc/guix.texi:15450
b9fe8fd6
JL
34063msgid ""
34064"The @code{PidFile} to use. This should match the @code{pid-file} set in the "
34065"@code{httpd-configuration} so that the Shepherd service is configured "
34066"correctly."
34067msgstr ""
34068
34069#. type: item
39764ef8 34070#: doc/guix.texi:15451
b9fe8fd6
JL
34071#, no-wrap
34072msgid "@code{error-log} (default: @code{\"/var/log/httpd/error_log\"})"
34073msgstr ""
34074
34075#. type: table
39764ef8 34076#: doc/guix.texi:15453
b9fe8fd6
JL
34077msgid "The @code{ErrorLog} to which the server will log errors."
34078msgstr ""
34079
34080#. type: item
39764ef8 34081#: doc/guix.texi:15454
b9fe8fd6
JL
34082#, no-wrap
34083msgid "@code{user} (default: @code{\"httpd\"})"
34084msgstr ""
34085
34086#. type: table
39764ef8 34087#: doc/guix.texi:15456
b9fe8fd6
JL
34088msgid "The @code{User} which the server will answer requests as."
34089msgstr ""
34090
34091#. type: item
39764ef8 34092#: doc/guix.texi:15457
b9fe8fd6
JL
34093#, no-wrap
34094msgid "@code{group} (default: @code{\"httpd\"})"
34095msgstr ""
34096
34097#. type: table
39764ef8 34098#: doc/guix.texi:15459
b9fe8fd6
JL
34099msgid "The @code{Group} which the server will answer requests as."
34100msgstr ""
34101
34102#. type: item
39764ef8 34103#: doc/guix.texi:15460
b9fe8fd6 34104#, no-wrap
39764ef8 34105msgid "@code{extra-config} (default: @code{(list \"TypesConfig etc/httpd/mime.types\")})"
b9fe8fd6
JL
34106msgstr ""
34107
34108#. type: table
39764ef8 34109#: doc/guix.texi:15463
b9fe8fd6
JL
34110msgid ""
34111"A flat list of strings and G-expressions which will be added to the end of "
34112"the configuration file."
34113msgstr ""
34114
34115#. type: table
39764ef8
JL
34116#: doc/guix.texi:15466
34117msgid ""
34118"Any values which the service is extended with will be appended to this list."
b9fe8fd6
JL
34119msgstr ""
34120
34121#. type: deffn
39764ef8 34122#: doc/guix.texi:15470
b9fe8fd6
JL
34123#, no-wrap
34124msgid "{Data Type} httpd-virtualhost"
34125msgstr ""
34126
34127#. type: deffn
39764ef8 34128#: doc/guix.texi:15472
b9fe8fd6
JL
34129msgid ""
34130"This data type represents a virtualhost configuration block for the httpd "
34131"service."
34132msgstr ""
34133
34134#. type: deffn
39764ef8 34135#: doc/guix.texi:15474
b9fe8fd6
JL
34136msgid "These should be added to the extra-config for the httpd-service."
34137msgstr ""
34138
34139#. type: code{#1}
39764ef8 34140#: doc/guix.texi:15486
b9fe8fd6
JL
34141#, no-wrap
34142msgid "addresses-and-ports"
34143msgstr ""
34144
34145#. type: table
39764ef8 34146#: doc/guix.texi:15488
b9fe8fd6
JL
34147msgid "The addresses and ports for the @code{VirtualHost} directive."
34148msgstr ""
34149
34150#. type: code{#1}
39764ef8 34151#: doc/guix.texi:15489
b9fe8fd6
JL
34152#, no-wrap
34153msgid "contents"
34154msgstr ""
34155
34156#. type: table
39764ef8 34157#: doc/guix.texi:15492
b9fe8fd6
JL
34158msgid ""
34159"The contents of the @code{VirtualHost} directive, this should be a list of "
34160"strings and G-expressions."
34161msgstr ""
34162
34163#. type: subsubheading
39764ef8 34164#: doc/guix.texi:15496
b9fe8fd6
JL
34165#, no-wrap
34166msgid "NGINX"
34167msgstr ""
34168
34169#. type: deffn
39764ef8 34170#: doc/guix.texi:15498
b9fe8fd6
JL
34171#, no-wrap
34172msgid "{Scheme Variable} nginx-service-type"
34173msgstr ""
34174
34175#. type: deffn
39764ef8 34176#: doc/guix.texi:15501
b9fe8fd6
JL
34177msgid ""
34178"Service type for the @uref{https://nginx.org/,NGinx} web server. The value "
34179"for this service type is a @code{<nginx-configuration>} record."
34180msgstr ""
34181
34182#. type: example
39764ef8 34183#: doc/guix.texi:15511 doc/guix.texi:15565
b9fe8fd6
JL
34184#, no-wrap
34185msgid ""
34186"(service nginx-service-type\n"
34187" (nginx-configuration\n"
34188" (server-blocks\n"
34189" (list (nginx-server-configuration\n"
34190" (server-name '(\"www.example.com\"))\n"
34191" (root \"/srv/http/www.example.com\"))))))\n"
34192msgstr ""
34193
34194#. type: deffn
39764ef8 34195#: doc/guix.texi:15516
b9fe8fd6
JL
34196msgid ""
34197"In addition to adding server blocks to the service configuration directly, "
34198"this service can be extended by other services to add server blocks, as in "
34199"this example:"
34200msgstr ""
34201
34202#. type: example
39764ef8 34203#: doc/guix.texi:15522
b9fe8fd6
JL
34204#, no-wrap
34205msgid ""
34206"(simple-service 'my-extra-server nginx-service-type\n"
34207" (list (nginx-server-configuration\n"
34208" (root \"/srv/http/extra-website\")\n"
34209" (try-files (list \"$uri\" \"$uri/index.html\")))))\n"
34210msgstr ""
34211
34212#. type: Plain text
39764ef8 34213#: doc/guix.texi:15533
b9fe8fd6
JL
34214msgid ""
34215"At startup, @command{nginx} has not yet read its configuration file, so it "
34216"uses a default file to log error messages. If it fails to load its "
34217"configuration file, that is where error messages are logged. After the "
34218"configuration file is loaded, the default error log file changes as per "
39764ef8
JL
34219"configuration. In our case, startup error messages can be found in @file{/"
34220"var/run/nginx/logs/error.log}, and after configuration in @file{/var/log/"
34221"nginx/error.log}. The second location can be changed with the @var{log-"
34222"directory} configuration option."
b9fe8fd6
JL
34223msgstr ""
34224
34225#. type: deffn
39764ef8 34226#: doc/guix.texi:15534
b9fe8fd6
JL
34227#, no-wrap
34228msgid "{Data Type} nginx-configuration"
34229msgstr ""
34230
34231#. type: deffn
39764ef8 34232#: doc/guix.texi:15538
b9fe8fd6
JL
34233msgid ""
34234"This data type represents the configuration for NGinx. Some configuration "
34235"can be done through this and the other provided record types, or "
34236"alternatively, a config file can be provided."
34237msgstr ""
34238
34239#. type: item
39764ef8 34240#: doc/guix.texi:15540
b9fe8fd6
JL
34241#, no-wrap
34242msgid "@code{nginx} (default: @code{nginx})"
34243msgstr ""
34244
34245#. type: table
39764ef8 34246#: doc/guix.texi:15542
b9fe8fd6
JL
34247msgid "The nginx package to use."
34248msgstr ""
34249
34250#. type: item
39764ef8 34251#: doc/guix.texi:15543
b9fe8fd6
JL
34252#, no-wrap
34253msgid "@code{log-directory} (default: @code{\"/var/log/nginx\"})"
34254msgstr ""
34255
34256#. type: table
39764ef8 34257#: doc/guix.texi:15545
b9fe8fd6
JL
34258msgid "The directory to which NGinx will write log files."
34259msgstr ""
34260
34261#. type: item
39764ef8 34262#: doc/guix.texi:15546
b9fe8fd6
JL
34263#, no-wrap
34264msgid "@code{run-directory} (default: @code{\"/var/run/nginx\"})"
34265msgstr ""
34266
34267#. type: table
39764ef8 34268#: doc/guix.texi:15549
b9fe8fd6
JL
34269msgid ""
34270"The directory in which NGinx will create a pid file, and write temporary "
34271"files."
34272msgstr ""
34273
34274#. type: item
39764ef8 34275#: doc/guix.texi:15550
b9fe8fd6
JL
34276#, no-wrap
34277msgid "@code{server-blocks} (default: @code{'()})"
34278msgstr ""
34279
34280#. type: table
39764ef8 34281#: doc/guix.texi:15554
b9fe8fd6
JL
34282msgid ""
34283"A list of @dfn{server blocks} to create in the generated configuration file, "
34284"the elements should be of type @code{<nginx-server-configuration>}."
34285msgstr ""
34286
34287#. type: table
39764ef8 34288#: doc/guix.texi:15558
b9fe8fd6
JL
34289msgid ""
34290"The following example would setup NGinx to serve @code{www.example.com} from "
34291"the @code{/srv/http/www.example.com} directory, without using HTTPS."
34292msgstr ""
34293
34294#. type: item
39764ef8 34295#: doc/guix.texi:15567
b9fe8fd6
JL
34296#, no-wrap
34297msgid "@code{upstream-blocks} (default: @code{'()})"
34298msgstr ""
34299
34300#. type: table
39764ef8 34301#: doc/guix.texi:15571
b9fe8fd6
JL
34302msgid ""
34303"A list of @dfn{upstream blocks} to create in the generated configuration "
34304"file, the elements should be of type @code{<nginx-upstream-configuration>}."
34305msgstr ""
34306
34307#. type: table
39764ef8 34308#: doc/guix.texi:15578
b9fe8fd6
JL
34309msgid ""
34310"Configuring upstreams through the @code{upstream-blocks} can be useful when "
34311"combined with @code{locations} in the @code{<nginx-server-configuration>} "
34312"records. The following example creates a server configuration with one "
34313"location configuration, that will proxy requests to a upstream "
34314"configuration, which will handle requests with two servers."
34315msgstr ""
34316
34317#. type: example
39764ef8 34318#: doc/guix.texi:15597
b9fe8fd6
JL
34319#, no-wrap
34320msgid ""
34321"(service\n"
34322" nginx-service-type\n"
34323" (nginx-configuration\n"
34324" (server-blocks\n"
34325" (list (nginx-server-configuration\n"
34326" (server-name '(\"www.example.com\"))\n"
34327" (root \"/srv/http/www.example.com\")\n"
34328" (locations\n"
34329" (list\n"
34330" (nginx-location-configuration\n"
34331" (uri \"/path1\")\n"
34332" (body '(\"proxy_pass http://server-proxy;\"))))))))\n"
34333" (upstream-blocks\n"
34334" (list (nginx-upstream-configuration\n"
34335" (name \"server-proxy\")\n"
34336" (servers (list \"server1.example.com\"\n"
34337" \"server2.example.com\")))))))\n"
34338msgstr ""
34339
34340#. type: table
39764ef8 34341#: doc/guix.texi:15605
b9fe8fd6
JL
34342msgid ""
34343"If a configuration @var{file} is provided, this will be used, rather than "
34344"generating a configuration file from the provided @code{log-directory}, "
34345"@code{run-directory}, @code{server-blocks} and @code{upstream-blocks}. For "
34346"proper operation, these arguments should match what is in @var{file} to "
34347"ensure that the directories are created when the service is activated."
34348msgstr ""
34349
34350#. type: table
39764ef8 34351#: doc/guix.texi:15609
b9fe8fd6
JL
34352msgid ""
34353"This can be useful if you have an existing configuration file, or it's not "
39764ef8
JL
34354"possible to do what is required through the other parts of the nginx-"
34355"configuration record."
b9fe8fd6
JL
34356msgstr ""
34357
34358#. type: item
39764ef8 34359#: doc/guix.texi:15610
b9fe8fd6
JL
34360#, no-wrap
34361msgid "@code{server-names-hash-bucket-size} (default: @code{#f})"
34362msgstr ""
34363
34364#. type: table
39764ef8 34365#: doc/guix.texi:15613
b9fe8fd6
JL
34366msgid ""
34367"Bucket size for the server names hash tables, defaults to @code{#f} to use "
34368"the size of the processors cache line."
34369msgstr ""
34370
34371#. type: item
39764ef8 34372#: doc/guix.texi:15614
b9fe8fd6
JL
34373#, no-wrap
34374msgid "@code{server-names-hash-bucket-max-size} (default: @code{#f})"
34375msgstr ""
34376
34377#. type: table
39764ef8 34378#: doc/guix.texi:15616
b9fe8fd6
JL
34379msgid "Maximum bucket size for the server names hash tables."
34380msgstr ""
34381
34382#. type: deftp
39764ef8 34383#: doc/guix.texi:15620
b9fe8fd6
JL
34384#, no-wrap
34385msgid "{Data Type} nginx-server-configuration"
34386msgstr ""
34387
34388#. type: deftp
39764ef8 34389#: doc/guix.texi:15623
b9fe8fd6
JL
34390msgid ""
34391"Data type representing the configuration of an nginx server block. This "
34392"type has the following parameters:"
34393msgstr ""
34394
34395#. type: item
39764ef8 34396#: doc/guix.texi:15625
b9fe8fd6
JL
34397#, no-wrap
34398msgid "@code{listen} (default: @code{'(\"80\" \"443 ssl\")})"
34399msgstr ""
34400
34401#. type: table
39764ef8 34402#: doc/guix.texi:15630
b9fe8fd6
JL
34403msgid ""
34404"Each @code{listen} directive sets the address and port for IP, or the path "
34405"for a UNIX-domain socket on which the server will accept requests. Both "
34406"address and port, or only address or only port can be specified. An address "
34407"may also be a hostname, for example:"
34408msgstr ""
34409
34410#. type: example
39764ef8 34411#: doc/guix.texi:15633
b9fe8fd6
JL
34412#, no-wrap
34413msgid "'(\"127.0.0.1:8000\" \"127.0.0.1\" \"8000\" \"*:8000\" \"localhost:8000\")\n"
34414msgstr ""
34415
34416#. type: item
39764ef8 34417#: doc/guix.texi:15635
b9fe8fd6
JL
34418#, no-wrap
34419msgid "@code{server-name} (default: @code{(list 'default)})"
34420msgstr ""
34421
34422#. type: table
39764ef8 34423#: doc/guix.texi:15638
b9fe8fd6
JL
34424msgid ""
34425"A list of server names this server represents. @code{'default} represents "
34426"the default server for connections matching no other server."
34427msgstr ""
34428
34429#. type: item
39764ef8 34430#: doc/guix.texi:15639
b9fe8fd6
JL
34431#, no-wrap
34432msgid "@code{root} (default: @code{\"/srv/http\"})"
34433msgstr ""
34434
34435#. type: table
39764ef8 34436#: doc/guix.texi:15641
b9fe8fd6
JL
34437msgid "Root of the website nginx will serve."
34438msgstr ""
34439
34440#. type: item
39764ef8 34441#: doc/guix.texi:15642
b9fe8fd6
JL
34442#, no-wrap
34443msgid "@code{locations} (default: @code{'()})"
34444msgstr ""
34445
34446#. type: table
39764ef8 34447#: doc/guix.texi:15646
b9fe8fd6 34448msgid ""
39764ef8
JL
34449"A list of @dfn{nginx-location-configuration} or @dfn{nginx-named-location-"
34450"configuration} records to use within this server block."
b9fe8fd6
JL
34451msgstr ""
34452
34453#. type: item
39764ef8 34454#: doc/guix.texi:15647
b9fe8fd6
JL
34455#, no-wrap
34456msgid "@code{index} (default: @code{(list \"index.html\")})"
34457msgstr ""
34458
34459#. type: table
39764ef8 34460#: doc/guix.texi:15650
b9fe8fd6
JL
34461msgid ""
34462"Index files to look for when clients ask for a directory. If it cannot be "
34463"found, Nginx will send the list of files in the directory."
34464msgstr ""
34465
34466#. type: item
39764ef8 34467#: doc/guix.texi:15651
b9fe8fd6
JL
34468#, no-wrap
34469msgid "@code{try-files} (default: @code{'()})"
34470msgstr ""
34471
34472#. type: table
39764ef8 34473#: doc/guix.texi:15654
b9fe8fd6
JL
34474msgid ""
34475"A list of files whose existence is checked in the specified order. "
34476"@code{nginx} will use the first file it finds to process the request."
34477msgstr ""
34478
34479#. type: item
39764ef8 34480#: doc/guix.texi:15655
b9fe8fd6
JL
34481#, no-wrap
34482msgid "@code{ssl-certificate} (default: @code{#f})"
34483msgstr ""
34484
34485#. type: table
39764ef8 34486#: doc/guix.texi:15658
b9fe8fd6
JL
34487msgid ""
34488"Where to find the certificate for secure connections. Set it to @code{#f} "
34489"if you don't have a certificate or you don't want to use HTTPS."
34490msgstr ""
34491
34492#. type: item
39764ef8 34493#: doc/guix.texi:15659
b9fe8fd6
JL
34494#, no-wrap
34495msgid "@code{ssl-certificate-key} (default: @code{#f})"
34496msgstr ""
34497
34498#. type: table
39764ef8 34499#: doc/guix.texi:15662
b9fe8fd6
JL
34500msgid ""
34501"Where to find the private key for secure connections. Set it to @code{#f} "
34502"if you don't have a key or you don't want to use HTTPS."
34503msgstr ""
34504
34505#. type: item
39764ef8 34506#: doc/guix.texi:15663
b9fe8fd6
JL
34507#, no-wrap
34508msgid "@code{server-tokens?} (default: @code{#f})"
34509msgstr ""
34510
34511#. type: table
39764ef8 34512#: doc/guix.texi:15665
b9fe8fd6
JL
34513msgid "Whether the server should add its configuration to response."
34514msgstr ""
34515
34516#. type: item
39764ef8 34517#: doc/guix.texi:15666
b9fe8fd6
JL
34518#, no-wrap
34519msgid "@code{raw-content} (default: @code{'()})"
34520msgstr ""
34521
34522#. type: table
39764ef8 34523#: doc/guix.texi:15668
b9fe8fd6
JL
34524msgid "A list of raw lines added to the server block."
34525msgstr ""
34526
34527#. type: deftp
39764ef8 34528#: doc/guix.texi:15672
b9fe8fd6
JL
34529#, no-wrap
34530msgid "{Data Type} nginx-upstream-configuration"
34531msgstr ""
34532
34533#. type: deftp
39764ef8 34534#: doc/guix.texi:15675
b9fe8fd6
JL
34535msgid ""
34536"Data type representing the configuration of an nginx @code{upstream} block. "
34537"This type has the following parameters:"
34538msgstr ""
34539
34540#. type: table
39764ef8 34541#: doc/guix.texi:15679
b9fe8fd6
JL
34542msgid "Name for this group of servers."
34543msgstr ""
34544
34545#. type: code{#1}
39764ef8 34546#: doc/guix.texi:15680
b9fe8fd6
JL
34547#, no-wrap
34548msgid "servers"
34549msgstr ""
34550
34551#. type: table
39764ef8 34552#: doc/guix.texi:15687
b9fe8fd6
JL
34553msgid ""
34554"Specify the addresses of the servers in the group. The address can be "
39764ef8
JL
34555"specified as a IP address (e.g. @samp{127.0.0.1}), domain name (e.g. "
34556"@samp{backend1.example.com}) or a path to a UNIX socket using the prefix "
34557"@samp{unix:}. For addresses using an IP address or domain name, the default "
34558"port is 80, and a different port can be specified explicitly."
b9fe8fd6
JL
34559msgstr ""
34560
34561#. type: deftp
39764ef8 34562#: doc/guix.texi:15691
b9fe8fd6
JL
34563#, no-wrap
34564msgid "{Data Type} nginx-location-configuration"
34565msgstr ""
34566
34567#. type: deftp
39764ef8 34568#: doc/guix.texi:15694
b9fe8fd6
JL
34569msgid ""
34570"Data type representing the configuration of an nginx @code{location} block. "
34571"This type has the following parameters:"
34572msgstr ""
34573
34574#. type: table
39764ef8 34575#: doc/guix.texi:15698
b9fe8fd6
JL
34576msgid "URI which this location block matches."
34577msgstr ""
34578
34579#. type: anchor{#1}
39764ef8 34580#: doc/guix.texi:15700
b9fe8fd6
JL
34581msgid "nginx-location-configuration body"
34582msgstr ""
34583
34584#. type: code{#1}
39764ef8 34585#: doc/guix.texi:15700 doc/guix.texi:15721
b9fe8fd6
JL
34586#, no-wrap
34587msgid "body"
34588msgstr ""
34589
34590#. type: table
39764ef8 34591#: doc/guix.texi:15707
b9fe8fd6
JL
34592msgid ""
34593"Body of the location block, specified as a list of strings. This can contain "
34594"many configuration directives. For example, to pass requests to a upstream "
34595"server group defined using an @code{nginx-upstream-configuration} block, the "
34596"following directive would be specified in the body @samp{(list \"proxy_pass "
34597"http://upstream-name;\")}."
34598msgstr ""
34599
34600#. type: deftp
39764ef8 34601#: doc/guix.texi:15711
b9fe8fd6
JL
34602#, no-wrap
34603msgid "{Data Type} nginx-named-location-configuration"
34604msgstr ""
34605
34606#. type: deftp
39764ef8 34607#: doc/guix.texi:15716
b9fe8fd6
JL
34608msgid ""
34609"Data type representing the configuration of an nginx named location block. "
34610"Named location blocks are used for request redirection, and not used for "
34611"regular request processing. This type has the following parameters:"
34612msgstr ""
34613
34614#. type: table
39764ef8 34615#: doc/guix.texi:15720
b9fe8fd6
JL
34616msgid "Name to identify this location block."
34617msgstr ""
34618
34619#. type: table
39764ef8 34620#: doc/guix.texi:15726
b9fe8fd6
JL
34621msgid ""
34622"@xref{nginx-location-configuration body}, as the body for named location "
39764ef8
JL
34623"blocks can be used in a similar way to the @code{nginx-location-"
34624"configuration body}. One restriction is that the body of a named location "
34625"block cannot contain location blocks."
b9fe8fd6
JL
34626msgstr ""
34627
34628#. type: cindex
39764ef8 34629#: doc/guix.texi:15730
b9fe8fd6
JL
34630#, no-wrap
34631msgid "fastcgi"
34632msgstr ""
34633
34634#. type: cindex
39764ef8 34635#: doc/guix.texi:15731
b9fe8fd6
JL
34636#, no-wrap
34637msgid "fcgiwrap"
34638msgstr ""
34639
34640#. type: Plain text
39764ef8 34641#: doc/guix.texi:15738
b9fe8fd6
JL
34642msgid ""
34643"FastCGI is an interface between the front-end and the back-end of a web "
34644"service. It is a somewhat legacy facility; new web services should "
34645"generally just talk HTTP between the front-end and the back-end. However "
34646"there are a number of back-end services such as PHP or the optimized HTTP "
34647"Git repository access that use FastCGI, so we have support for it in Guix."
34648msgstr ""
34649
34650#. type: Plain text
39764ef8 34651#: doc/guix.texi:15745
b9fe8fd6
JL
34652msgid ""
34653"To use FastCGI, you configure the front-end web server (e.g., nginx) to "
34654"dispatch some subset of its requests to the fastcgi backend, which listens "
34655"on a local TCP or UNIX socket. There is an intermediary @code{fcgiwrap} "
34656"program that sits between the actual backend process and the web server. "
34657"The front-end indicates which backend program to run, passing that "
34658"information to the @code{fcgiwrap} process."
34659msgstr ""
34660
34661#. type: defvr
39764ef8 34662#: doc/guix.texi:15746
b9fe8fd6
JL
34663#, no-wrap
34664msgid "{Scheme Variable} fcgiwrap-service-type"
34665msgstr ""
34666
34667#. type: defvr
39764ef8 34668#: doc/guix.texi:15748
b9fe8fd6
JL
34669msgid "A service type for the @code{fcgiwrap} FastCGI proxy."
34670msgstr ""
34671
34672#. type: deftp
39764ef8 34673#: doc/guix.texi:15750
b9fe8fd6
JL
34674#, no-wrap
34675msgid "{Data Type} fcgiwrap-configuration"
34676msgstr ""
34677
34678#. type: deftp
39764ef8 34679#: doc/guix.texi:15753
b9fe8fd6
JL
34680msgid ""
34681"Data type representing the configuration of the @code{fcgiwrap} serice. "
34682"This type has the following parameters:"
34683msgstr ""
34684
34685#. type: item
39764ef8 34686#: doc/guix.texi:15754
b9fe8fd6
JL
34687#, no-wrap
34688msgid "@code{package} (default: @code{fcgiwrap})"
34689msgstr ""
34690
34691#. type: table
39764ef8 34692#: doc/guix.texi:15756
b9fe8fd6
JL
34693msgid "The fcgiwrap package to use."
34694msgstr ""
34695
34696#. type: item
39764ef8 34697#: doc/guix.texi:15757
b9fe8fd6
JL
34698#, no-wrap
34699msgid "@code{socket} (default: @code{tcp:127.0.0.1:9000})"
34700msgstr ""
34701
34702#. type: table
39764ef8 34703#: doc/guix.texi:15763
b9fe8fd6
JL
34704msgid ""
34705"The socket on which the @code{fcgiwrap} process should listen, as a string. "
34706"Valid @var{socket} values include @code{unix:@var{/path/to/unix/socket}}, "
39764ef8
JL
34707"@code{tcp:@var{dot.ted.qu.ad}:@var{port}} and @code{tcp6:[@var{ipv6_addr}]:"
34708"port}."
b9fe8fd6
JL
34709msgstr ""
34710
34711#. type: item
39764ef8 34712#: doc/guix.texi:15764
b9fe8fd6
JL
34713#, no-wrap
34714msgid "@code{user} (default: @code{fcgiwrap})"
34715msgstr ""
34716
34717#. type: itemx
39764ef8 34718#: doc/guix.texi:15765
b9fe8fd6
JL
34719#, no-wrap
34720msgid "@code{group} (default: @code{fcgiwrap})"
34721msgstr ""
34722
34723#. type: table
39764ef8 34724#: doc/guix.texi:15770
b9fe8fd6
JL
34725msgid ""
34726"The user and group names, as strings, under which to run the @code{fcgiwrap} "
34727"process. The @code{fastcgi} service will ensure that if the user asks for "
34728"the specific user or group names @code{fcgiwrap} that the corresponding user "
34729"and/or group is present on the system."
34730msgstr ""
34731
34732#. type: table
39764ef8 34733#: doc/guix.texi:15777
b9fe8fd6
JL
34734msgid ""
34735"It is possible to configure a FastCGI-backed web service to pass HTTP "
34736"authentication information from the front-end to the back-end, and to allow "
34737"@code{fcgiwrap} to run the back-end process as a corresponding local user. "
34738"To enable this capability on the back-end., run @code{fcgiwrap} as the "
34739"@code{root} user and group. Note that this capability also has to be "
34740"configured on the front-end as well."
34741msgstr ""
34742
34743#. type: cindex
39764ef8 34744#: doc/guix.texi:15780
b9fe8fd6
JL
34745#, no-wrap
34746msgid "php-fpm"
34747msgstr ""
34748
34749#. type: Plain text
39764ef8 34750#: doc/guix.texi:15783
b9fe8fd6
JL
34751msgid ""
34752"PHP-FPM (FastCGI Process Manager) is an alternative PHP FastCGI "
34753"implementation with some additional features useful for sites of any size."
34754msgstr ""
34755
34756#. type: Plain text
39764ef8 34757#: doc/guix.texi:15785
b9fe8fd6
JL
34758msgid "These features include:"
34759msgstr ""
34760
34761#. type: item
39764ef8 34762#: doc/guix.texi:15786
b9fe8fd6
JL
34763#, no-wrap
34764msgid "Adaptive process spawning"
34765msgstr ""
34766
34767#. type: item
39764ef8 34768#: doc/guix.texi:15787
b9fe8fd6
JL
34769#, no-wrap
34770msgid "Basic statistics (similar to Apache's mod_status)"
34771msgstr ""
34772
34773#. type: item
39764ef8 34774#: doc/guix.texi:15788
b9fe8fd6
JL
34775#, no-wrap
34776msgid "Advanced process management with graceful stop/start"
34777msgstr ""
34778
34779#. type: item
39764ef8 34780#: doc/guix.texi:15789
b9fe8fd6
JL
34781#, no-wrap
34782msgid "Ability to start workers with different uid/gid/chroot/environment"
34783msgstr ""
34784
34785#. type: itemize
39764ef8 34786#: doc/guix.texi:15791
b9fe8fd6
JL
34787msgid "and different php.ini (replaces safe_mode)"
34788msgstr ""
34789
34790#. type: item
39764ef8 34791#: doc/guix.texi:15791
b9fe8fd6
JL
34792#, no-wrap
34793msgid "Stdout & stderr logging"
34794msgstr ""
34795
34796#. type: item
39764ef8 34797#: doc/guix.texi:15792
b9fe8fd6
JL
34798#, no-wrap
34799msgid "Emergency restart in case of accidental opcode cache destruction"
34800msgstr ""
34801
34802#. type: item
39764ef8 34803#: doc/guix.texi:15793
b9fe8fd6
JL
34804#, no-wrap
34805msgid "Accelerated upload support"
34806msgstr ""
34807
34808#. type: item
39764ef8 34809#: doc/guix.texi:15794
b9fe8fd6
JL
34810#, no-wrap
34811msgid "Support for a \"slowlog\""
34812msgstr ""
34813
34814#. type: item
39764ef8 34815#: doc/guix.texi:15795
b9fe8fd6
JL
34816#, no-wrap
34817msgid "Enhancements to FastCGI, such as fastcgi_finish_request() -"
34818msgstr ""
34819
34820#. type: itemize
39764ef8 34821#: doc/guix.texi:15798
b9fe8fd6
JL
34822msgid ""
34823"a special function to finish request & flush all data while continuing to do "
34824"something time-consuming (video converting, stats processing, etc.)"
34825msgstr ""
34826
34827#. type: Plain text
39764ef8 34828#: doc/guix.texi:15800
b9fe8fd6
JL
34829msgid "... and much more."
34830msgstr ""
34831
34832#. type: defvr
39764ef8 34833#: doc/guix.texi:15801
b9fe8fd6
JL
34834#, no-wrap
34835msgid "{Scheme Variable} php-fpm-service-type"
34836msgstr ""
34837
34838#. type: defvr
39764ef8 34839#: doc/guix.texi:15803
b9fe8fd6
JL
34840msgid "A Service type for @code{php-fpm}."
34841msgstr ""
34842
34843#. type: deftp
39764ef8 34844#: doc/guix.texi:15805
b9fe8fd6
JL
34845#, no-wrap
34846msgid "{Data Type} php-fpm-configuration"
34847msgstr ""
34848
34849#. type: deftp
39764ef8 34850#: doc/guix.texi:15807
b9fe8fd6
JL
34851msgid "Data Type for php-fpm service configuration."
34852msgstr ""
34853
34854#. type: item
39764ef8 34855#: doc/guix.texi:15808
b9fe8fd6
JL
34856#, no-wrap
34857msgid "@code{php} (default: @code{php})"
34858msgstr ""
34859
34860#. type: table
39764ef8 34861#: doc/guix.texi:15810
b9fe8fd6
JL
34862msgid "The php package to use."
34863msgstr ""
34864
34865#. type: item
39764ef8 34866#: doc/guix.texi:15810
b9fe8fd6 34867#, no-wrap
39764ef8 34868msgid "@code{socket} (default: @code{(string-append \"/var/run/php\" (version-major (package-version php)) \"-fpm.sock\")})"
b9fe8fd6
JL
34869msgstr ""
34870
34871#. type: table
39764ef8 34872#: doc/guix.texi:15812
b9fe8fd6
JL
34873msgid "The address on which to accept FastCGI requests. Valid syntaxes are:"
34874msgstr ""
34875
34876#. type: code{#1}
39764ef8 34877#: doc/guix.texi:15813
b9fe8fd6
JL
34878#, no-wrap
34879msgid "\"ip.add.re.ss:port\""
34880msgstr ""
34881
34882#. type: table
39764ef8 34883#: doc/guix.texi:15815
b9fe8fd6
JL
34884msgid "Listen on a TCP socket to a specific address on a specific port."
34885msgstr ""
34886
34887#. type: code{#1}
39764ef8 34888#: doc/guix.texi:15815
b9fe8fd6
JL
34889#, no-wrap
34890msgid "\"port\""
34891msgstr ""
34892
34893#. type: table
39764ef8 34894#: doc/guix.texi:15817
b9fe8fd6
JL
34895msgid "Listen on a TCP socket to all addresses on a specific port."
34896msgstr ""
34897
34898#. type: code{#1}
39764ef8 34899#: doc/guix.texi:15817
b9fe8fd6
JL
34900#, no-wrap
34901msgid "\"/path/to/unix/socket\""
34902msgstr ""
34903
34904#. type: table
39764ef8 34905#: doc/guix.texi:15819
b9fe8fd6
JL
34906msgid "Listen on a unix socket."
34907msgstr ""
34908
34909#. type: item
39764ef8 34910#: doc/guix.texi:15821
b9fe8fd6
JL
34911#, no-wrap
34912msgid "@code{user} (default: @code{php-fpm})"
34913msgstr ""
34914
34915#. type: table
39764ef8 34916#: doc/guix.texi:15823
b9fe8fd6
JL
34917msgid "User who will own the php worker processes."
34918msgstr ""
34919
34920#. type: item
39764ef8 34921#: doc/guix.texi:15823
b9fe8fd6
JL
34922#, no-wrap
34923msgid "@code{group} (default: @code{php-fpm})"
34924msgstr ""
34925
34926#. type: table
39764ef8 34927#: doc/guix.texi:15825
b9fe8fd6
JL
34928msgid "Group of the worker processes."
34929msgstr ""
34930
34931#. type: item
39764ef8 34932#: doc/guix.texi:15825
b9fe8fd6
JL
34933#, no-wrap
34934msgid "@code{socket-user} (default: @code{php-fpm})"
34935msgstr ""
34936
34937#. type: table
39764ef8 34938#: doc/guix.texi:15827
b9fe8fd6
JL
34939msgid "User who can speak to the php-fpm socket."
34940msgstr ""
34941
34942#. type: item
39764ef8 34943#: doc/guix.texi:15827
b9fe8fd6
JL
34944#, no-wrap
34945msgid "@code{socket-group} (default: @code{php-fpm})"
34946msgstr ""
34947
34948#. type: table
39764ef8 34949#: doc/guix.texi:15829
b9fe8fd6
JL
34950msgid "Group that can speak to the php-fpm socket."
34951msgstr ""
34952
34953#. type: item
39764ef8 34954#: doc/guix.texi:15829
b9fe8fd6 34955#, no-wrap
39764ef8 34956msgid "@code{pid-file} (default: @code{(string-append \"/var/run/php\" (version-major (package-version php)) \"-fpm.pid\")})"
b9fe8fd6
JL
34957msgstr ""
34958
34959#. type: table
39764ef8 34960#: doc/guix.texi:15832
b9fe8fd6
JL
34961msgid ""
34962"The process id of the php-fpm process is written to this file once the "
34963"service has started."
34964msgstr ""
34965
34966#. type: item
39764ef8 34967#: doc/guix.texi:15832
b9fe8fd6 34968#, no-wrap
39764ef8 34969msgid "@code{log-file} (default: @code{(string-append \"/var/log/php\" (version-major (package-version php)) \"-fpm.log\")})"
b9fe8fd6
JL
34970msgstr ""
34971
34972#. type: table
39764ef8 34973#: doc/guix.texi:15834
b9fe8fd6
JL
34974msgid "Log for the php-fpm master process."
34975msgstr ""
34976
34977#. type: item
39764ef8 34978#: doc/guix.texi:15834
b9fe8fd6 34979#, no-wrap
39764ef8 34980msgid "@code{process-manager} (default: @code{(php-fpm-dynamic-process-manager-configuration)})"
b9fe8fd6
JL
34981msgstr ""
34982
34983#. type: table
39764ef8 34984#: doc/guix.texi:15837
b9fe8fd6
JL
34985msgid "Detailed settings for the php-fpm process manager. Must be either:"
34986msgstr ""
34987
34988#. type: code{#1}
39764ef8 34989#: doc/guix.texi:15838
b9fe8fd6
JL
34990#, no-wrap
34991msgid "<php-fpm-dynamic-process-manager-configuration>"
34992msgstr ""
34993
34994#. type: code{#1}
39764ef8 34995#: doc/guix.texi:15839
b9fe8fd6
JL
34996#, no-wrap
34997msgid "<php-fpm-static-process-manager-configuration>"
34998msgstr ""
34999
35000#. type: code{#1}
39764ef8 35001#: doc/guix.texi:15840
b9fe8fd6
JL
35002#, no-wrap
35003msgid "<php-fpm-on-demand-process-manager-configuration>"
35004msgstr ""
35005
35006#. type: item
39764ef8 35007#: doc/guix.texi:15842
b9fe8fd6
JL
35008#, no-wrap
35009msgid "@code{display-errors} (default @code{#f})"
35010msgstr ""
35011
35012#. type: table
39764ef8 35013#: doc/guix.texi:15847
b9fe8fd6
JL
35014msgid ""
35015"Determines whether php errors and warning should be sent to clients and "
35016"displayed in their browsers. This is useful for local php development, but "
35017"a security risk for public sites, as error messages can reveal passwords and "
35018"personal data."
35019msgstr ""
35020
35021#. type: item
39764ef8 35022#: doc/guix.texi:15847
b9fe8fd6 35023#, no-wrap
39764ef8 35024msgid "@code{workers-logfile} (default @code{(string-append \"/var/log/php\" (version-major (package-version php)) \"-fpm.www.log\")})"
b9fe8fd6
JL
35025msgstr ""
35026
35027#. type: table
39764ef8 35028#: doc/guix.texi:15850
b9fe8fd6
JL
35029msgid ""
35030"This file will log the @code{stderr} outputs of php worker processes. Can "
35031"be set to @code{#f} to disable logging."
35032msgstr ""
35033
35034#. type: item
39764ef8 35035#: doc/guix.texi:15850
b9fe8fd6
JL
35036#, no-wrap
35037msgid "@code{file} (default @code{#f})"
35038msgstr ""
35039
35040#. type: table
39764ef8 35041#: doc/guix.texi:15853
b9fe8fd6
JL
35042msgid ""
35043"An optional override of the whole configuration. You can use the "
35044"@code{mixed-text-file} function or an absolute filepath for it."
35045msgstr ""
35046
35047#. type: deftp
39764ef8 35048#: doc/guix.texi:15856
b9fe8fd6
JL
35049#, no-wrap
35050msgid "{Data type} php-fpm-dynamic-process-manager-configuration"
35051msgstr ""
35052
35053#. type: deftp
39764ef8 35054#: doc/guix.texi:15860
b9fe8fd6
JL
35055msgid ""
35056"Data Type for the @code{dynamic} php-fpm process manager. With the "
35057"@code{dynamic} process manager, spare worker processes are kept around based "
35058"on it's configured limits."
35059msgstr ""
35060
35061#. type: item
39764ef8 35062#: doc/guix.texi:15861 doc/guix.texi:15877 doc/guix.texi:15887
b9fe8fd6
JL
35063#, no-wrap
35064msgid "@code{max-children} (default: @code{5})"
35065msgstr ""
35066
35067#. type: table
39764ef8 35068#: doc/guix.texi:15863 doc/guix.texi:15879 doc/guix.texi:15889
b9fe8fd6
JL
35069msgid "Maximum of worker processes."
35070msgstr ""
35071
35072#. type: item
39764ef8 35073#: doc/guix.texi:15863
b9fe8fd6
JL
35074#, no-wrap
35075msgid "@code{start-servers} (default: @code{2})"
35076msgstr ""
35077
35078#. type: table
39764ef8 35079#: doc/guix.texi:15865
b9fe8fd6
JL
35080msgid "How many worker processes should be started on start-up."
35081msgstr ""
35082
35083#. type: item
39764ef8 35084#: doc/guix.texi:15865
b9fe8fd6
JL
35085#, no-wrap
35086msgid "@code{min-spare-servers} (default: @code{1})"
35087msgstr ""
35088
35089#. type: table
39764ef8 35090#: doc/guix.texi:15867
b9fe8fd6
JL
35091msgid "How many spare worker processes should be kept around at minimum."
35092msgstr ""
35093
35094#. type: item
39764ef8 35095#: doc/guix.texi:15867
b9fe8fd6
JL
35096#, no-wrap
35097msgid "@code{max-spare-servers} (default: @code{3})"
35098msgstr ""
35099
35100#. type: table
39764ef8 35101#: doc/guix.texi:15869
b9fe8fd6
JL
35102msgid "How many spare worker processes should be kept around at maximum."
35103msgstr ""
35104
35105#. type: deftp
39764ef8 35106#: doc/guix.texi:15872
b9fe8fd6
JL
35107#, no-wrap
35108msgid "{Data type} php-fpm-static-process-manager-configuration"
35109msgstr ""
35110
35111#. type: deftp
39764ef8 35112#: doc/guix.texi:15876
b9fe8fd6
JL
35113msgid ""
35114"Data Type for the @code{static} php-fpm process manager. With the "
35115"@code{static} process manager, an unchanging number of worker processes are "
35116"created."
35117msgstr ""
35118
35119#. type: deftp
39764ef8 35120#: doc/guix.texi:15882
b9fe8fd6
JL
35121#, no-wrap
35122msgid "{Data type} php-fpm-on-demand-process-manager-configuration"
35123msgstr ""
35124
35125#. type: deftp
39764ef8 35126#: doc/guix.texi:15886
b9fe8fd6
JL
35127msgid ""
35128"Data Type for the @code{on-demand} php-fpm process manager. With the "
35129"@code{on-demand} process manager, worker processes are only created as "
35130"requests arrive."
35131msgstr ""
35132
35133#. type: item
39764ef8 35134#: doc/guix.texi:15889
b9fe8fd6
JL
35135#, no-wrap
35136msgid "@code{process-idle-timeout} (default: @code{10})"
35137msgstr ""
35138
35139#. type: table
39764ef8 35140#: doc/guix.texi:15891
b9fe8fd6
JL
35141msgid "The time in seconds after which a process with no requests is killed."
35142msgstr ""
35143
35144#. type: deffn
39764ef8 35145#: doc/guix.texi:15895
b9fe8fd6
JL
35146#, no-wrap
35147msgid "{Scheme Procedure} nginx-php-fpm-location @"
35148msgstr ""
35149
35150#. type: deffn
39764ef8 35151#: doc/guix.texi:15901
b9fe8fd6 35152msgid ""
39764ef8
JL
35153"[#:nginx-package nginx] @ [socket (string-append \"/var/run/php\" @ (version-"
35154"major (package-version php)) @ \"-fpm.sock\")] A helper function to quickly "
35155"add php to an @code{nginx-server-configuration}."
b9fe8fd6
JL
35156msgstr ""
35157
35158#. type: Plain text
39764ef8 35159#: doc/guix.texi:15904
b9fe8fd6
JL
35160msgid "A simple services setup for nginx with php can look like this:"
35161msgstr ""
35162
35163#. type: example
39764ef8 35164#: doc/guix.texi:15917
b9fe8fd6
JL
35165#, no-wrap
35166msgid ""
35167"(services (cons* (dhcp-client-service)\n"
35168" (service php-fpm-service-type)\n"
35169" (service nginx-service-type\n"
35170" (nginx-server-configuration\n"
35171" (server-name '(\"example.com\"))\n"
35172" (root \"/srv/http/\")\n"
35173" (locations\n"
35174" (list (nginx-php-location)))\n"
35175" (https-port #f)\n"
35176" (ssl-certificate #f)\n"
35177" (ssl-certificate-key #f)))\n"
35178" %base-services))\n"
35179msgstr ""
35180
35181#. type: cindex
39764ef8 35182#: doc/guix.texi:15919
b9fe8fd6
JL
35183#, no-wrap
35184msgid "cat-avatar-generator"
35185msgstr ""
35186
35187#. type: Plain text
39764ef8 35188#: doc/guix.texi:15923
b9fe8fd6 35189msgid ""
39764ef8
JL
35190"The cat avatar generator is a simple service to demonstrate the use of php-"
35191"fpm in @code{Nginx}. It is used to generate cat avatar from a seed, for "
b9fe8fd6
JL
35192"instance the hash of a user's email address."
35193msgstr ""
35194
35195#. type: deffn
39764ef8 35196#: doc/guix.texi:15924
b9fe8fd6
JL
35197#, no-wrap
35198msgid "{Scheme Procedure} cat-avatar-generator-serice @"
35199msgstr ""
35200
35201#. type: deffn
39764ef8 35202#: doc/guix.texi:15932
b9fe8fd6 35203msgid ""
39764ef8
JL
35204"[#:cache-dir \"/var/cache/cat-avatar-generator\"] @ [#:package cat-avatar-"
35205"generator] @ [#:configuration (nginx-server-configuration)] Returns an nginx-"
35206"server-configuration that inherits @code{configuration}. It extends the "
35207"nginx configuration to add a server block that serves @code{package}, a "
35208"version of cat-avatar-generator. During execution, cat-avatar-generator "
35209"will be able to use @code{cache-dir} as its cache directory."
b9fe8fd6
JL
35210msgstr ""
35211
35212#. type: Plain text
39764ef8 35213#: doc/guix.texi:15935
b9fe8fd6
JL
35214msgid "A simple setup for cat-avatar-generator can look like this:"
35215msgstr ""
35216
35217#. type: example
39764ef8 35218#: doc/guix.texi:15942
b9fe8fd6
JL
35219#, no-wrap
35220msgid ""
35221"(services (cons* (cat-avatar-generator-service\n"
35222" #:configuration\n"
35223" (nginx-server-configuration\n"
35224" (server-name '(\"example.com\"))))\n"
35225" ...\n"
35226" %base-services))\n"
35227msgstr ""
35228
35229#. type: cindex
39764ef8 35230#: doc/guix.texi:15947
b9fe8fd6
JL
35231#, no-wrap
35232msgid "Web"
35233msgstr ""
35234
35235#. type: cindex
39764ef8 35236#: doc/guix.texi:15948
b9fe8fd6
JL
35237#, no-wrap
35238msgid "HTTP, HTTPS"
35239msgstr ""
35240
35241#. type: cindex
39764ef8 35242#: doc/guix.texi:15949
b9fe8fd6
JL
35243#, no-wrap
35244msgid "Let's Encrypt"
35245msgstr ""
35246
35247#. type: cindex
39764ef8 35248#: doc/guix.texi:15950
b9fe8fd6
JL
35249#, no-wrap
35250msgid "TLS certificates"
35251msgstr ""
35252
35253#. type: Plain text
39764ef8 35254#: doc/guix.texi:15957
b9fe8fd6
JL
35255msgid ""
35256"The @code{(gnu services certbot)} module provides a service to automatically "
35257"obtain a valid TLS certificate from the Let's Encrypt certificate "
35258"authority. These certificates can then be used to serve content securely "
35259"over HTTPS or other TLS-based protocols, with the knowledge that the client "
35260"will be able to verify the server's authenticity."
35261msgstr ""
35262
35263#. type: Plain text
39764ef8 35264#: doc/guix.texi:15969
b9fe8fd6
JL
35265msgid ""
35266"@url{https://letsencrypt.org/, Let's Encrypt} provides the @code{certbot} "
35267"tool to automate the certification process. This tool first securely "
35268"generates a key on the server. It then makes a request to the Let's Encrypt "
35269"certificate authority (CA) to sign the key. The CA checks that the request "
35270"originates from the host in question by using a challenge-response protocol, "
35271"requiring the server to provide its response over HTTP. If that protocol "
35272"completes successfully, the CA signs the key, resulting in a certificate. "
35273"That certificate is valid for a limited period of time, and therefore to "
35274"continue to provide TLS services, the server needs to periodically ask the "
35275"CA to renew its signature."
35276msgstr ""
35277
35278#. type: Plain text
39764ef8 35279#: doc/guix.texi:15976
b9fe8fd6
JL
35280msgid ""
35281"The certbot service automates this process: the initial key generation, the "
35282"initial certification request to the Let's Encrypt service, the web server "
35283"challenge/response integration, writing the certificate to disk, the "
35284"automated periodic renewals, and the deployment tasks associated with the "
35285"renewal (e.g. reloading services, copying keys with different permissions)."
35286msgstr ""
35287
35288#. type: Plain text
39764ef8 35289#: doc/guix.texi:15982
b9fe8fd6
JL
35290msgid ""
35291"Certbot is run twice a day, at a random minute within the hour. It won't do "
35292"anything until your certificates are due for renewal or revoked, but running "
35293"it regularly would give your service a chance of staying online in case a "
35294"Let's Encrypt-initiated revocation happened for some reason."
35295msgstr ""
35296
35297#. type: Plain text
39764ef8 35298#: doc/guix.texi:15986
b9fe8fd6
JL
35299msgid ""
35300"By using this service, you agree to the ACME Subscriber Agreement, which can "
35301"be found there: @url{https://acme-v01.api.letsencrypt.org/directory}."
35302msgstr ""
35303
35304#. type: defvr
39764ef8 35305#: doc/guix.texi:15987
b9fe8fd6
JL
35306#, no-wrap
35307msgid "{Scheme Variable} certbot-service-type"
35308msgstr ""
35309
35310#. type: defvr
39764ef8 35311#: doc/guix.texi:15990
b9fe8fd6
JL
35312msgid ""
35313"A service type for the @code{certbot} Let's Encrypt client. Its value must "
35314"be a @code{certbot-configuration} record as in this example:"
35315msgstr ""
35316
35317#. type: example
39764ef8 35318#: doc/guix.texi:15997
b9fe8fd6
JL
35319#, no-wrap
35320msgid ""
35321"(define %nginx-deploy-hook\n"
35322" (program-file\n"
35323" \"nginx-deploy-hook\"\n"
35324" #~(let ((pid (call-with-input-file \"/var/run/nginx/pid\" read)))\n"
35325" (kill pid SIGHUP))))\n"
35326"\n"
35327msgstr ""
35328
35329#. type: example
39764ef8 35330#: doc/guix.texi:16008
b9fe8fd6
JL
35331#, no-wrap
35332msgid ""
35333"(service certbot-service-type\n"
35334" (certbot-configuration\n"
35335" (email \"foo@@example.net\")\n"
35336" (certificates\n"
35337" (list\n"
35338" (certificate-configuration\n"
35339" (domains '(\"example.net\" \"www.example.net\"))\n"
35340" (deploy-hook %nginx-deploy-hook))\n"
35341" (certificate-configuration\n"
35342" (domains '(\"bar.example.net\")))))))\n"
35343msgstr ""
35344
35345#. type: defvr
39764ef8 35346#: doc/guix.texi:16011
b9fe8fd6
JL
35347msgid "See below for details about @code{certbot-configuration}."
35348msgstr ""
35349
35350#. type: deftp
39764ef8 35351#: doc/guix.texi:16013
b9fe8fd6
JL
35352#, no-wrap
35353msgid "{Data Type} certbot-configuration"
35354msgstr ""
35355
35356#. type: deftp
39764ef8 35357#: doc/guix.texi:16016
b9fe8fd6
JL
35358msgid ""
35359"Data type representing the configuration of the @code{certbot} service. "
35360"This type has the following parameters:"
35361msgstr ""
35362
35363#. type: item
39764ef8 35364#: doc/guix.texi:16018
b9fe8fd6
JL
35365#, no-wrap
35366msgid "@code{package} (default: @code{certbot})"
35367msgstr ""
35368
35369#. type: table
39764ef8 35370#: doc/guix.texi:16020
b9fe8fd6
JL
35371msgid "The certbot package to use."
35372msgstr ""
35373
35374#. type: item
39764ef8 35375#: doc/guix.texi:16021
b9fe8fd6
JL
35376#, no-wrap
35377msgid "@code{webroot} (default: @code{/var/www})"
35378msgstr ""
35379
35380#. type: table
39764ef8 35381#: doc/guix.texi:16024
b9fe8fd6 35382msgid ""
39764ef8 35383"The directory from which to serve the Let's Encrypt challenge/response files."
b9fe8fd6
JL
35384msgstr ""
35385
35386#. type: item
39764ef8 35387#: doc/guix.texi:16025
b9fe8fd6
JL
35388#, no-wrap
35389msgid "@code{certificates} (default: @code{()})"
35390msgstr ""
35391
35392#. type: table
39764ef8 35393#: doc/guix.texi:16029
b9fe8fd6
JL
35394msgid ""
35395"A list of @code{certificates-configuration}s for which to generate "
35396"certificates and request signatures. Each certificate has a @code{name} and "
35397"several @code{domains}."
35398msgstr ""
35399
35400#. type: table
39764ef8 35401#: doc/guix.texi:16033
b9fe8fd6
JL
35402msgid ""
35403"Mandatory email used for registration, recovery contact, and important "
35404"account notifications."
35405msgstr ""
35406
35407#. type: item
39764ef8 35408#: doc/guix.texi:16034
b9fe8fd6
JL
35409#, no-wrap
35410msgid "@code{rsa-key-size} (default: @code{2048})"
35411msgstr ""
35412
35413#. type: table
39764ef8 35414#: doc/guix.texi:16036
b9fe8fd6
JL
35415msgid "Size of the RSA key."
35416msgstr ""
35417
35418#. type: item
39764ef8 35419#: doc/guix.texi:16037
b9fe8fd6
JL
35420#, no-wrap
35421msgid "@code{default-location} (default: @i{see below})"
35422msgstr ""
35423
35424#. type: table
39764ef8 35425#: doc/guix.texi:16046
b9fe8fd6
JL
35426msgid ""
35427"The default @code{nginx-location-configuration}. Because @code{certbot} "
35428"needs to be able to serve challenges and responses, it needs to be able to "
35429"run a web server. It does so by extending the @code{nginx} web service with "
35430"an @code{nginx-server-configuration} listening on the @var{domains} on port "
39764ef8
JL
35431"80, and which has a @code{nginx-location-configuration} for the @code{/.well-"
35432"known/} URI path subspace used by Let's Encrypt. @xref{Web Services}, for "
35433"more on these nginx configuration data types."
b9fe8fd6
JL
35434msgstr ""
35435
35436#. type: table
39764ef8 35437#: doc/guix.texi:16050
b9fe8fd6
JL
35438msgid ""
35439"Requests to other URL paths will be matched by the @code{default-location}, "
35440"which if present is added to all @code{nginx-server-configuration}s."
35441msgstr ""
35442
35443#. type: table
39764ef8 35444#: doc/guix.texi:16054
b9fe8fd6
JL
35445msgid ""
35446"By default, the @code{default-location} will issue a redirect from "
35447"@code{http://@var{domain}/...} to @code{https://@var{domain}/...}, leaving "
35448"you to define what to serve on your site via @code{https}."
35449msgstr ""
35450
35451#. type: table
39764ef8 35452#: doc/guix.texi:16056
b9fe8fd6
JL
35453msgid "Pass @code{#f} to not issue a default location."
35454msgstr ""
35455
35456#. type: deftp
39764ef8 35457#: doc/guix.texi:16059
b9fe8fd6
JL
35458#, no-wrap
35459msgid "{Data Type} certificate-configuration"
35460msgstr ""
35461
35462#. type: deftp
39764ef8 35463#: doc/guix.texi:16062
b9fe8fd6
JL
35464msgid ""
35465"Data type representing the configuration of a certificate. This type has "
35466"the following parameters:"
35467msgstr ""
35468
35469#. type: item
39764ef8 35470#: doc/guix.texi:16064
b9fe8fd6
JL
35471#, no-wrap
35472msgid "@code{name} (default: @i{see below})"
35473msgstr ""
35474
35475#. type: table
39764ef8 35476#: doc/guix.texi:16068
b9fe8fd6
JL
35477msgid ""
35478"This name is used by Certbot for housekeeping and in file paths; it doesn't "
35479"affect the content of the certificate itself. To see certificate names, run "
35480"@code{certbot certificates}."
35481msgstr ""
35482
35483#. type: table
39764ef8 35484#: doc/guix.texi:16070
b9fe8fd6
JL
35485msgid "Its default is the first provided domain."
35486msgstr ""
35487
35488#. type: item
39764ef8 35489#: doc/guix.texi:16071
b9fe8fd6
JL
35490#, no-wrap
35491msgid "@code{domains} (default: @code{()})"
35492msgstr ""
35493
35494#. type: table
39764ef8 35495#: doc/guix.texi:16074
b9fe8fd6
JL
35496msgid ""
35497"The first domain provided will be the subject CN of the certificate, and all "
35498"domains will be Subject Alternative Names on the certificate."
35499msgstr ""
35500
35501#. type: item
39764ef8 35502#: doc/guix.texi:16075
b9fe8fd6
JL
35503#, no-wrap
35504msgid "@code{deploy-hook} (default: @code{#f})"
35505msgstr ""
35506
35507#. type: table
39764ef8 35508#: doc/guix.texi:16083
b9fe8fd6
JL
35509msgid ""
35510"Command to be run in a shell once for each successfully issued certificate. "
35511"For this command, the shell variable @code{$RENEWED_LINEAGE} will point to "
39764ef8
JL
35512"the config live subdirectory (for example, @samp{\"/etc/letsencrypt/live/"
35513"example.com\"}) containing the new certificates and keys; the shell variable "
35514"@code{$RENEWED_DOMAINS} will contain a space-delimited list of renewed "
35515"certificate domains (for example, @samp{\"example.com www.example.com\"}."
b9fe8fd6
JL
35516msgstr ""
35517
35518#. type: Plain text
39764ef8 35519#: doc/guix.texi:16090
b9fe8fd6
JL
35520msgid ""
35521"For each @code{certificate-configuration}, the certificate is saved to "
35522"@code{/etc/letsencrypt/live/@var{name}/fullchain.pem} and the key is saved "
35523"to @code{/etc/letsencrypt/live/@var{name}/privkey.pem}."
35524msgstr ""
35525
35526#. type: cindex
39764ef8 35527#: doc/guix.texi:16092
b9fe8fd6
JL
35528#, no-wrap
35529msgid "DNS (domain name system)"
35530msgstr ""
35531
35532#. type: cindex
39764ef8 35533#: doc/guix.texi:16093
b9fe8fd6
JL
35534#, no-wrap
35535msgid "domain name system (DNS)"
35536msgstr ""
35537
35538#. type: Plain text
39764ef8 35539#: doc/guix.texi:16099
b9fe8fd6
JL
35540msgid ""
35541"The @code{(gnu services dns)} module provides services related to the "
35542"@dfn{domain name system} (DNS). It provides a server service for hosting an "
35543"@emph{authoritative} DNS server for multiple zones, slave or master. This "
35544"service uses @uref{https://www.knot-dns.cz/, Knot DNS}."
35545msgstr ""
35546
35547#. type: Plain text
39764ef8 35548#: doc/guix.texi:16102
b9fe8fd6
JL
35549msgid ""
35550"An example configuration of an authoritative server for two zones, one "
35551"master and one slave, is:"
35552msgstr ""
35553
35554#. type: lisp
39764ef8 35555#: doc/guix.texi:16109
b9fe8fd6
JL
35556#, no-wrap
35557msgid ""
35558"(define-zone-entries example.org.zone\n"
35559";; Name TTL Class Type Data\n"
35560" (\"@@\" \"\" \"IN\" \"A\" \"127.0.0.1\")\n"
35561" (\"@@\" \"\" \"IN\" \"NS\" \"ns\")\n"
35562" (\"ns\" \"\" \"IN\" \"A\" \"127.0.0.1\"))\n"
35563"\n"
35564msgstr ""
35565
35566#. type: lisp
39764ef8 35567#: doc/guix.texi:16116
b9fe8fd6
JL
35568#, no-wrap
35569msgid ""
35570"(define master-zone\n"
35571" (knot-zone-configuration\n"
35572" (domain \"example.org\")\n"
35573" (zone (zone-file\n"
35574" (origin \"example.org\")\n"
35575" (entries example.org.zone)))))\n"
35576"\n"
35577msgstr ""
35578
35579#. type: lisp
39764ef8 35580#: doc/guix.texi:16122
b9fe8fd6
JL
35581#, no-wrap
35582msgid ""
35583"(define slave-zone\n"
35584" (knot-zone-configuration\n"
35585" (domain \"plop.org\")\n"
35586" (dnssec-policy \"default\")\n"
35587" (master (list \"plop-master\"))))\n"
35588"\n"
35589msgstr ""
35590
35591#. type: lisp
39764ef8 35592#: doc/guix.texi:16127
b9fe8fd6
JL
35593#, no-wrap
35594msgid ""
35595"(define plop-master\n"
35596" (knot-remote-configuration\n"
35597" (id \"plop-master\")\n"
35598" (address (list \"208.76.58.171\"))))\n"
35599"\n"
35600msgstr ""
35601
35602#. type: lisp
39764ef8 35603#: doc/guix.texi:16136
b9fe8fd6
JL
35604#, no-wrap
35605msgid ""
35606"(operating-system\n"
35607" ;; ...\n"
35608" (services (cons* (service knot-service-type\n"
35609" (knot-configuration\n"
35610" (remotes (list plop-master))\n"
35611" (zones (list master-zone slave-zone))))\n"
35612" ;; ...\n"
35613" %base-services)))\n"
35614msgstr ""
35615
35616#. type: deffn
39764ef8 35617#: doc/guix.texi:16138
b9fe8fd6
JL
35618#, no-wrap
35619msgid "{Scheme Variable} knot-service-type"
35620msgstr ""
35621
35622#. type: deffn
39764ef8 35623#: doc/guix.texi:16140
b9fe8fd6
JL
35624msgid "This is the type for the Knot DNS server."
35625msgstr ""
35626
35627#. type: deffn
39764ef8 35628#: doc/guix.texi:16148
b9fe8fd6
JL
35629msgid ""
35630"Knot DNS is an authoritative DNS server, meaning that it can serve multiple "
35631"zones, that is to say domain names you would buy from a registrar. This "
35632"server is not a resolver, meaning that it can only resolve names for which "
35633"it is authoritative. This server can be configured to serve zones as a "
35634"master server or a slave server as a per-zone basis. Slave zones will get "
35635"their data from masters, and will serve it as an authoritative server. From "
35636"the point of view of a resolver, there is no difference between master and "
35637"slave."
35638msgstr ""
35639
35640#. type: deffn
39764ef8 35641#: doc/guix.texi:16150
b9fe8fd6
JL
35642msgid "The following data types are used to configure the Knot DNS server:"
35643msgstr ""
35644
35645#. type: deftp
39764ef8 35646#: doc/guix.texi:16152
b9fe8fd6
JL
35647#, no-wrap
35648msgid "{Data Type} knot-key-configuration"
35649msgstr ""
35650
35651#. type: deftp
39764ef8 35652#: doc/guix.texi:16155
b9fe8fd6
JL
35653msgid "Data type representing a key. This type has the following parameters:"
35654msgstr ""
35655
35656#. type: item
39764ef8
JL
35657#: doc/guix.texi:16157 doc/guix.texi:16177 doc/guix.texi:16292
35658#: doc/guix.texi:16318 doc/guix.texi:16353
b9fe8fd6
JL
35659#, no-wrap
35660msgid "@code{id} (default: @code{\"\"})"
35661msgstr ""
35662
35663#. type: table
39764ef8 35664#: doc/guix.texi:16160
b9fe8fd6
JL
35665msgid ""
35666"An identifier for other configuration fields to refer to this key. IDs must "
35667"be unique and must not be empty."
35668msgstr ""
35669
35670#. type: item
39764ef8 35671#: doc/guix.texi:16161
b9fe8fd6
JL
35672#, no-wrap
35673msgid "@code{algorithm} (default: @code{#f})"
35674msgstr ""
35675
35676#. type: table
39764ef8 35677#: doc/guix.texi:16165
b9fe8fd6
JL
35678msgid ""
35679"The algorithm to use. Choose between @code{#f}, @code{'hmac-md5}, "
39764ef8
JL
35680"@code{'hmac-sha1}, @code{'hmac-sha224}, @code{'hmac-sha256}, @code{'hmac-"
35681"sha384} and @code{'hmac-sha512}."
b9fe8fd6
JL
35682msgstr ""
35683
35684#. type: item
39764ef8 35685#: doc/guix.texi:16166
b9fe8fd6
JL
35686#, no-wrap
35687msgid "@code{secret} (default: @code{\"\"})"
35688msgstr ""
35689
35690#. type: table
39764ef8 35691#: doc/guix.texi:16168
b9fe8fd6
JL
35692msgid "The secret key itself."
35693msgstr ""
35694
35695#. type: deftp
39764ef8 35696#: doc/guix.texi:16172
b9fe8fd6
JL
35697#, no-wrap
35698msgid "{Data Type} knot-acl-configuration"
35699msgstr ""
35700
35701#. type: deftp
39764ef8 35702#: doc/guix.texi:16175
b9fe8fd6
JL
35703msgid ""
35704"Data type representing an Access Control List (ACL) configuration. This "
35705"type has the following parameters:"
35706msgstr ""
35707
35708#. type: table
39764ef8 35709#: doc/guix.texi:16180
b9fe8fd6
JL
35710msgid ""
35711"An identifier for ether configuration fields to refer to this key. IDs must "
35712"be unique and must not be empty."
35713msgstr ""
35714
35715#. type: item
39764ef8 35716#: doc/guix.texi:16181 doc/guix.texi:16296
b9fe8fd6
JL
35717#, no-wrap
35718msgid "@code{address} (default: @code{'()})"
35719msgstr ""
35720
35721#. type: table
39764ef8 35722#: doc/guix.texi:16185
b9fe8fd6
JL
35723msgid ""
35724"An ordered list of IP addresses, network subnets, or network ranges "
35725"represented with strings. The query must match one of them. Empty value "
35726"means that address match is not required."
35727msgstr ""
35728
35729#. type: item
39764ef8 35730#: doc/guix.texi:16186
b9fe8fd6
JL
35731#, no-wrap
35732msgid "@code{key} (default: @code{'()})"
35733msgstr ""
35734
35735#. type: table
39764ef8 35736#: doc/guix.texi:16190
b9fe8fd6
JL
35737msgid ""
35738"An ordered list of references to keys represented with strings. The string "
35739"must match a key ID defined in a @code{knot-key-configuration}. No key "
35740"means that a key is not require to match that ACL."
35741msgstr ""
35742
35743#. type: item
39764ef8 35744#: doc/guix.texi:16191
b9fe8fd6
JL
35745#, no-wrap
35746msgid "@code{action} (default: @code{'()})"
35747msgstr ""
35748
35749#. type: table
39764ef8 35750#: doc/guix.texi:16195
b9fe8fd6
JL
35751msgid ""
35752"An ordered list of actions that are permitted or forbidden by this ACL. "
35753"Possible values are lists of zero or more elements from @code{'transfer}, "
35754"@code{'notify} and @code{'update}."
35755msgstr ""
35756
35757#. type: item
39764ef8 35758#: doc/guix.texi:16196
b9fe8fd6
JL
35759#, no-wrap
35760msgid "@code{deny?} (default: @code{#f})"
35761msgstr ""
35762
35763#. type: table
39764ef8 35764#: doc/guix.texi:16199
b9fe8fd6
JL
35765msgid ""
35766"When true, the ACL defines restrictions. Listed actions are forbidden. "
35767"When false, listed actions are allowed."
35768msgstr ""
35769
35770#. type: deftp
39764ef8 35771#: doc/guix.texi:16203
b9fe8fd6
JL
35772#, no-wrap
35773msgid "{Data Type} zone-entry"
35774msgstr ""
35775
35776#. type: deftp
39764ef8 35777#: doc/guix.texi:16206
b9fe8fd6
JL
35778msgid ""
35779"Data type represnting a record entry in a zone file. This type has the "
35780"following parameters:"
35781msgstr ""
35782
35783#. type: item
39764ef8 35784#: doc/guix.texi:16208
b9fe8fd6
JL
35785#, no-wrap
35786msgid "@code{name} (default: @code{\"@@\"})"
35787msgstr ""
35788
35789#. type: table
39764ef8 35790#: doc/guix.texi:16214
b9fe8fd6
JL
35791msgid ""
35792"The name of the record. @code{\"@@\"} refers to the origin of the zone. "
35793"Names are relative to the origin of the zone. For example, in the "
35794"@code{example.org} zone, @code{\"ns.example.org\"} actually refers to "
35795"@code{ns.example.org.example.org}. Names ending with a dot are absolute, "
35796"which means that @code{\"ns.example.org.\"} refers to @code{ns.example.org}."
35797msgstr ""
35798
35799#. type: item
39764ef8 35800#: doc/guix.texi:16215
b9fe8fd6
JL
35801#, no-wrap
35802msgid "@code{ttl} (default: @code{\"\"})"
35803msgstr ""
35804
35805#. type: table
39764ef8
JL
35806#: doc/guix.texi:16217
35807msgid ""
35808"The Time-To-Live (TTL) of this record. If not set, the default TTL is used."
b9fe8fd6
JL
35809msgstr ""
35810
35811#. type: item
39764ef8 35812#: doc/guix.texi:16218
b9fe8fd6
JL
35813#, no-wrap
35814msgid "@code{class} (default: @code{\"IN\"})"
35815msgstr ""
35816
35817#. type: table
39764ef8 35818#: doc/guix.texi:16221
b9fe8fd6
JL
35819msgid ""
35820"The class of the record. Knot currently supports only @code{\"IN\"} and "
35821"partially @code{\"CH\"}."
35822msgstr ""
35823
35824#. type: item
39764ef8 35825#: doc/guix.texi:16222
b9fe8fd6
JL
35826#, no-wrap
35827msgid "@code{type} (default: @code{\"A\"})"
35828msgstr ""
35829
35830#. type: table
39764ef8 35831#: doc/guix.texi:16226
b9fe8fd6
JL
35832msgid ""
35833"The type of the record. Common types include A (IPv4 address), AAAA (IPv6 "
35834"address), NS (Name Server) and MX (Mail eXchange). Many other types are "
35835"defined."
35836msgstr ""
35837
35838#. type: item
39764ef8 35839#: doc/guix.texi:16227
b9fe8fd6
JL
35840#, no-wrap
35841msgid "@code{data} (default: @code{\"\"})"
35842msgstr ""
35843
35844#. type: table
39764ef8 35845#: doc/guix.texi:16231
b9fe8fd6
JL
35846msgid ""
35847"The data contained in the record. For instance an IP address associated "
35848"with an A record, or a domain name associated with an NS record. Remember "
35849"that domain names are relative to the origin unless they end with a dot."
35850msgstr ""
35851
35852#. type: deftp
39764ef8 35853#: doc/guix.texi:16235
b9fe8fd6
JL
35854#, no-wrap
35855msgid "{Data Type} zone-file"
35856msgstr ""
35857
35858#. type: deftp
39764ef8 35859#: doc/guix.texi:16238
b9fe8fd6
JL
35860msgid ""
35861"Data type representing the content of a zone file. This type has the "
35862"following parameters:"
35863msgstr ""
35864
35865#. type: table
39764ef8 35866#: doc/guix.texi:16247
b9fe8fd6
JL
35867msgid ""
35868"The list of entries. The SOA record is taken care of, so you don't need to "
35869"put it in the list of entries. This list should probably contain an entry "
35870"for your primary authoritative DNS server. Other than using a list of "
35871"entries directly, you can use @code{define-zone-entries} to define a object "
35872"containing the list of entries more easily, that you can later pass to the "
35873"@code{entries} field of the @code{zone-file}."
35874msgstr ""
35875
35876#. type: item
39764ef8 35877#: doc/guix.texi:16248
b9fe8fd6
JL
35878#, no-wrap
35879msgid "@code{origin} (default: @code{\"\"})"
35880msgstr ""
35881
35882#. type: table
39764ef8 35883#: doc/guix.texi:16250
b9fe8fd6
JL
35884msgid "The name of your zone. This parameter cannot be empty."
35885msgstr ""
35886
35887#. type: item
39764ef8 35888#: doc/guix.texi:16251
b9fe8fd6
JL
35889#, no-wrap
35890msgid "@code{ns} (default: @code{\"ns\"})"
35891msgstr ""
35892
35893#. type: table
39764ef8 35894#: doc/guix.texi:16256
b9fe8fd6
JL
35895msgid ""
35896"The domain of your primary authoritative DNS server. The name is relative "
35897"to the origin, unless it ends with a dot. It is mandatory that this primary "
35898"DNS server corresponds to an NS record in the zone and that it is associated "
35899"to an IP address in the list of entries."
35900msgstr ""
35901
35902#. type: item
39764ef8 35903#: doc/guix.texi:16257
b9fe8fd6
JL
35904#, no-wrap
35905msgid "@code{mail} (default: @code{\"hostmaster\"})"
35906msgstr ""
35907
35908#. type: table
39764ef8 35909#: doc/guix.texi:16260
b9fe8fd6
JL
35910msgid ""
35911"An email address people can contact you at, as the owner of the zone. This "
35912"is translated as @code{<mail>@@<origin>}."
35913msgstr ""
35914
35915#. type: item
39764ef8 35916#: doc/guix.texi:16261
b9fe8fd6
JL
35917#, no-wrap
35918msgid "@code{serial} (default: @code{1})"
35919msgstr ""
35920
35921#. type: table
39764ef8 35922#: doc/guix.texi:16265
b9fe8fd6
JL
35923msgid ""
35924"The serial number of the zone. As this is used to keep track of changes by "
35925"both slaves and resolvers, it is mandatory that it @emph{never} decreases. "
35926"Always increment it when you make a change in your zone."
35927msgstr ""
35928
35929#. type: item
39764ef8 35930#: doc/guix.texi:16266
b9fe8fd6
JL
35931#, no-wrap
35932msgid "@code{refresh} (default: @code{(* 2 24 3600)})"
35933msgstr ""
35934
35935#. type: table
39764ef8 35936#: doc/guix.texi:16270
b9fe8fd6
JL
35937msgid ""
35938"The frequency at which slaves will do a zone transfer. This value is a "
35939"number of seconds. It can be computed by multiplications or with "
35940"@code{(string->duration)}."
35941msgstr ""
35942
35943#. type: item
39764ef8 35944#: doc/guix.texi:16271
b9fe8fd6
JL
35945#, no-wrap
35946msgid "@code{retry} (default: @code{(* 15 60)})"
35947msgstr ""
35948
35949#. type: table
39764ef8 35950#: doc/guix.texi:16274
b9fe8fd6
JL
35951msgid ""
35952"The period after which a slave will retry to contact its master when it "
35953"fails to do so a first time."
35954msgstr ""
35955
35956#. type: item
39764ef8 35957#: doc/guix.texi:16275
b9fe8fd6
JL
35958#, no-wrap
35959msgid "@code{expiry} (default: @code{(* 14 24 3600)})"
35960msgstr ""
35961
35962#. type: table
39764ef8 35963#: doc/guix.texi:16279
b9fe8fd6
JL
35964msgid ""
35965"Default TTL of records. Existing records are considered correct for at most "
35966"this amount of time. After this period, resolvers will invalidate their "
35967"cache and check again that it still exists."
35968msgstr ""
35969
35970#. type: item
39764ef8 35971#: doc/guix.texi:16280
b9fe8fd6
JL
35972#, no-wrap
35973msgid "@code{nx} (default: @code{3600})"
35974msgstr ""
35975
35976#. type: table
39764ef8 35977#: doc/guix.texi:16283
b9fe8fd6
JL
35978msgid ""
35979"Default TTL of inexistant records. This delay is usually short because you "
35980"want your new domains to reach everyone quickly."
35981msgstr ""
35982
35983#. type: deftp
39764ef8 35984#: doc/guix.texi:16287
b9fe8fd6
JL
35985#, no-wrap
35986msgid "{Data Type} knot-remote-configuration"
35987msgstr ""
35988
35989#. type: deftp
39764ef8 35990#: doc/guix.texi:16290
b9fe8fd6
JL
35991msgid ""
35992"Data type representing a remote configuration. This type has the following "
35993"parameters:"
35994msgstr ""
35995
35996#. type: table
39764ef8 35997#: doc/guix.texi:16295
b9fe8fd6
JL
35998msgid ""
35999"An identifier for other configuration fields to refer to this remote. IDs "
36000"must be unique and must not be empty."
36001msgstr ""
36002
36003#. type: table
39764ef8 36004#: doc/guix.texi:16300
b9fe8fd6
JL
36005msgid ""
36006"An ordered list of destination IP addresses. Addresses are tried in "
36007"sequence. An optional port can be given with the @@ separator. For "
36008"instance: @code{(list \"1.2.3.4\" \"2.3.4.5@@53\")}. Default port is 53."
36009msgstr ""
36010
36011#. type: item
39764ef8 36012#: doc/guix.texi:16301
b9fe8fd6
JL
36013#, no-wrap
36014msgid "@code{via} (default: @code{'()})"
36015msgstr ""
36016
36017#. type: table
39764ef8 36018#: doc/guix.texi:16305
b9fe8fd6
JL
36019msgid ""
36020"An ordered list of source IP addresses. An empty list will have Knot choose "
36021"an appropriate source IP. An optional port can be given with the @@ "
36022"separator. The default is to choose at random."
36023msgstr ""
36024
36025#. type: item
39764ef8 36026#: doc/guix.texi:16306
b9fe8fd6
JL
36027#, no-wrap
36028msgid "@code{key} (default: @code{#f})"
36029msgstr ""
36030
36031#. type: table
39764ef8 36032#: doc/guix.texi:16309
b9fe8fd6
JL
36033msgid ""
36034"A reference to a key, that is a string containing the identifier of a key "
36035"defined in a @code{knot-key-configuration} field."
36036msgstr ""
36037
36038#. type: deftp
39764ef8 36039#: doc/guix.texi:16313
b9fe8fd6
JL
36040#, no-wrap
36041msgid "{Data Type} knot-keystore-configuration"
36042msgstr ""
36043
36044#. type: deftp
39764ef8 36045#: doc/guix.texi:16316
b9fe8fd6
JL
36046msgid ""
36047"Data type representing a keystore to hold dnssec keys. This type has the "
36048"following parameters:"
36049msgstr ""
36050
36051#. type: table
39764ef8 36052#: doc/guix.texi:16320
b9fe8fd6
JL
36053msgid "The id of the keystore. It must not be empty."
36054msgstr ""
36055
36056#. type: item
39764ef8 36057#: doc/guix.texi:16321
b9fe8fd6
JL
36058#, no-wrap
36059msgid "@code{backend} (default: @code{'pem})"
36060msgstr ""
36061
36062#. type: table
39764ef8
JL
36063#: doc/guix.texi:16323
36064msgid ""
36065"The backend to store the keys in. Can be @code{'pem} or @code{'pkcs11}."
b9fe8fd6
JL
36066msgstr ""
36067
36068#. type: item
39764ef8 36069#: doc/guix.texi:16324
b9fe8fd6
JL
36070#, no-wrap
36071msgid "@code{config} (default: @code{\"/var/lib/knot/keys/keys\"})"
36072msgstr ""
36073
36074#. type: table
39764ef8 36075#: doc/guix.texi:16328
b9fe8fd6
JL
36076msgid ""
36077"The configuration string of the backend. An example for the PKCS#11 is: "
39764ef8
JL
36078"@code{\"pkcs11:token=knot;pin-value=1234 /gnu/store/.../lib/pkcs11/"
36079"libsofthsm2.so\"}. For the pem backend, the string reprensents a path in "
36080"the file system."
b9fe8fd6
JL
36081msgstr ""
36082
36083#. type: deftp
39764ef8 36084#: doc/guix.texi:16332
b9fe8fd6
JL
36085#, no-wrap
36086msgid "{Data Type} knot-policy-configuration"
36087msgstr ""
36088
36089#. type: deftp
39764ef8 36090#: doc/guix.texi:16336
b9fe8fd6
JL
36091msgid ""
36092"Data type representing a dnssec policy. Knot DNS is able to automatically "
36093"sign your zones. It can either generate and manage your keys automatically "
36094"or use keys that you generate."
36095msgstr ""
36096
36097#. type: deftp
39764ef8 36098#: doc/guix.texi:16343
b9fe8fd6
JL
36099msgid ""
36100"Dnssec is usually implemented using two keys: a Key Signing Key (KSK) that "
36101"is used to sign the second, and a Zone Signing Key (ZSK) that is used to "
36102"sign the zone. In order to be trusted, the KSK needs to be present in the "
36103"parent zone (usually a top-level domain). If your registrar supports "
36104"dnssec, you will have to send them your KSK's hash so they can add a DS "
36105"record in their zone. This is not automated and need to be done each time "
36106"you change your KSK."
36107msgstr ""
36108
36109#. type: deftp
39764ef8 36110#: doc/guix.texi:16349
b9fe8fd6
JL
36111msgid ""
36112"The policy also defines the lifetime of keys. Usually, ZSK can be changed "
36113"easily and use weaker cryptographic functions (they use lower parameters) in "
36114"order to sign records quickly, so they are changed often. The KSK however "
36115"requires manual interaction with the registrar, so they are changed less "
36116"often and use stronger parameters because they sign only one record."
36117msgstr ""
36118
36119#. type: deftp
39764ef8 36120#: doc/guix.texi:16351
b9fe8fd6
JL
36121msgid "This type has the following parameters:"
36122msgstr ""
36123
36124#. type: table
39764ef8 36125#: doc/guix.texi:16355
b9fe8fd6
JL
36126msgid "The id of the policy. It must not be empty."
36127msgstr ""
36128
36129#. type: item
39764ef8 36130#: doc/guix.texi:16356
b9fe8fd6
JL
36131#, no-wrap
36132msgid "@code{keystore} (default: @code{\"default\"})"
36133msgstr ""
36134
36135#. type: table
39764ef8 36136#: doc/guix.texi:16361
b9fe8fd6
JL
36137msgid ""
36138"A reference to a keystore, that is a string containing the identifier of a "
36139"keystore defined in a @code{knot-keystore-configuration} field. The "
36140"@code{\"default\"} identifier means the default keystore (a kasp database "
36141"that was setup by this service)."
36142msgstr ""
36143
36144#. type: item
39764ef8 36145#: doc/guix.texi:16362
b9fe8fd6
JL
36146#, no-wrap
36147msgid "@code{manual?} (default: @code{#f})"
36148msgstr ""
36149
36150#. type: table
39764ef8 36151#: doc/guix.texi:16364
b9fe8fd6
JL
36152msgid "Whether the key management is manual or automatic."
36153msgstr ""
36154
36155#. type: item
39764ef8 36156#: doc/guix.texi:16365
b9fe8fd6
JL
36157#, no-wrap
36158msgid "@code{single-type-signing?} (default: @code{#f})"
36159msgstr ""
36160
36161#. type: table
39764ef8 36162#: doc/guix.texi:16367
b9fe8fd6
JL
36163msgid "When @code{#t}, use the Single-Type Signing Scheme."
36164msgstr ""
36165
36166#. type: item
39764ef8 36167#: doc/guix.texi:16368
b9fe8fd6
JL
36168#, no-wrap
36169msgid "@code{algorithm} (default: @code{\"ecdsap256sha256\"})"
36170msgstr ""
36171
36172#. type: table
39764ef8 36173#: doc/guix.texi:16370
b9fe8fd6
JL
36174msgid "An algorithm of signing keys and issued signatures."
36175msgstr ""
36176
36177#. type: item
39764ef8 36178#: doc/guix.texi:16371
b9fe8fd6
JL
36179#, no-wrap
36180msgid "@code{ksk-size} (default: @code{256})"
36181msgstr ""
36182
36183#. type: table
39764ef8 36184#: doc/guix.texi:16374
b9fe8fd6
JL
36185msgid ""
36186"The length of the KSK. Note that this value is correct for the default "
36187"algorithm, but would be unsecure for other algorithms."
36188msgstr ""
36189
36190#. type: item
39764ef8 36191#: doc/guix.texi:16375
b9fe8fd6
JL
36192#, no-wrap
36193msgid "@code{zsk-size} (default: @code{256})"
36194msgstr ""
36195
36196#. type: table
39764ef8 36197#: doc/guix.texi:16378
b9fe8fd6
JL
36198msgid ""
36199"The length of the ZSK. Note that this value is correct for the default "
36200"algorithm, but would be unsecure for other algorithms."
36201msgstr ""
36202
36203#. type: item
39764ef8 36204#: doc/guix.texi:16379
b9fe8fd6
JL
36205#, no-wrap
36206msgid "@code{dnskey-ttl} (default: @code{'default})"
36207msgstr ""
36208
36209#. type: table
39764ef8 36210#: doc/guix.texi:16382
b9fe8fd6
JL
36211msgid ""
36212"The TTL value for DNSKEY records added into zone apex. The special "
36213"@code{'default} value means same as the zone SOA TTL."
36214msgstr ""
36215
36216#. type: item
39764ef8 36217#: doc/guix.texi:16383
b9fe8fd6
JL
36218#, no-wrap
36219msgid "@code{zsk-lifetime} (default: @code{(* 30 24 3600)})"
36220msgstr ""
36221
36222#. type: table
39764ef8 36223#: doc/guix.texi:16385
b9fe8fd6
JL
36224msgid "The period between ZSK publication and the next rollover initiation."
36225msgstr ""
36226
36227#. type: item
39764ef8 36228#: doc/guix.texi:16386
b9fe8fd6
JL
36229#, no-wrap
36230msgid "@code{propagation-delay} (default: @code{(* 24 3600)})"
36231msgstr ""
36232
36233#. type: table
39764ef8 36234#: doc/guix.texi:16389
b9fe8fd6
JL
36235msgid ""
36236"An extra delay added for each key rollover step. This value should be high "
36237"enough to cover propagation of data from the master server to all slaves."
36238msgstr ""
36239
36240#. type: item
39764ef8 36241#: doc/guix.texi:16390
b9fe8fd6
JL
36242#, no-wrap
36243msgid "@code{rrsig-lifetime} (default: @code{(* 14 24 3600)})"
36244msgstr ""
36245
36246#. type: table
39764ef8 36247#: doc/guix.texi:16392
b9fe8fd6
JL
36248msgid "A validity period of newly issued signatures."
36249msgstr ""
36250
36251#. type: item
39764ef8 36252#: doc/guix.texi:16393
b9fe8fd6
JL
36253#, no-wrap
36254msgid "@code{rrsig-refresh} (default: @code{(* 7 24 3600)})"
36255msgstr ""
36256
36257#. type: table
39764ef8 36258#: doc/guix.texi:16395
b9fe8fd6
JL
36259msgid ""
36260"A period how long before a signature expiration the signature will be "
36261"refreshed."
36262msgstr ""
36263
36264#. type: item
39764ef8 36265#: doc/guix.texi:16396
b9fe8fd6
JL
36266#, no-wrap
36267msgid "@code{nsec3?} (default: @code{#f})"
36268msgstr ""
36269
36270#. type: table
39764ef8 36271#: doc/guix.texi:16398
b9fe8fd6
JL
36272msgid "When @code{#t}, NSEC3 will be used instead of NSEC."
36273msgstr ""
36274
36275#. type: item
39764ef8 36276#: doc/guix.texi:16399
b9fe8fd6
JL
36277#, no-wrap
36278msgid "@code{nsec3-iterations} (default: @code{5})"
36279msgstr ""
36280
36281#. type: table
39764ef8 36282#: doc/guix.texi:16401
b9fe8fd6
JL
36283msgid "The number of additional times the hashing is performed."
36284msgstr ""
36285
36286#. type: item
39764ef8 36287#: doc/guix.texi:16402
b9fe8fd6
JL
36288#, no-wrap
36289msgid "@code{nsec3-salt-length} (default: @code{8})"
36290msgstr ""
36291
36292#. type: table
39764ef8 36293#: doc/guix.texi:16405
b9fe8fd6
JL
36294msgid ""
36295"The length of a salt field in octets, which is appended to the original "
36296"owner name before hashing."
36297msgstr ""
36298
36299#. type: item
39764ef8 36300#: doc/guix.texi:16406
b9fe8fd6
JL
36301#, no-wrap
36302msgid "@code{nsec3-salt-lifetime} (default: @code{(* 30 24 3600)})"
36303msgstr ""
36304
36305#. type: table
39764ef8 36306#: doc/guix.texi:16408
b9fe8fd6
JL
36307msgid "The validity period of newly issued salt field."
36308msgstr ""
36309
36310#. type: deftp
39764ef8 36311#: doc/guix.texi:16412
b9fe8fd6
JL
36312#, no-wrap
36313msgid "{Data Type} knot-zone-configuration"
36314msgstr ""
36315
36316#. type: deftp
39764ef8 36317#: doc/guix.texi:16415
b9fe8fd6
JL
36318msgid ""
36319"Data type representing a zone served by Knot. This type has the following "
36320"parameters:"
36321msgstr ""
36322
36323#. type: item
39764ef8 36324#: doc/guix.texi:16417
b9fe8fd6
JL
36325#, no-wrap
36326msgid "@code{domain} (default: @code{\"\"})"
36327msgstr ""
36328
36329#. type: table
39764ef8 36330#: doc/guix.texi:16419
b9fe8fd6
JL
36331msgid "The domain served by this configuration. It must not be empty."
36332msgstr ""
36333
36334#. type: item
39764ef8 36335#: doc/guix.texi:16420
b9fe8fd6
JL
36336#, no-wrap
36337msgid "@code{file} (default: @code{\"\"})"
36338msgstr ""
36339
36340#. type: table
39764ef8 36341#: doc/guix.texi:16423
b9fe8fd6
JL
36342msgid ""
36343"The file where this zone is saved. This parameter is ignored by master "
36344"zones. Empty means default location that depends on the domain name."
36345msgstr ""
36346
36347#. type: item
39764ef8 36348#: doc/guix.texi:16424
b9fe8fd6
JL
36349#, no-wrap
36350msgid "@code{zone} (default: @code{(zone-file)})"
36351msgstr ""
36352
36353#. type: table
39764ef8 36354#: doc/guix.texi:16427
b9fe8fd6
JL
36355msgid ""
36356"The content of the zone file. This parameter is ignored by slave zones. It "
36357"must contain a zone-file record."
36358msgstr ""
36359
36360#. type: item
39764ef8 36361#: doc/guix.texi:16428
b9fe8fd6
JL
36362#, no-wrap
36363msgid "@code{master} (default: @code{'()})"
36364msgstr ""
36365
36366#. type: table
39764ef8 36367#: doc/guix.texi:16431
b9fe8fd6
JL
36368msgid ""
36369"A list of master remotes. When empty, this zone is a master. When set, "
36370"this zone is a slave. This is a list of remotes identifiers."
36371msgstr ""
36372
36373#. type: item
39764ef8 36374#: doc/guix.texi:16432
b9fe8fd6
JL
36375#, no-wrap
36376msgid "@code{ddns-master} (default: @code{#f})"
36377msgstr ""
36378
36379#. type: table
39764ef8 36380#: doc/guix.texi:16435
b9fe8fd6
JL
36381msgid ""
36382"The main master. When empty, it defaults to the first master in the list of "
36383"masters."
36384msgstr ""
36385
36386#. type: item
39764ef8 36387#: doc/guix.texi:16436
b9fe8fd6
JL
36388#, no-wrap
36389msgid "@code{notify} (default: @code{'()})"
36390msgstr ""
36391
36392#. type: table
39764ef8 36393#: doc/guix.texi:16438
b9fe8fd6
JL
36394msgid "A list of slave remote identifiers."
36395msgstr ""
36396
36397#. type: item
39764ef8 36398#: doc/guix.texi:16439
b9fe8fd6
JL
36399#, no-wrap
36400msgid "@code{acl} (default: @code{'()})"
36401msgstr ""
36402
36403#. type: table
39764ef8 36404#: doc/guix.texi:16441
b9fe8fd6
JL
36405msgid "A list of acl identifiers."
36406msgstr ""
36407
36408#. type: item
39764ef8 36409#: doc/guix.texi:16442
b9fe8fd6
JL
36410#, no-wrap
36411msgid "@code{semantic-checks?} (default: @code{#f})"
36412msgstr ""
36413
36414#. type: table
39764ef8 36415#: doc/guix.texi:16444
b9fe8fd6
JL
36416msgid "When set, this adds more semantic checks to the zone."
36417msgstr ""
36418
36419#. type: item
39764ef8 36420#: doc/guix.texi:16445
b9fe8fd6
JL
36421#, no-wrap
36422msgid "@code{disable-any?} (default: @code{#f})"
36423msgstr ""
36424
36425#. type: table
39764ef8 36426#: doc/guix.texi:16447
b9fe8fd6
JL
36427msgid "When set, this forbids queries of the ANY type."
36428msgstr ""
36429
36430#. type: item
39764ef8 36431#: doc/guix.texi:16448
b9fe8fd6
JL
36432#, no-wrap
36433msgid "@code{zonefile-sync} (default: @code{0})"
36434msgstr ""
36435
36436#. type: table
39764ef8 36437#: doc/guix.texi:16451
b9fe8fd6
JL
36438msgid ""
36439"The delay between a modification in memory and on disk. 0 means immediate "
36440"synchronization."
36441msgstr ""
36442
36443#. type: item
39764ef8 36444#: doc/guix.texi:16452
b9fe8fd6
JL
36445#, no-wrap
36446msgid "@code{serial-policy} (default: @code{'increment})"
36447msgstr ""
36448
36449#. type: table
39764ef8 36450#: doc/guix.texi:16454
b9fe8fd6
JL
36451msgid "A policy between @code{'increment} and @code{'unixtime}."
36452msgstr ""
36453
36454#. type: deftp
39764ef8 36455#: doc/guix.texi:16458
b9fe8fd6
JL
36456#, no-wrap
36457msgid "{Data Type} knot-configuration"
36458msgstr ""
36459
36460#. type: deftp
39764ef8 36461#: doc/guix.texi:16461
b9fe8fd6
JL
36462msgid ""
36463"Data type representing the Knot configuration. This type has the following "
36464"parameters:"
36465msgstr ""
36466
36467#. type: item
39764ef8 36468#: doc/guix.texi:16463
b9fe8fd6
JL
36469#, no-wrap
36470msgid "@code{knot} (default: @code{knot})"
36471msgstr ""
36472
36473#. type: table
39764ef8 36474#: doc/guix.texi:16465
b9fe8fd6
JL
36475msgid "The Knot package."
36476msgstr ""
36477
36478#. type: item
39764ef8 36479#: doc/guix.texi:16466
b9fe8fd6
JL
36480#, no-wrap
36481msgid "@code{run-directory} (default: @code{\"/var/run/knot\"})"
36482msgstr ""
36483
36484#. type: table
39764ef8
JL
36485#: doc/guix.texi:16468
36486msgid ""
36487"The run directory. This directory will be used for pid file and sockets."
b9fe8fd6
JL
36488msgstr ""
36489
36490#. type: item
39764ef8 36491#: doc/guix.texi:16469
b9fe8fd6
JL
36492#, no-wrap
36493msgid "@code{listen-v4} (default: @code{\"0.0.0.0\"})"
36494msgstr ""
36495
36496#. type: table
39764ef8 36497#: doc/guix.texi:16471 doc/guix.texi:16474
b9fe8fd6
JL
36498msgid "An ip address on which to listen."
36499msgstr ""
36500
36501#. type: item
39764ef8 36502#: doc/guix.texi:16472
b9fe8fd6
JL
36503#, no-wrap
36504msgid "@code{listen-v6} (default: @code{\"::\"})"
36505msgstr ""
36506
36507#. type: item
39764ef8 36508#: doc/guix.texi:16475
b9fe8fd6
JL
36509#, no-wrap
36510msgid "@code{listen-port} (default: @code{53})"
36511msgstr ""
36512
36513#. type: table
39764ef8 36514#: doc/guix.texi:16477
b9fe8fd6
JL
36515msgid "A port on which to listen."
36516msgstr ""
36517
36518#. type: item
39764ef8 36519#: doc/guix.texi:16478
b9fe8fd6
JL
36520#, no-wrap
36521msgid "@code{keys} (default: @code{'()})"
36522msgstr ""
36523
36524#. type: table
39764ef8 36525#: doc/guix.texi:16480
b9fe8fd6
JL
36526msgid "The list of knot-key-configuration used by this configuration."
36527msgstr ""
36528
36529#. type: item
39764ef8 36530#: doc/guix.texi:16481
b9fe8fd6
JL
36531#, no-wrap
36532msgid "@code{acls} (default: @code{'()})"
36533msgstr ""
36534
36535#. type: table
39764ef8 36536#: doc/guix.texi:16483
b9fe8fd6
JL
36537msgid "The list of knot-acl-configuration used by this configuration."
36538msgstr ""
36539
36540#. type: item
39764ef8 36541#: doc/guix.texi:16484
b9fe8fd6
JL
36542#, no-wrap
36543msgid "@code{remotes} (default: @code{'()})"
36544msgstr ""
36545
36546#. type: table
39764ef8 36547#: doc/guix.texi:16486
b9fe8fd6
JL
36548msgid "The list of knot-remote-configuration used by this configuration."
36549msgstr ""
36550
36551#. type: item
39764ef8 36552#: doc/guix.texi:16487
b9fe8fd6
JL
36553#, no-wrap
36554msgid "@code{zones} (default: @code{'()})"
36555msgstr ""
36556
36557#. type: table
39764ef8 36558#: doc/guix.texi:16489
b9fe8fd6
JL
36559msgid "The list of knot-zone-configuration used by this configuration."
36560msgstr ""
36561
36562#. type: cindex
39764ef8 36563#: doc/guix.texi:16496
b9fe8fd6
JL
36564#, no-wrap
36565msgid "VPN (virtual private network)"
36566msgstr ""
36567
36568#. type: cindex
39764ef8 36569#: doc/guix.texi:16497
b9fe8fd6
JL
36570#, no-wrap
36571msgid "virtual private network (VPN)"
36572msgstr ""
36573
36574#. type: Plain text
39764ef8 36575#: doc/guix.texi:16503
b9fe8fd6
JL
36576msgid ""
36577"The @code{(gnu services vpn)} module provides services related to "
36578"@dfn{virtual private networks} (VPNs). It provides a @emph{client} service "
36579"for your machine to connect to a VPN, and a @emph{servire} service for your "
36580"machine to host a VPN. Both services use @uref{https://openvpn.net/, "
36581"OpenVPN}."
36582msgstr ""
36583
36584#. type: deffn
39764ef8 36585#: doc/guix.texi:16504
b9fe8fd6
JL
36586#, no-wrap
36587msgid "{Scheme Procedure} openvpn-client-service @"
36588msgstr ""
36589
36590#. type: deffn
39764ef8 36591#: doc/guix.texi:16506
b9fe8fd6
JL
36592msgid "[#:config (openvpn-client-configuration)]"
36593msgstr ""
36594
36595#. type: deffn
39764ef8
JL
36596#: doc/guix.texi:16508
36597msgid ""
36598"Return a service that runs @command{openvpn}, a VPN daemon, as a client."
b9fe8fd6
JL
36599msgstr ""
36600
36601#. type: deffn
39764ef8 36602#: doc/guix.texi:16510
b9fe8fd6
JL
36603#, no-wrap
36604msgid "{Scheme Procedure} openvpn-server-service @"
36605msgstr ""
36606
36607#. type: deffn
39764ef8 36608#: doc/guix.texi:16512
b9fe8fd6
JL
36609msgid "[#:config (openvpn-server-configuration)]"
36610msgstr ""
36611
36612#. type: deffn
39764ef8
JL
36613#: doc/guix.texi:16514
36614msgid ""
36615"Return a service that runs @command{openvpn}, a VPN daemon, as a server."
b9fe8fd6
JL
36616msgstr ""
36617
36618#. type: deffn
39764ef8 36619#: doc/guix.texi:16516
b9fe8fd6
JL
36620msgid "Both can be run simultaneously."
36621msgstr ""
36622
36623#. type: Plain text
39764ef8 36624#: doc/guix.texi:16521
b9fe8fd6
JL
36625msgid "Available @code{openvpn-client-configuration} fields are:"
36626msgstr ""
36627
36628#. type: deftypevr
39764ef8 36629#: doc/guix.texi:16522
b9fe8fd6
JL
36630#, no-wrap
36631msgid "{@code{openvpn-client-configuration} parameter} package openvpn"
36632msgstr ""
36633
36634#. type: deftypevr
39764ef8 36635#: doc/guix.texi:16524 doc/guix.texi:16660
b9fe8fd6
JL
36636msgid "The OpenVPN package."
36637msgstr ""
36638
36639#. type: deftypevr
39764ef8 36640#: doc/guix.texi:16527
b9fe8fd6
JL
36641#, no-wrap
36642msgid "{@code{openvpn-client-configuration} parameter} string pid-file"
36643msgstr ""
36644
36645#. type: deftypevr
39764ef8 36646#: doc/guix.texi:16529 doc/guix.texi:16665
b9fe8fd6
JL
36647msgid "The OpenVPN pid file."
36648msgstr ""
36649
36650#. type: deftypevr
39764ef8 36651#: doc/guix.texi:16531 doc/guix.texi:16667
b9fe8fd6
JL
36652msgid "Defaults to @samp{\"/var/run/openvpn/openvpn.pid\"}."
36653msgstr ""
36654
36655#. type: deftypevr
39764ef8 36656#: doc/guix.texi:16534
b9fe8fd6
JL
36657#, no-wrap
36658msgid "{@code{openvpn-client-configuration} parameter} proto proto"
36659msgstr ""
36660
36661#. type: deftypevr
39764ef8 36662#: doc/guix.texi:16537 doc/guix.texi:16673
b9fe8fd6 36663msgid ""
39764ef8 36664"The protocol (UDP or TCP) used to open a channel between clients and servers."
b9fe8fd6
JL
36665msgstr ""
36666
36667#. type: deftypevr
39764ef8 36668#: doc/guix.texi:16539 doc/guix.texi:16675
b9fe8fd6
JL
36669msgid "Defaults to @samp{udp}."
36670msgstr ""
36671
36672#. type: deftypevr
39764ef8 36673#: doc/guix.texi:16542
b9fe8fd6
JL
36674#, no-wrap
36675msgid "{@code{openvpn-client-configuration} parameter} dev dev"
36676msgstr ""
36677
36678#. type: deftypevr
39764ef8 36679#: doc/guix.texi:16544 doc/guix.texi:16680
b9fe8fd6
JL
36680msgid "The device type used to represent the VPN connection."
36681msgstr ""
36682
36683#. type: deftypevr
39764ef8 36684#: doc/guix.texi:16546 doc/guix.texi:16682
b9fe8fd6
JL
36685msgid "Defaults to @samp{tun}."
36686msgstr ""
36687
36688#. type: deftypevr
39764ef8 36689#: doc/guix.texi:16549
b9fe8fd6
JL
36690#, no-wrap
36691msgid "{@code{openvpn-client-configuration} parameter} string ca"
36692msgstr ""
36693
36694#. type: deftypevr
39764ef8 36695#: doc/guix.texi:16551 doc/guix.texi:16687
b9fe8fd6
JL
36696msgid "The certificate authority to check connections against."
36697msgstr ""
36698
36699#. type: deftypevr
39764ef8 36700#: doc/guix.texi:16553 doc/guix.texi:16689
b9fe8fd6
JL
36701msgid "Defaults to @samp{\"/etc/openvpn/ca.crt\"}."
36702msgstr ""
36703
36704#. type: deftypevr
39764ef8 36705#: doc/guix.texi:16556
b9fe8fd6
JL
36706#, no-wrap
36707msgid "{@code{openvpn-client-configuration} parameter} string cert"
36708msgstr ""
36709
36710#. type: deftypevr
39764ef8 36711#: doc/guix.texi:16559 doc/guix.texi:16695
b9fe8fd6
JL
36712msgid ""
36713"The certificate of the machine the daemon is running on. It should be "
36714"signed by the authority given in @code{ca}."
36715msgstr ""
36716
36717#. type: deftypevr
39764ef8 36718#: doc/guix.texi:16561 doc/guix.texi:16697
b9fe8fd6
JL
36719msgid "Defaults to @samp{\"/etc/openvpn/client.crt\"}."
36720msgstr ""
36721
36722#. type: deftypevr
39764ef8 36723#: doc/guix.texi:16564
b9fe8fd6
JL
36724#, no-wrap
36725msgid "{@code{openvpn-client-configuration} parameter} string key"
36726msgstr ""
36727
36728#. type: deftypevr
39764ef8 36729#: doc/guix.texi:16567 doc/guix.texi:16703
b9fe8fd6
JL
36730msgid ""
36731"The key of the machine the daemon is running on. It must be the key whose "
36732"certificate is @code{cert}."
36733msgstr ""
36734
36735#. type: deftypevr
39764ef8 36736#: doc/guix.texi:16569 doc/guix.texi:16705
b9fe8fd6
JL
36737msgid "Defaults to @samp{\"/etc/openvpn/client.key\"}."
36738msgstr ""
36739
36740#. type: deftypevr
39764ef8 36741#: doc/guix.texi:16572
b9fe8fd6
JL
36742#, no-wrap
36743msgid "{@code{openvpn-client-configuration} parameter} boolean comp-lzo?"
36744msgstr ""
36745
36746#. type: deftypevr
39764ef8 36747#: doc/guix.texi:16574 doc/guix.texi:16710
b9fe8fd6
JL
36748msgid "Whether to use the lzo compression algorithm."
36749msgstr ""
36750
36751#. type: deftypevr
39764ef8 36752#: doc/guix.texi:16579
b9fe8fd6
JL
36753#, no-wrap
36754msgid "{@code{openvpn-client-configuration} parameter} boolean persist-key?"
36755msgstr ""
36756
36757#. type: deftypevr
39764ef8 36758#: doc/guix.texi:16581 doc/guix.texi:16717
b9fe8fd6
JL
36759msgid "Don't re-read key files across SIGUSR1 or --ping-restart."
36760msgstr ""
36761
36762#. type: deftypevr
39764ef8 36763#: doc/guix.texi:16586
b9fe8fd6
JL
36764#, no-wrap
36765msgid "{@code{openvpn-client-configuration} parameter} boolean persist-tun?"
36766msgstr ""
36767
36768#. type: deftypevr
39764ef8 36769#: doc/guix.texi:16589 doc/guix.texi:16725
b9fe8fd6
JL
36770msgid ""
36771"Don't close and reopen TUN/TAP device or run up/down scripts across SIGUSR1 "
36772"or --ping-restart restarts."
36773msgstr ""
36774
36775#. type: deftypevr
39764ef8 36776#: doc/guix.texi:16594
b9fe8fd6
JL
36777#, no-wrap
36778msgid "{@code{openvpn-client-configuration} parameter} number verbosity"
36779msgstr ""
36780
36781#. type: deftypevr
39764ef8 36782#: doc/guix.texi:16596 doc/guix.texi:16732
b9fe8fd6
JL
36783msgid "Verbosity level."
36784msgstr ""
36785
36786#. type: deftypevr
39764ef8
JL
36787#: doc/guix.texi:16598 doc/guix.texi:16734 doc/guix.texi:18011
36788#: doc/guix.texi:18234
b9fe8fd6
JL
36789msgid "Defaults to @samp{3}."
36790msgstr ""
36791
36792#. type: deftypevr
39764ef8 36793#: doc/guix.texi:16601
b9fe8fd6
JL
36794#, no-wrap
36795msgid "{@code{openvpn-client-configuration} parameter} tls-auth-client tls-auth"
36796msgstr ""
36797
36798#. type: deftypevr
39764ef8 36799#: doc/guix.texi:16604 doc/guix.texi:16740
b9fe8fd6
JL
36800msgid ""
36801"Add an additional layer of HMAC authentication on top of the TLS control "
36802"channel to protect against DoS attacks."
36803msgstr ""
36804
36805#. type: deftypevr
39764ef8 36806#: doc/guix.texi:16609
b9fe8fd6
JL
36807#, no-wrap
36808msgid "{@code{openvpn-client-configuration} parameter} key-usage verify-key-usage?"
36809msgstr ""
36810
36811#. type: deftypevr
39764ef8 36812#: doc/guix.texi:16611
b9fe8fd6
JL
36813msgid "Whether to check the server certificate has server usage extension."
36814msgstr ""
36815
36816#. type: deftypevr
39764ef8 36817#: doc/guix.texi:16616
b9fe8fd6
JL
36818#, no-wrap
36819msgid "{@code{openvpn-client-configuration} parameter} bind bind?"
36820msgstr ""
36821
36822#. type: deftypevr
39764ef8 36823#: doc/guix.texi:16618
b9fe8fd6
JL
36824msgid "Bind to a specific local port number."
36825msgstr ""
36826
36827#. type: deftypevr
39764ef8 36828#: doc/guix.texi:16623
b9fe8fd6
JL
36829#, no-wrap
36830msgid "{@code{openvpn-client-configuration} parameter} resolv-retry resolv-retry?"
36831msgstr ""
36832
36833#. type: deftypevr
39764ef8 36834#: doc/guix.texi:16625
b9fe8fd6
JL
36835msgid "Retry resolving server address."
36836msgstr ""
36837
36838#. type: deftypevr
39764ef8 36839#: doc/guix.texi:16630
b9fe8fd6
JL
36840#, no-wrap
36841msgid "{@code{openvpn-client-configuration} parameter} openvpn-remote-list remote"
36842msgstr ""
36843
36844#. type: deftypevr
39764ef8 36845#: doc/guix.texi:16632
b9fe8fd6
JL
36846msgid "A list of remote servers to connect to."
36847msgstr ""
36848
36849#. type: deftypevr
39764ef8 36850#: doc/guix.texi:16636
b9fe8fd6
JL
36851msgid "Available @code{openvpn-remote-configuration} fields are:"
36852msgstr ""
36853
36854#. type: deftypevr
39764ef8 36855#: doc/guix.texi:16637
b9fe8fd6
JL
36856#, no-wrap
36857msgid "{@code{openvpn-remote-configuration} parameter} string name"
36858msgstr ""
36859
36860#. type: deftypevr
39764ef8 36861#: doc/guix.texi:16639
b9fe8fd6
JL
36862msgid "Server name."
36863msgstr ""
36864
36865#. type: deftypevr
39764ef8 36866#: doc/guix.texi:16641
b9fe8fd6
JL
36867msgid "Defaults to @samp{\"my-server\"}."
36868msgstr ""
36869
36870#. type: deftypevr
39764ef8 36871#: doc/guix.texi:16644
b9fe8fd6
JL
36872#, no-wrap
36873msgid "{@code{openvpn-remote-configuration} parameter} number port"
36874msgstr ""
36875
36876#. type: deftypevr
39764ef8 36877#: doc/guix.texi:16646
b9fe8fd6
JL
36878msgid "Port number the server listens to."
36879msgstr ""
36880
36881#. type: deftypevr
39764ef8 36882#: doc/guix.texi:16648 doc/guix.texi:16749
b9fe8fd6
JL
36883msgid "Defaults to @samp{1194}."
36884msgstr ""
36885
36886#. type: Plain text
39764ef8 36887#: doc/guix.texi:16657
b9fe8fd6
JL
36888msgid "Available @code{openvpn-server-configuration} fields are:"
36889msgstr ""
36890
36891#. type: deftypevr
39764ef8 36892#: doc/guix.texi:16658
b9fe8fd6
JL
36893#, no-wrap
36894msgid "{@code{openvpn-server-configuration} parameter} package openvpn"
36895msgstr ""
36896
36897#. type: deftypevr
39764ef8 36898#: doc/guix.texi:16663
b9fe8fd6
JL
36899#, no-wrap
36900msgid "{@code{openvpn-server-configuration} parameter} string pid-file"
36901msgstr ""
36902
36903#. type: deftypevr
39764ef8 36904#: doc/guix.texi:16670
b9fe8fd6
JL
36905#, no-wrap
36906msgid "{@code{openvpn-server-configuration} parameter} proto proto"
36907msgstr ""
36908
36909#. type: deftypevr
39764ef8 36910#: doc/guix.texi:16678
b9fe8fd6
JL
36911#, no-wrap
36912msgid "{@code{openvpn-server-configuration} parameter} dev dev"
36913msgstr ""
36914
36915#. type: deftypevr
39764ef8 36916#: doc/guix.texi:16685
b9fe8fd6
JL
36917#, no-wrap
36918msgid "{@code{openvpn-server-configuration} parameter} string ca"
36919msgstr ""
36920
36921#. type: deftypevr
39764ef8 36922#: doc/guix.texi:16692
b9fe8fd6
JL
36923#, no-wrap
36924msgid "{@code{openvpn-server-configuration} parameter} string cert"
36925msgstr ""
36926
36927#. type: deftypevr
39764ef8 36928#: doc/guix.texi:16700
b9fe8fd6
JL
36929#, no-wrap
36930msgid "{@code{openvpn-server-configuration} parameter} string key"
36931msgstr ""
36932
36933#. type: deftypevr
39764ef8 36934#: doc/guix.texi:16708
b9fe8fd6
JL
36935#, no-wrap
36936msgid "{@code{openvpn-server-configuration} parameter} boolean comp-lzo?"
36937msgstr ""
36938
36939#. type: deftypevr
39764ef8 36940#: doc/guix.texi:16715
b9fe8fd6
JL
36941#, no-wrap
36942msgid "{@code{openvpn-server-configuration} parameter} boolean persist-key?"
36943msgstr ""
36944
36945#. type: deftypevr
39764ef8 36946#: doc/guix.texi:16722
b9fe8fd6
JL
36947#, no-wrap
36948msgid "{@code{openvpn-server-configuration} parameter} boolean persist-tun?"
36949msgstr ""
36950
36951#. type: deftypevr
39764ef8 36952#: doc/guix.texi:16730
b9fe8fd6
JL
36953#, no-wrap
36954msgid "{@code{openvpn-server-configuration} parameter} number verbosity"
36955msgstr ""
36956
36957#. type: deftypevr
39764ef8 36958#: doc/guix.texi:16737
b9fe8fd6
JL
36959#, no-wrap
36960msgid "{@code{openvpn-server-configuration} parameter} tls-auth-server tls-auth"
36961msgstr ""
36962
36963#. type: deftypevr
39764ef8 36964#: doc/guix.texi:16745
b9fe8fd6
JL
36965#, no-wrap
36966msgid "{@code{openvpn-server-configuration} parameter} number port"
36967msgstr ""
36968
36969#. type: deftypevr
39764ef8 36970#: doc/guix.texi:16747
b9fe8fd6
JL
36971msgid "Specifies the port number on which the server listens."
36972msgstr ""
36973
36974#. type: deftypevr
39764ef8 36975#: doc/guix.texi:16752
b9fe8fd6
JL
36976#, no-wrap
36977msgid "{@code{openvpn-server-configuration} parameter} ip-mask server"
36978msgstr ""
36979
36980#. type: deftypevr
39764ef8 36981#: doc/guix.texi:16754
b9fe8fd6
JL
36982msgid "An ip and mask specifying the subnet inside the virtual network."
36983msgstr ""
36984
36985#. type: deftypevr
39764ef8 36986#: doc/guix.texi:16756
b9fe8fd6
JL
36987msgid "Defaults to @samp{\"10.8.0.0 255.255.255.0\"}."
36988msgstr ""
36989
36990#. type: deftypevr
39764ef8 36991#: doc/guix.texi:16759
b9fe8fd6
JL
36992#, no-wrap
36993msgid "{@code{openvpn-server-configuration} parameter} cidr6 server-ipv6"
36994msgstr ""
36995
36996#. type: deftypevr
39764ef8 36997#: doc/guix.texi:16761
b9fe8fd6
JL
36998msgid "A CIDR notation specifying the IPv6 subnet inside the virtual network."
36999msgstr ""
37000
37001#. type: deftypevr
39764ef8 37002#: doc/guix.texi:16766
b9fe8fd6
JL
37003#, no-wrap
37004msgid "{@code{openvpn-server-configuration} parameter} string dh"
37005msgstr ""
37006
37007#. type: deftypevr
39764ef8 37008#: doc/guix.texi:16768
b9fe8fd6
JL
37009msgid "The Diffie-Hellman parameters file."
37010msgstr ""
37011
37012#. type: deftypevr
39764ef8 37013#: doc/guix.texi:16770
b9fe8fd6
JL
37014msgid "Defaults to @samp{\"/etc/openvpn/dh2048.pem\"}."
37015msgstr ""
37016
37017#. type: deftypevr
39764ef8 37018#: doc/guix.texi:16773
b9fe8fd6
JL
37019#, no-wrap
37020msgid "{@code{openvpn-server-configuration} parameter} string ifconfig-pool-persist"
37021msgstr ""
37022
37023#. type: deftypevr
39764ef8 37024#: doc/guix.texi:16775
b9fe8fd6
JL
37025msgid "The file that records client IPs."
37026msgstr ""
37027
37028#. type: deftypevr
39764ef8 37029#: doc/guix.texi:16777
b9fe8fd6
JL
37030msgid "Defaults to @samp{\"/etc/openvpn/ipp.txt\"}."
37031msgstr ""
37032
37033#. type: deftypevr
39764ef8 37034#: doc/guix.texi:16780
b9fe8fd6
JL
37035#, no-wrap
37036msgid "{@code{openvpn-server-configuration} parameter} gateway redirect-gateway?"
37037msgstr ""
37038
37039#. type: deftypevr
39764ef8 37040#: doc/guix.texi:16782
b9fe8fd6
JL
37041msgid "When true, the server will act as a gateway for its clients."
37042msgstr ""
37043
37044#. type: deftypevr
39764ef8 37045#: doc/guix.texi:16787
b9fe8fd6
JL
37046#, no-wrap
37047msgid "{@code{openvpn-server-configuration} parameter} boolean client-to-client?"
37048msgstr ""
37049
37050#. type: deftypevr
39764ef8 37051#: doc/guix.texi:16789
b9fe8fd6
JL
37052msgid "When true, clients are allowed to talk to each other inside the VPN."
37053msgstr ""
37054
37055#. type: deftypevr
39764ef8 37056#: doc/guix.texi:16794
b9fe8fd6
JL
37057#, no-wrap
37058msgid "{@code{openvpn-server-configuration} parameter} keepalive keepalive"
37059msgstr ""
37060
37061#. type: deftypevr
39764ef8 37062#: doc/guix.texi:16800
b9fe8fd6
JL
37063msgid ""
37064"Causes ping-like messages to be sent back and forth over the link so that "
37065"each side knows when the other side has gone down. @code{keepalive} "
37066"requires a pair. The first element is the period of the ping sending, and "
37067"the second element is the timeout before considering the other side down."
37068msgstr ""
37069
37070#. type: deftypevr
39764ef8 37071#: doc/guix.texi:16803
b9fe8fd6
JL
37072#, no-wrap
37073msgid "{@code{openvpn-server-configuration} parameter} number max-clients"
37074msgstr ""
37075
37076#. type: deftypevr
39764ef8 37077#: doc/guix.texi:16805
b9fe8fd6
JL
37078msgid "The maximum number of clients."
37079msgstr ""
37080
37081#. type: deftypevr
39764ef8 37082#: doc/guix.texi:16810
b9fe8fd6
JL
37083#, no-wrap
37084msgid "{@code{openvpn-server-configuration} parameter} string status"
37085msgstr ""
37086
37087#. type: deftypevr
39764ef8 37088#: doc/guix.texi:16813
b9fe8fd6
JL
37089msgid ""
37090"The status file. This file shows a small report on current connection. It "
37091"is truncated and rewritten every minute."
37092msgstr ""
37093
37094#. type: deftypevr
39764ef8 37095#: doc/guix.texi:16815
b9fe8fd6
JL
37096msgid "Defaults to @samp{\"/var/run/openvpn/status\"}."
37097msgstr ""
37098
37099#. type: deftypevr
39764ef8 37100#: doc/guix.texi:16818
b9fe8fd6 37101#, no-wrap
39764ef8 37102msgid "{@code{openvpn-server-configuration} parameter} openvpn-ccd-list client-config-dir"
b9fe8fd6
JL
37103msgstr ""
37104
37105#. type: deftypevr
39764ef8 37106#: doc/guix.texi:16820
b9fe8fd6
JL
37107msgid "The list of configuration for some clients."
37108msgstr ""
37109
37110#. type: deftypevr
39764ef8 37111#: doc/guix.texi:16824
b9fe8fd6
JL
37112msgid "Available @code{openvpn-ccd-configuration} fields are:"
37113msgstr ""
37114
37115#. type: deftypevr
39764ef8 37116#: doc/guix.texi:16825
b9fe8fd6
JL
37117#, no-wrap
37118msgid "{@code{openvpn-ccd-configuration} parameter} string name"
37119msgstr ""
37120
37121#. type: deftypevr
39764ef8 37122#: doc/guix.texi:16827
b9fe8fd6
JL
37123msgid "Client name."
37124msgstr ""
37125
37126#. type: deftypevr
39764ef8 37127#: doc/guix.texi:16829
b9fe8fd6
JL
37128msgid "Defaults to @samp{\"client\"}."
37129msgstr ""
37130
37131#. type: deftypevr
39764ef8 37132#: doc/guix.texi:16832
b9fe8fd6
JL
37133#, no-wrap
37134msgid "{@code{openvpn-ccd-configuration} parameter} ip-mask iroute"
37135msgstr ""
37136
37137#. type: deftypevr
39764ef8 37138#: doc/guix.texi:16834
b9fe8fd6
JL
37139msgid "Client own network"
37140msgstr ""
37141
37142#. type: deftypevr
39764ef8 37143#: doc/guix.texi:16839
b9fe8fd6
JL
37144#, no-wrap
37145msgid "{@code{openvpn-ccd-configuration} parameter} ip-mask ifconfig-push"
37146msgstr ""
37147
37148#. type: deftypevr
39764ef8 37149#: doc/guix.texi:16841
b9fe8fd6
JL
37150msgid "Client VPN IP."
37151msgstr ""
37152
37153#. type: cindex
39764ef8 37154#: doc/guix.texi:16854
b9fe8fd6
JL
37155#, no-wrap
37156msgid "NFS"
37157msgstr ""
37158
37159#. type: Plain text
39764ef8 37160#: doc/guix.texi:16859
b9fe8fd6
JL
37161msgid ""
37162"The @code{(gnu services nfs)} module provides the following services, which "
37163"are most commonly used in relation to mounting or exporting directory trees "
37164"as @dfn{network file systems} (NFS)."
37165msgstr ""
37166
37167#. type: subsubheading
39764ef8 37168#: doc/guix.texi:16860
b9fe8fd6
JL
37169#, no-wrap
37170msgid "RPC Bind Service"
37171msgstr ""
37172
37173#. type: cindex
39764ef8 37174#: doc/guix.texi:16861
b9fe8fd6
JL
37175#, no-wrap
37176msgid "rpcbind"
37177msgstr ""
37178
37179#. type: Plain text
39764ef8 37180#: doc/guix.texi:16867
b9fe8fd6
JL
37181msgid ""
37182"The RPC Bind service provides a facility to map program numbers into "
37183"universal addresses. Many NFS related services use this facility. Hence it "
37184"is automatically started when a dependent service starts."
37185msgstr ""
37186
37187#. type: defvr
39764ef8 37188#: doc/guix.texi:16868
b9fe8fd6
JL
37189#, no-wrap
37190msgid "{Scheme Variable} rpcbind-service-type"
37191msgstr ""
37192
37193#. type: defvr
39764ef8 37194#: doc/guix.texi:16870
b9fe8fd6
JL
37195msgid "A service type for the RPC portmapper daemon."
37196msgstr ""
37197
37198#. type: deftp
39764ef8 37199#: doc/guix.texi:16873
b9fe8fd6
JL
37200#, no-wrap
37201msgid "{Data Type} rpcbind-configuration"
37202msgstr ""
37203
37204#. type: deftp
39764ef8 37205#: doc/guix.texi:16876
b9fe8fd6
JL
37206msgid ""
37207"Data type representing the configuration of the RPC Bind Service. This type "
37208"has the following parameters:"
37209msgstr ""
37210
37211#. type: item
39764ef8 37212#: doc/guix.texi:16877
b9fe8fd6
JL
37213#, no-wrap
37214msgid "@code{rpcbind} (default: @code{rpcbind})"
37215msgstr ""
37216
37217#. type: table
39764ef8 37218#: doc/guix.texi:16879
b9fe8fd6
JL
37219msgid "The rpcbind package to use."
37220msgstr ""
37221
37222#. type: item
39764ef8 37223#: doc/guix.texi:16880
b9fe8fd6
JL
37224#, no-wrap
37225msgid "@code{warm-start?} (default: @code{#t})"
37226msgstr ""
37227
37228#. type: table
39764ef8 37229#: doc/guix.texi:16884
b9fe8fd6
JL
37230msgid ""
37231"If this parameter is @code{#t}, then the daemon will read a state file on "
37232"startup thus reloading state information saved by a previous instance."
37233msgstr ""
37234
37235#. type: subsubheading
39764ef8 37236#: doc/guix.texi:16888
b9fe8fd6
JL
37237#, no-wrap
37238msgid "Pipefs Pseudo File System"
37239msgstr ""
37240
37241#. type: cindex
39764ef8 37242#: doc/guix.texi:16889
b9fe8fd6
JL
37243#, no-wrap
37244msgid "pipefs"
37245msgstr ""
37246
37247#. type: cindex
39764ef8 37248#: doc/guix.texi:16890
b9fe8fd6
JL
37249#, no-wrap
37250msgid "rpc_pipefs"
37251msgstr ""
37252
37253#. type: Plain text
39764ef8 37254#: doc/guix.texi:16894
b9fe8fd6
JL
37255msgid ""
37256"The pipefs file system is used to transfer NFS related data between the "
37257"kernel and user space programs."
37258msgstr ""
37259
37260#. type: defvr
39764ef8 37261#: doc/guix.texi:16895
b9fe8fd6
JL
37262#, no-wrap
37263msgid "{Scheme Variable} pipefs-service-type"
37264msgstr ""
37265
37266#. type: defvr
39764ef8 37267#: doc/guix.texi:16897
b9fe8fd6
JL
37268msgid "A service type for the pipefs pseudo file system."
37269msgstr ""
37270
37271#. type: deftp
39764ef8 37272#: doc/guix.texi:16899
b9fe8fd6
JL
37273#, no-wrap
37274msgid "{Data Type} pipefs-configuration"
37275msgstr ""
37276
37277#. type: deftp
39764ef8 37278#: doc/guix.texi:16902
b9fe8fd6
JL
37279msgid ""
37280"Data type representing the configuration of the pipefs pseudo file system "
37281"service. This type has the following parameters:"
37282msgstr ""
37283
37284#. type: item
39764ef8 37285#: doc/guix.texi:16903
b9fe8fd6
JL
37286#, no-wrap
37287msgid "@code{mount-point} (default: @code{\"/var/lib/nfs/rpc_pipefs\"})"
37288msgstr ""
37289
37290#. type: table
39764ef8 37291#: doc/guix.texi:16905
b9fe8fd6
JL
37292msgid "The directory to which the file system is to be attached."
37293msgstr ""
37294
37295#. type: subsubheading
39764ef8 37296#: doc/guix.texi:16909
b9fe8fd6
JL
37297#, no-wrap
37298msgid "GSS Daemon Service"
37299msgstr ""
37300
37301#. type: cindex
39764ef8 37302#: doc/guix.texi:16910
b9fe8fd6
JL
37303#, no-wrap
37304msgid "GSSD"
37305msgstr ""
37306
37307#. type: cindex
39764ef8 37308#: doc/guix.texi:16911
b9fe8fd6
JL
37309#, no-wrap
37310msgid "GSS"
37311msgstr ""
37312
37313#. type: cindex
39764ef8 37314#: doc/guix.texi:16912
b9fe8fd6
JL
37315#, no-wrap
37316msgid "global security system"
37317msgstr ""
37318
37319#. type: Plain text
39764ef8 37320#: doc/guix.texi:16919
b9fe8fd6
JL
37321msgid ""
37322"The @dfn{global security system} (GSS) daemon provides strong security for "
37323"RPC based protocols. Before exchanging RPC requests an RPC client must "
37324"establish a security context. Typically this is done using the Kerberos "
37325"command @command{kinit} or automatically at login time using PAM services "
37326"(@pxref{Kerberos Services})."
37327msgstr ""
37328
37329#. type: defvr
39764ef8 37330#: doc/guix.texi:16920
b9fe8fd6
JL
37331#, no-wrap
37332msgid "{Scheme Variable} gss-service-type"
37333msgstr ""
37334
37335#. type: defvr
39764ef8 37336#: doc/guix.texi:16922
b9fe8fd6
JL
37337msgid "A service type for the Global Security System (GSS) daemon."
37338msgstr ""
37339
37340#. type: deftp
39764ef8 37341#: doc/guix.texi:16924
b9fe8fd6
JL
37342#, no-wrap
37343msgid "{Data Type} gss-configuration"
37344msgstr ""
37345
37346#. type: deftp
39764ef8 37347#: doc/guix.texi:16927
b9fe8fd6
JL
37348msgid ""
37349"Data type representing the configuration of the GSS daemon service. This "
37350"type has the following parameters:"
37351msgstr ""
37352
37353#. type: item
39764ef8 37354#: doc/guix.texi:16928 doc/guix.texi:16953
b9fe8fd6
JL
37355#, no-wrap
37356msgid "@code{nfs-utils} (default: @code{nfs-utils})"
37357msgstr ""
37358
37359#. type: table
39764ef8 37360#: doc/guix.texi:16930
b9fe8fd6
JL
37361msgid "The package in which the @command{rpc.gssd} command is to be found."
37362msgstr ""
37363
37364#. type: item
39764ef8 37365#: doc/guix.texi:16931 doc/guix.texi:16956
b9fe8fd6
JL
37366#, no-wrap
37367msgid "@code{pipefs-directory} (default: @code{\"/var/lib/nfs/rpc_pipefs\"})"
37368msgstr ""
37369
37370#. type: table
39764ef8 37371#: doc/guix.texi:16933 doc/guix.texi:16958
b9fe8fd6
JL
37372msgid "The directory where the pipefs file system is mounted."
37373msgstr ""
37374
37375#. type: subsubheading
39764ef8 37376#: doc/guix.texi:16938
b9fe8fd6
JL
37377#, no-wrap
37378msgid "IDMAP Daemon Service"
37379msgstr ""
37380
37381#. type: cindex
39764ef8 37382#: doc/guix.texi:16939
b9fe8fd6
JL
37383#, no-wrap
37384msgid "idmapd"
37385msgstr ""
37386
37387#. type: cindex
39764ef8 37388#: doc/guix.texi:16940
b9fe8fd6
JL
37389#, no-wrap
37390msgid "name mapper"
37391msgstr ""
37392
37393#. type: Plain text
39764ef8 37394#: doc/guix.texi:16944
b9fe8fd6
JL
37395msgid ""
37396"The idmap daemon service provides mapping between user IDs and user names. "
37397"Typically it is required in order to access file systems mounted via NFSv4."
37398msgstr ""
37399
37400#. type: defvr
39764ef8 37401#: doc/guix.texi:16945
b9fe8fd6
JL
37402#, no-wrap
37403msgid "{Scheme Variable} idmap-service-type"
37404msgstr ""
37405
37406#. type: defvr
39764ef8 37407#: doc/guix.texi:16947
b9fe8fd6
JL
37408msgid "A service type for the Identity Mapper (IDMAP) daemon."
37409msgstr ""
37410
37411#. type: deftp
39764ef8 37412#: doc/guix.texi:16949
b9fe8fd6
JL
37413#, no-wrap
37414msgid "{Data Type} idmap-configuration"
37415msgstr ""
37416
37417#. type: deftp
39764ef8 37418#: doc/guix.texi:16952
b9fe8fd6
JL
37419msgid ""
37420"Data type representing the configuration of the IDMAP daemon service. This "
37421"type has the following parameters:"
37422msgstr ""
37423
37424#. type: table
39764ef8 37425#: doc/guix.texi:16955
b9fe8fd6
JL
37426msgid "The package in which the @command{rpc.idmapd} command is to be found."
37427msgstr ""
37428
37429#. type: item
39764ef8 37430#: doc/guix.texi:16959
b9fe8fd6
JL
37431#, no-wrap
37432msgid "@code{domain} (default: @code{#f})"
37433msgstr ""
37434
37435#. type: table
39764ef8 37436#: doc/guix.texi:16963
b9fe8fd6
JL
37437msgid ""
37438"The local NFSv4 domain name. This must be a string or @code{#f}. If it is "
37439"@code{#f} then the daemon will use the host's fully qualified domain name."
37440msgstr ""
37441
37442#. type: cindex
39764ef8 37443#: doc/guix.texi:16970
b9fe8fd6
JL
37444#, no-wrap
37445msgid "continuous integration"
37446msgstr ""
37447
37448#. type: Plain text
39764ef8 37449#: doc/guix.texi:16974
b9fe8fd6
JL
37450msgid ""
37451"@uref{https://notabug.org/mthl/cuirass, Cuirass} is a continuous integration "
37452"tool for Guix. It can be used both for development and for providing "
37453"substitutes to others (@pxref{Substitutes})."
37454msgstr ""
37455
37456#. type: Plain text
39764ef8
JL
37457#: doc/guix.texi:16976
37458msgid ""
37459"The @code{(gnu services cuirass)} module provides the following service."
b9fe8fd6
JL
37460msgstr ""
37461
37462#. type: defvr
39764ef8 37463#: doc/guix.texi:16977
b9fe8fd6
JL
37464#, no-wrap
37465msgid "{Scheme Procedure} cuirass-service-type"
37466msgstr ""
37467
37468#. type: defvr
39764ef8 37469#: doc/guix.texi:16980
b9fe8fd6 37470msgid ""
39764ef8
JL
37471"The type of the Cuirass service. Its value must be a @code{cuirass-"
37472"configuration} object, as described below."
b9fe8fd6
JL
37473msgstr ""
37474
37475#. type: Plain text
39764ef8 37476#: doc/guix.texi:16987
b9fe8fd6
JL
37477msgid ""
37478"To add build jobs, you have to set the @code{specifications} field of the "
37479"configuration. Here is an example of a service defining a build job based "
37480"on a specification that can be found in Cuirass source tree. This service "
37481"polls the Guix repository and builds a subset of the Guix packages, as "
37482"prescribed in the @file{gnu-system.scm} example spec:"
37483msgstr ""
37484
37485#. type: example
39764ef8 37486#: doc/guix.texi:16999
b9fe8fd6
JL
37487#, no-wrap
37488msgid ""
37489"(let ((spec #~((#:name . \"guix\")\n"
37490" (#:url . \"git://git.savannah.gnu.org/guix.git\")\n"
37491" (#:load-path . \".\")\n"
37492" (#:file . \"build-aux/cuirass/gnu-system.scm\")\n"
37493" (#:proc . cuirass-jobs)\n"
37494" (#:arguments (subset . \"hello\"))\n"
37495" (#:branch . \"master\"))))\n"
37496" (service cuirass-service-type\n"
37497" (cuirass-configuration\n"
37498" (specifications #~(list '#$spec)))))\n"
37499msgstr ""
37500
37501#. type: Plain text
39764ef8 37502#: doc/guix.texi:17004
b9fe8fd6
JL
37503msgid ""
37504"While information related to build jobs is located directly in the "
37505"specifications, global settings for the @command{cuirass} process are "
37506"accessible in other @code{cuirass-configuration} fields."
37507msgstr ""
37508
37509#. type: deftp
39764ef8 37510#: doc/guix.texi:17005
b9fe8fd6
JL
37511#, no-wrap
37512msgid "{Data Type} cuirass-configuration"
37513msgstr ""
37514
37515#. type: deftp
39764ef8 37516#: doc/guix.texi:17007
b9fe8fd6
JL
37517msgid "Data type representing the configuration of Cuirass."
37518msgstr ""
37519
37520#. type: item
39764ef8 37521#: doc/guix.texi:17009
b9fe8fd6
JL
37522#, no-wrap
37523msgid "@code{log-file} (default: @code{\"/var/log/cuirass.log\"})"
37524msgstr ""
37525
37526#. type: table
39764ef8 37527#: doc/guix.texi:17011
b9fe8fd6
JL
37528msgid "Location of the log file."
37529msgstr ""
37530
37531#. type: item
39764ef8 37532#: doc/guix.texi:17012
b9fe8fd6
JL
37533#, no-wrap
37534msgid "@code{cache-directory} (default: @code{\"/var/cache/cuirass\"})"
37535msgstr ""
37536
37537#. type: table
39764ef8 37538#: doc/guix.texi:17014
b9fe8fd6
JL
37539msgid "Location of the repository cache."
37540msgstr ""
37541
37542#. type: item
39764ef8 37543#: doc/guix.texi:17015
b9fe8fd6
JL
37544#, no-wrap
37545msgid "@code{user} (default: @code{\"cuirass\"})"
37546msgstr ""
37547
37548#. type: table
39764ef8 37549#: doc/guix.texi:17017
b9fe8fd6
JL
37550msgid "Owner of the @code{cuirass} process."
37551msgstr ""
37552
37553#. type: item
39764ef8 37554#: doc/guix.texi:17018
b9fe8fd6
JL
37555#, no-wrap
37556msgid "@code{group} (default: @code{\"cuirass\"})"
37557msgstr ""
37558
37559#. type: table
39764ef8 37560#: doc/guix.texi:17020
b9fe8fd6
JL
37561msgid "Owner's group of the @code{cuirass} process."
37562msgstr ""
37563
37564#. type: item
39764ef8 37565#: doc/guix.texi:17021
b9fe8fd6
JL
37566#, no-wrap
37567msgid "@code{interval} (default: @code{60})"
37568msgstr ""
37569
37570#. type: table
39764ef8 37571#: doc/guix.texi:17024
b9fe8fd6
JL
37572msgid ""
37573"Number of seconds between the poll of the repositories followed by the "
37574"Cuirass jobs."
37575msgstr ""
37576
37577#. type: item
39764ef8 37578#: doc/guix.texi:17025
b9fe8fd6
JL
37579#, no-wrap
37580msgid "@code{database} (default: @code{\"/var/run/cuirass/cuirass.db\"})"
37581msgstr ""
37582
37583#. type: table
39764ef8 37584#: doc/guix.texi:17028
b9fe8fd6
JL
37585msgid ""
37586"Location of sqlite database which contains the build results and previously "
37587"added specifications."
37588msgstr ""
37589
37590#. type: item
39764ef8 37591#: doc/guix.texi:17029
b9fe8fd6
JL
37592#, no-wrap
37593msgid "@code{port} (default: @code{8081})"
37594msgstr ""
37595
37596#. type: table
39764ef8 37597#: doc/guix.texi:17031
b9fe8fd6
JL
37598msgid "Port number used by the HTTP server."
37599msgstr ""
37600
37601#. type: table
39764ef8 37602#: doc/guix.texi:17035
b9fe8fd6
JL
37603msgid ""
37604"Listen on the network interface for @var{host}. The default is to accept "
37605"connections from localhost."
37606msgstr ""
37607
37608#. type: item
39764ef8 37609#: doc/guix.texi:17036
b9fe8fd6
JL
37610#, no-wrap
37611msgid "@code{specifications} (default: @code{#~'()})"
37612msgstr ""
37613
37614#. type: table
39764ef8 37615#: doc/guix.texi:17042
b9fe8fd6
JL
37616msgid ""
37617"A gexp (@pxref{G-Expressions}) that evaluates to a list of specifications, "
37618"where a specification is an association list (@pxref{Associations Lists,,, "
39764ef8
JL
37619"guile, GNU Guile Reference Manual}) whose keys are keywords (@code{#:keyword-"
37620"example}) as shown in the example above."
b9fe8fd6
JL
37621msgstr ""
37622
37623#. type: item
39764ef8 37624#: doc/guix.texi:17043
b9fe8fd6
JL
37625#, no-wrap
37626msgid "@code{use-substitutes?} (default: @code{#f})"
37627msgstr ""
37628
37629#. type: table
39764ef8 37630#: doc/guix.texi:17046
b9fe8fd6
JL
37631msgid ""
37632"This allows using substitutes to avoid building every dependencies of a job "
37633"from source."
37634msgstr ""
37635
37636#. type: item
39764ef8 37637#: doc/guix.texi:17047
b9fe8fd6
JL
37638#, no-wrap
37639msgid "@code{one-shot?} (default: @code{#f})"
37640msgstr ""
37641
37642#. type: table
39764ef8 37643#: doc/guix.texi:17049
b9fe8fd6
JL
37644msgid "Only evaluate specifications and build derivations once."
37645msgstr ""
37646
37647#. type: item
39764ef8 37648#: doc/guix.texi:17050
b9fe8fd6
JL
37649#, no-wrap
37650msgid "@code{fallback?} (default: @code{#f})"
37651msgstr ""
37652
37653#. type: table
39764ef8 37654#: doc/guix.texi:17053
b9fe8fd6
JL
37655msgid ""
37656"When substituting a pre-built binary fails, fall back to building packages "
37657"locally."
37658msgstr ""
37659
37660#. type: item
39764ef8 37661#: doc/guix.texi:17054
b9fe8fd6
JL
37662#, no-wrap
37663msgid "@code{load-path} (default: @code{'()})"
37664msgstr ""
37665
37666#. type: table
39764ef8 37667#: doc/guix.texi:17057
b9fe8fd6
JL
37668msgid ""
37669"This allows users to define their own packages and make them visible to "
37670"cuirass as in @command{guix build} command."
37671msgstr ""
37672
37673#. type: item
39764ef8 37674#: doc/guix.texi:17058
b9fe8fd6
JL
37675#, no-wrap
37676msgid "@code{cuirass} (default: @code{cuirass})"
37677msgstr ""
37678
37679#. type: table
39764ef8 37680#: doc/guix.texi:17060
b9fe8fd6
JL
37681msgid "The Cuirass package to use."
37682msgstr ""
37683
37684#. type: cindex
39764ef8 37685#: doc/guix.texi:17066
b9fe8fd6
JL
37686#, no-wrap
37687msgid "power management with TLP"
37688msgstr ""
37689
37690#. type: Plain text
39764ef8 37691#: doc/guix.texi:17069
b9fe8fd6
JL
37692msgid ""
37693"The @code{(gnu services pm)} module provides a Guix service definition for "
37694"the Linux power management tool TLP."
37695msgstr ""
37696
37697#. type: Plain text
39764ef8 37698#: doc/guix.texi:17075
b9fe8fd6
JL
37699msgid ""
37700"TLP enables various powersaving modes in userspace and kernel. Contrary to "
37701"@code{upower-service}, it is not a passive, monitoring tool, as it will "
37702"apply custom settings each time a new power source is detected. More "
37703"information can be found at @uref{http://linrunner.de/en/tlp/tlp.html, TLP "
37704"home page}."
37705msgstr ""
37706
37707#. type: deffn
39764ef8 37708#: doc/guix.texi:17076
b9fe8fd6
JL
37709#, no-wrap
37710msgid "{Scheme Variable} tlp-service-type"
37711msgstr ""
37712
37713#. type: deffn
39764ef8 37714#: doc/guix.texi:17080
b9fe8fd6
JL
37715msgid ""
37716"The service type for the TLP tool. Its value should be a valid TLP "
37717"configuration (see below). To use the default settings, simply write:"
37718msgstr ""
37719
37720#. type: example
39764ef8 37721#: doc/guix.texi:17082
b9fe8fd6
JL
37722#, no-wrap
37723msgid "(service tlp-service-type)\n"
37724msgstr ""
37725
37726#. type: Plain text
39764ef8 37727#: doc/guix.texi:17087
b9fe8fd6
JL
37728msgid ""
37729"By default TLP does not need much configuration but most TLP parameters can "
37730"be tweaked using @code{tlp-configuration}."
37731msgstr ""
37732
37733#. type: Plain text
39764ef8 37734#: doc/guix.texi:17093
b9fe8fd6
JL
37735msgid ""
37736"Each parameter definition is preceded by its type; for example, "
37737"@samp{boolean foo} indicates that the @code{foo} parameter should be "
37738"specified as a boolean. Types starting with @code{maybe-} denote parameters "
37739"that won't show up in TLP config file when their value is @code{'disabled}."
37740msgstr ""
37741
37742#. type: Plain text
39764ef8 37743#: doc/guix.texi:17103
b9fe8fd6
JL
37744msgid "Available @code{tlp-configuration} fields are:"
37745msgstr ""
37746
37747#. type: deftypevr
39764ef8 37748#: doc/guix.texi:17104
b9fe8fd6
JL
37749#, no-wrap
37750msgid "{@code{tlp-configuration} parameter} package tlp"
37751msgstr ""
37752
37753#. type: deftypevr
39764ef8 37754#: doc/guix.texi:17106
b9fe8fd6
JL
37755msgid "The TLP package."
37756msgstr ""
37757
37758#. type: deftypevr
39764ef8 37759#: doc/guix.texi:17109
b9fe8fd6
JL
37760#, no-wrap
37761msgid "{@code{tlp-configuration} parameter} boolean tlp-enable?"
37762msgstr ""
37763
37764#. type: deftypevr
39764ef8 37765#: doc/guix.texi:17111
b9fe8fd6
JL
37766msgid "Set to true if you wish to enable TLP."
37767msgstr ""
37768
37769#. type: deftypevr
39764ef8 37770#: doc/guix.texi:17116
b9fe8fd6
JL
37771#, no-wrap
37772msgid "{@code{tlp-configuration} parameter} string tlp-default-mode"
37773msgstr ""
37774
37775#. type: deftypevr
39764ef8 37776#: doc/guix.texi:17119
b9fe8fd6
JL
37777msgid ""
37778"Default mode when no power supply can be detected. Alternatives are AC and "
37779"BAT."
37780msgstr ""
37781
37782#. type: deftypevr
39764ef8 37783#: doc/guix.texi:17121
b9fe8fd6
JL
37784msgid "Defaults to @samp{\"AC\"}."
37785msgstr ""
37786
37787#. type: deftypevr
39764ef8 37788#: doc/guix.texi:17124
b9fe8fd6 37789#, no-wrap
39764ef8 37790msgid "{@code{tlp-configuration} parameter} non-negative-integer disk-idle-secs-on-ac"
b9fe8fd6
JL
37791msgstr ""
37792
37793#. type: deftypevr
39764ef8 37794#: doc/guix.texi:17127
b9fe8fd6
JL
37795msgid ""
37796"Number of seconds Linux kernel has to wait after the disk goes idle, before "
37797"syncing on AC."
37798msgstr ""
37799
37800#. type: deftypevr
39764ef8 37801#: doc/guix.texi:17132
b9fe8fd6 37802#, no-wrap
39764ef8 37803msgid "{@code{tlp-configuration} parameter} non-negative-integer disk-idle-secs-on-bat"
b9fe8fd6
JL
37804msgstr ""
37805
37806#. type: deftypevr
39764ef8 37807#: doc/guix.texi:17134
b9fe8fd6
JL
37808msgid "Same as @code{disk-idle-ac} but on BAT mode."
37809msgstr ""
37810
37811#. type: deftypevr
39764ef8 37812#: doc/guix.texi:17136
b9fe8fd6
JL
37813msgid "Defaults to @samp{2}."
37814msgstr ""
37815
37816#. type: deftypevr
39764ef8 37817#: doc/guix.texi:17139
b9fe8fd6 37818#, no-wrap
39764ef8 37819msgid "{@code{tlp-configuration} parameter} non-negative-integer max-lost-work-secs-on-ac"
b9fe8fd6
JL
37820msgstr ""
37821
37822#. type: deftypevr
39764ef8 37823#: doc/guix.texi:17141
b9fe8fd6
JL
37824msgid "Dirty pages flushing periodicity, expressed in seconds."
37825msgstr ""
37826
37827#. type: deftypevr
39764ef8
JL
37828#: doc/guix.texi:17143 doc/guix.texi:17366 doc/guix.texi:18683
37829#: doc/guix.texi:18691
b9fe8fd6
JL
37830msgid "Defaults to @samp{15}."
37831msgstr ""
37832
37833#. type: deftypevr
39764ef8 37834#: doc/guix.texi:17146
b9fe8fd6 37835#, no-wrap
39764ef8 37836msgid "{@code{tlp-configuration} parameter} non-negative-integer max-lost-work-secs-on-bat"
b9fe8fd6
JL
37837msgstr ""
37838
37839#. type: deftypevr
39764ef8 37840#: doc/guix.texi:17148
b9fe8fd6
JL
37841msgid "Same as @code{max-lost-work-secs-on-ac} but on BAT mode."
37842msgstr ""
37843
37844#. type: deftypevr
39764ef8 37845#: doc/guix.texi:17150
b9fe8fd6
JL
37846msgid "Defaults to @samp{60}."
37847msgstr ""
37848
37849#. type: deftypevr
39764ef8 37850#: doc/guix.texi:17153
b9fe8fd6 37851#, no-wrap
39764ef8 37852msgid "{@code{tlp-configuration} parameter} maybe-space-separated-string-list cpu-scaling-governor-on-ac"
b9fe8fd6
JL
37853msgstr ""
37854
37855#. type: deftypevr
39764ef8 37856#: doc/guix.texi:17157
b9fe8fd6
JL
37857msgid ""
37858"CPU frequency scaling governor on AC mode. With intel_pstate driver, "
37859"alternatives are powersave and performance. With acpi-cpufreq driver, "
37860"alternatives are ondemand, powersave, performance and conservative."
37861msgstr ""
37862
37863#. type: deftypevr
39764ef8
JL
37864#: doc/guix.texi:17159 doc/guix.texi:17166 doc/guix.texi:17173
37865#: doc/guix.texi:17180 doc/guix.texi:17187 doc/guix.texi:17194
37866#: doc/guix.texi:17202 doc/guix.texi:17210 doc/guix.texi:17217
37867#: doc/guix.texi:17224 doc/guix.texi:17231 doc/guix.texi:17238
37868#: doc/guix.texi:17268 doc/guix.texi:17306 doc/guix.texi:17313
37869#: doc/guix.texi:17322 doc/guix.texi:17344 doc/guix.texi:17352
37870#: doc/guix.texi:17359 doc/guix.texi:17514 doc/guix.texi:17534
37871#: doc/guix.texi:17549 doc/guix.texi:17556
b9fe8fd6
JL
37872msgid "Defaults to @samp{disabled}."
37873msgstr ""
37874
37875#. type: deftypevr
39764ef8 37876#: doc/guix.texi:17162
b9fe8fd6 37877#, no-wrap
39764ef8 37878msgid "{@code{tlp-configuration} parameter} maybe-space-separated-string-list cpu-scaling-governor-on-bat"
b9fe8fd6
JL
37879msgstr ""
37880
37881#. type: deftypevr
39764ef8 37882#: doc/guix.texi:17164
b9fe8fd6
JL
37883msgid "Same as @code{cpu-scaling-governor-on-ac} but on BAT mode."
37884msgstr ""
37885
37886#. type: deftypevr
39764ef8 37887#: doc/guix.texi:17169
b9fe8fd6 37888#, no-wrap
39764ef8 37889msgid "{@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-scaling-min-freq-on-ac"
b9fe8fd6
JL
37890msgstr ""
37891
37892#. type: deftypevr
39764ef8 37893#: doc/guix.texi:17171
b9fe8fd6
JL
37894msgid "Set the min available frequency for the scaling governor on AC."
37895msgstr ""
37896
37897#. type: deftypevr
39764ef8 37898#: doc/guix.texi:17176
b9fe8fd6 37899#, no-wrap
39764ef8 37900msgid "{@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-scaling-max-freq-on-ac"
b9fe8fd6
JL
37901msgstr ""
37902
37903#. type: deftypevr
39764ef8 37904#: doc/guix.texi:17178
b9fe8fd6
JL
37905msgid "Set the max available frequency for the scaling governor on AC."
37906msgstr ""
37907
37908#. type: deftypevr
39764ef8 37909#: doc/guix.texi:17183
b9fe8fd6 37910#, no-wrap
39764ef8 37911msgid "{@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-scaling-min-freq-on-bat"
b9fe8fd6
JL
37912msgstr ""
37913
37914#. type: deftypevr
39764ef8 37915#: doc/guix.texi:17185
b9fe8fd6
JL
37916msgid "Set the min available frequency for the scaling governor on BAT."
37917msgstr ""
37918
37919#. type: deftypevr
39764ef8 37920#: doc/guix.texi:17190
b9fe8fd6 37921#, no-wrap
39764ef8 37922msgid "{@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-scaling-max-freq-on-bat"
b9fe8fd6
JL
37923msgstr ""
37924
37925#. type: deftypevr
39764ef8 37926#: doc/guix.texi:17192
b9fe8fd6
JL
37927msgid "Set the max available frequency for the scaling governor on BAT."
37928msgstr ""
37929
37930#. type: deftypevr
39764ef8 37931#: doc/guix.texi:17197
b9fe8fd6 37932#, no-wrap
39764ef8 37933msgid "{@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-min-perf-on-ac"
b9fe8fd6
JL
37934msgstr ""
37935
37936#. type: deftypevr
39764ef8 37937#: doc/guix.texi:17200
b9fe8fd6
JL
37938msgid ""
37939"Limit the min P-state to control the power dissipation of the CPU, in AC "
37940"mode. Values are stated as a percentage of the available performance."
37941msgstr ""
37942
37943#. type: deftypevr
39764ef8 37944#: doc/guix.texi:17205
b9fe8fd6 37945#, no-wrap
39764ef8 37946msgid "{@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-max-perf-on-ac"
b9fe8fd6
JL
37947msgstr ""
37948
37949#. type: deftypevr
39764ef8 37950#: doc/guix.texi:17208
b9fe8fd6
JL
37951msgid ""
37952"Limit the max P-state to control the power dissipation of the CPU, in AC "
37953"mode. Values are stated as a percentage of the available performance."
37954msgstr ""
37955
37956#. type: deftypevr
39764ef8 37957#: doc/guix.texi:17213
b9fe8fd6 37958#, no-wrap
39764ef8 37959msgid "{@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-min-perf-on-bat"
b9fe8fd6
JL
37960msgstr ""
37961
37962#. type: deftypevr
39764ef8 37963#: doc/guix.texi:17215
b9fe8fd6
JL
37964msgid "Same as @code{cpu-min-perf-on-ac} on BAT mode."
37965msgstr ""
37966
37967#. type: deftypevr
39764ef8 37968#: doc/guix.texi:17220
b9fe8fd6 37969#, no-wrap
39764ef8 37970msgid "{@code{tlp-configuration} parameter} maybe-non-negative-integer cpu-max-perf-on-bat"
b9fe8fd6
JL
37971msgstr ""
37972
37973#. type: deftypevr
39764ef8 37974#: doc/guix.texi:17222
b9fe8fd6
JL
37975msgid "Same as @code{cpu-max-perf-on-ac} on BAT mode."
37976msgstr ""
37977
37978#. type: deftypevr
39764ef8 37979#: doc/guix.texi:17227
b9fe8fd6
JL
37980#, no-wrap
37981msgid "{@code{tlp-configuration} parameter} maybe-boolean cpu-boost-on-ac?"
37982msgstr ""
37983
37984#. type: deftypevr
39764ef8 37985#: doc/guix.texi:17229
b9fe8fd6
JL
37986msgid "Enable CPU turbo boost feature on AC mode."
37987msgstr ""
37988
37989#. type: deftypevr
39764ef8 37990#: doc/guix.texi:17234
b9fe8fd6
JL
37991#, no-wrap
37992msgid "{@code{tlp-configuration} parameter} maybe-boolean cpu-boost-on-bat?"
37993msgstr ""
37994
37995#. type: deftypevr
39764ef8 37996#: doc/guix.texi:17236
b9fe8fd6
JL
37997msgid "Same as @code{cpu-boost-on-ac?} on BAT mode."
37998msgstr ""
37999
38000#. type: deftypevr
39764ef8 38001#: doc/guix.texi:17241
b9fe8fd6
JL
38002#, no-wrap
38003msgid "{@code{tlp-configuration} parameter} boolean sched-powersave-on-ac?"
38004msgstr ""
38005
38006#. type: deftypevr
39764ef8 38007#: doc/guix.texi:17244
b9fe8fd6
JL
38008msgid ""
38009"Allow Linux kernel to minimize the number of CPU cores/hyper-threads used "
38010"under light load conditions."
38011msgstr ""
38012
38013#. type: deftypevr
39764ef8 38014#: doc/guix.texi:17249
b9fe8fd6
JL
38015#, no-wrap
38016msgid "{@code{tlp-configuration} parameter} boolean sched-powersave-on-bat?"
38017msgstr ""
38018
38019#. type: deftypevr
39764ef8 38020#: doc/guix.texi:17251
b9fe8fd6
JL
38021msgid "Same as @code{sched-powersave-on-ac?} but on BAT mode."
38022msgstr ""
38023
38024#. type: deftypevr
39764ef8 38025#: doc/guix.texi:17256
b9fe8fd6
JL
38026#, no-wrap
38027msgid "{@code{tlp-configuration} parameter} boolean nmi-watchdog?"
38028msgstr ""
38029
38030#. type: deftypevr
39764ef8 38031#: doc/guix.texi:17258
b9fe8fd6
JL
38032msgid "Enable Linux kernel NMI watchdog."
38033msgstr ""
38034
38035#. type: deftypevr
39764ef8 38036#: doc/guix.texi:17263
b9fe8fd6
JL
38037#, no-wrap
38038msgid "{@code{tlp-configuration} parameter} maybe-string phc-controls"
38039msgstr ""
38040
38041#. type: deftypevr
39764ef8 38042#: doc/guix.texi:17266
b9fe8fd6
JL
38043msgid ""
38044"For Linux kernels with PHC patch applied, change CPU voltages. An example "
38045"value would be @samp{\"F:V F:V F:V F:V\"}."
38046msgstr ""
38047
38048#. type: deftypevr
39764ef8 38049#: doc/guix.texi:17271
b9fe8fd6
JL
38050#, no-wrap
38051msgid "{@code{tlp-configuration} parameter} string energy-perf-policy-on-ac"
38052msgstr ""
38053
38054#. type: deftypevr
39764ef8 38055#: doc/guix.texi:17274
b9fe8fd6
JL
38056msgid ""
38057"Set CPU performance versus energy saving policy on AC. Alternatives are "
38058"performance, normal, powersave."
38059msgstr ""
38060
38061#. type: deftypevr
39764ef8 38062#: doc/guix.texi:17276 doc/guix.texi:17374 doc/guix.texi:17404
b9fe8fd6
JL
38063msgid "Defaults to @samp{\"performance\"}."
38064msgstr ""
38065
38066#. type: deftypevr
39764ef8 38067#: doc/guix.texi:17279
b9fe8fd6
JL
38068#, no-wrap
38069msgid "{@code{tlp-configuration} parameter} string energy-perf-policy-on-bat"
38070msgstr ""
38071
38072#. type: deftypevr
39764ef8 38073#: doc/guix.texi:17281
b9fe8fd6
JL
38074msgid "Same as @code{energy-perf-policy-ac} but on BAT mode."
38075msgstr ""
38076
38077#. type: deftypevr
39764ef8 38078#: doc/guix.texi:17283 doc/guix.texi:17381
b9fe8fd6
JL
38079msgid "Defaults to @samp{\"powersave\"}."
38080msgstr ""
38081
38082#. type: deftypevr
39764ef8 38083#: doc/guix.texi:17286
b9fe8fd6 38084#, no-wrap
39764ef8 38085msgid "{@code{tlp-configuration} parameter} space-separated-string-list disks-devices"
b9fe8fd6
JL
38086msgstr ""
38087
38088#. type: deftypevr
39764ef8 38089#: doc/guix.texi:17288
b9fe8fd6
JL
38090msgid "Hard disk devices."
38091msgstr ""
38092
38093#. type: deftypevr
39764ef8 38094#: doc/guix.texi:17291
b9fe8fd6 38095#, no-wrap
39764ef8 38096msgid "{@code{tlp-configuration} parameter} space-separated-string-list disk-apm-level-on-ac"
b9fe8fd6
JL
38097msgstr ""
38098
38099#. type: deftypevr
39764ef8 38100#: doc/guix.texi:17293
b9fe8fd6
JL
38101msgid "Hard disk advanced power management level."
38102msgstr ""
38103
38104#. type: deftypevr
39764ef8 38105#: doc/guix.texi:17296
b9fe8fd6 38106#, no-wrap
39764ef8 38107msgid "{@code{tlp-configuration} parameter} space-separated-string-list disk-apm-level-on-bat"
b9fe8fd6
JL
38108msgstr ""
38109
38110#. type: deftypevr
39764ef8 38111#: doc/guix.texi:17298
b9fe8fd6
JL
38112msgid "Same as @code{disk-apm-bat} but on BAT mode."
38113msgstr ""
38114
38115#. type: deftypevr
39764ef8 38116#: doc/guix.texi:17301
b9fe8fd6 38117#, no-wrap
39764ef8 38118msgid "{@code{tlp-configuration} parameter} maybe-space-separated-string-list disk-spindown-timeout-on-ac"
b9fe8fd6
JL
38119msgstr ""
38120
38121#. type: deftypevr
39764ef8 38122#: doc/guix.texi:17304
b9fe8fd6
JL
38123msgid ""
38124"Hard disk spin down timeout. One value has to be specified for each "
38125"declared hard disk."
38126msgstr ""
38127
38128#. type: deftypevr
39764ef8 38129#: doc/guix.texi:17309
b9fe8fd6 38130#, no-wrap
39764ef8 38131msgid "{@code{tlp-configuration} parameter} maybe-space-separated-string-list disk-spindown-timeout-on-bat"
b9fe8fd6
JL
38132msgstr ""
38133
38134#. type: deftypevr
39764ef8 38135#: doc/guix.texi:17311
b9fe8fd6
JL
38136msgid "Same as @code{disk-spindown-timeout-on-ac} but on BAT mode."
38137msgstr ""
38138
38139#. type: deftypevr
39764ef8 38140#: doc/guix.texi:17316
b9fe8fd6 38141#, no-wrap
39764ef8 38142msgid "{@code{tlp-configuration} parameter} maybe-space-separated-string-list disk-iosched"
b9fe8fd6
JL
38143msgstr ""
38144
38145#. type: deftypevr
39764ef8 38146#: doc/guix.texi:17320
b9fe8fd6
JL
38147msgid ""
38148"Select IO scheduler for disk devices. One value has to be specified for "
38149"each declared hard disk. Example alternatives are cfq, deadline and noop."
38150msgstr ""
38151
38152#. type: deftypevr
39764ef8 38153#: doc/guix.texi:17325
b9fe8fd6
JL
38154#, no-wrap
38155msgid "{@code{tlp-configuration} parameter} string sata-linkpwr-on-ac"
38156msgstr ""
38157
38158#. type: deftypevr
39764ef8 38159#: doc/guix.texi:17328
b9fe8fd6
JL
38160msgid ""
38161"SATA aggressive link power management (ALPM) level. Alternatives are "
38162"min_power, medium_power, max_performance."
38163msgstr ""
38164
38165#. type: deftypevr
39764ef8 38166#: doc/guix.texi:17330
b9fe8fd6
JL
38167msgid "Defaults to @samp{\"max_performance\"}."
38168msgstr ""
38169
38170#. type: deftypevr
39764ef8 38171#: doc/guix.texi:17333
b9fe8fd6
JL
38172#, no-wrap
38173msgid "{@code{tlp-configuration} parameter} string sata-linkpwr-on-bat"
38174msgstr ""
38175
38176#. type: deftypevr
39764ef8 38177#: doc/guix.texi:17335
b9fe8fd6
JL
38178msgid "Same as @code{sata-linkpwr-ac} but on BAT mode."
38179msgstr ""
38180
38181#. type: deftypevr
39764ef8 38182#: doc/guix.texi:17337
b9fe8fd6
JL
38183msgid "Defaults to @samp{\"min_power\"}."
38184msgstr ""
38185
38186#. type: deftypevr
39764ef8 38187#: doc/guix.texi:17340
b9fe8fd6
JL
38188#, no-wrap
38189msgid "{@code{tlp-configuration} parameter} maybe-string sata-linkpwr-blacklist"
38190msgstr ""
38191
38192#. type: deftypevr
39764ef8 38193#: doc/guix.texi:17342
b9fe8fd6
JL
38194msgid "Exclude specified SATA host devices for link power management."
38195msgstr ""
38196
38197#. type: deftypevr
39764ef8 38198#: doc/guix.texi:17347
b9fe8fd6 38199#, no-wrap
39764ef8 38200msgid "{@code{tlp-configuration} parameter} maybe-on-off-boolean ahci-runtime-pm-on-ac?"
b9fe8fd6
JL
38201msgstr ""
38202
38203#. type: deftypevr
39764ef8
JL
38204#: doc/guix.texi:17350
38205msgid ""
38206"Enable Runtime Power Management for AHCI controller and disks on AC mode."
b9fe8fd6
JL
38207msgstr ""
38208
38209#. type: deftypevr
39764ef8 38210#: doc/guix.texi:17355
b9fe8fd6 38211#, no-wrap
39764ef8 38212msgid "{@code{tlp-configuration} parameter} maybe-on-off-boolean ahci-runtime-pm-on-bat?"
b9fe8fd6
JL
38213msgstr ""
38214
38215#. type: deftypevr
39764ef8 38216#: doc/guix.texi:17357
b9fe8fd6
JL
38217msgid "Same as @code{ahci-runtime-pm-on-ac} on BAT mode."
38218msgstr ""
38219
38220#. type: deftypevr
39764ef8 38221#: doc/guix.texi:17362
b9fe8fd6 38222#, no-wrap
39764ef8 38223msgid "{@code{tlp-configuration} parameter} non-negative-integer ahci-runtime-pm-timeout"
b9fe8fd6
JL
38224msgstr ""
38225
38226#. type: deftypevr
39764ef8 38227#: doc/guix.texi:17364
b9fe8fd6
JL
38228msgid "Seconds of inactivity before disk is suspended."
38229msgstr ""
38230
38231#. type: deftypevr
39764ef8 38232#: doc/guix.texi:17369
b9fe8fd6
JL
38233#, no-wrap
38234msgid "{@code{tlp-configuration} parameter} string pcie-aspm-on-ac"
38235msgstr ""
38236
38237#. type: deftypevr
39764ef8 38238#: doc/guix.texi:17372
b9fe8fd6
JL
38239msgid ""
38240"PCI Express Active State Power Management level. Alternatives are default, "
38241"performance, powersave."
38242msgstr ""
38243
38244#. type: deftypevr
39764ef8 38245#: doc/guix.texi:17377
b9fe8fd6
JL
38246#, no-wrap
38247msgid "{@code{tlp-configuration} parameter} string pcie-aspm-on-bat"
38248msgstr ""
38249
38250#. type: deftypevr
39764ef8 38251#: doc/guix.texi:17379
b9fe8fd6
JL
38252msgid "Same as @code{pcie-aspm-ac} but on BAT mode."
38253msgstr ""
38254
38255#. type: deftypevr
39764ef8 38256#: doc/guix.texi:17384
b9fe8fd6
JL
38257#, no-wrap
38258msgid "{@code{tlp-configuration} parameter} string radeon-power-profile-on-ac"
38259msgstr ""
38260
38261#. type: deftypevr
39764ef8 38262#: doc/guix.texi:17387
b9fe8fd6
JL
38263msgid ""
38264"Radeon graphics clock speed level. Alternatives are low, mid, high, auto, "
38265"default."
38266msgstr ""
38267
38268#. type: deftypevr
39764ef8 38269#: doc/guix.texi:17389
b9fe8fd6
JL
38270msgid "Defaults to @samp{\"high\"}."
38271msgstr ""
38272
38273#. type: deftypevr
39764ef8 38274#: doc/guix.texi:17392
b9fe8fd6
JL
38275#, no-wrap
38276msgid "{@code{tlp-configuration} parameter} string radeon-power-profile-on-bat"
38277msgstr ""
38278
38279#. type: deftypevr
39764ef8 38280#: doc/guix.texi:17394
b9fe8fd6
JL
38281msgid "Same as @code{radeon-power-ac} but on BAT mode."
38282msgstr ""
38283
38284#. type: deftypevr
39764ef8 38285#: doc/guix.texi:17396
b9fe8fd6
JL
38286msgid "Defaults to @samp{\"low\"}."
38287msgstr ""
38288
38289#. type: deftypevr
39764ef8 38290#: doc/guix.texi:17399
b9fe8fd6
JL
38291#, no-wrap
38292msgid "{@code{tlp-configuration} parameter} string radeon-dpm-state-on-ac"
38293msgstr ""
38294
38295#. type: deftypevr
39764ef8 38296#: doc/guix.texi:17402
b9fe8fd6
JL
38297msgid ""
38298"Radeon dynamic power management method (DPM). Alternatives are battery, "
38299"performance."
38300msgstr ""
38301
38302#. type: deftypevr
39764ef8 38303#: doc/guix.texi:17407
b9fe8fd6
JL
38304#, no-wrap
38305msgid "{@code{tlp-configuration} parameter} string radeon-dpm-state-on-bat"
38306msgstr ""
38307
38308#. type: deftypevr
39764ef8 38309#: doc/guix.texi:17409
b9fe8fd6
JL
38310msgid "Same as @code{radeon-dpm-state-ac} but on BAT mode."
38311msgstr ""
38312
38313#. type: deftypevr
39764ef8 38314#: doc/guix.texi:17411
b9fe8fd6
JL
38315msgid "Defaults to @samp{\"battery\"}."
38316msgstr ""
38317
38318#. type: deftypevr
39764ef8 38319#: doc/guix.texi:17414
b9fe8fd6
JL
38320#, no-wrap
38321msgid "{@code{tlp-configuration} parameter} string radeon-dpm-perf-level-on-ac"
38322msgstr ""
38323
38324#. type: deftypevr
39764ef8 38325#: doc/guix.texi:17416
b9fe8fd6
JL
38326msgid "Radeon DPM performance level. Alternatives are auto, low, high."
38327msgstr ""
38328
38329#. type: deftypevr
39764ef8 38330#: doc/guix.texi:17418 doc/guix.texi:17425 doc/guix.texi:17499
b9fe8fd6
JL
38331msgid "Defaults to @samp{\"auto\"}."
38332msgstr ""
38333
38334#. type: deftypevr
39764ef8 38335#: doc/guix.texi:17421
b9fe8fd6
JL
38336#, no-wrap
38337msgid "{@code{tlp-configuration} parameter} string radeon-dpm-perf-level-on-bat"
38338msgstr ""
38339
38340#. type: deftypevr
39764ef8 38341#: doc/guix.texi:17423
b9fe8fd6
JL
38342msgid "Same as @code{radeon-dpm-perf-ac} but on BAT mode."
38343msgstr ""
38344
38345#. type: deftypevr
39764ef8 38346#: doc/guix.texi:17428
b9fe8fd6
JL
38347#, no-wrap
38348msgid "{@code{tlp-configuration} parameter} on-off-boolean wifi-pwr-on-ac?"
38349msgstr ""
38350
38351#. type: deftypevr
39764ef8 38352#: doc/guix.texi:17430
b9fe8fd6
JL
38353msgid "Wifi power saving mode."
38354msgstr ""
38355
38356#. type: deftypevr
39764ef8 38357#: doc/guix.texi:17435
b9fe8fd6
JL
38358#, no-wrap
38359msgid "{@code{tlp-configuration} parameter} on-off-boolean wifi-pwr-on-bat?"
38360msgstr ""
38361
38362#. type: deftypevr
39764ef8 38363#: doc/guix.texi:17437
b9fe8fd6
JL
38364msgid "Same as @code{wifi-power-ac?} but on BAT mode."
38365msgstr ""
38366
38367#. type: deftypevr
39764ef8 38368#: doc/guix.texi:17442
b9fe8fd6
JL
38369#, no-wrap
38370msgid "{@code{tlp-configuration} parameter} y-n-boolean wol-disable?"
38371msgstr ""
38372
38373#. type: deftypevr
39764ef8 38374#: doc/guix.texi:17444
b9fe8fd6
JL
38375msgid "Disable wake on LAN."
38376msgstr ""
38377
38378#. type: deftypevr
39764ef8 38379#: doc/guix.texi:17449
b9fe8fd6 38380#, no-wrap
39764ef8 38381msgid "{@code{tlp-configuration} parameter} non-negative-integer sound-power-save-on-ac"
b9fe8fd6
JL
38382msgstr ""
38383
38384#. type: deftypevr
39764ef8 38385#: doc/guix.texi:17452
b9fe8fd6
JL
38386msgid ""
38387"Timeout duration in seconds before activating audio power saving on Intel "
38388"HDA and AC97 devices. A value of 0 disables power saving."
38389msgstr ""
38390
38391#. type: deftypevr
39764ef8 38392#: doc/guix.texi:17457
b9fe8fd6 38393#, no-wrap
39764ef8 38394msgid "{@code{tlp-configuration} parameter} non-negative-integer sound-power-save-on-bat"
b9fe8fd6
JL
38395msgstr ""
38396
38397#. type: deftypevr
39764ef8 38398#: doc/guix.texi:17459
b9fe8fd6
JL
38399msgid "Same as @code{sound-powersave-ac} but on BAT mode."
38400msgstr ""
38401
38402#. type: deftypevr
39764ef8 38403#: doc/guix.texi:17461 doc/guix.texi:17976 doc/guix.texi:18120
b9fe8fd6
JL
38404msgid "Defaults to @samp{1}."
38405msgstr ""
38406
38407#. type: deftypevr
39764ef8 38408#: doc/guix.texi:17464
b9fe8fd6 38409#, no-wrap
39764ef8 38410msgid "{@code{tlp-configuration} parameter} y-n-boolean sound-power-save-controller?"
b9fe8fd6
JL
38411msgstr ""
38412
38413#. type: deftypevr
39764ef8 38414#: doc/guix.texi:17466
b9fe8fd6
JL
38415msgid "Disable controller in powersaving mode on Intel HDA devices."
38416msgstr ""
38417
38418#. type: deftypevr
39764ef8 38419#: doc/guix.texi:17471
b9fe8fd6
JL
38420#, no-wrap
38421msgid "{@code{tlp-configuration} parameter} boolean bay-poweroff-on-bat?"
38422msgstr ""
38423
38424#. type: deftypevr
39764ef8 38425#: doc/guix.texi:17475
b9fe8fd6
JL
38426msgid ""
38427"Enable optical drive in UltraBay/MediaBay on BAT mode. Drive can be powered "
38428"on again by releasing (and reinserting) the eject lever or by pressing the "
38429"disc eject button on newer models."
38430msgstr ""
38431
38432#. type: deftypevr
39764ef8 38433#: doc/guix.texi:17480
b9fe8fd6
JL
38434#, no-wrap
38435msgid "{@code{tlp-configuration} parameter} string bay-device"
38436msgstr ""
38437
38438#. type: deftypevr
39764ef8 38439#: doc/guix.texi:17482
b9fe8fd6
JL
38440msgid "Name of the optical drive device to power off."
38441msgstr ""
38442
38443#. type: deftypevr
39764ef8 38444#: doc/guix.texi:17484
b9fe8fd6
JL
38445msgid "Defaults to @samp{\"sr0\"}."
38446msgstr ""
38447
38448#. type: deftypevr
39764ef8 38449#: doc/guix.texi:17487
b9fe8fd6
JL
38450#, no-wrap
38451msgid "{@code{tlp-configuration} parameter} string runtime-pm-on-ac"
38452msgstr ""
38453
38454#. type: deftypevr
39764ef8 38455#: doc/guix.texi:17490
b9fe8fd6
JL
38456msgid ""
38457"Runtime Power Management for PCI(e) bus devices. Alternatives are on and "
38458"auto."
38459msgstr ""
38460
38461#. type: deftypevr
39764ef8 38462#: doc/guix.texi:17492
b9fe8fd6
JL
38463msgid "Defaults to @samp{\"on\"}."
38464msgstr ""
38465
38466#. type: deftypevr
39764ef8 38467#: doc/guix.texi:17495
b9fe8fd6
JL
38468#, no-wrap
38469msgid "{@code{tlp-configuration} parameter} string runtime-pm-on-bat"
38470msgstr ""
38471
38472#. type: deftypevr
39764ef8 38473#: doc/guix.texi:17497
b9fe8fd6
JL
38474msgid "Same as @code{runtime-pm-ac} but on BAT mode."
38475msgstr ""
38476
38477#. type: deftypevr
39764ef8 38478#: doc/guix.texi:17502
b9fe8fd6
JL
38479#, no-wrap
38480msgid "{@code{tlp-configuration} parameter} boolean runtime-pm-all?"
38481msgstr ""
38482
38483#. type: deftypevr
39764ef8 38484#: doc/guix.texi:17505
b9fe8fd6 38485msgid ""
39764ef8 38486"Runtime Power Management for all PCI(e) bus devices, except blacklisted ones."
b9fe8fd6
JL
38487msgstr ""
38488
38489#. type: deftypevr
39764ef8 38490#: doc/guix.texi:17510
b9fe8fd6 38491#, no-wrap
39764ef8 38492msgid "{@code{tlp-configuration} parameter} maybe-space-separated-string-list runtime-pm-blacklist"
b9fe8fd6
JL
38493msgstr ""
38494
38495#. type: deftypevr
39764ef8
JL
38496#: doc/guix.texi:17512
38497msgid ""
38498"Exclude specified PCI(e) device addresses from Runtime Power Management."
b9fe8fd6
JL
38499msgstr ""
38500
38501#. type: deftypevr
39764ef8 38502#: doc/guix.texi:17517
b9fe8fd6 38503#, no-wrap
39764ef8 38504msgid "{@code{tlp-configuration} parameter} space-separated-string-list runtime-pm-driver-blacklist"
b9fe8fd6
JL
38505msgstr ""
38506
38507#. type: deftypevr
39764ef8 38508#: doc/guix.texi:17520
b9fe8fd6
JL
38509msgid ""
38510"Exclude PCI(e) devices assigned to the specified drivers from Runtime Power "
38511"Management."
38512msgstr ""
38513
38514#. type: deftypevr
39764ef8 38515#: doc/guix.texi:17523
b9fe8fd6
JL
38516#, no-wrap
38517msgid "{@code{tlp-configuration} parameter} boolean usb-autosuspend?"
38518msgstr ""
38519
38520#. type: deftypevr
39764ef8 38521#: doc/guix.texi:17525
b9fe8fd6
JL
38522msgid "Enable USB autosuspend feature."
38523msgstr ""
38524
38525#. type: deftypevr
39764ef8 38526#: doc/guix.texi:17530
b9fe8fd6
JL
38527#, no-wrap
38528msgid "{@code{tlp-configuration} parameter} maybe-string usb-blacklist"
38529msgstr ""
38530
38531#. type: deftypevr
39764ef8 38532#: doc/guix.texi:17532
b9fe8fd6
JL
38533msgid "Exclude specified devices from USB autosuspend."
38534msgstr ""
38535
38536#. type: deftypevr
39764ef8 38537#: doc/guix.texi:17537
b9fe8fd6
JL
38538#, no-wrap
38539msgid "{@code{tlp-configuration} parameter} boolean usb-blacklist-wwan?"
38540msgstr ""
38541
38542#. type: deftypevr
39764ef8 38543#: doc/guix.texi:17539
b9fe8fd6
JL
38544msgid "Exclude WWAN devices from USB autosuspend."
38545msgstr ""
38546
38547#. type: deftypevr
39764ef8 38548#: doc/guix.texi:17544
b9fe8fd6
JL
38549#, no-wrap
38550msgid "{@code{tlp-configuration} parameter} maybe-string usb-whitelist"
38551msgstr ""
38552
38553#. type: deftypevr
39764ef8 38554#: doc/guix.texi:17547
b9fe8fd6
JL
38555msgid ""
38556"Include specified devices into USB autosuspend, even if they are already "
38557"excluded by the driver or via @code{usb-blacklist-wwan?}."
38558msgstr ""
38559
38560#. type: deftypevr
39764ef8 38561#: doc/guix.texi:17552
b9fe8fd6 38562#, no-wrap
39764ef8 38563msgid "{@code{tlp-configuration} parameter} maybe-boolean usb-autosuspend-disable-on-shutdown?"
b9fe8fd6
JL
38564msgstr ""
38565
38566#. type: deftypevr
39764ef8 38567#: doc/guix.texi:17554
b9fe8fd6
JL
38568msgid "Enable USB autosuspend before shutdown."
38569msgstr ""
38570
38571#. type: deftypevr
39764ef8 38572#: doc/guix.texi:17559
b9fe8fd6 38573#, no-wrap
39764ef8 38574msgid "{@code{tlp-configuration} parameter} boolean restore-device-state-on-startup?"
b9fe8fd6
JL
38575msgstr ""
38576
38577#. type: deftypevr
39764ef8 38578#: doc/guix.texi:17562
b9fe8fd6
JL
38579msgid ""
38580"Restore radio device state (bluetooth, wifi, wwan) from previous shutdown on "
38581"system startup."
38582msgstr ""
38583
38584#. type: Plain text
39764ef8 38585#: doc/guix.texi:17570
b9fe8fd6
JL
38586msgid ""
38587"The @code{(gnu services pm)} module provides an interface to thermald, a CPU "
38588"frequency scaling service which helps prevent overheating."
38589msgstr ""
38590
38591#. type: defvr
39764ef8 38592#: doc/guix.texi:17571
b9fe8fd6
JL
38593#, no-wrap
38594msgid "{Scheme Variable} thermald-service-type"
38595msgstr ""
38596
38597#. type: defvr
39764ef8 38598#: doc/guix.texi:17576
b9fe8fd6
JL
38599msgid ""
38600"This is the service type for @uref{https://01.org/linux-thermal-daemon/, "
38601"thermald}, the Linux Thermal Daemon, which is responsible for controlling "
38602"the thermal state of processors and preventing overheating."
38603msgstr ""
38604
38605#. type: deftp
39764ef8 38606#: doc/guix.texi:17578
b9fe8fd6
JL
38607#, no-wrap
38608msgid "{Data Type} thermald-configuration"
38609msgstr ""
38610
38611#. type: deftp
39764ef8
JL
38612#: doc/guix.texi:17580
38613msgid ""
38614"Data type representing the configuration of @code{thermald-service-type}."
b9fe8fd6
JL
38615msgstr ""
38616
38617#. type: item
39764ef8 38618#: doc/guix.texi:17582
b9fe8fd6
JL
38619#, no-wrap
38620msgid "@code{ignore-cpuid-check?} (default: @code{#f})"
38621msgstr ""
38622
38623#. type: table
39764ef8 38624#: doc/guix.texi:17584
b9fe8fd6
JL
38625msgid "Ignore cpuid check for supported CPU models."
38626msgstr ""
38627
38628#. type: item
39764ef8 38629#: doc/guix.texi:17585
b9fe8fd6
JL
38630#, no-wrap
38631msgid "@code{thermald} (default: @var{thermald})"
38632msgstr ""
38633
38634#. type: table
39764ef8 38635#: doc/guix.texi:17587
b9fe8fd6
JL
38636msgid "Package object of thermald."
38637msgstr ""
38638
38639#. type: Plain text
39764ef8 38640#: doc/guix.texi:17596
b9fe8fd6
JL
38641msgid ""
38642"The @code{(gnu services audio)} module provides a service to start MPD (the "
38643"Music Player Daemon)."
38644msgstr ""
38645
38646#. type: cindex
39764ef8 38647#: doc/guix.texi:17597
b9fe8fd6
JL
38648#, no-wrap
38649msgid "mpd"
38650msgstr ""
38651
38652#. type: subsubheading
39764ef8 38653#: doc/guix.texi:17598
b9fe8fd6
JL
38654#, no-wrap
38655msgid "Music Player Daemon"
38656msgstr ""
38657
38658#. type: Plain text
39764ef8 38659#: doc/guix.texi:17603
b9fe8fd6
JL
38660msgid ""
38661"The Music Player Daemon (MPD) is a service that can play music while being "
38662"controlled from the local machine or over the network by a variety of "
38663"clients."
38664msgstr ""
38665
38666#. type: Plain text
39764ef8 38667#: doc/guix.texi:17606
b9fe8fd6 38668msgid ""
39764ef8
JL
38669"The following example shows how one might run @code{mpd} as user @code{\"bob"
38670"\"} on port @code{6666}. It uses pulseaudio for output."
b9fe8fd6
JL
38671msgstr ""
38672
38673#. type: example
39764ef8 38674#: doc/guix.texi:17612
b9fe8fd6
JL
38675#, no-wrap
38676msgid ""
38677"(service mpd-service-type\n"
38678" (mpd-configuration\n"
38679" (user \"bob\")\n"
38680" (port \"6666\")))\n"
38681msgstr ""
38682
38683#. type: defvr
39764ef8 38684#: doc/guix.texi:17614
b9fe8fd6
JL
38685#, no-wrap
38686msgid "{Scheme Variable} mpd-service-type"
38687msgstr ""
38688
38689#. type: defvr
39764ef8 38690#: doc/guix.texi:17616
b9fe8fd6
JL
38691msgid "The service type for @command{mpd}"
38692msgstr ""
38693
38694#. type: deftp
39764ef8 38695#: doc/guix.texi:17618
b9fe8fd6
JL
38696#, no-wrap
38697msgid "{Data Type} mpd-configuration"
38698msgstr ""
38699
38700#. type: deftp
39764ef8 38701#: doc/guix.texi:17620
b9fe8fd6
JL
38702msgid "Data type representing the configuration of @command{mpd}."
38703msgstr ""
38704
38705#. type: item
39764ef8 38706#: doc/guix.texi:17622
b9fe8fd6
JL
38707#, no-wrap
38708msgid "@code{user} (default: @code{\"mpd\"})"
38709msgstr ""
38710
38711#. type: table
39764ef8 38712#: doc/guix.texi:17624
b9fe8fd6
JL
38713msgid "The user to run mpd as."
38714msgstr ""
38715
38716#. type: item
39764ef8 38717#: doc/guix.texi:17625
b9fe8fd6
JL
38718#, no-wrap
38719msgid "@code{music-dir} (default: @code{\"~/Music\"})"
38720msgstr ""
38721
38722#. type: table
39764ef8 38723#: doc/guix.texi:17627
b9fe8fd6
JL
38724msgid "The directory to scan for music files."
38725msgstr ""
38726
38727#. type: item
39764ef8 38728#: doc/guix.texi:17628
b9fe8fd6
JL
38729#, no-wrap
38730msgid "@code{playlist-dir} (default: @code{\"~/.mpd/playlists\"})"
38731msgstr ""
38732
38733#. type: table
39764ef8 38734#: doc/guix.texi:17630
b9fe8fd6
JL
38735msgid "The directory to store playlists."
38736msgstr ""
38737
38738#. type: item
39764ef8 38739#: doc/guix.texi:17631
b9fe8fd6
JL
38740#, no-wrap
38741msgid "@code{port} (default: @code{\"6600\"})"
38742msgstr ""
38743
38744#. type: table
39764ef8 38745#: doc/guix.texi:17633
b9fe8fd6
JL
38746msgid "The port to run mpd on."
38747msgstr ""
38748
38749#. type: item
39764ef8 38750#: doc/guix.texi:17634
b9fe8fd6
JL
38751#, no-wrap
38752msgid "@code{address} (default: @code{\"any\"})"
38753msgstr ""
38754
38755#. type: table
39764ef8 38756#: doc/guix.texi:17637
b9fe8fd6
JL
38757msgid ""
38758"The address that mpd will bind to. To use a Unix domain socket, an absolute "
38759"path can be specified here."
38760msgstr ""
38761
38762#. type: subsubsection
39764ef8 38763#: doc/guix.texi:17642
b9fe8fd6
JL
38764#, no-wrap
38765msgid "Virtualization services"
38766msgstr ""
38767
38768#. type: Plain text
39764ef8 38769#: doc/guix.texi:17647
b9fe8fd6
JL
38770msgid ""
38771"The @code{(gnu services virtualization)} module provides services for the "
38772"libvirt and virtlog daemons, as well as other virtualization-related "
38773"services."
38774msgstr ""
38775
38776#. type: subsubheading
39764ef8 38777#: doc/guix.texi:17648
b9fe8fd6
JL
38778#, no-wrap
38779msgid "Libvirt daemon"
38780msgstr ""
38781
38782#. type: Plain text
39764ef8 38783#: doc/guix.texi:17652
b9fe8fd6
JL
38784msgid ""
38785"@code{libvirtd} is the server side daemon component of the libvirt "
38786"virtualization management system. This daemon runs on host servers and "
38787"performs required management tasks for virtualized guests."
38788msgstr ""
38789
38790#. type: deffn
39764ef8 38791#: doc/guix.texi:17653
b9fe8fd6
JL
38792#, no-wrap
38793msgid "{Scheme Variable} libvirt-service-type"
38794msgstr ""
38795
38796#. type: deffn
39764ef8 38797#: doc/guix.texi:17656
b9fe8fd6
JL
38798msgid ""
38799"This is the type of the @uref{https://libvirt.org, libvirt daemon}. Its "
38800"value must be a @code{libvirt-configuration}."
38801msgstr ""
38802
38803#. type: example
39764ef8 38804#: doc/guix.texi:17662
b9fe8fd6
JL
38805#, no-wrap
38806msgid ""
38807"(service libvirt-service-type\n"
38808" (libvirt-configuration\n"
38809" (unix-sock-group \"libvirt\")\n"
38810" (tls-port \"16555\")))\n"
38811msgstr ""
38812
38813#. type: Plain text
39764ef8 38814#: doc/guix.texi:17667
b9fe8fd6
JL
38815msgid "Available @code{libvirt-configuration} fields are:"
38816msgstr ""
38817
38818#. type: deftypevr
39764ef8 38819#: doc/guix.texi:17668
b9fe8fd6
JL
38820#, no-wrap
38821msgid "{@code{libvirt-configuration} parameter} package libvirt"
38822msgstr ""
38823
38824#. type: deftypevr
39764ef8 38825#: doc/guix.texi:17670
b9fe8fd6
JL
38826msgid "Libvirt package."
38827msgstr ""
38828
38829#. type: deftypevr
39764ef8 38830#: doc/guix.texi:17673
b9fe8fd6
JL
38831#, no-wrap
38832msgid "{@code{libvirt-configuration} parameter} boolean listen-tls?"
38833msgstr ""
38834
38835#. type: deftypevr
39764ef8 38836#: doc/guix.texi:17676
b9fe8fd6
JL
38837msgid ""
38838"Flag listening for secure TLS connections on the public TCP/IP port. must "
38839"set @code{listen} for this to have any effect."
38840msgstr ""
38841
38842#. type: deftypevr
39764ef8 38843#: doc/guix.texi:17679
b9fe8fd6
JL
38844msgid ""
38845"It is necessary to setup a CA and issue server certificates before using "
38846"this capability."
38847msgstr ""
38848
38849#. type: deftypevr
39764ef8 38850#: doc/guix.texi:17684
b9fe8fd6
JL
38851#, no-wrap
38852msgid "{@code{libvirt-configuration} parameter} boolean listen-tcp?"
38853msgstr ""
38854
38855#. type: deftypevr
39764ef8 38856#: doc/guix.texi:17687
b9fe8fd6
JL
38857msgid ""
38858"Listen for unencrypted TCP connections on the public TCP/IP port. must set "
38859"@code{listen} for this to have any effect."
38860msgstr ""
38861
38862#. type: deftypevr
39764ef8 38863#: doc/guix.texi:17691
b9fe8fd6
JL
38864msgid ""
38865"Using the TCP socket requires SASL authentication by default. Only SASL "
38866"mechanisms which support data encryption are allowed. This is DIGEST_MD5 "
38867"and GSSAPI (Kerberos5)"
38868msgstr ""
38869
38870#. type: deftypevr
39764ef8 38871#: doc/guix.texi:17696
b9fe8fd6
JL
38872#, no-wrap
38873msgid "{@code{libvirt-configuration} parameter} string tls-port"
38874msgstr ""
38875
38876#. type: deftypevr
39764ef8 38877#: doc/guix.texi:17699
b9fe8fd6
JL
38878msgid ""
38879"Port for accepting secure TLS connections This can be a port number, or "
38880"service name"
38881msgstr ""
38882
38883#. type: deftypevr
39764ef8 38884#: doc/guix.texi:17701
b9fe8fd6
JL
38885msgid "Defaults to @samp{\"16514\"}."
38886msgstr ""
38887
38888#. type: deftypevr
39764ef8 38889#: doc/guix.texi:17704
b9fe8fd6
JL
38890#, no-wrap
38891msgid "{@code{libvirt-configuration} parameter} string tcp-port"
38892msgstr ""
38893
38894#. type: deftypevr
39764ef8 38895#: doc/guix.texi:17707
b9fe8fd6
JL
38896msgid ""
38897"Port for accepting insecure TCP connections This can be a port number, or "
38898"service name"
38899msgstr ""
38900
38901#. type: deftypevr
39764ef8 38902#: doc/guix.texi:17709
b9fe8fd6
JL
38903msgid "Defaults to @samp{\"16509\"}."
38904msgstr ""
38905
38906#. type: deftypevr
39764ef8 38907#: doc/guix.texi:17712
b9fe8fd6
JL
38908#, no-wrap
38909msgid "{@code{libvirt-configuration} parameter} string listen-addr"
38910msgstr ""
38911
38912#. type: deftypevr
39764ef8 38913#: doc/guix.texi:17714
b9fe8fd6
JL
38914msgid "IP address or hostname used for client connections."
38915msgstr ""
38916
38917#. type: deftypevr
39764ef8 38918#: doc/guix.texi:17716
b9fe8fd6
JL
38919msgid "Defaults to @samp{\"0.0.0.0\"}."
38920msgstr ""
38921
38922#. type: deftypevr
39764ef8 38923#: doc/guix.texi:17719
b9fe8fd6
JL
38924#, no-wrap
38925msgid "{@code{libvirt-configuration} parameter} boolean mdns-adv?"
38926msgstr ""
38927
38928#. type: deftypevr
39764ef8 38929#: doc/guix.texi:17721
b9fe8fd6
JL
38930msgid "Flag toggling mDNS advertisement of the libvirt service."
38931msgstr ""
38932
38933#. type: deftypevr
39764ef8 38934#: doc/guix.texi:17724
b9fe8fd6
JL
38935msgid ""
38936"Alternatively can disable for all services on a host by stopping the Avahi "
38937"daemon."
38938msgstr ""
38939
38940#. type: deftypevr
39764ef8 38941#: doc/guix.texi:17729
b9fe8fd6
JL
38942#, no-wrap
38943msgid "{@code{libvirt-configuration} parameter} string mdns-name"
38944msgstr ""
38945
38946#. type: deftypevr
39764ef8 38947#: doc/guix.texi:17732
b9fe8fd6
JL
38948msgid ""
38949"Default mDNS advertisement name. This must be unique on the immediate "
38950"broadcast network."
38951msgstr ""
38952
38953#. type: deftypevr
39764ef8 38954#: doc/guix.texi:17734
b9fe8fd6
JL
38955msgid "Defaults to @samp{\"Virtualization Host <hostname>\"}."
38956msgstr ""
38957
38958#. type: deftypevr
39764ef8 38959#: doc/guix.texi:17737
b9fe8fd6
JL
38960#, no-wrap
38961msgid "{@code{libvirt-configuration} parameter} string unix-sock-group"
38962msgstr ""
38963
38964#. type: deftypevr
39764ef8 38965#: doc/guix.texi:17741
b9fe8fd6
JL
38966msgid ""
38967"UNIX domain socket group ownership. This can be used to allow a 'trusted' "
38968"set of users access to management capabilities without becoming root."
38969msgstr ""
38970
38971#. type: deftypevr
39764ef8 38972#: doc/guix.texi:17743
b9fe8fd6
JL
38973msgid "Defaults to @samp{\"root\"}."
38974msgstr ""
38975
38976#. type: deftypevr
39764ef8 38977#: doc/guix.texi:17746
b9fe8fd6
JL
38978#, no-wrap
38979msgid "{@code{libvirt-configuration} parameter} string unix-sock-ro-perms"
38980msgstr ""
38981
38982#. type: deftypevr
39764ef8 38983#: doc/guix.texi:17749
b9fe8fd6
JL
38984msgid ""
38985"UNIX socket permissions for the R/O socket. This is used for monitoring VM "
38986"status only."
38987msgstr ""
38988
38989#. type: deftypevr
39764ef8 38990#: doc/guix.texi:17751 doc/guix.texi:17769
b9fe8fd6
JL
38991msgid "Defaults to @samp{\"0777\"}."
38992msgstr ""
38993
38994#. type: deftypevr
39764ef8 38995#: doc/guix.texi:17754
b9fe8fd6
JL
38996#, no-wrap
38997msgid "{@code{libvirt-configuration} parameter} string unix-sock-rw-perms"
38998msgstr ""
38999
39000#. type: deftypevr
39764ef8 39001#: doc/guix.texi:17758
b9fe8fd6
JL
39002msgid ""
39003"UNIX socket permissions for the R/W socket. Default allows only root. If "
39004"PolicyKit is enabled on the socket, the default will change to allow "
39005"everyone (eg, 0777)"
39006msgstr ""
39007
39008#. type: deftypevr
39764ef8 39009#: doc/guix.texi:17760
b9fe8fd6
JL
39010msgid "Defaults to @samp{\"0770\"}."
39011msgstr ""
39012
39013#. type: deftypevr
39764ef8 39014#: doc/guix.texi:17763
b9fe8fd6
JL
39015#, no-wrap
39016msgid "{@code{libvirt-configuration} parameter} string unix-sock-admin-perms"
39017msgstr ""
39018
39019#. type: deftypevr
39764ef8 39020#: doc/guix.texi:17767
b9fe8fd6
JL
39021msgid ""
39022"UNIX socket permissions for the admin socket. Default allows only owner "
39023"(root), do not change it unless you are sure to whom you are exposing the "
39024"access to."
39025msgstr ""
39026
39027#. type: deftypevr
39764ef8 39028#: doc/guix.texi:17772
b9fe8fd6
JL
39029#, no-wrap
39030msgid "{@code{libvirt-configuration} parameter} string unix-sock-dir"
39031msgstr ""
39032
39033#. type: deftypevr
39764ef8 39034#: doc/guix.texi:17774
b9fe8fd6
JL
39035msgid "The directory in which sockets will be found/created."
39036msgstr ""
39037
39038#. type: deftypevr
39764ef8 39039#: doc/guix.texi:17776
b9fe8fd6
JL
39040msgid "Defaults to @samp{\"/var/run/libvirt\"}."
39041msgstr ""
39042
39043#. type: deftypevr
39764ef8 39044#: doc/guix.texi:17779
b9fe8fd6
JL
39045#, no-wrap
39046msgid "{@code{libvirt-configuration} parameter} string auth-unix-ro"
39047msgstr ""
39048
39049#. type: deftypevr
39764ef8 39050#: doc/guix.texi:17782
b9fe8fd6
JL
39051msgid ""
39052"Authentication scheme for UNIX read-only sockets. By default socket "
39053"permissions allow anyone to connect"
39054msgstr ""
39055
39056#. type: deftypevr
39764ef8 39057#: doc/guix.texi:17784 doc/guix.texi:17793
b9fe8fd6
JL
39058msgid "Defaults to @samp{\"polkit\"}."
39059msgstr ""
39060
39061#. type: deftypevr
39764ef8 39062#: doc/guix.texi:17787
b9fe8fd6
JL
39063#, no-wrap
39064msgid "{@code{libvirt-configuration} parameter} string auth-unix-rw"
39065msgstr ""
39066
39067#. type: deftypevr
39764ef8 39068#: doc/guix.texi:17791
b9fe8fd6
JL
39069msgid ""
39070"Authentication scheme for UNIX read-write sockets. By default socket "
39071"permissions only allow root. If PolicyKit support was compiled into "
39072"libvirt, the default will be to use 'polkit' auth."
39073msgstr ""
39074
39075#. type: deftypevr
39764ef8 39076#: doc/guix.texi:17796
b9fe8fd6
JL
39077#, no-wrap
39078msgid "{@code{libvirt-configuration} parameter} string auth-tcp"
39079msgstr ""
39080
39081#. type: deftypevr
39764ef8 39082#: doc/guix.texi:17800
b9fe8fd6
JL
39083msgid ""
39084"Authentication scheme for TCP sockets. If you don't enable SASL, then all "
39085"TCP traffic is cleartext. Don't do this outside of a dev/test scenario."
39086msgstr ""
39087
39088#. type: deftypevr
39764ef8 39089#: doc/guix.texi:17802
b9fe8fd6
JL
39090msgid "Defaults to @samp{\"sasl\"}."
39091msgstr ""
39092
39093#. type: deftypevr
39764ef8 39094#: doc/guix.texi:17805
b9fe8fd6
JL
39095#, no-wrap
39096msgid "{@code{libvirt-configuration} parameter} string auth-tls"
39097msgstr ""
39098
39099#. type: deftypevr
39764ef8 39100#: doc/guix.texi:17809
b9fe8fd6
JL
39101msgid ""
39102"Authentication scheme for TLS sockets. TLS sockets already have encryption "
39103"provided by the TLS layer, and limited authentication is done by "
39104"certificates."
39105msgstr ""
39106
39107#. type: deftypevr
39764ef8 39108#: doc/guix.texi:17812
b9fe8fd6
JL
39109msgid ""
39110"It is possible to make use of any SASL authentication mechanism as well, by "
39111"using 'sasl' for this option"
39112msgstr ""
39113
39114#. type: deftypevr
39764ef8 39115#: doc/guix.texi:17814
b9fe8fd6
JL
39116msgid "Defaults to @samp{\"none\"}."
39117msgstr ""
39118
39119#. type: deftypevr
39764ef8 39120#: doc/guix.texi:17817
b9fe8fd6
JL
39121#, no-wrap
39122msgid "{@code{libvirt-configuration} parameter} optional-list access-drivers"
39123msgstr ""
39124
39125#. type: deftypevr
39764ef8 39126#: doc/guix.texi:17819
b9fe8fd6
JL
39127msgid "API access control scheme."
39128msgstr ""
39129
39130#. type: deftypevr
39764ef8 39131#: doc/guix.texi:17822
b9fe8fd6
JL
39132msgid ""
39133"By default an authenticated user is allowed access to all APIs. Access "
39134"drivers can place restrictions on this."
39135msgstr ""
39136
39137#. type: deftypevr
39764ef8 39138#: doc/guix.texi:17827
b9fe8fd6
JL
39139#, no-wrap
39140msgid "{@code{libvirt-configuration} parameter} string key-file"
39141msgstr ""
39142
39143#. type: deftypevr
39764ef8 39144#: doc/guix.texi:17830
b9fe8fd6
JL
39145msgid ""
39146"Server key file path. If set to an empty string, then no private key is "
39147"loaded."
39148msgstr ""
39149
39150#. type: deftypevr
39764ef8 39151#: doc/guix.texi:17835
b9fe8fd6
JL
39152#, no-wrap
39153msgid "{@code{libvirt-configuration} parameter} string cert-file"
39154msgstr ""
39155
39156#. type: deftypevr
39764ef8 39157#: doc/guix.texi:17838
b9fe8fd6
JL
39158msgid ""
39159"Server key file path. If set to an empty string, then no certificate is "
39160"loaded."
39161msgstr ""
39162
39163#. type: deftypevr
39764ef8 39164#: doc/guix.texi:17843
b9fe8fd6
JL
39165#, no-wrap
39166msgid "{@code{libvirt-configuration} parameter} string ca-file"
39167msgstr ""
39168
39169#. type: deftypevr
39764ef8 39170#: doc/guix.texi:17846
b9fe8fd6
JL
39171msgid ""
39172"Server key file path. If set to an empty string, then no CA certificate is "
39173"loaded."
39174msgstr ""
39175
39176#. type: deftypevr
39764ef8 39177#: doc/guix.texi:17851
b9fe8fd6
JL
39178#, no-wrap
39179msgid "{@code{libvirt-configuration} parameter} string crl-file"
39180msgstr ""
39181
39182#. type: deftypevr
39764ef8 39183#: doc/guix.texi:17854
b9fe8fd6
JL
39184msgid ""
39185"Certificate revocation list path. If set to an empty string, then no CRL is "
39186"loaded."
39187msgstr ""
39188
39189#. type: deftypevr
39764ef8 39190#: doc/guix.texi:17859
b9fe8fd6
JL
39191#, no-wrap
39192msgid "{@code{libvirt-configuration} parameter} boolean tls-no-sanity-cert"
39193msgstr ""
39194
39195#. type: deftypevr
39764ef8 39196#: doc/guix.texi:17861
b9fe8fd6
JL
39197msgid "Disable verification of our own server certificates."
39198msgstr ""
39199
39200#. type: deftypevr
39764ef8 39201#: doc/guix.texi:17864
b9fe8fd6
JL
39202msgid ""
39203"When libvirtd starts it performs some sanity checks against its own "
39204"certificates."
39205msgstr ""
39206
39207#. type: deftypevr
39764ef8 39208#: doc/guix.texi:17869
b9fe8fd6
JL
39209#, no-wrap
39210msgid "{@code{libvirt-configuration} parameter} boolean tls-no-verify-cert"
39211msgstr ""
39212
39213#. type: deftypevr
39764ef8 39214#: doc/guix.texi:17871
b9fe8fd6
JL
39215msgid "Disable verification of client certificates."
39216msgstr ""
39217
39218#. type: deftypevr
39764ef8 39219#: doc/guix.texi:17875
b9fe8fd6
JL
39220msgid ""
39221"Client certificate verification is the primary authentication mechanism. "
39222"Any client which does not present a certificate signed by the CA will be "
39223"rejected."
39224msgstr ""
39225
39226#. type: deftypevr
39764ef8 39227#: doc/guix.texi:17880
b9fe8fd6
JL
39228#, no-wrap
39229msgid "{@code{libvirt-configuration} parameter} optional-list tls-allowed-dn-list"
39230msgstr ""
39231
39232#. type: deftypevr
39764ef8 39233#: doc/guix.texi:17882
b9fe8fd6
JL
39234msgid "Whitelist of allowed x509 Distinguished Name."
39235msgstr ""
39236
39237#. type: deftypevr
39764ef8 39238#: doc/guix.texi:17887
b9fe8fd6 39239#, no-wrap
39764ef8 39240msgid "{@code{libvirt-configuration} parameter} optional-list sasl-allowed-usernames"
b9fe8fd6
JL
39241msgstr ""
39242
39243#. type: deftypevr
39764ef8 39244#: doc/guix.texi:17890
b9fe8fd6
JL
39245msgid ""
39246"Whitelist of allowed SASL usernames. The format for username depends on the "
39247"SASL authentication mechanism."
39248msgstr ""
39249
39250#. type: deftypevr
39764ef8 39251#: doc/guix.texi:17895
b9fe8fd6
JL
39252#, no-wrap
39253msgid "{@code{libvirt-configuration} parameter} string tls-priority"
39254msgstr ""
39255
39256#. type: deftypevr
39764ef8 39257#: doc/guix.texi:17899
b9fe8fd6
JL
39258msgid ""
39259"Override the compile time default TLS priority string. The default is "
39260"usually \"NORMAL\" unless overridden at build time. Only set this is it is "
39261"desired for libvirt to deviate from the global default settings."
39262msgstr ""
39263
39264#. type: deftypevr
39764ef8 39265#: doc/guix.texi:17901
b9fe8fd6
JL
39266msgid "Defaults to @samp{\"NORMAL\"}."
39267msgstr ""
39268
39269#. type: deftypevr
39764ef8 39270#: doc/guix.texi:17904
b9fe8fd6
JL
39271#, no-wrap
39272msgid "{@code{libvirt-configuration} parameter} integer max-clients"
39273msgstr ""
39274
39275#. type: deftypevr
39764ef8 39276#: doc/guix.texi:17907 doc/guix.texi:18330
b9fe8fd6
JL
39277msgid ""
39278"Maximum number of concurrent client connections to allow over all sockets "
39279"combined."
39280msgstr ""
39281
39282#. type: deftypevr
39764ef8 39283#: doc/guix.texi:17909
b9fe8fd6
JL
39284msgid "Defaults to @samp{5000}."
39285msgstr ""
39286
39287#. type: deftypevr
39764ef8 39288#: doc/guix.texi:17912
b9fe8fd6
JL
39289#, no-wrap
39290msgid "{@code{libvirt-configuration} parameter} integer max-queued-clients"
39291msgstr ""
39292
39293#. type: deftypevr
39764ef8 39294#: doc/guix.texi:17916
b9fe8fd6
JL
39295msgid ""
39296"Maximum length of queue of connections waiting to be accepted by the "
39297"daemon. Note, that some protocols supporting retransmission may obey this "
39298"so that a later reattempt at connection succeeds."
39299msgstr ""
39300
39301#. type: deftypevr
39764ef8 39302#: doc/guix.texi:17921
b9fe8fd6
JL
39303#, no-wrap
39304msgid "{@code{libvirt-configuration} parameter} integer max-anonymous-clients"
39305msgstr ""
39306
39307#. type: deftypevr
39764ef8 39308#: doc/guix.texi:17924
b9fe8fd6
JL
39309msgid ""
39310"Maximum length of queue of accepted but not yet authenticated clients. Set "
39311"this to zero to turn this feature off"
39312msgstr ""
39313
39314#. type: deftypevr
39764ef8 39315#: doc/guix.texi:17926 doc/guix.texi:17944 doc/guix.texi:17960
b9fe8fd6
JL
39316msgid "Defaults to @samp{20}."
39317msgstr ""
39318
39319#. type: deftypevr
39764ef8 39320#: doc/guix.texi:17929
b9fe8fd6
JL
39321#, no-wrap
39322msgid "{@code{libvirt-configuration} parameter} integer min-workers"
39323msgstr ""
39324
39325#. type: deftypevr
39764ef8 39326#: doc/guix.texi:17931
b9fe8fd6
JL
39327msgid "Number of workers to start up initially."
39328msgstr ""
39329
39330#. type: deftypevr
39764ef8 39331#: doc/guix.texi:17936
b9fe8fd6
JL
39332#, no-wrap
39333msgid "{@code{libvirt-configuration} parameter} integer max-workers"
39334msgstr ""
39335
39336#. type: deftypevr
39764ef8 39337#: doc/guix.texi:17938
b9fe8fd6
JL
39338msgid "Maximum number of worker threads."
39339msgstr ""
39340
39341#. type: deftypevr
39764ef8 39342#: doc/guix.texi:17942
b9fe8fd6
JL
39343msgid ""
39344"If the number of active clients exceeds @code{min-workers}, then more "
39345"threads are spawned, up to max_workers limit. Typically you'd want "
39346"max_workers to equal maximum number of clients allowed."
39347msgstr ""
39348
39349#. type: deftypevr
39764ef8 39350#: doc/guix.texi:17947
b9fe8fd6
JL
39351#, no-wrap
39352msgid "{@code{libvirt-configuration} parameter} integer prio-workers"
39353msgstr ""
39354
39355#. type: deftypevr
39764ef8 39356#: doc/guix.texi:17951
b9fe8fd6
JL
39357msgid ""
39358"Number of priority workers. If all workers from above pool are stuck, some "
39359"calls marked as high priority (notably domainDestroy) can be executed in "
39360"this pool."
39361msgstr ""
39362
39363#. type: deftypevr
39764ef8 39364#: doc/guix.texi:17956
b9fe8fd6
JL
39365#, no-wrap
39366msgid "{@code{libvirt-configuration} parameter} integer max-requests"
39367msgstr ""
39368
39369#. type: deftypevr
39764ef8 39370#: doc/guix.texi:17958
b9fe8fd6
JL
39371msgid "Total global limit on concurrent RPC calls."
39372msgstr ""
39373
39374#. type: deftypevr
39764ef8 39375#: doc/guix.texi:17963
b9fe8fd6
JL
39376#, no-wrap
39377msgid "{@code{libvirt-configuration} parameter} integer max-client-requests"
39378msgstr ""
39379
39380#. type: deftypevr
39764ef8 39381#: doc/guix.texi:17967
b9fe8fd6
JL
39382msgid ""
39383"Limit on concurrent requests from a single client connection. To avoid one "
39384"client monopolizing the server this should be a small fraction of the global "
39385"max_requests and max_workers parameter."
39386msgstr ""
39387
39388#. type: deftypevr
39764ef8 39389#: doc/guix.texi:17972
b9fe8fd6
JL
39390#, no-wrap
39391msgid "{@code{libvirt-configuration} parameter} integer admin-min-workers"
39392msgstr ""
39393
39394#. type: deftypevr
39764ef8 39395#: doc/guix.texi:17974
b9fe8fd6
JL
39396msgid "Same as @code{min-workers} but for the admin interface."
39397msgstr ""
39398
39399#. type: deftypevr
39764ef8 39400#: doc/guix.texi:17979
b9fe8fd6
JL
39401#, no-wrap
39402msgid "{@code{libvirt-configuration} parameter} integer admin-max-workers"
39403msgstr ""
39404
39405#. type: deftypevr
39764ef8 39406#: doc/guix.texi:17981
b9fe8fd6
JL
39407msgid "Same as @code{max-workers} but for the admin interface."
39408msgstr ""
39409
39410#. type: deftypevr
39764ef8 39411#: doc/guix.texi:17986
b9fe8fd6
JL
39412#, no-wrap
39413msgid "{@code{libvirt-configuration} parameter} integer admin-max-clients"
39414msgstr ""
39415
39416#. type: deftypevr
39764ef8 39417#: doc/guix.texi:17988
b9fe8fd6
JL
39418msgid "Same as @code{max-clients} but for the admin interface."
39419msgstr ""
39420
39421#. type: deftypevr
39764ef8 39422#: doc/guix.texi:17993
b9fe8fd6
JL
39423#, no-wrap
39424msgid "{@code{libvirt-configuration} parameter} integer admin-max-queued-clients"
39425msgstr ""
39426
39427#. type: deftypevr
39764ef8 39428#: doc/guix.texi:17995
b9fe8fd6
JL
39429msgid "Same as @code{max-queued-clients} but for the admin interface."
39430msgstr ""
39431
39432#. type: deftypevr
39764ef8 39433#: doc/guix.texi:18000
b9fe8fd6
JL
39434#, no-wrap
39435msgid "{@code{libvirt-configuration} parameter} integer admin-max-client-requests"
39436msgstr ""
39437
39438#. type: deftypevr
39764ef8 39439#: doc/guix.texi:18002
b9fe8fd6
JL
39440msgid "Same as @code{max-client-requests} but for the admin interface."
39441msgstr ""
39442
39443#. type: deftypevr
39764ef8 39444#: doc/guix.texi:18007
b9fe8fd6
JL
39445#, no-wrap
39446msgid "{@code{libvirt-configuration} parameter} integer log-level"
39447msgstr ""
39448
39449#. type: deftypevr
39764ef8 39450#: doc/guix.texi:18009 doc/guix.texi:18232
b9fe8fd6
JL
39451msgid "Logging level. 4 errors, 3 warnings, 2 information, 1 debug."
39452msgstr ""
39453
39454#. type: deftypevr
39764ef8 39455#: doc/guix.texi:18014
b9fe8fd6
JL
39456#, no-wrap
39457msgid "{@code{libvirt-configuration} parameter} string log-filters"
39458msgstr ""
39459
39460#. type: deftypevr
39764ef8 39461#: doc/guix.texi:18016 doc/guix.texi:18239
b9fe8fd6
JL
39462msgid "Logging filters."
39463msgstr ""
39464
39465#. type: deftypevr
39764ef8 39466#: doc/guix.texi:18019 doc/guix.texi:18242
b9fe8fd6
JL
39467msgid ""
39468"A filter allows to select a different logging level for a given category of "
39469"logs The format for a filter is one of:"
39470msgstr ""
39471
39472#. type: itemize
39764ef8 39473#: doc/guix.texi:18023 doc/guix.texi:18246
b9fe8fd6
JL
39474msgid "x:name"
39475msgstr ""
39476
39477#. type: itemize
39764ef8 39478#: doc/guix.texi:18026 doc/guix.texi:18249
b9fe8fd6
JL
39479msgid "x:+name"
39480msgstr ""
39481
39482#. type: deftypevr
39764ef8 39483#: doc/guix.texi:18036 doc/guix.texi:18259
b9fe8fd6
JL
39484msgid ""
39485"where @code{name} is a string which is matched against the category given in "
39486"the @code{VIR_LOG_INIT()} at the top of each libvirt source file, e.g., "
39487"\"remote\", \"qemu\", or \"util.json\" (the name in the filter can be a "
39488"substring of the full category name, in order to match multiple similar "
39489"categories), the optional \"+\" prefix tells libvirt to log stack trace for "
39490"each message matching name, and @code{x} is the minimal level where matching "
39491"messages should be logged:"
39492msgstr ""
39493
39494#. type: itemize
39764ef8
JL
39495#: doc/guix.texi:18040 doc/guix.texi:18085 doc/guix.texi:18263
39496#: doc/guix.texi:18308
b9fe8fd6
JL
39497msgid "1: DEBUG"
39498msgstr ""
39499
39500#. type: itemize
39764ef8
JL
39501#: doc/guix.texi:18043 doc/guix.texi:18088 doc/guix.texi:18266
39502#: doc/guix.texi:18311
b9fe8fd6
JL
39503msgid "2: INFO"
39504msgstr ""
39505
39506#. type: itemize
39764ef8
JL
39507#: doc/guix.texi:18046 doc/guix.texi:18091 doc/guix.texi:18269
39508#: doc/guix.texi:18314
b9fe8fd6
JL
39509msgid "3: WARNING"
39510msgstr ""
39511
39512#. type: itemize
39764ef8
JL
39513#: doc/guix.texi:18049 doc/guix.texi:18094 doc/guix.texi:18272
39514#: doc/guix.texi:18317
b9fe8fd6
JL
39515msgid "4: ERROR"
39516msgstr ""
39517
39518#. type: deftypevr
39764ef8 39519#: doc/guix.texi:18054 doc/guix.texi:18277
b9fe8fd6
JL
39520msgid ""
39521"Multiple filters can be defined in a single filters statement, they just "
39522"need to be separated by spaces."
39523msgstr ""
39524
39525#. type: deftypevr
39764ef8 39526#: doc/guix.texi:18056 doc/guix.texi:18279
b9fe8fd6
JL
39527msgid "Defaults to @samp{\"3:remote 4:event\"}."
39528msgstr ""
39529
39530#. type: deftypevr
39764ef8 39531#: doc/guix.texi:18059
b9fe8fd6
JL
39532#, no-wrap
39533msgid "{@code{libvirt-configuration} parameter} string log-outputs"
39534msgstr ""
39535
39536#. type: deftypevr
39764ef8 39537#: doc/guix.texi:18061 doc/guix.texi:18284
b9fe8fd6
JL
39538msgid "Logging outputs."
39539msgstr ""
39540
39541#. type: deftypevr
39764ef8 39542#: doc/guix.texi:18064 doc/guix.texi:18287
b9fe8fd6
JL
39543msgid ""
39544"An output is one of the places to save logging information The format for an "
39545"output can be:"
39546msgstr ""
39547
39548#. type: item
39764ef8 39549#: doc/guix.texi:18066 doc/guix.texi:18289
b9fe8fd6
JL
39550#, no-wrap
39551msgid "x:stderr"
39552msgstr ""
39553
39554#. type: table
39764ef8 39555#: doc/guix.texi:18068 doc/guix.texi:18291
b9fe8fd6
JL
39556msgid "output goes to stderr"
39557msgstr ""
39558
39559#. type: item
39764ef8 39560#: doc/guix.texi:18069 doc/guix.texi:18292
b9fe8fd6
JL
39561#, no-wrap
39562msgid "x:syslog:name"
39563msgstr ""
39564
39565#. type: table
39764ef8 39566#: doc/guix.texi:18071 doc/guix.texi:18294
b9fe8fd6
JL
39567msgid "use syslog for the output and use the given name as the ident"
39568msgstr ""
39569
39570#. type: item
39764ef8 39571#: doc/guix.texi:18072 doc/guix.texi:18295
b9fe8fd6
JL
39572#, no-wrap
39573msgid "x:file:file_path"
39574msgstr ""
39575
39576#. type: table
39764ef8 39577#: doc/guix.texi:18074 doc/guix.texi:18297
b9fe8fd6
JL
39578msgid "output to a file, with the given filepath"
39579msgstr ""
39580
39581#. type: item
39764ef8 39582#: doc/guix.texi:18075 doc/guix.texi:18298
b9fe8fd6
JL
39583#, no-wrap
39584msgid "x:journald"
39585msgstr ""
39586
39587#. type: table
39764ef8 39588#: doc/guix.texi:18077 doc/guix.texi:18300
b9fe8fd6
JL
39589msgid "output to journald logging system"
39590msgstr ""
39591
39592#. type: deftypevr
39764ef8 39593#: doc/guix.texi:18081 doc/guix.texi:18304
b9fe8fd6
JL
39594msgid "In all case the x prefix is the minimal level, acting as a filter"
39595msgstr ""
39596
39597#. type: deftypevr
39764ef8
JL
39598#: doc/guix.texi:18099 doc/guix.texi:18322
39599msgid ""
39600"Multiple outputs can be defined, they just need to be separated by spaces."
b9fe8fd6
JL
39601msgstr ""
39602
39603#. type: deftypevr
39764ef8 39604#: doc/guix.texi:18101 doc/guix.texi:18324
b9fe8fd6
JL
39605msgid "Defaults to @samp{\"3:stderr\"}."
39606msgstr ""
39607
39608#. type: deftypevr
39764ef8 39609#: doc/guix.texi:18104
b9fe8fd6
JL
39610#, no-wrap
39611msgid "{@code{libvirt-configuration} parameter} integer audit-level"
39612msgstr ""
39613
39614#. type: deftypevr
39764ef8 39615#: doc/guix.texi:18106
b9fe8fd6
JL
39616msgid "Allows usage of the auditing subsystem to be altered"
39617msgstr ""
39618
39619#. type: itemize
39764ef8 39620#: doc/guix.texi:18110
b9fe8fd6
JL
39621msgid "0: disable all auditing"
39622msgstr ""
39623
39624#. type: itemize
39764ef8 39625#: doc/guix.texi:18113
b9fe8fd6
JL
39626msgid "1: enable auditing, only if enabled on host"
39627msgstr ""
39628
39629#. type: itemize
39764ef8 39630#: doc/guix.texi:18116
b9fe8fd6
JL
39631msgid "2: enable auditing, and exit if disabled on host."
39632msgstr ""
39633
39634#. type: deftypevr
39764ef8 39635#: doc/guix.texi:18123
b9fe8fd6
JL
39636#, no-wrap
39637msgid "{@code{libvirt-configuration} parameter} boolean audit-logging"
39638msgstr ""
39639
39640#. type: deftypevr
39764ef8 39641#: doc/guix.texi:18125
b9fe8fd6
JL
39642msgid "Send audit messages via libvirt logging infrastructure."
39643msgstr ""
39644
39645#. type: deftypevr
39764ef8 39646#: doc/guix.texi:18130
b9fe8fd6
JL
39647#, no-wrap
39648msgid "{@code{libvirt-configuration} parameter} optional-string host-uuid"
39649msgstr ""
39650
39651#. type: deftypevr
39764ef8 39652#: doc/guix.texi:18132
b9fe8fd6
JL
39653msgid "Host UUID. UUID must not have all digits be the same."
39654msgstr ""
39655
39656#. type: deftypevr
39764ef8 39657#: doc/guix.texi:18137
b9fe8fd6
JL
39658#, no-wrap
39659msgid "{@code{libvirt-configuration} parameter} string host-uuid-source"
39660msgstr ""
39661
39662#. type: deftypevr
39764ef8 39663#: doc/guix.texi:18139
b9fe8fd6
JL
39664msgid "Source to read host UUID."
39665msgstr ""
39666
39667#. type: itemize
39764ef8 39668#: doc/guix.texi:18143
b9fe8fd6
JL
39669msgid "@code{smbios}: fetch the UUID from @code{dmidecode -s system-uuid}"
39670msgstr ""
39671
39672#. type: itemize
39764ef8 39673#: doc/guix.texi:18146
b9fe8fd6
JL
39674msgid "@code{machine-id}: fetch the UUID from @code{/etc/machine-id}"
39675msgstr ""
39676
39677#. type: deftypevr
39764ef8 39678#: doc/guix.texi:18151
b9fe8fd6
JL
39679msgid ""
39680"If @code{dmidecode} does not provide a valid UUID a temporary UUID will be "
39681"generated."
39682msgstr ""
39683
39684#. type: deftypevr
39764ef8 39685#: doc/guix.texi:18153
b9fe8fd6
JL
39686msgid "Defaults to @samp{\"smbios\"}."
39687msgstr ""
39688
39689#. type: deftypevr
39764ef8 39690#: doc/guix.texi:18156
b9fe8fd6
JL
39691#, no-wrap
39692msgid "{@code{libvirt-configuration} parameter} integer keepalive-interval"
39693msgstr ""
39694
39695#. type: deftypevr
39764ef8 39696#: doc/guix.texi:18161
b9fe8fd6
JL
39697msgid ""
39698"A keepalive message is sent to a client after @code{keepalive_interval} "
39699"seconds of inactivity to check if the client is still responding. If set to "
39700"-1, libvirtd will never send keepalive requests; however clients can still "
39701"send them and the daemon will send responses."
39702msgstr ""
39703
39704#. type: deftypevr
39764ef8 39705#: doc/guix.texi:18166
b9fe8fd6
JL
39706#, no-wrap
39707msgid "{@code{libvirt-configuration} parameter} integer keepalive-count"
39708msgstr ""
39709
39710#. type: deftypevr
39764ef8 39711#: doc/guix.texi:18170
b9fe8fd6
JL
39712msgid ""
39713"Maximum number of keepalive messages that are allowed to be sent to the "
39714"client without getting any response before the connection is considered "
39715"broken."
39716msgstr ""
39717
39718#. type: deftypevr
39764ef8 39719#: doc/guix.texi:18177
b9fe8fd6
JL
39720msgid ""
39721"In other words, the connection is automatically closed approximately after "
39722"@code{keepalive_interval * (keepalive_count + 1)} seconds since the last "
39723"message received from the client. When @code{keepalive-count} is set to 0, "
39724"connections will be automatically closed after @code{keepalive-interval} "
39725"seconds of inactivity without sending any keepalive messages."
39726msgstr ""
39727
39728#. type: deftypevr
39764ef8 39729#: doc/guix.texi:18182
b9fe8fd6
JL
39730#, no-wrap
39731msgid "{@code{libvirt-configuration} parameter} integer admin-keepalive-interval"
39732msgstr ""
39733
39734#. type: deftypevr
39764ef8 39735#: doc/guix.texi:18184 doc/guix.texi:18191
b9fe8fd6
JL
39736msgid "Same as above but for admin interface."
39737msgstr ""
39738
39739#. type: deftypevr
39764ef8 39740#: doc/guix.texi:18189
b9fe8fd6
JL
39741#, no-wrap
39742msgid "{@code{libvirt-configuration} parameter} integer admin-keepalive-count"
39743msgstr ""
39744
39745#. type: deftypevr
39764ef8 39746#: doc/guix.texi:18196
b9fe8fd6
JL
39747#, no-wrap
39748msgid "{@code{libvirt-configuration} parameter} integer ovs-timeout"
39749msgstr ""
39750
39751#. type: deftypevr
39764ef8 39752#: doc/guix.texi:18198
b9fe8fd6
JL
39753msgid "Timeout for Open vSwitch calls."
39754msgstr ""
39755
39756#. type: deftypevr
39764ef8 39757#: doc/guix.texi:18202
b9fe8fd6
JL
39758msgid ""
39759"The @code{ovs-vsctl} utility is used for the configuration and its timeout "
39760"option is set by default to 5 seconds to avoid potential infinite waits "
39761"blocking libvirt."
39762msgstr ""
39763
39764#. type: subsubheading
39764ef8 39765#: doc/guix.texi:18209
b9fe8fd6
JL
39766#, no-wrap
39767msgid "Virtlog daemon"
39768msgstr ""
39769
39770#. type: Plain text
39764ef8 39771#: doc/guix.texi:18212
b9fe8fd6
JL
39772msgid ""
39773"The virtlogd service is a server side daemon component of libvirt that is "
39774"used to manage logs from virtual machine consoles."
39775msgstr ""
39776
39777#. type: Plain text
39764ef8 39778#: doc/guix.texi:18218
b9fe8fd6
JL
39779msgid ""
39780"This daemon is not used directly by libvirt client applications, rather it "
39781"is called on their behalf by @code{libvirtd}. By maintaining the logs in a "
39782"standalone daemon, the main @code{libvirtd} daemon can be restarted without "
39764ef8
JL
39783"risk of losing logs. The @code{virtlogd} daemon has the ability to re-"
39784"exec() itself upon receiving @code{SIGUSR1}, to allow live upgrades without "
b9fe8fd6
JL
39785"downtime."
39786msgstr ""
39787
39788#. type: deffn
39764ef8 39789#: doc/guix.texi:18219
b9fe8fd6
JL
39790#, no-wrap
39791msgid "{Scheme Variable} virtlog-service-type"
39792msgstr ""
39793
39794#. type: deffn
39764ef8 39795#: doc/guix.texi:18222
b9fe8fd6 39796msgid ""
39764ef8
JL
39797"This is the type of the virtlog daemon. Its value must be a @code{virtlog-"
39798"configuration}."
b9fe8fd6
JL
39799msgstr ""
39800
39801#. type: example
39764ef8 39802#: doc/guix.texi:18227
b9fe8fd6
JL
39803#, no-wrap
39804msgid ""
39805"(service virtlog-service-type\n"
39806" (virtlog-configuration\n"
39807" (max-clients 1000)))\n"
39808msgstr ""
39809
39810#. type: deftypevr
39764ef8 39811#: doc/guix.texi:18230
b9fe8fd6
JL
39812#, no-wrap
39813msgid "{@code{virtlog-configuration} parameter} integer log-level"
39814msgstr ""
39815
39816#. type: deftypevr
39764ef8 39817#: doc/guix.texi:18237
b9fe8fd6
JL
39818#, no-wrap
39819msgid "{@code{virtlog-configuration} parameter} string log-filters"
39820msgstr ""
39821
39822#. type: deftypevr
39764ef8 39823#: doc/guix.texi:18282
b9fe8fd6
JL
39824#, no-wrap
39825msgid "{@code{virtlog-configuration} parameter} string log-outputs"
39826msgstr ""
39827
39828#. type: deftypevr
39764ef8 39829#: doc/guix.texi:18327
b9fe8fd6
JL
39830#, no-wrap
39831msgid "{@code{virtlog-configuration} parameter} integer max-clients"
39832msgstr ""
39833
39834#. type: deftypevr
39764ef8 39835#: doc/guix.texi:18332
b9fe8fd6
JL
39836msgid "Defaults to @samp{1024}."
39837msgstr ""
39838
39839#. type: deftypevr
39764ef8 39840#: doc/guix.texi:18335
b9fe8fd6
JL
39841#, no-wrap
39842msgid "{@code{virtlog-configuration} parameter} integer max-size"
39843msgstr ""
39844
39845#. type: deftypevr
39764ef8 39846#: doc/guix.texi:18337
b9fe8fd6
JL
39847msgid "Maximum file size before rolling over."
39848msgstr ""
39849
39850#. type: deftypevr
39764ef8 39851#: doc/guix.texi:18339
b9fe8fd6
JL
39852msgid "Defaults to @samp{2MB}"
39853msgstr ""
39854
39855#. type: deftypevr
39764ef8 39856#: doc/guix.texi:18342
b9fe8fd6
JL
39857#, no-wrap
39858msgid "{@code{virtlog-configuration} parameter} integer max-backups"
39859msgstr ""
39860
39861#. type: deftypevr
39764ef8 39862#: doc/guix.texi:18344
b9fe8fd6
JL
39863msgid "Maximum number of backup files to keep."
39864msgstr ""
39865
39866#. type: deftypevr
39764ef8 39867#: doc/guix.texi:18346
b9fe8fd6
JL
39868msgid "Defaults to @samp{3}"
39869msgstr ""
39870
39871#. type: subsubheading
39764ef8 39872#: doc/guix.texi:18349
b9fe8fd6
JL
39873#, no-wrap
39874msgid "Transparent Emulation with QEMU"
39875msgstr ""
39876
39877#. type: cindex
39764ef8 39878#: doc/guix.texi:18351
b9fe8fd6
JL
39879#, no-wrap
39880msgid "emulation"
39881msgstr ""
39882
39883#. type: code{#1}
39764ef8 39884#: doc/guix.texi:18352
b9fe8fd6
JL
39885#, no-wrap
39886msgid "binfmt_misc"
39887msgstr ""
39888
39889#. type: Plain text
39764ef8 39890#: doc/guix.texi:18358
b9fe8fd6
JL
39891msgid ""
39892"@code{qemu-binfmt-service-type} provides support for transparent emulation "
39893"of program binaries built for different architectures---e.g., it allows you "
39894"to transparently execute an ARMv7 program on an x86_64 machine. It achieves "
39895"this by combining the @uref{https://www.qemu.org, QEMU} emulator and the "
39896"@code{binfmt_misc} feature of the kernel Linux."
39897msgstr ""
39898
39899#. type: defvr
39764ef8 39900#: doc/guix.texi:18359
b9fe8fd6
JL
39901#, no-wrap
39902msgid "{Scheme Variable} qemu-binfmt-service-type"
39903msgstr ""
39904
39905#. type: defvr
39764ef8 39906#: doc/guix.texi:18364
b9fe8fd6
JL
39907msgid ""
39908"This is the type of the QEMU/binfmt service for transparent emulation. Its "
39909"value must be a @code{qemu-binfmt-configuration} object, which specifies the "
39910"QEMU package to use as well as the architecture we want to emulated:"
39911msgstr ""
39912
39913#. type: example
39764ef8 39914#: doc/guix.texi:18369
b9fe8fd6
JL
39915#, no-wrap
39916msgid ""
39917"(service qemu-binfmt-service-type\n"
39918" (qemu-binfmt-configuration\n"
39764ef8 39919" (platforms (lookup-qemu-platforms \"arm\" \"aarch64\" \"ppc\"))))\n"
b9fe8fd6
JL
39920msgstr ""
39921
39922#. type: defvr
39764ef8 39923#: doc/guix.texi:18375
b9fe8fd6
JL
39924msgid ""
39925"In this example, we enable transparent emulation for the ARM and aarch64 "
39926"platforms. Running @code{herd stop qemu-binfmt} turns it off, and running "
39927"@code{herd start qemu-binfmt} turns it back on (@pxref{Invoking herd, the "
39928"@command{herd} command,, shepherd, The GNU Shepherd Manual})."
39929msgstr ""
39930
39931#. type: deftp
39764ef8 39932#: doc/guix.texi:18377
b9fe8fd6
JL
39933#, no-wrap
39934msgid "{Data Type} qemu-binfmt-configuration"
39935msgstr ""
39936
39937#. type: deftp
39764ef8 39938#: doc/guix.texi:18379
b9fe8fd6
JL
39939msgid "This is the configuration for the @code{qemu-binfmt} service."
39940msgstr ""
39941
39942#. type: item
39764ef8 39943#: doc/guix.texi:18381
b9fe8fd6
JL
39944#, no-wrap
39945msgid "@code{platforms} (default: @code{'()})"
39946msgstr ""
39947
39948#. type: table
39764ef8 39949#: doc/guix.texi:18384
b9fe8fd6
JL
39950msgid ""
39951"The list of emulated QEMU platforms. Each item must be a @dfn{platform "
39952"object} as returned by @code{lookup-qemu-platforms} (see below)."
39953msgstr ""
39954
39955#. type: item
39764ef8 39956#: doc/guix.texi:18385
b9fe8fd6
JL
39957#, no-wrap
39958msgid "@code{guix-support?} (default: @code{#f})"
39959msgstr ""
39960
39961#. type: table
39764ef8 39962#: doc/guix.texi:18391
b9fe8fd6
JL
39963msgid ""
39964"When it is true, QEMU and all its dependencies are added to the build "
39764ef8
JL
39965"environment of @command{guix-daemon} (@pxref{Invoking guix-daemon, @code{--"
39966"chroot-directory} option}). This allows the @code{binfmt_misc} handlers to "
39967"be used within the build environment, which in turn means that you can "
39968"transparently build programs for another architecture."
b9fe8fd6
JL
39969msgstr ""
39970
39971#. type: table
39764ef8 39972#: doc/guix.texi:18394
b9fe8fd6
JL
39973msgid ""
39974"For example, let's suppose you're on an x86_64 machine and you have this "
39975"service:"
39976msgstr ""
39977
39978#. type: example
39764ef8 39979#: doc/guix.texi:18400
b9fe8fd6
JL
39980#, no-wrap
39981msgid ""
39982"(service qemu-binfmt-service-type\n"
39983" (qemu-binfmt-configuration\n"
39984" (platforms (lookup-qemu-platforms \"arm\"))\n"
39985" (guix-support? #t)))\n"
39986msgstr ""
39987
39988#. type: table
39764ef8 39989#: doc/guix.texi:18403
b9fe8fd6
JL
39990msgid "You can run:"
39991msgstr ""
39992
39993#. type: example
39764ef8 39994#: doc/guix.texi:18406
b9fe8fd6
JL
39995#, no-wrap
39996msgid "guix build -s armhf-linux inkscape\n"
39997msgstr ""
39998
39999#. type: table
39764ef8 40000#: doc/guix.texi:18413
b9fe8fd6
JL
40001msgid ""
40002"and it will build Inkscape for ARMv7 @emph{as if it were a native build}, "
40003"transparently using QEMU to emulate the ARMv7 CPU. Pretty handy if you'd "
40004"like to test a package build for an architecture you don't have access to!"
40005msgstr ""
40006
40007#. type: item
39764ef8 40008#: doc/guix.texi:18414
b9fe8fd6
JL
40009#, no-wrap
40010msgid "@code{qemu} (default: @code{qemu})"
40011msgstr ""
40012
40013#. type: table
39764ef8 40014#: doc/guix.texi:18416
b9fe8fd6
JL
40015msgid "The QEMU package to use."
40016msgstr ""
40017
40018#. type: deffn
39764ef8 40019#: doc/guix.texi:18419
b9fe8fd6
JL
40020#, no-wrap
40021msgid "{Scheme Procedure} lookup-qemu-platforms @var{platforms}@dots{}"
40022msgstr ""
40023
40024#. type: deffn
39764ef8 40025#: doc/guix.texi:18424
b9fe8fd6 40026msgid ""
39764ef8
JL
40027"Return the list of QEMU platform objects corresponding to @var{platforms}"
40028"@dots{}. @var{platforms} must be a list of strings corresponding to "
40029"platform names, such as @code{\"arm\"}, @code{\"sparc\"}, @code{\"mips64el"
40030"\"}, and so on."
b9fe8fd6
JL
40031msgstr ""
40032
40033#. type: deffn
39764ef8 40034#: doc/guix.texi:18426
b9fe8fd6
JL
40035#, no-wrap
40036msgid "{Scheme Procedure} qemu-platform? @var{obj}"
40037msgstr ""
40038
40039#. type: deffn
39764ef8 40040#: doc/guix.texi:18428
b9fe8fd6
JL
40041msgid "Return true if @var{obj} is a platform object."
40042msgstr ""
40043
40044#. type: deffn
39764ef8 40045#: doc/guix.texi:18430
b9fe8fd6
JL
40046#, no-wrap
40047msgid "{Scheme Procedure} qemu-platform-name @var{platform}"
40048msgstr ""
40049
40050#. type: deffn
39764ef8 40051#: doc/guix.texi:18432
b9fe8fd6
JL
40052msgid "Return the name of @var{platform}---a string such as @code{\"arm\"}."
40053msgstr ""
40054
40055#. type: Plain text
39764ef8 40056#: doc/guix.texi:18444
b9fe8fd6
JL
40057msgid ""
40058"The @code{(gnu services version-control)} module provides a service to allow "
40059"remote access to local Git repositories. There are three options: the "
40060"@code{git-daemon-service}, which provides access to repositories via the "
40061"@code{git://} unsecured TCP-based protocol, extending the @code{nginx} web "
40062"server to proxy some requests to @code{git-http-backend}, or providing a web "
40063"interface with @code{cgit-service-type}."
40064msgstr ""
40065
40066#. type: deffn
39764ef8 40067#: doc/guix.texi:18445
b9fe8fd6
JL
40068#, no-wrap
40069msgid "{Scheme Procedure} git-daemon-service [#:config (git-daemon-configuration)]"
40070msgstr ""
40071
40072#. type: deffn
39764ef8 40073#: doc/guix.texi:18449
b9fe8fd6
JL
40074msgid ""
40075"Return a service that runs @command{git daemon}, a simple TCP server to "
40076"expose repositories over the Git protocol for anonymous access."
40077msgstr ""
40078
40079#. type: deffn
39764ef8 40080#: doc/guix.texi:18455
b9fe8fd6 40081msgid ""
39764ef8
JL
40082"The optional @var{config} argument should be a @code{<git-daemon-"
40083"configuration>} object, by default it allows read-only access to "
40084"exported@footnote{By creating the magic file \"git-daemon-export-ok\" in the "
40085"repository directory.} repositories under @file{/srv/git}."
b9fe8fd6
JL
40086msgstr ""
40087
40088#. type: deftp
39764ef8 40089#: doc/guix.texi:18458
b9fe8fd6
JL
40090#, no-wrap
40091msgid "{Data Type} git-daemon-configuration"
40092msgstr ""
40093
40094#. type: deftp
39764ef8 40095#: doc/guix.texi:18460
b9fe8fd6
JL
40096msgid "Data type representing the configuration for @code{git-daemon-service}."
40097msgstr ""
40098
40099#. type: item
39764ef8 40100#: doc/guix.texi:18462 doc/guix.texi:18518
b9fe8fd6
JL
40101#, no-wrap
40102msgid "@code{package} (default: @var{git})"
40103msgstr ""
40104
40105#. type: table
39764ef8 40106#: doc/guix.texi:18464 doc/guix.texi:18520
b9fe8fd6
JL
40107msgid "Package object of the Git distributed version control system."
40108msgstr ""
40109
40110#. type: item
39764ef8 40111#: doc/guix.texi:18465 doc/guix.texi:18524
b9fe8fd6
JL
40112#, no-wrap
40113msgid "@code{export-all?} (default: @var{#f})"
40114msgstr ""
40115
40116#. type: table
39764ef8 40117#: doc/guix.texi:18468
b9fe8fd6
JL
40118msgid ""
40119"Whether to allow access for all Git repositories, even if they do not have "
40120"the @file{git-daemon-export-ok} file."
40121msgstr ""
40122
40123#. type: item
39764ef8 40124#: doc/guix.texi:18469
b9fe8fd6
JL
40125#, no-wrap
40126msgid "@code{base-path} (default: @file{/srv/git})"
40127msgstr ""
40128
40129#. type: table
39764ef8 40130#: doc/guix.texi:18474
b9fe8fd6
JL
40131msgid ""
40132"Whether to remap all the path requests as relative to the given path. If "
40133"you run git daemon with @var{(base-path \"/srv/git\")} on example.com, then "
40134"if you later try to pull @code{git://example.com/hello.git}, git daemon will "
40135"interpret the path as @code{/srv/git/hello.git}."
40136msgstr ""
40137
40138#. type: item
39764ef8 40139#: doc/guix.texi:18475
b9fe8fd6
JL
40140#, no-wrap
40141msgid "@code{user-path} (default: @var{#f})"
40142msgstr ""
40143
40144#. type: table
39764ef8 40145#: doc/guix.texi:18482
b9fe8fd6
JL
40146msgid ""
40147"Whether to allow @code{~user} notation to be used in requests. When "
40148"specified with empty string, requests to @code{git://host/~alice/foo} is "
40149"taken as a request to access @code{foo} repository in the home directory of "
40150"user @code{alice}. If @var{(user-path \"path\")} is specified, the same "
40151"request is taken as a request to access @code{path/foo} repository in the "
40152"home directory of user @code{alice}."
40153msgstr ""
40154
40155#. type: item
39764ef8 40156#: doc/guix.texi:18483
b9fe8fd6
JL
40157#, no-wrap
40158msgid "@code{listen} (default: @var{'()})"
40159msgstr ""
40160
40161#. type: table
39764ef8
JL
40162#: doc/guix.texi:18486
40163msgid ""
40164"Whether to listen on specific IP addresses or hostnames, defaults to all."
b9fe8fd6
JL
40165msgstr ""
40166
40167#. type: item
39764ef8 40168#: doc/guix.texi:18487
b9fe8fd6
JL
40169#, no-wrap
40170msgid "@code{port} (default: @var{#f})"
40171msgstr ""
40172
40173#. type: table
39764ef8 40174#: doc/guix.texi:18489
b9fe8fd6
JL
40175msgid "Whether to listen on an alternative port, which defaults to 9418."
40176msgstr ""
40177
40178#. type: item
39764ef8 40179#: doc/guix.texi:18490
b9fe8fd6
JL
40180#, no-wrap
40181msgid "@code{whitelist} (default: @var{'()})"
40182msgstr ""
40183
40184#. type: table
39764ef8 40185#: doc/guix.texi:18492
b9fe8fd6
JL
40186msgid "If not empty, only allow access to this list of directories."
40187msgstr ""
40188
40189#. type: item
39764ef8 40190#: doc/guix.texi:18493
b9fe8fd6
JL
40191#, no-wrap
40192msgid "@code{extra-options} (default: @var{'()})"
40193msgstr ""
40194
40195#. type: table
39764ef8 40196#: doc/guix.texi:18496
b9fe8fd6
JL
40197msgid ""
40198"Extra options will be passed to @code{git daemon}, please run @command{man "
40199"git-daemon} for more information."
40200msgstr ""
40201
40202#. type: Plain text
39764ef8 40203#: doc/guix.texi:18510
b9fe8fd6
JL
40204msgid ""
40205"The @code{git://} protocol lacks authentication. When you pull from a "
40206"repository fetched via @code{git://}, you don't know that the data you "
40207"receive was modified is really coming from the specified host, and you have "
40208"your connection is subject to eavesdropping. It's better to use an "
40209"authenticated and encrypted transport, such as @code{https}. Although Git "
40210"allows you to serve repositories using unsophisticated file-based web "
39764ef8
JL
40211"servers, there is a faster protocol implemented by the @code{git-http-"
40212"backend} program. This program is the back-end of a proper Git web "
40213"service. It is designed to sit behind a FastCGI proxy. @xref{Web "
b9fe8fd6
JL
40214"Services}, for more on running the necessary @code{fcgiwrap} daemon."
40215msgstr ""
40216
40217#. type: Plain text
39764ef8 40218#: doc/guix.texi:18513
b9fe8fd6
JL
40219msgid ""
40220"Guix has a separate configuration data type for serving Git repositories "
40221"over HTTP."
40222msgstr ""
40223
40224#. type: deftp
39764ef8 40225#: doc/guix.texi:18514
b9fe8fd6
JL
40226#, no-wrap
40227msgid "{Data Type} git-http-configuration"
40228msgstr ""
40229
40230#. type: deftp
39764ef8 40231#: doc/guix.texi:18516
b9fe8fd6
JL
40232msgid "Data type representing the configuration for @code{git-http-service}."
40233msgstr ""
40234
40235#. type: item
39764ef8 40236#: doc/guix.texi:18521
b9fe8fd6
JL
40237#, no-wrap
40238msgid "@code{git-root} (default: @file{/srv/git})"
40239msgstr ""
40240
40241#. type: table
39764ef8 40242#: doc/guix.texi:18523
b9fe8fd6
JL
40243msgid "Directory containing the Git repositories to expose to the world."
40244msgstr ""
40245
40246#. type: table
39764ef8 40247#: doc/guix.texi:18527
b9fe8fd6
JL
40248msgid ""
40249"Whether to expose access for all Git repositories in @var{git-root}, even if "
40250"they do not have the @file{git-daemon-export-ok} file."
40251msgstr ""
40252
40253#. type: item
39764ef8 40254#: doc/guix.texi:18528
b9fe8fd6
JL
40255#, no-wrap
40256msgid "@code{uri-path} (default: @file{/git/})"
40257msgstr ""
40258
40259#. type: table
39764ef8 40260#: doc/guix.texi:18533
b9fe8fd6
JL
40261msgid ""
40262"Path prefix for Git access. With the default @code{/git/} prefix, this will "
39764ef8
JL
40263"map @code{http://@var{server}/git/@var{repo}.git} to @code{/srv/git/"
40264"@var{repo}.git}. Requests whose URI paths do not begin with this prefix are "
40265"not passed on to this Git instance."
b9fe8fd6
JL
40266msgstr ""
40267
40268#. type: item
39764ef8 40269#: doc/guix.texi:18534
b9fe8fd6
JL
40270#, no-wrap
40271msgid "@code{fcgiwrap-socket} (default: @code{127.0.0.1:9000})"
40272msgstr ""
40273
40274#. type: table
39764ef8 40275#: doc/guix.texi:18537
b9fe8fd6
JL
40276msgid ""
40277"The socket on which the @code{fcgiwrap} daemon is listening. @xref{Web "
40278"Services}."
40279msgstr ""
40280
40281#. type: Plain text
39764ef8 40282#: doc/guix.texi:18544
b9fe8fd6
JL
40283msgid ""
40284"There is no @code{git-http-service-type}, currently; instead you can create "
40285"an @code{nginx-location-configuration} from a @code{git-http-configuration} "
40286"and then add that location to a web server."
40287msgstr ""
40288
40289#. type: deffn
39764ef8 40290#: doc/guix.texi:18545
b9fe8fd6
JL
40291#, no-wrap
40292msgid "{Scheme Procedure} git-http-nginx-location-configuration @"
40293msgstr ""
40294
40295#. type: deffn
39764ef8 40296#: doc/guix.texi:18550
b9fe8fd6 40297msgid ""
39764ef8
JL
40298"[config=(git-http-configuration)] Compute an @code{nginx-location-"
40299"configuration} that corresponds to the given Git http configuration. An "
40300"example nginx service definition to serve the default @file{/srv/git} over "
40301"HTTPS might be:"
b9fe8fd6
JL
40302msgstr ""
40303
40304#. type: example
39764ef8 40305#: doc/guix.texi:18567
b9fe8fd6
JL
40306#, no-wrap
40307msgid ""
40308"(service nginx-service-type\n"
40309" (nginx-configuration\n"
40310" (server-blocks\n"
40311" (list\n"
40312" (nginx-server-configuration\n"
40313" (listen '(\"443 ssl\"))\n"
40314" (server-name \"git.my-host.org\")\n"
40315" (ssl-certificate\n"
40316" \"/etc/letsencrypt/live/git.my-host.org/fullchain.pem\")\n"
40317" (ssl-certificate-key\n"
40318" \"/etc/letsencrypt/live/git.my-host.org/privkey.pem\")\n"
40319" (locations\n"
40320" (list\n"
40321" (git-http-nginx-location-configuration\n"
40322" (git-http-configuration (uri-path \"/\"))))))))))\n"
40323msgstr ""
40324
40325#. type: deffn
39764ef8 40326#: doc/guix.texi:18574
b9fe8fd6
JL
40327msgid ""
40328"This example assumes that you are using Let's Encrypt to get your TLS "
40329"certificate. @xref{Certificate Services}. The default @code{certbot} "
40330"service will redirect all HTTP traffic on @code{git.my-host.org} to HTTPS. "
40331"You will also need to add an @code{fcgiwrap} proxy to your system services. "
40332"@xref{Web Services}."
40333msgstr ""
40334
40335#. type: subsubheading
39764ef8 40336#: doc/guix.texi:18576
b9fe8fd6
JL
40337#, no-wrap
40338msgid "Cgit Service"
40339msgstr ""
40340
40341#. type: cindex
39764ef8 40342#: doc/guix.texi:18578
b9fe8fd6
JL
40343#, no-wrap
40344msgid "Cgit service"
40345msgstr ""
40346
40347#. type: cindex
39764ef8 40348#: doc/guix.texi:18579
b9fe8fd6
JL
40349#, no-wrap
40350msgid "Git, web interface"
40351msgstr ""
40352
40353#. type: Plain text
39764ef8 40354#: doc/guix.texi:18582
b9fe8fd6
JL
40355msgid ""
40356"@uref{https://git.zx2c4.com/cgit/, Cgit} is a web frontend for Git "
40357"repositories written in C."
40358msgstr ""
40359
40360#. type: Plain text
39764ef8 40361#: doc/guix.texi:18585
b9fe8fd6
JL
40362msgid ""
40363"The following example will configure the service with default values. By "
40364"default, Cgit can be accessed on port 80 (@code{http://localhost:80})."
40365msgstr ""
40366
40367#. type: example
39764ef8 40368#: doc/guix.texi:18588
b9fe8fd6
JL
40369#, no-wrap
40370msgid "(service cgit-service-type)\n"
40371msgstr ""
40372
40373#. type: Plain text
39764ef8 40374#: doc/guix.texi:18592
b9fe8fd6 40375msgid ""
39764ef8
JL
40376"The @code{file-object} type designates either a file-like object (@pxref{G-"
40377"Expressions, file-like objects}) or a string."
b9fe8fd6
JL
40378msgstr ""
40379
40380#. type: Plain text
39764ef8 40381#: doc/guix.texi:18596
b9fe8fd6
JL
40382msgid "Available @code{cgit-configuration} fields are:"
40383msgstr ""
40384
40385#. type: deftypevr
39764ef8 40386#: doc/guix.texi:18597
b9fe8fd6
JL
40387#, no-wrap
40388msgid "{@code{cgit-configuration} parameter} package package"
40389msgstr ""
40390
40391#. type: deftypevr
39764ef8 40392#: doc/guix.texi:18599
b9fe8fd6
JL
40393msgid "The CGIT package."
40394msgstr ""
40395
40396#. type: deftypevr
39764ef8 40397#: doc/guix.texi:18602
b9fe8fd6
JL
40398#, no-wrap
40399msgid "{@code{cgit-configuration} parameter} nginx-server-configuration-list nginx"
40400msgstr ""
40401
40402#. type: deftypevr
39764ef8 40403#: doc/guix.texi:18604
b9fe8fd6
JL
40404msgid "NGINX configuration."
40405msgstr ""
40406
40407#. type: deftypevr
39764ef8 40408#: doc/guix.texi:18607
b9fe8fd6
JL
40409#, no-wrap
40410msgid "{@code{cgit-configuration} parameter} file-object about-filter"
40411msgstr ""
40412
40413#. type: deftypevr
39764ef8 40414#: doc/guix.texi:18610
b9fe8fd6
JL
40415msgid ""
40416"Specifies a command which will be invoked to format the content of about "
40417"pages (both top-level and for each repository)."
40418msgstr ""
40419
40420#. type: deftypevr
39764ef8 40421#: doc/guix.texi:18615
b9fe8fd6
JL
40422#, no-wrap
40423msgid "{@code{cgit-configuration} parameter} string agefile"
40424msgstr ""
40425
40426#. type: deftypevr
39764ef8 40427#: doc/guix.texi:18618
b9fe8fd6
JL
40428msgid ""
40429"Specifies a path, relative to each repository path, which can be used to "
40430"specify the date and time of the youngest commit in the repository."
40431msgstr ""
40432
40433#. type: deftypevr
39764ef8 40434#: doc/guix.texi:18623
b9fe8fd6
JL
40435#, no-wrap
40436msgid "{@code{cgit-configuration} parameter} file-object auth-filter"
40437msgstr ""
40438
40439#. type: deftypevr
39764ef8 40440#: doc/guix.texi:18626
b9fe8fd6
JL
40441msgid ""
40442"Specifies a command that will be invoked for authenticating repository "
40443"access."
40444msgstr ""
40445
40446#. type: deftypevr
39764ef8 40447#: doc/guix.texi:18631
b9fe8fd6
JL
40448#, no-wrap
40449msgid "{@code{cgit-configuration} parameter} string branch-sort"
40450msgstr ""
40451
40452#. type: deftypevr
39764ef8 40453#: doc/guix.texi:18634
b9fe8fd6
JL
40454msgid ""
40455"Flag which, when set to @samp{age}, enables date ordering in the branch ref "
40456"list, and when set @samp{name} enables ordering by branch name."
40457msgstr ""
40458
40459#. type: deftypevr
39764ef8 40460#: doc/guix.texi:18636
b9fe8fd6
JL
40461msgid "Defaults to @samp{\"name\"}."
40462msgstr ""
40463
40464#. type: deftypevr
39764ef8 40465#: doc/guix.texi:18639
b9fe8fd6
JL
40466#, no-wrap
40467msgid "{@code{cgit-configuration} parameter} string cache-root"
40468msgstr ""
40469
40470#. type: deftypevr
39764ef8 40471#: doc/guix.texi:18641
b9fe8fd6
JL
40472msgid "Path used to store the cgit cache entries."
40473msgstr ""
40474
40475#. type: deftypevr
39764ef8 40476#: doc/guix.texi:18643
b9fe8fd6
JL
40477msgid "Defaults to @samp{\"/var/cache/cgit\"}."
40478msgstr ""
40479
40480#. type: deftypevr
39764ef8 40481#: doc/guix.texi:18646
b9fe8fd6
JL
40482#, no-wrap
40483msgid "{@code{cgit-configuration} parameter} integer cache-static-ttl"
40484msgstr ""
40485
40486#. type: deftypevr
39764ef8 40487#: doc/guix.texi:18649
b9fe8fd6
JL
40488msgid ""
40489"Number which specifies the time-to-live, in minutes, for the cached version "
40490"of repository pages accessed with a fixed SHA1."
40491msgstr ""
40492
40493#. type: deftypevr
39764ef8 40494#: doc/guix.texi:18651 doc/guix.texi:19094
b9fe8fd6
JL
40495msgid "Defaults to @samp{-1}."
40496msgstr ""
40497
40498#. type: deftypevr
39764ef8 40499#: doc/guix.texi:18654
b9fe8fd6
JL
40500#, no-wrap
40501msgid "{@code{cgit-configuration} parameter} integer cache-dynamic-ttl"
40502msgstr ""
40503
40504#. type: deftypevr
39764ef8 40505#: doc/guix.texi:18657
b9fe8fd6
JL
40506msgid ""
40507"Number which specifies the time-to-live, in minutes, for the cached version "
40508"of repository pages accessed without a fixed SHA1."
40509msgstr ""
40510
40511#. type: deftypevr
39764ef8 40512#: doc/guix.texi:18662
b9fe8fd6
JL
40513#, no-wrap
40514msgid "{@code{cgit-configuration} parameter} integer cache-repo-ttl"
40515msgstr ""
40516
40517#. type: deftypevr
39764ef8 40518#: doc/guix.texi:18665
b9fe8fd6
JL
40519msgid ""
40520"Number which specifies the time-to-live, in minutes, for the cached version "
40521"of the repository summary page."
40522msgstr ""
40523
40524#. type: deftypevr
39764ef8 40525#: doc/guix.texi:18670
b9fe8fd6
JL
40526#, no-wrap
40527msgid "{@code{cgit-configuration} parameter} integer cache-root-ttl"
40528msgstr ""
40529
40530#. type: deftypevr
39764ef8 40531#: doc/guix.texi:18673
b9fe8fd6
JL
40532msgid ""
40533"Number which specifies the time-to-live, in minutes, for the cached version "
40534"of the repository index page."
40535msgstr ""
40536
40537#. type: deftypevr
39764ef8 40538#: doc/guix.texi:18678
b9fe8fd6
JL
40539#, no-wrap
40540msgid "{@code{cgit-configuration} parameter} integer cache-scanrc-ttl"
40541msgstr ""
40542
40543#. type: deftypevr
39764ef8 40544#: doc/guix.texi:18681
b9fe8fd6
JL
40545msgid ""
40546"Number which specifies the time-to-live, in minutes, for the result of "
40547"scanning a path for Git repositories."
40548msgstr ""
40549
40550#. type: deftypevr
39764ef8 40551#: doc/guix.texi:18686
b9fe8fd6
JL
40552#, no-wrap
40553msgid "{@code{cgit-configuration} parameter} integer cache-about-ttl"
40554msgstr ""
40555
40556#. type: deftypevr
39764ef8 40557#: doc/guix.texi:18689
b9fe8fd6
JL
40558msgid ""
40559"Number which specifies the time-to-live, in minutes, for the cached version "
40560"of the repository about page."
40561msgstr ""
40562
40563#. type: deftypevr
39764ef8 40564#: doc/guix.texi:18694
b9fe8fd6
JL
40565#, no-wrap
40566msgid "{@code{cgit-configuration} parameter} integer cache-snapshot-ttl"
40567msgstr ""
40568
40569#. type: deftypevr
39764ef8 40570#: doc/guix.texi:18697
b9fe8fd6
JL
40571msgid ""
40572"Number which specifies the time-to-live, in minutes, for the cached version "
40573"of snapshots."
40574msgstr ""
40575
40576#. type: deftypevr
39764ef8 40577#: doc/guix.texi:18702
b9fe8fd6
JL
40578#, no-wrap
40579msgid "{@code{cgit-configuration} parameter} integer cache-size"
40580msgstr ""
40581
40582#. type: deftypevr
39764ef8 40583#: doc/guix.texi:18705
b9fe8fd6
JL
40584msgid ""
40585"The maximum number of entries in the cgit cache. When set to @samp{0}, "
40586"caching is disabled."
40587msgstr ""
40588
40589#. type: deftypevr
39764ef8 40590#: doc/guix.texi:18710
b9fe8fd6
JL
40591#, no-wrap
40592msgid "{@code{cgit-configuration} parameter} boolean case-sensitive-sort?"
40593msgstr ""
40594
40595#. type: deftypevr
39764ef8 40596#: doc/guix.texi:18712
b9fe8fd6
JL
40597msgid "Sort items in the repo list case sensitively."
40598msgstr ""
40599
40600#. type: deftypevr
39764ef8 40601#: doc/guix.texi:18717
b9fe8fd6
JL
40602#, no-wrap
40603msgid "{@code{cgit-configuration} parameter} list clone-prefix"
40604msgstr ""
40605
40606#. type: deftypevr
39764ef8 40607#: doc/guix.texi:18720
b9fe8fd6
JL
40608msgid ""
40609"List of common prefixes which, when combined with a repository URL, "
40610"generates valid clone URLs for the repository."
40611msgstr ""
40612
40613#. type: deftypevr
39764ef8 40614#: doc/guix.texi:18725
b9fe8fd6
JL
40615#, no-wrap
40616msgid "{@code{cgit-configuration} parameter} list clone-url"
40617msgstr ""
40618
40619#. type: deftypevr
39764ef8 40620#: doc/guix.texi:18727
b9fe8fd6
JL
40621msgid "List of @code{clone-url} templates."
40622msgstr ""
40623
40624#. type: deftypevr
39764ef8 40625#: doc/guix.texi:18732
b9fe8fd6
JL
40626#, no-wrap
40627msgid "{@code{cgit-configuration} parameter} file-object commit-filter"
40628msgstr ""
40629
40630#. type: deftypevr
39764ef8 40631#: doc/guix.texi:18734
b9fe8fd6
JL
40632msgid "Command which will be invoked to format commit messages."
40633msgstr ""
40634
40635#. type: deftypevr
39764ef8 40636#: doc/guix.texi:18739
b9fe8fd6
JL
40637#, no-wrap
40638msgid "{@code{cgit-configuration} parameter} string commit-sort"
40639msgstr ""
40640
40641#. type: deftypevr
39764ef8 40642#: doc/guix.texi:18743 doc/guix.texi:19301
b9fe8fd6
JL
40643msgid ""
40644"Flag which, when set to @samp{date}, enables strict date ordering in the "
40645"commit log, and when set to @samp{topo} enables strict topological ordering."
40646msgstr ""
40647
40648#. type: deftypevr
39764ef8 40649#: doc/guix.texi:18745
b9fe8fd6
JL
40650msgid "Defaults to @samp{\"git log\"}."
40651msgstr ""
40652
40653#. type: deftypevr
39764ef8 40654#: doc/guix.texi:18748
b9fe8fd6
JL
40655#, no-wrap
40656msgid "{@code{cgit-configuration} parameter} file-object css"
40657msgstr ""
40658
40659#. type: deftypevr
39764ef8 40660#: doc/guix.texi:18750
b9fe8fd6
JL
40661msgid "URL which specifies the css document to include in all cgit pages."
40662msgstr ""
40663
40664#. type: deftypevr
39764ef8 40665#: doc/guix.texi:18752
b9fe8fd6
JL
40666msgid "Defaults to @samp{\"/share/cgit/cgit.css\"}."
40667msgstr ""
40668
40669#. type: deftypevr
39764ef8 40670#: doc/guix.texi:18755
b9fe8fd6
JL
40671#, no-wrap
40672msgid "{@code{cgit-configuration} parameter} file-object email-filter"
40673msgstr ""
40674
40675#. type: deftypevr
39764ef8 40676#: doc/guix.texi:18759
b9fe8fd6
JL
40677msgid ""
40678"Specifies a command which will be invoked to format names and email address "
40679"of committers, authors, and taggers, as represented in various places "
40680"throughout the cgit interface."
40681msgstr ""
40682
40683#. type: deftypevr
39764ef8 40684#: doc/guix.texi:18764
b9fe8fd6
JL
40685#, no-wrap
40686msgid "{@code{cgit-configuration} parameter} boolean embedded?"
40687msgstr ""
40688
40689#. type: deftypevr
39764ef8 40690#: doc/guix.texi:18767
b9fe8fd6
JL
40691msgid ""
40692"Flag which, when set to @samp{#t}, will make cgit generate a HTML fragment "
40693"suitable for embedding in other HTML pages."
40694msgstr ""
40695
40696#. type: deftypevr
39764ef8 40697#: doc/guix.texi:18772
b9fe8fd6
JL
40698#, no-wrap
40699msgid "{@code{cgit-configuration} parameter} boolean enable-commit-graph?"
40700msgstr ""
40701
40702#. type: deftypevr
39764ef8 40703#: doc/guix.texi:18776
b9fe8fd6
JL
40704msgid ""
40705"Flag which, when set to @samp{#t}, will make cgit print an ASCII-art commit "
40706"history graph to the left of the commit messages in the repository log page."
40707msgstr ""
40708
40709#. type: deftypevr
39764ef8 40710#: doc/guix.texi:18781
b9fe8fd6
JL
40711#, no-wrap
40712msgid "{@code{cgit-configuration} parameter} boolean enable-filter-overrides?"
40713msgstr ""
40714
40715#. type: deftypevr
39764ef8 40716#: doc/guix.texi:18784
b9fe8fd6
JL
40717msgid ""
40718"Flag which, when set to @samp{#t}, allows all filter settings to be "
40719"overridden in repository-specific cgitrc files."
40720msgstr ""
40721
40722#. type: deftypevr
39764ef8 40723#: doc/guix.texi:18789
b9fe8fd6
JL
40724#, no-wrap
40725msgid "{@code{cgit-configuration} parameter} boolean enable-follow-links?"
40726msgstr ""
40727
40728#. type: deftypevr
39764ef8 40729#: doc/guix.texi:18792
b9fe8fd6
JL
40730msgid ""
40731"Flag which, when set to @samp{#t}, allows users to follow a file in the log "
40732"view."
40733msgstr ""
40734
40735#. type: deftypevr
39764ef8 40736#: doc/guix.texi:18797
b9fe8fd6
JL
40737#, no-wrap
40738msgid "{@code{cgit-configuration} parameter} boolean enable-http-clone?"
40739msgstr ""
40740
40741#. type: deftypevr
39764ef8
JL
40742#: doc/guix.texi:18800
40743msgid ""
40744"If set to @samp{#t}, cgit will act as an dumb HTTP endpoint for Git clones."
b9fe8fd6
JL
40745msgstr ""
40746
40747#. type: deftypevr
39764ef8 40748#: doc/guix.texi:18805
b9fe8fd6
JL
40749#, no-wrap
40750msgid "{@code{cgit-configuration} parameter} boolean enable-index-links?"
40751msgstr ""
40752
40753#. type: deftypevr
39764ef8 40754#: doc/guix.texi:18808
b9fe8fd6
JL
40755msgid ""
40756"Flag which, when set to @samp{#t}, will make cgit generate extra links "
40757"\"summary\", \"commit\", \"tree\" for each repo in the repository index."
40758msgstr ""
40759
40760#. type: deftypevr
39764ef8 40761#: doc/guix.texi:18813
b9fe8fd6
JL
40762#, no-wrap
40763msgid "{@code{cgit-configuration} parameter} boolean enable-index-owner?"
40764msgstr ""
40765
40766#. type: deftypevr
39764ef8 40767#: doc/guix.texi:18816
b9fe8fd6
JL
40768msgid ""
40769"Flag which, when set to @samp{#t}, will make cgit display the owner of each "
40770"repo in the repository index."
40771msgstr ""
40772
40773#. type: deftypevr
39764ef8 40774#: doc/guix.texi:18821
b9fe8fd6
JL
40775#, no-wrap
40776msgid "{@code{cgit-configuration} parameter} boolean enable-log-filecount?"
40777msgstr ""
40778
40779#. type: deftypevr
39764ef8 40780#: doc/guix.texi:18824
b9fe8fd6
JL
40781msgid ""
40782"Flag which, when set to @samp{#t}, will make cgit print the number of "
40783"modified files for each commit on the repository log page."
40784msgstr ""
40785
40786#. type: deftypevr
39764ef8 40787#: doc/guix.texi:18829
b9fe8fd6
JL
40788#, no-wrap
40789msgid "{@code{cgit-configuration} parameter} boolean enable-log-linecount?"
40790msgstr ""
40791
40792#. type: deftypevr
39764ef8 40793#: doc/guix.texi:18832
b9fe8fd6
JL
40794msgid ""
40795"Flag which, when set to @samp{#t}, will make cgit print the number of added "
40796"and removed lines for each commit on the repository log page."
40797msgstr ""
40798
40799#. type: deftypevr
39764ef8 40800#: doc/guix.texi:18837
b9fe8fd6
JL
40801#, no-wrap
40802msgid "{@code{cgit-configuration} parameter} boolean enable-remote-branches?"
40803msgstr ""
40804
40805#. type: deftypevr
39764ef8 40806#: doc/guix.texi:18840 doc/guix.texi:19364
b9fe8fd6
JL
40807msgid ""
40808"Flag which, when set to @code{#t}, will make cgit display remote branches in "
40809"the summary and refs views."
40810msgstr ""
40811
40812#. type: deftypevr
39764ef8 40813#: doc/guix.texi:18845
b9fe8fd6
JL
40814#, no-wrap
40815msgid "{@code{cgit-configuration} parameter} boolean enable-subject-links?"
40816msgstr ""
40817
40818#. type: deftypevr
39764ef8 40819#: doc/guix.texi:18849
b9fe8fd6
JL
40820msgid ""
40821"Flag which, when set to @code{1}, will make cgit use the subject of the "
40822"parent commit as link text when generating links to parent commits in commit "
40823"view."
40824msgstr ""
40825
40826#. type: deftypevr
39764ef8 40827#: doc/guix.texi:18854
b9fe8fd6
JL
40828#, no-wrap
40829msgid "{@code{cgit-configuration} parameter} boolean enable-html-serving?"
40830msgstr ""
40831
40832#. type: deftypevr
39764ef8 40833#: doc/guix.texi:18858
b9fe8fd6
JL
40834msgid ""
40835"Flag which, when set to @samp{#t}, will make cgit use the subject of the "
40836"parent commit as link text when generating links to parent commits in commit "
40837"view."
40838msgstr ""
40839
40840#. type: deftypevr
39764ef8 40841#: doc/guix.texi:18863
b9fe8fd6
JL
40842#, no-wrap
40843msgid "{@code{cgit-configuration} parameter} boolean enable-tree-linenumbers?"
40844msgstr ""
40845
40846#. type: deftypevr
39764ef8 40847#: doc/guix.texi:18866
b9fe8fd6
JL
40848msgid ""
40849"Flag which, when set to @samp{#t}, will make cgit generate linenumber links "
40850"for plaintext blobs printed in the tree view."
40851msgstr ""
40852
40853#. type: deftypevr
39764ef8 40854#: doc/guix.texi:18871
b9fe8fd6
JL
40855#, no-wrap
40856msgid "{@code{cgit-configuration} parameter} boolean enable-git-config?"
40857msgstr ""
40858
40859#. type: deftypevr
39764ef8 40860#: doc/guix.texi:18874
b9fe8fd6
JL
40861msgid ""
40862"Flag which, when set to @samp{#f}, will allow cgit to use Git config to set "
40863"any repo specific settings."
40864msgstr ""
40865
40866#. type: deftypevr
39764ef8 40867#: doc/guix.texi:18879
b9fe8fd6
JL
40868#, no-wrap
40869msgid "{@code{cgit-configuration} parameter} file-object favicon"
40870msgstr ""
40871
40872#. type: deftypevr
39764ef8 40873#: doc/guix.texi:18881
b9fe8fd6
JL
40874msgid "URL used as link to a shortcut icon for cgit."
40875msgstr ""
40876
40877#. type: deftypevr
39764ef8 40878#: doc/guix.texi:18883
b9fe8fd6
JL
40879msgid "Defaults to @samp{\"/favicon.ico\"}."
40880msgstr ""
40881
40882#. type: deftypevr
39764ef8 40883#: doc/guix.texi:18886
b9fe8fd6
JL
40884#, no-wrap
40885msgid "{@code{cgit-configuration} parameter} string footer"
40886msgstr ""
40887
40888#. type: deftypevr
39764ef8 40889#: doc/guix.texi:18890
b9fe8fd6
JL
40890msgid ""
40891"The content of the file specified with this option will be included verbatim "
39764ef8
JL
40892"at the bottom of all pages (i.e. it replaces the standard \"generated by..."
40893"\" message)."
b9fe8fd6
JL
40894msgstr ""
40895
40896#. type: deftypevr
39764ef8 40897#: doc/guix.texi:18895
b9fe8fd6
JL
40898#, no-wrap
40899msgid "{@code{cgit-configuration} parameter} string head-include"
40900msgstr ""
40901
40902#. type: deftypevr
39764ef8 40903#: doc/guix.texi:18898
b9fe8fd6
JL
40904msgid ""
40905"The content of the file specified with this option will be included verbatim "
40906"in the HTML HEAD section on all pages."
40907msgstr ""
40908
40909#. type: deftypevr
39764ef8 40910#: doc/guix.texi:18903
b9fe8fd6
JL
40911#, no-wrap
40912msgid "{@code{cgit-configuration} parameter} string header"
40913msgstr ""
40914
40915#. type: deftypevr
39764ef8 40916#: doc/guix.texi:18906
b9fe8fd6
JL
40917msgid ""
40918"The content of the file specified with this option will be included verbatim "
40919"at the top of all pages."
40920msgstr ""
40921
40922#. type: deftypevr
39764ef8 40923#: doc/guix.texi:18911
b9fe8fd6
JL
40924#, no-wrap
40925msgid "{@code{cgit-configuration} parameter} file-object include"
40926msgstr ""
40927
40928#. type: deftypevr
39764ef8 40929#: doc/guix.texi:18914
b9fe8fd6
JL
40930msgid ""
40931"Name of a configfile to include before the rest of the current config- file "
40932"is parsed."
40933msgstr ""
40934
40935#. type: deftypevr
39764ef8 40936#: doc/guix.texi:18919
b9fe8fd6
JL
40937#, no-wrap
40938msgid "{@code{cgit-configuration} parameter} string index-header"
40939msgstr ""
40940
40941#. type: deftypevr
39764ef8 40942#: doc/guix.texi:18922
b9fe8fd6
JL
40943msgid ""
40944"The content of the file specified with this option will be included verbatim "
40945"above the repository index."
40946msgstr ""
40947
40948#. type: deftypevr
39764ef8 40949#: doc/guix.texi:18927
b9fe8fd6
JL
40950#, no-wrap
40951msgid "{@code{cgit-configuration} parameter} string index-info"
40952msgstr ""
40953
40954#. type: deftypevr
39764ef8 40955#: doc/guix.texi:18930
b9fe8fd6
JL
40956msgid ""
40957"The content of the file specified with this option will be included verbatim "
40958"below the heading on the repository index page."
40959msgstr ""
40960
40961#. type: deftypevr
39764ef8 40962#: doc/guix.texi:18935
b9fe8fd6
JL
40963#, no-wrap
40964msgid "{@code{cgit-configuration} parameter} boolean local-time?"
40965msgstr ""
40966
40967#. type: deftypevr
39764ef8 40968#: doc/guix.texi:18938
b9fe8fd6
JL
40969msgid ""
40970"Flag which, if set to @samp{#t}, makes cgit print commit and tag times in "
40971"the servers timezone."
40972msgstr ""
40973
40974#. type: deftypevr
39764ef8 40975#: doc/guix.texi:18943
b9fe8fd6
JL
40976#, no-wrap
40977msgid "{@code{cgit-configuration} parameter} file-object logo"
40978msgstr ""
40979
40980#. type: deftypevr
39764ef8 40981#: doc/guix.texi:18946
b9fe8fd6
JL
40982msgid ""
40983"URL which specifies the source of an image which will be used as a logo on "
40984"all cgit pages."
40985msgstr ""
40986
40987#. type: deftypevr
39764ef8 40988#: doc/guix.texi:18948
b9fe8fd6
JL
40989msgid "Defaults to @samp{\"/share/cgit/cgit.png\"}."
40990msgstr ""
40991
40992#. type: deftypevr
39764ef8 40993#: doc/guix.texi:18951
b9fe8fd6
JL
40994#, no-wrap
40995msgid "{@code{cgit-configuration} parameter} string logo-link"
40996msgstr ""
40997
40998#. type: deftypevr
39764ef8 40999#: doc/guix.texi:18953 doc/guix.texi:19410
b9fe8fd6
JL
41000msgid "URL loaded when clicking on the cgit logo image."
41001msgstr ""
41002
41003#. type: deftypevr
39764ef8 41004#: doc/guix.texi:18958
b9fe8fd6
JL
41005#, no-wrap
41006msgid "{@code{cgit-configuration} parameter} file-object owner-filter"
41007msgstr ""
41008
41009#. type: deftypevr
39764ef8
JL
41010#: doc/guix.texi:18961
41011msgid ""
41012"Command which will be invoked to format the Owner column of the main page."
b9fe8fd6
JL
41013msgstr ""
41014
41015#. type: deftypevr
39764ef8 41016#: doc/guix.texi:18966
b9fe8fd6
JL
41017#, no-wrap
41018msgid "{@code{cgit-configuration} parameter} integer max-atom-items"
41019msgstr ""
41020
41021#. type: deftypevr
39764ef8 41022#: doc/guix.texi:18968
b9fe8fd6
JL
41023msgid "Number of items to display in atom feeds view."
41024msgstr ""
41025
41026#. type: deftypevr
39764ef8
JL
41027#: doc/guix.texi:18970 doc/guix.texi:19205 doc/guix.texi:19213
41028#: doc/guix.texi:19221
b9fe8fd6
JL
41029msgid "Defaults to @samp{10}."
41030msgstr ""
41031
41032#. type: deftypevr
39764ef8 41033#: doc/guix.texi:18973
b9fe8fd6
JL
41034#, no-wrap
41035msgid "{@code{cgit-configuration} parameter} integer max-commit-count"
41036msgstr ""
41037
41038#. type: deftypevr
39764ef8 41039#: doc/guix.texi:18975
b9fe8fd6
JL
41040msgid "Number of entries to list per page in \"log\" view."
41041msgstr ""
41042
41043#. type: deftypevr
39764ef8 41044#: doc/guix.texi:18977 doc/guix.texi:18992
b9fe8fd6
JL
41045msgid "Defaults to @samp{50}."
41046msgstr ""
41047
41048#. type: deftypevr
39764ef8 41049#: doc/guix.texi:18980
b9fe8fd6
JL
41050#, no-wrap
41051msgid "{@code{cgit-configuration} parameter} integer max-message-length"
41052msgstr ""
41053
41054#. type: deftypevr
39764ef8 41055#: doc/guix.texi:18982
b9fe8fd6
JL
41056msgid "Number of commit message characters to display in \"log\" view."
41057msgstr ""
41058
41059#. type: deftypevr
39764ef8 41060#: doc/guix.texi:18984 doc/guix.texi:19000
b9fe8fd6
JL
41061msgid "Defaults to @samp{80}."
41062msgstr ""
41063
41064#. type: deftypevr
39764ef8 41065#: doc/guix.texi:18987
b9fe8fd6
JL
41066#, no-wrap
41067msgid "{@code{cgit-configuration} parameter} integer max-repo-count"
41068msgstr ""
41069
41070#. type: deftypevr
39764ef8 41071#: doc/guix.texi:18990
b9fe8fd6
JL
41072msgid ""
41073"Specifies the number of entries to list per page on the repository index "
41074"page."
41075msgstr ""
41076
41077#. type: deftypevr
39764ef8 41078#: doc/guix.texi:18995
b9fe8fd6
JL
41079#, no-wrap
41080msgid "{@code{cgit-configuration} parameter} integer max-repodesc-length"
41081msgstr ""
41082
41083#. type: deftypevr
39764ef8 41084#: doc/guix.texi:18998
b9fe8fd6
JL
41085msgid ""
41086"Specifies the maximum number of repo description characters to display on "
41087"the repository index page."
41088msgstr ""
41089
41090#. type: deftypevr
39764ef8 41091#: doc/guix.texi:19003
b9fe8fd6
JL
41092#, no-wrap
41093msgid "{@code{cgit-configuration} parameter} integer max-blob-size"
41094msgstr ""
41095
41096#. type: deftypevr
39764ef8 41097#: doc/guix.texi:19005
b9fe8fd6
JL
41098msgid "Specifies the maximum size of a blob to display HTML for in KBytes."
41099msgstr ""
41100
41101#. type: deftypevr
39764ef8 41102#: doc/guix.texi:19010
b9fe8fd6
JL
41103#, no-wrap
41104msgid "{@code{cgit-configuration} parameter} string max-stats"
41105msgstr ""
41106
41107#. type: deftypevr
39764ef8 41108#: doc/guix.texi:19013
b9fe8fd6
JL
41109msgid ""
41110"Maximum statistics period. Valid values are @samp{week},@samp{month}, "
41111"@samp{quarter} and @samp{year}."
41112msgstr ""
41113
41114#. type: deftypevr
39764ef8 41115#: doc/guix.texi:19018
b9fe8fd6
JL
41116#, no-wrap
41117msgid "{@code{cgit-configuration} parameter} mimetype-alist mimetype"
41118msgstr ""
41119
41120#. type: deftypevr
39764ef8 41121#: doc/guix.texi:19020
b9fe8fd6
JL
41122msgid "Mimetype for the specified filename extension."
41123msgstr ""
41124
41125#. type: deftypevr
39764ef8 41126#: doc/guix.texi:19024
b9fe8fd6 41127msgid ""
39764ef8
JL
41128"Defaults to @samp{((gif \"image/gif\") (html \"text/html\") (jpg \"image/jpeg"
41129"\") (jpeg \"image/jpeg\") (pdf \"application/pdf\") (png \"image/png\") (svg "
41130"\"image/svg+xml\"))}."
b9fe8fd6
JL
41131msgstr ""
41132
41133#. type: deftypevr
39764ef8 41134#: doc/guix.texi:19027
b9fe8fd6
JL
41135#, no-wrap
41136msgid "{@code{cgit-configuration} parameter} file-object mimetype-file"
41137msgstr ""
41138
41139#. type: deftypevr
39764ef8 41140#: doc/guix.texi:19029
b9fe8fd6
JL
41141msgid "Specifies the file to use for automatic mimetype lookup."
41142msgstr ""
41143
41144#. type: deftypevr
39764ef8 41145#: doc/guix.texi:19034
b9fe8fd6
JL
41146#, no-wrap
41147msgid "{@code{cgit-configuration} parameter} string module-link"
41148msgstr ""
41149
41150#. type: deftypevr
39764ef8 41151#: doc/guix.texi:19037
b9fe8fd6
JL
41152msgid ""
41153"Text which will be used as the formatstring for a hyperlink when a submodule "
41154"is printed in a directory listing."
41155msgstr ""
41156
41157#. type: deftypevr
39764ef8 41158#: doc/guix.texi:19042
b9fe8fd6
JL
41159#, no-wrap
41160msgid "{@code{cgit-configuration} parameter} boolean nocache?"
41161msgstr ""
41162
41163#. type: deftypevr
39764ef8 41164#: doc/guix.texi:19044
b9fe8fd6
JL
41165msgid "If set to the value @samp{#t} caching will be disabled."
41166msgstr ""
41167
41168#. type: deftypevr
39764ef8 41169#: doc/guix.texi:19049
b9fe8fd6
JL
41170#, no-wrap
41171msgid "{@code{cgit-configuration} parameter} boolean noplainemail?"
41172msgstr ""
41173
41174#. type: deftypevr
39764ef8
JL
41175#: doc/guix.texi:19052
41176msgid ""
41177"If set to @samp{#t} showing full author email addresses will be disabled."
b9fe8fd6
JL
41178msgstr ""
41179
41180#. type: deftypevr
39764ef8 41181#: doc/guix.texi:19057
b9fe8fd6
JL
41182#, no-wrap
41183msgid "{@code{cgit-configuration} parameter} boolean noheader?"
41184msgstr ""
41185
41186#. type: deftypevr
39764ef8 41187#: doc/guix.texi:19060
b9fe8fd6
JL
41188msgid ""
41189"Flag which, when set to @samp{#t}, will make cgit omit the standard header "
41190"on all pages."
41191msgstr ""
41192
41193#. type: deftypevr
39764ef8 41194#: doc/guix.texi:19065
b9fe8fd6
JL
41195#, no-wrap
41196msgid "{@code{cgit-configuration} parameter} list project-list"
41197msgstr ""
41198
41199#. type: deftypevr
39764ef8 41200#: doc/guix.texi:19069
b9fe8fd6
JL
41201msgid ""
41202"A list of subdirectories inside of @code{repository-directory}, relative to "
41203"it, that should loaded as Git repositories. An empty list means that all "
41204"subdirectories will be loaded."
41205msgstr ""
41206
41207#. type: deftypevr
39764ef8 41208#: doc/guix.texi:19074
b9fe8fd6
JL
41209#, no-wrap
41210msgid "{@code{cgit-configuration} parameter} file-object readme"
41211msgstr ""
41212
41213#. type: deftypevr
39764ef8 41214#: doc/guix.texi:19076
b9fe8fd6
JL
41215msgid "Text which will be used as default value for @code{cgit-repo-readme}."
41216msgstr ""
41217
41218#. type: deftypevr
39764ef8 41219#: doc/guix.texi:19081
b9fe8fd6
JL
41220#, no-wrap
41221msgid "{@code{cgit-configuration} parameter} boolean remove-suffix?"
41222msgstr ""
41223
41224#. type: deftypevr
39764ef8 41225#: doc/guix.texi:19085
b9fe8fd6
JL
41226msgid ""
41227"If set to @code{#t} and @code{repository-directory} is enabled, if any "
41228"repositories are found with a suffix of @code{.git}, this suffix will be "
41229"removed for the URL and name."
41230msgstr ""
41231
41232#. type: deftypevr
39764ef8 41233#: doc/guix.texi:19090
b9fe8fd6
JL
41234#, no-wrap
41235msgid "{@code{cgit-configuration} parameter} integer renamelimit"
41236msgstr ""
41237
41238#. type: deftypevr
39764ef8 41239#: doc/guix.texi:19092
b9fe8fd6
JL
41240msgid "Maximum number of files to consider when detecting renames."
41241msgstr ""
41242
41243#. type: deftypevr
39764ef8 41244#: doc/guix.texi:19097
b9fe8fd6
JL
41245#, no-wrap
41246msgid "{@code{cgit-configuration} parameter} string repository-sort"
41247msgstr ""
41248
41249#. type: deftypevr
39764ef8 41250#: doc/guix.texi:19099
b9fe8fd6
JL
41251msgid "The way in which repositories in each section are sorted."
41252msgstr ""
41253
41254#. type: deftypevr
39764ef8 41255#: doc/guix.texi:19104
b9fe8fd6
JL
41256#, no-wrap
41257msgid "{@code{cgit-configuration} parameter} robots-list robots"
41258msgstr ""
41259
41260#. type: deftypevr
39764ef8 41261#: doc/guix.texi:19106
b9fe8fd6
JL
41262msgid "Text used as content for the @code{robots} meta-tag."
41263msgstr ""
41264
41265#. type: deftypevr
39764ef8 41266#: doc/guix.texi:19108
b9fe8fd6
JL
41267msgid "Defaults to @samp{(\"noindex\" \"nofollow\")}."
41268msgstr ""
41269
41270#. type: deftypevr
39764ef8 41271#: doc/guix.texi:19111
b9fe8fd6
JL
41272#, no-wrap
41273msgid "{@code{cgit-configuration} parameter} string root-desc"
41274msgstr ""
41275
41276#. type: deftypevr
39764ef8 41277#: doc/guix.texi:19113
b9fe8fd6
JL
41278msgid "Text printed below the heading on the repository index page."
41279msgstr ""
41280
41281#. type: deftypevr
39764ef8 41282#: doc/guix.texi:19115
b9fe8fd6
JL
41283msgid "Defaults to @samp{\"a fast webinterface for the git dscm\"}."
41284msgstr ""
41285
41286#. type: deftypevr
39764ef8 41287#: doc/guix.texi:19118
b9fe8fd6
JL
41288#, no-wrap
41289msgid "{@code{cgit-configuration} parameter} string root-readme"
41290msgstr ""
41291
41292#. type: deftypevr
39764ef8 41293#: doc/guix.texi:19121
b9fe8fd6
JL
41294msgid ""
41295"The content of the file specified with this option will be included verbatim "
41296"below thef \"about\" link on the repository index page."
41297msgstr ""
41298
41299#. type: deftypevr
39764ef8 41300#: doc/guix.texi:19126
b9fe8fd6
JL
41301#, no-wrap
41302msgid "{@code{cgit-configuration} parameter} string root-title"
41303msgstr ""
41304
41305#. type: deftypevr
39764ef8 41306#: doc/guix.texi:19128
b9fe8fd6
JL
41307msgid "Text printed as heading on the repository index page."
41308msgstr ""
41309
41310#. type: deftypevr
39764ef8 41311#: doc/guix.texi:19133
b9fe8fd6
JL
41312#, no-wrap
41313msgid "{@code{cgit-configuration} parameter} boolean scan-hidden-path"
41314msgstr ""
41315
41316#. type: deftypevr
39764ef8 41317#: doc/guix.texi:19139
b9fe8fd6 41318msgid ""
39764ef8
JL
41319"If set to @samp{#t} and repository-directory is enabled, repository-"
41320"directory will recurse into directories whose name starts with a period. "
41321"Otherwise, repository-directory will stay away from such directories, "
41322"considered as \"hidden\". Note that this does not apply to the \".git\" "
41323"directory in non-bare repos."
b9fe8fd6
JL
41324msgstr ""
41325
41326#. type: deftypevr
39764ef8 41327#: doc/guix.texi:19144
b9fe8fd6
JL
41328#, no-wrap
41329msgid "{@code{cgit-configuration} parameter} list snapshots"
41330msgstr ""
41331
41332#. type: deftypevr
39764ef8 41333#: doc/guix.texi:19147
b9fe8fd6
JL
41334msgid ""
41335"Text which specifies the default set of snapshot formats that cgit generates "
41336"links for."
41337msgstr ""
41338
41339#. type: deftypevr
39764ef8 41340#: doc/guix.texi:19152
b9fe8fd6 41341#, no-wrap
39764ef8 41342msgid "{@code{cgit-configuration} parameter} repository-directory repository-directory"
b9fe8fd6
JL
41343msgstr ""
41344
41345#. type: deftypevr
39764ef8 41346#: doc/guix.texi:19155
b9fe8fd6 41347msgid ""
39764ef8 41348"Name of the directory to scan for repositories (represents @code{scan-path})."
b9fe8fd6
JL
41349msgstr ""
41350
41351#. type: deftypevr
39764ef8 41352#: doc/guix.texi:19157
b9fe8fd6
JL
41353msgid "Defaults to @samp{\"/srv/git\"}."
41354msgstr ""
41355
41356#. type: deftypevr
39764ef8 41357#: doc/guix.texi:19160
b9fe8fd6
JL
41358#, no-wrap
41359msgid "{@code{cgit-configuration} parameter} string section"
41360msgstr ""
41361
41362#. type: deftypevr
39764ef8 41363#: doc/guix.texi:19163 doc/guix.texi:19479
b9fe8fd6
JL
41364msgid ""
41365"The name of the current repository section - all repositories defined after "
41366"this option will inherit the current section name."
41367msgstr ""
41368
41369#. type: deftypevr
39764ef8 41370#: doc/guix.texi:19168
b9fe8fd6
JL
41371#, no-wrap
41372msgid "{@code{cgit-configuration} parameter} string section-sort"
41373msgstr ""
41374
41375#. type: deftypevr
39764ef8 41376#: doc/guix.texi:19171
b9fe8fd6
JL
41377msgid ""
41378"Flag which, when set to @samp{1}, will sort the sections on the repository "
41379"listing by name."
41380msgstr ""
41381
41382#. type: deftypevr
39764ef8 41383#: doc/guix.texi:19176
b9fe8fd6
JL
41384#, no-wrap
41385msgid "{@code{cgit-configuration} parameter} integer section-from-path"
41386msgstr ""
41387
41388#. type: deftypevr
39764ef8 41389#: doc/guix.texi:19179
b9fe8fd6
JL
41390msgid ""
41391"A number which, if defined prior to repository-directory, specifies how many "
41392"path elements from each repo path to use as a default section name."
41393msgstr ""
41394
41395#. type: deftypevr
39764ef8 41396#: doc/guix.texi:19184
b9fe8fd6
JL
41397#, no-wrap
41398msgid "{@code{cgit-configuration} parameter} boolean side-by-side-diffs?"
41399msgstr ""
41400
41401#. type: deftypevr
39764ef8 41402#: doc/guix.texi:19187
b9fe8fd6 41403msgid ""
39764ef8 41404"If set to @samp{#t} shows side-by-side diffs instead of unidiffs per default."
b9fe8fd6
JL
41405msgstr ""
41406
41407#. type: deftypevr
39764ef8 41408#: doc/guix.texi:19192
b9fe8fd6
JL
41409#, no-wrap
41410msgid "{@code{cgit-configuration} parameter} file-object source-filter"
41411msgstr ""
41412
41413#. type: deftypevr
39764ef8 41414#: doc/guix.texi:19195
b9fe8fd6
JL
41415msgid ""
41416"Specifies a command which will be invoked to format plaintext blobs in the "
41417"tree view."
41418msgstr ""
41419
41420#. type: deftypevr
39764ef8 41421#: doc/guix.texi:19200
b9fe8fd6
JL
41422#, no-wrap
41423msgid "{@code{cgit-configuration} parameter} integer summary-branches"
41424msgstr ""
41425
41426#. type: deftypevr
39764ef8 41427#: doc/guix.texi:19203
b9fe8fd6
JL
41428msgid ""
41429"Specifies the number of branches to display in the repository \"summary\" "
41430"view."
41431msgstr ""
41432
41433#. type: deftypevr
39764ef8 41434#: doc/guix.texi:19208
b9fe8fd6
JL
41435#, no-wrap
41436msgid "{@code{cgit-configuration} parameter} integer summary-log"
41437msgstr ""
41438
41439#. type: deftypevr
39764ef8 41440#: doc/guix.texi:19211
b9fe8fd6
JL
41441msgid ""
41442"Specifies the number of log entries to display in the repository \"summary\" "
41443"view."
41444msgstr ""
41445
41446#. type: deftypevr
39764ef8 41447#: doc/guix.texi:19216
b9fe8fd6
JL
41448#, no-wrap
41449msgid "{@code{cgit-configuration} parameter} integer summary-tags"
41450msgstr ""
41451
41452#. type: deftypevr
39764ef8
JL
41453#: doc/guix.texi:19219
41454msgid ""
41455"Specifies the number of tags to display in the repository \"summary\" view."
b9fe8fd6
JL
41456msgstr ""
41457
41458#. type: deftypevr
39764ef8 41459#: doc/guix.texi:19224
b9fe8fd6
JL
41460#, no-wrap
41461msgid "{@code{cgit-configuration} parameter} string strict-export"
41462msgstr ""
41463
41464#. type: deftypevr
39764ef8 41465#: doc/guix.texi:19227
b9fe8fd6
JL
41466msgid ""
41467"Filename which, if specified, needs to be present within the repository for "
41468"cgit to allow access to that repository."
41469msgstr ""
41470
41471#. type: deftypevr
39764ef8 41472#: doc/guix.texi:19232
b9fe8fd6
JL
41473#, no-wrap
41474msgid "{@code{cgit-configuration} parameter} string virtual-root"
41475msgstr ""
41476
41477#. type: deftypevr
39764ef8 41478#: doc/guix.texi:19234
b9fe8fd6
JL
41479msgid "URL which, if specified, will be used as root for all cgit links."
41480msgstr ""
41481
41482#. type: deftypevr
39764ef8 41483#: doc/guix.texi:19236
b9fe8fd6
JL
41484msgid "Defaults to @samp{\"/\"}."
41485msgstr ""
41486
41487#. type: deftypevr
39764ef8 41488#: doc/guix.texi:19239
b9fe8fd6 41489#, no-wrap
39764ef8 41490msgid "{@code{cgit-configuration} parameter} repository-cgit-configuration-list repositories"
b9fe8fd6
JL
41491msgstr ""
41492
41493#. type: deftypevr
39764ef8 41494#: doc/guix.texi:19241
b9fe8fd6
JL
41495msgid "A list of @dfn{cgit-repo} records to use with config."
41496msgstr ""
41497
41498#. type: deftypevr
39764ef8 41499#: doc/guix.texi:19245
b9fe8fd6
JL
41500msgid "Available @code{repository-cgit-configuration} fields are:"
41501msgstr ""
41502
41503#. type: deftypevr
39764ef8 41504#: doc/guix.texi:19246
b9fe8fd6
JL
41505#, no-wrap
41506msgid "{@code{repository-cgit-configuration} parameter} repo-list snapshots"
41507msgstr ""
41508
41509#. type: deftypevr
39764ef8 41510#: doc/guix.texi:19249
b9fe8fd6
JL
41511msgid ""
41512"A mask of snapshot formats for this repo that cgit generates links for, "
41513"restricted by the global @code{snapshots} setting."
41514msgstr ""
41515
41516#. type: deftypevr
39764ef8 41517#: doc/guix.texi:19254
b9fe8fd6 41518#, no-wrap
39764ef8 41519msgid "{@code{repository-cgit-configuration} parameter} repo-file-object source-filter"
b9fe8fd6
JL
41520msgstr ""
41521
41522#. type: deftypevr
39764ef8 41523#: doc/guix.texi:19256
b9fe8fd6
JL
41524msgid "Override the default @code{source-filter}."
41525msgstr ""
41526
41527#. type: deftypevr
39764ef8 41528#: doc/guix.texi:19261
b9fe8fd6
JL
41529#, no-wrap
41530msgid "{@code{repository-cgit-configuration} parameter} repo-string url"
41531msgstr ""
41532
41533#. type: deftypevr
39764ef8 41534#: doc/guix.texi:19263
b9fe8fd6
JL
41535msgid "The relative URL used to access the repository."
41536msgstr ""
41537
41538#. type: deftypevr
39764ef8 41539#: doc/guix.texi:19268
b9fe8fd6 41540#, no-wrap
39764ef8 41541msgid "{@code{repository-cgit-configuration} parameter} repo-file-object about-filter"
b9fe8fd6
JL
41542msgstr ""
41543
41544#. type: deftypevr
39764ef8 41545#: doc/guix.texi:19270
b9fe8fd6
JL
41546msgid "Override the default @code{about-filter}."
41547msgstr ""
41548
41549#. type: deftypevr
39764ef8 41550#: doc/guix.texi:19275
b9fe8fd6
JL
41551#, no-wrap
41552msgid "{@code{repository-cgit-configuration} parameter} repo-string branch-sort"
41553msgstr ""
41554
41555#. type: deftypevr
39764ef8 41556#: doc/guix.texi:19278
b9fe8fd6
JL
41557msgid ""
41558"Flag which, when set to @samp{age}, enables date ordering in the branch ref "
41559"list, and when set to @samp{name} enables ordering by branch name."
41560msgstr ""
41561
41562#. type: deftypevr
39764ef8 41563#: doc/guix.texi:19283
b9fe8fd6
JL
41564#, no-wrap
41565msgid "{@code{repository-cgit-configuration} parameter} repo-list clone-url"
41566msgstr ""
41567
41568#. type: deftypevr
39764ef8 41569#: doc/guix.texi:19285
b9fe8fd6
JL
41570msgid "A list of URLs which can be used to clone repo."
41571msgstr ""
41572
41573#. type: deftypevr
39764ef8 41574#: doc/guix.texi:19290
b9fe8fd6 41575#, no-wrap
39764ef8 41576msgid "{@code{repository-cgit-configuration} parameter} repo-file-object commit-filter"
b9fe8fd6
JL
41577msgstr ""
41578
41579#. type: deftypevr
39764ef8 41580#: doc/guix.texi:19292
b9fe8fd6
JL
41581msgid "Override the default @code{commit-filter}."
41582msgstr ""
41583
41584#. type: deftypevr
39764ef8 41585#: doc/guix.texi:19297
b9fe8fd6
JL
41586#, no-wrap
41587msgid "{@code{repository-cgit-configuration} parameter} repo-string commit-sort"
41588msgstr ""
41589
41590#. type: deftypevr
39764ef8 41591#: doc/guix.texi:19306
b9fe8fd6
JL
41592#, no-wrap
41593msgid "{@code{repository-cgit-configuration} parameter} repo-string defbranch"
41594msgstr ""
41595
41596#. type: deftypevr
39764ef8 41597#: doc/guix.texi:19311
b9fe8fd6
JL
41598msgid ""
41599"The name of the default branch for this repository. If no such branch "
41600"exists in the repository, the first branch name (when sorted) is used as "
41601"default instead. By default branch pointed to by HEAD, or \"master\" if "
41602"there is no suitable HEAD."
41603msgstr ""
41604
41605#. type: deftypevr
39764ef8 41606#: doc/guix.texi:19316
b9fe8fd6
JL
41607#, no-wrap
41608msgid "{@code{repository-cgit-configuration} parameter} repo-string desc"
41609msgstr ""
41610
41611#. type: deftypevr
39764ef8 41612#: doc/guix.texi:19318
b9fe8fd6
JL
41613msgid "The value to show as repository description."
41614msgstr ""
41615
41616#. type: deftypevr
39764ef8 41617#: doc/guix.texi:19323
b9fe8fd6
JL
41618#, no-wrap
41619msgid "{@code{repository-cgit-configuration} parameter} repo-string homepage"
41620msgstr ""
41621
41622#. type: deftypevr
39764ef8 41623#: doc/guix.texi:19325
b9fe8fd6
JL
41624msgid "The value to show as repository homepage."
41625msgstr ""
41626
41627#. type: deftypevr
39764ef8 41628#: doc/guix.texi:19330
b9fe8fd6 41629#, no-wrap
39764ef8 41630msgid "{@code{repository-cgit-configuration} parameter} repo-file-object email-filter"
b9fe8fd6
JL
41631msgstr ""
41632
41633#. type: deftypevr
39764ef8 41634#: doc/guix.texi:19332
b9fe8fd6
JL
41635msgid "Override the default @code{email-filter}."
41636msgstr ""
41637
41638#. type: deftypevr
39764ef8 41639#: doc/guix.texi:19337
b9fe8fd6 41640#, no-wrap
39764ef8 41641msgid "{@code{repository-cgit-configuration} parameter} repo-boolean enable-commit-graph?"
b9fe8fd6
JL
41642msgstr ""
41643
41644#. type: deftypevr
39764ef8 41645#: doc/guix.texi:19340
b9fe8fd6 41646msgid ""
39764ef8
JL
41647"A flag which can be used to disable the global setting @code{enable-commit-"
41648"graph?}."
b9fe8fd6
JL
41649msgstr ""
41650
41651#. type: deftypevr
39764ef8 41652#: doc/guix.texi:19345
b9fe8fd6 41653#, no-wrap
39764ef8 41654msgid "{@code{repository-cgit-configuration} parameter} repo-boolean enable-log-filecount?"
b9fe8fd6
JL
41655msgstr ""
41656
41657#. type: deftypevr
39764ef8 41658#: doc/guix.texi:19348
b9fe8fd6 41659msgid ""
39764ef8
JL
41660"A flag which can be used to disable the global setting @code{enable-log-"
41661"filecount?}."
b9fe8fd6
JL
41662msgstr ""
41663
41664#. type: deftypevr
39764ef8 41665#: doc/guix.texi:19353
b9fe8fd6 41666#, no-wrap
39764ef8 41667msgid "{@code{repository-cgit-configuration} parameter} repo-boolean enable-log-linecount?"
b9fe8fd6
JL
41668msgstr ""
41669
41670#. type: deftypevr
39764ef8 41671#: doc/guix.texi:19356
b9fe8fd6 41672msgid ""
39764ef8
JL
41673"A flag which can be used to disable the global setting @code{enable-log-"
41674"linecount?}."
b9fe8fd6
JL
41675msgstr ""
41676
41677#. type: deftypevr
39764ef8 41678#: doc/guix.texi:19361
b9fe8fd6 41679#, no-wrap
39764ef8 41680msgid "{@code{repository-cgit-configuration} parameter} repo-boolean enable-remote-branches?"
b9fe8fd6
JL
41681msgstr ""
41682
41683#. type: deftypevr
39764ef8 41684#: doc/guix.texi:19369
b9fe8fd6 41685#, no-wrap
39764ef8 41686msgid "{@code{repository-cgit-configuration} parameter} repo-boolean enable-subject-links?"
b9fe8fd6
JL
41687msgstr ""
41688
41689#. type: deftypevr
39764ef8 41690#: doc/guix.texi:19372
b9fe8fd6 41691msgid ""
39764ef8
JL
41692"A flag which can be used to override the global setting @code{enable-subject-"
41693"links?}."
b9fe8fd6
JL
41694msgstr ""
41695
41696#. type: deftypevr
39764ef8 41697#: doc/guix.texi:19377
b9fe8fd6 41698#, no-wrap
39764ef8 41699msgid "{@code{repository-cgit-configuration} parameter} repo-boolean enable-html-serving?"
b9fe8fd6
JL
41700msgstr ""
41701
41702#. type: deftypevr
39764ef8 41703#: doc/guix.texi:19380
b9fe8fd6 41704msgid ""
39764ef8
JL
41705"A flag which can be used to override the global setting @code{enable-html-"
41706"serving?}."
b9fe8fd6
JL
41707msgstr ""
41708
41709#. type: deftypevr
39764ef8 41710#: doc/guix.texi:19385
b9fe8fd6
JL
41711#, no-wrap
41712msgid "{@code{repository-cgit-configuration} parameter} repo-boolean hide?"
41713msgstr ""
41714
41715#. type: deftypevr
39764ef8 41716#: doc/guix.texi:19388
b9fe8fd6
JL
41717msgid ""
41718"Flag which, when set to @code{#t}, hides the repository from the repository "
41719"index."
41720msgstr ""
41721
41722#. type: deftypevr
39764ef8 41723#: doc/guix.texi:19393
b9fe8fd6
JL
41724#, no-wrap
41725msgid "{@code{repository-cgit-configuration} parameter} repo-boolean ignore?"
41726msgstr ""
41727
41728#. type: deftypevr
39764ef8 41729#: doc/guix.texi:19395
b9fe8fd6
JL
41730msgid "Flag which, when set to @samp{#t}, ignores the repository."
41731msgstr ""
41732
41733#. type: deftypevr
39764ef8 41734#: doc/guix.texi:19400
b9fe8fd6
JL
41735#, no-wrap
41736msgid "{@code{repository-cgit-configuration} parameter} repo-file-object logo"
41737msgstr ""
41738
41739#. type: deftypevr
39764ef8 41740#: doc/guix.texi:19403
b9fe8fd6
JL
41741msgid ""
41742"URL which specifies the source of an image which will be used as a logo on "
41743"this repo’s pages."
41744msgstr ""
41745
41746#. type: deftypevr
39764ef8 41747#: doc/guix.texi:19408
b9fe8fd6
JL
41748#, no-wrap
41749msgid "{@code{repository-cgit-configuration} parameter} repo-string logo-link"
41750msgstr ""
41751
41752#. type: deftypevr
39764ef8 41753#: doc/guix.texi:19415
b9fe8fd6 41754#, no-wrap
39764ef8 41755msgid "{@code{repository-cgit-configuration} parameter} repo-file-object owner-filter"
b9fe8fd6
JL
41756msgstr ""
41757
41758#. type: deftypevr
39764ef8 41759#: doc/guix.texi:19417
b9fe8fd6
JL
41760msgid "Override the default @code{owner-filter}."
41761msgstr ""
41762
41763#. type: deftypevr
39764ef8 41764#: doc/guix.texi:19422
b9fe8fd6
JL
41765#, no-wrap
41766msgid "{@code{repository-cgit-configuration} parameter} repo-string module-link"
41767msgstr ""
41768
41769#. type: deftypevr
39764ef8 41770#: doc/guix.texi:19426
b9fe8fd6
JL
41771msgid ""
41772"Text which will be used as the formatstring for a hyperlink when a submodule "
41773"is printed in a directory listing. The arguments for the formatstring are "
41774"the path and SHA1 of the submodule commit."
41775msgstr ""
41776
41777#. type: deftypevr
39764ef8 41778#: doc/guix.texi:19431
b9fe8fd6 41779#, no-wrap
39764ef8 41780msgid "{@code{repository-cgit-configuration} parameter} module-link-path module-link-path"
b9fe8fd6
JL
41781msgstr ""
41782
41783#. type: deftypevr
39764ef8 41784#: doc/guix.texi:19435
b9fe8fd6
JL
41785msgid ""
41786"Text which will be used as the formatstring for a hyperlink when a submodule "
41787"with the specified subdirectory path is printed in a directory listing."
41788msgstr ""
41789
41790#. type: deftypevr
39764ef8 41791#: doc/guix.texi:19440
b9fe8fd6
JL
41792#, no-wrap
41793msgid "{@code{repository-cgit-configuration} parameter} repo-string max-stats"
41794msgstr ""
41795
41796#. type: deftypevr
39764ef8 41797#: doc/guix.texi:19442
b9fe8fd6
JL
41798msgid "Override the default maximum statistics period."
41799msgstr ""
41800
41801#. type: deftypevr
39764ef8 41802#: doc/guix.texi:19447
b9fe8fd6
JL
41803#, no-wrap
41804msgid "{@code{repository-cgit-configuration} parameter} repo-string name"
41805msgstr ""
41806
41807#. type: deftypevr
39764ef8 41808#: doc/guix.texi:19449
b9fe8fd6
JL
41809msgid "The value to show as repository name."
41810msgstr ""
41811
41812#. type: deftypevr
39764ef8 41813#: doc/guix.texi:19454
b9fe8fd6
JL
41814#, no-wrap
41815msgid "{@code{repository-cgit-configuration} parameter} repo-string owner"
41816msgstr ""
41817
41818#. type: deftypevr
39764ef8 41819#: doc/guix.texi:19456
b9fe8fd6
JL
41820msgid "A value used to identify the owner of the repository."
41821msgstr ""
41822
41823#. type: deftypevr
39764ef8 41824#: doc/guix.texi:19461
b9fe8fd6
JL
41825#, no-wrap
41826msgid "{@code{repository-cgit-configuration} parameter} repo-string path"
41827msgstr ""
41828
41829#. type: deftypevr
39764ef8 41830#: doc/guix.texi:19463
b9fe8fd6
JL
41831msgid "An absolute path to the repository directory."
41832msgstr ""
41833
41834#. type: deftypevr
39764ef8 41835#: doc/guix.texi:19468
b9fe8fd6
JL
41836#, no-wrap
41837msgid "{@code{repository-cgit-configuration} parameter} repo-string readme"
41838msgstr ""
41839
41840#. type: deftypevr
39764ef8 41841#: doc/guix.texi:19471
b9fe8fd6
JL
41842msgid ""
41843"A path (relative to repo) which specifies a file to include verbatim as the "
41844"\"About\" page for this repo."
41845msgstr ""
41846
41847#. type: deftypevr
39764ef8 41848#: doc/guix.texi:19476
b9fe8fd6
JL
41849#, no-wrap
41850msgid "{@code{repository-cgit-configuration} parameter} repo-string section"
41851msgstr ""
41852
41853#. type: deftypevr
39764ef8 41854#: doc/guix.texi:19484
b9fe8fd6
JL
41855#, no-wrap
41856msgid "{@code{repository-cgit-configuration} parameter} repo-list extra-options"
41857msgstr ""
41858
41859#. type: deftypevr
39764ef8 41860#: doc/guix.texi:19486 doc/guix.texi:19495
b9fe8fd6
JL
41861msgid "Extra options will be appended to cgitrc file."
41862msgstr ""
41863
41864#. type: deftypevr
39764ef8 41865#: doc/guix.texi:19493
b9fe8fd6
JL
41866#, no-wrap
41867msgid "{@code{cgit-configuration} parameter} list extra-options"
41868msgstr ""
41869
41870#. type: Plain text
39764ef8 41871#: doc/guix.texi:19507
b9fe8fd6
JL
41872msgid ""
41873"However, it could be that you just want to get a @code{cgitrc} up and "
41874"running. In that case, you can pass an @code{opaque-cgit-configuration} as "
41875"a record to @code{cgit-service-type}. As its name indicates, an opaque "
41876"configuration does not have easy reflective capabilities."
41877msgstr ""
41878
41879#. type: Plain text
39764ef8 41880#: doc/guix.texi:19509
b9fe8fd6
JL
41881msgid "Available @code{opaque-cgit-configuration} fields are:"
41882msgstr ""
41883
41884#. type: deftypevr
39764ef8 41885#: doc/guix.texi:19510
b9fe8fd6
JL
41886#, no-wrap
41887msgid "{@code{opaque-cgit-configuration} parameter} package cgit"
41888msgstr ""
41889
41890#. type: deftypevr
39764ef8 41891#: doc/guix.texi:19512
b9fe8fd6
JL
41892msgid "The cgit package."
41893msgstr ""
41894
41895#. type: deftypevr
39764ef8 41896#: doc/guix.texi:19514
b9fe8fd6
JL
41897#, no-wrap
41898msgid "{@code{opaque-cgit-configuration} parameter} string string"
41899msgstr ""
41900
41901#. type: deftypevr
39764ef8 41902#: doc/guix.texi:19516
b9fe8fd6
JL
41903msgid "The contents of the @code{cgitrc}, as a string."
41904msgstr ""
41905
41906#. type: Plain text
39764ef8 41907#: doc/guix.texi:19520
b9fe8fd6
JL
41908msgid ""
41909"For example, if your @code{cgitrc} is just the empty string, you could "
41910"instantiate a cgit service like this:"
41911msgstr ""
41912
41913#. type: example
39764ef8 41914#: doc/guix.texi:19525
b9fe8fd6
JL
41915#, no-wrap
41916msgid ""
41917"(service cgit-service-type\n"
41918" (opaque-cgit-configuration\n"
41919" (cgitrc \"\")))\n"
41920msgstr ""
41921
41922#. type: subsubheading
39764ef8 41923#: doc/guix.texi:19531
b9fe8fd6
JL
41924#, no-wrap
41925msgid "The Battle for Wesnoth Service"
41926msgstr ""
41927
41928#. type: cindex
39764ef8 41929#: doc/guix.texi:19532
b9fe8fd6
JL
41930#, no-wrap
41931msgid "wesnothd"
41932msgstr ""
41933
41934#. type: Plain text
39764ef8 41935#: doc/guix.texi:19536
b9fe8fd6
JL
41936msgid ""
41937"@uref{https://wesnoth.org, The Battle for Wesnoth} is a fantasy, turn based "
41938"tactical strategy game, with several single player campaigns, and "
41939"multiplayer games (both networked and local)."
41940msgstr ""
41941
41942#. type: defvar
39764ef8 41943#: doc/guix.texi:19537
b9fe8fd6
JL
41944#, no-wrap
41945msgid "{Scheme Variable} wesnothd-service-type"
41946msgstr ""
41947
41948#. type: defvar
39764ef8 41949#: doc/guix.texi:19541
b9fe8fd6 41950msgid ""
39764ef8
JL
41951"Service type for the wesnothd service. Its value must be a @code{wesnothd-"
41952"configuration} object. To run wesnothd in the default configuration, "
41953"instantiate it as:"
b9fe8fd6
JL
41954msgstr ""
41955
41956#. type: example
39764ef8 41957#: doc/guix.texi:19544
b9fe8fd6
JL
41958#, no-wrap
41959msgid "(service wesnothd-service-type)\n"
41960msgstr ""
41961
41962#. type: deftp
39764ef8 41963#: doc/guix.texi:19547
b9fe8fd6
JL
41964#, no-wrap
41965msgid "{Data Type} wesnothd-configuration"
41966msgstr ""
41967
41968#. type: deftp
39764ef8 41969#: doc/guix.texi:19549
b9fe8fd6
JL
41970msgid "Data type representing the configuration of @command{wesnothd}."
41971msgstr ""
41972
41973#. type: item
39764ef8 41974#: doc/guix.texi:19551
b9fe8fd6
JL
41975#, no-wrap
41976msgid "@code{package} (default: @code{wesnoth-server})"
41977msgstr ""
41978
41979#. type: table
39764ef8 41980#: doc/guix.texi:19553
b9fe8fd6
JL
41981msgid "The wesnoth server package to use."
41982msgstr ""
41983
41984#. type: item
39764ef8 41985#: doc/guix.texi:19554
b9fe8fd6
JL
41986#, no-wrap
41987msgid "@code{port} (default: @code{15000})"
41988msgstr ""
41989
41990#. type: table
39764ef8 41991#: doc/guix.texi:19556
b9fe8fd6
JL
41992msgid "The port to bind the server to."
41993msgstr ""
41994
41995#. type: cindex
39764ef8 41996#: doc/guix.texi:19562
b9fe8fd6
JL
41997#, no-wrap
41998msgid "sysctl"
41999msgstr ""
42000
42001#. type: subsubheading
39764ef8 42002#: doc/guix.texi:19563
b9fe8fd6
JL
42003#, no-wrap
42004msgid "System Control Service"
42005msgstr ""
42006
42007#. type: Plain text
39764ef8 42008#: doc/guix.texi:19567
b9fe8fd6
JL
42009msgid ""
42010"The @code{(gnu services sysctl)} provides a service to configure kernel "
42011"parameters at boot."
42012msgstr ""
42013
42014#. type: defvr
39764ef8 42015#: doc/guix.texi:19568
b9fe8fd6
JL
42016#, no-wrap
42017msgid "{Scheme Variable} sysctl-service-type"
42018msgstr ""
42019
42020#. type: defvr
39764ef8 42021#: doc/guix.texi:19572
b9fe8fd6
JL
42022msgid ""
42023"The service type for @command{sysctl}, which modifies kernel parameters "
42024"under @file{/proc/sys/}. To enable IPv4 forwarding, it can be instantiated "
42025"as:"
42026msgstr ""
42027
42028#. type: example
39764ef8 42029#: doc/guix.texi:19577
b9fe8fd6
JL
42030#, no-wrap
42031msgid ""
42032"(service sysctl-service-type\n"
42033" (sysctl-configuration\n"
42034" (settings '((\"net.ipv4.ip_forward\" . \"1\")))))\n"
42035msgstr ""
42036
42037#. type: deftp
39764ef8 42038#: doc/guix.texi:19580
b9fe8fd6
JL
42039#, no-wrap
42040msgid "{Data Type} sysctl-configuration"
42041msgstr ""
42042
42043#. type: deftp
39764ef8 42044#: doc/guix.texi:19582
b9fe8fd6
JL
42045msgid "The data type representing the configuration of @command{sysctl}."
42046msgstr ""
42047
42048#. type: item
39764ef8 42049#: doc/guix.texi:19584
b9fe8fd6
JL
42050#, no-wrap
42051msgid "@code{sysctl} (default: @code{(file-append procps \"/sbin/sysctl\"})"
42052msgstr ""
42053
42054#. type: table
39764ef8 42055#: doc/guix.texi:19586
b9fe8fd6
JL
42056msgid "The @command{sysctl} executable to use."
42057msgstr ""
42058
42059#. type: item
39764ef8 42060#: doc/guix.texi:19587
b9fe8fd6
JL
42061#, no-wrap
42062msgid "@code{settings} (default: @code{'()})"
42063msgstr ""
42064
42065#. type: table
39764ef8 42066#: doc/guix.texi:19589
b9fe8fd6
JL
42067msgid "An association list specifies kernel parameters and their values."
42068msgstr ""
42069
42070#. type: cindex
39764ef8 42071#: doc/guix.texi:19592
b9fe8fd6
JL
42072#, no-wrap
42073msgid "lirc"
42074msgstr ""
42075
42076#. type: subsubheading
39764ef8 42077#: doc/guix.texi:19593
b9fe8fd6
JL
42078#, no-wrap
42079msgid "Lirc Service"
42080msgstr ""
42081
42082#. type: Plain text
39764ef8 42083#: doc/guix.texi:19596
b9fe8fd6
JL
42084msgid "The @code{(gnu services lirc)} module provides the following service."
42085msgstr ""
42086
42087#. type: deffn
39764ef8 42088#: doc/guix.texi:19597
b9fe8fd6
JL
42089#, no-wrap
42090msgid "{Scheme Procedure} lirc-service [#:lirc lirc] @"
42091msgstr ""
42092
42093#. type: deffn
39764ef8 42094#: doc/guix.texi:19602
b9fe8fd6
JL
42095msgid ""
42096"[#:device #f] [#:driver #f] [#:config-file #f] @ [#:extra-options '()] "
42097"Return a service that runs @url{http://www.lirc.org,LIRC}, a daemon that "
42098"decodes infrared signals from remote controls."
42099msgstr ""
42100
42101#. type: deffn
39764ef8 42102#: doc/guix.texi:19606
b9fe8fd6
JL
42103msgid ""
42104"Optionally, @var{device}, @var{driver} and @var{config-file} (configuration "
42105"file name) may be specified. See @command{lircd} manual for details."
42106msgstr ""
42107
42108#. type: deffn
39764ef8 42109#: doc/guix.texi:19609
b9fe8fd6
JL
42110msgid ""
42111"Finally, @var{extra-options} is a list of additional command-line options "
42112"passed to @command{lircd}."
42113msgstr ""
42114
42115#. type: cindex
39764ef8 42116#: doc/guix.texi:19611
b9fe8fd6
JL
42117#, no-wrap
42118msgid "spice"
42119msgstr ""
42120
42121#. type: subsubheading
39764ef8 42122#: doc/guix.texi:19612
b9fe8fd6
JL
42123#, no-wrap
42124msgid "Spice Service"
42125msgstr ""
42126
42127#. type: Plain text
39764ef8 42128#: doc/guix.texi:19615
b9fe8fd6
JL
42129msgid "The @code{(gnu services spice)} module provides the following service."
42130msgstr ""
42131
42132#. type: deffn
39764ef8 42133#: doc/guix.texi:19616
b9fe8fd6
JL
42134#, no-wrap
42135msgid "{Scheme Procedure} spice-vdagent-service [#:spice-vdagent]"
42136msgstr ""
42137
42138#. type: deffn
39764ef8 42139#: doc/guix.texi:19620
b9fe8fd6
JL
42140msgid ""
42141"Returns a service that runs @url{http://www.spice-space.org,VDAGENT}, a "
42142"daemon that enables sharing the clipboard with a vm and setting the guest "
42143"display resolution when the graphical console window resizes."
42144msgstr ""
42145
42146#. type: subsubsection
39764ef8 42147#: doc/guix.texi:19622
b9fe8fd6
JL
42148#, no-wrap
42149msgid "Dictionary Services"
42150msgstr ""
42151
42152#. type: cindex
39764ef8 42153#: doc/guix.texi:19623
b9fe8fd6
JL
42154#, no-wrap
42155msgid "dictionary"
42156msgstr ""
42157
42158#. type: Plain text
39764ef8 42159#: doc/guix.texi:19625
b9fe8fd6
JL
42160msgid "The @code{(gnu services dict)} module provides the following service:"
42161msgstr ""
42162
42163#. type: deffn
39764ef8 42164#: doc/guix.texi:19626
b9fe8fd6
JL
42165#, no-wrap
42166msgid "{Scheme Procedure} dicod-service [#:config (dicod-configuration)]"
42167msgstr ""
42168
42169#. type: deffn
39764ef8 42170#: doc/guix.texi:19629
b9fe8fd6
JL
42171msgid ""
42172"Return a service that runs the @command{dicod} daemon, an implementation of "
42173"DICT server (@pxref{Dicod,,, dico, GNU Dico Manual})."
42174msgstr ""
42175
42176#. type: deffn
39764ef8 42177#: doc/guix.texi:19633
b9fe8fd6
JL
42178msgid ""
42179"The optional @var{config} argument specifies the configuration for "
42180"@command{dicod}, which should be a @code{<dicod-configuration>} object, by "
42181"default it serves the GNU Collaborative International Dictonary of English."
42182msgstr ""
42183
42184#. type: deffn
39764ef8 42185#: doc/guix.texi:19637
b9fe8fd6
JL
42186msgid ""
42187"You can add @command{open localhost} to your @file{~/.dico} file to make "
42188"@code{localhost} the default server for @command{dico} client "
42189"(@pxref{Initialization File,,, dico, GNU Dico Manual})."
42190msgstr ""
42191
42192#. type: deftp
39764ef8 42193#: doc/guix.texi:19639
b9fe8fd6
JL
42194#, no-wrap
42195msgid "{Data Type} dicod-configuration"
42196msgstr ""
42197
42198#. type: deftp
39764ef8 42199#: doc/guix.texi:19641
b9fe8fd6
JL
42200msgid "Data type representing the configuration of dicod."
42201msgstr ""
42202
42203#. type: item
39764ef8 42204#: doc/guix.texi:19643
b9fe8fd6
JL
42205#, no-wrap
42206msgid "@code{dico} (default: @var{dico})"
42207msgstr ""
42208
42209#. type: table
39764ef8 42210#: doc/guix.texi:19645
b9fe8fd6
JL
42211msgid "Package object of the GNU Dico dictionary server."
42212msgstr ""
42213
42214#. type: item
39764ef8 42215#: doc/guix.texi:19646
b9fe8fd6
JL
42216#, no-wrap
42217msgid "@code{interfaces} (default: @var{'(\"localhost\")})"
42218msgstr ""
42219
42220#. type: table
39764ef8 42221#: doc/guix.texi:19650
b9fe8fd6
JL
42222msgid ""
42223"This is the list of IP addresses and ports and possibly socket file names to "
42224"listen to (@pxref{Server Settings, @code{listen} directive,, dico, GNU Dico "
42225"Manual})."
42226msgstr ""
42227
42228#. type: item
39764ef8 42229#: doc/guix.texi:19651
b9fe8fd6
JL
42230#, no-wrap
42231msgid "@code{handlers} (default: @var{'()})"
42232msgstr ""
42233
42234#. type: table
39764ef8
JL
42235#: doc/guix.texi:19653
42236msgid ""
42237"List of @code{<dicod-handler>} objects denoting handlers (module instances)."
b9fe8fd6
JL
42238msgstr ""
42239
42240#. type: item
39764ef8 42241#: doc/guix.texi:19654
b9fe8fd6
JL
42242#, no-wrap
42243msgid "@code{databases} (default: @var{(list %dicod-database:gcide)})"
42244msgstr ""
42245
42246#. type: table
39764ef8
JL
42247#: doc/guix.texi:19656
42248msgid ""
42249"List of @code{<dicod-database>} objects denoting dictionaries to be served."
b9fe8fd6
JL
42250msgstr ""
42251
42252#. type: deftp
39764ef8 42253#: doc/guix.texi:19659
b9fe8fd6
JL
42254#, no-wrap
42255msgid "{Data Type} dicod-handler"
42256msgstr ""
42257
42258#. type: deftp
39764ef8 42259#: doc/guix.texi:19661
b9fe8fd6
JL
42260msgid "Data type representing a dictionary handler (module instance)."
42261msgstr ""
42262
42263#. type: table
39764ef8 42264#: doc/guix.texi:19665
b9fe8fd6
JL
42265msgid "Name of the handler (module instance)."
42266msgstr ""
42267
42268#. type: item
39764ef8 42269#: doc/guix.texi:19666
b9fe8fd6
JL
42270#, no-wrap
42271msgid "@code{module} (default: @var{#f})"
42272msgstr ""
42273
42274#. type: table
39764ef8 42275#: doc/guix.texi:19670
b9fe8fd6
JL
42276msgid ""
42277"Name of the dicod module of the handler (instance). If it is @code{#f}, the "
42278"module has the same name as the handler. (@pxref{Modules,,, dico, GNU Dico "
42279"Manual})."
42280msgstr ""
42281
42282#. type: code{#1}
39764ef8 42283#: doc/guix.texi:19671 doc/guix.texi:19691
b9fe8fd6
JL
42284#, no-wrap
42285msgid "options"
42286msgstr ""
42287
42288#. type: table
39764ef8
JL
42289#: doc/guix.texi:19673
42290msgid ""
42291"List of strings or gexps representing the arguments for the module handler"
b9fe8fd6
JL
42292msgstr ""
42293
42294#. type: deftp
39764ef8 42295#: doc/guix.texi:19676
b9fe8fd6
JL
42296#, no-wrap
42297msgid "{Data Type} dicod-database"
42298msgstr ""
42299
42300#. type: deftp
39764ef8 42301#: doc/guix.texi:19678
b9fe8fd6
JL
42302msgid "Data type representing a dictionary database."
42303msgstr ""
42304
42305#. type: table
39764ef8 42306#: doc/guix.texi:19682
b9fe8fd6
JL
42307msgid "Name of the database, will be used in DICT commands."
42308msgstr ""
42309
42310#. type: code{#1}
39764ef8 42311#: doc/guix.texi:19683
b9fe8fd6
JL
42312#, no-wrap
42313msgid "handler"
42314msgstr ""
42315
42316#. type: table
39764ef8 42317#: doc/guix.texi:19686
b9fe8fd6
JL
42318msgid ""
42319"Name of the dicod handler (module instance) used by this database "
42320"(@pxref{Handlers,,, dico, GNU Dico Manual})."
42321msgstr ""
42322
42323#. type: item
39764ef8 42324#: doc/guix.texi:19687
b9fe8fd6
JL
42325#, no-wrap
42326msgid "@code{complex?} (default: @var{#f})"
42327msgstr ""
42328
42329#. type: table
39764ef8 42330#: doc/guix.texi:19690
b9fe8fd6
JL
42331msgid ""
42332"Whether the database configuration complex. The complex configuration will "
42333"need a corresponding @code{<dicod-handler>} object, otherwise not."
42334msgstr ""
42335
42336#. type: table
39764ef8 42337#: doc/guix.texi:19694
b9fe8fd6
JL
42338msgid ""
42339"List of strings or gexps representing the arguments for the database "
42340"(@pxref{Databases,,, dico, GNU Dico Manual})."
42341msgstr ""
42342
42343#. type: defvr
39764ef8 42344#: doc/guix.texi:19697
b9fe8fd6
JL
42345#, no-wrap
42346msgid "{Scheme Variable} %dicod-database:gcide"
42347msgstr ""
42348
42349#. type: defvr
39764ef8 42350#: doc/guix.texi:19700
b9fe8fd6
JL
42351msgid ""
42352"A @code{<dicod-database>} object serving the GNU Collaborative International "
42353"Dictionary of English using the @code{gcide} package."
42354msgstr ""
42355
42356#. type: Plain text
39764ef8 42357#: doc/guix.texi:19703
b9fe8fd6
JL
42358msgid "The following is an example @code{dicod-service} configuration."
42359msgstr ""
42360
42361#. type: example
39764ef8 42362#: doc/guix.texi:19718
b9fe8fd6
JL
42363#, no-wrap
42364msgid ""
42365"(dicod-service #:config\n"
42366" (dicod-configuration\n"
42367" (handlers (list (dicod-handler\n"
42368" (name \"wordnet\")\n"
42369" (module \"dictorg\")\n"
42370" (options\n"
42371" (list #~(string-append \"dbdir=\" #$wordnet))))))\n"
42372" (databases (list (dicod-database\n"
42373" (name \"wordnet\")\n"
42374" (complex? #t)\n"
42375" (handler \"wordnet\")\n"
42376" (options '(\"database=wn\")))\n"
42377" %dicod-database:gcide))))\n"
42378msgstr ""
42379
42380#. type: cindex
39764ef8 42381#: doc/guix.texi:19723
b9fe8fd6
JL
42382#, no-wrap
42383msgid "setuid programs"
42384msgstr ""
42385
42386#. type: Plain text
39764ef8 42387#: doc/guix.texi:19733
b9fe8fd6
JL
42388msgid ""
42389"Some programs need to run with ``root'' privileges, even when they are "
42390"launched by unprivileged users. A notorious example is the @command{passwd} "
42391"program, which users can run to change their password, and which needs to "
42392"access the @file{/etc/passwd} and @file{/etc/shadow} files---something "
42393"normally restricted to root, for obvious security reasons. To address that, "
42394"these executables are @dfn{setuid-root}, meaning that they always run with "
42395"root privileges (@pxref{How Change Persona,,, libc, The GNU C Library "
42396"Reference Manual}, for more info about the setuid mechanism.)"
42397msgstr ""
42398
42399#. type: Plain text
39764ef8 42400#: doc/guix.texi:19740
b9fe8fd6
JL
42401msgid ""
42402"The store itself @emph{cannot} contain setuid programs: that would be a "
42403"security issue since any user on the system can write derivations that "
42404"populate the store (@pxref{The Store}). Thus, a different mechanism is "
42405"used: instead of changing the setuid bit directly on files that are in the "
42406"store, we let the system administrator @emph{declare} which programs should "
42407"be setuid root."
42408msgstr ""
42409
42410#. type: Plain text
39764ef8 42411#: doc/guix.texi:19746
b9fe8fd6
JL
42412msgid ""
42413"The @code{setuid-programs} field of an @code{operating-system} declaration "
39764ef8
JL
42414"contains a list of G-expressions denoting the names of programs to be setuid-"
42415"root (@pxref{Using the Configuration System}). For instance, the "
b9fe8fd6
JL
42416"@command{passwd} program, which is part of the Shadow package, can be "
42417"designated by this G-expression (@pxref{G-Expressions}):"
42418msgstr ""
42419
42420#. type: example
39764ef8 42421#: doc/guix.texi:19749
b9fe8fd6
JL
42422#, no-wrap
42423msgid "#~(string-append #$shadow \"/bin/passwd\")\n"
42424msgstr ""
42425
42426#. type: Plain text
39764ef8 42427#: doc/guix.texi:19753
b9fe8fd6
JL
42428msgid ""
42429"A default set of setuid programs is defined by the @code{%setuid-programs} "
42430"variable of the @code{(gnu system)} module."
42431msgstr ""
42432
42433#. type: defvr
39764ef8 42434#: doc/guix.texi:19754
b9fe8fd6
JL
42435#, no-wrap
42436msgid "{Scheme Variable} %setuid-programs"
42437msgstr ""
42438
42439#. type: defvr
39764ef8 42440#: doc/guix.texi:19756
b9fe8fd6
JL
42441msgid "A list of G-expressions denoting common programs that are setuid-root."
42442msgstr ""
42443
42444#. type: defvr
39764ef8 42445#: doc/guix.texi:19759
b9fe8fd6
JL
42446msgid ""
42447"The list includes commands such as @command{passwd}, @command{ping}, "
42448"@command{su}, and @command{sudo}."
42449msgstr ""
42450
42451#. type: Plain text
39764ef8 42452#: doc/guix.texi:19765
b9fe8fd6 42453msgid ""
39764ef8
JL
42454"Under the hood, the actual setuid programs are created in the @file{/run/"
42455"setuid-programs} directory at system activation time. The files in this "
42456"directory refer to the ``real'' binaries, which are in the store."
b9fe8fd6
JL
42457msgstr ""
42458
42459#. type: cindex
39764ef8 42460#: doc/guix.texi:19769
b9fe8fd6
JL
42461#, no-wrap
42462msgid "HTTPS, certificates"
42463msgstr ""
42464
42465#. type: cindex
39764ef8 42466#: doc/guix.texi:19770
b9fe8fd6
JL
42467#, no-wrap
42468msgid "X.509 certificates"
42469msgstr ""
42470
42471#. type: cindex
39764ef8 42472#: doc/guix.texi:19771
b9fe8fd6
JL
42473#, no-wrap
42474msgid "TLS"
42475msgstr ""
42476
42477#. type: Plain text
39764ef8 42478#: doc/guix.texi:19778
b9fe8fd6
JL
42479msgid ""
42480"Web servers available over HTTPS (that is, HTTP over the transport-layer "
42481"security mechanism, TLS) send client programs an @dfn{X.509 certificate} "
42482"that the client can then use to @emph{authenticate} the server. To do that, "
42483"clients verify that the server's certificate is signed by a so-called "
42484"@dfn{certificate authority} (CA). But to verify the CA's signature, clients "
42485"must have first acquired the CA's certificate."
42486msgstr ""
42487
42488#. type: Plain text
39764ef8 42489#: doc/guix.texi:19782
b9fe8fd6
JL
42490msgid ""
42491"Web browsers such as GNU@tie{}IceCat include their own set of CA "
39764ef8 42492"certificates, such that they are able to verify CA signatures out-of-the-box."
b9fe8fd6
JL
42493msgstr ""
42494
42495#. type: Plain text
39764ef8 42496#: doc/guix.texi:19786
b9fe8fd6
JL
42497msgid ""
42498"However, most other programs that can talk HTTPS---@command{wget}, "
42499"@command{git}, @command{w3m}, etc.---need to be told where CA certificates "
42500"can be found."
42501msgstr ""
42502
42503#. type: Plain text
39764ef8 42504#: doc/guix.texi:19793
b9fe8fd6
JL
42505msgid ""
42506"In GuixSD, this is done by adding a package that provides certificates to "
42507"the @code{packages} field of the @code{operating-system} declaration "
42508"(@pxref{operating-system Reference}). GuixSD includes one such package, "
42509"@code{nss-certs}, which is a set of CA certificates provided as part of "
42510"Mozilla's Network Security Services."
42511msgstr ""
42512
42513#. type: Plain text
39764ef8 42514#: doc/guix.texi:19798
b9fe8fd6
JL
42515msgid ""
42516"Note that it is @emph{not} part of @var{%base-packages}, so you need to "
42517"explicitly add it. The @file{/etc/ssl/certs} directory, which is where most "
42518"applications and libraries look for certificates by default, points to the "
42519"certificates installed globally."
42520msgstr ""
42521
42522#. type: Plain text
39764ef8 42523#: doc/guix.texi:19808
b9fe8fd6
JL
42524msgid ""
42525"Unprivileged users, including users of Guix on a foreign distro, can also "
42526"install their own certificate package in their profile. A number of "
42527"environment variables need to be defined so that applications and libraries "
42528"know where to find them. Namely, the OpenSSL library honors the "
42529"@code{SSL_CERT_DIR} and @code{SSL_CERT_FILE} variables. Some applications "
42530"add their own environment variables; for instance, the Git version control "
42531"system honors the certificate bundle pointed to by the @code{GIT_SSL_CAINFO} "
42532"environment variable. Thus, you would typically run something like:"
42533msgstr ""
42534
42535#. type: example
39764ef8 42536#: doc/guix.texi:19814
b9fe8fd6
JL
42537#, no-wrap
42538msgid ""
42539"$ guix package -i nss-certs\n"
42540"$ export SSL_CERT_DIR=\"$HOME/.guix-profile/etc/ssl/certs\"\n"
39764ef8 42541"$ export SSL_CERT_FILE=\"$HOME/.guix-profile/etc/ssl/certs/ca-certificates.crt\"\n"
b9fe8fd6
JL
42542"$ export GIT_SSL_CAINFO=\"$SSL_CERT_FILE\"\n"
42543msgstr ""
42544
42545#. type: Plain text
39764ef8 42546#: doc/guix.texi:19819
b9fe8fd6
JL
42547msgid ""
42548"As another example, R requires the @code{CURL_CA_BUNDLE} environment "
42549"variable to point to a certificate bundle, so you would have to run "
42550"something like this:"
42551msgstr ""
42552
42553#. type: example
39764ef8 42554#: doc/guix.texi:19823
b9fe8fd6
JL
42555#, no-wrap
42556msgid ""
42557"$ guix package -i nss-certs\n"
39764ef8 42558"$ export CURL_CA_BUNDLE=\"$HOME/.guix-profile/etc/ssl/certs/ca-certificates.crt\"\n"
b9fe8fd6
JL
42559msgstr ""
42560
42561#. type: Plain text
39764ef8 42562#: doc/guix.texi:19827
b9fe8fd6
JL
42563msgid ""
42564"For other applications you may want to look up the required environment "
42565"variable in the relevant documentation."
42566msgstr ""
42567
42568#. type: cindex
39764ef8 42569#: doc/guix.texi:19832
b9fe8fd6
JL
42570#, no-wrap
42571msgid "name service switch"
42572msgstr ""
42573
42574#. type: cindex
39764ef8 42575#: doc/guix.texi:19833
b9fe8fd6
JL
42576#, no-wrap
42577msgid "NSS"
42578msgstr ""
42579
42580#. type: Plain text
39764ef8 42581#: doc/guix.texi:19842
b9fe8fd6
JL
42582msgid ""
42583"The @code{(gnu system nss)} module provides bindings to the configuration "
42584"file of the libc @dfn{name service switch} or @dfn{NSS} (@pxref{NSS "
42585"Configuration File,,, libc, The GNU C Library Reference Manual}). In a "
42586"nutshell, the NSS is a mechanism that allows libc to be extended with new "
42587"``name'' lookup methods for system databases, which includes host names, "
42588"service names, user accounts, and more (@pxref{Name Service Switch, System "
42589"Databases and Name Service Switch,, libc, The GNU C Library Reference "
42590"Manual})."
42591msgstr ""
42592
42593#. type: Plain text
39764ef8 42594#: doc/guix.texi:19849
b9fe8fd6
JL
42595msgid ""
42596"The NSS configuration specifies, for each system database, which lookup "
42597"method is to be used, and how the various methods are chained together---for "
42598"instance, under which circumstances NSS should try the next method in the "
42599"list. The NSS configuration is given in the @code{name-service-switch} "
42600"field of @code{operating-system} declarations (@pxref{operating-system "
42601"Reference, @code{name-service-switch}})."
42602msgstr ""
42603
42604#. type: cindex
39764ef8 42605#: doc/guix.texi:19850
b9fe8fd6
JL
42606#, no-wrap
42607msgid "nss-mdns"
42608msgstr ""
42609
42610#. type: cindex
39764ef8 42611#: doc/guix.texi:19851
b9fe8fd6
JL
42612#, no-wrap
42613msgid ".local, host name lookup"
42614msgstr ""
42615
42616#. type: Plain text
39764ef8 42617#: doc/guix.texi:19856
b9fe8fd6
JL
42618msgid ""
42619"As an example, the declaration below configures the NSS to use the "
39764ef8
JL
42620"@uref{http://0pointer.de/lennart/projects/nss-mdns/, @code{nss-mdns} back-"
42621"end}, which supports host name lookups over multicast DNS (mDNS) for host "
42622"names ending in @code{.local}:"
b9fe8fd6
JL
42623msgstr ""
42624
42625#. type: example
39764ef8 42626#: doc/guix.texi:19860
b9fe8fd6
JL
42627#, no-wrap
42628msgid ""
42629"(name-service-switch\n"
42630" (hosts (list %files ;first, check /etc/hosts\n"
42631"\n"
42632msgstr ""
42633
42634#. type: example
39764ef8 42635#: doc/guix.texi:19865
b9fe8fd6
JL
42636#, no-wrap
42637msgid ""
42638" ;; If the above did not succeed, try\n"
42639" ;; with 'mdns_minimal'.\n"
42640" (name-service\n"
42641" (name \"mdns_minimal\")\n"
42642"\n"
42643msgstr ""
42644
42645#. type: example
39764ef8 42646#: doc/guix.texi:19871
b9fe8fd6
JL
42647#, no-wrap
42648msgid ""
42649" ;; 'mdns_minimal' is authoritative for\n"
42650" ;; '.local'. When it returns \"not found\",\n"
42651" ;; no need to try the next methods.\n"
42652" (reaction (lookup-specification\n"
42653" (not-found => return))))\n"
42654"\n"
42655msgstr ""
42656
42657#. type: example
39764ef8 42658#: doc/guix.texi:19875
b9fe8fd6
JL
42659#, no-wrap
42660msgid ""
42661" ;; Then fall back to DNS.\n"
42662" (name-service\n"
42663" (name \"dns\"))\n"
42664"\n"
42665msgstr ""
42666
42667#. type: example
39764ef8 42668#: doc/guix.texi:19879
b9fe8fd6
JL
42669#, no-wrap
42670msgid ""
42671" ;; Finally, try with the \"full\" 'mdns'.\n"
42672" (name-service\n"
42673" (name \"mdns\")))))\n"
42674msgstr ""
42675
42676#. type: Plain text
39764ef8 42677#: doc/guix.texi:19884
b9fe8fd6
JL
42678msgid ""
42679"Do not worry: the @code{%mdns-host-lookup-nss} variable (see below) "
42680"contains this configuration, so you will not have to type it if all you want "
42681"is to have @code{.local} host lookup working."
42682msgstr ""
42683
42684#. type: Plain text
39764ef8 42685#: doc/guix.texi:19892
b9fe8fd6 42686msgid ""
39764ef8
JL
42687"Note that, in this case, in addition to setting the @code{name-service-"
42688"switch} of the @code{operating-system} declaration, you also need to use "
42689"@code{avahi-service} (@pxref{Networking Services, @code{avahi-service}}), or "
42690"@var{%desktop-services}, which includes it (@pxref{Desktop Services}). "
42691"Doing this makes @code{nss-mdns} accessible to the name service cache daemon "
42692"(@pxref{Base Services, @code{nscd-service}})."
b9fe8fd6
JL
42693msgstr ""
42694
42695#. type: Plain text
39764ef8
JL
42696#: doc/guix.texi:19895
42697msgid ""
42698"For convenience, the following variables provide typical NSS configurations."
b9fe8fd6
JL
42699msgstr ""
42700
42701#. type: defvr
39764ef8 42702#: doc/guix.texi:19896
b9fe8fd6
JL
42703#, no-wrap
42704msgid "{Scheme Variable} %default-nss"
42705msgstr ""
42706
42707#. type: defvr
39764ef8 42708#: doc/guix.texi:19899
b9fe8fd6 42709msgid ""
39764ef8
JL
42710"This is the default name service switch configuration, a @code{name-service-"
42711"switch} object."
b9fe8fd6
JL
42712msgstr ""
42713
42714#. type: defvr
39764ef8 42715#: doc/guix.texi:19901
b9fe8fd6
JL
42716#, no-wrap
42717msgid "{Scheme Variable} %mdns-host-lookup-nss"
42718msgstr ""
42719
42720#. type: defvr
39764ef8 42721#: doc/guix.texi:19904
b9fe8fd6
JL
42722msgid ""
42723"This is the name service switch configuration with support for host name "
42724"lookup over multicast DNS (mDNS) for host names ending in @code{.local}."
42725msgstr ""
42726
42727#. type: Plain text
39764ef8 42728#: doc/guix.texi:19914
b9fe8fd6
JL
42729msgid ""
42730"The reference for name service switch configuration is given below. It is a "
42731"direct mapping of the configuration file format of the C library , so please "
42732"refer to the C library manual for more information (@pxref{NSS Configuration "
42733"File,,, libc, The GNU C Library Reference Manual}). Compared to the "
42734"configuration file format of libc NSS, it has the advantage not only of "
42735"adding this warm parenthetic feel that we like, but also static checks: you "
42736"will know about syntax errors and typos as soon as you run @command{guix "
42737"system}."
42738msgstr ""
42739
42740#. type: deftp
39764ef8 42741#: doc/guix.texi:19915
b9fe8fd6
JL
42742#, no-wrap
42743msgid "{Data Type} name-service-switch"
42744msgstr ""
42745
42746#. type: deftp
39764ef8 42747#: doc/guix.texi:19920
b9fe8fd6
JL
42748msgid ""
42749"This is the data type representation the configuration of libc's name "
42750"service switch (NSS). Each field below represents one of the supported "
42751"system databases."
42752msgstr ""
42753
42754#. type: item
39764ef8 42755#: doc/guix.texi:19922
b9fe8fd6
JL
42756#, no-wrap
42757msgid "aliases"
42758msgstr ""
42759
42760#. type: itemx
39764ef8 42761#: doc/guix.texi:19923
b9fe8fd6
JL
42762#, no-wrap
42763msgid "ethers"
42764msgstr ""
42765
42766#. type: itemx
39764ef8 42767#: doc/guix.texi:19925
b9fe8fd6
JL
42768#, no-wrap
42769msgid "gshadow"
42770msgstr ""
42771
42772#. type: itemx
39764ef8 42773#: doc/guix.texi:19926
b9fe8fd6
JL
42774#, no-wrap
42775msgid "hosts"
42776msgstr ""
42777
42778#. type: itemx
39764ef8 42779#: doc/guix.texi:19927
b9fe8fd6
JL
42780#, no-wrap
42781msgid "initgroups"
42782msgstr ""
42783
42784#. type: itemx
39764ef8 42785#: doc/guix.texi:19928
b9fe8fd6
JL
42786#, no-wrap
42787msgid "netgroup"
42788msgstr ""
42789
42790#. type: itemx
39764ef8 42791#: doc/guix.texi:19929
b9fe8fd6
JL
42792#, no-wrap
42793msgid "networks"
42794msgstr ""
42795
42796#. type: itemx
39764ef8 42797#: doc/guix.texi:19931
b9fe8fd6
JL
42798#, no-wrap
42799msgid "public-key"
42800msgstr ""
42801
42802#. type: itemx
39764ef8 42803#: doc/guix.texi:19932
b9fe8fd6
JL
42804#, no-wrap
42805msgid "rpc"
42806msgstr ""
42807
42808#. type: itemx
39764ef8 42809#: doc/guix.texi:19934
b9fe8fd6
JL
42810#, no-wrap
42811msgid "shadow"
42812msgstr ""
42813
42814#. type: table
39764ef8 42815#: doc/guix.texi:19937
b9fe8fd6
JL
42816msgid ""
42817"The system databases handled by the NSS. Each of these fields must be a "
42818"list of @code{<name-service>} objects (see below)."
42819msgstr ""
42820
42821#. type: deftp
39764ef8 42822#: doc/guix.texi:19940
b9fe8fd6
JL
42823#, no-wrap
42824msgid "{Data Type} name-service"
42825msgstr ""
42826
42827#. type: deftp
39764ef8 42828#: doc/guix.texi:19944
b9fe8fd6
JL
42829msgid ""
42830"This is the data type representing an actual name service and the associated "
42831"lookup action."
42832msgstr ""
42833
42834#. type: table
39764ef8 42835#: doc/guix.texi:19949
b9fe8fd6
JL
42836msgid ""
42837"A string denoting the name service (@pxref{Services in the NSS "
42838"configuration,,, libc, The GNU C Library Reference Manual})."
42839msgstr ""
42840
42841#. type: table
39764ef8 42842#: doc/guix.texi:19954
b9fe8fd6
JL
42843msgid ""
42844"Note that name services listed here must be visible to nscd. This is "
39764ef8
JL
42845"achieved by passing the @code{#:name-services} argument to @code{nscd-"
42846"service} the list of packages providing the needed name services "
b9fe8fd6
JL
42847"(@pxref{Base Services, @code{nscd-service}})."
42848msgstr ""
42849
42850#. type: item
39764ef8 42851#: doc/guix.texi:19955
b9fe8fd6
JL
42852#, no-wrap
42853msgid "reaction"
42854msgstr ""
42855
42856#. type: table
39764ef8 42857#: doc/guix.texi:19959
b9fe8fd6
JL
42858msgid ""
42859"An action specified using the @code{lookup-specification} macro "
42860"(@pxref{Actions in the NSS configuration,,, libc, The GNU C Library "
42861"Reference Manual}). For example:"
42862msgstr ""
42863
42864#. type: example
39764ef8 42865#: doc/guix.texi:19963
b9fe8fd6
JL
42866#, no-wrap
42867msgid ""
42868"(lookup-specification (unavailable => continue)\n"
42869" (success => return))\n"
42870msgstr ""
42871
42872#. type: Plain text
39764ef8 42873#: doc/guix.texi:19977
b9fe8fd6
JL
42874msgid ""
42875"For bootstrapping purposes, the Linux-Libre kernel is passed an @dfn{initial "
42876"RAM disk}, or @dfn{initrd}. An initrd contains a temporary root file system "
42877"as well as an initialization script. The latter is responsible for mounting "
42878"the real root file system, and for loading any kernel modules that may be "
42879"needed to achieve that."
42880msgstr ""
42881
42882#. type: Plain text
39764ef8 42883#: doc/guix.texi:19986
b9fe8fd6
JL
42884msgid ""
42885"The @code{initrd-modules} field of an @code{operating-system} declaration "
42886"allows you to specify Linux-libre kernel modules that must be available in "
42887"the initrd. In particular, this is where you would list modules needed to "
42888"actually drive the hard disk where your root partition is---although the "
42889"default value of @code{initrd-modules} should cover most use cases. For "
42890"example, assuming you need the @code{megaraid_sas} module in addition to the "
42891"default modules to be able to access your root file system, you would write:"
42892msgstr ""
42893
42894#. type: example
39764ef8 42895#: doc/guix.texi:19991
b9fe8fd6
JL
42896#, no-wrap
42897msgid ""
42898"(operating-system\n"
42899" ;; @dots{}\n"
42900" (initrd-modules (cons \"megaraid_sas\" %base-initrd-modules)))\n"
42901msgstr ""
42902
42903#. type: defvr
39764ef8 42904#: doc/guix.texi:19993
b9fe8fd6
JL
42905#, no-wrap
42906msgid "{Scheme Variable} %base-initrd-modules"
42907msgstr ""
42908
42909#. type: defvr
39764ef8 42910#: doc/guix.texi:19995
b9fe8fd6
JL
42911msgid "This is the list of kernel modules included in the initrd by default."
42912msgstr ""
42913
42914#. type: Plain text
39764ef8 42915#: doc/guix.texi:20003
b9fe8fd6
JL
42916msgid ""
42917"Furthermore, if you need lower-level customization, the @code{initrd} field "
42918"of an @code{operating-system} declaration allows you to specify which initrd "
42919"you would like to use. The @code{(gnu system linux-initrd)} module provides "
42920"three ways to build an initrd: the high-level @code{base-initrd} procedure "
39764ef8 42921"and the low-level @code{raw-initrd} and @code{expression->initrd} procedures."
b9fe8fd6
JL
42922msgstr ""
42923
42924#. type: Plain text
39764ef8 42925#: doc/guix.texi:20008
b9fe8fd6
JL
42926msgid ""
42927"The @code{base-initrd} procedure is intended to cover most common uses. For "
42928"example, if you want to add a bunch of kernel modules to be loaded at boot "
42929"time, you can define the @code{initrd} field of the operating system "
42930"declaration like this:"
42931msgstr ""
42932
42933#. type: example
39764ef8 42934#: doc/guix.texi:20016
b9fe8fd6
JL
42935#, no-wrap
42936msgid ""
42937"(initrd (lambda (file-systems . rest)\n"
42938" ;; Create a standard initrd but set up networking\n"
42939" ;; with the parameters QEMU expects by default.\n"
42940" (apply base-initrd file-systems\n"
42941" #:qemu-networking? #t\n"
42942" rest)))\n"
42943msgstr ""
42944
42945#. type: Plain text
39764ef8 42946#: doc/guix.texi:20021
b9fe8fd6
JL
42947msgid ""
42948"The @code{base-initrd} procedure also handles common use cases that involves "
42949"using the system as a QEMU guest, or as a ``live'' system with volatile root "
42950"file system."
42951msgstr ""
42952
42953#. type: Plain text
39764ef8 42954#: doc/guix.texi:20028
b9fe8fd6
JL
42955msgid ""
42956"The @code{base-initrd} procedure is built from @code{raw-initrd} procedure. "
42957"Unlike @code{base-initrd}, @code{raw-initrd} doesn't do anything high-level, "
42958"such as trying to guess which kernel modules and packages should be included "
42959"to the initrd. An example use of @code{raw-initrd} is when a user has a "
42960"custom Linux kernel configuration and default kernel modules included by "
42961"@code{base-initrd} are not available."
42962msgstr ""
42963
42964#. type: Plain text
39764ef8 42965#: doc/guix.texi:20033
b9fe8fd6
JL
42966msgid ""
42967"The initial RAM disk produced by @code{base-initrd} or @code{raw-initrd} "
42968"honors several options passed on the Linux kernel command line (that is, "
39764ef8
JL
42969"arguments passed @i{via} the @code{linux} command of GRUB, or the @code{-"
42970"append} option of QEMU), notably:"
b9fe8fd6
JL
42971msgstr ""
42972
42973#. type: item
39764ef8 42974#: doc/guix.texi:20035
b9fe8fd6
JL
42975#, no-wrap
42976msgid "--load=@var{boot}"
42977msgstr ""
42978
42979#. type: table
39764ef8 42980#: doc/guix.texi:20038
b9fe8fd6
JL
42981msgid ""
42982"Tell the initial RAM disk to load @var{boot}, a file containing a Scheme "
42983"program, once it has mounted the root file system."
42984msgstr ""
42985
42986#. type: table
39764ef8 42987#: doc/guix.texi:20042
b9fe8fd6
JL
42988msgid ""
42989"GuixSD uses this option to yield control to a boot program that runs the "
42990"service activation programs and then spawns the GNU@tie{}Shepherd, the "
42991"initialization system."
42992msgstr ""
42993
42994#. type: item
39764ef8 42995#: doc/guix.texi:20043
b9fe8fd6
JL
42996#, no-wrap
42997msgid "--root=@var{root}"
42998msgstr ""
42999
43000#. type: table
39764ef8 43001#: doc/guix.texi:20047
b9fe8fd6
JL
43002msgid ""
43003"Mount @var{root} as the root file system. @var{root} can be a device name "
43004"like @code{/dev/sda1}, a file system label, or a file system UUID."
43005msgstr ""
43006
43007#. type: table
39764ef8 43008#: doc/guix.texi:20051
b9fe8fd6
JL
43009msgid ""
43010"Have @file{/run/booted-system} and @file{/run/current-system} point to "
43011"@var{system}."
43012msgstr ""
43013
43014#. type: item
39764ef8 43015#: doc/guix.texi:20052
b9fe8fd6
JL
43016#, no-wrap
43017msgid "modprobe.blacklist=@var{modules}@dots{}"
43018msgstr ""
43019
43020#. type: cindex
39764ef8 43021#: doc/guix.texi:20053
b9fe8fd6
JL
43022#, no-wrap
43023msgid "module, black-listing"
43024msgstr ""
43025
43026#. type: cindex
39764ef8 43027#: doc/guix.texi:20054
b9fe8fd6
JL
43028#, no-wrap
43029msgid "black list, of kernel modules"
43030msgstr ""
43031
43032#. type: table
39764ef8 43033#: doc/guix.texi:20059
b9fe8fd6
JL
43034msgid ""
43035"Instruct the initial RAM disk as well as the @command{modprobe} command "
43036"(from the kmod package) to refuse to load @var{modules}. @var{modules} must "
43037"be a comma-separated list of module names---e.g., @code{usbkbd,9pnet}."
43038msgstr ""
43039
43040#. type: item
39764ef8 43041#: doc/guix.texi:20060
b9fe8fd6
JL
43042#, no-wrap
43043msgid "--repl"
43044msgstr ""
43045
43046#. type: table
39764ef8 43047#: doc/guix.texi:20066
b9fe8fd6
JL
43048msgid ""
43049"Start a read-eval-print loop (REPL) from the initial RAM disk before it "
43050"tries to load kernel modules and to mount the root file system. Our "
43051"marketing team calls it @dfn{boot-to-Guile}. The Schemer in you will love "
43052"it. @xref{Using Guile Interactively,,, guile, GNU Guile Reference Manual}, "
43053"for more information on Guile's REPL."
43054msgstr ""
43055
43056#. type: Plain text
39764ef8 43057#: doc/guix.texi:20072
b9fe8fd6
JL
43058msgid ""
43059"Now that you know all the features that initial RAM disks produced by "
43060"@code{base-initrd} and @code{raw-initrd} provide, here is how to use it and "
43061"customize it further."
43062msgstr ""
43063
43064#. type: deffn
39764ef8 43065#: doc/guix.texi:20075
b9fe8fd6
JL
43066#, no-wrap
43067msgid "{Monadic Procedure} raw-initrd @var{file-systems} @"
43068msgstr ""
43069
43070#. type: deffn
39764ef8 43071#: doc/guix.texi:20087
b9fe8fd6 43072msgid ""
39764ef8
JL
43073"[#:linux-modules '()] [#:mapped-devices '()] @ [#:helper-packages '()] [#:"
43074"qemu-networking? #f] [#:volatile-root? #f] Return a monadic derivation that "
43075"builds a raw initrd. @var{file-systems} is a list of file systems to be "
43076"mounted by the initrd, possibly in addition to the root file system "
b9fe8fd6
JL
43077"specified on the kernel command line via @code{--root}. @var{linux-modules} "
43078"is a list of kernel modules to be loaded at boot time. @var{mapped-devices} "
43079"is a list of device mappings to realize before @var{file-systems} are "
43080"mounted (@pxref{Mapped Devices}). @var{helper-packages} is a list of "
43081"packages to be copied in the initrd. It may include @code{e2fsck/static} or "
43082"other packages needed by the initrd to check the root file system."
43083msgstr ""
43084
43085#. type: deffn
39764ef8 43086#: doc/guix.texi:20091
b9fe8fd6
JL
43087msgid ""
43088"When @var{qemu-networking?} is true, set up networking with the standard "
43089"QEMU parameters. When @var{virtio?} is true, load additional modules so "
43090"that the initrd can be used as a QEMU guest with para-virtualized I/O "
43091"drivers."
43092msgstr ""
43093
43094#. type: deffn
39764ef8 43095#: doc/guix.texi:20094
b9fe8fd6
JL
43096msgid ""
43097"When @var{volatile-root?} is true, the root file system is writable but any "
43098"changes to it are lost."
43099msgstr ""
43100
43101#. type: deffn
39764ef8 43102#: doc/guix.texi:20096
b9fe8fd6
JL
43103#, no-wrap
43104msgid "{Monadic Procedure} base-initrd @var{file-systems} @"
43105msgstr ""
43106
43107#. type: deffn
39764ef8 43108#: doc/guix.texi:20104
b9fe8fd6 43109msgid ""
39764ef8
JL
43110"[#:mapped-devices '()] [#:qemu-networking? #f] [#:volatile-root? #f]@ [#:"
43111"linux-modules '()] Return a monadic derivation that builds a generic initrd, "
43112"with kernel modules taken from @var{linux}. @var{file-systems} is a list of "
43113"file-systems to be mounted by the initrd, possibly in addition to the root "
43114"file system specified on the kernel command line via @code{--root}. "
43115"@var{mapped-devices} is a list of device mappings to realize before "
43116"@var{file-systems} are mounted."
b9fe8fd6
JL
43117msgstr ""
43118
43119#. type: deffn
39764ef8 43120#: doc/guix.texi:20106
b9fe8fd6 43121msgid ""
39764ef8
JL
43122"@var{qemu-networking?} and @var{volatile-root?} behaves as in @code{raw-"
43123"initrd}."
b9fe8fd6
JL
43124msgstr ""
43125
43126#. type: deffn
39764ef8 43127#: doc/guix.texi:20111
b9fe8fd6
JL
43128msgid ""
43129"The initrd is automatically populated with all the kernel modules necessary "
43130"for @var{file-systems} and for the given options. Additional kernel modules "
43131"can be listed in @var{linux-modules}. They will be added to the initrd, and "
43132"loaded at boot time in the order in which they appear."
43133msgstr ""
43134
43135#. type: Plain text
39764ef8 43136#: doc/guix.texi:20118
b9fe8fd6
JL
43137msgid ""
43138"Needless to say, the initrds we produce and use embed a statically-linked "
43139"Guile, and the initialization program is a Guile program. That gives a lot "
43140"of flexibility. The @code{expression->initrd} procedure builds such an "
43141"initrd, given the program to run in that initrd."
43142msgstr ""
43143
43144#. type: deffn
39764ef8 43145#: doc/guix.texi:20119
b9fe8fd6
JL
43146#, no-wrap
43147msgid "{Monadic Procedure} expression->initrd @var{exp} @"
43148msgstr ""
43149
43150#. type: deffn
39764ef8 43151#: doc/guix.texi:20125
b9fe8fd6
JL
43152msgid ""
43153"[#:guile %guile-static-stripped] [#:name \"guile-initrd\"] Return a "
43154"derivation that builds a Linux initrd (a gzipped cpio archive) containing "
43155"@var{guile} and that evaluates @var{exp}, a G-expression, upon booting. All "
43156"the derivations referenced by @var{exp} are automatically copied to the "
43157"initrd."
43158msgstr ""
43159
43160#. type: cindex
39764ef8 43161#: doc/guix.texi:20131
b9fe8fd6
JL
43162#, no-wrap
43163msgid "boot loader"
43164msgstr ""
43165
43166#. type: Plain text
39764ef8 43167#: doc/guix.texi:20138
b9fe8fd6
JL
43168msgid ""
43169"The operating system supports multiple bootloaders. The bootloader is "
43170"configured using @code{bootloader-configuration} declaration. All the "
43171"fields of this structure are bootloader agnostic except for one field, "
43172"@code{bootloader} that indicates the bootloader to be configured and "
43173"installed."
43174msgstr ""
43175
43176#. type: Plain text
39764ef8 43177#: doc/guix.texi:20143
b9fe8fd6 43178msgid ""
39764ef8
JL
43179"Some of the bootloaders do not honor every field of @code{bootloader-"
43180"configuration}. For instance, the extlinux bootloader does not support "
43181"themes and thus ignores the @code{theme} field."
b9fe8fd6
JL
43182msgstr ""
43183
43184#. type: deftp
39764ef8 43185#: doc/guix.texi:20144
b9fe8fd6
JL
43186#, no-wrap
43187msgid "{Data Type} bootloader-configuration"
43188msgstr ""
43189
43190#. type: deftp
39764ef8 43191#: doc/guix.texi:20146
b9fe8fd6
JL
43192msgid "The type of a bootloader configuration declaration."
43193msgstr ""
43194
43195#. type: cindex
39764ef8 43196#: doc/guix.texi:20150
b9fe8fd6
JL
43197#, no-wrap
43198msgid "EFI, bootloader"
43199msgstr ""
43200
43201#. type: cindex
39764ef8 43202#: doc/guix.texi:20151
b9fe8fd6
JL
43203#, no-wrap
43204msgid "UEFI, bootloader"
43205msgstr ""
43206
43207#. type: cindex
39764ef8 43208#: doc/guix.texi:20152
b9fe8fd6
JL
43209#, no-wrap
43210msgid "BIOS, bootloader"
43211msgstr ""
43212
43213#. type: table
39764ef8 43214#: doc/guix.texi:20158
b9fe8fd6 43215msgid ""
39764ef8
JL
43216"The bootloader to use, as a @code{bootloader} object. For now @code{grub-"
43217"bootloader}, @code{grub-efi-bootloader}, @code{extlinux-bootloader} and "
43218"@code{u-boot-bootloader} are supported. @code{grub-efi-bootloader} allows "
43219"to boot on modern systems using the @dfn{Unified Extensible Firmware "
43220"Interface} (UEFI)."
b9fe8fd6
JL
43221msgstr ""
43222
43223#. type: table
39764ef8 43224#: doc/guix.texi:20161
b9fe8fd6
JL
43225msgid ""
43226"Available bootloaders are described in @code{(gnu bootloader @dots{})} "
43227"modules."
43228msgstr ""
43229
43230#. type: table
39764ef8 43231#: doc/guix.texi:20171
b9fe8fd6
JL
43232msgid ""
43233"This is a string denoting the target onto which to install the bootloader. "
43234"The exact interpretation depends on the bootloader in question; for "
43235"@code{grub-bootloader}, for example, it should be a device name understood "
43236"by the bootloader @command{installer} command, such as @code{/dev/sda} or "
43237"@code{(hd0)} (for GRUB, @pxref{Invoking grub-install,,, grub, GNU GRUB "
43238"Manual}). For @code{grub-efi-bootloader}, it should be the path to a "
43239"mounted EFI file system."
43240msgstr ""
43241
43242#. type: item
39764ef8 43243#: doc/guix.texi:20172
b9fe8fd6
JL
43244#, no-wrap
43245msgid "@code{menu-entries} (default: @code{()})"
43246msgstr ""
43247
43248#. type: table
39764ef8 43249#: doc/guix.texi:20176
b9fe8fd6
JL
43250msgid ""
43251"A possibly empty list of @code{menu-entry} objects (see below), denoting "
43252"entries to appear in the bootloader menu, in addition to the current system "
43253"entry and the entry pointing to previous system generations."
43254msgstr ""
43255
43256#. type: item
39764ef8 43257#: doc/guix.texi:20177
b9fe8fd6
JL
43258#, no-wrap
43259msgid "@code{default-entry} (default: @code{0})"
43260msgstr ""
43261
43262#. type: table
39764ef8 43263#: doc/guix.texi:20180
b9fe8fd6
JL
43264msgid ""
43265"The index of the default boot menu entry. Index 0 is for the entry of the "
43266"current system."
43267msgstr ""
43268
43269#. type: item
39764ef8 43270#: doc/guix.texi:20181
b9fe8fd6
JL
43271#, no-wrap
43272msgid "@code{timeout} (default: @code{5})"
43273msgstr ""
43274
43275#. type: table
39764ef8 43276#: doc/guix.texi:20184
b9fe8fd6
JL
43277msgid ""
43278"The number of seconds to wait for keyboard input before booting. Set to 0 "
43279"to boot immediately, and to -1 to wait indefinitely."
43280msgstr ""
43281
43282#. type: item
39764ef8 43283#: doc/guix.texi:20185
b9fe8fd6
JL
43284#, no-wrap
43285msgid "@code{theme} (default: @var{#f})"
43286msgstr ""
43287
43288#. type: table
39764ef8 43289#: doc/guix.texi:20189
b9fe8fd6
JL
43290msgid ""
43291"The bootloader theme object describing the theme to use. If no theme is "
43292"provided, some bootloaders might use a default theme, that's true for GRUB."
43293msgstr ""
43294
43295#. type: item
39764ef8 43296#: doc/guix.texi:20190
b9fe8fd6
JL
43297#, no-wrap
43298msgid "@code{terminal-outputs} (default: @code{'gfxterm})"
43299msgstr ""
43300
43301#. type: table
39764ef8 43302#: doc/guix.texi:20197
b9fe8fd6
JL
43303msgid ""
43304"The output terminals used for the bootloader boot menu, as a list of "
43305"symbols. GRUB accepts the values: @code{console}, @code{serial}, "
43306"@code{serial_@{0-3@}}, @code{gfxterm}, @code{vga_text}, @code{mda_text}, "
43307"@code{morse}, and @code{pkmodem}. This field corresponds to the GRUB "
43308"variable GRUB_TERMINAL_OUTPUT (@pxref{Simple configuration,,, grub,GNU GRUB "
43309"manual})."
43310msgstr ""
43311
43312#. type: item
39764ef8 43313#: doc/guix.texi:20198
b9fe8fd6
JL
43314#, no-wrap
43315msgid "@code{terminal-inputs} (default: @code{'()})"
43316msgstr ""
43317
43318#. type: table
39764ef8 43319#: doc/guix.texi:20206
b9fe8fd6
JL
43320msgid ""
43321"The input terminals used for the bootloader boot menu, as a list of "
43322"symbols. For GRUB, the default is the native platform terminal as "
43323"determined at run-time. GRUB accepts the values: @code{console}, "
43324"@code{serial}, @code{serial_@{0-3@}}, @code{at_keyboard}, and "
43325"@code{usb_keyboard}. This field corresponds to the GRUB variable "
43326"GRUB_TERMINAL_INPUT (@pxref{Simple configuration,,, grub,GNU GRUB manual})."
43327msgstr ""
43328
43329#. type: item
39764ef8 43330#: doc/guix.texi:20207
b9fe8fd6
JL
43331#, no-wrap
43332msgid "@code{serial-unit} (default: @code{#f})"
43333msgstr ""
43334
43335#. type: table
39764ef8 43336#: doc/guix.texi:20211
b9fe8fd6
JL
43337msgid ""
43338"The serial unit used by the bootloader, as an integer from 0 to 3. For "
43339"GRUB, it is chosen at run-time; currently GRUB chooses 0, which corresponds "
43340"to COM1 (@pxref{Serial terminal,,, grub,GNU GRUB manual})."
43341msgstr ""
43342
43343#. type: item
39764ef8 43344#: doc/guix.texi:20212
b9fe8fd6
JL
43345#, no-wrap
43346msgid "@code{serial-speed} (default: @code{#f})"
43347msgstr ""
43348
43349#. type: table
39764ef8 43350#: doc/guix.texi:20216
b9fe8fd6
JL
43351msgid ""
43352"The speed of the serial interface, as an integer. For GRUB, the default "
43353"value is chosen at run-time; currently GRUB chooses 9600@tie{}bps "
43354"(@pxref{Serial terminal,,, grub,GNU GRUB manual})."
43355msgstr ""
43356
43357#. type: cindex
39764ef8 43358#: doc/guix.texi:20220
b9fe8fd6
JL
43359#, no-wrap
43360msgid "dual boot"
43361msgstr ""
43362
43363#. type: cindex
39764ef8 43364#: doc/guix.texi:20221
b9fe8fd6
JL
43365#, no-wrap
43366msgid "boot menu"
43367msgstr ""
43368
43369#. type: Plain text
39764ef8 43370#: doc/guix.texi:20227
b9fe8fd6 43371msgid ""
39764ef8
JL
43372"Should you want to list additional boot menu entries @i{via} the @code{menu-"
43373"entries} field above, you will need to create them with the @code{menu-"
43374"entry} form. For example, imagine you want to be able to boot another "
43375"distro (hard to imagine!), you can define a menu entry along these lines:"
b9fe8fd6
JL
43376msgstr ""
43377
43378#. type: example
39764ef8 43379#: doc/guix.texi:20234
b9fe8fd6
JL
43380#, no-wrap
43381msgid ""
43382"(menu-entry\n"
43383" (label \"The Other Distro\")\n"
43384" (linux \"/boot/old/vmlinux-2.6.32\")\n"
43385" (linux-arguments '(\"root=/dev/sda2\"))\n"
43386" (initrd \"/boot/old/initrd\"))\n"
43387msgstr ""
43388
43389#. type: Plain text
39764ef8 43390#: doc/guix.texi:20237
b9fe8fd6
JL
43391msgid "Details below."
43392msgstr ""
43393
43394#. type: deftp
39764ef8 43395#: doc/guix.texi:20238
b9fe8fd6
JL
43396#, no-wrap
43397msgid "{Data Type} menu-entry"
43398msgstr ""
43399
43400#. type: deftp
39764ef8 43401#: doc/guix.texi:20240
b9fe8fd6
JL
43402msgid "The type of an entry in the bootloader menu."
43403msgstr ""
43404
43405#. type: code{#1}
39764ef8 43406#: doc/guix.texi:20243
b9fe8fd6
JL
43407#, no-wrap
43408msgid "label"
43409msgstr ""
43410
43411#. type: table
39764ef8 43412#: doc/guix.texi:20245
b9fe8fd6
JL
43413msgid "The label to show in the menu---e.g., @code{\"GNU\"}."
43414msgstr ""
43415
43416#. type: code{#1}
39764ef8 43417#: doc/guix.texi:20246
b9fe8fd6
JL
43418#, no-wrap
43419msgid "linux"
43420msgstr ""
43421
43422#. type: table
39764ef8 43423#: doc/guix.texi:20248
b9fe8fd6
JL
43424msgid "The Linux kernel image to boot, for example:"
43425msgstr ""
43426
43427#. type: example
39764ef8 43428#: doc/guix.texi:20251
b9fe8fd6
JL
43429#, no-wrap
43430msgid "(file-append linux-libre \"/bzImage\")\n"
43431msgstr ""
43432
43433#. type: table
39764ef8 43434#: doc/guix.texi:20256
b9fe8fd6
JL
43435msgid ""
43436"For GRUB, it is also possible to specify a device explicitly in the file "
43437"path using GRUB's device naming convention (@pxref{Naming convention,,, "
43438"grub, GNU GRUB manual}), for example:"
43439msgstr ""
43440
43441#. type: example
39764ef8 43442#: doc/guix.texi:20259
b9fe8fd6
JL
43443#, no-wrap
43444msgid "\"(hd0,msdos1)/boot/vmlinuz\"\n"
43445msgstr ""
43446
43447#. type: table
39764ef8 43448#: doc/guix.texi:20263
b9fe8fd6
JL
43449msgid ""
43450"If the device is specified explicitly as above, then the @code{device} field "
43451"is ignored entirely."
43452msgstr ""
43453
43454#. type: item
39764ef8 43455#: doc/guix.texi:20264
b9fe8fd6
JL
43456#, no-wrap
43457msgid "@code{linux-arguments} (default: @code{()})"
43458msgstr ""
43459
43460#. type: table
39764ef8 43461#: doc/guix.texi:20267
b9fe8fd6
JL
43462msgid ""
43463"The list of extra Linux kernel command-line arguments---e.g., "
43464"@code{(\"console=ttyS0\")}."
43465msgstr ""
43466
43467#. type: table
39764ef8 43468#: doc/guix.texi:20271
b9fe8fd6
JL
43469msgid ""
43470"A G-Expression or string denoting the file name of the initial RAM disk to "
43471"use (@pxref{G-Expressions})."
43472msgstr ""
43473
43474#. type: item
39764ef8 43475#: doc/guix.texi:20271
b9fe8fd6
JL
43476#, no-wrap
43477msgid "@code{device} (default: @code{#f})"
43478msgstr ""
43479
43480#. type: table
39764ef8 43481#: doc/guix.texi:20274
b9fe8fd6
JL
43482msgid ""
43483"The device where the kernel and initrd are to be found---i.e., for GRUB, "
43484"@dfn{root} for this menu entry (@pxref{root,,, grub, GNU GRUB manual})."
43485msgstr ""
43486
43487#. type: table
39764ef8 43488#: doc/guix.texi:20280
b9fe8fd6
JL
43489msgid ""
43490"This may be a file system label (a string), a file system UUID (a "
43491"bytevector, @pxref{File Systems}), or @code{#f}, in which case the "
43492"bootloader will search the device containing the file specified by the "
43493"@code{linux} field (@pxref{search,,, grub, GNU GRUB manual}). It must "
43494"@emph{not} be an OS device name such as @file{/dev/sda1}."
43495msgstr ""
43496
43497#. type: Plain text
39764ef8 43498#: doc/guix.texi:20287
b9fe8fd6
JL
43499msgid ""
43500"Fow now only GRUB has theme support. GRUB themes are created using the "
43501"@code{grub-theme} form, which is not documented yet."
43502msgstr ""
43503
43504#. type: defvr
39764ef8 43505#: doc/guix.texi:20292
b9fe8fd6
JL
43506msgid ""
43507"This is the default GRUB theme used by the operating system if no "
43508"@code{theme} field is specified in @code{bootloader-configuration} record."
43509msgstr ""
43510
43511#. type: defvr
39764ef8
JL
43512#: doc/guix.texi:20295
43513msgid ""
43514"It comes with a fancy background image displaying the GNU and Guix logos."
b9fe8fd6
JL
43515msgstr ""
43516
43517#. type: subsection
39764ef8 43518#: doc/guix.texi:20299
b9fe8fd6
JL
43519#, no-wrap
43520msgid "Invoking @code{guix system}"
43521msgstr ""
43522
43523#. type: Plain text
39764ef8 43524#: doc/guix.texi:20304
b9fe8fd6
JL
43525msgid ""
43526"Once you have written an operating system declaration as seen in the "
43527"previous section, it can be @dfn{instantiated} using the @command{guix "
43528"system} command. The synopsis is:"
43529msgstr ""
43530
43531#. type: example
39764ef8 43532#: doc/guix.texi:20307
b9fe8fd6
JL
43533#, no-wrap
43534msgid "guix system @var{options}@dots{} @var{action} @var{file}\n"
43535msgstr ""
43536
43537#. type: Plain text
39764ef8 43538#: doc/guix.texi:20313
b9fe8fd6
JL
43539msgid ""
43540"@var{file} must be the name of a file containing an @code{operating-system} "
43541"declaration. @var{action} specifies how the operating system is "
43542"instantiated. Currently the following values are supported:"
43543msgstr ""
43544
43545#. type: item
39764ef8 43546#: doc/guix.texi:20315
b9fe8fd6
JL
43547#, no-wrap
43548msgid "search"
43549msgstr ""
43550
43551#. type: table
39764ef8 43552#: doc/guix.texi:20318
b9fe8fd6
JL
43553msgid ""
43554"Display available service type definitions that match the given regular "
43555"expressions, sorted by relevance:"
43556msgstr ""
43557
43558#. type: example
39764ef8 43559#: doc/guix.texi:20330
b9fe8fd6
JL
43560#, no-wrap
43561msgid ""
43562"$ guix system search console font\n"
43563"name: console-fonts\n"
43564"location: gnu/services/base.scm:729:2\n"
43565"extends: shepherd-root\n"
43566"description: Install the given fonts on the specified ttys (fonts are\n"
43567"+ per virtual console on GNU/Linux). The value of this service is a list\n"
43568"+ of tty/font pairs like:\n"
43569"+ \n"
43570"+ '((\"tty1\" . \"LatGrkCyr-8x16\"))\n"
43571"relevance: 20\n"
43572"\n"
43573msgstr ""
43574
43575#. type: example
39764ef8 43576#: doc/guix.texi:20336
b9fe8fd6
JL
43577#, no-wrap
43578msgid ""
43579"name: mingetty\n"
43580"location: gnu/services/base.scm:1048:2\n"
43581"extends: shepherd-root\n"
43582"description: Provide console login using the `mingetty' program.\n"
43583"relevance: 2\n"
43584"\n"
43585msgstr ""
43586
43587#. type: example
39764ef8 43588#: doc/guix.texi:20343
b9fe8fd6
JL
43589#, no-wrap
43590msgid ""
43591"name: login\n"
43592"location: gnu/services/base.scm:775:2\n"
43593"extends: pam\n"
43594"description: Provide a console log-in service as specified by its\n"
43595"+ configuration value, a `login-configuration' object.\n"
43596"relevance: 2\n"
43597"\n"
43598msgstr ""
43599
43600#. type: example
39764ef8 43601#: doc/guix.texi:20345
b9fe8fd6
JL
43602#, no-wrap
43603msgid "@dots{}\n"
43604msgstr ""
43605
43606#. type: table
39764ef8 43607#: doc/guix.texi:20350
b9fe8fd6
JL
43608msgid ""
43609"As for @command{guix package --search}, the result is written in "
43610"@code{recutils} format, which makes it easy to filter the output "
43611"(@pxref{Top, GNU recutils databases,, recutils, GNU recutils manual})."
43612msgstr ""
43613
43614#. type: item
39764ef8 43615#: doc/guix.texi:20351
b9fe8fd6
JL
43616#, no-wrap
43617msgid "reconfigure"
43618msgstr ""
43619
43620#. type: table
39764ef8 43621#: doc/guix.texi:20356
b9fe8fd6
JL
43622msgid ""
43623"Build the operating system described in @var{file}, activate it, and switch "
43624"to it@footnote{This action (and the related actions @code{switch-generation} "
43625"and @code{roll-back}) are usable only on systems already running GuixSD.}."
43626msgstr ""
43627
43628#. type: table
39764ef8 43629#: doc/guix.texi:20363
b9fe8fd6
JL
43630msgid ""
43631"This effects all the configuration specified in @var{file}: user accounts, "
43632"system services, global package list, setuid programs, etc. The command "
43633"starts system services specified in @var{file} that are not currently "
43634"running; if a service is currently running, it does not attempt to upgrade "
43635"it since this would not be possible without stopping it first."
43636msgstr ""
43637
43638#. type: table
39764ef8 43639#: doc/guix.texi:20369
b9fe8fd6
JL
43640msgid ""
43641"This command creates a new generation whose number is one greater than the "
43642"current generation (as reported by @command{guix system list-generations}). "
43643"If that generation already exists, it will be overwritten. This behavior "
43644"mirrors that of @command{guix package} (@pxref{Invoking guix package})."
43645msgstr ""
43646
43647#. type: table
39764ef8 43648#: doc/guix.texi:20374
b9fe8fd6
JL
43649msgid ""
43650"It also adds a bootloader menu entry for the new OS configuration, ---unless "
43651"@option{--no-bootloader} is passed. For GRUB, it moves entries for older "
43652"configurations to a submenu, allowing you to choose an older system "
43653"generation at boot time should you need it."
43654msgstr ""
43655
43656#. type: quotation
39764ef8 43657#: doc/guix.texi:20382
b9fe8fd6
JL
43658msgid ""
43659"It is highly recommended to run @command{guix pull} once before you run "
43660"@command{guix system reconfigure} for the first time (@pxref{Invoking guix "
43661"pull}). Failing to do that you would see an older version of Guix once "
43662"@command{reconfigure} has completed."
43663msgstr ""
43664
43665#. type: item
39764ef8 43666#: doc/guix.texi:20384
b9fe8fd6
JL
43667#, no-wrap
43668msgid "switch-generation"
43669msgstr ""
43670
43671#. type: table
39764ef8 43672#: doc/guix.texi:20393
b9fe8fd6
JL
43673msgid ""
43674"Switch to an existing system generation. This action atomically switches "
43675"the system profile to the specified system generation. It also rearranges "
43676"the system's existing bootloader menu entries. It makes the menu entry for "
43677"the specified system generation the default, and it moves the entries for "
43678"the other generatiors to a submenu, if supported by the bootloader being "
43679"used. The next time the system boots, it will use the specified system "
43680"generation."
43681msgstr ""
43682
43683#. type: table
39764ef8 43684#: doc/guix.texi:20397
b9fe8fd6
JL
43685msgid ""
43686"The bootloader itself is not being reinstalled when using this command. "
43687"Thus, the installed bootloader is used with an updated configuration file."
43688msgstr ""
43689
43690#. type: table
39764ef8 43691#: doc/guix.texi:20401
b9fe8fd6
JL
43692msgid ""
43693"The target generation can be specified explicitly by its generation number. "
43694"For example, the following invocation would switch to system generation 7:"
43695msgstr ""
43696
43697#. type: example
39764ef8 43698#: doc/guix.texi:20404
b9fe8fd6
JL
43699#, no-wrap
43700msgid "guix system switch-generation 7\n"
43701msgstr ""
43702
43703#. type: table
39764ef8 43704#: doc/guix.texi:20412
b9fe8fd6
JL
43705msgid ""
43706"The target generation can also be specified relative to the current "
43707"generation with the form @code{+N} or @code{-N}, where @code{+3} means ``3 "
43708"generations ahead of the current generation,'' and @code{-1} means ``1 "
43709"generation prior to the current generation.'' When specifying a negative "
43710"value such as @code{-1}, you must precede it with @code{--} to prevent it "
43711"from being parsed as an option. For example:"
43712msgstr ""
43713
43714#. type: example
39764ef8 43715#: doc/guix.texi:20415
b9fe8fd6
JL
43716#, no-wrap
43717msgid "guix system switch-generation -- -1\n"
43718msgstr ""
43719
43720#. type: table
39764ef8 43721#: doc/guix.texi:20423
b9fe8fd6
JL
43722msgid ""
43723"Currently, the effect of invoking this action is @emph{only} to switch the "
43724"system profile to an existing generation and rearrange the bootloader menu "
43725"entries. To actually start using the target system generation, you must "
43726"reboot after running this action. In the future, it will be updated to do "
43727"the same things as @command{reconfigure}, like activating and deactivating "
43728"services."
43729msgstr ""
43730
43731#. type: table
39764ef8 43732#: doc/guix.texi:20425
b9fe8fd6
JL
43733msgid "This action will fail if the specified generation does not exist."
43734msgstr ""
43735
43736#. type: item
39764ef8 43737#: doc/guix.texi:20426
b9fe8fd6
JL
43738#, no-wrap
43739msgid "roll-back"
43740msgstr ""
43741
43742#. type: table
39764ef8 43743#: doc/guix.texi:20432
b9fe8fd6
JL
43744msgid ""
43745"Switch to the preceding system generation. The next time the system boots, "
43746"it will use the preceding system generation. This is the inverse of "
43747"@command{reconfigure}, and it is exactly the same as invoking "
43748"@command{switch-generation} with an argument of @code{-1}."
43749msgstr ""
43750
43751#. type: table
39764ef8 43752#: doc/guix.texi:20436
b9fe8fd6
JL
43753msgid ""
43754"Currently, as with @command{switch-generation}, you must reboot after "
43755"running this action to actually start using the preceding system generation."
43756msgstr ""
43757
43758#. type: table
39764ef8 43759#: doc/guix.texi:20441
b9fe8fd6
JL
43760msgid ""
43761"Build the derivation of the operating system, which includes all the "
43762"configuration files and programs needed to boot and run the system. This "
43763"action does not actually install anything."
43764msgstr ""
43765
43766#. type: item
39764ef8 43767#: doc/guix.texi:20442
b9fe8fd6
JL
43768#, no-wrap
43769msgid "init"
43770msgstr ""
43771
43772#. type: table
39764ef8 43773#: doc/guix.texi:20446
b9fe8fd6
JL
43774msgid ""
43775"Populate the given directory with all the files necessary to run the "
43776"operating system specified in @var{file}. This is useful for first-time "
43777"installations of GuixSD. For instance:"
43778msgstr ""
43779
43780#. type: example
39764ef8 43781#: doc/guix.texi:20449
b9fe8fd6
JL
43782#, no-wrap
43783msgid "guix system init my-os-config.scm /mnt\n"
43784msgstr ""
43785
43786#. type: table
39764ef8 43787#: doc/guix.texi:20456
b9fe8fd6
JL
43788msgid ""
43789"copies to @file{/mnt} all the store items required by the configuration "
43790"specified in @file{my-os-config.scm}. This includes configuration files, "
43791"packages, and so on. It also creates other essential files needed for the "
39764ef8
JL
43792"system to operate correctly---e.g., the @file{/etc}, @file{/var}, and @file{/"
43793"run} directories, and the @file{/bin/sh} file."
b9fe8fd6
JL
43794msgstr ""
43795
43796#. type: table
39764ef8 43797#: doc/guix.texi:20460
b9fe8fd6 43798msgid ""
39764ef8
JL
43799"This command also installs bootloader on the target specified in @file{my-os-"
43800"config}, unless the @option{--no-bootloader} option was passed."
b9fe8fd6
JL
43801msgstr ""
43802
43803#. type: item
39764ef8 43804#: doc/guix.texi:20461
b9fe8fd6
JL
43805#, no-wrap
43806msgid "vm"
43807msgstr ""
43808
43809#. type: cindex
39764ef8 43810#: doc/guix.texi:20462 doc/guix.texi:20726
b9fe8fd6
JL
43811#, no-wrap
43812msgid "virtual machine"
43813msgstr ""
43814
43815#. type: cindex
39764ef8 43816#: doc/guix.texi:20463
b9fe8fd6
JL
43817#, no-wrap
43818msgid "VM"
43819msgstr ""
43820
43821#. type: anchor{#1}
39764ef8 43822#: doc/guix.texi:20470
b9fe8fd6
JL
43823msgid "guix system vm"
43824msgstr ""
43825
43826#. type: table
39764ef8 43827#: doc/guix.texi:20470
b9fe8fd6
JL
43828msgid ""
43829"Build a virtual machine that contains the operating system declared in "
43830"@var{file}, and return a script to run that virtual machine (VM). Arguments "
43831"given to the script are passed to QEMU as in the example below, which "
43832"enables networking and requests 1@tie{}GiB of RAM for the emulated machine:"
43833msgstr ""
43834
43835#. type: example
39764ef8 43836#: doc/guix.texi:20473
b9fe8fd6
JL
43837#, no-wrap
43838msgid "$ /gnu/store/@dots{}-run-vm.sh -m 1024 -net user\n"
43839msgstr ""
43840
43841#. type: table
39764ef8 43842#: doc/guix.texi:20476
b9fe8fd6
JL
43843msgid "The VM shares its store with the host system."
43844msgstr ""
43845
43846#. type: table
39764ef8 43847#: doc/guix.texi:20481
b9fe8fd6
JL
43848msgid ""
43849"Additional file systems can be shared between the host and the VM using the "
43850"@code{--share} and @code{--expose} command-line options: the former "
43851"specifies a directory to be shared with write access, while the latter "
43852"provides read-only access to the shared directory."
43853msgstr ""
43854
43855#. type: table
39764ef8 43856#: doc/guix.texi:20485
b9fe8fd6
JL
43857msgid ""
43858"The example below creates a VM in which the user's home directory is "
39764ef8
JL
43859"accessible read-only, and where the @file{/exchange} directory is a read-"
43860"write mapping of @file{$HOME/tmp} on the host:"
b9fe8fd6
JL
43861msgstr ""
43862
43863#. type: example
39764ef8 43864#: doc/guix.texi:20489
b9fe8fd6
JL
43865#, no-wrap
43866msgid ""
43867"guix system vm my-config.scm \\\n"
43868" --expose=$HOME --share=$HOME/tmp=/exchange\n"
43869msgstr ""
43870
43871#. type: table
39764ef8 43872#: doc/guix.texi:20494
b9fe8fd6
JL
43873msgid ""
43874"On GNU/Linux, the default is to boot directly to the kernel; this has the "
43875"advantage of requiring only a very tiny root disk image since the store of "
43876"the host can then be mounted."
43877msgstr ""
43878
43879#. type: table
39764ef8 43880#: doc/guix.texi:20500
b9fe8fd6
JL
43881msgid ""
43882"The @code{--full-boot} option forces a complete boot sequence, starting with "
43883"the bootloader. This requires more disk space since a root image containing "
43884"at least the kernel, initrd, and bootloader data files must be created. The "
43885"@code{--image-size} option can be used to specify the size of the image."
43886msgstr ""
43887
43888#. type: cindex
39764ef8 43889#: doc/guix.texi:20501
b9fe8fd6
JL
43890#, no-wrap
43891msgid "System images, creation in various formats"
43892msgstr ""
43893
43894#. type: cindex
39764ef8 43895#: doc/guix.texi:20502
b9fe8fd6
JL
43896#, no-wrap
43897msgid "Creating system images in various formats"
43898msgstr ""
43899
43900#. type: item
39764ef8 43901#: doc/guix.texi:20503
b9fe8fd6
JL
43902#, no-wrap
43903msgid "vm-image"
43904msgstr ""
43905
43906#. type: itemx
39764ef8 43907#: doc/guix.texi:20504
b9fe8fd6
JL
43908#, no-wrap
43909msgid "disk-image"
43910msgstr ""
43911
43912#. type: itemx
39764ef8 43913#: doc/guix.texi:20505
b9fe8fd6
JL
43914#, no-wrap
43915msgid "docker-image"
43916msgstr ""
43917
43918#. type: table
39764ef8 43919#: doc/guix.texi:20513
b9fe8fd6
JL
43920msgid ""
43921"Return a virtual machine, disk image, or Docker image of the operating "
43922"system declared in @var{file} that stands alone. By default, @command{guix "
43923"system} estimates the size of the image needed to store the system, but you "
43924"can use the @option{--image-size} option to specify a value. Docker images "
43925"are built to contain exactly what they need, so the @option{--image-size} "
43926"option is ignored in the case of @code{docker-image}."
43927msgstr ""
43928
43929#. type: table
39764ef8 43930#: doc/guix.texi:20516
b9fe8fd6 43931msgid ""
39764ef8
JL
43932"You can specify the root file system type by using the @option{--file-system-"
43933"type} option. It defaults to @code{ext4}."
b9fe8fd6
JL
43934msgstr ""
43935
43936#. type: table
39764ef8 43937#: doc/guix.texi:20520
b9fe8fd6
JL
43938msgid ""
43939"When using @code{vm-image}, the returned image is in qcow2 format, which the "
43940"QEMU emulator can efficiently use. @xref{Running GuixSD in a VM}, for more "
43941"information on how to run the image in a virtual machine."
43942msgstr ""
43943
43944#. type: table
39764ef8 43945#: doc/guix.texi:20525
b9fe8fd6
JL
43946msgid ""
43947"When using @code{disk-image}, a raw disk image is produced; it can be copied "
43948"as is to a USB stick, for instance. Assuming @code{/dev/sdc} is the device "
43949"corresponding to a USB stick, one can copy the image to it using the "
43950"following command:"
43951msgstr ""
43952
43953#. type: example
39764ef8 43954#: doc/guix.texi:20528
b9fe8fd6
JL
43955#, no-wrap
43956msgid "# dd if=$(guix system disk-image my-os.scm) of=/dev/sdc\n"
43957msgstr ""
43958
43959#. type: table
39764ef8 43960#: doc/guix.texi:20535
b9fe8fd6
JL
43961msgid ""
43962"When using @code{docker-image}, a Docker image is produced. Guix builds the "
43963"image from scratch, not from a pre-existing Docker base image. As a result, "
43964"it contains @emph{exactly} what you define in the operating system "
43965"configuration file. You can then load the image and launch a Docker "
43966"container using commands like the following:"
43967msgstr ""
43968
43969#. type: example
39764ef8 43970#: doc/guix.texi:20541
b9fe8fd6
JL
43971#, no-wrap
43972msgid ""
43973"image_id=\"$(docker load < guixsd-docker-image.tar.gz)\"\n"
43974"docker run -e GUIX_NEW_SYSTEM=/var/guix/profiles/system \\\\\n"
43975" --entrypoint /var/guix/profiles/system/profile/bin/guile \\\\\n"
43976" $image_id /var/guix/profiles/system/boot\n"
43977msgstr ""
43978
43979#. type: table
39764ef8 43980#: doc/guix.texi:20551
b9fe8fd6
JL
43981msgid ""
43982"This command starts a new Docker container from the specified image. It "
43983"will boot the GuixSD system in the usual manner, which means it will start "
43984"any services you have defined in the operating system configuration. "
43985"Depending on what you run in the Docker container, it may be necessary to "
43986"give the container additional permissions. For example, if you intend to "
43987"build software using Guix inside of the Docker container, you may need to "
43988"pass the @option{--privileged} option to @code{docker run}."
43989msgstr ""
43990
43991#. type: table
39764ef8 43992#: doc/guix.texi:20559
b9fe8fd6
JL
43993msgid ""
43994"Return a script to run the operating system declared in @var{file} within a "
43995"container. Containers are a set of lightweight isolation mechanisms "
43996"provided by the kernel Linux-libre. Containers are substantially less "
43997"resource-demanding than full virtual machines since the kernel, shared "
43998"objects, and other resources can be shared with the host system; this also "
43999"means they provide thinner isolation."
44000msgstr ""
44001
44002#. type: table
39764ef8 44003#: doc/guix.texi:20563
b9fe8fd6
JL
44004msgid ""
44005"Currently, the script must be run as root in order to support more than a "
44006"single user and group. The container shares its store with the host system."
44007msgstr ""
44008
44009#. type: table
39764ef8 44010#: doc/guix.texi:20567
b9fe8fd6
JL
44011msgid ""
44012"As with the @code{vm} action (@pxref{guix system vm}), additional file "
44013"systems to be shared between the host and container can be specified using "
44014"the @option{--share} and @option{--expose} options:"
44015msgstr ""
44016
44017#. type: example
39764ef8 44018#: doc/guix.texi:20571
b9fe8fd6
JL
44019#, no-wrap
44020msgid ""
44021"guix system container my-config.scm \\\n"
44022" --expose=$HOME --share=$HOME/tmp=/exchange\n"
44023msgstr ""
44024
44025#. type: quotation
39764ef8 44026#: doc/guix.texi:20575
b9fe8fd6
JL
44027msgid "This option requires Linux-libre 3.19 or newer."
44028msgstr ""
44029
44030#. type: Plain text
39764ef8 44031#: doc/guix.texi:20582
b9fe8fd6
JL
44032msgid ""
44033"@var{options} can contain any of the common build options (@pxref{Common "
44034"Build Options}). In addition, @var{options} can contain one of the "
44035"following:"
44036msgstr ""
44037
44038#. type: table
39764ef8 44039#: doc/guix.texi:20591
b9fe8fd6
JL
44040msgid ""
44041"Consider the operating-system @var{expr} evaluates to. This is an "
44042"alternative to specifying a file which evaluates to an operating system. "
44043"This is used to generate the GuixSD installer @pxref{Building the "
44044"Installation Image})."
44045msgstr ""
44046
44047#. type: table
39764ef8 44048#: doc/guix.texi:20596
b9fe8fd6
JL
44049msgid ""
44050"Attempt to build for @var{system} instead of the host system type. This "
44051"works as per @command{guix build} (@pxref{Invoking guix build})."
44052msgstr ""
44053
44054#. type: item
39764ef8 44055#: doc/guix.texi:20597
b9fe8fd6
JL
44056#, no-wrap
44057msgid "--derivation"
44058msgstr ""
44059
44060#. type: table
39764ef8 44061#: doc/guix.texi:20601
b9fe8fd6
JL
44062msgid ""
44063"Return the derivation file name of the given operating system without "
44064"building anything."
44065msgstr ""
44066
44067#. type: item
39764ef8 44068#: doc/guix.texi:20602
b9fe8fd6
JL
44069#, no-wrap
44070msgid "--file-system-type=@var{type}"
44071msgstr ""
44072
44073#. type: table
39764ef8 44074#: doc/guix.texi:20606
b9fe8fd6
JL
44075msgid ""
44076"For the @code{disk-image} action, create a file system of the given "
44077"@var{type} on the image."
44078msgstr ""
44079
44080#. type: table
39764ef8 44081#: doc/guix.texi:20608
b9fe8fd6
JL
44082msgid "When this option is omitted, @command{guix system} uses @code{ext4}."
44083msgstr ""
44084
44085#. type: cindex
39764ef8 44086#: doc/guix.texi:20609
b9fe8fd6
JL
44087#, no-wrap
44088msgid "ISO-9660 format"
44089msgstr ""
44090
44091#. type: cindex
39764ef8 44092#: doc/guix.texi:20610
b9fe8fd6
JL
44093#, no-wrap
44094msgid "CD image format"
44095msgstr ""
44096
44097#. type: cindex
39764ef8 44098#: doc/guix.texi:20611
b9fe8fd6
JL
44099#, no-wrap
44100msgid "DVD image format"
44101msgstr ""
44102
44103#. type: table
39764ef8 44104#: doc/guix.texi:20614
b9fe8fd6
JL
44105msgid ""
44106"@code{--file-system-type=iso9660} produces an ISO-9660 image, suitable for "
44107"burning on CDs and DVDs."
44108msgstr ""
44109
44110#. type: item
39764ef8 44111#: doc/guix.texi:20615
b9fe8fd6
JL
44112#, no-wrap
44113msgid "--image-size=@var{size}"
44114msgstr ""
44115
44116#. type: table
39764ef8 44117#: doc/guix.texi:20620
b9fe8fd6
JL
44118msgid ""
44119"For the @code{vm-image} and @code{disk-image} actions, create an image of "
44120"the given @var{size}. @var{size} may be a number of bytes, or it may "
44121"include a unit as a suffix (@pxref{Block size, size specifications,, "
44122"coreutils, GNU Coreutils})."
44123msgstr ""
44124
44125#. type: table
39764ef8 44126#: doc/guix.texi:20624
b9fe8fd6
JL
44127msgid ""
44128"When this option is omitted, @command{guix system} computes an estimate of "
44129"the image size as a function of the size of the system declared in "
44130"@var{file}."
44131msgstr ""
44132
44133#. type: item
39764ef8 44134#: doc/guix.texi:20630
b9fe8fd6
JL
44135#, no-wrap
44136msgid "--skip-checks"
44137msgstr ""
44138
44139#. type: table
39764ef8 44140#: doc/guix.texi:20632
b9fe8fd6
JL
44141msgid "Skip pre-installation safety checks."
44142msgstr ""
44143
44144#. type: table
39764ef8 44145#: doc/guix.texi:20639
b9fe8fd6
JL
44146msgid ""
44147"By default, @command{guix system init} and @command{guix system reconfigure} "
44148"perform safety checks: they make sure the file systems that appear in the "
44149"@code{operating-system} declaration actually exist (@pxref{File Systems}), "
44150"and that any Linux kernel modules that may be needed at boot time are listed "
44151"in @code{initrd-modules} (@pxref{Initial RAM Disk}). Passing this option "
44152"skips these tests altogether."
44153msgstr ""
44154
44155#. type: item
39764ef8 44156#: doc/guix.texi:20640
b9fe8fd6
JL
44157#, no-wrap
44158msgid "--on-error=@var{strategy}"
44159msgstr ""
44160
44161#. type: table
39764ef8 44162#: doc/guix.texi:20643
b9fe8fd6
JL
44163msgid ""
44164"Apply @var{strategy} when an error occurs when reading @var{file}. "
44165"@var{strategy} may be one of the following:"
44166msgstr ""
44167
44168#. type: item
39764ef8 44169#: doc/guix.texi:20645
b9fe8fd6
JL
44170#, no-wrap
44171msgid "nothing-special"
44172msgstr ""
44173
44174#. type: table
39764ef8 44175#: doc/guix.texi:20647
b9fe8fd6
JL
44176msgid "Report the error concisely and exit. This is the default strategy."
44177msgstr ""
44178
44179#. type: item
39764ef8 44180#: doc/guix.texi:20648
b9fe8fd6
JL
44181#, no-wrap
44182msgid "backtrace"
44183msgstr ""
44184
44185#. type: table
39764ef8 44186#: doc/guix.texi:20650
b9fe8fd6
JL
44187msgid "Likewise, but also display a backtrace."
44188msgstr ""
44189
44190#. type: item
39764ef8 44191#: doc/guix.texi:20651
b9fe8fd6
JL
44192#, no-wrap
44193msgid "debug"
44194msgstr ""
44195
44196#. type: table
39764ef8 44197#: doc/guix.texi:20657
b9fe8fd6
JL
44198msgid ""
44199"Report the error and enter Guile's debugger. From there, you can run "
44200"commands such as @code{,bt} to get a backtrace, @code{,locals} to display "
44201"local variable values, and more generally inspect the state of the program. "
44202"@xref{Debug Commands,,, guile, GNU Guile Reference Manual}, for a list of "
44203"available debugging commands."
44204msgstr ""
44205
44206#. type: quotation
39764ef8 44207#: doc/guix.texi:20667
b9fe8fd6
JL
44208msgid ""
44209"All the actions above, except @code{build} and @code{init}, can use KVM "
44210"support in the Linux-libre kernel. Specifically, if the machine has "
44211"hardware virtualization support, the corresponding KVM kernel module should "
44212"be loaded, and the @file{/dev/kvm} device node must exist and be readable "
44213"and writable by the user and by the build users of the daemon (@pxref{Build "
44214"Environment Setup})."
44215msgstr ""
44216
44217#. type: Plain text
39764ef8 44218#: doc/guix.texi:20673
b9fe8fd6
JL
44219msgid ""
44220"Once you have built, configured, re-configured, and re-re-configured your "
44221"GuixSD installation, you may find it useful to list the operating system "
44222"generations available on disk---and that you can choose from the bootloader "
44223"boot menu:"
44224msgstr ""
44225
44226#. type: item
39764ef8 44227#: doc/guix.texi:20676
b9fe8fd6
JL
44228#, no-wrap
44229msgid "list-generations"
44230msgstr ""
44231
44232#. type: table
39764ef8 44233#: doc/guix.texi:20681
b9fe8fd6
JL
44234msgid ""
44235"List a summary of each generation of the operating system available on disk, "
44236"in a human-readable way. This is similar to the @option{--list-generations} "
44237"option of @command{guix package} (@pxref{Invoking guix package})."
44238msgstr ""
44239
44240#. type: table
39764ef8 44241#: doc/guix.texi:20686
b9fe8fd6
JL
44242msgid ""
44243"Optionally, one can specify a pattern, with the same syntax that is used in "
44244"@command{guix package --list-generations}, to restrict the list of "
44245"generations displayed. For instance, the following command displays "
44246"generations that are up to 10 days old:"
44247msgstr ""
44248
44249#. type: example
39764ef8 44250#: doc/guix.texi:20689
b9fe8fd6
JL
44251#, no-wrap
44252msgid "$ guix system list-generations 10d\n"
44253msgstr ""
44254
44255#. type: Plain text
39764ef8 44256#: doc/guix.texi:20696
b9fe8fd6 44257msgid ""
39764ef8
JL
44258"The @command{guix system} command has even more to offer! The following sub-"
44259"commands allow you to visualize how your system services relate to each "
b9fe8fd6
JL
44260"other:"
44261msgstr ""
44262
44263#. type: anchor{#1}
39764ef8 44264#: doc/guix.texi:20698
b9fe8fd6
JL
44265msgid "system-extension-graph"
44266msgstr ""
44267
44268#. type: item
39764ef8 44269#: doc/guix.texi:20700
b9fe8fd6
JL
44270#, no-wrap
44271msgid "extension-graph"
44272msgstr ""
44273
44274#. type: table
39764ef8 44275#: doc/guix.texi:20705
b9fe8fd6
JL
44276msgid ""
44277"Emit in Dot/Graphviz format to standard output the @dfn{service extension "
44278"graph} of the operating system defined in @var{file} (@pxref{Service "
44279"Composition}, for more information on service extensions.)"
44280msgstr ""
44281
44282#. type: table
39764ef8 44283#: doc/guix.texi:20707
b9fe8fd6
JL
44284msgid "The command:"
44285msgstr ""
44286
44287#. type: example
39764ef8 44288#: doc/guix.texi:20710
b9fe8fd6
JL
44289#, no-wrap
44290msgid "$ guix system extension-graph @var{file} | dot -Tpdf > services.pdf\n"
44291msgstr ""
44292
44293#. type: table
39764ef8 44294#: doc/guix.texi:20713
b9fe8fd6
JL
44295msgid "produces a PDF file showing the extension relations among services."
44296msgstr ""
44297
44298#. type: anchor{#1}
39764ef8 44299#: doc/guix.texi:20715
b9fe8fd6
JL
44300msgid "system-shepherd-graph"
44301msgstr ""
44302
44303#. type: item
39764ef8 44304#: doc/guix.texi:20715
b9fe8fd6
JL
44305#, no-wrap
44306msgid "shepherd-graph"
44307msgstr ""
44308
44309#. type: table
39764ef8 44310#: doc/guix.texi:20720
b9fe8fd6
JL
44311msgid ""
44312"Emit in Dot/Graphviz format to standard output the @dfn{dependency graph} of "
44313"shepherd services of the operating system defined in @var{file}. "
44314"@xref{Shepherd Services}, for more information and for an example graph."
44315msgstr ""
44316
44317#. type: subsection
39764ef8 44318#: doc/guix.texi:20724
b9fe8fd6
JL
44319#, no-wrap
44320msgid "Running GuixSD in a Virtual Machine"
44321msgstr ""
44322
44323#. type: Plain text
39764ef8 44324#: doc/guix.texi:20734
b9fe8fd6
JL
44325msgid ""
44326"To run GuixSD in a virtual machine (VM), one can either use the pre-built "
39764ef8
JL
44327"GuixSD VM image distributed at @indicateurl{ftp://alpha.gnu.org/guix/guixsd-"
44328"vm-image-@value{VERSION}.@var{system}.tar.xz} , or build their own virtual "
44329"machine image using @command{guix system vm-image} (@pxref{Invoking guix "
44330"system}). The returned image is in qcow2 format, which the @uref{http://"
44331"qemu.org/, QEMU emulator} can efficiently use."
b9fe8fd6
JL
44332msgstr ""
44333
44334#. type: cindex
39764ef8 44335#: doc/guix.texi:20735
b9fe8fd6
JL
44336#, no-wrap
44337msgid "QEMU"
44338msgstr ""
44339
44340#. type: Plain text
39764ef8 44341#: doc/guix.texi:20742
b9fe8fd6
JL
44342msgid ""
44343"If you built your own image, you must copy it out of the store (@pxref{The "
44344"Store}) and give yourself permission to write to the copy before you can use "
44345"it. When invoking QEMU, you must choose a system emulator that is suitable "
44346"for your hardware platform. Here is a minimal QEMU invocation that will "
44347"boot the result of @command{guix system vm-image} on x86_64 hardware:"
44348msgstr ""
44349
44350#. type: example
39764ef8 44351#: doc/guix.texi:20747
b9fe8fd6
JL
44352#, no-wrap
44353msgid ""
44354"$ qemu-system-x86_64 \\\n"
44355" -net user -net nic,model=virtio \\\n"
44356" -enable-kvm -m 256 /tmp/qemu-image\n"
44357msgstr ""
44358
44359#. type: Plain text
39764ef8 44360#: doc/guix.texi:20750
b9fe8fd6
JL
44361msgid "Here is what each of these options means:"
44362msgstr ""
44363
44364#. type: item
39764ef8 44365#: doc/guix.texi:20752
b9fe8fd6
JL
44366#, no-wrap
44367msgid "qemu-system-x86_64"
44368msgstr ""
44369
44370#. type: table
39764ef8 44371#: doc/guix.texi:20755
b9fe8fd6 44372msgid ""
39764ef8 44373"This specifies the hardware platform to emulate. This should match the host."
b9fe8fd6
JL
44374msgstr ""
44375
44376#. type: item
39764ef8 44377#: doc/guix.texi:20756
b9fe8fd6
JL
44378#, no-wrap
44379msgid "-net user"
44380msgstr ""
44381
44382#. type: table
39764ef8 44383#: doc/guix.texi:20760
b9fe8fd6
JL
44384msgid ""
44385"Enable the unprivileged user-mode network stack. The guest OS can access "
44386"the host but not vice versa. This is the simplest way to get the guest OS "
44387"online."
44388msgstr ""
44389
44390#. type: item
39764ef8 44391#: doc/guix.texi:20761
b9fe8fd6
JL
44392#, no-wrap
44393msgid "-net nic,model=virtio"
44394msgstr ""
44395
44396#. type: table
39764ef8 44397#: doc/guix.texi:20766
b9fe8fd6
JL
44398msgid ""
44399"You must create a network interface of a given model. If you do not create "
44400"a NIC, the boot will fail. Assuming your hardware platform is x86_64, you "
39764ef8
JL
44401"can get a list of available NIC models by running @command{qemu-system-"
44402"x86_64 -net nic,model=help}."
b9fe8fd6
JL
44403msgstr ""
44404
44405#. type: item
39764ef8 44406#: doc/guix.texi:20767
b9fe8fd6
JL
44407#, no-wrap
44408msgid "-enable-kvm"
44409msgstr ""
44410
44411#. type: table
39764ef8 44412#: doc/guix.texi:20771
b9fe8fd6
JL
44413msgid ""
44414"If your system has hardware virtualization extensions, enabling the virtual "
44415"machine support (KVM) of the Linux kernel will make things run faster."
44416msgstr ""
44417
44418#. type: item
39764ef8 44419#: doc/guix.texi:20772
b9fe8fd6
JL
44420#, no-wrap
44421msgid "-m 256"
44422msgstr ""
44423
44424#. type: table
39764ef8 44425#: doc/guix.texi:20775
b9fe8fd6
JL
44426msgid ""
44427"RAM available to the guest OS, in mebibytes. Defaults to 128@tie{}MiB, "
44428"which may be insufficient for some operations."
44429msgstr ""
44430
44431#. type: item
39764ef8 44432#: doc/guix.texi:20776
b9fe8fd6
JL
44433#, no-wrap
44434msgid "/tmp/qemu-image"
44435msgstr ""
44436
44437#. type: table
39764ef8 44438#: doc/guix.texi:20778
b9fe8fd6
JL
44439msgid "The file name of the qcow2 image."
44440msgstr ""
44441
44442#. type: Plain text
39764ef8 44443#: doc/guix.texi:20788
b9fe8fd6
JL
44444msgid ""
44445"The default @command{run-vm.sh} script that is returned by an invocation of "
44446"@command{guix system vm} does not add a @command{-net user} flag by "
39764ef8
JL
44447"default. To get network access from within the vm add the @code{(dhcp-"
44448"client-service)} to your system definition and start the VM using "
44449"@command{`guix system vm config.scm` -net user}. An important caveat of "
44450"using @command{-net user} for networking is that @command{ping} will not "
b9fe8fd6
JL
44451"work, because it uses the ICMP protocol. You'll have to use a different "
44452"command to check for network connectivity, for example @command{guix "
44453"download}."
44454msgstr ""
44455
44456#. type: subsubsection
39764ef8 44457#: doc/guix.texi:20789
b9fe8fd6
JL
44458#, no-wrap
44459msgid "Connecting Through SSH"
44460msgstr ""
44461
44462#. type: Plain text
39764ef8 44463#: doc/guix.texi:20798
b9fe8fd6 44464msgid ""
39764ef8
JL
44465"To enable SSH inside a VM you need to add a SSH server like @code{(dropbear-"
44466"service)} or @code{(lsh-service)} to your VM. The @code{(lsh-service}) "
44467"doesn't currently boot unsupervised. It requires you to type some "
44468"characters to initialize the randomness generator. In addition you need to "
44469"forward the SSH port, 22 by default, to the host. You can do this with"
b9fe8fd6
JL
44470msgstr ""
44471
44472#. type: example
39764ef8 44473#: doc/guix.texi:20801
b9fe8fd6
JL
44474#, no-wrap
44475msgid "`guix system vm config.scm` -net user,hostfwd=tcp::10022-:22\n"
44476msgstr ""
44477
44478#. type: Plain text
39764ef8 44479#: doc/guix.texi:20804
b9fe8fd6
JL
44480msgid "To connect to the VM you can run"
44481msgstr ""
44482
44483#. type: example
39764ef8 44484#: doc/guix.texi:20807
b9fe8fd6
JL
44485#, no-wrap
44486msgid "ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -p 10022\n"
44487msgstr ""
44488
44489#. type: Plain text
39764ef8 44490#: doc/guix.texi:20814
b9fe8fd6
JL
44491msgid ""
44492"The @command{-p} tells @command{ssh} the port you want to connect to. "
44493"@command{-o UserKnownHostsFile=/dev/null} prevents @command{ssh} from "
44494"complaining every time you modify your @command{config.scm} file and the "
44495"@command{-o StrictHostKeyChecking=no} prevents you from having to allow a "
44496"connection to an unknown host every time you connect."
44497msgstr ""
44498
44499#. type: subsubsection
39764ef8 44500#: doc/guix.texi:20815
b9fe8fd6
JL
44501#, no-wrap
44502msgid "Using @command{virt-viewer} with Spice"
44503msgstr ""
44504
44505#. type: Plain text
39764ef8 44506#: doc/guix.texi:20821
b9fe8fd6
JL
44507msgid ""
44508"As an alternative to the default @command{qemu} graphical client you can use "
44509"the @command{remote-viewer} from the @command{virt-viewer} package. To "
44510"connect pass the @command{-spice port=5930,disable-ticketing} flag to "
44511"@command{qemu}. See previous section for further information on how to do "
44512"this."
44513msgstr ""
44514
44515#. type: Plain text
39764ef8 44516#: doc/guix.texi:20824
b9fe8fd6
JL
44517msgid ""
44518"Spice also allows you to do some nice stuff like share your clipboard with "
44519"your VM. To enable that you'll also have to pass the following flags to "
44520"@command{qemu}:"
44521msgstr ""
44522
44523#. type: example
39764ef8 44524#: doc/guix.texi:20830
b9fe8fd6
JL
44525#, no-wrap
44526msgid ""
39764ef8 44527"-device virtio-serial-pci,id=virtio-serial0,max_ports=16,bus=pci.0,addr=0x5\n"
b9fe8fd6
JL
44528"-chardev spicevmc,name=vdagent,id=vdagent\n"
44529"-device virtserialport,nr=1,bus=virtio-serial0.0,chardev=vdagent,\n"
44530"name=com.redhat.spice.0\n"
44531msgstr ""
44532
44533#. type: Plain text
39764ef8
JL
44534#: doc/guix.texi:20833
44535msgid ""
44536"You'll also need to add the @pxref{Miscellaneous Services, Spice service}."
b9fe8fd6
JL
44537msgstr ""
44538
44539#. type: Plain text
39764ef8 44540#: doc/guix.texi:20840
b9fe8fd6
JL
44541msgid ""
44542"The previous sections show the available services and how one can combine "
44543"them in an @code{operating-system} declaration. But how do we define them "
44544"in the first place? And what is a service anyway?"
44545msgstr ""
44546
44547#. type: cindex
39764ef8 44548#: doc/guix.texi:20852
b9fe8fd6
JL
44549#, no-wrap
44550msgid "daemons"
44551msgstr ""
44552
44553#. type: Plain text
39764ef8 44554#: doc/guix.texi:20865
b9fe8fd6
JL
44555msgid ""
44556"Here we define a @dfn{service} as, broadly, something that extends the "
44557"functionality of the operating system. Often a service is a process---a "
44558"@dfn{daemon}---started when the system boots: a secure shell server, a Web "
44559"server, the Guix build daemon, etc. Sometimes a service is a daemon whose "
44560"execution can be triggered by another daemon---e.g., an FTP server started "
44561"by @command{inetd} or a D-Bus service activated by @command{dbus-daemon}. "
44562"Occasionally, a service does not map to a daemon. For instance, the "
44563"``account'' service collects user accounts and makes sure they exist when "
44564"the system runs; the ``udev'' service collects device management rules and "
44565"makes them available to the eudev daemon; the @file{/etc} service populates "
44566"the @file{/etc} directory of the system."
44567msgstr ""
44568
44569#. type: cindex
39764ef8 44570#: doc/guix.texi:20866
b9fe8fd6
JL
44571#, no-wrap
44572msgid "service extensions"
44573msgstr ""
44574
44575#. type: Plain text
39764ef8 44576#: doc/guix.texi:20878
b9fe8fd6
JL
44577msgid ""
44578"GuixSD services are connected by @dfn{extensions}. For instance, the secure "
44579"shell service @emph{extends} the Shepherd---the GuixSD initialization "
44580"system, running as PID@tie{}1---by giving it the command lines to start and "
39764ef8
JL
44581"stop the secure shell daemon (@pxref{Networking Services, @code{lsh-"
44582"service}}); the UPower service extends the D-Bus service by passing it its "
44583"@file{.service} specification, and extends the udev service by passing it "
44584"device management rules (@pxref{Desktop Services, @code{upower-service}}); "
44585"the Guix daemon service extends the Shepherd by passing it the command lines "
44586"to start and stop the daemon, and extends the account service by passing it "
44587"a list of required build user accounts (@pxref{Base Services})."
b9fe8fd6
JL
44588msgstr ""
44589
44590#. type: Plain text
39764ef8 44591#: doc/guix.texi:20882
b9fe8fd6
JL
44592msgid ""
44593"All in all, services and their ``extends'' relations form a directed acyclic "
44594"graph (DAG). If we represent services as boxes and extensions as arrows, a "
44595"typical system might provide something like this:"
44596msgstr ""
44597
44598#. type: Plain text
39764ef8 44599#: doc/guix.texi:20884
b9fe8fd6
JL
44600msgid "@image{images/service-graph,,5in,Typical service extension graph.}"
44601msgstr ""
44602
44603#. type: cindex
39764ef8 44604#: doc/guix.texi:20885
b9fe8fd6
JL
44605#, no-wrap
44606msgid "system service"
44607msgstr ""
44608
44609#. type: Plain text
39764ef8 44610#: doc/guix.texi:20893
b9fe8fd6
JL
44611msgid ""
44612"At the bottom, we see the @dfn{system service}, which produces the directory "
44613"containing everything to run and boot the system, as returned by the "
44614"@command{guix system build} command. @xref{Service Reference}, to learn "
44615"about the other service types shown here. @xref{system-extension-graph, the "
44616"@command{guix system extension-graph} command}, for information on how to "
44617"generate this representation for a particular operating system definition."
44618msgstr ""
44619
44620#. type: cindex
39764ef8 44621#: doc/guix.texi:20894
b9fe8fd6
JL
44622#, no-wrap
44623msgid "service types"
44624msgstr ""
44625
44626#. type: Plain text
39764ef8 44627#: doc/guix.texi:20900
b9fe8fd6
JL
44628msgid ""
44629"Technically, developers can define @dfn{service types} to express these "
44630"relations. There can be any number of services of a given type on the "
44631"system---for instance, a system running two instances of the GNU secure "
44632"shell server (lsh) has two instances of @var{lsh-service-type}, with "
44633"different parameters."
44634msgstr ""
44635
44636#. type: Plain text
39764ef8 44637#: doc/guix.texi:20903
b9fe8fd6
JL
44638msgid ""
44639"The following section describes the programming interface for service types "
44640"and services."
44641msgstr ""
44642
44643#. type: Plain text
39764ef8 44644#: doc/guix.texi:20910
b9fe8fd6
JL
44645msgid ""
44646"A @dfn{service type} is a node in the DAG described above. Let us start "
44647"with a simple example, the service type for the Guix build daemon "
44648"(@pxref{Invoking guix-daemon}):"
44649msgstr ""
44650
44651#. type: example
39764ef8 44652#: doc/guix.texi:20920
b9fe8fd6
JL
44653#, no-wrap
44654msgid ""
44655"(define guix-service-type\n"
44656" (service-type\n"
44657" (name 'guix)\n"
44658" (extensions\n"
39764ef8 44659" (list (service-extension shepherd-root-service-type guix-shepherd-service)\n"
b9fe8fd6
JL
44660" (service-extension account-service-type guix-accounts)\n"
44661" (service-extension activation-service-type guix-activation)))\n"
44662" (default-value (guix-configuration))))\n"
44663msgstr ""
44664
44665#. type: Plain text
39764ef8 44666#: doc/guix.texi:20924
b9fe8fd6
JL
44667msgid "It defines three things:"
44668msgstr ""
44669
44670#. type: enumerate
39764ef8 44671#: doc/guix.texi:20928
b9fe8fd6
JL
44672msgid "A name, whose sole purpose is to make inspection and debugging easier."
44673msgstr ""
44674
44675#. type: enumerate
39764ef8 44676#: doc/guix.texi:20933
b9fe8fd6
JL
44677msgid ""
44678"A list of @dfn{service extensions}, where each extension designates the "
44679"target service type and a procedure that, given the parameters of the "
44680"service, returns a list of objects to extend the service of that type."
44681msgstr ""
44682
44683#. type: enumerate
39764ef8 44684#: doc/guix.texi:20936
b9fe8fd6
JL
44685msgid ""
44686"Every service type has at least one service extension. The only exception "
44687"is the @dfn{boot service type}, which is the ultimate service."
44688msgstr ""
44689
44690#. type: enumerate
39764ef8 44691#: doc/guix.texi:20939
b9fe8fd6
JL
44692msgid "Optionally, a default value for instances of this type."
44693msgstr ""
44694
44695#. type: Plain text
39764ef8 44696#: doc/guix.texi:20942
b9fe8fd6
JL
44697msgid "In this example, @var{guix-service-type} extends three services:"
44698msgstr ""
44699
44700#. type: item
39764ef8 44701#: doc/guix.texi:20944
b9fe8fd6
JL
44702#, no-wrap
44703msgid "shepherd-root-service-type"
44704msgstr ""
44705
44706#. type: table
39764ef8 44707#: doc/guix.texi:20949
b9fe8fd6
JL
44708msgid ""
44709"The @var{guix-shepherd-service} procedure defines how the Shepherd service "
44710"is extended. Namely, it returns a @code{<shepherd-service>} object that "
44711"defines how @command{guix-daemon} is started and stopped (@pxref{Shepherd "
44712"Services})."
44713msgstr ""
44714
44715#. type: item
39764ef8 44716#: doc/guix.texi:20950
b9fe8fd6
JL
44717#, no-wrap
44718msgid "account-service-type"
44719msgstr ""
44720
44721#. type: table
39764ef8 44722#: doc/guix.texi:20955
b9fe8fd6
JL
44723msgid ""
44724"This extension for this service is computed by @var{guix-accounts}, which "
44725"returns a list of @code{user-group} and @code{user-account} objects "
44726"representing the build user accounts (@pxref{Invoking guix-daemon})."
44727msgstr ""
44728
44729#. type: item
39764ef8 44730#: doc/guix.texi:20956
b9fe8fd6
JL
44731#, no-wrap
44732msgid "activation-service-type"
44733msgstr ""
44734
44735#. type: table
39764ef8 44736#: doc/guix.texi:20960
b9fe8fd6
JL
44737msgid ""
44738"Here @var{guix-activation} is a procedure that returns a gexp, which is a "
44739"code snippet to run at ``activation time''---e.g., when the service is "
44740"booted."
44741msgstr ""
44742
44743#. type: Plain text
39764ef8 44744#: doc/guix.texi:20963
b9fe8fd6
JL
44745msgid "A service of this type is instantiated like this:"
44746msgstr ""
44747
44748#. type: example
39764ef8 44749#: doc/guix.texi:20969
b9fe8fd6
JL
44750#, no-wrap
44751msgid ""
44752"(service guix-service-type\n"
44753" (guix-configuration\n"
44754" (build-accounts 5)\n"
44755" (use-substitutes? #f)))\n"
44756msgstr ""
44757
44758#. type: Plain text
39764ef8 44759#: doc/guix.texi:20977
b9fe8fd6
JL
44760msgid ""
44761"The second argument to the @code{service} form is a value representing the "
39764ef8
JL
44762"parameters of this specific service instance. @xref{guix-configuration-"
44763"type, @code{guix-configuration}}, for information about the @code{guix-"
44764"configuration} data type. When the value is omitted, the default value "
44765"specified by @code{guix-service-type} is used:"
b9fe8fd6
JL
44766msgstr ""
44767
44768#. type: example
39764ef8 44769#: doc/guix.texi:20980
b9fe8fd6
JL
44770#, no-wrap
44771msgid "(service guix-service-type)\n"
44772msgstr ""
44773
44774#. type: Plain text
39764ef8 44775#: doc/guix.texi:20984
b9fe8fd6
JL
44776msgid ""
44777"@var{guix-service-type} is quite simple because it extends other services "
44778"but is not extensible itself."
44779msgstr ""
44780
44781#. type: Plain text
39764ef8 44782#: doc/guix.texi:20988
b9fe8fd6
JL
44783msgid "The service type for an @emph{extensible} service looks like this:"
44784msgstr ""
44785
44786#. type: example
39764ef8 44787#: doc/guix.texi:20995
b9fe8fd6
JL
44788#, no-wrap
44789msgid ""
44790"(define udev-service-type\n"
44791" (service-type (name 'udev)\n"
44792" (extensions\n"
44793" (list (service-extension shepherd-root-service-type\n"
44794" udev-shepherd-service)))\n"
44795"\n"
44796msgstr ""
44797
44798#. type: example
39764ef8 44799#: doc/guix.texi:21003
b9fe8fd6
JL
44800#, no-wrap
44801msgid ""
44802" (compose concatenate) ;concatenate the list of rules\n"
44803" (extend (lambda (config rules)\n"
44804" (match config\n"
44805" (($ <udev-configuration> udev initial-rules)\n"
44806" (udev-configuration\n"
44807" (udev udev) ;the udev package to use\n"
44808" (rules (append initial-rules rules)))))))))\n"
44809msgstr ""
44810
44811#. type: Plain text
39764ef8 44812#: doc/guix.texi:21009
b9fe8fd6 44813msgid ""
39764ef8
JL
44814"This is the service type for the @uref{https://wiki.gentoo.org/wiki/Project:"
44815"Eudev, eudev device management daemon}. Compared to the previous example, "
44816"in addition to an extension of @var{shepherd-root-service-type}, we see two "
44817"new fields:"
b9fe8fd6
JL
44818msgstr ""
44819
44820#. type: item
39764ef8 44821#: doc/guix.texi:21011
b9fe8fd6
JL
44822#, no-wrap
44823msgid "compose"
44824msgstr ""
44825
44826#. type: table
39764ef8 44827#: doc/guix.texi:21014
b9fe8fd6
JL
44828msgid ""
44829"This is the procedure to @dfn{compose} the list of extensions to services of "
44830"this type."
44831msgstr ""
44832
44833#. type: table
39764ef8 44834#: doc/guix.texi:21017
b9fe8fd6
JL
44835msgid ""
44836"Services can extend the udev service by passing it lists of rules; we "
44837"compose those extensions simply by concatenating them."
44838msgstr ""
44839
44840#. type: item
39764ef8 44841#: doc/guix.texi:21018
b9fe8fd6
JL
44842#, no-wrap
44843msgid "extend"
44844msgstr ""
44845
44846#. type: table
39764ef8 44847#: doc/guix.texi:21021
b9fe8fd6
JL
44848msgid ""
44849"This procedure defines how the value of the service is @dfn{extended} with "
44850"the composition of the extensions."
44851msgstr ""
44852
44853#. type: table
39764ef8 44854#: doc/guix.texi:21026
b9fe8fd6
JL
44855msgid ""
44856"Udev extensions are composed into a list of rules, but the udev service "
44857"value is itself a @code{<udev-configuration>} record. So here, we extend "
44858"that record by appending the list of rules it contains to the list of "
44859"contributed rules."
44860msgstr ""
44861
44862#. type: table
39764ef8 44863#: doc/guix.texi:21032
b9fe8fd6
JL
44864msgid ""
44865"This is a string giving an overview of the service type. The string can "
44866"contain Texinfo markup (@pxref{Overview,,, texinfo, GNU Texinfo}). The "
44867"@command{guix system search} command searches these strings and displays "
44868"them (@pxref{Invoking guix system})."
44869msgstr ""
44870
44871#. type: Plain text
39764ef8 44872#: doc/guix.texi:21037
b9fe8fd6
JL
44873msgid ""
44874"There can be only one instance of an extensible service type such as "
44875"@var{udev-service-type}. If there were more, the @code{service-extension} "
44876"specifications would be ambiguous."
44877msgstr ""
44878
44879#. type: Plain text
39764ef8 44880#: doc/guix.texi:21040
b9fe8fd6
JL
44881msgid ""
44882"Still here? The next section provides a reference of the programming "
44883"interface for services."
44884msgstr ""
44885
44886#. type: Plain text
39764ef8 44887#: doc/guix.texi:21048
b9fe8fd6
JL
44888msgid ""
44889"We have seen an overview of service types (@pxref{Service Types and "
44890"Services}). This section provides a reference on how to manipulate services "
44891"and service types. This interface is provided by the @code{(gnu services)} "
44892"module."
44893msgstr ""
44894
44895#. type: deffn
39764ef8 44896#: doc/guix.texi:21049
b9fe8fd6
JL
44897#, no-wrap
44898msgid "{Scheme Procedure} service @var{type} [@var{value}]"
44899msgstr ""
44900
44901#. type: deffn
39764ef8 44902#: doc/guix.texi:21053
b9fe8fd6
JL
44903msgid ""
44904"Return a new service of @var{type}, a @code{<service-type>} object (see "
44905"below.) @var{value} can be any object; it represents the parameters of this "
44906"particular service instance."
44907msgstr ""
44908
44909#. type: deffn
39764ef8 44910#: doc/guix.texi:21057
b9fe8fd6
JL
44911msgid ""
44912"When @var{value} is omitted, the default value specified by @var{type} is "
44913"used; if @var{type} does not specify a default value, an error is raised."
44914msgstr ""
44915
44916#. type: deffn
39764ef8 44917#: doc/guix.texi:21059
b9fe8fd6
JL
44918msgid "For instance, this:"
44919msgstr ""
44920
44921#. type: example
39764ef8 44922#: doc/guix.texi:21062
b9fe8fd6
JL
44923#, no-wrap
44924msgid "(service openssh-service-type)\n"
44925msgstr ""
44926
44927#. type: deffn
39764ef8 44928#: doc/guix.texi:21066
b9fe8fd6
JL
44929msgid "is equivalent to this:"
44930msgstr ""
44931
44932#. type: example
39764ef8 44933#: doc/guix.texi:21070
b9fe8fd6
JL
44934#, no-wrap
44935msgid ""
44936"(service openssh-service-type\n"
44937" (openssh-configuration))\n"
44938msgstr ""
44939
44940#. type: deffn
39764ef8 44941#: doc/guix.texi:21074
b9fe8fd6
JL
44942msgid ""
44943"In both cases the result is an instance of @code{openssh-service-type} with "
44944"the default configuration."
44945msgstr ""
44946
44947#. type: deffn
39764ef8 44948#: doc/guix.texi:21076
b9fe8fd6
JL
44949#, no-wrap
44950msgid "{Scheme Procedure} service? @var{obj}"
44951msgstr ""
44952
44953#. type: deffn
39764ef8 44954#: doc/guix.texi:21078
b9fe8fd6
JL
44955msgid "Return true if @var{obj} is a service."
44956msgstr ""
44957
44958#. type: deffn
39764ef8 44959#: doc/guix.texi:21080
b9fe8fd6
JL
44960#, no-wrap
44961msgid "{Scheme Procedure} service-kind @var{service}"
44962msgstr ""
44963
44964#. type: deffn
39764ef8
JL
44965#: doc/guix.texi:21082
44966msgid ""
44967"Return the type of @var{service}---i.e., a @code{<service-type>} object."
b9fe8fd6
JL
44968msgstr ""
44969
44970#. type: deffn
39764ef8 44971#: doc/guix.texi:21084
b9fe8fd6
JL
44972#, no-wrap
44973msgid "{Scheme Procedure} service-value @var{service}"
44974msgstr ""
44975
44976#. type: deffn
39764ef8 44977#: doc/guix.texi:21087
b9fe8fd6
JL
44978msgid ""
44979"Return the value associated with @var{service}. It represents its "
44980"parameters."
44981msgstr ""
44982
44983#. type: Plain text
39764ef8 44984#: doc/guix.texi:21090
b9fe8fd6
JL
44985msgid "Here is an example of how a service is created and manipulated:"
44986msgstr ""
44987
44988#. type: example
39764ef8 44989#: doc/guix.texi:21099
b9fe8fd6
JL
44990#, no-wrap
44991msgid ""
44992"(define s\n"
44993" (service nginx-service-type\n"
44994" (nginx-configuration\n"
44995" (nginx nginx)\n"
44996" (log-directory log-directory)\n"
44997" (run-directory run-directory)\n"
44998" (file config-file))))\n"
44999"\n"
45000msgstr ""
45001
45002#. type: example
39764ef8 45003#: doc/guix.texi:21102
b9fe8fd6
JL
45004#, no-wrap
45005msgid ""
45006"(service? s)\n"
45007"@result{} #t\n"
45008"\n"
45009msgstr ""
45010
45011#. type: example
39764ef8 45012#: doc/guix.texi:21105
b9fe8fd6
JL
45013#, no-wrap
45014msgid ""
45015"(eq? (service-kind s) nginx-service-type)\n"
45016"@result{} #t\n"
45017msgstr ""
45018
45019#. type: Plain text
39764ef8 45020#: doc/guix.texi:21115
b9fe8fd6
JL
45021msgid ""
45022"The @code{modify-services} form provides a handy way to change the "
45023"parameters of some of the services of a list such as @var{%base-services} "
45024"(@pxref{Base Services, @code{%base-services}}). It evaluates to a list of "
45025"services. Of course, you could always use standard list combinators such as "
45026"@code{map} and @code{fold} to do that (@pxref{SRFI-1, List Library,, guile, "
45027"GNU Guile Reference Manual}); @code{modify-services} simply provides a more "
45028"concise form for this common pattern."
45029msgstr ""
45030
45031#. type: deffn
39764ef8 45032#: doc/guix.texi:21116
b9fe8fd6
JL
45033#, no-wrap
45034msgid "{Scheme Syntax} modify-services @var{services} @"
45035msgstr ""
45036
45037#. type: deffn
39764ef8 45038#: doc/guix.texi:21118
b9fe8fd6
JL
45039msgid "(@var{type} @var{variable} => @var{body}) @dots{}"
45040msgstr ""
45041
45042#. type: deffn
39764ef8 45043#: doc/guix.texi:21121
b9fe8fd6
JL
45044msgid ""
45045"Modify the services listed in @var{services} according to the given "
45046"clauses. Each clause has the form:"
45047msgstr ""
45048
45049#. type: example
39764ef8 45050#: doc/guix.texi:21124
b9fe8fd6
JL
45051#, no-wrap
45052msgid "(@var{type} @var{variable} => @var{body})\n"
45053msgstr ""
45054
45055#. type: deffn
39764ef8 45056#: doc/guix.texi:21131
b9fe8fd6
JL
45057msgid ""
45058"where @var{type} is a service type---e.g., @code{guix-service-type}---and "
45059"@var{variable} is an identifier that is bound within the @var{body} to the "
45060"service parameters---e.g., a @code{guix-configuration} instance---of the "
45061"original service of that @var{type}."
45062msgstr ""
45063
45064#. type: deffn
39764ef8 45065#: doc/guix.texi:21138
b9fe8fd6
JL
45066msgid ""
45067"The @var{body} should evaluate to the new service parameters, which will be "
45068"used to configure the new service. This new service will replace the "
45069"original in the resulting list. Because a service's service parameters are "
45070"created using @code{define-record-type*}, you can write a succinct "
45071"@var{body} that evaluates to the new service parameters by using the "
45072"@code{inherit} feature that @code{define-record-type*} provides."
45073msgstr ""
45074
45075#. type: deffn
39764ef8 45076#: doc/guix.texi:21140
b9fe8fd6
JL
45077msgid "@xref{Using the Configuration System}, for example usage."
45078msgstr ""
45079
45080#. type: Plain text
39764ef8 45081#: doc/guix.texi:21147
b9fe8fd6
JL
45082msgid ""
45083"Next comes the programming interface for service types. This is something "
45084"you want to know when writing new service definitions, but not necessarily "
45085"when simply looking for ways to customize your @code{operating-system} "
45086"declaration."
45087msgstr ""
45088
45089#. type: deftp
39764ef8 45090#: doc/guix.texi:21148
b9fe8fd6
JL
45091#, no-wrap
45092msgid "{Data Type} service-type"
45093msgstr ""
45094
45095#. type: cindex
39764ef8 45096#: doc/guix.texi:21149
b9fe8fd6
JL
45097#, no-wrap
45098msgid "service type"
45099msgstr ""
45100
45101#. type: deftp
39764ef8 45102#: doc/guix.texi:21152
b9fe8fd6
JL
45103msgid ""
45104"This is the representation of a @dfn{service type} (@pxref{Service Types and "
45105"Services})."
45106msgstr ""
45107
45108#. type: table
39764ef8 45109#: doc/guix.texi:21156
b9fe8fd6
JL
45110msgid "This is a symbol, used only to simplify inspection and debugging."
45111msgstr ""
45112
45113#. type: code{#1}
39764ef8 45114#: doc/guix.texi:21157
b9fe8fd6
JL
45115#, no-wrap
45116msgid "extensions"
45117msgstr ""
45118
45119#. type: table
39764ef8 45120#: doc/guix.texi:21159
b9fe8fd6
JL
45121msgid "A non-empty list of @code{<service-extension>} objects (see below)."
45122msgstr ""
45123
45124#. type: item
39764ef8 45125#: doc/guix.texi:21160
b9fe8fd6
JL
45126#, no-wrap
45127msgid "@code{compose} (default: @code{#f})"
45128msgstr ""
45129
45130#. type: table
39764ef8 45131#: doc/guix.texi:21164
b9fe8fd6
JL
45132msgid ""
45133"If this is @code{#f}, then the service type denotes services that cannot be "
39764ef8 45134"extended---i.e., services that do not receive ``values'' from other services."
b9fe8fd6
JL
45135msgstr ""
45136
45137#. type: table
39764ef8 45138#: doc/guix.texi:21168
b9fe8fd6
JL
45139msgid ""
45140"Otherwise, it must be a one-argument procedure. The procedure is called by "
45141"@code{fold-services} and is passed a list of values collected from "
45142"extensions. It may return any single value."
45143msgstr ""
45144
45145#. type: item
39764ef8 45146#: doc/guix.texi:21169
b9fe8fd6
JL
45147#, no-wrap
45148msgid "@code{extend} (default: @code{#f})"
45149msgstr ""
45150
45151#. type: table
39764ef8 45152#: doc/guix.texi:21171
b9fe8fd6
JL
45153msgid "If this is @code{#f}, services of this type cannot be extended."
45154msgstr ""
45155
45156#. type: table
39764ef8 45157#: doc/guix.texi:21177
b9fe8fd6
JL
45158msgid ""
45159"Otherwise, it must be a two-argument procedure: @code{fold-services} calls "
45160"it, passing it the initial value of the service as the first argument and "
45161"the result of applying @code{compose} to the extension values as the second "
45162"argument. It must return a value that is a valid parameter value for the "
45163"service instance."
45164msgstr ""
45165
45166#. type: deftp
39764ef8 45167#: doc/guix.texi:21180
b9fe8fd6
JL
45168msgid "@xref{Service Types and Services}, for examples."
45169msgstr ""
45170
45171#. type: deffn
39764ef8 45172#: doc/guix.texi:21182
b9fe8fd6
JL
45173#, no-wrap
45174msgid "{Scheme Procedure} service-extension @var{target-type} @"
45175msgstr ""
45176
45177#. type: deffn
39764ef8 45178#: doc/guix.texi:21188
b9fe8fd6 45179msgid ""
39764ef8
JL
45180"@var{compute} Return a new extension for services of type @var{target-"
45181"type}. @var{compute} must be a one-argument procedure: @code{fold-services} "
45182"calls it, passing it the value associated with the service that provides the "
45183"extension; it must return a valid value for the target service."
b9fe8fd6
JL
45184msgstr ""
45185
45186#. type: deffn
39764ef8 45187#: doc/guix.texi:21190
b9fe8fd6
JL
45188#, no-wrap
45189msgid "{Scheme Procedure} service-extension? @var{obj}"
45190msgstr ""
45191
45192#. type: deffn
39764ef8 45193#: doc/guix.texi:21192
b9fe8fd6
JL
45194msgid "Return true if @var{obj} is a service extension."
45195msgstr ""
45196
45197#. type: Plain text
39764ef8 45198#: doc/guix.texi:21198
b9fe8fd6
JL
45199msgid ""
45200"Occasionally, you might want to simply extend an existing service. This "
45201"involves creating a new service type and specifying the extension of "
45202"interest, which can be verbose; the @code{simple-service} procedure provides "
45203"a shorthand for this."
45204msgstr ""
45205
45206#. type: deffn
39764ef8 45207#: doc/guix.texi:21199
b9fe8fd6
JL
45208#, no-wrap
45209msgid "{Scheme Procedure} simple-service @var{name} @var{target} @var{value}"
45210msgstr ""
45211
45212#. type: deffn
39764ef8 45213#: doc/guix.texi:21203
b9fe8fd6
JL
45214msgid ""
45215"Return a service that extends @var{target} with @var{value}. This works by "
45216"creating a singleton service type @var{name}, of which the returned service "
45217"is an instance."
45218msgstr ""
45219
45220#. type: deffn
39764ef8 45221#: doc/guix.texi:21206
b9fe8fd6
JL
45222msgid ""
45223"For example, this extends mcron (@pxref{Scheduled Job Execution}) with an "
45224"additional job:"
45225msgstr ""
45226
45227#. type: example
39764ef8 45228#: doc/guix.texi:21210
b9fe8fd6
JL
45229#, no-wrap
45230msgid ""
45231"(simple-service 'my-mcron-job mcron-service-type\n"
45232" #~(job '(next-hour (3)) \"guix gc -F 2G\"))\n"
45233msgstr ""
45234
45235#. type: Plain text
39764ef8 45236#: doc/guix.texi:21220
b9fe8fd6
JL
45237msgid ""
45238"At the core of the service abstraction lies the @code{fold-services} "
45239"procedure, which is responsible for ``compiling'' a list of services down to "
45240"a single directory that contains everything needed to boot and run the "
45241"system---the directory shown by the @command{guix system build} command "
45242"(@pxref{Invoking guix system}). In essence, it propagates service "
45243"extensions down the service graph, updating each node parameters on the way, "
45244"until it reaches the root node."
45245msgstr ""
45246
45247#. type: deffn
39764ef8 45248#: doc/guix.texi:21221
b9fe8fd6
JL
45249#, no-wrap
45250msgid "{Scheme Procedure} fold-services @var{services} @"
45251msgstr ""
45252
45253#. type: deffn
39764ef8 45254#: doc/guix.texi:21225
b9fe8fd6
JL
45255msgid ""
45256"[#:target-type @var{system-service-type}] Fold @var{services} by propagating "
45257"their extensions down to the root of type @var{target-type}; return the root "
45258"service adjusted accordingly."
45259msgstr ""
45260
45261#. type: Plain text
39764ef8 45262#: doc/guix.texi:21229
b9fe8fd6
JL
45263msgid ""
45264"Lastly, the @code{(gnu services)} module also defines several essential "
45265"service types, some of which are listed below."
45266msgstr ""
45267
45268#. type: defvr
39764ef8 45269#: doc/guix.texi:21230
b9fe8fd6
JL
45270#, no-wrap
45271msgid "{Scheme Variable} system-service-type"
45272msgstr ""
45273
45274#. type: defvr
39764ef8 45275#: doc/guix.texi:21233
b9fe8fd6
JL
45276msgid ""
45277"This is the root of the service graph. It produces the system directory as "
45278"returned by the @command{guix system build} command."
45279msgstr ""
45280
45281#. type: defvr
39764ef8 45282#: doc/guix.texi:21235
b9fe8fd6
JL
45283#, no-wrap
45284msgid "{Scheme Variable} boot-service-type"
45285msgstr ""
45286
45287#. type: defvr
39764ef8 45288#: doc/guix.texi:21238
b9fe8fd6
JL
45289msgid ""
45290"The type of the ``boot service'', which produces the @dfn{boot script}. The "
45291"boot script is what the initial RAM disk runs when booting."
45292msgstr ""
45293
45294#. type: defvr
39764ef8 45295#: doc/guix.texi:21240
b9fe8fd6
JL
45296#, no-wrap
45297msgid "{Scheme Variable} etc-service-type"
45298msgstr ""
45299
45300#. type: defvr
39764ef8 45301#: doc/guix.texi:21244
b9fe8fd6
JL
45302msgid ""
45303"The type of the @file{/etc} service. This service is used to create files "
39764ef8 45304"under @file{/etc} and can be extended by passing it name/file tuples such as:"
b9fe8fd6
JL
45305msgstr ""
45306
45307#. type: example
39764ef8 45308#: doc/guix.texi:21247
b9fe8fd6
JL
45309#, no-wrap
45310msgid "(list `(\"issue\" ,(plain-file \"issue\" \"Welcome!\\n\")))\n"
45311msgstr ""
45312
45313#. type: defvr
39764ef8 45314#: doc/guix.texi:21251
b9fe8fd6
JL
45315msgid ""
45316"In this example, the effect would be to add an @file{/etc/issue} file "
45317"pointing to the given file."
45318msgstr ""
45319
45320#. type: defvr
39764ef8 45321#: doc/guix.texi:21253
b9fe8fd6
JL
45322#, no-wrap
45323msgid "{Scheme Variable} setuid-program-service-type"
45324msgstr ""
45325
45326#. type: defvr
39764ef8 45327#: doc/guix.texi:21257
b9fe8fd6
JL
45328msgid ""
45329"Type for the ``setuid-program service''. This service collects lists of "
39764ef8
JL
45330"executable file names, passed as gexps, and adds them to the set of setuid-"
45331"root programs on the system (@pxref{Setuid Programs})."
b9fe8fd6
JL
45332msgstr ""
45333
45334#. type: defvr
39764ef8 45335#: doc/guix.texi:21259
b9fe8fd6
JL
45336#, no-wrap
45337msgid "{Scheme Variable} profile-service-type"
45338msgstr ""
45339
45340#. type: defvr
39764ef8 45341#: doc/guix.texi:21263
b9fe8fd6
JL
45342msgid ""
45343"Type of the service that populates the @dfn{system profile}---i.e., the "
45344"programs under @file{/run/current-system/profile}. Other services can "
45345"extend it by passing it lists of packages to add to the system profile."
45346msgstr ""
45347
45348#. type: cindex
39764ef8 45349#: doc/guix.texi:21269
b9fe8fd6
JL
45350#, no-wrap
45351msgid "shepherd services"
45352msgstr ""
45353
45354#. type: cindex
39764ef8 45355#: doc/guix.texi:21270
b9fe8fd6
JL
45356#, no-wrap
45357msgid "PID 1"
45358msgstr ""
45359
45360#. type: cindex
39764ef8 45361#: doc/guix.texi:21271
b9fe8fd6
JL
45362#, no-wrap
45363msgid "init system"
45364msgstr ""
45365
45366#. type: Plain text
39764ef8 45367#: doc/guix.texi:21277
b9fe8fd6
JL
45368msgid ""
45369"The @code{(gnu services shepherd)} module provides a way to define services "
45370"managed by the GNU@tie{}Shepherd, which is the GuixSD initialization "
45371"system---the first process that is started when the system boots, also known "
45372"as PID@tie{}1 (@pxref{Introduction,,, shepherd, The GNU Shepherd Manual})."
45373msgstr ""
45374
45375#. type: Plain text
39764ef8 45376#: doc/guix.texi:21283
b9fe8fd6
JL
45377msgid ""
45378"Services in the Shepherd can depend on each other. For instance, the SSH "
45379"daemon may need to be started after the syslog daemon has been started, "
45380"which in turn can only happen once all the file systems have been mounted. "
45381"The simple operating system defined earlier (@pxref{Using the Configuration "
45382"System}) results in a service graph like this:"
45383msgstr ""
45384
45385#. type: Plain text
39764ef8 45386#: doc/guix.texi:21285
b9fe8fd6
JL
45387msgid "@image{images/shepherd-graph,,5in,Typical shepherd service graph.}"
45388msgstr ""
45389
45390#. type: Plain text
39764ef8 45391#: doc/guix.texi:21289
b9fe8fd6
JL
45392msgid ""
45393"You can actually generate such a graph for any operating system definition "
39764ef8
JL
45394"using the @command{guix system shepherd-graph} command (@pxref{system-"
45395"shepherd-graph, @command{guix system shepherd-graph}})."
b9fe8fd6
JL
45396msgstr ""
45397
45398#. type: Plain text
39764ef8 45399#: doc/guix.texi:21293
b9fe8fd6 45400msgid ""
39764ef8
JL
45401"The @var{%shepherd-root-service} is a service object representing PID@tie{}"
45402"1, of type @var{shepherd-root-service-type}; it can be extended by passing "
45403"it lists of @code{<shepherd-service>} objects."
b9fe8fd6
JL
45404msgstr ""
45405
45406#. type: deftp
39764ef8 45407#: doc/guix.texi:21294
b9fe8fd6
JL
45408#, no-wrap
45409msgid "{Data Type} shepherd-service"
45410msgstr ""
45411
45412#. type: deftp
39764ef8 45413#: doc/guix.texi:21296
b9fe8fd6
JL
45414msgid "The data type representing a service managed by the Shepherd."
45415msgstr ""
45416
45417#. type: code{#1}
39764ef8 45418#: doc/guix.texi:21298
b9fe8fd6
JL
45419#, no-wrap
45420msgid "provision"
45421msgstr ""
45422
45423#. type: table
39764ef8 45424#: doc/guix.texi:21300
b9fe8fd6
JL
45425msgid "This is a list of symbols denoting what the service provides."
45426msgstr ""
45427
45428#. type: table
39764ef8 45429#: doc/guix.texi:21305
b9fe8fd6
JL
45430msgid ""
45431"These are the names that may be passed to @command{herd start}, "
45432"@command{herd status}, and similar commands (@pxref{Invoking herd,,, "
45433"shepherd, The GNU Shepherd Manual}). @xref{Slots of services, the "
45434"@code{provides} slot,, shepherd, The GNU Shepherd Manual}, for details."
45435msgstr ""
45436
45437#. type: item
39764ef8 45438#: doc/guix.texi:21306
b9fe8fd6
JL
45439#, no-wrap
45440msgid "@code{requirements} (default: @code{'()})"
45441msgstr ""
45442
45443#. type: table
39764ef8 45444#: doc/guix.texi:21308
b9fe8fd6
JL
45445msgid "List of symbols denoting the Shepherd services this one depends on."
45446msgstr ""
45447
45448#. type: item
39764ef8 45449#: doc/guix.texi:21309
b9fe8fd6
JL
45450#, no-wrap
45451msgid "@code{respawn?} (default: @code{#t})"
45452msgstr ""
45453
45454#. type: table
39764ef8 45455#: doc/guix.texi:21312
b9fe8fd6
JL
45456msgid ""
45457"Whether to restart the service when it stops, for instance when the "
45458"underlying process dies."
45459msgstr ""
45460
45461#. type: code{#1}
39764ef8 45462#: doc/guix.texi:21313
b9fe8fd6
JL
45463#, no-wrap
45464msgid "start"
45465msgstr ""
45466
45467#. type: itemx
39764ef8 45468#: doc/guix.texi:21314
b9fe8fd6
JL
45469#, no-wrap
45470msgid "@code{stop} (default: @code{#~(const #f)})"
45471msgstr ""
45472
45473#. type: table
39764ef8 45474#: doc/guix.texi:21320
b9fe8fd6
JL
45475msgid ""
45476"The @code{start} and @code{stop} fields refer to the Shepherd's facilities "
45477"to start and stop processes (@pxref{Service De- and Constructors,,, "
45478"shepherd, The GNU Shepherd Manual}). They are given as G-expressions that "
45479"get expanded in the Shepherd configuration file (@pxref{G-Expressions})."
45480msgstr ""
45481
45482#. type: table
39764ef8 45483#: doc/guix.texi:21323
b9fe8fd6
JL
45484msgid "A documentation string, as shown when running:"
45485msgstr ""
45486
45487#. type: example
39764ef8 45488#: doc/guix.texi:21326
b9fe8fd6
JL
45489#, no-wrap
45490msgid "herd doc @var{service-name}\n"
45491msgstr ""
45492
45493#. type: table
39764ef8 45494#: doc/guix.texi:21330
b9fe8fd6
JL
45495msgid ""
45496"where @var{service-name} is one of the symbols in @var{provision} "
45497"(@pxref{Invoking herd,,, shepherd, The GNU Shepherd Manual})."
45498msgstr ""
45499
45500#. type: item
39764ef8 45501#: doc/guix.texi:21331
b9fe8fd6
JL
45502#, no-wrap
45503msgid "@code{modules} (default: @var{%default-modules})"
45504msgstr ""
45505
45506#. type: table
39764ef8 45507#: doc/guix.texi:21334
b9fe8fd6
JL
45508msgid ""
45509"This is the list of modules that must be in scope when @code{start} and "
45510"@code{stop} are evaluated."
45511msgstr ""
45512
45513#. type: defvr
39764ef8 45514#: doc/guix.texi:21338
b9fe8fd6
JL
45515#, no-wrap
45516msgid "{Scheme Variable} shepherd-root-service-type"
45517msgstr ""
45518
45519#. type: defvr
39764ef8 45520#: doc/guix.texi:21340
b9fe8fd6
JL
45521msgid "The service type for the Shepherd ``root service''---i.e., PID@tie{}1."
45522msgstr ""
45523
45524#. type: defvr
39764ef8 45525#: doc/guix.texi:21344
b9fe8fd6
JL
45526msgid ""
45527"This is the service type that extensions target when they want to create "
45528"shepherd services (@pxref{Service Types and Services}, for an example). "
45529"Each extension must pass a list of @code{<shepherd-service>}."
45530msgstr ""
45531
45532#. type: defvr
39764ef8 45533#: doc/guix.texi:21346
b9fe8fd6
JL
45534#, no-wrap
45535msgid "{Scheme Variable} %shepherd-root-service"
45536msgstr ""
45537
45538#. type: defvr
39764ef8 45539#: doc/guix.texi:21348
b9fe8fd6
JL
45540msgid "This service represents PID@tie{}1."
45541msgstr ""
45542
45543#. type: cindex
39764ef8 45544#: doc/guix.texi:21354
b9fe8fd6
JL
45545#, no-wrap
45546msgid "documentation, searching for"
45547msgstr ""
45548
45549#. type: cindex
39764ef8 45550#: doc/guix.texi:21355
b9fe8fd6
JL
45551#, no-wrap
45552msgid "searching for documentation"
45553msgstr ""
45554
45555#. type: cindex
39764ef8 45556#: doc/guix.texi:21356
b9fe8fd6
JL
45557#, no-wrap
45558msgid "Info, documentation format"
45559msgstr ""
45560
45561#. type: cindex
39764ef8 45562#: doc/guix.texi:21357
b9fe8fd6
JL
45563#, no-wrap
45564msgid "man pages"
45565msgstr ""
45566
45567#. type: cindex
39764ef8 45568#: doc/guix.texi:21358
b9fe8fd6
JL
45569#, no-wrap
45570msgid "manual pages"
45571msgstr ""
45572
45573#. type: Plain text
39764ef8 45574#: doc/guix.texi:21365
b9fe8fd6
JL
45575msgid ""
45576"In most cases packages installed with Guix come with documentation. There "
45577"are two main documentation formats: ``Info'', a browseable hypertext format "
45578"used for GNU software, and ``manual pages'' (or ``man pages''), the linear "
45579"documentation format traditionally found on Unix. Info manuals are accessed "
45580"with the @command{info} command or with Emacs, and man pages are accessed "
45581"using @command{man}."
45582msgstr ""
45583
45584#. type: Plain text
39764ef8 45585#: doc/guix.texi:21369
b9fe8fd6
JL
45586msgid ""
45587"You can look for documentation of software installed on your system by "
45588"keyword. For example, the following command searches for information about "
45589"``TLS'' in Info manuals:"
45590msgstr ""
45591
45592#. type: example
39764ef8 45593#: doc/guix.texi:21377
b9fe8fd6
JL
45594#, no-wrap
45595msgid ""
45596"$ info -k TLS\n"
45597"\"(emacs)Network Security\" -- STARTTLS\n"
45598"\"(emacs)Network Security\" -- TLS\n"
45599"\"(gnutls)Core TLS API\" -- gnutls_certificate_set_verify_flags\n"
45600"\"(gnutls)Core TLS API\" -- gnutls_certificate_set_verify_function\n"
45601"@dots{}\n"
45602msgstr ""
45603
45604#. type: Plain text
39764ef8 45605#: doc/guix.texi:21381
b9fe8fd6
JL
45606msgid "The command below searches for the same keyword in man pages:"
45607msgstr ""
45608
45609#. type: example
39764ef8 45610#: doc/guix.texi:21387
b9fe8fd6
JL
45611#, no-wrap
45612msgid ""
45613"$ man -k TLS\n"
45614"SSL (7) - OpenSSL SSL/TLS library\n"
45615"certtool (1) - GnuTLS certificate tool\n"
45616"@dots {}\n"
45617msgstr ""
45618
45619#. type: Plain text
39764ef8 45620#: doc/guix.texi:21393
b9fe8fd6
JL
45621msgid ""
45622"These searches are purely local to your computer so you have the guarantee "
45623"that documentation you find corresponds to what you have actually installed, "
45624"you can access it off-line, and your privacy is respected."
45625msgstr ""
45626
45627#. type: Plain text
39764ef8 45628#: doc/guix.texi:21396
b9fe8fd6
JL
45629msgid ""
45630"Once you have these results, you can view the relevant documentation by "
45631"running, say:"
45632msgstr ""
45633
45634#. type: example
39764ef8 45635#: doc/guix.texi:21399
b9fe8fd6
JL
45636#, no-wrap
45637msgid "$ info \"(gnutls)Core TLS API\"\n"
45638msgstr ""
45639
45640#. type: Plain text
39764ef8 45641#: doc/guix.texi:21403
b9fe8fd6
JL
45642msgid "or:"
45643msgstr ""
45644
45645#. type: example
39764ef8 45646#: doc/guix.texi:21406
b9fe8fd6
JL
45647#, no-wrap
45648msgid "$ man certtool\n"
45649msgstr ""
45650
45651#. type: Plain text
39764ef8 45652#: doc/guix.texi:21414
b9fe8fd6
JL
45653msgid ""
45654"Info manuals contain sections and indices as well as hyperlinks like those "
45655"found in Web pages. The @command{info} reader (@pxref{Top, Info reader,, "
45656"info-stnd, Stand-alone GNU Info}) and its Emacs counterpart (@pxref{Misc "
45657"Help,,, emacs, The GNU Emacs Manual}) provide intuitive key bindings to "
45658"navigate manuals. @xref{Getting Started,,, info, Info: An Introduction}, "
45659"for an introduction to Info navigation."
45660msgstr ""
45661
45662#. type: cindex
39764ef8 45663#: doc/guix.texi:21418
b9fe8fd6
JL
45664#, no-wrap
45665msgid "debugging files"
45666msgstr ""
45667
45668#. type: Plain text
39764ef8 45669#: doc/guix.texi:21424
b9fe8fd6
JL
45670msgid ""
45671"Program binaries, as produced by the GCC compilers for instance, are "
45672"typically written in the ELF format, with a section containing "
45673"@dfn{debugging information}. Debugging information is what allows the "
45674"debugger, GDB, to map binary code to source code; it is required to debug a "
45675"compiled program in good conditions."
45676msgstr ""
45677
45678#. type: Plain text
39764ef8 45679#: doc/guix.texi:21432
b9fe8fd6
JL
45680msgid ""
45681"The problem with debugging information is that is takes up a fair amount of "
45682"disk space. For example, debugging information for the GNU C Library weighs "
45683"in at more than 60 MiB. Thus, as a user, keeping all the debugging info of "
45684"all the installed programs is usually not an option. Yet, space savings "
45685"should not come at the cost of an impediment to debugging---especially in "
45686"the GNU system, which should make it easier for users to exert their "
45687"computing freedom (@pxref{GNU Distribution})."
45688msgstr ""
45689
45690#. type: Plain text
39764ef8 45691#: doc/guix.texi:21439
b9fe8fd6
JL
45692msgid ""
45693"Thankfully, the GNU Binary Utilities (Binutils) and GDB provide a mechanism "
45694"that allows users to get the best of both worlds: debugging information can "
45695"be stripped from the binaries and stored in separate files. GDB is then "
45696"able to load debugging information from those files, when they are available "
45697"(@pxref{Separate Debug Files,,, gdb, Debugging with GDB})."
45698msgstr ""
45699
45700#. type: Plain text
39764ef8 45701#: doc/guix.texi:21447
b9fe8fd6
JL
45702msgid ""
45703"The GNU distribution takes advantage of this by storing debugging "
45704"information in the @code{lib/debug} sub-directory of a separate package "
45705"output unimaginatively called @code{debug} (@pxref{Packages with Multiple "
45706"Outputs}). Users can choose to install the @code{debug} output of a package "
45707"when they need it. For instance, the following command installs the "
45708"debugging information for the GNU C Library and for GNU Guile:"
45709msgstr ""
45710
45711#. type: example
39764ef8 45712#: doc/guix.texi:21450
b9fe8fd6
JL
45713#, no-wrap
45714msgid "guix package -i glibc:debug guile:debug\n"
45715msgstr ""
45716
45717#. type: Plain text
39764ef8 45718#: doc/guix.texi:21456
b9fe8fd6
JL
45719msgid ""
45720"GDB must then be told to look for debug files in the user's profile, by "
45721"setting the @code{debug-file-directory} variable (consider setting it from "
45722"the @file{~/.gdbinit} file, @pxref{Startup,,, gdb, Debugging with GDB}):"
45723msgstr ""
45724
45725#. type: example
39764ef8 45726#: doc/guix.texi:21459
b9fe8fd6
JL
45727#, no-wrap
45728msgid "(gdb) set debug-file-directory ~/.guix-profile/lib/debug\n"
45729msgstr ""
45730
45731#. type: Plain text
39764ef8 45732#: doc/guix.texi:21463
b9fe8fd6
JL
45733msgid ""
45734"From there on, GDB will pick up debugging information from the @code{.debug} "
45735"files under @file{~/.guix-profile/lib/debug}."
45736msgstr ""
45737
45738#. type: Plain text
39764ef8 45739#: doc/guix.texi:21470
b9fe8fd6
JL
45740msgid ""
45741"In addition, you will most likely want GDB to be able to show the source "
45742"code being debugged. To do that, you will have to unpack the source code of "
45743"the package of interest (obtained with @code{guix build --source}, "
45744"@pxref{Invoking guix build}), and to point GDB to that source directory "
45745"using the @code{directory} command (@pxref{Source Path, @code{directory},, "
45746"gdb, Debugging with GDB})."
45747msgstr ""
45748
45749#. type: Plain text
39764ef8 45750#: doc/guix.texi:21479
b9fe8fd6 45751msgid ""
39764ef8
JL
45752"The @code{debug} output mechanism in Guix is implemented by the @code{gnu-"
45753"build-system} (@pxref{Build Systems}). Currently, it is opt-in---debugging "
45754"information is available only for the packages with definitions explicitly "
45755"declaring a @code{debug} output. This may be changed to opt-out in the "
45756"future if our build farm servers can handle the load. To check whether a "
45757"package has a @code{debug} output, use @command{guix package --list-"
45758"available} (@pxref{Invoking guix package})."
b9fe8fd6
JL
45759msgstr ""
45760
45761#. type: cindex
39764ef8 45762#: doc/guix.texi:21484
b9fe8fd6
JL
45763#, no-wrap
45764msgid "security updates"
45765msgstr ""
45766
45767#. type: Plain text
39764ef8 45768#: doc/guix.texi:21493
b9fe8fd6
JL
45769msgid ""
45770"Occasionally, important security vulnerabilities are discovered in software "
45771"packages and must be patched. Guix developers try hard to keep track of "
45772"known vulnerabilities and to apply fixes as soon as possible in the "
45773"@code{master} branch of Guix (we do not yet provide a ``stable'' branch "
45774"containing only security updates.) The @command{guix lint} tool helps "
45775"developers find out about vulnerable versions of software packages in the "
45776"distribution:"
45777msgstr ""
45778
45779#. type: smallexample
39764ef8 45780#: doc/guix.texi:21500
b9fe8fd6
JL
45781#, no-wrap
45782msgid ""
45783"$ guix lint -c cve\n"
39764ef8
JL
45784"gnu/packages/base.scm:652:2: glibc@@2.21: probably vulnerable to CVE-2015-1781, CVE-2015-7547\n"
45785"gnu/packages/gcc.scm:334:2: gcc@@4.9.3: probably vulnerable to CVE-2015-5276\n"
45786"gnu/packages/image.scm:312:2: openjpeg@@2.1.0: probably vulnerable to CVE-2016-1923, CVE-2016-1924\n"
b9fe8fd6
JL
45787"@dots{}\n"
45788msgstr ""
45789
45790#. type: Plain text
39764ef8 45791#: doc/guix.texi:21503
b9fe8fd6
JL
45792msgid "@xref{Invoking guix lint}, for more information."
45793msgstr ""
45794
45795#. type: quotation
39764ef8 45796#: doc/guix.texi:21507
b9fe8fd6
JL
45797msgid ""
45798"As of version @value{VERSION}, the feature described below is considered "
45799"``beta''."
45800msgstr ""
45801
45802#. type: Plain text
39764ef8 45803#: doc/guix.texi:21517
b9fe8fd6
JL
45804msgid ""
45805"Guix follows a functional package management discipline "
45806"(@pxref{Introduction}), which implies that, when a package is changed, "
45807"@emph{every package that depends on it} must be rebuilt. This can "
45808"significantly slow down the deployment of fixes in core packages such as "
45809"libc or Bash, since basically the whole distribution would need to be "
45810"rebuilt. Using pre-built binaries helps (@pxref{Substitutes}), but "
45811"deployment may still take more time than desired."
45812msgstr ""
45813
45814#. type: cindex
39764ef8 45815#: doc/guix.texi:21518
b9fe8fd6
JL
45816#, no-wrap
45817msgid "grafts"
45818msgstr ""
45819
45820#. type: Plain text
39764ef8 45821#: doc/guix.texi:21526
b9fe8fd6
JL
45822msgid ""
45823"To address this, Guix implements @dfn{grafts}, a mechanism that allows for "
45824"fast deployment of critical updates without the costs associated with a "
45825"whole-distribution rebuild. The idea is to rebuild only the package that "
45826"needs to be patched, and then to ``graft'' it onto packages explicitly "
45827"installed by the user and that were previously referring to the original "
45828"package. The cost of grafting is typically very low, and order of "
45829"magnitudes lower than a full rebuild of the dependency chain."
45830msgstr ""
45831
45832#. type: cindex
39764ef8 45833#: doc/guix.texi:21527
b9fe8fd6
JL
45834#, no-wrap
45835msgid "replacements of packages, for grafts"
45836msgstr ""
45837
45838#. type: Plain text
39764ef8 45839#: doc/guix.texi:21533
b9fe8fd6
JL
45840msgid ""
45841"For instance, suppose a security update needs to be applied to Bash. Guix "
45842"developers will provide a package definition for the ``fixed'' Bash, say "
45843"@var{bash-fixed}, in the usual way (@pxref{Defining Packages}). Then, the "
45844"original package definition is augmented with a @code{replacement} field "
45845"pointing to the package containing the bug fix:"
45846msgstr ""
45847
45848#. type: example
39764ef8 45849#: doc/guix.texi:21540
b9fe8fd6
JL
45850#, no-wrap
45851msgid ""
45852"(define bash\n"
45853" (package\n"
45854" (name \"bash\")\n"
45855" ;; @dots{}\n"
45856" (replacement bash-fixed)))\n"
45857msgstr ""
45858
45859#. type: Plain text
39764ef8 45860#: doc/guix.texi:21550
b9fe8fd6
JL
45861msgid ""
45862"From there on, any package depending directly or indirectly on Bash---as "
45863"reported by @command{guix gc --requisites} (@pxref{Invoking guix gc})---that "
45864"is installed is automatically ``rewritten'' to refer to @var{bash-fixed} "
45865"instead of @var{bash}. This grafting process takes time proportional to the "
45866"size of the package, usually less than a minute for an ``average'' package "
45867"on a recent machine. Grafting is recursive: when an indirect dependency "
45868"requires grafting, then grafting ``propagates'' up to the package that the "
45869"user is installing."
45870msgstr ""
45871
45872#. type: Plain text
39764ef8 45873#: doc/guix.texi:21558
b9fe8fd6
JL
45874msgid ""
45875"Currently, the length of the name and version of the graft and that of the "
45876"package it replaces (@var{bash-fixed} and @var{bash} in the example above) "
45877"must be equal. This restriction mostly comes from the fact that grafting "
45878"works by patching files, including binary files, directly. Other "
45879"restrictions may apply: for instance, when adding a graft to a package "
45880"providing a shared library, the original shared library and its replacement "
45881"must have the same @code{SONAME} and be binary-compatible."
45882msgstr ""
45883
45884#. type: Plain text
39764ef8 45885#: doc/guix.texi:21562
b9fe8fd6
JL
45886msgid ""
45887"The @option{--no-grafts} command-line option allows you to forcefully avoid "
45888"grafting (@pxref{Common Build Options, @option{--no-grafts}}). Thus, the "
45889"command:"
45890msgstr ""
45891
45892#. type: example
39764ef8 45893#: doc/guix.texi:21565
b9fe8fd6
JL
45894#, no-wrap
45895msgid "guix build bash --no-grafts\n"
45896msgstr ""
45897
45898#. type: Plain text
39764ef8 45899#: doc/guix.texi:21569
b9fe8fd6
JL
45900msgid "returns the store file name of the original Bash, whereas:"
45901msgstr ""
45902
45903#. type: example
39764ef8 45904#: doc/guix.texi:21572
b9fe8fd6
JL
45905#, no-wrap
45906msgid "guix build bash\n"
45907msgstr ""
45908
45909#. type: Plain text
39764ef8 45910#: doc/guix.texi:21577
b9fe8fd6
JL
45911msgid ""
45912"returns the store file name of the ``fixed'', replacement Bash. This allows "
45913"you to distinguish between the two variants of Bash."
45914msgstr ""
45915
45916#. type: Plain text
39764ef8 45917#: doc/guix.texi:21580
b9fe8fd6
JL
45918msgid ""
45919"To verify which Bash your whole profile refers to, you can run "
45920"(@pxref{Invoking guix gc}):"
45921msgstr ""
45922
45923#. type: example
39764ef8 45924#: doc/guix.texi:21583
b9fe8fd6
JL
45925#, no-wrap
45926msgid "guix gc -R `readlink -f ~/.guix-profile` | grep bash\n"
45927msgstr ""
45928
45929#. type: Plain text
39764ef8 45930#: doc/guix.texi:21588
b9fe8fd6
JL
45931msgid ""
45932"@dots{} and compare the store file names that you get with those above. "
45933"Likewise for a complete GuixSD system generation:"
45934msgstr ""
45935
45936#. type: example
39764ef8 45937#: doc/guix.texi:21591
b9fe8fd6
JL
45938#, no-wrap
45939msgid "guix gc -R `guix system build my-config.scm` | grep bash\n"
45940msgstr ""
45941
45942#. type: Plain text
39764ef8 45943#: doc/guix.texi:21595
b9fe8fd6
JL
45944msgid ""
45945"Lastly, to check which Bash running processes are using, you can use the "
45946"@command{lsof} command:"
45947msgstr ""
45948
45949#. type: example
39764ef8 45950#: doc/guix.texi:21598
b9fe8fd6
JL
45951#, no-wrap
45952msgid "lsof | grep /gnu/store/.*bash\n"
45953msgstr ""
45954
45955#. type: Plain text
39764ef8 45956#: doc/guix.texi:21615
b9fe8fd6
JL
45957msgid ""
45958"From a programming viewpoint, the package definitions of the GNU "
45959"distribution are provided by Guile modules in the @code{(gnu packages "
45960"@dots{})} name space@footnote{Note that packages under the @code{(gnu "
45961"packages @dots{})} module name space are not necessarily ``GNU packages''. "
45962"This module naming scheme follows the usual Guile module naming convention: "
45963"@code{gnu} means that these modules are distributed as part of the GNU "
45964"system, and @code{packages} identifies modules that define packages.} "
45965"(@pxref{Modules, Guile modules,, guile, GNU Guile Reference Manual}). For "
45966"instance, the @code{(gnu packages emacs)} module exports a variable named "
45967"@code{emacs}, which is bound to a @code{<package>} object (@pxref{Defining "
45968"Packages})."
45969msgstr ""
45970
45971#. type: Plain text
39764ef8 45972#: doc/guix.texi:21622
b9fe8fd6
JL
45973msgid ""
45974"The @code{(gnu packages @dots{})} module name space is automatically scanned "
45975"for packages by the command-line tools. For instance, when running "
45976"@code{guix package -i emacs}, all the @code{(gnu packages @dots{})} modules "
45977"are scanned until one that exports a package object whose name is "
45978"@code{emacs} is found. This package search facility is implemented in the "
45979"@code{(gnu packages)} module."
45980msgstr ""
45981
45982#. type: cindex
39764ef8 45983#: doc/guix.texi:21624
b9fe8fd6
JL
45984#, no-wrap
45985msgid "package module search path"
45986msgstr ""
45987
45988#. type: Plain text
39764ef8 45989#: doc/guix.texi:21641
b9fe8fd6
JL
45990msgid ""
45991"Users can store package definitions in modules with different names---e.g., "
45992"@code{(my-packages emacs)}@footnote{Note that the file name and module name "
45993"must match. For instance, the @code{(my-packages emacs)} module must be "
45994"stored in a @file{my-packages/emacs.scm} file relative to the load path "
45995"specified with @option{--load-path} or @code{GUIX_PACKAGE_PATH}. "
45996"@xref{Modules and the File System,,, guile, GNU Guile Reference Manual}, for "
45997"details.}. These package definitions will not be visible by default. Users "
45998"can invoke commands such as @command{guix package} and @command{guix build} "
45999"with the @code{-e} option so that they know where to find the package. "
46000"Better yet, they can use the @code{-L} option of these commands to make "
46001"those modules visible (@pxref{Invoking guix build, @code{--load-path}}), or "
46002"define the @code{GUIX_PACKAGE_PATH} environment variable. This environment "
46003"variable makes it easy to extend or customize the distribution and is "
46004"honored by all the user interfaces."
46005msgstr ""
46006
46007#. type: defvr
39764ef8 46008#: doc/guix.texi:21642
b9fe8fd6
JL
46009#, no-wrap
46010msgid "{Environment Variable} GUIX_PACKAGE_PATH"
46011msgstr ""
46012
46013#. type: defvr
39764ef8 46014#: doc/guix.texi:21646
b9fe8fd6
JL
46015msgid ""
46016"This is a colon-separated list of directories to search for additional "
46017"package modules. Directories listed in this variable take precedence over "
46018"the own modules of the distribution."
46019msgstr ""
46020
46021#. type: Plain text
39764ef8 46022#: doc/guix.texi:21654
b9fe8fd6
JL
46023msgid ""
46024"The distribution is fully @dfn{bootstrapped} and @dfn{self-contained}: each "
46025"package is built based solely on other packages in the distribution. The "
46026"root of this dependency graph is a small set of @dfn{bootstrap binaries}, "
46027"provided by the @code{(gnu packages bootstrap)} module. For more "
46028"information on bootstrapping, @pxref{Bootstrapping}."
46029msgstr ""
46030
46031#. type: cindex
39764ef8 46032#: doc/guix.texi:21658
b9fe8fd6
JL
46033#, no-wrap
46034msgid "packages, creating"
46035msgstr ""
46036
46037#. type: Plain text
39764ef8 46038#: doc/guix.texi:21663
b9fe8fd6
JL
46039msgid ""
46040"The GNU distribution is nascent and may well lack some of your favorite "
46041"packages. This section describes how you can help make the distribution "
46042"grow. @xref{Contributing}, for additional information on how you can help."
46043msgstr ""
46044
46045#. type: Plain text
39764ef8 46046#: doc/guix.texi:21671
b9fe8fd6
JL
46047msgid ""
46048"Free software packages are usually distributed in the form of @dfn{source "
46049"code tarballs}---typically @file{tar.gz} files that contain all the source "
46050"files. Adding a package to the distribution means essentially two things: "
46051"adding a @dfn{recipe} that describes how to build the package, including a "
46052"list of other packages required to build it, and adding @dfn{package "
46053"metadata} along with that recipe, such as a description and licensing "
46054"information."
46055msgstr ""
46056
46057#. type: Plain text
39764ef8 46058#: doc/guix.texi:21680
b9fe8fd6
JL
46059msgid ""
46060"In Guix all this information is embodied in @dfn{package definitions}. "
46061"Package definitions provide a high-level view of the package. They are "
46062"written using the syntax of the Scheme programming language; in fact, for "
46063"each package we define a variable bound to the package definition, and "
39764ef8
JL
46064"export that variable from a module (@pxref{Package Modules}). However, in-"
46065"depth Scheme knowledge is @emph{not} a prerequisite for creating packages. "
46066"For more information on package definitions, @pxref{Defining Packages}."
b9fe8fd6
JL
46067msgstr ""
46068
46069#. type: Plain text
39764ef8 46070#: doc/guix.texi:21686
b9fe8fd6
JL
46071msgid ""
46072"Once a package definition is in place, stored in a file in the Guix source "
46073"tree, it can be tested using the @command{guix build} command "
46074"(@pxref{Invoking guix build}). For example, assuming the new package is "
46075"called @code{gnew}, you may run this command from the Guix build tree "
46076"(@pxref{Running Guix Before It Is Installed}):"
46077msgstr ""
46078
46079#. type: example
39764ef8 46080#: doc/guix.texi:21689
b9fe8fd6
JL
46081#, no-wrap
46082msgid "./pre-inst-env guix build gnew --keep-failed\n"
46083msgstr ""
46084
46085#. type: Plain text
39764ef8 46086#: doc/guix.texi:21695
b9fe8fd6
JL
46087msgid ""
46088"Using @code{--keep-failed} makes it easier to debug build failures since it "
46089"provides access to the failed build tree. Another useful command-line "
46090"option when debugging is @code{--log-file}, to access the build log."
46091msgstr ""
46092
46093#. type: Plain text
39764ef8 46094#: doc/guix.texi:21700
b9fe8fd6
JL
46095msgid ""
46096"If the package is unknown to the @command{guix} command, it may be that the "
46097"source file contains a syntax error, or lacks a @code{define-public} clause "
46098"to export the package variable. To figure it out, you may load the module "
46099"from Guile to get more information about the actual error:"
46100msgstr ""
46101
46102#. type: example
39764ef8 46103#: doc/guix.texi:21703
b9fe8fd6
JL
46104#, no-wrap
46105msgid "./pre-inst-env guile -c '(use-modules (gnu packages gnew))'\n"
46106msgstr ""
46107
46108#. type: Plain text
39764ef8 46109#: doc/guix.texi:21711
b9fe8fd6
JL
46110msgid ""
46111"Once your package builds correctly, please send us a patch "
46112"(@pxref{Contributing}). Well, if you need help, we will be happy to help "
46113"you too. Once the patch is committed in the Guix repository, the new "
39764ef8
JL
46114"package automatically gets built on the supported platforms by @url{http://"
46115"hydra.gnu.org/jobset/gnu/master, our continuous integration system}."
b9fe8fd6
JL
46116msgstr ""
46117
46118#. type: cindex
39764ef8 46119#: doc/guix.texi:21712
b9fe8fd6
JL
46120#, no-wrap
46121msgid "substituter"
46122msgstr ""
46123
46124#. type: Plain text
39764ef8 46125#: doc/guix.texi:21719
b9fe8fd6
JL
46126msgid ""
46127"Users can obtain the new package definition simply by running @command{guix "
46128"pull} (@pxref{Invoking guix pull}). When @code{hydra.gnu.org} is done "
46129"building the package, installing the package automatically downloads "
46130"binaries from there (@pxref{Substitutes}). The only place where human "
46131"intervention is needed is to review and apply the patch."
46132msgstr ""
46133
46134#. type: cindex
39764ef8 46135#: doc/guix.texi:21736
b9fe8fd6
JL
46136#, no-wrap
46137msgid "free software"
46138msgstr ""
46139
46140#. type: Plain text
39764ef8 46141#: doc/guix.texi:21744
b9fe8fd6
JL
46142msgid ""
46143"The GNU operating system has been developed so that users can have freedom "
46144"in their computing. GNU is @dfn{free software}, meaning that users have the "
46145"@url{http://www.gnu.org/philosophy/free-sw.html,four essential freedoms}: to "
46146"run the program, to study and change the program in source code form, to "
46147"redistribute exact copies, and to distribute modified versions. Packages "
46148"found in the GNU distribution provide only software that conveys these four "
46149"freedoms."
46150msgstr ""
46151
46152#. type: Plain text
39764ef8 46153#: doc/guix.texi:21750
b9fe8fd6 46154msgid ""
39764ef8
JL
46155"In addition, the GNU distribution follow the @url{http://www.gnu.org/distros/"
46156"free-system-distribution-guidelines.html,free software distribution "
46157"guidelines}. Among other things, these guidelines reject non-free firmware, "
46158"recommendations of non-free software, and discuss ways to deal with "
46159"trademarks and patents."
b9fe8fd6
JL
46160msgstr ""
46161
46162#. type: Plain text
39764ef8 46163#: doc/guix.texi:21758
b9fe8fd6
JL
46164msgid ""
46165"Some otherwise free upstream package sources contain a small and optional "
46166"subset that violates the above guidelines, for instance because this subset "
46167"is itself non-free code. When that happens, the offending items are removed "
46168"with appropriate patches or code snippets in the @code{origin} form of the "
46169"package (@pxref{Defining Packages}). This way, @code{guix build --source} "
46170"returns the ``freed'' source rather than the unmodified upstream source."
46171msgstr ""
46172
46173#. type: cindex
39764ef8 46174#: doc/guix.texi:21763
b9fe8fd6
JL
46175#, no-wrap
46176msgid "package name"
46177msgstr ""
46178
46179#. type: Plain text
39764ef8 46180#: doc/guix.texi:21771
b9fe8fd6
JL
46181msgid ""
46182"A package has actually two names associated with it: First, there is the "
46183"name of the @emph{Scheme variable}, the one following @code{define-public}. "
46184"By this name, the package can be made known in the Scheme code, for instance "
46185"as input to another package. Second, there is the string in the @code{name} "
46186"field of a package definition. This name is used by package management "
46187"commands such as @command{guix package} and @command{guix build}."
46188msgstr ""
46189
46190#. type: Plain text
39764ef8 46191#: doc/guix.texi:21776
b9fe8fd6
JL
46192msgid ""
46193"Both are usually the same and correspond to the lowercase conversion of the "
46194"project name chosen upstream, with underscores replaced with hyphens. For "
39764ef8
JL
46195"instance, GNUnet is available as @code{gnunet}, and SDL_net as @code{sdl-"
46196"net}."
b9fe8fd6
JL
46197msgstr ""
46198
46199#. type: Plain text
39764ef8 46200#: doc/guix.texi:21781
b9fe8fd6
JL
46201msgid ""
46202"We do not add @code{lib} prefixes for library packages, unless these are "
46203"already part of the official project name. But @pxref{Python Modules} and "
46204"@ref{Perl Modules} for special rules concerning modules for the Python and "
46205"Perl languages."
46206msgstr ""
46207
46208#. type: Plain text
39764ef8 46209#: doc/guix.texi:21783
b9fe8fd6
JL
46210msgid "Font package names are handled differently, @pxref{Fonts}."
46211msgstr ""
46212
46213#. type: cindex
39764ef8 46214#: doc/guix.texi:21788
b9fe8fd6
JL
46215#, no-wrap
46216msgid "package version"
46217msgstr ""
46218
46219#. type: Plain text
39764ef8 46220#: doc/guix.texi:21797
b9fe8fd6
JL
46221msgid ""
46222"We usually package only the latest version of a given free software "
46223"project. But sometimes, for instance for incompatible library versions, two "
46224"(or more) versions of the same package are needed. These require different "
46225"Scheme variable names. We use the name as defined in @ref{Package Naming} "
46226"for the most recent version; previous versions use the same name, suffixed "
46227"by @code{-} and the smallest prefix of the version number that may "
46228"distinguish the two versions."
46229msgstr ""
46230
46231#. type: Plain text
39764ef8 46232#: doc/guix.texi:21800
b9fe8fd6
JL
46233msgid ""
46234"The name inside the package definition is the same for all versions of a "
46235"package and does not contain any version number."
46236msgstr ""
46237
46238#. type: Plain text
39764ef8 46239#: doc/guix.texi:21802
b9fe8fd6
JL
46240msgid ""
46241"For instance, the versions 2.24.20 and 3.9.12 of GTK+ may be packaged as "
46242"follows:"
46243msgstr ""
46244
46245#. type: example
39764ef8 46246#: doc/guix.texi:21814
b9fe8fd6
JL
46247#, no-wrap
46248msgid ""
46249"(define-public gtk+\n"
46250" (package\n"
46251" (name \"gtk+\")\n"
46252" (version \"3.9.12\")\n"
46253" ...))\n"
46254"(define-public gtk+-2\n"
46255" (package\n"
46256" (name \"gtk+\")\n"
46257" (version \"2.24.20\")\n"
46258" ...))\n"
46259msgstr ""
46260
46261#. type: Plain text
39764ef8 46262#: doc/guix.texi:21816
b9fe8fd6
JL
46263msgid "If we also wanted GTK+ 3.8.2, this would be packaged as"
46264msgstr ""
46265
46266#. type: example
39764ef8 46267#: doc/guix.texi:21822
b9fe8fd6
JL
46268#, no-wrap
46269msgid ""
46270"(define-public gtk+-3.8\n"
46271" (package\n"
46272" (name \"gtk+\")\n"
46273" (version \"3.8.2\")\n"
46274" ...))\n"
46275msgstr ""
46276
46277#. type: cindex
39764ef8 46278#: doc/guix.texi:21826
b9fe8fd6
JL
46279#, no-wrap
46280msgid "version number, for VCS snapshots"
46281msgstr ""
46282
46283#. type: Plain text
39764ef8 46284#: doc/guix.texi:21832
b9fe8fd6
JL
46285msgid ""
46286"Occasionally, we package snapshots of upstream's version control system "
46287"(VCS) instead of formal releases. This should remain exceptional, because "
46288"it is up to upstream developers to clarify what the stable release is. Yet, "
46289"it is sometimes necessary. So, what should we put in the @code{version} "
46290"field?"
46291msgstr ""
46292
46293#. type: Plain text
39764ef8 46294#: doc/guix.texi:21840
b9fe8fd6
JL
46295msgid ""
46296"Clearly, we need to make the commit identifier of the VCS snapshot visible "
46297"in the version string, but we also need to make sure that the version string "
46298"is monotonically increasing so that @command{guix package --upgrade} can "
46299"determine which version is newer. Since commit identifiers, notably with "
46300"Git, are not monotonically increasing, we add a revision number that we "
46301"increase each time we upgrade to a newer snapshot. The resulting version "
46302"string looks like this:"
46303msgstr ""
46304
46305#. type: example
39764ef8 46306#: doc/guix.texi:21849
b9fe8fd6
JL
46307#, no-wrap
46308msgid ""
46309"2.0.11-3.cabba9e\n"
46310" ^ ^ ^\n"
46311" | | `-- upstream commit ID\n"
46312" | |\n"
46313" | `--- Guix package revision\n"
46314" |\n"
46315"latest upstream version\n"
46316msgstr ""
46317
46318#. type: Plain text
39764ef8 46319#: doc/guix.texi:21858
b9fe8fd6
JL
46320msgid ""
46321"It is a good idea to strip commit identifiers in the @code{version} field "
46322"to, say, 7 digits. It avoids an aesthetic annoyance (assuming aesthetics "
46323"have a role to play here) as well as problems related to OS limits such as "
46324"the maximum shebang length (127 bytes for the Linux kernel.) It is best to "
46325"use the full commit identifiers in @code{origin}s, though, to avoid "
46326"ambiguities. A typical package definition may look like this:"
46327msgstr ""
46328
46329#. type: example
39764ef8 46330#: doc/guix.texi:21874
b9fe8fd6
JL
46331#, no-wrap
46332msgid ""
46333"(define my-package\n"
46334" (let ((commit \"c3f29bc928d5900971f65965feaae59e1272a3f7\")\n"
46335" (revision \"1\")) ;Guix package revision\n"
46336" (package\n"
46337" (version (git-version \"0.9\" revision commit))\n"
46338" (source (origin\n"
46339" (method git-fetch)\n"
46340" (uri (git-reference\n"
46341" (url \"git://example.org/my-package.git\")\n"
46342" (commit commit)))\n"
46343" (sha256 (base32 \"1mbikn@dots{}\"))\n"
46344" (file-name (git-file-name name version))))\n"
46345" ;; @dots{}\n"
46346" )))\n"
46347msgstr ""
46348
46349#. type: cindex
39764ef8 46350#: doc/guix.texi:21879
b9fe8fd6
JL
46351#, no-wrap
46352msgid "package description"
46353msgstr ""
46354
46355#. type: cindex
39764ef8 46356#: doc/guix.texi:21880
b9fe8fd6
JL
46357#, no-wrap
46358msgid "package synopsis"
46359msgstr ""
46360
46361#. type: Plain text
39764ef8 46362#: doc/guix.texi:21887
b9fe8fd6
JL
46363msgid ""
46364"As we have seen before, each package in GNU@tie{}Guix includes a synopsis "
46365"and a description (@pxref{Defining Packages}). Synopses and descriptions "
46366"are important: They are what @command{guix package --search} searches, and a "
46367"crucial piece of information to help users determine whether a given package "
46368"suits their needs. Consequently, packagers should pay attention to what "
46369"goes into them."
46370msgstr ""
46371
46372#. type: Plain text
39764ef8 46373#: doc/guix.texi:21895
b9fe8fd6
JL
46374msgid ""
46375"Synopses must start with a capital letter and must not end with a period. "
46376"They must not start with ``a'' or ``the'', which usually does not bring "
46377"anything; for instance, prefer ``File-frobbing tool'' over ``A tool that "
46378"frobs files''. The synopsis should say what the package is---e.g., ``Core "
46379"GNU utilities (file, text, shell)''---or what it is used for---e.g., the "
46380"synopsis for GNU@tie{}grep is ``Print lines matching a pattern''."
46381msgstr ""
46382
46383#. type: Plain text
39764ef8 46384#: doc/guix.texi:21905
b9fe8fd6
JL
46385msgid ""
46386"Keep in mind that the synopsis must be meaningful for a very wide audience. "
46387"For example, ``Manipulate alignments in the SAM format'' might make sense "
46388"for a seasoned bioinformatics researcher, but might be fairly unhelpful or "
46389"even misleading to a non-specialized audience. It is a good idea to come up "
46390"with a synopsis that gives an idea of the application domain of the "
46391"package. In this example, this might give something like ``Manipulate "
46392"nucleotide sequence alignments'', which hopefully gives the user a better "
46393"idea of whether this is what they are looking for."
46394msgstr ""
46395
46396#. type: Plain text
39764ef8 46397#: doc/guix.texi:21913
b9fe8fd6
JL
46398msgid ""
46399"Descriptions should take between five and ten lines. Use full sentences, "
46400"and avoid using acronyms without first introducing them. Please avoid "
46401"marketing phrases such as ``world-leading'', ``industrial-strength'', and "
39764ef8
JL
46402"``next-generation'', and avoid superlatives like ``the most advanced''---"
46403"they are not helpful to users looking for a package and may even sound "
46404"suspicious. Instead, try to be factual, mentioning use cases and features."
b9fe8fd6
JL
46405msgstr ""
46406
46407#. type: cindex
39764ef8 46408#: doc/guix.texi:21914
b9fe8fd6
JL
46409#, no-wrap
46410msgid "Texinfo markup, in package descriptions"
46411msgstr ""
46412
46413#. type: Plain text
39764ef8 46414#: doc/guix.texi:21923
b9fe8fd6
JL
46415msgid ""
46416"Descriptions can include Texinfo markup, which is useful to introduce "
46417"ornaments such as @code{@@code} or @code{@@dfn}, bullet lists, or hyperlinks "
46418"(@pxref{Overview,,, texinfo, GNU Texinfo}). However you should be careful "
46419"when using some characters for example @samp{@@} and curly braces which are "
46420"the basic special characters in Texinfo (@pxref{Special Characters,,, "
39764ef8
JL
46421"texinfo, GNU Texinfo}). User interfaces such as @command{guix package --"
46422"show} take care of rendering it appropriately."
b9fe8fd6
JL
46423msgstr ""
46424
46425#. type: Plain text
39764ef8 46426#: doc/guix.texi:21929
b9fe8fd6 46427msgid ""
39764ef8
JL
46428"Synopses and descriptions are translated by volunteers @uref{http://"
46429"translationproject.org/domain/guix-packages.html, at the Translation "
46430"Project} so that as many users as possible can read them in their native "
46431"language. User interfaces search them and display them in the language "
46432"specified by the current locale."
b9fe8fd6
JL
46433msgstr ""
46434
46435#. type: Plain text
39764ef8 46436#: doc/guix.texi:21934
b9fe8fd6
JL
46437msgid ""
46438"To allow @command{xgettext} to extract them as translatable strings, "
46439"synopses and descriptions @emph{must be literal strings}. This means that "
46440"you cannot use @code{string-append} or @code{format} to construct these "
46441"strings:"
46442msgstr ""
46443
46444#. type: lisp
39764ef8 46445#: doc/guix.texi:21940
b9fe8fd6
JL
46446#, no-wrap
46447msgid ""
46448"(package\n"
46449" ;; @dots{}\n"
46450" (synopsis \"This is translatable\")\n"
46451" (description (string-append \"This is \" \"*not*\" \" translatable.\")))\n"
46452msgstr ""
46453
46454#. type: Plain text
39764ef8 46455#: doc/guix.texi:21948
b9fe8fd6
JL
46456msgid ""
46457"Translation is a lot of work so, as a packager, please pay even more "
46458"attention to your synopses and descriptions as every change may entail "
46459"additional work for translators. In order to help them, it is possible to "
46460"make recommendations or instructions visible to them by inserting special "
46461"comments like this (@pxref{xgettext Invocation,,, gettext, GNU Gettext}):"
46462msgstr ""
46463
46464#. type: example
39764ef8 46465#: doc/guix.texi:21953
b9fe8fd6
JL
46466#, no-wrap
46467msgid ""
46468";; TRANSLATORS: \"X11 resize-and-rotate\" should not be translated.\n"
46469"(description \"ARandR is designed to provide a simple visual front end\n"
46470"for the X11 resize-and-rotate (RandR) extension. @dots{}\")\n"
46471msgstr ""
46472
46473#. type: cindex
39764ef8 46474#: doc/guix.texi:21959
b9fe8fd6
JL
46475#, no-wrap
46476msgid "python"
46477msgstr ""
46478
46479#. type: Plain text
39764ef8 46480#: doc/guix.texi:21965
b9fe8fd6
JL
46481msgid ""
46482"We currently package Python 2 and Python 3, under the Scheme variable names "
46483"@code{python-2} and @code{python} as explained in @ref{Version Numbers}. To "
46484"avoid confusion and naming clashes with other programming languages, it "
46485"seems desirable that the name of a package for a Python module contains the "
46486"word @code{python}."
46487msgstr ""
46488
46489#. type: Plain text
39764ef8 46490#: doc/guix.texi:21971
b9fe8fd6
JL
46491msgid ""
46492"Some modules are compatible with only one version of Python, others with "
46493"both. If the package Foo compiles only with Python 3, we name it "
46494"@code{python-foo}; if it compiles only with Python 2, we name it "
46495"@code{python2-foo}. If it is compatible with both versions, we create two "
46496"packages with the corresponding names."
46497msgstr ""
46498
46499#. type: Plain text
39764ef8 46500#: doc/guix.texi:21977
b9fe8fd6
JL
46501msgid ""
46502"If a project already contains the word @code{python}, we drop this; for "
46503"instance, the module python-dateutil is packaged under the names "
46504"@code{python-dateutil} and @code{python2-dateutil}. If the project name "
46505"starts with @code{py} (e.g. @code{pytz}), we keep it and prefix it as "
46506"described above."
46507msgstr ""
46508
46509#. type: subsubsection
39764ef8 46510#: doc/guix.texi:21978
b9fe8fd6
JL
46511#, no-wrap
46512msgid "Specifying Dependencies"
46513msgstr ""
46514
46515#. type: cindex
39764ef8 46516#: doc/guix.texi:21979
b9fe8fd6
JL
46517#, no-wrap
46518msgid "inputs, for Python packages"
46519msgstr ""
46520
46521#. type: Plain text
39764ef8 46522#: doc/guix.texi:21984
b9fe8fd6
JL
46523msgid ""
46524"Dependency information for Python packages is usually available in the "
39764ef8
JL
46525"package source tree, with varying degrees of accuracy: in the @file{setup."
46526"py} file, in @file{requirements.txt}, or in @file{tox.ini}."
b9fe8fd6
JL
46527msgstr ""
46528
46529#. type: Plain text
39764ef8 46530#: doc/guix.texi:21990
b9fe8fd6
JL
46531msgid ""
46532"Your mission, when writing a recipe for a Python package, is to map these "
46533"dependencies to the appropriate type of ``input'' (@pxref{package Reference, "
46534"inputs}). Although the @code{pypi} importer normally does a good job "
46535"(@pxref{Invoking guix import}), you may want to check the following check "
46536"list to determine which dependency goes where."
46537msgstr ""
46538
46539#. type: itemize
39764ef8 46540#: doc/guix.texi:21998
b9fe8fd6
JL
46541msgid ""
46542"We currently package Python 2 with @code{setuptools} and @code{pip} "
46543"installed like Python 3.4 has per default. Thus you don't need to specify "
46544"either of these as an input. @command{guix lint} will warn you if you do."
46545msgstr ""
46546
46547#. type: itemize
39764ef8 46548#: doc/guix.texi:22004
b9fe8fd6
JL
46549msgid ""
46550"Python dependencies required at run time go into @code{propagated-inputs}. "
46551"They are typically defined with the @code{install_requires} keyword in "
46552"@file{setup.py}, or in the @file{requirements.txt} file."
46553msgstr ""
46554
46555#. type: itemize
39764ef8 46556#: doc/guix.texi:22012
b9fe8fd6
JL
46557msgid ""
46558"Python packages required only at build time---e.g., those listed with the "
39764ef8
JL
46559"@code{setup_requires} keyword in @file{setup.py}---or only for testing---e."
46560"g., those in @code{tests_require}---go into @code{native-inputs}. The "
46561"rationale is that (1) they do not need to be propagated because they are not "
46562"needed at run time, and (2) in a cross-compilation context, it's the "
46563"``native'' input that we'd want."
b9fe8fd6
JL
46564msgstr ""
46565
46566#. type: itemize
39764ef8 46567#: doc/guix.texi:22016
b9fe8fd6
JL
46568msgid ""
46569"Examples are the @code{pytest}, @code{mock}, and @code{nose} test "
39764ef8
JL
46570"frameworks. Of course if any of these packages is also required at run-"
46571"time, it needs to go to @code{propagated-inputs}."
b9fe8fd6
JL
46572msgstr ""
46573
46574#. type: itemize
39764ef8 46575#: doc/guix.texi:22021
b9fe8fd6
JL
46576msgid ""
46577"Anything that does not fall in the previous categories goes to "
46578"@code{inputs}, for example programs or C libraries required for building "
46579"Python packages containing C extensions."
46580msgstr ""
46581
46582#. type: itemize
39764ef8 46583#: doc/guix.texi:22027
b9fe8fd6
JL
46584msgid ""
46585"If a Python package has optional dependencies (@code{extras_require}), it is "
39764ef8
JL
46586"up to you to decide whether to add them or not, based on their usefulness/"
46587"overhead ratio (@pxref{Submitting Patches, @command{guix size}})."
b9fe8fd6
JL
46588msgstr ""
46589
46590#. type: cindex
39764ef8 46591#: doc/guix.texi:22034
b9fe8fd6
JL
46592#, no-wrap
46593msgid "perl"
46594msgstr ""
46595
46596#. type: Plain text
39764ef8 46597#: doc/guix.texi:22045
b9fe8fd6
JL
46598msgid ""
46599"Perl programs standing for themselves are named as any other package, using "
46600"the lowercase upstream name. For Perl packages containing a single class, "
46601"we use the lowercase class name, replace all occurrences of @code{::} by "
46602"dashes and prepend the prefix @code{perl-}. So the class @code{XML::Parser} "
46603"becomes @code{perl-xml-parser}. Modules containing several classes keep "
46604"their lowercase upstream name and are also prepended by @code{perl-}. Such "
46605"modules tend to have the word @code{perl} somewhere in their name, which "
46606"gets dropped in favor of the prefix. For instance, @code{libwww-perl} "
46607"becomes @code{perl-libwww}."
46608msgstr ""
46609
46610#. type: cindex
39764ef8 46611#: doc/guix.texi:22050
b9fe8fd6
JL
46612#, no-wrap
46613msgid "java"
46614msgstr ""
46615
46616#. type: Plain text
39764ef8 46617#: doc/guix.texi:22053
b9fe8fd6
JL
46618msgid ""
46619"Java programs standing for themselves are named as any other package, using "
46620"the lowercase upstream name."
46621msgstr ""
46622
46623#. type: Plain text
39764ef8 46624#: doc/guix.texi:22059
b9fe8fd6
JL
46625msgid ""
46626"To avoid confusion and naming clashes with other programming languages, it "
46627"is desirable that the name of a package for a Java package is prefixed with "
46628"@code{java-}. If a project already contains the word @code{java}, we drop "
46629"this; for instance, the package @code{ngsjava} is packaged under the name "
46630"@code{java-ngs}."
46631msgstr ""
46632
46633#. type: Plain text
39764ef8 46634#: doc/guix.texi:22065
b9fe8fd6
JL
46635msgid ""
46636"For Java packages containing a single class or a small class hierarchy, we "
46637"use the lowercase class name, replace all occurrences of @code{.} by dashes "
46638"and prepend the prefix @code{java-}. So the class @code{apache.commons.cli} "
46639"becomes package @code{java-apache-commons-cli}."
46640msgstr ""
46641
46642#. type: Plain text
39764ef8 46643#: doc/guix.texi:22076
b9fe8fd6
JL
46644msgid ""
46645"For fonts that are in general not installed by a user for typesetting "
46646"purposes, or that are distributed as part of a larger software package, we "
46647"rely on the general packaging rules for software; for instance, this applies "
46648"to the fonts delivered as part of the X.Org system or fonts that are part of "
46649"TeX Live."
46650msgstr ""
46651
46652#. type: Plain text
39764ef8 46653#: doc/guix.texi:22080
b9fe8fd6
JL
46654msgid ""
46655"To make it easier for a user to search for fonts, names for other packages "
46656"containing only fonts are constructed as follows, independently of the "
46657"upstream package name."
46658msgstr ""
46659
46660#. type: Plain text
39764ef8 46661#: doc/guix.texi:22088
b9fe8fd6
JL
46662msgid ""
46663"The name of a package containing only one font family starts with "
46664"@code{font-}; it is followed by the foundry name and a dash @code{-} if the "
46665"foundry is known, and the font family name, in which spaces are replaced by "
46666"dashes (and as usual, all upper case letters are transformed to lower "
46667"case). For example, the Gentium font family by SIL is packaged under the "
46668"name @code{font-sil-gentium}."
46669msgstr ""
46670
46671#. type: Plain text
39764ef8 46672#: doc/guix.texi:22097
b9fe8fd6
JL
46673msgid ""
46674"For a package containing several font families, the name of the collection "
46675"is used in the place of the font family name. For instance, the Liberation "
46676"fonts consist of three families, Liberation Sans, Liberation Serif and "
46677"Liberation Mono. These could be packaged separately under the names "
46678"@code{font-liberation-sans} and so on; but as they are distributed together "
39764ef8
JL
46679"under a common name, we prefer to package them together as @code{font-"
46680"liberation}."
b9fe8fd6
JL
46681msgstr ""
46682
46683#. type: Plain text
39764ef8 46684#: doc/guix.texi:22103
b9fe8fd6
JL
46685msgid ""
46686"In the case where several formats of the same font family or font collection "
46687"are packaged separately, a short form of the format, prepended by a dash, is "
39764ef8
JL
46688"added to the package name. We use @code{-ttf} for TrueType fonts, @code{-"
46689"otf} for OpenType fonts and @code{-type1} for PostScript Type 1 fonts."
b9fe8fd6
JL
46690msgstr ""
46691
46692#. type: cindex
39764ef8 46693#: doc/guix.texi:22111
b9fe8fd6
JL
46694#, no-wrap
46695msgid "bootstrapping"
46696msgstr ""
46697
46698#. type: Plain text
39764ef8 46699#: doc/guix.texi:22121
b9fe8fd6
JL
46700msgid ""
46701"Bootstrapping in our context refers to how the distribution gets built "
46702"``from nothing''. Remember that the build environment of a derivation "
46703"contains nothing but its declared inputs (@pxref{Introduction}). So there's "
46704"an obvious chicken-and-egg problem: how does the first package get built? "
46705"How does the first compiler get compiled? Note that this is a question of "
46706"interest only to the curious hacker, not to the regular user, so you can "
46707"shamelessly skip this section if you consider yourself a ``regular user''."
46708msgstr ""
46709
46710#. type: cindex
39764ef8 46711#: doc/guix.texi:22122 doc/guix.texi:22244
b9fe8fd6
JL
46712#, no-wrap
46713msgid "bootstrap binaries"
46714msgstr ""
46715
46716#. type: Plain text
39764ef8 46717#: doc/guix.texi:22132
b9fe8fd6
JL
46718msgid ""
46719"The GNU system is primarily made of C code, with libc at its core. The GNU "
39764ef8
JL
46720"build system itself assumes the availability of a Bourne shell and command-"
46721"line tools provided by GNU Coreutils, Awk, Findutils, `sed', and `grep'. "
46722"Furthermore, build programs---programs that run @code{./configure}, "
b9fe8fd6
JL
46723"@code{make}, etc.---are written in Guile Scheme (@pxref{Derivations}). "
46724"Consequently, to be able to build anything at all, from scratch, Guix relies "
46725"on pre-built binaries of Guile, GCC, Binutils, libc, and the other packages "
46726"mentioned above---the @dfn{bootstrap binaries}."
46727msgstr ""
46728
46729#. type: Plain text
39764ef8 46730#: doc/guix.texi:22135
b9fe8fd6 46731msgid ""
39764ef8
JL
46732"These bootstrap binaries are ``taken for granted'', though we can also re-"
46733"create them if needed (more on that later)."
b9fe8fd6
JL
46734msgstr ""
46735
46736#. type: unnumberedsubsec
39764ef8 46737#: doc/guix.texi:22136
b9fe8fd6
JL
46738#, no-wrap
46739msgid "Preparing to Use the Bootstrap Binaries"
46740msgstr ""
46741
46742#. type: Plain text
39764ef8 46743#: doc/guix.texi:22141
b9fe8fd6
JL
46744msgid ""
46745"@image{images/bootstrap-graph,6in,,Dependency graph of the early bootstrap "
46746"derivations}"
46747msgstr ""
46748
46749#. type: Plain text
39764ef8 46750#: doc/guix.texi:22146
b9fe8fd6
JL
46751msgid ""
46752"The figure above shows the very beginning of the dependency graph of the "
46753"distribution, corresponding to the package definitions of the @code{(gnu "
46754"packages bootstrap)} module. A similar figure can be generated with "
46755"@command{guix graph} (@pxref{Invoking guix graph}), along the lines of:"
46756msgstr ""
46757
46758#. type: example
39764ef8 46759#: doc/guix.texi:22151
b9fe8fd6
JL
46760#, no-wrap
46761msgid ""
46762"guix graph -t derivation \\\n"
46763" -e '(@@@@ (gnu packages bootstrap) %bootstrap-gcc)' \\\n"
46764" | dot -Tps > t.ps\n"
46765msgstr ""
46766
46767#. type: Plain text
39764ef8 46768#: doc/guix.texi:22160
b9fe8fd6
JL
46769msgid ""
46770"At this level of detail, things are slightly complex. First, Guile itself "
46771"consists of an ELF executable, along with many source and compiled Scheme "
46772"files that are dynamically loaded when it runs. This gets stored in the "
46773"@file{guile-2.0.7.tar.xz} tarball shown in this graph. This tarball is part "
46774"of Guix's ``source'' distribution, and gets inserted into the store with "
46775"@code{add-to-store} (@pxref{The Store})."
46776msgstr ""
46777
46778#. type: Plain text
39764ef8 46779#: doc/guix.texi:22169
b9fe8fd6
JL
46780msgid ""
46781"But how do we write a derivation that unpacks this tarball and adds it to "
46782"the store? To solve this problem, the @code{guile-bootstrap-2.0.drv} "
46783"derivation---the first one that gets built---uses @code{bash} as its "
46784"builder, which runs @code{build-bootstrap-guile.sh}, which in turn calls "
46785"@code{tar} to unpack the tarball. Thus, @file{bash}, @file{tar}, @file{xz}, "
46786"and @file{mkdir} are statically-linked binaries, also part of the Guix "
46787"source distribution, whose sole purpose is to allow the Guile tarball to be "
46788"unpacked."
46789msgstr ""
46790
46791#. type: Plain text
39764ef8 46792#: doc/guix.texi:22181
b9fe8fd6
JL
46793msgid ""
46794"Once @code{guile-bootstrap-2.0.drv} is built, we have a functioning Guile "
46795"that can be used to run subsequent build programs. Its first task is to "
46796"download tarballs containing the other pre-built binaries---this is what the "
39764ef8
JL
46797"@code{.tar.xz.drv} derivations do. Guix modules such as @code{ftp-client."
46798"scm} are used for this purpose. The @code{module-import.drv} derivations "
46799"import those modules in a directory in the store, using the original "
46800"layout. The @code{module-import-compiled.drv} derivations compile those "
46801"modules, and write them in an output directory with the right layout. This "
46802"corresponds to the @code{#:modules} argument of @code{build-expression-"
46803">derivation} (@pxref{Derivations})."
b9fe8fd6
JL
46804msgstr ""
46805
46806#. type: Plain text
39764ef8 46807#: doc/guix.texi:22185
b9fe8fd6 46808msgid ""
39764ef8
JL
46809"Finally, the various tarballs are unpacked by the derivations @code{gcc-"
46810"bootstrap-0.drv}, @code{glibc-bootstrap-0.drv}, etc., at which point we have "
46811"a working C tool chain."
b9fe8fd6
JL
46812msgstr ""
46813
46814#. type: unnumberedsubsec
39764ef8 46815#: doc/guix.texi:22187
b9fe8fd6
JL
46816#, no-wrap
46817msgid "Building the Build Tools"
46818msgstr ""
46819
46820#. type: Plain text
39764ef8 46821#: doc/guix.texi:22196
b9fe8fd6
JL
46822msgid ""
46823"Bootstrapping is complete when we have a full tool chain that does not "
46824"depend on the pre-built bootstrap tools discussed above. This no-dependency "
46825"requirement is verified by checking whether the files of the final tool "
46826"chain contain references to the @file{/gnu/store} directories of the "
46827"bootstrap inputs. The process that leads to this ``final'' tool chain is "
46828"described by the package definitions found in the @code{(gnu packages "
46829"commencement)} module."
46830msgstr ""
46831
46832#. type: Plain text
39764ef8 46833#: doc/guix.texi:22203
b9fe8fd6
JL
46834msgid ""
46835"The @command{guix graph} command allows us to ``zoom out'' compared to the "
46836"graph above, by looking at the level of package objects instead of "
46837"individual derivations---remember that a package may translate to several "
46838"derivations, typically one derivation to download its source, one to build "
46839"the Guile modules it needs, and one to actually build the package from "
46840"source. The command:"
46841msgstr ""
46842
46843#. type: example
39764ef8 46844#: doc/guix.texi:22208
b9fe8fd6
JL
46845#, no-wrap
46846msgid ""
46847"guix graph -t bag \\\n"
46848" -e '(@@@@ (gnu packages commencement)\n"
46849" glibc-final-with-bootstrap-bash)' | dot -Tps > t.ps\n"
46850msgstr ""
46851
46852#. type: Plain text
39764ef8 46853#: doc/guix.texi:22215
b9fe8fd6
JL
46854msgid ""
46855"produces the dependency graph leading to the ``final'' C "
46856"library@footnote{You may notice the @code{glibc-intermediate} label, "
46857"suggesting that it is not @emph{quite} final, but as a good approximation, "
46858"we will consider it final.}, depicted below."
46859msgstr ""
46860
46861#. type: Plain text
39764ef8 46862#: doc/guix.texi:22217
b9fe8fd6 46863msgid ""
39764ef8 46864"@image{images/bootstrap-packages,6in,,Dependency graph of the early packages}"
b9fe8fd6
JL
46865msgstr ""
46866
46867#. type: Plain text
39764ef8 46868#: doc/guix.texi:22223
b9fe8fd6 46869msgid ""
39764ef8
JL
46870"The first tool that gets built with the bootstrap binaries is GNU@tie{}"
46871"Make---noted @code{make-boot0} above---which is a prerequisite for all the "
46872"following packages. From there Findutils and Diffutils get built."
b9fe8fd6
JL
46873msgstr ""
46874
46875#. type: Plain text
39764ef8 46876#: doc/guix.texi:22228
b9fe8fd6 46877msgid ""
39764ef8
JL
46878"Then come the first-stage Binutils and GCC, built as pseudo cross tools---i."
46879"e., with @code{--target} equal to @code{--host}. They are used to build "
46880"libc. Thanks to this cross-build trick, this libc is guaranteed not to hold "
46881"any reference to the initial tool chain."
b9fe8fd6
JL
46882msgstr ""
46883
46884#. type: Plain text
39764ef8 46885#: doc/guix.texi:22234
b9fe8fd6
JL
46886msgid ""
46887"From there the final Binutils and GCC (not shown above) are built. GCC uses "
46888"@code{ld} from the final Binutils, and links programs against the just-built "
46889"libc. This tool chain is used to build the other packages used by Guix and "
46890"by the GNU Build System: Guile, Bash, Coreutils, etc."
46891msgstr ""
46892
46893#. type: Plain text
39764ef8 46894#: doc/guix.texi:22240
b9fe8fd6
JL
46895msgid ""
46896"And voilà! At this point we have the complete set of build tools that the "
46897"GNU Build System expects. These are in the @code{%final-inputs} variable of "
46898"the @code{(gnu packages commencement)} module, and are implicitly used by "
46899"any package that uses @code{gnu-build-system} (@pxref{Build Systems, "
46900"@code{gnu-build-system}})."
46901msgstr ""
46902
46903#. type: unnumberedsubsec
39764ef8 46904#: doc/guix.texi:22242
b9fe8fd6
JL
46905#, no-wrap
46906msgid "Building the Bootstrap Binaries"
46907msgstr ""
46908
46909#. type: Plain text
39764ef8 46910#: doc/guix.texi:22249
b9fe8fd6
JL
46911msgid ""
46912"Because the final tool chain does not depend on the bootstrap binaries, "
46913"those rarely need to be updated. Nevertheless, it is useful to have an "
46914"automated way to produce them, should an update occur, and this is what the "
46915"@code{(gnu packages make-bootstrap)} module provides."
46916msgstr ""
46917
46918#. type: Plain text
39764ef8 46919#: doc/guix.texi:22253
b9fe8fd6
JL
46920msgid ""
46921"The following command builds the tarballs containing the bootstrap binaries "
46922"(Guile, Binutils, GCC, libc, and a tarball containing a mixture of Coreutils "
46923"and other basic command-line tools):"
46924msgstr ""
46925
46926#. type: example
39764ef8 46927#: doc/guix.texi:22256
b9fe8fd6
JL
46928#, no-wrap
46929msgid "guix build bootstrap-tarballs\n"
46930msgstr ""
46931
46932#. type: Plain text
39764ef8 46933#: doc/guix.texi:22261
b9fe8fd6
JL
46934msgid ""
46935"The generated tarballs are those that should be referred to in the "
46936"@code{(gnu packages bootstrap)} module mentioned at the beginning of this "
46937"section."
46938msgstr ""
46939
46940#. type: Plain text
39764ef8 46941#: doc/guix.texi:22267
b9fe8fd6
JL
46942msgid ""
46943"Still here? Then perhaps by now you've started to wonder: when do we reach a "
46944"fixed point? That is an interesting question! The answer is unknown, but if "
46945"you would like to investigate further (and have significant computational "
46946"and storage resources to do so), then let us know."
46947msgstr ""
46948
46949#. type: unnumberedsubsec
39764ef8 46950#: doc/guix.texi:22268
b9fe8fd6
JL
46951#, no-wrap
46952msgid "Reducing the Set of Bootstrap Binaries"
46953msgstr ""
46954
46955#. type: Plain text
39764ef8 46956#: doc/guix.texi:22276
b9fe8fd6
JL
46957msgid ""
46958"Our bootstrap binaries currently include GCC, Guile, etc. That's a lot of "
46959"binary code! Why is that a problem? It's a problem because these big chunks "
46960"of binary code are practically non-auditable, which makes it hard to "
46961"establish what source code produced them. Every unauditable binary also "
46962"leaves us vulnerable to compiler backdoors as described by Ken Thompson in "
46963"the 1984 paper @emph{Reflections on Trusting Trust}."
46964msgstr ""
46965
46966#. type: Plain text
39764ef8 46967#: doc/guix.texi:22282
b9fe8fd6
JL
46968msgid ""
46969"This is mitigated by the fact that our bootstrap binaries were generated "
46970"from an earlier Guix revision. Nevertheless it lacks the level of "
46971"transparency that we get in the rest of the package dependency graph, where "
46972"Guix always gives us a source-to-binary mapping. Thus, our goal is to "
46973"reduce the set of bootstrap binaries to the bare minimum."
46974msgstr ""
46975
46976#. type: Plain text
39764ef8 46977#: doc/guix.texi:22288
b9fe8fd6 46978msgid ""
39764ef8
JL
46979"The @uref{http://bootstrappable.org, Bootstrappable.org web site} lists on-"
46980"going projects to do that. One of these is about replacing the bootstrap "
b9fe8fd6
JL
46981"GCC with a sequence of assemblers, interpreters, and compilers of increasing "
46982"complexity, which could be built from source starting from a simple and "
46983"auditable assembler. Your help is welcome!"
46984msgstr ""
46985
46986#. type: section
39764ef8 46987#: doc/guix.texi:22291
b9fe8fd6
JL
46988#, no-wrap
46989msgid "Porting to a New Platform"
46990msgstr ""
46991
46992#. type: Plain text
39764ef8 46993#: doc/guix.texi:22300
b9fe8fd6 46994msgid ""
39764ef8
JL
46995"As discussed above, the GNU distribution is self-contained, and self-"
46996"containment is achieved by relying on pre-built ``bootstrap "
46997"binaries'' (@pxref{Bootstrapping}). These binaries are specific to an "
46998"operating system kernel, CPU architecture, and application binary interface "
46999"(ABI). Thus, to port the distribution to a platform that is not yet "
47000"supported, one must build those bootstrap binaries, and update the "
47001"@code{(gnu packages bootstrap)} module to use them on that platform."
b9fe8fd6
JL
47002msgstr ""
47003
47004#. type: Plain text
39764ef8 47005#: doc/guix.texi:22305
b9fe8fd6
JL
47006msgid ""
47007"Fortunately, Guix can @emph{cross compile} those bootstrap binaries. When "
47008"everything goes well, and assuming the GNU tool chain supports the target "
47009"platform, this can be as simple as running a command like this one:"
47010msgstr ""
47011
47012#. type: example
39764ef8 47013#: doc/guix.texi:22308
b9fe8fd6
JL
47014#, no-wrap
47015msgid "guix build --target=armv5tel-linux-gnueabi bootstrap-tarballs\n"
47016msgstr ""
47017
47018#. type: Plain text
39764ef8 47019#: doc/guix.texi:22315
b9fe8fd6
JL
47020msgid ""
47021"For this to work, the @code{glibc-dynamic-linker} procedure in @code{(gnu "
47022"packages bootstrap)} must be augmented to return the right file name for "
39764ef8
JL
47023"libc's dynamic linker on that platform; likewise, @code{system->linux-"
47024"architecture} in @code{(gnu packages linux)} must be taught about the new "
47025"platform."
b9fe8fd6
JL
47026msgstr ""
47027
47028#. type: Plain text
39764ef8 47029#: doc/guix.texi:22324
b9fe8fd6
JL
47030msgid ""
47031"Once these are built, the @code{(gnu packages bootstrap)} module needs to be "
47032"updated to refer to these binaries on the target platform. That is, the "
47033"hashes and URLs of the bootstrap tarballs for the new platform must be added "
47034"alongside those of the currently supported platforms. The bootstrap Guile "
47035"tarball is treated specially: it is expected to be available locally, and "
47036"@file{gnu/local.mk} has rules do download it for the supported "
47037"architectures; a rule for the new platform must be added as well."
47038msgstr ""
47039
47040#. type: Plain text
39764ef8 47041#: doc/guix.texi:22333
b9fe8fd6
JL
47042msgid ""
47043"In practice, there may be some complications. First, it may be that the "
47044"extended GNU triplet that specifies an ABI (like the @code{eabi} suffix "
47045"above) is not recognized by all the GNU tools. Typically, glibc recognizes "
47046"some of these, whereas GCC uses an extra @code{--with-abi} configure flag "
47047"(see @code{gcc.scm} for examples of how to handle this). Second, some of "
47048"the required packages could fail to build for that platform. Lastly, the "
47049"generated binaries could be broken for some reason."
47050msgstr ""
47051
47052#. type: include
39764ef8 47053#: doc/guix.texi:22335
b9fe8fd6
JL
47054#, no-wrap
47055msgid "contributing.texi"
47056msgstr ""
47057
47058#. type: Plain text
39764ef8 47059#: doc/guix.texi:22348
b9fe8fd6
JL
47060msgid ""
47061"Guix is based on the @uref{http://nixos.org/nix/, Nix package manager}, "
47062"which was designed and implemented by Eelco Dolstra, with contributions from "
47063"other people (see the @file{nix/AUTHORS} file in Guix.) Nix pioneered "
47064"functional package management, and promoted unprecedented features, such as "
47065"transactional package upgrades and rollbacks, per-user profiles, and "
47066"referentially transparent build processes. Without this work, Guix would "
47067"not exist."
47068msgstr ""
47069
47070#. type: Plain text
39764ef8 47071#: doc/guix.texi:22351
b9fe8fd6
JL
47072msgid ""
47073"The Nix-based software distributions, Nixpkgs and NixOS, have also been an "
47074"inspiration for Guix."
47075msgstr ""
47076
47077#. type: Plain text
39764ef8 47078#: doc/guix.texi:22357
b9fe8fd6
JL
47079msgid ""
47080"GNU@tie{}Guix itself is a collective work with contributions from a number "
47081"of people. See the @file{AUTHORS} file in Guix for more information on "
47082"these fine people. The @file{THANKS} file lists people who have helped by "
47083"reporting bugs, taking care of the infrastructure, providing artwork and "
47084"themes, making suggestions, and more---thank you!"
47085msgstr ""
47086
47087#. type: cindex
39764ef8 47088#: doc/guix.texi:22362
b9fe8fd6
JL
47089#, no-wrap
47090msgid "license, GNU Free Documentation License"
47091msgstr ""
47092
47093#. type: include
39764ef8 47094#: doc/guix.texi:22363
b9fe8fd6
JL
47095#, no-wrap
47096msgid "fdl-1.3.texi"
47097msgstr ""