Subject: Re: bug#41059: Contributing section from manual does not work when I'm working on some patches

From: Marius Bakke <[email-masked]>
Date: Mon, 04 May 2020 16:43:24 +0200

Josh Marshall <[email-masked]> writes:

> has the following results from various invocations:
>
> ```
> anadon@goodadvicemallard:~/documents/code/guix$ ./pre-inst-env guix
> guile: warning: failed to install locale
> Backtrace:
> In ice-9/threads.scm:
>     390:8 19 (_ _)
> In ice-9/boot-9.scm:
>   2994:20 18 (_)
>    2312:4 17 (save-module-excursion _)
>   3014:26 16 (_)
> In unknown file:
>           15 (primitive-load-path "guix/store" #<procedure 7fa451b4a?>)
> In guix/store.scm:
>      22:0 14 (_)
> In ice-9/boot-9.scm:
>    2874:4 13 (define-module* _ #:filename _ #:pure _ #:version _ # _ ?)
>   2887:24 12 (_)
>    222:29 11 (map1 (((guix utils)) ((guix config)) ((guix #)) ((?)) ?))
>    222:29 10 (map1 (((guix config)) ((guix deprecation)) ((guix ?)) ?))
>    222:29  9 (map1 (((guix deprecation)) ((guix memoization)) ((?)) ?))
>    222:29  8 (map1 (((guix memoization)) ((guix serialization)) (#) ?))
>    222:29  7 (map1 (((guix serialization)) ((guix monads)) ((# #)) ?))
>    222:29  6 (map1 (((guix monads)) ((guix records)) ((guix #)) (#) ?))
>    222:29  5 (map1 (((guix records)) ((guix base16)) ((guix #)) (#) ?))
>    222:29  4 (map1 (((guix base16)) ((guix base32)) ((gcrypt #)) # ?))
>    222:29  3 (map1 (((guix base32)) ((gcrypt hash)) ((guix #)) (#) ?))
>    222:17  2 (map1 (((gcrypt hash)) ((guix profiling)) ((rnrs #)) # ?))
>    2803:6  1 (resolve-interface _ #:select _ #:hide _ #:prefix _ # _ ?)
> In unknown file:
>            0 (scm-error misc-error #f "~A ~S" ("no code for modu?" ?) ?)
>
> ERROR: In procedure scm-error:
> no code for module (gcrypt hash)
> ```

You should use 'guix environment guix' to ensure the dependencies are
available.

> ```
> anadon@goodadvicemallard:~/documents/code/guix$ guix environment guix --
> ./pre-inst-env guix
> guile: warning: failed to install locale
> guix environment: error: failed to connect to
> `/var/guix/daemon-socket/socket': Connection refused
> ```

This means the daemon is not running, or configured with a faulty
--localstatedir.

> ```
> anadon@goodadvicemallard:~/documents/code/guix$ guix environment guix --
> ./pre-inst-env guix build python-pytest-asyncio
> guile: warning: failed to install locale
> guix build: error: failed to connect to
> `/usr/local/var/guix/daemon-socket/socket': Connection refused
> ```

Pass "--localstatedir=/var" when running the configure script to provide
the correct daemon state directory.

> The daemon has been run via systemd and
> `anadon@goodadvicemallard:~/documents/code/guix$
> sudo -E ./pre-inst-env guix-daemon --build-users-group=guixbuild` to
> similar effect.

You don't need to run the daemon manually unless you want to hack on the
daemon itself.  However if you do, make sure that it has been configured
with the correct "--localstatedir" and "--sysconfdir".

HTH,
Marius