From 0636742b774876382da99b182ee39e4ac1944f48 Mon Sep 17 00:00:00 2001 From: Florian Pelz Date: Sat, 13 Jul 2019 08:29:26 +0200 Subject: [PATCH] doc: Reorder and clarify contributing instructions. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * doc/contributing.texi (Building from Git, Running Guix Before It Is Installed): Make instructions using Guix come first and clarify which code is an instruction and which is merely an example. Signed-off-by: Ludovic Courtès --- doc/contributing.texi | 36 +++++++++++++++++++----------------- 1 file changed, 19 insertions(+), 17 deletions(-) diff --git a/doc/contributing.texi b/doc/contributing.texi index 7f2301409a..59917193f1 100644 --- a/doc/contributing.texi +++ b/doc/contributing.texi @@ -38,19 +38,6 @@ version from the Git repository: git clone https://git.savannah.gnu.org/git/guix.git @end example -When building Guix from a checkout, -the following packages are required in addition to those mentioned in -the installation instructions (@pxref{Requirements}). - -@itemize -@item @url{http://gnu.org/software/autoconf/, GNU Autoconf}; -@item @url{http://gnu.org/software/automake/, GNU Automake}; -@item @url{http://gnu.org/software/gettext/, GNU Gettext}; -@item @url{http://gnu.org/software/texinfo/, GNU Texinfo}; -@item @url{http://www.graphviz.org/, Graphviz}; -@item @url{http://www.gnu.org/software/help2man/, GNU Help2man (optional)}. -@end itemize - The easiest way to set up a development environment for Guix is, of course, by using Guix! The following command starts a new shell where all the dependencies and appropriate environment variables are set up to @@ -61,7 +48,22 @@ guix environment guix --pure @end example @xref{Invoking guix environment}, for more information on that command. -Extra dependencies can be added with @option{--ad-hoc}: + +If you are unable to use Guix when building Guix from a checkout, the +following are the required packages in addition to those mentioned in the +installation instructions (@pxref{Requirements}). + +@itemize +@item @url{http://gnu.org/software/autoconf/, GNU Autoconf}; +@item @url{http://gnu.org/software/automake/, GNU Automake}; +@item @url{http://gnu.org/software/gettext/, GNU Gettext}; +@item @url{http://gnu.org/software/texinfo/, GNU Texinfo}; +@item @url{http://www.graphviz.org/, Graphviz}; +@item @url{http://www.gnu.org/software/help2man/, GNU Help2man (optional)}. +@end itemize + +On Guix, extra dependencies can be added by instead running @command{guix +environment} with @option{--ad-hoc}: @example guix environment guix --pure --ad-hoc help2man git strace @@ -113,8 +115,8 @@ run @code{make install}. To do that, you first need to have an environment with all the dependencies available (@pxref{Building from Git}), and then simply prefix each command with @command{./pre-inst-env} (the @file{pre-inst-env} script lives in the -top build tree of Guix; it is generated by @command{./configure}), -as in@footnote{The @option{-E} flag to +top build tree of Guix; it is generated by @command{./configure}). +An example@footnote{The @option{-E} flag to @command{sudo} guarantees that @code{GUILE_LOAD_PATH} is correctly set such that @command{guix-daemon} and the tools it uses can find the Guile modules they need.}: @@ -125,7 +127,7 @@ $ ./pre-inst-env guix build hello @end example @noindent -Similarly, for a Guile session using the Guix modules: +Similarly, an example for a Guile session using the Guix modules: @example $ ./pre-inst-env guile -c '(use-modules (guix utils)) (pk (%current-system))'