aboutsummaryrefslogtreecommitdiff
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