Subject: bug#56152: [BUG] guix shell seems to require --bootstrap when not bootstrapping

From: Christopher Rodriguez <[email-masked]>
Date: Wed, 22 Jun 2022 17:20:40 -0400

Hello all,

I was recently working on creating a `guix.scm` file for a guile project
I've made for myself. When I ran `guix shell -f guix.scm bash` on the
script (or the same without bash), it built the package fine… Which I
expected because I have long-since added this package to my personal
channel.

However, guix for some reason couldn't finish creating the
environment. It kept failing during the 'building TeX Live font maps...'
step, throwing a bunch of warnings about non-existant files and
eventually throwing the following error:

```
updmap [ERROR]: The following map file(s) couldn't be found:
updmap [ERROR]: 	dvips35.map (in builtin)
updmap [ERROR]: 	pdftex35.map (in builtin)
updmap [ERROR]: 	ps2pk35.map (in builtin)
```

I kept trying to add packages to the environment, eventually seeing if I
could reproduce the error in a second profile. I haven't been successful
yet.

But I have found that adding the `--bootstrap` flag to the command
allows it to succeed. For clarity, `guix shell -f guix.scm --bootstrap`
succeeds, but `guix shell -f guix.scm` does not.

Is this intended behavior? If not, could someone tell me what I might be
doing wrong? If so, is this documented anywhere, so I can avoid running
into this problem in the future by understanding it better?

Relevant Links:

http://paste.debian.net/1244902/ is the full error from the failing
step.

https://git.sr.ht/~yewscion/genpro/tree/trunk/item/guix.scm is the
`guix.scm` file that produces the issue.

https://git.sr.ht/~yewscion/yewscion-guix-channel is my personal Guix
channel.

https://git.sr.ht/~yewscion/yewscion-guix-channel/tree/trunk/item/cdr255/tex.scm
are the not-yet-in-guix-but-free-software package definitions loaded in
(use-modules (cdr255 tex)).

https://logs.guix.gnu.org/guix/2022-06-22.log#013107 is my conversation
with nckx about this on #guix.

Thank You for Your time!

--

Christopher Rodriguez