summary refs log tree commit diff
path: root/doc/guix.texi
diff options
context:
space:
mode:
Diffstat (limited to 'doc/guix.texi')
-rw-r--r--doc/guix.texi145
1 files changed, 98 insertions, 47 deletions
diff --git a/doc/guix.texi b/doc/guix.texi
index 0cdc528c1c..585baf358f 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -5776,7 +5776,7 @@ a package collection.  This involves the following steps:
 
 @enumerate
 @item
-Channels live in a Git repository so the first step, when creating a
+A channel lives in a Git repository so the first step, when creating a
 channel, is to create its repository:
 
 @example
@@ -5790,7 +5790,7 @@ The next step is to create files containing package modules
 (@pxref{Package Modules}), each of which will contain one or more
 package definitions (@pxref{Defining Packages}).  A channel can provide
 things other than packages, such as build systems or services; we're
-using packages as most common use case.
+using packages as it's the most common use case.
 
 For example, Alice might want to provide a module called @code{(alice
 packages greetings)} that will provide her favorite ``hello world''
@@ -5815,7 +5815,7 @@ that.
 @item
 With this first module in place, the next step is to test the packages
 it provides.  This can be done with @command{guix build}, which needs to
-be fold to look for modules in the Git checkout.  For example, assuming
+be told to look for modules in the Git checkout.  For example, assuming
 @code{(alice packages greetings)} provides a package called
 @code{hi-from-alice}, Alice will run this command from the Git checkout:
 
@@ -5856,7 +5856,7 @@ example, @code{(alice packages greetings)} will automatically be found
 by the @command{guix} command.
 @end enumerate
 
-VoilĂ !  
+VoilĂ !
 
 @c What follows stems from discussions at
 @c <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=22629#134> as well as
@@ -10001,17 +10001,30 @@ used to build TeX packages in batch mode with a specified engine.  The
 build system sets the @env{TEXINPUTS} variable to find all TeX source
 files in the inputs.
 
