Subject: [PATCH] doc: Make 'sudo -E ./pre-inst-env guix-daemon' example less prominent.

From: Marius Bakke <[email-masked]>
Date: Fri, 29 May 2020 17:00:03 +0200

* doc/contributing.texi (Running Guix Before It Is Installed): Move
'./pre-inst-env guix-daemon' example after the mention of GUILE_LOAD_PATH &
co, because running the daemon from the checkout frequently trips new users.
Additionally clarify that sudo must be setuid.
---
 doc/contributing.texi | 15 ++++++++++-----
 1 file changed, 10 insertions(+), 5 deletions(-)

diff --git a/doc/contributing.texi b/doc/contributing.texi
index 88128e5498..d9e54dd23b 100644
--- a/doc/contributing.texi
+++ b/doc/contributing.texi
@@ -161,13 +161,8 @@ 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}).
-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.}:
 
 @example
-$ sudo -E ./pre-inst-env guix-daemon --build-users-group=guixbuild
 $ ./pre-inst-env guix build hello
 @end example
 
@@ -205,6 +200,16 @@ $1 = 361
 The @command{pre-inst-env} script sets up all the environment variables
 necessary to support this, including @env{PATH} and @env{GUILE_LOAD_PATH}.
 
+When root privileges are required, use the @option{-E} argument to
+@command{sudo} to preserve the environment@footnote{Additionally, make sure
+to use the installed @command{sudo} such as @file{/run/setuid-programs/sudo}
+instead of the @code{sudo} package, otherwise sudo won't be able to elevate
+privileges}.  E.g. if you are testing changes to @command{guix-daemon}:
+
+@example
+$ sudo -E ./pre-inst-env guix-daemon --build-users-group=guixbuild
+@end example
+
 Note that @command{./pre-inst-env guix pull} does @emph{not} upgrade the
 local source tree; it simply updates the @file{~/.config/guix/current}
 symlink (@pxref{Invoking guix pull}).  Run @command{git pull} instead if
-- 
2.26.2