summary refs log tree commit diff
path: root/doc
diff options
context:
space:
mode:
Diffstat (limited to 'doc')
-rw-r--r--doc/guix.texi114
-rw-r--r--doc/local.mk84
2 files changed, 153 insertions, 45 deletions
diff --git a/doc/guix.texi b/doc/guix.texi
index d88cc256d7..b9bf986640 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -336,6 +336,13 @@ manager, which can be done on top of a running GNU/Linux system.  If,
 instead, you want to install the complete GNU operating system,
 @pxref{System Installation}.
 
+@cindex foreign distro
+When installed on a running GNU/Linux system---thereafter called a
+@dfn{foreign distro}---GNU@tie{}Guix complements the available tools
+without interference.  Its data lives exclusively in two directories,
+usually @file{/gnu/store} and @file{/var/guix}; other files on your
+system, such as @file{/etc}, are left untouched.
+
 @menu
 * Binary Installation::         Getting Guix running in no time!
 * Requirements::                Software needed to build and run Guix.
@@ -375,7 +382,7 @@ If that command fails because you do not have the required public key,
 then run this command to import it:
 
 @example
-$ gpg --keyserver keys.gnupg.net --recv-keys 090B11993D9AEBB5
+$ gpg --keyserver pgp.mit.edu --recv-keys 090B11993D9AEBB5
 @end example
 
 @noindent
@@ -998,6 +1005,10 @@ consecutive build results are not bit-for-bit identical.  Note that this
 setting can be overridden by clients such as @command{guix build}
 (@pxref{Invoking guix build}).
 
+When used in conjunction with @option{--keep-failed}, the differing
+output is kept in the store, under @file{/gnu/store/@dots{}-check}.
+This makes it easy to look for differences between the two results.
+
 @item --debug
 Produce debugging output.
 
@@ -1092,6 +1103,7 @@ daemons on the same machine.
 @node Application Setup
 @section Application Setup
 
+@cindex foreign distro
 When using Guix on top of GNU/Linux distribution other than GuixSD---a
 so-called @dfn{foreign distro}---a few additional steps are needed to
 get everything in place.  Here are some of them.
@@ -3082,7 +3094,7 @@ Store Monad}).
 
 @cindex derivations
 Low-level build actions and the environment in which they are performed
-are represented by @dfn{derivations}.  A derivation contain the
+are represented by @dfn{derivations}.  A derivation contains the
 following pieces of information:
 
 @itemize
@@ -4332,6 +4344,10 @@ substitutes are genuine (@pxref{Substitutes}), or whether the build result
 of a package is deterministic.  @xref{Invoking guix challenge}, for more
 background information and tools.
 
+When used in conjunction with @option{--keep-failed}, the differing
+output is kept in the store, under @file{/gnu/store/@dots{}-check}.
+This makes it easy to look for differences between the two results.
+
 @item --derivations
 @itemx -d
 Return the derivation paths, not the output paths, of the given
@@ -5058,6 +5074,24 @@ reports information based on the available substitutes
 (@pxref{Substitutes}).  This makes it possible it to profile disk usage of
 store items that are not even on disk, only available remotely.
 
+You can also specify several package names:
+
+@example
+$ guix size coreutils grep sed bash
+store item                               total    self
+/gnu/store/@dots{}-coreutils-8.24          77.8    13.8  13.4%
+/gnu/store/@dots{}-grep-2.22               73.1     0.8   0.8%
+/gnu/store/@dots{}-bash-4.3.42             72.3     4.7   4.6%
+/gnu/store/@dots{}-readline-6.3            67.6     1.2   1.2%
+@dots{}
+total: 102.3 MiB
+@end example
+
+@noindent
+In this example we see that the combination of the four packages takes
+102.3@tie{}MiB in total, which is much less than the sum of each closure
+since they have a lot of dependencies in common.
+
 The available options are:
 
 @table @option
@@ -5948,6 +5982,11 @@ dependencies of your system configuration can be downloaded.  See the
 ``Networking'' section below.
 @end quotation
 