-By default it runs @code{luatex} on all files ending on @code{ins}.  A
-different engine and format can be specified with the
-@code{#:tex-format} argument.  Different build targets can be specified
-with the @code{#:build-targets} argument, which expects a list of file
-names.  The build system adds only @code{texlive-bin} and
-@code{texlive-latex-base} (both from @code{(gnu packages tex}) to the
-inputs.  Both can be overridden with the arguments @code{#:texlive-bin}
-and @code{#:texlive-latex-base}, respectively.
+By default it tries to run @code{luatex} on all @file{.ins} files, and
+if it fails to find any, on all @file{.dtx} files.  A different engine
+and format can be specified with, respectively, the @code{#:tex-engine}
+and @code{#:tex-format} arguments.  Different build targets can be
+specified with the @code{#:build-targets} argument, which expects a list
+of file names.
 
-The @code{#:tex-directory} parameter tells the build system where to
-install the built files under the texmf tree.
+It also generates font metrics (i.e., @file{.tfm} files) out of Metafont
+files whenever possible.  Likewise, it can also create TeX formats
+(i.e., @file{.fmt} files) listed in the @code{#:create-formats}
+argument, and generate a symbolic link from @file{bin/} directory to any
+script located in located in @file{texmf-dist/scripts/}, provided its
+file name is listed in @code{#:link-scripts} argument.
+
+The build system adds @code{texlive-bin} from @code{(gnu packages tex)}
+to the native inputs.  It can be overridden with the
+@code{#:texlive-bin} argument.
+
+The package @code{texlive-latex-bin}, from the same module, contains
+most of the tools for building TeX Live packages; for convenience, it is
+also added by default to the native inputs.  However, this can be
+troublesome when building a dependency of @code{texlive-latex-bin}
+itself.  In this particular situation, the @code{#:texlive-latex-bin?}
+argument should be set to @code{#f}.
 @end defvar
 
 @defvar ruby-build-system
@@ -14075,9 +14088,10 @@ TeX packages that are part of the @uref{https://www.tug.org/texlive/,
 TeX Live distribution}.
 
 Information about the package is obtained from the TeX Live package
-database, a plain text file that is included in the @code{texlive-bin}
-package.  The source code is downloaded from possibly multiple locations
-in the SVN repository of the Tex Live project.
+database, a plain text file that is included in the
+@code{texlive-scripts} package.  The source code is downloaded from
+possibly multiple locations in the SVN repository of the Tex Live
+project.
 
 The command command below imports metadata for the @code{fontspec}
 TeX package:
@@ -32938,12 +32952,25 @@ The IP addresses to be assigned to the above interface.
 @item @code{port} (default: @code{51820})
 The port on which to listen for incoming connections.
 
-@item @code{dns} (default: @code{#f})
+@item @code{dns} (default: @code{'())})
 The DNS server(s) to announce to VPN clients via DHCP.
 
+@item @code{monitor-ips?} (default: @code{#f})
+@cindex Dynamic IP, with Wireguard
+@cindex dyndns, usage with Wireguard
+Whether to monitor the resolved Internet addresses (IPs) of the
+endpoints of the configured peers, resetting the peer endpoints using an
+IP address that no longer correspond to their freshly resolved host
+name.  Set this to @code{#t} if one or more endpoints use host names
+provided by a dynamic DNS service to keep the sessions alive.
+
+@item @code{monitor-ips-internal} (default: @code{'(next-minute (range 0 60 5))})
+The time interval at which the IP monitoring job should run, provided as
+an mcron time specification (@pxref{Guile Syntax,,,mcron}).
+
 @item @code{private-key} (default: @code{"/etc/wireguard/private.key"})
-The private key file for the interface.  It is automatically generated if
-the file does not exist.
+The private key file for the interface.  It is automatically generated
+if the file does not exist.
 
 @item @code{peers} (default: @code{'()})
 The authorized peers on this interface.  This is a list of
@@ -35159,9 +35186,9 @@ Its value must be a @code{virtlog-configuration}.
 @end lisp
 @end defvar
 
-@deftypevar {@code{libvirt} parameter} package libvirt
+@deftypevr {@code{libvirt} parameter} package libvirt
 Libvirt package.
-@end deftypevar
+@end deftypevr
 
 @deftypevr {@code{virtlog-configuration} parameter} integer log-level
 Logging level.  4 errors, 3 warnings, 2 information, 1 debug.
@@ -40078,7 +40105,29 @@ For example:
 @item @code{multiboot-arguments} (default: @code{'()})
 The list of extra command-line arguments for the multiboot-kernel.
 
-@item @code{multiboot-modules} (default: @code{'()})
+For example, when running in QEMU it can be useful to use a text-based
+console (use options @option{--nographic} @option{--serial mon:stdio}):
+
+@lisp
+'("console=com0")
+@end lisp
+
+To use the new and still experimental
+@uref{https://darnassus.sceen.net/~hurd-web/rump_kernel/, rumpdisk
+user-level disk driver} instead of GNU@tie{}Mach's in-kernel IDE driver,
+set @code{kernel-arguments} to:
+
+@lisp
+'("noide")
+@end lisp
+
+Of course, these options can be combined:
+
+@lisp
+'("console=com0" "noide")
+@end lisp
+
++@item @code{multiboot-modules} (default: @code{'()})
 The list of commands for loading Multiboot modules.  For example:
 
 @lisp
@@ -45371,14 +45420,19 @@ single @TeX{} Live package} (more than 7,000 of them), but it is huge
 (more than 4@tie{}GiB for a single package!).
 
 @item
-The ``modular'' @code{texlive-} packages: you install
-@code{texlive-base}, which provides core functionality and the main
+The ``modular'' @samp{texlive-} packages: you start off with
+a combination of @TeX{} Live @dfn{collections} and
+@dfn{schemes}---``meta-packages'' such as
+@code{texlive-collection-fontsrecommended}, or
+@code{texlive-collection-context}, that provide the set of packages
+needed in this particular domain, schemes being the name for collections
+of such collections.  This grants you core functionality and the main
 commands---@command{pdflatex}, @command{dvips}, @command{luatex},
-@command{mf}, etc.---together with individual packages that provide just
-the features you need---@code{texlive-listings} for the
-@code{listings} package, @code{texlive-hyperref} for @code{hyperref},
-@code{texlive-beamer} for Beamer, @code{texlive-pgf} for PGF/TikZ,
-and so on.
+@command{mf}, etc.  You can then complete your selection with additional
+collections or individual packages that provide just the features you
+need---@code{texlive-listings} for the @code{listings} package,
+@code{texlive-beamer} for Beamer, @code{texlive-pgf} for PGF/TikZ, and
+so on.
 @end itemize
 
 We recommend using the modular package set because it is much less
@@ -45386,29 +45440,29 @@ resource-hungry.  To build your documents, you would use commands such
 as:
 
 @example
-guix shell texlive-base texlive-wrapfig \
-  texlive-hyperref texlive-cm-super -- pdflatex doc.tex
+guix shell texlive-scheme-basic texlive-cm-super -- pdflatex doc.tex
 @end example
 
 You can quickly end up with unreasonably long command lines though.  The
-solution is to instead write a manifest, for example like this one:
+solution is to instead write a manifest, for example like this one,
+which would probably be a reasonable starting point for a French
+@LaTeX{} user:
 
 @lisp
 (specifications->manifest
  '("rubber"
 
-   "texlive-base"
-   "texlive-wrapfig"
+   "texlive-scheme-basic"
+   "texlive-collection-latexrecommended"
+   "texlive-collection-fontsrecommended"
 
-   "texlive-microtype"
-   "texlive-listings" "texlive-hyperref"
+   "texlive-babel-french"
 
    ;; PGF/TikZ
    "texlive-pgf"
 
-   ;; Additional fonts.
-   "texlive-cm-super" "texlive-amsfonts"
-   "texlive-times" "texlive-helvetic" "texlive-courier"))
+   ;; Additional font.
+   "texlive-kpfonts"))
 @end lisp
 
 You can then pass it to any command with the @option{-m} option:
@@ -45417,12 +45471,9 @@ You can then pass it to any command with the @option{-m} option:
 guix shell -m manifest.scm -- pdflatex doc.tex
 @end example
 
-@xref{Writing Manifests}, for more on
-manifests.  In the future, we plan to provide packages for @TeX{} Live
-@dfn{collections}---``meta-packages'' such as @code{fontsrecommended},
-@code{humanities}, or @code{langarabic} that provide the set of packages
-needed in this particular domain.  That will allow you to list fewer
-packages.
+@xref{Writing Manifests}, for more on manifests.  In the future, we plan
+to provide more collections and schemes.  That will allow you to list
+fewer packages.
 
 The main difficulty here is that using the modular package set forces
 you to select precisely the packages that you need.  You can use
@@ -45458,7 +45509,7 @@ you can search the @TeX{} Live package database using the @command{tlmgr}
 command:
 
 @example
-$ guix shell texlive-base -- tlmgr info phvr7t
+$ guix shell texlive-bin -- tlmgr info phvr7t
 tlmgr: cannot find package phvr7t, searching for other matches:
 
 Packages containing `phvr7t' in their title/description: