guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH] doc: Added some index entries.


From: John Darrington
Subject: [PATCH] doc: Added some index entries.
Date: Wed, 9 Nov 2016 20:57:59 +0100

* doc/guix.texi: Added various @cindex tags to assist readers.
---
 doc/guix.texi | 87 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 86 insertions(+), 1 deletion(-)

diff --git a/doc/guix.texi b/doc/guix.texi
index 89a7a58..d8a0e00 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -340,6 +340,7 @@ garbage collection of packages (@pxref{Features}).
 @node Installation
 @chapter Installation
 
address@hidden installing guix
 GNU Guix is available for download from its website at
 @url{http://www.gnu.org/software/guix/}.  This section describes the
 software requirements of Guix, as well as how to install it and get
@@ -369,6 +370,7 @@ system, such as @file{/etc}, are left untouched.
 @node Binary Installation
 @section Binary Installation
 
address@hidden installation guix from binaries
 This section describes how to install Guix on an arbitrary system from a
 self-contained tarball providing binaries for Guix and for all its
 dependencies.  This is often quicker than installing from source, which
@@ -379,6 +381,7 @@ Installing goes along these lines:
 
 @enumerate
 @item
address@hidden downloading
 Download the binary tarball from
 @indicateurl{ftp://alpha.gnu.org/gnu/guix/address@hidden@var{system}.tar.xz},
 where @var{system} is @code{x86_64-linux} for an @code{x86_64} machine
@@ -494,6 +497,7 @@ Directories,,, texinfo, GNU Texinfo}, for more details on 
changing the
 Info search path.)
 
 @item
address@hidden authorized substitutes
 To use substitutes from @code{hydra.gnu.org} or one of its mirrors
 (@pxref{Substitutes}), authorize them:
 
@@ -547,6 +551,7 @@ The following dependencies are optional:
 
 @itemize
 @item
address@hidden substitutes
 Installing @uref{http://gnutls.org/, GnuTLS-Guile} will allow you to
 access @code{https} URLs for substitutes, which is highly recommended
 (@pxref{Substitutes}).  It also allows you to access HTTPS URLs with the
@@ -577,6 +582,7 @@ following packages are also needed:
 C++11 standard.
 @end itemize
 
address@hidden state directory
 When configuring Guix on a system that already has a Guix installation,
 be sure to specify the same state directory as the existing installation
 using the @code{--localstatedir} option of the @command{configure}
@@ -585,6 +591,7 @@ GNU Coding Standards}).  The @command{configure} script 
protects against
 unintended misconfiguration of @var{localstatedir} so you do not
 inadvertently corrupt your store (@pxref{The Store}).
 
address@hidden nix
 When a working installation of @url{http://nixos.org/nix/, the Nix package
 manager} is available, you
 can instead configure Guix with @code{--disable-daemon}.  In that case,
@@ -603,6 +610,7 @@ your goal is to share the store with Nix.
 @node Running the Test Suite
 @section Running the Test Suite
 
address@hidden test suite
 After a successful @command{configure} and @code{make} run, it is a good
 idea to run the test suite.  It can help catch issues with the setup or
 environment, or bugs in Guix itself---and really, reporting test
@@ -688,6 +696,7 @@ the daemon to download pre-built binaries.
 @node Build Environment Setup
 @subsection Build Environment Setup
 
address@hidden build environment
 In a standard multi-user setup, Guix and its daemon---the
 @command{guix-daemon} program---are installed by the system
 administrator; @file{/gnu/store} is owned by @code{root} and
@@ -921,6 +930,7 @@ archives of files from the store (@pxref{Invoking guix 
archive}):
 @end example
 
 @noindent
address@hidden authorized substitutes
 Each build machine must authorize the key of the master machine so that
 it accepts store items it receives from the master:
 
@@ -1203,6 +1213,7 @@ versions may be incompatible.
 
 @subsection X11 Fonts
 
address@hidden fonts
 The majority of graphical applications use Fontconfig to locate and
 load fonts and perform X11-client-side rendering.  The @code{fontconfig}
 package in Guix looks for fonts in @file{$HOME/.guix-profile}
