Subject: bug#37347: 'guix environment' fails after trying to follow the steps from "Running Guix Before It Is Installed" page

From: Jan <[email-masked]>
Date: Mon, 9 Sep 2019 02:49:17 +0200

Hi, I'm a new Guix user and I wanted to hack on Guix and update a
package, I hadn't known exactly how to do this, so I started following
instructions from
https://guix.gnu.org/manual/en/html_node/Running-Guix-Before-It-Is-Installed.html#Running-Guix-Before-It-Is-Installed
and
https://guix.gnu.org/blog/2018/a-packaging-tutorial-for-guix/

The situation started to be interesting, when the tutorial told me to
run "cd $GUIX_CHECKOUT" and "./pre-inst-env guix package
--list-available=ruby"
I was confused, because I couldn't find any "./pre-inst-env" file, so I
used 'find' to search for it and there were one file with a similar name
in $GUIX_CHECKOUT/build-aux - ./pre-inst-env.in (as I'm composing this
email now I see that's stupid, but I tried using this file, as I don't
know what I was doing (still don't know))
So I started running the following stupid commands:

----------------
user@machine ~/Prog/repo/guix [env]$ sudo -E ./pre-inst-env.in
guix-daemon --build-users-group=guixbuild

sudo: /gnu/store/z26h622slm8p61myhk45v3jjg8p7qm8z-profile/bin/sudo must
be owned by uid 0 and have the setuid bit set 

user@machine ~/Prog/repo/guix [env]$ ./pre-inst-env.in
bash: ./pre-inst-env.in: No such file or directory 
user@machine ~/Prog/repo/guix [env]$ cd build-aux/ 
user@machine ~/Prog/repo/guix/build-aux [env]$ sudo
-E ./pre-inst-env.in guix-daemon --build-users-group=guixbuild
sudo: /gnu/store/z26h622slm8p61myhk45v3jjg8p7qm8z-profile/bin/sudo must
be owned by uid 0 and have the setuid bit set 
user@machine ~/Prog/repo/guix/build-aux [env]$ exit
---------------

And then:

------------------
user@machine ~/Prog/repo/guix/build-aux$ chmod +x ./pre-inst-env.in 
user@machine ~/Prog/repo/guix/build-aux$ sudo -E ./pre-inst-env.in
guix-daemon --build-users-group=guixbuild Password: 
./pre-inst-env.in: line 33: cd: @abs_top_srcdir@:
there is no such file or directory 
./pre-inst-env.in: line 34: cd:
@abs_top_builddir@: there is no such file or directory
--------------------

And after that I couldn't run "guix
environment" anymore, it threw an error:

guix environment: error: failed to connect to
`/var/guix/daemon-socket/socket': Connection refused

Restarting the computer helps, but doing the same stuff breaks it
again, so guess it's reproducible.

After doing it I ran the "history" command so you can know what I did
exactly (some commands were unfortunately run in an environment and I
can't provide them), here it is:

  371  git clone --recurse-submodules
  git://git.savannah.gnu.org/guix.git 
  372  guix environment guix --pure
  373  sudo -E
  374  sudo --help
  375  guix environment guix --pure
  376  guix environment guix --pure --ad-hoc sudo 
  377  ls
  378  cd guix/
  379  ls
  380  cd build-aux/
  381  ls
  382  .
  383  guix environment guix --pure
  384  chmod +x ./pre-inst-env.in 
  385  sudo -E ./pre-inst-env.in guix-daemon
  --build-users-group=guixbuild 
  386  ls
  387  cd ..
  388  ./configure 
  389  guix environment guix --pure
  390  history

As stupid and complicated as it is, something is definitely broken
here.

Sincerely,
Jan Wielkiewicz