+The installation system includes many common tools needed for this task.
+But it is also a full-blown GuixSD system, which means that you can
+install additional packages, should you need it, using @command{guix
+package} (@pxref{Invoking guix package}).
+
 @subsubsection Keyboard Layout
 
 @cindex keyboard layout
@@ -5971,6 +6010,13 @@ Run the following command see what your network interfaces are called:
 ifconfig -a
 @end example
 
+@noindent
+@dots{} or, using the GNU/Linux-specific @command{ip} command:
+
+@example
+ip a
+@end example
+
 @c http://cgit.freedesktop.org/systemd/systemd/tree/src/udev/udev-builtin-net_id.c#n20
 Wired interfaces have a name starting with @samp{e}; for example, the
 interface corresponding to the first on-board Ethernet controller is
@@ -7337,6 +7383,17 @@ Return a service that runs the Guix build daemon according to
 Run @var{udev}, which populates the @file{/dev} directory dynamically.
 @end deffn
 
+@deffn {Scheme Procedure} urandom-seed-service @var{#f}
+Save some entropy in @var{%random-seed-file} to seed @file{/dev/urandom}
+when rebooting.
+@end deffn
+
+@defvr {Scheme Variable} %random-seed-file
+This is the name of the file where some random bytes are saved by
+@var{urandom-seed-service} to seed @file{/dev/urandom} when rebooting.
+It defaults to @file{/var/lib/random-seed}.
+@end defvr
+
 @deffn {Scheme Procedure} console-keymap-service @var{files} ...
 @cindex keyboard layout
 Return a service to load console keymaps from @var{files} using
@@ -9338,6 +9395,55 @@ Finally, @var{extra-options} is a list of additional command-line options
 passed to @command{lircd}.
 @end deffn
 
+@subsubsection Dictionary Services
+The @code{(gnu services dict)} module provides the following service:
+
+@deffn {Scheme Procedure} dicod-service [#:config (dicod-configuration)]
+Return a service that runs the @command{dicod} daemon, an implementation
+of DICT server (@pxref{Dicod,,, dico, GNU Dico Manual}).
+
+The optional @var{config} argument specifies the configuration for
+@command{dicod}, which should be a @code{<dicod-configuration>} object, by
+default it serves the GNU Collaborative International Dictonary of English.
+
+You can add @command{open localhost} to your @file{~/.dico} file to make
+@code{localhost} the default server for @command{dico} client
+(@pxref{Initialization File,,, dico, GNU Dico Manual}).
+@end deffn
+
+@deftp {Data Type} dicod-configuration
+Data type representing the configuration of dicod.
+
+@table @asis
+@item @code{dico} (default: @var{dico})
+Package object of the GNU Dico dictionary server.
+
+@item @code{databases} (default: @var{(list %dicod-database:gcide)})
+List of @code{<dicod-database>} objects denoting dictionaries to be served.
+@end table
+@end deftp
+
+@deftp {Data Type} dicod-database
+Data type representing a dictionary database.
+
+@table @asis
+@item @code{name}
+Name of the database, will be used in DICT commands.
+
+@item @code{module}
+Name of the dicod module used by this database
+(@pxref{Modules,,, dico, GNU Dico Manual}).
+
+@item @code{options}
+List of strings or gexps representing the arguments for the module handler
+(@pxref{Handlers,,, dico, GNU Dico Manual}).
+@end table
+@end deftp
+
+@defvr {Scheme Variable} %dicod-database:gcide
+A @code{<dicod-database>} object serving the GNU Collaborative International
+Dictonary of English using the @code{gcide} package.
+@end defvr
 
 @node Setuid Programs
 @subsection Setuid Programs
@@ -11068,7 +11174,9 @@ packages with the corresponding names.
 
 If a project already contains the word @code{python}, we drop this;
 for instance, the module python-dateutil is packaged under the names
-@code{python-dateutil} and @code{python2-dateutil}.
+@code{python-dateutil} and @code{python2-dateutil}.  If the project name
+starts with @code{py} (e.g. @code{pytz}), we keep it and prefix it as
+described above.
 
 
 @node Perl Modules
diff --git a/doc/local.mk b/doc/local.mk
index b9f07c3590..64bd2a5169 100644
--- a/doc/local.mk
+++ b/doc/local.mk
@@ -20,49 +20,49 @@
 # You should have received a copy of the GNU General Public License
 # along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 
-info_TEXINFOS = doc/guix.texi
+info_TEXINFOS = %D%/guix.texi
 
 DOT_FILES =					\
-  doc/images/bootstrap-graph.dot		\
-  doc/images/bootstrap-packages.dot		\
-  doc/images/coreutils-graph.dot		\
-  doc/images/coreutils-bag-graph.dot		\
-  doc/images/service-graph.dot			\
-  doc/images/shepherd-graph.dot
+  %D%/images/bootstrap-graph.dot		\
+  %D%/images/bootstrap-packages.dot		\
+  %D%/images/coreutils-graph.dot		\
+  %D%/images/coreutils-bag-graph.dot		\
+  %D%/images/service-graph.dot			\
+  %D%/images/shepherd-graph.dot
 
 DOT_VECTOR_GRAPHICS =				\
   $(DOT_FILES:%.dot=%.eps)			\
   $(DOT_FILES:%.dot=%.pdf)
 
 EXTRA_DIST +=					\
-  doc/htmlxref.cnf				\
-  doc/contributing.texi				\
-  doc/emacs.texi				\
-  doc/fdl-1.3.texi				\
+  %D%/htmlxref.cnf				\
+  %D%/contributing.texi				\
+  %D%/emacs.texi				\
+  %D%/fdl-1.3.texi				\
   $(DOT_FILES)					\
   $(DOT_VECTOR_GRAPHICS)			\
-  doc/images/coreutils-size-map.eps		\
-  doc/environment-gdb.scm			\
-  doc/package-hello.scm
+  %D%/images/coreutils-size-map.eps		\
+  %D%/environment-gdb.scm			\
+  %D%/package-hello.scm
 
 OS_CONFIG_EXAMPLES_TEXI =			\
-  doc/os-config-bare-bones.texi			\
-  doc/os-config-desktop.texi			\
-  doc/os-config-lightweight-desktop.texi
+  %D%/os-config-bare-bones.texi			\
+  %D%/os-config-desktop.texi			\
+  %D%/os-config-lightweight-desktop.texi
 
 # Bundle this file so that makeinfo finds it in out-of-source-tree builds.
 BUILT_SOURCES        += $(OS_CONFIG_EXAMPLES_TEXI)
 EXTRA_DIST           += $(OS_CONFIG_EXAMPLES_TEXI)
 MAINTAINERCLEANFILES  = $(OS_CONFIG_EXAMPLES_TEXI)
 
-doc/os-config-%.texi: gnu/system/examples/%.tmpl
+%D%/os-config-%.texi: gnu/system/examples/%.tmpl
 	$(AM_V_GEN)$(MKDIR_P) "`dirname $@`";	\
 	cp "$<" "$@"
 
 infoimagedir = $(infodir)/images
 dist_infoimage_DATA =				\
   $(DOT_FILES:%.dot=%.png)			\
-  doc/images/coreutils-size-map.png
+  %D%/images/coreutils-size-map.png
 
 # Try hard to obtain an image size and aspect that's reasonable for inclusion
 # in an Info or PDF document.
@@ -86,13 +86,13 @@ DOT_OPTIONS =					\
 	$(AM_V_GEN)convert "$<" "$@-tmp.eps"; \
 	mv "$@-tmp.eps" "$@"
 
-# We cannot add new dependencies to `doc/guix.pdf' & co. (info "(automake)
+# We cannot add new dependencies to `%D%/guix.pdf' & co. (info "(automake)
 # Extending").  Using the `-local' rules is imperfect, because they may be
 # triggered after the main rule.  Oh, well.
 pdf-local: $(DOT_FILES=%.dot=$(top_srcdir)/%.pdf)
 info-local: $(DOT_FILES=%.dot=$(top_srcdir)/%.png)
 ps-local: $(DOT_FILES=%.dot=$(top_srcdir)/%.eps)		\
-	  $(top_srcdir)/doc/images/coreutils-size-map.eps
+	  $(top_srcdir)/%D%/images/coreutils-size-map.eps
 dvi-local: ps-local
 
 ## ----------- ##
@@ -106,25 +106,25 @@ dvi-local: ps-local
 # They are built in $(srcdir) like info manuals.
 
 sub_commands_mans =				\
-  $(srcdir)/doc/guix-archive.1			\
-  $(srcdir)/doc/guix-build.1			\
-  $(srcdir)/doc/guix-challenge.1		\
-  $(srcdir)/doc/guix-download.1			\
-  $(srcdir)/doc/guix-edit.1			\
-  $(srcdir)/doc/guix-environment.1		\
-  $(srcdir)/doc/guix-gc.1			\
-  $(srcdir)/doc/guix-hash.1			\
-  $(srcdir)/doc/guix-import.1			\
-  $(srcdir)/doc/guix-lint.1			\
-  $(srcdir)/doc/guix-package.1			\
-  $(srcdir)/doc/guix-publish.1			\
-  $(srcdir)/doc/guix-pull.1			\
-  $(srcdir)/doc/guix-refresh.1			\
-  $(srcdir)/doc/guix-size.1			\
-  $(srcdir)/doc/guix-system.1
+  $(srcdir)/%D%/guix-archive.1			\
+  $(srcdir)/%D%/guix-build.1			\
+  $(srcdir)/%D%/guix-challenge.1		\
+  $(srcdir)/%D%/guix-download.1			\
+  $(srcdir)/%D%/guix-edit.1			\
+  $(srcdir)/%D%/guix-environment.1		\
+  $(srcdir)/%D%/guix-gc.1			\
+  $(srcdir)/%D%/guix-hash.1			\
+  $(srcdir)/%D%/guix-import.1			\
+  $(srcdir)/%D%/guix-lint.1			\
+  $(srcdir)/%D%/guix-package.1			\
+  $(srcdir)/%D%/guix-publish.1			\
+  $(srcdir)/%D%/guix-pull.1			\
+  $(srcdir)/%D%/guix-refresh.1			\
+  $(srcdir)/%D%/guix-size.1			\
+  $(srcdir)/%D%/guix-system.1
 
 dist_man1_MANS =				\
-  $(srcdir)/doc/guix.1				\
+  $(srcdir)/%D%/guix.1				\
   $(sub_commands_mans)
 
 gen_man =						\
@@ -133,14 +133,14 @@ gen_man =						\
 
 HELP2MANFLAGS = --source=GNU --info-page=$(PACKAGE_TARNAME)
 
-$(srcdir)/doc/guix.1: scripts/guix.in $(sub_commands_mans)
+$(srcdir)/%D%/guix.1: scripts/guix.in $(sub_commands_mans)
 	-$(AM_V_HELP2MAN)$(gen_man) --output="$@" `basename "$@" .1`
 
 # The 'case' ensures the man pages are only generated if the corresponding
 # source script (the first prerequisite) has been changed.  The $(GOBJECTS)
 # prerequisite is solely meant to force these docs to be made only after all
 # Guile modules have been compiled.
-$(srcdir)/doc/guix-%.1: guix/scripts/%.scm $(GOBJECTS)
+$(srcdir)/%D%/guix-%.1: guix/scripts/%.scm $(GOBJECTS)
 	-@case '$?' in \
 	  *$<*) $(AM_V_P) && set -x || echo "  HELP2MAN $@"; \
 	        $(gen_man) --output="$@" "guix $*";; \
@@ -149,9 +149,9 @@ $(srcdir)/doc/guix-%.1: guix/scripts/%.scm $(GOBJECTS)
 
 if BUILD_DAEMON
 
-dist_man1_MANS += $(srcdir)/doc/guix-daemon.1
+dist_man1_MANS += $(srcdir)/%D%/guix-daemon.1
 
-$(srcdir)/doc/guix-daemon.1: nix/nix-daemon/guix-daemon.cc
+$(srcdir)/%D%/guix-daemon.1: nix/nix-daemon/guix-daemon.cc
 	-$(AM_V_HELP2MAN)$(gen_man) --output="$@" `basename "$@" .1`
 
 endif