@@ -1222,6 +1233,7 @@ for Chinese languages:
 guix package -i font-adobe-source-han-sans:cn
 @end example
 
address@hidden @code{xterm}
 Older programs such as @command{xterm} do not use Fontconfig and instead
 rely on server-side font rendering.  Such programs require to specify a
 full name of a font using XLFD (X Logical Font Description), like this:
@@ -1237,11 +1249,13 @@ your Guix profile, you need to extend the font path of 
the X server:
 xset +fp ~/.guix-profile/share/fonts/truetype
 @end example
 
address@hidden @code{xlsfonts}
 After that, you can run @code{xlsfonts} (from @code{xlsfonts} package)
 to make sure your TrueType fonts are listed there.
 
 @subsection X.509 Certificates
 
address@hidden @code{nss-certs}
 The @code{nss-certs} package provides X.509 certificates, which allow
 programs to authenticate Web servers accessed over HTTPS.
 
@@ -1252,6 +1266,7 @@ information.
 
 @subsection Emacs Packages
 
address@hidden @code{emacs}
 When you install Emacs packages with Guix, the elisp files may be placed
 either in @file{$HOME/.guix-profile/share/emacs/site-lisp/} or in
 sub-directories of
@@ -1275,6 +1290,7 @@ option (@pxref{Init File,,, emacs, The GNU Emacs Manual}).
 @node Package Management
 @chapter Package Management
 
address@hidden packages
 The purpose of GNU Guix is to allow users to easily install, upgrade, and
 remove software packages, without having to know about their build
 procedures or dependencies.  Guix also goes beyond this obvious set of
@@ -1377,6 +1393,8 @@ package into their profile (@pxref{Invoking guix 
environment}).
 @node Invoking guix package
 @section Invoking @command{guix package}
 
address@hidden installing packages
address@hidden removing packages
 The @command{guix package} command is the tool that allows users to
 install, upgrade, and remove packages, as well as rolling back to
 previous configurations.  It operates only on the user's own profile,
@@ -1404,6 +1422,7 @@ whereby the user specifies the exact set of packages to 
be available and
 passes it @i{via} the @option{--manifest} option
 (@pxref{profile-manifest, @option{--manifest}}).
 
address@hidden profile
 For each user, a symlink to the user's default profile is automatically
 created in @file{$HOME/.guix-profile}.  This symlink always points to the
 current generation of the user's default profile.  Thus, users can add
@@ -1510,6 +1529,7 @@ and/or output name in addition to the package name.  For 
instance,
 
 @item address@hidden @dots{}]
 @itemx -u address@hidden @dots{}]
address@hidden upgrading packages
 Upgrade all the installed packages.  If one or more @var{regexp}s are
 specified, upgrade only installed packages whose name matches a
 @var{regexp}.  Also see the @code{--do-not-upgrade} option below.
@@ -1558,6 +1578,7 @@ of packages:
 @end example
 
 @item --roll-back
address@hidden rolling back
 Roll back to the previous @dfn{generation} of the profile---i.e., undo
 the last transaction.
 
@@ -1574,6 +1595,7 @@ generations in a profile is always linear.
 
 @item address@hidden
 @itemx -S @var{pattern}
address@hidden generations
 Switch to a particular generation defined by @var{pattern}.
 
 @var{pattern} may be either a generation number or a number prefixed
@@ -1755,6 +1777,7 @@ Multiple Outputs}), and the source location of its 
definition.
 
 @item address@hidden
 @itemx -l address@hidden
address@hidden generations
 Return a list of generations along with their creation dates; for each
 generation, show the installed packages, with the most recently
 installed packages shown last.  Note that the zeroth generation is never
@@ -1856,6 +1879,7 @@ your system has unpatched security vulnerabilities.
 
 @cindex security
 @cindex digital signatures
address@hidden authorized substitutes
 To allow Guix to download substitutes from @code{hydra.gnu.org} or a
 mirror thereof, you
 must add its public key to the access control list (ACL) of archive
@@ -1965,6 +1989,7 @@ like to discuss this project, join us on 
@email{guix-devel@@gnu.org}.
 
 @cindex multiple-output packages
 @cindex package outputs
address@hidden outputs
 
 Often, packages defined in Guix have a single @dfn{output}---i.e., the
 source package leads to exactly one directory in the store.  When running
@@ -1987,6 +2012,7 @@ which contains everything but the documentation, one 
would run:
 guix package -i glib
 @end example
 
address@hidden documentation
 The command to install its documentation is:
 
 @example
@@ -2016,6 +2042,7 @@ guix package}).
 @section Invoking @command{guix gc}
 
 @cindex garbage collector
address@hidden disk space
 Packages that are installed, but not used, may be @dfn{garbage-collected}.
 The @command{guix gc} command allows users to explicitly run the garbage
 collector to reclaim space from the @file{/gnu/store} directory.  It is
@@ -2098,6 +2125,7 @@ In addition, the references among existing store files 
can be queried:
 
 @item --references
 @itemx --referrers
address@hidden package dependencies
 List the references (respectively, the referrers) of store files given
 as arguments.
 
@@ -2160,6 +2188,7 @@ this option is primarily useful when the daemon was 
running with
 @node Invoking guix pull
 @section Invoking @command{guix pull}
 
address@hidden upgrading
 Packages are installed or upgraded to the latest version available in
 the distribution currently available on your local machine.  To update
 that distribution, along with the Guix tools, you must run @command{guix
@@ -2207,6 +2236,7 @@ from the store into a single archive, and to later 
@dfn{import} them.
 In particular, it allows store files to be transferred from one machine
 to the store on another machine.
 
address@hidden exporting
 To export store files as an archive to standard output, run:
 
 @example
@@ -6481,6 +6511,8 @@ ifconfig @var{interface} up
 @end example
 
 @item Wireless connection
address@hidden wireless
address@hidden wifi
 To configure wireless networking, you can create a configuration file
 for the @command{wpa_supplicant} configuration tool (its location is not
 important) using one of the available text editors such as
@@ -6513,6 +6545,7 @@ wpa_supplicant -c wpa_supplicant.conf -i @var{interface} 
-B
 Run @command{man wpa_supplicant} for more information.
 @end table
 
address@hidden DHCP
 At this point, you need to acquire an IP address.  On a network where IP
 addresses are automatically assigned @i{via} DHCP, you can run:
 
@@ -6721,6 +6754,7 @@ that.
 @node Building the Installation Image
 @subsection Building the Installation Image
 
address@hidden installation image
 The installation image described above was built using the @command{guix
 system} command, specifically:
 
@@ -6835,6 +6869,7 @@ version:
 
 @unnumberedsubsubsec System Services
 
address@hidden services
 @vindex %base-services
 The @code{services} field lists @dfn{system services} to be made
 available when the system starts (@pxref{Services}).
@@ -6989,6 +7024,7 @@ the command-line of the kernel---e.g., 
@code{("console=ttyS0")}.
 The system bootloader configuration object.  @xref{GRUB Configuration}.
 
 @item @code{initrd} (default: @code{base-initrd})
address@hidden initrd
 A two-argument monadic procedure that returns an initial RAM disk for
 the Linux kernel.  @xref{Initial RAM Disk}.
 
@@ -7380,6 +7416,7 @@ automatically later.
 @node User Accounts
 @subsection User Accounts
 
address@hidden users
 User accounts and groups are entirely managed through the
 @code{operating-system} declaration.  They are specified with the
 @code{user-account} and @code{user-group} forms:
@@ -7413,6 +7450,7 @@ be specified:
 The name of the user account.
 
 @item @code{group}
address@hidden groups
 This is the name (a string) or identifier (a number) of the user group
 this account belongs to.
 
@@ -7461,6 +7499,7 @@ Manual}, for information on Guile's @code{crypt} 
procedure.
 @end table
 @end deftp
 
address@hidden groups
 User group declarations are even simpler:
 
 @example
@@ -7748,6 +7787,7 @@ This is the data type representing the configuration of 
login.
 @table @asis
 
 @item @code{motd}
address@hidden message of the day
 A file-like object containing the ``message of the day''.
 
 @item @code{allow-empty-passwords?} (default: @code{#t})
@@ -7918,6 +7958,8 @@ external name servers do not even need to be queried.
 @end defvr
 
 @anchor{syslog-configuration-type}
address@hidden syslog
address@hidden logging
 @deftp {Data Type} syslog-configuration
 This data type represents the configuration of the syslog daemon.
 
@@ -7932,6 +7974,7 @@ The syslog configuration file to use.
 @end deftp
 
 @anchor{syslog-service}
address@hidden syslog
 @deffn {Scheme Procedure} syslog-service @var{config}
 Return a service that runs a syslog daemon according to @var{config}.
 
@@ -7955,6 +7998,7 @@ Name of the group for build user accounts.
 Number of build user accounts to create.
 
 @item @code{authorize-key?} (default: @code{#t})
address@hidden authorized substitutes
 Whether to authorize the substitute keys listed in
 @code{authorized-keys}---by default that of @code{hydra.gnu.org}
 (@pxref{Substitutes}).
@@ -8001,6 +8045,8 @@ This is the name of the file where some random bytes are 
saved by
 It defaults to @file{/var/lib/random-seed}.
 @end defvr
 
address@hidden keymap
address@hidden keyboard
 @deffn {Scheme Procedure} console-keymap-service @var{files} ...
 @cindex keyboard layout
 Return a service to load console keymaps from @var{files} using
@@ -8022,6 +8068,8 @@ See @code{man loadkeys} for details.
 
 @end deffn
 
address@hidden mouse
address@hidden gpm
 @deffn {Scheme Procedure} gpm-service [#:gpm @var{gpm}] @
           [#:options]
 Run @var{gpm}, the general-purpose mouse daemon, with the given
@@ -8083,6 +8131,7 @@ commonly used for real-time audio systems.
 @subsubsection Scheduled Job Execution
 
 @cindex cron
address@hidden mcron
 @cindex scheduling jobs
 The @code{(gnu services mcron)} module provides an interface to
 address@hidden, a daemon to run jobs at scheduled times (@pxref{Top,,,
@@ -8178,6 +8227,7 @@ specifications,, mcron, address@hidden).
 
 @cindex rottlog
 @cindex log rotation
address@hidden logging
 Log files such as those found in @file{/var/log} tend to grow endlessly,
 so it's a good idea to @dfn{rotate} them once in a while---i.e., archive
 their contents in separate files, possibly compressed.  The @code{(gnu
@@ -8272,6 +8322,8 @@ gateway.
 @end deffn
 
 @cindex wicd
address@hidden wireless
address@hidden wifi
 @cindex network management
 @deffn {Scheme Procedure} wicd-service [#:wicd @var{wicd}]
 Return a service that runs @url{https://launchpad.net/wicd,Wicd}, a network
@@ -8301,6 +8353,8 @@ several the @command{connmanctl} command to interact with 
the daemon and
 configure networking."
 @end deffn
 
address@hidden NTP
address@hidden real time clock
 @deffn {Scheme Procedure} ntp-service [#:ntp @var{ntp}] @
   [#:servers @var{%ntp-servers}] @
   [#:allow-large-adjustment? #f]
@@ -8315,6 +8369,7 @@ make an initial adjustment of more than 1,000 seconds.
 List of host names used as the default NTP servers.
 @end defvr
 
address@hidden tor
 @deffn {Scheme Procedure} tor-service address@hidden [#:tor @var{tor}]
 Return a service to run the @uref{https://torproject.org, Tor} anonymous
 networking daemon.
@@ -8362,6 +8417,7 @@ configuration file.
 @end deffn
 
 Furthermore, @code{(gnu services ssh)} provides the following services.
address@hidden ssh
 
 @deffn {Scheme Procedure} lsh-service [#:host-key "/etc/lsh/host-key"] @
        [#:daemonic? #t] [#:interfaces '()] [#:port-number 22] @
@@ -8399,6 +8455,7 @@ root.
 The other options should be self-descriptive.
 @end deffn
 
address@hidden ssh
 @deffn {Scheme Variable} openssh-service-type
 This is the type for the @uref{http://www.openssh.org, OpenSSH} secure
 shell daemon, @command{sshd}.  Its value must be an
@@ -8562,6 +8619,8 @@ sockets.
 @node X Window
 @subsubsection X Window
 
address@hidden X11
address@hidden X Window System
 Support for the X Window graphical display system---specifically
 Xorg---is provided by the @code{(gnu services xorg)} module.  Note that
 there is no @code{xorg-service} procedure.  Instead, the X server is
@@ -8659,6 +8718,7 @@ Relogin after logout.
 @end table
 @end deftp
 
address@hidden login manager
 @deffn {Scheme Procedure} sddm-service config
 Return a service that spawns the SDDM graphical login manager for config of
 type @code{<sddm-configuration>}.
@@ -9005,6 +9065,8 @@ Users need to be in the @code{lp} group to access the 
D-Bus service.
 @node Database Services
 @subsubsection Database Services
 
address@hidden database
address@hidden SQL
 The @code{(gnu services databases)} module provides the following services.
 
 @deffn {Scheme Procedure} postgresql-service [#:postgresql postgresql] @
@@ -9041,6 +9103,8 @@ For MariaDB, the root password is empty.
 @node Mail Services
 @subsubsection Mail Services
 
address@hidden mail
address@hidden email
 The @code{(gnu services mail)} module provides Guix service definitions
 for mail services.  Currently the only implemented service is Dovecot,
 an IMAP, POP3, and LMTP server.
@@ -10444,6 +10508,9 @@ Local accounts with lower values will silently fail to 
authenticate.
 @node Web Services
 @subsubsection Web Services
 
address@hidden web
address@hidden www
address@hidden http
 The @code{(gnu services web)} module provides the following service:
 
 @deffn {Scheme Procedure} nginx-service [#:nginx nginx] @
@@ -10659,6 +10726,7 @@ resolution when the graphical console window resizes.
 @end deffn
 
 @subsubsection Dictionary Services
address@hidden dictionary
 The @code{(gnu services dict)} module provides the following service:
 
 @deffn {Scheme Procedure} dicod-service [#:config (dicod-configuration)]
@@ -11027,6 +11095,7 @@ Now that you know all the features that initial RAM 
disks produced by
 @code{base-initrd} provide, here is how to use it and customize it
 further.
 
address@hidden initrd
 @deffn {Monadic Procedure} base-initrd @var{file-systems} @
        [#:qemu-networking? #f] [#:virtio? #t] [#:volatile-root? #f] @
        [#:extra-modules '()] [#:mapped-devices '()]
@@ -11229,6 +11298,7 @@ once @command{reconfigure} has completed.
 @end quotation
 
 @item switch-generation
address@hidden generations
 Switch to an existing system generation.  This action atomically
 switches the system profile to the specified system generation.  It also
 rearranges the system's existing GRUB menu entries.  It makes the menu
@@ -11265,6 +11335,7 @@ deactivating services.
 This action will fail if the specified generation does not exist.
 
 @item roll-back
address@hidden rolling back
 Switch to the preceding system generation.  The next time the system
 boots, it will use the preceding system generation.  This is the inverse
 of @command{reconfigure}, and it is exactly the same as invoking
@@ -11484,11 +11555,13 @@ example graph.
 @node Running GuixSD in a VM
 @subsection Running GuixSD in a Virtual Machine
 
address@hidden virtual machine
 One way to run GuixSD in a virtual machine (VM) is to build a GuixSD
 virtual machine image using @command{guix system vm-image}
 (@pxref{Invoking guix system}).  The returned image is in qcow2 format,
 which the @uref{http://qemu.org/, QEMU emulator} can efficiently use.
 
address@hidden QEMU
 To run the image in QEMU, copy it out of the store (@pxref{The Store})
 and give yourself permission to write to the copy.  When invoking QEMU,
 you must choose a system emulator that is suitable for your hardware
@@ -11544,6 +11617,7 @@ network connectivity, like for example @command{curl}.
 
 @subsubsection Connecting Through SSH
 
address@hidden ssh
 To enable SSH inside a VM you need to add a SSH server like 
@code{(dropbear-service)}
 or @code{(lsh-service)} to your VM.  The @code{(lsh-service}) doesn't currently
 boot unsupervised.  It requires you to type some characters to initialize the
@@ -11982,6 +12056,7 @@ extend it by passing it lists of packages to add to the 
system profile.
 @node Shepherd Services
 @subsubsection Shepherd Services
 
address@hidden shepherd services
 @cindex PID 1
 @cindex init system
 The @code{(gnu services shepherd)} module provides a way to define
@@ -12306,6 +12381,7 @@ bootstrap)} module.  For more information on 
bootstrapping,
 @node Packaging Guidelines
 @section Packaging Guidelines
 
address@hidden packages, creating
 The GNU distribution is nascent and may well lack some of your favorite
 packages.  This section describes how you can help make the distribution
 grow.  @xref{Contributing}, for additional information on how you can
@@ -12383,7 +12459,7 @@ needed is to review and apply the patch.
 @subsection Software Freedom
 
 @c Adapted from http://www.gnu.org/philosophy/philosophy.html.
-
address@hidden free software
 The GNU operating system has been developed so that users can have
 freedom in their computing.  GNU is @dfn{free software}, meaning that
 users have the @url{http://www.gnu.org/philosophy/free-sw.html,four
@@ -12410,6 +12486,7 @@ upstream source.
 @node Package Naming
 @subsection Package Naming
 
address@hidden package name
 A package has actually two names associated with it:
 First, there is the name of the @emph{Scheme variable}, the one following
 @code{define-public}.  By this name, the package can be made known in the
@@ -12434,6 +12511,7 @@ Font package names are handled differently, 
@pxref{Fonts}.
 @node Version Numbers
 @subsection Version Numbers
 
address@hidden package version
 We usually package only the latest version of a given free software
 project.  But sometimes, for instance for incompatible library versions,
 two (or more) versions of the same package are needed.  These require
@@ -12526,6 +12604,8 @@ definition may look like this:
 @node Synopses and Descriptions
 @subsection Synopses and Descriptions
 
address@hidden package description
address@hidden package synopsis
 As we have seen before, each package in address@hidden includes a
 synopsis and a description (@pxref{Defining Packages}).  Synopses and
 descriptions are important: They are what @command{guix package
@@ -12592,6 +12672,7 @@ for the X11 resize-and-rotate (RandR) extension. 
@dots{}")
 @node Python Modules
 @subsection Python Modules
 
address@hidden python
 We currently package Python 2 and Python 3, under the Scheme variable names
 @code{python-2} and @code{python} as explained in @ref{Version Numbers}.
 To avoid confusion and naming clashes with other programming languages, it
@@ -12662,6 +12743,7 @@ size}}).
 @node Perl Modules
 @subsection Perl Modules
 
address@hidden perl
 Perl programs standing for themselves are named as any other package,
 using the lowercase upstream name.
 For Perl packages containing a single class, we use the lowercase class name,
@@ -12677,6 +12759,7 @@ prefix.  For instance, @code{libwww-perl} becomes 
@code{perl-libwww}.
 @node Java Packages
 @subsection Java Packages
 
address@hidden java
 Java programs standing for themselves are named as any other package,
 using the lowercase upstream name.
 
@@ -12696,6 +12779,7 @@ dashes and prepend the prefix @code{java-}.  So the 
class
 @node Fonts
 @subsection Fonts
 
address@hidden fonts
 For fonts that are in general not installed by a user for typesetting
 purposes, or that are distributed as part of a larger software package,
 we rely on the general packaging rules for software; for instance, this
@@ -12869,6 +12953,7 @@ implicitly used by any package that uses 
@code{gnu-build-system}
 
 @unnumberedsubsec Building the Bootstrap Binaries
 
address@hidden bootstrap binaries
 Because the final tool chain does not depend on the bootstrap binaries,
 those rarely need to be updated.  Nevertheless, it is useful to have an
 automated way to produce them, should an update occur, and this is what
-- 
2.1.4




reply via email to

[Prev in Thread] Current Thread [Next in Thread]